# PR-17 Studio Runtime Adapter and Assets Workspace Consumption Domain Owner: `docs/packer` Cross-Domain Impact: `docs/studio` ## Briefing Once the active query and command surface is runtime-backed, Studio should consume that path as a frontend without recreating packer semantics. This PR hardens the Studio adapters and the `Assets` workspace consumption path for the service-only wave while preserving the modular split between `prometeu-packer-api`, `prometeu-packer-v1`, `prometeu-studio`, and `prometeu-app`. ## Objective Deliver the Studio-side adapter and `Assets` workspace integration for the active runtime-backed service surface. ## Dependencies - [`./PR-13-embedded-bootstrap-container-owned-event-bus-and-packer-composition-root.md`](./PR-13-embedded-bootstrap-container-owned-event-bus-and-packer-composition-root.md) - [`./PR-15-snapshot-backed-asset-query-services.md`](./PR-15-snapshot-backed-asset-query-services.md) - [`./PR-16-write-lane-command-completion-and-used-write-services.md`](./PR-16-write-lane-command-completion-and-used-write-services.md) - cross-domain reference: [`../../studio/specs/2. Studio UI Foundations Specification.md`](../../studio/specs/2.%20Studio%20UI%20Foundations%20Specification.md) - cross-domain reference: [`../../studio/specs/4. Assets Workspace Specification.md`](../../studio/specs/4.%20Assets%20Workspace%20Specification.md) ## Scope - adapt Studio to consume runtime-backed packer queries and commands - preserve `request/response` as the primary integration model - consume packer lifecycle events through the host bridge from `PackerEventSink` into the container-owned typed event bus path - keep the `Assets` workspace aligned with the active service-only wave - remove adapter branches that only exist for inactive `doctor`, `build/pack`, or reconcile usage - keep `prometeu-studio` bound only to `prometeu-packer-api` - let `prometeu-app` remain responsible for installing the concrete `Container` implementation, applying the `p.packer.Packer` entrypoint from `prometeu-packer-v1`, and bridging `PackerEventSink` into the host bus ## Non-Goals - no doctor UI - no pack/build UI - no reconcile-state UI beyond what the current service wave actually exposes ## Execution Method 1. Update the Studio adapter layer to consume the runtime-backed service path. 2. Preserve translational mapping only. 3. Validate that `prometeu-studio` does not depend on `prometeu-packer-v1` classes directly. 4. Validate command submission plus event-driven lifecycle visibility through the host `PackerEventSink` bridge and shared bus path. 4. Remove adapter branches that only keep deferred capabilities artificially wired. 5. Keep the `Assets` workspace focused on the currently active service surface. ## Acceptance Criteria - Studio remains a consumer of packer runtime semantics - `Assets` workspace list/details/actions run through the active runtime-backed service path - command submission plus event observation are coherent end to end - no inactive doctor/build/reconcile surfaces are reintroduced - Studio adapters no longer preserve dead branches for deferred capability families - `prometeu-studio` depends only on `prometeu-packer-api` - `prometeu-app` is the layer that binds the concrete `Container` implementation and the `p.packer.Packer` entrypoint from `prometeu-packer-v1` - Studio consumes packer lifecycle visibility through a host-provided `PackerEventSink` bridge rather than by exposing host bus types inside packer contracts ## Validation - Studio adapter tests - `Assets` workspace smoke tests - end-to-end tests for list/details/write flows used by Studio ## Affected Artifacts - `prometeu-studio/src/main/java/p/studio/**` - `prometeu-studio/src/test/java/p/studio/**` - `prometeu-app/src/main/java/p/studio/**` - `prometeu-packer/prometeu-packer-api/src/main/java/p/packer/**` integration-facing contracts - `prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/**` embedded runtime implementation surfaces - `prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/events/**` embedded runtime event surfaces