@meshagent/meshagent-agents 0.44.2 → 0.44.4

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 CHANGED
@@ -1,3 +1,9 @@
1
+ ## [0.44.4]
2
+ - `AgentMessage` now preserves arbitrary metadata in `fromJson`/`toJson`, keeping provider-specific payloads such as encrypted reasoning content intact across round-trips.
3
+
4
+ ## [0.44.3]
5
+ - Stability
6
+
1
7
  ## [0.44.2]
2
8
  - Messaging chat clients now listen for participant add/remove and room status changes, emit accurate connected/disconnected/reconnecting/reconnected transitions, and reopen open thread sessions after reconnect.
3
9
  - Sending agent messages can now skip waiting for an available participant when the caller opts into offline delivery.
package/README.md CHANGED
@@ -124,7 +124,7 @@ import {
124
124
  class MyChatClient extends BaseChatClient {
125
125
  async sendAgentMessage(
126
126
  message: AgentMessage,
127
- options: { attachment?: Uint8Array; ignoreOffline?: boolean } = {},
127
+ options: { attachment?: Uint8Array } = {},
128
128
  ): Promise<void> {
129
129
  await sendOverMyTransport(message.toJson(), options.attachment);
130
130
  }
@@ -242,7 +242,8 @@ export declare abstract class AgentMessage {
242
242
  readonly messageId: string;
243
243
  readonly senderName?: string;
244
244
  readonly createdAt: string;
245
- protected constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at }: JsonMap);
245
+ readonly metadata: JsonMap;
246
+ protected constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at, metadata }: JsonMap);
246
247
  toJson(): JsonMap;
247
248
  static fromJson(json: JsonMap): AgentMessage;
248
249
  }
@@ -656,18 +656,20 @@ function omitUndefined(value) {
656
656
  return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
657
657
  }
658
658
  class AgentMessage {
659
- constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at }) {
659
+ constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at, metadata }) {
660
660
  this.type = String(type);
661
661
  const resolvedMessageId = stringOrNull(messageId ?? message_id)?.trim();
662
662
  this.messageId = resolvedMessageId == null || resolvedMessageId.length === 0 ? (0, uuid_1.v4)() : resolvedMessageId;
663
663
  this.senderName = stringOrNull(senderName ?? sender_name);
664
664
  this.createdAt = stringOrNull(createdAt ?? created_at) ?? new Date().toISOString();
665
+ this.metadata = dynamicMapOrNull(metadata) ?? {};
665
666
  }
666
667
  toJson() {
667
668
  return {
668
669
  type: this.type,
669
670
  message_id: this.messageId,
670
671
  created_at: this.createdAt,
672
+ ...(Object.keys(this.metadata).length > 0 ? { metadata: this.metadata } : {}),
671
673
  ...(this.senderName != null ? { sender_name: this.senderName } : {}),
672
674
  };
673
675
  }
@@ -735,6 +737,7 @@ function makeMessageClass({ type, base = "message", fields = [], }) {
735
737
  messageId: stringOrNull(json.message_id),
736
738
  senderName: stringOrNull(json.sender_name),
737
739
  createdAt: stringOrNull(json.created_at),
740
+ metadata: dynamicMapOrNull(json.metadata),
738
741
  };
