@stratusagent/permissions 0.10.0 → 0.11.1
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/commands.d.ts +26 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +120 -4
- package/dist/commands.js.map +1 -1
- package/dist/index.d.ts +64 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +260 -25
- package/dist/index.js.map +1 -1
- package/dist/origins.d.ts +72 -0
- package/dist/origins.d.ts.map +1 -0
- package/dist/origins.js +73 -0
- package/dist/origins.js.map +1 -0
- package/dist/whitelist.d.ts +39 -8
- package/dist/whitelist.d.ts.map +1 -1
- package/dist/whitelist.js +136 -29
- package/dist/whitelist.js.map +1 -1
- package/package.json +2 -2
package/dist/commands.d.ts
CHANGED
|
@@ -102,6 +102,32 @@ export declare const findMatchingScope: (analysis: CommandAnalysis, scopes: read
|
|
|
102
102
|
* make the distinction real, and inheriting anything the safe list already
|
|
103
103
|
* excludes for the same command so a persisted scope can never erase a
|
|
104
104
|
* flag distinction the built-in list draws.
|
|
105
|
+
*
|
|
106
|
+
* Any flags standing between the command and that argument are part of the
|
|
107
|
+
* scope too: `mkdir -p build` persists `mkdir -p build`. `matchesScope`
|
|
108
|
+
* reads `args` as the invocation's leading tokens, so a scope that skipped
|
|
109
|
+
* over `-p` to reach `build` could never match the command it was approved
|
|
110
|
+
* for — every later `mkdir -p …` asked again, under a log line promising it
|
|
111
|
+
* would not.
|
|
112
|
+
*
|
|
113
|
+
* A flag-first scope is the approved command exactly, though — every token
|
|
114
|
+
* in order, and nothing more or less. Nothing here knows which flags take a
|
|
115
|
+
* separate value, so in `git --git-dir /x status` the first positional is
|
|
116
|
+
* `/x`, not `status`: a scope of `git --git-dir /x` with a free subcommand
|
|
117
|
+
* behind it would have approved every git command against that repository
|
|
118
|
+
* on the strength of one `status`, and a scope that let trailing flags vary
|
|
119
|
+
* would have let `git -C repo branch --list` cover `--unset-upstream`, since
|
|
120
|
+
* the subcommand whose constraints should apply cannot be found. Exactness
|
|
121
|
+
* costs a prompt for `cp -r src elsewhere` after `cp -r src dist` was
|
|
122
|
+
* approved, which is the direction to fail in.
|
|
123
|
+
*
|
|
124
|
+
* And the command must be one the engine could ever run unattended: a
|
|
125
|
+
* destructive flag, one the safe list excludes for this base command (any
|
|
126
|
+
* subcommand's, since which one applies is unknowable), one that turns
|
|
127
|
+
* something else into a program, or a refspec form means there is no scope
|
|
128
|
+
* to store — "always" on `git --no-pager push origin :main` must not turn a
|
|
129
|
+
* branch delete into something that runs without asking — and the answer
|
|
130
|
+
* counts once.
|
|
105
131
|
*/
|
|
106
132
|
export declare const normalizeCommandScope: (analysis: CommandAnalysis) => CommandScope | undefined;
|
|
107
133
|
/** One line an operator can read in a log or a whitelist listing. */
|
package/dist/commands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AA+CD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAAY,EAoD7C,CAAC;AAqBF,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA4CD,6DAA6D;AAC7D,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,eA0BhD,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AA+CD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAAY,EAoD7C,CAAC;AAqBF,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA4CD,6DAA6D;AAC7D,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,eA0BhD,CAAC;AAwCF,oDAAoD;AACpD,eAAO,MAAM,YAAY,GAAI,UAAU,eAAe,EAAE,OAAO,YAAY,KAAG,OA2D7E,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,GAC5B,UAAU,eAAe,EACzB,QAAQ,SAAS,YAAY,EAAE,KAC9B,YAAY,GAAG,SAAkE,CAAC;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,eAAe,KAAG,YAAY,GAAG,SAoGhF,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,GAAI,OAAO,YAAY,KAAG,MACT,CAAC;AAEnD,yFAAyF;AACzF,eAAO,MAAM,SAAS,GAAI,MAAM,YAAY,EAAE,OAAO,YAAY,KAAG,OACsB,CAAC;AAY3F,4DAA4D;AAC5D,eAAO,MAAM,iBAAiB,GAAI,KAAK,OAAO,KAAG,YAAY,GAAG,SAwB/D,CAAC"}
|
package/dist/commands.js
CHANGED
|
@@ -222,6 +222,14 @@ const flagsOf = (token) => {
|
|
|
222
222
|
return { shorts: [] };
|
|
223
223
|
};
|
|
224
224
|
const deniesFlag = (denied, token) => {
|
|
225
|
+
// The token as written, minus any `=value`, so a deny list can name a
|
|
226
|
+
// short flag whole (`-c`) as well as by its letter — `git -c` is the
|
|
227
|
+
// entry `ALWAYS_DENIED_FLAGS` was written for, and letter-by-letter
|
|
228
|
+
// matching alone never reached it.
|
|
229
|
+
const [spelled] = token.split('=');
|
|
230
|
+
if (spelled !== undefined && denied.includes(spelled)) {
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
225
233
|
const { long, shorts } = flagsOf(token);
|
|
226
234
|
if (long && denied.includes(long)) {
|
|
227
235
|
return true;
|
|
@@ -256,6 +264,23 @@ export const matchesScope = (analysis, scope) => {
|
|
|
256
264
|
}
|
|
257
265
|
}
|
|
258
266
|
const denied = [...ALWAYS_DENIED_FLAGS, ...(scope.deniedFlags ?? [])];
|
|
267
|
+
// A required token can itself be a flag or a refspec — an exact scope
|
|
268
|
+
// carries the whole approved command — and a whitelist file is
|
|
269
|
+
// hand-editable, so the prefix is held to the same rules as the rest.
|
|
270
|
+
for (const token of args.slice(0, required.length)) {
|
|
271
|
+
if (token.startsWith('-')) {
|
|
272
|
+
if (deniesFlag(denied, token)) {
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
continue;
|
|
276
|
+
}
|
|
277
|
+
if (scope.deniedArgs?.includes(token)) {
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
if (scope.denyRefspecForms && (token.startsWith(':') || token.startsWith('+'))) {
|
|
281
|
+
return false;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
259
284
|
const rest = args.slice(required.length);
|
|
260
285
|
for (const token of rest) {
|
|
261
286
|
if (token.startsWith('-')) {
|
|
@@ -290,16 +315,107 @@ export const findMatchingScope = (analysis, scopes) => scopes.find((scope) => ma
|
|
|
290
315
|
* make the distinction real, and inheriting anything the safe list already
|
|
291
316
|
* excludes for the same command so a persisted scope can never erase a
|
|
292
317
|
* flag distinction the built-in list draws.
|
|
318
|
+
*
|
|
319
|
+
* Any flags standing between the command and that argument are part of the
|
|
320
|
+
* scope too: `mkdir -p build` persists `mkdir -p build`. `matchesScope`
|
|
321
|
+
* reads `args` as the invocation's leading tokens, so a scope that skipped
|
|
322
|
+
* over `-p` to reach `build` could never match the command it was approved
|
|
323
|
+
* for — every later `mkdir -p …` asked again, under a log line promising it
|
|
324
|
+
* would not.
|
|
325
|
+
*
|
|
326
|
+
* A flag-first scope is the approved command exactly, though — every token
|
|
327
|
+
* in order, and nothing more or less. Nothing here knows which flags take a
|
|
328
|
+
* separate value, so in `git --git-dir /x status` the first positional is
|
|
329
|
+
* `/x`, not `status`: a scope of `git --git-dir /x` with a free subcommand
|
|
330
|
+
* behind it would have approved every git command against that repository
|
|
331
|
+
* on the strength of one `status`, and a scope that let trailing flags vary
|
|
332
|
+
* would have let `git -C repo branch --list` cover `--unset-upstream`, since
|
|
333
|
+
* the subcommand whose constraints should apply cannot be found. Exactness
|
|
334
|
+
* costs a prompt for `cp -r src elsewhere` after `cp -r src dist` was
|
|
335
|
+
* approved, which is the direction to fail in.
|
|
336
|
+
*
|
|
337
|
+
* And the command must be one the engine could ever run unattended: a
|
|
338
|
+
* destructive flag, one the safe list excludes for this base command (any
|
|
339
|
+
* subcommand's, since which one applies is unknowable), one that turns
|
|
340
|
+
* something else into a program, or a refspec form means there is no scope
|
|
341
|
+
* to store — "always" on `git --no-pager push origin :main` must not turn a
|
|
342
|
+
* branch delete into something that runs without asking — and the answer
|
|
343
|
+
* counts once.
|
|
293
344
|
*/
|
|
294
345
|
export const normalizeCommandScope = (analysis) => {
|
|
295
346
|
if (analysis.disqualifiedBy || analysis.base === undefined) {
|
|
296
347
|
return undefined;
|
|
297
348
|
}
|
|
298
|
-
const
|
|
299
|
-
const
|
|
349
|
+
const tokens = analysis.tokens.slice(1);
|
|
350
|
+
const firstIndex = tokens.findIndex((token) => !token.startsWith('-'));
|
|
351
|
+
const first = firstIndex === -1 ? undefined : tokens[firstIndex];
|
|
352
|
+
const refspecs = analysis.base === 'git';
|
|
353
|
+
if (firstIndex !== 0 && tokens.length > 0) {
|
|
354
|
+
// Flag-first: the exact command, held to every constraint the safe
|
|
355
|
+
// list draws for this base command, because the subcommand that would
|
|
356
|
+
// pick between them cannot be identified past a flag of unknown arity.
|
|
357
|
+
const forBase = SAFE_COMMAND_SCOPES.filter((scope) => scope.command === analysis.base);
|
|
358
|
+
const denied = [...ALWAYS_DENIED_FLAGS, ...DESTRUCTIVE_FLAGS, ...forBase.flatMap((scope) => scope.deniedFlags ?? [])];
|
|
359
|
+
const deniedArgs = forBase.flatMap((scope) => scope.deniedArgs ?? []);
|
|
360
|
+
for (const token of tokens) {
|
|
361
|
+
if (token.startsWith('-') ? deniesFlag(denied, token) : deniedArgs.includes(token)) {
|
|
362
|
+
return undefined;
|
|
363
|
+
}
|
|
364
|
+
if (refspecs && !token.startsWith('-') && (token.startsWith(':') || token.startsWith('+'))) {
|
|
365
|
+
return undefined;
|
|
366
|
+
}
|
|
367
|
+
// Nor anything the shell reads differently quoted and unquoted.
|
|
368
|
+
// Tokens are stored unquoted, so `chmod -R 600 'file*'` and
|
|
369
|
+
// `chmod -R 600 file*` are one scope to this engine and two commands
|
|
370
|
+
// to `sh -c` — one touches a file named file*, the other every file
|
|
371
|
+
// that matches — and `mkdir -p safe # other` and `mkdir -p safe '#'
|
|
372
|
+
// other` are one scope and two commands the other way round, since
|
|
373
|
+
// an unquoted `#` ends the command the shell runs. The characters are
|
|
374
|
+
// refused rather than the quoting remembered, since a scope that ran
|
|
375
|
+
// unattended on how a command was spelled would be a new kind of
|
|
376
|
+
// rule; the cost is a prompt each time for a URL with a `?` or a
|
|
377
|
+
// `find` with a pattern.
|
|
378
|
+
if (/[*?[\]{}~$\\#]/.test(token)) {
|
|
379
|
+
return undefined;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
// The positive constraints too. A safe scope that says what its
|
|
383
|
+
// subcommand may do — `git branch` is list-only, with the listing
|
|
384
|
+
// flags named — applies wherever that subcommand stands among the
|
|
385
|
+
// tokens, or `git --no-pager branch release` would persist the branch
|
|
386
|
+
// creation that `git branch release` never does. Which token is the
|
|
387
|
+
// subcommand is still unknowable in general; a name that turns out to
|
|
388
|
+
// be some flag's value costs a prompt, never a grant.
|
|
389
|
+
for (const scope of forBase) {
|
|
390
|
+
const subcommand = scope.args ?? [];
|
|
391
|
+
if (subcommand.length === 0 || (!scope.listOnly && !scope.allowedFlags)) {
|
|
392
|
+
continue;
|
|
393
|
+
}
|
|
394
|
+
const at = tokens.findIndex((token, index) => !token.startsWith('-') && subcommand.every((part, offset) => tokens[index + offset] === part));
|
|
395
|
+
if (at === -1) {
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
for (const token of tokens.slice(at + subcommand.length)) {
|
|
399
|
+
if (token.startsWith('-') ? scope.allowedFlags !== undefined && !allowsFlag(scope.allowedFlags, token) : scope.listOnly) {
|
|
400
|
+
return undefined;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
return {
|
|
405
|
+
command: analysis.base,
|
|
406
|
+
args: [...tokens],
|
|
407
|
+
deniedFlags: [...new Set([...DESTRUCTIVE_FLAGS, ...forBase.flatMap((scope) => scope.deniedFlags ?? [])])],
|
|
408
|
+
...(deniedArgs.length > 0 ? { deniedArgs: [...new Set(deniedArgs)] } : {}),
|
|
409
|
+
// Nothing beyond the command as approved: no positional, no flag.
|
|
410
|
+
listOnly: true,
|
|
411
|
+
allowedFlags: [],
|
|
412
|
+
...(refspecs ? { denyRefspecForms: true } : {}),
|
|
413
|
+
};
|
|
414
|
+
}
|
|
300
415
|
const sameScope = SAFE_COMMAND_SCOPES
|
|
301
|
-
.filter((scope) => scope.command === analysis.base && (scope.args ?? []).join(' ') ===
|
|
416
|
+
.filter((scope) => scope.command === analysis.base && (scope.args ?? []).join(' ') === (first ?? ''));
|
|
302
417
|
const inherited = sameScope.flatMap((scope) => scope.deniedFlags ?? []);
|
|
418
|
+
const args = first === undefined ? [] : [first];
|
|
303
419
|
const deniedArgs = sameScope.flatMap((scope) => scope.deniedArgs ?? []);
|
|
304
420
|
// Only when every safe scope for this command names one: a persisted
|
|
305
421
|
// scope must be no wider than the built-in, and an allowlist from one of
|
|
@@ -320,7 +436,7 @@ export const normalizeCommandScope = (analysis) => {
|
|
|
320
436
|
// Git's syntax, so git's rule: elsewhere a leading `+` is an ordinary
|
|
321
437
|
// argument (`chmod +x`) and refusing it would only cost a prompt for no
|
|
322
438
|
// safety.
|
|
323
|
-
...(
|
|
439
|
+
...(refspecs ? { denyRefspecForms: true } : {}),
|
|
324
440
|
};
|
|
325
441
|
};
|
|
326
442
|
/** One line an operator can read in a log or a whitelist listing. */
|
package/dist/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,9 +6,11 @@ import type { ApprovalAnswer, ApprovalPolicy, Session, Tool, ToolCall, ToolRisk
|
|
|
6
6
|
*/
|
|
7
7
|
export { atLeastAsRisky } from '@stratusagent/core';
|
|
8
8
|
import { type CommandScope } from './commands.ts';
|
|
9
|
-
import type
|
|
9
|
+
import { type OriginScope } from './origins.ts';
|
|
10
|
+
import { type CommandWhitelistStore, type OriginWhitelistStore } from './whitelist.ts';
|
|
10
11
|
export { analyzeCommand, describeCommandScope, findMatchingScope, matchesScope, normalizeCommandScope, parseCommandScope, sameScope, SAFE_COMMAND_SCOPES, type CommandAnalysis, type CommandScope, } from './commands.ts';
|
|
11
|
-
export {
|
|
12
|
+
export { describeOriginScope, findMatchingOriginScope, matchesOriginScope, originScopeFor, parseOriginScope, sameOriginScope, type OriginScope, } from './origins.ts';
|
|
13
|
+
export { createFileCommandWhitelist, whitelistPathFor, WhitelistUnreadableError, type CommandWhitelistStore, type OriginWhitelistStore, } from './whitelist.ts';
|
|
12
14
|
/**
|
|
13
15
|
* How a policy reaches a human — or admits that it cannot.
|
|
14
16
|
*
|
|
@@ -38,6 +40,27 @@ export interface ApprovalRequest {
|
|
|
38
40
|
call: ToolCall;
|
|
39
41
|
tool: Tool;
|
|
40
42
|
risk: ToolRisk;
|
|
43
|
+
/**
|
|
44
|
+
* The origin this call would act on, for a tool judged by one
|
|
45
|
+
* (`Tool.originFor`). A transport MUST show it: the call's own arguments
|
|
46
|
+
* do not say where a click lands, so offering **Always allow** beside
|
|
47
|
+
* `browser.act` and a CSS selector would be asking somebody to widen a
|
|
48
|
+
* site they were never shown.
|
|
49
|
+
*/
|
|
50
|
+
origin?: string;
|
|
51
|
+
/**
|
|
52
|
+
* True when answering `always` runs this call once and remembers
|
|
53
|
+
* nothing — a `dangerous` tool, which asks every time whatever is
|
|
54
|
+
* clicked, or a call judged by origin whose conversation has no page to
|
|
55
|
+
* grant. A transport MUST NOT offer an unconditional "always" for one of
|
|
56
|
+
* these: a button promising a standing grant that the engine will not
|
|
57
|
+
* create is the same defect as a record understating one it did.
|
|
58
|
+
*
|
|
59
|
+
* Absent is the ordinary case, where `always` remembers *something* —
|
|
60
|
+
* which of the two lifetimes is still not knowable here, and is why the
|
|
61
|
+
* wording for that case has to cover both.
|
|
62
|
+
*/
|
|
63
|
+
oneShot?: boolean;
|
|
41
64
|
/**
|
|
42
65
|
* When this call first parked, if it is being re-asked after a restart.
|
|
43
66
|
* A transport that imposes a deadline measures from here rather than
|
|
@@ -94,6 +117,15 @@ export interface PermissionDecision {
|
|
|
94
117
|
* base-plus-subcommand, not agent-composed text.
|
|
95
118
|
*/
|
|
96
119
|
destination?: string;
|
|
120
|
+
/**
|
|
121
|
+
* The origin this decision was about, for a tool judged by one
|
|
122
|
+
* (`Tool.originFor`). In `reason` too, on the same test `destination`
|
|
123
|
+
* passes: an origin is scheme, host, and port with no path, query, or
|
|
124
|
+
* fragment, so it is a classification of where a call landed rather than
|
|
125
|
+
* agent-composed text — which is the whole reason the scope is drawn at
|
|
126
|
+
* the origin and not at a URL.
|
|
127
|
+
*/
|
|
128
|
+
origin?: string;
|
|
97
129
|
}
|
|
98
130
|
export interface PermissionPolicyOptions {
|
|
99
131
|
mode: PermissionMode;
|
|
@@ -124,6 +156,14 @@ export interface PermissionPolicyOptions {
|
|
|
124
156
|
* without it loses nothing but the schedule feature.
|
|
125
157
|
*/
|
|
126
158
|
destinations?: DestinationScopeOptions;
|
|
159
|
+
/**
|
|
160
|
+
* The origin-scope engine, for tools that name one (`Tool.originFor`).
|
|
161
|
+
* Omitted, a browser action still cannot receive a tool-wide grant — that
|
|
162
|
+
* exclusion is structural and lives on the hook, not here — so a policy
|
|
163
|
+
* built without this asks every time, which is the honest behaviour for a
|
|
164
|
+
* host with nowhere to keep a grant.
|
|
165
|
+
*/
|
|
166
|
+
origins?: OriginScopeOptions;
|
|
127
167
|
}
|
|
128
168
|
export interface DestinationScopeOptions {
|
|
129
169
|
/**
|
|
@@ -159,6 +199,23 @@ export interface CommandScopeOptions {
|
|
|
159
199
|
scope: CommandScope;
|
|
160
200
|
}) => void;
|
|
161
201
|
}
|
|
202
|
+
export interface OriginScopeOptions {
|
|
203
|
+
/**
|
|
204
|
+
* Where "always allow" persists an origin, and where one is read back.
|
|
205
|
+
* Omitted, an origin grant lasts for this process only — which is what
|
|
206
|
+
* `headless` cannot use, since it never asks anyone in the first place.
|
|
207
|
+
*
|
|
208
|
+
* There is no `safeOrigins` beside this on purpose: `CommandScopeOptions`
|
|
209
|
+
* can default to a built-in safe list because `git status` is read-only
|
|
210
|
+
* wherever it runs, and no origin has that property. See `origins.ts`.
|
|
211
|
+
*/
|
|
212
|
+
whitelist?: OriginWhitelistStore;
|
|
213
|
+
/** Called when an origin is persisted, for the same reason as above. */
|
|
214
|
+
onScopeRemembered?: (event: {
|
|
215
|
+
agentId: string;
|
|
216
|
+
scope: OriginScope;
|
|
217
|
+
}) => void;
|
|
218
|
+
}
|
|
162
219
|
/**
|
|
163
220
|
* The kernel's ApprovalPolicy, deciding by the tool's declared risk and —
|
|
164
221
|
* for a tool that carries one — by the command an invocation would run.
|
|
@@ -170,6 +227,11 @@ export interface CommandScopeOptions {
|
|
|
170
227
|
* after which there is nothing left but asking. A `dangerous` tool skips
|
|
171
228
|
* the scope engine entirely: its risk is a statement about the tool, and no
|
|
172
229
|
* argument shape makes `rm -rf` a read.
|
|
230
|
+
*
|
|
231
|
+
* A tool that names an *origin* (`Tool.originFor`) resolves through the
|
|
232
|
+
* same two grant tiers over a different vocabulary — the site the page is
|
|
233
|
+
* on, rather than the command the call would run. It has no third tier,
|
|
234
|
+
* because there is no origin that is safe to click on out of the box.
|
|
173
235
|
*/
|
|
174
236
|
export declare const createPermissionPolicy: (options: PermissionPolicyOptions) => ApprovalPolicy;
|
|
175
237
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEd,cAAc,EAGd,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|