You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Four cross-provider primitives have shipped since 2026-07: refusal (StreamRefusal), cache checkpoints (PR #641), effort (ModelEffortPolicy, hardened this window by #882), and now pricing (modelPricing, this window). Each landed with tests. None of the four is mentioned in any provider README.
Ten AI providers ship the identical 44-line boilerplate (anthropic, chrome-ai, gemini, HFI, HFT, node-llama-cpp, ollama, openai — install + one example + a link).
bun-webview, electron, mlx, playwright have no README at all — eighth consecutive cycle. bun-webview had three real backend defects fixed in it two windows ago; electron and playwright are at their eighth static cycle.
stable-diffusion-server's 125 lines are the second-longest in providers/ and mention neither usage nor the fact that the package emits none (grep -c usage providers/stable-diffusion-server/src -r → 0).
Why this is worth an issue rather than a recurring note
The primitives are the reason a consumer would choose one provider over another, and the per-provider support matrix exists only in this repo's review history. A consumer reading providers/openrouter/README.md today cannot learn that its effort gate now denies non-text modalities (OpenRouter_EffortPolicy.ts:36, new this window), that it reports usage.extra.cost, or that it publishes no rate card.
Proposed fix
One generated table, not 25 hand-written paragraphs. The data already exists as code: *_RUN_FN_SPECS[].serves, *EffortPolicy, modelPricing, and a grep -c refusal per package. A script under scripts/ can emit providers/README.md — one row per provider, one column per primitive — and a CI check can fail when the table is stale, in the same spirit as BunExportConditions.test.ts pinning prose against code.
A README floor. The four packages with none get the same 44-line skeleton; openrouter's 9 lines get brought to it. Cheap, and it removes the "no README" line from this review permanently.
Per-provider prose stays optional — the generated matrix is what carries the contract.
Found during the 2026-09-07 review of providers/. Verified against origin/main @ fb861bb.
What
Four cross-provider primitives have shipped since 2026-07: refusal (
StreamRefusal), cache checkpoints (PR #641), effort (ModelEffortPolicy, hardened this window by #882), and now pricing (modelPricing, this window). Each landed with tests. None of the four is mentioned in any provider README.Measured at
fb861bb:Three of those four greps return nothing at all. This is the sixth consecutive cycle the measurement has come back the same.
README sizes
modelPricingits models silently get direct-vendor list prices #910).bun-webview,electron,mlx,playwrighthave no README at all — eighth consecutive cycle.bun-webviewhad three real backend defects fixed in it two windows ago;electronandplaywrightare at their eighth static cycle.stable-diffusion-server's 125 lines are the second-longest inproviders/and mention neitherusagenor the fact that the package emits none (grep -c usage providers/stable-diffusion-server/src -r→ 0).Why this is worth an issue rather than a recurring note
The primitives are the reason a consumer would choose one provider over another, and the per-provider support matrix exists only in this repo's review history. A consumer reading
providers/openrouter/README.mdtoday cannot learn that its effort gate now denies non-text modalities (OpenRouter_EffortPolicy.ts:36, new this window), that it reportsusage.extra.cost, or that it publishes no rate card.Proposed fix
*_RUN_FN_SPECS[].serves,*EffortPolicy,modelPricing, and agrep -c refusalper package. A script underscripts/can emitproviders/README.md— one row per provider, one column per primitive — and a CI check can fail when the table is stale, in the same spirit asBunExportConditions.test.tspinning prose against code.openrouter's 9 lines get brought to it. Cheap, and it removes the "no README" line from this review permanently.Found during the 2026-09-07 review of
providers/. Verified againstorigin/main@fb861bb.