@stratusagent/tool-shell 0.13.1 → 0.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -44,10 +44,15 @@ Once the agent has a file on record as written from an `external` session
44
44
  (the ledger `fs.read` consults), every command's output is labelled
45
45
  `external` instead, because a command can print any file it can read and
46
46
  which ones it reads can't be told from its text. With
47
- `approvals.externalContent: "gate"` that closes the session's grants after
48
- any command, the same as `fs.read` of that file would. The ledger is read
49
- before the command starts and again after it exits, so a tainted write that
50
- lands while it runs counts too. To clear it, remove
47
+ `approvals.externalContent: "gate"` that closes the session's grants for
48
+ every command, the first one of a session included: the ledger's label
49
+ reaches the session before the call is judged (`Tool.trustBeforeCall`), so
50
+ an Always-allowed `python notes.py` asks rather than running the file
51
+ unattended. A write recorded while the call waits for approval is judged
52
+ again, and one recorded after approval stops the command before it starts.
53
+ The ledger is read once more after the command exits, so a tainted write
54
+ that lands while it runs labels its output too, though that command was
55
+ already judged without it. To clear it, remove
51
56
  the path's lines from the agent's `fs-provenance.jsonl`. The ledger is
52
57
  opened from the host's workspaces, so a plugin built without that seam
53
58
  labels everything `unknown`.
@@ -171,14 +176,46 @@ git can find its repository), but nothing can be read from inside them.
171
176
  | Key | Default | What |
172
177
  | --- | --- | --- |
173
178
  | `sandbox` | `required` | `required`: refuse every command when no sandbox can start (no `bwrap`, or a container that forbids user namespaces), with the reason. A host wired by hand with no workspace and no `cwd` has nothing to confine commands to, so `required` refuses there too. `auto`: run unconfined there instead, and log why, once. `off`: run with the daemon user's full access. |
