@meshagent/meshagent-agents 0.47.1 → 0.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,12 @@
1
1
  import { MessagingStream, RemoteParticipant } from "@meshagent/meshagent";
2
2
  import type { RoomClient, Content } from "@meshagent/meshagent";
3
- import { AgentMessage, AgentModelChanged, AgentThreadStatus, ModelsResponse, ToolChoice, AgentConnectionStatus, AgentClientToolCallRequested } from "./agent-messages.js";
4
- import type { AgentPayload, JsonMap, ClientToolkitDescription } from "./agent-messages.js";
3
+ import { AgentMessage, AgentFileContent, ThreadCreated, AgentConnectionStatus } from "./agent-messages.js";
4
+ import type { AgentPayload, ClientToolkitDescription } from "./agent-messages.js";
5
5
  import { ChangeEmitter } from "./change-emitter.js";
6
+ type JsonMap = Record<string, any>;
6
7
  export declare class AgentMessageEvent {
7
- readonly message: AgentMessage;
8
+ private messageValue;
9
+ private readonly listeners;
8
10
  readonly createdAt: Date;
9
11
  readonly attachment?: Uint8Array;
10
12
  constructor({ message, createdAt, attachment }: {
@@ -12,7 +14,11 @@ export declare class AgentMessageEvent {
12
14
  createdAt?: Date;
13
15
  attachment?: Uint8Array;
14
16
  });
17
+ get message(): AgentMessage;
15
18
  get payload(): AgentPayload;
19
+ addEventListener(listener: () => void): void;
20
+ removeEventListener(listener: () => void): void;
21
+ replaceMessage(message: AgentMessage): void;
16
22
  }
17
23
  export declare class PendingAgentInput {
18
24
  readonly messageId: string;
@@ -77,12 +83,28 @@ export declare class ChatThreadStartResult {
77
83
  realtimeConnection?: JsonMap;
78
84
  });
79
85
  }