739
742
  if (base !== "message") {
740
743
  params.threadId = requiredString(json, "thread_id");
@@ -117,7 +117,6 @@ export declare abstract class BaseChatClient extends ChangeEmitter {
117
117
  private resolvedStartThreadMessage;
118
118
  abstract sendAgentMessage(message: AgentMessage, options?: {
119
119
  attachment?: Uint8Array;
120
- ignoreOffline?: boolean;
121
120
  }): Promise<void>;
122
121
  private drainPendingSessionEvents;
123
122
  handleAgentMessage(message: AgentMessage, { createdAt, attachment }?: {
@@ -155,9 +154,8 @@ export declare class MessagingChatClient extends BaseChatClient {
155
154
  waitForAgentParticipant({ waitKey }?: {
156
155
  waitKey?: string;
157
156
  }): Promise<RemoteParticipant>;
158
- sendAgentMessage(message: AgentMessage, { attachment, ignoreOffline }?: {
157
+ sendAgentMessage(message: AgentMessage, { attachment }?: {
159
158
  attachment?: Uint8Array;
160
- ignoreOffline?: boolean;
161
159
  }): Promise<void>;
162
160
  private readonly onMessagingChanged;
163
161
  private readonly onMessagingParticipantChanged;
@@ -204,9 +202,7 @@ export declare class ChatThreadSession extends ChangeEmitter {
204
202
  }): Promise<void>;
205
203
  private resetReplayState;
206
204
  close(): Promise<void>;
207
- requestModels({ ignoreOffline }?: {
208
- ignoreOffline?: boolean;
209
- }): Promise<void>;
205
+ requestModels(): Promise<void>;
210
206
  changeModel({ backend, provider, model, voice }: {
211
207
  backend?: string;
212
208
  provider: string;
@@ -495,21 +495,17 @@ class MessagingChatClient extends BaseChatClient {
495
495
  this.pendingParticipantWaits.delete(key);
496
496
  }
497
497
  }
498
- async sendAgentMessage(message, { attachment, ignoreOffline = false } = {}) {
498
+ async sendAgentMessage(message, { attachment } = {}) {
499
499
  await this.start();
500
- let participant = this.agentParticipant();
500
+ const participant = this.agentParticipant();
501
501
  if (participant == null) {
502
- if (ignoreOffline) {
503
- return;
504
- }
505
- participant = await this.waitForAgentParticipant({ waitKey: message.messageId });
502
+ throw new Error("Agent messaging participant is not available.");
506
503
  }
507
504
  await this.room.messaging.sendMessage({
508
505
  to: participant,
509
506
  type: agent_messages_js_1.agentRoomMessageType,
510
507
  message: message.toJson(),
511
508
  attachment,
512
- ignoreOffline,
513
509
  });
514
510
  }
515
511
  startRoomStatusListener() {
@@ -610,8 +606,8 @@ class ChatThreadSession extends change_emitter_js_1.ChangeEmitter {
610
606
  const openThread = new agent_messages_js_1.OpenThread({ threadId: this.threadPath, load: true, sinceTurn });
611
607
  this.setLoadState(this.loadingStateForOpen(openThread, sinceTurn));
612
608
  try {
613
- await this.client.sendAgentMessage(openThread, { ignoreOffline: true });
614
- await this.requestModels({ ignoreOffline: true });
609
+ await this.client.sendAgentMessage(openThread);
610
+ await this.requestModels();
615
611
  }
616
612
  catch (error) {
617
613
  this.setLoadState(this.failedLoadState(error));
@@ -629,8 +625,8 @@ class ChatThreadSession extends change_emitter_js_1.ChangeEmitter {
629
625
  this.notifyListeners();
630
626
  }
631
627
  try {
632
- await this.client.sendAgentMessage(openThread, { ignoreOffline: true });
633
- await this.requestModels({ ignoreOffline: true });
628
+ await this.client.sendAgentMessage(openThread);
629
+ await this.requestModels();
634
630
  }
635
631
  catch (error) {
636
632
  this.setLoadState(this.failedLoadState(error));
@@ -653,10 +649,10 @@ class ChatThreadSession extends change_emitter_js_1.ChangeEmitter {
653
649
  return;
654
650
  }
655
651
  this.markClosed();
656
- await this.client.sendAgentMessage(new agent_messages_js_1.CloseThread({ threadId: this.threadPath }), { ignoreOffline: true });
652
+ await this.client.sendAgentMessage(new agent_messages_js_1.CloseThread({ threadId: this.threadPath })).catch(() => undefined);
657
653
  }
658
- requestModels({ ignoreOffline = false } = {}) {
659
- return this.client.sendAgentMessage(new agent_messages_js_1.ModelsRequest({ messageId: (0, uuid_1.v4)() }), { ignoreOffline });
654
+ requestModels() {
655
+ return this.client.sendAgentMessage(new agent_messages_js_1.ModelsRequest({ messageId: (0, uuid_1.v4)() }));
660
656
  }
661
657
  changeModel({ backend, provider, model, voice }) {
662
658
  return this.client.sendAgentMessage(new agent_messages_js_1.ChangeModel({
@@ -316,7 +316,7 @@ class AgentThreadStorageRepository extends ThreadStorageRepository {
316
316
  const ready = new Promise((resolve) => {
317
317
  this.pendingOpen = { resolve };
318
318
  });
319
- await this.chatClient.sendAgentMessage(new agent_messages_js_1.WatchThreads(), { ignoreOffline: true });
319
+ await this.chatClient.sendAgentMessage(new agent_messages_js_1.WatchThreads());
320
320
  await this.requestList();
321
321
  await ready;
322
322
  }
@@ -327,7 +327,7 @@ class AgentThreadStorageRepository extends ThreadStorageRepository {
327
327
  this.pendingListMessageId = undefined;
328
328
  this.pendingOpen?.resolve();
329
329
  this.pendingOpen = undefined;
330
- await this.chatClient.sendAgentMessage(new agent_messages_js_1.UnwatchThreads(), { ignoreOffline: true }).catch(() => undefined);
330
+ await this.chatClient.sendAgentMessage(new agent_messages_js_1.UnwatchThreads()).catch(() => undefined);
331
331
  }
332
332
  entries() {
333
333
  return [...this.entriesByPath.values()];
@@ -363,7 +363,7 @@ class AgentThreadStorageRepository extends ThreadStorageRepository {
363
363
  }
364
364
  const request = new agent_messages_js_1.ListThreads({ limit: this.limit, offset: 0 });
365
365
  this.pendingListMessageId = request.messageId;
366
- await this.chatClient.sendAgentMessage(request, { ignoreOffline: true });
366
+ await this.chatClient.sendAgentMessage(request);
367
367
  }
368
368
  handleEvent(event) {
369
369
  const message = event.message;
@@ -396,7 +396,7 @@ class AgentThreadStorageRepository extends ThreadStorageRepository {
396
396
  if (this.closed) {
397
397
  return;
398
398
  }
399
- await this.chatClient.sendAgentMessage(new agent_messages_js_1.WatchThreads(), { ignoreOffline: true });
399
+ await this.chatClient.sendAgentMessage(new agent_messages_js_1.WatchThreads());
400
400
  await this.requestList();
401
401
  }
402
402
  handleThreadsListed(message) {
@@ -242,7 +242,8 @@ export declare abstract class AgentMessage {
242
242
  readonly messageId: string;
243
243
  readonly senderName?: string;
244
244
  readonly createdAt: string;
245
- protected constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at }: JsonMap);
245
+ readonly metadata: JsonMap;
246
+ protected constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at, metadata }: JsonMap);
246
247
  toJson(): JsonMap;
247
248
  static fromJson(json: JsonMap): AgentMessage;
248
249
  }
@@ -633,18 +633,20 @@ function omitUndefined(value) {
633
633
  return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
634
634
  }
635
635
  export class AgentMessage {
636
- constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at }) {
636
+ constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at, metadata }) {
637
637
  this.type = String(type);
638
638
  const resolvedMessageId = stringOrNull(messageId ?? message_id)?.trim();
639
639
  this.messageId = resolvedMessageId == null || resolvedMessageId.length === 0 ? uuidv4() : resolvedMessageId;
640
640
  this.senderName = stringOrNull(senderName ?? sender_name);
641
641
  this.createdAt = stringOrNull(createdAt ?? created_at) ?? new Date().toISOString();
642
+ this.metadata = dynamicMapOrNull(metadata) ?? {};
642
643
  }
643
644
  toJson() {
644
645
  return {
645
646
  type: this.type,
646
647
  message_id: this.messageId,
647
648
  created_at: this.createdAt,
649
+ ...(Object.keys(this.metadata).length > 0 ? { metadata: this.metadata } : {}),
648
650
  ...(this.senderName != null ? { sender_name: this.senderName } : {}),
649
651
  };
650
652
  }
@@ -709,6 +711,7 @@ function makeMessageClass({ type, base = "message", fields = [], }) {
709
711
  messageId: stringOrNull(json.message_id),
710
712
  senderName: stringOrNull(json.sender_name),
711
713
  createdAt: stringOrNull(json.created_at),
714
+ metadata: dynamicMapOrNull(json.metadata),
712
715
  };
713
716
  if (base !== "message") {
714
717
  params.threadId = requiredString(json, "thread_id");
@@ -117,7 +117,6 @@ export declare abstract class BaseChatClient extends ChangeEmitter {
117
117
  private resolvedStartThreadMessage;
118
118
  abstract sendAgentMessage(message: AgentMessage, options?: {
119
119
  attachment?: Uint8Array;
120
- ignoreOffline?: boolean;
121
120
  }): Promise<void>;
122
121
  private drainPendingSessionEvents;
123
122
  handleAgentMessage(message: AgentMessage, { createdAt, attachment }?: {
@@ -155,9 +154,8 @@ export declare class MessagingChatClient extends BaseChatClient {
155
154
  waitForAgentParticipant({ waitKey }?: {
156
155
  waitKey?: string;
157
156
  }): Promise<RemoteParticipant>;
158
- sendAgentMessage(message: AgentMessage, { attachment, ignoreOffline }?: {
157
+ sendAgentMessage(message: AgentMessage, { attachment }?: {
159
158
  attachment?: Uint8Array;
160
- ignoreOffline?: boolean;
161
159
  }): Promise<void>;
162
160
  private readonly onMessagingChanged;
163
161
  private readonly onMessagingParticipantChanged;
@@ -204,9 +202,7 @@ export declare class ChatThreadSession extends ChangeEmitter {
204
202
  }): Promise<void>;
205
203
  private resetReplayState;
206
204
  close(): Promise<void>;
207
- requestModels({ ignoreOffline }?: {
208
- ignoreOffline?: boolean;
209
- }): Promise<void>;
205
+ requestModels(): Promise<void>;
210
206
  changeModel({ backend, provider, model, voice }: {
211
207
  backend?: string;
212
208
  provider: string;
@@ -487,21 +487,17 @@ export class MessagingChatClient extends BaseChatClient {
487
487
  this.pendingParticipantWaits.delete(key);
488
488
  }
489
489
  }
490
- async sendAgentMessage(message, { attachment, ignoreOffline = false } = {}) {
490
+ async sendAgentMessage(message, { attachment } = {}) {
491
491
  await this.start();
492
- let participant = this.agentParticipant();
492
+ const participant = this.agentParticipant();
493
493
  if (participant == null) {
494
- if (ignoreOffline) {
495
- return;
496
- }
497
- participant = await this.waitForAgentParticipant({ waitKey: message.messageId });
494
+ throw new Error("Agent messaging participant is not available.");
498
495
  }
499
496
  await this.room.messaging.sendMessage({
500
497
  to: participant,
501
498
  type: agentRoomMessageType,
502
499
  message: message.toJson(),
503
500
  attachment,
504
- ignoreOffline,
505
501
  });
506
502
  }
507
503
  startRoomStatusListener() {
@@ -601,8 +597,8 @@ export class ChatThreadSession extends ChangeEmitter {
601
597
  const openThread = new OpenThread({ threadId: this.threadPath, load: true, sinceTurn });
602
598
  this.setLoadState(this.loadingStateForOpen(openThread, sinceTurn));
603
599
  try {
604
- await this.client.sendAgentMessage(openThread, { ignoreOffline: true });
605
- await this.requestModels({ ignoreOffline: true });
600
+ await this.client.sendAgentMessage(openThread);
601
+ await this.requestModels();
606
602
  }
607
603
  catch (error) {
608
604
  this.setLoadState(this.failedLoadState(error));
@@ -620,8 +616,8 @@ export class ChatThreadSession extends ChangeEmitter {
620
616
  this.notifyListeners();
621
617
  }
622
618
  try {
623
- await this.client.sendAgentMessage(openThread, { ignoreOffline: true });
624
- await this.requestModels({ ignoreOffline: true });
619
+ await this.client.sendAgentMessage(openThread);
620
+ await this.requestModels();
625
621
  }
626
622
  catch (error) {
627
623
  this.setLoadState(this.failedLoadState(error));
@@ -644,10 +640,10 @@ export class ChatThreadSession extends ChangeEmitter {
644
640
  return;
645
641
  }
646
642
  this.markClosed();
647
- await this.client.sendAgentMessage(new CloseThread({ threadId: this.threadPath }), { ignoreOffline: true });
643
+ await this.client.sendAgentMessage(new CloseThread({ threadId: this.threadPath })).catch(() => undefined);
648
644
  }
649
- requestModels({ ignoreOffline = false } = {}) {
650
- return this.client.sendAgentMessage(new ModelsRequest({ messageId: uuidv4() }), { ignoreOffline });
645
+ requestModels() {
646
+ return this.client.sendAgentMessage(new ModelsRequest({ messageId: uuidv4() }));
651
647
  }
652
648
  changeModel({ backend, provider, model, voice }) {
653
649
  return this.client.sendAgentMessage(new ChangeModel({
@@ -307,7 +307,7 @@ export class AgentThreadStorageRepository extends ThreadStorageRepository {
307
307
  const ready = new Promise((resolve) => {
308
308
  this.pendingOpen = { resolve };
309
309
  });
310
- await this.chatClient.sendAgentMessage(new WatchThreads(), { ignoreOffline: true });
310
+ await this.chatClient.sendAgentMessage(new WatchThreads());
311
311
  await this.requestList();
312
312
  await ready;
313
313
  }
@@ -318,7 +318,7 @@ export class AgentThreadStorageRepository extends ThreadStorageRepository {
318
318
  this.pendingListMessageId = undefined;
319
319
  this.pendingOpen?.resolve();
320
320
  this.pendingOpen = undefined;
321
- await this.chatClient.sendAgentMessage(new UnwatchThreads(), { ignoreOffline: true }).catch(() => undefined);
321
+ await this.chatClient.sendAgentMessage(new UnwatchThreads()).catch(() => undefined);
322
322
  }
323
323
  entries() {
324
324
  return [...this.entriesByPath.values()];
@@ -354,7 +354,7 @@ export class AgentThreadStorageRepository extends ThreadStorageRepository {
354
354
  }
355
355
  const request = new ListThreads({ limit: this.limit, offset: 0 });
356
356
  this.pendingListMessageId = request.messageId;
357
- await this.chatClient.sendAgentMessage(request, { ignoreOffline: true });
357
+ await this.chatClient.sendAgentMessage(request);
358
358
  }
359
359
  handleEvent(event) {
360
360
  const message = event.message;
@@ -387,7 +387,7 @@ export class AgentThreadStorageRepository extends ThreadStorageRepository {
387
387
  if (this.closed) {
388
388
  return;
389
389
  }
390
- await this.chatClient.sendAgentMessage(new WatchThreads(), { ignoreOffline: true });
390
+ await this.chatClient.sendAgentMessage(new WatchThreads());
391
391
  await this.requestList();
392
392
  }
393
393
  handleThreadsListed(message) {
@@ -242,7 +242,8 @@ export declare abstract class AgentMessage {
242
242
  readonly messageId: string;
243
243
  readonly senderName?: string;
244
244
  readonly createdAt: string;
245
- protected constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at }: JsonMap);
245
+ readonly metadata: JsonMap;
246
+ protected constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at, metadata }: JsonMap);
246
247
  toJson(): JsonMap;
247
248
  static fromJson(json: JsonMap): AgentMessage;
248
249
  }
@@ -656,18 +656,20 @@ function omitUndefined(value) {
656
656
  return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
657
657
  }
658
658
  class AgentMessage {
659
- constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at }) {
659
+ constructor({ type, messageId, message_id, senderName, sender_name, createdAt, created_at, metadata }) {
660
660
  this.type = String(type);
661
661
  const resolvedMessageId = stringOrNull(messageId ?? message_id)?.trim();
662
662
  this.messageId = resolvedMessageId == null || resolvedMessageId.length === 0 ? (0, uuid_1.v4)() : resolvedMessageId;
663
663
  this.senderName = stringOrNull(senderName ?? sender_name);
664
664
  this.createdAt = stringOrNull(createdAt ?? created_at) ?? new Date().toISOString();
665
+ this.metadata = dynamicMapOrNull(metadata) ?? {};
665
666
  }
666
667
  toJson() {
667
668
  return {
668
669
  type: this.type,
669
670
  message_id: this.messageId,
670
671
  created_at: this.createdAt,
672
+ ...(Object.keys(this.metadata).length > 0 ? { metadata: this.metadata } : {}),
671
673
  ...(this.senderName != null ? { sender_name: this.senderName } : {}),
672
674
  };
673
675
  }
@@ -735,6 +737,7 @@ function makeMessageClass({ type, base = "message", fields = [], }) {
735
737
  messageId: stringOrNull(json.message_id),
736
738
  senderName: stringOrNull(json.sender_name),
737
739
  createdAt: stringOrNull(json.created_at),
740
+ metadata: dynamicMapOrNull(json.metadata),
738
741
  };
739
742
  if (base !== "message") {
740
743
  params.threadId = requiredString(json, "thread_id");
@@ -117,7 +117,6 @@ export declare abstract class BaseChatClient extends ChangeEmitter {
117
117
  private resolvedStartThreadMessage;
118
118
  abstract sendAgentMessage(message: AgentMessage, options?: {
119
119
  attachment?: Uint8Array;
120
- ignoreOffline?: boolean;
121
120
  }): Promise<void>;
122
121
  private drainPendingSessionEvents;
123
122
  handleAgentMessage(message: AgentMessage, { createdAt, attachment }?: {
@@ -155,9 +154,8 @@ export declare class MessagingChatClient extends BaseChatClient {
155
154
  waitForAgentParticipant({ waitKey }?: {
156
155
  waitKey?: string;
157
156
  }): Promise<RemoteParticipant>;
158
- sendAgentMessage(message: AgentMessage, { attachment, ignoreOffline }?: {
157
+ sendAgentMessage(message: AgentMessage, { attachment }?: {
159
158
  attachment?: Uint8Array;
160
- ignoreOffline?: boolean;
161
159
  }): Promise<void>;
162
160
  private readonly onMessagingChanged;
163
161
  private readonly onMessagingParticipantChanged;
@@ -204,9 +202,7 @@ export declare class ChatThreadSession extends ChangeEmitter {
204
202
  }): Promise<void>;
205
203
  private resetReplayState;
206
204
  close(): Promise<void>;
207
- requestModels({ ignoreOffline }?: {
208
- ignoreOffline?: boolean;
209
- }): Promise<void>;
205
+ requestModels(): Promise<void>;
210
206
  changeModel({ backend, provider, model, voice }: {
211
207
  backend?: string;
212
208
  provider: string;
@@ -495,21 +495,17 @@ class MessagingChatClient extends BaseChatClient {
495
495
  this.pendingParticipantWaits.delete(key);
496
496
  }
497
497
  }
498
- async sendAgentMessage(message, { attachment, ignoreOffline = false } = {}) {
498
+ async sendAgentMessage(message, { attachment } = {}) {
499
499
  await this.start();
500
- let participant = this.agentParticipant();
500
+ const participant = this.agentParticipant();
501
501
  if (participant == null) {
502
- if (ignoreOffline) {
503
- return;
504
- }
505
- participant = await this.waitForAgentParticipant({ waitKey: message.messageId });
502
+ throw new Error("Agent messaging participant is not available.");
506
503
  }
507
504
  await this.room.messaging.sendMessage({
508
505
  to: participant,
509
506
  type: agent_messages_js_1.agentRoomMessageType,
510
507
  message: message.toJson(),
511
508
  attachment,
512
- ignoreOffline,
513
509
  });
514
510
  }
515
511
  startRoomStatusListener() {
@@ -610,8 +606,8 @@ class ChatThreadSession extends change_emitter_js_1.ChangeEmitter {
610
606
  const openThread = new agent_messages_js_1.OpenThread({ threadId: this.threadPath, load: true, sinceTurn });
611
607
  this.setLoadState(this.loadingStateForOpen(openThread, sinceTurn));
612
608
  try {
613
- await this.client.sendAgentMessage(openThread, { ignoreOffline: true });
614
- await this.requestModels({ ignoreOffline: true });
609
+ await this.client.sendAgentMessage(openThread);
610
+ await this.requestModels();
615
611
  }
616
612
  catch (error) {
617
613
  this.setLoadState(this.failedLoadState(error));
@@ -629,8 +625,8 @@ class ChatThreadSession extends change_emitter_js_1.ChangeEmitter {
629
625
  this.notifyListeners();
630
626
  }
631
627
  try {
632
- await this.client.sendAgentMessage(openThread, { ignoreOffline: true });
633
- await this.requestModels({ ignoreOffline: true });
628
+ await this.client.sendAgentMessage(openThread);
629
+ await this.requestModels();
634
630
  }
635
631
  catch (error) {
636
632
  this.setLoadState(this.failedLoadState(error));
@@ -653,10 +649,10 @@ class ChatThreadSession extends change_emitter_js_1.ChangeEmitter {
653
649
  return;
654
650
  }
655
651
  this.markClosed();
656
- await this.client.sendAgentMessage(new agent_messages_js_1.CloseThread({ threadId: this.threadPath }), { ignoreOffline: true });
652
+ await this.client.sendAgentMessage(new agent_messages_js_1.CloseThread({ threadId: this.threadPath })).catch(() => undefined);
657
653
  }
658
- requestModels({ ignoreOffline = false } = {}) {
659
- return this.client.sendAgentMessage(new agent_messages_js_1.ModelsRequest({ messageId: (0, uuid_1.v4)() }), { ignoreOffline });
654
+ requestModels() {
655
+ return this.client.sendAgentMessage(new agent_messages_js_1.ModelsRequest({ messageId: (0, uuid_1.v4)() }));
660
656
  }
661
657
  changeModel({ backend, provider, model, voice }) {
662
658
  return this.client.sendAgentMessage(new agent_messages_js_1.ChangeModel({
@@ -316,7 +316,7 @@ class AgentThreadStorageRepository extends ThreadStorageRepository {
316
316
  const ready = new Promise((resolve) => {
317
317
  this.pendingOpen = { resolve };
318
318
  });
319
- await this.chatClient.sendAgentMessage(new agent_messages_js_1.WatchThreads(), { ignoreOffline: true });
319
+ await this.chatClient.sendAgentMessage(new agent_messages_js_1.WatchThreads());
320
320
  await this.requestList();
321
321
  await ready;
322
322
  }
@@ -327,7 +327,7 @@ class AgentThreadStorageRepository extends ThreadStorageRepository {
327
327
  this.pendingListMessageId = undefined;
328
328
  this.pendingOpen?.resolve();
329
329
  this.pendingOpen = undefined;
330
- await this.chatClient.sendAgentMessage(new agent_messages_js_1.UnwatchThreads(), { ignoreOffline: true }).catch(() => undefined);
330
+ await this.chatClient.sendAgentMessage(new agent_messages_js_1.UnwatchThreads()).catch(() => undefined);
331
331
  }
332
332
  entries() {
333
333
  return [...this.entriesByPath.values()];
@@ -363,7 +363,7 @@ class AgentThreadStorageRepository extends ThreadStorageRepository {
363
363
  }
364
364
  const request = new agent_messages_js_1.ListThreads({ limit: this.limit, offset: 0 });
365
365
  this.pendingListMessageId = request.messageId;
366
- await this.chatClient.sendAgentMessage(request, { ignoreOffline: true });
366
+ await this.chatClient.sendAgentMessage(request);
367
367
  }
368
368
  handleEvent(event) {
369
369
  const message = event.message;
@@ -396,7 +396,7 @@ class AgentThreadStorageRepository extends ThreadStorageRepository {
396
396
  if (this.closed) {
397
397
  return;
398
398
  }
399
- await this.chatClient.sendAgentMessage(new agent_messages_js_1.WatchThreads(), { ignoreOffline: true });
399
+ await this.chatClient.sendAgentMessage(new agent_messages_js_1.WatchThreads());
400
400
  await this.requestList();
401
401
  }
402
402
  handleThreadsListed(message) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshagent/meshagent-agents",
3
- "version": "0.44.2",
3
+ "version": "0.44.4",
4
4
  "description": "Agent chat sessions and clients for Meshagent TypeScript applications.",
5
5
  "homepage": "https://github.com/meshagent/meshagent-agents-ts",
6
6
  "scripts": {
@@ -47,7 +47,7 @@
47
47
  "typescript": "^5.8.2"
48
48
  },
49
49
  "dependencies": {
50
- "@meshagent/meshagent": "^0.44.2",
50
+ "@meshagent/meshagent": "^0.44.4",
51
51
  "apache-arrow": "^21.0.0",
52
52
  "uuid": "^14.0.0"
53
53
  },