@euqns/nudge-mcp 1.31.0 → 1.33.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 CHANGED
@@ -192,6 +192,13 @@ settings render. Installed or signed in to an agent after startup? Press
192
192
  **Reload** there and the running process re-probes and re-reports without a
193
193
  restart.
194
194
 
195
+ Globally installed, supervised runners check npm's `latest` release on startup
196
+ and every five minutes. When a newer stable version exists, the runner stops claiming
197
+ jobs, finishes active work, updates its own npm prefix, and restarts. Failed
198
+ checks or installs are logged and retried at the next five-minute check. Set
199
+ `NUDGE_RUNNER_AUTO_UPDATE=0` in the runner's environment to disable release
200
+ checks. Local checkouts and npx installs are not automatically upgraded.
201
+
195
202
  A running runner picks up new builds by itself. The process supervises a child
196
203
  that watches its own installed code; when `dist/` changes (a rebuild, or an npm
197
204
  upgrade in place) it stops claiming jobs, lets in-flight jobs finish on the code
@@ -598,3 +605,52 @@ npm run build # tsc to dist/
598
605
 
599
606
  The server doesn't reload tools at runtime; restart the MCP client when you
600
607
  change tool definitions in `src/index.ts`.
608
+
609
+
610
+ ### Local Codex runner configuration
611
+
612
+ The runner regenerates `~/.nudge/codex-home/config.toml` for each job.
613
+ Put machine-owner TOML overrides in `~/.nudge/codex-overrides.toml` instead;
614
+ they are appended after the generated model defaults. This can explicitly
615
+ trust a project so Codex loads its `.codex/config.toml` and project MCP servers:
616
+
617
+ ```toml
618
+ [projects."/absolute/path/to/project"]
619
+ trust_level = "trusted"
620
+ ```
621
+
622
+ Project workspace networking can be configured with
623
+ `[sandbox_workspace_write] network_access = true` in that project's config.
624
+ The runner still sets the job sandbox mode and approval policy explicitly.
625
+ Overrides are read at each job startup; already-running turns retain their
626
+ existing settings. Do not repeat generated top-level model/auth keys in the
627
+ TOML overrides. Desktop MCP servers remain isolated unless explicitly enabled.
628
+
629
+ ### Runner output files
630
+
631
+ A coding turn can optionally write the JSON manifest at the absolute path supplied
632
+ in its prompt (also `NUDGE_RUNNER_ARTIFACT_MANIFEST`). It is an array of
633
+ `{ "path": "report.md", "contentType": "text/markdown", "name": "report.md" }`.
634
+ Paths are absolute or relative to the checkout; `name` defaults to the basename.
635
+ Only explicitly listed files are uploaded. Engine integrations may instead return
636
+ `EngineResult.artifacts` with the same descriptors. No manifest means no uploads.
637
+
638
+ The runner uploads before `runners:finish` using
639
+ `uploads:getRunnerArtifactUploadUrl`, a direct signed S3 POST, then
640
+ `uploads:confirmRunnerArtifactUpload`. Both actions require the runner token,
641
+ runner ID and job ID; confirmation also requires the returned upload ID. The
642
+ server checks token ownership, board, active lease and job attempt, verifies the
643
+ CDN object, and persists `{ name, contentType, size, url, key }` in job `artifacts`.
644
+ Card job history and job details expose download links with names and types.
645
+
646
+ Limits: 20 files per job across attempts, 10 MiB per file (empty files allowed),
647
+ 255 characters for names/types, and a 64 KiB manifest. Types are opaque metadata,
648
+ including custom types and parameters; bytes are never converted. Files are
649
+ served as attachments, not previewed or sandboxed. URLs use the existing public
650
+ CloudFront attachment model: anyone with a URL can read it.
651
+
652
+ Confirmed files survive success, failure, cancellation and retries. A failed
653
+ upload fails an otherwise successful run, retaining earlier confirmed files.
654
+ Unconfirmed reservations expire after 15 minutes and their S3 objects are deleted;
655
+ confirmed artifacts live as long as the job output. Deploy the updated Convex
656
+ backend before updating runners; existing S3/CloudFront configuration is reused.
@@ -43,6 +43,19 @@ function readTopLevelString(toml, key) {
43
43
  * re-links auth each time, which self-heals the case where Codex replaced the
44
44
  * symlink with a real file during a token refresh.
45
45
  */
46
+ // Machine-owner overrides live outside the generated home so every job keeps
47
+ // explicitly configured project trust and MCP settings. Missing is optional;
48
+ // permission/read errors must not silently discard the operator's settings.
49
+ export async function readCodexOverrides(file = path.join(NUDGE_DIR, "codex-overrides.toml")) {
50
+ try {
51
+ return await fs.readFile(file, "utf8");
52
+ }
53
+ catch (error) {
54
+ if (error.code === "ENOENT")
55
+ return "";
56
+ throw error;
57
+ }
58
+ }
46
59
  export async function ensureCodexShadowHome() {
47
60
  await fs.mkdir(CODEX_SHADOW_HOME, { recursive: true, mode: 0o700 });
48
61
  // Carry the user's model preference forward. Isolating the config would
@@ -59,8 +72,8 @@ export async function ensureCodexShadowHome() {
59
72
  catch {
60
73
  carried = {};
61
74
  }
62
- // A deliberately tiny config. No mcp_servers here: the runner passes the one
63
- // server it wants as `--config` overrides, which apply on top of this.
75
+ // Keep desktop configuration isolated; append only machine-owner opt-ins.
76
+ const overrides = await readCodexOverrides();
64
77
  await fs.writeFile(path.join(CODEX_SHADOW_HOME, "config.toml"), [
65
78
  "# Generated by the Nudge runner — do not edit.",
66
79
  "# Isolated from ~/.codex/config.toml so a job never inherits MCP servers,",
@@ -69,6 +82,7 @@ export async function ensureCodexShadowHome() {
69
82
  'preferred_auth_method = "chatgpt"',
70
83
  ...Object.entries(carried).map(([k, v]) => `${k} = ${JSON.stringify(v)}`),
71
84
  "",
85
+ overrides,
72
86
  ].join("\n"), { mode: 0o600 });
73
87
  const source = realCodexHome();
74
88
  for (const name of AUTH_FILES) {
@@ -1 +1 @@
1
- {"version":3,"file":"isolation.js","sourceRoot":"","sources":["../../src/engines/isolation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isolation.js","sourceRoot":"","sources":["../../src/engines/isolation.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import assert from "node:assert/strict";
2
- import { rm } from "node:fs/promises";
2
+ import { rm, mkdtemp, writeFile } from "node:fs/promises";
3
3
  import test from "node:test";
4
- import { ensureCursorConfigDir } from "./isolation.js";
4
+ import { ensureCursorConfigDir, readCodexOverrides } from "./isolation.js";
5
5
  // ensureCursorConfigDir used to key its per-job directory off
6
6
  // process.env.NUDGE_RUNNER_JOB, which the runner daemon never sets — only the
7
7
  // per-job `env` argument does. That collapsed every job onto one adhoc-<pid>
@@ -29,4 +29,19 @@ test("Cursor config dir is keyed by the job's own env, not the daemon's", async
29
29
  await rm(dirB, { recursive: true, force: true });
30
30
  }
31
31
  });
32
+ test("operator Codex overrides survive repeated reads and missing is optional", async () => {
33
+ const dir = await mkdtemp("/tmp/nudge-codex-overrides-");
34
+ const file = `${dir}/codex-overrides.toml`;
35
+ try {
36
+ assert.equal(await readCodexOverrides(file), "");
37
+ const config = '[projects."/checkout"]\ntrust_level = "trusted"\n';
38
+ await writeFile(file, config);
39
+ assert.equal(await readCodexOverrides(file), config);
40
+ assert.equal(await readCodexOverrides(file), config);
41
+ await assert.rejects(readCodexOverrides(dir));
42
+ }
43
+ finally {
44
+ await rm(dir, { recursive: true, force: true });
45
+ }
46
+ });
32
47
  //# sourceMappingURL=isolation.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isolation.test.js","sourceRoot":"","sources":["../../src/engines/isolation.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,8DAA8D;AAC9D,8EAA8E;AAC9E,6EAA6E;AAC7E,4DAA4D;AAC5D,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;IACnF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACpD,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACpC,IAAI,GAAG,MAAM,qBAAqB,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC7E,IAAI,GAAG,MAAM,qBAAqB,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC7E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC1C,CAAC;YAAS,CAAC;QACT,IAAI,cAAc,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;;YACjE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,cAAc,CAAC;QACnD,IAAI,IAAI;YAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,IAAI;YAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"isolation.test.js","sourceRoot":"","sources":["../../src/engines/isolation.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE3E,8DAA8D;AAC9D,8EAA8E;AAC9E,6EAA6E;AAC7E,4DAA4D;AAC5D,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;IACnF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACpD,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACpC,IAAI,GAAG,MAAM,qBAAqB,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC7E,IAAI,GAAG,MAAM,qBAAqB,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC7E,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC1C,CAAC;YAAS,CAAC;QACT,IAAI,cAAc,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;;YACjE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,cAAc,CAAC;QACnD,IAAI,IAAI;YAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,IAAI;YAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC,CAAC;AAGH,IAAI,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;IACzF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,GAAG,GAAG,uBAAuB,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,mDAAmD,CAAC;QACnE,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/engines/types.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAiG7E,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAc,EAAE,CAAc;IACrD,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CACrC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW;QAC1C,YAAY,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;QAC7C,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,CAAC;QAChE,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,mBAAmB,CAAC;QACtE,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC;KAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/engines/types.ts"],"names":[],"mappings":"AAAA,6EAA6E;AA0G7E,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAc,EAAE,CAAc;IACrD,MAAM,GAAG,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE,CACrC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,OAAO;QACL,WAAW,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW;QAC1C,YAAY,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;QAC7C,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,CAAC;QAChE,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,mBAAmB,CAAC;QACtE,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC;KAC3D,CAAC;AACJ,CAAC"}
@@ -1,11 +1,18 @@
1
1
  import { spawnSync } from "node:child_process";
2
2
  import { constants as fsConstants } from "node:fs";
3
- import { access } from "node:fs/promises";
3
+ import { access, realpath } from "node:fs/promises";
4
4
  import path from "node:path";
5
+ /** Resolve Unix global installs from the entry itself, even when PATH uses another npm prefix. */
6
+ export function installedGlobalPrefix(entry) {
7
+ const normalized = entry.replaceAll("\\", "/");
8
+ return /^(.*)\/lib\/node_modules\/@euqns\/nudge-mcp\/(?:dist|src)\//.exec(normalized)?.[1];
9
+ }
5
10
  export function classifyNudgeInstall(entry, npmGlobalPrefix) {
6
11
  const normalized = entry.replaceAll("\\", "/");
7
12
  if (/(?:^|\/)(?:\.npm|npm-cache)\/_npx\//.test(normalized))
8
13
  return "npx";
14
+ if (installedGlobalPrefix(entry))
15
+ return "global";
9
16
  if (!npmGlobalPrefix)
10
17
  return "unknown";
11
18
  const relative = path.relative(path.resolve(npmGlobalPrefix), path.resolve(entry));
@@ -28,9 +35,11 @@ export async function detectNudgeInstallContext(input = {}) {
28
35
  return false;
29
36
  }
30
37
  });
31
- const prefix = npmPrefix();
38
+ const rawEntry = input.entry ?? process.argv[1] ?? "";
39
+ const entry = await realpath(rawEntry).catch(() => rawEntry);
40
+ const prefix = installedGlobalPrefix(entry) ?? npmPrefix();
32
41
  return {
33
- source: classifyNudgeInstall(input.entry ?? process.argv[1] ?? "", prefix),
42
+ source: classifyNudgeInstall(entry, prefix),
34
43
  ...(prefix ? { npmGlobalPrefixWritable: await canWrite(prefix) } : {}),
35
44
  };
36
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install-context.js","sourceRoot":"","sources":["../src/install-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,eAAwB;IAExB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/C,IAAI,qCAAqC,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,CAAC,eAAe;QAAE,OAAO,SAAS,CAAC;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAChF,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,QAI5C,EAAE;IACJ,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE,SAAiB,EAAE,EAAE;QAC9D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO;QACL,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC;QAC1E,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"install-context.js","sourceRoot":"","sources":["../src/install-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,kGAAkG;AAClG,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,6DAA6D,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,eAAwB;IAExB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/C,IAAI,qCAAqC,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,qBAAqB,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClD,IAAI,CAAC,eAAe;QAAE,OAAO,SAAS,CAAC;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACnF,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAChF,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,QAI5C,EAAE;IACJ,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE,SAAiB,EAAE,EAAE;QAC9D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;IAC3D,OAAO;QACL,MAAM,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC"}
@@ -25,4 +25,14 @@ test("keeps npm-prefix detection failures explicit", async () => {
25
25
  npmPrefix: () => undefined,
26
26
  }), { source: "unknown" });
27
27
  });
28
+ test("recognises the actual global prefix when the shell npm uses Homebrew", async () => {
29
+ const checked = [];
30
+ const context = await detectNudgeInstallContext({
31
+ entry: "/Users/me/.local/lib/node_modules/@euqns/nudge-mcp/dist/index.js",
32
+ npmPrefix: () => "/opt/homebrew",
33
+ canWrite: async (p) => { checked.push(p); return true; },
34
+ });
35
+ assert.deepEqual(context, { source: "global", npmGlobalPrefixWritable: true });
36
+ assert.deepEqual(checked, ["/Users/me/.local"]);
37
+ });
28
38
  //# sourceMappingURL=install-context.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-context.test.js","sourceRoot":"","sources":["../src/install-context.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC7D,MAAM,CAAC,KAAK,CACV,oBAAoB,CAClB,4DAA4D,EAC5D,YAAY,CACb,EACD,QAAQ,CACT,CAAC;IACF,MAAM,CAAC,KAAK,CACV,oBAAoB,CAAC,+BAA+B,EAAE,YAAY,CAAC,EACnE,OAAO,CACR,CAAC;IACF,MAAM,CAAC,KAAK,CACV,oBAAoB,CAAC,qEAAqE,CAAC,EAC3F,KAAK,CACN,CAAC;IACF,MAAM,CAAC,KAAK,CACV,oBAAoB,CAAC,0FAA0F,CAAC,EAChH,KAAK,CACN,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;IACnF,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC;QAC9C,KAAK,EAAE,4DAA4D;QACnE,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY;QAC7B,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK;KAC5B,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;QACxB,MAAM,EAAE,QAAQ;QAChB,uBAAuB,EAAE,KAAK;KAC/B,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,CAAC,SAAS,CACd,MAAM,yBAAyB,CAAC;QAC9B,KAAK,EAAE,+BAA+B;QACtC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;KAC3B,CAAC,EACF,EAAE,MAAM,EAAE,SAAS,EAAE,CACtB,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"install-context.test.js","sourceRoot":"","sources":["../src/install-context.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC7D,MAAM,CAAC,KAAK,CACV,oBAAoB,CAClB,4DAA4D,EAC5D,YAAY,CACb,EACD,QAAQ,CACT,CAAC;IACF,MAAM,CAAC,KAAK,CACV,oBAAoB,CAAC,+BAA+B,EAAE,YAAY,CAAC,EACnE,OAAO,CACR,CAAC;IACF,MAAM,CAAC,KAAK,CACV,oBAAoB,CAAC,qEAAqE,CAAC,EAC3F,KAAK,CACN,CAAC;IACF,MAAM,CAAC,KAAK,CACV,oBAAoB,CAAC,0FAA0F,CAAC,EAChH,KAAK,CACN,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;IACnF,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC;QAC9C,KAAK,EAAE,4DAA4D;QACnE,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY;QAC7B,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK;KAC5B,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE;QACxB,MAAM,EAAE,QAAQ;QAChB,uBAAuB,EAAE,KAAK;KAC/B,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,CAAC,SAAS,CACd,MAAM,yBAAyB,CAAC;QAC9B,KAAK,EAAE,+BAA+B;QACtC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;KAC3B,CAAC,EACF,EAAE,MAAM,EAAE,SAAS,EAAE,CACtB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;IACtF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC;QAC9C,KAAK,EAAE,kEAAkE;QACzE,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe;QAChC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;KACzD,CAAC,CAAC;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { open } from "node:fs/promises";
2
+ import { constants } from "node:fs";
3
+ import path from "node:path";
4
+ import { makeFunctionReference } from "convex/server";
5
+ const MAX_FILES = 20;
6
+ const MAX_BYTES = 10 * 1024 * 1024;
7
+ async function readBounded(filePath, limit) {
8
+ const file = await open(filePath, constants.O_RDONLY | constants.O_NONBLOCK);
9
+ try {
10
+ const stat = await file.stat();
11
+ if (!stat.isFile() || stat.size > limit)
12
+ throw new Error(`Artifact must be a regular file no larger than ${limit} bytes: ${filePath}`);
13
+ const buffer = Buffer.alloc(limit + 1);
14
+ let size = 0;
15
+ while (size < buffer.length) {
16
+ const { bytesRead } = await file.read(buffer, size, buffer.length - size, null);
17
+ if (!bytesRead)
18
+ break;
19
+ size += bytesRead;
20
+ }
21
+ if (size > limit)
22
+ throw new Error(`Artifact exceeds ${limit} bytes: ${filePath}`);
23
+ return buffer.subarray(0, size);
24
+ }
25
+ finally {
26
+ await file.close();
27
+ }
28
+ }
29
+ export async function readArtifactManifest(manifestPath) {
30
+ let bytes;
31
+ try {
32
+ bytes = await readBounded(manifestPath, 64 * 1024);
33
+ }
34
+ catch (error) {
35
+ if (error.code === "ENOENT")
36
+ return [];
37
+ throw error;
38
+ }
39
+ const value = JSON.parse(bytes.toString("utf8"));
40
+ if (!Array.isArray(value) || value.length > MAX_FILES)
41
+ throw new Error("Artifact manifest must be an array of at most 20 files");
42
+ for (const item of value) {
43
+ if (!item || typeof item.path !== "string" || !item.path || typeof item.contentType !== "string" || !item.contentType || (item.name !== undefined && typeof item.name !== "string")) {
44
+ throw new Error("Artifact manifest entries require path and contentType, with optional name");
45
+ }
46
+ }
47
+ return value;
48
+ }
49
+ export async function uploadRunnerArtifacts(client, auth, cwd, artifacts, fetcher = fetch) {
50
+ if (artifacts.length > MAX_FILES)
51
+ throw new Error("A job can return at most 20 artifacts");
52
+ for (const artifact of artifacts) {
53
+ const filePath = path.resolve(cwd, artifact.path);
54
+ const bytes = await readBounded(filePath, MAX_BYTES);
55
+ const name = artifact.name ?? path.basename(filePath);
56
+ const signed = await client.action(makeFunctionReference("uploads:getRunnerArtifactUploadUrl"), {
57
+ ...auth, name, contentType: artifact.contentType, size: bytes.length,
58
+ });
59
+ const form = new FormData();
60
+ for (const [key, value] of Object.entries(signed.fields))
61
+ form.append(key, value);
62
+ form.append("file", new Blob([new Uint8Array(bytes)], { type: artifact.contentType }), name);
63
+ const response = await fetcher(signed.uploadUrl, { method: "POST", body: form, signal: AbortSignal.timeout(120_000) });
64
+ if (!response.ok)
65
+ throw new Error(`Artifact upload failed (${response.status}): ${name}`);
66
+ await client.action(makeFunctionReference("uploads:confirmRunnerArtifactUpload"), { ...auth, uploadId: signed.uploadId });
67
+ }
68
+ }
69
+ //# sourceMappingURL=runner-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-artifacts.js","sourceRoot":"","sources":["../src/runner-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import { mkdtemp, writeFile, rm } from "node:fs/promises";
4
+ import os from "node:os";
5
+ import path from "node:path";
6
+ import { readArtifactManifest, uploadRunnerArtifacts } from "./runner-artifacts.js";
7
+ const auth = { token: "token", runnerId: "runner", jobId: "job" };
8
+ test("manifest is opt-in and validates count and descriptors", async () => {
9
+ const dir = await mkdtemp(path.join(os.tmpdir(), "artifact-test-"));
10
+ try {
11
+ const manifest = path.join(dir, "manifest.json");
12
+ assert.deepEqual(await readArtifactManifest(manifest), []);
13
+ for (const value of [{}, [{}], Array(21).fill({ path: "x", contentType: "custom/type" })]) {
14
+ await writeFile(manifest, JSON.stringify(value));
15
+ await assert.rejects(readArtifactManifest(manifest), /manifest/);
16
+ }
17
+ const files = [{ path: "report.md", contentType: "text/markdown" }];
18
+ await writeFile(manifest, JSON.stringify(files));
19
+ assert.deepEqual(await readArtifactManifest(manifest), files);
20
+ }
21
+ finally {
22
+ await rm(dir, { recursive: true, force: true });
23
+ }
24
+ });
25
+ test("uploads Markdown, JSON, HTML and opaque formats unchanged, then confirms each", async () => {
26
+ const dir = await mkdtemp(path.join(os.tmpdir(), "artifact-test-"));
27
+ try {
28
+ const files = [
29
+ { path: "report.md", contentType: "text/markdown", text: "# Report\n" },
30
+ { path: "data.json", contentType: "application/json", text: '{"ok":true}' },
31
+ { path: "preview.html", contentType: "text/html; charset=utf-8", text: "<h1>Hi</h1>" },
32
+ { path: "other.xyz", contentType: "application/x-custom", text: "opaque" },
33
+ ];
34
+ for (const file of files)
35
+ await writeFile(path.join(dir, file.path), file.text);
36
+ const calls = [];
37
+ let uploaded = 0;
38
+ const client = { action: async (_fn, args) => {
39
+ calls.push(args);
40
+ return { uploadId: `upload-${uploaded}`, uploadUrl: "https://s3.example/upload", fields: { key: "server-key" } };
41
+ } };
42
+ await uploadRunnerArtifacts(client, auth, dir, files, (async (_url, init) => {
43
+ const form = init.body;
44
+ assert.equal(form.get("key"), "server-key");
45
+ assert.equal(await form.get("file").text(), files[uploaded].text);
46
+ uploaded++;
47
+ return new Response(null, { status: 204 });
48
+ }));
49
+ assert.equal(uploaded, 4);
50
+ assert.equal(calls.length, 8);
51
+ assert.deepEqual(calls[0], { ...auth, name: "report.md", contentType: "text/markdown", size: 9 });
52
+ assert.deepEqual(calls[1], { ...auth, uploadId: "upload-0" });
53
+ await uploadRunnerArtifacts(client, auth, dir, []);
54
+ assert.equal(calls.length, 8);
55
+ }
56
+ finally {
57
+ await rm(dir, { recursive: true, force: true });
58
+ }
59
+ });
60
+ test("rejects oversized files and failed uploads without confirming", async () => {
61
+ const dir = await mkdtemp(path.join(os.tmpdir(), "artifact-test-"));
62
+ try {
63
+ const file = { path: "big.bin", contentType: "application/octet-stream" };
64
+ await writeFile(path.join(dir, file.path), Buffer.alloc(10 * 1024 * 1024 + 1));
65
+ let calls = 0;
66
+ const client = { action: async () => { calls++; return { uploadId: "upload", uploadUrl: "https://s3.example", fields: {} }; } };
67
+ await assert.rejects(uploadRunnerArtifacts(client, auth, dir, [file]), /regular file/);
68
+ assert.equal(calls, 0);
69
+ await writeFile(path.join(dir, file.path), "small");
70
+ await assert.rejects(uploadRunnerArtifacts(client, auth, dir, [file], (async () => new Response(null, { status: 403 }))), /403/);
71
+ assert.equal(calls, 1);
72
+ }
73
+ finally {
74
+ await rm(dir, { recursive: true, force: true });
75
+ }
76
+ });
77
+ //# sourceMappingURL=runner-artifacts.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-artifacts.test.js","sourceRoot":"","sources":["../src/runner-artifacts.test.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@
13
13
  // decision logic (which command, how to verify) is testable without a network.
14
14
  import { execFile } from "node:child_process";
15
15
  import { promisify } from "node:util";
16
+ import { fileURLToPath } from "node:url";
17
+ import { installedGlobalPrefix } from "./install-context.js";
16
18
  const execFileAsync = promisify(execFile);
17
19
  export const NUDGE_MCP_PACKAGE = "@euqns/nudge-mcp";
18
20
  /** A version string npm will accept as a spec — bare semver or a dist-tag. */
@@ -31,7 +33,7 @@ export function normalizeTargetVersion(raw) {
31
33
  * local — a checkout or project install; rebuilding it is the update,
32
34
  * and the supervisor already restarts on a rebuilt dist/.
33
35
  */
34
- export function planSelfUpdate(installation, targetVersion) {
36
+ export function planSelfUpdate(installation, targetVersion, prefix = installedGlobalPrefix(fileURLToPath(import.meta.url))) {
35
37
  const spec = `${NUDGE_MCP_PACKAGE}@${normalizeTargetVersion(targetVersion)}`;
36
38
  switch (installation.source) {
37
39
  case "global":
@@ -42,7 +44,7 @@ export function planSelfUpdate(installation, targetVersion) {
42
44
  "then restart the runner.",
43
45
  };
44
46
  }
45
- return { kind: "npm-global", args: ["install", "-g", spec], spec };
47
+ return { kind: "npm-global", args: ["install", "-g", ...(prefix ? ["--prefix", prefix] : []), spec], spec, ...(prefix ? { prefix } : {}) };
46
48
  case "npx":
47
49
  return {
48
50
  kind: "unsupported",
@@ -114,7 +116,7 @@ export async function performSelfUpdate(plan, deps = {}) {
114
116
  }
115
117
  let installedVersion = null;
116
118
  try {
117
- const ls = await run("npm", ["ls", "-g", NUDGE_MCP_PACKAGE, "--json", "--depth=0"]);
119
+ const ls = await run("npm", ["ls", "-g", ...(plan.prefix ? ["--prefix", plan.prefix] : []), NUDGE_MCP_PACKAGE, "--json", "--depth=0"]);
118
120
  installedVersion = parseInstalledVersion(ls.stdout);
119
121
  }
120
122
  catch (err) {
@@ -125,4 +127,24 @@ export async function performSelfUpdate(plan, deps = {}) {
125
127
  }
126
128
  return { ok: true, installedVersion, output };
127
129
  }
130
+ /** Only adopt newer stable releases; never downgrade a locally newer build. */
131
+ export function newerStableVersion(current, candidate) {
132
+ const stable = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;
133
+ if (!stable.test(current) || !stable.test(candidate))
134
+ return false;
135
+ const a = current.split(".").map(Number);
136
+ const b = candidate.split(".").map(Number);
137
+ for (let i = 0; i < 3; i++) {
138
+ if (a[i] !== b[i])
139
+ return b[i] > a[i];
140
+ }
141
+ return false;
142
+ }
143
+ export async function checkLatestRelease(current, run = async (cmd, args) => {
144
+ return await execFileAsync(cmd, args, { encoding: "utf8", timeout: 30_000, maxBuffer: 64 * 1024 });
145
+ }) {
146
+ const { stdout } = await run("npm", ["view", `${NUDGE_MCP_PACKAGE}@latest`, "version", "--json"]);
147
+ const version = JSON.parse(stdout);
148
+ return typeof version === "string" && newerStableVersion(current, version) ? version : null;
149
+ }
128
150
  //# sourceMappingURL=runner-update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-update.js","sourceRoot":"","sources":["../src/runner-update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-update.js","sourceRoot":"","sources":["../src/runner-update.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import assert from "node:assert/strict";
2
2
  import test from "node:test";
3
- import { NUDGE_MCP_PACKAGE, normalizeTargetVersion, parseInstalledVersion, performSelfUpdate, planSelfUpdate, tailOutput, } from "./runner-update.js";
3
+ import { checkLatestRelease, newerStableVersion, NUDGE_MCP_PACKAGE, normalizeTargetVersion, parseInstalledVersion, performSelfUpdate, planSelfUpdate, tailOutput, } from "./runner-update.js";
4
4
  test("target version defaults to latest and drops a leading v", () => {
5
5
  assert.equal(normalizeTargetVersion(undefined), "latest");
6
6
  assert.equal(normalizeTargetVersion(" "), "latest");
@@ -83,4 +83,24 @@ test("an unsupported plan short-circuits with its reason", async () => {
83
83
  assert.equal(result.ok, false);
84
84
  assert.match(result.error, /npx/);
85
85
  });
86
+ test("automatic updates only choose newer stable releases", async () => {
87
+ assert.equal(newerStableVersion("1.9.0", "1.10.0"), true);
88
+ for (const candidate of ["1.9.0", "1.8.9", "1.10.0-beta.1", "garbage"]) {
89
+ assert.equal(newerStableVersion("1.9.0", candidate), false);
90
+ }
91
+ assert.equal(await checkLatestRelease("1.9.0", async () => ({ stdout: '"1.10.0"', stderr: "" })), "1.10.0");
92
+ assert.equal(await checkLatestRelease("1.10.0", async () => ({ stdout: '"1.9.0"', stderr: "" })), null);
93
+ await assert.rejects(checkLatestRelease("1.9.0", async () => { throw new Error("offline"); }), /offline/);
94
+ });
95
+ test("updates and verifies the runner prefix even when npm defaults elsewhere", async () => {
96
+ const plan = planSelfUpdate({ source: "global", npmGlobalPrefixWritable: true }, "1.32.0", "/Users/me/.local");
97
+ const calls = [];
98
+ await performSelfUpdate(plan, { run: async (_cmd, args) => {
99
+ calls.push(args);
100
+ return { stdout: '{"dependencies":{"@euqns/nudge-mcp":{"version":"1.32.0"}}}', stderr: "" };
101
+ } });
102
+ assert.equal(calls.length, 2);
103
+ for (const args of calls)
104
+ assert.equal(args[args.indexOf("--prefix") + 1], "/Users/me/.local");
105
+ });
86
106
  //# sourceMappingURL=runner-update.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-update.test.js","sourceRoot":"","sources":["../src/runner-update.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-update.test.js","sourceRoot":"","sources":["../src/runner-update.test.ts"],"names":[],"mappings":"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"}
package/dist/runner.js CHANGED
@@ -34,7 +34,8 @@
34
34
  // job finishes or fails. Only phase boundaries are sent while work is active,
35
35
  // so the frontend can animate progress without a continuous database stream.
36
36
  import { spawnSync } from "node:child_process";
37
- import { access } from "node:fs/promises";
37
+ import { readArtifactManifest, uploadRunnerArtifacts } from "./runner-artifacts.js";
38
+ import { access, mkdtemp, rm } from "node:fs/promises";
38
39
  import { constants as fsConstants } from "node:fs";
39
40
  import os from "node:os";
40
41
  import path from "node:path";
@@ -45,7 +46,7 @@ import { ensureMachineId, readCredentials, readRunnerConfig, writeRunnerConfig,
45
46
  import { detectNudgeInstallContext } from "./install-context.js";
46
47
  import { RESTART_EXIT_CODE, SUPERVISED_ENV, watchRunnerBuild, } from "./runner-restart.js";
47
48
  import { NUDGE_MCP_VERSION } from "./version.js";
48
- import { performSelfUpdate, planSelfUpdate } from "./runner-update.js";
49
+ import { checkLatestRelease, performSelfUpdate, planSelfUpdate } from "./runner-update.js";
49
50
  import { serviceInfoFromEnv, serviceLabel, writeProcessState, } from "./service-state.js";
50
51
  // Agent output stays local during a run. A bounded tail is written once at
51
52
  // finish/failure; stage transitions use their own tiny status mutation. This
@@ -680,6 +681,7 @@ export async function runNudgeRunner(argv) {
680
681
  // then restarts — see maybeRunUpdate.
681
682
  let pendingUpdate = null;
682
683
  let updateInProgress = false;
684
+ let releaseTimer = null;
683
685
  // The heartbeat below is display-only. Cancellation and steers arrive over
684
686
  // the nextJob subscription; job recovery from a dead machine is the lease's
685
687
  // problem.
@@ -709,6 +711,23 @@ export async function runNudgeRunner(argv) {
709
711
  active.delete(job.id);
710
712
  return;
711
713
  }
714
+ let artifactDirectory;
715
+ try {
716
+ artifactDirectory = await mkdtemp(path.join(os.tmpdir(), "nudge-artifacts-"));
717
+ }
718
+ catch (cause) {
719
+ const error = `Could not prepare runner output files: ${String(cause)}`;
720
+ logs.push("stderr", error);
721
+ await logs.flush();
722
+ await report(job.id, "failed", { error });
723
+ active.delete(job.id);
724
+ return;
725
+ }
726
+ const artifactManifest = path.join(artifactDirectory, "manifest.json");
727
+ const artifactInstructions = `
728
+
729
+ Optional output files: write a JSON array to ${artifactManifest} with entries {"path":"/absolute/path/to/report.md","contentType":"text/markdown","name":"report.md"}. Paths may also be relative to the checkout. Only explicitly listed files are uploaded. Maximum 20 files, 10 MiB each. Omit the manifest if no files are needed. These are downloadable attachments, not sandboxed previews.`;
730
+ const resultArtifacts = [];
712
731
  const runOptions = {
713
732
  // A resumed job sends the continuation instead of the original task. The
714
733
  // agent thread is resumed alongside it, so this reads as the next thing
@@ -724,6 +743,7 @@ export async function runNudgeRunner(argv) {
724
743
  // `ask_human` tool can post a question against this job and block on the
725
744
  // answer. Scoped to the job: a tool call can only ever touch this one.
726
745
  env: {
746
+ NUDGE_RUNNER_ARTIFACT_MANIFEST: artifactManifest,
727
747
  NUDGE_RUNNER_JOB: job.id,
728
748
  NUDGE_RUNNER_ID: runnerId,
729
749
  NUDGE_RUNNER_TOKEN: options.token,
@@ -777,6 +797,7 @@ export async function runNudgeRunner(argv) {
777
797
  let persistStage;
778
798
  try {
779
799
  const addResult = (result) => {
800
+ resultArtifacts.push(...(result.artifacts ?? []));
780
801
  usage = addUsage(usage, result.usage);
781
802
  if (result.costUsd !== undefined)
782
803
  costUsd = (costUsd ?? 0) + result.costUsd;
@@ -900,7 +921,7 @@ export async function runNudgeRunner(argv) {
900
921
  logs.push("event", `Implementing with ${activeStage.requestedModel} · ${activeStage.effort ?? "default"}`);
901
922
  const coded = await engine.execute({
902
923
  ...runOptions,
903
- prompt: implementationPrompt,
924
+ prompt: implementationPrompt + artifactInstructions,
904
925
  model: activeStage.requestedModel,
905
926
  effort: activeStage.effort,
906
927
  readOnly: false,
@@ -942,6 +963,20 @@ export async function runNudgeRunner(argv) {
942
963
  }
943
964
  }
944
965
  }
966
+ try {
967
+ const manifestArtifacts = await readArtifactManifest(artifactManifest);
968
+ await uploadRunnerArtifacts(client, { token: options.token, runnerId, jobId: job.id }, options.cwd, [...resultArtifacts, ...manifestArtifacts]);
969
+ }
970
+ catch (uploadError) {
971
+ const message = `Artifact upload failed: ${uploadError instanceof Error ? uploadError.message : String(uploadError)}`;
972
+ logs.push("stderr", message);
973
+ error = error ? `${error}\n${message}` : message;
974
+ if (status === "succeeded")
975
+ status = "failed";
976
+ }
977
+ finally {
978
+ await rm(artifactDirectory, { recursive: true, force: true }).catch(() => undefined);
979
+ }
945
980
  // The PR link, when the job asked for one. The prompt mandates a trailing
946
981
  // "PR: <url>" line; scan the whole summary so a slightly-off closing
947
982
  // still yields the link.
@@ -1192,12 +1227,16 @@ export async function runNudgeRunner(argv) {
1192
1227
  unsubscribe?.();
1193
1228
  unwatchBuild?.();
1194
1229
  clearInterval(heartbeat);
1230
+ if (releaseTimer)
1231
+ clearInterval(releaseTimer);
1195
1232
  console.log("[runner] ⟳ idle — restarting to load the updated build.");
1196
1233
  void Promise.resolve(client.close())
1197
1234
  .catch(() => undefined)
1198
1235
  .finally(() => process.exit(RESTART_EXIT_CODE));
1199
1236
  }
1200
1237
  async function reportUpdate(requestedAt, phase, detail = {}) {
1238
+ if (pendingUpdate?.automatic)
1239
+ return;
1201
1240
  try {
1202
1241
  await client.mutation(fns.reportUpdate, {
1203
1242
  token: options.token,
@@ -1279,6 +1318,38 @@ export async function runNudgeRunner(argv) {
1279
1318
  maybeRestartForUpdate();
1280
1319
  });
1281
1320
  }
1321
+ // Registry checks use the same idle/drain/update path as board requests.
1322
+ // Opt out for machines that must stay pinned to an explicitly installed release.
1323
+ let checkingRelease = false;
1324
+ const checkRelease = async () => {
1325
+ if (checkingRelease || stopped || restartPending || updateInProgress)
1326
+ return;
1327
+ checkingRelease = true;
1328
+ try {
1329
+ const version = await checkLatestRelease(NUDGE_MCP_VERSION);
1330
+ if (!version || stopped || restartPending || updateInProgress)
1331
+ return;
1332
+ pendingUpdate = { requestedAt: Date.now(), targetVersion: version, automatic: true };
1333
+ restartPending = true;
1334
+ console.log(`[runner] ⬆ release ${version} available — finishing ${active.size} running job(s) before updating.`);
1335
+ maybeRestartForUpdate();
1336
+ }
1337
+ catch (err) {
1338
+ console.warn("[runner] release check failed; will retry in five minutes:", err instanceof Error ? err.message : err);
1339
+ }
1340
+ finally {
1341
+ checkingRelease = false;
1342
+ }
1343
+ };
1344
+ const autoUpdateEnabled = process.env.NUDGE_RUNNER_AUTO_UPDATE !== "0" &&
1345
+ process.env[SUPERVISED_ENV] === "1" &&
1346
+ planSelfUpdate(installation, "latest").kind === "npm-global";
1347
+ releaseTimer = autoUpdateEnabled ? setInterval(() => void checkRelease(), 5 * 60_000) : null;
1348
+ releaseTimer?.unref();
1349
+ if (autoUpdateEnabled) {
1350
+ console.log("[runner] automatic updates enabled — checking npm now and every five minutes.");
1351
+ void checkRelease();
1352
+ }
1282
1353
  // ---- shutdown -----------------------------------------------------------
1283
1354
  async function shutdown() {
1284
1355
  if (stopped)
@@ -1287,6 +1358,8 @@ export async function runNudgeRunner(argv) {
1287
1358
  unsubscribe?.();
1288
1359
  unwatchBuild?.();
1289
1360
  clearInterval(heartbeat);
1361
+ if (releaseTimer)
1362
+ clearInterval(releaseTimer);
1290
1363
  // Say so rather than making the board wait out the staleness window — a
1291
1364
  // Ctrl-C should grey the machine out immediately.
1292
1365
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/dist/version.js CHANGED
@@ -5,5 +5,5 @@
5
5
  // reported the same number, which made "why is my runner not starting?"
6
6
  // needlessly hard to diagnose. `npm run mcp:bump -- <release>` keeps this,
7
7
  // package.json, and package-lock.json synchronized.
8
- export const NUDGE_MCP_VERSION = "1.31.0";
8
+ export const NUDGE_MCP_VERSION = "1.33.0";
9
9
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@euqns/nudge-mcp",
3
- "version": "1.31.0",
3
+ "version": "1.33.0",
4
4
  "type": "module",
5
5
  "description": "Model Context Protocol server for the Nudge board (the in-house Trello).",
6
6
  "bin": {