neoctl 0.2.38 → 0.2.40
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/dist/context/context-manager.js +3 -2
- package/dist/context/context-manager.js.map +1 -1
- package/dist/context/prompt-config.test.js +4 -0
- package/dist/context/prompt-config.test.js.map +1 -1
- package/dist/context/prompts.d.ts +3 -0
- package/dist/context/prompts.js +10 -4
- package/dist/context/prompts.js.map +1 -1
- package/dist/context/system.md +1 -1
- package/dist/core/query-engine.d.ts +5 -2
- package/dist/core/query-engine.js +31 -13
- package/dist/core/query-engine.js.map +1 -1
- package/dist/core/query.js +2 -2
- package/dist/core/query.js.map +1 -1
- package/dist/core/session-prompt-inheritance.test.d.ts +1 -0
- package/dist/core/session-prompt-inheritance.test.js +132 -0
- package/dist/core/session-prompt-inheritance.test.js.map +1 -0
- package/dist/core/session-settings-prompt.d.ts +12 -4
- package/dist/core/session-settings-prompt.js +50 -27
- package/dist/core/session-settings-prompt.js.map +1 -1
- package/dist/core/session-settings-prompt.test.js +31 -22
- package/dist/core/session-settings-prompt.test.js.map +1 -1
- package/dist/execution/docker.d.ts +9 -0
- package/dist/execution/docker.js +75 -0
- package/dist/execution/docker.js.map +1 -0
- package/dist/execution/docker.test.d.ts +1 -0
- package/dist/execution/docker.test.js +57 -0
- package/dist/execution/docker.test.js.map +1 -0
- package/dist/execution/filesystem.d.ts +7 -0
- package/dist/execution/filesystem.js +76 -0
- package/dist/execution/filesystem.js.map +1 -0
- package/dist/execution/process.d.ts +8 -0
- package/dist/execution/process.js +62 -0
- package/dist/execution/process.js.map +1 -0
- package/dist/plugins/plugin-system.js +3 -0
- package/dist/plugins/plugin-system.js.map +1 -1
- package/dist/session/session-export.d.ts +4 -0
- package/dist/session/session-export.js.map +1 -1
- package/dist/session/session-store.js +4 -6
- package/dist/session/session-store.js.map +1 -1
- package/dist/session/tool-result-memory.js +9 -1
- package/dist/session/tool-result-memory.js.map +1 -1
- package/dist/tools/builtins/edit-tool.js +1 -1
- package/dist/tools/builtins/edit-tool.js.map +1 -1
- package/dist/tools/builtins/exec-process-manager.js +17 -11
- package/dist/tools/builtins/exec-process-manager.js.map +1 -1
- package/dist/tools/builtins/exec-tool.js +6 -3
- package/dist/tools/builtins/exec-tool.js.map +1 -1
- package/dist/tools/builtins/filesystem-tools.js +1 -1
- package/dist/tools/builtins/filesystem-tools.js.map +1 -1
- package/dist/tools/builtins/grep-tool.js +11 -4
- package/dist/tools/builtins/grep-tool.js.map +1 -1
- package/dist/tools/builtins/image-generation-tool.js +19 -6
- package/dist/tools/builtins/image-generation-tool.js.map +1 -1
- package/dist/tools/builtins/image-loader-tool.js +5 -3
- package/dist/tools/builtins/image-loader-tool.js.map +1 -1
- package/dist/web/index.d.ts +25 -8
- package/dist/web/index.js +126 -46
- package/dist/web/index.js.map +1 -1
- package/dist/web/session-prompt-integration.test.js +1 -1
- package/dist/web/session-prompt-integration.test.js.map +1 -1
- package/docs/prompt-config.md +19 -4
- package/package.json +1 -1
|
@@ -70,13 +70,17 @@ test("save during asynchronous context construction does not contaminate that re
|
|
|
70
70
|
await done;
|
|
71
71
|
assert.equal(f.requests[0].systemPrompt, "BASELINE");
|
|
72
72
|
await drain(f.engine.sendUserText("next"));
|
|
73
|
-
assert.
|
|
73
|
+
assert.match(f.requests[1].systemPrompt, /NEXT_REQUEST_ONLY/);
|
|
74
|
+
assert.match(f.requests[1].systemPrompt, /BASELINE/);
|
|
74
75
|
});
|
|
75
|
-
test("latest default changes
|
|
76
|
+
test("latest default changes only the preview, session switching serializes with stale saves, and ephemeral forks isolate", async (t) => {
|
|
76
77
|
const f = fixture(await temp(t));
|
|
77
78
|
const initial = await f.engine.getSessionPrompt();
|
|
78
79
|
f.setBaseline("UPDATED_DEFAULT");
|
|
79
|
-
await
|
|
80
|
+
const updatedDefault = await f.engine.getSessionPrompt();
|
|
81
|
+
assert.equal(updatedDefault.revision, initial.revision);
|
|
82
|
+
assert.notEqual(updatedDefault.effectiveRevision, initial.effectiveRevision);
|
|
83
|
+
await f.engine.updateSessionPrompt({ content: "fresh addition", revision: initial.revision });
|
|
80
84
|
const current = await f.engine.getSessionPrompt();
|
|
81
85
|
const switched = f.engine.newSession();
|
|
82
86
|
const staleSave = f.engine.updateSessionPrompt({ content: "old session", revision: current.revision });
|
|
@@ -89,7 +93,7 @@ test("latest default changes conflict, session switching serializes with stale s
|
|
|
89
93
|
assert.equal((await ephemeral.forkForSession().getSessionPrompt()).override, false);
|
|
90
94
|
});
|
|
91
95
|
// All storage is temporary and every model gateway is fake; no provider/environment secrets.
|
|
92
|
-
test("
|
|
96
|
+
test("session instructions append to actual model instructions, while tools and user/runtime context stay intact", async (t) => {
|
|
93
97
|
const dir = await temp(t);
|
|
94
98
|
const f = fixture(dir);
|
|
95
99
|
f.engine.setRuntimePlugins(["test-plugin"], [{ name: "Plugin", content: "PLUGIN_RULE", cacheStable: false }]);
|
|
@@ -97,31 +101,34 @@ test("full prompt replaces the actual model instructions, while tools and user/r
|
|
|
97
101
|
f.engine.setAppPrompt({ content: "APP_RULE", title: "Test app" });
|
|
98
102
|
const current = await readSessionPrompt(f.engine);
|
|
99
103
|
assert.equal(current.override, false);
|
|
100
|
-
assert.match(current.
|
|
101
|
-
assert.match(current.
|
|
102
|
-
assert.match(current.
|
|
103
|
-
assert.doesNotMatch(current.
|
|
104
|
-
assert.
|
|
104
|
+
assert.match(current.effectiveContent, /GLOBAL_V1/);
|
|
105
|
+
assert.match(current.effectiveContent, /PLUGIN_RULE/);
|
|
106
|
+
assert.match(current.effectiveContent, /APP_RULE/);
|
|
107
|
+
assert.doesNotMatch(current.effectiveContent, /__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__/);
|
|
108
|
+
assert.equal(current.revision, initial.revision);
|
|
109
|
+
assert.notEqual(current.effectiveRevision, initial.effectiveRevision);
|
|
105
110
|
const text = " MY COMPLETE SYSTEM PROMPT\nIncluding dynamic instructions.\n";
|
|
106
111
|
const result = await updateSessionPrompt(f.engine, { content: text, revision: current.revision });
|
|
107
112
|
assert.equal(result.deferred, false);
|
|
108
113
|
assert.equal(result.content, text);
|
|
109
114
|
await drain(f.engine.sendUserText("USER_INPUT"));
|
|
110
|
-
assert.
|
|
115
|
+
assert.ok(f.requests[0].systemPrompt.includes(text));
|
|
116
|
+
assert.match(f.requests[0].systemPrompt, /GLOBAL_V1/);
|
|
117
|
+
assert.match(f.requests[0].systemPrompt, /PLUGIN_RULE/);
|
|
111
118
|
assert.equal(f.requests[0].tools[0].name, "probe");
|
|
112
119
|
assert.match(JSON.stringify(f.requests[0].messages), /PROJECT_MEMORY/);
|
|
113
120
|
assert.match(JSON.stringify(f.requests[0].messages), /2026-09-08/);
|
|
114
121
|
assert.match(JSON.stringify(f.requests[0].messages), /USER_INPUT/);
|
|
115
122
|
const wire = buildResponsesRequest(f.requests[0], { model: "gpt-5" });
|
|
116
|
-
assert.
|
|
123
|
+
assert.ok(String(wire.instructions).includes(text));
|
|
117
124
|
const exported = await f.engine.promptExportSnapshot();
|
|
118
|
-
assert.
|
|
125
|
+
assert.ok(exported.systemPrompt.includes(text));
|
|
119
126
|
assert.match(exported.baseSystemPrompt, /GLOBAL_V1/);
|
|
120
|
-
assert.
|
|
127
|
+
assert.ok(exported.promptSections.some(section => section.name === "Session Instructions"));
|
|
121
128
|
const runtime = createWebRuntimeContextPayload(exported, { revision: 1 });
|
|
122
129
|
assert.equal(runtime.prompt.sessionPrompt?.override, true);
|
|
123
130
|
assert.equal(runtime.prompt.sessionPrompt?.deferred, false);
|
|
124
|
-
assert.
|
|
131
|
+
assert.ok(runtime.prompt.systemPrompt.includes(text));
|
|
125
132
|
assert.doesNotMatch(JSON.stringify(f.engine.getHistoryMessages()), /MY COMPLETE SYSTEM PROMPT/);
|
|
126
133
|
});
|
|
127
134
|
test("resume restores accepted metadata and revision; fork/new-session cannot inherit the override", async (t) => {
|
|
@@ -132,9 +139,10 @@ test("resume restores accepted metadata and revision; fork/new-session cannot in
|
|
|
132
139
|
const transcript = await readFile(f.engine.snapshot().session.transcriptPath, "utf8");
|
|
133
140
|
assert.match(transcript, /"type":"session-prompt"/);
|
|
134
141
|
const resumed = f.engine.forkForSession("session-one", true);
|
|
135
|
-
|
|
142
|
+
const { ok: _ok, deferred: _deferred, ...savedSnapshot } = saved;
|
|
143
|
+
assert.deepEqual(await resumed.getSessionPrompt(), savedSnapshot);
|
|
136
144
|
await drain(resumed.sendUserText("resume"));
|
|
137
|
-
assert.
|
|
145
|
+
assert.match(f.requests.at(-1).systemPrompt, /SESSION_ONE_ONLY/);
|
|
138
146
|
const forked = f.engine.forkForSession("session-two", false);
|
|
139
147
|
assert.equal((await forked.getSessionPrompt()).override, false);
|
|
140
148
|
assert.notEqual((await forked.getSessionPrompt()).revision, original.revision);
|
|
@@ -179,7 +187,8 @@ test("busy edits persist immediately but apply only on the next model turn; coal
|
|
|
179
187
|
assert.equal(JSON.stringify(requests[0]), requestBefore);
|
|
180
188
|
release.release();
|
|
181
189
|
await done;
|
|
182
|
-
assert.
|
|
190
|
+
assert.match(requests[1].systemPrompt, /QUEUED_TWO/);
|
|
191
|
+
assert.match(requests[1].systemPrompt, /GLOBAL_V1/);
|
|
183
192
|
assert.equal(requests[1].serviceTier, "priority");
|
|
184
193
|
assert.deepEqual(requests[1].tools, requests[0].tools);
|
|
185
194
|
assert.deepEqual(f.engine.getPendingSessionSettings(), {});
|
|
@@ -196,10 +205,10 @@ test("reset reads latest baseline plus dynamic plugin/app and persists removal a
|
|
|
196
205
|
assert.equal((await f.engine.getSessionPrompt()).revision, edited.revision);
|
|
197
206
|
const reset = await f.engine.updateSessionPrompt({ reset: true, revision: edited.revision });
|
|
198
207
|
assert.equal(reset.override, false);
|
|
199
|
-
assert.match(reset.
|
|
200
|
-
assert.match(reset.
|
|
201
|
-
assert.match(reset.
|
|
202
|
-
assert.doesNotMatch(reset.
|
|
208
|
+
assert.match(reset.effectiveContent, /GLOBAL_V2/);
|
|
209
|
+
assert.match(reset.effectiveContent, /PLUGIN_V2/);
|
|
210
|
+
assert.match(reset.effectiveContent, /APP_V2/);
|
|
211
|
+
assert.doesNotMatch(reset.effectiveContent, /CUSTOM|__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__/);
|
|
203
212
|
await drain(f.engine.sendUserText("reset query"));
|
|
204
213
|
assert.match(f.requests[0].systemPrompt, /GLOBAL_V2/);
|
|
205
214
|
assert.match(f.requests[0].systemPrompt, /PLUGIN_V2/);
|
|
@@ -245,7 +254,7 @@ test("a queued reset at a final/aborted boundary is applied without another mode
|
|
|
245
254
|
await opened.promise;
|
|
246
255
|
const reset = await f.engine.updateSessionPrompt({ reset: true, revision: edited.revision });
|
|
247
256
|
assert.equal(reset.deferred, true);
|
|
248
|
-
assert.
|
|
257
|
+
assert.match((await f.engine.promptExportSnapshot()).systemPrompt, /CUSTOM/);
|
|
249
258
|
if (abort)
|
|
250
259
|
controller.abort();
|
|
251
260
|
release.release();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-settings-prompt.test.js","sourceRoot":"","sources":["../../src/core/session-settings-prompt.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-settings-prompt.test.js","sourceRoot":"","sources":["../../src/core/session-settings-prompt.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Deployment-owned configuration. Never accept a container name from tool input. */
|
|
2
|
+
export declare function dockerEnabled(): boolean;
|
|
3
|
+
export declare function dockerContainer(): string;
|
|
4
|
+
export declare function executionCwd(cwd?: string): string;
|
|
5
|
+
export declare function dockerHostEnv(): NodeJS.ProcessEnv;
|
|
6
|
+
export declare function dockerArgs(argv: readonly string[], cwd?: string, env?: Record<string, string>, tty?: boolean): string[];
|
|
7
|
+
export declare function dockerRun(args: string[], input?: string | Buffer, maxBuffer?: number): Promise<Buffer>;
|
|
8
|
+
export declare function dockerRunSync(args: string[], input?: string | Buffer): Buffer;
|
|
9
|
+
export declare function verifyDockerBackend(): Promise<void>;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { execFile, execFileSync } from "node:child_process";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
/** Deployment-owned configuration. Never accept a container name from tool input. */
|
|
4
|
+
export function dockerEnabled() {
|
|
5
|
+
const backend = process.env.NEO_EXECUTION_BACKEND || "local";
|
|
6
|
+
if (backend !== "local" && backend !== "docker")
|
|
7
|
+
throw new Error(`Unknown execution backend: ${backend}`);
|
|
8
|
+
return backend === "docker";
|
|
9
|
+
}
|
|
10
|
+
export function dockerContainer() {
|
|
11
|
+
if (!dockerEnabled())
|
|
12
|
+
throw new Error("Docker execution is not enabled");
|
|
13
|
+
const name = process.env.NEO_EXECUTION_CONTAINER || "neo-workspace";
|
|
14
|
+
if (!/^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/.test(name))
|
|
15
|
+
throw new Error("Invalid NEO_EXECUTION_CONTAINER");
|
|
16
|
+
return name;
|
|
17
|
+
}
|
|
18
|
+
export function executionCwd(cwd) {
|
|
19
|
+
if (!dockerEnabled())
|
|
20
|
+
return path.resolve(cwd || process.cwd());
|
|
21
|
+
return path.posix.resolve("/workspace", cwd || ".");
|
|
22
|
+
}
|
|
23
|
+
export function dockerHostEnv() {
|
|
24
|
+
// Only the Docker client runs on the host. Agent-supplied env never configures it.
|
|
25
|
+
return { PATH: process.env.PATH, HOME: process.env.HOME, LANG: "C.UTF-8" };
|
|
26
|
+
}
|
|
27
|
+
export function dockerArgs(argv, cwd = "/", env = {}, tty = false) {
|
|
28
|
+
const args = ["exec", "-i", ...(tty ? ["-t"] : []), "--user", "0", "--workdir", executionCwd(cwd)];
|
|
29
|
+
for (const [key, value] of Object.entries(env)) {
|
|
30
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key) || value.includes("\0"))
|
|
31
|
+
throw new Error("Invalid command environment");
|
|
32
|
+
args.push("--env", `${key}=${value}`);
|
|
33
|
+
}
|
|
34
|
+
args.push(dockerContainer(), ...argv);
|
|
35
|
+
return args;
|
|
36
|
+
}
|
|
37
|
+
export function dockerRun(args, input, maxBuffer = 32 * 1024 * 1024) {
|
|
38
|
+
return new Promise((resolve, reject) => {
|
|
39
|
+
const child = execFile("docker", args, { env: dockerHostEnv(), encoding: "buffer", maxBuffer, timeout: 60_000, windowsHide: true }, (error, stdout, stderr) => {
|
|
40
|
+
if (error)
|
|
41
|
+
reject(new Error(`Container operation failed: ${stderr.toString().slice(0, 2000) || error.message}`));
|
|
42
|
+
else
|
|
43
|
+
resolve(stdout);
|
|
44
|
+
});
|
|
45
|
+
child.stdin?.on("error", () => { });
|
|
46
|
+
child.stdin?.end(input);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
export function dockerRunSync(args, input) {
|
|
50
|
+
return execFileSync("docker", args, { input, env: dockerHostEnv(), maxBuffer: 32 * 1024 * 1024, timeout: 60_000, windowsHide: true, stdio: ["pipe", "pipe", "pipe"] });
|
|
51
|
+
}
|
|
52
|
+
export async function verifyDockerBackend() {
|
|
53
|
+
if (!dockerEnabled())
|
|
54
|
+
return;
|
|
55
|
+
if (process.platform !== "linux")
|
|
56
|
+
throw new Error("Docker execution backend requires a Linux service host");
|
|
57
|
+
const [info] = JSON.parse((await dockerRun(["inspect", dockerContainer()])).toString());
|
|
58
|
+
const host = info?.HostConfig;
|
|
59
|
+
if (!info?.State?.Running)
|
|
60
|
+
throw new Error("Execution container is not running");
|
|
61
|
+
if (host?.Privileged || host?.NetworkMode === "host" || String(host?.NetworkMode).startsWith("container:") || host?.PidMode === "host" || host?.IpcMode === "host")
|
|
62
|
+
throw new Error("Unsafe execution container namespaces");
|
|
63
|
+
if (host?.CapAdd?.length || host?.Devices?.length || host?.DeviceRequests?.length || host?.VolumesFrom?.length)
|
|
64
|
+
throw new Error("Execution container has extra host privileges");
|
|
65
|
+
if (!host?.SecurityOpt?.some((v) => v === "no-new-privileges" || v === "no-new-privileges=true"))
|
|
66
|
+
throw new Error("Execution container requires no-new-privileges");
|
|
67
|
+
if (!host?.Memory || !host?.NanoCpus || !(host?.PidsLimit > 0))
|
|
68
|
+
throw new Error("Execution container requires CPU, memory and PID limits");
|
|
69
|
+
if (info.Mounts?.some((mount) => mount.Type !== "volume" || mount.Destination !== "/workspace"))
|
|
70
|
+
throw new Error("Only the /workspace data volume may be mounted");
|
|
71
|
+
if (Object.keys(host?.PortBindings || {}).length)
|
|
72
|
+
throw new Error("Execution container must not publish ports");
|
|
73
|
+
await dockerRun(dockerArgs(["node", "-e", "if(process.getuid()!==0)process.exit(1);process.stdout.write('ok')"]));
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=docker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/execution/docker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import test from "node:test";
|
|
3
|
+
import { dockerArgs, dockerEnabled, dockerHostEnv, executionCwd } from "./docker.js";
|
|
4
|
+
import { executionLaunch } from "./process.js";
|
|
5
|
+
import { executionFs } from "./filesystem.js";
|
|
6
|
+
import fs from "node:fs/promises";
|
|
7
|
+
import os from "node:os";
|
|
8
|
+
import path from "node:path";
|
|
9
|
+
test("default backend preserves local filesystem and command behavior", async () => {
|
|
10
|
+
delete process.env.NEO_EXECUTION_BACKEND;
|
|
11
|
+
assert.equal(dockerEnabled(), false);
|
|
12
|
+
const dir = await fs.mkdtemp(path.join(os.tmpdir(), "neo-local-backend-"));
|
|
13
|
+
try {
|
|
14
|
+
const file = path.join(dir, "test.txt");
|
|
15
|
+
await executionFs.writeFile(file, "unchanged");
|
|
16
|
+
assert.equal(await executionFs.readFile(file, "utf8"), "unchanged");
|
|
17
|
+
const launch = executionLaunch("sh", ["-c", "echo ok"], dir, { TEST: "yes" });
|
|
18
|
+
assert.equal(launch.file, "sh");
|
|
19
|
+
assert.equal(launch.cwd, dir);
|
|
20
|
+
assert.equal(launch.env.TEST, "yes");
|
|
21
|
+
assert.equal(launch.signal, undefined);
|
|
22
|
+
}
|
|
23
|
+
finally {
|
|
24
|
+
await fs.rm(dir, { recursive: true, force: true });
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
test("Docker arguments do not interpret command text or inherit secrets", () => {
|
|
28
|
+
process.env.NEO_EXECUTION_BACKEND = "docker";
|
|
29
|
+
process.env.NEO_EXECUTION_CONTAINER = "neo-test";
|
|
30
|
+
process.env.NEO_TEST_SECRET = "host-only";
|
|
31
|
+
try {
|
|
32
|
+
const args = dockerArgs(["bash", "-lc", "echo '; docker run --privileged x'"], "/workspace/a b", { TEST: "a b;" });
|
|
33
|
+
assert.deepEqual(args.slice(0, 8), ["exec", "-i", "--user", "0", "--workdir", "/workspace/a b", "--env", "TEST=a b;"]);
|
|
34
|
+
assert.equal(args[8], "neo-test");
|
|
35
|
+
assert.equal(dockerHostEnv().NEO_TEST_SECRET, undefined);
|
|
36
|
+
assert.equal(executionCwd("../root"), "/root");
|
|
37
|
+
assert.throws(() => dockerArgs(["true"], "/", { "-bad": "x" }));
|
|
38
|
+
process.env.NEO_EXECUTION_CONTAINER = "--privileged";
|
|
39
|
+
assert.throws(() => dockerArgs(["true"]));
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
delete process.env.NEO_EXECUTION_BACKEND;
|
|
43
|
+
delete process.env.NEO_EXECUTION_CONTAINER;
|
|
44
|
+
delete process.env.NEO_TEST_SECRET;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
test("invalid backend fails closed", () => {
|
|
48
|
+
process.env.NEO_EXECUTION_BACKEND = "dockre";
|
|
49
|
+
try {
|
|
50
|
+
assert.throws(() => dockerEnabled());
|
|
51
|
+
assert.throws(() => executionFs.readFile);
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
delete process.env.NEO_EXECUTION_BACKEND;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=docker.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.test.js","sourceRoot":"","sources":["../../src/execution/docker.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import localFs from "node:fs/promises";
|
|
2
|
+
import { existsSync as localExistsSync, readFileSync as localReadFileSync, statSync as localStatSync } from "node:fs";
|
|
3
|
+
/** Import only for agent-controlled file operations. Configuration/session storage stays local. */
|
|
4
|
+
export declare const executionFs: typeof localFs;
|
|
5
|
+
export declare const executionReadFileSync: typeof localReadFileSync;
|
|
6
|
+
export declare const executionStatSync: typeof localStatSync;
|
|
7
|
+
export declare const executionExistsSync: typeof localExistsSync;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import localFs from "node:fs/promises";
|
|
2
|
+
import { existsSync as localExistsSync, readFileSync as localReadFileSync, statSync as localStatSync } from "node:fs";
|
|
3
|
+
import { dockerArgs, dockerEnabled, dockerRun, dockerRunSync } from "./docker.js";
|
|
4
|
+
// This small transport program is sent over stdin; no host paths or application code are mounted.
|
|
5
|
+
const program = String.raw `
|
|
6
|
+
const fs = require('node:fs/promises');
|
|
7
|
+
const chunks = [];
|
|
8
|
+
process.stdin.on('data', c => chunks.push(c));
|
|
9
|
+
process.stdin.on('end', async () => {
|
|
10
|
+
const encode = v => {
|
|
11
|
+
if (Buffer.isBuffer(v)) return { $buffer: v.toString('base64') };
|
|
12
|
+
if (v && typeof v.isFile === 'function') return {
|
|
13
|
+
name: v.name, size: v.size, mode: v.mode, mtimeMs: v.mtimeMs,
|
|
14
|
+
$kind: v.isFile() ? 'file' : v.isDirectory() ? 'directory' : v.isSymbolicLink() ? 'symlink' : 'other'
|
|
15
|
+
};
|
|
16
|
+
if (Array.isArray(v)) return v.map(encode);
|
|
17
|
+
return v;
|
|
18
|
+
};
|
|
19
|
+
try {
|
|
20
|
+
const { op, args } = JSON.parse(Buffer.concat(chunks).toString());
|
|
21
|
+
const allowed = ['stat','lstat','readFile','writeFile','appendFile','mkdir','readdir','access','realpath','rename','rm','rmdir','unlink','copyFile','truncate'];
|
|
22
|
+
if (!allowed.includes(op)) throw new Error('Unsupported file operation');
|
|
23
|
+
const decoded = args.map(v => v && v.$buffer !== undefined ? Buffer.from(v.$buffer,'base64') : v);
|
|
24
|
+
const result = await fs[op](...decoded);
|
|
25
|
+
process.stdout.write(JSON.stringify({ value: encode(result) }));
|
|
26
|
+
} catch (e) { process.stdout.write(JSON.stringify({ error: e.message, code: e.code })); }
|
|
27
|
+
});`;
|
|
28
|
+
function request(op, args) {
|
|
29
|
+
return JSON.stringify({ op, args: args.map(value => Buffer.isBuffer(value) ? { $buffer: value.toString("base64") } : value) });
|
|
30
|
+
}
|
|
31
|
+
function decode(result) {
|
|
32
|
+
const envelope = JSON.parse(result.toString());
|
|
33
|
+
if (envelope.error)
|
|
34
|
+
throw Object.assign(new Error(envelope.error), { code: envelope.code });
|
|
35
|
+
const restore = (v) => {
|
|
36
|
+
if (v?.$buffer !== undefined)
|
|
37
|
+
return Buffer.from(v.$buffer, "base64");
|
|
38
|
+
if (v?.$kind)
|
|
39
|
+
return { ...v, mtime: new Date(v.mtimeMs || 0), isFile: () => v.$kind === "file", isDirectory: () => v.$kind === "directory", isSymbolicLink: () => v.$kind === "symlink" };
|
|
40
|
+
return Array.isArray(v) ? v.map(restore) : v;
|
|
41
|
+
};
|
|
42
|
+
return restore(envelope.value);
|
|
43
|
+
}
|
|
44
|
+
async function remote(op, args) {
|
|
45
|
+
return decode(await dockerRun(dockerArgs(["node", "-e", program]), request(op, args)));
|
|
46
|
+
}
|
|
47
|
+
function remoteSync(op, args) {
|
|
48
|
+
return decode(dockerRunSync(dockerArgs(["node", "-e", program]), request(op, args)));
|
|
49
|
+
}
|
|
50
|
+
/** Import only for agent-controlled file operations. Configuration/session storage stays local. */
|
|
51
|
+
export const executionFs = new Proxy(localFs, {
|
|
52
|
+
get(target, property) {
|
|
53
|
+
if (!dockerEnabled())
|
|
54
|
+
return Reflect.get(target, property);
|
|
55
|
+
if (typeof property !== "string")
|
|
56
|
+
return undefined;
|
|
57
|
+
if (!["stat", "lstat", "readFile", "writeFile", "appendFile", "mkdir", "readdir", "access", "realpath", "rename", "rm", "rmdir", "unlink", "copyFile", "truncate"].includes(property)) {
|
|
58
|
+
return () => { throw new Error(`Unsupported container filesystem operation: ${property}`); };
|
|
59
|
+
}
|
|
60
|
+
return (...args) => remote(property, args);
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
export const executionReadFileSync = ((...args) => dockerEnabled() ? remoteSync("readFile", args) : localReadFileSync(...args));
|
|
64
|
+
export const executionStatSync = ((...args) => dockerEnabled() ? remoteSync("stat", args) : localStatSync(...args));
|
|
65
|
+
export const executionExistsSync = ((...args) => {
|
|
66
|
+
if (!dockerEnabled())
|
|
67
|
+
return localExistsSync(...args);
|
|
68
|
+
try {
|
|
69
|
+
remoteSync("stat", args);
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/execution/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,YAAY,IAAI,iBAAiB,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AACtH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElF,kGAAkG;AAClG,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;IAsBtB,CAAC;AAEL,SAAS,OAAO,CAAC,EAAU,EAAE,IAAe;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACjI,CAAC;AACD,SAAS,MAAM,CAAC,MAAc;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC,KAAK;QAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,CAAC,CAAM,EAAO,EAAE;QAC9B,IAAI,CAAC,EAAE,OAAO,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,EAAE,KAAK;YAAE,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1L,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC;IACF,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AACD,KAAK,UAAU,MAAM,CAAC,EAAU,EAAE,IAAe;IAC/C,OAAO,MAAM,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC;AACD,SAAS,UAAU,CAAC,EAAU,EAAE,IAAe;IAC7C,OAAO,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,WAAW,GAAmB,IAAI,KAAK,CAAC,OAAO,EAAE;IAC5D,GAAG,CAAC,MAAM,EAAE,QAAQ;QAClB,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACnD,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtL,OAAO,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAA6B,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,iBAA8B,CAAC,GAAG,IAAI,CAAC,CAA6B,CAAC;AAC/M,MAAM,CAAC,MAAM,iBAAiB,GAAyB,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,aAA0B,CAAC,GAAG,IAAI,CAAC,CAAyB,CAAC;AAC3L,MAAM,CAAC,MAAM,mBAAmB,GAA2B,CAAC,CAAC,GAAG,IAAe,EAAE,EAAE;IACjF,IAAI,CAAC,aAAa,EAAE;QAAE,OAAQ,eAA4B,CAAC,GAAG,IAAI,CAAC,CAAC;IACpE,IAAI,CAAC;QAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AACxE,CAAC,CAA2B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface ExecutionLaunch {
|
|
2
|
+
file: string;
|
|
3
|
+
args: string[];
|
|
4
|
+
cwd: string;
|
|
5
|
+
env: NodeJS.ProcessEnv;
|
|
6
|
+
signal?: (signal: "SIGINT" | "SIGTERM" | "SIGKILL") => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function executionLaunch(file: string, args: string[], cwd: string, env: Record<string, string>, tty?: boolean): ExecutionLaunch;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { dockerArgs, dockerEnabled, dockerHostEnv, dockerRun } from "./docker.js";
|
|
3
|
+
const runner = String.raw `
|
|
4
|
+
import os,sys,subprocess,signal,pty,select,tty,termios
|
|
5
|
+
marker=sys.argv[1]
|
|
6
|
+
use_pty=sys.argv[2]=='pty'
|
|
7
|
+
del sys.argv[2]
|
|
8
|
+
if use_pty:
|
|
9
|
+
pid,master=pty.fork()
|
|
10
|
+
if pid==0: os.execvp(sys.argv[2],sys.argv[2:])
|
|
11
|
+
with open(marker,'x') as f: f.write(str(pid))
|
|
12
|
+
previous=termios.tcgetattr(0) if os.isatty(0) else None
|
|
13
|
+
try:
|
|
14
|
+
if previous: tty.setraw(0)
|
|
15
|
+
while True:
|
|
16
|
+
ready,_,_=select.select([0,master],[],[])
|
|
17
|
+
if master in ready:
|
|
18
|
+
try: data=os.read(master,65536)
|
|
19
|
+
except OSError: break
|
|
20
|
+
if not data: break
|
|
21
|
+
os.write(1,data)
|
|
22
|
+
if 0 in ready:
|
|
23
|
+
data=os.read(0,65536)
|
|
24
|
+
if not data: break
|
|
25
|
+
os.write(master,data)
|
|
26
|
+
_,status=os.waitpid(pid,0)
|
|
27
|
+
code=os.waitstatus_to_exitcode(status)
|
|
28
|
+
finally:
|
|
29
|
+
if previous: termios.tcsetattr(0,termios.TCSADRAIN,previous)
|
|
30
|
+
os.close(master)
|
|
31
|
+
try: os.unlink(marker)
|
|
32
|
+
except FileNotFoundError: pass
|
|
33
|
+
else:
|
|
34
|
+
child=subprocess.Popen(sys.argv[2:],start_new_session=True)
|
|
35
|
+
with open(marker,'x') as f: f.write(str(child.pid))
|
|
36
|
+
try: code=child.wait()
|
|
37
|
+
finally:
|
|
38
|
+
try: os.unlink(marker)
|
|
39
|
+
except FileNotFoundError: pass
|
|
40
|
+
sys.exit(code if code>=0 else 128-code)
|
|
41
|
+
`;
|
|
42
|
+
const killer = String.raw `
|
|
43
|
+
import os,sys,signal
|
|
44
|
+
try:
|
|
45
|
+
with open(sys.argv[1]) as f: pid=int(f.read())
|
|
46
|
+
if pid>1: os.killpg(pid,getattr(signal,sys.argv[2]))
|
|
47
|
+
except (FileNotFoundError,ProcessLookupError): pass
|
|
48
|
+
`;
|
|
49
|
+
export function executionLaunch(file, args, cwd, env, tty = false) {
|
|
50
|
+
if (!dockerEnabled())
|
|
51
|
+
return { file, args, cwd, env: { ...process.env, ...env } };
|
|
52
|
+
const marker = `/tmp/neo-exec-${randomUUID()}.pid`;
|
|
53
|
+
return {
|
|
54
|
+
file: "docker", args: dockerArgs(["python3", "-c", runner, marker, tty ? "pty" : "pipe", file, ...args], cwd, env),
|
|
55
|
+
cwd: process.cwd(), env: dockerHostEnv(),
|
|
56
|
+
signal: signal => {
|
|
57
|
+
// Signal inside the container, never a host PID supplied by the model.
|
|
58
|
+
void dockerRun(dockerArgs(["python3", "-c", killer, marker, signal])).catch(() => { });
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=process.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/execution/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCxB,CAAC;AACF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMxB,CAAC;AASF,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAAc,EAAE,GAAW,EAAE,GAA2B,EAAE,GAAG,GAAG,KAAK;IACjH,IAAI,CAAC,aAAa,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC;IAClF,MAAM,MAAM,GAAG,iBAAiB,UAAU,EAAE,MAAM,CAAC;IACnD,OAAO;QACL,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;QAClH,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE;QACxC,MAAM,EAAE,MAAM,CAAC,EAAE;YACf,uEAAuE;YACvE,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxF,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -139,6 +139,9 @@ function validatePromptSection(value, index, entryPath) {
|
|
|
139
139
|
if (!isRecord(value) || !requireOptionalText(value.name) || typeof value.content !== "string") {
|
|
140
140
|
throw new Error(`invalid plugin module ${entryPath}: promptSections[${index}] must contain name and content`);
|
|
141
141
|
}
|
|
142
|
+
if (value.requiresTools !== undefined && (!Array.isArray(value.requiresTools) || value.requiresTools.some((name) => typeof name !== "string" || !name.trim()))) {
|
|
143
|
+
throw new Error(`invalid plugin module ${entryPath}: promptSections[${index}].requiresTools must be tool names`);
|
|
144
|
+
}
|
|
142
145
|
if (value.cacheStable !== undefined && typeof value.cacheStable !== "boolean") {
|
|
143
146
|
throw new Error(`invalid plugin module ${entryPath}: promptSections[${index}].cacheStable must be boolean`);
|
|
144
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-system.js","sourceRoot":"","sources":["../../src/plugins/plugin-system.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin-system.js","sourceRoot":"","sources":["../../src/plugins/plugin-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,15 @@ export interface SessionPromptExportSnapshot {
|
|
|
5
5
|
reasoning?: unknown;
|
|
6
6
|
systemPrompt?: string;
|
|
7
7
|
baseSystemPrompt?: string;
|
|
8
|
+
sessionPromptConfig?: import("../core/session-settings-prompt.js").SessionPromptSnapshot;
|
|
8
9
|
sessionPrompt?: {
|
|
9
10
|
override: boolean;
|
|
10
11
|
revision: string;
|
|
11
12
|
deferred: boolean;
|
|
12
13
|
pendingOverride?: boolean;
|
|
14
|
+
mode?: string;
|
|
15
|
+
pendingMode?: string;
|
|
16
|
+
effectiveRevision?: string;
|
|
13
17
|
};
|
|
14
18
|
promptSections?: unknown;
|
|
15
19
|
appPrompt?: unknown;
|