@nairon-ai/aegis 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -11
- package/dist-node/cli/commands/disconnect.d.ts +3 -0
- package/dist-node/cli/commands/disconnect.d.ts.map +1 -0
- package/dist-node/cli/commands/disconnect.js +59 -0
- package/dist-node/cli/commands/disconnect.js.map +1 -0
- package/dist-node/cli/commands/init.d.ts.map +1 -1
- package/dist-node/cli/commands/init.js +15 -6
- package/dist-node/cli/commands/init.js.map +1 -1
- package/dist-node/cli/commands/setup.d.ts.map +1 -1
- package/dist-node/cli/commands/setup.js +199 -26
- package/dist-node/cli/commands/setup.js.map +1 -1
- package/dist-node/cli/github-app-flow.d.ts +9 -0
- package/dist-node/cli/github-app-flow.d.ts.map +1 -0
- package/dist-node/cli/github-app-flow.js +190 -0
- package/dist-node/cli/github-app-flow.js.map +1 -0
- package/dist-node/cli/index.js +16 -1
- package/dist-node/cli/index.js.map +1 -1
- package/dist-node/cli/state.d.ts.map +1 -1
- package/dist-node/cli/state.js +5 -0
- package/dist-node/cli/state.js.map +1 -1
- package/dist-node/github/manifest.d.ts +13 -3
- package/dist-node/github/manifest.d.ts.map +1 -1
- package/dist-node/github/manifest.js +19 -10
- package/dist-node/github/manifest.js.map +1 -1
- package/docs/SETUP.md +73 -7
- package/package.json +1 -1
- package/src/cli/commands/disconnect.ts +70 -0
- package/src/cli/commands/init.ts +15 -6
- package/src/cli/commands/setup.ts +205 -42
- package/src/cli/github-app-flow.ts +248 -0
- package/src/cli/index.ts +18 -1
- package/src/cli/state.ts +5 -0
- package/src/github/manifest.ts +26 -10
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { randomBytes, randomUUID } from "node:crypto";
|
|
3
|
+
import { createServer } from "node:http";
|
|
4
|
+
import { consola } from "consola";
|
|
5
|
+
import { exchangeManifestCode, generateManifest, getManifestCreationUrl, } from "../github/manifest.js";
|
|
6
|
+
export async function runGitHubAppFlow(options) {
|
|
7
|
+
const [owner, repo] = options.monitoredRepo.split("/");
|
|
8
|
+
if (!owner || !repo) {
|
|
9
|
+
throw new Error("GitHub App setup needs MONITORED_REPO in owner/repo format.");
|
|
10
|
+
}
|
|
11
|
+
const ownerType = await detectOwnerType(owner);
|
|
12
|
+
const state = randomUUID();
|
|
13
|
+
const appName = buildAppName(owner, repo);
|
|
14
|
+
let createdApp;
|
|
15
|
+
const result = await new Promise((resolve, reject) => {
|
|
16
|
+
const server = createServer(async (request, response) => {
|
|
17
|
+
try {
|
|
18
|
+
const host = request.headers.host;
|
|
19
|
+
if (!host) {
|
|
20
|
+
writeText(response, 400, "Missing Host header.");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const currentUrl = new URL(request.url ?? "/", `http://${host}`);
|
|
24
|
+
const baseUrl = `http://${host}`;
|
|
25
|
+
if (currentUrl.pathname === "/") {
|
|
26
|
+
const manifest = generateManifest({
|
|
27
|
+
appName,
|
|
28
|
+
redirectUrl: `${baseUrl}/callback`,
|
|
29
|
+
setupUrl: `${baseUrl}/installed`,
|
|
30
|
+
webhookUrl: options.workerUrl
|
|
31
|
+
? `${options.workerUrl.replace(/\/$/, "")}/webhook/github`
|
|
32
|
+
: "https://example.com/aegis/webhook/github",
|
|
33
|
+
webhookActive: Boolean(options.workerUrl),
|
|
34
|
+
});
|
|
35
|
+
writeHtml(response, renderManifestForm({
|
|
36
|
+
actionUrl: getManifestCreationUrl(ownerType === "Organization" ? owner : undefined, state),
|
|
37
|
+
manifest,
|
|
38
|
+
owner,
|
|
39
|
+
repo,
|
|
40
|
+
appName,
|
|
41
|
+
webhookActive: Boolean(options.workerUrl),
|
|
42
|
+
}));
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (currentUrl.pathname === "/callback") {
|
|
46
|
+
if (currentUrl.searchParams.get("state") !== state) {
|
|
47
|
+
writeText(response, 400, "State mismatch. Close this tab and rerun aegis setup.");
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const code = currentUrl.searchParams.get("code");
|
|
51
|
+
if (!code) {
|
|
52
|
+
writeText(response, 400, "Missing GitHub manifest code.");
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
createdApp = await exchangeManifestCode(code);
|
|
56
|
+
const installUrl = `${createdApp.htmlUrl}/installations/new`;
|
|
57
|
+
consola.success(`Created GitHub App: ${createdApp.appName}`);
|
|
58
|
+
consola.info(`Install it on ${options.monitoredRepo}: ${installUrl}`);
|
|
59
|
+
writeHtml(response, renderInstallPage(installUrl, options.monitoredRepo));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (currentUrl.pathname === "/installed") {
|
|
63
|
+
const installationId = currentUrl.searchParams.get("installation_id");
|
|
64
|
+
if (!installationId || !createdApp) {
|
|
65
|
+
writeText(response, 400, "Install callback was missing installation_id. Copy the installation ID from the GitHub URL and rerun setup.");
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
writeHtml(response, renderDonePage());
|
|
69
|
+
resolve({ ...createdApp, installationId });
|
|
70
|
+
setTimeout(() => server.close(), 250);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
writeText(response, 404, "Not found.");
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
reject(error);
|
|
77
|
+
writeText(response, 500, error instanceof Error ? error.message : String(error));
|
|
78
|
+
setTimeout(() => server.close(), 250);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
server.on("error", reject);
|
|
82
|
+
server.listen(0, "127.0.0.1", () => {
|
|
83
|
+
const address = server.address();
|
|
84
|
+
if (!address || typeof address === "string") {
|
|
85
|
+
reject(new Error("Could not start local GitHub App setup server."));
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const url = `http://127.0.0.1:${address.port}/`;
|
|
89
|
+
consola.info("Opening GitHub App setup in your browser.");
|
|
90
|
+
consola.info("Click Create GitHub App, then Install, then select only the monitored repo.");
|
|
91
|
+
consola.info(`If the browser does not open, paste this URL:\n${url}`);
|
|
92
|
+
openBrowser(url);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
async function detectOwnerType(owner) {
|
|
98
|
+
try {
|
|
99
|
+
const response = await fetch(`https://api.github.com/users/${owner}`, {
|
|
100
|
+
headers: {
|
|
101
|
+
Accept: "application/vnd.github+json",
|
|
102
|
+
"X-GitHub-Api-Version": "2022-11-28",
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
if (!response.ok)
|
|
106
|
+
return "Organization";
|
|
107
|
+
const data = (await response.json());
|
|
108
|
+
return data.type === "User" ? "User" : "Organization";
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return "Organization";
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function buildAppName(owner, repo) {
|
|
115
|
+
const suffix = randomBytes(2).toString("hex");
|
|
116
|
+
return `aegis-${owner}-${repo}-${suffix}`
|
|
117
|
+
.toLowerCase()
|
|
118
|
+
.replace(/[^a-z0-9-]/g, "-")
|
|
119
|
+
.replace(/-+/g, "-")
|
|
120
|
+
.slice(0, 34);
|
|
121
|
+
}
|
|
122
|
+
function openBrowser(url) {
|
|
123
|
+
const command = process.platform === "darwin" ? "open" : process.platform === "win32" ? "cmd" : "xdg-open";
|
|
124
|
+
const args = process.platform === "win32" ? ["/c", "start", "", url] : [url];
|
|
125
|
+
const child = spawn(command, args, { detached: true, stdio: "ignore" });
|
|
126
|
+
child.unref();
|
|
127
|
+
}
|
|
128
|
+
function renderManifestForm(options) {
|
|
129
|
+
return page("Create Aegis GitHub App", `
|
|
130
|
+
<h1>Create Aegis GitHub App</h1>
|
|
131
|
+
<p>This will create a private GitHub App for <strong>${escapeHtml(options.owner)}/${escapeHtml(options.repo)}</strong>.</p>
|
|
132
|
+
<ul>
|
|
133
|
+
<li>Permissions: contents, issues, pull requests</li>
|
|
134
|
+
<li>Events: issues, issue comments, pull requests</li>
|
|
135
|
+
<li>App name: ${escapeHtml(options.appName)}</li>
|
|
136
|
+
<li>Webhook: ${options.webhookActive ? "enabled" : "disabled until deploy"}</li>
|
|
137
|
+
</ul>
|
|
138
|
+
<form action="${escapeHtml(options.actionUrl)}" method="post">
|
|
139
|
+
<input type="hidden" name="manifest" value="${escapeHtml(JSON.stringify(options.manifest))}">
|
|
140
|
+
<button type="submit">Create GitHub App</button>
|
|
141
|
+
</form>
|
|
142
|
+
`);
|
|
143
|
+
}
|
|
144
|
+
function renderInstallPage(installUrl, repo) {
|
|
145
|
+
return page("Install Aegis GitHub App", `
|
|
146
|
+
<h1>GitHub App created</h1>
|
|
147
|
+
<p>Now install it on <strong>${escapeHtml(repo)}</strong>. Choose <strong>Only select repositories</strong> and pick that repo.</p>
|
|
148
|
+
<p><a class="button" href="${escapeHtml(installUrl)}">Install GitHub App</a></p>
|
|
149
|
+
`);
|
|
150
|
+
}
|
|
151
|
+
function renderDonePage() {
|
|
152
|
+
return page("Aegis GitHub App Connected", `
|
|
153
|
+
<h1>Aegis is connected</h1>
|
|
154
|
+
<p>You can close this tab and return to your terminal.</p>
|
|
155
|
+
`);
|
|
156
|
+
}
|
|
157
|
+
function page(title, body) {
|
|
158
|
+
return `<!doctype html>
|
|
159
|
+
<html lang="en">
|
|
160
|
+
<head>
|
|
161
|
+
<meta charset="utf-8">
|
|
162
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
163
|
+
<title>${escapeHtml(title)}</title>
|
|
164
|
+
<style>
|
|
165
|
+
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; max-width: 680px; margin: 64px auto; padding: 0 24px; color: #111827; line-height: 1.5; }
|
|
166
|
+
h1 { font-size: 28px; margin-bottom: 12px; }
|
|
167
|
+
button, .button { display: inline-block; border: 0; border-radius: 6px; background: #166534; color: white; padding: 10px 14px; font: inherit; text-decoration: none; cursor: pointer; }
|
|
168
|
+
ul { padding-left: 22px; }
|
|
169
|
+
</style>
|
|
170
|
+
</head>
|
|
171
|
+
<body>${body}</body>
|
|
172
|
+
</html>`;
|
|
173
|
+
}
|
|
174
|
+
function writeHtml(response, html) {
|
|
175
|
+
response.writeHead(200, { "content-type": "text/html; charset=utf-8" });
|
|
176
|
+
response.end(html);
|
|
177
|
+
}
|
|
178
|
+
function writeText(response, status, text) {
|
|
179
|
+
response.writeHead(status, { "content-type": "text/plain; charset=utf-8" });
|
|
180
|
+
response.end(text);
|
|
181
|
+
}
|
|
182
|
+
function escapeHtml(value) {
|
|
183
|
+
return value
|
|
184
|
+
.replace(/&/g, "&")
|
|
185
|
+
.replace(/</g, "<")
|
|
186
|
+
.replace(/>/g, ">")
|
|
187
|
+
.replace(/"/g, """)
|
|
188
|
+
.replace(/'/g, "'");
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=github-app-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-app-flow.js","sourceRoot":"","sources":["../../src/cli/github-app-flow.ts"],"names":[],"mappings":"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"}
|
package/dist-node/cli/index.js
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { resolve } from "node:path";
|
|
2
4
|
import { defineCommand, runMain } from "citty";
|
|
3
5
|
import { deployCommand } from "./commands/deploy.js";
|
|
6
|
+
import { disconnectCommand } from "./commands/disconnect.js";
|
|
4
7
|
import { initCommand } from "./commands/init.js";
|
|
5
8
|
import { pickupCommand } from "./commands/pickup.js";
|
|
6
9
|
import { setupCommand } from "./commands/setup.js";
|
|
7
10
|
import { statusCommand } from "./commands/status.js";
|
|
11
|
+
import { findPackageRoot } from "./paths.js";
|
|
8
12
|
const main = defineCommand({
|
|
9
13
|
meta: {
|
|
10
14
|
name: "aegis",
|
|
11
|
-
version:
|
|
15
|
+
version: getPackageVersion(),
|
|
12
16
|
description: "Aegis - self-hosted AFK bug-fixing agent",
|
|
13
17
|
},
|
|
14
18
|
default: "menu",
|
|
@@ -18,6 +22,7 @@ const main = defineCommand({
|
|
|
18
22
|
pickup: pickupCommand,
|
|
19
23
|
status: statusCommand,
|
|
20
24
|
deploy: deployCommand,
|
|
25
|
+
disconnect: disconnectCommand,
|
|
21
26
|
menu: defineCommand({
|
|
22
27
|
meta: { name: "menu", description: "Open the interactive menu", hidden: true },
|
|
23
28
|
async run() {
|
|
@@ -33,4 +38,14 @@ const main = defineCommand({
|
|
|
33
38
|
},
|
|
34
39
|
});
|
|
35
40
|
runMain(main);
|
|
41
|
+
function getPackageVersion() {
|
|
42
|
+
try {
|
|
43
|
+
const packageRoot = findPackageRoot(import.meta.url);
|
|
44
|
+
const pkg = JSON.parse(readFileSync(resolve(packageRoot, "package.json"), "utf-8"));
|
|
45
|
+
return pkg.version ?? "0.0.0";
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return "0.0.0";
|
|
49
|
+
}
|
|
50
|
+
}
|
|
36
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,IAAI,GAAG,aAAa,CAAC;IAC1B,IAAI,EAAE;QACL,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,iBAAiB,EAAE;QAC5B,WAAW,EAAE,0CAA0C;KACvD;IACD,OAAO,EAAE,MAAM;IACf,WAAW,EAAE;QACZ,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,aAAa;QACrB,UAAU,EAAE,iBAAiB;QAC7B,IAAI,EAAE,aAAa,CAAC;YACnB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,EAAE,IAAI,EAAE;YAC9E,KAAK,CAAC,GAAG;gBACR,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC5E,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC;oBAClC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;oBAC/D,MAAM,cAAc,EAAE,CAAC;oBACvB,OAAO;gBACR,CAAC;gBACD,MAAM,kBAAkB,EAAE,CAAC;YAC5B,CAAC;SACD,CAAC;KACF;CACD,CAAC,CAAC;AAEH,OAAO,CAAC,IAAI,CAAC,CAAC;AAEd,SAAS,iBAAiB;IACzB,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAEjF,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,OAAO,CAAC;IAChB,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/cli/state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF,wBAAgB,UAAU,IAAI,cAAc,CAyG3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CA0CvD;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAoB7C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAUlD;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/cli/state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF,wBAAgB,UAAU,IAAI,cAAc,CAyG3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CA0CvD;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAoB7C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAUlD;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BxD"}
|
package/dist-node/cli/state.js
CHANGED
|
@@ -192,6 +192,7 @@ export async function runInteractiveMenu() {
|
|
|
192
192
|
{ label: "Run setup", value: "setup" },
|
|
193
193
|
{ label: "View status", value: "status" },
|
|
194
194
|
{ label: "Deploy worker", value: "deploy" },
|
|
195
|
+
{ label: "Disconnect Aegis", value: "disconnect" },
|
|
195
196
|
],
|
|
196
197
|
});
|
|
197
198
|
if (choice === "pickup") {
|
|
@@ -210,5 +211,9 @@ export async function runInteractiveMenu() {
|
|
|
210
211
|
const { runDeploy } = await import("./commands/deploy.js");
|
|
211
212
|
await runDeploy();
|
|
212
213
|
}
|
|
214
|
+
if (choice === "disconnect") {
|
|
215
|
+
const { runDisconnectGuide } = await import("./commands/disconnect.js");
|
|
216
|
+
runDisconnectGuide();
|
|
217
|
+
}
|
|
213
218
|
}
|
|
214
219
|
//# sourceMappingURL=state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/cli/state.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/cli/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
export type ManifestResult = {
|
|
14
14
|
appId: string;
|
|
15
|
+
slug: string;
|
|
15
16
|
appName: string;
|
|
16
17
|
privateKey: string;
|
|
17
18
|
webhookSecret: string;
|
|
@@ -22,13 +23,22 @@ export type ManifestResult = {
|
|
|
22
23
|
/**
|
|
23
24
|
* Generate the GitHub App manifest JSON.
|
|
24
25
|
*/
|
|
25
|
-
export declare function generateManifest(
|
|
26
|
+
export declare function generateManifest(options: {
|
|
27
|
+
appName: string;
|
|
28
|
+
redirectUrl: string;
|
|
29
|
+
setupUrl: string;
|
|
30
|
+
webhookUrl: string;
|
|
31
|
+
webhookActive: boolean;
|
|
32
|
+
}): Record<string, unknown>;
|
|
26
33
|
/**
|
|
27
34
|
* Exchange a manifest code for full app credentials.
|
|
28
35
|
*/
|
|
29
36
|
export declare function exchangeManifestCode(code: string): Promise<ManifestResult>;
|
|
30
37
|
/**
|
|
31
|
-
* Get the manifest creation URL
|
|
38
|
+
* Get the manifest creation URL for manual fallback.
|
|
39
|
+
*
|
|
40
|
+
* GitHub requires the manifest to be POSTed to this URL. Do not send users here
|
|
41
|
+
* directly without a form body.
|
|
32
42
|
*/
|
|
33
|
-
export declare function getManifestCreationUrl(
|
|
43
|
+
export declare function getManifestCreationUrl(owner?: string, state?: string): string;
|
|
34
44
|
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/github/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/github/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACvB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiB1B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmChF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7E"}
|
|
@@ -20,16 +20,19 @@ const MANIFEST_EVENTS = ["issues", "issue_comment", "pull_request"];
|
|
|
20
20
|
/**
|
|
21
21
|
* Generate the GitHub App manifest JSON.
|
|
22
22
|
*/
|
|
23
|
-
export function generateManifest(
|
|
23
|
+
export function generateManifest(options) {
|
|
24
24
|
return {
|
|
25
|
-
name:
|
|
25
|
+
name: options.appName,
|
|
26
26
|
url: "https://github.com/Nairon-AI/aegis",
|
|
27
|
+
description: "Self-hosted AFK bug-fixing agent for ready GitHub issues.",
|
|
27
28
|
hook_attributes: {
|
|
28
|
-
url:
|
|
29
|
-
active:
|
|
29
|
+
url: options.webhookUrl,
|
|
30
|
+
active: options.webhookActive,
|
|
30
31
|
},
|
|
31
|
-
redirect_url:
|
|
32
|
-
callback_urls: [
|
|
32
|
+
redirect_url: options.redirectUrl,
|
|
33
|
+
callback_urls: [options.redirectUrl, options.setupUrl],
|
|
34
|
+
setup_url: options.setupUrl,
|
|
35
|
+
setup_on_update: true,
|
|
33
36
|
public: false,
|
|
34
37
|
default_permissions: MANIFEST_PERMISSIONS,
|
|
35
38
|
default_events: MANIFEST_EVENTS,
|
|
@@ -53,6 +56,7 @@ export async function exchangeManifestCode(code) {
|
|
|
53
56
|
const data = (await response.json());
|
|
54
57
|
return {
|
|
55
58
|
appId: String(data.id),
|
|
59
|
+
slug: data.slug,
|
|
56
60
|
appName: data.name,
|
|
57
61
|
privateKey: data.pem,
|
|
58
62
|
webhookSecret: data.webhook_secret,
|
|
@@ -62,10 +66,15 @@ export async function exchangeManifestCode(code) {
|
|
|
62
66
|
};
|
|
63
67
|
}
|
|
64
68
|
/**
|
|
65
|
-
* Get the manifest creation URL
|
|
69
|
+
* Get the manifest creation URL for manual fallback.
|
|
70
|
+
*
|
|
71
|
+
* GitHub requires the manifest to be POSTed to this URL. Do not send users here
|
|
72
|
+
* directly without a form body.
|
|
66
73
|
*/
|
|
67
|
-
export function getManifestCreationUrl(
|
|
68
|
-
const
|
|
69
|
-
|
|
74
|
+
export function getManifestCreationUrl(owner, state) {
|
|
75
|
+
const base = owner
|
|
76
|
+
? `https://github.com/organizations/${owner}/settings/apps/new`
|
|
77
|
+
: "https://github.com/settings/apps/new";
|
|
78
|
+
return state ? `${base}?state=${encodeURIComponent(state)}` : base;
|
|
70
79
|
}
|
|
71
80
|
//# sourceMappingURL=manifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/github/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,oBAAoB,GAAG;IAC5B,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,OAAO;IACtB,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/github/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,oBAAoB,GAAG;IAC5B,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,OAAO;IACtB,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;AAapE;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAMhC;IACA,OAAO;QACN,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,GAAG,EAAE,oCAAoC;QACzC,WAAW,EAAE,2DAA2D;QACxE,eAAe,EAAE;YAChB,GAAG,EAAE,OAAO,CAAC,UAAU;YACvB,MAAM,EAAE,OAAO,CAAC,aAAa;SAC7B;QACD,YAAY,EAAE,OAAO,CAAC,WAAW;QACjC,aAAa,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC;QACtD,SAAS,EAAE,OAAO,CAAC,QAAQ;QAC3B,eAAe,EAAE,IAAI;QACrB,MAAM,EAAE,KAAK;QACb,mBAAmB,EAAE,oBAAoB;QACzC,cAAc,EAAE,eAAe;KAC/B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,wCAAwC,IAAI,cAAc,EAAE;QACxF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACR,MAAM,EAAE,6BAA6B;YACrC,sBAAsB,EAAE,YAAY;SACpC;KACD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CASlC,CAAC;IAEF,OAAO;QACN,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,IAAI;QAClB,UAAU,EAAE,IAAI,CAAC,GAAG;QACpB,aAAa,EAAE,IAAI,CAAC,cAAc;QAClC,QAAQ,EAAE,IAAI,CAAC,SAAS;QACxB,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,OAAO,EAAE,IAAI,CAAC,QAAQ;KACtB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,KAAc;IACpE,MAAM,IAAI,GAAG,KAAK;QACjB,CAAC,CAAC,oCAAoC,KAAK,oBAAoB;QAC/D,CAAC,CAAC,sCAAsC,CAAC;IAC1C,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpE,CAAC"}
|
package/docs/SETUP.md
CHANGED
|
@@ -88,7 +88,7 @@ Pick one path.
|
|
|
88
88
|
|
|
89
89
|
### Option A: GitHub Token
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
Use this only if you already know how to create GitHub tokens. Most users should use the one-click GitHub App flow.
|
|
92
92
|
|
|
93
93
|
Create a fine-grained personal access token:
|
|
94
94
|
|
|
@@ -100,11 +100,32 @@ Create a fine-grained personal access token:
|
|
|
100
100
|
|
|
101
101
|
The token lets Aegis scan issues, create branches, push fixes, and open PRs.
|
|
102
102
|
|
|
103
|
-
### Option B: GitHub App
|
|
103
|
+
### Option B: One-Click GitHub App
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
Recommended for most users. The setup wizard can create the GitHub App for you.
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
When `aegis setup` asks for `Auth method`, choose:
|
|
108
|
+
|
|
109
|
+
```text
|
|
110
|
+
One-click GitHub App (best for deployed/team use)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Aegis opens a browser page. You click:
|
|
114
|
+
|
|
115
|
+
1. `Create GitHub App`
|
|
116
|
+
2. `Install`
|
|
117
|
+
3. `Only select repositories`
|
|
118
|
+
4. Pick the monitored repo
|
|
119
|
+
|
|
120
|
+
The CLI saves the App ID, private key, webhook secret, and installation ID into `.aegis/.env`.
|
|
121
|
+
|
|
122
|
+
If you have not deployed yet, the app webhook starts disabled. That is fine for local dry-run. After deploy, add the repo webhook from Step 9.
|
|
123
|
+
|
|
124
|
+
### Option C: Existing GitHub App
|
|
125
|
+
|
|
126
|
+
Use this only if you already have an app.
|
|
127
|
+
|
|
128
|
+
The app needs:
|
|
108
129
|
|
|
109
130
|
- Contents: read/write
|
|
110
131
|
- Issues: read/write
|
|
@@ -120,7 +141,7 @@ Then:
|
|
|
120
141
|
4. Save the Installation ID from the installation URL.
|
|
121
142
|
5. Keep the private key `.pem` available for setup.
|
|
122
143
|
|
|
123
|
-
If you do not know which one to pick, use
|
|
144
|
+
If you do not know which one to pick, use the one-click GitHub App.
|
|
124
145
|
|
|
125
146
|
## Step 4: Run The Setup Wizard
|
|
126
147
|
|
|
@@ -130,9 +151,9 @@ npx @nairon-ai/aegis setup
|
|
|
130
151
|
|
|
131
152
|
Important answers:
|
|
132
153
|
|
|
133
|
-
- `GitHub repo to monitor`: the app repo, for example `acme/web-app`
|
|
154
|
+
- `GitHub repo to monitor`: the app repo, for example `acme/web-app` or `https://github.com/acme/web-app`
|
|
134
155
|
- `Base branch`: usually `main`
|
|
135
|
-
- GitHub auth:
|
|
156
|
+
- GitHub auth: use `One-click GitHub App` unless you already know how to create a fine-grained GitHub token
|
|
136
157
|
- `GitHub webhook secret`: generate one and keep it in `.aegis/.env`
|
|
137
158
|
- `Automation mode`: start with `plan-first`
|
|
138
159
|
- `Context profile`: start with `minimal`
|
|
@@ -382,6 +403,51 @@ Rules:
|
|
|
382
403
|
- Do not provide write credentials.
|
|
383
404
|
- Paste provider links/errors into the issue whenever possible.
|
|
384
405
|
|
|
406
|
+
## Disconnect Aegis
|
|
407
|
+
|
|
408
|
+
Run this from the product repo:
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
npx --yes @nairon-ai/aegis@latest disconnect
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
That prints the safe shutdown checklist. It does not delete anything automatically.
|
|
415
|
+
|
|
416
|
+
Manual checklist:
|
|
417
|
+
|
|
418
|
+
1. Stop the Worker if deployed:
|
|
419
|
+
|
|
420
|
+
```bash
|
|
421
|
+
npx wrangler delete aegis-worker
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
2. Remove GitHub access:
|
|
425
|
+
|
|
426
|
+
- If you used the one-click GitHub App: open the repo's GitHub settings, go to GitHub Apps, and uninstall the Aegis app.
|
|
427
|
+
- If you used a GitHub token: open https://github.com/settings/personal-access-tokens and revoke the Aegis token.
|
|
428
|
+
|
|
429
|
+
3. Remove webhooks:
|
|
430
|
+
|
|
431
|
+
- GitHub: repo settings -> Webhooks -> delete Aegis webhook.
|
|
432
|
+
- Linear: Linear settings -> API/Webhooks -> delete Aegis webhook.
|
|
433
|
+
- Telegram:
|
|
434
|
+
|
|
435
|
+
```bash
|
|
436
|
+
curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/deleteWebhook"
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
4. Remove local config:
|
|
440
|
+
|
|
441
|
+
```bash
|
|
442
|
+
rm -rf .aegis
|
|
443
|
+
npm remove @nairon-ai/aegis
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
5. Optional cleanup:
|
|
447
|
+
|
|
448
|
+
- Keep `bug` and `ready to implement` if your team uses them.
|
|
449
|
+
- Remove Aegis-only labels if you want: `aegis:in-progress`, `aegis:needs-info`, `aegis:blocked`, `aegis:pr-opened`.
|
|
450
|
+
|
|
385
451
|
## Troubleshooting
|
|
386
452
|
|
|
387
453
|
`No ready bugs found.`
|
package/package.json
CHANGED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { defineCommand } from "citty";
|
|
2
|
+
import { consola } from "consola";
|
|
3
|
+
import { loadConfig } from "../state.js";
|
|
4
|
+
|
|
5
|
+
export const disconnectCommand = defineCommand({
|
|
6
|
+
meta: {
|
|
7
|
+
name: "disconnect",
|
|
8
|
+
description: "Show how to fully disconnect Aegis from this repo",
|
|
9
|
+
},
|
|
10
|
+
run() {
|
|
11
|
+
runDisconnectGuide();
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export function runDisconnectGuide(): void {
|
|
16
|
+
const config = loadConfig();
|
|
17
|
+
const workerName = "aegis-worker";
|
|
18
|
+
const repo = config.monitoredRepo ?? "your GitHub repo";
|
|
19
|
+
|
|
20
|
+
consola.log("\n Disconnect Aegis\n");
|
|
21
|
+
consola.log(
|
|
22
|
+
"This prints the safe shutdown checklist. It does not delete anything automatically.\n",
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
consola.log("1. Stop the cloud worker");
|
|
26
|
+
consola.log(" If you deployed Aegis, delete the Cloudflare Worker:");
|
|
27
|
+
consola.log(` npx wrangler delete ${workerName}`);
|
|
28
|
+
consola.log(" Also remove any Cloudflare secrets for Aegis if they remain.\n");
|
|
29
|
+
|
|
30
|
+
consola.log("2. Remove GitHub access");
|
|
31
|
+
if (config.githubAppId) {
|
|
32
|
+
consola.log(" You used a GitHub App.");
|
|
33
|
+
consola.log(
|
|
34
|
+
` Open GitHub -> ${repo} -> Settings -> GitHub Apps, then uninstall the Aegis app.`,
|
|
35
|
+
);
|
|
36
|
+
consola.log(
|
|
37
|
+
" Or open your GitHub account/org settings -> GitHub Apps -> Aegis -> Uninstall.",
|
|
38
|
+
);
|
|
39
|
+
} else if (config.githubToken) {
|
|
40
|
+
consola.log(" You used a GitHub token.");
|
|
41
|
+
consola.log(" Open https://github.com/settings/personal-access-tokens");
|
|
42
|
+
consola.log(" Find the token you created for Aegis and revoke/delete it.");
|
|
43
|
+
} else {
|
|
44
|
+
consola.log(" No GitHub token/app is saved in local config.");
|
|
45
|
+
}
|
|
46
|
+
consola.log("");
|
|
47
|
+
|
|
48
|
+
consola.log("3. Remove webhooks");
|
|
49
|
+
consola.log(` GitHub: open ${repo} -> Settings -> Webhooks, delete the Aegis webhook.`);
|
|
50
|
+
if (config.linearApiKey) {
|
|
51
|
+
consola.log(" Linear: open Linear Settings -> API/Webhooks, delete the Aegis webhook.");
|
|
52
|
+
}
|
|
53
|
+
if (config.telegramBotToken) {
|
|
54
|
+
consola.log(" Telegram: remove the webhook:");
|
|
55
|
+
consola.log(' curl "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/deleteWebhook"');
|
|
56
|
+
}
|
|
57
|
+
consola.log("");
|
|
58
|
+
|
|
59
|
+
consola.log("4. Remove local config from this repo");
|
|
60
|
+
consola.log(" rm -rf .aegis");
|
|
61
|
+
consola.log(" If you installed Aegis as a dev dependency:");
|
|
62
|
+
consola.log(" npm remove @nairon-ai/aegis");
|
|
63
|
+
consola.log("");
|
|
64
|
+
|
|
65
|
+
consola.log("5. Optional cleanup");
|
|
66
|
+
consola.log(" Leave labels like bug and ready to implement if your team uses them.");
|
|
67
|
+
consola.log(" Remove Aegis-only labels if you do not want them:");
|
|
68
|
+
consola.log(" aegis:in-progress, aegis:needs-info, aegis:blocked, aegis:pr-opened");
|
|
69
|
+
consola.log("");
|
|
70
|
+
}
|