From 980388fcf04df7811495d23b4963f48d991b7cee Mon Sep 17 00:00:00 2001 From: SciFantastic Date: Sat, 14 Feb 2026 00:23:27 -0600 Subject: [PATCH] plugin-sdk: expose onAgentEvent + onSessionTranscriptUpdate via PluginRuntime.events --- src/plugins/runtime/index.ts | 6 ++++++ src/plugins/runtime/types.ts | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/src/plugins/runtime/index.ts b/src/plugins/runtime/index.ts index f45e1e9b6b7..f4a875c2432 100644 --- a/src/plugins/runtime/index.ts +++ b/src/plugins/runtime/index.ts @@ -71,6 +71,7 @@ import { shouldLogVerbose } from "../../globals.js"; import { monitorIMessageProvider } from "../../imessage/monitor.js"; import { probeIMessage } from "../../imessage/probe.js"; import { sendMessageIMessage } from "../../imessage/send.js"; +import { onAgentEvent } from "../../infra/agent-events.js"; import { getChannelActivity, recordChannelActivity } from "../../infra/channel-activity.js"; import { enqueueSystemEvent } from "../../infra/system-events.js"; import { @@ -109,6 +110,7 @@ import { } from "../../pairing/pairing-store.js"; import { runCommandWithTimeout } from "../../process/exec.js"; import { resolveAgentRoute } from "../../routing/resolve-route.js"; +import { onSessionTranscriptUpdate } from "../../sessions/transcript-events.js"; import { monitorSignalProvider } from "../../signal/index.js"; import { probeSignal } from "../../signal/probe.js"; import { sendMessageSignal } from "../../signal/send.js"; @@ -248,6 +250,10 @@ export function createPluginRuntime(): PluginRuntime { stt: { transcribeAudioFile }, tools: createRuntimeTools(), channel: createRuntimeChannel(), + events: { + onAgentEvent, + onSessionTranscriptUpdate, + }, logging: createRuntimeLogging(), state: { resolveStateDir }, }; diff --git a/src/plugins/runtime/types.ts b/src/plugins/runtime/types.ts index cfb06627ddd..3cf439b12c5 100644 --- a/src/plugins/runtime/types.ts +++ b/src/plugins/runtime/types.ts @@ -92,6 +92,9 @@ type MediaKindFromMime = typeof import("../../media/constants.js").mediaKindFrom type IsVoiceCompatibleAudio = typeof import("../../media/audio.js").isVoiceCompatibleAudio; type GetImageMetadata = typeof import("../../media/image-ops.js").getImageMetadata; type ResizeToJpeg = typeof import("../../media/image-ops.js").resizeToJpeg; +type OnAgentEvent = typeof import("../../infra/agent-events.js").onAgentEvent; +type OnSessionTranscriptUpdate = + typeof import("../../sessions/transcript-events.js").onSessionTranscriptUpdate; type CreateMemoryGetTool = typeof import("../../agents/tools/memory-tool.js").createMemoryGetTool; type CreateMemorySearchTool = typeof import("../../agents/tools/memory-tool.js").createMemorySearchTool; @@ -366,6 +369,10 @@ export type PluginRuntime = { monitorLineProvider: MonitorLineProvider; }; }; + events: { + onAgentEvent: OnAgentEvent; + onSessionTranscriptUpdate: OnSessionTranscriptUpdate; + }; logging: { shouldLogVerbose: ShouldLogVerbose; getChildLogger: (