/** * [WHO]: Provides emitAgentSelected, emitAgentCompleted, emitAgentAutoModeDecision, emitAgentMemoryLoaded — * structured telemetry events for the Agent tool (CC §XVI: tengu_agent_tool_selected / _completed / _auto_mode_decision / _memory_loaded) * [FROM]: Depends on core/runtime/logger (structured logging), core/platform/telemetry types (future insforge sink) * [TO]: Consumed by ./agent-tool.ts (execute paths) and ./agent-handoff-safety.ts (auto mode decision) * [HERE]: core/sub-agent/agent-telemetry.ts — telemetry emission module, mirrors CC's `d()` analytics function */ /** CC: d("tengu_agent_tool_selected", {...}) */ export interface AgentSelectedEvent { agent_type: string; model: string; source: string; color?: string; is_built_in_agent: boolean; is_resume: boolean; is_async: boolean; is_fork: boolean; } /** CC: d("tengu_agent_tool_completed", {...}) */ export interface AgentCompletedEvent { agent_type: string; model: string; prompt_char_count: number; response_char_count: number; assistant_message_count: number; total_tool_use_count: number; duration_ms: number; total_tokens: number; is_built_in_agent: boolean; is_async: boolean; } /** CC: d("tengu_auto_mode_decision", {...}) */ export interface AgentAutoModeDecisionEvent { decision: "blocked" | "allowed"; toolName: string; subagentType: string; toolUseCount: number; isHandoff: boolean; } /** CC: d("tengu_agent_memory_loaded", {...}) */ export interface AgentMemoryLoadedEvent { scope: string; source: string; } /** * Emit telemetry for agent tool selection (CC §XVI: tengu_agent_tool_selected). * Called at the start of executeSync / executeAsync, after agent definition is resolved. */ export declare function emitAgentSelected(event: AgentSelectedEvent): void; /** * Emit telemetry for agent tool completion (CC §XVI: tengu_agent_tool_completed). * Called after executeSync / executeAsync produces a result. */ export declare function emitAgentCompleted(event: AgentCompletedEvent): void; /** * Emit telemetry for auto-mode handoff decision (CC §XVI: tengu_auto_mode_decision). * Called when checkHandoffSafety makes a decision in auto mode. */ export declare function emitAgentAutoModeDecision(event: AgentAutoModeDecisionEvent): void; /** * Emit telemetry for agent memory loading (CC §XVI: tengu_agent_memory_loaded). * Called when agent definition memory is resolved. */ export declare function emitAgentMemoryLoaded(event: AgentMemoryLoadedEvent): void; /** * Inject an EventBus for telemetry forwarding. Called during runtime init * when the EventBus is available. Without injection, telemetry is logger-only. */ export declare function setAgentTelemetryEventBus(bus: { emit(channel: string, data: unknown): void; }): void;