* feat(plugins): give plugins the agent's sidebar indicator and background flag
Plugin UI re-derived agent state from status and attention fields and could
not see background work, so it showed agents as done while a shell they left
running was still live. Agent snapshots now carry the sidebar's own bucket as
indicator/indicatorLabel, computed by the same function the sidebar uses so
the two cannot drift.
Lifecycle hooks and the agent.open.before request now carry `background`, so a
hook can skip a hidden helper agent without a lookup. A hook cannot change it;
an omitted value means unchanged, like metadata.
`finished` attention still means the turn finished; background work is the
indicator's concern.
* fix(plugins): keep session-open hooks that omit background typechecking
A hook that returns its own object instead of spreading the request has no
background field; the result type now treats it as optional, like metadata,
matching the runtime where an omitted value means unchanged.
* refactor(plugins): give agent snapshots the background work count instead of an indicator
* fix(plugins): keep legacy session-open hooks that omit background typechecking