Skip to content

Alder Homeworks guided service Scenes

Status: Current | Last reviewed: 2026-10-20

Four authored Scene agents demonstrate the guided channel policy for a fictional home-equipment company. They include recorded dialogue, narration, cursor cues, an assistant email result, IVR tones, persistent guidance, and generated product footage. These are editable Director recordings. They do not operate a live contact-center queue, authenticate a customer, or place an order.

Review installation

The local TrueServe tenant contains:

Agent Journey Approximate duration
4983 Website-first return and video inspection 4:37
4984 Saved number, IVR diversion and video inspection 4:20
4985 Vacuum guided support 1:00
4986 Accessory research and confirmed purchase 1:13

Open /agents/<agent>/director on this environment's ai-manager host. Agent IDs are installation receipts, not portable identifiers. Scripts and private receipts live in apps/ai-manager/scripts/alder-scene/ and .local-data/alder-scene/, respectively. Each Scene has its own project-owned media. The guided-return Scene was revised after presentation feedback. Its reviewed portrait inspection and separate kitchen selfie are selected; earlier assets remain owned by the project but are not used in this revision.

The opening introduces Alex, his faulty new espresso machine and Alder Homeworks as a maker of kitchen, cleaning and home-comfort appliances. The website displays alderhomeworks.com/support and a generated company logo. Ari follows image tiles through Support → Kitchen → Coffee & espresso → Barista Pro → Brewing problems & returns. A support chat opens from the product page. It treats the session as an ordinary customer request, collects the reported fault and order, and sends verification to Alex's own phone. The existing SMS → secure browser → device verification presentation is reused. There is no custom website identity page, Return to Ari button or customer-facing Service Guidance card.

The support chat offers two appointment slots. Ari switches back to Alex to confirm Thursday before booking. Replies show thinking before delivery; website messages visibly compose and send. A time transition introduces Thursday, October 22, 2026. The home screen receives an Ari push, then opens a fresh reminder conversation. Alex follows the portal link, allows camera/microphone access in the native Safari presentation, and joins during a short, non-looping kitchen selfie.

Jordan uses the branded Salesforce shell with a Video Call record, native Video / Details section tabs, the customer/context sidebar and an Agent Assist rail with rich recommendation and coaching cards. Alex's profile is a separate outdoor photograph. The customer camera starts paused; Jordan's spoken request precedes the selfie-to-machine turn, brief brew and E17. Further portrait shots show the right side and serial label. Alex reads AHBP900-26100482; Jordan confirms it before updating evidence and serial fields. Alex then pauses video while Jordan completes the native return form. The floating preview shows Jordan. Submitting records RA-10482 before Jordan announces approval. The example order was delivered October 6 and falls within the fictional 30-day policy.

Typed Alex/Ari and website chats have no matching speech. Narration explains the scenario without subtitles and anchors to visual actions so navigation continues during it. Jordan and Alex speak only during the video appointment. Website footer slogans and the browser's upper-right customer-support banner are removed.

The separate saved-number Scene retains its original script: an email lookup supplies the number before dialing; zero enters untriaged waiting; nine declares an assistant; one opens a spoken web handoff. The paired web session precedes queue exit. The vacuum and accessory scripts are separate review examples.

The vacuum route records model-specific airflow checks and the customer's confirmation of resolution. The accessory route verifies the account, checks compatibility, prepares a complete $24 quote and waits for Alex's explicit item/price/delivery confirmation before the order is placed. There is no unavailable-alternative Scene.

Director implementation

stage.type=service_journey is a native presentation surface. Its typed journey moments carry full snapshots: screen, copy, fields, choices, breadcrumbs, website-chat visibility, mobile video phase, identity, participant assessment, call, queue, evidence and approval. The stage reconstructs these from time, so reverse seeks restore earlier knowledge. The same snapshots can display a compact guidance strip in assistant call/browser chapters. No authored value is a detector measurement or an authentication result.

browser.event=open_chat connects a normal website support conversation without a spoken pairing code. chat.event=widget provides typed detail rows, appointment options, a status and an action label. The website chat, original voice-to-web handoff and customer phone share the authored conversation state. Customer-facing text does not expose Ari's identity or internal assessment variables.

