@nairon-ai/aegis 0.5.8 → 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 +24 -3
- package/dist-node/agent/client.d.ts +8 -1
- package/dist-node/agent/client.d.ts.map +1 -1
- package/dist-node/agent/client.js +5 -3
- package/dist-node/agent/client.js.map +1 -1
- package/dist-node/integrations/linear.js +1 -1
- package/dist-node/server/app.d.ts +6 -2
- package/dist-node/server/app.d.ts.map +1 -1
- package/dist-node/server/app.js +32 -21
- package/dist-node/server/app.js.map +1 -1
- package/package.json +1 -1
- package/src/agent/client.ts +32 -2
- package/src/integrations/linear.ts +1 -1
- package/src/server/app.ts +63 -16
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,
|
|
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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/agent/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -110,7 +110,7 @@ export class LinearClient {
|
|
|
110
110
|
}
|
|
111
111
|
async findStateId(name) {
|
|
112
112
|
const linear = this.requireConfig();
|
|
113
|
-
const result = await this.graphql(`query WorkflowStates($teamId:
|
|
113
|
+
const result = await this.graphql(`query WorkflowStates($teamId: ID!) {
|
|
114
114
|
workflowStates(filter: { team: { id: { eq: $teamId } } }) {
|
|
115
115
|
nodes { id name }
|
|
116
116
|
}
|
|
@@ -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
|
-
|
|
7
|
-
|
|
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;
|
|
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"}
|
package/dist-node/server/app.js
CHANGED
|
@@ -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({
|
|
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
package/src/agent/client.ts
CHANGED
|
@@ -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>(
|
|
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>(
|
|
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
|
}
|
|
@@ -151,7 +151,7 @@ export class LinearClient {
|
|
|
151
151
|
private async findStateId(name: string): Promise<string | undefined> {
|
|
152
152
|
const linear = this.requireConfig();
|
|
153
153
|
const result = await this.graphql<{ workflowStates: { nodes: LinearStateNode[] } }>(
|
|
154
|
-
`query WorkflowStates($teamId:
|
|
154
|
+
`query WorkflowStates($teamId: ID!) {
|
|
155
155
|
workflowStates(filter: { team: { id: { eq: $teamId } } }) {
|
|
156
156
|
nodes { id name }
|
|
157
157
|
}
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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({
|
|
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
|
|