@taliesinb/mash 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +275 -2
- package/bin/mash.ts +253 -0
- package/dist/bin/mash.d.ts +39 -0
- package/dist/bin/mash.d.ts.map +1 -0
- package/dist/bin/mash.js +281 -0
- package/dist/bin/mash.js.map +1 -0
- package/dist/src/analysis/analyze.d.ts +97 -0
- package/dist/src/analysis/analyze.d.ts.map +1 -0
- package/dist/src/analysis/analyze.js +1406 -0
- package/dist/src/analysis/analyze.js.map +1 -0
- package/dist/src/analysis/fs.d.ts +39 -0
- package/dist/src/analysis/fs.d.ts.map +1 -0
- package/dist/src/analysis/fs.js +117 -0
- package/dist/src/analysis/fs.js.map +1 -0
- package/dist/src/analysis/outputs.d.ts +16 -0
- package/dist/src/analysis/outputs.d.ts.map +1 -0
- package/dist/src/analysis/outputs.js +277 -0
- package/dist/src/analysis/outputs.js.map +1 -0
- package/dist/src/analysis/value.d.ts +76 -0
- package/dist/src/analysis/value.d.ts.map +1 -0
- package/dist/src/analysis/value.js +248 -0
- package/dist/src/analysis/value.js.map +1 -0
- package/dist/src/behaviors/defs/core.d.ts +15 -0
- package/dist/src/behaviors/defs/core.d.ts.map +1 -0
- package/dist/src/behaviors/defs/core.js +1084 -0
- package/dist/src/behaviors/defs/core.js.map +1 -0
- package/dist/src/behaviors/defs/devtools.d.ts +9 -0
- package/dist/src/behaviors/defs/devtools.d.ts.map +1 -0
- package/dist/src/behaviors/defs/devtools.js +432 -0
- package/dist/src/behaviors/defs/devtools.js.map +1 -0
- package/dist/src/behaviors/defs/macos.d.ts +12 -0
- package/dist/src/behaviors/defs/macos.d.ts.map +1 -0
- package/dist/src/behaviors/defs/macos.js +454 -0
- package/dist/src/behaviors/defs/macos.js.map +1 -0
- package/dist/src/behaviors/defs/tools.d.ts +9 -0
- package/dist/src/behaviors/defs/tools.d.ts.map +1 -0
- package/dist/src/behaviors/defs/tools.js +639 -0
- package/dist/src/behaviors/defs/tools.js.map +1 -0
- package/dist/src/behaviors/dsl.d.ts +95 -0
- package/dist/src/behaviors/dsl.d.ts.map +1 -0
- package/dist/src/behaviors/dsl.js +267 -0
- package/dist/src/behaviors/dsl.js.map +1 -0
- package/dist/src/behaviors/index.d.ts +12 -0
- package/dist/src/behaviors/index.d.ts.map +1 -0
- package/dist/src/behaviors/index.js +18 -0
- package/dist/src/behaviors/index.js.map +1 -0
- package/dist/src/behaviors/registry.d.ts +45 -0
- package/dist/src/behaviors/registry.d.ts.map +1 -0
- package/dist/src/behaviors/registry.js +266 -0
- package/dist/src/behaviors/registry.js.map +1 -0
- package/dist/src/behaviors/roles.d.ts +29 -0
- package/dist/src/behaviors/roles.d.ts.map +1 -0
- package/dist/src/behaviors/roles.js +198 -0
- package/dist/src/behaviors/roles.js.map +1 -0
- package/dist/src/behaviors/types.d.ts +120 -0
- package/dist/src/behaviors/types.d.ts.map +1 -0
- package/dist/src/behaviors/types.js +12 -0
- package/dist/src/behaviors/types.js.map +1 -0
- package/dist/src/index.d.ts +27 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +24 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/integrations/deepsea.d.ts +121 -0
- package/dist/src/integrations/deepsea.d.ts.map +1 -0
- package/dist/src/integrations/deepsea.js +199 -0
- package/dist/src/integrations/deepsea.js.map +1 -0
- package/dist/src/machine.d.ts +139 -0
- package/dist/src/machine.d.ts.map +1 -0
- package/dist/src/machine.js +400 -0
- package/dist/src/machine.js.map +1 -0
- package/dist/src/parser/ast.d.ts +369 -0
- package/dist/src/parser/ast.d.ts.map +1 -0
- package/dist/src/parser/ast.js +17 -0
- package/dist/src/parser/ast.js.map +1 -0
- package/dist/src/parser/parser.d.ts +48 -0
- package/dist/src/parser/parser.d.ts.map +1 -0
- package/dist/src/parser/parser.js +1950 -0
- package/dist/src/parser/parser.js.map +1 -0
- package/dist/src/policy/effects.d.ts +86 -0
- package/dist/src/policy/effects.d.ts.map +1 -0
- package/dist/src/policy/effects.js +53 -0
- package/dist/src/policy/effects.js.map +1 -0
- package/dist/src/policy/policy.d.ts +130 -0
- package/dist/src/policy/policy.d.ts.map +1 -0
- package/dist/src/policy/policy.js +532 -0
- package/dist/src/policy/policy.js.map +1 -0
- package/dist/src/printer/doc.d.ts +151 -0
- package/dist/src/printer/doc.d.ts.map +1 -0
- package/dist/src/printer/doc.js +409 -0
- package/dist/src/printer/doc.js.map +1 -0
- package/dist/src/printer/highlight.d.ts +53 -0
- package/dist/src/printer/highlight.d.ts.map +1 -0
- package/dist/src/printer/highlight.js +339 -0
- package/dist/src/printer/highlight.js.map +1 -0
- package/dist/src/printer/html.d.ts +72 -0
- package/dist/src/printer/html.d.ts.map +1 -0
- package/dist/src/printer/html.js +423 -0
- package/dist/src/printer/html.js.map +1 -0
- package/dist/src/printer/print.d.ts +63 -0
- package/dist/src/printer/print.d.ts.map +1 -0
- package/dist/src/printer/print.js +484 -0
- package/dist/src/printer/print.js.map +1 -0
- package/dist/src/printer/summary.d.ts +50 -0
- package/dist/src/printer/summary.d.ts.map +1 -0
- package/dist/src/printer/summary.js +621 -0
- package/dist/src/printer/summary.js.map +1 -0
- package/dist/src/trace/events.d.ts +183 -0
- package/dist/src/trace/events.d.ts.map +1 -0
- package/dist/src/trace/events.js +9 -0
- package/dist/src/trace/events.js.map +1 -0
- package/dist/src/trace/progress.d.ts +58 -0
- package/dist/src/trace/progress.d.ts.map +1 -0
- package/dist/src/trace/progress.js +83 -0
- package/dist/src/trace/progress.js.map +1 -0
- package/dist/src/vm/arith.d.ts +29 -0
- package/dist/src/vm/arith.d.ts.map +1 -0
- package/dist/src/vm/arith.js +258 -0
- package/dist/src/vm/arith.js.map +1 -0
- package/dist/src/vm/builtins.d.ts +31 -0
- package/dist/src/vm/builtins.d.ts.map +1 -0
- package/dist/src/vm/builtins.js +1773 -0
- package/dist/src/vm/builtins.js.map +1 -0
- package/dist/src/vm/emulate.d.ts +75 -0
- package/dist/src/vm/emulate.d.ts.map +1 -0
- package/dist/src/vm/emulate.js +380 -0
- package/dist/src/vm/emulate.js.map +1 -0
- package/dist/src/vm/expand.d.ts +68 -0
- package/dist/src/vm/expand.d.ts.map +1 -0
- package/dist/src/vm/expand.js +744 -0
- package/dist/src/vm/expand.js.map +1 -0
- package/dist/src/vm/external.d.ts +34 -0
- package/dist/src/vm/external.d.ts.map +1 -0
- package/dist/src/vm/external.js +228 -0
- package/dist/src/vm/external.js.map +1 -0
- package/dist/src/vm/fifo.d.ts +66 -0
- package/dist/src/vm/fifo.d.ts.map +1 -0
- package/dist/src/vm/fifo.js +232 -0
- package/dist/src/vm/fifo.js.map +1 -0
- package/dist/src/vm/interp.d.ts +209 -0
- package/dist/src/vm/interp.d.ts.map +1 -0
- package/dist/src/vm/interp.js +1641 -0
- package/dist/src/vm/interp.js.map +1 -0
- package/dist/src/vm/io.d.ts +180 -0
- package/dist/src/vm/io.d.ts.map +1 -0
- package/dist/src/vm/io.js +502 -0
- package/dist/src/vm/io.js.map +1 -0
- package/dist/src/vm/pattern.d.ts +46 -0
- package/dist/src/vm/pattern.d.ts.map +1 -0
- package/dist/src/vm/pattern.js +498 -0
- package/dist/src/vm/pattern.js.map +1 -0
- package/dist/src/vm/proc.d.ts +94 -0
- package/dist/src/vm/proc.d.ts.map +1 -0
- package/dist/src/vm/proc.js +130 -0
- package/dist/src/vm/proc.js.map +1 -0
- package/dist/src/vm/state.d.ts +104 -0
- package/dist/src/vm/state.d.ts.map +1 -0
- package/dist/src/vm/state.js +233 -0
- package/dist/src/vm/state.js.map +1 -0
- package/dist/src/vm/test.d.ts +11 -0
- package/dist/src/vm/test.d.ts.map +1 -0
- package/dist/src/vm/test.js +277 -0
- package/dist/src/vm/test.js.map +1 -0
- package/package.json +63 -4
- package/src/analysis/analyze.ts +1395 -0
- package/src/analysis/fs.ts +121 -0
- package/src/analysis/outputs.ts +242 -0
- package/src/analysis/value.ts +264 -0
- package/src/behaviors/defs/core.ts +970 -0
- package/src/behaviors/defs/devtools.ts +400 -0
- package/src/behaviors/defs/macos.ts +426 -0
- package/src/behaviors/defs/tools.ts +596 -0
- package/src/behaviors/dsl.ts +293 -0
- package/src/behaviors/index.ts +19 -0
- package/src/behaviors/registry.ts +261 -0
- package/src/behaviors/roles.ts +187 -0
- package/src/behaviors/types.ts +127 -0
- package/src/index.ts +27 -0
- package/src/integrations/deepsea.ts +259 -0
- package/src/machine.ts +483 -0
- package/src/parser/ast.ts +472 -0
- package/src/parser/parser.ts +1826 -0
- package/src/policy/effects.ts +102 -0
- package/src/policy/policy.ts +578 -0
- package/src/printer/doc.ts +454 -0
- package/src/printer/highlight.ts +283 -0
- package/src/printer/html.ts +441 -0
- package/src/printer/print.ts +528 -0
- package/src/printer/summary.ts +601 -0
- package/src/trace/events.ts +102 -0
- package/src/trace/progress.ts +119 -0
- package/src/vm/arith.ts +236 -0
- package/src/vm/builtins.ts +1590 -0
- package/src/vm/emulate.ts +337 -0
- package/src/vm/expand.ts +721 -0
- package/src/vm/external.ts +265 -0
- package/src/vm/fifo.ts +226 -0
- package/src/vm/interp.ts +1623 -0
- package/src/vm/io.ts +570 -0
- package/src/vm/pattern.ts +477 -0
- package/src/vm/proc.ts +147 -0
- package/src/vm/state.ts +267 -0
- package/src/vm/test.ts +253 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/parser/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effects: what a command does to the world, as predicted by a behavior
|
|
3
|
+
* definition or derived from redirections. Paths are absolute abstract values
|
|
4
|
+
* (concrete at runtime).
|
|
5
|
+
*/
|
|
6
|
+
import type { AValue } from '../analysis/value.ts';
|
|
7
|
+
/**
|
|
8
|
+
* Provenance of a nested effect: the inner command it comes from, for effects
|
|
9
|
+
* of `bash -c`, script files, `eval`, `source` and `trap` actions. A list,
|
|
10
|
+
* outermost hop first (`bash -c "bash s.sh"` → [`bash s.sh`, s.sh line 3]).
|
|
11
|
+
*/
|
|
12
|
+
export interface Via {
|
|
13
|
+
/** Source text of the inner command. */
|
|
14
|
+
text: string;
|
|
15
|
+
/** Line of the inner command in its script (1-based). */
|
|
16
|
+
line: number;
|
|
17
|
+
/** The script file, when the code came from one. */
|
|
18
|
+
file?: string;
|
|
19
|
+
}
|
|
20
|
+
interface EffectBase {
|
|
21
|
+
/** The command name the effect was predicted for (behavior name, `redirect`). */
|
|
22
|
+
source?: string;
|
|
23
|
+
/** Where a nested effect came from (see {@link Via}). */
|
|
24
|
+
via?: Via[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* `maybe`: the command might do this (e.g. a build tool writing into its
|
|
28
|
+
* directory, or a conditional command in a nested script) — a possible
|
|
29
|
+
* effect never yields a definite policy `deny`, only `unknown`, so it cannot
|
|
30
|
+
* cause a pre-flight rejection on its own.
|
|
31
|
+
*/
|
|
32
|
+
export type Effect = EffectBase & (
|
|
33
|
+
/** `names`: only names and metadata are read (`find`, `ls -R`, `du`), never file contents. */
|
|
34
|
+
{
|
|
35
|
+
kind: 'read';
|
|
36
|
+
path: AValue;
|
|
37
|
+
recursive?: boolean;
|
|
38
|
+
maybe?: boolean;
|
|
39
|
+
names?: boolean;
|
|
40
|
+
} | {
|
|
41
|
+
kind: 'write';
|
|
42
|
+
path: AValue;
|
|
43
|
+
recursive?: boolean;
|
|
44
|
+
append?: boolean;
|
|
45
|
+
maybe?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/** `ifExists`: a missing path is not an error and nothing happens (`rm -f`). */
|
|
48
|
+
| {
|
|
49
|
+
kind: 'delete';
|
|
50
|
+
path: AValue;
|
|
51
|
+
recursive?: boolean;
|
|
52
|
+
maybe?: boolean;
|
|
53
|
+
ifExists?: boolean;
|
|
54
|
+
} | {
|
|
55
|
+
kind: 'network';
|
|
56
|
+
target?: AValue;
|
|
57
|
+
detail: string;
|
|
58
|
+
maybe?: boolean;
|
|
59
|
+
} | {
|
|
60
|
+
kind: 'exec';
|
|
61
|
+
argv: AValue[];
|
|
62
|
+
maybe?: boolean;
|
|
63
|
+
} | {
|
|
64
|
+
kind: 'chdir';
|
|
65
|
+
path: AValue;
|
|
66
|
+
} | {
|
|
67
|
+
kind: 'process';
|
|
68
|
+
detail: string;
|
|
69
|
+
}
|
|
70
|
+
/** The command's effects could not be determined (no behavior definition, or opaque arguments). */
|
|
71
|
+
| {
|
|
72
|
+
kind: 'unknown';
|
|
73
|
+
detail: string;
|
|
74
|
+
maybe?: boolean;
|
|
75
|
+
});
|
|
76
|
+
export declare function describeEffect(e: Effect): string;
|
|
77
|
+
/** `` `rm -rf /opt/x` (s.sh:3) → `touch y` `` */
|
|
78
|
+
export declare function describeVia(via: readonly Via[]): string;
|
|
79
|
+
/** ` (via …)` for nested effects, else empty. */
|
|
80
|
+
export declare function viaSuffix(e: Effect): string;
|
|
81
|
+
/** Prepend a provenance hop to an effect (a copy). */
|
|
82
|
+
export declare function withVia(e: Effect, hop: Via): Effect;
|
|
83
|
+
/** The effect as a possible one: a conditional command in a nested script. */
|
|
84
|
+
export declare function asPossible(e: Effect): Effect;
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=effects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../src/policy/effects.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAGlD;;;;GAIG;AACH,MAAM,WAAW,GAAG;IAClB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,UAAU,UAAU;IAClB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yDAAyD;IACzD,GAAG,CAAC,EAAE,GAAG,EAAE,CAAA;CACZ;AAED;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG;AAChC,8FAA8F;AAC5F;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE;AACzF,gFAAgF;GAC9E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACrC,mGAAmG;GACjG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CACvD,CAAA;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAkBD,iDAAiD;AACjD,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,EAAE,GAAG,MAAM,CASvD;AAED,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,sDAAsD;AACtD,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAEnD;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ5C"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effects: what a command does to the world, as predicted by a behavior
|
|
3
|
+
* definition or derived from redirections. Paths are absolute abstract values
|
|
4
|
+
* (concrete at runtime).
|
|
5
|
+
*/
|
|
6
|
+
import { describe } from "../analysis/value.js";
|
|
7
|
+
export function describeEffect(e) {
|
|
8
|
+
return describeEffectOnly(e) + viaSuffix(e);
|
|
9
|
+
}
|
|
10
|
+
function describeEffectOnly(e) {
|
|
11
|
+
const r = (e.recursive ? ' (recursive)' : '') + (e.maybe ? ' (possibly)' : '');
|
|
12
|
+
switch (e.kind) {
|
|
13
|
+
case 'read': return `read ${describe(e.path)}${r}`;
|
|
14
|
+
case 'write': return `${e.append ? 'append' : 'write'} ${describe(e.path)}${r}`;
|
|
15
|
+
case 'delete': return `delete ${describe(e.path)}${r}`;
|
|
16
|
+
case 'network': return `network ${e.target ? describe(e.target) : ''} ${e.detail}${r}`.replace(/ +/g, ' ').trim();
|
|
17
|
+
case 'exec': return `exec ${e.argv.map(describe).join(' ')}${r}`;
|
|
18
|
+
case 'chdir': return `cd ${describe(e.path)}`;
|
|
19
|
+
case 'process': return `process ${e.detail}`;
|
|
20
|
+
case 'unknown': return `unknown: ${e.detail}${r}`;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const MAX_VIA_TEXT = 60;
|
|
24
|
+
/** `` `rm -rf /opt/x` (s.sh:3) → `touch y` `` */
|
|
25
|
+
export function describeVia(via) {
|
|
26
|
+
return via
|
|
27
|
+
.map((v) => {
|
|
28
|
+
const one = v.text.replace(/\s*\n\s*/g, '; ');
|
|
29
|
+
const t = one.length > MAX_VIA_TEXT ? one.slice(0, MAX_VIA_TEXT - 1) + '…' : one;
|
|
30
|
+
const where = v.file ? ` (${v.file}:${v.line})` : v.line > 1 ? ` (line ${v.line})` : '';
|
|
31
|
+
return `\`${t}\`${where}`;
|
|
32
|
+
})
|
|
33
|
+
.join(' → ');
|
|
34
|
+
}
|
|
35
|
+
/** ` (via …)` for nested effects, else empty. */
|
|
36
|
+
export function viaSuffix(e) {
|
|
37
|
+
return e.via && e.via.length > 0 ? ` (via ${describeVia(e.via)})` : '';
|
|
38
|
+
}
|
|
39
|
+
/** Prepend a provenance hop to an effect (a copy). */
|
|
40
|
+
export function withVia(e, hop) {
|
|
41
|
+
return { ...e, via: [hop, ...(e.via ?? [])] };
|
|
42
|
+
}
|
|
43
|
+
/** The effect as a possible one: a conditional command in a nested script. */
|
|
44
|
+
export function asPossible(e) {
|
|
45
|
+
switch (e.kind) {
|
|
46
|
+
case 'chdir':
|
|
47
|
+
case 'process':
|
|
48
|
+
return e;
|
|
49
|
+
default:
|
|
50
|
+
return { ...e, maybe: true };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=effects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.js","sourceRoot":"","sources":["../../../src/policy/effects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sandbox policy and effect checking.
|
|
3
|
+
*
|
|
4
|
+
* The file vocabulary mirrors the DeepSea harness (`SandboxExecutionPolicy`
|
|
5
|
+
* in dsh-sandbox): `read-only`, `workspace-write` (workspace root, extra
|
|
6
|
+
* roots, temp areas) and `danger-full-access`. mash adds optional network,
|
|
7
|
+
* command and read restrictions that the OS sandbox cannot express.
|
|
8
|
+
*
|
|
9
|
+
* Checking works on abstract paths: a verdict is `deny` only when EVERY
|
|
10
|
+
* possible concretisation violates the policy, `allow` only when every one is
|
|
11
|
+
* permitted, and `unknown` otherwise. Unknown substrings that may contain
|
|
12
|
+
* `/` or `..` therefore never produce a definite verdict — the runtime check
|
|
13
|
+
* on the concrete value decides.
|
|
14
|
+
*/
|
|
15
|
+
import type { AValue, Seg } from '../analysis/value.ts';
|
|
16
|
+
import type { Effect } from './effects.ts';
|
|
17
|
+
export type SandboxMode = 'read-only' | 'workspace-write' | 'danger-full-access';
|
|
18
|
+
export interface Policy {
|
|
19
|
+
mode: SandboxMode;
|
|
20
|
+
/** Absolute workspace root (writable under `workspace-write`). */
|
|
21
|
+
workspaceRoot: string;
|
|
22
|
+
additionalWritableRoots?: readonly string[];
|
|
23
|
+
/** Temp areas are writable under `workspace-write` (default true). */
|
|
24
|
+
writableTemp?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Network access (default `allow`; the harness OS sandbox does not govern
|
|
27
|
+
* network). `{ allow: hosts }` permits only connections to those hosts:
|
|
28
|
+
* `example.com` (exactly), `*.example.com` (any subdomain), `*` (any).
|
|
29
|
+
*/
|
|
30
|
+
network?: 'allow' | 'deny' | {
|
|
31
|
+
allow: readonly string[];
|
|
32
|
+
};
|
|
33
|
+
/** Commands without a behavior definition (default `allow`: the OS sandbox still confines them). */
|
|
34
|
+
unknownCommands?: 'allow' | 'deny';
|
|
35
|
+
/** Command names (basenames) that may never run. */
|
|
36
|
+
deniedCommands?: readonly string[];
|
|
37
|
+
/** Directories (or files) that may not be read, in every mode (e.g. `~/.ssh`). */
|
|
38
|
+
readDeniedRoots?: readonly string[];
|
|
39
|
+
/**
|
|
40
|
+
* Read policy coverage for credential stores: also deny reading the
|
|
41
|
+
* locations in {@link credentialReadRoots} (`~/.ssh`, `~/.aws`, `~/.config/gh`,
|
|
42
|
+
* keychains, …). Opt-in (default false).
|
|
43
|
+
*/
|
|
44
|
+
readDenyCredentials?: boolean;
|
|
45
|
+
/** Home directory for {@link credentialReadRoots} (default `os.homedir()`). */
|
|
46
|
+
home?: string;
|
|
47
|
+
/**
|
|
48
|
+
* `rm -f` of a path that does not exist: `deny` (default; the attempt is the
|
|
49
|
+
* violation, as in path-based OS sandboxes) or `allow` (nothing happens, so
|
|
50
|
+
* nothing is violated; statically, when the path is missing now and the
|
|
51
|
+
* snippet does not create it).
|
|
52
|
+
*/
|
|
53
|
+
missingDeletes?: 'deny' | 'allow';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Where credentials live: private keys, cloud and CLI tokens, keychains and
|
|
57
|
+
* password stores. Files and directories, relative to `home` unless absolute.
|
|
58
|
+
*/
|
|
59
|
+
export declare const CREDENTIAL_LOCATIONS: readonly string[];
|
|
60
|
+
/**
|
|
61
|
+
* Non-secret files inside credential locations that stay readable (agents
|
|
62
|
+
* debug ssh setups): public keys, `config`, `known_hosts`, `authorized_keys`.
|
|
63
|
+
* Listing a credential directory (`ls ~/.ssh`) is allowed too.
|
|
64
|
+
*/
|
|
65
|
+
export declare const CREDENTIAL_READ_EXCEPTIONS: readonly string[];
|
|
66
|
+
/** {@link CREDENTIAL_LOCATIONS} resolved against a home directory. */
|
|
67
|
+
export declare function credentialReadRoots(home?: string): string[];
|
|
68
|
+
/** Every read-denied root of a policy (explicit ones, plus credential stores when enabled), with realpaths. */
|
|
69
|
+
export declare function readDeniedRoots(policy: Policy): string[];
|
|
70
|
+
export type Verdict = 'allow' | 'deny' | 'unknown';
|
|
71
|
+
export interface PolicyFinding {
|
|
72
|
+
effect: Effect;
|
|
73
|
+
verdict: Verdict;
|
|
74
|
+
reason: string;
|
|
75
|
+
}
|
|
76
|
+
export declare function writableRoots(policy: Policy): string[];
|
|
77
|
+
/**
|
|
78
|
+
* What we can say about where an abstract absolute path points:
|
|
79
|
+
* - `exact`: one concrete normalised path
|
|
80
|
+
* - `below`: the path is `dir` or somewhere beneath it
|
|
81
|
+
* - `unknown`: nothing definite (an unknown part may contain `/..`)
|
|
82
|
+
*/
|
|
83
|
+
export type PathShape = {
|
|
84
|
+
kind: 'exact';
|
|
85
|
+
path: string;
|
|
86
|
+
} | {
|
|
87
|
+
kind: 'below';
|
|
88
|
+
dir: string;
|
|
89
|
+
} | {
|
|
90
|
+
kind: 'unknown';
|
|
91
|
+
hint: string;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Shapes of one alternative of an absolute (or cwd-relative already joined)
|
|
95
|
+
* path. Usually one shape; a component that may be `..` (a `segment` hole on
|
|
96
|
+
* its own) branches into the possible resolutions.
|
|
97
|
+
*/
|
|
98
|
+
export declare function altShapes(alt: Seg[]): PathShape[];
|
|
99
|
+
/** The first shape of one alternative (see {@link altShapes}). */
|
|
100
|
+
export declare function altShape(alt: Seg[]): PathShape;
|
|
101
|
+
export declare function shapesOf(v: AValue): PathShape[];
|
|
102
|
+
/** Resolve symlinks of the deepest existing ancestor of a concrete path. */
|
|
103
|
+
export declare function realpathLoose(p: string): string;
|
|
104
|
+
export interface CheckOptions {
|
|
105
|
+
/** Concrete runtime check: also resolve symlinks. */
|
|
106
|
+
runtime?: boolean;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The host a network target names, when it is determined by the literal text
|
|
110
|
+
* of the value: `https://user@Host:8080/x` → `host`, `git@github.com:o/r` →
|
|
111
|
+
* `github.com`, `user@example.com` → `example.com`.
|
|
112
|
+
* Undefined when the host depends on an unknown part (`https://$H/x`), when
|
|
113
|
+
* there is none (`file:///x`), and for a bare word (`example.com`,
|
|
114
|
+
* `example.com/x`, `localhost:3000`): behaviors cannot always tell a host operand from an
|
|
115
|
+
* option's value (`ssh -i key host`, `git clone --depth 1 url`), so a bare
|
|
116
|
+
* word is never trusted for a definite verdict. Neither is anything that is
|
|
117
|
+
* not a host name or IP address (`BatchMode=yes`, `+short`, `8080`).
|
|
118
|
+
*/
|
|
119
|
+
export declare function targetHost(alt: Seg[]): string | undefined;
|
|
120
|
+
/** Does an allow-list entry match a host? */
|
|
121
|
+
export declare function hostMatches(host: string, entry: string): boolean;
|
|
122
|
+
export declare function checkEffect(effect: Effect, policy: Policy, opts?: CheckOptions): PolicyFinding;
|
|
123
|
+
export declare function checkCommandName(name: string, policy: Policy): PolicyFinding | null;
|
|
124
|
+
export declare function checkEffects(effects: Effect[], policy: Policy, opts?: CheckOptions): PolicyFinding[];
|
|
125
|
+
/** Denied command names among nested `exec` effects (a possible exec is only `unknown`). */
|
|
126
|
+
export declare function checkExecEffects(effects: Effect[], policy: Policy): PolicyFinding[];
|
|
127
|
+
/** The most severe verdict. */
|
|
128
|
+
export declare function worstVerdict(findings: PolicyFinding[]): Verdict;
|
|
129
|
+
export declare function defaultPolicy(workspaceRoot: string): Policy;
|
|
130
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/policy/policy.ts"],"names":[],"mappings":"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"}
|