/** * Agent Orchestrator API Client * * A client for interacting with the Agent Orchestrator REST API. */ import type { Session, Log, SubagentTranscript, SessionsResponse, SearchSessionsResponse, SessionActionResponse, SetHeartbeatResponse, LogsResponse, SubagentTranscriptsResponse, CreateSessionRequest, UpdateSessionRequest, CreateLogRequest, UpdateLogRequest, CreateSubagentTranscriptRequest, UpdateSubagentTranscriptRequest, SessionStatus, LogLevel, SubagentStatus, MCPServerInfo, AgentRootInfo, ConfigsResponse, SendPushNotificationResponse, EnqueuedMessage, EnqueuedMessagesResponse, EnqueuedMessageInterruptResponse, EnqueuedMessageStatus, Category, CategoriesResponse, CreateCategoryRequest, UpdateCategoryRequest, SetSessionCategoryResponse, Trigger, TriggerType, TriggerStatus, TriggersResponse, TriggerResponse, TriggerChannelsResponse, TriggerConditionAttributes, TriggerConditionType, CreateTriggerRequest, UpdateTriggerRequest, Notification, NotificationsResponse, NotificationBadgeResponse, NotificationMarkAllReadResponse, NotificationDismissAllReadResponse, HealthReport, HealthActionResponse, CliStatusResponse, CliActionResponse, ForkSessionResponse, RefreshSessionResponse, RefreshAllSessionsResponse, BulkArchiveResponse, TranscriptResponse, TranscriptArchiveStatusResponse, ElicitationActionType, ElicitationResponse } from '../types.js'; /** Raw agent root shape as returned by the Rails API */ export interface RawAgentRoot { name: string; display_name: string; description: string; url: string; default_branch?: string; subdirectory?: string; custom?: boolean; default_goal?: string; default?: boolean; default_mcp_servers?: string[]; default_skills?: string[]; default_model?: string; } /** * Maps a raw API agent root to the normalized AgentRootInfo interface. * The `custom` and `default` fields from the API are intentionally omitted * as they are not needed by MCP clients. */ export declare function mapAgentRoot(raw: RawAgentRoot): AgentRootInfo; /** * Folds the ergonomic top-level `trigger_type` + `configuration` shape into the * REST API's nested `trigger_conditions_attributes`. Mirrors the * `trigger_type` → `condition_type` mapping that listTriggers uses for filtering. * Returns undefined when there is no condition to build (no trigger_type), so * callers can leave the field off the request entirely. */ export declare function conditionAttributesFromLegacy(trigger_type: TriggerConditionType | undefined, configuration: Record | undefined): TriggerConditionAttributes[] | undefined; /** * Interface for the Agent Orchestrator API client. * Used for dependency injection and testing. */ export interface IAgentOrchestratorClient { listSessions(options?: { status?: SessionStatus; agent_runtime?: string; show_archived?: boolean; page?: number; per_page?: number; }): Promise; searchSessions(query: string, options?: { status?: SessionStatus; agent_runtime?: string; show_archived?: boolean; page?: number; per_page?: number; }): Promise; getSession(id: string | number, includeTranscript?: boolean): Promise; createSession(data: CreateSessionRequest): Promise; updateSession(id: string | number, data: UpdateSessionRequest): Promise; deleteSession(id: string | number): Promise; archiveSession(id: string | number): Promise; unarchiveSession(id: string | number): Promise; followUp(id: string | number, prompt: string, options?: { force_immediate?: boolean; goal?: string; }): Promise; pauseSession(id: string | number): Promise; sleepSession(id: string | number): Promise; restartSession(id: string | number): Promise; changeMcpServers(id: string | number, mcp_servers: string[]): Promise; changeModel(id: string | number, model: string): Promise; setHeartbeat(id: string | number, options: { enabled?: boolean; interval_seconds?: number; }): Promise; listLogs(sessionId: string | number, options?: { level?: LogLevel; page?: number; per_page?: number; }): Promise; getLog(sessionId: string | number, logId: number): Promise; createLog(sessionId: string | number, data: CreateLogRequest): Promise; updateLog(sessionId: string | number, logId: number, data: UpdateLogRequest): Promise; deleteLog(sessionId: string | number, logId: number): Promise; listSubagentTranscripts(sessionId: string | number, options?: { status?: SubagentStatus; subagent_type?: string; page?: number; per_page?: number; }): Promise; getSubagentTranscript(sessionId: string | number, transcriptId: number, includeTranscript?: boolean): Promise; createSubagentTranscript(sessionId: string | number, data: CreateSubagentTranscriptRequest): Promise; updateSubagentTranscript(sessionId: string | number, transcriptId: number, data: UpdateSubagentTranscriptRequest): Promise; deleteSubagentTranscript(sessionId: string | number, transcriptId: number): Promise; getMcpServers(): Promise; getConfigs(): Promise; sendPushNotification(sessionId: string | number, message: string): Promise; forkSession(id: string | number, messageIndex: number): Promise; refreshSession(id: string | number): Promise; refreshAllSessions(): Promise; updateSessionNotes(id: string | number, notes: string): Promise; toggleFavorite(id: string | number): Promise; bulkArchiveSessions(sessionIds: number[]): Promise; getTranscript(id: string | number, format?: 'text' | 'json'): Promise; listEnqueuedMessages(sessionId: string | number, options?: { status?: EnqueuedMessageStatus; page?: number; per_page?: number; }): Promise; getEnqueuedMessage(sessionId: string | number, messageId: number): Promise; createEnqueuedMessage(sessionId: string | number, data: { content: string; goal?: string; }): Promise; updateEnqueuedMessage(sessionId: string | number, messageId: number, data: { content?: string; goal?: string; }): Promise; deleteEnqueuedMessage(sessionId: string | number, messageId: number): Promise; reorderEnqueuedMessage(sessionId: string | number, messageId: number, position: number): Promise; interruptEnqueuedMessage(sessionId: string | number, messageId: number): Promise; listCategories(): Promise; createCategory(data: CreateCategoryRequest): Promise; updateCategory(id: number, data: UpdateCategoryRequest): Promise; deleteCategory(id: number): Promise; reorderCategories(ids: Array): Promise; setSessionCategory(sessionId: string | number, categoryId: number | null): Promise; listTriggers(options?: { trigger_type?: TriggerType; status?: TriggerStatus; page?: number; per_page?: number; }): Promise; getTrigger(id: number): Promise; createTrigger(data: CreateTriggerRequest): Promise; updateTrigger(id: number, data: UpdateTriggerRequest): Promise; deleteTrigger(id: number): Promise; toggleTrigger(id: number): Promise; getTriggerChannels(): Promise; listNotifications(options?: { status?: string; page?: number; per_page?: number; }): Promise; getNotification(id: number): Promise; getNotificationBadge(): Promise; markNotificationRead(id: number): Promise; markAllNotificationsRead(): Promise; dismissNotification(id: number): Promise; dismissAllReadNotifications(): Promise; getHealth(): Promise; cleanupProcesses(): Promise; retrySessions(sessionIds?: number[]): Promise; archiveOldSessions(days?: number): Promise; getCliStatus(): Promise; refreshCli(): Promise; clearCliCache(): Promise; getTranscriptArchiveStatus(): Promise; getTranscriptArchiveDownloadUrl(): { url: string; apiKey: string; }; respondToElicitation(requestId: string, actionType: ElicitationActionType, content?: Record): Promise; } /** * Implementation of the Agent Orchestrator API client. */ export declare class AgentOrchestratorClient implements IAgentOrchestratorClient { private baseUrl; private apiKey; private timeoutMs; constructor(baseUrl: string, apiKey: string, timeoutMs?: number); private request; /** * Like request(), but reads the response as text and wraps it in a TranscriptResponse. * Used for API endpoints that return raw text instead of JSON (e.g., transcript with format=text). */ private requestText; listSessions(options?: { status?: SessionStatus; agent_runtime?: string; show_archived?: boolean; page?: number; per_page?: number; }): Promise; searchSessions(query: string, options?: { status?: SessionStatus; agent_runtime?: string; show_archived?: boolean; page?: number; per_page?: number; }): Promise; getSession(id: string | number, includeTranscript?: boolean): Promise; createSession(data: CreateSessionRequest): Promise; updateSession(id: string | number, data: UpdateSessionRequest): Promise; deleteSession(id: string | number): Promise; archiveSession(id: string | number): Promise; unarchiveSession(id: string | number): Promise; followUp(id: string | number, prompt: string, options?: { force_immediate?: boolean; goal?: string; }): Promise; pauseSession(id: string | number): Promise; sleepSession(id: string | number): Promise; restartSession(id: string | number): Promise; changeMcpServers(id: string | number, mcp_servers: string[]): Promise; changeModel(id: string | number, model: string): Promise; setHeartbeat(id: string | number, options: { enabled?: boolean; interval_seconds?: number; }): Promise; listLogs(sessionId: string | number, options?: { level?: LogLevel; page?: number; per_page?: number; }): Promise; getLog(sessionId: string | number, logId: number): Promise; createLog(sessionId: string | number, data: CreateLogRequest): Promise; updateLog(sessionId: string | number, logId: number, data: UpdateLogRequest): Promise; deleteLog(sessionId: string | number, logId: number): Promise; listSubagentTranscripts(sessionId: string | number, options?: { status?: SubagentStatus; subagent_type?: string; page?: number; per_page?: number; }): Promise; getSubagentTranscript(sessionId: string | number, transcriptId: number, includeTranscript?: boolean): Promise; createSubagentTranscript(sessionId: string | number, data: CreateSubagentTranscriptRequest): Promise; updateSubagentTranscript(sessionId: string | number, transcriptId: number, data: UpdateSubagentTranscriptRequest): Promise; deleteSubagentTranscript(sessionId: string | number, transcriptId: number): Promise; getMcpServers(): Promise; getConfigs(): Promise; sendPushNotification(sessionId: string | number, message: string): Promise; forkSession(id: string | number, messageIndex: number): Promise; refreshSession(id: string | number): Promise; refreshAllSessions(): Promise; updateSessionNotes(id: string | number, notes: string): Promise; toggleFavorite(id: string | number): Promise; bulkArchiveSessions(sessionIds: number[]): Promise; getTranscript(id: string | number, format?: 'text' | 'json'): Promise; listEnqueuedMessages(sessionId: string | number, options?: { status?: EnqueuedMessageStatus; page?: number; per_page?: number; }): Promise; getEnqueuedMessage(sessionId: string | number, messageId: number): Promise; createEnqueuedMessage(sessionId: string | number, data: { content: string; goal?: string; }): Promise; updateEnqueuedMessage(sessionId: string | number, messageId: number, data: { content?: string; goal?: string; }): Promise; deleteEnqueuedMessage(sessionId: string | number, messageId: number): Promise; reorderEnqueuedMessage(sessionId: string | number, messageId: number, position: number): Promise; interruptEnqueuedMessage(sessionId: string | number, messageId: number): Promise; listCategories(): Promise; createCategory(data: CreateCategoryRequest): Promise; updateCategory(id: number, data: UpdateCategoryRequest): Promise; deleteCategory(id: number): Promise; reorderCategories(ids: Array): Promise; setSessionCategory(sessionId: string | number, categoryId: number | null): Promise; listTriggers(options?: { trigger_type?: TriggerType; status?: TriggerStatus; page?: number; per_page?: number; }): Promise; getTrigger(id: number): Promise; createTrigger(data: CreateTriggerRequest): Promise; updateTrigger(id: number, data: UpdateTriggerRequest): Promise; /** * Builds the trigger_conditions_attributes for an update expressed with the * ergonomic top-level `trigger_type` + `configuration` shape. Fetches the * trigger to reuse the matching existing condition's id (so the condition is * updated in place rather than duplicated). */ private resolveUpdatedTriggerConditions; deleteTrigger(id: number): Promise; toggleTrigger(id: number): Promise; getTriggerChannels(): Promise; listNotifications(options?: { status?: string; page?: number; per_page?: number; }): Promise; getNotification(id: number): Promise; getNotificationBadge(): Promise; markNotificationRead(id: number): Promise; markAllNotificationsRead(): Promise; dismissNotification(id: number): Promise; dismissAllReadNotifications(): Promise; getHealth(): Promise; cleanupProcesses(): Promise; retrySessions(sessionIds?: number[]): Promise; archiveOldSessions(days?: number): Promise; getCliStatus(): Promise; refreshCli(): Promise; clearCliCache(): Promise; getTranscriptArchiveStatus(): Promise; getTranscriptArchiveDownloadUrl(): { url: string; apiKey: string; }; respondToElicitation(requestId: string, actionType: ElicitationActionType, content?: Record): Promise; } //# sourceMappingURL=orchestrator-client.d.ts.map