stage.type=customer_video reuses PhoneFrame, AppShell and BrowserApp. Camera permissions are an authored iOS-style presentation; no real device permission is requested. journey.videoPhase includes portal, permission, preview, waiting, connected, rear, paused and ended. Personal-assistant stages can set a chapter phone clock, date label and conversation scope. assistant.event=notification adapts the native banner to Ari's app icon; an explicit phone action opens the conversation. message.thinking=true delivers an assistant reply at the end of its thinking interval. Salesforce gains optional records.videoCall, a video center section and record-navigation actions. Its normal form, sidebar, section tabs and assist rail are reused; section.guidance supplies rich recommendation/coaching/completion card styling.

Personal-assistant chapters display completed activity results alongside messages. Their styling is injected into the emulator's Shadow DOM. Persona speech in assistant calls uses the persona's name; audience-only narration is excluded from the call transcript.

kind=video moments use a typed video payload. Native generation uses an active tenant ElevenLabs connection, a prompt, a project-owned reference, Veo 3.1/Fast, 4/6/8 seconds, 720p/1080p and 16:9/9:16 framing. video.surface=video_call embeds customer footage; representative independently drives the Salesforce specialist camera on the same clock. Looping remains available but is disabled for this camera check. The Video editor exposes generation status, upload, take selection, preview/comparison, trim, placement, display overlay and reviewed event markers. Clips are silent. Dialogue and sound remain on the audio timeline.

The server persists video_job metadata in director_assets before submission, with an operation UUID, provider ID, prompt/reference fingerprint and polling lease. Identical active requests reuse the job. GET lists saved jobs; reopening the editor resumes polling rather than generation. Poll collection is throttled to at least 12 seconds. Ambiguous submissions require checking provider history before another attempt; they are never automatically regenerated. Completed outputs are downloaded to immutable, separately owned video assets. The browser explicitly selects a take.

Uploaded/generated footage is bounded to 100 MB, 120 seconds and 4K, inspected with ffprobe and normalized to silent H.264 MP4. The route bypasses Next Proxy's 10 MB body clone, while retaining withAuth and its own bounded reader. Media GET supports single byte ranges. Save and export verify asset ownership and immutable metadata. Duplication copies video and reference assets, remaps take/review/reference IDs and omits provider jobs.

Preview follows the Scene clock. Pause/seek/export await decoded video frames. Image readiness also checks images that were already loaded when their DOM reference attached, so cached logos cannot leave a completed image pending during export. Trimmed clips hold their selected endpoint; explicitly looping clips use elapsed time modulo the trim duration. Changing a selected take clears marker review; regenerating leaves the selected take intact. The physical footage, exact error text, sound and policy state remain independent editable elements.

Media provenance

The supplied reference and first clip were generated through the configured ElevenLabs account on October 20, 2026. The image model was gemini-3-pro-image; the video model was veo-3.1-fast-generate-001, eight seconds, 720p, no generated audio. A second native Director generation verified the saved-job workflow with an inline project-owned reference.

Assets are in docs/assets/alder-homeworks/. The exact prompts are checked in as scripts/alder-scene/media-brief.ts. The source clip's reviewed event markers are Brew press 0.5s, flow visible 2.0s, flow stopped 5.5s, and E17 overlay 5.6s. brew-stop.wav is an authored synthetic motor/error effect, not a captured product recording. The original four examples have six distinct saved ElevenLabs voice configurations.

The revised assets were generated on the same date through ElevenLabs: alder-logo.png, product-phone-reference.png, alex-selfie-reference.png, product-phone-source.mp4 (8 seconds, 720×1280) and alex-selfie-source.mp4 (4 seconds, 720×1280). Prompts and resumable provider operations live in revision-media.ts. revision-process-media.py derives transparent padded logo/WebP images, stabilizes the product clip with libvidstab's fixed-camera mode, compresses motion to 80% duration and holds the stopped endpoint to eight seconds. The reviewed markers are approximately 0.5s press, 1.2s flow, 2.4s stop and 2.6s E17. brew-stop-early.wav supplies the short motor/stutter and two error tones. These are generated/edited demo media, not recordings of a real machine or customer.

Provider references: Image & Video quickstart, video creation, and video retrieval. Consult current provider access and model limits before changing the supported choices.

