Submatter/plans/Plan-automation-foundation/Epic-model-provider-registry/Task-trpc-models-router.md
Randall Stillwell e256380671 plan(automation): add mission-control foundation backlog and model-routing ADR
Documents the automation foundation plan (nine epics, Epic 1 taskified) and
the accepted model-provider registry contract. Updates .env.example for backlog
import workspace id and local/cloud AI provider env guidance.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 13:55:03 -05:00

2.1 KiB

kind slug title plan_slug epic_slug status priority tenant_id owner cursor_todo_id updated_at agent_prompt
task trpc-models-router tRPC ai.models router — CRUD, role routes, testProvider automation-foundation model-provider-registry ready P1 global unassigned null 2026-07-03 Read docs/adr-model-routing.md. apps/web/server only. Admin-only mutations (match updateWorkflowPrompt bar). testProvider runs a minimal completion server-side — never return API keys to client. claim_task before work.

Task summary

Add ai.models tRPC router: provider CRUD, role route upsert/delete, testProvider, and resolveForRole debug procedure.

Description

Procedures

Procedure Auth Notes
listProviders member workspace-scoped
createProvider / updateProvider / deleteProvider admin zod validate; unique alias
testProvider admin one short completion; return { ok, latencyMs, error? }
listRoleRoutes member join provider alias for display
upsertRoleRoute / deleteRoleRoute admin custom roleId allowed
resolveForRole member calls shared resolveModel with DB rows

Model client factory

  • Add packages/ai/src/providers/resolve-client.ts (or similar): given ResolvedModel, return Vercel AI SDK model instance for generateText in testProvider
  • Support at least: anthropic, openai, google, openai_compatible

Wire router

  • Register in apps/web/server/root.ts
  • Export input schemas from shared where possible

Subtasks

  • Implement provider CRUD
  • Implement role route CRUD
  • Implement testProvider with provider factory
  • Implement resolveForRole

Estimation

M

Acceptance criteria

  • Admin can create provider via tRPC; non-admin gets FORBIDDEN
  • testProvider works against env-configured Anthropic or Ollama when aliases exist
  • pnpm lint && pnpm type-check clean
  • Epic: ./Epic-model-provider-registry.md
  • Depends on: Task-db-model-providers-migration.md, Task-shared-schemas-resolve-model.md