@stratusagent/tool-shell 0.11.4 → 0.11.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/index.d.ts +14 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -11
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ So this pack contributes the command string, and
|
|
|
56
56
|
- **"Always allow" persists a scope, not a command.** Approving `git push
|
|
57
57
|
origin main` means `git push origin feature` stops asking, while `git
|
|
58
58
|
push --force`, `git push origin :main`, and `git push origin +main` still
|
|
59
|
-
do. Scopes live per agent in `~/.stratus/agents/<id
|
|
59
|
+
do. Scopes live per agent in `~/.stratus/agents/<id>/whitelist.json`.
|
|
60
60
|
|
|
61
61
|
## The environment is replaced, not extended
|
|
62
62
|
|
|
@@ -72,9 +72,9 @@ read would not have said so.
|
|
|
72
72
|
|
|
73
73
|
| Key | Default | What |
|
|
74
74
|
| --- | --- | --- |
|
|
75
|
-
| `passEnv` | `PATH`, `HOME`, `LANG`, `LC_ALL`, `TZ` | Names forwarded from the daemon's environment. Nothing on the default list is a secret; that is the test for adding one. |
|
|
75
|
+
| `passEnv` | `PATH`, `HOME`, `LANG`, `LC_ALL`, `TZ` | Names forwarded from the daemon's environment. Nothing on the default list is a secret; that is the test for adding one. Under the always-on service the daemon's `PATH` is the one the service was installed from — see [Always on](../../docs/guides/always-on.md). |
|
|
76
76
|
| `env` | none | Variables set outright. Where a token goes if a command genuinely needs one — deliberately, in config, where an auditor can see it. |
|
|
77
|
-
| `cwd` | the agent's workspace | Where commands start. The default — `~/.stratus/
|
|
77
|
+
| `cwd` | the agent's workspace | Where commands start; a leading `~` is your home directory. The default — `~/.stratus/agents/<agent-id>/workspace`, which the host answers for — is created on first use; a directory you name is not, and a missing one is reported by name rather than as a spawn failure. |
|
|
78
78
|
| `timeoutMs` | `60000` | Killed with its whole process group after this. A process the command left in its own session (`setsid`, a daemon that detaches itself) survives, but no longer holds the call open — see [the guide](https://github.com/stratuslabs/agent/blob/main/docs/guides/shell.md#timeouts-and-background-processes). |
|
|
79
79
|
| `maxOutputBytes` | `100000` | Per stream, then a truncation marker. Enforced as the output is read, so a command that floods stdout is never held whole in the daemon's memory. |
|
|
80
80
|
| `shell` | `/bin/sh` | The interpreter. |
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type JsonObject, type Plugin } from '@stratusagent/core';
|
|
1
|
+
import { type AgentWorkspaces, type JsonObject, type Plugin } from '@stratusagent/core';
|
|
2
2
|
import { type LocalCommandTool } from '@stratusagent/executor-local';
|
|
3
3
|
export interface ShellPluginConfig extends JsonObject {
|
|
4
4
|
/** Where commands start. A starting directory, not a jail — see the README. */
|
|
@@ -11,12 +11,24 @@ export interface ShellPluginConfig extends JsonObject {
|
|
|
11
11
|
maxOutputBytes?: number;
|
|
12
12
|
/** The shell binary. `/bin/sh` unless you mean something else. */
|
|
13
13
|
shell?: string;
|
|
14
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* A root this plugin appends the agent id to. Only an operator sets it
|
|
16
|
+
* now — the host answers per agent through the `workspaces` seam — and
|
|
17
|
+
* setting it still relocates the agent's shell cwd, which is the point.
|
|
18
|
+
*/
|
|
15
19
|
workspaceRoot?: string;
|
|
16
20
|
}
|
|
17
21
|
export interface ShellToolOptions {
|
|
18
22
|
/** The environment to grant *from*. Defaults to the daemon's. */
|
|
19
23
|
processEnv?: NodeJS.ProcessEnv;
|
|
24
|
+
/**
|
|
25
|
+
* Where each agent's files go, from the host. The plugin passes its
|
|
26
|
+
* `setup` context's seam through; a caller building the tool directly
|
|
27
|
+
* supplies one or leaves the cwd to `workspaceRoot`.
|
|
28
|
+
*/
|
|
29
|
+
workspaces?: AgentWorkspaces;
|
|
30
|
+
/** What `~` in `cwd` expands to. Defaults to the daemon user's home. */
|
|
31
|
+
home?: string;
|
|
20
32
|
}
|
|
21
33
|
export declare const createShellTool: (config?: JsonObject, options?: ShellToolOptions) => LocalCommandTool;
|
|
22
34
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,UAAU,EAEf,KAAK,MAAM,EAEZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAWtC,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,+EAA+E;IAC/E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,6CAA6C;IAC7C,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoFD,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,eAAe,GAAI,SAAQ,UAAe,EAAE,UAAS,gBAAqB,KAAG,gBAuGzF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAQ,UAAe,EAAE,UAAS,gBAAqB,KAAG,MAa1F,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,YAAY,YAhBiB,UAAU,YAAgB,gBAAgB,KAAQ,MAgB/C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { mkdir, stat } from 'node:fs/promises';
|
|
2
|
-
import
|
|
3
|
-
import { DEFAULT_SUBPROCESS_PASS_ENV } from '@stratusagent/core';
|
|
2
|
+
import { DEFAULT_SUBPROCESS_PASS_ENV, } from '@stratusagent/core';
|
|
4
3
|
import { defineLocalCommandTool, } from '@stratusagent/executor-local';
|
|
5
|
-
import { resolvePluginAgentConfig } from '@stratusagent/plugins';
|
|
4
|
+
import { expandHome, resolvePluginAgentConfig, workspacePreparer } from '@stratusagent/plugins';
|
|
6
5
|
const DEFAULT_TIMEOUT_MS = 60_000;
|
|
7
6
|
const DEFAULT_MAX_OUTPUT_BYTES = 100_000;
|
|
8
7
|
// What the child is allowed to inherit by name — the kernel's one list,
|
|
@@ -21,11 +20,33 @@ const truncate = (value, maxBytes, dropped) => {
|
|
|
21
20
|
}
|
|
22
21
|
return { text: `${value.slice(0, maxBytes)}\n… output truncated at ${maxBytes} bytes`, truncated: true };
|
|
23
22
|
};
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* The output cap, without asking where the workspace is.
|
|
25
|
+
*
|
|
26
|
+
* `parseResult` runs after the subprocess has finished, and asking the
|
|
27
|
+
* preparing seam again there would let a workspace that went away between
|
|
28
|
+
* the two turn a command that already ran — and may already have changed
|
|
29
|
+
* something — into a failed tool result somebody retries.
|
|
30
|
+
*/
|
|
31
|
+
const maxOutputBytesFor = (config, session) => asNumber(resolvePluginAgentConfig(config, session.agent.id).maxOutputBytes, DEFAULT_MAX_OUTPUT_BYTES);
|
|
32
|
+
const settingsFor = (config, session, env, workspaces, home) => {
|
|
25
33
|
const resolved = resolvePluginAgentConfig(config, session.agent.id);
|
|
26
34
|
const workspaceRoot = typeof resolved.workspaceRoot === 'string' ? resolved.workspaceRoot : undefined;
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
// Expanded here because nothing upstream does: this README's own example
|
|
36
|
+
// is `"cwd": "~/work/ava"`, and unexpanded that is a relative path whose
|
|
37
|
+
// first segment is a directory literally named `~`, so every command
|
|
38
|
+
// failed as a missing working directory.
|
|
39
|
+
const configuredCwd = typeof resolved.cwd === 'string' && resolved.cwd.length > 0
|
|
40
|
+
? expandHome(resolved.cwd, home)
|
|
41
|
+
: undefined;
|
|
42
|
+
// Resolved per call, and through the shared rule rather than a join of
|
|
43
|
+
// this plugin's own: where an agent's workspace is is the host's to say,
|
|
44
|
+
// and appending the id here is what made this plugin one of five copies
|
|
45
|
+
// of a layout that then moved. See `workspaceResolver`.
|
|
46
|
+
// Prepared, not just resolved: this is the directory the command is
|
|
47
|
+
// about to start in, and the host makes it owner-only before it does.
|
|
48
|
+
const workspaceFor = workspacePreparer(workspaces, workspaceRoot);
|
|
49
|
+
const cwd = configuredCwd ?? workspaceFor?.(session.agent.id);
|
|
29
50
|
const granted = {};
|
|
30
51
|
for (const name of asStrings(resolved.passEnv, DEFAULT_PASS_ENV)) {
|
|
31
52
|
const value = env[name];
|
|
@@ -86,7 +107,7 @@ export const createShellTool = (config = {}, options = {}) => {
|
|
|
86
107
|
if (!command) {
|
|
87
108
|
throw new Error('command is required.');
|
|
88
109
|
}
|
|
89
|
-
const settings = settingsFor(config, session, options.processEnv ?? process.env);
|
|
110
|
+
const settings = settingsFor(config, session, options.processEnv ?? process.env, options.workspaces, options.home);
|
|
90
111
|
if (settings.cwd) {
|
|
91
112
|
// `spawn` fails with a bare `ENOENT` naming the *shell* when its
|
|
92
113
|
// working directory does not exist — which on a fresh install is
|
|
@@ -122,9 +143,9 @@ export const createShellTool = (config = {}, options = {}) => {
|
|
|
122
143
|
};
|
|
123
144
|
},
|
|
124
145
|
parseResult(result, context) {
|
|
125
|
-
const
|
|
126
|
-
const stdout = truncate(result.stdout,
|
|
127
|
-
const stderr = truncate(result.stderr,
|
|
146
|
+
const maxOutputBytes = maxOutputBytesFor(config, context.session);
|
|
147
|
+
const stdout = truncate(result.stdout, maxOutputBytes, result.stdoutTruncated);
|
|
148
|
+
const stderr = truncate(result.stderr, maxOutputBytes, result.stderrTruncated);
|
|
128
149
|
return {
|
|
129
150
|
stdout: stdout.text,
|
|
130
151
|
stderr: stderr.text,
|
|
@@ -160,7 +181,15 @@ export const createShellTool = (config = {}, options = {}) => {
|
|
|
160
181
|
export const createShellPlugin = (config = {}, options = {}) => ({
|
|
161
182
|
name: '@stratusagent/tool-shell',
|
|
162
183
|
setup(context) {
|
|
163
|
-
context.tools.register(createShellTool(config,
|
|
184
|
+
context.tools.register(createShellTool(config, {
|
|
185
|
+
...options,
|
|
186
|
+
// The host's seam, unless the caller that constructed this plugin
|
|
187
|
+
// already supplied one: an option passed by hand is the more specific
|
|
188
|
+
// answer, the way `plugin-mcp` treats `log`.
|
|
189
|
+
...(options.workspaces === undefined && context.workspaces !== undefined
|
|
190
|
+
? { workspaces: context.workspaces }
|
|
191
|
+
: {}),
|
|
192
|
+
}));
|
|
164
193
|
},
|
|
165
194
|
});
|
|
166
195
|
/** The loader's ABI. See `docs/architecture/plugins.md`. */
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stratusagent/tool-shell",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
"node": ">=22.13 <23 || >=23.4"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@stratusagent/core": "0.11.
|
|
22
|
-
"@stratusagent/executor-local": "0.11.
|
|
23
|
-
"@stratusagent/plugins": "0.11.
|
|
21
|
+
"@stratusagent/core": "0.11.6",
|
|
22
|
+
"@stratusagent/executor-local": "0.11.6",
|
|
23
|
+
"@stratusagent/plugins": "0.11.6"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "^24.6.0",
|
|
27
27
|
"typescript": "^5.9.3",
|
|
28
|
-
"@stratusagent/permissions": "0.11.
|
|
28
|
+
"@stratusagent/permissions": "0.11.6"
|
|
29
29
|
},
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"repository": {
|