CI's typecheck (tests) step now gates both workspace packages, so a test file that drifts from package source fails the build instead of rotting. Getting there took the aitm suite from 425 type errors to 0 (#132, PR #325).
Five shared test-support modules now live under packages/aitm/src/testing/ — build-excluded, consumed only by tests. They replace fixtures that had been copy-pasted and left to drift: emptyUsage existed in six files, every copy carrying a totalTokens field the SDK's usage type does not have.
Runtime surface is unchanged except two additive exports from credentials/llm-fetch.ts (isKeepAliveAgent, KeepAliveAgent), so a test can narrow through the module's own predicate instead of restating undici's Dispatcher surface.
Gates: typecheck, typecheck:tests, lint green on both packages; node --test 2328 pass / 0 fail.