skillscript-runtime 0.18.6 → 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
 
@@ -41,6 +68,30 @@
41
68
  # SKILLSCRIPT_PORT=8080
42
69
 
43
70
 
71
+ # ─── Runtime tuning ────────────────────────────────────────────────────
72
+
73
+ # Scheduler tick / poll interval in seconds. Default 30. Lower (e.g. 5)
74
+ # for test environments wanting faster trigger pickup; higher for deployments
75
+ # wanting less CPU churn at the cost of cron-edge timing accuracy.
76
+ # SKILLSCRIPT_POLL_INTERVAL_SECONDS=30
77
+
78
+ # Runtime absolute timeout in milliseconds — the built-in fallback when
79
+ # no per-op, skill (`# Timeout:`), or connector default applies. Default
80
+ # 300000 (5 minutes). Adopters tightening prod cancellation windows or
81
+ # raising for skills doing legitimately-long work (large $ llm runs)
82
+ # set this. Operator-grade kill switch; per-skill `# Timeout: N` header
83
+ # is the author-grade knob for the same intent.
84
+ # SKILLSCRIPT_ABSOLUTE_TIMEOUT_MS=300000
85
+
86
+ # Composition recursion depth ceiling. Default 10. The runtime throws
87
+ # `RecursionDepthExceededError` when a skill's `$ execute_skill` /
88
+ # inline-composition chain exceeds this. Adopters with deeply composing
89
+ # skill suites (chaining 8+ levels) bump this; tightening below the
90
+ # default is a guardrail signal that the skill suite is composing
91
+ # too deeply.
92
+ # SKILLSCRIPT_MAX_RECURSION_DEPTH=10
93
+
94
+
44
95
  # ─── Identity propagation (multi-agent hosts only) ─────────────────────
45
96
 
46
97
  # Inbound HTTP header name carrying host-attested caller identity.