@stratusagent/permissions 0.11.5 → 0.11.7

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/index.d.ts CHANGED
@@ -197,6 +197,23 @@ export interface PermissionPolicyOptions {
197
197
  * is honestly offering.
198
198
  */
199
199
  grants?: ToolGrantOptions;
200
+ /**
201
+ * Whether an agent's grants stop applying once its conversation has read
202
+ * `external` content — a web page, a search result, an MCP server's
203
+ * reply. Asked per call with the agent's id, so a host can answer from
204
+ * per-agent config without rebuilding the policy. Omitted, or answering
205
+ * false, a session's label changes nothing here, which is the
206
+ * label-only behaviour provenance shipped with.
207
+ *
208
+ * When it answers true for a session that has read such content, every
209
+ * grant a person made somewhere else stops counting for it: standing tool
210
+ * grants, command scopes, site grants, "always this session". What still
211
+ * runs unattended is what never rested on a grant — `safe` tools, the
212
+ * built-in safe command scopes — and a schedule's pre-authorized
213
+ * destination (`destinations`), which a person chose for this exact job.
214
+ * Everything else asks, and `headless` refuses.
215
+ */
216
+ gateExternalContent?: (agentId: string) => boolean;
200
217
  }
201
218
  export interface ToolGrantOptions {
202
219
  /** Where "always allow" persists a tool grant, and where one is read back. */
@@ -296,5 +313,5 @@ export interface OriginScopeOptions {
296
313
  * `headless`, which is the mode every installed service runs in.
297
314
  */
298
315
  export declare const createPermissionPolicy: (options: PermissionPolicyOptions) => ApprovalPolicy;
299
- export { isSymlinkedStatePath, isSymlinkedStatePathSync, symlinkedStateDirectoryMessage, symlinkedStateFileMessage, } from './state-directory.ts';
316
+ export { assertDerivedStatePath, assertDerivedStatePathSync, linkedDerivedComponent, linkedDerivedComponentMessage, linkedDerivedComponentSync, isSymlinkedStatePath, isSymlinkedStatePathSync, symlinkedStateDirectoryMessage, symlinkedStateFileMessage, } from './state-directory.ts';
300
317
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { sessionTaintedBy, sessionTrustOf } from '@stratusagent/core';
1
2
  /**
2
3
  * Re-exported, not re-implemented: the risk ordering moved to the kernel
3
4
  * when the plugin loader became its second consumer, and this package
@@ -221,7 +222,7 @@ const awaitRemote = async (context, request, origin, oneShot, always) => {
221
222
  * `headless`, which is the mode every installed service runs in.
222
223
  */
223
224
  export const createPermissionPolicy = (options) => {
224
- const { mode, ask, request, onDecision, commands, destinations, origins, grants } = options;
225
+ const { mode, ask, request, onDecision, commands, destinations, origins, grants, gateExternalContent } = options;
225
226
  if (mode === 'interactive' && !ask) {
226
227
  throw new Error('interactive permission mode needs an `ask` function to reach a human.');
227
228
  }
@@ -314,6 +315,22 @@ export const createPermissionPolicy = (options) => {
314
315
  // Who contributes this tool right now, for matching a grant and for
315
316
  // recording one. Resolved once so both halves see the same answer.
316
317
  const contributor = grants?.contributorOf?.(call.toolName);
318
+ // Whether this conversation has read text an outsider wrote, and the
319
+ // operator asked for that to cost it its grants. A grant is a person's
320
+ // answer to a question about calls the *agent* would choose; once a
321
+ // web page can be choosing them, the answer was given to a different
322
+ // question. The label is monotonic and written at execution, before
323
+ // the next call is judged, so a call the page asked for is never the
324
+ // one that slips through ahead of its own taint.
325
+ //
326
+ // `external` only. `unknown` is what a shell's output carries, and a
327
+ // gate on it would take the grants from every coding agent on its
328
+ // first command — a rule that fires on every session is one an
329
+ // operator turns off, and then it guards nothing. A stranger's
330
+ // message, the other common `unknown`, is what `principals.admit`
331
+ // exists to refuse before the turn starts.
332
+ const externalGate = sessionTrustOf(session) === 'external'
333
+ && gateExternalContent?.(session.agent.id) === true;
317
334
  const command = risk === 'gated' && singlyScoped
318
335
  ? context.tool.commandFor?.(call.input)
319
336
  : undefined;
@@ -342,7 +359,7 @@ export const createPermissionPolicy = (options) => {
342
359
  // else's. There is no await between this read and the match, so the
343
360
  // origin a grant is checked against is where the conversation is when
344
361
  // the decision is made, not where it was.
345
- const grantedOrigins = scopedByOrigin
362
+ const grantedOrigins = scopedByOrigin && !externalGate
346
363
  ? [
347
364
  ...(sessionOrigins.get(session.agent.id) ?? []),
348
365
  ...(origins?.whitelist ? await origins.whitelist.originsFor(session.agent.id) : []),
@@ -365,10 +382,18 @@ export const createPermissionPolicy = (options) => {
365
382
  }
366
383
  }
367
384
  else {
368
- const stored = commands?.whitelist ? await commands.whitelist.scopesFor(session.agent.id) : [];
385
+ // The built-in safe scopes survive the gate and granted ones do
386
+ // not: `git status` was judged safe for any caller, while a
387
+ // granted `git push` was judged for an agent nobody else was
388
+ // steering.
389
+ const granted = externalGate
390
+ ? []
391
+ : [
392
+ ...(sessionScopes.get(session.agent.id) ?? []),
393
+ ...(commands?.whitelist ? await commands.whitelist.scopesFor(session.agent.id) : []),
394
+ ];
369
395
  const candidates = [
370
- ...(sessionScopes.get(session.agent.id) ?? []),
371
- ...stored,
396
+ ...granted,
372
397
  ...(commands?.safeScopes ?? SAFE_COMMAND_SCOPES),
373
398
  ];
374
399
  const scope = findMatchingScope(analysis, candidates);
@@ -377,7 +402,7 @@ export const createPermissionPolicy = (options) => {
377
402
  }
378
403
  }
379
404
  }
380
- else if (risk === 'gated' && unscoped) {
405
+ else if (risk === 'gated' && unscoped && !externalGate) {
381
406
  // The standing grant: this process's answers first, then the file.
382
407
  // Read per call, never cached here, so a revocation through the
383
408
  // store is the next call's answer — the reason a revoke needs no
@@ -391,6 +416,7 @@ export const createPermissionPolicy = (options) => {
391
416
  }
392
417
  }
393
418
  else if (risk !== 'dangerous'
419
+ && !externalGate
394
420
  && !scopedByOrigin
395
421
  && !multiplyScoped
396
422
  && alwaysAllowed.has(sessionKey(session.id, call.toolName))) {
@@ -406,6 +432,12 @@ export const createPermissionPolicy = (options) => {
406
432
  // refusal because an unattended firing is exactly when it applies.
407
433
  // `gated` only: a destination cannot launder a `dangerous` call, the
408
434
  // same way no argument shape makes `rm -rf` a read.
435
+ //
436
+ // Not withdrawn by the external-content gate, and that is the one
437
+ // grant it spares on purpose. A schedule that reads the web and
438
+ // reports to a channel is the job such a schedule is approved for,
439
+ // so withdrawing it would refuse every firing; and what the page can
440
+ // steer is only the words, sent to the one place a person picked.
409
441
  if (risk === 'gated' && singlyScoped && destinations) {
410
442
  const destination = context.tool.destinationFor?.(call.input);
411
443
  if (destination !== undefined
@@ -414,19 +446,28 @@ export const createPermissionPolicy = (options) => {
414
446
  }
415
447
  }
416
448
  if (mode === 'headless') {
417
- return report(context, false, command !== undefined
418
- ? `${call.toolName} was called outside every approved scope`
419
- + `${analysis?.base ? ` (${analysis.base})` : ''} and nobody is available to approve it`
420
- : origin !== undefined
421
- // Named, because it is the actionable half: an operator
422
- // reading this at 3am needs to know which site to grant, and
423
- // an origin carries no path or query to leak while saying so.
424
- ? `${call.toolName} was called on ${origin}, which no approved site covers,`
425
- + ' and nobody is available to approve it'
426
- : scopedByOrigin
427
- ? `${call.toolName} was called on a page with no origin a grant could name,`
449
+ return report(context, false,
450
+ // Named first because it is the cause: the operator reading this
451
+ // has grants on file that look like they should have covered the
452
+ // call, and needs to be told why they did not. The source is a
453
+ // tool name or `sender`, never content.
454
+ externalGate
455
+ ? `${call.toolName} was called after this conversation read external content`
456
+ + ` (from ${sessionTaintedBy(session) ?? 'an unrecorded source'}); with approvals.externalContent`
457
+ + ' set to "gate" no grant covers it, and nobody is available to approve it'
458
+ : command !== undefined
459
+ ? `${call.toolName} was called outside every approved scope`
460
+ + `${analysis?.base ? ` (${analysis.base})` : ''} and nobody is available to approve it`
461
+ : origin !== undefined
462
+ // Named, because it is the actionable half: an operator
463
+ // reading this at 3am needs to know which site to grant, and
464
+ // an origin carries no path or query to leak while saying so.
465
+ ? `${call.toolName} was called on ${origin}, which no approved site covers,`
428
466
  + ' and nobody is available to approve it'
429
- : `${call.toolName} is ${risk} and nobody is available to approve it`, command, undefined, origin);
467
+ : scopedByOrigin
468
+ ? `${call.toolName} was called on a page with no origin a grant could name,`
469
+ + ' and nobody is available to approve it'
470
+ : `${call.toolName} is ${risk} and nobody is available to approve it`, command, undefined, origin);
430
471
  }
431
472
  // An aborted turn must not sit on a prompt: the human would be
432
473
  // answering for work that no longer exists, and an answer arriving
@@ -452,7 +493,12 @@ export const createPermissionPolicy = (options) => {
452
493
  // after the answer so the question can say so; it is a pure function
453
494
  // of the analysis, and the branch below reuses this exact value.
454
495
  const commandScope = analysis ? normalizeCommandScope(analysis) : undefined;
496
+ // A gated conversation cannot mint a grant either: the request in
497
+ // front of the approver was composed after a page had its say, and
498
+ // "always" there would let the page talk a person into exactly the
499
+ // standing authority the gate withdrew.
455
500
  const oneShot = risk === 'dangerous'
501
+ || externalGate
456
502
  || multiplyScoped
457
503
  || (scopedByOrigin && origin === undefined)
458
504
  || (analysis !== undefined && commandScope === undefined);
@@ -471,11 +517,13 @@ export const createPermissionPolicy = (options) => {
471
517
  const alwaysMeans = oneShot
472
518
  ? risk === 'dangerous'
473
519
  ? 'not remembered — a dangerous tool asks every time'
474
- : multiplyScoped
475
- ? 'not remembered — this tool names more than one kind of scope'
476
- : analysis !== undefined
477
- ? 'not remembered — this command cannot be reduced to a scope'
478
- : 'not remembered — there is no page to grant'
520
+ : externalGate
521
+ ? 'not remembered — this conversation has read external content, so it asks every time'
522
+ : multiplyScoped
523
+ ? 'not remembered — this tool names more than one kind of scope'
524
+ : analysis !== undefined
525
+ ? 'not remembered — this command cannot be reduced to a scope'
526
+ : 'not remembered — there is no page to grant'
479
527
  : always === 'scope'
480
528
  ? 'always this scope'
481
529
  : always === 'origin'
@@ -534,6 +582,13 @@ export const createPermissionPolicy = (options) => {
534
582
  + ' — it did not run', undefined, undefined, origin);
535
583
  };
536
584
  if (answer === 'always') {
585
+ if (externalGate) {
586
+ // Before every branch that remembers something, because each of
587
+ // them would: `oneShot` told the transport not to offer this, and
588
+ // a prompt someone typed "always" into is not a transport that
589
+ // listened.
590
+ return allowUnlessMoved(`${call.toolName} was approved once; this conversation has read external content, so nothing is remembered`, command);
591
+ }
537
592
  if (scopedByOrigin) {
538
593
  if (!originScope) {
539
594
  // No origin to remember — a page that never loaded, or one
@@ -658,5 +713,5 @@ export const createPermissionPolicy = (options) => {
658
713
  },
659
714
  };
660
715
  };
661
- export { isSymlinkedStatePath, isSymlinkedStatePathSync, symlinkedStateDirectoryMessage, symlinkedStateFileMessage, } from "./state-directory.js";
716
+ export { assertDerivedStatePath, assertDerivedStatePathSync, linkedDerivedComponent, linkedDerivedComponentMessage, linkedDerivedComponentSync, isSymlinkedStatePath, isSymlinkedStatePathSync, symlinkedStateDirectoryMessage, symlinkedStateFileMessage, } from "./state-directory.js";
662
717
  //# sourceMappingURL=index.js.map
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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"}
@@ -25,6 +25,11 @@
25
25
  * answers about the target, which is not the question.
26
26
  *
27
27
  * A path that is not there yet is not a symlink; the caller creates it.
28
+ *
29
+ * This is the *leaf* question. A path Stratus derived is only safe when
30
+ * every component below the home is real, which is what
31
+ * {@link assertDerivedStatePath} asks — reach for this one only where the
32
+ * components above have already been established.
28
33
  */
29
34
  export declare const isSymlinkedStatePath: (directory: string) => Promise<boolean>;
30
35
  /** {@link isSymlinkedStatePath}, for the callers that open their files synchronously. */
@@ -33,4 +38,17 @@ export declare const isSymlinkedStatePathSync: (directory: string) => boolean;
33
38
  export declare const symlinkedStateDirectoryMessage: (directory: string) => string;
34
39
  /** The same, for a state file rather than the directory holding it. */
35
40
  export declare const symlinkedStateFileMessage: (filePath: string) => string;
41
+ export declare const linkedDerivedComponent: (home: string, target: string) => Promise<string | undefined>;
42
+ /** {@link linkedDerivedComponent}, for the callers that open their files synchronously. */
43
+ export declare const linkedDerivedComponentSync: (home: string, target: string) => string | undefined;
44
+ /**
45
+ * Which sentence a linked component earns. A link found *above* the leaf is
46
+ * reported as itself whatever the leaf was going to be, because that
47
+ * component is the one that has to be replaced.
48
+ */
49
+ export declare const linkedDerivedComponentMessage: (component: string, target: string, kind: "directory" | "file") => string;
50
+ /** {@link linkedDerivedComponent}, for the callers that must refuse rather than report. */
51
+ export declare const assertDerivedStatePath: (home: string, target: string, kind: "directory" | "file") => Promise<void>;
52
+ /** {@link assertDerivedStatePath}, for the callers that open their files synchronously. */
53
+ export declare const assertDerivedStatePathSync: (home: string, target: string, kind: "directory" | "file") => void;
36
54
  //# sourceMappingURL=state-directory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-directory.d.ts","sourceRoot":"","sources":["../src/state-directory.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,oBAAoB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,OAAO,CAS7E,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,GAAI,WAAW,MAAM,KAAG,OAS5D,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,8BAA8B,GAAI,WAAW,MAAM,KAAG,MAGtC,CAAC;AAE9B,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,GAAI,UAAU,MAAM,KAAG,MAEqB,CAAC"}
1
+ {"version":3,"file":"state-directory.d.ts","sourceRoot":"","sources":["../src/state-directory.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,oBAAoB,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,OAAO,CAS7E,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,GAAI,WAAW,MAAM,KAAG,OAS5D,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,8BAA8B,GAAI,WAAW,MAAM,KAAG,MAGtC,CAAC;AAE9B,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,GAAI,UAAU,MAAM,KAAG,MAEqB,CAAC;AAoDnF,eAAO,MAAM,sBAAsB,GAAU,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAWrG,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,MAAM,GAAG,SAWlF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GACxC,WAAW,MAAM,EACjB,QAAQ,MAAM,EACd,MAAM,WAAW,GAAG,MAAM,KACzB,MAE2C,CAAC;AAE/C,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,MAAM,WAAW,GAAG,MAAM,KACzB,OAAO,CAAC,IAAI,CAKd,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,MAAM,WAAW,GAAG,MAAM,KAAG,IAKrG,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { lstatSync } from 'node:fs';
2
2
  import { lstat } from 'node:fs/promises';
3
+ import path from 'node:path';
3
4
  /**
4
5
  * Whether a path under an agent's state is a symlink, which is the one shape
5
6
  * neither its directory nor its files may have.
@@ -27,6 +28,11 @@ import { lstat } from 'node:fs/promises';
27
28
  * answers about the target, which is not the question.
28
29
  *
29
30
  * A path that is not there yet is not a symlink; the caller creates it.
31
+ *
32
+ * This is the *leaf* question. A path Stratus derived is only safe when
33
+ * every component below the home is real, which is what
34
+ * {@link assertDerivedStatePath} asks — reach for this one only where the
35
+ * components above have already been established.
30
36
  */
31
37
  export const isSymlinkedStatePath = async (directory) => {
32
38
  try {
@@ -58,4 +64,98 @@ export const symlinkedStateDirectoryMessage = (directory) => `${directory} is a
58
64
  /** The same, for a state file rather than the directory holding it. */
59
65
  export const symlinkedStateFileMessage = (filePath) => `${filePath} is a symlink, so it cannot be an agent's state file — it would be created, filled and tightened `
60
66
  + 'outside the home. Replace the link with a real file, moving its contents in.';
67
+ /**
68
+ * Every component of `target` below `home`, outermost first.
69
+ *
70
+ * Undefined when `target` is not under `home` at all. That is not a
71
+ * judgement about the path — it is the caller passing a boundary the path
72
+ * does not sit inside, which no amount of `lstat` makes safe to answer, so
73
+ * it is the caller's error rather than this rule's verdict.
74
+ *
75
+ * Both are compared as given. Neither is canonicalized, deliberately: the
76
+ * question is whether *this* spelling walks through a link, and `realpath`
77
+ * answers by removing the very links being asked about.
78
+ */
79
+ const componentsBelow = (home, target) => {
80
+ const relative = path.relative(home, target);
81
+ if (relative.length === 0) {
82
+ return [];
83
+ }
84
+ if (path.isAbsolute(relative) || relative === '..' || relative.startsWith(`..${path.sep}`)) {
85
+ return undefined;
86
+ }
87
+ const segments = relative.split(path.sep);
88
+ return segments.map((_, index) => path.join(home, ...segments.slice(0, index + 1)));
89
+ };
90
+ /**
91
+ * The invariant, in one place: a path Stratus *derived* may not pass through
92
+ * a symlink at any component below the state home.
93
+ *
94
+ * The asymmetry is the whole rule. `~/.stratus` itself is the operator's own
95
+ * path — a home on another disk is a supported layout — so it is followed.
96
+ * Everything below it is a name Stratus chose, and a link there is somebody
97
+ * redirecting state this process is about to create, tighten and trust:
98
+ * `mkdir` with `recursive: true` is satisfied by a link pointing at a
99
+ * directory, `chmod` follows it, and the sweep that reads entry types sees a
100
+ * link rather than the shard it names.
101
+ *
102
+ * Checking only the leaf — which is what this rule was, at eight call sites
103
+ * — answers "not a symlink" for every path under a linked `agents/`, and
104
+ * then every agent's sessions, memories and grants are written wherever that
105
+ * link points. One component is as good as another to redirect: the rule is
106
+ * about the walk, not the last name in it.
107
+ *
108
+ * The first such component, or undefined when the walk is clean. A component
109
+ * is returned rather than a boolean because the *offending* one is what a
110
+ * caller has to name — to the operator who must replace it, or in the
111
+ * migration report that quarantines around it.
112
+ */
113
+ const notInside = (home, target) => new Error(`${target} is not inside ${home}, so it is not a path Stratus derives.`);
114
+ export const linkedDerivedComponent = async (home, target) => {
115
+ const components = componentsBelow(home, target);
116
+ if (components === undefined) {
117
+ throw notInside(home, target);
118
+ }
119
+ for (const component of components) {
120
+ if (await isSymlinkedStatePath(component)) {
121
+ return component;
122
+ }
123
+ }
124
+ return undefined;
125
+ };
126
+ /** {@link linkedDerivedComponent}, for the callers that open their files synchronously. */
127
+ export const linkedDerivedComponentSync = (home, target) => {
128
+ const components = componentsBelow(home, target);
129
+ if (components === undefined) {
130
+ throw notInside(home, target);
131
+ }
132
+ for (const component of components) {
133
+ if (isSymlinkedStatePathSync(component)) {
134
+ return component;
135
+ }
136
+ }
137
+ return undefined;
138
+ };
139
+ /**
140
+ * Which sentence a linked component earns. A link found *above* the leaf is
141
+ * reported as itself whatever the leaf was going to be, because that
142
+ * component is the one that has to be replaced.
143
+ */
144
+ export const linkedDerivedComponentMessage = (component, target, kind) => (component === target && kind === 'file'
145
+ ? symlinkedStateFileMessage(component)
146
+ : symlinkedStateDirectoryMessage(component));
147
+ /** {@link linkedDerivedComponent}, for the callers that must refuse rather than report. */
148
+ export const assertDerivedStatePath = async (home, target, kind) => {
149
+ const linked = await linkedDerivedComponent(home, target);
150
+ if (linked !== undefined) {
151
+ throw new Error(linkedDerivedComponentMessage(linked, target, kind));
152
+ }
153
+ };
154
+ /** {@link assertDerivedStatePath}, for the callers that open their files synchronously. */
155
+ export const assertDerivedStatePathSync = (home, target, kind) => {
156
+ const linked = linkedDerivedComponentSync(home, target);
157
+ if (linked !== undefined) {
158
+ throw new Error(linkedDerivedComponentMessage(linked, target, kind));
159
+ }
160
+ };
61
161
  //# sourceMappingURL=state-directory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-directory.js","sourceRoot":"","sources":["../src/state-directory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAiB,EAAoB,EAAE;IAChF,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,yFAAyF;AACzF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAiB,EAAW,EAAE;IACrE,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,SAAiB,EAAU,EAAE,CAC1E,GAAG,SAAS,gGAAgG;MAC1G,uGAAuG;MACvG,yBAAyB,CAAC;AAE9B,uEAAuE;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAAgB,EAAU,EAAE,CACpE,GAAG,QAAQ,mGAAmG;MAC5G,8EAA8E,CAAC"}
1
+ {"version":3,"file":"state-directory.js","sourceRoot":"","sources":["../src/state-directory.ts"],"names":[],"mappings":"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"}
@@ -130,7 +130,7 @@ export declare const legacyWhitelistPathFor: (directory: string, agentId: string
130
130
  * the daemon that owns the file after the move is the one that decides
131
131
  * where it lives.
132
132
  */
133
- export declare const resolveWhitelistPath: (directory: string, agentId: string) => Promise<string>;
133
+ export declare const resolveWhitelistPath: (home: string, directory: string, agentId: string) => Promise<string>;
134
134
  /**
135
135
  * Thrown by `remember` for an agent whose whitelist exists but could not be
136
136
  * read. The policy catches it by type: the answer still holds for the
@@ -162,11 +162,48 @@ export declare class WhitelistUnreadableError extends Error {
162
162
  */
163
163
  export declare const createFileCommandWhitelist: (options: {
164
164
  directory: string;
165
+ /**
166
+ * The state home `directory` sits under, so the invariant can be asked
167
+ * about every component rather than the last one — see
168
+ * `assertDerivedStatePath`. `directory` is `<home>/agents`, and a link at
169
+ * *it* redirects every agent's grants at once.
170
+ */
171
+ stateHome: string;
165
172
  /**
166
173
  * Where to say that a whitelist exists but could not be read. Once per
167
174
  * agent per process; a host that omits it gets the same behavior with
168
175
  * no line about it.
169
176
  */
170
177
  warn?: (line: string) => void;
178
+ /**
179
+ * Runs each read of a grant file's bytes, which is synchronous on
180
+ * purpose: the daemon passes a cross-process lock here, and a lock other
181
+ * code in the process can wait on must not be held across an `await`.
182
+ *
183
+ * The store caches what it reads for the life of the process, so a read
184
+ * that lands in the middle of `stratus grants revoke` rewriting the file
185
+ * caches the grant the CLI then reports as revoked (#184). Under the same
186
+ * lock the revoke takes, the read is wholly before or wholly after it.
187
+ * A host that omits it reads without one, as every host did before.
188
+ *
189
+ * If it throws without running the read, that read is taken as no grants
190
+ * — the safe answer, which asks a human — and is not cached, so the next
191
+ * call reads again. Reading through instead is the race.
192
+ */
193
+ serializeRead?: <T>(read: () => T) => T;
194
+ /**
195
+ * Runs each grant change — its read, its change, and its save — and
196
+ * means the change starts from the file rather than from this process's
197
+ * cache. The daemon passes the same cross-process lock as `serializeRead`.
198
+ *
199
+ * Without it, a write applied its change to what this process had cached
200
+ * and wrote the lot back: landing after a `stratus grants revoke` that
201
+ * rewrote the file, it restored the revoked grant, and landing before it,
202
+ * the revoke's write dropped this one (#184). A host that omits it keeps
203
+ * the cached read-modify-write, which is right when nothing else writes
204
+ * the file. If it throws without running the change, the change is
205
+ * refused with a `WhitelistUnreadableError`, and nothing is written.
206
+ */
207
+ serializeWrite?: <T>(write: () => Promise<T>) => Promise<T>;
171
208
  }) => AgentGrantStore;
172
209
  //# sourceMappingURL=whitelist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"whitelist.d.ts","sourceRoot":"","sources":["../src/whitelist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whitelist.d.ts","sourceRoot":"","sources":["../src/whitelist.ts"],"names":[],"mappings":"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"}
package/dist/whitelist.js CHANGED
@@ -1,6 +1,7 @@
1
- import { chmod, mkdir, open, readFile, stat, writeFile } from 'node:fs/promises';
1
+ import { readFileSync } from 'node:fs';
2
+ import { chmod, mkdir, open, stat, writeFile } from 'node:fs/promises';
2
3
  import path from 'node:path';
3
- import { isSymlinkedStatePath, symlinkedStateDirectoryMessage, symlinkedStateFileMessage } from "./state-directory.js";
4
+ import { assertDerivedStatePath } from "./state-directory.js";
4
5
  import { describeCommandScope, parseCommandScope, sameScope } from "./commands.js";
5
6
  import { parseToolGrant, sameToolGrant } from "./grants.js";
6
7
  import { parseOriginScope, sameOriginScope } from "./origins.js";
@@ -54,7 +55,7 @@ export const legacyWhitelistPathFor = (directory, agentId) => path.join(director
54
55
  * the daemon that owns the file after the move is the one that decides
55
56
  * where it lives.
56
57
  */
57
- export const resolveWhitelistPath = async (directory, agentId) => {
58
+ export const resolveWhitelistPath = async (home, directory, agentId) => {
58
59
  const current = whitelistPathFor(directory, agentId);
59
60
  // Before either `stat` below, because both follow links: an `agents/<id>`
60
61
  // pointing at another agent's directory resolves to *that* agent's
@@ -62,19 +63,17 @@ export const resolveWhitelistPath = async (directory, agentId) => {
62
63
  // the audit listing — would report its standing permissions as this
63
64
  // agent's. Refused on the read path as well as the write, since inheriting
64
65
  // another identity's grants is the failure, not just recording them there.
65
- const own = path.dirname(current);
66
- if (await isSymlinkedStatePath(own)) {
67
- throw new Error(symlinkedStateDirectoryMessage(own));
68
- }
66
+ // Every component below the home, not just this one: a linked `agents/`
67
+ // redirects the whole fleet's grants and answered "not a symlink" here
68
+ // while the check looked only at `agents/<id>`.
69
+ await assertDerivedStatePath(home, path.dirname(current), 'directory');
69
70
  // And the grant file itself: a real `agents/<id>/` can hold a linked
70
71
  // `whitelist.json`, which the `stat` below would follow and make
71
72
  // authoritative — the migration would then see the destination as
72
73
  // populated and archive the real legacy file, after which this agent
73
74
  // reads another's unattended grants and writes its revocations through
74
75
  // the link.
75
- if (await isSymlinkedStatePath(current)) {
76
- throw new Error(symlinkedStateFileMessage(current));
77
- }
76
+ await assertDerivedStatePath(home, current, 'file');
78
77
  try {
79
78
  await stat(current);
80
79
  return current;
@@ -92,9 +91,7 @@ export const resolveWhitelistPath = async (directory, agentId) => {
92
91
  // authoritative. The home is then stamped as migrated with the link
93
92
  // still in place, this resolver keeps answering from outside the home,
94
93
  // and `writeLegacy` opens and truncates whatever it points at.
95
- if (await isSymlinkedStatePath(legacy)) {
96
- throw new Error(symlinkedStateFileMessage(legacy));
97
- }
94
+ await assertDerivedStatePath(home, legacy, 'file');
98
95
  try {
99
96
  await stat(legacy);
100
97
  return legacy;
@@ -117,6 +114,32 @@ export class WhitelistUnreadableError extends Error {
117
114
  this.name = 'WhitelistUnreadableError';
118
115
  }
119
116
  }
117
+ /**
118
+ * Thrown by a grant change when the host's `serializeWrite` could not take
119
+ * its lock: nothing was changed. A `WhitelistUnreadableError` because the
120
+ * bargain is the same one — an "always" answer holds for this process and
121
+ * is not saved, a revoke reports a conflict — and every caller already
122
+ * makes it by that type. Its own message, because there is nothing to fix
123
+ * in the file, only something to wait for.
124
+ */
125
+ class WhitelistBusyError extends WhitelistUnreadableError {
126
+ constructor(agentId, cause) {
127
+ super('', '');
128
+ this.name = 'WhitelistBusyError';
129
+ this.message = `${agentId}'s grants were not changed: ${cause instanceof Error ? cause.message : String(cause)} `
130
+ + 'Try again; if it keeps happening, look for a `stratus grants` that is stuck.';
131
+ }
132
+ }
133
+ /** A read the host's `serializeRead` could not serialize: transient, never cached. */
134
+ class GrantReadDeferred extends Error {
135
+ reason;
136
+ constructor(cause) {
137
+ const reason = cause instanceof Error ? cause.message : String(cause);
138
+ super(reason);
139
+ this.name = 'GrantReadDeferred';
140
+ this.reason = reason;
141
+ }
142
+ }
120
143
  /**
121
144
  * The persistent tier of the scope resolution, on disk — every kind of
122
145
  * grant, in one file per agent: command scopes, origins, and the standing
@@ -171,15 +194,25 @@ export const createFileCommandWhitelist = (options) => {
171
194
  * else — a permission, a directory in the way — is the caller's to
172
195
  * report, because it means the grants exist and could not be read.
173
196
  */
174
- const readAt = async (file) => {
197
+ const serialize = options.serializeRead ?? ((read) => read());
198
+ const readAt = (file) => {
199
+ let ran = false;
175
200
  try {
176
- return await readFile(file, 'utf8');
201
+ return serialize(() => {
202
+ ran = true;
203
+ try {
204
+ return readFileSync(file, 'utf8');
205
+ }
206
+ catch (error) {
207
+ if (error.code === 'ENOENT') {
208
+ return undefined;
209
+ }
210
+ throw error;
211
+ }
212
+ });
177
213
  }
178
214
  catch (error) {
179
- if (error.code === 'ENOENT') {
180
- return undefined;
181
- }
182
- throw error;
215
+ throw ran ? error : new GrantReadDeferred(error);
183
216
  }
184
217
  };
185
218
  const readFresh = async (agentId) => {
@@ -189,9 +222,9 @@ export const createFileCommandWhitelist = (options) => {
189
222
  // The agent id is a validated invariant by the time it reaches any
190
223
  // path join (see 03) — it is a single path segment or it was refused
191
224
  // at the parse boundary, so this does not re-check it.
192
- let file = await resolveWhitelistPath(options.directory, agentId);
225
+ let file = await resolveWhitelistPath(options.stateHome, options.directory, agentId);
193
226
  try {
194
- let raw = await readAt(file);
227
+ let raw = readAt(file);
195
228
  if (raw === undefined) {
196
229
  // Resolved, then gone: the exclusive migration renames the legacy
197
230
  // `<id>.whitelist.json` into the agent's own directory, and a read
@@ -204,10 +237,10 @@ export const createFileCommandWhitelist = (options) => {
204
237
  // resolve sees the world after the rename. A path that comes back
205
238
  // unchanged really is absent, which is the ordinary case of an
206
239
  // agent that has never been granted anything.
207
- const moved = await resolveWhitelistPath(options.directory, agentId);
240
+ const moved = await resolveWhitelistPath(options.stateHome, options.directory, agentId);
208
241
  if (moved !== file) {
209
242
  file = moved;
210
- raw = await readAt(file);
243
+ raw = readAt(file);
211
244
  }
212
245
  }
213
246
  if (raw !== undefined) {
@@ -224,6 +257,14 @@ export const createFileCommandWhitelist = (options) => {
224
257
  }
225
258
  }
226
259
  catch (error) {
260
+ if (error instanceof GrantReadDeferred) {
261
+ // Nothing wrong with the file, so nothing marked against it, and
262
+ // not cached: an agent must not lose its grants until a restart
263
+ // over one read that had to wait too long.
264
+ cache.delete(agentId);
265
+ options.warn?.(`${file} was not read (${error.reason}); ${agentId} is treated as having no grants until the next call reads it.`);
266
+ return { scopes: [], origins: [], tools: [] };
267
+ }
227
268
  // No whitelist means no stored scopes, and is not worth failing a
228
269
  // turn over: the fallback is asking a human, which is where an agent
229
270
  // with no whitelist starts anyway — that case reaches here as an
@@ -254,7 +295,7 @@ export const createFileCommandWhitelist = (options) => {
254
295
  // Whichever file is the agent's right now — see `resolveWhitelistPath`.
255
296
  // A write that always took the new path would fork the list while the
256
297
  // move is still pending.
257
- const target = await resolveWhitelistPath(options.directory, agentId);
298
+ const target = await resolveWhitelistPath(options.stateHome, options.directory, agentId);
258
299
  const file = {
259
300
  version: WHITELIST_VERSION,
260
301
  scopes: grants.scopes,
@@ -273,9 +314,7 @@ export const createFileCommandWhitelist = (options) => {
273
314
  // so each inherits what the other was granted unattended and a
274
315
  // revocation for one silently revokes for both.
275
316
  const directory = path.dirname(target);
276
- if (await isSymlinkedStatePath(directory)) {
277
- throw new Error(symlinkedStateDirectoryMessage(directory));
278
- }
317
+ await assertDerivedStatePath(options.stateHome, directory, 'directory');
279
318
  await mkdir(directory, { recursive: true, mode: 0o700 });
280
319
  // `mkdir`'s mode applies only to what it creates, so an `agents/<id>/`
281
320
  // an older build or an operator already left is whatever it was — and
@@ -364,10 +403,40 @@ export const createFileCommandWhitelist = (options) => {
364
403
  */
365
404
  const writes = new Map();
366
405
  const serialized = (agentId, work) => {
367
- const queued = (writes.get(agentId) ?? Promise.resolve()).then(work, work);
406
+ const serializeWrite = options.serializeWrite;
407
+ const guarded = serializeWrite
408
+ ? async () => {
409
+ let ran = false;
410
+ try {
411
+ return await serializeWrite(() => {
412
+ ran = true;
413
+ return work();
414
+ });
415
+ }
416
+ catch (error) {
417
+ throw ran ? error : new WhitelistBusyError(agentId, error);
418
+ }
419
+ }
420
+ : work;
421
+ const queued = (writes.get(agentId) ?? Promise.resolve()).then(guarded, guarded);
368
422
  writes.set(agentId, queued.then(() => undefined, () => undefined));
369
423
  return queued;
370
424
  };
425
+ /**
426
+ * What a change starts from: the file itself when the host serializes
427
+ * writes, since another process may have rewritten it since this one
428
+ * cached it, and the cache otherwise. A fresh read that succeeds clears
429
+ * an earlier failure, and becomes the cache.
430
+ */
431
+ const readForChange = async (agentId) => {
432
+ if (!options.serializeWrite) {
433
+ return read(agentId);
434
+ }
435
+ unreadable.delete(agentId);
436
+ const fresh = readFresh(agentId);
437
+ cache.set(agentId, fresh);
438
+ return fresh;
439
+ };
371
440
  /** Nothing is written over a grant list nobody could read. */
372
441
  const refuseIfUnreadable = (agentId) => {
373
442
  const failed = unreadable.get(agentId);
@@ -384,7 +453,7 @@ export const createFileCommandWhitelist = (options) => {
384
453
  // from a snapshot taken before the one ahead of it saved would write
385
454
  // that one back out of existence, which is the whole race.
386
455
  return serialized(agentId, async () => {
387
- const grants = await read(agentId);
456
+ const grants = await readForChange(agentId);
388
457
  refuseIfUnreadable(agentId);
389
458
  if (grants.scopes.some((existing) => sameScope(existing, scope))) {
390
459
  return;
@@ -397,7 +466,7 @@ export const createFileCommandWhitelist = (options) => {
397
466
  },
398
467
  async rememberOrigin(agentId, scope) {
399
468
  return serialized(agentId, async () => {
400
- const grants = await read(agentId);
469
+ const grants = await readForChange(agentId);
401
470
  refuseIfUnreadable(agentId);
402
471
  if (grants.origins.some((existing) => sameOriginScope(existing, scope))) {
403
472
  return;
@@ -410,7 +479,7 @@ export const createFileCommandWhitelist = (options) => {
410
479
  },
411
480
  async rememberTool(agentId, grant) {
412
481
  return serialized(agentId, async () => {
413
- const grants = await read(agentId);
482
+ const grants = await readForChange(agentId);
414
483
  refuseIfUnreadable(agentId);
415
484
  // Replaces rather than skips: the new row carries the package the
416
485
  // operator was just shown, and a stale row for the same name would
@@ -425,7 +494,7 @@ export const createFileCommandWhitelist = (options) => {
425
494
  },
426
495
  async forgetScope(agentId, description) {
427
496
  return serialized(agentId, async () => {
428
- const grants = await read(agentId);
497
+ const grants = await readForChange(agentId);
429
498
  refuseIfUnreadable(agentId);
430
499
  const kept = grants.scopes.filter((scope) => describeCommandScope(scope) !== description);
431
500
  if (kept.length === grants.scopes.length) {
@@ -437,7 +506,7 @@ export const createFileCommandWhitelist = (options) => {
437
506
  },
438
507
  async forgetOrigin(agentId, origin) {
439
508
  return serialized(agentId, async () => {
440
- const grants = await read(agentId);
509
+ const grants = await readForChange(agentId);
441
510
  refuseIfUnreadable(agentId);
442
511
  const kept = grants.origins.filter((scope) => scope.origin !== origin);
443
512
  if (kept.length === grants.origins.length) {
@@ -449,7 +518,7 @@ export const createFileCommandWhitelist = (options) => {
449
518
  },
450
519
  async forgetTool(agentId, tool) {
451
520
  return serialized(agentId, async () => {
452
- const grants = await read(agentId);
521
+ const grants = await readForChange(agentId);
453
522
  refuseIfUnreadable(agentId);
454
523
  const kept = grants.tools.filter((grant) => grant.tool !== tool);
455
524
  if (kept.length === grants.tools.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"whitelist.js","sourceRoot":"","sources":["../src/whitelist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whitelist.js","sourceRoot":"","sources":["../src/whitelist.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stratusagent/permissions",
3
- "version": "0.11.5",
3
+ "version": "0.11.7",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -17,7 +17,7 @@
17
17
  "node": ">=22.13 <23 || >=23.4"
18
18
  },
19
19
  "dependencies": {
20
- "@stratusagent/core": "0.11.5"
20
+ "@stratusagent/core": "0.11.7"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/node": "^24.6.0",