Skip to content

Routing Behavior

Per-chip Outputs

Each chip you configure gets its own output on the Chat Input component, named Chip: <label>. The component also keeps its regular Chat Message output for the unchipped case.

flowchart LR
    CI["Chat Input"] -->|selected| T["Chip: Translate → translate branch"]
    CI -.->|stopped| S["Chip: Summarize"]
    CI -.->|stopped| E["Chip: Explain"]
    CI -.->|stopped| M["Chat Message"]

All chip outputs render simultaneously on the canvas — there is no dropdown-style output selector — so the branching is visible at a glance.

What Happens When a Chip Is Selected

  • The matching Chip: <label> output emits a Data with the user's selection (see Chip Rendering) and the message text.
  • Every other chip output is stopped.
  • The regular Chat Message output is also stopped, because the user's intent has been captured by the chip rather than by a free-form message.

The net effect is that exactly one downstream branch executes per user turn.

What Happens When No Chip Is Selected

  • The Chat Message output runs normally with the user's message.
  • All chip outputs are stopped.

This means a chip-enabled Chat Input behaves identically to a plain Chat Input when the user just sends text.

Why per-chip Outputs

The per-chip output approach was chosen over alternatives (such as a single output with conditional routing downstream) because it:

  • Keeps flow logic visually explicit on the canvas — you can see exactly which path each chip triggers.
  • Avoids the need for separate router or conditional components.
  • Aligns with the visual flow-based paradigm where connections represent execution paths.