@nairon-ai/aegis 0.5.9 → 0.5.11

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,6DA2K3D;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
+ await 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
+ await 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":"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"}
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.11",
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) => {
@@ -47,8 +51,13 @@ export function createAegisApp() {
47
51
  const decisions = await pickupReadyBugs({
48
52
  config,
49
53
  startRun: async (item, run, decision) => {
50
- c.executionCtx.waitUntil(
51
- startPlanSafely(c.env, item, run, decision, new URL(c.req.url).origin),
54
+ await startPlanSafely(
55
+ c.env,
56
+ item,
57
+ run,
58
+ decision,
59
+ new URL(c.req.url).origin,
60
+ options.callBugFixAgent,
52
61
  );
53
62
  },
54
63
  });
@@ -65,7 +74,7 @@ export function createAegisApp() {
65
74
  });
66
75
 
67
76
  app.post("/api/runs/:id/proceed", async (c) => {
68
- await proceedRun(c.env, c.req.param("id"), "api");
77
+ await proceedRun(c.env, c.req.param("id"), "api", undefined, options.callBugFixAgent);
69
78
  return c.json({ accepted: true, runId: c.req.param("id") });
70
79
  });
71
80
 
@@ -83,7 +92,7 @@ export function createAegisApp() {
83
92
  const command = parseTelegramUpdate(await c.req.json());
84
93
  if (command.action === "ignore") return c.json({ ignored: true });
85
94
  if (command.action === "proceed") {
86
- await proceedRun(c.env, command.runId, command.actor);
95
+ await proceedRun(c.env, command.runId, command.actor, undefined, options.callBugFixAgent);
87
96
  return c.json({ accepted: true });
88
97
  }
89
98
  if (command.action === "stop") {
@@ -91,7 +100,14 @@ export function createAegisApp() {
91
100
  await sendTelegramMessage(config, `Stopped Aegis run ${command.runId}.`);
92
101
  return c.json({ accepted: true });
93
102
  }
94
- await askRun(c.env, command.runId, command.text, command.actor);
103
+ await askRun(
104
+ c.env,
105
+ command.runId,
106
+ command.text,
107
+ command.actor,
108
+ undefined,
109
+ options.callBugFixAgent,
110
+ );
95
111
  return c.json({ accepted: true });
96
112
  });
97
113
 
@@ -114,7 +130,9 @@ export function createAegisApp() {
114
130
  event === "issues" &&
115
131
  ["opened", "edited", "labeled", "unlabeled", "reopened"].includes(payload.action ?? "")
116
132
  ) {
117
- c.executionCtx.waitUntil(pickupFromWebhook(c.env, new URL(c.req.url).origin));
133
+ c.executionCtx.waitUntil(
134
+ pickupFromWebhook(c.env, new URL(c.req.url).origin, options.callBugFixAgent),
135
+ );
118
136
  return c.json({ accepted: true, trigger: "pickup" });
119
137
  }
120
138
 
@@ -128,7 +146,7 @@ export function createAegisApp() {
128
146
  config.monitoredRepo,
129
147
  payload.issue.number,
130
148
  );
131
- await handleCommand(c.env, command, item);
149
+ await handleCommand(c.env, command, item, options.callBugFixAgent);
132
150
  return c.json({ accepted: true });
133
151
  });
134
152
 
@@ -155,7 +173,9 @@ export function createAegisApp() {
155
173
  }
156
174
  if (payload.type !== "Comment") {
157
175
  if (payload.type === "Issue") {
158
- c.executionCtx.waitUntil(pickupFromWebhook(c.env, new URL(c.req.url).origin));
176
+ c.executionCtx.waitUntil(
177
+ pickupFromWebhook(c.env, new URL(c.req.url).origin, options.callBugFixAgent),
178
+ );
159
179
  return c.json({ accepted: true, trigger: "pickup" });
160
180
  }
161
181
  return c.json({ ignored: true });
@@ -167,7 +187,7 @@ export function createAegisApp() {
167
187
  if (command.action === "ignore") return c.json({ ignored: true });
168
188
  if (!payload.data?.issue?.id) return c.json({ error: "missing issue" }, 400);
169
189
  const item = await new LinearClient(config).getIssue(payload.data.issue.id);
170
- await handleCommand(c.env, command, item);
190
+ await handleCommand(c.env, command, item, options.callBugFixAgent);
171
191
  return c.json({ accepted: true });
172
192
  });
173
193
 
