zig library for building requests to query inference providers usage limits

feat(usage): host-driven feeds for every provider, plus the extension seam master

The first pass had one provider and one shape. dawn wants /usage to cover what she actually pays for - antigravity, hyper, opencode-go, zai, deepseek, alibaba - and to reuse the same rules from a macOS app, so the query became a definition instead of a function. A feed is now driven by the host: `advance(state, responses)` returns either the requests to send or the finished report. The host owns HTTP, which is what lets one definition run in the CLI, in the Zig core, and in a tray. It also covers the providers that need more than one call - hyper reads /v1/teams before it can ask for that team's billing - without inventing a second concept for them. - packages/ai/docs/usage-feeds.md is the contract: report shape, credential kinds, and the unit rules (percent vs fraction vs remaining-fraction vs dollars; epoch seconds vs milliseconds vs ISO-8601) that every provider gets wrong in its own way. - seven feeds: openai-codex, anthropic (the normalised limits[] array, not the codenamed windows), google-antigravity (including the antigravity/... user-agent its endpoint gates on), hyper (plan allocation vs remaining credits, two-step, dollar balance), opencode-go, zai, and deepseek, which is balance-only and therefore has no windows at all. - reports gained `balance` and `notes`, so a provider without a percentage is not forced into one, and `skipped` became {provider, reason} - a key-only alibaba now says "needs a session credential" instead of going quiet. - credentials are provider-defined: oauth, apiKey, or a captured session. alibaba's token-plan keys are inference-only, so its quota needs a console session, and scripts/capture-alibaba-session.mjs turns a browser HAR export into the 0600 session file the bridge reads. - pi.registerProvider(..., { usage }) registers a feed from an extension into the same lookup, so a provider dawn builds herself is covered by /usage with no new wiring, and unregistering drops it. Documented in docs/custom-provider.md. Verified: 64 tests across the five usage suites (every feed driven through the host loop with scripted responses, no network in any of them), coding-agent usage 12/12 plus the CLI and interactive suites, tsgo and biome clean.