SDKs, apps & benchmarks
Every SDK, integration, app, and benchmark repo in the org.
Snapshot date: 2026-10-19. Sources: gh repo list Lore-Hex (47 repos), gh api (fork/parent,
commits, releases), shallow clones of each repo (READMEs, manifests, workflows, PARITY docs), and
public registry lookups (PyPI, npm, crates.io, proxy.golang.org, Maven Central).
Scope: the 32 repos below. The other 15 (quill-router, quill-cloud-proxy, quill-cloud-infra,
trustedrouter-confidential-stack, token-exchange-neocloud-in-a-box, trustedrouter-onprem,
trustedrouter-provider-check, lightning-router, reverse-harness, TrustedRouter-Fusion-Draco,
SREChat, OpenChat, AllRouter, BurstyRouter, trustedrouter-eu) are in 09-repos-platform.md.
32 + 15 = 47, so every repo in the org is covered by one of the two docs. All repos are public.
None are archived.
"30d commits" counts commits on the default branch since 2026-09-19. Many repos show a last commit of 2026-08-16. On that date the same CODEOWNERS and SECURITY.md commits landed across the org, so 2026-08-16 usually means "no real work since then."
1. Master table
| Repo | Category | Lang | Registry: name @ published version | Last commit (default branch) | 30d commits | Fork? | One-line purpose |
|---|---|---|---|---|---|---|---|
| trusted-router-py | SDK | Python | PyPI trusted-router-py @ 0.9.0 (import trustedrouter, CLI trustedrouter) |
2026-10-15 | 4 | original | Reference SDK: sync and async clients, attestation, receipts, OAuth, orchestration |
| trusted-router-js | SDK + CLI | TS/JS | npm @lore-hex/trusted-router @ 0.10.1 (bin trustedrouter) |
2026-10-15 | 21 | original | JS/TS SDK and the official trustedrouter CLI. Runs on Node 20+, Deno, Bun, and browsers |
| trusted-router-go | SDK + CLI | Go | Go module github.com/Lore-Hex/trusted-router-go @ v0.5.0 |
2026-09-20 | 3 | original | Zero-dependency Go SDK. Its PARITY.md is the most detailed spec of the two-plane and retry rules |
| trusted-router-rust | SDK + C ABI | Rust | crates.io trusted-router @ 0.5.1. trusted-router-ffi is not on crates.io; it is built as release artifacts |
2026-10-16 | 5 | original | Async and blocking Rust, plus a stable C ABI |
| trusted-router-java | SDK | Java/Kotlin/Android | README says Maven com.trustedrouter:trusted-router:0.4.0. Not found on Maven Central (search and repo1 both return nothing) |
2026-09-26 | 3 | original | JVM and Android SDK on OkHttp, with a CompletableFuture facade |
| trusted-router-swift | SDK | Swift | SwiftPM via git tag 0.9.0 (no v prefix). No registry |
2026-09-20 | 3 | original | Zero-dependency Swift (URLSession and CryptoKit). Supports macOS 13, iOS 16, tvOS, watchOS, and Linux |
| trusted-router-sdk-conformance | SDK test harness | Python | not published (tr-conformance CLI) |
2026-10-03 | 3 | original | Black-box TLS fault-injection suite. Runs 25 scenarios against all 6 SDKs |
| llm-trustedrouter | Integration | Python | PyPI llm-trustedrouter @ 0.1.0 |
2026-10-10 | 1 | original | Plugin for Simon Willison's llm CLI |
| openclaw-trustedrouter | Integration | TS | npm @lore-hex/openclaw-trustedrouter @ 0.1.0 (also on ClawHub) |
2026-10-10 | 1 | original | Provider plugin for OpenClaw |
| hermes-trustedrouter | Integration | Python | not published. Users install it by copying or symlinking into $HERMES_HOME |
2026-09-11 | 0 | original | Model-provider plugin for NousResearch Hermes Agent |
| agent-zero-trustedrouter | Integration | YAML/config | not published (Agent Zero plugin index or git clone) | 2026-08-16 | 0 | original | Chat and embeddings provider for Agent Zero |
| n8n-nodes-trustedrouter | Integration | TS | npm n8n-nodes-trustedrouter @ 0.1.3 |
2026-08-16 (pushed 10-02 on another branch) | 0 | original | n8n community node: Chat Completions, Responses, routing, tools |
| llama-index-llms-trustedrouter | Integration | Python | PyPI llama-index-llms-trustedrouter @ 0.1.0 |
2026-08-16 | 0 | original | Thin LlamaIndex OpenAILike subclass |
| trustedrouter-ai-sdk-provider | Integration | TS | intended npm @trustedrouter/ai-sdk-provider 0.1.0. Not on npm |
2026-08-16 | 0 | original | Vercel AI SDK provider built on @ai-sdk/openai-compatible |
| aisdk | Upstream fork | R | upstream CRAN-style aisdk 1.5.0 |
2026-08-16 | 0 | fork of YuLab-SMU/aisdk | Staging fork. Branch feat/trustedrouter-provider-discovery. Upstream PR #36 is open |
| aisdk.providers | Upstream fork | R | upstream aisdk.providers 0.1.0 |
2026-08-16 | 0 | fork of YuLab-SMU/aisdk.providers | Branch feat/trustedrouter-provider. Upstream PR #1 is open |
| LLM-advisor | Agent skill / MCP | Python + Markdown | ChatGPT directory submission (see submission/) |
2026-10-01 | 2 | original | "Model Advisor" skill and public read-only MCP for choosing models by cost, speed, and privacy |
| QuillCode | App (macOS) | Swift | DMG through GitHub Releases (tester-latest) |
2026-09-15 (pushed 10-18) | 0 | original | "Quill Cowork": a native Swift coding agent. Also ships the locked Confidential Cowork by TrustedRouter build |
| confidential-cowork-desktop | App (macOS) | TS (Bun) | signed macOS packages linked from trustedrouter.com/confidential-cowork | 2026-10-18 | 7 | original (snapshot port of anomalyco/opencode 2.0.32) | "Trusted Cowork" desktop agent. Every request uses trustedrouter/confidential and there is no fallback |
| trpi | App (CLI) | TS | GitHub Releases binaries (tr-cowork) |
2026-10-03 | 1 | original (distribution of earendil-works/pi) | "TR Confidential Cowork" terminal coding harness. Built on Pi, with TrustedRouter as the default provider |
| FastWorker | Upstream fork / app | Python | none | 2026-08-16 | 0 | fork of andrewyng/openworker | Branch add-trustedrouter-provider. Upstream PR andrewyng/openworker#25 is open |
| openclaw | Upstream fork | TS | none | 2026-08-16 | 0 | fork of openclaw/openclaw | Branch codex/add-trustedrouter-provider. Upstream PRs #83586, #92544, and #97136 are all closed. The supported path is now the plugin repo |
| hermes-agent | Upstream fork | Python | none | 2026-08-16 | 0 | fork of NousResearch/hermes-agent | Branch codex/add-trustedrouter-provider. Upstream PRs #27974 and #53364 are closed. Hermes policy requires a standalone plugin, which is why hermes-trustedrouter exists |
| QuillUI | App framework | Swift | none | 2026-08-15 | 0 | original | Lets Apple SwiftUI/AppKit source build on Linux (Enchanted/Quill Chat port). Not TR-specific |
| OllamaKit | Library fork (detached) | Swift | none | 2026-08-16 | 0 | not a GitHub fork. A detached copy of kevinhermawan/OllamaKit | Adds Alamofire Session injection so Quill Chat can pin certificates. Not TR-specific |
| QuiLLM | Model research | Python | model files through releases and docs | 2026-10-16 | 5 | original | Qwen3 political-censorship reduction experiment for QuillOS. Needs no TR account |
| PrometheusBench | Benchmark | Python | none. Depends on trusted-router-py>=0.3.0 |
2026-09-02 | 0 | original | Short-prompt refusal and permissiveness benchmark (bio, LLM research, ...). Has a Fusion run guide |
| prometheus-biomysterybench | Benchmark | Python | none (huggingface_hub, raw TR HTTP) |
2026-08-16 | 0 | original | Local Dockerized harness for Anthropic's BioMysteryBench public preview |
| TrustedRouter-ExploitBench | Benchmark (notes) | YAML/Markdown | none | 2026-08-16 | 0 | original (references upstream exploitbench) | Runbook and configs for running ExploitBench V8 through TR, including Fusion as a model |
| Prometheus-ExploitBench | Benchmark (research) | Python | none | 2026-08-16 | 0 | original | First-party ExploitBench reproduction. Documents Opus "thinking-only" degeneration |
| FreedomBench | Benchmark | Python | none. Depends on trusted-router-py>=0.3.0 |
2026-08-31 | 0 | original | 60-question multiple-choice benchmark on PRC-censored facts. No judge model |
| trustedrouter-benchmarks | Benchmark | Python | none. Depends on trusted-router-py>=0.3.0 |
2026-08-16 | 0 | original | IFEval, MMLU-Pro, SciCode, and others on Chinese open-weight models through TR |
Activity summary. Repos with active work in the last 30 days: trusted-router-js (21), confidential-cowork-desktop (7), trusted-router-rust (5), QuiLLM (5), and py/go/java/swift/conformance (3–4 each). Repos dormant since mid-August: most third-party integrations, all R/agent forks, all benchmarks except FreedomBench and PrometheusBench (both early September).
Version drift and gotchas.
- GitHub Releases pages lag the registries. py shows release v0.5.0 while PyPI has 0.9.0. js shows
v0.7.0 while npm has 0.10.1. Java shows v0.2.1 while the latest tag is v0.4.0. Treat tags and registries as the source of
truth, not the Releases page.
- The Java SDK's README advertises Maven Central 0.4.0, but the artifact cannot be found on Central.
Check this before telling customers to use it.
- trustedrouter-ai-sdk-provider is not on npm, although the README says npm install
@trustedrouter/ai-sdk-provider. Its publish workflow only runs on a GitHub Release, and none has
been cut.
- Swift tags have no v prefix (0.9.0). Every other SDK uses vX.Y.Z.
- Apps pin old SDKs. confidential-cowork-desktop pins @lore-hex/trusted-router 0.4.0, while npm
has 0.10.1. QuillCode requires trusted-router-swift from: 0.6.1.
- The confidential-cowork-desktop repo description says "based on Pi Desktop", but its README and
UPSTREAM.md say it is a port of OpenCode 2.0.32. The Pi-based product is trpi.
2. SDK feature matrix
Built from each SDK's README and PARITY.md, plus source greps. "Y" means a dedicated public API.
"via builder/alias" means it is reachable through the orchestration tool builders or the
trustedrouter/fusion model alias, without a dedicated method.
| Feature | py | js | go | rust | java | swift |
|---|---|---|---|---|---|---|
| Chat Completions (typed) | Y | Y | Y | Y | Y | Y |
SSE streaming (chunks/text/raw, fail-closed on missing [DONE]) |
Y | Y | Y | Y | Y | Y |
| Responses API and Responses SSE events | Y | Y | Y | Y | Y | Y |
| Responses input-token count | Y | Y | Y | Y | Y | Y |
| Anthropic Messages | Y | Y | Y | Y | Y | Y |
| Embeddings | Y | Y | Y | Y | Y | Y |
Fusion (fusion()) |
Y | Y | Y | via synth_tool / FUSION_MODEL |
Y (synth, fusion) |
via fusionModel alias and builders |
| Orchestration builders (Synth, Advisor, Selector, MapReduce, Subagent) | Y | Y | Y | Y | Y | Y |
| Routing and privacy aliases (auto, fast, zdr, e2e, confidential, eu, us, ...) | Y | Y | Y | Y | Y | Y |
| Gateway attestation verification (GCP Confidential Space JWT, nonce, image, TLS leaf) | Y ([attestation] extra) |
Y (WebCrypto) | Y (strongest: TLS-exporter session binding) | Y (exporter passed explicitly) | Y (cert-bound; exporter if caller supplies it) | Y |
| Attested session helper | Y (session.py) |
Y (session.ts, attest --session) |
Y | — | — | Y |
| Inference receipt verification (Ed25519 JWS) | Y (receipts.py) |
Y (receipts.ts) |
Y (receipts.go) |
Y (receipts.rs) |
Y (ReceiptVerifier) |
Y |
| OAuth credit delegation (PKCE, loopback) | Y | Y | Y | Y | Y (+ Android deep links) | Y |
| Control plane: models, providers, regions, credits, activity | Y | Y | Y | Y | Y | Y |
| Broadcast destinations CRUD | Y | Y | Y | Y | Y | Y |
| Billing checkout / stablecoin checkout | Y / Y | Y / Y | Y / Y | Y / Y | Y / Y | partial / — |
Two-plane split (inference api.trustedrouter.com/v1, control trustedrouter.com/v1) |
Y | Y | Y | Y | Y | Y |
Retry, Retry-After, x-should-retry, generated idempotency keys |
Y | Y | Y | Y | Y | Y |
Client telemetry: x-tr-client header |
Y | Y | Y | Y | Y | Y |
Client telemetry: /v1/client-events beacon |
Y | Y | Y | deferred (documented) | Y | Y |
| Bundled CLI | Y (trustedrouter) |
Y (trustedrouter: chat, models, attest, trust, ...) |
Y (cmd/trustedrouter) |
— | — | — |
| Extra runtime targets | async | Node, Deno, Bun, browser | — | blocking facade, C ABI (trusted-router-ffi) |
Kotlin, Android, CompletableFuture | iOS, tvOS, watchOS, Linux |
| Runtime deps | httpx-based | none (no native deps) | none | reqwest/rustls | OkHttp | none |
| Conformance-suite driver | Y | Y | Y | Y | Y | Y |
The Go PARITY.md is the reference for the "two-plane routing" and "stream-open retry" divergences from the older py/js behavior. Rust and Java PARITY.md say they follow the Go contract.
3. SDKs: testing, release, and conformance
| SDK | CI (.github/workflows) |
Release trigger | Publish mechanism | Extra gates |
|---|---|---|---|---|
| py | ci.yml, conformance.yml, release.yml |
push of tag vX.Y.Z |
PyPI Trusted Publishing (uv) | ruff, boundary_check.py, mypy, pytest, mutation_check.py |
| js | ci.yml, conformance.yml, release.yml |
push of tag vX.Y.Z |
npm granular token | build, lint, type-tests, attw/publint, test |
| go | ci.yml, conformance.yml |
git tag (Go proxy picks it up) | none needed | parity_test.go compile-time symbol gate, deep conformance tests |
| rust | ci.yml, conformance.yml, live-smoke.yml, release.yml |
tag v* (workflow_dispatch refuses non-tag refs) |
cargo publish -p trusted-router --locked, plus FFI release build |
clippy, rustfmt, live smoke |
| java | ci.yml, conformance.yml, release.yml |
tag v* |
vanniktech maven-publish to Maven Central (artifact not currently visible on Central) | errorprone, javadoc, mutation_check.py, gradle wrapper validation |
| swift | ci.yml, conformance.yml |
git tag (no v) |
SwiftPM git; scripts/build-artifact.py for a clean archive |
— |
trusted-router-sdk-conformance
- What it is: one black-box suite run against all six SDKs. A thin per-language driver (
drivers/{python,javascript,go,rust,java,swift}) calls the SDK's real public API. The driver pointshttps://api.trustedrouter.comat an ephemeral TLS loopback fault server with a throwaway CA. A shared oracle then checks both the normalized result and the wire transcript. - Scenarios (25,
scenarios/*.json): success; retry on 503, 500, and 429;x-should-retrytrue/false verdicts; retry exhaustion; transport disconnect; telemetry across retries; reserved-header opt-out; terminal 401; truncated and malformed SSE; cross-origin redirect; generated idempotency keys (with and without a disconnect); unsafe POST replay; body timeout; caller cancellation; credential-free OAuth plus OAuth redirect; chat and Responses typed-model preservation; retry on a truncated or stalled error body. - Coverage (docs/coverage.md): all 6 SDKs pass all 7 capability groups (core retry and telemetry, SSE integrity, redirect isolation, safe replay, body timeout and cancellation, credential-free OAuth, typed model preservation). The v0.2 gate allows no skips.
- Not covered by the shared matrix: regional affinity/failover, first-frame streaming deadlines, SSE heartbeat idle timing, and cryptographic attestation validation. Each SDK covers these only in its own native tests.
- Wiring: each SDK's
conformance.ymlcalls the reusable workflowLore-Hex/trusted-router-sdk-conformance/.github/workflows/sdk-pr.yml@mainon PRs. The harness's ownconformance.ymlruns on PR and push, nightly (cron17 4 * * *), and onrepository_dispatch(sdk-conformance). Its manual dispatch takes a ref input for each SDK. - Not covered at all: the integrations, apps, and benchmarks. Integrations do not use the SDKs (see §4).
4. Integrations and plugins
Every first-party integration is a thin OpenAI-compatible wrapper. Each one points at
https://api.trustedrouter.com/v1 and reads the model catalog from GET /v1/models. None of
them depends on an official SDK, so none of them gets attestation, receipts, or SDK retry
semantics, and the conformance suite does not cover them.
| Repo | Host framework | Built on | Features | Tests / release |
|---|---|---|---|---|
| llm-trustedrouter | llm CLI |
llm>=0.27, httpx |
chat, streaming, catalog cached 1h, llm trustedrouter models |
test.yml (pytest-httpx). Published to PyPI 0.1.0 |
| openclaw-trustedrouter | OpenClaw >=2026.9.9 (peer dep) |
native plugin (openclaw.plugin.json), openai-completions API |
chat, streaming, default trustedrouter/auto, its own catalog fetch (catalog is larger than OpenClaw's 4 MiB discovery cap). README links to the attestation docs |
vitest test.yml. npm and ClawHub 0.1.0 |
| hermes-trustedrouter | Hermes Agent user plugin | Python provider profile | chat, model list | test.yml. Not published (git copy or symlink) |
| agent-zero-trustedrouter | Agent Zero | plugin.yaml + conf/ |
chat and embeddings providers, trustedrouter/* routing aliases |
no CI |
| n8n-nodes-trustedrouter | n8n | n8n-workflow node + credential | Chat Completions, Responses, auto routing, fallbacks, tags, tools | ci.yml. publish.yml runs on a bare semver tag. npm 0.1.3. Waiting on n8n verification |
| llama-index-llms-trustedrouter | LlamaIndex | llama-index-llms-openai-like |
complete, chat, stream | test.yml. publish.yml runs on a GitHub Release. PyPI 0.1.0 |
| trustedrouter-ai-sdk-provider | Vercel AI SDK | @ai-sdk/openai-compatible v1 |
generateText/streamText through trustedrouter('<model>') |
test.yml. publish.yml runs on a GitHub Release. Not on npm yet |
| LLM-advisor | Codex, Claude Code, Hermes, ChatGPT | SKILL.md, agents/, plugins/, public read-only MCP |
Model selection by cost, speed, privacy, and route. Cost estimates. Three-prompt eval planning. No key needed | plugin-validation.yml. ChatGPT directory submission in submission/chatgpt-2026-09.md |
Upstream-contribution forks (staging branches only; main is just the CODEOWNERS/SECURITY commits)
| Fork | Upstream | TR branch | Upstream PR status | Takeaway |
|---|---|---|---|---|
| aisdk | YuLab-SMU/aisdk | feat/trustedrouter-provider-discovery |
#36 open (2026-07-25) | Waiting on the R maintainers |
| aisdk.providers | YuLab-SMU/aisdk.providers | feat/trustedrouter-provider |
#1 open (2026-07-25) | Waiting on the R maintainers |
| FastWorker | andrewyng/openworker | add-trustedrouter-provider |
#25 open (2026-07-23) | Also branded "FastWorker: open-source desktop AI worker powered by TR" |
| openclaw | openclaw/openclaw | codex/add-trustedrouter-provider |
#83586, #92544, #97136 closed | Abandoned in favor of openclaw-trustedrouter |
| hermes-agent | NousResearch/hermes-agent | codex/add-trustedrouter-provider |
#27974, #53364 closed | Abandoned in favor of hermes-trustedrouter |
The forks are thousands of commits behind upstream (openclaw: 63,960; hermes: 43,577). Don't
build on their main. Rebase the TR branch onto upstream when refreshing a PR.
5. Apps
| Repo | What | TR coupling | Build / test / release |
|---|---|---|---|
| QuillCode ("Quill Cowork" and "Confidential Cowork by TrustedRouter") | Native Swift macOS coding agent: chat, local tools, Git worktrees, Computer Use, automations, terminal, verified updater with rollback | Uses trusted-router-swift (from: 0.6.1). Has TrustedRouterIntegration.swift and TrustedRouterPromptCaching.swift. The Confidential build is locked to trustedrouter/confidential and the official endpoint, applies US/EU policy, and fails closed |
10 workflows: ci, live-trustedrouter-smoke (scripts/live-tr-smoke.sh), real-world-smoke, merge-train, signing for three app identities, downloads, website. Ships a DMG through the tester-latest release |
| confidential-cowork-desktop ("Trusted Cowork") | Bun/TS desktop agent. Snapshot port of OpenCode 2.0.32 onto the V2 core | packages/desktop depends on @lore-hex/trusted-router 0.4.0. PKCE sign-in, model allowlist, trustedrouter/confidential default, no fallback backend, telemetry off. README says it does not verify attestation on the client socket |
trusted-cowork-ci.yml. Signed macOS packages linked from the TR site, manual updates. See TRUSTED-COWORK.md and UPSTREAM.md |
trpi ("TR Confidential Cowork" CLI, tr-cowork) |
Terminal coding harness. TR-first distribution of the Pi Agent Harness | TR catalog is the default, with a live /model selector. State lives in ~/.tr-confidential-cowork/agent |
ci.yml, build-binaries.yml, npm-audit.yml. Binaries on GitHub Releases with SHA256SUMS |
| FastWorker | Fork of andrewyng/openworker with a TR provider | provider branch only | see §4 |
| QuillUI | Lets Apple Swift app source build on Linux (Enchanted/Quill Chat, Signal port, SceneKit lane) | none directly. QuillOS ecosystem | linux/macos CI, enchanted-parity, solderscope |
| OllamaKit | Detached copy of kevinhermawan/OllamaKit with an Alamofire Session injection parameter |
none. Used by Quill Chat for certificate pinning to quill.local.lorehex.co |
code-quality, docs deploy |
| QuiLLM | Qwen3 experiment that reduces political censorship in a local QuillOS assistant: data, 151 optimizer trials, model files | none (no TR key needed) | check.yml |
6. Benchmarks
| Repo | What it measures | How it calls TR | Notes |
|---|---|---|---|
| PrometheusBench | Model permissiveness on short, clearly unsafe prompts (biology, LLM research, ...) | trusted-router-py>=0.3.0. Optional Inspect task. run_fusion.md covers Fusion runs |
Carries a ban-risk warning. Includes an exploitbench/ subfolder and LESSONS doc |
| prometheus-biomysterybench | BioMysteryBench public preview: native tool-calling agent in a Docker bioinformatics container with local BLAST DBs | raw HTTP to api.trustedrouter.com |
RESULTS.md, blog post |
| TrustedRouter-ExploitBench | ExploitBench V8 ladder through TR, testing Fusion (panel plus synthesizing judge) as a single model | ExploitBench configs (e.g. trustedrouter-opus47-v8-native.yaml) |
Methodology only. Not a fork |
| Prometheus-ExploitBench | First-party ExploitBench reproduction on a CVP-verified Anthropic org. Finding: Opus at high effort degenerates to thinking-only turns | direct provider plus TR probes | Main artifact is blog/opus-thinking-only.md |
| FreedomBench | 60 multiple-choice questions on PRC-censored facts. Anything that is not a clear letter counts as a refusal | trusted-router-py>=0.3.0 (TRUSTEDROUTER_API_KEY) |
No judge model, deterministic scoring |
trustedrouter-benchmarks (trbench) |
IFEval, MMLU-Pro, SciCode, Terminal-Bench setup, and calibration on Chinese open-weight flagships | trusted-router-py>=0.3.0 |
REPORT.md, CALIBRATION.md, EVALS.md |
None of the benchmarks has CI. They are research artifacts, so expect them to be run by hand.
7. Ecosystem layers
flowchart TB
subgraph Apps["Apps (end-user products)"]
QC["QuillCode<br/>Quill Cowork + Confidential Cowork (Swift)"]
CCD["confidential-cowork-desktop<br/>Trusted Cowork (OpenCode port)"]
TRPI["trpi<br/>tr-cowork CLI (Pi)"]
FW["FastWorker (openworker fork)"]
end
subgraph Bench["Benchmarks / research"]
PB["PrometheusBench"]; FB["FreedomBench"]; TB["trustedrouter-benchmarks"]
BMB["prometheus-biomysterybench"]; XB["TR-/Prometheus-ExploitBench"]
end
subgraph Integrations["Third-party framework integrations (OpenAI-compatible, no SDK)"]
LLM["llm-trustedrouter"]; OC["openclaw-trustedrouter"]; HM["hermes-trustedrouter"]
AZ["agent-zero-trustedrouter"]; N8N["n8n-nodes-trustedrouter"]; LI["llama-index-llms-trustedrouter"]
AIS["trustedrouter-ai-sdk-provider"]; R["aisdk / aisdk.providers (R forks)"]; ADV["LLM-advisor (skill + MCP)"]
end
subgraph SDKs["Official SDKs (gated by trusted-router-sdk-conformance)"]
PY["trusted-router-py"]; JS["trusted-router-js (+CLI)"]; GO["trusted-router-go"]
RS["trusted-router-rust (+C ABI)"]; JV["trusted-router-java"]; SW["trusted-router-swift"]
CONF["trusted-router-sdk-conformance"]
end
subgraph API["TrustedRouter API (quill-router / quill-cloud-proxy)"]
INF["Inference plane<br/>api.trustedrouter.com/v1<br/>chat, responses, messages, embeddings, fusion, /attestation"]
CTL["Control plane<br/>trustedrouter.com/v1<br/>models, credits, billing, broadcast, oauth"]
TRUST["trust.trustedrouter.com<br/>trust release / JWKS"]
end
QC --> SW
CCD --> JS
TRPI --> INF
FW --> INF
PB --> PY
FB --> PY
TB --> PY
BMB --> INF
XB --> INF
LLM & OC & HM & AZ & N8N & LI & AIS & R --> INF
ADV --> CTL
CONF -. fault-injection tests .-> PY & JS & GO & RS & JV & SW
PY & JS & GO & RS & JV & SW --> INF
PY & JS & GO & RS & JV & SW --> CTL
PY & JS & GO & RS & JV & SW --> TRUSTDiagram source
flowchart TB
subgraph Apps["Apps (end-user products)"]
QC["QuillCode<br/>Quill Cowork + Confidential Cowork (Swift)"]
CCD["confidential-cowork-desktop<br/>Trusted Cowork (OpenCode port)"]
TRPI["trpi<br/>tr-cowork CLI (Pi)"]
FW["FastWorker (openworker fork)"]
end
subgraph Bench["Benchmarks / research"]
PB["PrometheusBench"]; FB["FreedomBench"]; TB["trustedrouter-benchmarks"]
BMB["prometheus-biomysterybench"]; XB["TR-/Prometheus-ExploitBench"]
end
subgraph Integrations["Third-party framework integrations (OpenAI-compatible, no SDK)"]
LLM["llm-trustedrouter"]; OC["openclaw-trustedrouter"]; HM["hermes-trustedrouter"]
AZ["agent-zero-trustedrouter"]; N8N["n8n-nodes-trustedrouter"]; LI["llama-index-llms-trustedrouter"]
AIS["trustedrouter-ai-sdk-provider"]; R["aisdk / aisdk.providers (R forks)"]; ADV["LLM-advisor (skill + MCP)"]
end
subgraph SDKs["Official SDKs (gated by trusted-router-sdk-conformance)"]
PY["trusted-router-py"]; JS["trusted-router-js (+CLI)"]; GO["trusted-router-go"]
RS["trusted-router-rust (+C ABI)"]; JV["trusted-router-java"]; SW["trusted-router-swift"]
CONF["trusted-router-sdk-conformance"]
end
subgraph API["TrustedRouter API (quill-router / quill-cloud-proxy)"]
INF["Inference plane<br/>api.trustedrouter.com/v1<br/>chat, responses, messages, embeddings, fusion, /attestation"]
CTL["Control plane<br/>trustedrouter.com/v1<br/>models, credits, billing, broadcast, oauth"]
TRUST["trust.trustedrouter.com<br/>trust release / JWKS"]
end
QC --> SW
CCD --> JS
TRPI --> INF
FW --> INF
PB --> PY
FB --> PY
TB --> PY
BMB --> INF
XB --> INF
LLM & OC & HM & AZ & N8N & LI & AIS & R --> INF
ADV --> CTL
CONF -. fault-injection tests .-> PY & JS & GO & RS & JV & SW
PY & JS & GO & RS & JV & SW --> INF
PY & JS & GO & RS & JV & SW --> CTL
PY & JS & GO & RS & JV & SW --> TRUST8. Which repo do I touch for X?
| I want to... | Touch | Also update |
|---|---|---|
| Add a new API endpoint or field to the SDKs | All six trusted-router-* SDKs. Start with py (reference) or go (PARITY spec) |
Each SDK's PARITY.md and CHANGELOG. Add a scenario in trusted-router-sdk-conformance if retry or wire behavior changes |
| Change retry, idempotency, redirect, or SSE semantics | The SDK transport layers (py _transport.py/_retry.py, js src/internal/transport.ts, go transport.go, rust transport/engine.rs, java internal/Transport.java, swift Core) |
trusted-router-sdk-conformance scenarios/ + docs/coverage.md |
| Change attestation or receipt verification | attestation.* and receipts.* in every SDK. Go has the strongest session binding |
Not in the conformance matrix, so add native tests in each SDK |
Add a model alias (e.g. a new trustedrouter/* route) |
Constants in all 6 SDKs (_constants.py, constants.go, constants.rs, Constants.swift, ...) |
Integration READMEs (agent-zero lists aliases), LLM-advisor references |
| Release an SDK | Push tag vX.Y.Z (Swift: X.Y.Z). py, js, rust, and java publish from CI. Go and Swift publish through the tag alone |
Bump the version constant (version.go, pyproject.toml, package.json, Cargo.toml workspace, VERSION_NAME). The GitHub Releases page is not kept up to date |
| Ship or fix the CLI | trusted-router-js (src/cli.ts) is the official npm CLI. py __main__.py and go cmd/trustedrouter also exist |
— |
| Add a C/C++ binding | trusted-router-rust/crates/trusted-router-ffi |
Rust release.yml FFI build |
Fix the llm / OpenClaw / Hermes / Agent Zero / n8n / LlamaIndex / Vercel AI SDK integration |
The matching *-trustedrouter repo (or trustedrouter-ai-sdk-provider) |
Publish: PyPI for llm and llama-index, npm for openclaw, n8n, and ai-sdk |
| Get TR into an upstream agent framework | Upstream PR from the matching fork's TR branch (aisdk, aisdk.providers, FastWorker). For OpenClaw and Hermes, use the plugin repos: upstream rejected in-tree providers | — |
| Help agents pick models | LLM-advisor |
— |
| Change the native Mac coding app or the Confidential Cowork lock-down | QuillCode |
trusted-router-swift if SDK changes are needed |
| Change the Trusted Cowork (Electron-style, OpenCode-based) desktop | confidential-cowork-desktop |
Bump its pinned @lore-hex/trusted-router (still 0.4.0) |
Change the terminal coding harness tr-cowork |
trpi |
— |
| Run or publish refusal or capability benchmarks | PrometheusBench, FreedomBench, trustedrouter-benchmarks, prometheus-biomysterybench, *-ExploitBench |
Use disposable keys (ban-risk warnings) |
| Linux SwiftUI / QuillOS work | QuillUI, OllamaKit, QuiLLM |
Not TrustedRouter product code |
| Router, gateway, billing, infra | Not here. See 09-repos-platform.md (quill-router, quill-cloud-proxy, quill-cloud-infra, ...) |
— |
9. Open issues worth a CTO's attention
- Java is not on Maven Central, although the README and release workflow say it is. Check the
Sonatype credentials and namespace for
com.trustedrouter. - The Vercel AI SDK provider was never published. It needs a GitHub Release, and the npm scope
@trustedrouterhas to exist. - Integrations skip the SDKs. They lose attestation, receipts, and SDK retry semantics, and the
conformance suite cannot cover them. Decide whether that is acceptable or whether the Python and
TS integrations should wrap
trusted-router-py/@lore-hex/trusted-router. - confidential-cowork-desktop pins SDK 0.4.0, six minors behind npm 0.10.1. This is a confidential-tier product.
- Attestation validation and regional failover are not in the shared conformance matrix.
docs/coverage.mdsays so explicitly. - The Releases pages are stale for py, js, and java. Customers and agents who read them will see wrong versions.