- assistant_provider: type (registered AssistantProviderType; Anthropic), model, enabled/default, base URL override, cost cap, output and concurrency limits, last connection test. The key is never stored: the row names an allow-listed environment variable; apiKeyStatus is computed on read (last 4 at most) and dropped on save. - Test connection: a record action (standard streamed ETL Review/Result) making one short live call; result saved on the row and as a TEST usage row. - assistant_usage: one row per model call (turn steps and tests); assistant_model_price: editable USD/MTok used for every call's cost. - The Assistant app home (health, providers, usage by day, costs vs caps, by user, top tools, recent failures); nav = home + main tables. - AI exposure NONE on every assistant_* table. - Tests, README, DESIGN, UPGRADE, CHANGELOG, reference DDL with the Anthropic price seed, demo server and screenshots. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Assistant app home and provider settings screenshots
Taken 2026-10-13 against the local AssistantDemoServer (qbit-assistant-provider-anthropic test sources), never production.
- Memory backend and the Next UI 1.0.0-RC.16 jar.
- The Anthropic API is the recorded test server: real HTTP through the real adapter, engine, Test connection and usage recording, with canned answers and no key.
Light and dark, 390 and 1440 px:
home-*: the Assistant app home.provider-*: the provider settings screen, with the masked key and the model-call child list.provider-not-set-*: a provider whose key variable is not set.provider-edit-*: the edit form.prices-*: the model price table.