Context. surface studio · domain isis · route /studio/isis/unified-provider-architecture · auth signed-in + studio entitlement (NOT AAA-gated) · source apps/oshun/web/src/app/studio/isis/unified-provider-architecture/page.tsx
Last walked. 2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data (2xx), console/page-errors, expected content, screenshot verified; live screen-reader, touch, offline, and telemetry-delivery checks pending a manual AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body re-derived 2026-06-03 from current source (lane-console architecture)
Purpose#
Admin lane console for the unified provider-selection layer. Given a provider's cost/latency parameters and a generation input, it estimates the cost and latency and returns a weighted provider score (cost / quality / latency / reliability), the same scorer the routing layer uses to pick providers.
Entry points#
- Sibling quick-action card from
/studio/isis/provider-factory - Studio index (
/studio) - Direct URL / bookmark
Layout regions#
page.tsx mounts ShellLayout active="studio" and three panels (no breadcrumb
panel).
- Workspace panel (
data-isis-unified-provider-architecture-workspace):<h1>"Isis Unified Provider Architecture Workspace" (WorkspaceHeading)- Summary paragraph (
data-isis-upa-summary) - The "Score provider" form (
data-isis-upa-evaluate-form) - Result block (
data-isis-upa-result) withdata-isis-upa-cost,data-isis-upa-latency,data-isis-upa-score
- Route map panel (
data-isis-unified-provider-architecture-route-map):<h2>"Route Map" enumeratingSTUDIO_ISIS_UNIFIED_PROVIDER_ARCHITECTURE_ROUTE_MAP - Quick-actions panel:
quickActionlinks to/studio/isis/conversational-aiand "Back to Studio workspace index" →/studio
States#
- Loading —
data-isis-upa-loading"Loading provider scorer…" - Unauthorized —
data-isis-upa-unauthorized(admin-scope fail-closed on 401/403) - Error —
data-isis-upa-erroron non-OK / malformed response - Ready (form) — score form renders (quality-tier options from the catalog)
- Result —
data-isis-upa-result(kindevaluated) ordata-isis-upa-evaluate-error(kinderror)
Interactions#
Score provider (data-isis-upa-evaluate-form)#
- base cost —
data-isis-upa-field-basecostinput - per-unit cost —
data-isis-upa-field-perunitinput - avg latency ms —
data-isis-upa-field-latencyinput - success rate —
data-isis-upa-field-successinput - provider max quality —
data-isis-upa-field-maxqualityselect (catalog quality tiers) - prompt length —
data-isis-upa-field-promptleninput - images —
data-isis-upa-field-imagesinput - videos —
data-isis-upa-field-videosinput - required quality —
data-isis-upa-field-qualityselect (catalog quality tiers) - Score provider —
data-isis-upa-evaluate-submitsubmit; POSTs to/v1/admin/isis/unified-provider-architecture/evaluate
Route map#
- Route-map articles — non-interactive path + purpose entries
Quick-actions#
- Open Isis Conversational AI workspace →
/studio/isis/conversational-ai - Back to Studio workspace index →
/studio
Data & contracts#
- Reads:
GET /v1/admin/isis/unified-provider-architecture(UPA_ENDPOINT) on mount — catalog (qualityTiers) - Writes:
POST /v1/admin/isis/unified-provider-architecture/evaluate(EVALUATE_ENDPOINT) — estimate cost/latency + score - Realtime: None
- Caching: client
fetchon mount,cache: 'no-store',buildBffAuthHeaders() - Auth: admin-scoped fail-closed (401/403 → unauthorized state); route behind the signed-in + studio proxy gate
- Component sources:
apps/oshun/web/src/components/studio/StudioIsisUnifiedProviderArchitectureWorkspace.tsxapps/oshun/web/src/components/studio/StudioIsisUnifiedProviderArchitectureRouteMap.ts
Cross-references#
- Studio overview:
../../studio-overview.md - Sibling routes:
Open questions / known gaps#
- The score weights (cost / quality / latency / reliability) are server-side constants; this view does not expose tuning them
- Single-provider scoring only — there is no comparative leaderboard across multiple providers in this surface