skillscript-runtime 0.34.0 → 0.35.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/CHANGELOG.md +15 -0
- package/README.md +5 -4
- package/dist/bootstrap-from-env.d.ts.map +1 -1
- package/dist/bootstrap-from-env.js +2 -0
- package/dist/bootstrap-from-env.js.map +1 -1
- package/dist/bootstrap.d.ts +9 -0
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +4 -0
- package/dist/bootstrap.js.map +1 -1
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/composition.d.ts +4 -0
- package/dist/composition.d.ts.map +1 -1
- package/dist/composition.js +12 -0
- package/dist/composition.js.map +1 -1
- package/dist/connectors/registry.d.ts.map +1 -1
- package/dist/connectors/registry.js +11 -0
- package/dist/connectors/registry.js.map +1 -1
- package/dist/connectors/types.d.ts +36 -0
- package/dist/connectors/types.d.ts.map +1 -1
- package/dist/connectors/types.js.map +1 -1
- package/dist/errors.d.ts +64 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +60 -0
- package/dist/errors.js.map +1 -1
- package/dist/help-content.d.ts +1 -1
- package/dist/help-content.d.ts.map +1 -1
- package/dist/help-content.js +5 -1
- package/dist/help-content.js.map +1 -1
- package/dist/lint.d.ts.map +1 -1
- package/dist/lint.js +38 -0
- package/dist/lint.js.map +1 -1
- package/dist/mcp-server.d.ts +8 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +8 -0
- package/dist/mcp-server.js.map +1 -1
- package/dist/parser.d.ts +11 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +17 -0
- package/dist/parser.js.map +1 -1
- package/dist/runtime-config.d.ts +8 -0
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +8 -0
- package/dist/runtime-config.js.map +1 -1
- package/dist/runtime-env-resolver.d.ts +2 -0
- package/dist/runtime-env-resolver.d.ts.map +1 -1
- package/dist/runtime-env-resolver.js +8 -0
- package/dist/runtime-env-resolver.js.map +1 -1
- package/dist/runtime.d.ts +86 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +296 -73
- package/dist/runtime.js.map +1 -1
- package/dist/scheduler.d.ts +3 -0
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +3 -0
- package/dist/scheduler.js.map +1 -1
- package/dist/trace.d.ts +22 -2
- package/dist/trace.d.ts.map +1 -1
- package/dist/trace.js +7 -1
- package/dist/trace.js.map +1 -1
- package/docs/adopter-playbook.md +20 -0
- package/docs/language-reference.md +20 -1
- package/examples/skillscripts/classify-support-ticket.skill.provenance.json +1 -1
- package/examples/skillscripts/data-store-roundtrip.skill.provenance.json +1 -1
- package/examples/skillscripts/doc-qa-with-citations.skill.provenance.json +1 -1
- package/examples/skillscripts/feedback-sentiment-scan.skill.provenance.json +1 -1
- package/examples/skillscripts/hello-world.skill.provenance.json +1 -1
- package/examples/skillscripts/morning-brief.skill.provenance.json +1 -1
- package/examples/skillscripts/queue-length-monitor.skill.provenance.json +1 -1
- package/examples/skillscripts/service-health-watch.skill.provenance.json +1 -1
- package/examples/skillscripts/skill-store-roundtrip.skill.provenance.json +1 -1
- package/examples/skillscripts/youtrack-morning-sweep.skill.provenance.json +1 -1
- package/package.json +1 -1
- package/scaffold/.env.example +9 -0
package/dist/trace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAQ,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AA+B/C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAC9B,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"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"}
|
package/docs/adopter-playbook.md
CHANGED
|
@@ -52,8 +52,12 @@ AgentConnector — substrate-neutral agent delivery
|
|
|
52
52
|
|
|
53
53
|
McpConnector — external tool dispatch (substrate-neutral wire)
|
|
54
54
|
call(toolName, args, ctx?) "invoke this tool with these kwargs"
|
|
55
|
+
onAbort(budgetMs)? "deadline cut an in-flight call — stop your effect within this budget"
|
|
56
|
+
(only for effectBoundary: "outlives-call" connectors)
|
|
55
57
|
```
|
|
56
58
|
|
|
59
|
+
`ctx.signal` on `call(...)` is an `AbortSignal` the runtime aborts when a deadline (or per-op timeout) cuts the call — forward it to your fetch/RPC to truly cancel. If your effect *outlives* the call (a robot keeps moving after `call()` returns), declare `effectBoundary: "outlives-call"` and implement `onAbort(budgetMs)` for a bounded safety-stop; the runtime refuses to register such a connector without it. Full behavior: [Bounding runs — deadlines & cancellation](#bounding-runs--deadlines--cancellation).
|
|
60
|
+
|
|
57
61
|
What's NOT in the contracts (and is your concern as implementor):
|
|
58
62
|
- Where the data lives (sqlite / your DB / hosted service / vector store)
|
|
59
63
|
- What metadata fields your substrate honors or ignores (kwargs passed via `metadata.<key>` ride through; you choose what to do with them)
|
|
@@ -214,6 +218,7 @@ Security knobs that adopters wiring real substrates should know about:
|
|
|
214
218
|
|
|
215
219
|
- **The approval boundary (secured mode).** `SKILLSCRIPT_SECURED_MODE=true` enforces that only key-signed skills perform effects. Default-deny by design — leave it off only for trusted-author / single-operator setups. Full detail, the approve flow, and key custody: [Approval + secured mode](#approval--secured-mode).
|
|
216
220
|
- **Filesystem path allowlist.** `SKILLSCRIPT_FS_ALLOWLIST` is default-deny — `file_read` / `file_write` refuse every path until you wire roots. See [Filesystem path allowlist](#filesystem-path-allowlist). (Keep your approval-key directory out of it.)
|
|
221
|
+
- **Run deadline ceiling.** `SKILLSCRIPT_MAX_DEADLINE_SECONDS` caps the wall-clock time of *every* run — enforced even for a skill that declares no `# Deadline:`, so an agent author can't evade it by omission. Unset = no ceiling. See [Bounding runs — deadlines & cancellation](#bounding-runs--deadlines--cancellation). Set a small value on a robotic / latency-sensitive host.
|
|
217
222
|
- **Per-connector tool allowlists** — `allowed_tools` on each `connectors.json` MCP connector entry restricts which tools that connector can dispatch. Three-state (`undefined` = allow all, `[]` = allow none, listed = exactly those). Tier-1 `disallowed-tool` lint + runtime defense-in-depth refuse out-of-list dispatch. **`allowed_tools` belongs at the entry top-level**, sibling to `class` and `config` — NOT inside the `config` block. The loader hard-errors on misplacement (placing it inside `config:` would silently allow-all every tool — the worst-case failure mode for a security control). See `docs/configuration.md` §"Named MCP connector instances" for the JSON shape.
|
|
218
223
|
- **Shell-execution discipline** — `shell(command="...")` runs structured-spawn by default (binary on PATH, whitespace-tokenized argv, no bash). `shell(command="...", unsafe=true)` opts into bash interpretation (pipes, `$VAR`, command substitution) and refuses to fire unless the runtime is configured with `enable_unsafe_shell = true` in `config.toml`. Lint flags every `unsafe=true` op tier-2 to keep audit posture visible. See `scaffold/config.toml` for the documented default + `help({topic:"lint-codes"})` for the `unsafe-shell-disabled` rule.
|
|
219
224
|
|
|
@@ -631,6 +636,21 @@ SKILLSCRIPT_FS_ALLOWLIST=/srv/skillscript/workspace,/var/skillscript/events
|
|
|
631
636
|
|
|
632
637
|
TOCTOU note: the check resolves the real path at call time; a symlink swapped between check and open is a residual closed by fd-based opens later. Checking the resolved real path is the standard mitigation shipped today.
|
|
633
638
|
|
|
639
|
+
## Bounding runs — deadlines & cancellation
|
|
640
|
+
|
|
641
|
+
**A skill can declare a `# Deadline: N` (seconds) — a wall-clock budget for the whole run — and the operator can impose a hard ceiling on every run.** This is the time-bounding boundary, alongside the shell / fs / secret boundaries above. It matters most for autonomous fires and for connectors whose effects touch the physical world (a robot, a long external job): "timeout" should mean both *bounded* and *actually stopped*, and here it does.
|
|
642
|
+
|
|
643
|
+
| Operator switch | Controls |
|
|
644
|
+
|---|---|
|
|
645
|
+
| `SKILLSCRIPT_MAX_DEADLINE_SECONDS` | A hard maximum on **every** run, enforced even when a skill declares no `# Deadline:`. A skill's own `# Deadline:` may only make the bound *tighter*, never exceed it. Applies on both the server/MCP path and the `skillfile execute` CLI. Unset = no ceiling. |
|
|
646
|
+
|
|
647
|
+
- **The deadline propagates and can only tighten.** Set once at the root and shared (by *remaining* time) with everything the run composes — a deep `$ execute_skill` gather cannot outlive the root's bound. A child's own `# Deadline:` tightens further; nothing loosens it.
|
|
648
|
+
- **The ceiling is the guard against an untrusted author.** Skills are written by agents. A skill that simply *omits* `# Deadline:` would otherwise run unbounded — so the operator ceiling bounds it regardless. On a latency-sensitive or robotic host, set a small ceiling so no run (or motion) can hang.
|
|
649
|
+
- **Exceeding the deadline is uncatchable.** It terminates the run via `RunDeadlineExceeded`, which op `(fallback:)` trailers and target `else:` blocks do **not** catch — a fallback-laden skill can't cascade to a looks-complete result past the bound. The run returns a **partial** result flagged `deadline_exceeded`.
|
|
650
|
+
- **Cancellation is real, and connectors participate.** A `shell(...)` child is killed by process-group SIGKILL. A `$ connector.tool` dispatch receives an `AbortSignal` on its dispatch `ctx.signal` — forward it to your fetch/RPC and the work genuinely stops (ignore it and it degrades to a race-and-abandon, today's behavior). **If your connector's effect OUTLIVES the call** (a robot keeps moving after `call()` returns), declare `effectBoundary: "outlives-call"` and an `onAbort(budgetMs)` hook: on an in-flight cut the runtime aborts the call, then gives `onAbort` a bounded reserve slice to issue a real safety-stop (halt motion), and the run still returns within the deadline. The registry **refuses to register** an outlives-call connector without `onAbort` — a leak you'd otherwise only find in production.
|
|
651
|
+
- **A cut mid-mutation is logged as uncertain, not failed.** Aborting stops the client, but the request may already have reached the backend — so the runtime records it as `uncertain_effects: [{ ..., reason: "issued, outcome uncertain" }]` rather than claiming success or failure. It surfaces on the `execute_skill` return **and** the durable trace record (`deadline_exceeded` + `uncertain_effects`) — so an autonomous cron/event fire, which has no live caller, still leaves the "a mutation may have landed" signal in the record for an operator to reconcile. Reads are excluded.
|
|
652
|
+
- **Editing a `# Deadline:` re-approves.** The value is in the approval signing hash (unlike `# Tags:`), so changing it — even tightening — invalidates the signature and drops the skill to Draft. The deadline is the safety envelope the approver signed off on.
|
|
653
|
+
|
|
634
654
|
## Secrets
|
|
635
655
|
|
|
636
656
|
**A skill can reference an operator-provisioned secret by name, use it at a sink, and never read it back.** This is how a credential (a bearer token, an API key) reaches a `shell(...)` or `$ connector.tool` call without living in the skill source, the transcript, or a trace.
|
|
@@ -2000,6 +2000,25 @@ Bad input skips the `if`, the default stands, the child never throws — so a pa
|
|
|
2000
2000
|
|
|
2001
2001
|
**Rule 5 — Degrade LOUD, not silent.** A fallback value should be a visible marker ("unavailable", "—", "n/a") — never empty, never a plausible-but-wrong value. A degraded run must be diagnosable: the throw's reason is preserved in `result.fallbacks[].reason`, so a degraded leg stays traceable. Don't silently ship a blank or a fake reading. Clean-degrade beats both a hard abort and a silent lie.
|
|
2002
2002
|
|
|
2003
|
+
## Deadlines & cancellation — # Deadline: bound, uncatchable termination, effect-boundary onAbort, uncertain effects
|
|
2004
|
+
|
|
2005
|
+
A skill can bound its entire run in wall-clock time with the `# Deadline: N` frontmatter header (N seconds; an integer or a `$(VAR)` reference). It is **opt-in** — a skill with no `# Deadline:` keeps ordinary per-op timeout behavior and carries no run-total bound. `# Deadline:` is part of the signing hash: editing it changes the safety envelope an approver signed, so it returns the skill to Draft for re-approval (the same treatment as any behavior-affecting header, and the opposite of approval-neutral headers like `# Status:` / `# Tags:`).
|
|
2006
|
+
|
|
2007
|
+
**One propagating bound.** The deadline resolves once, at the root run, to an absolute wall-clock instant. It propagates unchanged into composed child skills (`execute_skill`): a child inherits the parent's *remaining* budget and may only **tighten** it — its own `# Deadline:` is clamped to `min(inherited remaining, child budget)`, never loosening the root bound. A deep composition tree is therefore bounded by the root deadline as a whole; the total cannot exceed it regardless of nesting depth.
|
|
2008
|
+
|
|
2009
|
+
**Per-op interaction.** Each op's effective timeout is `min(per-op # Timeout:, remaining-to-deadline)`. A per-op `# Timeout:` survives as a tighter *local* bound; the deadline is the ceiling above it. An op that would dispatch with no time left fails fast before dispatching rather than starting work it cannot finish.
|
|
2010
|
+
|
|
2011
|
+
**Uncatchable termination.** When the deadline is reached the run raises a fatal `RunDeadlineExceeded` that is **not catchable** by op-level `(fallback:)` or target `else:` — it bypasses both, terminates the run, and returns the partial results gathered so far (emissions and effects) alongside a `deadlineExceeded` marker and the uncertain-effects log. This is deliberate. A *catchable* deadline would let a fallback-laden skill cascade every remaining op into instant-fail-then-fallback and hand back a result that *looks* complete but ran past the bound. Uncatchable is what makes "bounded to T" literally true: at the deadline, the run stops.
|
|
2012
|
+
|
|
2013
|
+
**Cancellation — keyed on the effect boundary.** When an op is cut at the deadline the runtime aborts the in-flight call. What that actually achieves is a property the connector declares — its **effect boundary**:
|
|
2014
|
+
|
|
2015
|
+
- **Call-bounded** (HTTP request/response, id-correlated RPC — the common case): aborting the call ends the effect (the socket closes, or a late correlated reply is dropped). Self-cleaning; nothing else to do.
|
|
2016
|
+
- **Outlives-call** (a physical actuator, a spawned or async job, an open stream/session, a held lease): aborting the *client* call does not stop the underlying effect. Such a connector must supply a bounded `onAbort(budgetMs)` hook — a compensating action (for example, a safety-stop on a physical device) that the runtime invokes within a small reserved cleanup budget before dropping the op. The reserve is taken only for outlives-call ops, so call-bounded ops pay nothing for it. A connector that declares outlives-call effects but provides no `onAbort` is **refused at registration**: an out-of-band effect that cannot be cancelled must not be wired.
|
|
2017
|
+
|
|
2018
|
+
`onAbort` is a **safety-stop, not a rollback**. It halts a runaway out-of-band effect; it does not undo what already happened. A *mutating* op cut mid-flight is therefore recorded in the run's **uncertain-effects** log as "issued, outcome uncertain" — never reported as cleanly cancelled. The caller (or, for an autonomous run, the durable trace) can see that the effect may have partially landed. Read-only ops carry no such uncertainty and are excluded.
|
|
2019
|
+
|
|
2020
|
+
**Guidance.** A skill that dispatches any effectful op while declaring no `# Deadline:` is unbounded at the run level; a lint (`unbounded-no-deadline`) advises adding one. Give effectful skills an explicit deadline — especially anything that drives a physical device or a long-running external job. Be aware that a tight deadline combined with an outlives-call op means that op will not *start* inside the final cleanup-reserve window: it fails fast rather than begin an effect it could not guarantee cleaning up in time.
|
|
2021
|
+
|
|
2003
2022
|
## Composition — skills calling skills
|
|
2004
2023
|
|
|
2005
2024
|
Skillscript supports skill-to-skill composition via the runtime's public composition primitive. A parent skill invokes a child skill, optionally passes inputs, optionally binds the child's result. The runtime threads variable state, propagates errors, and enforces a recursion-depth guard.
|
|
@@ -2595,5 +2614,5 @@ When any of these primitives ship, the relevant grammar moves into its canonical
|
|
|
2595
2614
|
|
|
2596
2615
|
---
|
|
2597
2616
|
|
|
2598
|
-
*Rendered from `skillscript/skillscript-language-reference` — 2026-07-
|
|
2617
|
+
*Rendered from `skillscript/skillscript-language-reference` — 2026-07-18 14:42 EDT*
|
|
2599
2618
|
*Source of truth: AMP (`amp_render_document("skillscript/skillscript-language-reference")`)*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillscript-runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"description": "Runtime, compiler, lint, CLI, and dashboard for Skillscript — a small declarative language for authoring agent workflows.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Scott Shwarts <scotts@pobox.com>",
|
package/scaffold/.env.example
CHANGED
|
@@ -101,6 +101,15 @@
|
|
|
101
101
|
# default applies. Default 300000 (5 min).
|
|
102
102
|
# SKILLSCRIPT_ABSOLUTE_TIMEOUT_MS=300000
|
|
103
103
|
|
|
104
|
+
# Operator run-deadline CEILING, seconds — a hard maximum on EVERY run
|
|
105
|
+
# (execute_skill + trigger-fired), enforced even when a skill declares no
|
|
106
|
+
# `# Deadline:`. A skill's own `# Deadline:` can only make its bound tighter,
|
|
107
|
+
# never exceed this. The guard against an untrusted (agent) skill author evading
|
|
108
|
+
# the time bound. Unset = no ceiling (a skill without `# Deadline:` is unbounded).
|
|
109
|
+
# Set it to your deployment's tolerance — e.g. a latency-sensitive / robotic host
|
|
110
|
+
# wants a small value so no run (or motion) can hang.
|
|
111
|
+
# SKILLSCRIPT_MAX_DEADLINE_SECONDS=120
|
|
112
|
+
|
|
104
113
|
# Max composition depth before the runtime throws. Default 10. Raise for
|
|
105
114
|
# deeply-composing skill suites.
|
|
106
115
|
# SKILLSCRIPT_MAX_RECURSION_DEPTH=10
|