@meshagent/meshagent-agents 0.43.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.
Files changed (55) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/LICENSE +1 -0
  3. package/README.md +206 -0
  4. package/dist/browser/agent-messages.d.ts +343 -0
  5. package/dist/browser/agent-messages.js +1015 -0
  6. package/dist/browser/change-emitter.d.ts +8 -0
  7. package/dist/browser/change-emitter.js +20 -0
  8. package/dist/browser/chat-client.d.ts +225 -0
  9. package/dist/browser/chat-client.js +642 -0
  10. package/dist/browser/images-dataset.d.ts +83 -0
  11. package/dist/browser/images-dataset.js +282 -0
  12. package/dist/browser/index.d.ts +6 -0
  13. package/dist/browser/index.js +22 -0
  14. package/dist/browser/package.json +1 -0
  15. package/dist/browser/room-shell-toolkit.d.ts +14 -0
  16. package/dist/browser/room-shell-toolkit.js +274 -0
  17. package/dist/browser/room-storage-toolkit.d.ts +11 -0
  18. package/dist/browser/room-storage-toolkit.js +513 -0
  19. package/dist/browser/thread-storage.d.ts +102 -0
  20. package/dist/browser/thread-storage.js +476 -0
  21. package/dist/esm/agent-messages.d.ts +343 -0
  22. package/dist/esm/agent-messages.js +989 -0
  23. package/dist/esm/change-emitter.d.ts +8 -0
  24. package/dist/esm/change-emitter.js +16 -0
  25. package/dist/esm/chat-client.d.ts +225 -0
  26. package/dist/esm/chat-client.js +632 -0
  27. package/dist/esm/images-dataset.d.ts +83 -0
  28. package/dist/esm/images-dataset.js +274 -0
  29. package/dist/esm/index.d.ts +6 -0
  30. package/dist/esm/index.js +6 -0
  31. package/dist/esm/package.json +1 -0
  32. package/dist/esm/room-shell-toolkit.d.ts +14 -0
  33. package/dist/esm/room-shell-toolkit.js +270 -0
  34. package/dist/esm/room-storage-toolkit.d.ts +11 -0
  35. package/dist/esm/room-storage-toolkit.js +509 -0
  36. package/dist/esm/thread-storage.d.ts +102 -0
  37. package/dist/esm/thread-storage.js +465 -0
  38. package/dist/node/agent-messages.d.ts +343 -0
  39. package/dist/node/agent-messages.js +1015 -0
  40. package/dist/node/change-emitter.d.ts +8 -0
  41. package/dist/node/change-emitter.js +20 -0
  42. package/dist/node/chat-client.d.ts +225 -0
  43. package/dist/node/chat-client.js +642 -0
  44. package/dist/node/images-dataset.d.ts +83 -0
  45. package/dist/node/images-dataset.js +282 -0
  46. package/dist/node/index.d.ts +6 -0
  47. package/dist/node/index.js +22 -0
  48. package/dist/node/package.json +1 -0
  49. package/dist/node/room-shell-toolkit.d.ts +14 -0
  50. package/dist/node/room-shell-toolkit.js +274 -0
  51. package/dist/node/room-storage-toolkit.d.ts +11 -0
  52. package/dist/node/room-storage-toolkit.js +513 -0
  53. package/dist/node/thread-storage.d.ts +102 -0
  54. package/dist/node/thread-storage.js +476 -0
  55. package/package.json +57 -0
