---
path: /studio/aja/output-retrieval
surface: studio
domain: aja
auth: signed-in + studio entitlement
source: apps/oshun/web/src/app/studio/aja/output-retrieval/page.tsx
status: walked
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)'
---

# Aja Output Retrieval

## Purpose

Admin lane console wired to the real `@aja/result-aggregation`
assembly-readiness helpers via `/v1/admin/aja/output-retrieval`: it reports a
job's stage-weighted assembly progress (from collected/used results, conflict
resolution, gap-fill counts) and whether the output has reached a terminal,
retrievable state.

## Entry points

- **Direct URL** — `/studio/aja/output-retrieval` (signed-in + studio entitlement)
- **Sibling quick-actions from this page** — Queue Statistics, Back to Studio

## Layout regions

`page.tsx` mounts `ShellLayout` with `active="studio"` and renders three panels.

- **Workspace panel** (`data-aja-output-retrieval-workspace`):
  - `<h1>` "Aja Output Retrieval Workspace" (via `WorkspaceHeading`)
  - `<p data-aja-output-retrieval-summary>` — "Dedicated Output Retrieval route
    with dense expert-mode controls, progressive disclosure, and canonical route
    map. The operations lane reports assembly progress and terminal retrieval
    readiness on the real result-aggregation engine."
  - `<h2 data-aja-or-lane-heading>` "Retrieval Readiness Operations Lane" wrapping
    `data-aja-or-engine-summary` + the readiness form
- **Route Map panel** (`data-aja-output-retrieval-route-map`): `<h2>` "Route Map"
  + one `<article>` per `STUDIO_AJA_OUTPUT_RETRIEVAL_ROUTE_MAP` entry (5 entries)
- **Quick actions panel**: `.quickAction` `<Link>`s — see Interactions

## States

- [ ] **Loading** — `data-aja-or-loading` "Loading aggregation engine…"
- [ ] **Unauthorized** — on 401/403, `data-aja-or-unauthorized` ("Access
      restricted." + reason, default "Aja workspace scope required to inspect
      output retrieval.")
- [ ] **Error** — non-OK / malformed / unreachable → `data-aja-or-error`
- [ ] **Ready (form)** — catalog present: `data-aja-or-engine-summary` + the
      readiness form
- [ ] **Result** — `data-aja-or-result` `data-aja-or-headline` (status · N%
      assembled · retrievable / terminal (not retrievable) / in progress)
- [ ] **Validation error** — `data-aja-or-readiness-error` "All counts must be
      non-negative integers."

## Interactions

### Readiness form (`data-aja-or-form`)

- [ ] **Status** — `select data-aja-or-status` (options from `catalog.statuses`)
- [ ] **Collected** — `input data-aja-or-collected`
- [ ] **Used** — `input data-aja-or-used`
- [ ] **Conflicts** — `input data-aja-or-conflicts`
- [ ] **Resolved** — `input data-aja-or-resolved`
- [ ] **Gap frames** — `input data-aja-or-gaps`
- [ ] **Gaps filled** — `input data-aja-or-filled`
- [ ] **Check readiness** — `button data-aja-or-submit`; `POST
      /v1/admin/aja/output-retrieval/readiness` with `{ status,
      totalResultsCollected, resultsUsed, conflictsDetected, conflictsResolved,
      totalGapFrames, gapsFilled }` → `{ result: Readiness }`

### Route Map panel (`data-aja-output-retrieval-route-map`)

Non-interactive `<article>` blocks from `STUDIO_AJA_OUTPUT_RETRIEVAL_ROUTE_MAP`
(5 entries): `/studio/aja/output-retrieval` plus `…/scenes/[sceneId]`,
`…/exports/[exportId]`, `…/revisions/[revisionId]`, `…/governance/[policyId]`.

### Quick actions panel

- [ ] **Open Aja Queue Statistics workspace** → `/studio/aja/queue-statistics`
- [ ] **Back to Studio workspace index** → `/studio`

## Data & contracts

- **Reads**: `GET /v1/admin/aja/output-retrieval` (catalog: `summary`,
  `statuses`, `stageWeights`) on mount via `buildBffAuthHeaders()`,
  `cache: 'no-store'`
- **Writes**: `POST …/readiness` → `{ result: { status, progress, complete,
  retrievable } }`
- **Realtime**: none
- **Caching**: client fetch on mount (no-store); SSR shell only
- **Auth**: BFF endpoints admin-scoped + fail-closed (401/403 → unauthorized
  render); the route is signed-in + studio (proxy gate)

## Cross-references

- Parent: [`../../studio-overview.md`](../../studio-overview.md)
- Component sources:
  - `apps/oshun/web/src/components/studio/StudioAjaOutputRetrievalWorkspace.tsx`
  - `apps/oshun/web/src/components/studio/StudioAjaOutputRetrievalRouteMap.ts`
- Embedded by aggregator:
  `apps/oshun/web/src/components/studio/StudioAjaResultAggregationWorkspace.tsx`
  (Output Retrieval Lane)
- Sibling from quick-actions: `/studio/aja/queue-statistics`

## Open questions / known gaps

- [ ] Route-map sub-routes are descriptive only; confirm implementation status
- [ ] Document the exact studio entitlement / proxy gate governing `/studio/aja/*`
