@nifrajs/cli 3.3.0 → 3.5.0

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.
Files changed (118) hide show
  1. package/dist/check-diagnostics.d.ts +3 -15
  2. package/dist/check-diagnostics.d.ts.map +1 -1
  3. package/dist/check-diagnostics.js +149 -713
  4. package/dist/check-diagnostics.js.map +1 -1
  5. package/dist/check-scan.d.ts +9 -0
  6. package/dist/check-scan.d.ts.map +1 -1
  7. package/dist/check-scan.js +32 -0
  8. package/dist/check-scan.js.map +1 -1
  9. package/dist/check.d.ts +1 -0
  10. package/dist/check.d.ts.map +1 -1
  11. package/dist/check.js +63 -8
  12. package/dist/check.js.map +1 -1
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +46 -7
  15. package/dist/cli.js.map +1 -1
  16. package/dist/command-catalog.d.ts +4 -1
  17. package/dist/command-catalog.d.ts.map +1 -1
  18. package/dist/command-catalog.js +28 -7
  19. package/dist/command-catalog.js.map +1 -1
  20. package/dist/contracts.d.ts +3 -2
  21. package/dist/contracts.d.ts.map +1 -1
  22. package/dist/contracts.js +4 -3
  23. package/dist/contracts.js.map +1 -1
  24. package/dist/diagnostics.d.ts +86 -0
  25. package/dist/diagnostics.d.ts.map +1 -1
  26. package/dist/diagnostics.js +85 -0
  27. package/dist/diagnostics.js.map +1 -1
  28. package/dist/introspect.d.ts +1 -3
  29. package/dist/introspect.d.ts.map +1 -1
  30. package/dist/introspect.js +1 -47
  31. package/dist/introspect.js.map +1 -1
  32. package/dist/load.d.ts +5 -0
  33. package/dist/load.d.ts.map +1 -1
  34. package/dist/load.js.map +1 -1
  35. package/dist/mcp-context.d.ts.map +1 -1
  36. package/dist/mcp-context.js +4 -5
  37. package/dist/mcp-context.js.map +1 -1
  38. package/dist/mcp-exec.d.ts +1 -0
  39. package/dist/mcp-exec.d.ts.map +1 -1
  40. package/dist/mcp-exec.js +133 -25
  41. package/dist/mcp-exec.js.map +1 -1
  42. package/dist/mcp-http.d.ts.map +1 -1
  43. package/dist/mcp-http.js +4 -1
  44. package/dist/mcp-http.js.map +1 -1
  45. package/dist/mcp-io.d.ts +12 -0
  46. package/dist/mcp-io.d.ts.map +1 -1
  47. package/dist/mcp-io.js +68 -0
  48. package/dist/mcp-io.js.map +1 -1
  49. package/dist/mcp-path.d.ts +10 -0
  50. package/dist/mcp-path.d.ts.map +1 -0
  51. package/dist/mcp-path.js +51 -0
  52. package/dist/mcp-path.js.map +1 -0
  53. package/dist/mcp-reflect.d.ts.map +1 -1
  54. package/dist/mcp-reflect.js +2 -2
  55. package/dist/mcp-reflect.js.map +1 -1
  56. package/dist/mcp-render.d.ts.map +1 -1
  57. package/dist/mcp-render.js +62 -43
  58. package/dist/mcp-render.js.map +1 -1
  59. package/dist/mcp-root.d.ts.map +1 -1
  60. package/dist/mcp-root.js +14 -2
  61. package/dist/mcp-root.js.map +1 -1
  62. package/dist/mcp-run.d.ts.map +1 -1
  63. package/dist/mcp-run.js +82 -51
  64. package/dist/mcp-run.js.map +1 -1
  65. package/dist/mcp.d.ts +2 -2
  66. package/dist/mcp.d.ts.map +1 -1
  67. package/dist/mcp.js +84 -29
  68. package/dist/mcp.js.map +1 -1
  69. package/dist/project-facts.d.ts +23 -4
  70. package/dist/project-facts.d.ts.map +1 -1
  71. package/dist/project-facts.js +12 -2
  72. package/dist/project-facts.js.map +1 -1
  73. package/dist/review.d.ts +21 -0
  74. package/dist/review.d.ts.map +1 -0
  75. package/dist/review.js +819 -0
  76. package/dist/review.js.map +1 -0
  77. package/dist/rules/legacy.d.ts +3 -1
  78. package/dist/rules/legacy.d.ts.map +1 -1
  79. package/dist/rules/legacy.js +796 -34
  80. package/dist/rules/legacy.js.map +1 -1
  81. package/dist/scaffold.d.ts.map +1 -1
  82. package/dist/scaffold.js +23 -4
  83. package/dist/scaffold.js.map +1 -1
  84. package/dist/verification-plan.d.ts.map +1 -1
  85. package/dist/verification-plan.js +4 -0
  86. package/dist/verification-plan.js.map +1 -1
  87. package/dist/work-graph.d.ts +3 -0
  88. package/dist/work-graph.d.ts.map +1 -1
  89. package/dist/work-graph.js +4 -3
  90. package/dist/work-graph.js.map +1 -1
  91. package/docs/llms-full.txt +369 -21
  92. package/docs/types.json +1121 -80
  93. package/package.json +10 -9
  94. package/src/check-diagnostics.ts +181 -796
  95. package/src/check-scan.ts +36 -0
  96. package/src/check.ts +65 -12
  97. package/src/cli.ts +53 -7
  98. package/src/command-catalog.ts +33 -7
  99. package/src/contracts.ts +12 -3
  100. package/src/diagnostics.ts +179 -0
  101. package/src/introspect.ts +3 -55
  102. package/src/load.ts +5 -0
  103. package/src/mcp-context.ts +4 -6
  104. package/src/mcp-exec.ts +142 -30
  105. package/src/mcp-http.ts +4 -1
  106. package/src/mcp-io.ts +73 -0
  107. package/src/mcp-path.ts +50 -0
  108. package/src/mcp-reflect.ts +3 -2
  109. package/src/mcp-render.ts +70 -40
  110. package/src/mcp-root.ts +13 -2
  111. package/src/mcp-run.ts +90 -50
  112. package/src/mcp.ts +87 -27
  113. package/src/project-facts.ts +37 -8
  114. package/src/review.ts +983 -0
  115. package/src/rules/legacy.ts +915 -35
  116. package/src/scaffold.ts +29 -4
  117. package/src/verification-plan.ts +14 -0
  118. package/src/work-graph.ts +13 -3
@@ -21,12 +21,20 @@ _Extracted from the docs at nifra.dev/docs._
21
21
 
22
22
  ## Nifra - Getting started
23
23
 
24
- > Get started with Nifra: install, server, typed client, loaders, deploy.
24
+ > Get started with Nifra: typed backend, agentic UI, bounded agent runs, full-stack SSR, and portable deployment.
25
25
 
26
- Nifra is a contract-first TypeScript framework. Start with just a typed backend - like Hono or
27
- Elysia - and the client infers its types with zero codegen. Add a frontend only when you need
28
- one: the same route model then drives SSR across React, Solid, Vue, Preact, and Svelte, on
29
- Bun, Node, Deno, and the edge.
26
+ Nifra is a contract-first TypeScript framework for applications with agents in the loop. Start
27
+ with just a typed backend - like Hono or Elysia - and the client infers its types with zero
28
+ codegen. Add a full-stack UI, a bounded agent runtime, or page-local WebMCP when you need one:
29
+ the same contracts drive all of them across Bun, Node, Deno, and the edge.
30
+
31
+ ### One app, two agent loops
32
+
33
+ A coding agent can inspect the live project, change it, run real requests, and prove the result.
34
+ A user-facing agent can discover explicit page tools, stream progress into the UI, predict a
35
+ state change, and reconcile it with the server. Both use the same typed capabilities and
36
+ verification boundary. Start with the [agent layer](/docs/agents) or the
37
+ [WebMCP & predictive UI guide](/docs/webmcp) when you are ready to add them.
30
38
 
31
39
  ### Install
32
40
 
@@ -97,7 +105,7 @@ See the [benchmarks](/benchmarks) for how it performs.
97
105
 
98
106
  ## Nifra vs. other frameworks - the honest comparison
99
107
 
100
- > How Nifra compares to the full-stack frameworks (Next.js, Nuxt, SvelteKit, Remix, TanStack Start) - and, as a standalone backend, to Hono and Elysia. Five UI frameworks, five runtimes, end-to-end types, and an AI-agent toolchain no competitor ships.
108
+ > How Nifra compares to the full-stack frameworks (Next.js, Nuxt, SvelteKit, Remix, TanStack Start) - and, as a standalone backend, to Hono and Elysia. Five UI frameworks, five runtimes, end-to-end types, and an agentic application layer built around typed capabilities.
101
109
 
102
110
  Honest comparison. Nifra is a **full-stack framework first** - five UI libraries and five runtimes
103
111
  from one core, with loaders, actions, streaming, and a typed data layer - and a
@@ -192,13 +200,13 @@ to full-stack later without a rewrite.
192
200
  regex), but a router is **~1% of a real request** - the time goes to middleware, validation,
193
201
  context, and serialization. In the current matrix (median of 5 full runs) Nifra
194
202
  **tops the framework field on Bun** - level with Elysia on `GET /users/:id` at
195
- 101% of the raw-runtime ceiling, 105% of Elysia on the validated `POST` - and
203
+ 108% of the raw-runtime ceiling, 106% of Elysia on the validated `POST` - and
196
204
  **leads every framework on Deno** on both workloads. On **Node** it
197
- **leads the framework field too** - ahead of Fastify by ~12% on the validated
198
- `POST` (96% of the raw-Node ceiling) and level-to-ahead on GET, with Elysia, Hono,
205
+ **leads the framework field too** - ahead of Fastify by ~8% on the validated
206
+ `POST` (92% of the raw-Node ceiling) and ahead on GET, with Elysia, Hono,
199
207
  and Express behind. In the realistic shape (security headers + CORS +
200
208
  bearer auth + cookies + validated query/body + a ~2.4 KB JSON response, measured with
201
- `oha`) Nifra runs at **103% of Elysia on GET and 108% on POST**. Treat benchmark
209
+ `oha`) Nifra runs at **101% of Elysia on GET and 97% on POST**. Treat benchmark
202
210
  rows as same-run evidence, not a permanent law of nature.
203
211
 
204
212
  -
@@ -220,8 +228,8 @@ emitting a real 3.1 doc with field-level request/response schemas (+ Scalar UI).
220
228
 
221
229
  ### The AI-agent toolchain - Nifra-only
222
230
 
223
- No competitor - full-stack or backend - ships this. Every Nifra app is built to be edited by AI agents
224
- accurately:
231
+ Nifra covers both sides of the agent loop: agents that edit your codebase and agents that are
232
+ part of the product. Every surface is anchored to the same typed capability boundary:
225
233
 
