diff --git a/infra/README.md b/infra/README.md
index 5793de4b..cae7efb6 100644
--- a/infra/README.md
+++ b/infra/README.md
@@ -179,7 +179,7 @@ them and trusts the KeyValueStore lookup to miss for anything that is not one.
| `/en/py/latest` | 3 | 301 to `/en/py/latest/`, never the KVS default — `parts[3]` is truthy |
| `/en/py/v0.46.2` | 3 (`2` is not an asset extension) | 301 to `/en/py/v0.46.2/` |
| `/en/dotnet/stable/api/libtmux.client` | 3 (`client` is not an asset extension) | 301 with a trailing slash |
-| `/en/reference/py/objects.inv` | none (`inv` is an asset extension) | passes through — this is how an external Sphinx project resolves intersphinx into this site |
+| `/en/py/stable/reference/objects.inv` | none (`inv` is an asset extension) | passes through — this is how an external Sphinx project resolves intersphinx into this site |
| `/en/py/stable/api/.buildinfo` | none (`buildinfo` is an asset extension) | passes through; a leading dot is a separator like any other |
| `/en/pagefind/pagefind.js` | none (`js` is an asset extension) | passes through |
| `/en/versions.json` | none (dot excludes rule 1, `json` is an asset extension) | passes through |
diff --git a/notes/gp-sphinx-parity.md b/notes/gp-sphinx-parity.md
index 52956f71..0e35942a 100644
--- a/notes/gp-sphinx-parity.md
+++ b/notes/gp-sphinx-parity.md
@@ -1,6 +1,7 @@
# Where the reference differs from gp-sphinx, and why
-The eight-port reference at `/reference/` is meant to be visually
+The reference each port publishes at `/
Read the setup guide before choosing tool access. - The language API reference covers embedding and implementation types.
+ The language API reference covers embedding and implementation types. {port === 'cxx' &&This is the POSIX catalog. The Windows preview exposes a smaller read-only surface; see platform limits.
}Download the protocol catalog as JSON.
{p.name} documentation - {p.name} API reference + {p.name} API reference
)} {snippets?.[p.slug] && ( diff --git a/site/src/content/docs/ports/cxx/mcp/index.md b/site/src/content/docs/ports/cxx/mcp/index.md index 25c12a5d..b0662d98 100644 --- a/site/src/content/docs/ports/cxx/mcp/index.md +++ b/site/src/content/docs/ports/cxx/mcp/index.md @@ -23,7 +23,7 @@ hierarchy discovery only. - [Guides](./guides/) build the executable and select an endpoint. - [Topics](./topics/) explain platform coverage, identifiers, and failures. - [Examples](./examples/) call a tool, then explore server internals. -- [Language API](./api/) documents embedding and implementation types. +- [Language API](./reference/) documents embedding and implementation types. The server offers tools only. It does not offer resources, prompts, subscriptions, or configurable toolsets. diff --git a/site/src/content/docs/ports/cxx/mcp/api.md b/site/src/content/docs/ports/cxx/mcp/reference.md similarity index 95% rename from site/src/content/docs/ports/cxx/mcp/api.md rename to site/src/content/docs/ports/cxx/mcp/reference.md index 07bb446e..82c42ce9 100644 --- a/site/src/content/docs/ports/cxx/mcp/api.md +++ b/site/src/content/docs/ports/cxx/mcp/reference.md @@ -41,5 +41,5 @@ JSON text. Strict argument validation precedes tmux execution. [Protocol tests](https://github.com/libtmux/libtmux-cxx/blob/c7f1146d2ebd7a8323d9f9814517dc3cdf86b4ee/apps/mcp/tests/protocol_test.cpp) cover supported lifecycle revisions and result shapes. -[Workspace builder API](../../workspace/internals/api/) documents a separate source +[Workspace builder API](../../workspace/reference/) documents a separate source consumer; it is not a workspace operation in this MCP catalog. diff --git a/site/src/content/docs/ports/cxx/workspace/index.md b/site/src/content/docs/ports/cxx/workspace/index.md index 79342d41..0ca18c44 100644 --- a/site/src/content/docs/ports/cxx/workspace/index.md +++ b/site/src/content/docs/ports/cxx/workspace/index.md @@ -27,4 +27,4 @@ The [Internals](./internals/) section documents the current builder: - [Guides](./internals/guides/) show application setup and builder calls. - [Topics](./internals/topics/) explain supported configuration and behavior. - [Examples](./internals/examples/) exercise the library or source consumer. -- [API](./internals/api/) covers the builder and configuration interfaces. +- [API](./reference/) covers the builder and configuration interfaces. diff --git a/site/src/content/docs/ports/cxx/workspace/internals/index.md b/site/src/content/docs/ports/cxx/workspace/internals/index.md index 487bed0e..d1821c94 100644 --- a/site/src/content/docs/ports/cxx/workspace/internals/index.md +++ b/site/src/content/docs/ports/cxx/workspace/internals/index.md @@ -26,7 +26,7 @@ builder tests; they do not load workspace files as a user application. - [Guides](./guides/) show builder setup and application code. - [Topics](./topics/) explain configuration, behavior, and failures. - [Examples](./examples/) exercise the builder through the language API. -- [API](./api/) links the configuration and construction interfaces. +- [API](../reference/) links the configuration and construction interfaces. ## Implementation scope diff --git a/site/src/content/docs/ports/cxx/workspace/internals/api.md b/site/src/content/docs/ports/cxx/workspace/reference.md similarity index 96% rename from site/src/content/docs/ports/cxx/workspace/internals/api.md rename to site/src/content/docs/ports/cxx/workspace/reference.md index 6e19dff9..06685bb5 100644 --- a/site/src/content/docs/ports/cxx/workspace/internals/api.md +++ b/site/src/content/docs/ports/cxx/workspace/reference.md @@ -43,7 +43,7 @@ to parse YAML. ## Core operations The returned session is a core libtmux value. Use the -[C++ core reference](/reference/cxx/) for subsequent inspection and mutation. +[C++ core reference](../../reference/) for subsequent inspection and mutation. Consumer source contracts remain the authority for the workspace types. [Workspace header](https://github.com/libtmux/libtmux-cxx/blob/c7f1146d2ebd7a8323d9f9814517dc3cdf86b4ee/examples/workspace/include/libtmux_consumers/workspace.hpp); [YAML header](https://github.com/libtmux/libtmux-cxx/blob/c7f1146d2ebd7a8323d9f9814517dc3cdf86b4ee/examples/workspace/include/libtmux_consumers/tmuxp.hpp). diff --git a/site/src/content/docs/ports/dotnet/mcp/index.md b/site/src/content/docs/ports/dotnet/mcp/index.md index 882425ee..b695a17f 100644 --- a/site/src/content/docs/ports/dotnet/mcp/index.md +++ b/site/src/content/docs/ports/dotnet/mcp/index.md @@ -23,7 +23,7 @@ Its registered operations use the `tmux_` prefix, including - [Guides](./guides/) install the tool and choose a socket. - [Topics](./topics/) explain tiers, result limits, jobs, and subscriptions. - [Examples](./examples/) call a tool, then explore server internals. -- [Language API](./api/) documents embedding and implementation types. +- [Language API](./reference/) documents embedding and implementation types. The default surface tier is `mutating`. Dedicated removal requires `destructive`; `readonly` omits writing tools. diff --git a/site/src/content/docs/ports/dotnet/mcp/api.md b/site/src/content/docs/ports/dotnet/mcp/reference.md similarity index 97% rename from site/src/content/docs/ports/dotnet/mcp/api.md rename to site/src/content/docs/ports/dotnet/mcp/reference.md index 2c82df99..ca8e995b 100644 --- a/site/src/content/docs/ports/dotnet/mcp/api.md +++ b/site/src/content/docs/ports/dotnet/mcp/reference.md @@ -43,4 +43,4 @@ and pane content. Prompts include `tmux_run_and_report`, [Protocol behavior](https://github.com/libtmux/libtmux-dotnet/blob/6656a563ec9e07ab52e0c3ac96f7704fc94cc0c0/docs/mcp/README.md). For a published configuration library, use -[Workspace builder API](../../workspace/internals/api/). +[Workspace builder API](../../workspace/reference/). diff --git a/site/src/content/docs/ports/dotnet/workspace/index.md b/site/src/content/docs/ports/dotnet/workspace/index.md index 0276bfdc..707c1e24 100644 --- a/site/src/content/docs/ports/dotnet/workspace/index.md +++ b/site/src/content/docs/ports/dotnet/workspace/index.md @@ -27,4 +27,4 @@ The [Internals](./internals/) section documents the current builder: - [Guides](./internals/guides/) show application setup and builder calls. - [Topics](./internals/topics/) explain supported configuration and behavior. - [Examples](./internals/examples/) exercise the library or source consumer. -- [API](./internals/api/) covers the builder and configuration interfaces. +- [API](./reference/) covers the builder and configuration interfaces. diff --git a/site/src/content/docs/ports/dotnet/workspace/internals/index.md b/site/src/content/docs/ports/dotnet/workspace/internals/index.md index 8a2ddc45..f6e763c3 100644 --- a/site/src/content/docs/ports/dotnet/workspace/internals/index.md +++ b/site/src/content/docs/ports/dotnet/workspace/internals/index.md @@ -26,7 +26,7 @@ command-line handling, attachment, and server lifetime. - [Guides](./guides/) show builder setup and application code. - [Topics](./topics/) explain configuration, behavior, and failures. - [Examples](./examples/) exercise the builder through the language API. -- [API](./api/) links the configuration and construction interfaces. +- [API](../reference/) links the configuration and construction interfaces. ## Implementation scope diff --git a/site/src/content/docs/ports/dotnet/workspace/internals/api.md b/site/src/content/docs/ports/dotnet/workspace/reference.md similarity index 80% rename from site/src/content/docs/ports/dotnet/workspace/internals/api.md rename to site/src/content/docs/ports/dotnet/workspace/reference.md index 1932d4d5..cf2c28e0 100644 --- a/site/src/content/docs/ports/dotnet/workspace/internals/api.md +++ b/site/src/content/docs/ports/dotnet/workspace/reference.md @@ -15,16 +15,16 @@ that uses a caller-supplied LibTmux `Server`. ## Configuration -[`WorkspaceFile`](/reference/dotnet/libtmux-workspace-workspacefile/) parses +[`WorkspaceFile`](./libtmux-workspace-workspacefile/) parses YAML and holds the session description. `WorkspaceWindow` and `WorkspacePane` hold nested configuration. `WorkspaceFormatException` identifies unsupported or invalid configuration. ## Builder options -[`WorkspaceBuilder`](/reference/dotnet/libtmux-workspace-workspacebuilder/) +[`WorkspaceBuilder`](./libtmux-workspace-workspacebuilder/) accepts a server, an optional positive readiness timeout, and a -[`PaneReadiness`](/reference/dotnet/libtmux-workspace-panereadiness/) policy. +[`PaneReadiness`](./libtmux-workspace-panereadiness/) policy. Its `BuildAsync` accepts the configuration and an optional cancellation token. The default timeout is ten seconds. `Auto`, `Always`, and `Never` select which @@ -33,11 +33,11 @@ heuristic and its limitations. ## Results and failures -[`WorkspaceResult`](/reference/dotnet/libtmux-workspace-workspaceresult/) +[`WorkspaceResult`](./libtmux-workspace-workspaceresult/) contains the created session, windows, and rejected layouts. A rejected layout does not discard its window. -[`WorkspaceBuildException`](/reference/dotnet/libtmux-workspace-workspacebuildexception/) +[`WorkspaceBuildException`](./libtmux-workspace-workspacebuildexception/) keeps a `PartialResult` when state could be materialized before failure. It can be null when no such result could be read. Inspect live tmux state before retrying; a missing result does not prove that no command reached tmux. diff --git a/site/src/content/docs/ports/go/mcp/index.md b/site/src/content/docs/ports/go/mcp/index.md index 7cd85f8f..9f04eaf6 100644 --- a/site/src/content/docs/ports/go/mcp/index.md +++ b/site/src/content/docs/ports/go/mcp/index.md @@ -25,7 +25,7 @@ capabilities. - [Guides](./guides/) install the command and diagnose its connection. - [Topics](./topics/) explain capabilities, operation ceilings, and jobs. - [Examples](./examples/) call a tool, then explore server internals. -- [Language API](./api/) documents embedding and implementation types. +- [Language API](./reference/) documents embedding and implementation types. The server includes resources, subscriptions, prompts, and a `build_workspace` tool backed by the diff --git a/site/src/content/docs/ports/go/mcp/api.md b/site/src/content/docs/ports/go/mcp/reference.md similarity index 96% rename from site/src/content/docs/ports/go/mcp/api.md rename to site/src/content/docs/ports/go/mcp/reference.md index f5478a86..fca2c265 100644 --- a/site/src/content/docs/ports/go/mcp/api.md +++ b/site/src/content/docs/ports/go/mcp/reference.md @@ -38,7 +38,7 @@ and the operation ceiling filter both listing and invocation. Resources expose metadata and content with their corresponding capability gates. Prompts provide workflow recipes. `build_workspace` uses the -separate [workspace module](../../workspace/internals/api/). +separate [workspace module](../../workspace/reference/). [Server registration](https://github.com/libtmux/libtmux-go/blob/5f808882015a975a65acc7f9da5b3ff0d5cbdc91/mcp/server.go) and [agent example](../examples/) connect the language and protocol APIs. diff --git a/site/src/content/docs/ports/go/workspace/index.md b/site/src/content/docs/ports/go/workspace/index.md index 28d8bd6e..bb5d1d77 100644 --- a/site/src/content/docs/ports/go/workspace/index.md +++ b/site/src/content/docs/ports/go/workspace/index.md @@ -27,4 +27,4 @@ The [Internals](./internals/) section documents the current builder: - [Guides](./internals/guides/) show application setup and builder calls. - [Topics](./internals/topics/) explain supported configuration and behavior. - [Examples](./internals/examples/) exercise the library or source consumer. -- [API](./internals/api/) covers the builder and configuration interfaces. +- [API](./reference/) covers the builder and configuration interfaces. diff --git a/site/src/content/docs/ports/go/workspace/internals/index.md b/site/src/content/docs/ports/go/workspace/internals/index.md index 85962ce8..19cd95c2 100644 --- a/site/src/content/docs/ports/go/workspace/internals/index.md +++ b/site/src/content/docs/ports/go/workspace/internals/index.md @@ -26,7 +26,7 @@ reading, deadlines, command-line handling, and attachment. - [Guides](./guides/) show builder setup and application code. - [Topics](./topics/) explain configuration, behavior, and failures. - [Examples](./examples/) exercise the builder through the language API. -- [API](./api/) links the configuration and construction interfaces. +- [API](../reference/) links the configuration and construction interfaces. ## Implementation scope diff --git a/site/src/content/docs/ports/go/workspace/internals/api.md b/site/src/content/docs/ports/go/workspace/reference.md similarity index 76% rename from site/src/content/docs/ports/go/workspace/internals/api.md rename to site/src/content/docs/ports/go/workspace/reference.md index b6366c2c..0fc0c83a 100644 --- a/site/src/content/docs/ports/go/workspace/internals/api.md +++ b/site/src/content/docs/ports/go/workspace/reference.md @@ -16,23 +16,23 @@ and cancellation. ## Parse configuration -[`Parse`](/reference/go/workspace-parse/) reads YAML into a -[`Workspace`](/reference/go/workspace-workspace/). Its errors match +[`Parse`](./workspace-parse/) reads YAML into a +[`Workspace`](./workspace-workspace/). Its errors match `ErrInvalidWorkspace`. Inspect the individual diagnostics to locate unknown keys or invalid values. -[`Window`](/reference/go/workspace-window/), -[`Pane`](/reference/go/workspace-pane/), and -[`Command`](/reference/go/workspace-command/) let applications construct the +[`Window`](./workspace-window/), +[`Pane`](./workspace-pane/), and +[`Command`](./workspace-command/) let applications construct the same data in Go. `Bool` preserves tmuxp's supported boolean spellings. ## Build a session -[`Build`](/reference/go/workspace-build/) creates the initial session and owns +[`Build`](./workspace-build/) creates the initial session and owns a temporary control connection for the duration of construction. It returns a session and an error; a non-nil error can accompany a partial session. -[`BuildInto`](/reference/go/workspace-buildinto/) populates a supplied session +[`BuildInto`](./workspace-buildinto/) populates a supplied session and preserves the caller's connection ownership. `Workspace.InitialSessionRequest` produces the initial request for that workflow. diff --git a/site/src/content/docs/ports/java/mcp/index.md b/site/src/content/docs/ports/java/mcp/index.md index 29db25b8..6cf5d442 100644 --- a/site/src/content/docs/ports/java/mcp/index.md +++ b/site/src/content/docs/ports/java/mcp/index.md @@ -24,7 +24,7 @@ toolsets at startup. It serves MCP over stdin and stdout. - [Guides](./guides/) build the launcher and connect a client. - [Topics](./topics/) explain toolsets, input preflight, and wait semantics. - [Examples](./examples/) call a tool, then explore server internals. -- [Language API](./api/) documents embedding and implementation types. +- [Language API](./reference/) documents embedding and implementation types. The only MCP resource is the static `tmux://capabilities` report. The server does not register workflow prompts or dynamic resource diff --git a/site/src/content/docs/ports/java/mcp/api.md b/site/src/content/docs/ports/java/mcp/reference.md similarity index 96% rename from site/src/content/docs/ports/java/mcp/api.md rename to site/src/content/docs/ports/java/mcp/reference.md index e5a10263..37dc816d 100644 --- a/site/src/content/docs/ports/java/mcp/api.md +++ b/site/src/content/docs/ports/java/mcp/reference.md @@ -41,6 +41,6 @@ It reports tool selection, connection provenance, and capability declarations. The server does not register prompts or dynamic hierarchy subscriptions. -Use the [Workspace builder API](../../workspace/internals/api/) for declarative +Use the [Workspace builder API](../../workspace/reference/) for declarative configuration. It is a separate Java library and has no corresponding workspace-file MCP route. diff --git a/site/src/content/docs/ports/java/workspace/index.md b/site/src/content/docs/ports/java/workspace/index.md index 9eb7e273..1e3c2e71 100644 --- a/site/src/content/docs/ports/java/workspace/index.md +++ b/site/src/content/docs/ports/java/workspace/index.md @@ -27,4 +27,4 @@ The [Internals](./internals/) section documents the current builder: - [Guides](./internals/guides/) show application setup and builder calls. - [Topics](./internals/topics/) explain supported configuration and behavior. - [Examples](./internals/examples/) exercise the library or source consumer. -- [API](./internals/api/) covers the builder and configuration interfaces. +- [API](./reference/) covers the builder and configuration interfaces. diff --git a/site/src/content/docs/ports/java/workspace/internals/examples.md b/site/src/content/docs/ports/java/workspace/internals/examples.md index 0f93a172..904742bb 100644 --- a/site/src/content/docs/ports/java/workspace/internals/examples.md +++ b/site/src/content/docs/ports/java/workspace/internals/examples.md @@ -18,7 +18,7 @@ fences and runs them against real tmux. Within an application that already has a `Server`, import `Workspace` and `WorkspaceBuilder` from [`io.github.libtmux.workspace`](https://github.com/libtmux/libtmux-java/tree/4f057d367a25dee818d70876fa283fc503a3a7eb/libtmux-workspace/src/main/java/io/github/libtmux/workspace), and `Session` from -[`io.github.libtmux`](/reference/java/). This excerpt uses the same configuration as the module's +[`io.github.libtmux`](../../../reference/). This excerpt uses the same configuration as the module's result example: ```java diff --git a/site/src/content/docs/ports/java/workspace/internals/index.md b/site/src/content/docs/ports/java/workspace/internals/index.md index 387b4c18..0272278a 100644 --- a/site/src/content/docs/ports/java/workspace/internals/index.md +++ b/site/src/content/docs/ports/java/workspace/internals/index.md @@ -26,7 +26,7 @@ command-line handling, attachment, and the server connection. - [Guides](./guides/) show builder setup and application code. - [Topics](./topics/) explain configuration, behavior, and failures. - [Examples](./examples/) exercise the builder through the language API. -- [API](./api/) links the configuration and construction interfaces. +- [API](../reference/) links the configuration and construction interfaces. ## Implementation scope diff --git a/site/src/content/docs/ports/java/workspace/internals/api.md b/site/src/content/docs/ports/java/workspace/reference.md similarity index 84% rename from site/src/content/docs/ports/java/workspace/internals/api.md rename to site/src/content/docs/ports/java/workspace/reference.md index 069fc4d6..2ab7a5bf 100644 --- a/site/src/content/docs/ports/java/workspace/internals/api.md +++ b/site/src/content/docs/ports/java/workspace/reference.md @@ -16,7 +16,7 @@ before building through a core `Server`. ## Builder facade -[`WorkspaceBuilder`](/reference/java/io-github-libtmux-workspace-workspacebuilder-workspacebuilder/) +[`WorkspaceBuilder`](./io-github-libtmux-workspace-workspacebuilder-workspacebuilder/) provides three static entry points: - `read(Path)` reads a YAML file and wraps I/O errors in `UncheckedIOException`. @@ -28,11 +28,11 @@ server's support for the requested layout. ## Configuration records -[`Workspace`](/reference/java/io-github-libtmux-workspace-workspace-workspace/) +[`Workspace`](./io-github-libtmux-workspace-workspace-workspace/) holds the session name and ordered windows. -[`WindowSpec`](/reference/java/io-github-libtmux-workspace-windowspec-windowspec/) +[`WindowSpec`](./io-github-libtmux-workspace-windowspec-windowspec/) holds the name, optional layout, and panes. -[`PaneSpec`](/reference/java/io-github-libtmux-workspace-panespec-panespec/) +[`PaneSpec`](./io-github-libtmux-workspace-panespec-panespec/) holds the ordered shell commands. These records copy their lists so later changes to an input list do not alter diff --git a/site/src/content/docs/ports/py/mcp/index.md b/site/src/content/docs/ports/py/mcp/index.md index 141beb59..1e0dbea3 100644 --- a/site/src/content/docs/ports/py/mcp/index.md +++ b/site/src/content/docs/ports/py/mcp/index.md @@ -23,7 +23,7 @@ and `execute`; deletion tools require an explicit selection. - [Guides](./guides/) connect a client and select a tmux socket. - [Topics](./topics/) explain toolsets, trust, waiting, and caller context. - [Examples](./examples/) call a tool, then explore server internals. -- [Language API](./api/) documents embedding and implementation types. +- [Language API](./reference/) documents embedding and implementation types. For declarative session configuration, use the [Workspace Manager](../workspace/), provided by the separate `tmuxp` diff --git a/site/src/content/docs/ports/py/mcp/api.md b/site/src/content/docs/ports/py/mcp/reference.md similarity index 95% rename from site/src/content/docs/ports/py/mcp/api.md rename to site/src/content/docs/ports/py/mcp/reference.md index 2c23ecbd..b931f6bb 100644 --- a/site/src/content/docs/ports/py/mcp/api.md +++ b/site/src/content/docs/ports/py/mcp/reference.md @@ -42,5 +42,5 @@ their existence does not make them separate MCP tools. - [Registration source](https://github.com/tmux-python/libtmux-mcp/blob/v0.1.0a22/src/libtmux_mcp/server.py) Use [Examples](../examples/) to inspect the protocol with an in-process -client. Use the [Workspace builder API](../../workspace/internals/api/) for tmuxp +client. Use the [Workspace builder API](../../workspace/reference/) for tmuxp configuration and builders. diff --git a/site/src/content/docs/ports/py/workspace/internals/index.md b/site/src/content/docs/ports/py/workspace/internals/index.md index fe171429..903af9a1 100644 --- a/site/src/content/docs/ports/py/workspace/internals/index.md +++ b/site/src/content/docs/ports/py/workspace/internals/index.md @@ -24,8 +24,8 @@ attachment or client switching. - [Topics](./topics/) explain the loader pipeline and builder extension points. - [Examples](./examples/) show expansion and building on an isolated server. -- [API](./api/) links the internal loading, building, and freezing interfaces. +- [API](../reference/) links the internal loading, building, and freezing interfaces. The upstream [Internals documentation](https://tmuxp.git-pull.com/internals/) contains the full architecture and module reference. Use the -[libtmux Python API](/reference/py/) for general tmux programming. +[libtmux Python API](../../reference/) for general tmux programming. diff --git a/site/src/content/docs/ports/py/workspace/internals/topics.md b/site/src/content/docs/ports/py/workspace/internals/topics.md index 5a849391..eddc6e5b 100644 --- a/site/src/content/docs/ports/py/workspace/internals/topics.md +++ b/site/src/content/docs/ports/py/workspace/internals/topics.md @@ -34,6 +34,6 @@ build does not have universal transactional rollback. The CLI owns its existing-session prompts and the attachment or client-switching workflow. See the upstream [custom builder guide](https://tmuxp.git-pull.com/topics/custom-workspace-builders/) -for extension configuration and the [API](../api/) for interface contracts. +for extension configuration and the [API](../../reference/) for interface contracts. [Configuration loader](https://github.com/tmux-python/tmuxp/blob/618b398acc05506d3c682906c36cdeb29dcfa1ff/src/tmuxp/workspace/loader.py); [Classic builder](https://github.com/tmux-python/tmuxp/blob/618b398acc05506d3c682906c36cdeb29dcfa1ff/src/tmuxp/workspace/builder/classic.py). diff --git a/site/src/content/docs/ports/py/workspace/internals/api.md b/site/src/content/docs/ports/py/workspace/reference.md similarity index 100% rename from site/src/content/docs/ports/py/workspace/internals/api.md rename to site/src/content/docs/ports/py/workspace/reference.md diff --git a/site/src/content/docs/ports/rs/mcp/index.md b/site/src/content/docs/ports/rs/mcp/index.md index d76e4a8a..bfca5808 100644 --- a/site/src/content/docs/ports/rs/mcp/index.md +++ b/site/src/content/docs/ports/rs/mcp/index.md @@ -23,7 +23,7 @@ includes shell commands and terminal input. - [Guides](./guides/) install the executable and choose a socket. - [Topics](./topics/) explain tiers, live-stream effects, and job lifetimes. - [Examples](./examples/) call a tool, then explore server internals. -- [Language API](./api/) documents embedding and implementation types. +- [Language API](./reference/) documents embedding and implementation types. The Rust [Workspace Manager](../workspace/) is a separate crate. MCP's `run_plan` executes typed operations; it is not the workspace crate's diff --git a/site/src/content/docs/ports/rs/mcp/api.md b/site/src/content/docs/ports/rs/mcp/reference.md similarity index 95% rename from site/src/content/docs/ports/rs/mcp/api.md rename to site/src/content/docs/ports/rs/mcp/reference.md index 671a147a..d3917d5f 100644 --- a/site/src/content/docs/ports/rs/mcp/api.md +++ b/site/src/content/docs/ports/rs/mcp/reference.md @@ -38,7 +38,7 @@ for individual objects and pane content. Prompts depend on the selected tier. MCP `run_plan` uses the core operation-plan model. -[Workspace builder API](../../workspace/internals/api/) describes the separate +[Workspace builder API](../../workspace/reference/) describes the separate workspace parser, builder, and live-session export. [Crate source and examples](https://github.com/libtmux/libtmux-rs/tree/9331cdf556ea7a1f2589e9c3e6cece6ccdc7765c/crates/tmux-mcp). diff --git a/site/src/content/docs/ports/rs/workspace/index.md b/site/src/content/docs/ports/rs/workspace/index.md index 4136cd2a..db15b036 100644 --- a/site/src/content/docs/ports/rs/workspace/index.md +++ b/site/src/content/docs/ports/rs/workspace/index.md @@ -27,4 +27,4 @@ The [Internals](./internals/) section documents the current builder: - [Guides](./internals/guides/) show application setup and builder calls. - [Topics](./internals/topics/) explain supported configuration and behavior. - [Examples](./internals/examples/) exercise the library or source consumer. -- [API](./internals/api/) covers the builder and configuration interfaces. +- [API](./reference/) covers the builder and configuration interfaces. diff --git a/site/src/content/docs/ports/rs/workspace/internals/index.md b/site/src/content/docs/ports/rs/workspace/internals/index.md index 0f243e92..9c98018d 100644 --- a/site/src/content/docs/ports/rs/workspace/internals/index.md +++ b/site/src/content/docs/ports/rs/workspace/internals/index.md @@ -26,7 +26,7 @@ reading, the async runtime, command-line handling, and attachment. - [Guides](./guides/) show builder setup and application code. - [Topics](./topics/) explain configuration, behavior, and failures. - [Examples](./examples/) exercise the builder through the language API. -- [API](./api/) links the configuration and construction interfaces. +- [API](../reference/) links the configuration and construction interfaces. ## Implementation scope diff --git a/site/src/content/docs/ports/rs/workspace/internals/api.md b/site/src/content/docs/ports/rs/workspace/reference.md similarity index 91% rename from site/src/content/docs/ports/rs/workspace/internals/api.md rename to site/src/content/docs/ports/rs/workspace/reference.md index c652f48f..f65e2186 100644 --- a/site/src/content/docs/ports/rs/workspace/internals/api.md +++ b/site/src/content/docs/ports/rs/workspace/reference.md @@ -16,14 +16,14 @@ for actual tmux operations. ## Configuration -[`Workspace`](/reference/rs/config-workspace/) holds the session description. +[`Workspace`](./config-workspace/) holds the session description. `Workspace::from_yaml` parses it, and `to_yaml` emits its YAML representation. `WindowConfig` and `PaneConfig` describe the nested objects; `ConfigError` identifies invalid configuration. ## Builder -[`WorkspaceBuilder`](/reference/rs/src-workspacebuilder/) borrows a `Server`. +[`WorkspaceBuilder`](./src-workspacebuilder/) borrows a `Server`. `new` selects that server, `plan` returns the inert construction plan, and `build` asynchronously creates the requested session. Keep the server alive for the builder's lifetime. diff --git a/site/src/content/docs/ports/swift/mcp/index.md b/site/src/content/docs/ports/swift/mcp/index.md index 4a037eaf..a79c5f39 100644 --- a/site/src/content/docs/ports/swift/mcp/index.md +++ b/site/src/content/docs/ports/swift/mcp/index.md @@ -25,7 +25,7 @@ tmux is required at runtime. - [Guides](./guides/) build the executable and configure its environment. - [Topics](./topics/) explain tiers, exact tool selection, and opaque targets. - [Examples](./examples/) call a tool, then explore server internals. -- [Language API](./api/) documents embedding and implementation types. +- [Language API](./reference/) documents embedding and implementation types. The default tier is readonly. Writing tools need explicit opt-in. Resources expose snapshots, sessions, filter vocabulary, and pane content; diff --git a/site/src/content/docs/ports/swift/mcp/api.md b/site/src/content/docs/ports/swift/mcp/reference.md similarity index 96% rename from site/src/content/docs/ports/swift/mcp/api.md rename to site/src/content/docs/ports/swift/mcp/reference.md index 3673facf..c39b1467 100644 --- a/site/src/content/docs/ports/swift/mcp/api.md +++ b/site/src/content/docs/ports/swift/mcp/reference.md @@ -45,5 +45,5 @@ Prompts include `run_and_wait`, `watch_until_ready`, [Resource source](https://github.com/libtmux/libtmux-swift/blob/f02a4668570e1cc5198c941413750e021f42c214/Sources/LibTmuxMCP/Resources.swift) and [prompt source](https://github.com/libtmux/libtmux-swift/blob/f02a4668570e1cc5198c941413750e021f42c214/Sources/LibTmuxMCP/Prompts.swift). -The [Workspace builder API](../../workspace/internals/api/) owns workspace decoding +The [Workspace builder API](../../workspace/reference/) owns workspace decoding and construction. `apply_workspace` exposes that behavior over MCP. diff --git a/site/src/content/docs/ports/swift/workspace/index.md b/site/src/content/docs/ports/swift/workspace/index.md index fc64a551..10906a92 100644 --- a/site/src/content/docs/ports/swift/workspace/index.md +++ b/site/src/content/docs/ports/swift/workspace/index.md @@ -27,4 +27,4 @@ The [Internals](./internals/) section documents the current builder: - [Guides](./internals/guides/) show application setup and builder calls. - [Topics](./internals/topics/) explain supported configuration and behavior. - [Examples](./internals/examples/) exercise the library or source consumer. -- [API](./internals/api/) covers the builder and configuration interfaces. +- [API](./reference/) covers the builder and configuration interfaces. diff --git a/site/src/content/docs/ports/swift/workspace/internals/guides.md b/site/src/content/docs/ports/swift/workspace/internals/guides.md index c4aa6e44..77369fe8 100644 --- a/site/src/content/docs/ports/swift/workspace/internals/guides.md +++ b/site/src/content/docs/ports/swift/workspace/internals/guides.md @@ -10,7 +10,7 @@ sidebar: tableOfContents: true --- -Add `TmuxWorkspace` and [`LibTmux`](/reference/swift/) to a SwiftPM target. This isolated example +Add `TmuxWorkspace` and [`LibTmux`](../../../reference/) to a SwiftPM target. This isolated example also uses the public `TmuxFixture` product for server startup and cleanup. The following dependency selects the source revision used by these examples: diff --git a/site/src/content/docs/ports/swift/workspace/internals/index.md b/site/src/content/docs/ports/swift/workspace/internals/index.md index b59117ee..dc5a3580 100644 --- a/site/src/content/docs/ports/swift/workspace/internals/index.md +++ b/site/src/content/docs/ports/swift/workspace/internals/index.md @@ -26,13 +26,13 @@ handling, and attachment. - [Guides](./guides/) show builder setup and application code. - [Topics](./topics/) explain configuration, behavior, and failures. - [Examples](./examples/) exercise the builder through the language API. -- [API](./api/) links the configuration and construction interfaces. +- [API](../reference/) links the configuration and construction interfaces. ## Implementation scope `TmuxWorkspace` builds a tmux session from Swift values or a [tmuxp](https://tmuxp.git-pull.com)-style configuration. It is a SwiftPM -library product beside the core [`LibTmux`](/reference/swift/) product. +library product beside the core [`LibTmux`](../../reference/) product. Swift and JSON descriptions work without a YAML dependency. Enable the `YAMLWorkspaces` package trait to add YAML decoding. Building uses the same diff --git a/site/src/content/docs/ports/swift/workspace/internals/api.md b/site/src/content/docs/ports/swift/workspace/reference.md similarity index 86% rename from site/src/content/docs/ports/swift/workspace/internals/api.md rename to site/src/content/docs/ports/swift/workspace/reference.md index f9d28559..7183d29c 100644 --- a/site/src/content/docs/ports/swift/workspace/internals/api.md +++ b/site/src/content/docs/ports/swift/workspace/reference.md @@ -10,12 +10,12 @@ sidebar: tableOfContents: true --- -Import `TmuxWorkspace` for the configuration and builder, and [`LibTmux`](/reference/swift/) for +Import `TmuxWorkspace` for the configuration and builder, and [`LibTmux`](../../reference/) for the server and returned session value. ## Configuration values -[`Workspace`](/reference/swift/workspace/) contains the session name, optional +[`Workspace`](./workspace/) contains the session name, optional working directory, and ordered windows. `WindowPlan` contains its name, directory, layout, and panes. `PanePlan` contains its directory and commands. The values conform to `Sendable`, `Hashable`, and `Codable`. @@ -26,14 +26,14 @@ existing description; it does not query tmux for a live export. ## Builder -[`WorkspaceBuilder`](/reference/swift/workspacebuilder/) exposes the async +[`WorkspaceBuilder`](./workspacebuilder/) exposes the async `build(_:on:)` operation. It creates a new session on the supplied server and returns a `Session`. Keep using the server for live observation; session properties do not refresh themselves. ## Typed errors -[`WorkspaceBuilderError`](/reference/swift/workspacebuildererror/) distinguishes +[`WorkspaceBuilderError`](./workspacebuildererror/) distinguishes an empty window list, an existing session name, a vanished session, underlying tmux errors, and failure of rollback. diff --git a/site/src/content/docs/ports/ts/mcp/index.md b/site/src/content/docs/ports/ts/mcp/index.md index f761426a..d187a7ea 100644 --- a/site/src/content/docs/ports/ts/mcp/index.md +++ b/site/src/content/docs/ports/ts/mcp/index.md @@ -23,7 +23,7 @@ macOS artifact checks do not establish runtime support. - [Guides](./guides/) install and connect a client. - [Topics](./topics/) explain toolsets, socket provenance, and waiting. - [Examples](./examples/) call a tool, then explore server internals. -- [Language API](./api/) documents embedding and implementation types. +- [Language API](./reference/) documents embedding and implementation types. The server exposes a static `tmux://capabilities` resource. It does not register workflow prompts or dynamic hierarchy resources. diff --git a/site/src/content/docs/ports/ts/mcp/api.md b/site/src/content/docs/ports/ts/mcp/reference.md similarity index 95% rename from site/src/content/docs/ports/ts/mcp/api.md rename to site/src/content/docs/ports/ts/mcp/reference.md index 2551d14a..000cef9b 100644 --- a/site/src/content/docs/ports/ts/mcp/api.md +++ b/site/src/content/docs/ports/ts/mcp/reference.md @@ -45,4 +45,4 @@ hierarchy-resource subscriptions. [Resource registration](https://github.com/libtmux/libtmux-ts/blob/f85b8de551353f746d50eaf36bf0112f4fe5a528/packages/mcp/src/resources.ts). Workspace parsing and application belong to -[`@libtmux/workspace`](../../workspace/internals/api/), not to a workspace MCP tool. +[`@libtmux/workspace`](../../workspace/reference/), not to a workspace MCP tool. diff --git a/site/src/content/docs/ports/ts/workspace/index.md b/site/src/content/docs/ports/ts/workspace/index.md index 806067d2..e3e5650c 100644 --- a/site/src/content/docs/ports/ts/workspace/index.md +++ b/site/src/content/docs/ports/ts/workspace/index.md @@ -27,4 +27,4 @@ The [Internals](./internals/) section documents the current builder: - [Guides](./internals/guides/) show application setup and builder calls. - [Topics](./internals/topics/) explain supported configuration and behavior. - [Examples](./internals/examples/) exercise the library or source consumer. -- [API](./internals/api/) covers the builder and configuration interfaces. +- [API](./reference/) covers the builder and configuration interfaces. diff --git a/site/src/content/docs/ports/ts/workspace/internals/index.md b/site/src/content/docs/ports/ts/workspace/internals/index.md index 4d4e0ac8..d91e6e12 100644 --- a/site/src/content/docs/ports/ts/workspace/internals/index.md +++ b/site/src/content/docs/ports/ts/workspace/internals/index.md @@ -26,7 +26,7 @@ command-line handling, attachment, and application lifetime. - [Guides](./guides/) show builder setup and application code. - [Topics](./topics/) explain configuration, behavior, and failures. - [Examples](./examples/) exercise the builder through the language API. -- [API](./api/) links the configuration and construction interfaces. +- [API](../reference/) links the configuration and construction interfaces. ## Implementation scope diff --git a/site/src/content/docs/ports/ts/workspace/internals/api.md b/site/src/content/docs/ports/ts/workspace/reference.md similarity index 72% rename from site/src/content/docs/ports/ts/workspace/internals/api.md rename to site/src/content/docs/ports/ts/workspace/reference.md index 523a0beb..4ad9b910 100644 --- a/site/src/content/docs/ports/ts/workspace/internals/api.md +++ b/site/src/content/docs/ports/ts/workspace/reference.md @@ -17,31 +17,31 @@ not choose a workspace or apply one automatically. ## Parse and validate -[`parseWorkspace`](/reference/ts/config-parseworkspace/) validates data already +[`parseWorkspace`](./config-parseworkspace/) validates data already read by your application. -[`parseWorkspaceYaml`](/reference/ts/config-parseworkspaceyaml/) +[`parseWorkspaceYaml`](./config-parseworkspaceyaml/) adds Bun's YAML parsing. Both produce the workspace configuration consumed by the builder. ## Plan and apply -[`planWorkspace`](/reference/ts/builder-planworkspace/) returns a description -of membership changes. [`WorkspacePlan`](/reference/ts/planning-workspaceplan/) +[`planWorkspace`](./builder-planworkspace/) returns a description +of membership changes. [`WorkspacePlan`](./planning-workspaceplan/) records creations, removals, renames, and retained surplus. -[`applyWorkspace`](/reference/ts/builder-applyworkspace/) performs the work and +[`applyWorkspace`](./builder-applyworkspace/) performs the work and resolves to the resulting `Session`. Its options control pruning and whether commands run in existing panes. Planning accepts pruning policy; command policy belongs to application. ## Handle failure -[`WorkspaceApplyError`](/reference/ts/builder-workspaceapplyerror/) preserves +[`WorkspaceApplyError`](./builder-workspaceapplyerror/) preserves the cause and completed milestones. Reinspect tmux before retrying; the error is not a transaction log of every effect or a receipt for shell commands. The language API builds workspaces directly. Availability through an MCP server is a separate protocol capability; consult this port's -[MCP section](../../../mcp/) for its advertised tools. +[MCP section](../../mcp/) for its advertised tools. [Public exports](https://github.com/libtmux/libtmux-ts/blob/f85b8de551353f746d50eaf36bf0112f4fe5a528/packages/workspace/package.json) diff --git a/site/src/data/mentions.json b/site/src/data/mentions.json index cf811508..7f63cbae 100644 --- a/site/src/data/mentions.json +++ b/site/src/data/mentions.json @@ -1,5 +1,5 @@ { - "generated": "2026-09-13T19:38:39.127Z", + "generated": "2026-09-13T21:36:55.929Z", "mentions": [ { "port": "cxx", @@ -88,63 +88,63 @@ { "port": "cxx", "symbol": "libtmux::mcp::CallContext", - "page": "/cxx/latest/mcp/api/", + "page": "/cxx/latest/mcp/reference/", "title": "C++ MCP API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::mcp::default_tools", - "page": "/cxx/latest/mcp/api/", + "page": "/cxx/latest/mcp/reference/", "title": "C++ MCP API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::mcp::Tool", - "page": "/cxx/latest/mcp/api/", + "page": "/cxx/latest/mcp/reference/", "title": "C++ MCP API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::mcp::ToolError", - "page": "/cxx/latest/mcp/api/", + "page": "/cxx/latest/mcp/reference/", "title": "C++ MCP API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::mcp::ToolResult", - "page": "/cxx/latest/mcp/api/", + "page": "/cxx/latest/mcp/reference/", "title": "C++ MCP API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::mcp::ToolSet", - "page": "/cxx/latest/mcp/api/", + "page": "/cxx/latest/mcp/reference/", "title": "C++ MCP API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::mcp::ToolSet::call", - "page": "/cxx/latest/mcp/api/", + "page": "/cxx/latest/mcp/reference/", "title": "C++ MCP API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::mcp::ToolSet::find", - "page": "/cxx/latest/mcp/api/", + "page": "/cxx/latest/mcp/reference/", "title": "C++ MCP API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::mcp::ToolSet::tools", - "page": "/cxx/latest/mcp/api/", + "page": "/cxx/latest/mcp/reference/", "title": "C++ MCP API", "section": "ports" }, @@ -256,7 +256,7 @@ { "port": "cxx", "symbol": "libtmux::Server", - "page": "/cxx/latest/mcp/api/", + "page": "/cxx/latest/mcp/reference/", "title": "C++ MCP API", "section": "ports" }, @@ -571,22 +571,22 @@ { "port": "cxx", "symbol": "libtmux::workspace::build", - "page": "/cxx/latest/workspace/internals/api/", - "title": "C++ workspace builder API", + "page": "/cxx/latest/workspace/internals/guides/", + "title": "Develop the C++ workspace consumer", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::workspace::build", - "page": "/cxx/latest/workspace/internals/guides/", - "title": "Develop the C++ workspace consumer", + "page": "/cxx/latest/workspace/internals/topics/", + "title": "C++ workspace builder behavior", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::workspace::build", - "page": "/cxx/latest/workspace/internals/topics/", - "title": "C++ workspace builder behavior", + "page": "/cxx/latest/workspace/reference/", + "title": "C++ workspace builder API", "section": "ports" }, { @@ -599,35 +599,35 @@ { "port": "cxx", "symbol": "libtmux::workspace::BuildError", - "page": "/cxx/latest/workspace/internals/api/", - "title": "C++ workspace builder API", + "page": "/cxx/latest/workspace/internals/topics/", + "title": "C++ workspace builder behavior", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::workspace::BuildError", - "page": "/cxx/latest/workspace/internals/topics/", - "title": "C++ workspace builder behavior", + "page": "/cxx/latest/workspace/reference/", + "title": "C++ workspace builder API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::workspace::Command", - "page": "/cxx/latest/workspace/internals/api/", - "title": "C++ workspace builder API", + "page": "/cxx/latest/workspace/internals/topics/", + "title": "C++ workspace builder behavior", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::workspace::Command", - "page": "/cxx/latest/workspace/internals/topics/", - "title": "C++ workspace builder behavior", + "page": "/cxx/latest/workspace/reference/", + "title": "C++ workspace builder API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::workspace::Pane", - "page": "/cxx/latest/workspace/internals/api/", + "page": "/cxx/latest/workspace/reference/", "title": "C++ workspace builder API", "section": "ports" }, @@ -641,22 +641,22 @@ { "port": "cxx", "symbol": "libtmux::workspace::parse_tmuxp", - "page": "/cxx/latest/workspace/internals/api/", - "title": "C++ workspace builder API", + "page": "/cxx/latest/workspace/internals/guides/", + "title": "Develop the C++ workspace consumer", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::workspace::parse_tmuxp", - "page": "/cxx/latest/workspace/internals/guides/", - "title": "Develop the C++ workspace consumer", + "page": "/cxx/latest/workspace/internals/topics/", + "title": "C++ workspace builder behavior", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::workspace::parse_tmuxp", - "page": "/cxx/latest/workspace/internals/topics/", - "title": "C++ workspace builder behavior", + "page": "/cxx/latest/workspace/reference/", + "title": "C++ workspace builder API", "section": "ports" }, { @@ -676,14 +676,14 @@ { "port": "cxx", "symbol": "libtmux::workspace::ParseError::where", - "page": "/cxx/latest/workspace/internals/api/", + "page": "/cxx/latest/workspace/reference/", "title": "C++ workspace builder API", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::workspace::Window", - "page": "/cxx/latest/workspace/internals/api/", + "page": "/cxx/latest/workspace/reference/", "title": "C++ workspace builder API", "section": "ports" }, @@ -697,15 +697,15 @@ { "port": "cxx", "symbol": "libtmux::workspace::Workspace", - "page": "/cxx/latest/workspace/internals/api/", - "title": "C++ workspace builder API", + "page": "/cxx/latest/workspace/internals/topics/", + "title": "C++ workspace builder behavior", "section": "ports" }, { "port": "cxx", "symbol": "libtmux::workspace::Workspace", - "page": "/cxx/latest/workspace/internals/topics/", - "title": "C++ workspace builder behavior", + "page": "/cxx/latest/workspace/reference/", + "title": "C++ workspace builder API", "section": "ports" }, { @@ -753,49 +753,49 @@ { "port": "dotnet", "symbol": "LibTmux.Mcp.McpServerComposition.Add", - "page": "/dotnet/latest/mcp/api/", + "page": "/dotnet/latest/mcp/reference/", "title": ".NET MCP API", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Mcp.McpTools.Reading", - "page": "/dotnet/latest/mcp/api/", + "page": "/dotnet/latest/mcp/reference/", "title": ".NET MCP API", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Mcp.McpTools.Writing", - "page": "/dotnet/latest/mcp/api/", - "title": ".NET MCP API", + "page": "/dotnet/latest/mcp/examples/", + "title": ".NET MCP examples", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Mcp.McpTools.Writing", - "page": "/dotnet/latest/mcp/examples/", - "title": ".NET MCP examples", + "page": "/dotnet/latest/mcp/reference/", + "title": ".NET MCP API", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Mcp.ReadTools", - "page": "/dotnet/latest/mcp/api/", + "page": "/dotnet/latest/mcp/reference/", "title": ".NET MCP API", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Mcp.ServerPolicy", - "page": "/dotnet/latest/mcp/api/", + "page": "/dotnet/latest/mcp/reference/", "title": ".NET MCP API", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Mcp.WriteTools", - "page": "/dotnet/latest/mcp/api/", + "page": "/dotnet/latest/mcp/reference/", "title": ".NET MCP API", "section": "ports" }, @@ -914,15 +914,15 @@ { "port": "dotnet", "symbol": "LibTmux.Server", - "page": "/dotnet/latest/workspace/internals/api/", - "title": ".NET workspace builder API", + "page": "/dotnet/latest/workspace/internals/examples/", + "title": ".NET workspace builder examples", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Server", - "page": "/dotnet/latest/workspace/internals/examples/", - "title": ".NET workspace builder examples", + "page": "/dotnet/latest/workspace/reference/", + "title": ".NET workspace builder API", "section": "ports" }, { @@ -1264,22 +1264,22 @@ { "port": "dotnet", "symbol": "LibTmux.Workspace.PaneReadiness", - "page": "/dotnet/latest/workspace/internals/api/", + "page": "/dotnet/latest/workspace/reference/", "title": ".NET workspace builder API", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Workspace.PaneReadiness.Always", - "page": "/dotnet/latest/workspace/internals/api/", - "title": ".NET workspace builder API", + "page": "/dotnet/latest/workspace/internals/topics/", + "title": ".NET workspace builder behavior", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Workspace.PaneReadiness.Always", - "page": "/dotnet/latest/workspace/internals/topics/", - "title": ".NET workspace builder behavior", + "page": "/dotnet/latest/workspace/reference/", + "title": ".NET workspace builder API", "section": "ports" }, { @@ -1292,15 +1292,15 @@ { "port": "dotnet", "symbol": "LibTmux.Workspace.PaneReadiness.Auto", - "page": "/dotnet/latest/workspace/internals/api/", - "title": ".NET workspace builder API", + "page": "/dotnet/latest/workspace/internals/topics/", + "title": ".NET workspace builder behavior", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Workspace.PaneReadiness.Auto", - "page": "/dotnet/latest/workspace/internals/topics/", - "title": ".NET workspace builder behavior", + "page": "/dotnet/latest/workspace/reference/", + "title": ".NET workspace builder API", "section": "ports" }, { @@ -1313,15 +1313,15 @@ { "port": "dotnet", "symbol": "LibTmux.Workspace.PaneReadiness.Never", - "page": "/dotnet/latest/workspace/internals/api/", - "title": ".NET workspace builder API", + "page": "/dotnet/latest/workspace/internals/topics/", + "title": ".NET workspace builder behavior", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Workspace.PaneReadiness.Never", - "page": "/dotnet/latest/workspace/internals/topics/", - "title": ".NET workspace builder behavior", + "page": "/dotnet/latest/workspace/reference/", + "title": ".NET workspace builder API", "section": "ports" }, { @@ -1334,15 +1334,15 @@ { "port": "dotnet", "symbol": "LibTmux.Workspace.WorkspaceBuilder", - "page": "/dotnet/latest/workspace/internals/api/", - "title": ".NET workspace builder API", + "page": "/dotnet/latest/workspace/internals/guides/", + "title": "Use the .NET workspace builder", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Workspace.WorkspaceBuilder", - "page": "/dotnet/latest/workspace/internals/guides/", - "title": "Use the .NET workspace builder", + "page": "/dotnet/latest/workspace/reference/", + "title": ".NET workspace builder API", "section": "ports" }, { @@ -1355,7 +1355,7 @@ { "port": "dotnet", "symbol": "LibTmux.Workspace.WorkspaceBuilder.BuildAsync", - "page": "/dotnet/latest/workspace/internals/api/", + "page": "/dotnet/latest/workspace/reference/", "title": ".NET workspace builder API", "section": "ports" }, @@ -1366,13 +1366,6 @@ "title": "Build a workspace from a file", "section": "examples" }, - { - "port": "dotnet", - "symbol": "LibTmux.Workspace.WorkspaceBuildException", - "page": "/dotnet/latest/workspace/internals/api/", - "title": ".NET workspace builder API", - "section": "ports" - }, { "port": "dotnet", "symbol": "LibTmux.Workspace.WorkspaceBuildException", @@ -1382,8 +1375,8 @@ }, { "port": "dotnet", - "symbol": "LibTmux.Workspace.WorkspaceBuildException.PartialResult", - "page": "/dotnet/latest/workspace/internals/api/", + "symbol": "LibTmux.Workspace.WorkspaceBuildException", + "page": "/dotnet/latest/workspace/reference/", "title": ".NET workspace builder API", "section": "ports" }, @@ -1401,6 +1394,13 @@ "title": ".NET workspace builder behavior", "section": "ports" }, + { + "port": "dotnet", + "symbol": "LibTmux.Workspace.WorkspaceBuildException.PartialResult", + "page": "/dotnet/latest/workspace/reference/", + "title": ".NET workspace builder API", + "section": "ports" + }, { "port": "dotnet", "symbol": "LibTmux.Workspace.WorkspaceBuildException.PartialResult", @@ -1411,7 +1411,7 @@ { "port": "dotnet", "symbol": "LibTmux.Workspace.WorkspaceFile", - "page": "/dotnet/latest/workspace/internals/api/", + "page": "/dotnet/latest/workspace/reference/", "title": ".NET workspace builder API", "section": "ports" }, @@ -1439,21 +1439,21 @@ { "port": "dotnet", "symbol": "LibTmux.Workspace.WorkspaceFormatException", - "page": "/dotnet/latest/workspace/internals/api/", + "page": "/dotnet/latest/workspace/reference/", "title": ".NET workspace builder API", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Workspace.WorkspacePane", - "page": "/dotnet/latest/workspace/internals/api/", + "page": "/dotnet/latest/workspace/reference/", "title": ".NET workspace builder API", "section": "ports" }, { "port": "dotnet", "symbol": "LibTmux.Workspace.WorkspaceResult", - "page": "/dotnet/latest/workspace/internals/api/", + "page": "/dotnet/latest/workspace/reference/", "title": ".NET workspace builder API", "section": "ports" }, @@ -1474,42 +1474,42 @@ { "port": "dotnet", "symbol": "LibTmux.Workspace.WorkspaceWindow", - "page": "/dotnet/latest/workspace/internals/api/", + "page": "/dotnet/latest/workspace/reference/", "title": ".NET workspace builder API", "section": "ports" }, { "port": "go", "symbol": "mcp.AssumeResponseCommit", - "page": "/go/latest/mcp/api/", + "page": "/go/latest/mcp/reference/", "title": "Go MCP API", "section": "ports" }, { "port": "go", "symbol": "mcp.Instance", - "page": "/go/latest/mcp/api/", + "page": "/go/latest/mcp/reference/", "title": "Go MCP API", "section": "ports" }, { "port": "go", "symbol": "mcp.Instance.Connect", - "page": "/go/latest/mcp/api/", + "page": "/go/latest/mcp/reference/", "title": "Go MCP API", "section": "ports" }, { "port": "go", "symbol": "mcp.NewServer", - "page": "/go/latest/mcp/api/", + "page": "/go/latest/mcp/reference/", "title": "Go MCP API", "section": "ports" }, { "port": "go", "symbol": "mcp.Run", - "page": "/go/latest/mcp/api/", + "page": "/go/latest/mcp/reference/", "title": "Go MCP API", "section": "ports" }, @@ -1670,14 +1670,14 @@ { "port": "go", "symbol": "tmux.Server", - "page": "/go/latest/mcp/api/", + "page": "/go/latest/mcp/reference/", "title": "Go MCP API", "section": "ports" }, { "port": "go", "symbol": "tmux.Server", - "page": "/go/latest/workspace/internals/api/", + "page": "/go/latest/workspace/reference/", "title": "Go workspace builder API", "section": "ports" }, @@ -1887,7 +1887,7 @@ { "port": "go", "symbol": "workspace.Bool", - "page": "/go/latest/workspace/internals/api/", + "page": "/go/latest/workspace/reference/", "title": "Go workspace builder API", "section": "ports" }, @@ -1905,13 +1905,6 @@ "title": "Go workspace internals", "section": "ports" }, - { - "port": "go", - "symbol": "workspace.Build", - "page": "/go/latest/workspace/internals/api/", - "title": "Go workspace builder API", - "section": "ports" - }, { "port": "go", "symbol": "workspace.Build", @@ -1935,16 +1928,16 @@ }, { "port": "go", - "symbol": "workspace.BuildInto", - "page": "/go/latest/workspace/internals/", - "title": "Go workspace internals", + "symbol": "workspace.Build", + "page": "/go/latest/workspace/reference/", + "title": "Go workspace builder API", "section": "ports" }, { "port": "go", "symbol": "workspace.BuildInto", - "page": "/go/latest/workspace/internals/api/", - "title": "Go workspace builder API", + "page": "/go/latest/workspace/internals/", + "title": "Go workspace internals", "section": "ports" }, { @@ -1970,15 +1963,15 @@ }, { "port": "go", - "symbol": "workspace.Command", - "page": "/go/latest/workspace/internals/api/", + "symbol": "workspace.BuildInto", + "page": "/go/latest/workspace/reference/", "title": "Go workspace builder API", "section": "ports" }, { "port": "go", - "symbol": "workspace.ErrInvalidWorkspace", - "page": "/go/latest/workspace/internals/api/", + "symbol": "workspace.Command", + "page": "/go/latest/workspace/reference/", "title": "Go workspace builder API", "section": "ports" }, @@ -1989,10 +1982,17 @@ "title": "Go workspace builder behavior", "section": "ports" }, + { + "port": "go", + "symbol": "workspace.ErrInvalidWorkspace", + "page": "/go/latest/workspace/reference/", + "title": "Go workspace builder API", + "section": "ports" + }, { "port": "go", "symbol": "workspace.Pane", - "page": "/go/latest/workspace/internals/api/", + "page": "/go/latest/workspace/reference/", "title": "Go workspace builder API", "section": "ports" }, @@ -2010,13 +2010,6 @@ "title": "Go workspace internals", "section": "ports" }, - { - "port": "go", - "symbol": "workspace.Parse", - "page": "/go/latest/workspace/internals/api/", - "title": "Go workspace builder API", - "section": "ports" - }, { "port": "go", "symbol": "workspace.Parse", @@ -2033,22 +2026,22 @@ }, { "port": "go", - "symbol": "workspace.Window", - "page": "/go/latest/workspace/internals/api/", + "symbol": "workspace.Parse", + "page": "/go/latest/workspace/reference/", "title": "Go workspace builder API", "section": "ports" }, { "port": "go", - "symbol": "workspace.Workspace", - "page": "/go/latest/workspace/internals/api/", + "symbol": "workspace.Window", + "page": "/go/latest/workspace/reference/", "title": "Go workspace builder API", "section": "ports" }, { "port": "go", - "symbol": "workspace.Workspace.InitialSessionRequest", - "page": "/go/latest/workspace/internals/api/", + "symbol": "workspace.Workspace", + "page": "/go/latest/workspace/reference/", "title": "Go workspace builder API", "section": "ports" }, @@ -2068,8 +2061,8 @@ }, { "port": "go", - "symbol": "workspace.Workspace.MissingDirectories", - "page": "/go/latest/workspace/internals/api/", + "symbol": "workspace.Workspace.InitialSessionRequest", + "page": "/go/latest/workspace/reference/", "title": "Go workspace builder API", "section": "ports" }, @@ -2080,6 +2073,13 @@ "title": "Go workspace builder behavior", "section": "ports" }, + { + "port": "go", + "symbol": "workspace.Workspace.MissingDirectories", + "page": "/go/latest/workspace/reference/", + "title": "Go workspace builder API", + "section": "ports" + }, { "port": "java", "symbol": "io.github.libtmux.batch.Batch.Batch", @@ -2160,21 +2160,21 @@ { "port": "java", "symbol": "io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer", - "page": "/java/latest/mcp/api/", + "page": "/java/latest/mcp/reference/", "title": "Java MCP API", "section": "ports" }, { "port": "java", "symbol": "io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer.overStdio", - "page": "/java/latest/mcp/api/", + "page": "/java/latest/mcp/reference/", "title": "Java MCP API", "section": "ports" }, { "port": "java", "symbol": "io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer.serving", - "page": "/java/latest/mcp/api/", + "page": "/java/latest/mcp/reference/", "title": "Java MCP API", "section": "ports" }, @@ -2321,15 +2321,15 @@ { "port": "java", "symbol": "io.github.libtmux.Server.Server", - "page": "/java/latest/workspace/internals/api/", - "title": "Java workspace builder API", + "page": "/java/latest/workspace/internals/examples/", + "title": "Java workspace builder examples", "section": "ports" }, { "port": "java", "symbol": "io.github.libtmux.Server.Server", - "page": "/java/latest/workspace/internals/examples/", - "title": "Java workspace builder examples", + "page": "/java/latest/workspace/reference/", + "title": "Java workspace builder API", "section": "ports" }, { @@ -2524,14 +2524,14 @@ { "port": "java", "symbol": "io.github.libtmux.workspace.PaneSpec.PaneSpec", - "page": "/java/latest/workspace/internals/api/", + "page": "/java/latest/workspace/reference/", "title": "Java workspace builder API", "section": "ports" }, { "port": "java", "symbol": "io.github.libtmux.workspace.WindowSpec.WindowSpec", - "page": "/java/latest/workspace/internals/api/", + "page": "/java/latest/workspace/reference/", "title": "Java workspace builder API", "section": "ports" }, @@ -2542,13 +2542,6 @@ "title": "Build a workspace from a file", "section": "examples" }, - { - "port": "java", - "symbol": "io.github.libtmux.workspace.Workspace.Workspace", - "page": "/java/latest/workspace/internals/api/", - "title": "Java workspace builder API", - "section": "ports" - }, { "port": "java", "symbol": "io.github.libtmux.workspace.Workspace.Workspace", @@ -2565,16 +2558,16 @@ }, { "port": "java", - "symbol": "io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder", - "page": "/java/latest/workspace/internals/", - "title": "Java workspace internals", + "symbol": "io.github.libtmux.workspace.Workspace.Workspace", + "page": "/java/latest/workspace/reference/", + "title": "Java workspace builder API", "section": "ports" }, { "port": "java", "symbol": "io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder", - "page": "/java/latest/workspace/internals/api/", - "title": "Java workspace builder API", + "page": "/java/latest/workspace/internals/", + "title": "Java workspace internals", "section": "ports" }, { @@ -2586,8 +2579,8 @@ }, { "port": "java", - "symbol": "io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.build", - "page": "/java/latest/workspace/internals/api/", + "symbol": "io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder", + "page": "/java/latest/workspace/reference/", "title": "Java workspace builder API", "section": "ports" }, @@ -2607,8 +2600,8 @@ }, { "port": "java", - "symbol": "io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.parse", - "page": "/java/latest/workspace/internals/api/", + "symbol": "io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.build", + "page": "/java/latest/workspace/reference/", "title": "Java workspace builder API", "section": "ports" }, @@ -2621,8 +2614,8 @@ }, { "port": "java", - "symbol": "io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.read", - "page": "/java/latest/workspace/internals/api/", + "symbol": "io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.parse", + "page": "/java/latest/workspace/reference/", "title": "Java workspace builder API", "section": "ports" }, @@ -2640,6 +2633,13 @@ "title": "Java workspace builder behavior", "section": "ports" }, + { + "port": "java", + "symbol": "io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.read", + "page": "/java/latest/workspace/reference/", + "title": "Java workspace builder API", + "section": "ports" + }, { "port": "py", "symbol": "libtmux_mcp.models.RunCommandResult.exit_status", @@ -2678,14 +2678,14 @@ { "port": "py", "symbol": "libtmux_mcp.server.build_mcp_server", - "page": "/py/latest/mcp/api/", + "page": "/py/latest/mcp/reference/", "title": "Python MCP API", "section": "ports" }, { "port": "py", "symbol": "libtmux_mcp.server.run_server", - "page": "/py/latest/mcp/api/", + "page": "/py/latest/mcp/reference/", "title": "Python MCP API", "section": "ports" }, @@ -2895,7 +2895,7 @@ { "port": "py", "symbol": "libtmux.pane.Pane", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, @@ -3021,7 +3021,7 @@ { "port": "py", "symbol": "libtmux.server.Server", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, @@ -3168,7 +3168,7 @@ { "port": "py", "symbol": "libtmux.session.Session", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, @@ -3245,7 +3245,7 @@ { "port": "py", "symbol": "libtmux.window.Window", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, @@ -3322,105 +3322,98 @@ { "port": "py", "symbol": "tmuxp.workspace.builder.classic.ClassicWorkspaceBuilder", - "page": "/py/latest/workspace/internals/api/", - "title": "Python workspace internal API", + "page": "/py/latest/workspace/internals/topics/", + "title": "Python workspace builder behavior", "section": "ports" }, { "port": "py", "symbol": "tmuxp.workspace.builder.classic.ClassicWorkspaceBuilder", - "page": "/py/latest/workspace/internals/topics/", - "title": "Python workspace builder behavior", + "page": "/py/latest/workspace/reference/", + "title": "Python workspace internal API", "section": "ports" }, { "port": "py", "symbol": "tmuxp.workspace.builder.classic.ClassicWorkspaceBuilder.session", - "page": "/py/latest/workspace/internals/api/", - "title": "Python workspace internal API", + "page": "/py/latest/workspace/internals/examples/", + "title": "Python workspace builder example", "section": "ports" }, { "port": "py", "symbol": "tmuxp.workspace.builder.classic.ClassicWorkspaceBuilder.session", - "page": "/py/latest/workspace/internals/examples/", - "title": "Python workspace builder example", + "page": "/py/latest/workspace/reference/", + "title": "Python workspace internal API", "section": "ports" }, { "port": "py", "symbol": "tmuxp.workspace.builder.protocol.WorkspaceBuilderProtocol", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, { "port": "py", "symbol": "tmuxp.workspace.builder.WorkspaceBuilder", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, { "port": "py", "symbol": "tmuxp.workspace.freezer.freeze", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, { "port": "py", "symbol": "tmuxp.workspace.freezer.inline", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, { "port": "py", "symbol": "tmuxp.workspace.loader.expand", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, { "port": "py", "symbol": "tmuxp.workspace.loader.trickle", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, { "port": "py", "symbol": "tmuxp.workspace.validation.validate_schema", - "page": "/py/latest/workspace/internals/api/", + "page": "/py/latest/workspace/reference/", "title": "Python workspace internal API", "section": "ports" }, { "port": "rs", "symbol": "config.ConfigError", - "page": "/rs/latest/workspace/internals/api/", + "page": "/rs/latest/workspace/reference/", "title": "Rust workspace builder API", "section": "ports" }, { "port": "rs", "symbol": "config.PaneConfig", - "page": "/rs/latest/workspace/internals/api/", + "page": "/rs/latest/workspace/reference/", "title": "Rust workspace builder API", "section": "ports" }, { "port": "rs", "symbol": "config.WindowConfig", - "page": "/rs/latest/workspace/internals/api/", - "title": "Rust workspace builder API", - "section": "ports" - }, - { - "port": "rs", - "symbol": "config.Workspace", - "page": "/rs/latest/workspace/internals/api/", + "page": "/rs/latest/workspace/reference/", "title": "Rust workspace builder API", "section": "ports" }, @@ -3440,16 +3433,16 @@ }, { "port": "rs", - "symbol": "config.Workspace.from_yaml", - "page": "/rs/latest/workspace/internals/", - "title": "Rust workspace internals", + "symbol": "config.Workspace", + "page": "/rs/latest/workspace/reference/", + "title": "Rust workspace builder API", "section": "ports" }, { "port": "rs", "symbol": "config.Workspace.from_yaml", - "page": "/rs/latest/workspace/internals/api/", - "title": "Rust workspace builder API", + "page": "/rs/latest/workspace/internals/", + "title": "Rust workspace internals", "section": "ports" }, { @@ -3466,6 +3459,13 @@ "title": "Rust workspace builder behavior", "section": "ports" }, + { + "port": "rs", + "symbol": "config.Workspace.from_yaml", + "page": "/rs/latest/workspace/reference/", + "title": "Rust workspace builder API", + "section": "ports" + }, { "port": "rs", "symbol": "config.Workspace.session_name", @@ -3476,22 +3476,22 @@ { "port": "rs", "symbol": "config.Workspace.to_yaml", - "page": "/rs/latest/workspace/internals/api/", - "title": "Rust workspace builder API", + "page": "/rs/latest/workspace/internals/guides/", + "title": "Use the Rust workspace builder", "section": "ports" }, { "port": "rs", "symbol": "config.Workspace.to_yaml", - "page": "/rs/latest/workspace/internals/guides/", - "title": "Use the Rust workspace builder", + "page": "/rs/latest/workspace/internals/topics/", + "title": "Rust workspace builder behavior", "section": "ports" }, { "port": "rs", "symbol": "config.Workspace.to_yaml", - "page": "/rs/latest/workspace/internals/topics/", - "title": "Rust workspace builder behavior", + "page": "/rs/latest/workspace/reference/", + "title": "Rust workspace builder API", "section": "ports" }, { @@ -3539,22 +3539,22 @@ { "port": "rs", "symbol": "freeze.freeze", - "page": "/rs/latest/workspace/internals/api/", - "title": "Rust workspace builder API", + "page": "/rs/latest/workspace/internals/guides/", + "title": "Use the Rust workspace builder", "section": "ports" }, { "port": "rs", "symbol": "freeze.freeze", - "page": "/rs/latest/workspace/internals/guides/", - "title": "Use the Rust workspace builder", + "page": "/rs/latest/workspace/internals/topics/", + "title": "Rust workspace builder behavior", "section": "ports" }, { "port": "rs", "symbol": "freeze.freeze", - "page": "/rs/latest/workspace/internals/topics/", - "title": "Rust workspace builder behavior", + "page": "/rs/latest/workspace/reference/", + "title": "Rust workspace builder API", "section": "ports" }, { @@ -3567,7 +3567,7 @@ { "port": "rs", "symbol": "mcp.src.TmuxTools.builder", - "page": "/rs/latest/mcp/api/", + "page": "/rs/latest/mcp/reference/", "title": "Rust MCP API", "section": "ports" }, @@ -3588,7 +3588,7 @@ { "port": "rs", "symbol": "mcp.src.TmuxTools.offered", - "page": "/rs/latest/mcp/api/", + "page": "/rs/latest/mcp/reference/", "title": "Rust MCP API", "section": "ports" }, @@ -3798,7 +3798,7 @@ { "port": "rs", "symbol": "plan.Safety", - "page": "/rs/latest/mcp/api/", + "page": "/rs/latest/mcp/reference/", "title": "Rust MCP API", "section": "ports" }, @@ -3819,15 +3819,15 @@ { "port": "rs", "symbol": "server.Server", - "page": "/rs/latest/mcp/api/", - "title": "Rust MCP API", + "page": "/rs/latest/mcp/examples/", + "title": "Rust MCP examples", "section": "ports" }, { "port": "rs", "symbol": "server.Server", - "page": "/rs/latest/mcp/examples/", - "title": "Rust MCP examples", + "page": "/rs/latest/mcp/reference/", + "title": "Rust MCP API", "section": "ports" }, { @@ -3840,7 +3840,7 @@ { "port": "rs", "symbol": "server.Server", - "page": "/rs/latest/workspace/internals/api/", + "page": "/rs/latest/workspace/reference/", "title": "Rust workspace builder API", "section": "ports" }, @@ -3938,7 +3938,7 @@ { "port": "rs", "symbol": "session.Session", - "page": "/rs/latest/workspace/internals/api/", + "page": "/rs/latest/workspace/reference/", "title": "Rust workspace builder API", "section": "ports" }, @@ -4015,7 +4015,7 @@ { "port": "rs", "symbol": "src.BuildError", - "page": "/rs/latest/workspace/internals/api/", + "page": "/rs/latest/workspace/reference/", "title": "Rust workspace builder API", "section": "ports" }, @@ -4033,13 +4033,6 @@ "title": "Rust workspace internals", "section": "ports" }, - { - "port": "rs", - "symbol": "src.WorkspaceBuilder", - "page": "/rs/latest/workspace/internals/api/", - "title": "Rust workspace builder API", - "section": "ports" - }, { "port": "rs", "symbol": "src.WorkspaceBuilder", @@ -4049,8 +4042,8 @@ }, { "port": "rs", - "symbol": "src.WorkspaceBuilder.build", - "page": "/rs/latest/workspace/internals/api/", + "symbol": "src.WorkspaceBuilder", + "page": "/rs/latest/workspace/reference/", "title": "Rust workspace builder API", "section": "ports" }, @@ -4070,8 +4063,8 @@ }, { "port": "rs", - "symbol": "src.WorkspaceBuilder.new", - "page": "/rs/latest/workspace/internals/api/", + "symbol": "src.WorkspaceBuilder.build", + "page": "/rs/latest/workspace/reference/", "title": "Rust workspace builder API", "section": "ports" }, @@ -4082,6 +4075,13 @@ "title": "Use the Rust workspace builder", "section": "ports" }, + { + "port": "rs", + "symbol": "src.WorkspaceBuilder.new", + "page": "/rs/latest/workspace/reference/", + "title": "Rust workspace builder API", + "section": "ports" + }, { "port": "rs", "symbol": "src.WorkspaceBuilder.plan", @@ -4092,22 +4092,22 @@ { "port": "rs", "symbol": "src.WorkspaceBuilder.plan", - "page": "/rs/latest/workspace/internals/api/", - "title": "Rust workspace builder API", + "page": "/rs/latest/workspace/internals/guides/", + "title": "Use the Rust workspace builder", "section": "ports" }, { "port": "rs", "symbol": "src.WorkspaceBuilder.plan", - "page": "/rs/latest/workspace/internals/guides/", - "title": "Use the Rust workspace builder", + "page": "/rs/latest/workspace/internals/topics/", + "title": "Rust workspace builder behavior", "section": "ports" }, { "port": "rs", "symbol": "src.WorkspaceBuilder.plan", - "page": "/rs/latest/workspace/internals/topics/", - "title": "Rust workspace builder behavior", + "page": "/rs/latest/workspace/reference/", + "title": "Rust workspace builder API", "section": "ports" }, { @@ -4253,14 +4253,14 @@ { "port": "swift", "symbol": "MCPRequestHandler", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, { "port": "swift", "symbol": "MCPService", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, @@ -4316,15 +4316,15 @@ { "port": "swift", "symbol": "PanePlan", - "page": "/swift/latest/workspace/internals/api/", - "title": "Swift workspace builder API", + "page": "/swift/latest/workspace/internals/topics/", + "title": "Swift workspace builder behavior", "section": "ports" }, { "port": "swift", "symbol": "PanePlan", - "page": "/swift/latest/workspace/internals/topics/", - "title": "Swift workspace builder behavior", + "page": "/swift/latest/workspace/reference/", + "title": "Swift workspace builder API", "section": "ports" }, { @@ -4554,22 +4554,22 @@ { "port": "swift", "symbol": "ServerConfiguration", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, { "port": "swift", "symbol": "Session", - "page": "/swift/latest/workspace/internals/api/", - "title": "Swift workspace builder API", + "page": "/swift/latest/workspace/internals/topics/", + "title": "Swift workspace builder behavior", "section": "ports" }, { "port": "swift", "symbol": "Session", - "page": "/swift/latest/workspace/internals/topics/", - "title": "Swift workspace builder behavior", + "page": "/swift/latest/workspace/reference/", + "title": "Swift workspace builder API", "section": "ports" }, { @@ -4631,28 +4631,28 @@ { "port": "swift", "symbol": "TmuxTools", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, { "port": "swift", "symbol": "TmuxTools.call(_:reporting:)", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, { "port": "swift", "symbol": "TmuxTools.visibleDefinitions", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, { "port": "swift", "symbol": "ToolAuthority", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, @@ -4666,7 +4666,7 @@ { "port": "swift", "symbol": "ToolError", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, @@ -4680,35 +4680,35 @@ { "port": "swift", "symbol": "Toolset", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, { "port": "swift", "symbol": "Toolset.execute", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, { "port": "swift", "symbol": "Toolset.inspect", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, { "port": "swift", "symbol": "Toolset.manage", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, { "port": "swift", "symbol": "Toolset.teardown", - "page": "/swift/latest/mcp/api/", + "page": "/swift/latest/mcp/reference/", "title": "Swift MCP API", "section": "ports" }, @@ -4736,15 +4736,15 @@ { "port": "swift", "symbol": "WindowPlan", - "page": "/swift/latest/workspace/internals/api/", - "title": "Swift workspace builder API", + "page": "/swift/latest/workspace/internals/topics/", + "title": "Swift workspace builder behavior", "section": "ports" }, { "port": "swift", "symbol": "WindowPlan", - "page": "/swift/latest/workspace/internals/topics/", - "title": "Swift workspace builder behavior", + "page": "/swift/latest/workspace/reference/", + "title": "Swift workspace builder API", "section": "ports" }, { @@ -4764,15 +4764,15 @@ { "port": "swift", "symbol": "Workspace", - "page": "/swift/latest/workspace/internals/api/", - "title": "Swift workspace builder API", + "page": "/swift/latest/workspace/internals/topics/", + "title": "Swift workspace builder behavior", "section": "ports" }, { "port": "swift", "symbol": "Workspace", - "page": "/swift/latest/workspace/internals/topics/", - "title": "Swift workspace builder behavior", + "page": "/swift/latest/workspace/reference/", + "title": "Swift workspace builder API", "section": "ports" }, { @@ -4785,21 +4785,21 @@ { "port": "swift", "symbol": "Workspace.decode(json:)", - "page": "/swift/latest/workspace/internals/api/", - "title": "Swift workspace builder API", + "page": "/swift/latest/workspace/internals/guides/", + "title": "Use the Swift workspace builder", "section": "ports" }, { "port": "swift", "symbol": "Workspace.decode(json:)", - "page": "/swift/latest/workspace/internals/guides/", - "title": "Use the Swift workspace builder", + "page": "/swift/latest/workspace/reference/", + "title": "Swift workspace builder API", "section": "ports" }, { "port": "swift", "symbol": "WorkspaceBuilder", - "page": "/swift/latest/workspace/internals/api/", + "page": "/swift/latest/workspace/reference/", "title": "Swift workspace builder API", "section": "ports" }, @@ -4820,36 +4820,36 @@ { "port": "swift", "symbol": "WorkspaceBuilder.build(_:on:)", - "page": "/swift/latest/workspace/internals/api/", + "page": "/swift/latest/workspace/reference/", "title": "Swift workspace builder API", "section": "ports" }, { "port": "swift", "symbol": "WorkspaceBuilderError", - "page": "/swift/latest/workspace/internals/api/", + "page": "/swift/latest/workspace/reference/", "title": "Swift workspace builder API", "section": "ports" }, { "port": "swift", "symbol": "WorkspaceBuilderError.rollbackFailed(original:cleanup:)", - "page": "/swift/latest/workspace/internals/api/", - "title": "Swift workspace builder API", + "page": "/swift/latest/workspace/internals/guides/", + "title": "Use the Swift workspace builder", "section": "ports" }, { "port": "swift", "symbol": "WorkspaceBuilderError.rollbackFailed(original:cleanup:)", - "page": "/swift/latest/workspace/internals/guides/", - "title": "Use the Swift workspace builder", + "page": "/swift/latest/workspace/internals/topics/", + "title": "Swift workspace builder behavior", "section": "ports" }, { "port": "swift", "symbol": "WorkspaceBuilderError.rollbackFailed(original:cleanup:)", - "page": "/swift/latest/workspace/internals/topics/", - "title": "Swift workspace builder behavior", + "page": "/swift/latest/workspace/reference/", + "title": "Swift workspace builder API", "section": "ports" }, { @@ -4876,7 +4876,7 @@ { "port": "ts", "symbol": "builder.applyWorkspace", - "page": "/ts/latest/workspace/internals/api/", + "page": "/ts/latest/workspace/reference/", "title": "TypeScript workspace builder API", "section": "ports" }, @@ -4887,13 +4887,6 @@ "title": "TypeScript workspace internals", "section": "ports" }, - { - "port": "ts", - "symbol": "builder.planWorkspace", - "page": "/ts/latest/workspace/internals/api/", - "title": "TypeScript workspace builder API", - "section": "ports" - }, { "port": "ts", "symbol": "builder.planWorkspace", @@ -4910,8 +4903,8 @@ }, { "port": "ts", - "symbol": "builder.WorkspaceApplyError", - "page": "/ts/latest/workspace/internals/api/", + "symbol": "builder.planWorkspace", + "page": "/ts/latest/workspace/reference/", "title": "TypeScript workspace builder API", "section": "ports" }, @@ -4922,6 +4915,13 @@ "title": "TypeScript workspace builder behavior", "section": "ports" }, + { + "port": "ts", + "symbol": "builder.WorkspaceApplyError", + "page": "/ts/latest/workspace/reference/", + "title": "TypeScript workspace builder API", + "section": "ports" + }, { "port": "ts", "symbol": "builder.WorkspaceApplyError.requiresReplan", @@ -4946,29 +4946,29 @@ { "port": "ts", "symbol": "config.parseWorkspace", - "page": "/ts/latest/workspace/internals/api/", - "title": "TypeScript workspace builder API", + "page": "/ts/latest/workspace/internals/guides/", + "title": "Use the TypeScript workspace builder", "section": "ports" }, { "port": "ts", "symbol": "config.parseWorkspace", - "page": "/ts/latest/workspace/internals/guides/", - "title": "Use the TypeScript workspace builder", + "page": "/ts/latest/workspace/reference/", + "title": "TypeScript workspace builder API", "section": "ports" }, { "port": "ts", "symbol": "config.parseWorkspaceYaml", - "page": "/ts/latest/workspace/internals/api/", - "title": "TypeScript workspace builder API", + "page": "/ts/latest/workspace/internals/guides/", + "title": "Use the TypeScript workspace builder", "section": "ports" }, { "port": "ts", "symbol": "config.parseWorkspaceYaml", - "page": "/ts/latest/workspace/internals/guides/", - "title": "Use the TypeScript workspace builder", + "page": "/ts/latest/workspace/reference/", + "title": "TypeScript workspace builder API", "section": "ports" }, { @@ -5023,14 +5023,14 @@ { "port": "ts", "symbol": "mcp.server.createTmuxMcpServer", - "page": "/ts/latest/mcp/api/", + "page": "/ts/latest/mcp/reference/", "title": "TypeScript MCP API", "section": "ports" }, { "port": "ts", "symbol": "mcp.server.serverFromEnvironment", - "page": "/ts/latest/mcp/api/", + "page": "/ts/latest/mcp/reference/", "title": "TypeScript MCP API", "section": "ports" }, @@ -5114,7 +5114,7 @@ { "port": "ts", "symbol": "planning.WorkspacePlan", - "page": "/ts/latest/workspace/internals/api/", + "page": "/ts/latest/workspace/reference/", "title": "TypeScript workspace builder API", "section": "ports" }, @@ -5184,15 +5184,15 @@ { "port": "ts", "symbol": "server.Server", - "page": "/ts/latest/mcp/api/", - "title": "TypeScript MCP API", + "page": "/ts/latest/mcp/examples/", + "title": "TypeScript MCP examples", "section": "ports" }, { "port": "ts", "symbol": "server.Server", - "page": "/ts/latest/mcp/examples/", - "title": "TypeScript MCP examples", + "page": "/ts/latest/mcp/reference/", + "title": "TypeScript MCP API", "section": "ports" }, { @@ -5205,15 +5205,15 @@ { "port": "ts", "symbol": "server.Server", - "page": "/ts/latest/workspace/internals/api/", - "title": "TypeScript workspace builder API", + "page": "/ts/latest/workspace/internals/examples/", + "title": "TypeScript workspace builder examples", "section": "ports" }, { "port": "ts", "symbol": "server.Server", - "page": "/ts/latest/workspace/internals/examples/", - "title": "TypeScript workspace builder examples", + "page": "/ts/latest/workspace/reference/", + "title": "TypeScript workspace builder API", "section": "ports" }, { @@ -5303,15 +5303,15 @@ { "port": "ts", "symbol": "session.Session", - "page": "/ts/latest/workspace/internals/api/", - "title": "TypeScript workspace builder API", + "page": "/ts/latest/workspace/internals/topics/", + "title": "TypeScript workspace builder behavior", "section": "ports" }, { "port": "ts", "symbol": "session.Session", - "page": "/ts/latest/workspace/internals/topics/", - "title": "TypeScript workspace builder behavior", + "page": "/ts/latest/workspace/reference/", + "title": "TypeScript workspace builder API", "section": "ports" }, { @@ -5556,79 +5556,79 @@ }, { "port": "swift", - "text": "TmuxWorkspace", - "page": "/swift/latest/workspace/internals/api/", - "line": 13, + "text": "YAMLWorkspaces", + "page": "/swift/latest/workspace/internals/examples/", + "line": 19, "why": "not defined in the stated port" }, { "port": "swift", - "text": "Sendable", - "page": "/swift/latest/workspace/internals/api/", - "line": 21, + "text": "TmuxWorkspace", + "page": "/swift/latest/workspace/internals/guides/", + "line": 13, "why": "not defined in the stated port" }, { "port": "swift", - "text": "Hashable", - "page": "/swift/latest/workspace/internals/api/", - "line": 21, + "text": "TmuxFixture", + "page": "/swift/latest/workspace/internals/guides/", + "line": 14, "why": "not defined in the stated port" }, { "port": "swift", - "text": "Codable", - "page": "/swift/latest/workspace/internals/api/", - "line": 21, + "text": "TmuxWorkspace", + "page": "/swift/latest/workspace/internals/", + "line": 33, "why": "not defined in the stated port" }, { "port": "swift", "text": "YAMLWorkspaces", - "page": "/swift/latest/workspace/internals/api/", - "line": 24, + "page": "/swift/latest/workspace/internals/", + "line": 38, "why": "not defined in the stated port" }, { "port": "swift", "text": "YAMLWorkspaces", - "page": "/swift/latest/workspace/internals/examples/", + "page": "/swift/latest/workspace/internals/topics/", "line": 19, "why": "not defined in the stated port" }, { "port": "swift", "text": "TmuxWorkspace", - "page": "/swift/latest/workspace/internals/guides/", + "page": "/swift/latest/workspace/reference/", "line": 13, "why": "not defined in the stated port" }, { "port": "swift", - "text": "TmuxFixture", - "page": "/swift/latest/workspace/internals/guides/", - "line": 14, + "text": "Sendable", + "page": "/swift/latest/workspace/reference/", + "line": 21, "why": "not defined in the stated port" }, { "port": "swift", - "text": "TmuxWorkspace", - "page": "/swift/latest/workspace/internals/", - "line": 33, + "text": "Hashable", + "page": "/swift/latest/workspace/reference/", + "line": 21, "why": "not defined in the stated port" }, { "port": "swift", - "text": "YAMLWorkspaces", - "page": "/swift/latest/workspace/internals/", - "line": 38, + "text": "Codable", + "page": "/swift/latest/workspace/reference/", + "line": 21, "why": "not defined in the stated port" }, { "port": "swift", "text": "YAMLWorkspaces", - "page": "/swift/latest/workspace/internals/topics/", - "line": 19, + "page": "/swift/latest/workspace/reference/", + "line": 24, "why": "not defined in the stated port" }, { diff --git a/site/src/integrations/inventory.ts b/site/src/integrations/inventory.ts index 26560b8b..d8ac7135 100644 --- a/site/src/integrations/inventory.ts +++ b/site/src/integrations/inventory.ts @@ -26,12 +26,56 @@ import { API_MODELS, PORT_NAME, ownersOf, pageSlug } from '../lib/api-models' * reader, so a wrong one breaks their links, not ours, and nothing here * would have reported it. */ +/** + * A URI as intersphinx reads it: relative to the directory holding the + * inventory, never to the site root. + * + * `rooted` is what tells the two apart. The combined inventory sits at + * `/objects.inv` and needs the `reference/{p.packageName}
- API reference + API reference
)) diff --git a/site/src/pages/page-links.json.ts b/site/src/pages/page-links.json.ts index dd13a23b..6077623a 100644 --- a/site/src/pages/page-links.json.ts +++ b/site/src/pages/page-links.json.ts @@ -4,6 +4,7 @@ import { referenceAlternatives } from '../lib/api-models' import { PORTS, referenceUrl } from '../lib/ports' import { buildLocale } from '../i18n/resolve' import { DEFAULT_LOCALE } from '../i18n/locales' +import { defaultVersionFor } from '../lib/versions' /** Verified reference targets for the shell injected into native API pages. */ export const GET: APIRoute = () => { @@ -23,7 +24,7 @@ export const GET: APIRoute = () => { } return new Response(JSON.stringify({ schema: 1, - indexes: Object.fromEntries(PORTS.map((port) => [port.slug, referenceUrl(port)])), + indexes: Object.fromEntries(PORTS.map((port) => [port.slug, referenceUrl(port, defaultVersionFor(port.slug))])), symbols, }), { headers: { 'Content-Type': 'application/json' } }) } diff --git a/site/src/pages/reference/[...slug].astro b/site/src/pages/reference/[...slug].astro index 60966c22..c8905e1c 100644 --- a/site/src/pages/reference/[...slug].astro +++ b/site/src/pages/reference/[...slug].astro @@ -8,10 +8,12 @@ import { pagePortsFor } from '../../lib/page-ports-for' import BaseLayout from '../../layouts/BaseLayout.astro' import { withRoot } from '../../lib/site-root' import { API_MODELS, API_NAV, OWNER_KINDS, PORT_NAME, indexFor, ownersOf, pageSlug, referenceHref, topLevelTypesOf } from '../../lib/api-models' -import { PORT_BY_SLUG } from '../../lib/ports' +import { PORT_BY_SLUG, referenceUrl } from '../../lib/ports' +import { productApiHref } from '../../lib/product-api' import { symbolSource } from '../../lib/markdown-twins' import { DEFAULT_LOCALE } from '../../i18n/locales' import { buildLocale } from '../../i18n/resolve' +import { buildTarget, defaultVersionFor } from '../../lib/versions' import ApiDoc from '../../components/api/ApiDoc.astro' import ApiTree from '../../components/api/ApiTree.astro' import { navTree } from '../../lib/api-tree' @@ -34,12 +36,9 @@ import '../../styles/vendor/gp-sphinx-api.css' */ export async function getStaticPaths() { - // Only the root build. This route would otherwise render inside all - // fourteen shell builds, the way `[port]/index.astro` used to. - // The root build of the default locale only. The reference is not - // translated — a `/ja/reference/` tree would be the English body under - // another locale's prefix, which is what placeholders exist to avoid. - if (process.env.LIBTMUX_DOCS_PORT) return [] + // The default locale only. The reference is not translated — a + // `/ja/…/reference/` tree would be the English body under another locale's + // prefix, which is what placeholders exist to avoid. if (buildLocale() !== DEFAULT_LOCALE) return [] // Typed explicitly: inferring from the first element gives every field the @@ -47,27 +46,40 @@ export async function getStaticPaths() { const paths: { params: { slug: string | undefined } props: { model: ApiModel | undefined; owner: ApiSymbol | undefined; searchable?: boolean } - }[] = [{ params: { slug: undefined }, props: { model: undefined, owner: undefined } }] - - for (const [port, model] of Object.entries(API_MODELS)) { - const productIds = new Set([ - ...symbolsForProduct(model, 'mcp'), - ...symbolsForProduct(model, 'workspace'), - ].map((symbol) => symbol.id)) - paths.push({ params: { slug: port }, props: { model, owner: undefined } }) - // Every symbol, not only the types with members. A method that lives as - // an anchor on someone else's page cannot be listed in a sidebar, cannot - // carry its own examples, and cannot be linked to as a page — which was - // true of all but the owning types. - // - // `slug` comes from the model rather than from `pageSlug` because it has - // to be injective; see its comment in model.ts. - for (const owner of model.symbols) { - paths.push({ - params: { slug: `${port}/${owner.slug ?? pageSlug(owner.publicId ?? owner.id)}` }, - props: { model, owner, searchable: !productIds.has(owner.id) }, - }) - } + }[] = [] + + // The root build carries the hub alone: one page listing every port's + // reference. Each port's own tree is built inside that port's shell, where + // `base` is already `/{m.symbols.filter((s) => s.doc?.summary).length} documented, {' '}{topLevelTypesOf(m).length} types @@ -712,10 +738,10 @@ const title = owner is a URL, and that is the whole feature. */}
- + View as Markdown -
@@ -740,7 +766,7 @@ const title = owner