@nairon-ai/aegis 0.5.5 → 0.5.6

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 CHANGED
@@ -111,6 +111,8 @@ Aegis is installed from npm/GitHub and configured inside the app repo.
111
111
  - **Local dry-run:** no Cloudflare required. `npx @nairon-ai/aegis pickup --dry-run` only scans GitHub/Linear and prints decisions.
112
112
  - **Real AFK watcher:** yes. Aegis v1 deploys as a Cloudflare Worker and runs coding work in Cloudflare Sandbox/Containers.
113
113
  - **Database:** no. Aegis uses GitHub/Linear labels, statuses, comments, and PR branches as its state tracker.
114
+ - **Cloudflare auth:** only needed for deploy. Run `npx wrangler login` once; `aegis deploy` checks this before building.
115
+ - **Sandbox setup:** no separate sandbox dashboard step. Flue generates the Wrangler config and Aegis deploys the Worker/Sandbox binding.
114
116
 
115
117
  Cloudflare Sandbox is currently available on Workers Paid and uses Docker during deploy. See Cloudflare's [Sandbox overview](https://developers.cloudflare.com/sandbox/) and [getting started guide](https://developers.cloudflare.com/sandbox/get-started/).
116
118
 
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,qDAKxB,CAAC;AAEH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAkC/C"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,qDAKxB,CAAC;AAEH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAoC/C"}
@@ -16,6 +16,7 @@ export async function runDeploy() {
16
16
  const config = loadConfig();
17
17
  const flueBin = resolvePackageBinary(packageRoot, "flue");
18
18
  const wranglerBin = resolvePackageBinary(packageRoot, "wrangler");
19
+ runDeployPreflight(packageRoot, wranglerBin);
19
20
  consola.start("Building Flue Worker...");
20
21
  execFileSync(flueBin, ["build", "--target", "cloudflare"], {
21
22
  cwd: packageRoot,
@@ -40,6 +41,42 @@ export async function runDeploy() {
40
41
  consola.success("Deploy complete.");
41
42
  }
42
43
  }
44
+ function runDeployPreflight(packageRoot, wranglerBin) {
45
+ consola.start("Checking Cloudflare deploy prerequisites...");
46
+ checkDocker();
47
+ checkWranglerAuth(packageRoot, wranglerBin);
48
+ consola.info("Cloudflare Sandbox is configured automatically by the generated Wrangler config; no separate sandbox dashboard setup is needed.");
49
+ consola.success("Cloudflare deploy prerequisites look ready");
50
+ }
51
+ function checkDocker() {
52
+ try {
53
+ execFileSync("docker", ["info"], {
54
+ stdio: ["ignore", "ignore", "pipe"],
55
+ });
56
+ }
57
+ catch {
58
+ throw new Error("Docker is required for the Cloudflare Sandbox/Container deploy. Start Docker Desktop, then rerun `npx --yes @nairon-ai/aegis@latest deploy`.");
59
+ }
60
+ }
61
+ function checkWranglerAuth(packageRoot, wranglerBin) {
62
+ let output = "";
63
+ try {
64
+ output = execFileSync(wranglerBin, ["whoami"], {
65
+ cwd: packageRoot,
66
+ stdio: ["ignore", "pipe", "pipe"],
67
+ encoding: "utf-8",
68
+ });
69
+ }
70
+ catch {
71
+ throw new Error("Cloudflare login is required before deploy. Run `npx wrangler login`, finish the browser login, then rerun `npx --yes @nairon-ai/aegis@latest deploy`.");
72
+ }
73
+ if (!output.includes("workers (write)")) {
74
+ consola.warn("Wrangler is logged in, but Aegis could not confirm workers write access. If deploy fails, run `npx wrangler login` again.");
75
+ }
76
+ if (!output.includes("containers (write)") && !output.includes("cloudchamber (write)")) {
77
+ consola.warn("Wrangler is logged in, but Aegis could not confirm Cloudflare Containers/Sandbox access. If deploy fails, check Workers Paid plan access.");
78
+ }
79
+ }
43
80
  function resolvePackageBinary(packageRoot, name) {
44
81
  const candidates = [
45
82
  resolve(packageRoot, "node_modules/.bin", name),
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;IAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;IAC1E,KAAK,CAAC,GAAG;QACR,MAAM,SAAS,EAAE,CAAC;IACnB,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC9B,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,oBAAoB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAElE,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACzC,YAAY,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE;QAC1D,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,SAAS;KAChB,CAAC,CAAC;IAEH,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAEzD,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,YAAY,CAC1B,WAAW,EACX,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC,EACnE;QACC,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,OAAO;KACjB,CACD,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC7D,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,UAAU,CAAC,MAAM,CAAC,CAAC;QACnB,WAAW,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QACtE,OAAO,CAAC,OAAO,CAAC,qBAAqB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrC,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB,EAAE,IAAY;IAC9D,MAAM,UAAU,GAAG;QAClB,OAAO,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,CAAC;QAC/C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC;KACpD,CAAC;IACF,IAAI,OAAO,GAAG,WAAW,CAAC;IAC1B,OAAO,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7D,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACrE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,IAAI,KAAK,CACd,kBAAkB,IAAI,uGAAuG,CAC7H,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CACnB,OAA2C,EAC3C,WAAmB,EACnB,WAAmB;IAEnB,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE;YACzF,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,QAAQ,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;IACF,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,SAAS,CAAC,MAAqC;IACvD,OAAO;QACN,gBAAgB,EAAE,MAAM,CAAC,SAAS;QAClC,cAAc,EAAE,MAAM,CAAC,aAAa;QACpC,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,eAAe,EAAE,MAAM,CAAC,cAAc;QACtC,eAAe,EAAE,MAAM,CAAC,cAAc;QACtC,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,aAAa,EAAE,MAAM,CAAC,WAAW;QACjC,sBAAsB,EAAE,MAAM,CAAC,mBAAmB;QAClD,sBAAsB,EAAE,MAAM,CAAC,oBAAoB;QACnD,qBAAqB,EAAE,MAAM,CAAC,mBAAmB;QACjD,YAAY,EAAE,MAAM,CAAC,WAAW;QAChC,cAAc,EAAE,MAAM,CAAC,YAAY;QACnC,qBAAqB,EAAE,MAAM,CAAC,mBAAmB;QACjD,cAAc,EAAE,MAAM,CAAC,YAAY;QACnC,iBAAiB,EAAE,MAAM,CAAC,eAAe;QACzC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB;QAC7C,yBAAyB,EAAE,MAAM,CAAC,sBAAsB;QACxD,wBAAwB,EAAE,MAAM,CAAC,qBAAqB;QACtD,qBAAqB,EAAE,MAAM,CAAC,mBAAmB;QACjD,gBAAgB,EAAE,MAAM,CAAC,cAAc;QACvC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB;QAC3C,gBAAgB,EAAE,MAAM,CAAC,cAAc;QACvC,uBAAuB,EAAE,MAAM,CAAC,qBAAqB;QACrD,YAAY,EAAE,MAAM,CAAC,WAAW;QAChC,YAAY,EAAE,MAAM,CAAC,WAAW;QAChC,iBAAiB,EAAE,MAAM,CAAC,eAAe;QACzC,cAAc,EAAE,MAAM,CAAC,YAAY;QACnC,iBAAiB,EAAE,MAAM,CAAC,eAAe;QACzC,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,cAAc,EAAE,MAAM,CAAC,YAAY;QACnC,2BAA2B,EAAE,MAAM,CAAC,qBAAqB;KACzD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"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"}
package/docs/SETUP.md CHANGED
@@ -73,14 +73,16 @@ Skip this step if you only want local dry-run.
73
73
  1. Create a Cloudflare account.
74
74
  2. Enable Workers Paid.
75
75
  3. Install/start Docker Desktop.
76
- 4. Log in:
76
+ 4. Log in to Wrangler:
77
77
 
78
78
  ```bash
79
79
  npx wrangler login
80
80
  npx wrangler whoami
81
81
  ```
82
82
 
83
- If deploy fails with a container/Docker error, Docker is usually not running. If deploy fails with a plan/capability error, check the Cloudflare Workers plan.
83
+ You do not need to configure a separate Cloudflare Sandbox in the dashboard. Aegis uses Flue to generate the Wrangler config, including the Sandbox binding, during deploy.
84
+
85
+ If deploy fails with a container/Docker error, Docker is usually not running. If deploy fails with a plan/capability error, check the Cloudflare Workers Paid plan and Containers/Sandbox access.
84
86
 
85
87
  ## Step 3: Give Aegis GitHub Access
86
88
 
@@ -278,10 +280,11 @@ npx @nairon-ai/aegis deploy
278
280
 
279
281
  Deploy does four things:
280
282
 
281
- 1. Pushes `.aegis/.env` values into Cloudflare secrets.
282
- 2. Builds the Flue Worker.
283
- 3. Deploys with Wrangler.
284
- 4. Saves and pushes `AEGIS_WORKER_URL`.
283
+ 1. Checks Docker and Cloudflare login.
284
+ 2. Pushes `.aegis/.env` values into Cloudflare secrets.
285
+ 3. Builds the Flue Worker.
286
+ 4. Deploys with Wrangler.
287
+ 5. Saves and pushes `AEGIS_WORKER_URL`.
285
288
 
286
289
  Expected result:
287
290
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nairon-ai/aegis",
3
- "version": "0.5.5",
3
+ "version": "0.5.6",
4
4
  "description": "Self-hosted AFK bug-fixing agent for GitHub Issues and Linear",
5
5
  "type": "module",
6
6
  "repository": {
@@ -19,6 +19,8 @@ export async function runDeploy(): Promise<void> {
19
19
  const flueBin = resolvePackageBinary(packageRoot, "flue");
20
20
  const wranglerBin = resolvePackageBinary(packageRoot, "wrangler");
21
21
 
22
+ runDeployPreflight(packageRoot, wranglerBin);
23
+
22
24
  consola.start("Building Flue Worker...");
23
25
  execFileSync(flueBin, ["build", "--target", "cloudflare"], {
24
26
  cwd: packageRoot,
@@ -49,6 +51,54 @@ export async function runDeploy(): Promise<void> {
49
51
  }
50
52
  }
51
53
 
54
+ function runDeployPreflight(packageRoot: string, wranglerBin: string): void {
55
+ consola.start("Checking Cloudflare deploy prerequisites...");
56
+ checkDocker();
57
+ checkWranglerAuth(packageRoot, wranglerBin);
58
+ consola.info(
59
+ "Cloudflare Sandbox is configured automatically by the generated Wrangler config; no separate sandbox dashboard setup is needed.",
60
+ );
61
+ consola.success("Cloudflare deploy prerequisites look ready");
62
+ }
63
+
64
+ function checkDocker(): void {
65
+ try {
66
+ execFileSync("docker", ["info"], {
67
+ stdio: ["ignore", "ignore", "pipe"],
68
+ });
69
+ } catch {
70
+ throw new Error(
71
+ "Docker is required for the Cloudflare Sandbox/Container deploy. Start Docker Desktop, then rerun `npx --yes @nairon-ai/aegis@latest deploy`.",
72
+ );
73
+ }
74
+ }
75
+
76
+ function checkWranglerAuth(packageRoot: string, wranglerBin: string): void {
77
+ let output = "";
78
+ try {
79
+ output = execFileSync(wranglerBin, ["whoami"], {
80
+ cwd: packageRoot,
81
+ stdio: ["ignore", "pipe", "pipe"],
82
+ encoding: "utf-8",
83
+ });
84
+ } catch {
85
+ throw new Error(
86
+ "Cloudflare login is required before deploy. Run `npx wrangler login`, finish the browser login, then rerun `npx --yes @nairon-ai/aegis@latest deploy`.",
87
+ );
88
+ }
89
+
90
+ if (!output.includes("workers (write)")) {
91
+ consola.warn(
92
+ "Wrangler is logged in, but Aegis could not confirm workers write access. If deploy fails, run `npx wrangler login` again.",
93
+ );
94
+ }
95
+ if (!output.includes("containers (write)") && !output.includes("cloudchamber (write)")) {
96
+ consola.warn(
97
+ "Wrangler is logged in, but Aegis could not confirm Cloudflare Containers/Sandbox access. If deploy fails, check Workers Paid plan access.",
98
+ );
99
+ }
100
+ }
101
+
52
102
  function resolvePackageBinary(packageRoot: string, name: string): string {
53
103
  const candidates = [
54
104
  resolve(packageRoot, "node_modules/.bin", name),