skillscript-runtime 0.18.7 → 0.18.8

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.
@@ -29,6 +29,33 @@
29
29
  # on every appearance regardless.
30
30
  # SKILLSCRIPT_ENABLE_UNSAFE_SHELL=true
31
31
 
32
+ # Operator-controlled allowlist of binaries reachable via `shell(...)` ops.
33
+ # Default-deny (v0.18.8+): when this var is unset, NO `shell()` op will run.
34
+ # Set to a comma-separated list of binary names; the first token of each
35
+ # `shell(command="X ...")` body must appear in the list.
36
+ #
37
+ # Two independent axes — separate from SKILLSCRIPT_ENABLE_UNSAFE_SHELL:
38
+ # - this var controls WHICH binaries (binary scope)
39
+ # - enable_unsafe_shell controls WHETHER bash interpretation is permitted
40
+ # (syntax scope)
41
+ # Both must allow for a `shell(..., unsafe=true)` op to dispatch:
42
+ # on-list + safe syntax → runs
43
+ # on-list + pipeline/unsafe → runs iff ENABLE_UNSAFE_SHELL=true
44
+ # off-list → refused, period (no author keyword escapes this)
45
+ #
46
+ # For unsafe ops the runtime invokes `bash -c <body>` — the literal first
47
+ # token is `bash`. So permitting any unsafe shell at all requires `bash`
48
+ # on the allowlist in addition to ENABLE_UNSAFE_SHELL=true. Per-binary
49
+ # scope on unsafe-mode bodies is NOT supported at runtime (parse-based
50
+ # enumeration is unsound; OS-level execve/seccomp/restricted-PATH is the
51
+ # proper layer — see docs/adopter-playbook.md).
52
+ #
53
+ # Pre-upgrade discovery: run `skillfile shell-audit` to scan your skill
54
+ # corpus and emit the current set of binaries used. Paste the suggested
55
+ # value here. THIS IS A BREAKING CHANGE from v0.18.7 — skills using
56
+ # shell() will refuse to run until this is configured.
57
+ # SKILLSCRIPT_SHELL_ALLOWLIST=curl,git,jq,grep
58
+
32
59
 
33
60
  # ─── Network / bind config ─────────────────────────────────────────────
34
61