Skip to content

feat: the model registry and the grounding harness move into the engine - #19

Merged
catomean merged 1 commit into
mainfrom
feat/registry-and-grounding
Aug 29, 2026
Merged

feat: the model registry and the grounding harness move into the engine#19
catomean merged 1 commit into
mainfrom
feat/registry-and-grounding

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

Phases 1–2 of the fleet AI-engine plan: ai-kit/registry (enumeration + the paid/free boundary as a validated field + probe-verdict gating) and ai-kit/grounding (the FleetCrown↔OrangeCat mirrored harness, extracted — the exit its own README committed to). Subpath exports only; root surface untouched (no collision with #18).

verify green: lint · typecheck · build · 75/75.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WqKqMnHQHSmkGFfc5t7Rxn

Phases 1–2 of the fleet AI-engine plan: ai-kit stops being only the
transport layer and gains the two modules every adopter re-invented.

ai-kit/registry — one SSOT for every callable model id. Two incidents, two
invariants: a checker that does not enumerate its subjects cannot report the
id it never knew about (eight days of model_not_found, 2026-08-18), so
require() throws for anything unregistered and idsForVendor() IS the
enumeration a catalog check walks; and three apps silently billed on
fallback because a `:free` suffix was the whole paid/free boundary, so paid
is a required FIELD and the validator refuses an entry whose flag
contradicts its own price or id. freeOnly() is the platform-key guard
(unregistered ids are dropped too — an unknown price spends someone's money
only when a person decides it does); toolCapable() carries the probe
verdicts (native / text / none / unprobed — five of nine probed free models
only speak the text protocol).

ai-kit/grounding — facts, contract, and the deterministic fabrication check,
lifted from fleetcrown/src/lib/agent/core (the canonical copy of the
FleetCrown↔OrangeCat mirror). The mirror's README called the duplication
"deliberate and temporary" and named this extraction as the exit. Two
mechanical deltas from verbatim: `.js` extensions on relative imports (pure
ESM) and two null-guards under this package's noUncheckedIndexedAccess.
Adopting apps delete their copies and the SHA-256 drift check with them.

Both are subpath exports, not root re-exports — the v0.4.0 lesson (one
import path per concern) and zero collision with the root export surface.

verify green: lint, typecheck, build, 75/75 tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WqKqMnHQHSmkGFfc5t7Rxn
@catomean
catomean force-pushed the feat/registry-and-grounding branch from 41674d4 to 4cb2042 Compare August 29, 2026 08:43
@catomean
catomean merged commit 4c7eded into main Aug 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant