Skip to main content

Run it only for livekit or pipecat

SLNG resolves a slng: reference by name at deploy time and needs nothing this command writes: no mirror, no hash, no credential ahead of the deploy itself. Run unmute pull when the same package also compiles to livekit or pipecat, which build and run the tool themselves and so need a real copy of its definition sitting in the package. A package that targets slng alone never needs this command.

Usage

One line per file, with what happened to it. written and unchanged describe the mirror files. pinned means something different for each of the two reference forms. For a scalar reference (slng: check_order), it means the generated tools/check_order.slng.meta.json was written or updated, and the tool file itself is never touched. For the legacy block (slng: {hash: ...}), it means that tool file’s own hash: line was:
The organisation line is not decoration. Two organisations can be reachable from one checkout, provisioned differently, so a listing from one says nothing about the other. unchanged is printed rather than skipped: a pull that fetched and found nothing new looks identical to a pull that did not run, and this is the line that tells them apart.

What it writes

Per hosted tool, beside the tool file: And once per package: The .slng. infix marks a file as mirrored rather than authored, which is what lets one glance answer whether you may edit it. The answer is no: see Hosted tools.

The mirrored module’s header

A code tool’s module gains three lines before the platform’s own first line:
The platform’s own code does not pass Python lint by itself, so without this header a pull would turn a clean build red.

What it never writes

  • A secret value. Only names, only into secrets:. A value never reaches a package file, a generated file, a report, a command line or either output stream.
  • A tool on the platform. The pull reads. It creates, changes and deletes nothing in your organisation.
  • Anything outside the package directory. No cache, no home directory state, no temporary file that outlives the run.
  • A partial mirror. If any tool in the package cannot be fetched, nothing is written at all.

Refusals

Each names the organisation that was read, because the answer depends on it. A name your organisation does not hold. Unmute creates no tool, so this is the end of the road until somebody makes one:
A name that resolves to a curated capability. There is nothing to mirror, and there is already a block that attaches it:
A mirrored file edited by hand. Every offending file is named at once, rather than just the first:
No credential. The one command that needs one says so plainly:

Flags

--force discards hand edits to a mirrored file. The refusal above names it, so the flag is discoverable from the failure itself rather than from the help. --check verifies without writing: it compares every pin against the organisation and reports drift, exiting 1 when anything is stale. It still needs a credential, the same as the rest of the command:
There is no --target flag. A hosted tool is hosted whatever the package compiles to, and this command is about the package rather than about one target’s output.

Where to go next

Hosted tools

The block: what it refuses, what it keeps, and the loop it belongs to.

unmute compile

The next step: writing the compiled projects.