@nairon-ai/aegis 0.5.9 → 0.5.10

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/.flue/app.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { configureProvider, flue } from "@flue/sdk/app";
2
2
  import { refreshOpenAICodexToken } from "@mariozechner/pi-ai/oauth";
3
3
  import { createAegisApp, scheduledPickup } from "../src/server/app.js";
4
- import type { Bindings } from "../src/shared/types.js";
4
+ import type { AgentRunContext, Bindings } from "../src/shared/types.js";
5
5
 
6
- const app = createAegisApp();
7
6
  const flueApp = flue();
7
+ const app = createAegisApp({ callBugFixAgent: appCallBugFixAgent });
8
8
 
9
9
  export default {
10
10
  async fetch(request: Request, env?: Bindings, ctx?: ExecutionContext) {
@@ -16,10 +16,31 @@ export default {
16
16
  },
17
17
  async scheduled(controller: ScheduledController, env: Bindings, ctx: ExecutionContext) {
18
18
  await configureAgentProviders(env);
19
- return scheduledPickup(controller, env, ctx);
19
+ return scheduledPickup(controller, env, ctx, appCallBugFixAgent);
20
20
  },
21
21
  };
22
22
 
23
+ async function appCallBugFixAgent<T>(
24
+ context: AgentRunContext,
25
+ env?: Bindings,
26
+ ctx?: ExecutionContext,
27
+ ): Promise<T> {
28
+ const response = await flueApp.fetch(
29
+ new Request(`https://aegis.internal/agents/bug-fix/${context.runId}`, {
30
+ method: "POST",
31
+ headers: { "Content-Type": "application/json" },
32
+ body: JSON.stringify(context),
33
+ }),
34
+ env,
35
+ ctx,
36
+ );
37
+ if (!response.ok) {
38
+ const text = await response.text();
39
+ throw new Error(`Bug-fix agent failed: ${response.status} ${text}`);
40
+ }
41
+ return (await response.json()) as T;
42
+ }
43
+
23
44
  async function configureAgentProviders(env?: Bindings): Promise<void> {
24
45
  if (env?.AGENT_AUTH_METHOD !== "codex-account" || !env.CODEX_OAUTH_CREDENTIALS_B64) return;
25
46
  const credentials = decodeCodexCredentials(env.CODEX_OAUTH_CREDENTIALS_B64);
@@ -1,14 +1,21 @@
1
- import type { AegisConfig, ReadinessDecision, WorkItem, WorkRun } from "../shared/types.js";
1
+ import type { AegisConfig, AgentRunContext, Bindings, ReadinessDecision, WorkItem, WorkRun } from "../shared/types.js";
2
+ export type BugFixAgentCaller = <T>(context: AgentRunContext, env?: Bindings, ctx?: ExecutionContext) => Promise<T>;
2
3
  export declare function startPlanRun(params: {
3
4
  config: AegisConfig;
4
5
  item: WorkItem;
5
6
  run: WorkRun;
6
7
  decision: ReadinessDecision;
8
+ callAgent?: BugFixAgentCaller;
9
+ env?: Bindings;
10
+ ctx?: ExecutionContext;
7
11
  }): Promise<void>;
8
12
  export declare function startImplementationRun(params: {
9
13
  config: AegisConfig;
10
14
  item: WorkItem;
11
15
  run: WorkRun;
12
16
  approvedBy: string;
17
+ callAgent?: BugFixAgentCaller;
18
+ env?: Bindings;
19
+ ctx?: ExecutionContext;
13
20
  }): Promise<void>;
14
21
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/agent/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,WAAW,EAIX,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,MAAM,oBAAoB,CAAC;AAG5B,wBAAsB,YAAY,CAAC,MAAM,EAAE;IAC1C,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;CAC5B,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BhB;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACpD,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/agent/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,WAAW,EAGX,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,MAAM,oBAAoB,CAAC;AAG5B,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EACjC,OAAO,EAAE,eAAe,EACxB,GAAG,CAAC,EAAE,QAAQ,EACd,GAAG,CAAC,EAAE,gBAAgB,KAClB,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,wBAAsB,YAAY,CAAC,MAAM,EAAE;IAC1C,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BhB;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACpD,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwChB"}
@@ -8,7 +8,7 @@ export async function startPlanRun(params) {
8
8
  item: params.item,
9
9
  run: params.run,
10
10
  command: "plan",
11
- }));
11
+ }), params.callAgent, params.env, params.ctx);
12
12
  const source = sourceFor(params.config, params.item.source);
