Documentation channel: current development main at compiler checkpoint 1d7e15e. The latest tagged release is v0.0.3; pages identify APIs that are not yet released.
API discovery schema
strut api --json [query] exposes the same callable registry used by semantic analysis, lowering, runtime-component selection, and editor features. It is intended for agents and other tooling that need language knowledge without scraping documentation.
The website's llms.txt links the current major API pages and records the current-main versus release boundary. Use the compiler's JSON output for authoritative signatures and this website for lifecycle, policy, and platform semantics.
Versioning
The top-level schema_version is currently 1. New optional fields may be added within version 1. Removing a field, changing its type, or changing its meaning requires a new schema version. language_version identifies the Strut release that produced the catalog.
Top-level fields
| Field | Meaning |
|---|---|
schema_version | Integer contract version for this JSON document. |
language_version | Compiler/language version. |
query | The applied filter, or an empty string for the complete catalog. |
functions, methods | Matching free callables and owner-qualified methods. |
standard_modules | Modules recognized by the compiler. |
cli_commands | Stable command discovery names. |
language_notes | Small syntax/compatibility facts useful to generated code. |
Callable fields
Each callable has name, category, module, owner, summary, a convenience signature, all signatures, checked_errors, runtime_components, and native_dependencies. An empty owner denotes a free function. Signatures use canonical Strut type spelling.
Filtering
strut api http
strut api --json sqlite
strut api --json filesystem
strut api --json checked-errors
Matching is case-insensitive across names, categories, modules, owners, and summaries. The special checked-errors filter selects callables with checked-error contracts.
Example
{
"schema_version": 1,
"language_version": "0.0.3",
"query": "sqlite",
"functions": [{
"name": "sqlite_open",
"category": "function",
"module": "sqlite",
"owner": "",
"signature": "sqlite_open(string path) -> sqlite_db",
"signatures": ["sqlite_open(string path) -> sqlite_db"],
"checked_errors": ["SqliteError"],
"runtime_components": ["sqlite"],
"native_dependencies": ["SQLite3"]
}],
"methods": []
}
strut project --json and strut packages --json follow the same convention: integer schema_version, stable snake-case field names, JSON on standard output, diagnostics on standard error, and meaningful exit status. Project metadata includes lock/cache health and direct/transitive counts. Package metadata includes the request, exact version/revision/checksum, source identity, direct status, verified cache state, and offline availability.
