Adversarial check of research/claude-wiring.md and research/genui-landscape.md, carried out on 2026-10-13. Every concrete, checkable claim was tested against an authoritative source. Verdicts are "confirmed", "wrong" or "unverifiable"; nothing is marked confirmed from memory.
claude-api skill, version 2.1.291 (SKILL.md as served by the Skill tool, shared/*.md, typescript/claude-api/*.md). The skill's model table is marked "cached: 2026-09-25", so claims it could not settle, or where a release came later, were checked against live platform.claude.com pages fetched today. Where the two disagree, the live page wins and the row says so.@anthropic-ai/sdk 0.133.0, zod 4.6.7, TypeScript 5.9.3 and @types/node on Node 26.10. SDK behaviour claims were read from the installed 0.133.0 sources.npm view), the GitHub REST API (stars, licences, redirects, releases, code search) and live pages. openai.com refused WebFetch with HTTP 403, so that page was retrieved through the local Firecrawl ingest (High confidence) and its sentences were matched as exact strings.107 claims checked: 99 confirmed, 7 wrong, 1 unverifiable. The 7 wrong claims are corrected in place (17 line edits, listed at the end).
low (was $0.0815) and $0.1326 at medium (was $0.1425).claude-haiku-5-5) was released on 2026-10-07, after the skill's model table was cached. It is the current Haiku ($0.10 / $0.50 per MTok for prompts up to 100,000 tokens, "Fastest", structured outputs, 512-token cache minimum), and Claude Haiku 4.5, the wiring doc's router, is now listed as a legacy model. A note was added to the wiring doc; the router design was not changed.low). Caching saves 69% at low but 58% at medium, not "65 to 69%" across the board.strict with 0 errors and passes 19 of 19 tests in the clean-room rebuild. All four SDK pitfalls are confirmed in the 0.133.0 sources, and pitfall 3 was reproduced independently. Every version, publish date, star count, licence and redirect in the landscape doc matches the registries, and every quoted sentence that could be checked matches its source.| Claim | File | Verdict | Source | Correction |
|---|---|---|---|---|
W1. @anthropic-ai/sdk 0.133.0 is the latest npm release; built with zod 4.6.7 and TypeScript 5 |
claude-wiring.md | confirmed | npm: latest 0.133.0 (published 2026-10-09); zod latest 4.6.7 |
None (TypeScript's own latest is 7.0.2; the doc only claims TypeScript 5, which was used) |
W2. The doc's TypeScript compiles under tsc --strict with 0 errors |
claude-wiring.md | confirmed | Clean-room rebuild from the doc's code blocks; tsc -p (strict) exit 0 |
None |
| W3. 19 offline tests (7 reader, 9 concierge, 3 route) pass with no network | claude-wiring.md | confirmed | Clean-room rebuild, node --test: 19 pass, 0 fail |
None |
| W4. Every code block is a verbatim copy of the tested files | claude-wiring.md | confirmed | Extracted blocks diffed against the author's harness: identical apart from the added // Source: comment lines |
None |
W5. The wire JSON shown for agenda_day is zod 4's converter output with $schema removed |
claude-wiring.md | confirmed | Printed from MIND_FORMAT: byte-identical; the union is emitted as anyOf, enum and const are present |
None |
W6. Opus 5.5: claude-opus-5-5, $4 / $20, cache read $0.20, cache writes $5 (5 min) / $8 (1 h), 1M context |
claude-wiring.md | confirmed | SKILL.md Current Models; shared/model-migration.md (Opus 5.5, What carries over: pricing); live pricing page |
None |
W7. Sonnet 5.5: claude-sonnet-5-5, $2 / $10, cache writes $2.50 / $4, 1M context |
claude-wiring.md | confirmed | SKILL.md; shared/model-migration.md (Sonnet 5.5); live pricing page |
None |
| W8. Sonnet 5.5 reads the cache at "the same $0.20 per MTok" as Opus 5.5 (1.1 matrix, eval-judge row, 1.2) | claude-wiring.md | wrong | Live pricing page: $0.10 per MTok, footnote "Cache hits and refreshes on Claude Opus 5.5 and Claude Sonnet 5.5 are priced at 0.05x the base input price"; live Sonnet 5.5 migration guide: "$0.10 USD per million tokens, half the Claude Sonnet 5 rate". The skill (cached 2026-09-25) is stale here | Corrected to $0.10 in 1.1 (two rows) and 1.2; source note added under 1.1 |
W9. Haiku 4.5: $1 / $5, 200K context, rejects effort, no thinking by default, supports structured outputs, 4,096-token cache minimum; a 600-token router call costs about $0.0007 |
claude-wiring.md | confirmed | SKILL.md (Current Models; Thinking & Effort); shared/tool-use-concepts.md (Structured Outputs: supported models); shared/prompt-caching.md (minimum prefix table); 600 × $1 + 20 × $5 per MTok = $0.0007 |
None |
W10. The IDs in 1.1 are the current generation (1.3: "The exact IDs in 1.1"), so claude-haiku-4-5 is the current Haiku |
claude-wiring.md | wrong | Live models overview and Haiku 5.5 page: Claude Haiku 5.5 released 2026-10-07, "Fastest", $0.10 / $0.50 per MTok up to 100,000-token prompts; Claude Haiku 4.5 listed under legacy models | Note added to 1.2; design unchanged |
W11. Opus 5.5 thinking is always on; disabled and budget_tokens return 400 at every effort; default effort is medium, one level below earlier Opus models |
claude-wiring.md | confirmed | SKILL.md Thinking & Effort; shared/model-migration.md (Opus 5.5, breaking change 1 and effort section) |
None |
| W12. Opus 5.5 is "much less likely than Claude Opus 5 to state a figure or cite a source the inputs don't support" | claude-wiring.md | confirmed | shared/model-migration.md line 2040, verbatim |
None |
W13. For time to first token: effort low, optionally the line "Answer directly without deliberating.", measured before shipping |
claude-wiring.md | confirmed | shared/model-migration.md line 1888; live Prompting Claude Opus 5.5 guide |
None |
W14. Sonnet 5.5 effort defaults to high with recalibrated levels; at low it "skips thinking on most simple requests"; from medium it "thinks briefly before almost every reply, even a greeting" |
claude-wiring.md | confirmed | shared/model-migration.md line 2180, verbatim |
None |
W15. between_tools turns thinking off on a tool-free route; only at effort high or below; no other field in thinking; no per-message effort; other models reject it; a server-side fallback to Sonnet 5 runs with thinking disabled |
claude-wiring.md | confirmed | shared/model-migration.md (Sonnet 5.5 breaking change 1; Safeguards and fallback); live thinking page and Sonnet 5.5 migration guide ("Without tools, the response contains only text") |
None |
W16. Sonnet 5.5 server-side fallback: "default" form only, Claude API only, retries only cyber and frontier_llm; its target, Sonnet 5, rejects mid-conversation system messages |
claude-wiring.md | confirmed | SKILL.md; shared/model-migration.md line 2185; live Sonnet 5.5 migration guide; shared/prompt-caching.md (mid-conversation system messages: not Sonnet 5) |
None |
| W17. Caches are model-scoped; a model switch invalidates everything and drops thinking blocks the new model cannot read | claude-wiring.md | confirmed | shared/prompt-caching.md Invalidation hierarchy; shared/model-migration.md (Opus 5.5 and Sonnet 5.5, breaking change 3) |
None |
W18. "What not to send" table: forced tool_choice is a 400 (also on count_tokens and Batches); prefill is a 400; sampling parameters are a 400 on Opus 5.5 and non-default values on Sonnet 5.5; output_format is deprecated; citations with structured outputs are a 400; fallbacks is rejected on Batches; no Priority Tier on Opus 5.5 or Sonnet 5.5 |
claude-wiring.md | confirmed | SKILL.md (Common Pitfalls; Thinking & Effort; Citations; Fast Mode section); shared/model-migration.md line 1415; shared/tool-use-concepts.md Structured Outputs |
None |
W19. Changing model, top-level effort, thinking or the output format mid-session invalidates the messages cache |
claude-wiring.md | confirmed | shared/prompt-caching.md Invalidation hierarchy; shared/cost-optimization.md §2.1 ("setting or changing a structured-output format"); live structured-outputs page |
None |
W20. A max_tokens: 0 pre-warm is rejected with stream: true and with output_config.format |
claude-wiring.md | confirmed | shared/prompt-caching.md Pre-warming, rejected combinations |
None |
W21. Batches are 50% off every token including cache reads and writes; on knowledge work low gives up a few points for a third to a half off; a one-case difference is noise |
claude-wiring.md | confirmed | shared/cost-optimization.md §2.5 and §2.6 |
None (§2.6 describes a same-model effort sweep; a model-by-effort grid is the hillclimb pattern noted in §2.7) |
| W22. The whole effort sweep costs under $20 (about $9.40 quality, $5.20 latency, $1.50 judge) | claude-wiring.md | confirmed | Recomputed: 5 cells × 20 cases × 5 trials through Batches with no cache hits = $9.35 to $9.50; the latency and judge figures are plausible estimates | None |
| W23. Recent Opus models "reach for tools more conservatively"; Sonnet 5.5 "sometimes answers from its own knowledge" | claude-wiring.md | confirmed | shared/tool-use-concepts.md line 38; shared/model-migration.md line 2200 |
None |
W24. Structured outputs reject recursive schemas, accept enum, const and anyOf, and have no array-size constraints |
claude-wiring.md | confirmed | shared/tool-use-concepts.md Structured Outputs; live structured-outputs page (only minItems of 0 or 1 is accepted, so maximum counts must live in the prompt) |
None |
| W25. An explicit 1-hour breakpoint on the system block followed by a 5-minute automatic tail is an allowed order | claude-wiring.md | confirmed | shared/prompt-caching.md Automatic vs explicit breakpoints ("a 1-hour marker with a 5-minute tail, is allowed") |
None |
| W26. Mid-conversation system messages need no beta header on Opus 5.5 and Sonnet 5.5, are accepted by the Opus fallback targets (Opus 5, Opus 4.8), form the prompt-injection-safe operator channel, follow the placement rule, and fall back to a user-turn block on models without them | claude-wiring.md | confirmed | SKILL.md Mid-Conversation System Messages; shared/prompt-caching.md Mid-conversation system messages |
None |
W27. The fallbacks parameter exists only on the beta namespace |
claude-wiring.md | confirmed | SDK 0.133.0 types: fallbacks?: appears only in the beta messages.d.ts; TypeScript README Refusal Fallbacks uses client.beta.messages |
None |
W28. On Opus 4.8 an omitted thinking means no thinking; display defaults to "omitted"; display affects visibility, not billing |
claude-wiring.md | confirmed | SKILL.md Thinking & Effort |
None |
W29. Fallback semantics: "default" routes by refusal category (Opus 5 example: cyber to Opus 4.8); the array form needs server-side-fallback-2026-06-01 and cross-pairing is a 400; Opus 5.5 targets come from allowed_fallback_models ("expect Claude Opus 5 / claude-opus-4-8"); reasoning_extraction is not retried; message_start names the fallback model and time to first byte includes the declined attempt; a mid-stream fallback block passes only text on; fallback_message in usage.iterations; top-level model; sticky routing for about an hour; the echo rule; a final refusal means the whole chain declined |
claude-wiring.md | confirmed | shared/model-migration.md lines 990 to 1004 and 1408 to 1425, Opus 5.5 Safeguards; TypeScript README Refusal Fallbacks |
None |
| W30. Legitimate security work can go to Anthropic's Cyber Verification Program | claude-wiring.md | confirmed | shared/model-migration.md (Sonnet 5.5 Safeguards); live Prompting Claude Opus 5.5 guide |
None |
W31. Pitfall 1: the betaZodOutputFormat parse hook makes finalMessage() throw "Failed to parse structured output" on a split or truncated answer |
claude-wiring.md | confirmed | SDK lib/beta-parser.js parses each text block and throws AnthropicError; the doc's test passes in the rebuild |
None |
W32. Pitfall 2: the SDK schema transform keeps only type, anyOf/allOf (oneOf becomes anyOf), properties, required, additionalProperties, $ref/$defs, title, description, listed string formats and minItems 0 or 1, and folds enum and const into description |
claude-wiring.md | confirmed | SDK lib/transform-json-schema.js, used by helpers/zod.js and helpers/beta/zod.js |
None |
| W33. Pitfall 3: the stream's async iterator does not replay events; iterating late yields 0 events and never returns | claude-wiring.md | confirmed | SDK BetaMessageStream subscribes when iteration starts; independent reproduction with a mocked fetch: 0 events and no return after 1.5 s, with both 0 ms and 200 ms delays |
None |
| W34. Pitfall 4: an aborted stream with no listener raises an unhandled rejection | claude-wiring.md | confirmed | SDK lib/BetaMessageStream.js calls Promise.reject when no error listener or catching promise exists |
None |
W35. APIConnectionError and APIUserAbortError extend APIError; APIConnectionTimeoutError extends APIConnectionError; 5xx including overloaded maps to InternalServerError |
claude-wiring.md | confirmed | SDK core/error.js; shared/error-codes.md line 240 |
None |
W36. TypeScript timeout is in milliseconds (default 10 minutes); maxRetries defaults to 2 and retries 408, 409, 429, 5xx and connection errors; worst case is timeout × (retries + 1); retries happen before streaming starts |
claude-wiring.md | confirmed | SKILL.md Client config; SDK client.js (shouldRetry) and core/streaming.js (SSE error events are thrown, not retried) |
None |
W37. max_tokens: about 64,000 by default when streaming, lower for "cost caps" and "deliberately short outputs"; a max_tokens stop is a failed attempt |
claude-wiring.md | confirmed | SKILL.md Common Pitfalls; shared/cost-optimization.md §2.4 |
None |
W38. The router uses client.messages.parse with zodOutputFormat from @anthropic-ai/sdk/helpers/zod; an out-of-enum verdict fails zod validation, parse throws and the router fails open |
claude-wiring.md | confirmed | typescript/claude-api/tool-use.md lines 566 to 594; SDK lib/parser.js and helpers/zod.js |
None |
W39. Preserved thinking: accounts created on or after 2026-08-31 are enforced, Opus 5.5 on every platform and Sonnet 5.5 on the Claude API and Amazon Bedrock; staging can set block_binding.prefix_mismatch_behavior: "error" under thinking-binding-controls-2026-08-01 |
claude-wiring.md | confirmed | shared/model-migration.md (Opus 5.5 and Sonnet 5.5, breaking change 3); shared/error-codes.md line 127 |
None |
| W40. Prompt caches are isolated per workspace | claude-wiring.md | confirmed | shared/prompt-caching.md API reference |
None |
| W41. The skill documents no new retention requirement for Opus 5.5 or Sonnet 5.5; the 30-day requirement applies to the Fable models | claude-wiring.md | confirmed | shared/model-migration.md (Opus 5.5: "Data retention / ZDR: nothing new is documented"); SKILL.md (Fable 5.1) |
None |
W42. The 91 speaker records fit one page at per_page=100 |
claude-wiring.md | confirmed | REST response headers captured 2026-10-13 07:18 GMT (x-wp-total: 91); WordPress REST handbook ("per_page is capped at 100"). A fresh curl today was blocked by Cloudflare (403) |
None |
| W43. A cold write of the system block costs 9,000 × $8 per MTok = $0.072 on Opus 5.5 and $0.036 on Sonnet 5.5; 150 a month cost $10.80 and $5.40 | claude-wiring.md | confirmed | Recomputed | None |
W44. ΣR = 8S + 28U + 21O and ΣW = 8U + 7O, giving 86,770 / 4,870 / 5,200 tokens at low and 99,370 / 9,070 / 10,000 at medium |
claude-wiring.md | confirmed | Recomputed by script | None |
W45. Opus 5.5 costs: $0.1457 and $0.2652 per session; the turn 1 and turn 8 examples; the no-caching column; monthly totals $162.10 / $1,523.84 / $7,576.00 at low and $281.62 / $2,719.04 / $13,552.00 at medium |
claude-wiring.md | confirmed | Recomputed by script; Opus prices match the live pricing page | None |
| W46. Sonnet 5.5 costs: $0.0815 and $0.1425 per session and the monthly totals built on them | claude-wiring.md | wrong | The arithmetic is right for $0.20, but the rate is $0.10 (W8). Recomputed: $0.0729 and $0.1326 per session; monthly $83.85 / $789.92 / $3,928.00 at low and $143.61 / $1,387.52 / $6,916.00 at medium |
Corrected in the decisions table, 4.2 and 4.3 |
| W47. "Output is 64 to 75% of the bill across the four configurations" | claude-wiring.md | wrong | With the corrected Sonnet rate, output is 71% at low and 75% at medium on both models |
Corrected in 4.4 |
| W48. "Caching is already worth 65 to 69%" | claude-wiring.md | wrong | Caching saves 69% at low but 58% at medium on both models; even at the doc's own prices the medium rows were 55% to 58% |
Corrected in 4.4 |
| W49. "Cost grows roughly with the square of the turn count, because each turn re-reads all earlier ones" | claude-wiring.md | wrong | Recomputed on Opus 5.5 at low: 4 turns $0.0702, 8 turns $0.1457, 16 turns $0.3034 (×2.08 per doubling); the quadratic re-read term is 2% of an 8-turn session. The skill's "square" remark (shared/cost-optimization.md §2.1) is about long agent loops where history dominates |
Corrected in 4.4 |
W50. Fast mode: Opus 5.5 but not Sonnet 5.5, Claude API only, $8 / $40, up to 2.5× output speed, beta fast-mode-2026-02-01 with speed: "fast"; switching speed invalidates the cache |
claude-wiring.md | confirmed | SKILL.md Fast Mode; live pricing page |
None |
W51. Cache diagnostics (beta cache-diagnosis-2026-04-07, diagnostics.previous_message_id), the standing cache check, the healthy-loop signature and usage.cache_creation.ephemeral_1h_input_tokens |
claude-wiring.md | confirmed | SKILL.md Common Pitfalls; shared/prompt-caching.md Verifying cache hits |
None (shared/cost-optimization.md notes the live page no longer requires the header) |
W52. The smoke test costs about $0.10; a 20-case, 5-trial batch pass costs about $1 to $2.50 on Opus 5.5 at low |
claude-wiring.md | confirmed | Recomputed: a cold 1-hour write ($0.072) plus two turns is about $0.10; 100 batch requests with no cache hits cost $2.46 | None |
W53. usage.output_tokens_details.thinking_tokens and usage.iterations exist on the beta usage type |
claude-wiring.md | confirmed | SDK 0.133.0 beta messages.d.ts; the code that reads them compiles |
None |
| W54. Server-side fallbacks are required by the skill for these models and are switched on | claude-wiring.md | confirmed | SKILL.md (refusal stop reason: include fallbacks by default for claude-opus-5-5 and claude-sonnet-5-5) |
None |
| G1. A2UI moved from github.com/google/A2UI to github.com/a2ui-project/a2ui (301); about 16.7k stars; Apache-2.0; README says "Early stage public preview" and its roadmap still lists React as planned | genui-landscape.md | confirmed | GitHub API (16,675 stars, Apache-2.0); HTTP 301; repository README | None |
| G2. a2ui.org: v0.9.1 current production, v1.0 release candidate ("previously v0.10 in draft", no final date), v0.8 legacy; the "render natively across web, mobile, and desktop" tagline | genui-landscape.md | confirmed | a2ui.org; a2ui.org/specification/v1.0-a2ui/ | None |
G3. @a2ui/react and @a2ui/lit 0.13.0 and @a2ui/angular 0.12.0, last published 2026-10-09 |
genui-landscape.md | confirmed | npm registry (2026-10-09, 17:31 to 17:32 UTC) | None |
G4. v0.9.1 messages: version plus one of createSurface (surfaceId, catalogId, optional theme, sendDataModel), updateComponents, updateDataModel (path, value), deleteSurface; adjacency list with one root; action and error messages; supportedCatalogIds and inlineCatalogs; JSONL; rendering starts once root exists; the "prompt-first" quote |
genui-landscape.md | confirmed | a2ui.org/specification/v0.9.1-a2ui/ | None |
G5. The basic catalog has 18 named components plus validation and formatting functions, and its schemas use external $ref and allOf |
genui-landscape.md | confirmed | Raw catalog.json: the 18 names match; 14 functions; allOf and external https://a2ui.org/...common_types.json references present |
None |
| G6. Transport bindings: A2A, AG-UI, MCP, SSE with JSON-RPC, WebSockets and REST | genui-landscape.md | confirmed | v0.9.1 specification ("Other transports"); the README lists only A2A, AG-UI and REST (future) | None |
| G7. An experimental plain-text "Express" grammar compiles to the A2UI tree | genui-landscape.md | confirmed | specification/inference_formats/express holds Express.g4 |
None (the folder itself does not carry an "experimental" label) |
| G8. v1.0 adds typed function calls both ways, whole-surface creation in one message, branding deferred to the host theme and stricter identifier rules | genui-landscape.md | confirmed | a2ui.org/specification/v1.0-a2ui/ | None |
| G9. Renderers: React, Lit, Angular and Flutter stable for v0.8 and v0.9.1; Compose alpha; SwiftUI planned; json-render and React Native among community renderers | genui-landscape.md | confirmed | a2ui.org/reference/renderers/ | None |
| G10. A2UI is shipped by Google "with contributions from CopilotKit and the community" | genui-landscape.md | unverifiable | The README invites contributions and links CopilotKit's A2UI runtime, but does not say CopilotKit contributed | None |
| G11. AG-UI: the "open, lightweight, event-based protocol" definition; "AG-UI is not a generative UI specification"; born from CopilotKit's partnership with LangChain and CrewAI | genui-landscape.md | confirmed | docs.ag-ui.com/introduction; /concepts/generative-ui-specs | None |
| G12. ag-ui repository: MIT, about 16.5k stars, date-tagged releases several times a week | genui-landscape.md | confirmed | GitHub API (16,494 stars, MIT); releases release/2026-10-12, -10-10, -10-09, -10-08, -10-06 |
None |
G13. @ag-ui/core 1.0.0 published 2026-09-17 and 1.0.2 on 2026-10-05 |
genui-landscape.md | confirmed | npm registry | None |
| G14. The 1.0 specification is normative (BCP 14) with the JSON Schema authoritative for structure; "Model output is untrusted input… MUST NOT render streamed content as executable markup" | genui-landscape.md | confirmed | docs.ag-ui.com/spec/1.0/index | None |
G15. Eight event families; the event names; RUN_FINISHED with an optional outcome including interrupt and cancelled; STATE_DELTA as RFC 6902; the activity quote |
genui-landscape.md | confirmed | /concepts/events (8 categories; the docs count "Draft" as one and list reasoning events separately); /spec/1.0/changelog (success, interrupt, cancelled); /spec/1.0/events/activity (quote verbatim) | None |
G16. Run input carries threadId, runId, messages, tools, context, state and forwardedProps; frontend tools return in the next run |
genui-landscape.md | confirmed | /spec/1.0/basic/run-input (also lists protocolVersion, parentRunId, resume) |
None |
G17. HTTP POST answered by SSE, one protocol event per data payload, no resumption; length-prefixed protobuf alternative |
genui-landscape.md | confirmed | /spec/1.0/basic/transports/http-sse; /spec/1.0/changelog ("4-byte length-prefixed frames") | None |
G18. A draft extension proposes a generateUserInterface tool; a draft continues past 1.0 |
genui-landscape.md | confirmed | docs.ag-ui.com/drafts/generative-ui ("Status: Draft"); the events page has a "Draft Events" category | None |
| G19. SDKs: TypeScript and Python first-party, .NET documented, community SDKs for Kotlin, Go, Dart, Java, Rust, Ruby and C++ | genui-landscape.md | confirmed | /introduction (it groups .NET with the community SDKs) | None |
| G20. Integrations include Microsoft Agent Framework, Google ADK, AWS Strands and Bedrock AgentCore, Mastra, Pydantic AI, LlamaIndex, LangChain and CrewAI; the Claude Agent SDK and Claude Managed Agents as community integrations | genui-landscape.md | confirmed | /introduction | None |
G21. MCP Apps: SEP-1865, io.modelcontextprotocol/ui, ui://, text/html;profile=mcp-app, _meta.ui.resourceUri, _meta.ui.csp, a separate-origin sandbox proxy for web hosts, JSON-RPC 2.0 over postMessage, visibility of "model" or "app"; status "Stable (2026-01-26)"; MCP-UI and OpenAI's Apps SDK as inspirations |
genui-landscape.md | confirmed | ext-apps specification/2026-01-26/apps.mdx |
None |
| G22. MCP Apps is "the first official MCP extension"; at launch VS Code support was in VS Code Insiders | genui-landscape.md | confirmed | blog.modelcontextprotocol.io, 2026-01-26 post | None |
| G23. Proposed 2025-11-21 by MCP maintainers with authors from Anthropic, OpenAI and MCP-UI | genui-landscape.md | confirmed | blog.modelcontextprotocol.io, 2025-11-21 post (author list) | None |
G24. @modelcontextprotocol/ext-apps 2.0.0 (2026-09-08) moved to the MCP TypeScript SDK 2.0 packages with the wire protocol unchanged; 2.0.3 current; MIT SDK |
genui-landscape.md | confirmed | npm registry; ext-apps README ("The wire protocol is unchanged between ext-apps 1.x and 2.x") |
None (GitHub reports the repository licence as NOASSERTION; npm says MIT) |
| G25. Clients listed: ChatGPT, Claude, VS Code, Goose, Postman, MCPJam, mcp-use and Alpic Playground | genui-landscape.md | confirmed | ext-apps README | None |
| G26. Anthropic's "Interactive connectors and MCP Apps" post (2026-01-26) states availability on Claude "mobile, web and desktop for Free, Pro, Max, Team, Enterprise plans" and on Claude Cowork | genui-landscape.md | confirmed | claude.com/blog/interactive-tools-in-claude (<title> and og:title match; the H1 reads differently) |
None |
G27. OpenAI: "ChatGPT implements the open MCP Apps standard for UI returned by an MCP server"; window.openai keeps aliases and ChatGPT-only extras (checkout, files, modals, widget state); developers.openai.com/apps-sdk redirects to /plugins |
genui-landscape.md | confirmed | developers.openai.com/plugins/build/chatgpt-ui; HTTP 301 from /apps-sdk to /plugins | None |
| G28. AG-UI lists Open-JSON-UI with origin "OpenAI" ("An open standardization of OpenAI's internal declarative Generative UI schema"); CopilotKit's page redirects to its A2UI page; CopilotKit's example payload is labelled "illustrative" | genui-landscape.md | confirmed | docs.ag-ui.com/concepts/generative-ui-specs; redirect chain ends at docs.copilotkit.ai/generative-ui/a2ui; CopilotKit/generative-ui README | None |
| G29. "GitHub code search returns references only in the CopilotKit and ag-ui-protocol repositories" (also the summary's "appears only in CopilotKit and AG-UI documentation" and the sources-table row) | genui-landscape.md | wrong | GitHub code search, 2026-10-13: about 480 matches, including third-party repositories such as skeehn/ui-schema, CSmithy89/ultimate-ai-rag and ypyl/ypyl.github.io; 0 matches in org:openai and org:openai-labs |
Corrected in 3 places; the "no OpenAI publication" conclusion stands |
G30. ChatKit widgets: a WidgetRoot (Card or ListView) holding WidgetNode components, designed in Widget Builder, with actions handled by your backend |
genui-landscape.md | confirmed | developers.openai.com/api/docs/guides/chatkit-widgets | None |
G31. assistant-ui: "components, runtimes, and primitives for building AI chat interfaces in React, Vue, React Native, and the terminal"; MIT; about 12.5k stars; @assistant-ui/react 0.15.28; adapters for the AI SDK, LangGraph, LangChain, Google ADK, AG-UI and A2A |
genui-landscape.md | confirmed | assistant-ui.com/docs; GitHub API (12,503 stars, MIT); npm | None |
G32. @assistant-ui/generative-ui 0.0.3 (2026-10-12): a present tool, _type naming a component, children for nesting, streamProperties: true with $status "streaming" or "done", an A2UI converter over AG-UI |
genui-landscape.md | confirmed | npm (2026-10-12 00:03 UTC); assistant-ui.com/docs/tools/generative-ui | None (the toolkit name JSONGenerativeUI was not seen on the fetched page) |
| G33. Thesys: "OpenUI Cloud — Formerly C1 API"; docs.thesys.dev redirects to openui.com/docs; thesysdev/crayon redirects to thesysdev/openui | genui-landscape.md | confirmed | thesys.dev HTML contains "Formerly C1 API"; HTTP 308 and 301 redirects | None |
G34. OpenUI calls itself "the open standard for Intelligent UI"; MIT; about 10.8k stars; OpenUI Lang is "a compact, line-oriented language" (root = Stack([chart])); React, Vue, Svelte and Angular runtimes drop invalid portions |
genui-landscape.md | confirmed | openui.com/llms.txt; openui.com/docs/openui-lang; GitHub API (10,821 stars, MIT) | None (the GitHub README words it as "Generative UI" and "streaming-first") |
G35. @openuidev/react-lang and @openuidev/lang-core 1.0.0 published 2026-10-12; @openuidev/a2ui adds A2UI v1.0 support |
genui-landscape.md | confirmed | npm registry; llms.txt ("A2UI v1.0 protocol support") | None |
| G36. "Up to 67% fewer tokens than JSON"; 52.8% fewer than json-render and 51.7% fewer than Thesys C1 JSON (vendor numbers) | genui-landscape.md | confirmed | thesysdev/openui README; confirmed as vendor claims only | None |
| G37. OpenUI Gateway: OpenAI-compatible endpoints, correction of invalid OpenUI Lang while it streams, bring-your-own OpenAI, Anthropic or Google key | genui-landscape.md | confirmed | openui.com/llms.txt (BYOK; "automatic failover and correction"; OpenAI-compatible migration); openui.com/docs/openui-lang | None |
G38. json-render: the tagline; Apache-2.0; about 18.6k stars; @json-render/core 0.21.0 (2026-09-18); defineCatalog; flat { root, elements } spec; $state, $cond, $template; setState; catalog.prompt(); the renderer list; 36 shadcn/ui components |
genui-landscape.md | confirmed | vercel-labs/json-render README; GitHub API (18,632 stars, Apache-2.0); npm | None |
| G39. json-render integrations for the AI SDK, A2UI, AG-UI, Adaptive Cards, OpenAPI and MCP Apps | genui-landscape.md | confirmed | json-render.dev docs index and llms.txt list A2UI, AG-UI, Adaptive Cards and OpenAPI integration pages; @json-render/mcp on npm (the first four have no separate npm packages) |
None |
G40. SpecStream is JSONL of RFC 6902 patches, compiled with createSpecStreamCompiler |
genui-landscape.md | confirmed | json-render.dev/docs/streaming | None |
G41. Vercel AI SDK: ai 7.0.0 (2026-06-25) and 7.0.138 (2026-10-12), Apache-2.0; tool-<toolName> parts with the listed states; Output.object partial objects and Output.array elementStream; "AI SDK RSC is currently experimental"; @ai-sdk/rsc 3.x |
genui-landscape.md | confirmed | npm registry; ai-sdk.dev chatbot-tool-usage, generating-structured-data and ai-sdk-rsc/overview pages | None |
| G42. OpenAI's 2026-10-07 post "GPT-6 and Intelligent UI for everyone": all quoted sentences, the examples (bicycle diagram, roast plan, shopping list, bill splitter), training on "when a simple text response is enough", interleaved thinking | genui-landscape.md | confirmed | openai.com/index/gpt-6-for-everyone (WebFetch 403; Firecrawl ingest at High confidence; exact-string matches) | None (the word "stepper" is not in the text capture; the plan "scales with your headcount") |
| G43. Availability: Plus, Pro, Business and Enterprise (GPT-6 Sol) from 2026-10-07; Free and Go (GPT-6 Luna) from 2026-10-08; "The models powering Work and Codex are not changing as part of this release" | genui-landscape.md | confirmed | Same ingest ("Starting tomorrow, the rollout expands to Free and Go tiers") | None |
G44. No developer API exposes Intelligent UI; the 2026-10-07 API changelog entry only updates chat-latest |
genui-landscape.md | confirmed | developers.openai.com/api/docs/changelog (the 2026-10-08 entry adds an unrelated Ultrafast mode for GPT-6.1 Sol) | None |
| G45. Strict tool use "guarantees Claude's tool inputs match your JSON Schema by constraining the model's token sampling to schema-valid outputs"; both features are generally available; grammars apply to direct output, not thinking | genui-landscape.md | confirmed | Live strict-tool-use page (verbatim); live structured-outputs page (status GA; "Grammar scope" tip) | None |
G46. eager_input_streaming "does not buffer or validate"; by default the API buffers and validates each parameter |
genui-landscape.md | confirmed | Live fine-grained-tool-streaming page; shared/tool-use-concepts.md |
None |
G47. Progress updates: on Opus 5.5 and Fable 5.1, "at most one before each tool call", empty by default; on Sonnet 5.5 only notes "longer than a sentence or two"; display: "updates" returns a summary; Haiku 5.5 is not on the list; the Opus 5.5 guide names a one-line statement of intent as such an update |
genui-landscape.md | confirmed | Live thinking page (list: Fable 5.1, Mythos 5.1, Opus 5.5, Sonnet 5.5, Fable 5); live Opus 5.5 and Sonnet 5.5 migration guides; live Prompting Claude Opus 5.5 guide | None (the bundled skill applies the "sentence or two" qualifier to Opus 5.5 as well; the live Opus 5.5 guide does not) |
G48. Schema limits: no recursion, no numeric or string-length constraints, no array constraints beyond minItems 0 or 1, additionalProperties only false; enum, const, anyOf, allOf (with limits) and internal $ref supported; 20 strict tools, 24 optional and 16 union-typed parameters; "Schema is too complex for compilation"; grammars cached 24 hours from last use; a format change invalidates the prompt cache; required properties come first |
genui-landscape.md | confirmed | Live structured-outputs page | None |
G49. Forced tool_choice returns a 400 on Opus 5.5, Sonnet 5.5 and Fable 5.1 |
genui-landscape.md | confirmed | SKILL.md Common Pitfalls |
None |
| G50. Structured outputs list Fable 5.1, Opus 5.5, Sonnet 5.5 and Haiku 5.5 among supported models | genui-landscape.md | confirmed | Live structured-outputs page (supported-model list) | None |
| G51. Claude Haiku 5.5 was released 2026-10-07, is "for high-volume, latency-sensitive tasks", is the fastest model, and its price steps up for prompts over 100,000 tokens | genui-landscape.md | confirmed | Live models overview; live Haiku 5.5 page ($0.10 / $0.50 up to 100,000 tokens, $0.50 / $2.50 above) | None |
| G52. Structured-output availability differs on some cloud platforms | genui-landscape.md | confirmed | Live structured-outputs page (Amazon Bedrock: legacy integration and older models only) | None |
| G53. Adapter A's catalog uses one union-typed parameter and no optional parameters; adapter B would need ten strict tools | genui-landscape.md | confirmed | Checked against the limits in G48 | None |
Each edit replaced an exact string that occurred once. Code blocks were not touched: after the edits, the code extracted from claude-wiring.md is byte-identical to the verified rebuild.
low". After: "$0.073 on Sonnet 5.5 at low".research/verification.md)."claude-haiku-5-5, was released on 2026-10-07, after the skill's model table was cached. It is now the current Haiku, at $0.10 / $0.50 per MTok for prompts up to 100,000 tokens, with a 512-token cache minimum and structured outputs; Claude Haiku 4.5 is listed as a legacy model. Unlike Haiku 4.5 it thinks by default, accepting thinking: {type: "disabled"} only at effort high or below, so a switch is more than a model-string change. Evaluate it for the router before launch.)"low)." After: "Output is 71 to 75% of the bill across the four configurations (71% at low, 75% at medium)."low and 58% at medium."low, roughly half the 8-turn figure."