@nyuchi/mzizi-mcp 0.10.1 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,25 +1,48 @@
1
1
  # @nyuchi/mzizi-mcp
2
2
 
3
- > Model Context Protocol server for the Mzizi design system — the registry and skills served from files bundled at build time, the docs joined in from docs.mzizi.dev, and no database behind any of it.
3
+ > Model Context Protocol server for the Mzizi design system: the registry and skills served from files bundled at build time, the docs joined in from docs.mzizi.dev, and no database behind any of it. Free, with no account; sign-in only for Fundi.
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/%40nyuchi%2Fmzizi-mcp?style=flat-square&logo=npm)](https://www.npmjs.com/package/@nyuchi/mzizi-mcp)
6
6
  [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg?style=flat-square)](https://www.apache.org/licenses/LICENSE-2.0)
7
7
 
8
8
  **Live:** `https://mcp.mzizi.dev/mcp` | **Home:** [mzizi.dev](https://mzizi.dev) | **Docs:** [docs.mzizi.dev](https://docs.mzizi.dev)
9
9
 
10
- Mzizi is an open-architecture project governed by **Mzizi**, operated and
11
- developed by **Nyuchi**.
10
+ Owned and operated by **Mzizi**.
12
11
 
13
12
  ---
14
13
 
15
14
  **Live at** `https://mcp.mzizi.dev/mcp` (Cloudflare Worker `mzizi-mcp`, version
16
- 0.9.1 — `MZIZI_MCP_VERSION` in `src/server.ts` is what `serverInfo.version`
17
- reports, and it moves in lockstep with `package.json` and `server.json`). A
18
- **free WorkOS signup gate** fronts the endpoint — a WorkOS
19
- **Connect OAuth application** (public client, PKCE; no client secret) — so sign up
20
- once and read the whole registry at no cost. The worker advertises
21
- `/.well-known/oauth-protected-resource` so MCP clients can run the OAuth discovery
22
- dance automatically.
15
+ 0.11.1 — `MZIZI_MCP_VERSION` in `src/server.ts` is what `serverInfo.version`
16
+ reports, and it moves in lockstep with `package.json` and `server.json`).
17
+
18
+ ## Free, with no gate except Fundi
19
+
20
+ Connect with no account. An anonymous session can `initialize`, call
21
+ `tools/list` and call every tool except the Fundi ones:
22
+
23
+ | Access | Tools |
24
+ | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
25
+ | **free**, no account | `mzizi_search`, `mzizi_get_component`, `mzizi_list_components`, `mzizi_get_tokens`, `mzizi_get_architecture`, `mzizi_get_doctrine`, `mzizi_get_skills`, `mzizi_check_accessibility`, `mzizi_mcp_describe`, every `docs_*` tool |
26
+ | **sign-in** (free WorkOS account) | `mzizi_fundi`, `mzizi_report_issue`. They act as your Mzizi console user |
27
+
28
+ - Called without sign-in, the Fundi tools are still listed. They answer with a
29
+ tool error that starts `Sign-in required:` and says how to sign in.
30
+ - **To sign in**, use your client's sign-in or authenticate option for this
31
+ server, or connect to **`https://mcp.mzizi.dev/mcp/signin`**. That URL is the
32
+ same MCP, but it answers 401 until you sign in through a WorkOS **Connect
33
+ OAuth application** (public client, PKCE; no client secret), and then serves
34
+ every tool. Clients discover the authorization server through
35
+ `/.well-known/oauth-protected-resource`, including the path-specific
36
+ `/.well-known/oauth-protected-resource/mcp/signin`.
37
+ - A request to `/mcp` that carries a token is validated by the OAuth provider
38
+ exactly as before: a bad or expired token gets a 401, so a signed-in client
39
+ refreshes rather than dropping to the free tier.
40
+ - **Abuse guard:** anonymous requests are limited to 120 per 60 seconds per
41
+ client IP (a Workers rate-limit binding, `ANON_RATE_LIMIT`). Over the limit
42
+ you get HTTP 429 with `Retry-After: 60`. Signed-in requests are not limited.
43
+ - `mzizi_mcp_describe`, the `mzizi://tools` resource and
44
+ `GET https://mcp.mzizi.dev/catalogue.json` mark every tool `free` or
45
+ `sign-in`, and say how to sign in. `src/access.ts` is the one list.
23
46
 
24
47
  **MCP Registry name:** `io.github.mzizi-dev/mzizi-mcp` (from 0.10.1; the older
25
48
  `io.github.nyuchi/mzizi-mcp` entry is stale and no longer updated)
@@ -41,8 +64,9 @@ Point any MCP client at the live HTTP endpoint:
41
64
  }
