Skip to content

ai-sdk: export GoogleCacheRegistry + eval fixtures helpers (prereq for #39 + ai-eval relocation) #46

Description

@suleimansh

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):

  • Export GoogleCacheRegistry + GoogleCacheRegistryOptions (decide: main entry vs a dedicated subpath). CacheStoreLike already aliases the public CacheAdapter.
  • Export defaultFixturesDir, readFixture, writeFixture from the ./eval subpath.

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.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions