/** * `AgentsClient` — observer for QAR's `agent.spawn` envelopes. * * Each envelope reports a sub-agent spawn: `child_agent_id` / * `parent_agent_id` / `spawn_protocol` (`bulletin` or `direct`). * Surfacing this stream lets consumers like Studio render a * multi-agent run's topology live without scraping a side-channel. * * Filter helpers narrow by parent agent (rendering one tree branch) or by * spawn protocol (bulletin-only vs direct-only views). */ import type { AgentSpawnEnvelope } from '../qar/envelopes.js'; import type { SpawnProtocol } from '../qar/payloads.js'; import { KindObserverClient } from './observers.js'; import type { EventSubscription } from './observers.js'; export interface AgentSpawnFilter { /** Match against `payload.parent_agent_id` — useful for tree-branch views. */ readonly parent_agent_id?: string; /** Match against `payload.spawn_protocol` — `'bulletin'` or `'direct'`. */ readonly spawn_protocol?: SpawnProtocol; } export type AgentSpawnHandler = (env: AgentSpawnEnvelope) => void; export declare class AgentsClient extends KindObserverClient<'agent.spawn', AgentSpawnEnvelope> { /** * Register a handler invoked for every inbound `agent.spawn` envelope. * * Same multi-handler / fan-out / throw-swallowing semantics as the other * observer surfaces. */ onSpawn(handler: AgentSpawnHandler): EventSubscription; onSpawn(filter: AgentSpawnFilter, handler: AgentSpawnHandler): EventSubscription; } //# sourceMappingURL=AgentsClient.d.ts.map