42
65
  ```
43
66
 
44
- The client will be redirected through the WorkOS Connect OAuth (PKCE) flow on first
45
- connect. After that, reads are free and unlimited.
67
+ No sign-in is needed. To use the Fundi tools, use
68
+ `"url": "https://mcp.mzizi.dev/mcp/signin"` instead; the client runs the WorkOS
69
+ Connect OAuth (PKCE) flow on first connect.
46
70
 
47
71
  ### stdio (local / offline)
48
72
 
@@ -63,10 +87,10 @@ tools forward to the public docs MCP and need network.
63
87
  }
64
88
  ```
65
89
 
66
- This is the **sanctioned headless path**: the hosted `mcp.mzizi.dev` endpoint
67
- sits behind an interactive, browser-only WorkOS signup gate that a headless agent
68
- (Claude Code, CI, an offline client) can't complete. `mzizi_report_issue` needs a
69
- signed-in user and says so on the stdio bin.
90
+ Use it when you want the registry offline, or pinned to the version you
91
+ installed. The hosted endpoint needs no sign-in either, so a headless agent can
92
+ use either one. `mzizi_report_issue` needs a signed-in user and says so on the
93
+ stdio bin, and `mzizi_fundi` is not offered there.
70
94
 
71
95
  ---
72
96
 
@@ -74,11 +98,11 @@ signed-in user and says so on the stdio bin.
74
98
 
75
99
  Nothing is read from a database, and no registry data is fetched at request time.
76
100
 
