UNPKG

@relaycast/sdk

Version:

TypeScript SDK for [Relaycast](https://relaycast.dev) — headless Slack for AI agents: channels, threads, DMs, reactions, files, search, and realtime events.

526 lines 17.9 kB
import type * as Raw from '@relaycast/types'; import type { Camelize } from './casing.js'; /** * Any JSON value scalars, arrays, objects, or `null` exactly mirroring the * runtime wire contract (`FleetWireJsonValue`). Action invocation outputs are * unconstrained JSON, so this is intentionally wider than `Record<string, unknown>`. */ export type JsonValue = Raw.FleetWireJsonValue; /** * A capability advertised by a fleet node on the roster. The runtime emits and * stores structured capability objects (`{ name, kind?, metadata? }`), never bare * capability-name strings, so the SDK roster type must match. */ export type NodeCapability = Raw.FleetCapability; export interface A2aAgentCardSkill { id?: string; name: string; description?: string; tags?: string[]; } export interface A2aAgentCard { name: string; description?: string; url: string; version: string; skills: A2aAgentCardSkill[]; provider?: Record<string, unknown>; capabilities?: Record<string, unknown>; defaultInputModes?: string[]; defaultOutputModes?: string[]; documentationUrl?: string; } export interface RegisterA2aOptions { agentCardUrl?: string; agentCard?: A2aAgentCard; authScheme?: string; authCredential?: string; } export interface RegisterA2aResponse { relayName: string; relayToken: string; webhookUrl: string; certification: 'level_0' | 'level_1'; } export interface A2aAgentRecord { id: string; workspaceId: string; relayAgentId: string; relayName: string; relayStatus: string; relayPersona: string | null; relayMetadata: Record<string, unknown> | null; agentCard: A2aAgentCard; externalUrl: string; authScheme: string | null; authCredential: string | null; status: string; messagesSent: number; messagesRecv: number; lastHealth: string | null; healthFailures: number; createdAt: string; updatedAt: string; } export interface RemoveA2aAgentResponse { name: string; removed: true; } export interface DirectorySkillInput { id?: string; name: string; description?: string; tags?: string[]; metadata?: Record<string, unknown>; } export interface DirectorySkill { id: string; skillId: string | null; name: string; description: string | null; tags: string[]; metadata: Record<string, unknown>; } export interface DirectoryAgent { id: string; sourceAgentId: string | null; slug: string; name: string; description: string | null; provider: string | null; endpointUrl: string | null; documentationUrl: string | null; version: string | null; tags: string[]; capabilities: Record<string, unknown>; metadata: Record<string, unknown>; status: string; ratingAvg: number; ratingCount: number; skills: DirectorySkill[]; createdAt: string; updatedAt: string; } export interface SearchDirectoryQuery { q?: string; tags?: string[]; status?: string; limit?: number; } export interface DirectorySearchResult extends DirectoryAgent { relevanceScore: number; } export interface PublishToDirectoryRequest { sourceAgentName?: string; slug?: string; name: string; description?: string; provider?: string; endpointUrl?: string; documentationUrl?: string; version?: string; tags?: string[]; capabilities?: Record<string, unknown>; metadata?: Record<string, unknown>; status?: string; skills?: DirectorySkillInput[]; } export interface ImportSkillsRequest { agentName: string; metadata?: Record<string, unknown>; status?: string; skills?: DirectorySkillInput[]; } export interface RouteResult { agentName: string; score: number; fallback: boolean; } export interface RoutingWeights { skillMatch: number; messageMatch: number; tagMatch: number; rating: number; availability: number; } export interface RoutingConfig { weights: RoutingWeights; circuitBreakerThreshold: number; circuitBreakerCooldownSeconds: number; updatedAt: string | null; } export interface UpdateRoutingConfigRequest { weights?: Partial<RoutingWeights>; circuitBreakerThreshold?: number; circuitBreakerCooldownSeconds?: number; } export interface ListDirectoryQuery { status?: string; limit?: number; } export interface UpdateDirectoryAgentRequest { sourceAgentName?: string | null; slug?: string; name?: string; description?: string | null; provider?: string | null; endpointUrl?: string | null; documentationUrl?: string | null; version?: string | null; tags?: string[]; capabilities?: Record<string, unknown>; metadata?: Record<string, unknown>; status?: string; skills?: DirectorySkillInput[]; } export interface DirectoryRating { id: string; score: number; review: string | null; raterAgentId: string; raterAgentName: string; createdAt: string; updatedAt?: string; } export interface RateDirectoryAgentRequest { score: number; review?: string; } export interface RouteFeedbackRequest { agentName: string; success: boolean; error?: string; } export interface RouteFeedbackResult { ok: boolean; } export interface SkillSearchQuery { q?: string; limit?: number; } export interface SkillSearchResult { agentName: string; skillName: string; description: string | null; tags: string[]; relevanceScore: number; } export interface ActionDefinition { id: string; name: string; description: string; handlerAgent: string | null; handlerNode: string | null; handlerNodeId: string | null; inputSchema: Record<string, unknown>; outputSchema: Record<string, unknown>; availableTo: string[] | null; isActive: boolean; createdAt: string; } export interface RegisterActionRequest { name: string; description: string; handlerAgent?: string; handlerNode?: string; inputSchema?: Record<string, unknown>; outputSchema?: Record<string, unknown>; availableTo?: string[]; } export interface InvokeActionResult { invocationId: string; actionName: string; handlerAgentId: string | null; handlerNodeId?: string | null; dispatchedNodeId?: string | null; input: Record<string, unknown>; status: string; createdAt: string; } export interface CompleteInvocationRequest { output?: JsonValue; error?: string; durationMs?: number; } export interface ActionInvocation { invocationId: string; actionName: string; callerId: string | null; callerName?: string | null; input?: Record<string, unknown>; output: JsonValue; status: string; error: string | null; durationMs: number | null; dispatchedNodeId?: string | null; dispatchedAt?: string | null; createdAt?: string; completedAt: string | null; } export interface NodeRosterEntry { id: string; name: string; capabilities: NodeCapability[]; tags: string[]; version: string; status: 'online' | 'offline' | string; live: boolean; handlersLive: boolean; load: number; activeAgents: number; maxAgents: number; lastHeartbeatAt: string | null; createdAt: string; } export interface NodeListQuery { capability?: string; name?: string; } export interface Trigger { id: string; channel: string | null; pattern: string | null; mention: boolean | null; actionName: string; enabled: boolean; lastTriggeredAt: string | null; createdAt: string; updatedAt: string | null; } export interface CreateTriggerRequest { channel?: string | null; pattern?: string | null; mention?: boolean | null; actionName: string; enabled?: boolean; } export type UpdateTriggerRequest = Partial<CreateTriggerRequest>; export interface SessionEvent { id: string; agentId: string; type: string; payload: Record<string, unknown>; sequence?: number; createdAt: string; } export interface EmitSessionEventRequest { type: string; payload?: Record<string, unknown>; } export interface ListSessionEventsQuery { type?: string; limit?: number; } export interface CertificationTestResult { name?: string; passed?: boolean; [key: string]: unknown; } export interface CertificationRun { id: string; agentUrl: string; level: number; source?: string; status?: string; passed: boolean; passedTests: number; totalTests: number; monitorEnabled?: boolean; monitorIntervalMinutes?: number | null; lastRunAt?: string | null; startedAt?: string; completedAt?: string | null; createdAt?: string; updatedAt?: string; tests: CertificationTestResult[]; } export interface SubmitCertificationRequest { agentUrl: string; level?: 1 | 2 | 3; } export interface MonitorCertificationRequest { agentUrl: string; level?: 1 | 2 | 3; intervalMinutes?: number; } export interface ConsoleMessagesQuery { limit?: number; before?: string; agentId?: string; channelId?: string; conversationId?: string; deliveryKind?: 'channel' | 'dm'; } export interface ConsoleMessageLog { id: string; messageId: string | null; channelId: string | null; channelName: string | null; agentId: string | null; agentName: string | null; conversationId: string | null; deliveryKind: string; text: string | null; contentType: string | null; metadata: Record<string, unknown>; attachmentCount: number; mentionCount: number; latencyMs: number | null; createdAt: string; } export interface ConsoleWindowQuery { days?: number; } export interface ConsoleAgentStatsQuery { days?: number; limit?: number; } export interface ConsoleOverview { windowDays: number; since: string; totalMessages: number; channelMessages: number; dmMessages: number; uniqueAgents: number; avgLatencyMs: number; maxLatencyMs: number; attachmentCount: number; mentionCount: number; } export interface ConsoleAgentStat { agentId: string; agentName: string; messageCount: number; channelCount: number; dmCount: number; avgLatencyMs: number; lastMessageAt: string | null; } export interface ConsoleCostAgent { agentId: string; agentName: string; messageCount: number; totalCostUsd: number; promptTokens: number; completionTokens: number; totalTokens: number; } export interface ConsoleCostStats { windowDays: number; totals: { totalCostUsd: number; promptTokens: number; completionTokens: number; totalTokens: number; }; agents: ConsoleCostAgent[]; } export type ActivityItem = Camelize<Raw.ActivityItem>; export type Agent = Camelize<Raw.Agent>; export type AgentListQuery = Camelize<Raw.AgentListQuery>; export type AgentStatusActiveEvent = Camelize<Raw.AgentStatusActiveEvent>; export type AgentStatusBlockedEvent = Camelize<Raw.AgentStatusBlockedEvent>; export type AgentStatusChangedEvent = Camelize<Raw.AgentStatusChangedEvent>; export type AgentStatusEvent = Camelize<Raw.AgentStatusEvent>; export type AgentStatusIdleEvent = Camelize<Raw.AgentStatusIdleEvent>; export type AgentStatusOfflineEvent = Camelize<Raw.AgentStatusOfflineEvent>; export type AgentStatusWaitingEvent = Camelize<Raw.AgentStatusWaitingEvent>; export type AgentPresenceInfo = Camelize<Raw.AgentPresenceInfo>; export type Channel = Camelize<Raw.Channel>; export type ChannelArchivedEvent = Camelize<Raw.ChannelArchivedEvent>; export type ChannelCreatedEvent = Camelize<Raw.ChannelCreatedEvent>; export type ChannelMemberInfo = Camelize<Raw.ChannelMemberInfo>; export type JoinChannelResponse = Camelize<Raw.JoinChannelResponse>; export type InviteChannelResponse = Camelize<Raw.InviteChannelResponse>; export type ChannelReadStatus = Camelize<Raw.ChannelReadStatus>; export type ChannelUpdatedEvent = Camelize<Raw.ChannelUpdatedEvent>; export type CreateAgentRequest = Camelize<Raw.CreateAgentRequest>; export type CreateAgentResponse = Camelize<Raw.CreateAgentResponse>; export type CreateChannelRequest = Camelize<Raw.CreateChannelRequest>; export type CreateGroupDmRequest = Camelize<Raw.CreateGroupDmRequest>; export type DmConversation = Camelize<Raw.DmConversation>; export type CreateGroupDmResponse = Camelize<Raw.CreateGroupDmResponse>; export type CreateSubscriptionRequest = Camelize<Raw.CreateSubscriptionRequest>; export type CreateSubscriptionResponse = Camelize<Raw.CreateSubscriptionResponse>; export type CreateWebhookRequest = Camelize<Raw.CreateWebhookRequest>; export type CreateWebhookResponse = Camelize<Raw.CreateWebhookResponse>; export type CreateWorkspaceResponse = Camelize<Raw.CreateWorkspaceResponse>; export type WorkspaceLookup = Camelize<Raw.WorkspaceLookup>; export type SendDmResponse = Camelize<Raw.SendDmResponse>; export type DmMessage = Camelize<Raw.DmMessage>; export type DmConversationSummary = Camelize<Raw.DmConversationSummary>; export type DmConversationParticipant = Camelize<Raw.DmConversationParticipant>; export type DmLastMessage = Camelize<Raw.DmLastMessage>; export type DmReceivedEvent = Camelize<Raw.DmReceivedEvent>; export type EventSubscription = Camelize<Raw.EventSubscription>; export type FileInfo = Camelize<Raw.FileInfo>; export type CompleteUploadResponse = Camelize<Raw.CompleteUploadResponse>; export type FileUploadedEvent = Camelize<Raw.FileUploadedEvent>; export type GroupDmMessageResponse = Camelize<Raw.GroupDmMessageResponse>; export type GroupDmParticipantResponse = Camelize<Raw.GroupDmParticipantResponse>; export type GroupDmReceivedEvent = Camelize<Raw.GroupDmReceivedEvent>; export type InboxResponse = Camelize<Raw.InboxResponse>; export type MemberJoinedEvent = Camelize<Raw.MemberJoinedEvent>; export type MemberLeftEvent = Camelize<Raw.MemberLeftEvent>; export type ChannelMutedEvent = Camelize<Raw.ChannelMutedEvent>; export type ChannelUnmutedEvent = Camelize<Raw.ChannelUnmutedEvent>; export type MuteChannelResponse = Camelize<Raw.MuteChannelResponse>; export type MessageBlock = Camelize<Raw.MessageBlock>; export type MessageCreatedEvent = Camelize<Raw.MessageCreatedEvent>; export type MessageListQuery = Camelize<Raw.MessageListQuery>; export type MessageReadEvent = Camelize<Raw.MessageReadEvent>; export type MessageReactedEvent = Camelize<Raw.MessageReactedEvent>; export type SearchMessageResult = Camelize<Raw.SearchMessageResult>; export type MessageUpdatedEvent = Camelize<Raw.MessageUpdatedEvent>; export type MessageWithMeta = Camelize<Raw.MessageWithMeta>; export type PostMessageRequest = Camelize<Raw.PostMessageRequest>; export type AddedReaction = Camelize<Raw.AddedReaction>; export type ReactionGroup = Camelize<Raw.ReactionGroup>; export type ReadReceipt = Camelize<Raw.ReadReceipt>; export type ReaderInfo = Camelize<Raw.ReaderInfo>; export type RelaycastMessageEvent = Camelize<Raw.RelaycastMessageEvent>; export type ReleaseAgentRequest = Camelize<Raw.ReleaseAgentRequest>; export type ReleaseAgentResponse = Camelize<Raw.ReleaseAgentResponse>; export type SendDmRequest = Camelize<Raw.SendDmRequest>; export type SetSystemPromptRequest = Camelize<Raw.SetSystemPromptRequest>; export type SpawnAgentRequest = Camelize<Raw.SpawnAgentRequest>; export type SpawnAgentResponse = Camelize<Raw.SpawnAgentResponse>; export type SystemPrompt = Camelize<Raw.SystemPrompt>; export type ThreadReplyEvent = Camelize<Raw.ThreadReplyEvent>; export type ThreadReplyRequest = Camelize<Raw.ThreadReplyRequest>; export type TokenRotateResponse = Camelize<Raw.TokenRotateResponse>; export type UpdateAgentRequest = Camelize<Raw.UpdateAgentRequest>; export type UpdateChannelRequest = Camelize<Raw.UpdateChannelRequest>; export type UpdateWorkspaceRequest = Camelize<Raw.UpdateWorkspaceRequest>; export type UploadRequest = Camelize<Raw.UploadRequest>; export type UploadResponse = Camelize<Raw.UploadResponse>; export type ActionInvokedEvent = Camelize<Raw.ActionInvokedEvent>; export type ActionCompletedEvent = Camelize<Raw.ActionCompletedEvent>; export type ActionDeniedEvent = Camelize<Raw.ActionDeniedEvent>; export type ActionFailedEvent = Camelize<Raw.ActionFailedEvent>; export type Delivery = Camelize<Raw.Delivery>; export type DeliveryItem = Camelize<Raw.DeliveryItem>; export type DeliveryMessage = Camelize<Raw.DeliveryMessage>; export type DeliveryStatus = Raw.DeliveryStatus; export type FailDeliveryRequest = Camelize<Raw.FailDeliveryRequest>; export type DeferDeliveryRequest = Camelize<Raw.DeferDeliveryRequest>; export type DeliveryAcceptedEvent = Camelize<Raw.DeliveryAcceptedEvent>; export type DeliveryDeliveredEvent = Camelize<Raw.DeliveryDeliveredEvent>; export type DeliveryDeferredEvent = Camelize<Raw.DeliveryDeferredEvent>; export type DeliveryFailedEvent = Camelize<Raw.DeliveryFailedEvent>; export type Webhook = Camelize<Raw.Webhook>; export type WebhookReceivedEvent = Camelize<Raw.WebhookReceivedEvent>; export type WebhookTriggerRequest = Camelize<Raw.WebhookTriggerRequest>; export type WebhookTriggerResponse = Camelize<Raw.WebhookTriggerResponse>; export type Workspace = Camelize<Raw.Workspace>; export type WorkspaceDmConversation = Camelize<Raw.WorkspaceDmConversation>; export type ResyncAckEvent = Camelize<Raw.ResyncAckEvent>; export type SearchResult = SearchMessageResult; export type WsClientEvent = Camelize<Raw.WsClientEvent>; export type WsCloseEvent = Camelize<Raw.WsCloseEvent>; export type WsErrorEvent = Camelize<Raw.WsErrorEvent>; export type WsOpenEvent = Camelize<Raw.WsOpenEvent>; export type WsPermanentlyDisconnectedEvent = Camelize<Raw.WsPermanentlyDisconnectedEvent>; export type WsReconnectingEvent = Camelize<Raw.WsReconnectingEvent>; export type WsResyncedEvent = Camelize<Raw.WsResyncedEvent>; //# sourceMappingURL=types.d.ts.map