86
+ export declare class PendingThreadStartCandidate {
87
+ readonly messageId: string;
88
+ readonly senderName?: string;
89
+ constructor({ messageId, senderName }: {
90
+ messageId: string;
91
+ senderName: string | undefined;
92
+ });
93
+ }
94
+ export type ThreadCreatedPendingStartMatcher = (message: InstanceType<typeof ThreadCreated>, candidates: PendingThreadStartCandidate[]) => string | undefined;
80
95
  export declare abstract class BaseChatClient extends ChangeEmitter {
96
+ readonly threadCreatedPendingStartMatcher?: ThreadCreatedPendingStartMatcher;
97
+ readonly deduplicateClientToolRequests: boolean;
81
98
  private readonly sessionsByPath;
82
99
  private readonly pendingStartRequests;
83
100
  private readonly pendingSessionEventsByPath;
84
101
  private readonly eventQueue;
102
+ private readonly claimedClientToolRequests;
85
103
  private _connectionStatus?;
104
+ constructor({ threadCreatedPendingStartMatcher, deduplicateClientToolRequests, }?: {
105
+ threadCreatedPendingStartMatcher?: ThreadCreatedPendingStartMatcher;
106
+ deduplicateClientToolRequests?: boolean;
107
+ });
86
108
  get events(): AsyncIterable<AgentMessageEvent>;
87
109
  get connectionStatus(): InstanceType<typeof AgentConnectionStatus> | undefined;
88
110
  get sessions(): ChatThreadSession[];
@@ -91,19 +113,17 @@ export declare abstract class BaseChatClient extends ChangeEmitter {
91
113
  agentParticipant(): RemoteParticipant | null;
92
114
  localParticipantName(): string | undefined;
93
115
  localParticipantId(): string | undefined;
94
- isClientToolCallForLocalParticipant(request: InstanceType<typeof AgentClientToolCallRequested>): boolean;
95
- protected cleanParticipantName(value: string | undefined): string | undefined;
96
- openThread(threadPath: string, { load, sinceTurn, reloadIfOpen, drainPendingEvents, }?: {
116
+ private clientToolRequestKey;
117
+ openThread(threadPath: string, { load, sinceTurn, reloadIfOpen, }?: {
97
118
  load?: boolean;
98
119
  sinceTurn?: string;
99
120
  reloadIfOpen?: boolean;
100
- drainPendingEvents?: boolean;
101
121
  }): ChatThreadSession;
102
122
  private openSession;
103
- startThread({ messageId, message, attachments, name, backend, provider, model, voice, outputModalities, realtimeProtocol, senderName, clientToolkits, toolChoice, omitContent, }: {
123
+ startThread({ messageId, message, attachments, name, backend, provider, model, voice, outputModalities, realtimeProtocol, senderName, clientToolkits, omitContent, }: {
104
124
  messageId?: string;
105
125
  message: string;
106
- attachments: string[];
126
+ attachments: AgentFileContent[];
107
127
  name?: string;
108
128
  backend?: string;
109
129
  provider?: string;
@@ -113,7 +133,6 @@ export declare abstract class BaseChatClient extends ChangeEmitter {
113
133
  realtimeProtocol?: string;
114
134
  senderName?: string;
115
135
  clientToolkits?: ClientToolkitDescription[];
116
- toolChoice?: ToolChoice;
117
136
  omitContent?: boolean;
118
137
  }): Promise<ChatThreadStartResult>;
119
138
  private resolvedStartThreadMessage;
@@ -125,6 +144,7 @@ export declare abstract class BaseChatClient extends ChangeEmitter {
125
144
  createdAt?: Date;
126
145
  attachment?: Uint8Array;
127
146
  }): void;
147
+ private acknowledgePendingStartFromThreadCreated;
128
148
  emitConnectionStatus({ status, message, reason, retryDelay, }: {
129
149
  status: string;
130
150
  message?: string;
@@ -166,9 +186,11 @@ export declare class BaseMessagingChatClient extends BaseChatClient {
166
186
  private waitingForParticipant;
167
187
  private roomAbortController?;
168
188
  private messagingListenersAttached;
169
- constructor({ room, agentName }: {
189
+ constructor({ room, agentName, threadCreatedPendingStartMatcher, deduplicateClientToolRequests, }: {
170
190
  room: RoomClient;
171
191
  agentName?: string;
192
+ threadCreatedPendingStartMatcher?: ThreadCreatedPendingStartMatcher;
193
+ deduplicateClientToolRequests?: boolean;
172
194
  });
173
195
  localParticipantName(): string | undefined;
174
196
  localParticipantId(): string | undefined;
@@ -177,8 +199,10 @@ export declare class BaseMessagingChatClient extends BaseChatClient {
177
199
  private attachMessagingListeners;
178
200
  private detachMessagingListeners;
179
201
  agentParticipant(): RemoteParticipant | null;
180
- waitForAgentParticipant({ waitKey }?: {
202
+ waitForAgentParticipant({ waitKey, signal, timeoutMs, }?: {
181
203
  waitKey?: string;
204
+ signal?: AbortSignal;
205
+ timeoutMs?: number;
182
206
  }): Promise<RemoteParticipant>;
183
207
  sendAgentMessage(message: AgentMessage, { attachment }?: {
184
208
  attachment?: Uint8Array;
@@ -190,6 +214,52 @@ export declare class BaseMessagingChatClient extends BaseChatClient {
190
214
  private reopenOpenSessions;
191
215
  private readonly onMessagingMessage;
192
216
  }
217
+ export declare class WebSocketChatClient extends BaseChatClient {
218
+ readonly url: URL;
219
+ readonly token: string;
220
+ readonly participantName?: string;
221
+ readonly protocols: string[];
222
+ readonly reconnect: boolean;
223
+ readonly reconnectInitialDelay: number;
224
+ readonly reconnectMaxDelay: number;
225
+ private webSocket?;
226
+ private receiveError?;
227
+ private closeCode?;
228
+ private closeReason?;
229
+ private started;
230
+ private stopping;
231
+ private connecting;
232
+ private reconnectAttempts;
233
+ private reconnectTimer?;
234
+ private assignedParticipantId?;
235
+ constructor({ url, token, participantName, protocols, reconnect, reconnectInitialDelay, reconnectMaxDelay, }: {
236
+ url: URL;
237
+ token: string;
238
+ participantName?: string;
239
+ protocols?: string[];
240
+ reconnect?: boolean;
241
+ reconnectInitialDelay?: number;
242
+ reconnectMaxDelay?: number;
243
+ });
244
+ get isConnected(): boolean;
245
+ localParticipantName(): string | undefined;
246
+ localParticipantId(): string | undefined;
247
+ start(): Promise<void>;
248
+ private connect;
249
+ stop(): Promise<void>;
250
+ sendAgentMessage(message: AgentMessage, { attachment }?: {
251
+ attachment?: Uint8Array;
252
+ }): Promise<void>;
253
+ private readonly onMessage;
254
+ private readonly onSocketError;
255
+ private readonly onSocketClose;
256
+ private detachSocketListeners;
257
+ private scheduleReconnect;
258
+ private nextReconnectDelay;
259
+ private reopenOpenSessions;
260
+ private resolvedProtocols;
261
+ private closedMessage;
262
+ }
193
263
  export declare class MessagingChatClient extends BaseMessagingChatClient {
194
264
  private readonly threadSubscriptions;
195
265
  private threadListSubscription?;
@@ -215,26 +285,15 @@ export declare class ChatThreadSession extends ChangeEmitter {
215
285
  private openState;
216
286
  private loadStateValue;
217
287
  private lastCompletedTurnIdValue?;
218
- private activeTurnIdValue?;
219
- private threadStatusValue?;
220
- private currentModelValue?;
221
- private modelsResponseValue?;
222
288
  private lastAgentMessageType?;
223
289
  private lastAgentMessageAt?;
224
- constructor({ client, threadPath }: {
225
- client: BaseChatClient;
226
- threadPath: string;
227
- });
290
+ private constructor();
228
291
  get messages(): AgentMessageEvent[];
229
292
  get pendingInputs(): PendingAgentInput[];
230
293
  get isOpen(): boolean;
231
294
  get loadState(): ChatThreadSessionLoadState;
232
295
  get isLoading(): boolean;
233
296
  get lastCompletedTurnId(): string | undefined;
234
- get activeTurnId(): string | undefined;
235
- get threadStatus(): InstanceType<typeof AgentThreadStatus> | undefined;
236
- get currentModel(): InstanceType<typeof AgentModelChanged> | undefined;
237
- get modelsResponse(): InstanceType<typeof ModelsResponse> | undefined;
238
297
  open({ load, sinceTurn }?: {
239
298
  load?: boolean;
240
299
  sinceTurn?: string;
@@ -254,10 +313,15 @@ export declare class ChatThreadSession extends ChangeEmitter {
254
313
  requestId: string;
255
314
  response: Content;
256
315
  }): Promise<void>;
257
- sendText({ messageId, text, attachments, steer, turnId, backend, provider, model, voice, outputModalities, senderName, clientToolkits, toolChoice, }: {
316
+ claimClientToolCall(requestId: string): boolean;
317
+ finishClientToolCall(requestId: string, { responseSent }: {
318
+ responseSent: boolean;
319
+ }): void;
320
+ injectMessages(messages: readonly AgentMessage[]): Promise<void>;
321
+ sendText({ messageId, text, attachments, steer, turnId, backend, provider, model, voice, outputModalities, senderName, clientToolkits, }: {
258
322
  messageId?: string;
259
323
  text: string;
260
- attachments: string[];
324
+ attachments: AgentFileContent[];
261
325
  steer?: boolean;
262
326
  turnId?: string;
263
327
  backend?: string;
@@ -267,14 +331,14 @@ export declare class ChatThreadSession extends ChangeEmitter {
267
331
  outputModalities?: string[];
268
332
  senderName?: string;
269
333
  clientToolkits?: ClientToolkitDescription[];
270
- toolChoice?: ToolChoice;
271
334
  }): Promise<string>;
272
335
  sendRealtimeAudioChunk({ chunk, format }: {
273
336
  chunk: Uint8Array;
274
337
  format: JsonMap;
275
338
  }): Promise<void>;
276
- commitRealtimeAudio({ turnId, provider, model, voice, outputModalities, }: {
339
+ commitRealtimeAudio({ turnId, backend, provider, model, voice, outputModalities, }: {
277
340
  turnId: string;
341
+ backend?: string;
278
342
  provider?: string;
279
343
  model?: string;
280
344
  voice?: string;
@@ -287,16 +351,12 @@ export declare class ChatThreadSession extends ChangeEmitter {
287
351
  private updatePendingInputsForMessage;
288
352
  private appendRenderableMessage;
289
353
  private appendMessage;
290
- private upsertItemMessage;
291
354
  private appendOrMergeDelta;
292
355
  private indexMessagesFrom;
293
- private applyActiveModel;
294
- markClosed({ notify }?: {
295
- notify?: boolean;
296
- }): void;
297
356
  private loadingStateForOpen;
298
357
  private failedLoadState;
299
358
  private setLoadState;
300
359
  private markPending;
301
360
  private updatePending;
302
361
  }
362
+ export {};