77
- | Data | Source | How it gets into the Worker |
78
- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
79
- | Components, index, component docs, brand tokens, architecture helix + nodes, Ubuntu pillars/principles, conventions, AI instruction sets, changelog, rename map | [mzizi-dev/mzizi-registry](https://github.com/mzizi-dev/mzizi-registry) at the commit pinned in [`registry.pin.json`](./registry.pin.json) | `scripts/generate-registry.mjs` fetches that exact commit and calls the registry's **own API route handlers** once per resource, writing `src/generated/registry.ts` |
80
- | Agent skills | `../mzizi-skills/skills/*/SKILL.md` in this repo | `scripts/generate-skills.mjs` → `src/generated/skills.ts` |
81
- | Documentation | the Mintlify MCP at `https://docs.mzizi.dev/mcp` | federated live — see below |
101
+ | Data | Source | How it gets into the Worker |
102
+ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
103
+ | Components, index, component docs, Rust (Mzizi Roots) implementations and their crates, brand tokens, architecture helix + nodes, Ubuntu pillars/principles, conventions, AI instruction sets, changelog, rename map | [mzizi-dev/mzizi-registry](https://github.com/mzizi-dev/mzizi-registry) at the commit pinned in [`registry.pin.json`](./registry.pin.json) | `scripts/generate-registry.mjs` fetches that exact commit and calls the registry's **own API route handlers** once per resource, writing `src/generated/registry.ts` |
104
+ | Agent skills | `../mzizi-skills/skills/*/SKILL.md` in this repo | `scripts/generate-skills.mjs` → `src/generated/skills.ts` |
105
+ | Documentation | the Mintlify MCP at `https://docs.mzizi.dev/mcp` | federated live — see below |
82
106
 
83
107
  Both generated files are build output: gitignored, never committed, rebuilt by
84
108
  `pnpm generate` (which `build`, `build:worker`, `cf:dev`, `cf:deploy`, `test`,
@@ -92,9 +116,26 @@ re-deriving their output, a tool here answers with the same payload
92
116
  throws on use, so a route that still reads a database **fails the build** rather
93
117
  than shipping an empty answer.
94
118
 
95
- **Moving to newer registry content** is a one-line PR: set `ref` in
96
- `registry.pin.json` to a newer full commit SHA of mzizi-registry. CI regenerates
97
- and runs the bundle tests against it.
119
+ **Moving to newer registry content (bumping the pin)** is a one-line PR, and a bot opens it:
120
+ `.github/workflows/registry-pin-bump.yml` checks registry `main` hourly, keeps one pull request
121
+ on `bot/registry-pin`, and merges it (rebase) when every check is green; a failed check waits for
122
+ review (root README, "Registry pin bump"). By hand, the steps are:
123
+
124
+ 1. Pick the mzizi-registry commit to ship (a full 40-character SHA on its
125
+ `main`).
126
+ 2. Set `ref` in `registry.pin.json` to it.
127
+ 3. Run `pnpm --filter @nyuchi/mzizi-mcp test` locally, or let CI do it. The
128
+ generator fetches that commit, and `test/registry-bundle.test.ts` checks the
129
+ bundle ref equals the pin and calls every registry tool against it.
130
+ 4. Merge. Workers Builds rebuilds with the new pin and deploys it. The npm bin
131
+ picks it up at the next version bump.
132
+
133
+ `mzizi_mcp_describe` and `/catalogue.json` report the pinned commit as
134
+ `source.registry`, so you can check what is live.
135
+
136
+ Components are **Rust first** (Mzizi Roots): where the registry has a Rust
137
+ implementation, it is the lead. The TSX components are the React build, and
138
+ keep working.
98
139
 
99
140
  Former `nyuchi-*` component names (renamed to `mzizi-*` on 2026-09-27) resolve
100
141
  through the registry's `lib/component-renames.json`, bundled with the rest.
@@ -114,26 +155,67 @@ call, passing the result through untouched:
114
155
 
115
156
  ## Tools
116
157
 
117
- | Tool | Returns |
118
- | ---------------------------------- | -------------------------------------------------------------------------- |
119
- | `mzizi_search` | Word search over components, conventions, AI instruction sets and releases |
120
- | `mzizi_get_component` | One component in full, source inline; `include: ["docs", "versions"]` |
121
- | `mzizi_list_components` | The lean, paged index; filter by `node`, `owner`, `collection`, `type` |
122
- | `mzizi_get_tokens` | Brand system; `family: "colors"` for all 21 colour families |
123
- | `mzizi_get_architecture` | The DNA helix, or one node/rung with `node` (uncapped) |
124
- | `mzizi_get_doctrine` | `ubuntu-pillars`, `ubuntu-principles`, `ai-instructions`, `conventions` |
125
- | `mzizi_get_skills` | The agent skills, listed or one in full |
126
- | `mzizi_check_accessibility` | Contrast ratio against the Mzizi AAA floor, computed locally |
127
- | `mzizi_report_issue` | Your issue desk (signed-in users on the Worker) |
128
- | `mzizi_fundi` | Delegate to fundi (only when the Worker is wired to fundi) |
129
- | `mzizi_mcp_describe` | This server's tools, what each replaces, and its data sources |
130
- | `docs_search_mzizi` | Search the documentation (forwarded) |
131
- | `docs_query_docs_filesystem_mzizi` | Read-only `rg`/`cat`/`tree` over the doc pages (forwarded) |
132
- | `docs_submit_feedback` | Report a documentation problem (forwarded) |
133
-
134
- The `docs_*` names mirror whatever docs.mzizi.dev lists; the three above are what
135
- it lists today. `GET /catalogue.json` and the `mzizi://tools` resource are computed
136
- from the same registration path.
158
+ | Tool | Returns |
159
+ | ---------------------------------- | ------------------------------------------------------------------------------ |
160
+ | `mzizi_search` | Word search over components, conventions, AI instruction sets and releases |
161
+ | `mzizi_get_component` | One component in full, **Rust first**; `include: ["docs", "versions"]` |
162
+ | `mzizi_list_components` | The lean, paged index; filter by `node`, `owner`, `collection`, `type`, `rust` |
163
+ | `mzizi_get_tokens` | Brand system; `family: "colors"` for all 21 colour families |
164
+ | `mzizi_get_architecture` | The DNA helix, or one node/rung with `node` (uncapped) |
165
+ | `mzizi_get_doctrine` | `ubuntu-pillars`, `ubuntu-principles`, `ai-instructions`, `conventions` |
166
+ | `mzizi_get_skills` | The agent skills, listed or one in full |
167
+ | `mzizi_check_accessibility` | Contrast ratio against the Mzizi AAA floor, computed locally |
168
+ | `mzizi_report_issue` | Your issue desk. **Sign-in** |
169
+ | `mzizi_fundi` | Delegate to fundi (when the Worker can reach fundi). **Sign-in** |
170
+ | `mzizi_mcp_describe` | This server's tools, their access, what each replaces, and data sources |
171
+ | `docs_search_mzizi` | Search the documentation (forwarded) |
172
+ | `docs_query_docs_filesystem_mzizi` | Read-only `rg`/`cat`/`tree` over the doc pages (forwarded) |
173
+ | `docs_submit_feedback` | Report a documentation problem (forwarded) |
174
+
175
+ **The tool list is whatever `tools/list` returns.** The `docs_*` names mirror
176
+ whatever docs.mzizi.dev lists; the three above are what it lists today (checked
177
+ against the live `/catalogue.json` on 2026-09-29). `GET /catalogue.json` and the
178
+ `mzizi://tools` resource are computed from the same registration path.
179
+
180
+ **Rust first (from 0.11.0).** Mzizi's own components are being converted to Rust as
181
+ **Mzizi Roots**; the TSX components are the React build, deprioritised. The registry
182
+ tools present the Rust implementation first wherever one exists:
183
+
184
+ - `mzizi_get_component` returns
185
+ `{name, renamedFrom?, lead, note, rust, react, docs?, versions?}`, in that order.
186
+ - `lead` is `"rust"` when the component has a Rust implementation, else `"react"`.
187
+ - `rust` is the registry's `GET /v1/rs/{name}` answer, reordered so the install comes
188
+ before the source:
189
+ - `crate`: `{name, registry, git}`, from the registry's `crateFor` and `CRATE_GIT`.
190
+ - `install.cargo`: `cargo add <crate>`, the crates.io release.
191
+ - `install.pinned`: the same with
192
+ `--git https://github.com/mzizi-dev/mzizi-registry --rev <pin>`, which builds
193
+ exactly the source shown.
194
+ - `module`: the crate's Rust path, e.g. `mzizi_ui`.
195
+ - `contract`: the RFC-0006 `contract … end` block from the source's `CONTRACT`
196
+ const, or `null` when the source declares none.
197
+ - `files[]`: the `.rs` source, inline.
198
+
199
+ With no Rust, `rust` is `null`, and `note` carries the registry's own "ships for
200
+ React only" wording.
201
+
202
+ - `react` is the React build: `build: "react"`, `status: "deprioritised"`, `install`
203
+ (`npx shadcn@latest add https://api.mzizi.dev/v1/ui/<name>`), then the registry's
204
+ `GET /v1/ui/{name}` body unchanged (shadcn-shaped, `files[]` inline). If the registry
205
+ refuses the React build but Rust exists, `react` is `{build, error}` and the Rust
206
+ still leads.
207
+ - **Breaking for readers of 0.10.x:** the React body moved from `component` to
208
+ `react`, and `renamedFrom` moved to the top level.
209
+ - `mzizi_list_components` rows carry `rustCrate` when the component has Rust (absent
210
+ otherwise), the response carries `withRust` (how many of `total` have Rust), and
211
+ `rust: true` / `rust: false` filters on it.
212
+ - `mzizi_search` component hits carry `rustCrate` the same way, and at an equal score a
213
+ component with Rust ranks first. A better word match still wins.
214
+ - The generator calls the registry's own `/v1/rs/{name}` route handler for every
215
+ component, as it does `/v1/ui/{name}`. Only components with Rust are stored; the
216
+ no-Rust answer is stored once as a template, which the build checks against every
217
+ component's real answer. This adds about 0.6 MiB to the Worker upload (gzip about
218
+ +160 KiB; see the CHANGELOG for the measured sizes).
137
219
 
138
220
  **Shape notes (changed when the registry moved into the build).**
139
221
 
@@ -170,21 +252,27 @@ healing plan in it, and writes that issue's lifecycle back to D1 — which is wh
170
252
  confidential: a var wins on every deploy and silently discards a same-named remote value, so a
171
253
  value that differs per environment cannot live in committed config. It is "not required" only
172
254
  because `src/identity.ts` carries a working default — and it must move in lockstep with
173
- `fundi-tester`, which binds the same issuer that this Worker's agent-card consumers are pointed
255
+ `mzizi-fundi`, which binds the same issuer that this Worker's agent-card consumers are pointed
174
256
  at. See `AUTH.md`.
175
257
 
176
258
  Plain vars (`[vars]` in `wrangler.toml`, not secrets):
177
259
 
178
- | Var | Notes |
179
- | ---------------------- | -------------------------------------------------------------- |
180
- | `WORKOS_CLIENT_ID` | Connect OAuth app client id (public client; PKCE) |
181
- | `WORKOS_M2M_CLIENT_ID` | Fundi M2M app client id; required only when `FUNDI_URL` is set |
182
- | `FUNDI_URL` | Base URL of the fundi worker; enables the `fundi_status` tool |
260
+ | Var | Notes |
261
+ | ---------------------- | ------------------------------------------------------------- |
262
+ | `WORKOS_CLIENT_ID` | Connect OAuth app client id (public client; PKCE) |
263
+ | `WORKOS_M2M_CLIENT_ID` | Fundi M2M app client id; used only on the HTTP + M2M fallback |
264
+ | `FUNDI_URL` | Base URL of the fundi worker, for the HTTP + M2M fallback |
265
+
266
+ Bindings (`wrangler.toml`): `FUNDI_SERVICE` (Service Binding to `mzizi-fundi`'s
267
+ `FundiInternal` entrypoint; what makes fundi reachable in production),
268
+ `ISSUE_DESK` (one Durable Object per signed-in user), `OAUTH_KV` (the OAuth
269
+ provider's store) and `ANON_RATE_LIMIT` (the free tier's per-IP limit).
183
270
 
184
271
  > The Connect OAuth app is a **public client (PKCE)** — there is no `WORKOS_CLIENT_SECRET`
185
272
  > or WorkOS API key on the worker.
186
273
 
187
- **Optional: fundi-caller extras** (only needed when mzizi-mcp is the fundi caller):
274
+ **Optional: fundi-caller extras** (only on the HTTP + M2M fallback, e.g. `wrangler dev`; the
275
+ deployed Worker uses the Service Binding and needs no M2M secret):
188
276
 
189
277
  | Name | Kind | Purpose |
190
278
  | -------------------------- | ------ | --------------------------------------------------- |
@@ -212,7 +300,8 @@ Source files:
212
300
 
213
301
  - `src/server.ts` — `createMziziMcpServer()` factory
214
302
  - `src/http.ts` — `createMziziHttpHandler()` for any fetch runtime
215
- - `src/worker.ts` — Cloudflare Worker bound to `env` (the gated deployment)
303
+ - `src/worker.ts` — Cloudflare Worker: the free-tier front, and the OAuth provider for sign-in
304
+ - `src/access.ts` — which tools need sign-in, the sign-in URL, and the rate limit
216
305
  - `src/stdio.ts` — `bin: mzizi-mcp` for the MCP registry / local Claude Code
217
306
 
218
307
  ---
@@ -232,6 +321,9 @@ pnpm --filter @nyuchi/mzizi-mcp build
232
321
  # local Worker dev
233
322
  pnpm --filter @nyuchi/mzizi-mcp cf:dev
234
323
 
324
+ # wrangler dev (workerd) integration: the real Worker anonymously + the signed-in path
325
+ pnpm --filter @nyuchi/mzizi-mcp integration
326
+
235
327
  # deploy manually (Workers Builds handles pushes to main)
236
328
  pnpm --filter @nyuchi/mzizi-mcp cf:deploy
237
329
  ```
@@ -246,11 +338,12 @@ fails the build, and a failed build deploys nothing — the running version stay
246
338
 
247
339
  **Rollback:** Cloudflare dashboard → Workers & Pages → `mzizi-mcp` → Deployments → pick
248
340
  the previous version → _Rollback_, or `wrangler rollback` from `mzizi-mcp/`. Reverting
249
- the merge commit on `main` redeploys the previous source through Workers Builds.
341
+ the commit on `main` (merges are rebase-only) redeploys the previous source through Workers
342
+ Builds.
250
343
 
251
344
  ---
252
345
 
253
346
  ## License
254
347
 
255
- Apache-2.0. Part of the mzizi tooling — an open-architecture project of
256
- [Mzizi](https://mzizi.dev), operated by [nyuchi](https://nyuchi.com).
348
+ Apache-2.0. Part of the Mzizi agent tooling ([mzizi.dev](https://mzizi.dev)).
349
+ Copyright the Bundu Foundation; see the repository `NOTICE`.
@@ -1,5 +1,5 @@
1
1
  export declare const REGISTRY_PIN: {
2
2
  readonly repository: "https://github.com/mzizi-dev/mzizi-registry";
3
- readonly ref: "61c805c2d88419133938bbc286972e14587457e0";
3
+ readonly ref: "9b86e034ffd84cff9ae0214201dc4bc4b15b2885";
4
4
  };
5
5
  //# sourceMappingURL=registry-pin.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // GENERATED by scripts/generate-registry.mjs — do not edit, do not commit.
2
- export const REGISTRY_PIN = { "repository": "https://github.com/mzizi-dev/mzizi-registry", "ref": "61c805c2d88419133938bbc286972e14587457e0" };
2
+ export const REGISTRY_PIN = { "repository": "https://github.com/mzizi-dev/mzizi-registry", "ref": "9b86e034ffd84cff9ae0214201dc4bc4b15b2885" };
3
3
  //# sourceMappingURL=registry-pin.js.map
@@ -1,14 +1,14 @@
1
1
  /**
2
2
  * GENERATED by scripts/generate-registry.mjs — do not edit, do not commit.
3
3
  *
4
- * The mzizi registry at https://github.com/mzizi-dev/mzizi-registry/tree/61c805c2d88419133938bbc286972e14587457e0
4
+ * The mzizi registry at https://github.com/mzizi-dev/mzizi-registry/tree/9b86e034ffd84cff9ae0214201dc4bc4b15b2885
5
5
  * (pinned in registry.pin.json), produced by calling the registry's own API
6
6
  * route handlers at build time. Every value is a JSON string, parsed lazily by
7
7
  * src/registry.ts, so a cold start pays only for what a request reads.
8
8
  */
9
9
  export declare const REGISTRY_PIN: {
10
10
  readonly repository: "https://github.com/mzizi-dev/mzizi-registry";
11
- readonly ref: "61c805c2d88419133938bbc286972e14587457e0";
11
+ readonly ref: "9b86e034ffd84cff9ae0214201dc4bc4b15b2885";
12
12
  };
13
13
  /** Whole-resource payloads, keyed by section. */
14
14
  export declare const SECTIONS: Readonly<Record<string, string>>;
@@ -16,6 +16,16 @@ export declare const SECTIONS: Readonly<Record<string, string>>;
16
16
  export declare const COMPONENTS: Readonly<Record<string, string>>;
17
17
  /** `/ui/{name}/docs` per component. */
18
18
  export declare const COMPONENT_DOCS: Readonly<Record<string, string>>;
19
+ /**
20
+ * `/rs/{name}` per component WITH a Mzizi Roots (Rust) implementation: the
21
+ * registry's body ({name, type, target, description, crate, files}) plus
22
+ * `contract`, the source's CONTRACT clause block or null.
23
+ */
24
+ export declare const RUST: Readonly<Record<string, string>>;
25
+ /** Component name → the crate that compiles its Rust, for every entry in RUST. Cheap to read whole. */
26
+ export declare const RUST_CRATES: Readonly<Record<string, string>>;
27
+ /** `/rs/{name}` for a component with no Rust, with `{name}` in place of the name. */
28
+ export declare const RUST_MISSING: string;
19
29
  /** `/architecture/nodes/{n}` per node or rung. */
20
30
  export declare const NODES: Readonly<Record<string, string>>;
21
31
  /** `/ai/instructions/{name}` per instruction set. */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/generated/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,eAAO,MAAM,YAAY;;;CAAyH,CAAA;AAElJ,iDAAiD;AACjD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUrD,CAAA;AAED,kDAAkD;AAClD,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkkBvD,CAAA;AAED,uCAAuC;AACvC,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkkB3D,CAAA;AAED,kDAAkD;AAClD,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAalD,CAAA;AAED,qDAAqD;AACrD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI5D,CAAA"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/generated/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,eAAO,MAAM,YAAY;;;CAAyH,CAAA;AAElJ,iDAAiD;AACjD,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUrD,CAAA;AAED,kDAAkD;AAClD,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkkBvD,CAAA;AAED,uCAAuC;AACvC,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkkB3D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwDjD,CAAA;AAED,uGAAuG;AACvG,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAA6yD,CAAA;AAEt2D,qFAAqF;AACrF,eAAO,MAAM,YAAY,EAAE,MAAyP,CAAA;AAEpR,kDAAkD;AAClD,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAalD,CAAA;AAED,qDAAqD;AACrD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI5D,CAAA"}