@@ -178,12 +198,13 @@ export async function scheduledPickup(
178
198
  _controller: ScheduledController,
179
199
  env: Bindings,
180
200
  ctx: ExecutionContext,
201
+ callAgent?: BugFixAgentCaller,
181
202
  ): Promise<void> {
182
203
  const config = configFromBindings(env);
183
204
  const decisions = await pickupReadyBugs({
184
205
  config,
185
206
  startRun: async (item, run, decision) => {
186
- ctx.waitUntil(startPlanSafely(env, item, run, decision));
207
+ await startPlanSafely(env, item, run, decision, undefined, callAgent, ctx);
187
208
  },
188
209
  });
189
210
  console.log(`[aegis] scheduled pickup checked ${decisions.length} item(s)`);
@@ -193,9 +214,11 @@ async function handleCommand(
193
214
  env: Bindings,
194
215
  command: ReturnType<typeof parseAegisCommand>,
195
216
  item: WorkItem,
217
+ callAgent?: BugFixAgentCaller,
218
+ ctx?: ExecutionContext,
196
219
  ): Promise<void> {
197
220
  if (command.action === "proceed") {
198
- await proceedRun(env, command.runId, command.actor, item);
221
+ await proceedRun(env, command.runId, command.actor, item, callAgent, ctx);
199
222
  return;
200
223
  }
201
224
  if (command.action === "stop") {
@@ -203,7 +226,7 @@ async function handleCommand(
203
226
  return;
204
227
  }
205
228
  if (command.action === "ask") {
206
- await askRun(env, command.runId, command.text, command.actor, item);
229
+ await askRun(env, command.runId, command.text, command.actor, item, callAgent, ctx);
207
230
  }
208
231
  }
209
232
 
@@ -213,18 +236,25 @@ async function startPlanSafely(
213
236
  run: WorkRun,
214
237
  decision: ReadinessDecision,
215
238
  workerUrl?: string,
239
+ callAgent?: BugFixAgentCaller,
240
+ ctx?: ExecutionContext,
216
241
  ): Promise<void> {
217
242
  const baseConfig = configFromBindings(env);
218
243
  const config = { ...baseConfig, workerUrl: baseConfig.workerUrl ?? workerUrl };
219
244
  try {
220
- await startPlanRun({ config, item, run, decision });
245
+ await startPlanRun({ config, item, run, decision, callAgent, env, ctx });
221
246
  } catch (error) {
222
247
  const message = error instanceof Error ? error.message : String(error);
223
248
  await sourceFor(config, item.source).markBlocked(item, `Aegis failed to run: ${message}`);
224
249
  }
225
250
  }
226
251
 
227
- async function pickupFromWebhook(env: Bindings, origin: string): Promise<void> {
252
+ async function pickupFromWebhook(
253
+ env: Bindings,
254
+ origin: string,
255
+ callAgent?: BugFixAgentCaller,
256
+ ctx?: ExecutionContext,
257
+ ): Promise<void> {
228
258
  const config = {
229
259
  ...configFromBindings(env),
230
260
  workerUrl: configFromBindings(env).workerUrl ?? origin,
@@ -232,7 +262,7 @@ async function pickupFromWebhook(env: Bindings, origin: string): Promise<void> {
232
262
  await pickupReadyBugs({
233
263
  config,
234
264
  startRun: async (item, run, decision) => {
235
- await startPlanSafely(env, item, run, decision, origin);
265
+ await startPlanSafely(env, item, run, decision, origin, callAgent, ctx);
236
266
  },
237
267
  });
238
268
  }
@@ -242,11 +272,21 @@ async function proceedRun(
242
272
  runId: string,
243
273
  actor: string,
244
274
  item?: WorkItem,
275
+ callAgent?: BugFixAgentCaller,
276
+ ctx?: ExecutionContext,
245
277
  ): Promise<void> {
246
278
  const config = configFromBindings(env);
247
279
  const resolved = item ?? (await resolveItemFromRunId(config, runId));
248
280
  const run = runFromItem(resolved, "plan-first");
249
- await startImplementationRun({ config, item: resolved, run, approvedBy: actor });
281
+ await startImplementationRun({
282
+ config,
283
+ item: resolved,
284
+ run,
285
+ approvedBy: actor,
286
+ callAgent,
287
+ env,
288
+ ctx,
289
+ });
250
290
  }
251
291
 
252
292
  async function askRun(
@@ -255,6 +295,8 @@ async function askRun(
255
295
  text: string,
256
296
  actor: string,
257
297
  item?: WorkItem,
298
+ callAgent?: BugFixAgentCaller,
299
+ ctx?: ExecutionContext,
258
300
  ): Promise<void> {
259
301
  if (!text.trim()) return;
260
302
  const config = configFromBindings(env);
@@ -271,6 +313,9 @@ ${text}`,
271
313
  item: followUpItem,
272
314
  run: runFromItem(resolved, "plan-first"),
273
315
  decision: { ready: true, reason: "human follow-up", risk: "low", autoImplementAllowed: false },
316
+ callAgent,
317
+ env,
318
+ ctx,
274
319
  });
275
320
  }
276
321