Skip to content

Demo: SDK Reference product (compact layout, 10-SDK polyglot reference)#406

Open
Devon-White wants to merge 9 commits into
mainfrom
demo/sdk-reference-flat
Open

Demo: SDK Reference product (compact layout, 10-SDK polyglot reference)#406
Devon-White wants to merge 9 commits into
mainfrom
demo/sdk-reference-flat

Conversation

@Devon-White

Copy link
Copy Markdown
Collaborator

What

Adds the SDK Reference product (same as #337) for all 10 SignalWire SDKs, but rendered with the compact / single-page-per-class layout instead of nested per-symbol.

TypeScript · Python · Ruby · Go · Java · .NET · PHP · Rust · C++ · Perl

Compact vs nested

In the compact layout a class folds its methods and properties inline onto its own page, while keeping the nested folder hierarchy. The result is far fewer pages:

Pages
Compact (this PR) 4,632
Nested (#337) 14,573
Reduction −68%

Per language (compact): TS 581 · Python 745 · Ruby 382 · Go 833 · Java 210 · Perl 899 · PHP 136 · .NET 175 · C++ 350 · Rust 321.

What's in the diff

Hand-written (2 files):

Generated (under fern/products/sdk-reference/<language>/):

  • Every .mdx carries auto_generated: true; rewritten on each pipeline run
  • All 10 SDKs generated fresh from latest source

Purpose

Demo/preview to compare the compact single-page-per-class structure against the nested demo (#337) at scale.

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

@Devon-White Devon-White force-pushed the demo/sdk-reference-flat branch 4 times, most recently from 28346a1 to ce5f3a8 Compare June 12, 2026 00:37
Own sdk-reference product (like #337), compact layout — true to each SDK's
structure: every container page (module/package, class) holds its direct
members inline, including its type definitions (interfaces/enums bundle onto
the page; nested classes keep their own page). Repo-local non-shipped code
(examples/, internal port-audit tooling) is excluded; shipped CLIs are kept.

- 2,023 pages (vs 14,573 nested in #337 — ~86% fewer)
- fern-check: 0 broken links
- 2 hand-written: fern/docs.yml entry + sdk-reference.yml (nav)

Requires pipeline branch Devon-White/lustri fix/sdk-reference-compact-quality.
@Devon-White Devon-White force-pushed the demo/sdk-reference-flat branch from ce5f3a8 to 330529d Compare June 12, 2026 10:24
Devon-White and others added 8 commits June 12, 2026 07:44
Regenerated all 10 SDKs from latest source. Prose-safety fixes:
- placeholder example URLs (http://host:port, http://127.0.0.1:NNNN,
  http://hostFallback:portFallback{path}) wrapped in code so Fern no longer
  auto-links + rejects them as Invalid URL.
- C#/Java XML-doc <code>/<c> inline tags now render as code spans instead of
  literal &lt;code> text (58 dotnet + 2 java pages).

fern check: 3 errors -> 0 (0 broken links).
Apply the namespace_shape editorial overlay so all 10 SDKs share the four
conceptual areas of the manual server-SDK reference:
  - agents  — the AI/agent surface (the bulk: agent-base, swml, swaig,
              skills, prefabs, pom, livewire, contexts, datamap, server, …)
  - relay   — the RELAY client subtree (call, message, actions, events)
  - rest    — the REST client + resource namespaces
  - core    — foundational surface (logging, webhook-signature security, utils)

Replay-safe (only modulePath/parentId change). SDKs that keep loose
top-level members (root factory functions / version constants) retain a
small root-namespace page for them. fern check: 0 broken links.
Collapse the SDK's REST `namespaces` grouping so resource clients (addresses,
calling, compat, video, …) render directly under rest/ — matching the
hand-written server-SDK reference — for the SDKs whose resources are
sub-modules. fern check: 0 broken links.
…lay/relay doubling

- python: lift *Action classes into relay/actions/ and group auth/config under
  agents/configuration/ — matching the manual server-SDK reference. Same for
  rust/dotnet (actions) and typescript (configuration).
- go/java/php: fix relay/rest path doubling (their extractors include the
  module's own name in module_path, producing relay/relay) by flattening the
  duplicated wrapper.

fern check: 0 broken links.
Regenerate all 10 SDK references (compact layout) and restructure the
sidebar to match the hand-written server-sdks reference.

Navigation (sdk-reference.yml): each language now lists four explicit
top-level sections — Core / Agents / RELAY / REST Client — instead of a
single auto-expanded ./<lang> folder. This gives a clean, curated sidebar
and excludes package-root wrapper pages.

Content (Lustri namespace_shape + compact-layout fixes):
- REST namespaces that wrap a single resource class (addresses, chat, mfa,
  queues, …) now render that class's methods inline on the namespace page
  instead of a redundant nested <name>-resource/ subpage. Multi-resource
  namespaces (compat, fabric, video, …) stay expanded.
- relay/call no longer double-renders (module + class) — single page.
- TypeScript top-level free functions are routed into their namespace:
  the skill-registry helpers live under Agents; the restClient factory
  (duplicate of the RestClient class already under REST) is dropped.

Backed by Lustri engine fixes (collapse single-class modules, root-level
free-function moves, synth-chain container reuse).
…mapping

Regenerate all 10 SDKs after the namespace engine + perl extractor fixes:
- python/ruby: skill-registry helper functions now surface under Agents
  (routed off the package-root module).
- perl: Core/Agents now map fully (the PPI double-nesting bug is fixed),
  and the package facade lands under Core.
- typescript, go, dotnet, perl: clean four-section trees.
- java/php/cpp/rust retain a nav-excluded package-root facade dir (facade
  class shares the package-namespace name, so it can't be routed by name).
…rust)

The cascade fix lets the package-root facade route into Core without
dragging the relay/rest buckets, so java/php/cpp/rust no longer carry a
nav-excluded wrapper dir — their factory + skill-helper entry points now
appear under Core. perl comment cleanup. 8/10 SDKs are fully clean.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant