@stratusagent/permissions 0.12.6 → 0.13.0
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.map +1 -1
- package/dist/commands.js +17 -0
- package/dist/commands.js.map +1 -1
- package/dist/compound.d.ts +167 -0
- package/dist/compound.d.ts.map +1 -0
- package/dist/compound.js +899 -0
- package/dist/compound.js.map +1 -0
- package/dist/index.d.ts +32 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +188 -35
- package/dist/index.js.map +1 -1
- package/dist/whitelist.d.ts +17 -2
- package/dist/whitelist.d.ts.map +1 -1
- package/dist/whitelist.js +28 -4
- package/dist/whitelist.js.map +1 -1
- package/dist/workspace.d.ts +16 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +3 -3
- package/dist/workspace.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compound.js","sourceRoot":"","sources":["../src/compound.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,12 +10,14 @@ import { type CommandScope } from './commands.ts';
|
|
|
10
10
|
import { type OriginScope } from './origins.ts';
|
|
11
11
|
import { type ToolGrant } from './grants.ts';
|
|
12
12
|
import { type DestinationGrant } from './destinations.ts';
|
|
13
|
-
import { type
|
|
13
|
+
import { type CommandNameGrant } from './compound.ts';
|
|
14
|
+
import { type CommandNameStore, type CommandWhitelistStore, type DestinationWhitelistStore, type OriginWhitelistStore, type ToolGrantStore } from './whitelist.ts';
|
|
14
15
|
export { analyzeCommand, commandScopeFromPrefix, describeCommandScope, findCoveringScopes, findMatchingScope, matchesScope, normalizeCommandScope, NUMERIC_FLAG, parseCommandScope, sameScope, SAFE_COMMAND_SCOPES, type CommandAnalysis, type CommandScope, } from './commands.ts';
|
|
15
16
|
export { describeOriginScope, findMatchingOriginScope, matchesOriginScope, originScopeFor, parseOriginScope, sameOriginScope, normalizeTrustedDomain, SHARED_SUFFIXES, trustedDomainProblem, trustedDomainOf, type OriginScope, } from './origins.ts';
|
|
16
17
|
export { describeToolGrant, findMatchingToolGrant, matchesToolGrant, parseToolGrant, sameToolGrant, type ToolGrant, } from './grants.ts';
|
|
17
18
|
export { describeDestinationGrant, findMatchingDestinationGrant, matchesDestinationGrant, parseDestinationGrant, sameDestinationGrant, type DestinationGrant, } from './destinations.ts';
|
|
18
|
-
export { createFileCommandWhitelist, describeAgentGrants, whitelistPathFor, LEGACY_WHITELIST_SUFFIX, legacyWhitelistPathFor, resolveWhitelistPath, WhitelistUnreadableError, type AgentGrants, type AgentGrantsListing, type AgentGrantStore, type CommandWhitelistStore, type DestinationWhitelistStore, type OriginWhitelistStore, type ToolGrantStore, } from './whitelist.ts';
|
|
19
|
+
export { createFileCommandWhitelist, describeAgentGrants, whitelistPathFor, LEGACY_WHITELIST_SUFFIX, legacyWhitelistPathFor, resolveWhitelistPath, WhitelistUnreadableError, type AgentGrants, type AgentGrantsListing, type AgentGrantStore, type CommandNameStore, type CommandWhitelistStore, type DestinationWhitelistStore, type OriginWhitelistStore, type ToolGrantStore, } from './whitelist.ts';
|
|
20
|
+
export { analyzeCompound, GRANTABLE_BY_NAME, grantableByName, judgeCompound, NOT_GRANTABLE_BY_NAME, parseCommandNameGrant, SUBCOMMAND_COMMANDS, type CommandNameGrant, type CompoundCommand, type CompoundJudgement, type CompoundStage, type Redirect, } from './compound.ts';
|
|
19
21
|
/**
|
|
20
22
|
* How a policy reaches a human — or admits that it cannot.
|
|
21
23
|
*
|
|
@@ -223,6 +225,14 @@ export interface PermissionPolicyOptions {
|
|
|
223
225
|
* Everything else asks, and `headless` refuses.
|
|
224
226
|
*/
|
|
225
227
|
gateExternalContent?: (agentId: string) => boolean;
|
|
228
|
+
/**
|
|
229
|
+
* Whether this agent's gated calls run without asking: the operator's
|
|
230
|
+
* `approvals.posture: "open"`, read per call like the gate above. A
|
|
231
|
+
* `dangerous` call still asks, and a conversation the gate above has
|
|
232
|
+
* closed (it read external content with `gate` on) goes back to the
|
|
233
|
+
* scope-and-grant path. Omitted, or answering false, nothing changes.
|
|
234
|
+
*/
|
|
235
|
+
openFor?: (agentId: string) => boolean;
|
|
226
236
|
}
|
|
227
237
|
export interface ToolGrantOptions {
|
|
228
238
|
/** Where "always allow" persists a tool grant, and where one is read back. */
|
|
@@ -338,6 +348,21 @@ export interface CommandScopeOptions {
|
|
|
338
348
|
safeScopes?: readonly CommandScope[];
|
|
339
349
|
/** Where "always allow" persists a scope, and where one is read back. */
|
|
340
350
|
whitelist?: CommandWhitelistStore;
|
|
351
|
+
/**
|
|
352
|
+
* Where "always allow" persists a grant on a command by name (`grep`),
|
|
353
|
+
* and where one is read back. Omitted, such a grant lasts for this
|
|
354
|
+
* process. Only used with `grantRootFor`, since a by-name grant means
|
|
355
|
+
* nothing without a workspace to keep it in.
|
|
356
|
+
*/
|
|
357
|
+
names?: CommandNameStore;
|
|
358
|
+
/**
|
|
359
|
+
* The agent's workspace, whether or not autonomy is on for it: where a
|
|
360
|
+
* by-name grant may point, where a compound command may redirect output,
|
|
361
|
+
* and where `cat`, `head`, `tail` and `ls` read without asking. Undefined
|
|
362
|
+
* for an agent turns all of that off, and "always" stores the narrower
|
|
363
|
+
* scope it did before.
|
|
364
|
+
*/
|
|
365
|
+
grantRootFor?(agentId: string): string | undefined;
|
|
341
366
|
/**
|
|
342
367
|
* Workspace autonomy. Answers the directory an agent may read in without
|
|
343
368
|
* asking, or undefined when autonomy is off for it. With an answer, a
|
|
@@ -362,6 +387,11 @@ export interface CommandScopeOptions {
|
|
|
362
387
|
agentId: string;
|
|
363
388
|
scope: CommandScope;
|
|
364
389
|
}) => void;
|
|
390
|
+
/** Called when a command is granted by name, for the same reason. */
|
|
391
|
+
onCommandNameRemembered?: (event: {
|
|
392
|
+
agentId: string;
|
|
393
|
+
grant: CommandNameGrant;
|
|
394
|
+
}) => void;
|
|
365
395
|
}
|
|
366
396
|
export interface OriginScopeOptions {
|
|
367
397
|
/**
|
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,WAAW,EACX,cAAc,EAEd,eAAe,EACf,cAAc,EAGd,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAG5B;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3H,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EAEd,eAAe,EACf,cAAc,EAGd,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACT,MAAM,oBAAoB,CAAC;AAG5B;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3H,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAML,KAAK,gBAAgB,EAEtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,KAAK,SAAS,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,QAAQ,GACd,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC;AAExG,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,cAAc,CAAC;IACrB;;;OAGG;IACH,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,kEAAkE;IAClE,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACpD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;;;;;;;;;;;;;OAeG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACzD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,KAAK,IAAI,CAAC;CACpE;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnF;;;;;OAKG;IACH,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC;;;;;;;;OAQG;IACH,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpG,0EAA0E;IAC1E,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,gBAAgB,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E;;;;;;;OAOG;IACH,mBAAmB,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IACzD;;;;;;;OAOG;IACH,mBAAmB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;CAClI;AAED,yDAAyD;AACzD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAqC,CAAC;AAE1F;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,MAAM,EACnB,SAAS,MAAM,GAAG,SAAS,EAC3B,SAAS,SAAS,MAAM,EAAE,KACzB,OAuBF,CAAC;AAEF,4GAA4G;AAC5G,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,MAAM,EAAE,KAAG,MAAM,EAKvE,CAAC;AAEL,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACrC,yEAAyE;IACzE,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;;;;;OAMG;IACH,YAAY,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACnD;;;;;;OAMG;IACH,SAAS,CAAC,EAAE;QACV,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;QAClD;;;WAGG;QACH,iBAAiB,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;KACpE,CAAC;IACF;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9E,qEAAqE;IACrE,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,gBAAgB,CAAA;KAAE,KAAK,IAAI,CAAC;CACzF;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7E;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;IAC3D,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAoQD,eAAO,MAAM,sBAAsB,GAAI,SAAS,uBAAuB,KAAG,cAw6BzE,CAAC;AAEF,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,12 +11,14 @@ import { analyzeCommand, describeCommandScope, findCoveringScopes, findMatchingS
|
|
|
11
11
|
import { describeOriginScope, findMatchingOriginScope, originScopeFor, trustedDomainOf, } from "./origins.js";
|
|
12
12
|
import { describeToolGrant, findMatchingToolGrant, } from "./grants.js";
|
|
13
13
|
import { describeDestinationGrant, findMatchingDestinationGrant, } from "./destinations.js";
|
|
14
|
+
import { analyzeCompound, compoundCommandNames, grantableByName, judgeCompound, NOT_GRANTABLE_BY_NAME, } from "./compound.js";
|
|
14
15
|
import { WhitelistUnreadableError, } from "./whitelist.js";
|
|
15
16
|
export { analyzeCommand, commandScopeFromPrefix, describeCommandScope, findCoveringScopes, findMatchingScope, matchesScope, normalizeCommandScope, NUMERIC_FLAG, parseCommandScope, sameScope, SAFE_COMMAND_SCOPES, } from "./commands.js";
|
|
16
17
|
export { describeOriginScope, findMatchingOriginScope, matchesOriginScope, originScopeFor, parseOriginScope, sameOriginScope, normalizeTrustedDomain, SHARED_SUFFIXES, trustedDomainProblem, trustedDomainOf, } from "./origins.js";
|
|
17
18
|
export { describeToolGrant, findMatchingToolGrant, matchesToolGrant, parseToolGrant, sameToolGrant, } from "./grants.js";
|
|
18
19
|
export { describeDestinationGrant, findMatchingDestinationGrant, matchesDestinationGrant, parseDestinationGrant, sameDestinationGrant, } from "./destinations.js";
|
|
19
20
|
export { createFileCommandWhitelist, describeAgentGrants, whitelistPathFor, LEGACY_WHITELIST_SUFFIX, legacyWhitelistPathFor, resolveWhitelistPath, WhitelistUnreadableError, } from "./whitelist.js";
|
|
21
|
+
export { analyzeCompound, GRANTABLE_BY_NAME, grantableByName, judgeCompound, NOT_GRANTABLE_BY_NAME, parseCommandNameGrant, SUBCOMMAND_COMMANDS, } from "./compound.js";
|
|
20
22
|
/**
|
|
21
23
|
* The tools an operator's standing channel authorization covers. Kernel
|
|
22
24
|
* tools only: a plugin tool registered under the same name is a different
|
|
@@ -296,7 +298,7 @@ const commandNames = (analysis) => {
|
|
|
296
298
|
return analysis.base;
|
|
297
299
|
};
|
|
298
300
|
export const createPermissionPolicy = (options) => {
|
|
299
|
-
const { mode, ask, request, onDecision, commands, destinations, origins, grants, gateExternalContent } = options;
|
|
301
|
+
const { mode, ask, request, onDecision, commands, destinations, origins, grants, gateExternalContent, openFor } = options;
|
|
300
302
|
if (mode === 'interactive' && !ask) {
|
|
301
303
|
throw new Error('interactive permission mode needs an `ask` function to reach a human.');
|
|
302
304
|
}
|
|
@@ -316,6 +318,8 @@ export const createPermissionPolicy = (options) => {
|
|
|
316
318
|
// grant lives, so revoking it there is the next call's answer, rather
|
|
317
319
|
// than a promise the daemon keeps only until its next restart.
|
|
318
320
|
const sessionScopes = new Map();
|
|
321
|
+
/** The same tier for commands granted by name. */
|
|
322
|
+
const sessionNames = new Map();
|
|
319
323
|
/** The same tier for origins, and for the same reason. */
|
|
320
324
|
const sessionOrigins = new Map();
|
|
321
325
|
/** And for standing tool grants. */
|
|
@@ -359,6 +363,12 @@ export const createPermissionPolicy = (options) => {
|
|
|
359
363
|
if (risk === 'safe') {
|
|
360
364
|
return report(context, true, `${call.toolName} is safe and runs without approval`);
|
|
361
365
|
}
|
|
366
|
+
if (risk === 'gated' && openFor?.(session.agent.id) === true) {
|
|
367
|
+
const closedByContent = sessionTrustOf(session) === 'external' && gateExternalContent?.(session.agent.id) === true;
|
|
368
|
+
if (!closedByContent) {
|
|
369
|
+
return report(context, true, `${call.toolName} runs without asking (approvals.posture is open)`);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
362
372
|
// What this *invocation* would run, for a tool whose danger lives in
|
|
363
373
|
// its arguments. Resolved before anything else so that the tool-wide
|
|
364
374
|
// "always" below can never apply to it: one yes to `git status` must
|
|
@@ -419,6 +429,35 @@ export const createPermissionPolicy = (options) => {
|
|
|
419
429
|
// exists to refuse before the turn starts.
|
|
420
430
|
const externalGate = sessionTrustOf(session) === 'external'
|
|
421
431
|
&& gateExternalContent?.(session.agent.id) === true;
|
|
432
|
+
/**
|
|
433
|
+
* Workspace autonomy for one command in one directory: a read inside
|
|
434
|
+
* it, local git, a plain download from a readable site, or a push of
|
|
435
|
+
* the agent's own branch. Shared by the single-command path and the
|
|
436
|
+
* compound one, so the two cannot drift.
|
|
437
|
+
*/
|
|
438
|
+
const autonomousStage = async (stage, cwd, workspace) => {
|
|
439
|
+
if (await readsInsideWorkspace(stage, cwd, workspace)) {
|
|
440
|
+
return true;
|
|
441
|
+
}
|
|
442
|
+
// Local git changes things, so it's a grant like any other
|
|
443
|
+
// to a conversation the external-content gate has closed.
|
|
444
|
+
if (!externalGate && await gitInsideWorkspace(stage, cwd, workspace)) {
|
|
445
|
+
return true;
|
|
446
|
+
}
|
|
447
|
+
// A plain download from a site the agent may already read:
|
|
448
|
+
// a trusted domain, or one approved for `web.fetch`. Granted
|
|
449
|
+
// trust, so not to a conversation the gate has closed.
|
|
450
|
+
// And not for an agent the gate is on for at all: the shell
|
|
451
|
+
// marks its output `unknown`, not `external`, so a page read
|
|
452
|
+
// this way would never close the gate it exists to close.
|
|
453
|
+
const gated = gateExternalContent?.(session.agent.id) === true;
|
|
454
|
+
const site = gated ? undefined : await downloadInsideWorkspace(stage, cwd, workspace);
|
|
455
|
+
if (site !== undefined && await readableSite(session.agent.id, site)) {
|
|
456
|
+
return true;
|
|
457
|
+
}
|
|
458
|
+
const prefixes = commands?.workspace?.branchPrefixesFor?.(session.agent.id) ?? [`${session.agent.id}/`];
|
|
459
|
+
return !externalGate && await gitPushInsideWorkspace(stage, cwd, workspace, prefixes);
|
|
460
|
+
};
|
|
422
461
|
const command = risk === 'gated' && singlyScoped
|
|
423
462
|
? context.tool.commandFor?.(call.input)
|
|
424
463
|
: undefined;
|
|
@@ -468,15 +507,14 @@ export const createPermissionPolicy = (options) => {
|
|
|
468
507
|
const destination = risk === 'gated' && singlyScoped
|
|
469
508
|
? context.tool.destinationFor?.(call.input)
|
|
470
509
|
: undefined;
|
|
510
|
+
// The agent's workspace for by-name grants and compound commands, and
|
|
511
|
+
// how a compound reading of this command was judged. Kept for the
|
|
512
|
+
// question below: what "always" would grant depends on which of its
|
|
513
|
+
// commands nothing covered.
|
|
514
|
+
const grantRoot = analysis ? commands?.grantRootFor?.(session.agent.id) : undefined;
|
|
515
|
+
let judgement;
|
|
471
516
|
if (analysis) {
|
|
472
|
-
if (analysis.disqualifiedBy) {
|
|
473
|
-
// Never auto-approved, whatever the base command is: a safe scope
|
|
474
|
-
// in front of a pipe is the exact shape this rule exists for.
|
|
475
|
-
if (mode === 'headless') {
|
|
476
|
-
return report(context, false, `${call.toolName} cannot run unattended: ${analysis.disqualifiedBy}`, command);
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
else {
|
|
517
|
+
if (!analysis.disqualifiedBy) {
|
|
480
518
|
// The built-in safe scopes survive the gate and granted ones do
|
|
481
519
|
// not: `git status` was judged safe for any caller, while a
|
|
482
520
|
// granted `git push` was judged for an agent nobody else was
|
|
@@ -522,30 +560,7 @@ export const createPermissionPolicy = (options) => {
|
|
|
522
560
|
if (findMatchingScope(stage, intrinsic)) {
|
|
523
561
|
continue;
|
|
524
562
|
}
|
|
525
|
-
if (await
|
|
526
|
-
read = true;
|
|
527
|
-
continue;
|
|
528
|
-
}
|
|
529
|
-
// Local git changes things, so it's a grant like any other
|
|
530
|
-
// to a conversation the external-content gate has closed.
|
|
531
|
-
if (!externalGate && await gitInsideWorkspace(stage, cwd, workspace)) {
|
|
532
|
-
read = true;
|
|
533
|
-
continue;
|
|
534
|
-
}
|
|
535
|
-
// A plain download from a site the agent may already read:
|
|
536
|
-
// a trusted domain, or one approved for `web.fetch`. Granted
|
|
537
|
-
// trust, so not to a conversation the gate has closed.
|
|
538
|
-
// And not for an agent the gate is on for at all: the shell
|
|
539
|
-
// marks its output `unknown`, not `external`, so a page read
|
|
540
|
-
// this way would never close the gate it exists to close.
|
|
541
|
-
const gated = gateExternalContent?.(session.agent.id) === true;
|
|
542
|
-
const site = gated ? undefined : await downloadInsideWorkspace(stage, cwd, workspace);
|
|
543
|
-
if (site !== undefined && await readableSite(session.agent.id, site)) {
|
|
544
|
-
read = true;
|
|
545
|
-
continue;
|
|
546
|
-
}
|
|
547
|
-
const prefixes = commands?.workspace?.branchPrefixesFor?.(session.agent.id) ?? [`${session.agent.id}/`];
|
|
548
|
-
if (!externalGate && await gitPushInsideWorkspace(stage, cwd, workspace, prefixes)) {
|
|
563
|
+
if (await autonomousStage(stage, cwd, workspace)) {
|
|
549
564
|
read = true;
|
|
550
565
|
continue;
|
|
551
566
|
}
|
|
@@ -557,6 +572,53 @@ export const createPermissionPolicy = (options) => {
|
|
|
557
572
|
}
|
|
558
573
|
}
|
|
559
574
|
}
|
|
575
|
+
// A compound reading: a chain, redirections, a command granted by
|
|
576
|
+
// name. Every command must run on its own terms; see `compound.ts`.
|
|
577
|
+
const compound = analyzeCompound(command);
|
|
578
|
+
if (!compound.disqualifiedBy) {
|
|
579
|
+
const intrinsic = commands?.safeScopes === undefined
|
|
580
|
+
? SAFE_COMMAND_SCOPES
|
|
581
|
+
: commands.safeScopes.filter((scope) => SAFE_COMMAND_SCOPES.includes(scope));
|
|
582
|
+
// A host's additions to the safe list survive the gate, as they do
|
|
583
|
+
// above, but compose like a grant: alone, or among scopes.
|
|
584
|
+
const hostScopes = (commands?.safeScopes ?? []).filter((scope) => !SAFE_COMMAND_SCOPES.includes(scope));
|
|
585
|
+
const autonomy = commands?.workspace?.directoryFor(session.agent.id);
|
|
586
|
+
judgement = await judgeCompound(compound, {
|
|
587
|
+
cwd: context.tool.cwdFor?.(session),
|
|
588
|
+
root: grantRoot,
|
|
589
|
+
safeScopes: intrinsic,
|
|
590
|
+
scopes: [
|
|
591
|
+
...(externalGate
|
|
592
|
+
? []
|
|
593
|
+
: [
|
|
594
|
+
...(sessionScopes.get(session.agent.id) ?? []),
|
|
595
|
+
...(commands?.whitelist ? await commands.whitelist.scopesFor(session.agent.id) : []),
|
|
596
|
+
]),
|
|
597
|
+
...hostScopes,
|
|
598
|
+
],
|
|
599
|
+
// Granted, so withdrawn by the gate like any other grant.
|
|
600
|
+
names: externalGate || grantRoot === undefined
|
|
601
|
+
? []
|
|
602
|
+
: [
|
|
603
|
+
...(sessionNames.get(session.agent.id) ?? []),
|
|
604
|
+
...(commands?.names ? await commands.names.commandNamesFor(session.agent.id) : []),
|
|
605
|
+
].map((grant) => grant.command),
|
|
606
|
+
...(autonomy !== undefined
|
|
607
|
+
? { autonomous: (stage, cwd) => autonomousStage(stage, cwd, autonomy) }
|
|
608
|
+
: {}),
|
|
609
|
+
reads: readsInsideWorkspace,
|
|
610
|
+
});
|
|
611
|
+
if (judgement.covered) {
|
|
612
|
+
const names = compoundCommandNames(compound.pipelines.flat());
|
|
613
|
+
return report(context, true, `${call.toolName} ran ${names.join(', ')}, each inside what ${session.agent.id} may run unattended`, command);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
else if (analysis.disqualifiedBy && mode === 'headless') {
|
|
617
|
+
// Never auto-approved, whatever the base command is: a safe scope
|
|
618
|
+
// in front of a backgrounding `&` is the exact shape this rule
|
|
619
|
+
// exists for.
|
|
620
|
+
return report(context, false, `${call.toolName} cannot run unattended: ${analysis.disqualifiedBy}`, command);
|
|
621
|
+
}
|
|
560
622
|
}
|
|
561
623
|
else if (risk === 'gated' && unscoped && !externalGate) {
|
|
562
624
|
// The standing grant: this process's answers first, then the file.
|
|
@@ -687,6 +749,41 @@ export const createPermissionPolicy = (options) => {
|
|
|
687
749
|
// after the answer so the question can say so; it is a pure function
|
|
688
750
|
// of the analysis, and the branch below reuses this exact value.
|
|
689
751
|
const commandScope = analysis ? normalizeCommandScope(analysis) : undefined;
|
|
752
|
+
// With a workspace to hold them, "always" grants what this line was
|
|
753
|
+
// missing instead: each command nothing covered, by name where that
|
|
754
|
+
// is safe (`grep`) and as the narrower scope where it is not (`git
|
|
755
|
+
// push`). Nothing, when one of them cannot be granted either way or
|
|
756
|
+
// what blocked the line was not a command — output sent outside the
|
|
757
|
+
// workspace, a directory this reader could not follow — since a grant
|
|
758
|
+
// that would not make the line run is not one to offer.
|
|
759
|
+
const plan = (() => {
|
|
760
|
+
if (judgement === undefined || grantRoot === undefined || judgement.unfixable || judgement.uncovered.length === 0) {
|
|
761
|
+
return undefined;
|
|
762
|
+
}
|
|
763
|
+
const names = [];
|
|
764
|
+
const scopes = [];
|
|
765
|
+
// A command alone keeps the narrower scope it always could (`python3
|
|
766
|
+
// scripts/check.py`). In a line with others, a shell, interpreter or
|
|
767
|
+
// wrapper gets nothing: `… | sh` is the shape a grant must not learn.
|
|
768
|
+
const alone = analyzeCompound(command).pipelines.flat().length === 1;
|
|
769
|
+
for (const stage of judgement.uncovered) {
|
|
770
|
+
const base = stage.analysis.base;
|
|
771
|
+
if (base !== undefined && grantableByName(base)) {
|
|
772
|
+
names.push(base);
|
|
773
|
+
continue;
|
|
774
|
+
}
|
|
775
|
+
if (!alone && base !== undefined && NOT_GRANTABLE_BY_NAME.has(base)) {
|
|
776
|
+
return undefined;
|
|
777
|
+
}
|
|
778
|
+
const scope = normalizeCommandScope(stage.analysis);
|
|
779
|
+
if (scope === undefined) {
|
|
780
|
+
return undefined;
|
|
781
|
+
}
|
|
782
|
+
scopes.push(scope);
|
|
783
|
+
}
|
|
784
|
+
return { names: [...new Set(names)], scopes };
|
|
785
|
+
})();
|
|
786
|
+
const usePlan = judgement !== undefined && grantRoot !== undefined;
|
|
690
787
|
// A gated conversation cannot mint a grant either: the request in
|
|
691
788
|
// front of the approver was composed after a page had its say, and
|
|
692
789
|
// "always" there would let the page talk a person into exactly the
|
|
@@ -695,7 +792,7 @@ export const createPermissionPolicy = (options) => {
|
|
|
695
792
|
|| externalGate
|
|
696
793
|
|| multiplyScoped
|
|
697
794
|
|| (scopedByOrigin && origin === undefined)
|
|
698
|
-
|| (analysis !== undefined && commandScope === undefined);
|
|
795
|
+
|| (analysis !== undefined && (usePlan ? plan === undefined : commandScope === undefined));
|
|
699
796
|
// Which kind of grant `always` creates, as data for the transport and
|
|
700
797
|
// as words for the prompt — the same decision, made once, so the two
|
|
701
798
|
// surfaces cannot promise different lifetimes for the same answer.
|
|
@@ -721,7 +818,10 @@ export const createPermissionPolicy = (options) => {
|
|
|
721
818
|
? 'not remembered — this command cannot be reduced to a scope'
|
|
722
819
|
: 'not remembered — there is no page to grant'
|
|
723
820
|
: always === 'scope'
|
|
724
|
-
?
|
|
821
|
+
? usePlan && plan !== undefined
|
|
822
|
+
? `always ${[...plan.names, ...plan.scopes.map(describeCommandScope)].join(', ')} for ${session.agent.name}`
|
|
823
|
+
+ `${plan.names.length > 0 ? ', inside its workspace' : ''}, until revoked`
|
|
824
|
+
: 'always this scope'
|
|
725
825
|
: always === 'origin'
|
|
726
826
|
? 'always this site'
|
|
727
827
|
: always === 'tool'
|
|
@@ -820,6 +920,59 @@ export const createPermissionPolicy = (options) => {
|
|
|
820
920
|
}
|
|
821
921
|
return allowUnlessMoved(`${call.toolName} was approved, and ${describeOriginScope(grant)} is now acted on without asking`);
|
|
822
922
|
}
|
|
923
|
+
if (usePlan) {
|
|
924
|
+
if (plan === undefined) {
|
|
925
|
+
return allowUnlessMoved(`${call.toolName} was approved once; it cannot be reduced to grants, so it will ask again`, command);
|
|
926
|
+
}
|
|
927
|
+
const agentId = session.agent.id;
|
|
928
|
+
const saved = [];
|
|
929
|
+
let unsaved;
|
|
930
|
+
for (const name of plan.names) {
|
|
931
|
+
const grant = {
|
|
932
|
+
command: name,
|
|
933
|
+
grantedAt: new Date().toISOString(),
|
|
934
|
+
...(actor !== undefined ? { grantedBy: actor } : {}),
|
|
935
|
+
};
|
|
936
|
+
if (commands?.names && unsaved === undefined) {
|
|
937
|
+
try {
|
|
938
|
+
await commands.names.rememberCommandName(agentId, grant);
|
|
939
|
+
commands.onCommandNameRemembered?.({ agentId, grant });
|
|
940
|
+
saved.push(name);
|
|
941
|
+
continue;
|
|
942
|
+
}
|
|
943
|
+
catch (error) {
|
|
944
|
+
if (!(error instanceof WhitelistUnreadableError)) {
|
|
945
|
+
throw error;
|
|
946
|
+
}
|
|
947
|
+
unsaved = error.message;
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
rememberForProcess(sessionNames, agentId, grant);
|
|
951
|
+
saved.push(name);
|
|
952
|
+
}
|
|
953
|
+
for (const scope of plan.scopes) {
|
|
954
|
+
if (commands?.whitelist && unsaved === undefined) {
|
|
955
|
+
try {
|
|
956
|
+
await commands.whitelist.remember(agentId, scope);
|
|
957
|
+
commands.onScopeRemembered?.({ agentId, scope });
|
|
958
|
+
saved.push(describeCommandScope(scope));
|
|
959
|
+
continue;
|
|
960
|
+
}
|
|
961
|
+
catch (error) {
|
|
962
|
+
if (!(error instanceof WhitelistUnreadableError)) {
|
|
963
|
+
throw error;
|
|
964
|
+
}
|
|
965
|
+
unsaved = error.message;
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
rememberForProcess(sessionScopes, agentId, scope);
|
|
969
|
+
saved.push(describeCommandScope(scope));
|
|
970
|
+
}
|
|
971
|
+
const list = saved.map((entry) => `"${entry}"`).join(', ');
|
|
972
|
+
return allowUnlessMoved(unsaved === undefined
|
|
973
|
+
? `${call.toolName} was approved, and ${list} now run${saved.length === 1 ? 's' : ''} without asking`
|
|
974
|
+
: `${call.toolName} was approved, and ${list} run without asking for ${agentId} until the daemon restarts — not saved: ${unsaved}`, command);
|
|
975
|
+
}
|
|
823
976
|
const scope = commandScope;
|
|
824
977
|
if (analysis && !scope) {
|
|
825
978
|
// A command this parser could not reduce to a scope — a pipe, a
|