174
- | `deniedPaths` | none | More directories or files to hide, added to the list above, including ones inside the workspace (a repository's `.env`). A leading `~` is your home directory. |
179
+ | `deniedPaths` | none | More directories or files to hide, added to the list above, including ones inside the workspace (a repository's `.env`). A leading `~` is your home directory. On Linux, an entry that doesn't exist yet inside a writable directory (the workspace, `cwd` or `writablePaths`) refuses every command with a message naming it, because bwrap hides a path by mounting over it and a command could otherwise create and use it. Create it (an empty file or directory) or remove it. The same goes for a credential location the environment moves into one of them, such as `SSH_AUTH_SOCK`. macOS hides an absent path as written, so it never refuses there. |
175
180
  | `home` | `hidden` | `hidden`: only the toolchain paths above and `readablePaths` are readable in your home. `visible`: all of it is, apart from the denied paths. |
176
181
  | `readablePaths` | none | More paths a command may read (`~/projects`), read-only. They win over the default denials around them, so a path inside the Stratus home (an agent's own `~/.stratus/integrations/<id>` git and gh config) can be named. Denied paths inside them stay hidden. |
177
- | `writablePaths` | none | More directories a command may write, such as a build tool's cache (`~/.gradle`). On Linux, these and the default caches are created before the command if missing, since nothing under the read-only root can be. |
182
+ | `writablePaths` | none | More directories a command may write, such as a build tool's cache (`~/.gradle`). Like `readablePaths`, they win over the default denials around them, so an agent's own home inside the Stratus home (`~/.stratus/integrations/<id>/home`, where CLIs like vercel, gh and gcloud save their config) can be named. Denied paths inside them stay denied. A path that is or holds the Stratus home, another agent's workspace, or a file the host protects is refused, with the command, and so is one inside another agent's workspace or inside a directory the host protects other than the Stratus home (a gateway's own `stateDir`). Name the narrowest directory: `integrations/<id>/home`, not `integrations/<id>`, which can hold the agent's toolchain and git or gh config. On Linux, these and the default caches are created before the command if missing, since nothing under the read-only root can be. |
183
+ | `credentialsEnv` | none | Environment variables filled from the credential store: `{ "GH_TOKEN": "github.token" }`. See below. |
178
184
 
179
185
  All of these can be set per agent under `agents`.
180
186
 
181
187
  A CLI that reads its login from a hidden path (`gh` from `~/.config/gh` or
182
188
  the keychain, `fly` from `~/.fly`) can't authenticate inside the sandbox.
183
- Give that agent a token through `env`, where it's visible in config, or set
184
- `sandbox: "off"` for it.
189
+ Give that agent a stored credential through `credentialsEnv`, or a token
190
+ through `env`, where it's visible in config, or set `sandbox: "off"` for it.
191
+
192
+ ### Stored credentials in the environment
193
+
194
+ `credentialsEnv` maps a variable to a credential name, and each command gets
195
+ the agent's stored value (`stratus credential set`, or `credential.request`
196
+ from chat). Set it fleet-wide, per agent under `agents`, or both. The two are
197
+ merged name by name, with the agent's own entry winning:
198
+
199
+ ```json
200
+ "@stratusagent/tool-shell": {
201
+ "credentialsEnv": { "GH_TOKEN": "github.token" },
202
+ "agents": { "kai": { "credentialsEnv": { "VERCEL_TOKEN": "vercel.token" } } }
203
+ }
204
+ ```
205
+
206
+ - An agent gets a name only when its soul lists it under `credentials:`. A
207
+ fleet-wide mapping gives each agent its own value, and nothing for a name
208
+ it isn't granted. A granted name with nothing stored leaves the variable unset.
209
+ - The value is read when the command starts, so a replaced key reaches the next
210
+ command without a restart. It wins over the same name in `env` or `passEnv`.
211
+ - A command can read the value: `echo $GH_TOKEN` prints it, and so does the
212
+ tool result. Map only narrowly scoped tokens (a repo-scoped GitHub token,
213
+ a project-scoped Vercel one).
214
+ - Variables that find or run programs (`PATH`, `HOME`, `BASH_ENV`,
215
+ `GIT_DIR` and the rest of the filtered list) are refused, along with names
216
+ that aren't valid variable names.
217
+
218
+ `gh` prefers `GH_TOKEN` over its own `hosts.yml`, so the stored credential is
219
+ the one source of truth. For `git push` over HTTPS to use it as well, point
220
+ git's credential helper at gh in the agent's git config
221
+ (`credential.helper = !gh auth git-credential`).
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type AgentWorkspaces, type JsonObject, type Plugin, type ProtectedPaths } from '@stratusagent/core';
1
+ import { type AgentWorkspaces, type CredentialResolver, type JsonObject, type Plugin, type ProtectedPaths } from '@stratusagent/core';
2
2
  import { type LocalCommandTool } from '@stratusagent/executor-local';
3
3
  import { type TaintedWriteLedger } from '@stratusagent/plugins';
4
4
  import { planSandbox } from './sandbox.ts';
@@ -29,6 +29,12 @@ export declare const COMMAND_OPTION_VARIABLES: readonly ["RIPGREP_CONFIG_PATH",
29
29
  /** For tests: say the unconfined warning again. */
30
30
  export declare const resetSandboxWarning: () => void;
31
31
  export interface ShellToolOptions {
32
+ /**
33
+ * The host's credential store, `PluginContext.credentials`, which
34
+ * `credentialsEnv` reads from. The plugin passes its `setup` context's
35
+ * resolver through.
36
+ */
37
+ credentials?: CredentialResolver;
32
38
  /** Where an unconfined-shell warning goes. Defaults to the plugin context's log, then stderr. */
33
39
  warn?: (message: string) => void;
34
40
  /** For tests: how a sandbox is planned on this host. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,UAAU,EAEf,KAAK,MAAM,EACX,KAAK,cAAc,EAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAOL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAQL,WAAW,EAMZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AAUtB,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;AA8BD;;;GAGG;AAIH,eAAO,MAAM,wBAAwB,0DAA2D,CAAC;AA0RjG,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,QAAO,IAEtC,CAAC;AAmCF,MAAM,WAAW,gBAAgB;IAC/B,iGAAiG;IACjG,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,WAAW,CAAC;IACjC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AA0CD,eAAO,MAAM,eAAe,GAAI,SAAQ,UAAe,EAAE,UAAS,gBAAqB,KAAG,gBAyIzF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAQ,UAAe,EAAE,UAAS,gBAAqB,KAAG,MAwB1F,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,YAAY,YA3BiB,UAAU,YAAgB,gBAAgB,KAAQ,MA2B/C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAEf,KAAK,MAAM,EACX,KAAK,cAAc,EAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAOL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAQL,WAAW,EAMZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,aAAa,EACb,SAAS,EACT,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AAUtB,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;AA8BD;;;GAGG;AAIH,eAAO,MAAM,wBAAwB,0DAA2D,CAAC;AA2ajG,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,QAAO,IAEtC,CAAC;AA2FF,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,iGAAiG;IACjG,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,WAAW,CAAC;IACjC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAyDD,eAAO,MAAM,eAAe,GAAI,SAAQ,UAAe,EAAE,UAAS,gBAAqB,KAAG,gBAgKzF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAQ,UAAe,EAAE,UAAS,gBAAqB,KAAG,MA0B1F,CAAC;AAEH,4DAA4D;AAC5D,eAAO,MAAM,YAAY,YA7BiB,UAAU,YAAgB,gBAAgB,KAAQ,MA6B/C,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
- import { realpathSync } from 'node:fs';
1
+ import { existsSync, realpathSync } from 'node:fs';
2
2
  import { mkdir, stat } from 'node:fs/promises';
3
3
  import os from 'node:os';
4
4
  import path from 'node:path';
5
+ import { isValidAgentId } from '@stratusagent/agents';
5
6
  import { DEFAULT_SUBPROCESS_PASS_ENV, leastTrusted, } from '@stratusagent/core';
6
7
  import { defineLocalCommandTool, LOCAL_COMMAND_MAX_TIMEOUT_MS, } from '@stratusagent/executor-local';
7
8
  import { allAgentWorkspaces, createFileLedger, expandHome, resolvePluginAgentConfig, workspacePreparer, workspaceResolver, } from '@stratusagent/plugins';
@@ -79,7 +80,7 @@ const GIT_REPOSITORY_VARIABLES = [
79
80
  const SHELL_STARTUP_VARIABLES = [
80
81
  'BASH_ENV', 'ENV', 'ZDOTDIR', 'CDPATH', 'BASHOPTS', 'SHELLOPTS', 'POSIXLY_CORRECT',
81
82
  ];
82
- const settingsFor = (config, session, env, workspaces, home) => {
83
+ const settingsFor = (config, session, env, workspaces, home, credentialEnv = {}) => {
83
84
  // `env` merges rather than replacing: an agent given its own token keeps
84
85
  // the fleet's PATH (#205). A `null` withholds a shared variable from one
85
86
  // agent, since only strings are set below.
@@ -122,6 +123,10 @@ const settingsFor = (config, session, env, workspaces, home) => {
122
123
  }
123
124
  }
124
125
  }
126
+ // Stored credentials last, over `env` and `passEnv`: the store is the one
127
+ // source of truth for a mapped name. Names the filters below would drop
128
+ // were refused when the mapping was read (credentialEnvFor).
129
+ Object.assign(granted, credentialEnv);
125
130
  // Variables that hand a judged command options the command line never
126
131
  // shows: `rg pattern` with RIPGREP_CONFIG_PATH can be `rg --pre … --follow
127
132
  // pattern`, BSD grep reads GREP_OPTIONS, and gzip reads GZIP (`-S x`
@@ -197,7 +202,7 @@ const settingsFor = (config, session, env, workspaces, home) => {
197
202
  * operator turned it off. `required` refuses when no sandbox can start;
198
203
  * `auto` runs unconfined then, after saying so once per process.
199
204
  */
200
- const sandboxed = async (settings, shellArgs, options) => {
205
+ const sandboxed = async (settings, shellArgs, options, agentId) => {
201
206
  const unconfined = { command: settings.shell, args: shellArgs };
202
207
  if (settings.sandbox === 'off') {
203
208
  return unconfined;
@@ -238,26 +243,156 @@ const sandboxed = async (settings, shellArgs, options) => {
238
243
  const others = [...await options.workspaces?.all() ?? [], ...underRoot]
239
244
  .filter((dir) => !spellings(dir).some((spelling) => own.has(spelling)));
240
245
  const hostProtected = await options.protectedPaths?.all() ?? [];
246
+ // A named writable path wins over the denials around it (an agent's own
247
+ // home under ~/.stratus/integrations/<id>), so one that is or holds the
248
+ // Stratus home, another agent's workspace, or a file the host protects
249
+ // would reopen writes to them. Refused rather than quietly narrowed: the
250
+ // operator meant something by it, and the fix is to name the directory.
251
+ // Another agent's workspace and every other directory the host protects
252
+ // (a gateway's own stateDir) are refused in both directions: a writable
253
+ // path inside one opens that part of it as surely as one above it.
254
+ // Inside the Stratus home the rule is an allowlist, not a carve-out:
255
+ // only this agent's own integrations/<id>/home, and its own workspace
256
+ // when that sits inside the home, since every other descendant
257
+ // (sessions, daemon state, another agent's home) is what the denial is
258
+ // for. Every path is compared by its written and its real spelling, the
259
+ // real one resolved through the nearest existing ancestor so an absent
260
+ // path behind a symlink is placed where it would land.
261
+ const stratusHomes = stratusHomesFor(workspace, processEnv, userHome);
262
+ const homePlaces = stratusHomes.flatMap(placements);
263
+ const workspacePlaces = placements(workspace);
264
+ const ownPlaces = [
265
+ ...(isValidAgentId(agentId) ? stratusHomes.map((home) => path.join(home, 'integrations', agentId, 'home')).flatMap(placements) : []),
266
+ ...(workspacePlaces.some((dir) => homePlaces.some((home) => dir !== home && isWithin(home, dir))) ? workspacePlaces : []),
267
+ ];
268
+ const guarded = [...homePlaces, ...hostProtected.flatMap(placements)];
269
+ const sealed = hostProtected
270
+ .filter((target) => !placements(target).some((place) => homePlaces.includes(place)))
271
+ .flatMap(placements);
272
+ const otherPlaces = others.flatMap(placements);
273
+ for (const entry of settings.writablePaths) {
274
+ const places = placements(entry);
275
+ const holds = guarded.find((target) => places.some((dir) => isWithin(dir, target)));
276
+ if (holds !== undefined) {
277
+ throw new Error(`shell.run refused: writablePaths names ${entry}, which is or holds ${holds}, and a writable path there would open it to every command. `
278
+ + 'Name the directory a command needs inside it instead, such as the agent\'s own ~/.stratus/integrations/<id>/home.');
279
+ }
280
+ const within = sealed.find((target) => places.some((dir) => isWithin(target, dir)));
281
+ if (within !== undefined) {
282
+ throw new Error(`shell.run refused: writablePaths names ${entry}, which is inside ${within}, a directory the host protects, and a writable path there would open that part of it to every command. `
283
+ + 'Name a directory outside it.');
284
+ }
285
+ const overlaps = otherPlaces.find((target) => places.some((dir) => isWithin(dir, target) || isWithin(target, dir)));
286
+ if (overlaps !== undefined) {
287
+ throw new Error(`shell.run refused: writablePaths names ${entry}, which overlaps another agent's workspace (${overlaps}), and a writable path there would open it to this agent's commands. `
288
+ + 'Name a directory outside every other agent\'s workspace.');
289
+ }
290
+ const inHome = homePlaces.find((home) => places.some((dir) => isWithin(home, dir)));
291
+ // Every placement, not just the written one: a link inside the agent's
292
+ // own subtree that lands elsewhere (in the home, or outside it at
293
+ // ~/.ssh) is granted by its real path, after the denials, so every
294
+ // placement has to stay inside the owned subtree.
295
+ if (inHome !== undefined && !places.every((dir) => ownPlaces.some((own) => isWithin(own, dir)))) {
296
+ throw new Error(`shell.run refused: writablePaths names ${entry}, which is inside the Stratus home (${inHome}), and a writable path there would open daemon state or another agent's files to every command. `
297
+ + 'Inside it, name only this agent\'s own ~/.stratus/integrations/<id>/home.');
298
+ }
299
+ }
300
+ // Every denial, assembled once: the check below and the policy read the
301
+ // same list, so nothing the policy hides escapes the check.
302
+ const fromEnvironment = [
303
+ ...userRuntimeEndpoints(processEnv, process.getuid?.()),
304
+ ...credentialAgentEndpoints(processEnv, platform),
305
+ ...relocatedCredentials(processEnv, userHome, workspace),
306
+ ];
307
+ const deniedEntries = [...new Set([
308
+ ...stratusHomes,
309
+ ...hostProtected,
310
+ ...others,
311
+ ...DEFAULT_DENIED_HOME_PATHS.map((entry) => path.join(userHome, entry)),
312
+ ...DEFAULT_DENIED_SOCKETS,
313
+ ...fromEnvironment,
314
+ ...settings.deniedPaths,
315
+ ])];
316
+ // bwrap masks a denied path by mounting over it, so one that does not
317
+ // exist yet has nothing to mount on, and inside a writable path the
318
+ // command could create and use it. That holds for every denial, not only
319
+ // deniedPaths: a credential store or agent socket the environment moves
320
+ // inside a granted writable path is restored over just the same.
321
+ // Refused rather than made ahead of time: whether it should be a file or
322
+ // a directory is the operator's call. macOS denies an absent path as
323
+ // written, so only Linux refuses. The fixed built-in list is left out:
324
+ // it names files inside ordinary toolchain dirs (~/.gradle, ~/.m2), so
325
+ // refusing on it would break existing grants; that pre-existing case is
326
+ // tracked separately rather than turned into a refusal here.
327
+ // The workspace and the working directory are writable binds too, so an
328
+ // operator's deniedPaths entry or a credential location the environment
329
+ // names inside either is refused the same way (card 605). Only those two
330
+ // kinds there: another agent's workspace that does not exist yet under a
331
+ // broad cwd (~) is an ordinary state on a fresh install, and refusing
332
+ // every command for it would break setups that work today.
333
+ if (platform === 'linux') {
334
+ const configured = new Set(settings.deniedPaths);
335
+ const environment = new Set(fromEnvironment);
336
+ const builtIn = new Set([...DEFAULT_DENIED_HOME_PATHS.map((entry) => path.join(userHome, entry)), ...DEFAULT_DENIED_SOCKETS]);
337
+ const binds = [
338
+ ...settings.writablePaths.map((dir) => ({ dir, named: `writablePaths ${dir}`, fix: 'narrow writablePaths so it is outside them' })),
339
+ ];
340
+ const workBinds = [
341
+ { dir: workspace, named: `the agent's workspace ${workspace}`, fix: 'move it outside the workspace' },
342
+ ...(settings.cwd && settings.cwd !== workspace
343
+ ? [{ dir: settings.cwd, named: `the working directory ${settings.cwd}`, fix: 'move it outside the working directory' }]
344
+ : []),
345
+ ];
346
+ // The binds bwrap applies after the first round of masks, which can give
347
+ // part of a masked directory back; it masks the denials inside them
348
+ // again at the end (see bwrapArgs).
349
+ const reopening = [workspace, ...settings.readablePaths, ...settings.writablePaths];
350
+ const existingDenied = deniedEntries.filter((entry) => existsSync(entry));
351
+ for (const denied of deniedEntries.filter((entry) => configured.has(entry) || !builtIn.has(entry))) {
352
+ if (existsSync(denied)) {
353
+ continue;
354
+ }
355
+ const deniedPlaces = placements(denied);
356
+ const holds = (dir) => placements(dir).some((spelling) => deniedPlaces.some((place) => isWithin(spelling, place)));
357
+ // An existing denied directory above it is masked whole, so nothing
358
+ // under it can be created (Codex P2 4349031916): unless a later bind
359
+ // inside that directory gives back the part holding this path, and
360
+ // the directory isn't masked again after it.
361
+ const covered = existingDenied.some((ancestor) => {
362
+ const ancestorPlaces = placements(ancestor);
363
+ const above = ancestorPlaces.some((up) => deniedPlaces.some((place) => place !== up && isWithin(up, place)));
364
+ if (!above) {
365
+ return false;
366
+ }
367
+ const maskedLast = reopening.some((dir) => placements(dir).some((spelling) => ancestorPlaces.some((up) => isWithin(spelling, up))));
368
+ const reopened = reopening.some((dir) => holds(dir) && placements(dir).some((spelling) => ancestorPlaces.some((up) => spelling !== up && isWithin(up, spelling))));
369
+ return maskedLast || !reopened;
370
+ });
371
+ if (covered) {
372
+ continue;
373
+ }
374
+ const candidates = configured.has(denied) || environment.has(denied) ? [...binds, ...workBinds] : binds;
375
+ const inside = candidates.find((bind) => holds(bind.dir));
376
+ if (inside !== undefined) {
377
+ throw new Error(configured.has(denied)
378
+ ? `shell.run refused: deniedPaths names ${denied}, inside ${inside.named}, and it does not exist, so the Linux sandbox cannot hide it from commands. `
379
+ + 'Create it (an empty file or directory) before running commands, or remove it from deniedPaths.'
380
+ : `shell.run refused: ${denied}, a credential location that must stay hidden from commands, is inside ${inside.named}, and does not exist, so the Linux sandbox cannot hide it. `
381
+ + `Create it (an empty file or directory) before running commands, or ${inside.fix}.`);
382
+ }
383
+ }
384
+ }
241
385
  const policy = {
242
386
  workspace,
243
387
  ...(settings.cwd && settings.cwd !== workspace ? { cwd: settings.cwd } : {}),
244
- denied: [...new Set([
245
- ...stratusHomesFor(workspace, processEnv, userHome),
246
- ...hostProtected,
247
- ...others,
248
- ...DEFAULT_DENIED_HOME_PATHS.map((entry) => path.join(userHome, entry)),
249
- ...DEFAULT_DENIED_SOCKETS,
250
- ...userRuntimeEndpoints(processEnv, process.getuid?.()),
251
- ...credentialAgentEndpoints(processEnv, platform),
252
- ...relocatedCredentials(processEnv, userHome, workspace),
253
- ...settings.deniedPaths,
254
- ].flatMap(spellings))],
388
+ denied: [...new Set(deniedEntries.flatMap(spellings))],
255
389
  writable: [
256
390
  ...writableHomePathsFor(platform).map((entry) => path.join(userHome, entry)),
257
391
  ...settings.writablePaths,
258
392
  ],
259
393
  tmp: os.tmpdir(),
260
394
  readable: settings.readablePaths,
395
+ grantedWritable: settings.writablePaths,
261
396
  ...(settings.home === 'hidden' ? {
262
397
  home: {
263
398
  path: userHome,
@@ -302,6 +437,8 @@ let unconfinedWarned = false;
302
437
  export const resetSandboxWarning = () => {
303
438
  unconfinedWarned = false;
304
439
  };
440
+ /** A path as written and as it really is, for containment checks. */
441
+ const placements = (target) => [...new Set([...spellings(target), canonicalPath(path.resolve(target))])];
305
442
  const isWithin = (dir, candidate) => {
306
443
  const relative = path.relative(dir, candidate);
307
444
  return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
@@ -335,6 +472,49 @@ const canonicalPath = (target) => {
335
472
  }
336
473
  return current;
337
474
  };
475
+ /**
476
+ * The variables `credentialsEnv` sets for this agent's commands, from the
477
+ * credential store: `{ GH_TOKEN: "github.token" }` puts the agent's stored
478
+ * `github.token` in `GH_TOKEN`. Per agent like the rest of the settings, and
479
+ * only names the agent's soul grants it (its `credentials:` list); a name it
480
+ * isn't granted is skipped, so a fleet-wide mapping gives each agent only
481
+ * its own. A granted name with nothing stored leaves the variable unset.
482
+ *
483
+ * The command can read the value (`echo $GH_TOKEN` prints it), which is
484
+ * the point and the cost: map only narrowly scoped tokens.
485
+ */
486
+ const credentialEnvFor = async (config, session, credentials) => {
487
+ const mapping = resolvePluginAgentConfig(config, session.agent.id, { mergeKeys: ['credentialsEnv'] }).credentialsEnv;
488
+ if (typeof mapping !== 'object' || mapping === null || Array.isArray(mapping) || Object.keys(mapping).length === 0) {
489
+ return {};
490
+ }
491
+ if (credentials === undefined) {
492
+ throw new Error('shell.run refused: credentialsEnv is set for @stratusagent/tool-shell, but this host hands the plugin no credential store, '
493
+ + 'so the mapped variables would be silently empty.');
494
+ }
495
+ const granted = new Set(session.agent.credentials ?? []);
496
+ const env = {};
497
+ for (const [variable, name] of Object.entries(mapping)) {
498
+ if (typeof name !== 'string' || name.length === 0) {
499
+ continue;
500
+ }
501
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(variable) || RESERVED_CREDENTIAL_VARIABLES.has(variable)
502
+ || COMMAND_OPTION_VARIABLES.includes(variable) || SHELL_STARTUP_VARIABLES.includes(variable)
503
+ || GIT_REPOSITORY_VARIABLES.includes(variable) || variable.startsWith('BASH_FUNC_')) {
504
+ throw new Error(`shell.run refused: credentialsEnv can't set ${variable}. Map a credential to a variable a CLI reads its token from, such as GH_TOKEN.`);
505
+ }
506
+ if (!granted.has(name)) {
507
+ continue;
508
+ }
509
+ const value = await credentials.resolve(session.agent, name);
510
+ if (value !== undefined) {
511
+ env[variable] = value;
512
+ }
513
+ }
514
+ return env;
515
+ };
516
+ /** Variables a credential must not replace: what finds programs and where they keep their files. */
517
+ const RESERVED_CREDENTIAL_VARIABLES = new Set(['PATH', 'HOME', 'SHELL', 'USER', 'LOGNAME', 'TMPDIR', 'PWD', 'IFS']);
338
518
  /**
339
519
  * The label a command's output can carry, given what this agent has on
340
520
  * record as written from a tainted session.
@@ -349,7 +529,16 @@ const canonicalPath = (target) => {
349
529
  * the result `external` rather than refusing a command that may be how the
350
530
  * operator repairs it.
351
531
  */
352
- const recordedLabel = async (ledger, agentId) => {
532
+ const recordedLabel = async (ledger, agentId) => leastTrusted('unknown', (await ledgerLabel(ledger, agentId)) ?? 'unknown');
533
+ /**
534
+ * The lowest label on record for this agent's writes, or nothing when none
535
+ * is on record. Unfloored, unlike `recordedLabel`: this is what a call may
536
+ * read before it acts, and with nothing on record a command reads nothing
537
+ * the session hasn't already been judged on (its own output is `unknown`
538
+ * either way, by `outputTrust`). So a clean ledger leaves the decision as it
539
+ * was. An unreadable ledger is `external`, as below.
540
+ */
541
+ const ledgerLabel = async (ledger, agentId) => {
353
542
  // Bounded as well, for a ledger this plugin did not open: the file ledger
354
543
  // refuses a FIFO or device before reading it, but a host-supplied one, or
355
544
  // a stalled network filesystem, could still never answer, and a command
@@ -364,7 +553,11 @@ const recordedLabel = async (ledger, agentId) => {
364
553
  timer = setTimeout(() => resolve(undefined), LEDGER_READ_TIMEOUT_MS);
365
554
  }),
366
555
  ]);
367
- return snapshot === undefined ? 'external' : leastTrusted('unknown', ...Object.values(snapshot));
556
+ if (snapshot === undefined) {
557
+ return 'external';
558
+ }
559
+ const labels = Object.values(snapshot);
560
+ return labels.length === 0 ? undefined : leastTrusted(...labels);
368
561
  }
369
562
  catch {
370
563
  return 'external';
@@ -412,6 +605,13 @@ export const createShellTool = (config = {}, options = {}) => {
412
605
  },
413
606
  required: ['command'],
414
607
  },
608
+ // Before the decision, so the call is judged as reading what the ledger
609
+ // holds, not only the calls after it: an Always-allowed `python x.py`
610
+ // runs the file's code in this very call. The ledger's own label, not
611
+ // the result's `unknown` floor, so a clean ledger changes no decision.
612
+ ...(options.ledger !== undefined
613
+ ? { trustBeforeCall: (session) => ledgerLabel(options.ledger, session.agent.id) }
614
+ : {}),
415
615
  async createCommand(input, session, context) {
416
616
  const command = typeof input.command === 'string' ? input.command.trim() : '';
417
617
  if (!command) {
@@ -422,7 +622,7 @@ export const createShellTool = (config = {}, options = {}) => {
422
622
  if (options.ledger !== undefined) {
423
623
  context?.markTrust?.(await recordedLabel(options.ledger, session.agent.id));
424
624
  }
425
- const settings = settingsFor(config, session, options.processEnv ?? process.env, options.workspaces, options.home);
625
+ const settings = settingsFor(config, session, options.processEnv ?? process.env, options.workspaces, options.home, await credentialEnvFor(config, session, options.credentials));
426
626
  if (settings.cwd) {
427
627
  // `spawn` fails with a bare `ENOENT` naming the *shell* when its
428
628
  // working directory does not exist — which on a fresh install is
@@ -441,7 +641,20 @@ export const createShellTool = (config = {}, options = {}) => {
441
641
  }
442
642
  }
443
643
  const shellArgs = [...startupOff(settings.shell), '-c', command];
444
- const run = await sandboxed(settings, shellArgs, options);
644
+ const run = await sandboxed(settings, shellArgs, options, session.agent.id);
645
+ // The last check before spawn, after every await above (a slow
646
+ // credential store, the sandbox's workspace lookup): a tainted write
647
+ // recorded since the call was approved, while a human was asked or
648
+ // during that setup, means it was judged as reading more trusted
649
+ // content than it now can.
650
+ const decided = context?.decidedTrust;
651
+ if (options.ledger !== undefined && decided !== undefined) {
652
+ const recorded = await ledgerLabel(options.ledger, session.agent.id);
653
+ if (recorded !== undefined && leastTrusted(decided, recorded) !== decided) {
654
+ throw new Error('A file this agent can read was marked as written from external content after this command was approved, '
655
+ + 'so it did not run. Call again to have it judged as things stand now.');
656
+ }
657
+ }
445
658
  return {
446
659
  command: run.command,
447
660
  args: run.args,
@@ -529,8 +742,10 @@ export const createShellPlugin = (config = {}, options = {}) => ({
529
742
  : undefined;
530
743
  const warn = options.warn ?? context.log;
531
744
  const protectedPaths = options.protectedPaths ?? context.protectedPaths;
745
+ const credentials = options.credentials ?? context.credentials;
532
746
  context.tools.register(createShellTool(config, {
533
747
  ...options,
748
+ ...(credentials !== undefined ? { credentials } : {}),
534
749
  ...(protectedPaths !== undefined ? { protectedPaths } : {}),
535
750
  ...(warn !== undefined ? { warn } : {}),
536
751
  ...(workspaces !== undefined ? { workspaces } : {}),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/sandbox.d.ts CHANGED
@@ -95,6 +95,13 @@ export interface SandboxPolicy {
95
95
  * config) can be read; a denied path inside one stays denied.
96
96
  */
97
97
  readable?: string[];
98
+ /**
99
+ * Paths the operator named writable. Also in `writable`, and given back
100
+ * once more after the default denials, so one inside the Stratus home (an
101
+ * agent's own `~/.stratus/integrations/<id>/home`, where CLIs save their
102
+ * config) can be written; a denied path inside one stays denied.
103
+ */
104
+ grantedWritable?: string[];
98
105
  }
99
106
  export interface SandboxedCommand {
100
107
  command: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
package/dist/sandbox.js CHANGED
@@ -297,7 +297,7 @@ const isWithin = (parent, child) => {
297
297
  * operator's `deniedPaths` entry inside it) must not show it again.
298
298
  */
299
299
  const deniedInside = (policy) => {
300
- const given = [policy.workspace, ...(policy.readable ?? [])].flatMap(spellings);
300
+ const given = [policy.workspace, ...(policy.readable ?? []), ...(policy.grantedWritable ?? [])].flatMap(spellings);
301
301
  return [...new Set(policy.denied.flatMap(spellings))].filter((denied) => given.some((dir) => isWithin(dir, denied)));
302
302
  };
303
303
  const SBPL_UNSAFE = /["\\\n\r\0]/;
@@ -371,6 +371,9 @@ export const darwinProfile = (policy) => {
371
371
  // Operator-named readable paths, after the denials: they may sit inside
372
372
  // the hidden Stratus home. Denied paths inside them are denied again below.
373
373
  ...((policy.readable ?? []).length > 0 ? [`(allow file-read-data file-read-xattr ${subpaths(policy.readable)})`] : []),
374
+ // Operator-named writable paths, likewise, and after the readable ones
375
+ // so one inside a readable path is still writable.
376
+ ...((policy.grantedWritable ?? []).length > 0 ? [`(allow file-read-data file-read-xattr file-read* file-write* ${subpaths(policy.grantedWritable)})`] : []),
374
377
  // Named operation by operation: an allow of the `file-read*` wildcard
375
378
  // does not undo a deny that named `file-read-data`.
376
379
  `(allow file-read-data file-read-xattr file-read* file-write* ${subpaths([policy.workspace])})`,
@@ -461,6 +464,11 @@ export const bwrapArgs = (policy, shell, shellArgs) => {
461
464
  for (const dir of new Set((policy.readable ?? []).flatMap(realOnly))) {
462
465
  args.push('--ro-bind', dir, dir);
463
466
  }
467
+ // Operator-named writable paths over the denials and the readable paths,
468
+ // writable, before the workspace for the same reason.
469
+ for (const dir of new Set((policy.grantedWritable ?? []).flatMap(realOnly))) {
470
+ args.push('--bind', dir, dir);
471
+ }
464
472
  const workspaceSpellings = spellings(policy.workspace);
465
473
  const workspaceSource = workspaceSpellings.at(-1);
466
474
  for (const spelling of workspaceSpellings) {
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.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.13.1",
3
+ "version": "0.13.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -18,14 +18,15 @@
18
18
  "node": ">=22.13 <23 || >=23.4"
19
19
  },
20
20
  "dependencies": {
21
- "@stratusagent/core": "0.13.1",
22
- "@stratusagent/executor-local": "0.13.1",
23
- "@stratusagent/plugins": "0.13.1"
21
+ "@stratusagent/agents": "0.13.3",
22
+ "@stratusagent/executor-local": "0.13.3",
23
+ "@stratusagent/core": "0.13.3",
24
+ "@stratusagent/plugins": "0.13.3"
24
25
  },
25
26
  "devDependencies": {
26
27
  "@types/node": "^24.6.0",
27
28
  "typescript": "^5.9.3",
28
- "@stratusagent/permissions": "0.13.1"
29
+ "@stratusagent/permissions": "0.13.3"
29
30
  },
30
31
  "license": "MIT",
31
32
  "repository": {
@@ -115,10 +116,17 @@
115
116
  "items": {
116
117
  "type": "string"
117
118
  }
119
+ },
120
+ "credentialsEnv": {
121
+ "type": "object",
122
+ "additionalProperties": {
123
+ "type": "string"
124
+ }
118
125
  }
119
126
  },
120
127
  "additionalProperties": false
121
- }
128
+ },
129
+ "credentialsFromConfig": "credentialsEnv"
122
130
  },
123
131
  "scripts": {
124
132
  "build": "tsc -b",