@@ -0,0 +1,8 @@
1
+ type Listener = () => void;
2
+ export declare class ChangeEmitter {
3
+ private readonly listeners;
4
+ addListener(listener: Listener): void;
5
+ removeListener(listener: Listener): void;
6
+ protected notifyListeners(): void;
7
+ }
8
+ export {};
@@ -0,0 +1,16 @@
1
+ export class ChangeEmitter {
2
+ constructor() {
3
+ this.listeners = new Set();
4
+ }
5
+ addListener(listener) {
6
+ this.listeners.add(listener);
7
+ }
8
+ removeListener(listener) {
9
+ this.listeners.delete(listener);
10
+ }
11
+ notifyListeners() {
12
+ for (const listener of [...this.listeners]) {
13
+ listener();
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,225 @@
1
+ import { RemoteParticipant } from "@meshagent/meshagent";
2
+ import type { RoomClient, Content } from "@meshagent/meshagent";
3
+ import { AgentMessage, AgentConnectionStatus } from "./agent-messages.js";
4
+ import type { AgentPayload, JsonMap, ClientToolkitDescription } from "./agent-messages.js";
5
+ import { ChangeEmitter } from "./change-emitter.js";
6
+ export declare class AgentMessageEvent {
7
+ readonly message: AgentMessage;
8
+ readonly attachment?: Uint8Array;
9
+ constructor({ message, attachment }: {
10
+ message: AgentMessage;
11
+ attachment?: Uint8Array;
12
+ });
13
+ get payload(): AgentPayload;
14
+ }
15
+ export declare class PendingAgentInput {
16
+ readonly messageId: string;
17
+ readonly messageType: string;
18
+ readonly threadPath: string;
19
+ readonly payload: AgentMessage;
20
+ readonly createdAt: Date;
21
+ readonly awaitingAcceptance: boolean;
22
+ readonly awaitingApplication: boolean;
23
+ readonly awaitingOnline: boolean;
24
+ constructor({ messageId, messageType, threadPath, payload, createdAt, awaitingAcceptance, awaitingApplication, awaitingOnline, }: {
25
+ messageId: string;
26
+ messageType: string;
27
+ threadPath: string;
28
+ payload: AgentMessage;
29
+ createdAt: Date;
30
+ awaitingAcceptance?: boolean;
31
+ awaitingApplication?: boolean;
32
+ awaitingOnline?: boolean;
33
+ });
34
+ copyWith({ awaitingAcceptance, awaitingApplication, awaitingOnline, }: {
35
+ awaitingAcceptance?: boolean;
36
+ awaitingApplication?: boolean;
37
+ awaitingOnline?: boolean;
38
+ }): PendingAgentInput;
39
+ }
40
+ export declare enum ChatThreadSessionLoadPhase {
41
+ Idle = "idle",
42
+ Loading = "loading",
43
+ Loaded = "loaded",
44
+ Failed = "failed"
45
+ }
46
+ export declare class ChatThreadSessionLoadState {
47
+ readonly phase: ChatThreadSessionLoadPhase;
48
+ readonly startedAt?: Date;
49
+ readonly completedAt?: Date;
50
+ readonly requestMessageId?: string;
51
+ readonly sinceTurn?: string;
52
+ readonly error?: string;
53
+ readonly lastMessageType?: string;
54
+ readonly lastMessageAt?: Date;
55
+ constructor({ phase, startedAt, completedAt, requestMessageId, sinceTurn, error, lastMessageType, lastMessageAt, }: {
56
+ phase: ChatThreadSessionLoadPhase;
57
+ startedAt?: Date;
58
+ completedAt?: Date;
59
+ requestMessageId?: string;
60
+ sinceTurn?: string;
61
+ error?: string;
62
+ lastMessageType?: string;
63
+ lastMessageAt?: Date;
64
+ });
65
+ static idle(): ChatThreadSessionLoadState;
66
+ get isLoading(): boolean;
67
+ }
68
+ export declare class ChatThreadStartResult {
69
+ readonly session: ChatThreadSession;
70
+ readonly threadPath: string;
71
+ readonly realtimeConnection?: JsonMap;
72
+ constructor({ session, threadPath, realtimeConnection }: {
73
+ session: ChatThreadSession;
74
+ threadPath: string;
75
+ realtimeConnection?: JsonMap;
76
+ });
77
+ }
78
+ export declare abstract class BaseChatClient extends ChangeEmitter {
79
+ private readonly sessionsByPath;
80
+ private readonly pendingStartRequests;
81
+ private readonly eventQueue;
82
+ private _connectionStatus?;
83
+ get events(): AsyncIterable<AgentMessageEvent>;
84
+ get connectionStatus(): InstanceType<typeof AgentConnectionStatus> | undefined;
85
+ get sessions(): ChatThreadSession[];
86
+ start(): Promise<void>;
87
+ stop(): Promise<void>;
88
+ agentParticipant(): RemoteParticipant | null;
89
+ localParticipantName(): string | undefined;
90
+ protected cleanParticipantName(value: string | undefined): string | undefined;
91
+ openThread(threadPath: string, { load, sinceTurn, reloadIfOpen }?: {
92
+ load?: boolean;
93
+ sinceTurn?: string;
94
+ reloadIfOpen?: boolean;
95
+ }): ChatThreadSession;
96
+ startThread({ messageId, message, attachments, name, provider, model, voice, outputModalities, realtimeProtocol, senderName, clientToolkits, omitContent, }: {
97
+ messageId?: string;
98
+ message: string;
99
+ attachments: string[];
100
+ name?: string;
101
+ provider?: string;
102
+ model?: string;
103
+ voice?: string;
104
+ outputModalities?: string[];
105
+ realtimeProtocol?: string;
106
+ senderName?: string;
107
+ clientToolkits?: ClientToolkitDescription[];
108
+ omitContent?: boolean;
109
+ }): Promise<ChatThreadStartResult>;
110
+ abstract sendAgentMessage(message: AgentMessage, options?: {
111
+ attachment?: Uint8Array;
112
+ ignoreOffline?: boolean;
113
+ }): Promise<void>;
114
+ handleAgentMessage(message: AgentMessage, { attachment }?: {
115
+ attachment?: Uint8Array;
116
+ }): void;
117
+ emitConnectionStatus({ status, message, reason, retryDelay, }: {
118
+ status: string;
119
+ message?: string;
120
+ reason?: string;
121
+ retryDelay?: number;
122
+ }): void;
123
+ removeThreadSession(threadPath: string): void;
124
+ }
125
+ export declare class MessagingChatClient extends BaseChatClient {
126
+ readonly room: RoomClient;
127
+ readonly agentName?: string;
128
+ private readonly pendingParticipantWaits;
129
+ private readonly roomAbortController;
130
+ private started;
131
+ private roomPump?;
132
+ constructor({ room, agentName }: {
133
+ room: RoomClient;
134
+ agentName?: string;
135
+ });
136
+ localParticipantName(): string | undefined;
137
+ start(): Promise<void>;
138
+ stop(): Promise<void>;
139
+ agentParticipant(): RemoteParticipant | null;
140
+ waitForAgentParticipant({ waitKey }?: {
141
+ waitKey?: string;
142
+ }): Promise<RemoteParticipant>;
143
+ sendAgentMessage(message: AgentMessage, { attachment, ignoreOffline }?: {
144
+ attachment?: Uint8Array;
145
+ ignoreOffline?: boolean;
146
+ }): Promise<void>;
147
+ private readonly onMessagingChanged;
148
+ private consumeRoomEvents;
149
+ private onRoomEvent;
150
+ }
151
+ export declare class ChatThreadSession extends ChangeEmitter {
152
+ private readonly client;
153
+ readonly threadPath: string;
154
+ private readonly _messages;
155
+ private readonly pendingInputsById;
156
+ private openState;
157
+ private loadStateValue;
158
+ private lastCompletedTurnIdValue?;
159
+ private lastAgentMessageType?;
160
+ private lastAgentMessageAt?;
161
+ constructor({ client, threadPath }: {
162
+ client: BaseChatClient;
163
+ threadPath: string;
164
+ });
165
+ get messages(): AgentMessageEvent[];
166
+ get pendingInputs(): PendingAgentInput[];
167
+ get isOpen(): boolean;
168
+ get loadState(): ChatThreadSessionLoadState;
169
+ get isLoading(): boolean;
170
+ get lastCompletedTurnId(): string | undefined;
171
+ open({ load, sinceTurn }?: {
172
+ load?: boolean;
173
+ sinceTurn?: string;
174
+ }): Promise<void>;
175
+ close(): Promise<void>;
176
+ requestModels({ ignoreOffline }?: {
177
+ ignoreOffline?: boolean;
178
+ }): Promise<void>;
179
+ changeModel({ provider, model, voice }: {
180
+ provider: string;
181
+ model: string;
182
+ voice?: string;
183
+ }): Promise<void>;
184
+ interruptTurn(turnId: string): Promise<void>;
185
+ respondToClientToolCall({ turnId, requestId, response }: {
186
+ turnId: string;
187
+ requestId: string;
188
+ response: Content;
189
+ }): Promise<void>;
190
+ sendText({ messageId, text, attachments, steer, turnId, provider, model, voice, outputModalities, senderName, clientToolkits, }: {
191
+ messageId?: string;
192
+ text: string;
193
+ attachments: string[];
194
+ steer?: boolean;
195
+ turnId?: string;
196
+ provider?: string;
197
+ model?: string;
198
+ voice?: string;
199
+ outputModalities?: string[];
200
+ senderName?: string;
201
+ clientToolkits?: ClientToolkitDescription[];
202
+ }): Promise<string>;
203
+ sendRealtimeAudioChunk({ chunk, format }: {
204
+ chunk: Uint8Array;
205
+ format: JsonMap;
206
+ }): Promise<void>;
207
+ commitRealtimeAudio({ turnId, provider, model, voice, outputModalities, }: {
208
+ turnId: string;
209
+ provider?: string;
210
+ model?: string;
211
+ voice?: string;
212
+ outputModalities?: string[];
213
+ }): Promise<string>;
214
+ deleteThread(threadPath: string): Promise<void>;
215
+ renameThread(threadPath: string, name: string): Promise<void>;
216
+ addAgentMessage(event: AgentMessageEvent): void;
217
+ markClosed({ notify }?: {
218
+ notify?: boolean;
219
+ }): void;
220
+ private loadingStateForOpen;
221
+ private failedLoadState;
222
+ private setLoadState;
223
+ private markPending;
224
+ private updatePending;
225
+ }