Commit Graph

8 Commits

  • feat(ai): compat entrypoint, core-only root barrel (phase 5)
    The root barrel is now core-only and side-effect free: types,
    createModels/createProvider, auth substrate, lazyStream/lazyApi, faux,
    utils. Generated catalogs, api-registry, env-api-keys, images, global
    stream functions, and per-API lazy wrappers leave the root.
    
    New @earendil-works/pi-ai/compat preserves the old surface verbatim as
    a strict superset of the root: api-dispatch stream/complete with env
    key injection, the builtin registration side effect (skip-if-present so
    it cannot clobber earlier overrides), deprecated getModel/getModels/
    getProviders aliases of the new getBuiltin* reads in providers/all,
    lazy api wrappers + setBedrockProviderModule, and image generation.
    Compat dies with the coding-agent ModelManager migration.
    
    Packaging: exports map gains ./compat, ./providers/*, ./api/*;
    sideEffects array lists only the effectful modules.
    
    Old-global imports across agent/coding-agent/examples and pi-ai tests
    switch to /compat (path-only; compat is a superset). The coding-agent
    extension loader resolves the pi-ai ROOT specifier to compat, so
    existing user extensions using the old global API keep working at
    runtime until compat is removed. vitest configs alias /compat to src;
    browser smoke imports old globals from /compat.
  • feat(ai): move API implementations to src/api with lazy wrappers (phase 2)
    Stream implementations move from src/providers/ to src/api/, renamed by
    API id (anthropic.ts -> anthropic-messages.ts, google.ts ->
    google-generative-ai.ts, mistral.ts -> mistral-conversations.ts,
    amazon-bedrock.ts -> bedrock-converse-stream.ts). Every module now
    exports exactly stream/streamSimple; shared helpers move alongside.
    
    New ProviderStreams dispatch contract in types.ts, lazyApi() wrapper in
    api/lazy.ts, and one .lazy.ts wrapper per API. Bedrock's wrapper keeps
    the node-only variable-specifier import and setBedrockProviderModule()
    (now taking ProviderStreams).
    
    providers/register-builtins.ts deleted; interim until the compat
    entrypoint lands, builtin api-registry registration lives in stream.ts
    and lazy wrappers are exported from the root barrel. Old per-API lazy
    exports (streamAnthropic, ...) are gone; package.json subpaths retarget
    to dist/api/.