The continuity review adds generated category tiles, Alex's outdoor profile, Jordan's webcam portrait, a physical phone turn, right-side inspection and serial close-up. continuity-media.ts records their exact prompts and resumes provider job IDs. continuity-process-media.py creates WebP derivatives and removes an unrequested wand adjustment from the camera-turn take with a four-frame blend into its settled final view. The original side shot includes Alex repositioning the machine to reveal its side; later retakes remain unselected. Inspect this generated motion before using it in a presentation.

continuity-avatar.ts downloads the saved Jordan voice takes, places their decoded samples at the authored call times, and supplies that audio plus the generated portrait to ElevenLabs creatify-aurora. The public API was verified with a 20-second test and a continuous 106-second performance. --continuous generates one call-length performance; the default supports 20-second segments with the previous output frame as the next input. The uploaded track is silent to avoid double speech. Its source fingerprint includes voice takes and timing; later edits are merged only if Jordan's dialogue and the call length still match. The published API inspected for this review did not expose a model named “Flux3.” Avatar regeneration is a script workflow; the native Veo button does not recreate lip-sync.

Video-call speech uses the authored video connection state in both preview and export. Connected, rear-camera and paused-camera states keep Alex and Jordan audible; pre-join and ended states mute call speech. Narration remains independent. Named video participants do not use telephone consultation routing. The export check compares rendered speech with the selected voice takes, in addition to checking that an AAC track exists.

Reproduce and verify

Run scripts with .devcontainer/scripts/with-env.sh, the ai-manager tsx binary and its tsconfig.json. The bootstrap creates a normal local author account and authenticates through the product API. It refuses remote database provisioning through the existing E2E fixture guard. Secrets, sessions and provider receipts stay in ignored private files.

  1. bootstrap.ts discovers the configured connection and creates missing Scene identities.
  2. prepare-media.ts generates the reference and clip once, then resumes checkpointed provider IDs. These are paid provider operations.
  3. The original install.ts --scripts --video --audio installs the definitions, uploads media and prepares missing voice takes. It reuses identical audio within these four Scenes with separately owned object copies. Revision receipts stop reruns from overwriting later editor changes.
  4. review.ts validates all Scene timelines, captures key screens, and checks forward/reverse seeking and actual video play/pause.
  5. verify-video.ts is an explicit paid native generation test. Reruns reuse its operation ID. It checks job idempotency, take preservation, range responses, invalid requests and cross-project denial.
  6. verify-export.ts creates a temporary duplicate, tests a video upload exceeding 10 MB, renders the inspection excerpt, saves output/alder-review/inspection-export.mp4, and removes only its temporary Scene/assets.

For the revised website Scene, the first revision's assets come from revision-media.ts and revision-process-media.py. The latest review additionally uses continuity-media.ts and continuity-process-media.py. revision-install.ts --scripts uploads them, saves the previous document, updates only agent 4983 and generates missing speech. --replace-video=cameraTurn explicitly selects the reviewed camera-turn derivative. Run continuity-avatar.ts --continuous after the dialogue and timing are final. The separate private revision receipt prevents overwriting later editor changes. Do not use the original installer to reset this Scene.

revision-review.ts checks product tiles, thinking/reply delivery, push-to-fresh-conversation, website chat, SMS, appointments, mobile permissions/selfie, independent Salesforce cameras, serial inspection, form/PiP, reverse seeking and playback. revision-export.ts duplicates the Scene, checks remapped ownership and exports an inspection excerpt at the original dialogue/video offsets before deleting its temporary copy. Latest artifacts are under output/alder-review/v3/; the prior review remains under v2/.

lib/director/video-model.test.ts covers trim endpoints, take preservation, marker review and image ownership/remapping. scripts/alder-scene/definition.test.ts covers fact acquisition, queue handoff, observed evidence and purchase confirmation. Browser review results and screenshots are in output/alder-review/.

The October 20 review passed all four browser journeys, actual video play/pause, reverse seeking, native generation/recovery, project duplication, an upload above 10 MB, playlist rejection and the 1080p MP4 inspection export. The revised guided return adds 26 browser checkpoints for the product hierarchy, thinking and push states, mobile join, Salesforce inspection and return form. The Director suite reported 122 passing tests and one existing skipped test. Typecheck and scoped ESLint passed. Both documentation trees built and runtime-derived API references were refreshed. The repository-wide route audit still reports four existing handlers outside Director (access-manager and Takeda interactions); all Director video handlers use the required permission wrapper.

See Director API and the storyboard. The User Guide includes a matching Alder Homeworks walkthrough.