226
234
  -
227
235
  `nifra mcp` - an MCP server exposing `nifra_context` (the project's typed
@@ -244,6 +252,18 @@ _document_ and Semgrep pattern-matches source text; neither sees the real route
244
252
  This is what makes agent-written routes safe to merge - an agent (or a human) cannot ship an
245
253
  unauthenticated write past it.
246
254
 
255
+ -
256
+ `@nifrajs/webmcp` - explicit page-local tools using the browser WebMCP standard,
257
+ deterministic predictive UI, bounded receipts, and versioned reconciliation.
258
+ `@nifrajs/ag-ui` streams the same run into a product UI, while
259
+ `@nifrajs/agent-app` provides negotiated browser views, approvals, handoffs, and
260
+ Run Studio projections.
261
+
262
+ -
263
+ `@nifrajs/agent` - bounded typed agent turns with budgets, approvals, cancellation,
264
+ resumable evidence, shared state, and provider-neutral model ports.
265
+ `@nifrajs/a2a` exposes the same runner to other agents without rewriting the core.
266
+
247
267
  ### Where Nifra fits
248
268
 
249
269
  Reach for Nifra when you want:
@@ -4277,7 +4297,9 @@ the command printed by the build.
4277
4297
 
4278
4298
  Nifra ships an MCP server. It is not a documentation lookup bolted onto a framework: an agent
4279
4299
  can read the project, learn the real API, run actual requests against the backend it just
4280
- edited, and finish with a report of what the change proved.
4300
+ edited, and finish with a report of what the change proved. The same typed capabilities can
4301
+ power the agent inside your product through [WebMCP and predictive UI](/docs/webmcp)
4302
+ or stream into a product surface through AG-UI.
4281
4303
 
4282
4304
  ### One MCP, two ways to connect
4283
4305
 
@@ -4991,6 +5013,34 @@ export const app = createWebApp({
4991
5013
  This is the _global imports_ tier: one bundled stylesheet linked on every page (the
4992
5014
  common case - a global stylesheet or Tailwind output).
4993
5015
 
5016
+ #### Prefetch-safe aggregate CSS
5017
+
5018
+ Vite's default CSS splitting can attach a new stylesheet when a prefetched lazy route module
5019
+ evaluates. If those selectors affect content already on the page, each attachment can trigger
5020
+ style recalculation and layout work. For an app whose stylesheet is already bounded (for
5021
+ example, one using atomic StyleX plus a small legacy CSS-Modules layer), opt into one aggregate
5022
+ CSS asset and deferred activation in the CLI config. The aggregate file is still content-hashed;
5023
+ only its activation is deferred until the browser has fetched it.
5024
+
5025
+ ```ts
5026
+ // nifra.config.ts - opt into Vite's single-file CSS path for apps that prefetch many lazy routes.
5027
+ export const cssCodeSplit = false
5028
+ export const cssLoading = "deferred"
5029
+
5030
+ // cssCodeSplit: false emits one content-hashed stylesheet, so lazy module prefetch cannot attach a
5031
+ // new stylesheet for every route. cssLoading: "deferred" fetches that file with media="print"; the
5032
+ // generated client promotes it to media="all" after load/error/timeout and before hydration.
5033
+ // `nifra build` selects Vite automatically for this Vite-only output policy. The default stays
5034
+ // backward-compatible: split CSS + blocking links.
5035
+ // `cssLoading: "deferred"` must be paired with `cssCodeSplit: false` on Vite.
5036
+ ```
5037
+
5038
+ This is opt-in and Vite-specific. Nifra rejects `cssLoading: "deferred"` with split
5039
+ Vite CSS because that combination would leave the prefetch insertion problem in place. A failed
5040
+ or slow stylesheet request is bounded: the client promotes the link and hydrates rather than
5041
+ leaving the loader visible forever. Non-hydrated pages keep ordinary blocking links for
5042
+ JavaScript-off and terminal-page styling.
5043
+
4994
5044
  #### Scoped styles - CSS Modules & SFC <style>
4995
5045
 
4996
5046
  For component-local styles you have two collision-free options, both bundled into that same
@@ -8281,6 +8331,98 @@ The `nifra_levels` MCP tool returns the same
8281
8331
  `{ achieved, levels[] }` report. An agent can read what its change proved, and a
8282
8332
  level that regressed comes back with the reason it broke.
8283
8333
 
8334
+ ## Nifra - WebMCP & predictive UI
8335
+
8336
+ > Expose explicit page-local WebMCP tools from typed Nifra capabilities while keeping remote MCP, authorization, receipts, and predictive UI reconciliation on one contract.
8337
+
8338
+ WebMCP is the right page-local transport for an agent to discover and call tools in the
8339
+ currently open site. Nifra adopts that standard directly and adds a complementary contract for
8340
+ the semantics WebMCP does not define: typed capabilities, deterministic prediction, versioned
8341
+ reconciliation, bounded receipts, and host-independent conformance tests.
8342
+
8343
+ ### One capability, one trust boundary
8344
+
8345
+ Define an explicit capability once. Its input and output schemas are the same Nifra core
8346
+ schemas used by every other adapter, and the handler still runs behind capability, approval,
8347
+ idempotency, budget, cancellation, and output checks.
8348
+
8349
+ ```ts
8350
+ // doc-check: skip - addItemOnServer is supplied by the application.
8351
+ import { t } from "@nifrajs/schema"
8352
+ import { defineAgentCapability } from "@nifrajs/webmcp"
8353
+
8354
+ export const addToCart = defineAgentCapability({
8355
+ name: "cart.add",
8356
+ description: "Add a product to the current cart.",
8357
+ input: t.object({ sku: t.string(), quantity: t.number() }),
8358
+ output: t.object({ cartVersion: t.string() }),
8359
+ annotations: { readOnlyHint: false, destructiveHint: false },
8360
+ writes: ["cart"],
8361
+ execute: (input) => addItemOnServer(input),
8362
+ })
8363
+ ```
8364
+
8365
+ ### Adopt WebMCP without a fork
8366
+
8367
+ Register only the tools your page intentionally offers. Nifra feature-detects
8368
+ `document.modelContext.registerTool`, isolates host registration failures, and
8369
+ makes unsupported browsers a no-op. Registration is discovery, not authorization: the server
8370
+ must enforce authorization again for writes.
8371
+
8372
+ ```ts
8373
+ // doc-check: skip - addToCart is declared in the preceding section.
8374
+ import { registerWebMcpTools } from "@nifrajs/webmcp"
8375
+
8376
+ // Explicit allowlist. On ordinary browsers this resolves to a safe unsupported report.
8377
+ const registration = await registerWebMcpTools([addToCart])
8378
+ console.log(registration.supported, registration.registered, registration.failed)
8379
+ // The host receives the standard document.modelContext.registerTool({
8380
+ // name, description, inputSchema, annotations, execute
8381
+ // }) shape.
8382
+ ```
8383
+
8384
+ ### Keep remote MCP as the durable surface
8385
+
8386
+ WebMCP needs an open page and is local to that page. Remote MCP remains the right surface for
8387
+ background work, integrations, and MCP Apps. Project the same `capability.tool` into
8388
+ the existing MCP adapter; do not maintain a second schema or handler.
8389
+
8390
+ ```ts
8391
+ // doc-check: skip - addToCart is declared in the preceding section.
8392
+ import { toMcpTool } from "@nifrajs/mcp/tool-contract"
8393
+
8394
+ // Same core schemas, authorization, approval, idempotency, and evidence - different transport.
8395
+ const remoteTool = toMcpTool(addToCart.tool, {
8396
+ capabilities: [addToCart.tool.capability],
8397
+ })
8398
+ ```
8399
+
8400
+ ### Predict, then reconcile
8401
+
8402
+ Predictive UI is application-owned deterministic state, not an LLM guess. A predictor returns a
8403
+ bounded `add`/`replace`/`remove` patch tied to an authoritative
8404
+ version. The store applies it atomically, and a successful server response either replaces the
8405
+ authoritative state or rolls the overlay back on failure, expiry, or conflict.
8406
+
8407
+ ```ts
8408
+ // doc-check: skip - addToCart is declared in the preceding section.
8409
+ import { createPredictionStore, executePredicted } from "@nifrajs/webmcp"
8410
+
8411
+ const store = createPredictionStore({ state: { items: [] }, version: "cart-1" })
8412
+ const result = await executePredicted(addToCart, { sku: "sku-1", quantity: 1 }, store)
8413
+ // committed | rolled-back | conflicted | expired | stale | invalid | executed
8414
+ console.log(result.outcome, result.snapshot)
8415
+ // predict is a pure RFC 6902 subset patch; reconcile accepts the authoritative server version.
8416
+ ```
8417
+
8418
+ ### What belongs in the complementary contract
8419
+
8420
+ Keep the browser standard small: discovery and execution. Keep Nifra’s public seam provider
8421
+ neutral: scope, bounded state paths, reconciliation policy, receipts, and deterministic
8422
+ conformance. Keep durable idempotency, tenancy, credentials, retention, pricing, and operated
8423
+ policy injected behind the same core contract. This makes the surface useful with any WebMCP
8424
+ host while preserving Nifra’s server-side trust boundary.
8425
+
8284
8426
  ---
8285
8427
 
8286
8428
  # Package reference (READMEs)
@@ -8521,6 +8663,24 @@ const result = await runAgent(definition, { value: input }, ports, {
8521
8663
  The public in-memory adapters are for local development and tests. Durable state, provider
8522
8664
  credentials, and operated policy remain adapter concerns.
8523
8665
 
8666
+ For transient prompt assembly, `@nifrajs/agent/context` provides a deterministic, token-budgeted
8667
+ selection seam:
8668
+
8669
+ ```ts
8670
+ import { assembleContext } from "@nifrajs/agent/context"
8671
+
8672
+ const context = assembleContext(
8673
+ [
8674
+ { id: "system", kind: "instruction", content: "You are concise.", required: true },
8675
+ { id: "memory", kind: "memory", content: "The user prefers short answers.", priority: 10 },
8676
+ ],
8677
+ { budget: { maxTokens: 2_000, reserveTokens: 256 } },
8678
+ )
8679
+ ```
8680
+
8681
+ The assembler owns selection, ordering, and accounting only. Persistence, embeddings, retrieval
8682
+ indexes, provider tokenizers, redaction, and product policy stay in caller-owned adapters.
8683
+
8524
8684
  Gateway and deployment contracts are deliberately provider-neutral. Retry, fallback, budget,
8525
8685
  deadline, workspace, and hostile-code isolation claims are admitted only from a host-approved
8526
8686
  capability report. The local and replay reference profiles are not hostile-code sandboxes, and no
@@ -8669,6 +8829,55 @@ belong in these public contracts.
8669
8829
  For AI agents, see [`LLM.md`](./LLM.md) and the full corpus
8670
8830
  [`../../llms-full.txt`](../../llms-full.txt).
8671
8831
 
8832
+ ## @nifrajs/agent-review
8833
+
8834
+ `@nifrajs/agent-review` is a small, provider-neutral contract for bounded review results. It is a
8835
+ leaf package: it does not run checks, read a repository, invoke fixes, provide a CLI, or persist
8836
+ review data.
8837
+
8838
+ ```ts
8839
+ import { composeReviewReport, parseReviewReport } from "@nifrajs/agent-review"
8840
+
8841
+ const report = await composeReviewReport({
8842
+ strict: false,
8843
+ scope: {
8844
+ kind: "project",
8845
+ state: "valid",
8846
+ changedPaths: [],
8847
+ pathDigest: "a".repeat(64),
8848
+ outOfScopeCount: 0,
8849
+ },
8850
+ checks: [],
8851
+ findings: [],
8852
+ })
8853
+
8854
+ const verified = await parseReviewReport(JSON.stringify(report))
8855
+ ```
8856
+
8857
+ The parser accepts a JSON string or an unknown value and fails closed. It rejects unknown keys and
8858
+ content-bearing keys such as `message`, `prompt`, `output`, `payload`, `body`, and `secret` at any
8859
+ depth. Findings carry only stable codes, structural categories, safe locations, and opaque
8860
+ evidence references; they do not carry diagnostic messages, source text, requests, responses, or
8861
+ model content.
8862
+
8863
+ Reports are limited to 256 KiB, depth 8, 32 keys per object, 1,024 array items, 512-byte paths,
8864
+ 256-byte Git references, and bounded identifiers. Paths are project-relative POSIX paths. Parsed
8865
+ reports are deeply frozen. Report status, blocking count, and success are derived and verified;
8866
+ callers cannot make an invalid report pass by changing those fields.
8867
+
8868
+ Canonical report digests use lowercase Web Crypto SHA-256. Check duration is display-only and is
8869
+ excluded from the digest, so equivalent structure has the same identity across runtimes and timing.
8870
+ The package uses no runtime dependencies, filesystem access, environment reads, provider SDKs, or
8871
+ Nifra package imports. It relies on `globalThis.crypto.subtle` and `TextEncoder`, which are available
8872
+ in Bun, modern Node, Deno, Workers, and browsers.
8873
+
8874
+ The composer accepts only the typed structural inputs already produced by a trusted collector. It
8875
+ sorts and copies them, derives the outcome, signs the canonical report, and runs the same parser
8876
+ boundary before returning it. Repository collectors, CLI/MCP projections, SARIF, and safe fix
8877
+ recipes belong in higher-level packages.
8878
+
8879
+ For coding agents, see [`LLM.md`](./LLM.md). The full machine-readable corpus is [`../../llms-full.txt`](../../llms-full.txt).
8880
+
8672
8881
  ## @nifrajs/agent-telemetry
8673
8882
 
8674
8883
  Child-span telemetry for AI tool calls made through Nifra tool and MCP endpoints.
@@ -10201,6 +10410,10 @@ Mount `mcp.fetch` at `POST /mcp`. The package also exposes the JSON-RPC protocol
10201
10410
  layers directly, plus `defineMcpWidget` and the React adapter for tool results that render UI in MCP
10202
10411
  hosts.
10203
10412
 
10413
+ MCP servers are same-origin for browser clients by default. Set an exact `allowedOrigins` list for
10414
+ known cross-origin clients, or set `allowAnyOrigin: true` only for a deliberately public,
10415
+ secret-free server. Authentication is still the host application's responsibility.
10416
+
10204
10417
  Clients that include `text/event-stream` in `Accept` receive progress notifications as they happen,
10205
10418
  followed by the final JSON-RPC response in the same stream. An SSE `GET /mcp` opens a cancellable
10206
10419
  server-message connection; a plain `GET /mcp` remains a health page.
@@ -11415,6 +11628,133 @@ one cheap read instead of the whole corpus. For the wider framework: the repo's
11415
11628
  [`llms-full.txt`](../../llms-full.txt) is the full machine-readable corpus. Run `nifra check` as the
11416
11629
  done-gate, or `nifra mcp` to give the agent live project tools.
11417
11630
 
11631
+ ## @nifrajs/webmcp
11632
+
11633
+ Typed WebMCP site tools plus a deterministic predictive-UI contract for Nifra applications.
11634
+
11635
+ WebMCP is the browser-local surface: compatible hosts discover tools from the page through
11636
+ `document.modelContext.registerTool`. This package does not replace WebMCP or MCP. It makes one Nifra
11637
+ core tool contract usable from a page-local agent while adding prediction, reconciliation, receipts, and
11638
+ host-independent conformance tests.
11639
+
11640
+ ```sh
11641
+ bun add @nifrajs/webmcp
11642
+ ```
11643
+
11644
+ ```ts
11645
+ import { t } from "@nifrajs/schema"
11646
+ import {
11647
+ defineAgentCapability,
11648
+ registerWebMcpTools,
11649
+ } from "@nifrajs/webmcp"
11650
+
11651
+ const addItem = defineAgentCapability({
11652
+ name: "cart.add",
11653
+ description: "Add a product to the current cart.",
11654
+ input: t.object({ sku: t.string(), quantity: t.number() }),
11655
+ output: t.object({ cartVersion: t.string() }),
11656
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true },
11657
+ writes: ["cart"],
11658
+ execute: async (input) => addItemOnTheServer(input),
11659
+ })
11660
+
11661
+ // Safe no-op on browsers/hosts without WebMCP.
11662
+ const registration = await registerWebMcpTools([addItem])
11663
+ ```
11664
+
11665
+ The returned WebMCP `execute` function runs Nifra's existing input validation, capability, approval,
11666
+ idempotency, budget, cancellation, output validation, and evidence path. By default it returns a bounded
11667
+ receipt envelope so an agent can verify whether the operation committed. The normal human UI remains the
11668
+ source of page rendering and works when WebMCP is absent.
11669
+
11670
+ Receipt output is retained only while its JSON encoding stays within the bounded `maxReceiptBytes`
11671
+ limit (16 KiB by default, 64 KiB maximum); oversized or non-JSON output is represented by
11672
+ `outputTruncated: true`. Use `resultMode: "output"` only when the embedding host provides its own
11673
+ response-size and serialization boundary.
11674
+
11675
+ ## Predictive UI
11676
+
11677
+ Predictions are application-owned and deterministic. They are not LLM guesses. Pair `predict` with
11678
+ `reconcile`; prediction patches use an atomic, defensive subset of RFC 6902 (`add`, `replace`, `remove`):
11679
+
11680
+ ```ts
11681
+ const addItem = defineAgentCapability({
11682
+ // ...typed core tool options...
11683
+ predict: ({ input, snapshot, version }) => ({
11684
+ baseVersion: version,
11685
+ patch: [
11686
+ { op: "add", path: "/items/-", value: { sku: input.sku, quantity: input.quantity } },
11687
+ ],
11688
+ }),
11689
+ reconcile: ({ previous, output }) => ({
11690
+ state: { items: previous.state.items },
11691
+ version: output.cartVersion,
11692
+ }),
11693
+ })
11694
+ ```
11695
+
11696
+ Use `createPredictionStore` and `executePredicted` for the full lifecycle:
11697
+
11698
+ ```ts
11699
+ const store = createPredictionStore({
11700
+ state: { items: [] },
11701
+ version: "cart-1",
11702
+ })
11703
+
11704
+ const result = await executePredicted(addItem, input, store)
11705
+ // committed | rolled-back | conflicted | expired | stale | invalid | executed
11706
+ console.log(result.outcome, result.snapshot)
11707
+ ```
11708
+
11709
+ The store is atomic, defensive, expiry-aware, version-aware, and rejects prototype-grafting paths.
11710
+ Successful server state replaces the authoritative base; failed calls roll the overlay back; stale
11711
+ commits become conflicts.
11712
+
11713
+ ## Remote MCP and MCP Apps
11714
+
11715
+ The capability contains the canonical `capability.tool`. Project it into the existing MCP adapter without
11716
+ creating a second contract:
11717
+
11718
+ ```ts
11719
+ import { toMcpTool } from "@nifrajs/mcp/tool-contract"
11720
+
11721
+ const remoteTool = toMcpTool(addItem.tool, {
11722
+ capabilities: [addItem.tool.capability],
11723
+ })
11724
+ ```
11725
+
11726
+ Use `@nifrajs/mcp`'s existing `defineMcpTool`, `structuredContent`, `ui://` widgets, and render intents
11727
+ when the result should render as an MCP App. WebMCP is page-local; remote MCP remains available without an
11728
+ open page.
11729
+
11730
+ ## Security
11731
+
11732
+ - Register an explicit allowlist; never expose every route, DOM event, or `fetch` call.
11733
+ - WebMCP registration is not authorization. Enforce authorization again at the server boundary.
11734
+ - Keep inputs narrow and annotations honest. A safety hint is not a permission.
11735
+ - Predictions are pure local transforms and cannot grant capability or bypass core policy.
11736
+ - Receipts contain status, bounded evidence, and error codes—not credentials, request bodies, secrets, or
11737
+ stack traces.
11738
+ - Normal browsers and non-WebMCP hosts receive a safe unsupported report.
11739
+
11740
+ ## AI conformance
11741
+
11742
+ `runAgentSurfaceConformance` accepts an injectable host and optional deterministic calls, so CI can verify
11743
+ the surface without ChatGPT or a live model:
11744
+
11745
+ ```ts
11746
+ const result = await runAgentSurfaceConformance([addItem], {
11747
+ target: fakeWebMcpHost,
11748
+ cases: [{ capability: addItem, input: { sku: "sku-1", quantity: 1 } }],
11749
+ })
11750
+ ```
11751
+
11752
+ For the complete contract, see [`LLM.md`](./LLM.md), the repository [`AGENTS.md`](../../AGENTS.md), and
11753
+ the root machine-readable [`llms-full.txt`](../../llms-full.txt) corpus.
11754
+
11755
+ See [`examples/webmcp`](../../examples/webmcp) for a complete capability projected to both WebMCP and
11756
+ the existing remote MCP adapter.
11757
+
11418
11758
  ## @nifrajs/workers
11419
11759
 
11420
11760
  Cloudflare Workers helpers for nifra - a Durable Object hub for cross-connection WebSocket broadcast.
@@ -11537,16 +11877,20 @@ done-gate, or `nifra mcp` to give the agent live project tools.
11537
11877
 
11538
11878
  ## @nifrajs/agent
11539
11879
 
11540
- `AgentApprovalPort`, `AgentApprovalResult`, `AgentDefinition`, `AgentDeltaSink`, `AgentDeployment`, `AgentDeploymentAdapter`, `AgentDeploymentPlan`, `AgentModelDelta`, `AgentModelPort`, `AgentModelRequest`, `AgentModelResponse`, `AgentPendingContinuation`, `AgentPendingKind`, `AgentPorts`, `AgentRunResult`, `AgentSharedState`, `AgentStatePatchOp`, `AgentStateStore`, `AgentStatus`, `AgentStepEvidence`, `AgentTelemetryPort`, `AgentToolContract`, `AgentToolDescriptor`, `AgentToolResult`, `AgentTranscript`, `AgentTurnBaseResult`, `AgentTurnError`, `AgentTurnInput`, `AgentTurnResult`, `AgentTurnState`, `ApprovalClass`, `assertDeploymentAuthorityMonotonic`, `CAPABILITY_DESCRIPTOR_VERSION`, `CapabilityDescriptor`, `CapabilityKind`, `combineAgentDeltaSinks`, `combineAgentTelemetry`, `composeDescriptor`, `composeRegistrySnapshot`, `createAgentSharedState`, `createAgentState`, `createDeploymentAuthority`, `createLocalProcessAdapter`, `createStructuredOutputParser`, `DeploymentActivationOptions`, `DeploymentAuthority`, `DeploymentCancellation`, `DeploymentCancelRequest`, `DeploymentCancelResult`, `DeploymentCapabilities`, `DeploymentCapabilityReport`, `DeploymentDisposeRequest`, `DeploymentDisposeResult`, `DeploymentError`, `DeploymentErrorCode`, `DeploymentEvidence`, `DeploymentFilesystem`, `DeploymentInspection`, `DeploymentInspectRequest`, `DeploymentNetwork`, `DeploymentPrepareRequest`, `DeploymentPrepareResult`, `DeploymentProcess`, `DeploymentRuntime`, `DeploymentSecrets`, `DeploymentStartRequest`, `DeploymentStartResult`, `DeploymentState`, `descriptorFromTool`, `DescriptorInput`, `ExecutionPolicy`, `ExecutionPolicyAdapter`, `FakeModelGateway`, `FakeModelGatewayOptions`, `HostileCodeIsolation`, `IdempotencyClass`, `isModelGatewayErrorCode`, `IsolationClass`, `LOCAL_PROCESS_LIMITATION`, `LocalProcessAdapter`, `LocalProcessAdapterOptions`, `LocalProcessPolicyError`, `LocalProcessRequest`, `LocalProcessResult`, `MemoryAgentStateStore`, `MODEL_GATEWAY_ERROR_CODES`, `ModelGateway`, `ModelGatewayAttemptRequest`, `ModelGatewayBudget`, `ModelGatewayEnvelope`, `ModelGatewayError`, `ModelGatewayErrorCode`, `ModelGatewayEvidence`, `ModelGatewayExecutionResult`, `ModelGatewayFailure`, `ModelGatewayFailureError`, `ModelGatewayRawResult`, `ModelGatewayRequest`, `ModelGatewayResult`, `ModelGatewaySuccess`, `ModelGatewayTerminalFailure`, `ModelGatewayUsage`, `ModelRoute`, `ModelRoutePolicy`, `ModelRouteRef`, `parseCapabilityDescriptor`, `parseDeploymentCapabilityReport`, `parseDeploymentPlan`, `parseModelGatewayError`, `parseModelGatewayResult`, `REGISTRY_SNAPSHOT_VERSION`, `RegistryError`, `RegistryErrorCode`, `RegistrySnapshot`, `replayAgent`, `ReplayModelGateway`, `ReplayModelGatewayOptions`, `resumeAgent`, `RetryClass`, `runAgent`, `RunAgentOptions`, `runModelGateway`, `structuredOutputParser`, `StructuredOutputParser`, `ToolDescriptorOptions`, `turn`
11880
+ `AgentApprovalPort`, `AgentApprovalResult`, `AgentDefinition`, `AgentDeltaSink`, `AgentDeployment`, `AgentDeploymentAdapter`, `AgentDeploymentPlan`, `AgentModelDelta`, `AgentModelPort`, `AgentModelRequest`, `AgentModelResponse`, `AgentPendingContinuation`, `AgentPendingKind`, `AgentPorts`, `AgentRunResult`, `AgentSharedState`, `AgentStatePatchOp`, `AgentStateStore`, `AgentStatus`, `AgentStepEvidence`, `AgentTelemetryPort`, `AgentToolContract`, `AgentToolDescriptor`, `AgentToolResult`, `AgentTranscript`, `AgentTurnBaseResult`, `AgentTurnError`, `AgentTurnInput`, `AgentTurnResult`, `AgentTurnState`, `ApprovalClass`, `approximateContextTokens`, `assembleContext`, `assertDeploymentAuthorityMonotonic`, `CAPABILITY_DESCRIPTOR_VERSION`, `CapabilityDescriptor`, `CapabilityKind`, `collectContext`, `combineAgentDeltaSinks`, `combineAgentTelemetry`, `composeDescriptor`, `composeRegistrySnapshot`, `ContextAssembly`, `ContextAssemblyOptions`, `ContextBudget`, `ContextBudgetError`, `ContextItem`, `ContextSource`, `ContextTokenCounter`, `createAgentSharedState`, `createAgentState`, `createDeploymentAuthority`, `createLocalProcessAdapter`, `createStructuredOutputParser`, `DeploymentActivationOptions`, `DeploymentAuthority`, `DeploymentCancellation`, `DeploymentCancelRequest`, `DeploymentCancelResult`, `DeploymentCapabilities`, `DeploymentCapabilityReport`, `DeploymentDisposeRequest`, `DeploymentDisposeResult`, `DeploymentError`, `DeploymentErrorCode`, `DeploymentEvidence`, `DeploymentFilesystem`, `DeploymentInspection`, `DeploymentInspectRequest`, `DeploymentNetwork`, `DeploymentPrepareRequest`, `DeploymentPrepareResult`, `DeploymentProcess`, `DeploymentRuntime`, `DeploymentSecrets`, `DeploymentStartRequest`, `DeploymentStartResult`, `DeploymentState`, `descriptorFromTool`, `DescriptorInput`, `ExecutionPolicy`, `ExecutionPolicyAdapter`, `FakeModelGateway`, `FakeModelGatewayOptions`, `HostileCodeIsolation`, `IdempotencyClass`, `isModelGatewayErrorCode`, `IsolationClass`, `LOCAL_PROCESS_LIMITATION`, `LocalProcessAdapter`, `LocalProcessAdapterOptions`, `LocalProcessPolicyError`, `LocalProcessRequest`, `LocalProcessResult`, `MemoryAgentStateStore`, `MODEL_GATEWAY_ERROR_CODES`, `ModelGateway`, `ModelGatewayAttemptRequest`, `ModelGatewayBudget`, `ModelGatewayEnvelope`, `ModelGatewayError`, `ModelGatewayErrorCode`, `ModelGatewayEvidence`, `ModelGatewayExecutionResult`, `ModelGatewayFailure`, `ModelGatewayFailureError`, `ModelGatewayRawResult`, `ModelGatewayRequest`, `ModelGatewayResult`, `ModelGatewaySuccess`, `ModelGatewayTerminalFailure`, `ModelGatewayUsage`, `ModelRoute`, `ModelRoutePolicy`, `ModelRouteRef`, `parseCapabilityDescriptor`, `parseDeploymentCapabilityReport`, `parseDeploymentPlan`, `parseModelGatewayError`, `parseModelGatewayResult`, `REGISTRY_SNAPSHOT_VERSION`, `RegistryError`, `RegistryErrorCode`, `RegistrySnapshot`, `replayAgent`, `ReplayModelGateway`, `ReplayModelGatewayOptions`, `resumeAgent`, `RetryClass`, `runAgent`, `RunAgentOptions`, `runModelGateway`, `structuredOutputParser`, `StructuredOutputParser`, `ToolDescriptorOptions`, `turn`
11541
11881
 
11542
11882
  ## @nifrajs/agent-app
11543
11883
 
11544
- `AGENT_APP_FEATURES`, `AgentAppClient`, `AgentAppClientOptions`, `AgentAppError`, `AgentEventView`, `AgentTransport`, `AgentTransportError`, `AgentTransportRequest`, `ApprovalRequiredView`, `ApprovalResolvedView`, `AssistantChunkView`, `AuthProvider`, `boundaryCommands`, `BoundaryDecisionResult`, `boundaryIsStale`, `BoundaryItemView`, `BoundaryStateView`, `CommandOutcome`, `CreateSessionInput`, `EvalComparisonView`, `EvidenceTimelineView`, `ExtensionReloadedView`, `FaultInjectionView`, `HandoffView`, `HttpAgentTransport`, `HttpAgentTransportOptions`, `MemoryCompactedView`, `OrderedEventBuffer`, `parseEventStream`, `PendingApprovalView`, `RegistryCapabilityView`, `RepairRequiredView`, `ReplayEntryView`, `ReplayResult`, `ResolveHandoffInput`, `ResumeInput`, `RunStudioNodeState`, `RunStudioNodeView`, `RunStudioView`, `RunView`, `SessionFailedView`, `SessionLifecycleView`, `SessionStoppedView`, `SessionView`, `toEvalComparisonView`, `toEventView`, `toEvidenceTimelineView`, `toFaultInjectionViews`, `toHandoffView`, `ToolCompletedView`, `ToolDeltaView`, `ToolStartedView`, `toRegistryCapabilityView`, `toRunStudioView`, `toRunView`, `toSessionView`, `TurnStartedView`, `VerificationCompletedView`, `virtualizeEvidenceRows`
11884
+ `AGENT_APP_FEATURES`, `AgentAppClient`, `AgentAppClientOptions`, `AgentAppError`, `AgentEventView`, `AgentTransport`, `AgentTransportError`, `AgentTransportRequest`, `ApprovalRequiredView`, `ApprovalResolvedView`, `AssistantChunkView`, `AuthProvider`, `boundaryCommands`, `BoundaryDecisionResult`, `boundaryIsStale`, `BoundaryItemView`, `BoundaryStateView`, `CommandOutcome`, `CreateSessionInput`, `EvalComparisonView`, `EvidenceTimelineView`, `ExtensionReloadedView`, `FaultInjectionView`, `HandoffView`, `HttpAgentTransport`, `HttpAgentTransportOptions`, `MemoryCompactedView`, `OrderedEventBuffer`, `parseEventStream`, `PendingApprovalView`, `RegistryCapabilityView`, `RepairRequiredView`, `ReplayEntryView`, `ReplayResult`, `ResolveHandoffInput`, `ResumeInput`, `ReviewView`, `ReviewViewCheck`, `ReviewViewEvidence`, `ReviewViewFinding`, `ReviewViewStatus`, `RunStudioNodeState`, `RunStudioNodeView`, `RunStudioView`, `RunView`, `SessionFailedView`, `SessionLifecycleView`, `SessionStoppedView`, `SessionView`, `toEvalComparisonView`, `toEventView`, `toEvidenceTimelineView`, `toFaultInjectionViews`, `toHandoffView`, `ToolCompletedView`, `ToolDeltaView`, `ToolStartedView`, `toRegistryCapabilityView`, `toReviewView`, `toRunStudioView`, `toRunView`, `toSessionView`, `TurnStartedView`, `VerificationCompletedView`, `virtualizeEvidenceRows`
11545
11885
 
11546
11886
  ## @nifrajs/agent-protocol
11547
11887
 
11548
11888
  `AGENT_PROTOCOL_VERSION`, `AgentApprovalRequiredEvent`, `AgentApprovalResolvedEvent`, `AgentAssistantDeltaEvent`, `AgentAssistantMessageEvent`, `AgentBackend`, `AgentBackendInfo`, `agentError`, `AgentError`, `AgentEvent`, `AgentEventPayload`, `AgentEventSink`, `AgentEventStream`, `AgentEventType`, `AgentExtensionReloadedEvent`, `AgentMemoryCompactedEvent`, `AgentRepairRequiredEvent`, `AgentRepairTask`, `AgentSessionCheckpoint`, `AgentSessionCompletedEvent`, `AgentSessionEventBase`, `AgentSessionFailedEvent`, `AgentSessionSnapshot`, `AgentSessionStartedEvent`, `AgentSessionStatus`, `AgentSessionStoppedEvent`, `AgentSessionUpdatedEvent`, `AgentToolCompletedEvent`, `AgentToolDeltaEvent`, `AgentToolStartedEvent`, `AgentTurnStartedEvent`, `AgentVerificationCompletedEvent`, `createAgentEventStream`, `CreateSessionInput`, `ForkSessionInput`, `ForkSessionResult`, `isAgentEvent`, `ReloadResult`, `SendMessageInput`
11549
11889
 
11890
+ ## @nifrajs/agent-review
11891
+
11892
+ `canonicalizeReviewReport`, `composeReviewReport`, `digestReviewReport`, `parseReviewReport`, `REVIEW_MAX_ARRAY_ITEMS`, `REVIEW_MAX_BYTES`, `REVIEW_MAX_CODE_BYTES`, `REVIEW_MAX_DEPTH`, `REVIEW_MAX_ID_BYTES`, `REVIEW_MAX_OBJECT_KEYS`, `REVIEW_MAX_PATH_BYTES`, `REVIEW_MAX_REF_BYTES`, `ReviewParserError`
11893
+
11550
11894
  ## @nifrajs/agent-telemetry
11551
11895
 
11552
11896
  `AgentRunEvidence`, `AgentRunOutcome`, `AgentRunTrace`, `agentTelemetry`, `AgentTelemetryOptions`, `consoleAgentExporter`, `orchestrationTelemetry`, `OrchestrationTelemetry`, `OrchestrationTelemetryEvent`, `OrchestrationTelemetryKind`, `OrchestrationTelemetryOptions`, `traceAgentRun`, `TraceAgentRunOptions`
@@ -11573,7 +11917,7 @@ done-gate, or `nifra mcp` to give the agent live project tools.
11573
11917
 
11574
11918
  ## @nifrajs/coding-agent
11575
11919
 
11576
- `AGENT_CAPABILITY_MANIFEST_VERSION`, `AGENT_PRESETS`, `AgentCapability`, `AgentCapabilityManifest`, `AgentPlan`, `AgentPreset`, `AgentPresetName`, `ApprovalDecision`, `ApprovalManager`, `ApprovalManagerOptions`, `ApprovalMatchRejection`, `ApprovalMatchResult`, `ApprovalRequest`, `approvalRequestFromEvent`, `approvalResolvedEvent`, `BoundedSubagentRunner`, `BoundedText`, `CapabilityDescriptor`, `CiDeploymentAdapter`, `CodingAgentExtension`, `CodingAgentHost`, `CodingAgentHostOptions`, `CodingAgentRpcServer`, `CodingAgentRpcServerHandle`, `CodingAgentRpcServerOptions`, `CompactionReport`, `ContextRecord`, `ContextWindow`, `ContextWindowOptions`, `createCapabilityManifest`, `createCiDeploymentAdapter`, `createLocalProcessDeploymentAdapter`, `createNativeGatewayModelPort`, `createNifraTools`, `createPresetSpec`, `createReplayDeploymentAdapter`, `createVerificationRepairTask`, `deniedCapabilities`, `DEPLOYMENT_REFERENCE_PROFILES`, `discoverExtensions`, `ExtensionCommand`, `ExtensionContext`, `extensionDescriptor`, `ExtensionDescriptorOptions`, `extensionDescriptors`, `ExtensionDescriptorSource`, `ExtensionEventHandler`, `ExtensionHost`, `ExtensionHostOptions`, `ExtensionProvider`, `ExtensionReloadResult`, `ExtensionSubagent`, `ExtensionTool`, `FileSessionStore`, `FileSessionStoreOptions`, `getAgentPreset`, `HandoffCoordinator`, `HandoffCoordinatorOptions`, `HandoffDecision`, `HandoffError`, `HandoffRejection`, `HandoffView`, `HealingEvent`, `HealingOptions`, `HealingResult`, `IsolatedExtensionSnapshot`, `IsolatedExtensionTool`, `IsolatedExtensionWorker`, `IsolatedExtensionWorkerOptions`, `LocalProcessDeploymentAdapter`, `migrateLegacySession`, `MigrateLegacySessionOptions`, `NativeApprovalPort`, `NativeGatewayModelPortOptions`, `NativeMessage`, `NativeModelChunk`, `NativeModelPort`, `NativeModelRequest`, `NativeModelResponse`, `NativeTool`, `NIFRA_AGENT_INSTRUCTIONS`, `NifraAgentTool`, `NifraBackend`, `NifraBackendOptions`, `NifraContextOptions`, `NifraContextResult`, `OpenHandoffInput`, `parseCapabilityManifest`, `parseSessionEvidenceRecord`, `PiBackend`, `PiBackendOptions`, `PlanEvent`, `PlanPhase`, `PlanResult`, `PlanRunner`, `PlanRunnerOptions`, `ProjectDiffOptions`, `ProjectDiffResult`, `readBoundedText`, `readProjectDiff`, `readReplayEvents`, `RepairProposal`, `ReplayBackend`, `ReplayBackendOptions`, `ReplayDeploymentAdapter`, `runNifraContext`, `runNifraVerification`, `SelfHealingController`, `SESSION_EVIDENCE_VERSION`, `SessionEvidenceRecord`, `SessionLogEntry`, `SessionMigrationError`, `SessionMigrationReport`, `SessionStore`, `stableSessionEventCode`, `SubagentExecutor`, `SubagentResult`, `SubagentRunnerOptions`, `SubagentSpec`, `UiExtensionHost`, `UiExtensionHostOptions`, `UiExtensionManifest`, `UiExtensionSlot`, `UiReloadResult`, `UiStatusWidget`, `UiThemeDescriptor`, `validateExtensionModule`, `VerificationOptions`, `VerificationRepairTask`, `VerificationResult`, `WorkflowContext`, `WorkflowEvent`, `WorkflowResult`, `WorkflowRunner`, `WorkflowRunnerOptions`, `WorkflowStep`
11920
+ `AGENT_CAPABILITY_MANIFEST_VERSION`, `AGENT_PRESETS`, `AgentCapability`, `AgentCapabilityManifest`, `AgentPlan`, `AgentPreset`, `AgentPresetName`, `ApprovalDecision`, `ApprovalManager`, `ApprovalManagerOptions`, `ApprovalMatchRejection`, `ApprovalMatchResult`, `ApprovalRequest`, `approvalRequestFromEvent`, `approvalResolvedEvent`, `BoundedSubagentRunner`, `BoundedText`, `CapabilityDescriptor`, `CiDeploymentAdapter`, `CodingAgentExtension`, `CodingAgentHost`, `CodingAgentHostOptions`, `CodingAgentRpcServer`, `CodingAgentRpcServerHandle`, `CodingAgentRpcServerOptions`, `CompactionReport`, `ContextRecord`, `ContextWindow`, `ContextWindowOptions`, `createCapabilityManifest`, `createCiDeploymentAdapter`, `createLocalProcessDeploymentAdapter`, `createNativeGatewayModelPort`, `createNifraTools`, `createPresetSpec`, `createReplayDeploymentAdapter`, `createVerificationRepairTask`, `deniedCapabilities`, `DEPLOYMENT_REFERENCE_PROFILES`, `discoverExtensions`, `ExtensionCommand`, `ExtensionContext`, `extensionDescriptor`, `ExtensionDescriptorOptions`, `extensionDescriptors`, `ExtensionDescriptorSource`, `ExtensionEventHandler`, `ExtensionHost`, `ExtensionHostOptions`, `ExtensionProvider`, `ExtensionReloadResult`, `ExtensionSubagent`, `ExtensionTool`, `FileSessionStore`, `FileSessionStoreOptions`, `getAgentPreset`, `HandoffCoordinator`, `HandoffCoordinatorOptions`, `HandoffDecision`, `HandoffError`, `HandoffRejection`, `HandoffView`, `HealingEvent`, `HealingOptions`, `HealingResult`, `IsolatedExtensionSnapshot`, `IsolatedExtensionTool`, `IsolatedExtensionWorker`, `IsolatedExtensionWorkerOptions`, `isSafeReviewDiff`, `LocalProcessDeploymentAdapter`, `migrateLegacySession`, `MigrateLegacySessionOptions`, `NativeApprovalPort`, `NativeGatewayModelPortOptions`, `NativeMessage`, `NativeModelChunk`, `NativeModelPort`, `NativeModelRequest`, `NativeModelResponse`, `NativeTool`, `NIFRA_AGENT_INSTRUCTIONS`, `NifraAgentTool`, `NifraBackend`, `NifraBackendOptions`, `NifraContextOptions`, `NifraContextResult`, `OpenHandoffInput`, `parseCapabilityManifest`, `parseSessionEvidenceRecord`, `PiBackend`, `PiBackendOptions`, `PlanEvent`, `PlanPhase`, `PlanResult`, `PlanRunner`, `PlanRunnerOptions`, `ProjectDiffOptions`, `ProjectDiffResult`, `readBoundedText`, `readProjectDiff`, `readReplayEvents`, `RepairProposal`, `ReplayBackend`, `ReplayBackendOptions`, `ReplayDeploymentAdapter`, `ReviewExecutionErrorCode`, `ReviewExecutionResult`, `ReviewOptions`, `runNifraContext`, `runNifraReview`, `runNifraVerification`, `SelfHealingController`, `SESSION_EVIDENCE_VERSION`, `SessionEvidenceRecord`, `SessionLogEntry`, `SessionMigrationError`, `SessionMigrationReport`, `SessionStore`, `stableSessionEventCode`, `SubagentExecutor`, `SubagentResult`, `SubagentRunnerOptions`, `SubagentSpec`, `UiExtensionHost`, `UiExtensionHostOptions`, `UiExtensionManifest`, `UiExtensionSlot`, `UiReloadResult`, `UiStatusWidget`, `UiThemeDescriptor`, `validateExtensionModule`, `VerificationOptions`, `VerificationRepairTask`, `VerificationResult`, `WorkflowContext`, `WorkflowEvent`, `WorkflowResult`, `WorkflowRunner`, `WorkflowRunnerOptions`, `WorkflowStep`
11577
11921
 
11578
11922
  ## @nifrajs/content
11579
11923
 
@@ -11581,7 +11925,7 @@ done-gate, or `nifra mcp` to give the agent live project tools.
11581
11925
 
11582
11926
  ## @nifrajs/core
11583
11927
 
11584
- `AdmissionController`, `AdmissionDecision`, `AnyServer`, `commonSecretPatterns`, `Context`, `ContextPlugin`, `cookieNamePrefix`, `CookieOptions`, `CookieSecret`, `defineContextPlugin`, `defineIdentityPlugin`, `definePlugin`, `DefinePluginResult`, `defineRouterPlugin`, `DurableObjectNamespaceLike`, `ExecutionContext`, `FetchApp`, `FRAMEWORK_NAME`, `FrameworkError`, `FrameworkName`, `Handler`, `IdentityPlugin`, `InferInput`, `InferOutput`, `isSameOriginPath`, `isSameOriginRequest`, `jsonLogger`, `LambdaEvent`, `LambdaHandler`, `LambdaResponse`, `LambdaV1Event`, `LambdaV2Event`, `LogFields`, `Logger`, `McpPromptDescriptor`, `McpResourceDescriptor`, `Method`, `METHODS`, `Middleware`, `NetlifyEvent`, `NetlifyHandler`, `NifraFeatureVersion`, `NifraPlugin`, `NifraWebSocket`, `NodeRequestContext`, `NodeRequestHook`, `NodeResponseContext`, `NodeResponseHook`, `NodeServeOutcome`, `OnRequestResult`, `Params`, `parseCookies`, `pathnameOf`, `PlainRender`, `Platform`, `PlatformResponse`, `PluginTypeCollapsed`, `Prettify`, `PromptArgument`, `PromptMessage`, `redactLogFields`, `RedactOptions`, `Registry`, `ResponseBodyHook`, `ResponseBodyReplacement`, `ResponseControls`, `ResponseFinalization`, `ResponseHeadersHook`, `ResponseHeadersView`, `ResponseMapFor`, `ResponseResult`, `RouteConfigError`, `RouteConfigErrorCode`, `RouteDescriptor`, `RouteInfo`, `RouteInfoFor`, `Router`, `RouterMatch`, `RouteSchema`, `RunningServer`, `ScheduledController`, `ScheduledHandler`, `serializeCookie`, `server`, `Server`, `ServerOptions`, `signValue`, `silentLogger`, `SSEContext`, `SSEInit`, `SSEMessage`, `SSEStream`, `StandardIssue`, `StandardResult`, `StandardSchemaV1`, `StandardTypes`, `StandardWebSocket`, `status`, `StatusResponse`, `toFetchHandler`, `toLambdaHandler`, `toNetlifyHandler`, `ToolAnnotations`, `toVercelHandler`, `TypedSSEStream`, `unsignValue`, `UrlParts`, `urlPartsOf`, `ValidationOutcome`, `VercelHandler`, `Version`, `VERSION`, `WebSocketContext`, `WebSocketData`, `WebSocketHandler`, `WebSocketUpgradeOutcome`
11928
+ `AdmissionController`, `AdmissionDecision`, `AnyServer`, `commonSecretPatterns`, `Context`, `ContextPlugin`, `cookieNamePrefix`, `CookieOptions`, `CookieSecret`, `defineContextPlugin`, `defineIdentityPlugin`, `definePlugin`, `DefinePluginResult`, `defineRouterPlugin`, `DurableObjectNamespaceLike`, `ExecutionContext`, `FetchApp`, `FRAMEWORK_NAME`, `FrameworkError`, `FrameworkName`, `Handler`, `hasDuplicateCookie`, `IdentityPlugin`, `InferInput`, `InferOutput`, `isSameOriginPath`, `isSameOriginRequest`, `jsonLogger`, `LambdaEvent`, `LambdaHandler`, `LambdaResponse`, `LambdaV1Event`, `LambdaV2Event`, `LogFields`, `Logger`, `McpPromptDescriptor`, `McpResourceDescriptor`, `Method`, `METHODS`, `Middleware`, `NetlifyEvent`, `NetlifyHandler`, `NifraFeatureVersion`, `NifraPlugin`, `NifraWebSocket`, `NodeRequestContext`, `NodeRequestHook`, `NodeResponseContext`, `NodeResponseHook`, `NodeServeOutcome`, `OnRequestResult`, `Params`, `parseCookies`, `pathnameOf`, `PlainRender`, `Platform`, `PlatformResponse`, `PluginTypeCollapsed`, `Prettify`, `PromptArgument`, `PromptMessage`, `redactLogFields`, `RedactOptions`, `Registry`, `ResponseBodyHook`, `ResponseBodyReplacement`, `ResponseControls`, `ResponseFinalization`, `ResponseHeadersHook`, `ResponseHeadersView`, `ResponseMapFor`, `ResponseResult`, `RouteConfigError`, `RouteConfigErrorCode`, `RouteDescriptor`, `RouteInfo`, `RouteInfoFor`, `Router`, `RouterMatch`, `RouteSchema`, `RunningServer`, `ScheduledController`, `ScheduledHandler`, `serializeCookie`, `server`, `Server`, `ServerOptions`, `signValue`, `silentLogger`, `SSEContext`, `SSEInit`, `SSEMessage`, `SSEStream`, `StandardIssue`, `StandardResult`, `StandardSchemaV1`, `StandardTypes`, `StandardWebSocket`, `status`, `StatusResponse`, `toFetchHandler`, `toLambdaHandler`, `toNetlifyHandler`, `ToolAnnotations`, `toVercelHandler`, `TypedSSEStream`, `unsignValue`, `UrlParts`, `urlPartsOf`, `ValidationOutcome`, `VercelHandler`, `Version`, `VERSION`, `WebSocketContext`, `WebSocketData`, `WebSocketHandler`, `WebSocketUpgradeOutcome`
11585
11929
 
11586
11930
  ## @nifrajs/cron
11587
11931
 
@@ -11629,7 +11973,7 @@ done-gate, or `nifra mcp` to give the agent live project tools.
11629
11973
 
11630
11974
  ## @nifrajs/jobs
11631
11975
 
11632
- `Backoff`, `CapabilityBeacon`, `createQueue`, `EnqueueOptions`, `exponentialBackoff`, `ExponentialOptions`, `fixedBackoff`, `JobContext`, `JobCounts`, `JobDefinition`, `JobError`, `JobHandle`, `JobHandler`, `JobStore`, `JobValidationError`, `MemoryJobStore`, `noBackoff`, `Queue`, `QueueOptions`, `RetryPolicy`, `StandardResult`, `StandardSchemaV1`, `StoredJob`, `Worker`, `WorkerOptions`
11976
+ `Backoff`, `CapabilityBeacon`, `createQueue`, `DeadLetterRecord`, `DeadLetterView`, `EnqueueOptions`, `exponentialBackoff`, `ExponentialOptions`, `fixedBackoff`, `JobContext`, `JobCounts`, `JobDefinition`, `JobError`, `JobHandle`, `JobHandler`, `JobStore`, `JobValidationError`, `MemoryJobStore`, `noBackoff`, `Queue`, `QueueHealth`, `QueueOptions`, `RetryPolicy`, `StandardResult`, `StandardSchemaV1`, `StoredJob`, `toDeadLetterView`, `toQueueHealth`, `Worker`, `WorkerOptions`
11633
11977
 
11634
11978
  ## @nifrajs/mcp
11635
11979
 
@@ -11673,7 +12017,7 @@ done-gate, or `nifra mcp` to give the agent live project tools.
11673
12017
 
11674
12018
  ## @nifrajs/schema
11675
12019
 
11676
- `decodeCursor`, `encodeCursor`, `fromTypeBox`, `NifraSchema`, `OpenAPIDocument`, `OpenAPIInfo`, `Page`, `paginate`, `registerFormat`, `t`, `toOpenAPI`
12020
+ `decodeCursor`, `diffOpenApiInventory`, `encodeCursor`, `fromTypeBox`, `ImportedApiInventory`, `ImportedRoute`, `ImportedRouteQuery`, `importOpenAPI`, `ImportOpenAPIOptions`, `NifraSchema`, `OpenAPIDocument`, `OpenAPIImportError`, `OpenAPIInfo`, `OpenApiInventoryDrift`, `Page`, `paginate`, `registerFormat`, `t`, `toOpenAPI`, `toOpenAPIFromEvidence`
11677
12021
 
11678
12022
  ## @nifrajs/storage
11679
12023
 
@@ -11681,7 +12025,7 @@ done-gate, or `nifra mcp` to give the agent live project tools.
11681
12025
 
11682
12026
  ## @nifrajs/testing
11683
12027
 
11684
- `AdapterCertificationError`, `AdapterCertificationProfile`, `AdapterCertificationReport`, `AdversarialContractError`, `AdversarialContractOptions`, `AdversarialContractReport`, `AdversarialContractResult`, `AgentEvalCase`, `AgentEvalComponentEvidence`, `AgentEvalCompositionOptions`, `AgentEvalCompositionReport`, `AgentEvalRegressionError`, `AgentEvalReport`, `AgentEvalSuite`, `AgentEvalSuiteSpec`, `AgentFailureMatrixCase`, `AgentFailureMatrixError`, `AgentFailureMatrixKind`, `AgentFailureMatrixReport`, `AppLike`, `assertAdapterCertification`, `assertAdversarialContract`, `assertAgentEval`, `assertAgentEvalBaseline`, `assertAgentFailureMatrix`, `assertIncidentReplays`, `assertTrajectoryInvariants`, `BaselineComparison`, `BaselineOptions`, `cacheStoreCertificationProfile`, `CapturedRequest`, `CapturedRequestInput`, `captureIncident`, `CaptureIncidentOptions`, `CaseComparison`, `CaseResult`, `CertifiableCacheEntry`, `CertifiableCacheStore`, `CertifiableDeploymentAdapter`, `CertifiableDescriptorAdapter`, `CertifiableDomainEvent`, `CertifiableEventDeliveryAdapter`, `CertifiableEventRecord`, `CertifiableJobStore`, `CertifiableModelGateway`, `CertifiableRuntimeAdapter`, `CertifiableRuntimeServer`, `CertifiableStorageAdapter`, `CertificationCapabilityEvidence`, `CertificationCheck`, `CertificationCheckEvidence`, `certifyAdapter`, `checkTrajectoryInvariants`, `compareAgentEvalBaseline`, `ComparisonCode`, `ContractCaseContext`, `ContractCaseKind`, `ContractCoverageGap`, `ContractCoverageGapCode`, `ContractLabHandler`, `ContractLabRuntimeAdapter`, `ContractLabServer`, `ContractLabWitness`, `contractLabWitnesses`, `ContractReplay`, `ContractRuntime`, `ContractTarget`, `ContractTestApp`, `ContractWitness`, `cookieJar`, `CookieJar`, `createFailureLab`, `createReferenceContractLabHandler`, `createTrajectoryTranscript`, `CreateTrajectoryTranscriptOptions`, `defineAgentEvalSuite`, `defineCertificationProfile`, `defineFaultProfile`, `deploymentAdapterCertificationProfile`, `deploymentCertificationProfile`, `EffectLedger`, `eventDeliveryCertificationProfile`, `FailureDirective`, `FailureEvidence`, `FailureInjectedError`, `FailureKind`, `FailureLab`, `FailureLabOptions`, `FailureReplay`, `FailureScenario`, `FailureScenarioReport`, `FaultProfile`, `FaultProfileFault`, `FaultProfileFaultKind`, `FaultProfileReport`, `FaultProfileScenario`, `FaultProfileScenarioReport`, `gatewayCertificationProfile`, `generateRegressionTest`, `GenerateRegressionTestOptions`, `httpToolAdapter`, `IdempotencyDivergence`, `IdempotencyProof`, `IncidentCapsule`, `IncidentReplayError`, `IncidentReplayResult`, `inProcessToolAdapter`, `jobStoreCertificationProfile`, `mcpToolAdapter`, `modelGatewayCertificationProfile`, `parseRubricVerdict`, `proveIdempotency`, `recordTrajectory`, `redactForEmission`, `referenceFaultProfile`, `registryCertificationProfile`, `replayIncident`, `ReplayIncidentOptions`, `replayTrajectory`, `ReplayTrajectoryOptions`, `RubricShape`, `RubricSpec`, `RubricVerdict`, `runAdversarialContract`, `runAgentEvalComposition`, `runAgentFailureMatrix`, `runContractLab`, `runContractLabOverHttp`, `runContractLabThroughAdapter`, `runFailureScenario`, `runFaultProfile`, `RunFaultProfileOptions`, `runtimeAdapterCertificationProfile`, `runTrajectory`, `ScoreTolerance`, `shapeOf`, `storageAdapterCertificationProfile`, `testSession`, `TestSession`, `TestSessionOptions`, `testToolAdapter`, `TrajectoryInvariantId`, `TrajectoryInvariantOptions`, `TrajectoryInvariantResult`, `trajectoryRegressionId`, `TrajectoryReplayResult`, `TrajectoryRun`, `TrajectoryTranscript`, `verifyAdapterCertification`
12028
+ `AdapterCertificationError`, `AdapterCertificationProfile`, `AdapterCertificationReport`, `AdversarialContractError`, `AdversarialContractOptions`, `AdversarialContractReport`, `AdversarialContractResult`, `AgentEvalCase`, `AgentEvalComponentEvidence`, `AgentEvalCompositionOptions`, `AgentEvalCompositionReport`, `AgentEvalRegressionError`, `AgentEvalReport`, `AgentEvalSuite`, `AgentEvalSuiteSpec`, `AgentFailureMatrixCase`, `AgentFailureMatrixError`, `AgentFailureMatrixKind`, `AgentFailureMatrixReport`, `AppLike`, `assertAdapterCertification`, `assertAdversarialContract`, `assertAgentEval`, `assertAgentEvalBaseline`, `assertAgentFailureMatrix`, `assertIncidentReplays`, `assertPredictionLab`, `assertTrajectoryInvariants`, `BaselineComparison`, `BaselineOptions`, `cacheStoreCertificationProfile`, `CapturedRequest`, `CapturedRequestInput`, `captureIncident`, `CaptureIncidentOptions`, `CaseComparison`, `CaseResult`, `CertifiableCacheEntry`, `CertifiableCacheStore`, `CertifiableDeploymentAdapter`, `CertifiableDescriptorAdapter`, `CertifiableDomainEvent`, `CertifiableEventDeliveryAdapter`, `CertifiableEventRecord`, `CertifiableJobStore`, `CertifiableModelGateway`, `CertifiableRuntimeAdapter`, `CertifiableRuntimeServer`, `CertifiableStorageAdapter`, `CertificationCapabilityEvidence`, `CertificationCheck`, `CertificationCheckEvidence`, `CertificationTarget`, `certifyAdapter`, `checkTrajectoryInvariants`, `compareAgentEvalBaseline`, `ComparisonCode`, `ContractCaseContext`, `ContractCaseKind`, `ContractCoverageGap`, `ContractCoverageGapCode`, `ContractLabHandler`, `ContractLabRuntimeAdapter`, `ContractLabServer`, `ContractLabWitness`, `contractLabWitnesses`, `ContractReplay`, `ContractRuntime`, `ContractTarget`, `ContractTestApp`, `ContractWitness`, `cookieJar`, `CookieJar`, `createFailureLab`, `createReferenceContractLabHandler`, `createTrajectoryTranscript`, `CreateTrajectoryTranscriptOptions`, `defineAgentEvalSuite`, `defineCertificationProfile`, `defineFaultProfile`, `deploymentAdapterCertificationProfile`, `deploymentCertificationProfile`, `EffectLedger`, `eventDeliveryCertificationProfile`, `FailureDirective`, `FailureEvidence`, `FailureInjectedError`, `FailureKind`, `FailureLab`, `FailureLabOptions`, `FailureReplay`, `FailureScenario`, `FailureScenarioReport`, `FaultProfile`, `FaultProfileFault`, `FaultProfileFaultKind`, `FaultProfileReport`, `FaultProfileScenario`, `FaultProfileScenarioReport`, `gatewayCertificationProfile`, `generateRegressionTest`, `GenerateRegressionTestOptions`, `httpToolAdapter`, `IdempotencyDivergence`, `IdempotencyProof`, `IncidentCapsule`, `IncidentReplayError`, `IncidentReplayResult`, `inProcessToolAdapter`, `jobStoreCertificationProfile`, `mcpToolAdapter`, `modelGatewayCertificationProfile`, `parseRubricVerdict`, `PREDICTION_LAB_SEED`, `predictionLabCaseIds`, `PredictionLabContext`, `PredictionLabOptions`, `PredictionLabReplay`, `PredictionLabReport`, `PredictionLabResult`, `PredictionLabTarget`, `proveIdempotency`, `recordTrajectory`, `redactForEmission`, `referenceFaultProfile`, `registryCertificationProfile`, `replayIncident`, `ReplayIncidentOptions`, `replayTrajectory`, `ReplayTrajectoryOptions`, `RubricShape`, `RubricSpec`, `RubricVerdict`, `runAdversarialContract`, `runAgentEvalComposition`, `runAgentFailureMatrix`, `runContractLab`, `runContractLabOverHttp`, `runContractLabThroughAdapter`, `runFailureScenario`, `runFaultProfile`, `RunFaultProfileOptions`, `runPredictionLab`, `runtimeAdapterCertificationProfile`, `runTrajectory`, `ScoreTolerance`, `shapeOf`, `storageAdapterCertificationProfile`, `testSession`, `TestSession`, `TestSessionOptions`, `testToolAdapter`, `toPredictionLabContext`, `TrajectoryInvariantId`, `TrajectoryInvariantOptions`, `TrajectoryInvariantResult`, `trajectoryRegressionId`, `TrajectoryReplayResult`, `TrajectoryRun`, `TrajectoryTranscript`, `verifyAdapterCertification`
11685
12029
 
11686
12030
  ## @nifrajs/ts-plugin
11687
12031
 
@@ -11693,7 +12037,7 @@ done-gate, or `nifra mcp` to give the agent live project tools.
11693
12037
 
11694
12038
  ## @nifrajs/web
11695
12039
 
11696
- `Action`, `ACTION_GLOBAL`, `assertRenderAdapterConformance`, `assertStaticBoundaryImports`, `Blocker`, `BlockerController`, `BlockerFunction`, `BlockerLocation`, `BlockerState`, `Boundary`, `BOUNDARY_GLOBAL`, `BoundaryDescriptor`, `boundaryDescriptors`, `BoundaryError`, `BoundaryMode`, `boundaryModeKey`, `BoundaryRegistration`, `BoundaryRequestCtx`, `BoundaryState`, `BoundaryStates`, `BoundaryStatus`, `BrowserNavigate`, `buildManifest`, `CachedResponse`, `CacheStore`, `canonical`, `ClientAction`, `ClientActionArgs`, `ClientActionResult`, `ClientLoader`, `ClientLoaderArgs`, `ClientRequestBody`, `ClientRouteHooks`, `ClientRouter`, `ClientRouterOptions`, `createClientRouter`, `createMatcher`, `createMutation`, `createQueryClient`, `createWebApp`, `CreateWebAppOptions`, `DATA_GLOBAL`, `DATA_HEADER`, `DEFAULT_DEV_PORT`, `defer`, `Deferred`, `DehydratedState`, `disableDraft`, `DRAFT_COOKIE`, `DraftCookieControls`, `DynamicBoundary`, `DynamicBoundaryBatch`, `enableDraft`, `EnableDraftOptions`, `enumerateStaticRoutes`, `Fetcher`, `FetcherState`, `FetchRouteData`, `filePathToPattern`, `filePathToPatterns`, `FontDisplay`, `fontFace`, `FontFace`, `fontPreload`, `FontPreloadInput`, `FontSource`, `generateClientEntry`, `GenerateClientEntryOptions`, `generateRouteSearchTypes`, `GenerateRouteSearchTypesOptions`, `generateServerManifest`, `GenerateServerManifestOptions`, `getBrowserNavigate`, `GetStaticPaths`, `gone`, `hashQueryKey`, `IDLE_BLOCKER`, `InertScriptType`, `InfiniteData`, `InfiniteQueryHandle`, `InfiniteQueryOptions`, `InterceptBoundary`, `isDraftEnabled`, `ISR_REVALIDATE_HEADER`, `ISR_REVALIDATE_TAGS_HEADER`, `ISR_STATUS_HEADER`, `ISRApp`, `ISROptions`, `ISRPlatform`, `jsonLd`, `KVCacheStore`, `KVCacheStoreOptions`, `KVNamespaceLike`, `LAYOUT_DATA_GLOBAL`, `LayoutEntry`, `LinkDescriptor`, `Loader`, `LoaderContext`, `Manifest`, `MemoryCacheStore`, `MemoryCacheStoreOptions`, `MemoryStaticBoundaryCache`, `mergeHeads`, `Meta`, `MetaArgs`, `MetaDescriptor`, `MetaInput`, `MountRouterOptions`, `MutationCallbacks`, `MutationHandle`, `MutationState`, `MutationStatus`, `NAV_FROM_HEADER`, `NavigateFunction`, `NavigateOptions`, `NavigateSearchOf`, `NavigateTargetInput`, `notFound`, `openGraph`, `OpenGraphInput`, `PendingBoundary`, `PRE_HYDRATION_GUARD`, `previewEndpoint`, `PreviewEndpointOptions`, `PublicDirCache`, `QueryClient`, `QueryClientOptions`, `QueryHandle`, `QueryOptions`, `QueryState`, `QueryStatus`, `redirect`, `REDIRECT_HEADER`, `RedirectOptions`, `registerBlocker`, `RenderAdapter`, `RenderAdapterConformanceError`, `RenderAdapterConformanceFixture`, `RenderAssemblyCache`, `RenderedPage`, `renderPage`, `RenderPageInput`, `RenderPageOptions`, `renderPageResult`, `RenderProps`, `resolveDynamicBoundaries`, `resolveMeta`, `resolveNavigate`, `resolvePublicPath`, `resolveStaticBoundaries`, `RETAIN_HEADER`, `revalidate`, `REVALIDATE_HEADER`, `revalidateEndpoint`, `RevalidateEndpointOptions`, `RevalidateResult`, `ROOT_ATTRIBUTE`, `ROUTE_GLOBAL`, `RouteEntry`, `RouteMatch`, `RouteModule`, `RoutePattern`, `RouterState`, `RouteSearch`, `ScriptDescriptor`, `searchOf`, `SearchOf`, `searchOfChain`, `serializeData`, `serializeSearch`, `servePublicDir`, `ServePublicDirOptions`, `SERVER_FN_MODULE`, `SERVER_ONLY_MODULE`, `ServerOnly`, `setBlockerController`, `setBrowserNavigate`, `setSsrModuleLoader`, `ssrModuleLoader`, `SsrModuleLoader`, `startDynamicBoundaries`, `StaticBoundary`, `StaticBoundaryCache`, `StaticBoundaryImportEdge`, `StaticBoundaryRoot`, `StaticCtx`, `StaticPath`, `StaticPaths`, `StaticRoutes`, `STATUS_HEADER`, `statusPage`, `StatusPageOptions`, `Submission`, `SubmitOptions`, `unsafeInlineScript`, `UnsafeScriptDescriptor`, `withISR`
12040
+ `Action`, `ACTION_GLOBAL`, `assertCssLoadingCompatible`, `assertRenderAdapterConformance`, `assertStaticBoundaryImports`, `Blocker`, `BlockerController`, `BlockerFunction`, `BlockerLocation`, `BlockerState`, `Boundary`, `BOUNDARY_GLOBAL`, `BoundaryDescriptor`, `boundaryDescriptors`, `BoundaryError`, `BoundaryMode`, `boundaryModeKey`, `BoundaryRegistration`, `BoundaryRequestCtx`, `BoundaryState`, `BoundaryStates`, `BoundaryStatus`, `BrowserNavigate`, `buildManifest`, `CachedResponse`, `CacheStore`, `canonical`, `ClientAction`, `ClientActionArgs`, `ClientActionResult`, `ClientLoader`, `ClientLoaderArgs`, `ClientRequestBody`, `ClientRouteHooks`, `ClientRouter`, `ClientRouterOptions`, `createClientRouter`, `createMatcher`, `createMutation`, `createQueryClient`, `createWebApp`, `CreateWebAppOptions`, `CssLoadingMode`, `DATA_GLOBAL`, `DATA_HEADER`, `DEFAULT_CSS_LOADING`, `DEFAULT_DEV_PORT`, `defer`, `Deferred`, `DehydratedState`, `disableDraft`, `DRAFT_COOKIE`, `DraftCookieControls`, `DynamicBoundary`, `DynamicBoundaryBatch`, `enableDraft`, `EnableDraftOptions`, `enumerateStaticRoutes`, `Fetcher`, `FetcherState`, `FetchRouteData`, `filePathToPattern`, `filePathToPatterns`, `FontDisplay`, `fontFace`, `FontFace`, `fontPreload`, `FontPreloadInput`, `FontSource`, `generateClientEntry`, `GenerateClientEntryOptions`, `generateRouteSearchTypes`, `GenerateRouteSearchTypesOptions`, `generateServerManifest`, `GenerateServerManifestOptions`, `getBrowserNavigate`, `GetStaticPaths`, `gone`, `hashQueryKey`, `HtmlSanitizer`, `IDLE_BLOCKER`, `InertScriptType`, `InfiniteData`, `InfiniteQueryHandle`, `InfiniteQueryOptions`, `InterceptBoundary`, `isDraftEnabled`, `ISR_REVALIDATE_HEADER`, `ISR_REVALIDATE_TAGS_HEADER`, `ISR_STATUS_HEADER`, `ISRApp`, `ISROptions`, `ISRPlatform`, `jsonLd`, `KVCacheStore`, `KVCacheStoreOptions`, `KVNamespaceLike`, `LAYOUT_DATA_GLOBAL`, `LayoutEntry`, `LinkDescriptor`, `Loader`, `LoaderContext`, `Manifest`, `MemoryCacheStore`, `MemoryCacheStoreOptions`, `MemoryStaticBoundaryCache`, `mergeHeads`, `Meta`, `MetaArgs`, `MetaDescriptor`, `MetaInput`, `MountRouterOptions`, `MutationCallbacks`, `MutationHandle`, `MutationState`, `MutationStatus`, `NAV_FROM_HEADER`, `NavigateFunction`, `NavigateOptions`, `NavigateSearchOf`, `NavigateTargetInput`, `NonceResolver`, `normalizeCssLoading`, `notFound`, `openGraph`, `OpenGraphInput`, `PendingBoundary`, `PRE_HYDRATION_GUARD`, `previewEndpoint`, `PreviewEndpointOptions`, `PublicDirCache`, `QueryClient`, `QueryClientOptions`, `QueryHandle`, `QueryOptions`, `QueryState`, `QueryStatus`, `redirect`, `REDIRECT_HEADER`, `RedirectOptions`, `registerBlocker`, `RenderAdapter`, `RenderAdapterConformanceError`, `RenderAdapterConformanceFixture`, `RenderAssemblyCache`, `RenderedPage`, `renderPage`, `RenderPageInput`, `RenderPageOptions`, `renderPageResult`, `RenderProps`, `resolveDynamicBoundaries`, `resolveMeta`, `resolveNavigate`, `resolvePublicPath`, `resolveStaticBoundaries`, `RETAIN_HEADER`, `revalidate`, `REVALIDATE_HEADER`, `revalidateEndpoint`, `RevalidateEndpointOptions`, `RevalidateResult`, `ROOT_ATTRIBUTE`, `ROUTE_GLOBAL`, `RouteEntry`, `RouteMatch`, `RouteModule`, `RoutePattern`, `RouterState`, `RouteSearch`, `sanitizedHtml`, `SanitizedHtml`, `sanitizeHtml`, `ScriptDescriptor`, `searchOf`, `SearchOf`, `searchOfChain`, `serializeData`, `serializeSearch`, `servePublicDir`, `ServePublicDirOptions`, `SERVER_FN_MODULE`, `SERVER_ONLY_MODULE`, `ServerOnly`, `setBlockerController`, `setBrowserNavigate`, `setSsrModuleLoader`, `ssrModuleLoader`, `SsrModuleLoader`, `startDynamicBoundaries`, `StaticBoundary`, `StaticBoundaryCache`, `StaticBoundaryImportEdge`, `StaticBoundaryRoot`, `StaticCtx`, `StaticPath`, `StaticPaths`, `StaticRoutes`, `STATUS_HEADER`, `statusPage`, `StatusPageOptions`, `Submission`, `SubmitOptions`, `TrustedHtml`, `trustHtml`, `unsafeInlineScript`, `UnsafeScriptDescriptor`, `withISR`
11697
12041
 
11698
12042
  ## @nifrajs/web-preact
11699
12043
 
@@ -11719,6 +12063,10 @@ done-gate, or `nifra mcp` to give the agent live project tools.
11719
12063
 
11720
12064
  `vueAdapter`
11721
12065
 
12066
+ ## @nifrajs/webmcp
12067
+
12068
+ `AgentCapability`, `AgentCapabilityReference`, `AgentSurfaceAuthoritativeState`, `AgentSurfaceConformanceCase`, `AgentSurfaceConformanceOptions`, `AgentSurfaceConformanceResult`, `AgentSurfaceDescriptor`, `AgentSurfacePrediction`, `AgentSurfacePredictionContext`, `AgentSurfacePredictor`, `AgentSurfaceReconcileContext`, `AgentSurfaceReconciler`, `AgentSurfaceScope`, `AgentSurfaceSnapshot`, `createPredictionStore`, `defineAgentCapability`, `DefineAgentCapabilityOptions`, `executeAgentCapability`, `executePredicted`, `ExecutePredictedOptions`, `PredictedExecutionResult`, `PredictionPatchOperation`, `PredictionStore`, `PredictionStoreEvent`, `PredictionStoreResult`, `PredictionStoreSnapshot`, `ReconciliationMode`, `registerWebMcpTools`, `runAgentSurfaceConformance`, `ToolApproval`, `ToolCallOptions`, `ToolCallResult`, `ToolContract`, `ToolContractOptions`, `ToolError`, `ToolEvidence`, `toWebMcpTool`, `WebMcpExecutionOptions`, `WebMcpModelContext`, `WebMcpReceipt`, `WebMcpRegistrationFailure`, `WebMcpRegistrationReport`, `WebMcpTarget`, `WebMcpToolDefinition`
12069
+
11722
12070
  ## @nifrajs/workers
11723
12071
 
11724
12072
  `createWebSocketHub`, `NifraWebSocketHub`, `WebSocketHubApp`, `WebSocketHubClass`