# LLM, A2A and Assist
Oct 21, 2026 · Design and implementation plan for Phase 13. Built: 13.1 (data, configuration, providers; the providers are checked only against hand-written stream fixtures and the scripted fake, no live model) and 13.2 (the run engine and the context builder; checked against the scripted fake only), and 13.3: the screen sessions and the `screen` tool (part A: `llm/screen.rs`, `llm/tools/screen.rs`, the host's `llm/screens.rs`, `writes` and `domId` in the tui model, sync-in and follow events), the core tools (part B: `search` with query-only stemming, `data`, `skill`, `ask`, the result formatter, spill, did-you-mean and deterministic argument repair) and the evaluation harness (part C: `moqui test <component> --agents` in `testkit/agents/`, the first 8 tasks in `runtime/base-component/tools/test/agent/`, `--replay`, baselines). 13.3 is checked on embedded Postgres and the in-memory database against the scripted fake provider, with the `domId` golden on the in-memory render, a plain `AgentUse` user's run end to end, and the 8 tasks passing on their recordings with no model; the recorded model replies are hand-authored, and the live check on Qwen 3.8 27B was not run (no model was available). Built: 13.4, approvals and lazy tools: part A, the approvals (`llm/approval/`: precheck, snapshot, the RFC 8785 hash bound by `begin`, interactive-only decisions through `decide#AgentApproval`, conflicts, the hand-off observer with Edit in screen, the run's end expiring what did not run, policy approval for background agents, the sim preview on demand or before the card), `screen`'s held writes turned into approvals, typed questions and forms for `ask`, and the approve, edit and reject evaluation tasks; part B, the lazy catalog (`llm/tools/catalog.rs`, `lazy.rs`: service tools only for `AgentToolExposure` rows with the schema made from the service's parameters, or the entity's fields for an entity-auto service, and the class from its authorization action; unpinned add-on tools; `find_tools`, `describe_tools`, `run_tool` with its precheck, a READ under a fence of its own and a write through its approval), the user-facts registration point (`llm/facts.rs`), System › LLM › Tools (exposures with `lockVersion`, tool policies) and the service-tool evaluation task. 13.4 is checked against the scripted fake provider on the in-memory database and embedded Postgres (the sim preview of a DESTRUCTIVE service tool there), and the 11 tasks pass on their hand-authored recordings with no model; no live model was run. Built: 13.5, the drawer: part A, its server (`llm/assist/`, the webroot subscreen `assist`, System › LLM › Conversations, Runs and Approvals, docs/Assist.md with the JSON contract); part B, the client (`js/WebrootAssist.js`, the shell's hooks, the node tests); part C, the Chromium smokes in `gate3_browser.rs` (a run streams, a reload re-attaches, a static-only page, a gallery hand-off with a refused save, user navigation over follow, only the owner tab follows, an approval executed while a second tab sees it, Edit in screen from the other tab) and the drawer's screenshots, light, dark and 390 px. 13.5 is checked on embedded Postgres and in headless Chrome against the scripted fake provider only; no live model was run. Built: 13.6, skills and the OpenUI canvas: part A, the skill index (front matter, file sync, the catalog, retrieval, @-mentions, the retrieval tests, the framework skills, Skills admin; see part A); part B, the canvas: `lang-core` 0.2.18 built by `libs/refresh.mjs` with two reviewed patches (telemetry off, a failed Query not fetched again), the dialect registry (`llm/ui/`: `openui` and the `vue-sfc` placeholder), the framework skill `openui-lang` in sections, `write_ui` gated on it with server-side parsing in QuickJS, section-named errors quoting their rules and the patch merge done once, the canvas stored once (`AgentArtifact`), the Vue 3 renderer and the generated library spec (`js/WebrootAssistCanvas.js`, `openui-library.spec.json`), the read proxy (`GET /assist/read`), canvas Mutations run by the server from the stored program (a click is the approval; the agent's `write_ui` `run` is a card), Adjust and the revalidation of reported problems, the canvas over the page beside the docked drawer, the "chart fallback" evaluation task and a Chromium smoke. 13.6 part B is checked on embedded Postgres and in headless Chrome against the scripted fake provider and the hand-authored recording only; no live model was run. Built: 13.7, window and small models: token accounting with replayed reasoning and an anchor on the provider's last count, staged compaction (digests, reasoning, canvases, tails, a summary on the agent's model wrapped as untrusted, the turn in progress) stored on the rows, side calls counted in the run's budget, the cache-hit ratio per call, JSON tool mode, leaked-call parsing only of a reply that is nothing but calls, the schema repair call, `repeated`, the model's tool-call cap,
This file has been truncated. show original