UNPKG

@inworld/web-core

Version:
71 lines (70 loc) 3.16 kB
import { CapabilitiesConfiguration } from '../../proto/ai/inworld/engine/configuration/configuration.pb.js'; import { ClientRequest } from '../../proto/ai/inworld/engine/world-engine.pb.js'; import { InworldPacket as ProtoPacket } from '../../proto/ai/inworld/packets/packets.pb.js'; import { Awaitable, InternalClientConfiguration, LoadedScene, User } from '../common/data_structures/index.js'; import { Extension } from '../common/data_structures/extension.js'; import { HistoryItem } from '../common/data_structures/history.js'; import { SessionContinuation } from '../entities/continuation/session_continuation.entity.js'; import { InworldError } from '../entities/error.entity.js'; import { InworldPacket } from '../entities/packets/inworld_packet.entity.js'; import { SessionToken } from '../entities/session_token.entity.js'; import { EventFactory } from '../factories/event.js'; interface OpenSessionProps { name: string; client?: ClientRequest; user?: User; session: SessionToken; sessionContinuation?: SessionContinuation; } interface UpdateSessionProps { name?: string; gameSessionId?: string; capabilities?: CapabilitiesConfiguration; sessionContinuation?: SessionContinuation; } interface ConnectionProps<InworldPacketT extends InworldPacket = InworldPacket, HistoryItemT extends HistoryItem = HistoryItem> { config?: InternalClientConfiguration; onDisconnect: () => Awaitable<void>; onReady: () => Awaitable<void>; onError: (err: InworldError) => Awaitable<void>; onMessage: (packet: ProtoPacket) => Awaitable<void>; extension: Extension<InworldPacketT, HistoryItemT>; eventFactory: EventFactory; } export interface QueueItem<InworldPacketT> { getPacket: () => ProtoPacket; afterWriting?: (packet: InworldPacketT) => void; beforeWriting?: (packet: InworldPacketT) => Promise<void>; convertPacket?: (packet: ProtoPacket) => ProtoPacket; } export interface Connection<InworldPacketT> { close(): Promise<void>; isActive: () => boolean; openSession(props: OpenSessionProps): Promise<LoadedScene>; reopenSession(session: SessionToken): Promise<void>; updateSession(props: UpdateSessionProps): Promise<LoadedScene>; write(item: QueueItem<InworldPacketT>): void; } export declare class WebSocketConnection<InworldPacketT extends InworldPacket = InworldPacket, HistoryItemT extends HistoryItem = HistoryItem> implements Connection<InworldPacketT> { private connectionProps; private ws; private extension; private onMessage; private onError; constructor(props: ConnectionProps<InworldPacketT, HistoryItemT>); isActive(): boolean; openSession(props: OpenSessionProps): Promise<LoadedScene>; reopenSession(session: SessionToken): Promise<void>; updateSession(props: UpdateSessionProps): Promise<LoadedScene>; close(): Promise<void>; write(item: QueueItem<InworldPacketT>): Promise<void>; private combineWebSocket; private parseEvent; private onLoad; private getPackets; private getClient; private getUserConfiguration; private getUserId; private getContinuation; } export {};