skillscript-runtime 0.20.1 → 0.21.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.
@@ -15,12 +15,55 @@
15
15
  # Values can be quoted ("..." or '...') if they contain spaces.
16
16
 
17
17
 
18
+ # ─── Approval boundary (secured mode) ──────────────────────────────────
19
+
20
+ # Enforce the approval boundary: in secured mode, only a key-SIGNED skill
21
+ # may perform effectful ops ($ / shell / file_* / notify). An unapproved or
22
+ # tampered skill cannot execute a single effect, however it's dispatched
23
+ # (CLI, cron, /event, MCP, composition). Default OFF — the unkeyed
24
+ # convenience posture, where a bare `# Status: Approved` runs. Turn ON for
25
+ # any multi-author or networked deployment.
26
+ # SKILLSCRIPT_SECURED_MODE=true
27
+
28
+ # Operator's Ed25519 approval keypair. First run in secured mode
29
+ # auto-provisions one if the PUBLIC key is absent (private written 0600).
30
+ # Defaults live OUTSIDE SKILLSCRIPT_HOME so a co-resident agent can't read
31
+ # the forging key. HARDENED POSTURE: provision the keypair yourself, give
32
+ # the deployment ONLY the public key (set the pub path, leave the private
33
+ # off-box), and sign operator-side — the runtime verifies with the public
34
+ # key and never needs the private one.
35
+ # SKILLSCRIPT_APPROVAL_KEY_FILE=~/.config/skillscript/approval.key
36
+ # SKILLSCRIPT_APPROVAL_PUBLIC_KEY_FILE=~/.config/skillscript/approval.pub
37
+
38
+ # Filesystem path allowlist for file_read / file_write (the third operator
39
+ # allowlist; mirrors SKILLSCRIPT_SHELL_ALLOWLIST). Default-deny: unset = every
40
+ # file op refused. Comma-separated roots, canonicalized so `..`/symlink can't
41
+ # escape. KEEP YOUR APPROVAL-KEY DIRECTORY OUT OF IT.
42
+ # SKILLSCRIPT_FS_ALLOWLIST=/srv/skillscript/workspace,/var/skillscript/events
43
+
44
+ # Optional shared-secret gate for the dashboard (SPA + /rpc) — network/casual
45
+ # hygiene when binding beyond localhost. Present via `?token=` (browser sets a
46
+ # cookie), the `skillscript_dash` cookie, or `Authorization: Bearer`. Default
47
+ # unset = open (localhost bind is the only gate). NOT an agent-forgery boundary
48
+ # (the dashboard holds no signing key) — that remains key custody.
49
+ # SKILLSCRIPT_DASHBOARD_AUTH_TOKEN=change-me-to-random-hex
50
+
51
+ # In-browser approval. When set (+ secured mode + a readable key),
52
+ # the dashboard offers click-to-Approve: the approver enters this passcode once
53
+ # per browser session to unlock signing (15-min idle TTL), then signs skills
54
+ # with the operator's key. Default unset = dashboard stays review-only (copy
55
+ # the `skillfile approve` command, sign at a terminal). SECURITY: enabling this
56
+ # gives the dashboard process key access — run it operator-side, isolated from
57
+ # the agent (no network path to it; agent can't read this passcode).
58
+ # SKILLSCRIPT_APPROVAL_PASSCODE=change-me
59
+
60
+
18
61
  # ─── Posture / security switches ───────────────────────────────────────
19
62
 
20
63
  # Force every outside-MCP `skill_write` to land Draft regardless of what
21
64
  # the body declares. Closes the agent-self-approval path — adopters
22
65
  # wanting a human approval gate before any skill executes set this true.
23
- # Default false (preserves v0.9.1 self-approval-via-body-declaration).
66
+ # Default false.
24
67
  # SKILLSCRIPT_FORCE_ALWAYS_DRAFT=true
25
68
 
26
69
  # Permit `shell(unsafe=true)` ops (full bash interpretation: pipes, $VAR,
@@ -30,7 +73,7 @@
30
73
  # SKILLSCRIPT_ENABLE_UNSAFE_SHELL=true
31
74
 
32
75
  # 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.
76
+ # Default-deny: when this var is unset, NO `shell()` op will run.
34
77
  # Set to a comma-separated list of binary names; the first token of each
35
78
  # `shell(command="X ...")` body must appear in the list.
36
79
  #
@@ -50,10 +93,9 @@
50
93
  # enumeration is unsound; OS-level execve/seccomp/restricted-PATH is the
51
94
  # proper layer — see docs/adopter-playbook.md).
52
95
  #
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.
96
+ # Discovery: run `skillfile shell-audit` to scan your skill corpus and emit
97
+ # the current set of binaries used. Paste the suggested value here. Skills
98
+ # using shell() will refuse to run until this is configured.
57
99
  # SKILLSCRIPT_SHELL_ALLOWLIST=curl,git,jq,grep
58
100
 
59
101
 
@@ -65,12 +107,12 @@
65
107
  # SKILLSCRIPT_HOST=0.0.0.0
66
108
 
67
109
  # Dashboard / serve HTTP port. Default 7878. Used for the SPA, JSON-RPC
68
- # at /rpc, AND the v0.19.0 event-trigger ingress at /event (they share
110
+ # at /rpc, AND the event-trigger ingress at /event (they share
69
111
  # one HTTP server — no separate event port).
70
112
  # SKILLSCRIPT_PORT=8080
71
113
 
72
114
 
73
- # ─── Event-trigger HTTP ingress (v0.19.0) ──────────────────────────────
115
+ # ─── Event-trigger HTTP ingress ──────────────────────────────
74
116
 
75
117
  # Enable POST /event for external HTTP-triggered skills. Default false —
76
118
  # the route returns 404 when not enabled. Once enabled, external services