import type { PluginRuntimeChannel } from "./types-channel.js"; import type { PluginRuntimeCore, RuntimeLogger } from "./types-core.js"; export type { RuntimeLogger }; // ── Subagent runtime types ────────────────────────────────────────── export type SubagentRunParams = { sessionKey: string; message: string; extraSystemPrompt?: string; lane?: string; deliver?: boolean; idempotencyKey?: string; }; export type SubagentRunResult = { runId: string; }; export type SubagentWaitParams = { runId: string; timeoutMs?: number; }; export type SubagentWaitResult = { status: "ok" | "error" | "timeout"; error?: string; }; export type SubagentGetSessionMessagesParams = { sessionKey: string; limit?: number; }; export type SubagentGetSessionMessagesResult = { messages: unknown[]; }; /** @deprecated Use SubagentGetSessionMessagesParams. */ export type SubagentGetSessionParams = SubagentGetSessionMessagesParams; /** @deprecated Use SubagentGetSessionMessagesResult. */ export type SubagentGetSessionResult = SubagentGetSessionMessagesResult; export type SubagentDeleteSessionParams = { sessionKey: string; deleteTranscript?: boolean; }; export type PluginRuntime = PluginRuntimeCore & { subagent: { run: (params: SubagentRunParams) => Promise; waitForRun: (params: SubagentWaitParams) => Promise; getSessionMessages: ( params: SubagentGetSessionMessagesParams, ) => Promise; /** @deprecated Use getSessionMessages. */ getSession: (params: SubagentGetSessionParams) => Promise; deleteSession: (params: SubagentDeleteSessionParams) => Promise; }; channel: PluginRuntimeChannel; };