13
13
  if (result.outcome === "needs-info") {
14
14
  await source.postNeedsInfo(params.item, result.question ?? result.humanSummary);
@@ -29,7 +29,7 @@ export async function startImplementationRun(params) {
29
29
  command: "implement",
30
30
  approval: { approvedBy: params.approvedBy, approvedAt: new Date().toISOString() },
31
31
  });
32
- const result = await callBugFixAgent(params.config, context);
32
+ const result = await callBugFixAgent(params.config, context, params.callAgent, params.env, params.ctx);
33
33
  const source = sourceFor(params.config, params.item.source);
34
34
  if (result.outcome !== "implemented" || result.confidence === "low") {
35
35
  await source.markBlocked(params.item, result.blocker ??
@@ -71,7 +71,9 @@ async function buildAgentContext(params) {
71
71
  approval: params.approval,
72
72
  };
73
73
  }
74
- async function callBugFixAgent(config, context) {
74
+ async function callBugFixAgent(config, context, callAgent, env, ctx) {
75
+ if (callAgent)
76
+ return await callAgent(context, env, ctx);
75
77
  if (!config.workerUrl) {
76
78
  throw new Error("AEGIS_WORKER_URL is required so the Worker can invoke its Flue agent");
77
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/agent/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/agent/client.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  import { Hono } from "hono";
2
+ import type { BugFixAgentCaller } from "../agent/client.js";
2
3
  import type { Bindings } from "../shared/types.js";
3
4
  type HonoBindings = {
4
5
  Bindings: Bindings;
5
6
  };
6
- export declare function createAegisApp(): Hono<HonoBindings, import("hono/types").BlankSchema, "/">;
7
- export declare function scheduledPickup(_controller: ScheduledController, env: Bindings, ctx: ExecutionContext): Promise<void>;
7
+ type AegisAppOptions = {
8
+ callBugFixAgent?: BugFixAgentCaller;
9
+ };
10
+ export declare function createAegisApp(options?: AegisAppOptions): Hono<HonoBindings, import("hono/types").BlankSchema, "/">;
11
+ export declare function scheduledPickup(_controller: ScheduledController, env: Bindings, ctx: ExecutionContext, callAgent?: BugFixAgentCaller): Promise<void>;
8
12
  export {};
9
13
  //# sourceMappingURL=app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAc5B,OAAO,KAAK,EAAE,QAAQ,EAAwC,MAAM,oBAAoB,CAAC;AAGzF,KAAK,YAAY,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE3C,wBAAgB,cAAc,8DA2J7B;AAED,wBAAsB,eAAe,CACpC,WAAW,EAAE,mBAAmB,EAChC,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,gBAAgB,GACnB,OAAO,CAAC,IAAI,CAAC,CASf"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAa5D,OAAO,KAAK,EAAE,QAAQ,EAAwC,MAAM,oBAAoB,CAAC;AAGzF,KAAK,YAAY,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,CAAC;AAC3C,KAAK,eAAe,GAAG;IACtB,eAAe,CAAC,EAAE,iBAAiB,CAAC;CACpC,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,6DA6K3D;AAED,wBAAsB,eAAe,CACpC,WAAW,EAAE,mBAAmB,EAChC,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,gBAAgB,EACrB,SAAS,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CASf"}
@@ -9,7 +9,7 @@ import { configFromBindings } from "../shared/config.js";
9
9
  import { formatReadyDecisionLine } from "../shared/format.js";
10
10
  import { runFromItem } from "../shared/run-state.js";
11
11
  import { sourceFor } from "../sources/index.js";
12
- export function createAegisApp() {
12
+ export function createAegisApp(options = {}) {
13
13
  const app = new Hono();
14
14
  app.get("/", (c) => {
15
15
  return c.json({ service: "aegis", status: "ok", product: "AFK bug-fixing agent" });
@@ -36,7 +36,7 @@ export function createAegisApp() {
36
36
  const decisions = await pickupReadyBugs({
37
37
  config,
38
38
  startRun: async (item, run, decision) => {
39
- c.executionCtx.waitUntil(startPlanSafely(c.env, item, run, decision, new URL(c.req.url).origin));
39
+ c.executionCtx.waitUntil(startPlanSafely(c.env, item, run, decision, new URL(c.req.url).origin, options.callBugFixAgent));
40
40
  },
41
41
  });
42
42
  return c.json({
@@ -51,7 +51,7 @@ export function createAegisApp() {
51
51
  });
52
52
  });
53
53
  app.post("/api/runs/:id/proceed", async (c) => {
54
- await proceedRun(c.env, c.req.param("id"), "api");
54
+ await proceedRun(c.env, c.req.param("id"), "api", undefined, options.callBugFixAgent);
55
55
  return c.json({ accepted: true, runId: c.req.param("id") });
56
56
  });
57
57
  app.post("/api/runs/:id/stop", async (c) => {
@@ -68,7 +68,7 @@ export function createAegisApp() {
68
68
  if (command.action === "ignore")
69
69
  return c.json({ ignored: true });
70
70
  if (command.action === "proceed") {
71
- await proceedRun(c.env, command.runId, command.actor);
71
+ await proceedRun(c.env, command.runId, command.actor, undefined, options.callBugFixAgent);
72
72
  return c.json({ accepted: true });
73
73
  }
74
74
  if (command.action === "stop") {
@@ -76,7 +76,7 @@ export function createAegisApp() {
76
76
  await sendTelegramMessage(config, `Stopped Aegis run ${command.runId}.`);
77
77
  return c.json({ accepted: true });
78
78
  }
79
- await askRun(c.env, command.runId, command.text, command.actor);
79
+ await askRun(c.env, command.runId, command.text, command.actor, undefined, options.callBugFixAgent);
80
80
  return c.json({ accepted: true });
81
81
  });
82
82
  app.post("/webhook/github", async (c) => {
@@ -89,7 +89,7 @@ export function createAegisApp() {
89
89
  const event = c.req.header("X-GitHub-Event");
90
90
  if (event === "issues" &&
91
91
  ["opened", "edited", "labeled", "unlabeled", "reopened"].includes(payload.action ?? "")) {
92
- c.executionCtx.waitUntil(pickupFromWebhook(c.env, new URL(c.req.url).origin));
92
+ c.executionCtx.waitUntil(pickupFromWebhook(c.env, new URL(c.req.url).origin, options.callBugFixAgent));
93
93
  return c.json({ accepted: true, trigger: "pickup" });
94
94
  }
95
95
  const command = parseAegisCommand(payload.comment?.body ?? "", payload.comment?.user?.login ?? "github");
@@ -98,7 +98,7 @@ export function createAegisApp() {
98
98
  if (!payload.issue?.number)
99
99
  return c.json({ error: "missing issue" }, 400);
100
100
  const item = await new GitHubClient(config).getIssue(config.monitoredRepo, payload.issue.number);
101
- await handleCommand(c.env, command, item);
101
+ await handleCommand(c.env, command, item, options.callBugFixAgent);
102
102
  return c.json({ accepted: true });
103
103
  });
104
104
  app.post("/webhook/linear", async (c) => {
@@ -114,7 +114,7 @@ export function createAegisApp() {
114
114
  }
115
115
  if (payload.type !== "Comment") {
116
116
  if (payload.type === "Issue") {
117
- c.executionCtx.waitUntil(pickupFromWebhook(c.env, new URL(c.req.url).origin));
117
+ c.executionCtx.waitUntil(pickupFromWebhook(c.env, new URL(c.req.url).origin, options.callBugFixAgent));
118
118
  return c.json({ accepted: true, trigger: "pickup" });
119
119
  }
120
120
  return c.json({ ignored: true });
@@ -125,24 +125,24 @@ export function createAegisApp() {
125
125
  if (!payload.data?.issue?.id)
126
126
  return c.json({ error: "missing issue" }, 400);
127
127
  const item = await new LinearClient(config).getIssue(payload.data.issue.id);
128
- await handleCommand(c.env, command, item);
128
+ await handleCommand(c.env, command, item, options.callBugFixAgent);
129
129
  return c.json({ accepted: true });
130
130
  });
131
131
  return app;
132
132
  }
133
- export async function scheduledPickup(_controller, env, ctx) {
133
+ export async function scheduledPickup(_controller, env, ctx, callAgent) {
134
134
  const config = configFromBindings(env);
135
135
  const decisions = await pickupReadyBugs({
136
136
  config,
137
137
  startRun: async (item, run, decision) => {
138
- ctx.waitUntil(startPlanSafely(env, item, run, decision));
138
+ ctx.waitUntil(startPlanSafely(env, item, run, decision, undefined, callAgent, ctx));
139
139
  },
140
140
  });
141
141
  console.log(`[aegis] scheduled pickup checked ${decisions.length} item(s)`);
142
142
  }
143
- async function handleCommand(env, command, item) {
143
+ async function handleCommand(env, command, item, callAgent, ctx) {
144
144
  if (command.action === "proceed") {
145
- await proceedRun(env, command.runId, command.actor, item);
145
+ await proceedRun(env, command.runId, command.actor, item, callAgent, ctx);
146
146
  return;
147
147
  }
148
148
  if (command.action === "stop") {
@@ -150,21 +150,21 @@ async function handleCommand(env, command, item) {
150
150
  return;
151
151
  }
152
152
  if (command.action === "ask") {
153
- await askRun(env, command.runId, command.text, command.actor, item);
153
+ await askRun(env, command.runId, command.text, command.actor, item, callAgent, ctx);
154
154
  }
155
155
  }
156
- async function startPlanSafely(env, item, run, decision, workerUrl) {
156
+ async function startPlanSafely(env, item, run, decision, workerUrl, callAgent, ctx) {
157
157
  const baseConfig = configFromBindings(env);
158
158
  const config = { ...baseConfig, workerUrl: baseConfig.workerUrl ?? workerUrl };
159
159
  try {
160
- await startPlanRun({ config, item, run, decision });
160
+ await startPlanRun({ config, item, run, decision, callAgent, env, ctx });
161
161
  }
162
162
  catch (error) {
163
163
  const message = error instanceof Error ? error.message : String(error);
164
164
  await sourceFor(config, item.source).markBlocked(item, `Aegis failed to run: ${message}`);
165
165
  }
166
166
  }
167
- async function pickupFromWebhook(env, origin) {
167
+ async function pickupFromWebhook(env, origin, callAgent, ctx) {
168
168
  const config = {
169
169
  ...configFromBindings(env),
170
170
  workerUrl: configFromBindings(env).workerUrl ?? origin,
@@ -172,17 +172,25 @@ async function pickupFromWebhook(env, origin) {
172
172
  await pickupReadyBugs({
173
173
  config,
174
174
  startRun: async (item, run, decision) => {
175
- await startPlanSafely(env, item, run, decision, origin);
175
+ await startPlanSafely(env, item, run, decision, origin, callAgent, ctx);
176
176
  },
177
177
  });
178
178
  }
179
- async function proceedRun(env, runId, actor, item) {
179
+ async function proceedRun(env, runId, actor, item, callAgent, ctx) {
180
180
  const config = configFromBindings(env);
181
181
  const resolved = item ?? (await resolveItemFromRunId(config, runId));
182
182
  const run = runFromItem(resolved, "plan-first");
183
- await startImplementationRun({ config, item: resolved, run, approvedBy: actor });
183
+ await startImplementationRun({
184
+ config,
185
+ item: resolved,
186
+ run,
187
+ approvedBy: actor,
188
+ callAgent,
189
+ env,
190
+ ctx,
191
+ });
184
192
  }
185
- async function askRun(env, runId, text, actor, item) {
193
+ async function askRun(env, runId, text, actor, item, callAgent, ctx) {
186
194
  if (!text.trim())
187
195
  return;
188
196
  const config = configFromBindings(env);
@@ -199,6 +207,9 @@ ${text}`,
199
207
  item: followUpItem,
200
208
  run: runFromItem(resolved, "plan-first"),
201
209
  decision: { ready: true, reason: "human follow-up", risk: "low", autoImplementAllowed: false },
210
+ callAgent,
211
+ env,
212
+ ctx,
202
213
  });
203
214
  }
204
215
  async function stopRun(env, runId, item) {
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACN,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIhD,MAAM,UAAU,cAAc;IAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAgB,CAAC;IAErC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;QAClB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACtF,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,CAAC,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,SAAS,CAAC,MAAM;YACvB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACvC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;gBAC5B,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;gBACpC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;gBAC1B,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG;gBACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBAChC,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;aAC/D,CAAC,CAAC;SACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QACtF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC;YACvC,MAAM;YACN,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;gBACvC,CAAC,CAAC,YAAY,CAAC,SAAS,CACvB,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CACtE,CAAC;YACH,CAAC;SACD,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,SAAS,CAAC,MAAM;YACvB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACvC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;gBAC5B,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU;gBACpC,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBAChC,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE;aACvB,CAAC,CAAC;SACH,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,QAAQ,EAAE,aAAa,IAAI,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YAChF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACtD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;YACzE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CACtC,OAAO,EACP,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,EACnC,MAAM,CAAC,MAAM,EAAE,aAAa,CAC5B,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAIjC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IACC,KAAK,KAAK,QAAQ;YAClB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EACtF,CAAC;YACF,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,CAChC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,EAC3B,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,QAAQ,CACxC,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CACnD,MAAM,CAAC,aAAa,EACpB,OAAO,CAAC,KAAK,CAAC,MAAM,CACpB,CAAC;QACF,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CACtC,OAAO,EACP,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAChC,MAAM,CAAC,MAAM,EAAE,aAAa,CAC5B,CAAC;QACF,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAKjC,CAAC;QACF,IACC,OAAO,CAAC,gBAAgB;YACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EAC9D,CAAC;YACF,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC9B,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9E,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAChC,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EACxB,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,IAAI,QAAQ,CACvD,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5E,MAAM,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,WAAgC,EAChC,GAAa,EACb,GAAqB;IAErB,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC;QACvC,MAAM;QACN,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;YACvC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC;KACD,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,oCAAoC,SAAS,CAAC,MAAM,UAAU,CAAC,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,aAAa,CAC3B,GAAa,EACb,OAA6C,EAC7C,IAAc;IAEd,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1D,OAAO;IACR,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,OAAO;IACR,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC9B,MAAM,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;AACF,CAAC;AAED,KAAK,UAAU,eAAe,CAC7B,GAAa,EACb,IAAc,EACd,GAAY,EACZ,QAA2B,EAC3B,SAAkB;IAElB,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;IAC/E,IAAI,CAAC;QACJ,MAAM,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,wBAAwB,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;AACF,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAa,EAAE,MAAc;IAC7D,MAAM,MAAM,GAAG;QACd,GAAG,kBAAkB,CAAC,GAAG,CAAC;QAC1B,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,MAAM;KACtD,CAAC;IACF,MAAM,eAAe,CAAC;QACrB,MAAM;QACN,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;YACvC,MAAM,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CACxB,GAAa,EACb,KAAa,EACb,KAAa,EACb,IAAe;IAEf,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAChD,MAAM,sBAAsB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,KAAK,UAAU,MAAM,CACpB,GAAa,EACb,KAAa,EACb,IAAY,EACZ,KAAa,EACb,IAAe;IAEf,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO;IACzB,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG;QACpB,GAAG,QAAQ;QACX,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI;;uBAED,KAAK;EAC1B,IAAI,EAAE;KACN,CAAC;IACF,MAAM,YAAY,CAAC;QAClB,MAAM;QACN,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC;QACxC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE;KAC9F,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAAa,EAAE,KAAa,EAAE,IAAe;IACnE,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,KAAK,eAAe,CAAC,CAAC;AACnG,CAAC;AAED,KAAK,UAAU,oBAAoB,CAClC,MAA6C,EAC7C,KAAa;IAEb,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nairon-ai/aegis",
3
- "version": "0.5.9",
3
+ "version": "0.5.10",
4
4
  "description": "Self-hosted AFK bug-fixing agent for GitHub Issues and Linear",
5
5
  "type": "module",
6
6
  "repository": {
@@ -6,17 +6,27 @@ import type {
6
6
  AgentImplementationResult,
7
7
  AgentPlanResult,
8
8
  AgentRunContext,
9
+ Bindings,
9
10
  ReadinessDecision,
10
11
  WorkItem,
11
12
  WorkRun,
12
13
  } from "../shared/types.js";
13
14
  import { sourceFor } from "../sources/index.js";
14
15
 
16
+ export type BugFixAgentCaller = <T>(
17
+ context: AgentRunContext,
18
+ env?: Bindings,
19
+ ctx?: ExecutionContext,
20
+ ) => Promise<T>;
21
+
15
22
  export async function startPlanRun(params: {
16
23
  config: AegisConfig;
17
24
  item: WorkItem;
18
25
  run: WorkRun;
19
26
  decision: ReadinessDecision;
27
+ callAgent?: BugFixAgentCaller;
28
+ env?: Bindings;
29
+ ctx?: ExecutionContext;
20
30
  }): Promise<void> {
21
31
  const result = await callBugFixAgent<AgentPlanResult>(
22
32
  params.config,
@@ -26,6 +36,9 @@ export async function startPlanRun(params: {
26
36
  run: params.run,
27
37
  command: "plan",
28
38
  }),
39
+ params.callAgent,
40
+ params.env,
41
+ params.ctx,
29
42
  );
30
43
 
31
44
  const source = sourceFor(params.config, params.item.source);
@@ -50,6 +63,9 @@ export async function startImplementationRun(params: {
50
63
  item: WorkItem;
51
64
  run: WorkRun;
52
65
  approvedBy: string;
66
+ callAgent?: BugFixAgentCaller;
67
+ env?: Bindings;
68
+ ctx?: ExecutionContext;
53
69
  }): Promise<void> {
54
70
  const context = await buildAgentContext({
55
71
  config: params.config,
@@ -58,7 +74,13 @@ export async function startImplementationRun(params: {
58
74
  command: "implement",
59
75
  approval: { approvedBy: params.approvedBy, approvedAt: new Date().toISOString() },
60
76
  });
61
- const result = await callBugFixAgent<AgentImplementationResult>(params.config, context);
77
+ const result = await callBugFixAgent<AgentImplementationResult>(
78
+ params.config,
79
+ context,
80
+ params.callAgent,
81
+ params.env,
82
+ params.ctx,
83
+ );
62
84
  const source = sourceFor(params.config, params.item.source);
63
85
 
64
86
  if (result.outcome !== "implemented" || result.confidence === "low") {
@@ -117,7 +139,15 @@ async function buildAgentContext(params: {
117
139
  };
118
140
  }
119
141
 
120
- async function callBugFixAgent<T>(config: AegisConfig, context: AgentRunContext): Promise<T> {
142
+ async function callBugFixAgent<T>(
143
+ config: AegisConfig,
144
+ context: AgentRunContext,
145
+ callAgent?: BugFixAgentCaller,
146
+ env?: Bindings,
147
+ ctx?: ExecutionContext,
148
+ ): Promise<T> {
149
+ if (callAgent) return await callAgent<T>(context, env, ctx);
150
+
121
151
  if (!config.workerUrl) {
122
152
  throw new Error("AEGIS_WORKER_URL is required so the Worker can invoke its Flue agent");
123
153
  }
package/src/server/app.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Hono } from "hono";
2
2
  import { startImplementationRun, startPlanRun } from "../agent/client.js";
3
+ import type { BugFixAgentCaller } from "../agent/client.js";
3
4
  import { pickupReadyBugs, scanReadyBugs } from "../core/pickup.js";
4
5
  import { GitHubClient } from "../integrations/github.js";
5
6
  import { LinearClient } from "../integrations/linear.js";
@@ -16,8 +17,11 @@ import type { Bindings, ReadinessDecision, WorkItem, WorkRun } from "../shared/t
16
17
  import { sourceFor } from "../sources/index.js";
17
18
 
18
19
  type HonoBindings = { Bindings: Bindings };
20
+ type AegisAppOptions = {
21
+ callBugFixAgent?: BugFixAgentCaller;
22
+ };
19
23
 
20
- export function createAegisApp() {
24
+ export function createAegisApp(options: AegisAppOptions = {}) {
21
25
  const app = new Hono<HonoBindings>();
22
26
 
23
27
  app.get("/", (c) => {
@@ -48,7 +52,14 @@ export function createAegisApp() {
48
52
  config,
49
53
  startRun: async (item, run, decision) => {
50
54
  c.executionCtx.waitUntil(
51
- startPlanSafely(c.env, item, run, decision, new URL(c.req.url).origin),
55
+ startPlanSafely(
56
+ c.env,
57
+ item,
58
+ run,
59
+ decision,
60
+ new URL(c.req.url).origin,
61
+ options.callBugFixAgent,
62
+ ),
52
63
  );
53
64
  },
54
65
  });
@@ -65,7 +76,7 @@ export function createAegisApp() {
65
76
  });
66
77
 
67
78
  app.post("/api/runs/:id/proceed", async (c) => {
68
- await proceedRun(c.env, c.req.param("id"), "api");
79
+ await proceedRun(c.env, c.req.param("id"), "api", undefined, options.callBugFixAgent);
69
80
  return c.json({ accepted: true, runId: c.req.param("id") });
70
81
  });
71
82
 
@@ -83,7 +94,7 @@ export function createAegisApp() {
83
94
  const command = parseTelegramUpdate(await c.req.json());
84
95
  if (command.action === "ignore") return c.json({ ignored: true });
85
96
  if (command.action === "proceed") {
86
- await proceedRun(c.env, command.runId, command.actor);
97
+ await proceedRun(c.env, command.runId, command.actor, undefined, options.callBugFixAgent);
87
98
  return c.json({ accepted: true });
88
99
  }
89
100
  if (command.action === "stop") {
@@ -91,7 +102,14 @@ export function createAegisApp() {
91
102
  await sendTelegramMessage(config, `Stopped Aegis run ${command.runId}.`);
92
103
  return c.json({ accepted: true });
93
104
  }
94
- await askRun(c.env, command.runId, command.text, command.actor);
105
+ await askRun(
106
+ c.env,
107
+ command.runId,
108
+ command.text,
109
+ command.actor,
110
+ undefined,
111
+ options.callBugFixAgent,
112
+ );
95
113
  return c.json({ accepted: true });
96
114
  });
97
115
 
@@ -114,7 +132,9 @@ export function createAegisApp() {
114
132
  event === "issues" &&
115
133
  ["opened", "edited", "labeled", "unlabeled", "reopened"].includes(payload.action ?? "")
116
134
  ) {
117
- c.executionCtx.waitUntil(pickupFromWebhook(c.env, new URL(c.req.url).origin));
135
+ c.executionCtx.waitUntil(
136
+ pickupFromWebhook(c.env, new URL(c.req.url).origin, options.callBugFixAgent),
137
+ );
118
138
  return c.json({ accepted: true, trigger: "pickup" });
119
139
  }
120
140
 
@@ -128,7 +148,7 @@ export function createAegisApp() {
128
148
  config.monitoredRepo,
129
149
  payload.issue.number,
130
150
  );
131
- await handleCommand(c.env, command, item);
151
+ await handleCommand(c.env, command, item, options.callBugFixAgent);
132
152
  return c.json({ accepted: true });
133
153
  });
134
154
 
@@ -155,7 +175,9 @@ export function createAegisApp() {
155
175
  }
156
176
  if (payload.type !== "Comment") {
157
177
  if (payload.type === "Issue") {
158
- c.executionCtx.waitUntil(pickupFromWebhook(c.env, new URL(c.req.url).origin));
178
+ c.executionCtx.waitUntil(
179
+ pickupFromWebhook(c.env, new URL(c.req.url).origin, options.callBugFixAgent),
180
+ );
159
181
  return c.json({ accepted: true, trigger: "pickup" });
160
182
  }
161
183
  return c.json({ ignored: true });
@@ -167,7 +189,7 @@ export function createAegisApp() {
167
189
  if (command.action === "ignore") return c.json({ ignored: true });
168
190
  if (!payload.data?.issue?.id) return c.json({ error: "missing issue" }, 400);
169
191
  const item = await new LinearClient(config).getIssue(payload.data.issue.id);
170
- await handleCommand(c.env, command, item);
192
+ await handleCommand(c.env, command, item, options.callBugFixAgent);
171
193
  return c.json({ accepted: true });
172
194
  });
173
195
 
@@ -178,12 +200,13 @@ export async function scheduledPickup(
178
200
  _controller: ScheduledController,
179
201
  env: Bindings,
180
202
  ctx: ExecutionContext,
203
+ callAgent?: BugFixAgentCaller,
181
204
  ): Promise<void> {
182
205
  const config = configFromBindings(env);
183
206
  const decisions = await pickupReadyBugs({
184
207
  config,
185
208
  startRun: async (item, run, decision) => {
186
- ctx.waitUntil(startPlanSafely(env, item, run, decision));
209
+ ctx.waitUntil(startPlanSafely(env, item, run, decision, undefined, callAgent, ctx));
187
210
  },
188
211
  });
189
212
  console.log(`[aegis] scheduled pickup checked ${decisions.length} item(s)`);
@@ -193,9 +216,11 @@ async function handleCommand(
193
216
  env: Bindings,
194
217
  command: ReturnType<typeof parseAegisCommand>,
195
218
  item: WorkItem,
219
+ callAgent?: BugFixAgentCaller,
220
+ ctx?: ExecutionContext,
196
221
  ): Promise<void> {
197
222
  if (command.action === "proceed") {
198
- await proceedRun(env, command.runId, command.actor, item);
223
+ await proceedRun(env, command.runId, command.actor, item, callAgent, ctx);
199
224
  return;
200
225
  }
201
226
  if (command.action === "stop") {
@@ -203,7 +228,7 @@ async function handleCommand(
203
228
  return;
204
229
  }
205
230
  if (command.action === "ask") {
206
- await askRun(env, command.runId, command.text, command.actor, item);
231
+ await askRun(env, command.runId, command.text, command.actor, item, callAgent, ctx);
207
232
  }
208
233
  }
209
234
 
@@ -213,18 +238,25 @@ async function startPlanSafely(
213
238
  run: WorkRun,
214
239
  decision: ReadinessDecision,
215
240
  workerUrl?: string,
241
+ callAgent?: BugFixAgentCaller,
242
+ ctx?: ExecutionContext,
216
243
  ): Promise<void> {
217
244
  const baseConfig = configFromBindings(env);
218
245
  const config = { ...baseConfig, workerUrl: baseConfig.workerUrl ?? workerUrl };
219
246
  try {
220
- await startPlanRun({ config, item, run, decision });
247
+ await startPlanRun({ config, item, run, decision, callAgent, env, ctx });
221
248
  } catch (error) {
222
249
  const message = error instanceof Error ? error.message : String(error);
223
250
  await sourceFor(config, item.source).markBlocked(item, `Aegis failed to run: ${message}`);
224
251
  }
225
252
  }
226
253
 
227
- async function pickupFromWebhook(env: Bindings, origin: string): Promise<void> {
254
+ async function pickupFromWebhook(
255
+ env: Bindings,
256
+ origin: string,
257
+ callAgent?: BugFixAgentCaller,
258
+ ctx?: ExecutionContext,
259
+ ): Promise<void> {
228
260
  const config = {
229
261
  ...configFromBindings(env),
230
262
  workerUrl: configFromBindings(env).workerUrl ?? origin,
@@ -232,7 +264,7 @@ async function pickupFromWebhook(env: Bindings, origin: string): Promise<void> {
232
264
  await pickupReadyBugs({
233
265
  config,
234
266
  startRun: async (item, run, decision) => {
235
- await startPlanSafely(env, item, run, decision, origin);
267
+ await startPlanSafely(env, item, run, decision, origin, callAgent, ctx);
236
268
  },
237
269
  });
238
270
  }
@@ -242,11 +274,21 @@ async function proceedRun(
242
274
  runId: string,
243
275
  actor: string,
244
276
  item?: WorkItem,
277
+ callAgent?: BugFixAgentCaller,
278
+ ctx?: ExecutionContext,
245
279
  ): Promise<void> {
246
280
  const config = configFromBindings(env);
247
281
  const resolved = item ?? (await resolveItemFromRunId(config, runId));
248
282
  const run = runFromItem(resolved, "plan-first");
249
- await startImplementationRun({ config, item: resolved, run, approvedBy: actor });
283
+ await startImplementationRun({
284
+ config,
285
+ item: resolved,
286
+ run,
287
+ approvedBy: actor,
288
+ callAgent,
289
+ env,
290
+ ctx,
291
+ });
250
292
  }
251
293
 
252
294
  async function askRun(
@@ -255,6 +297,8 @@ async function askRun(
255
297
  text: string,
256
298
  actor: string,
257
299
  item?: WorkItem,
300
+ callAgent?: BugFixAgentCaller,
301
+ ctx?: ExecutionContext,
258
302
  ): Promise<void> {
259
303
  if (!text.trim()) return;
260
304
  const config = configFromBindings(env);
@@ -271,6 +315,9 @@ ${text}`,
271
315
  item: followUpItem,
272
316
  run: runFromItem(resolved, "plan-first"),
273
317
  decision: { ready: true, reason: "human follow-up", risk: "low", autoImplementAllowed: false },
318
+ callAgent,
319
+ env,
320
+ ctx,
274
321
  });
275
322
  }
276
323