@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.
Files changed (203) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +275 -2
  3. package/bin/mash.ts +253 -0
  4. package/dist/bin/mash.d.ts +39 -0
  5. package/dist/bin/mash.d.ts.map +1 -0
  6. package/dist/bin/mash.js +281 -0
  7. package/dist/bin/mash.js.map +1 -0
  8. package/dist/src/analysis/analyze.d.ts +97 -0
  9. package/dist/src/analysis/analyze.d.ts.map +1 -0
  10. package/dist/src/analysis/analyze.js +1406 -0
  11. package/dist/src/analysis/analyze.js.map +1 -0
  12. package/dist/src/analysis/fs.d.ts +39 -0
  13. package/dist/src/analysis/fs.d.ts.map +1 -0
  14. package/dist/src/analysis/fs.js +117 -0
  15. package/dist/src/analysis/fs.js.map +1 -0
  16. package/dist/src/analysis/outputs.d.ts +16 -0
  17. package/dist/src/analysis/outputs.d.ts.map +1 -0
  18. package/dist/src/analysis/outputs.js +277 -0
  19. package/dist/src/analysis/outputs.js.map +1 -0
  20. package/dist/src/analysis/value.d.ts +76 -0
  21. package/dist/src/analysis/value.d.ts.map +1 -0
  22. package/dist/src/analysis/value.js +248 -0
  23. package/dist/src/analysis/value.js.map +1 -0
  24. package/dist/src/behaviors/defs/core.d.ts +15 -0
  25. package/dist/src/behaviors/defs/core.d.ts.map +1 -0
  26. package/dist/src/behaviors/defs/core.js +1084 -0
  27. package/dist/src/behaviors/defs/core.js.map +1 -0
  28. package/dist/src/behaviors/defs/devtools.d.ts +9 -0
  29. package/dist/src/behaviors/defs/devtools.d.ts.map +1 -0
  30. package/dist/src/behaviors/defs/devtools.js +432 -0
  31. package/dist/src/behaviors/defs/devtools.js.map +1 -0
  32. package/dist/src/behaviors/defs/macos.d.ts +12 -0
  33. package/dist/src/behaviors/defs/macos.d.ts.map +1 -0
  34. package/dist/src/behaviors/defs/macos.js +454 -0
  35. package/dist/src/behaviors/defs/macos.js.map +1 -0
  36. package/dist/src/behaviors/defs/tools.d.ts +9 -0
  37. package/dist/src/behaviors/defs/tools.d.ts.map +1 -0
  38. package/dist/src/behaviors/defs/tools.js +639 -0
  39. package/dist/src/behaviors/defs/tools.js.map +1 -0
  40. package/dist/src/behaviors/dsl.d.ts +95 -0
  41. package/dist/src/behaviors/dsl.d.ts.map +1 -0
  42. package/dist/src/behaviors/dsl.js +267 -0
  43. package/dist/src/behaviors/dsl.js.map +1 -0
  44. package/dist/src/behaviors/index.d.ts +12 -0
  45. package/dist/src/behaviors/index.d.ts.map +1 -0
  46. package/dist/src/behaviors/index.js +18 -0
  47. package/dist/src/behaviors/index.js.map +1 -0
  48. package/dist/src/behaviors/registry.d.ts +45 -0
  49. package/dist/src/behaviors/registry.d.ts.map +1 -0
  50. package/dist/src/behaviors/registry.js +266 -0
  51. package/dist/src/behaviors/registry.js.map +1 -0
  52. package/dist/src/behaviors/roles.d.ts +29 -0
  53. package/dist/src/behaviors/roles.d.ts.map +1 -0
  54. package/dist/src/behaviors/roles.js +198 -0
  55. package/dist/src/behaviors/roles.js.map +1 -0
  56. package/dist/src/behaviors/types.d.ts +120 -0
  57. package/dist/src/behaviors/types.d.ts.map +1 -0
  58. package/dist/src/behaviors/types.js +12 -0
  59. package/dist/src/behaviors/types.js.map +1 -0
  60. package/dist/src/index.d.ts +27 -0
  61. package/dist/src/index.d.ts.map +1 -0
  62. package/dist/src/index.js +24 -0
  63. package/dist/src/index.js.map +1 -0
  64. package/dist/src/integrations/deepsea.d.ts +121 -0
  65. package/dist/src/integrations/deepsea.d.ts.map +1 -0
  66. package/dist/src/integrations/deepsea.js +199 -0
  67. package/dist/src/integrations/deepsea.js.map +1 -0
  68. package/dist/src/machine.d.ts +139 -0
  69. package/dist/src/machine.d.ts.map +1 -0
  70. package/dist/src/machine.js +400 -0
  71. package/dist/src/machine.js.map +1 -0
  72. package/dist/src/parser/ast.d.ts +369 -0
  73. package/dist/src/parser/ast.d.ts.map +1 -0
  74. package/dist/src/parser/ast.js +17 -0
  75. package/dist/src/parser/ast.js.map +1 -0
  76. package/dist/src/parser/parser.d.ts +48 -0
  77. package/dist/src/parser/parser.d.ts.map +1 -0
  78. package/dist/src/parser/parser.js +1950 -0
  79. package/dist/src/parser/parser.js.map +1 -0
  80. package/dist/src/policy/effects.d.ts +86 -0
  81. package/dist/src/policy/effects.d.ts.map +1 -0
  82. package/dist/src/policy/effects.js +53 -0
  83. package/dist/src/policy/effects.js.map +1 -0
  84. package/dist/src/policy/policy.d.ts +130 -0
  85. package/dist/src/policy/policy.d.ts.map +1 -0
  86. package/dist/src/policy/policy.js +532 -0
  87. package/dist/src/policy/policy.js.map +1 -0
  88. package/dist/src/printer/doc.d.ts +151 -0
  89. package/dist/src/printer/doc.d.ts.map +1 -0
  90. package/dist/src/printer/doc.js +409 -0
  91. package/dist/src/printer/doc.js.map +1 -0
  92. package/dist/src/printer/highlight.d.ts +53 -0
  93. package/dist/src/printer/highlight.d.ts.map +1 -0
  94. package/dist/src/printer/highlight.js +339 -0
  95. package/dist/src/printer/highlight.js.map +1 -0
  96. package/dist/src/printer/html.d.ts +72 -0
  97. package/dist/src/printer/html.d.ts.map +1 -0
  98. package/dist/src/printer/html.js +423 -0
  99. package/dist/src/printer/html.js.map +1 -0
  100. package/dist/src/printer/print.d.ts +63 -0
  101. package/dist/src/printer/print.d.ts.map +1 -0
  102. package/dist/src/printer/print.js +484 -0
  103. package/dist/src/printer/print.js.map +1 -0
  104. package/dist/src/printer/summary.d.ts +50 -0
  105. package/dist/src/printer/summary.d.ts.map +1 -0
  106. package/dist/src/printer/summary.js +621 -0
  107. package/dist/src/printer/summary.js.map +1 -0
  108. package/dist/src/trace/events.d.ts +183 -0
  109. package/dist/src/trace/events.d.ts.map +1 -0
  110. package/dist/src/trace/events.js +9 -0
  111. package/dist/src/trace/events.js.map +1 -0
  112. package/dist/src/trace/progress.d.ts +58 -0
  113. package/dist/src/trace/progress.d.ts.map +1 -0
  114. package/dist/src/trace/progress.js +83 -0
  115. package/dist/src/trace/progress.js.map +1 -0
  116. package/dist/src/vm/arith.d.ts +29 -0
  117. package/dist/src/vm/arith.d.ts.map +1 -0
  118. package/dist/src/vm/arith.js +258 -0
  119. package/dist/src/vm/arith.js.map +1 -0
  120. package/dist/src/vm/builtins.d.ts +31 -0
  121. package/dist/src/vm/builtins.d.ts.map +1 -0
  122. package/dist/src/vm/builtins.js +1773 -0
  123. package/dist/src/vm/builtins.js.map +1 -0
  124. package/dist/src/vm/emulate.d.ts +75 -0
  125. package/dist/src/vm/emulate.d.ts.map +1 -0
  126. package/dist/src/vm/emulate.js +380 -0
  127. package/dist/src/vm/emulate.js.map +1 -0
  128. package/dist/src/vm/expand.d.ts +68 -0
  129. package/dist/src/vm/expand.d.ts.map +1 -0
  130. package/dist/src/vm/expand.js +744 -0
  131. package/dist/src/vm/expand.js.map +1 -0
  132. package/dist/src/vm/external.d.ts +34 -0
  133. package/dist/src/vm/external.d.ts.map +1 -0
  134. package/dist/src/vm/external.js +228 -0
  135. package/dist/src/vm/external.js.map +1 -0
  136. package/dist/src/vm/fifo.d.ts +66 -0
  137. package/dist/src/vm/fifo.d.ts.map +1 -0
  138. package/dist/src/vm/fifo.js +232 -0
  139. package/dist/src/vm/fifo.js.map +1 -0
  140. package/dist/src/vm/interp.d.ts +209 -0
  141. package/dist/src/vm/interp.d.ts.map +1 -0
  142. package/dist/src/vm/interp.js +1641 -0
  143. package/dist/src/vm/interp.js.map +1 -0
  144. package/dist/src/vm/io.d.ts +180 -0
  145. package/dist/src/vm/io.d.ts.map +1 -0
  146. package/dist/src/vm/io.js +502 -0
  147. package/dist/src/vm/io.js.map +1 -0
  148. package/dist/src/vm/pattern.d.ts +46 -0
  149. package/dist/src/vm/pattern.d.ts.map +1 -0
  150. package/dist/src/vm/pattern.js +498 -0
  151. package/dist/src/vm/pattern.js.map +1 -0
  152. package/dist/src/vm/proc.d.ts +94 -0
  153. package/dist/src/vm/proc.d.ts.map +1 -0
  154. package/dist/src/vm/proc.js +130 -0
  155. package/dist/src/vm/proc.js.map +1 -0
  156. package/dist/src/vm/state.d.ts +104 -0
  157. package/dist/src/vm/state.d.ts.map +1 -0
  158. package/dist/src/vm/state.js +233 -0
  159. package/dist/src/vm/state.js.map +1 -0
  160. package/dist/src/vm/test.d.ts +11 -0
  161. package/dist/src/vm/test.d.ts.map +1 -0
  162. package/dist/src/vm/test.js +277 -0
  163. package/dist/src/vm/test.js.map +1 -0
  164. package/package.json +63 -4
  165. package/src/analysis/analyze.ts +1395 -0
  166. package/src/analysis/fs.ts +121 -0
  167. package/src/analysis/outputs.ts +242 -0
  168. package/src/analysis/value.ts +264 -0
  169. package/src/behaviors/defs/core.ts +970 -0
  170. package/src/behaviors/defs/devtools.ts +400 -0
  171. package/src/behaviors/defs/macos.ts +426 -0
  172. package/src/behaviors/defs/tools.ts +596 -0
  173. package/src/behaviors/dsl.ts +293 -0
  174. package/src/behaviors/index.ts +19 -0
  175. package/src/behaviors/registry.ts +261 -0
  176. package/src/behaviors/roles.ts +187 -0
  177. package/src/behaviors/types.ts +127 -0
  178. package/src/index.ts +27 -0
  179. package/src/integrations/deepsea.ts +259 -0
  180. package/src/machine.ts +483 -0
  181. package/src/parser/ast.ts +472 -0
  182. package/src/parser/parser.ts +1826 -0
  183. package/src/policy/effects.ts +102 -0
  184. package/src/policy/policy.ts +578 -0
  185. package/src/printer/doc.ts +454 -0
  186. package/src/printer/highlight.ts +283 -0
  187. package/src/printer/html.ts +441 -0
  188. package/src/printer/print.ts +528 -0
  189. package/src/printer/summary.ts +601 -0
  190. package/src/trace/events.ts +102 -0
  191. package/src/trace/progress.ts +119 -0
  192. package/src/vm/arith.ts +236 -0
  193. package/src/vm/builtins.ts +1590 -0
  194. package/src/vm/emulate.ts +337 -0
  195. package/src/vm/expand.ts +721 -0
  196. package/src/vm/external.ts +265 -0
  197. package/src/vm/fifo.ts +226 -0
  198. package/src/vm/interp.ts +1623 -0
  199. package/src/vm/io.ts +570 -0
  200. package/src/vm/pattern.ts +477 -0
  201. package/src/vm/proc.ts +147 -0
  202. package/src/vm/state.ts +267 -0
  203. 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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"}