@meshagent/meshagent-agents 0.43.2 → 0.44.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.
- package/CHANGELOG.md +14 -0
- package/dist/browser/agent-messages.d.ts +7 -1
- package/dist/browser/agent-messages.js +23 -11
- package/dist/browser/chat-client.d.ts +42 -11
- package/dist/browser/chat-client.js +523 -92
- package/dist/browser/thread-storage.js +5 -2
- package/dist/esm/agent-messages.d.ts +7 -1
- package/dist/esm/agent-messages.js +19 -7
- package/dist/esm/chat-client.d.ts +42 -11
- package/dist/esm/chat-client.js +525 -94
- package/dist/esm/thread-storage.js +6 -3
- package/dist/node/agent-messages.d.ts +7 -1
- package/dist/node/agent-messages.js +23 -11
- package/dist/node/chat-client.d.ts +42 -11
- package/dist/node/chat-client.js +523 -92
- package/dist/node/thread-storage.js +5 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [0.44.0]
|
|
2
|
+
- TypeScript agent clients now support thread watch/unwatch, multiple thread storages, and richer start-thread payloads, including tool-choice metadata.
|
|
3
|
+
- Chat sessions now preserve event timestamps, reset replay state correctly, and handle more agent message types such as tool-call progress, secret requests, model changes, interrupts, and usage updates.
|
|
4
|
+
- Tailwind chat UI now tracks thread status, reasoning traces, shell output, file attachments, and improved file preview behavior for streamed agent content.
|
|
5
|
+
|
|
6
|
+
## [0.43.4]
|
|
7
|
+
- TypeScript agent messages and events now carry `created_at`, parse it on input, and preserve it when streamed deltas are merged.
|
|
8
|
+
- Messaging chat clients now accept thread lifecycle events without a participant ID and carry room message timestamps into session events for more accurate live synchronization.
|
|
9
|
+
- Live chat test coverage expanded for thread creation, acknowledgements, steer/interrupt flows, and client tool request handling.
|
|
10
|
+
- The workspace app template was rebranded from the meeting app naming and its deploy tag was updated accordingly.
|
|
11
|
+
|
|
12
|
+
## [0.43.3]
|
|
13
|
+
- Stability
|
|
14
|
+
|
|
1
15
|
## [0.43.2]
|
|
2
16
|
- Introduced `@meshagent/meshagent-livekit` as a standalone TypeScript helper package, with `livekit-client ^2.15.5`.
|
|
3
17
|
- Reworked `@meshagent/meshagent-agents` packaging for dual ESM/CommonJS/browser resolution, including `.js` specifiers, module-scoped `src/`, and an ESM-default export.
|
|
@@ -19,6 +19,8 @@ export declare const agentParticipantDisconnectType = "meshagent.agent.participa
|
|
|
19
19
|
export declare const agentThreadDeleteType = "meshagent.agent.thread.delete";
|
|
20
20
|
export declare const agentThreadRenameType = "meshagent.agent.thread.rename";
|
|
21
21
|
export declare const agentThreadListType = "meshagent.agent.thread.list";
|
|
22
|
+
export declare const agentThreadWatchType = "meshagent.agent.thread.watch";
|
|
23
|
+
export declare const agentThreadUnwatchType = "meshagent.agent.thread.unwatch";
|
|
22
24
|
export declare const agentThreadListedType = "meshagent.agent.thread.listed";
|
|
23
25
|
export declare const agentThreadCreatedType = "meshagent.agent.thread.created";
|
|
24
26
|
export declare const agentThreadUpdatedType = "meshagent.agent.thread.updated";
|
|
@@ -170,6 +172,7 @@ export declare class AgentProviderInfo {
|
|
|
170
172
|
readonly name: string;
|
|
171
173
|
readonly friendlyName: string;
|
|
172
174
|
readonly description?: string;
|
|
175
|
+
readonly backend?: string;
|
|
173
176
|
readonly defaultModel: string;
|
|
174
177
|
readonly models: AgentModelInfo[];
|
|
175
178
|
constructor(params: JsonMap);
|
|
@@ -238,7 +241,8 @@ export declare abstract class AgentMessage {
|
|
|
238
241
|
readonly type: string;
|
|
239
242
|
readonly messageId: string;
|
|
240
243
|
readonly senderName?: string;
|
|
241
|
-
|
|
244
|
+
readonly createdAt: string;
|
|
245
|
+
protected constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at }: JsonMap);
|
|
242
246
|
toJson(): JsonMap;
|
|
243
247
|
static fromJson(json: JsonMap): AgentMessage;
|
|
244
248
|
}
|
|
@@ -271,6 +275,8 @@ export declare const ParticipantDisconnect: MessageCtor;
|
|
|
271
275
|
export declare const DeleteThread: MessageCtor;
|
|
272
276
|
export declare const RenameThread: MessageCtor;
|
|
273
277
|
export declare const ListThreads: MessageCtor;
|
|
278
|
+
export declare const WatchThreads: MessageCtor;
|
|
279
|
+
export declare const UnwatchThreads: MessageCtor;
|
|
274
280
|
export declare const ThreadsListed: MessageCtor;
|
|
275
281
|
export declare const ThreadCreated: MessageCtor;
|
|
276
282
|
export declare const ThreadUpdated: MessageCtor;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
6
|
-
exports.AgentClientToolCallResponse = exports.AgentSecretResponse = exports.RejectAgentToolCall = exports.ApproveAgentToolCall = exports.AgentUsageUpdated = exports.AgentContextCompacted = exports.AgentAudioInputSpeechEnded = exports.AgentAudioInputSpeechStarted = exports.AgentAudioTranscriptionFailed = exports.AgentAudioTranscriptionCompleted = exports.AgentAudioTranscriptionDelta = exports.AgentAudioTranscriptionStarted = exports.AgentAudioGenerationFailed = exports.AgentAudioGenerationCompleted = exports.AgentAudioGenerationDelta = exports.AgentAudioGenerationStarted = exports.AgentImageGenerationFailed = exports.AgentImageGenerationCompleted = exports.AgentImageGenerationPartial = exports.AgentImageGenerationStarted = exports.AgentThreadEvent = exports.AgentConnectionStatus = exports.AgentThreadStatus = exports.AgentClientToolCallCancelled = exports.AgentClientToolCallRequested = exports.AgentSecretRequested = exports.AgentToolCallApprovalRequested = exports.AgentToolCallEnded = void 0;
|
|
3
|
+
exports.agentToolCallPendingType = exports.agentFileContentEndedType = exports.agentFileContentDeltaType = exports.agentFileContentStartedType = exports.agentTextContentEndedType = exports.agentTextContentDeltaType = exports.agentTextContentStartedType = exports.agentReasoningContentEndedType = exports.agentReasoningContentDeltaType = exports.agentReasoningContentStartedType = exports.agentTurnEndedType = exports.agentTurnStartedType = exports.agentTurnSteerRejectedType = exports.agentTurnSteeredType = exports.agentTurnSteerAcceptedType = exports.agentTurnInterruptedType = exports.agentTurnInterruptAcceptedType = exports.agentTurnStartRejectedType = exports.agentTurnStartAcceptedType = exports.agentThreadClearedType = exports.agentModelChangedType = exports.agentModelChangeType = exports.agentModelsResponseType = exports.agentModelsRequestType = exports.agentCapabilitiesResponseType = exports.agentCapabilitiesRequestType = exports.agentThreadDeletedType = exports.agentThreadUpdatedType = exports.agentThreadCreatedType = exports.agentThreadListedType = exports.agentThreadUnwatchType = exports.agentThreadWatchType = exports.agentThreadListType = exports.agentThreadRenameType = exports.agentThreadDeleteType = exports.agentParticipantDisconnectType = exports.agentParticipantConnectType = exports.agentThreadCloseType = exports.agentThreadOpenType = exports.agentThreadStartRejectedType = exports.agentThreadLoadedType = exports.agentThreadStartedType = exports.agentThreadStartType = exports.agentRealtimeAudioCommitType = exports.agentRealtimeAudioChunkType = exports.agentThreadClearType = exports.agentTurnInterruptType = exports.agentTurnSteerType = exports.agentTurnStartType = exports.agentRoomMessageType = void 0;
|
|
4
|
+
exports.AgentThreadMessage = exports.AgentMessage = exports.AgentContextWindowUsage = exports.AgentGeneratedAudio = exports.AgentGeneratedImage = exports.AgentToolCallLogLine = exports.AgentRealtimeConnectionInfo = exports.AgentThreadListEntry = exports.AgentProviderInfo = exports.AgentModelInfo = exports.ToolkitCapabilities = exports.ToolkitToolCapabilities = exports.AgentError = exports.AgentAudioFormat = exports.TurnToolkitConfig = exports.ClientToolkitDescription = exports.TurnMcpConfig = exports.ToolChoice = exports.agentClientToolCallResponseType = exports.agentSecretResponseType = exports.agentToolRejectType = exports.agentToolApproveType = exports.agentUsageUpdatedType = exports.agentContextCompactedType = exports.agentAudioInputSpeechEndedType = exports.agentAudioInputSpeechStartedType = exports.agentAudioTranscriptionFailedType = exports.agentAudioTranscriptionCompletedType = exports.agentAudioTranscriptionDeltaType = exports.agentAudioTranscriptionStartedType = exports.agentAudioGenerationFailedType = exports.agentAudioGenerationCompletedType = exports.agentAudioGenerationDeltaType = exports.agentAudioGenerationStartedType = exports.agentImageGenerationFailedType = exports.agentImageGenerationCompletedType = exports.agentImageGenerationPartialType = exports.agentImageGenerationStartedType = exports.agentThreadEventType = exports.agentConnectionStatusType = exports.agentThreadStatusType = exports.agentSecretRequestedType = exports.agentClientToolCallCancelledType = exports.agentClientToolCallRequestedType = exports.agentToolCallApprovalRequestedType = exports.agentToolCallEndedType = exports.agentToolCallLogDeltaType = exports.agentToolCallArgumentsDeltaType = exports.agentToolCallStartedType = exports.agentToolCallInProgressType = void 0;
|
|
5
|
+
exports.AgentToolCallPending = exports.AgentFileContentEnded = exports.AgentFileContentDelta = exports.AgentFileContentStarted = exports.AgentTextContentEnded = exports.AgentTextContentDelta = exports.AgentTextContentStarted = exports.AgentReasoningContentEnded = exports.AgentReasoningContentDelta = exports.AgentReasoningContentStarted = exports.ThreadStartRejected = exports.ThreadLoaded = exports.ThreadStarted = exports.TurnEnded = exports.TurnStarted = exports.TurnSteerRejected = exports.TurnSteered = exports.TurnSteerAccepted = exports.TurnInterrupted = exports.TurnInterruptAccepted = exports.TurnStartRejected = exports.TurnStartAccepted = exports.ThreadCleared = exports.AgentModelChanged = exports.ChangeModel = exports.ModelsResponse = exports.ModelsRequest = exports.CapabilitiesResponse = exports.CapabilitiesRequest = exports.ThreadDeleted = exports.ThreadUpdated = exports.ThreadCreated = exports.ThreadsListed = exports.UnwatchThreads = exports.WatchThreads = exports.ListThreads = exports.RenameThread = exports.DeleteThread = exports.ParticipantDisconnect = exports.ParticipantConnect = exports.CloseThread = exports.OpenThread = exports.ClearThread = exports.AgentRealtimeAudioCommit = exports.AgentRealtimeAudioChunk = exports.TurnInterrupt = exports.TurnSteer = exports.TurnStart = exports.StartThread = exports.AgentLLMMessage = void 0;
|
|
6
|
+
exports.AgentClientToolCallResponse = exports.AgentSecretResponse = exports.RejectAgentToolCall = exports.ApproveAgentToolCall = exports.AgentUsageUpdated = exports.AgentContextCompacted = exports.AgentAudioInputSpeechEnded = exports.AgentAudioInputSpeechStarted = exports.AgentAudioTranscriptionFailed = exports.AgentAudioTranscriptionCompleted = exports.AgentAudioTranscriptionDelta = exports.AgentAudioTranscriptionStarted = exports.AgentAudioGenerationFailed = exports.AgentAudioGenerationCompleted = exports.AgentAudioGenerationDelta = exports.AgentAudioGenerationStarted = exports.AgentImageGenerationFailed = exports.AgentImageGenerationCompleted = exports.AgentImageGenerationPartial = exports.AgentImageGenerationStarted = exports.AgentThreadEvent = exports.AgentConnectionStatus = exports.AgentThreadStatus = exports.AgentClientToolCallCancelled = exports.AgentClientToolCallRequested = exports.AgentSecretRequested = exports.AgentToolCallApprovalRequested = exports.AgentToolCallEnded = exports.AgentToolCallLogDelta = exports.AgentToolCallArgumentsDelta = exports.AgentToolCallStarted = exports.AgentToolCallInProgress = void 0;
|
|
7
7
|
exports.agentInputContent = agentInputContent;
|
|
8
8
|
const meshagent_1 = require("@meshagent/meshagent");
|
|
9
9
|
const uuid_1 = require("uuid");
|
|
@@ -25,6 +25,8 @@ exports.agentParticipantDisconnectType = "meshagent.agent.participant.disconnect
|
|
|
25
25
|
exports.agentThreadDeleteType = "meshagent.agent.thread.delete";
|
|
26
26
|
exports.agentThreadRenameType = "meshagent.agent.thread.rename";
|
|
27
27
|
exports.agentThreadListType = "meshagent.agent.thread.list";
|
|
28
|
+
exports.agentThreadWatchType = "meshagent.agent.thread.watch";
|
|
29
|
+
exports.agentThreadUnwatchType = "meshagent.agent.thread.unwatch";
|
|
28
30
|
exports.agentThreadListedType = "meshagent.agent.thread.listed";
|
|
29
31
|
exports.agentThreadCreatedType = "meshagent.agent.thread.created";
|
|
30
32
|
exports.agentThreadUpdatedType = "meshagent.agent.thread.updated";
|
|
@@ -492,6 +494,7 @@ class AgentProviderInfo {
|
|
|
492
494
|
this.name = String(params.name);
|
|
493
495
|
this.friendlyName = String(params.friendlyName ?? params.friendly_name);
|
|
494
496
|
this.description = stringOrNull(params.description);
|
|
497
|
+
this.backend = stringOrNull(params.backend);
|
|
495
498
|
this.defaultModel = String(params.defaultModel ?? params.default_model);
|
|
496
499
|
this.models = Array.isArray(params.models) ? params.models.map((entry) => entry instanceof AgentModelInfo ? entry : AgentModelInfo.fromJson(requiredObjectValue(entry))) : [];
|
|
497
500
|
}
|
|
@@ -503,6 +506,7 @@ class AgentProviderInfo {
|
|
|
503
506
|
name: this.name,
|
|
504
507
|
friendly_name: this.friendlyName,
|
|
505
508
|
...(this.description != null ? { description: this.description } : {}),
|
|
509
|
+
...(this.backend != null ? { backend: this.backend } : {}),
|
|
506
510
|
default_model: this.defaultModel,
|
|
507
511
|
models: this.models.map((entry) => entry.toJson()),
|
|
508
512
|
};
|
|
@@ -630,11 +634,12 @@ class AgentContextWindowUsage {
|
|
|
630
634
|
this.compactionThreshold = intOrNull(params.compactionThreshold ?? params.compaction_threshold);
|
|
631
635
|
}
|
|
632
636
|
static fromJson(json) {
|
|
637
|
+
const usedTokens = intOrNull(json.used_tokens ?? json.usedTokens) ?? 0;
|
|
633
638
|
return new AgentContextWindowUsage({
|
|
634
|
-
usedTokens
|
|
635
|
-
totalTokens: intOrNull(json.total_tokens),
|
|
636
|
-
compactionMode: stringOrNull(json.compaction_mode),
|
|
637
|
-
compactionThreshold: intOrNull(json.compaction_threshold),
|
|
639
|
+
usedTokens,
|
|
640
|
+
totalTokens: intOrNull(json.total_tokens ?? json.totalTokens),
|
|
641
|
+
compactionMode: stringOrNull(json.compaction_mode ?? json.compactionMode),
|
|
642
|
+
compactionThreshold: intOrNull(json.compaction_threshold ?? json.compactionThreshold),
|
|
638
643
|
});
|
|
639
644
|
}
|
|
640
645
|
toJson() {
|
|
@@ -651,16 +656,18 @@ function omitUndefined(value) {
|
|
|
651
656
|
return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
|
|
652
657
|
}
|
|
653
658
|
class AgentMessage {
|
|
654
|
-
constructor({ type, messageId, message_id, senderName, sender_name }) {
|
|
659
|
+
constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at }) {
|
|
655
660
|
this.type = String(type);
|
|
656
661
|
const resolvedMessageId = stringOrNull(messageId ?? message_id)?.trim();
|
|
657
662
|
this.messageId = resolvedMessageId == null || resolvedMessageId.length === 0 ? (0, uuid_1.v4)() : resolvedMessageId;
|
|
658
663
|
this.senderName = stringOrNull(senderName ?? sender_name);
|
|
664
|
+
this.createdAt = stringOrNull(createdAt ?? created_at) ?? new Date().toISOString();
|
|
659
665
|
}
|
|
660
666
|
toJson() {
|
|
661
667
|
return {
|
|
662
668
|
type: this.type,
|
|
663
669
|
message_id: this.messageId,
|
|
670
|
+
created_at: this.createdAt,
|
|
664
671
|
...(this.senderName != null ? { sender_name: this.senderName } : {}),
|
|
665
672
|
};
|
|
666
673
|
}
|
|
@@ -727,6 +734,7 @@ function makeMessageClass({ type, base = "message", fields = [], }) {
|
|
|
727
734
|
const params = {
|
|
728
735
|
messageId: stringOrNull(json.message_id),
|
|
729
736
|
senderName: stringOrNull(json.sender_name),
|
|
737
|
+
createdAt: stringOrNull(json.created_at),
|
|
730
738
|
};
|
|
731
739
|
if (base !== "message") {
|
|
732
740
|
params.threadId = requiredString(json, "thread_id");
|
|
@@ -878,6 +886,7 @@ const turnOptions = [
|
|
|
878
886
|
s("turnId"),
|
|
879
887
|
contentList("content"),
|
|
880
888
|
s("provider"),
|
|
889
|
+
s("backend"),
|
|
881
890
|
s("model"),
|
|
882
891
|
s("voice"),
|
|
883
892
|
sl("outputModalities"),
|
|
@@ -912,6 +921,7 @@ exports.StartThread = makeMessageClass({
|
|
|
912
921
|
s("name"),
|
|
913
922
|
s("realtimeProtocol"),
|
|
914
923
|
s("provider"),
|
|
924
|
+
s("backend"),
|
|
915
925
|
s("model"),
|
|
916
926
|
s("voice"),
|
|
917
927
|
sl("outputModalities"),
|
|
@@ -935,6 +945,8 @@ exports.ParticipantDisconnect = makeMessageClass({ type: exports.agentParticipan
|
|
|
935
945
|
exports.DeleteThread = makeMessageClass({ type: exports.agentThreadDeleteType, base: "thread" });
|
|
936
946
|
exports.RenameThread = makeMessageClass({ type: exports.agentThreadRenameType, base: "thread", fields: [s("name", "name", true)] });
|
|
937
947
|
exports.ListThreads = makeMessageClass({ type: exports.agentThreadListType, fields: [{ prop: "limit", json: "limit", from: (value) => intOrNull(value) ?? 200, default: () => 200, always: true }, { prop: "offset", json: "offset", from: (value) => intOrNull(value) ?? 0, default: () => 0, always: true }] });
|
|
948
|
+
exports.WatchThreads = makeMessageClass({ type: exports.agentThreadWatchType });
|
|
949
|
+
exports.UnwatchThreads = makeMessageClass({ type: exports.agentThreadUnwatchType });
|
|
938
950
|
exports.ThreadsListed = makeMessageClass({ type: exports.agentThreadListedType, fields: [s("sourceMessageId", "source_message_id", true), objList("threads", "threads", AgentThreadListEntry.fromJson, true), i("total"), i("offset"), i("limit")] });
|
|
939
951
|
exports.ThreadCreated = makeMessageClass({ type: exports.agentThreadCreatedType, fields: [obj("thread", "thread", AgentThreadListEntry.fromJson, true)] });
|
|
940
952
|
exports.ThreadUpdated = makeMessageClass({ type: exports.agentThreadUpdatedType, fields: [obj("thread", "thread", AgentThreadListEntry.fromJson, true)] });
|
|
@@ -943,8 +955,8 @@ exports.CapabilitiesRequest = makeMessageClass({ type: exports.agentCapabilities
|
|
|
943
955
|
exports.CapabilitiesResponse = makeMessageClass({ type: exports.agentCapabilitiesResponseType, base: "thread", fields: [s("sourceMessageId", "source_message_id", true), s("version", "version", true), objList("toolkits", "toolkits", ToolkitCapabilities.fromJson, true)] });
|
|
944
956
|
exports.ModelsRequest = makeMessageClass({ type: exports.agentModelsRequestType });
|
|
945
957
|
exports.ModelsResponse = makeMessageClass({ type: exports.agentModelsResponseType, fields: [s("sourceMessageId", "source_message_id", true), objList("providers", "providers", AgentProviderInfo.fromJson, true)] });
|
|
946
|
-
exports.ChangeModel = makeMessageClass({ type: exports.agentModelChangeType, base: "thread", fields: [s("provider"), s("model"), s("voice")] });
|
|
947
|
-
exports.AgentModelChanged = makeMessageClass({ type: exports.agentModelChangedType, base: "thread", fields: [s("sourceMessageId"), s("provider", "provider", true), s("model", "model", true), s("voice"), audioFormat("inputFormat"), audioFormat("outputFormat"), s("turnDetection"), sl("outputModalities", "output_modalities", ["text"], true), sl("realtimeProtocols", "realtime_protocols", [], true)] });
|
|
958
|
+
exports.ChangeModel = makeMessageClass({ type: exports.agentModelChangeType, base: "thread", fields: [s("backend"), s("provider"), s("model"), s("voice")] });
|
|
959
|
+
exports.AgentModelChanged = makeMessageClass({ type: exports.agentModelChangedType, base: "thread", fields: [s("sourceMessageId"), s("backend"), s("provider", "provider", true), s("model", "model", true), s("voice"), audioFormat("inputFormat"), audioFormat("outputFormat"), s("turnDetection"), sl("outputModalities", "output_modalities", ["text"], true), sl("realtimeProtocols", "realtime_protocols", [], true), { prop: "supportsAttachments", json: "supports_attachments", from: (value) => value === true, default: () => false }, sl("accepts", "accepts", [], true)] });
|
|
948
960
|
exports.ThreadCleared = makeMessageClass({ type: exports.agentThreadClearedType, base: "thread", fields: [s("sourceMessageId", "source_message_id", true)] });
|
|
949
961
|
exports.TurnStartAccepted = makeMessageClass({ type: exports.agentTurnStartAcceptedType, base: "thread", fields: [s("turnId"), s("sourceMessageId", "source_message_id", true), contentList("content")] });
|
|
950
962
|
exports.TurnStartRejected = makeMessageClass({ type: exports.agentTurnStartRejectedType, base: "thread", fields: [s("sourceMessageId", "source_message_id", true), obj("error", "error", AgentError.fromJson, true)] });
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { RemoteParticipant } from "@meshagent/meshagent";
|
|
2
2
|
import type { RoomClient, Content } from "@meshagent/meshagent";
|
|
3
|
-
import { AgentMessage, AgentConnectionStatus } from "./agent-messages.js";
|
|
3
|
+
import { AgentMessage, AgentModelChanged, AgentThreadStatus, ModelsResponse, ToolChoice, AgentConnectionStatus } from "./agent-messages.js";
|
|
4
4
|
import type { AgentPayload, JsonMap, ClientToolkitDescription } from "./agent-messages.js";
|
|
5
5
|
import { ChangeEmitter } from "./change-emitter.js";
|
|
6
6
|
export declare class AgentMessageEvent {
|
|
7
7
|
readonly message: AgentMessage;
|
|
8
|
+
readonly createdAt: Date;
|
|
8
9
|
readonly attachment?: Uint8Array;
|
|
9
|
-
constructor({ message, attachment }: {
|
|
10
|
+
constructor({ message, createdAt, attachment }: {
|
|
10
11
|
message: AgentMessage;
|
|
12
|
+
createdAt?: Date;
|
|
11
13
|
attachment?: Uint8Array;
|
|
12
14
|
});
|
|
13
15
|
get payload(): AgentPayload;
|
|
@@ -78,6 +80,7 @@ export declare class ChatThreadStartResult {
|
|
|
78
80
|
export declare abstract class BaseChatClient extends ChangeEmitter {
|
|
79
81
|
private readonly sessionsByPath;
|
|
80
82
|
private readonly pendingStartRequests;
|
|
83
|
+
private readonly pendingSessionEventsByPath;
|
|
81
84
|
private readonly eventQueue;
|
|
82
85
|
private _connectionStatus?;
|
|
83
86
|
get events(): AsyncIterable<AgentMessageEvent>;
|
|
@@ -88,16 +91,19 @@ export declare abstract class BaseChatClient extends ChangeEmitter {
|
|
|
88
91
|
agentParticipant(): RemoteParticipant | null;
|
|
89
92
|
localParticipantName(): string | undefined;
|
|
90
93
|
protected cleanParticipantName(value: string | undefined): string | undefined;
|
|
91
|
-
openThread(threadPath: string, { load, sinceTurn, reloadIfOpen }?: {
|
|
94
|
+
openThread(threadPath: string, { load, sinceTurn, reloadIfOpen, drainPendingEvents, }?: {
|
|
92
95
|
load?: boolean;
|
|
93
96
|
sinceTurn?: string;
|
|
94
97
|
reloadIfOpen?: boolean;
|
|
98
|
+
drainPendingEvents?: boolean;
|
|
95
99
|
}): ChatThreadSession;
|
|
96
|
-
|
|
100
|
+
private openSession;
|
|
101
|
+
startThread({ messageId, message, attachments, name, backend, provider, model, voice, outputModalities, realtimeProtocol, senderName, clientToolkits, toolChoice, omitContent, }: {
|
|
97
102
|
messageId?: string;
|
|
98
103
|
message: string;
|
|
99
104
|
attachments: string[];
|
|
100
105
|
name?: string;
|
|
106
|
+
backend?: string;
|
|
101
107
|
provider?: string;
|
|
102
108
|
model?: string;
|
|
103
109
|
voice?: string;
|
|
@@ -105,13 +111,17 @@ export declare abstract class BaseChatClient extends ChangeEmitter {
|
|
|
105
111
|
realtimeProtocol?: string;
|
|
106
112
|
senderName?: string;
|
|
107
113
|
clientToolkits?: ClientToolkitDescription[];
|
|
114
|
+
toolChoice?: ToolChoice;
|
|
108
115
|
omitContent?: boolean;
|
|
109
116
|
}): Promise<ChatThreadStartResult>;
|
|
117
|
+
private resolvedStartThreadMessage;
|
|
110
118
|
abstract sendAgentMessage(message: AgentMessage, options?: {
|
|
111
119
|
attachment?: Uint8Array;
|
|
112
120
|
ignoreOffline?: boolean;
|
|
113
121
|
}): Promise<void>;
|
|
114
|
-
|
|
122
|
+
private drainPendingSessionEvents;
|
|
123
|
+
handleAgentMessage(message: AgentMessage, { createdAt, attachment }?: {
|
|
124
|
+
createdAt?: Date;
|
|
115
125
|
attachment?: Uint8Array;
|
|
116
126
|
}): void;
|
|
117
127
|
emitConnectionStatus({ status, message, reason, retryDelay, }: {
|
|
@@ -126,9 +136,7 @@ export declare class MessagingChatClient extends BaseChatClient {
|
|
|
126
136
|
readonly room: RoomClient;
|
|
127
137
|
readonly agentName?: string;
|
|
128
138
|
private readonly pendingParticipantWaits;
|
|
129
|
-
private readonly roomAbortController;
|
|
130
139
|
private started;
|
|
131
|
-
private roomPump?;
|
|
132
140
|
constructor({ room, agentName }: {
|
|
133
141
|
room: RoomClient;
|
|
134
142
|
agentName?: string;
|
|
@@ -145,17 +153,24 @@ export declare class MessagingChatClient extends BaseChatClient {
|
|
|
145
153
|
ignoreOffline?: boolean;
|
|
146
154
|
}): Promise<void>;
|
|
147
155
|
private readonly onMessagingChanged;
|
|
148
|
-
private
|
|
149
|
-
private onRoomEvent;
|
|
156
|
+
private readonly onMessagingMessage;
|
|
150
157
|
}
|
|
151
158
|
export declare class ChatThreadSession extends ChangeEmitter {
|
|
152
159
|
private readonly client;
|
|
153
160
|
readonly threadPath: string;
|
|
154
161
|
private readonly _messages;
|
|
162
|
+
private readonly messageIndexes;
|
|
163
|
+
private readonly localAgentMessageIds;
|
|
164
|
+
private readonly pendingLocalInputMessageIds;
|
|
165
|
+
private readonly mergedDeltaMessageIds;
|
|
155
166
|
private readonly pendingInputsById;
|
|
156
167
|
private openState;
|
|
157
168
|
private loadStateValue;
|
|
158
169
|
private lastCompletedTurnIdValue?;
|
|
170
|
+
private activeTurnIdValue?;
|
|
171
|
+
private threadStatusValue?;
|
|
172
|
+
private currentModelValue?;
|
|
173
|
+
private modelsResponseValue?;
|
|
159
174
|
private lastAgentMessageType?;
|
|
160
175
|
private lastAgentMessageAt?;
|
|
161
176
|
constructor({ client, threadPath }: {
|
|
@@ -168,15 +183,21 @@ export declare class ChatThreadSession extends ChangeEmitter {
|
|
|
168
183
|
get loadState(): ChatThreadSessionLoadState;
|
|
169
184
|
get isLoading(): boolean;
|
|
170
185
|
get lastCompletedTurnId(): string | undefined;
|
|
186
|
+
get activeTurnId(): string | undefined;
|
|
187
|
+
get threadStatus(): InstanceType<typeof AgentThreadStatus> | undefined;
|
|
188
|
+
get currentModel(): InstanceType<typeof AgentModelChanged> | undefined;
|
|
189
|
+
get modelsResponse(): InstanceType<typeof ModelsResponse> | undefined;
|
|
171
190
|
open({ load, sinceTurn }?: {
|
|
172
191
|
load?: boolean;
|
|
173
192
|
sinceTurn?: string;
|
|
174
193
|
}): Promise<void>;
|
|
194
|
+
private resetReplayState;
|
|
175
195
|
close(): Promise<void>;
|
|
176
196
|
requestModels({ ignoreOffline }?: {
|
|
177
197
|
ignoreOffline?: boolean;
|
|
178
198
|
}): Promise<void>;
|
|
179
|
-
changeModel({ provider, model, voice }: {
|
|
199
|
+
changeModel({ backend, provider, model, voice }: {
|
|
200
|
+
backend?: string;
|
|
180
201
|
provider: string;
|
|
181
202
|
model: string;
|
|
182
203
|
voice?: string;
|
|
@@ -187,18 +208,20 @@ export declare class ChatThreadSession extends ChangeEmitter {
|
|
|
187
208
|
requestId: string;
|
|
188
209
|
response: Content;
|
|
189
210
|
}): Promise<void>;
|
|
190
|
-
sendText({ messageId, text, attachments, steer, turnId, provider, model, voice, outputModalities, senderName, clientToolkits, }: {
|
|
211
|
+
sendText({ messageId, text, attachments, steer, turnId, backend, provider, model, voice, outputModalities, senderName, clientToolkits, toolChoice, }: {
|
|
191
212
|
messageId?: string;
|
|
192
213
|
text: string;
|
|
193
214
|
attachments: string[];
|
|
194
215
|
steer?: boolean;
|
|
195
216
|
turnId?: string;
|
|
217
|
+
backend?: string;
|
|
196
218
|
provider?: string;
|
|
197
219
|
model?: string;
|
|
198
220
|
voice?: string;
|
|
199
221
|
outputModalities?: string[];
|
|
200
222
|
senderName?: string;
|
|
201
223
|
clientToolkits?: ClientToolkitDescription[];
|
|
224
|
+
toolChoice?: ToolChoice;
|
|
202
225
|
}): Promise<string>;
|
|
203
226
|
sendRealtimeAudioChunk({ chunk, format }: {
|
|
204
227
|
chunk: Uint8Array;
|
|
@@ -214,6 +237,14 @@ export declare class ChatThreadSession extends ChangeEmitter {
|
|
|
214
237
|
deleteThread(threadPath: string): Promise<void>;
|
|
215
238
|
renameThread(threadPath: string, name: string): Promise<void>;
|
|
216
239
|
addAgentMessage(event: AgentMessageEvent): void;
|
|
240
|
+
private updateSessionState;
|
|
241
|
+
private updatePendingInputsForMessage;
|
|
242
|
+
private appendRenderableMessage;
|
|
243
|
+
private appendMessage;
|
|
244
|
+
private upsertItemMessage;
|
|
245
|
+
private appendOrMergeDelta;
|
|
246
|
+
private indexMessagesFrom;
|
|
247
|
+
private applyActiveModel;
|
|
217
248
|
markClosed({ notify }?: {
|
|
218
249
|
notify?: boolean;
|
|
219
250
|
}): void;
|