@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 +56 -0
- package/dist/engines/isolation.js +16 -2
- package/dist/engines/isolation.js.map +1 -1
- package/dist/engines/isolation.test.js +17 -2
- package/dist/engines/isolation.test.js.map +1 -1
- package/dist/engines/types.js.map +1 -1
- package/dist/install-context.js +12 -3
- package/dist/install-context.js.map +1 -1
- package/dist/install-context.test.js +10 -0
- package/dist/install-context.test.js.map +1 -1
- package/dist/runner-artifacts.js +69 -0
- package/dist/runner-artifacts.js.map +1 -0
- package/dist/runner-artifacts.test.js +77 -0
- package/dist/runner-artifacts.test.js.map +1 -0
- package/dist/runner-update.js +25 -3
- package/dist/runner-update.js.map +1 -1
- package/dist/runner-update.test.js +21 -1
- package/dist/runner-update.test.js.map +1 -1
- package/dist/runner.js +76 -3
- package/dist/runner.js.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
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
|
-
//
|
|
63
|
-
|
|
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":"AAAA,sEAAsE;AACtE,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,2BAA2B;AAC3B,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,8CAA8C;AAC9C,EAAE;AACF,4EAA4E;AAC5E,6CAA6C;AAE7C,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AAEpE,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC;AAED,2EAA2E;AAC3E,8DAA8D;AAC9D,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC;AAEjC,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,wBAAwB,CAAU,CAAC;AAElE,+EAA+E;AAC/E,+EAA+E;AAC/E,SAAS,kBAAkB,CAAC,IAAY,EAAE,GAAW;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,MAAM,CAAC,QAAQ,GAAG,2BAA2B,EAAE,GAAG,CAAC,CACxD,CAAC;IACF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AASD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEpE,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,OAAO,GAA2B,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC,EACzC,MAAM,CACP,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAED,
|
|
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;
|
|
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;
|
|
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"}
|
package/dist/install-context.js
CHANGED
|
@@ -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
|
|
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(
|
|
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;
|
|
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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"}
|
package/dist/runner-update.js
CHANGED
|
@@ -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":"AAAA,4CAA4C;AAC5C,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,wEAAwE;AACxE,2DAA2D;AAC3D,EAAE;AACF,sEAAsE;AACtE,+EAA+E;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;
|
|
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 {
|
|
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 {
|
package/dist/runner.js.map
CHANGED
|
@@ -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.
|
|
8
|
+
export const NUDGE_MCP_VERSION = "1.33.0";
|
|
9
9
|
//# sourceMappingURL=version.js.map
|