Prerequisite for relocating the /server provider (#39) and the ai-eval CLI command (part of #40) to @rudderjs/ai.
Why
Those relocations are blocked because the code they move imports gemstack-internal symbols that are not on any public entry, so the @rudderjs/ai inline can't compile against a published @gemstack/ai-sdk:
/server AiProvider constructs GoogleCacheRegistry (a runtime class in src/providers/google-cache-registry.ts) and wires the app cache into it. Unlike the ORM ConversationStoreListEntry (a type we derived), a class can't be re-created on the consumer side.
commands/ai-eval imports defaultFixturesDir / readFixture / writeFixture from src/eval/fixtures.js; the /eval subpath only re-exports stepsFromResponse + the EvalFixture type, not those helpers.
What
Add these to the public surface of @gemstack/ai-sdk (non-breaking, minor):
Sequencing
This must publish first, then rudder inlines /server + make:agent + ai-eval (#39 / #40), then gemstack removes those subpaths + drops the @rudderjs/core / @rudderjs/console peers (#41). This is the 3-release sequence that distinguishes #39/#40 from the clean 2-PR inversions used for cache/storage/orm/doctor.
Blocks #39 and the ai-eval part of #40.
Prerequisite for relocating the
/serverprovider (#39) and theai-evalCLI command (part of #40) to@rudderjs/ai.Why
Those relocations are blocked because the code they move imports gemstack-internal symbols that are not on any public entry, so the
@rudderjs/aiinline can't compile against a published@gemstack/ai-sdk:/serverAiProviderconstructsGoogleCacheRegistry(a runtime class insrc/providers/google-cache-registry.ts) and wires the app cache into it. Unlike the ORMConversationStoreListEntry(a type we derived), a class can't be re-created on the consumer side.commands/ai-evalimportsdefaultFixturesDir/readFixture/writeFixturefromsrc/eval/fixtures.js; the/evalsubpath only re-exportsstepsFromResponse+ theEvalFixturetype, not those helpers.What
Add these to the public surface of
@gemstack/ai-sdk(non-breaking, minor):GoogleCacheRegistry+GoogleCacheRegistryOptions(decide: main entry vs a dedicated subpath).CacheStoreLikealready aliases the publicCacheAdapter.defaultFixturesDir,readFixture,writeFixturefrom the./evalsubpath.Sequencing
This must publish first, then rudder inlines
/server+make:agent+ai-eval(#39 / #40), then gemstack removes those subpaths + drops the@rudderjs/core/@rudderjs/consolepeers (#41). This is the 3-release sequence that distinguishes #39/#40 from the clean 2-PR inversions used for cache/storage/orm/doctor.Blocks #39 and the
ai-evalpart of #40.