@meshagent/meshagent-tailwind 0.39.7 → 0.39.9

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,13 @@
1
+ ## [0.39.9]
2
+ - Added streaming `watchTable` support to the TypeScript DatasetsClient to receive dataset table change events with versioning metadata.
3
+
4
+ ## [0.39.8]
5
+ - TypeScript API: `RoomContainer` now includes a required `ports: number[]` field (and validation) in container listings
6
+ - TypeScript API: `ContainerSpec` now supports optional fields `private`, `on_demand`, and `writable_root_fs`
7
+ - React developer-console package: refactored view switching to use strongly-typed tab configs and reorganized the console UI into grouped primary/resource/terminal tab groups
8
+ - React developer-console package: updated console layouts to wire the developer terminal/container/image/logs/metrics/traces panes into the new tab/view structure
9
+ - Build tooling: developer-console package `build:types` now runs declaration-path rewrite as part of type generation
10
+
1
11
  ## [0.39.7]
2
12
  - Updated Meshagent JS/TS package manifests so inter-package dependencies are aligned to the new Meshagent version (`@meshagent/*` packages now depend on the updated `^0.39.6` versions).
3
13
 
@@ -11,10 +11,11 @@ export declare enum ChatThreadDisplayMode {
11
11
  }
12
12
  export declare class ChatAgentConversationDescriptor {
13
13
  private constructor();
14
- static chat({ chatThreadDisplayMode, threadDir, threadListPath, }?: {
14
+ static chat({ chatThreadDisplayMode, threadDir, threadListPath, threadPath, }?: {
15
15
  chatThreadDisplayMode?: ChatThreadDisplayMode;
16
16
  threadDir?: string | null;
17
17
  threadListPath?: string | null;
18
+ threadPath?: string | null;
18
19
  }): ChatAgentConversationDescriptor;
19
20
  static voiceOnly(): ChatAgentConversationDescriptor;
20
21
  static meeting(): ChatAgentConversationDescriptor;
@@ -22,6 +23,7 @@ export declare class ChatAgentConversationDescriptor {
22
23
  readonly chatThreadDisplayMode: ChatThreadDisplayMode;
23
24
  readonly threadDir: string | null;
24
25
  readonly threadListPath: string | null;
26
+ readonly threadPath: string | null;
25
27
  get isChat(): boolean;
26
28
  get isVoiceOnly(): boolean;
27
29
  get isMeeting(): boolean;
@@ -36,11 +38,15 @@ export declare function chatThreadDisplayModeFromAnnotation(value: unknown): Cha
36
38
  export declare function normalizedThreadDir(threadDir?: string | null): string | null;
37
39
  export declare function participantThreadDir(participant: RemoteParticipant): string | null;
38
40
  export declare function participantThreadListPath(participant: RemoteParticipant): string | null;
41
+ export declare function participantThreadPath(participant: RemoteParticipant): string | null;
39
42
  export declare function participantConversationDescriptor(participant: RemoteParticipant): ChatAgentConversationDescriptor | null;
40
43
  export declare function serviceThreadDir(service: ServiceSpec): string | null;
41
44
  export declare function serviceThreadListPath(service: ServiceSpec, { remoteParticipants }?: {
42
45
  remoteParticipants?: Iterable<RemoteParticipant>;
43
46
  }): string | null;
47
+ export declare function serviceThreadPath(service: ServiceSpec, { remoteParticipants }?: {
48
+ remoteParticipants?: Iterable<RemoteParticipant>;
49
+ }): string | null;
44
50
  export declare function serviceConversationDescriptor(service: ServiceSpec, { remoteParticipants }?: {
45
51
  remoteParticipants?: Iterable<RemoteParticipant>;
46
52
  }): ChatAgentConversationDescriptor | null;
@@ -35,10 +35,12 @@ __export(conversation_descriptor_exports, {
35
35
  participantSupportsVoice: () => participantSupportsVoice,
36
36
  participantThreadDir: () => participantThreadDir,
37
37
  participantThreadListPath: () => participantThreadListPath,
38
+ participantThreadPath: () => participantThreadPath,
38
39
  resolvedThreadListPath: () => resolvedThreadListPath,
39
40
  serviceConversationDescriptor: () => serviceConversationDescriptor,
40
41
  serviceThreadDir: () => serviceThreadDir,
41
- serviceThreadListPath: () => serviceThreadListPath
42
+ serviceThreadListPath: () => serviceThreadListPath,
43
+ serviceThreadPath: () => serviceThreadPath
42
44
  });
43
45
  module.exports = __toCommonJS(conversation_descriptor_exports);
44
46
  var import_meshagent = require("@meshagent/meshagent");
@@ -60,23 +62,27 @@ class ChatAgentConversationDescriptor {
60
62
  kind,
61
63
  chatThreadDisplayMode = 0 /* SingleThread */,
62
64
  threadDir = null,
63
- threadListPath = null
65
+ threadListPath = null,
66
+ threadPath = null
64
67
  }) {
65
68
  this.kind = kind;
66
69
  this.chatThreadDisplayMode = chatThreadDisplayMode;
67
70
  this.threadDir = threadDir;
68
71
  this.threadListPath = threadListPath;
72
+ this.threadPath = threadPath;
69
73
  }
70
74
  static chat({
71
75
  chatThreadDisplayMode = 0 /* SingleThread */,
72
76
  threadDir = null,
73
- threadListPath = null
77
+ threadListPath = null,
78
+ threadPath = null
74
79
  } = {}) {
75
80
  return new ChatAgentConversationDescriptor({
76
81
  kind: 0 /* Chat */,
77
82
  chatThreadDisplayMode,
78
83
  threadDir,
79
- threadListPath
84
+ threadListPath,
85
+ threadPath
80
86
  });
81
87
  }
82
88
  static voiceOnly() {
@@ -93,6 +99,7 @@ class ChatAgentConversationDescriptor {
93
99
  chatThreadDisplayMode;
94
100
  threadDir;
95
101
  threadListPath;
102
+ threadPath;
96
103
  get isChat() {
97
104
  return this.kind === 0 /* Chat */;
98
105
  }
@@ -164,12 +171,16 @@ function participantThreadListPath(participant) {
164
171
  const threadListPath = normalizedAnnotationString(participant.getAttribute("meshagent.chatbot.thread-list"));
165
172
  return threadListPath ?? threadListPathFromThreadDir(participantThreadDir(participant));
166
173
  }
174
+ function participantThreadPath(participant) {
175
+ return normalizedAnnotationString(participant.getAttribute("meshagent.chatbot.thread-path"));
176
+ }
167
177
  function participantConversationDescriptor(participant) {
168
178
  const supportsVoice = participantSupportsVoice(participant);
169
179
  const supportsChat = participantSupportsChatOverride(participant);
170
180
  const threadDir = participantThreadDir(participant);
171
181
  const threadListPath = participantThreadListPath(participant);
172
- const hasThreadAnnotations = normalizedAnnotationString(participant.getAttribute("meshagent.chatbot.threading")) !== null || threadDir !== null || threadListPath !== null;
182
+ const threadPath = participantThreadPath(participant);
183
+ const hasThreadAnnotations = normalizedAnnotationString(participant.getAttribute("meshagent.chatbot.threading")) !== null || threadDir !== null || threadListPath !== null || threadPath !== null;
173
184
  if (supportsChat === false) {
174
185
  return supportsVoice ? ChatAgentConversationDescriptor.voiceOnly() : null;
175
186
  }
@@ -182,7 +193,8 @@ function participantConversationDescriptor(participant) {
182
193
  participant.getAttribute("meshagent.chatbot.threading")
183
194
  ),
184
195
  threadDir,
185
- threadListPath
196
+ threadListPath,
197
+ threadPath
186
198
  });
187
199
  }
188
200
  if (supportsVoice) {
@@ -216,6 +228,24 @@ function serviceThreadListPath(service, { remoteParticipants = [] } = {}) {
216
228
  }
217
229
  return null;
218
230
  }
231
+ function serviceThreadPath(service, { remoteParticipants = [] } = {}) {
232
+ const annotationPath = normalizedAnnotationString(
233
+ firstAgent(service)?.annotations?.["meshagent.chatbot.thread-path"]
234
+ );
235
+ if (annotationPath !== null) {
236
+ return annotationPath;
237
+ }
238
+ const agentName = firstAgent(service)?.name;
239
+ if (!agentName || agentName.trim() === "") {
240
+ return null;
241
+ }
242
+ for (const participant of remoteParticipants) {
243
+ if (participant.getAttribute("name") === agentName) {
244
+ return participantThreadPath(participant);
245
+ }
246
+ }
247
+ return null;
248
+ }
219
249
  function serviceConversationDescriptor(service, { remoteParticipants = [] } = {}) {
220
250
  const type = firstAgent(service)?.annotations?.["meshagent.agent.type"];
221
251
  if (type === "VoiceBot") {
@@ -232,7 +262,8 @@ function serviceConversationDescriptor(service, { remoteParticipants = [] } = {}
232
262
  firstAgent(service)?.annotations?.["meshagent.chatbot.threading"]
233
263
  ),
234
264
  threadDir: serviceThreadDir(service),
235
- threadListPath: serviceThreadListPath(service, { remoteParticipants })
265
+ threadListPath: serviceThreadListPath(service, { remoteParticipants }),
266
+ threadPath: serviceThreadPath(service, { remoteParticipants })
236
267
  });
237
268
  }
238
269
  function conversationDescriptorForParticipant(participant, {
@@ -277,6 +308,9 @@ function chatDocumentPath(agentName, {
277
308
  } = {}) {
278
309
  const normalizedDir = normalizedThreadDir(threadDir);
279
310
  if (normalizedDir !== null) {
311
+ if (normalizedDir.startsWith("dataset://") || normalizedDir.startsWith("tmp://")) {
312
+ return `${normalizedDir}/main`;
313
+ }
280
314
  return `${normalizedDir}/main.thread`;
281
315
  }
282
316
  const defaultThreadDir = defaultThreadDocumentDir(agentName);
@@ -11,10 +11,11 @@ export declare enum ChatThreadDisplayMode {
11
11
  }
12
12
  export declare class ChatAgentConversationDescriptor {
13
13
  private constructor();
14
- static chat({ chatThreadDisplayMode, threadDir, threadListPath, }?: {
14
+ static chat({ chatThreadDisplayMode, threadDir, threadListPath, threadPath, }?: {
15
15
  chatThreadDisplayMode?: ChatThreadDisplayMode;
16
16
  threadDir?: string | null;
17
17
  threadListPath?: string | null;
18
+ threadPath?: string | null;
18
19
  }): ChatAgentConversationDescriptor;
19
20
  static voiceOnly(): ChatAgentConversationDescriptor;
20
21
  static meeting(): ChatAgentConversationDescriptor;
@@ -22,6 +23,7 @@ export declare class ChatAgentConversationDescriptor {
22
23
  readonly chatThreadDisplayMode: ChatThreadDisplayMode;
23
24
  readonly threadDir: string | null;
24
25
  readonly threadListPath: string | null;
26
+ readonly threadPath: string | null;
25
27
  get isChat(): boolean;
26
28
  get isVoiceOnly(): boolean;
27
29
  get isMeeting(): boolean;
@@ -36,11 +38,15 @@ export declare function chatThreadDisplayModeFromAnnotation(value: unknown): Cha
36
38
  export declare function normalizedThreadDir(threadDir?: string | null): string | null;
37
39
  export declare function participantThreadDir(participant: RemoteParticipant): string | null;
38
40
  export declare function participantThreadListPath(participant: RemoteParticipant): string | null;
41
+ export declare function participantThreadPath(participant: RemoteParticipant): string | null;
39
42
  export declare function participantConversationDescriptor(participant: RemoteParticipant): ChatAgentConversationDescriptor | null;
40
43
  export declare function serviceThreadDir(service: ServiceSpec): string | null;
41
44
  export declare function serviceThreadListPath(service: ServiceSpec, { remoteParticipants }?: {
42
45
  remoteParticipants?: Iterable<RemoteParticipant>;
43
46
  }): string | null;
47
+ export declare function serviceThreadPath(service: ServiceSpec, { remoteParticipants }?: {
48
+ remoteParticipants?: Iterable<RemoteParticipant>;
49
+ }): string | null;
44
50
  export declare function serviceConversationDescriptor(service: ServiceSpec, { remoteParticipants }?: {
45
51
  remoteParticipants?: Iterable<RemoteParticipant>;
46
52
  }): ChatAgentConversationDescriptor | null;
@@ -17,23 +17,27 @@ class ChatAgentConversationDescriptor {
17
17
  kind,
18
18
  chatThreadDisplayMode = 0 /* SingleThread */,
19
19
  threadDir = null,
20
- threadListPath = null
20
+ threadListPath = null,
21
+ threadPath = null
21
22
  }) {
22
23
  this.kind = kind;
23
24
  this.chatThreadDisplayMode = chatThreadDisplayMode;
24
25
  this.threadDir = threadDir;
25
26
  this.threadListPath = threadListPath;
27
+ this.threadPath = threadPath;
26
28
  }
27
29
  static chat({
28
30
  chatThreadDisplayMode = 0 /* SingleThread */,
29
31
  threadDir = null,
30
- threadListPath = null
32
+ threadListPath = null,
33
+ threadPath = null
31
34
  } = {}) {
32
35
  return new ChatAgentConversationDescriptor({
33
36
  kind: 0 /* Chat */,
34
37
  chatThreadDisplayMode,
35
38
  threadDir,
36
- threadListPath
39
+ threadListPath,
40
+ threadPath
37
41
  });
38
42
  }
39
43
  static voiceOnly() {
@@ -50,6 +54,7 @@ class ChatAgentConversationDescriptor {
50
54
  chatThreadDisplayMode;
51
55
  threadDir;
52
56
  threadListPath;
57
+ threadPath;
53
58
  get isChat() {
54
59
  return this.kind === 0 /* Chat */;
55
60
  }
@@ -121,12 +126,16 @@ function participantThreadListPath(participant) {
121
126
  const threadListPath = normalizedAnnotationString(participant.getAttribute("meshagent.chatbot.thread-list"));
122
127
  return threadListPath ?? threadListPathFromThreadDir(participantThreadDir(participant));
123
128
  }
129
+ function participantThreadPath(participant) {
130
+ return normalizedAnnotationString(participant.getAttribute("meshagent.chatbot.thread-path"));
131
+ }
124
132
  function participantConversationDescriptor(participant) {
125
133
  const supportsVoice = participantSupportsVoice(participant);
126
134
  const supportsChat = participantSupportsChatOverride(participant);
127
135
  const threadDir = participantThreadDir(participant);
128
136
  const threadListPath = participantThreadListPath(participant);
129
- const hasThreadAnnotations = normalizedAnnotationString(participant.getAttribute("meshagent.chatbot.threading")) !== null || threadDir !== null || threadListPath !== null;
137
+ const threadPath = participantThreadPath(participant);
138
+ const hasThreadAnnotations = normalizedAnnotationString(participant.getAttribute("meshagent.chatbot.threading")) !== null || threadDir !== null || threadListPath !== null || threadPath !== null;
130
139
  if (supportsChat === false) {
131
140
  return supportsVoice ? ChatAgentConversationDescriptor.voiceOnly() : null;
132
141
  }
@@ -139,7 +148,8 @@ function participantConversationDescriptor(participant) {
139
148
  participant.getAttribute("meshagent.chatbot.threading")
140
149
  ),
141
150
  threadDir,
142
- threadListPath
151
+ threadListPath,
152
+ threadPath
143
153
  });
144
154
  }
145
155
  if (supportsVoice) {
@@ -173,6 +183,24 @@ function serviceThreadListPath(service, { remoteParticipants = [] } = {}) {
173
183
  }
174
184
  return null;
175
185
  }
186
+ function serviceThreadPath(service, { remoteParticipants = [] } = {}) {
187
+ const annotationPath = normalizedAnnotationString(
188
+ firstAgent(service)?.annotations?.["meshagent.chatbot.thread-path"]
189
+ );
190
+ if (annotationPath !== null) {
191
+ return annotationPath;
192
+ }
193
+ const agentName = firstAgent(service)?.name;
194
+ if (!agentName || agentName.trim() === "") {
195
+ return null;
196
+ }
197
+ for (const participant of remoteParticipants) {
198
+ if (participant.getAttribute("name") === agentName) {
199
+ return participantThreadPath(participant);
200
+ }
201
+ }
202
+ return null;
203
+ }
176
204
  function serviceConversationDescriptor(service, { remoteParticipants = [] } = {}) {
177
205
  const type = firstAgent(service)?.annotations?.["meshagent.agent.type"];
178
206
  if (type === "VoiceBot") {
@@ -189,7 +217,8 @@ function serviceConversationDescriptor(service, { remoteParticipants = [] } = {}
189
217
  firstAgent(service)?.annotations?.["meshagent.chatbot.threading"]
190
218
  ),
191
219
  threadDir: serviceThreadDir(service),
192
- threadListPath: serviceThreadListPath(service, { remoteParticipants })
220
+ threadListPath: serviceThreadListPath(service, { remoteParticipants }),
221
+ threadPath: serviceThreadPath(service, { remoteParticipants })
193
222
  });
194
223
  }
195
224
  function conversationDescriptorForParticipant(participant, {
@@ -234,6 +263,9 @@ function chatDocumentPath(agentName, {
234
263
  } = {}) {
235
264
  const normalizedDir = normalizedThreadDir(threadDir);
236
265
  if (normalizedDir !== null) {
266
+ if (normalizedDir.startsWith("dataset://") || normalizedDir.startsWith("tmp://")) {
267
+ return `${normalizedDir}/main`;
268
+ }
237
269
  return `${normalizedDir}/main.thread`;
238
270
  }
239
271
  const defaultThreadDir = defaultThreadDocumentDir(agentName);
@@ -273,8 +305,10 @@ export {
273
305
  participantSupportsVoice,
274
306
  participantThreadDir,
275
307
  participantThreadListPath,
308
+ participantThreadPath,
276
309
  resolvedThreadListPath,
277
310
  serviceConversationDescriptor,
278
311
  serviceThreadDir,
279
- serviceThreadListPath
312
+ serviceThreadListPath,
313
+ serviceThreadPath
280
314
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshagent/meshagent-tailwind",
3
- "version": "0.39.7",
3
+ "version": "0.39.9",
4
4
  "description": "Meshagent Tailwind Components",
5
5
  "homepage": "https://github.com/meshagent/meshagent-tailwind",
6
6
  "scripts": {
@@ -32,8 +32,8 @@
32
32
  "CHANGELOG.md"
33
33
  ],
34
34
  "dependencies": {
35
- "@meshagent/meshagent": "^0.39.7",
36
- "@meshagent/meshagent-react": "^0.39.7",
35
+ "@meshagent/meshagent": "^0.39.9",
36
+ "@meshagent/meshagent-react": "^0.39.9",
37
37
  "@radix-ui/react-avatar": "^1.1.10",
38
38
  "@radix-ui/react-checkbox": "^1.3.2",
39
39
  "@radix-ui/react-dialog": "^1.1.14",