Skip to content

Epic: GemStack package family + standalone @gemstack/ai-sdk roadmap #1

Description

@suleimansh

GemStack package family + roadmap

Tracking epic for the GemStack package family and the work to stand @gemstack/ai-sdk on its own. See Architecture.md for the design rationale (naming rule, dependency direction, MCP taxonomy).

Origin / upstream pointer: this continues the spin-out planned in suleimansh/vike-data#194.

The family

The ai-* prefix means "depends on the agent runtime." A package that is AI-related but agent-agnostic is a peer of the family, not a member.

Design decisions (recorded; all gated on family alignment before code lands)

Follow-up design options (low priority; revisit on demand)

Dependency rule

skills, autopilot, ai-mcp all depend on ai-sdk; ai-sdk depends on none of them; nothing depends "up." If the arrows are not one-directional, the split is wrong.

Near-term work (agreed regardless of the family call)

  • Phase 1: replace Rudder's packages/ai with a thin deprecated @rudderjs/ai re-export of @gemstack/ai-sdk; publish @gemstack/ai-sdk.
  • Phase 2: decouple @gemstack/ai-sdk from @rudderjs/core/@rudderjs/orm behind a neutral, optional adapter seam (also unblocks typecheck/test in this repo).
  • CI: scope to build-only until Phase 2 lands (the test suite still pulls broader @rudderjs/* packages).

Open decisions (both resolved - see the decision-record comment below)

  • Where the Vike vike-ai binding lives -> vike-data, not gemstack. Already shipped as vike-ai (neutral port, twin of @universal-orm/core) + vike-ai-gemstack (adapter, twin of @universal-orm/rudder). No code enters gemstack; the family stays framework-agnostic.
  • @rudderjs/ai "deprecation timeline" -> no removal. It is the living Rudder binding (ORM stores, AiProvider, doctor, make:agent/ai:eval) over the shared engine - the Rudder twin of vike-ai-gemstack, not a dying shim. "Deprecated" applies only to its thin re-export surface. Follow-up: repoint internal dependents (telescope, orm-prisma, orm-drizzle) off the re-export, and reword the stale flat-"[Deprecated]" header.

Metadata

Metadata

Assignees

Labels

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