Form factors

One assistant, a handful of surfaces. The ambient layer is not five features — it is a single presence that changes shape to match how much of your attention the moment deserves, from a resting orb to a full command palette. Every mode shares one state, one identity, and one context; only the geometry changes.
The forms
OrbPresent, not open.

The resting state: the assistant is on the page, watching nothing, costing nothing. It is the only mode with no surface — the character alone, docked at one of eight anchors.

Reached byWhere every other mode returns to. Drag it anywhere.
Leaves by⌘K, or drag it into a zone.
Quick askAsk without arriving anywhere.

The orb's own expanded form: clicking grows an input out of the character, sharing its glass and its live border. It opens IN the zone the orb is docked to — centered on that anchor rather than hanging off the orb's edge, and clamped into the content region so a corner never pushes it off-screen. The orb keeps its side: docked right, it becomes the right end of the form and the input extends leftward. A question costs no surface, no travel, and no mode change until there is an answer to hold.

Reached byClicking the orb. The character turns to listening as it opens. A history control sits BESIDE the pill rather than inside it — the pill is one object (the character and the field it grew), and a second control within it would make it two.
Leaves byClicking the orb again, clicking anywhere else, or Esc. Asking holds the thinking here — the question stays where it was asked, the character churns in place — and hands over to the panel at the moment the answer is ready.
PanelA conversation you keep.

A floating, draggable window — the only mode that persists while you work. Answers accumulate; the transcript is the point.

Reached byAsking anything, from any mode.
Leaves byDrag it: to the right edge it docks, to the top-center it becomes the palette.
DockA conversation beside the work.

The panel, anchored full-height to the edge. Same conversation, but the page reflows around it instead of being covered — for work done with the assistant rather than in it.

Reached byDragging the panel into the right zone.
Leaves byDragging its header detaches it back into a panel, under the cursor.
SpotlightFind or ask, from anywhere.

The command palette: one input that searches the product and asks the AI, centered and global. Documented in full under CommandPalette.

Reached by⌘K anywhere, or dragging the panel to the top-center zone.
Leaves by⌘K or Esc; asking transforms it in place into the answer view.
HistoryThe record, not an exchange.

The only mode that takes the whole screen, because it is the only one that is not about a single answer. The other four are sized to how much attention one exchange deserves; this one answers a different question — what have I asked here — and that is the question that legitimately wants the room. It stays translucent over the product rather than navigating away, because the work you were doing is the reason you opened the record. The conversation you are currently having appears in the list too, marked open and shimmering while it runs: a record that omitted the session on screen would be the strangest possible omission. Picking any row opens it IN PLACE — the record is somewhere you can work, not a launcher that ejects you — and asks the question again rather than restoring a transcript, which is what the layer can honestly offer today.

Reached byThe history control, offered wherever a conversation lives: beside the quick-ask pill, in the panel header, and in the spotlight's answer view.
Leaves byClose or Esc goes all the way to rest — dropping a full-screen surface into a floating panel would leave two things open when the user asked to put one away. The header also offers the panel and the dock, for keeping the conversation while putting the record down.

Each frame holds a real assistant, in that form, that you can type into — not a picture of one. They are scoped to their frames, which is why five can sit on one page at once.

Drag is the mode switcher

There is no mode menu, and there should never be one. Moving the surface is choosing its form: drag the panel to the right edge to dock it, to the top-center to become the palette, anywhere else to float. Zones appear only while dragging, so the affordance exists exactly when it is relevant.

This is the ambient layer's core interaction claim: the user positions the assistant, and the position states the intent. Docking says "stay beside my work." Centering says "I'm asking one thing." Dropping it loose says "keep this conversation, out of my way."

Where a form opens

Opening never relocates the assistant. A form appears where the user last put it: quick ask opens in the orb's own zone, the panel opens where it was left, the dock stays on its edge. Only the palette is deliberately global, because it is summoned by a key rather than by touching a surface.

Within its zone, a form centers on the anchor rather than hanging off the object that opened it, and clamps into the content region — so a corner-docked orb still produces a form that reads as placed, not as spilling off the edge.

Direction follows the side: an assistant docked right opens leftward and vice versa. The character stays put; the surface grows away from the nearest edge.

What every form shares

One conversation. Modes are geometry, not sessions — asking in the bar, continuing in the panel, and docking it are one thread throughout.

One context. Pages declare what they are about, and the current page rides along as a chip in whichever surface is open; right-clicking anything attaches it as another.

One identity. The orb's four states drive every surface at once — the character, the comet in the border, the heat field behind the glass, and the marks that sign each answer.

One glass. Every surface wears the same recipe (see Translucency), and no ambient surface defines its own blur or tint.

One set of objects. Whatever the form, an exchange renders as a MessagePair — UserMessage above, the answer below, its text arriving through StreamingText and its grounding shown as ReferenceChips. A form factor decides where the conversation sits and how big it is; it never decides what a message looks like.

The contract

These are the whole surface vocabulary of the ambient layer (DESIGN.md §8). Another one is a governance event, not a feature: if a use case doesn't fit, the question is which existing form it belongs to, and only then whether the vocabulary should grow.

Quick ask is the orb's state, not a sixth mode. The machine still has five modes; hovering expands the resting form in place rather than switching to a new one. That is the rule for growth here — extend a form before adding one, and only add when the new surface would have its own lifecycle.

Two standing prohibitions, both from decisions already made: no glow effects on any ambient surface, and no mode may introduce a blur, tint, or motion timing of its own — glass comes from the recipe, timing from the motion roles.