@harnessio/ai-chat-core 0.0.12 → 0.0.14
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/dist/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
var J = Object.defineProperty;
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import k, { createContext as q, useContext as
|
|
2
|
+
var W = (i, s, t) => s in i ? J(i, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[s] = t;
|
|
3
|
+
var u = (i, s, t) => W(i, typeof s != "symbol" ? s + "" : s, t);
|
|
4
|
+
import k, { createContext as q, useContext as U, useState as b, useEffect as w, useReducer as z, useCallback as C, useMemo as V } from "react";
|
|
5
5
|
class G {
|
|
6
6
|
constructor() {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
u(this, "plugins", /* @__PURE__ */ new Map());
|
|
8
|
+
u(this, "renderersByType", /* @__PURE__ */ new Map());
|
|
9
9
|
}
|
|
10
10
|
registerPlugin(s) {
|
|
11
11
|
this.plugins.has(s.id), this.plugins.set(s.id, s), s.renderers.forEach((t) => {
|
|
12
12
|
const e = this.renderersByType.get(t.type) || [];
|
|
13
|
-
e.push(t), e.sort((
|
|
13
|
+
e.push(t), e.sort((r, n) => ((n == null ? void 0 : n.priority) ?? 0) - ((r == null ? void 0 : r.priority) ?? 0)), this.renderersByType.set(t.type, e);
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
unregisterPlugin(s) {
|
|
17
17
|
const t = this.plugins.get(s);
|
|
18
18
|
return t ? (t.renderers.forEach((e) => {
|
|
19
|
-
const
|
|
20
|
-
|
|
19
|
+
const n = (this.renderersByType.get(e.type) || []).filter((a) => !t.renderers.includes(a));
|
|
20
|
+
n.length === 0 ? this.renderersByType.delete(e.type) : this.renderersByType.set(e.type, n);
|
|
21
21
|
}), this.plugins.delete(s)) : !1;
|
|
22
22
|
}
|
|
23
23
|
getPlugin(s) {
|
|
@@ -38,8 +38,8 @@ class G {
|
|
|
38
38
|
}
|
|
39
39
|
class Y {
|
|
40
40
|
constructor() {
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
u(this, "handlers", /* @__PURE__ */ new Map());
|
|
42
|
+
u(this, "renderers", /* @__PURE__ */ new Map());
|
|
43
43
|
}
|
|
44
44
|
registerHandler(s, t) {
|
|
45
45
|
this.handlers.set(s, t);
|
|
@@ -74,15 +74,15 @@ class Y {
|
|
|
74
74
|
}
|
|
75
75
|
class K {
|
|
76
76
|
constructor(s) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
u(this, "executions", /* @__PURE__ */ new Map());
|
|
78
|
+
u(this, "executionQueue", []);
|
|
79
|
+
u(this, "isProcessing", !1);
|
|
80
|
+
u(this, "runningByName", /* @__PURE__ */ new Map());
|
|
81
|
+
u(this, "subscribers", /* @__PURE__ */ new Set());
|
|
82
|
+
u(this, "getHandler");
|
|
83
83
|
this.getHandler = s;
|
|
84
84
|
}
|
|
85
|
-
async executeCapability(s, t, e,
|
|
85
|
+
async executeCapability(s, t, e, r, n = "queue") {
|
|
86
86
|
if (!this.getHandler(s)) {
|
|
87
87
|
console.warn(`No handler registered for capability: ${s}`);
|
|
88
88
|
return;
|
|
@@ -93,9 +93,9 @@ class K {
|
|
|
93
93
|
args: e,
|
|
94
94
|
status: { type: "queued" },
|
|
95
95
|
timestamp: Date.now(),
|
|
96
|
-
messageId:
|
|
96
|
+
messageId: r
|
|
97
97
|
};
|
|
98
|
-
switch (this.executions.set(t, o), this.notifySubscribers(t),
|
|
98
|
+
switch (this.executions.set(t, o), this.notifySubscribers(t), n) {
|
|
99
99
|
case "queue":
|
|
100
100
|
default:
|
|
101
101
|
this.executionQueue.push(t);
|
|
@@ -111,20 +111,20 @@ class K {
|
|
|
111
111
|
const e = this.getHandler(t.name);
|
|
112
112
|
if (!e) continue;
|
|
113
113
|
t.status = { type: "running" }, this.notifySubscribers(s);
|
|
114
|
-
const
|
|
115
|
-
|
|
114
|
+
const r = this.runningByName.get(t.name) || [];
|
|
115
|
+
r.push(s), this.runningByName.set(t.name, r);
|
|
116
116
|
try {
|
|
117
|
-
const
|
|
117
|
+
const n = await e.execute(t.args, {
|
|
118
118
|
messageId: t.messageId,
|
|
119
119
|
capabilityId: s
|
|
120
120
|
});
|
|
121
|
-
t.status = { type: "complete", result:
|
|
122
|
-
} catch (
|
|
123
|
-
const a =
|
|
121
|
+
t.status = { type: "complete", result: n }, t.result = n;
|
|
122
|
+
} catch (n) {
|
|
123
|
+
const a = n instanceof Error ? n.message : "Unknown error";
|
|
124
124
|
t.status = { type: "error", error: a }, t.error = a;
|
|
125
125
|
} finally {
|
|
126
|
-
const
|
|
127
|
-
a > -1 &&
|
|
126
|
+
const n = this.runningByName.get(t.name) || [], a = n.indexOf(s);
|
|
127
|
+
a > -1 && n.splice(a, 1), n.length === 0 ? this.runningByName.delete(t.name) : this.runningByName.set(t.name, n), this.notifySubscribers(s);
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
this.isProcessing = !1;
|
|
@@ -146,9 +146,9 @@ class K {
|
|
|
146
146
|
this.executions.clear(), this.executionQueue = [], this.runningByName.clear();
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
class
|
|
149
|
+
class y {
|
|
150
150
|
constructor() {
|
|
151
|
-
|
|
151
|
+
u(this, "_subscriptions", /* @__PURE__ */ new Set());
|
|
152
152
|
}
|
|
153
153
|
subscribe(s) {
|
|
154
154
|
return this._subscriptions.add(s), () => {
|
|
@@ -163,10 +163,10 @@ class b {
|
|
|
163
163
|
return this._subscriptions.size;
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
|
-
class X extends
|
|
166
|
+
class X extends y {
|
|
167
167
|
constructor() {
|
|
168
168
|
super(...arguments);
|
|
169
|
-
|
|
169
|
+
u(this, "_state", {
|
|
170
170
|
isActive: !1,
|
|
171
171
|
context: null,
|
|
172
172
|
focusedContent: null,
|
|
@@ -196,14 +196,14 @@ class X extends b {
|
|
|
196
196
|
get focusedContentIndex() {
|
|
197
197
|
return this._state.focusedContentIndex;
|
|
198
198
|
}
|
|
199
|
-
focus(t, e,
|
|
199
|
+
focus(t, e, r, n = "detail") {
|
|
200
200
|
this._state = {
|
|
201
201
|
isActive: !0,
|
|
202
|
-
context:
|
|
202
|
+
context: n,
|
|
203
203
|
focusedContent: t,
|
|
204
204
|
focusedMessage: e,
|
|
205
205
|
focusedMessageId: e.id,
|
|
206
|
-
focusedContentIndex:
|
|
206
|
+
focusedContentIndex: r
|
|
207
207
|
}, this.notifySubscribers();
|
|
208
208
|
}
|
|
209
209
|
blur() {
|
|
@@ -216,8 +216,8 @@ class X extends b {
|
|
|
216
216
|
focusedContentIndex: null
|
|
217
217
|
}, this.notifySubscribers();
|
|
218
218
|
}
|
|
219
|
-
toggle(t, e,
|
|
220
|
-
this._state.isActive && this._state.focusedMessageId === e.id && this._state.focusedContentIndex ===
|
|
219
|
+
toggle(t, e, r, n = "detail") {
|
|
220
|
+
this._state.isActive && this._state.focusedMessageId === e.id && this._state.focusedContentIndex === r && this._state.context === n ? this.blur() : this.focus(t, e, r, n);
|
|
221
221
|
}
|
|
222
222
|
switchContext(t) {
|
|
223
223
|
this._state.isActive && this._state.focusedContent && (this._state = {
|
|
@@ -229,10 +229,10 @@ class X extends b {
|
|
|
229
229
|
if (!this._state.focusedMessageId || !t.length) return;
|
|
230
230
|
const e = t.findIndex((a) => a.id === this._state.focusedMessageId);
|
|
231
231
|
if (e === -1) return;
|
|
232
|
-
const
|
|
233
|
-
if (
|
|
234
|
-
const a =
|
|
235
|
-
this.focus(a,
|
|
232
|
+
const r = t[e], n = this._state.focusedContentIndex ?? 0;
|
|
233
|
+
if (n + 1 < r.content.length) {
|
|
234
|
+
const a = r.content[n + 1];
|
|
235
|
+
this.focus(a, r, n + 1, this._state.context || "detail");
|
|
236
236
|
return;
|
|
237
237
|
}
|
|
238
238
|
if (e + 1 < t.length) {
|
|
@@ -244,10 +244,10 @@ class X extends b {
|
|
|
244
244
|
if (!this._state.focusedMessageId || !t.length) return;
|
|
245
245
|
const e = t.findIndex((a) => a.id === this._state.focusedMessageId);
|
|
246
246
|
if (e === -1) return;
|
|
247
|
-
const
|
|
248
|
-
if (
|
|
249
|
-
const a =
|
|
250
|
-
this.focus(a,
|
|
247
|
+
const r = t[e], n = this._state.focusedContentIndex ?? 0;
|
|
248
|
+
if (n > 0) {
|
|
249
|
+
const a = r.content[n - 1];
|
|
250
|
+
this.focus(a, r, n - 1, this._state.context || "detail");
|
|
251
251
|
return;
|
|
252
252
|
}
|
|
253
253
|
if (e > 0) {
|
|
@@ -260,16 +260,16 @@ class X extends b {
|
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
262
|
let Z = 0, tt = 0;
|
|
263
|
-
function
|
|
263
|
+
function F() {
|
|
264
264
|
return `msg-${Date.now()}-${++Z}`;
|
|
265
265
|
}
|
|
266
|
-
function
|
|
266
|
+
function j() {
|
|
267
267
|
return `thread-${Date.now()}-${++tt}`;
|
|
268
268
|
}
|
|
269
|
-
class I extends
|
|
269
|
+
class I extends y {
|
|
270
270
|
constructor(t) {
|
|
271
271
|
super();
|
|
272
|
-
|
|
272
|
+
u(this, "_state");
|
|
273
273
|
this.config = t, this._state = t.state;
|
|
274
274
|
}
|
|
275
275
|
get state() {
|
|
@@ -294,11 +294,11 @@ class I extends b {
|
|
|
294
294
|
return super.subscribe(t);
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
|
-
class et extends
|
|
297
|
+
class et extends y {
|
|
298
298
|
constructor() {
|
|
299
299
|
super(...arguments);
|
|
300
|
-
|
|
301
|
-
|
|
300
|
+
u(this, "_text", "");
|
|
301
|
+
u(this, "_isSubmitting", !1);
|
|
302
302
|
}
|
|
303
303
|
get text() {
|
|
304
304
|
return this._text;
|
|
@@ -322,10 +322,10 @@ class et extends b {
|
|
|
322
322
|
this._isSubmitting = t, this.notifySubscribers();
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
|
-
class
|
|
325
|
+
class v extends y {
|
|
326
326
|
constructor(t) {
|
|
327
327
|
super();
|
|
328
|
-
|
|
328
|
+
u(this, "composer");
|
|
329
329
|
this._core = t, this.composer = new et(), this._core.subscribe(() => {
|
|
330
330
|
this.notifySubscribers();
|
|
331
331
|
});
|
|
@@ -395,17 +395,17 @@ class M extends b {
|
|
|
395
395
|
return super.subscribe(t);
|
|
396
396
|
}
|
|
397
397
|
}
|
|
398
|
-
class
|
|
398
|
+
class R extends y {
|
|
399
399
|
constructor(t) {
|
|
400
400
|
super();
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
401
|
+
u(this, "_messages", []);
|
|
402
|
+
u(this, "_isRunning", !1);
|
|
403
|
+
u(this, "_isDisabled", !1);
|
|
404
|
+
u(this, "_abortController", null);
|
|
405
|
+
u(this, "_conversationId");
|
|
406
|
+
u(this, "_title");
|
|
407
407
|
// Track current part being accumulated
|
|
408
|
-
|
|
408
|
+
u(this, "_currentPart", null);
|
|
409
409
|
this.config = t, t.initialMessages && (this._messages = [...t.initialMessages]);
|
|
410
410
|
}
|
|
411
411
|
get messages() {
|
|
@@ -434,12 +434,12 @@ class v extends b {
|
|
|
434
434
|
};
|
|
435
435
|
}
|
|
436
436
|
updateMessages(t) {
|
|
437
|
-
var e,
|
|
438
|
-
this._messages = t, (
|
|
437
|
+
var e, r;
|
|
438
|
+
this._messages = t, (r = (e = this.config).onMessagesChange) == null || r.call(e, this._messages), this.notifySubscribers();
|
|
439
439
|
}
|
|
440
440
|
append(t) {
|
|
441
441
|
const e = {
|
|
442
|
-
id: t.id ||
|
|
442
|
+
id: t.id || F(),
|
|
443
443
|
parentId: t.parentId,
|
|
444
444
|
role: t.role,
|
|
445
445
|
content: t.content,
|
|
@@ -453,31 +453,31 @@ class v extends b {
|
|
|
453
453
|
if (this._isRunning)
|
|
454
454
|
throw new Error("A run is already in progress");
|
|
455
455
|
this.append(t), this._isRunning = !0, this._abortController = new AbortController(), this._currentPart = null;
|
|
456
|
-
const e =
|
|
456
|
+
const e = F(), r = {
|
|
457
457
|
id: e,
|
|
458
458
|
role: "assistant",
|
|
459
459
|
content: [],
|
|
460
460
|
status: { type: "running" },
|
|
461
461
|
timestamp: Date.now()
|
|
462
462
|
};
|
|
463
|
-
this.updateMessages([...this._messages,
|
|
463
|
+
this.updateMessages([...this._messages, r]);
|
|
464
464
|
try {
|
|
465
|
-
const
|
|
465
|
+
const n = this.config.streamAdapter.stream({
|
|
466
466
|
messages: this._messages,
|
|
467
467
|
conversationId: this._conversationId,
|
|
468
468
|
signal: this._abortController.signal
|
|
469
469
|
});
|
|
470
|
-
for await (const a of
|
|
470
|
+
for await (const a of n) {
|
|
471
471
|
if (this._abortController.signal.aborted)
|
|
472
472
|
break;
|
|
473
473
|
this.handleStreamEvent(e, a.event);
|
|
474
474
|
}
|
|
475
475
|
this.updateMessageStatus(e, { type: "complete" });
|
|
476
|
-
} catch (
|
|
477
|
-
if (
|
|
476
|
+
} catch (n) {
|
|
477
|
+
if (n instanceof Error && n.name === "AbortError")
|
|
478
478
|
this.completeStreamingContent(e), this.updateMessageStatus(e, { type: "cancelled" });
|
|
479
479
|
else {
|
|
480
|
-
const a =
|
|
480
|
+
const a = n instanceof Error ? n.message : "Unknown error";
|
|
481
481
|
this.completeStreamingContent(e), this.updateMessageStatus(e, {
|
|
482
482
|
type: "error",
|
|
483
483
|
error: a
|
|
@@ -488,26 +488,26 @@ class v extends b {
|
|
|
488
488
|
}
|
|
489
489
|
}
|
|
490
490
|
handleStreamEvent(t, e) {
|
|
491
|
-
const
|
|
492
|
-
if (
|
|
493
|
-
const
|
|
491
|
+
const r = this._messages.findIndex((o) => o.id === t);
|
|
492
|
+
if (r === -1) return;
|
|
493
|
+
const n = this._messages[r];
|
|
494
494
|
if (e.type === "part-start")
|
|
495
|
-
this.handlePartStart(
|
|
495
|
+
this.handlePartStart(n, e);
|
|
496
496
|
else if (e.type === "text-delta" || e.type === "assistant_thought")
|
|
497
|
-
this.handleTextDelta(
|
|
497
|
+
this.handleTextDelta(n, e);
|
|
498
498
|
else if (e.type === "part-finish")
|
|
499
499
|
this.handlePartFinish();
|
|
500
500
|
else if (e.type === "metadata") {
|
|
501
501
|
const o = e;
|
|
502
|
-
|
|
503
|
-
...
|
|
502
|
+
n.metadata = {
|
|
503
|
+
...n.metadata,
|
|
504
504
|
conversationId: o.conversationId,
|
|
505
505
|
interactionId: o.interactionId
|
|
506
506
|
}, o.conversationId && !this._conversationId && (this._conversationId = o.conversationId), o.title && !this._title && (this._title = o.title);
|
|
507
507
|
} else if (e.type === "capability_execution") {
|
|
508
508
|
const o = e;
|
|
509
|
-
|
|
510
|
-
...
|
|
509
|
+
n.content = [
|
|
510
|
+
...n.content,
|
|
511
511
|
{
|
|
512
512
|
type: "capability",
|
|
513
513
|
capabilityId: o.capabilityId,
|
|
@@ -523,8 +523,8 @@ class v extends b {
|
|
|
523
523
|
);
|
|
524
524
|
} else if (e.type === "error") {
|
|
525
525
|
const o = e;
|
|
526
|
-
|
|
527
|
-
...
|
|
526
|
+
n.content = [
|
|
527
|
+
...n.content,
|
|
528
528
|
{
|
|
529
529
|
type: "error",
|
|
530
530
|
data: o.error
|
|
@@ -532,8 +532,8 @@ class v extends b {
|
|
|
532
532
|
];
|
|
533
533
|
} else {
|
|
534
534
|
const o = e;
|
|
535
|
-
|
|
536
|
-
...
|
|
535
|
+
n.content = [
|
|
536
|
+
...n.content,
|
|
537
537
|
{
|
|
538
538
|
type: o.type,
|
|
539
539
|
data: o.data,
|
|
@@ -542,18 +542,18 @@ class v extends b {
|
|
|
542
542
|
];
|
|
543
543
|
}
|
|
544
544
|
const a = [
|
|
545
|
-
...this._messages.slice(0,
|
|
546
|
-
{ ...
|
|
547
|
-
...this._messages.slice(
|
|
545
|
+
...this._messages.slice(0, r),
|
|
546
|
+
{ ...n, timestamp: Date.now() },
|
|
547
|
+
...this._messages.slice(r + 1)
|
|
548
548
|
];
|
|
549
549
|
this.updateMessages(a);
|
|
550
550
|
}
|
|
551
551
|
handlePartStart(t, e) {
|
|
552
|
-
const
|
|
553
|
-
let
|
|
552
|
+
const r = t.content.length;
|
|
553
|
+
let n;
|
|
554
554
|
switch (e.part.type) {
|
|
555
555
|
case "assistant_thought":
|
|
556
|
-
|
|
556
|
+
n = {
|
|
557
557
|
type: e.part.type,
|
|
558
558
|
data: [],
|
|
559
559
|
parentId: e.part.parentId,
|
|
@@ -561,7 +561,7 @@ class v extends b {
|
|
|
561
561
|
};
|
|
562
562
|
break;
|
|
563
563
|
case "text":
|
|
564
|
-
|
|
564
|
+
n = {
|
|
565
565
|
type: e.part.type,
|
|
566
566
|
data: "",
|
|
567
567
|
parentId: e.part.parentId,
|
|
@@ -569,15 +569,15 @@ class v extends b {
|
|
|
569
569
|
};
|
|
570
570
|
break;
|
|
571
571
|
default:
|
|
572
|
-
|
|
572
|
+
n = {
|
|
573
573
|
type: e.part.type,
|
|
574
574
|
parentId: e.part.parentId,
|
|
575
575
|
status: { type: "streaming" }
|
|
576
576
|
};
|
|
577
577
|
}
|
|
578
|
-
t.content = [...t.content,
|
|
578
|
+
t.content = [...t.content, n], this._currentPart = {
|
|
579
579
|
messageId: t.id,
|
|
580
|
-
contentIndex:
|
|
580
|
+
contentIndex: r,
|
|
581
581
|
type: e.part.type,
|
|
582
582
|
parentId: e.part.parentId
|
|
583
583
|
};
|
|
@@ -587,8 +587,8 @@ class v extends b {
|
|
|
587
587
|
console.warn("Received text-delta without part-start");
|
|
588
588
|
return;
|
|
589
589
|
}
|
|
590
|
-
const
|
|
591
|
-
|
|
590
|
+
const r = t.content[this._currentPart.contentIndex];
|
|
591
|
+
r.type === "assistant_thought" ? (Array.isArray(r.data) || (r.data = []), e.delta.trim() && r.data.push(e.delta.trim())) : r.data = (r.data || "") + e.delta;
|
|
592
592
|
}
|
|
593
593
|
handlePartFinish() {
|
|
594
594
|
if (!this._currentPart) {
|
|
@@ -597,46 +597,46 @@ class v extends b {
|
|
|
597
597
|
}
|
|
598
598
|
const t = this._messages.findIndex((e) => e.id === this._currentPart.messageId);
|
|
599
599
|
if (t !== -1) {
|
|
600
|
-
const e = this._messages[t],
|
|
601
|
-
if (
|
|
602
|
-
|
|
603
|
-
const
|
|
600
|
+
const e = this._messages[t], r = e.content[this._currentPart.contentIndex];
|
|
601
|
+
if (r) {
|
|
602
|
+
r.status = { type: "complete" };
|
|
603
|
+
const n = [
|
|
604
604
|
...this._messages.slice(0, t),
|
|
605
605
|
{ ...e, timestamp: Date.now() },
|
|
606
606
|
...this._messages.slice(t + 1)
|
|
607
607
|
];
|
|
608
|
-
this.updateMessages(
|
|
608
|
+
this.updateMessages(n);
|
|
609
609
|
}
|
|
610
610
|
}
|
|
611
611
|
this._currentPart = null;
|
|
612
612
|
}
|
|
613
613
|
updateMessageStatus(t, e) {
|
|
614
|
-
const
|
|
615
|
-
if (
|
|
616
|
-
const
|
|
617
|
-
...this._messages.slice(0,
|
|
614
|
+
const r = this._messages.findIndex((a) => a.id === t);
|
|
615
|
+
if (r === -1) return;
|
|
616
|
+
const n = [
|
|
617
|
+
...this._messages.slice(0, r),
|
|
618
618
|
{
|
|
619
|
-
...this._messages[
|
|
619
|
+
...this._messages[r],
|
|
620
620
|
status: e
|
|
621
621
|
},
|
|
622
|
-
...this._messages.slice(
|
|
622
|
+
...this._messages.slice(r + 1)
|
|
623
623
|
];
|
|
624
|
-
this.updateMessages(
|
|
624
|
+
this.updateMessages(n);
|
|
625
625
|
}
|
|
626
626
|
completeStreamingContent(t) {
|
|
627
|
-
const e = this._messages.findIndex((
|
|
627
|
+
const e = this._messages.findIndex((c) => c.id === t);
|
|
628
628
|
if (e === -1) return;
|
|
629
|
-
const
|
|
630
|
-
if (!
|
|
631
|
-
var
|
|
632
|
-
return ((
|
|
629
|
+
const r = this._messages[e];
|
|
630
|
+
if (!r.content.some((c) => {
|
|
631
|
+
var l;
|
|
632
|
+
return ((l = c.status) == null ? void 0 : l.type) === "streaming";
|
|
633
633
|
})) return;
|
|
634
|
-
const a =
|
|
635
|
-
var
|
|
636
|
-
return ((
|
|
634
|
+
const a = r.content.map((c) => {
|
|
635
|
+
var l;
|
|
636
|
+
return ((l = c.status) == null ? void 0 : l.type) === "streaming" ? { ...c, status: { type: "complete" } } : c;
|
|
637
637
|
}), o = [
|
|
638
638
|
...this._messages.slice(0, e),
|
|
639
|
-
{ ...
|
|
639
|
+
{ ...r, content: a, timestamp: Date.now() },
|
|
640
640
|
...this._messages.slice(e + 1)
|
|
641
641
|
];
|
|
642
642
|
this.updateMessages(o);
|
|
@@ -657,29 +657,24 @@ class v extends b {
|
|
|
657
657
|
this._title = t, this.notifySubscribers();
|
|
658
658
|
}
|
|
659
659
|
}
|
|
660
|
-
class st extends
|
|
660
|
+
class st extends y {
|
|
661
661
|
constructor(t) {
|
|
662
662
|
super();
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
c(this, "_searchQuery");
|
|
674
|
-
c(this, "_abortController", null);
|
|
675
|
-
c(this, "main");
|
|
676
|
-
this.config = t, this._mainThreadId = F();
|
|
677
|
-
const e = new v({
|
|
663
|
+
u(this, "_mainThreadId");
|
|
664
|
+
u(this, "_threads", /* @__PURE__ */ new Map());
|
|
665
|
+
u(this, "_threadItems", /* @__PURE__ */ new Map());
|
|
666
|
+
u(this, "_threadStates", /* @__PURE__ */ new Map());
|
|
667
|
+
u(this, "_isLoading", !1);
|
|
668
|
+
u(this, "_searchQuery");
|
|
669
|
+
u(this, "_abortController", null);
|
|
670
|
+
u(this, "main");
|
|
671
|
+
this.config = t, this._mainThreadId = j();
|
|
672
|
+
const e = new R({
|
|
678
673
|
streamAdapter: t.streamAdapter,
|
|
679
674
|
capabilityExecutionManager: t.capabilityExecutionManager
|
|
680
675
|
});
|
|
681
|
-
this.main = new
|
|
682
|
-
const
|
|
676
|
+
this.main = new v(e), this._threads.set(this._mainThreadId, this.main);
|
|
677
|
+
const r = {
|
|
683
678
|
id: this._mainThreadId,
|
|
684
679
|
title: "New Chat",
|
|
685
680
|
status: { type: "regular" },
|
|
@@ -687,21 +682,18 @@ class st extends b {
|
|
|
687
682
|
createdAt: Date.now(),
|
|
688
683
|
updatedAt: Date.now()
|
|
689
684
|
};
|
|
690
|
-
this._threadStates.set(this._mainThreadId,
|
|
691
|
-
const
|
|
692
|
-
state:
|
|
685
|
+
this._threadStates.set(this._mainThreadId, r);
|
|
686
|
+
const n = new I({
|
|
687
|
+
state: r,
|
|
693
688
|
onSwitchTo: this.switchToThread.bind(this),
|
|
694
689
|
onRename: this.renameThread.bind(this),
|
|
695
690
|
onDelete: this.deleteThread.bind(this)
|
|
696
691
|
});
|
|
697
|
-
this._threadItems.set(this._mainThreadId,
|
|
692
|
+
this._threadItems.set(this._mainThreadId, n);
|
|
698
693
|
}
|
|
699
694
|
get isLoading() {
|
|
700
695
|
return this._isLoading;
|
|
701
696
|
}
|
|
702
|
-
get isLoadingMore() {
|
|
703
|
-
return this._isLoadingMore;
|
|
704
|
-
}
|
|
705
697
|
/**
|
|
706
698
|
* Get the currently active main thread
|
|
707
699
|
*/
|
|
@@ -711,20 +703,13 @@ class st extends b {
|
|
|
711
703
|
}
|
|
712
704
|
getState() {
|
|
713
705
|
const t = [], e = {};
|
|
714
|
-
for (const [
|
|
715
|
-
e[
|
|
706
|
+
for (const [r, n] of this._threadStates)
|
|
707
|
+
e[r] = n, n.status.type === "regular" && t.push(r);
|
|
716
708
|
return {
|
|
717
709
|
mainThreadId: this._mainThreadId,
|
|
718
710
|
threads: t,
|
|
719
711
|
isLoading: this._isLoading,
|
|
720
|
-
isLoadingMore: this._isLoadingMore,
|
|
721
712
|
threadItems: e,
|
|
722
|
-
pagination: {
|
|
723
|
-
currentPage: this._currentPage,
|
|
724
|
-
totalPages: this._totalPages,
|
|
725
|
-
totalCount: this._totalCount,
|
|
726
|
-
hasMore: this._hasMore
|
|
727
|
-
},
|
|
728
713
|
searchQuery: this._searchQuery
|
|
729
714
|
};
|
|
730
715
|
}
|
|
@@ -733,16 +718,16 @@ class st extends b {
|
|
|
733
718
|
const e = this._threads.get(t);
|
|
734
719
|
if (!e)
|
|
735
720
|
throw new Error(`Thread ${t} not found`);
|
|
736
|
-
const
|
|
737
|
-
|
|
738
|
-
const
|
|
739
|
-
if (
|
|
721
|
+
const r = this._threadStates.get(this._mainThreadId);
|
|
722
|
+
r && (r.isMain = !1, this._threadStates.set(this._mainThreadId, r), (a = this._threadItems.get(this._mainThreadId)) == null || a.updateState(r)), this._mainThreadId = t;
|
|
723
|
+
const n = this._threadStates.get(t);
|
|
724
|
+
if (n && (n.isMain = !0, this._threadStates.set(t, n), (o = this._threadItems.get(t)) == null || o.updateState(n), e.setConversationId(n.conversationId), e.setTitle(n.title)), this.config.threadListAdapter && (n != null && n.conversationId)) {
|
|
740
725
|
this._isLoading = !0, this.notifySubscribers();
|
|
741
726
|
try {
|
|
742
|
-
const
|
|
743
|
-
e.reset(
|
|
744
|
-
} catch (
|
|
745
|
-
console.error("Failed to load thread:",
|
|
727
|
+
const c = await this.config.threadListAdapter.loadThread(t);
|
|
728
|
+
e.reset(c);
|
|
729
|
+
} catch (c) {
|
|
730
|
+
console.error("Failed to load thread:", c);
|
|
746
731
|
} finally {
|
|
747
732
|
this._isLoading = !1;
|
|
748
733
|
}
|
|
@@ -750,12 +735,12 @@ class st extends b {
|
|
|
750
735
|
this.notifySubscribers();
|
|
751
736
|
}
|
|
752
737
|
async switchToNewThread() {
|
|
753
|
-
const t =
|
|
738
|
+
const t = j(), e = new R({
|
|
754
739
|
streamAdapter: this.config.streamAdapter,
|
|
755
740
|
capabilityExecutionManager: this.config.capabilityExecutionManager
|
|
756
|
-
}),
|
|
757
|
-
this._threads.set(t,
|
|
758
|
-
const
|
|
741
|
+
}), r = new v(e);
|
|
742
|
+
this._threads.set(t, r);
|
|
743
|
+
const n = {
|
|
759
744
|
id: t,
|
|
760
745
|
title: "New Chat",
|
|
761
746
|
status: { type: "regular" },
|
|
@@ -763,85 +748,70 @@ class st extends b {
|
|
|
763
748
|
createdAt: Date.now(),
|
|
764
749
|
updatedAt: Date.now()
|
|
765
750
|
};
|
|
766
|
-
this._threadStates.set(t,
|
|
751
|
+
this._threadStates.set(t, n);
|
|
767
752
|
const a = new I({
|
|
768
|
-
state:
|
|
753
|
+
state: n,
|
|
769
754
|
onSwitchTo: this.switchToThread.bind(this),
|
|
770
755
|
onRename: this.renameThread.bind(this),
|
|
771
756
|
onDelete: this.deleteThread.bind(this)
|
|
772
757
|
});
|
|
773
|
-
if (this._threadItems.set(t, a),
|
|
774
|
-
this.syncThreadStateFromRuntime(t,
|
|
758
|
+
if (this._threadItems.set(t, a), r.subscribe(() => {
|
|
759
|
+
this.syncThreadStateFromRuntime(t, r), this.notifySubscribers();
|
|
775
760
|
}), this.config.threadListAdapter)
|
|
776
761
|
try {
|
|
777
762
|
const o = await this.config.threadListAdapter.createThread();
|
|
778
|
-
|
|
763
|
+
n.conversationId = o.conversationId, this._threadStates.set(t, n), a.updateState(n);
|
|
779
764
|
} catch (o) {
|
|
780
765
|
console.error("Failed to create thread:", o);
|
|
781
766
|
}
|
|
782
767
|
await this.switchToThread(t);
|
|
783
768
|
}
|
|
784
|
-
async loadThreads(t
|
|
785
|
-
if (!this.config.threadListAdapter)
|
|
786
|
-
console.warn("No threadListAdapter configured");
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
this._abortController && this._abortController.abort(), this._abortController = new AbortController();
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
769
|
+
async loadThreads(t) {
|
|
770
|
+
if (!this.config.threadListAdapter)
|
|
771
|
+
return console.warn("No threadListAdapter configured"), [];
|
|
772
|
+
if (this._isLoading)
|
|
773
|
+
return [];
|
|
774
|
+
this._abortController && this._abortController.abort(), this._abortController = new AbortController(), (t == null ? void 0 : t.query) !== void 0 && (this._searchQuery = t.query), this._isLoading = !0, this.notifySubscribers();
|
|
775
|
+
try {
|
|
776
|
+
const e = await this.config.threadListAdapter.loadThreads(t);
|
|
777
|
+
for (const r of e) {
|
|
778
|
+
if (this._threadStates.has(r.id))
|
|
779
|
+
continue;
|
|
780
|
+
const n = new R({
|
|
781
|
+
streamAdapter: this.config.streamAdapter,
|
|
782
|
+
capabilityExecutionManager: this.config.capabilityExecutionManager
|
|
783
|
+
}), a = new v(n);
|
|
784
|
+
this._threads.set(r.id, a), this._threadStates.set(r.id, r);
|
|
785
|
+
const o = new I({
|
|
786
|
+
state: r,
|
|
787
|
+
onSwitchTo: this.switchToThread.bind(this),
|
|
788
|
+
onRename: this.renameThread.bind(this),
|
|
789
|
+
onDelete: this.deleteThread.bind(this)
|
|
790
|
+
});
|
|
791
|
+
this._threadItems.set(r.id, o), a.subscribe(() => {
|
|
792
|
+
this.syncThreadStateFromRuntime(r.id, a), this.notifySubscribers();
|
|
798
793
|
});
|
|
799
|
-
let o, u;
|
|
800
|
-
Array.isArray(a) ? (o = a, u = void 0) : (o = a.threads, u = a.pagination), u ? (this._totalPages = u.pageCount ?? 0, this._totalCount = u.total ?? 0, this._currentPage = u.pageNumber ?? this._currentPage, this._hasMore = u.pageNumber !== void 0 && u.pageCount !== void 0 && u.pageNumber < u.pageCount - 1) : this._hasMore = !1;
|
|
801
|
-
for (const d of o) {
|
|
802
|
-
if (this._threadStates.has(d.id))
|
|
803
|
-
continue;
|
|
804
|
-
const g = new v({
|
|
805
|
-
streamAdapter: this.config.streamAdapter,
|
|
806
|
-
capabilityExecutionManager: this.config.capabilityExecutionManager
|
|
807
|
-
}), h = new M(g);
|
|
808
|
-
this._threads.set(d.id, h), this._threadStates.set(d.id, d);
|
|
809
|
-
const l = new I({
|
|
810
|
-
state: d,
|
|
811
|
-
onSwitchTo: this.switchToThread.bind(this),
|
|
812
|
-
onRename: this.renameThread.bind(this),
|
|
813
|
-
onDelete: this.deleteThread.bind(this)
|
|
814
|
-
});
|
|
815
|
-
this._threadItems.set(d.id, l), h.subscribe(() => {
|
|
816
|
-
this.syncThreadStateFromRuntime(d.id, h), this.notifySubscribers();
|
|
817
|
-
});
|
|
818
|
-
}
|
|
819
|
-
} catch (a) {
|
|
820
|
-
a instanceof Error && a.name !== "AbortError" && console.error("Failed to load threads:", a);
|
|
821
|
-
} finally {
|
|
822
|
-
this._isLoading = !1, this._isLoadingMore = !1, this._abortController = null, this.notifySubscribers();
|
|
823
794
|
}
|
|
795
|
+
return e;
|
|
796
|
+
} catch (e) {
|
|
797
|
+
return e instanceof Error && e.name !== "AbortError" && console.error("Failed to load threads:", e), [];
|
|
798
|
+
} finally {
|
|
799
|
+
this._isLoading = !1, this._abortController = null, this.notifySubscribers();
|
|
824
800
|
}
|
|
825
801
|
}
|
|
826
|
-
async loadMoreThreads() {
|
|
827
|
-
this._isLoading || this._isLoadingMore || !this._hasMore || (this._currentPage += 1, await this.loadThreads(this._searchQuery, !1));
|
|
828
|
-
}
|
|
829
|
-
async searchThreads(t) {
|
|
830
|
-
await this.loadThreads(t, !0);
|
|
831
|
-
}
|
|
832
802
|
/**
|
|
833
803
|
* Syncs conversationId and title from thread runtime to thread state
|
|
834
804
|
*/
|
|
835
805
|
syncThreadStateFromRuntime(t, e) {
|
|
836
|
-
var
|
|
837
|
-
const
|
|
838
|
-
|
|
806
|
+
var n;
|
|
807
|
+
const r = this._threadStates.get(t);
|
|
808
|
+
r && (r.conversationId !== e.conversationId || r.title !== e.title) && (r.conversationId = e.conversationId, r.title = e.title || r.title, r.updatedAt = Date.now(), this._threadStates.set(t, r), (n = this._threadItems.get(t)) == null || n.updateState(r));
|
|
839
809
|
}
|
|
840
810
|
async renameThread(t, e) {
|
|
841
|
-
var
|
|
842
|
-
const
|
|
843
|
-
if (
|
|
844
|
-
if (
|
|
811
|
+
var n;
|
|
812
|
+
const r = this._threadStates.get(t);
|
|
813
|
+
if (r) {
|
|
814
|
+
if (r.title = e, r.updatedAt = Date.now(), this._threadStates.set(t, r), (n = this._threadItems.get(t)) == null || n.updateState(r), this.config.threadListAdapter)
|
|
845
815
|
try {
|
|
846
816
|
await this.config.threadListAdapter.updateThread(t, { title: e });
|
|
847
817
|
} catch (a) {
|
|
@@ -854,7 +824,7 @@ class st extends b {
|
|
|
854
824
|
if (t === this._mainThreadId && this._threads.size === 1)
|
|
855
825
|
throw new Error("Cannot delete the last thread");
|
|
856
826
|
if (t === this._mainThreadId) {
|
|
857
|
-
const e = Array.from(this._threads.keys()).find((
|
|
827
|
+
const e = Array.from(this._threads.keys()).find((r) => r !== t);
|
|
858
828
|
e && await this.switchToThread(e);
|
|
859
829
|
}
|
|
860
830
|
if (this._threads.delete(t), this._threadItems.delete(t), this._threadStates.delete(t), this.config.threadListAdapter)
|
|
@@ -866,15 +836,15 @@ class st extends b {
|
|
|
866
836
|
this.notifySubscribers();
|
|
867
837
|
}
|
|
868
838
|
}
|
|
869
|
-
class bt extends
|
|
839
|
+
class bt extends y {
|
|
870
840
|
constructor(t) {
|
|
871
841
|
super();
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
842
|
+
u(this, "threads");
|
|
843
|
+
u(this, "pluginRegistry");
|
|
844
|
+
u(this, "capabilityRegistry");
|
|
845
|
+
u(this, "capabilityExecutionManager");
|
|
846
|
+
u(this, "_contentFocusRuntime");
|
|
847
|
+
u(this, "_currentThreadUnsubscribe");
|
|
878
848
|
this.pluginRegistry = new G(), t.plugins && t.plugins.forEach((e) => {
|
|
879
849
|
this.pluginRegistry.registerPlugin(e);
|
|
880
850
|
}), this.capabilityRegistry = new Y(), this.capabilityExecutionManager = new K((e) => this.capabilityRegistry.getHandler(e)), this.threads = new st({
|
|
@@ -927,70 +897,70 @@ class bt extends b {
|
|
|
927
897
|
autoFocusLastContent(t) {
|
|
928
898
|
var e;
|
|
929
899
|
if (t.length !== 0 && !this._contentFocusRuntime.isActive)
|
|
930
|
-
for (let
|
|
931
|
-
const
|
|
932
|
-
if (
|
|
933
|
-
for (let a =
|
|
934
|
-
const o =
|
|
935
|
-
if (
|
|
936
|
-
this._contentFocusRuntime.focus(o,
|
|
900
|
+
for (let r = t.length - 1; r >= 0; r--) {
|
|
901
|
+
const n = t[r];
|
|
902
|
+
if (n.role === "assistant")
|
|
903
|
+
for (let a = n.content.length - 1; a >= 0; a--) {
|
|
904
|
+
const o = n.content[a], c = this.pluginRegistry.getRenderersByType(o.type);
|
|
905
|
+
if (c.length > 0 && ((e = c[0].capabilities) != null && e.supportsFocus)) {
|
|
906
|
+
this._contentFocusRuntime.focus(o, n, a, "detail");
|
|
937
907
|
return;
|
|
938
908
|
}
|
|
939
909
|
}
|
|
940
910
|
}
|
|
941
911
|
}
|
|
942
912
|
}
|
|
943
|
-
var
|
|
913
|
+
var E = { exports: {} }, x = {};
|
|
944
914
|
/*
|
|
945
915
|
object-assign
|
|
946
916
|
(c) Sindre Sorhus
|
|
947
917
|
@license MIT
|
|
948
918
|
*/
|
|
949
|
-
var
|
|
919
|
+
var M, O;
|
|
950
920
|
function rt() {
|
|
951
|
-
if (
|
|
952
|
-
|
|
921
|
+
if (O) return M;
|
|
922
|
+
O = 1;
|
|
953
923
|
var i = Object.getOwnPropertySymbols, s = Object.prototype.hasOwnProperty, t = Object.prototype.propertyIsEnumerable;
|
|
954
|
-
function e(
|
|
955
|
-
if (
|
|
924
|
+
function e(n) {
|
|
925
|
+
if (n == null)
|
|
956
926
|
throw new TypeError("Object.assign cannot be called with null or undefined");
|
|
957
|
-
return Object(
|
|
927
|
+
return Object(n);
|
|
958
928
|
}
|
|
959
|
-
function
|
|
929
|
+
function r() {
|
|
960
930
|
try {
|
|
961
931
|
if (!Object.assign)
|
|
962
932
|
return !1;
|
|
963
|
-
var
|
|
964
|
-
if (
|
|
933
|
+
var n = new String("abc");
|
|
934
|
+
if (n[5] = "de", Object.getOwnPropertyNames(n)[0] === "5")
|
|
965
935
|
return !1;
|
|
966
936
|
for (var a = {}, o = 0; o < 10; o++)
|
|
967
937
|
a["_" + String.fromCharCode(o)] = o;
|
|
968
|
-
var
|
|
969
|
-
return a[
|
|
938
|
+
var c = Object.getOwnPropertyNames(a).map(function(f) {
|
|
939
|
+
return a[f];
|
|
970
940
|
});
|
|
971
|
-
if (
|
|
941
|
+
if (c.join("") !== "0123456789")
|
|
972
942
|
return !1;
|
|
973
|
-
var
|
|
974
|
-
return "abcdefghijklmnopqrst".split("").forEach(function(
|
|
975
|
-
|
|
976
|
-
}), Object.keys(Object.assign({},
|
|
943
|
+
var l = {};
|
|
944
|
+
return "abcdefghijklmnopqrst".split("").forEach(function(f) {
|
|
945
|
+
l[f] = f;
|
|
946
|
+
}), Object.keys(Object.assign({}, l)).join("") === "abcdefghijklmnopqrst";
|
|
977
947
|
} catch {
|
|
978
948
|
return !1;
|
|
979
949
|
}
|
|
980
950
|
}
|
|
981
|
-
return
|
|
982
|
-
for (var o,
|
|
983
|
-
o = Object(arguments[
|
|
951
|
+
return M = r() ? Object.assign : function(n, a) {
|
|
952
|
+
for (var o, c = e(n), l, f = 1; f < arguments.length; f++) {
|
|
953
|
+
o = Object(arguments[f]);
|
|
984
954
|
for (var h in o)
|
|
985
|
-
s.call(o, h) && (
|
|
955
|
+
s.call(o, h) && (c[h] = o[h]);
|
|
986
956
|
if (i) {
|
|
987
|
-
|
|
988
|
-
for (var
|
|
989
|
-
t.call(o, d
|
|
957
|
+
l = i(o);
|
|
958
|
+
for (var d = 0; d < l.length; d++)
|
|
959
|
+
t.call(o, l[d]) && (c[l[d]] = o[l[d]]);
|
|
990
960
|
}
|
|
991
961
|
}
|
|
992
|
-
return
|
|
993
|
-
},
|
|
962
|
+
return c;
|
|
963
|
+
}, M;
|
|
994
964
|
}
|
|
995
965
|
/** @license React v17.0.2
|
|
996
966
|
* react-jsx-runtime.production.min.js
|
|
@@ -1000,28 +970,28 @@ function rt() {
|
|
|
1000
970
|
* This source code is licensed under the MIT license found in the
|
|
1001
971
|
* LICENSE file in the root directory of this source tree.
|
|
1002
972
|
*/
|
|
1003
|
-
var
|
|
973
|
+
var D;
|
|
1004
974
|
function nt() {
|
|
1005
|
-
if (
|
|
1006
|
-
|
|
975
|
+
if (D) return x;
|
|
976
|
+
D = 1, rt();
|
|
1007
977
|
var i = k, s = 60103;
|
|
1008
|
-
if (
|
|
978
|
+
if (x.Fragment = 60107, typeof Symbol == "function" && Symbol.for) {
|
|
1009
979
|
var t = Symbol.for;
|
|
1010
|
-
s = t("react.element"),
|
|
980
|
+
s = t("react.element"), x.Fragment = t("react.fragment");
|
|
1011
981
|
}
|
|
1012
|
-
var e = i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,
|
|
1013
|
-
function a(o,
|
|
1014
|
-
var
|
|
1015
|
-
|
|
1016
|
-
for (
|
|
1017
|
-
if (o && o.defaultProps) for (
|
|
1018
|
-
return { $$typeof: s, type: o, key:
|
|
982
|
+
var e = i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, r = Object.prototype.hasOwnProperty, n = { key: !0, ref: !0, __self: !0, __source: !0 };
|
|
983
|
+
function a(o, c, l) {
|
|
984
|
+
var f, h = {}, d = null, g = null;
|
|
985
|
+
l !== void 0 && (d = "" + l), c.key !== void 0 && (d = "" + c.key), c.ref !== void 0 && (g = c.ref);
|
|
986
|
+
for (f in c) r.call(c, f) && !n.hasOwnProperty(f) && (h[f] = c[f]);
|
|
987
|
+
if (o && o.defaultProps) for (f in c = o.defaultProps, c) h[f] === void 0 && (h[f] = c[f]);
|
|
988
|
+
return { $$typeof: s, type: o, key: d, ref: g, props: h, _owner: e.current };
|
|
1019
989
|
}
|
|
1020
|
-
return
|
|
990
|
+
return x.jsx = a, x.jsxs = a, x;
|
|
1021
991
|
}
|
|
1022
|
-
var
|
|
992
|
+
var L;
|
|
1023
993
|
function it() {
|
|
1024
|
-
return
|
|
994
|
+
return L || (L = 1, E.exports = nt()), E.exports;
|
|
1025
995
|
}
|
|
1026
996
|
var S = it();
|
|
1027
997
|
const $ = q(null);
|
|
@@ -1029,25 +999,23 @@ function yt({ runtime: i, children: s }) {
|
|
|
1029
999
|
return /* @__PURE__ */ S.jsx($.Provider, { value: i, children: s });
|
|
1030
1000
|
}
|
|
1031
1001
|
function at() {
|
|
1032
|
-
const i =
|
|
1002
|
+
const i = U($);
|
|
1033
1003
|
if (!i)
|
|
1034
1004
|
throw new Error("useAssistantRuntimeContext must be used within AssistantRuntimeProvider");
|
|
1035
1005
|
return i;
|
|
1036
1006
|
}
|
|
1037
|
-
function
|
|
1007
|
+
function p() {
|
|
1038
1008
|
return at();
|
|
1039
1009
|
}
|
|
1040
1010
|
function _t() {
|
|
1041
|
-
const i =
|
|
1011
|
+
const i = p();
|
|
1042
1012
|
return {
|
|
1043
1013
|
switchToThread: (s) => i.threads.switchToThread(s),
|
|
1044
1014
|
switchToNewThread: () => i.threads.switchToNewThread(),
|
|
1045
|
-
loadThreads: (s
|
|
1046
|
-
loadMoreThreads: () => i.threads.loadMoreThreads(),
|
|
1047
|
-
searchThreads: (s) => i.threads.searchThreads(s),
|
|
1015
|
+
loadThreads: (s) => i.threads.loadThreads(s),
|
|
1048
1016
|
renameThread: (s, t) => {
|
|
1049
|
-
var e,
|
|
1050
|
-
return (
|
|
1017
|
+
var e, r;
|
|
1018
|
+
return (r = (e = i.threads).renameThread) == null ? void 0 : r.call(e, s, t);
|
|
1051
1019
|
},
|
|
1052
1020
|
deleteThread: (s) => {
|
|
1053
1021
|
var t, e;
|
|
@@ -1056,15 +1024,18 @@ function _t() {
|
|
|
1056
1024
|
};
|
|
1057
1025
|
}
|
|
1058
1026
|
function xt() {
|
|
1059
|
-
const i =
|
|
1027
|
+
const i = p(), [s, t] = b(i.threads.getState());
|
|
1060
1028
|
return w(() => i.threads.subscribe(() => {
|
|
1061
1029
|
t(i.threads.getState());
|
|
1062
1030
|
}), [i]), s;
|
|
1063
1031
|
}
|
|
1064
1032
|
function ot() {
|
|
1065
|
-
|
|
1033
|
+
const s = p().threads.getMainThread(), [, t] = b({});
|
|
1034
|
+
return w(() => s.subscribe(() => {
|
|
1035
|
+
t({});
|
|
1036
|
+
}), [s]), s;
|
|
1066
1037
|
}
|
|
1067
|
-
var
|
|
1038
|
+
var A = { exports: {} }, P = {};
|
|
1068
1039
|
/**
|
|
1069
1040
|
* @license React
|
|
1070
1041
|
* use-sync-external-store-shim.production.js
|
|
@@ -1074,54 +1045,54 @@ var P = { exports: {} }, A = {};
|
|
|
1074
1045
|
* This source code is licensed under the MIT license found in the
|
|
1075
1046
|
* LICENSE file in the root directory of this source tree.
|
|
1076
1047
|
*/
|
|
1077
|
-
var
|
|
1078
|
-
function
|
|
1079
|
-
if (
|
|
1080
|
-
|
|
1048
|
+
var N;
|
|
1049
|
+
function ct() {
|
|
1050
|
+
if (N) return P;
|
|
1051
|
+
N = 1;
|
|
1081
1052
|
var i = k;
|
|
1082
|
-
function s(h,
|
|
1083
|
-
return h ===
|
|
1053
|
+
function s(h, d) {
|
|
1054
|
+
return h === d && (h !== 0 || 1 / h === 1 / d) || h !== h && d !== d;
|
|
1084
1055
|
}
|
|
1085
|
-
var t = typeof Object.is == "function" ? Object.is : s, e = i.useState,
|
|
1086
|
-
function o(h,
|
|
1087
|
-
var
|
|
1088
|
-
return
|
|
1056
|
+
var t = typeof Object.is == "function" ? Object.is : s, e = i.useState, r = i.useEffect, n = i.useLayoutEffect, a = i.useDebugValue;
|
|
1057
|
+
function o(h, d) {
|
|
1058
|
+
var g = d(), _ = e({ inst: { value: g, getSnapshot: d } }), m = _[0].inst, T = _[1];
|
|
1059
|
+
return n(
|
|
1089
1060
|
function() {
|
|
1090
|
-
m.value =
|
|
1061
|
+
m.value = g, m.getSnapshot = d, c(m) && T({ inst: m });
|
|
1091
1062
|
},
|
|
1092
|
-
[h,
|
|
1093
|
-
),
|
|
1063
|
+
[h, g, d]
|
|
1064
|
+
), r(
|
|
1094
1065
|
function() {
|
|
1095
|
-
return
|
|
1096
|
-
|
|
1066
|
+
return c(m) && T({ inst: m }), h(function() {
|
|
1067
|
+
c(m) && T({ inst: m });
|
|
1097
1068
|
});
|
|
1098
1069
|
},
|
|
1099
1070
|
[h]
|
|
1100
|
-
), a(
|
|
1071
|
+
), a(g), g;
|
|
1101
1072
|
}
|
|
1102
|
-
function
|
|
1103
|
-
var
|
|
1073
|
+
function c(h) {
|
|
1074
|
+
var d = h.getSnapshot;
|
|
1104
1075
|
h = h.value;
|
|
1105
1076
|
try {
|
|
1106
|
-
var
|
|
1107
|
-
return !t(h,
|
|
1077
|
+
var g = d();
|
|
1078
|
+
return !t(h, g);
|
|
1108
1079
|
} catch {
|
|
1109
1080
|
return !0;
|
|
1110
1081
|
}
|
|
1111
1082
|
}
|
|
1112
|
-
function
|
|
1113
|
-
return
|
|
1083
|
+
function l(h, d) {
|
|
1084
|
+
return d();
|
|
1114
1085
|
}
|
|
1115
|
-
var
|
|
1116
|
-
return
|
|
1086
|
+
var f = typeof window > "u" || typeof window.document > "u" || typeof window.document.createElement > "u" ? l : o;
|
|
1087
|
+
return P.useSyncExternalStore = i.useSyncExternalStore !== void 0 ? i.useSyncExternalStore : f, P;
|
|
1117
1088
|
}
|
|
1118
1089
|
var B;
|
|
1119
|
-
function
|
|
1120
|
-
return B || (B = 1,
|
|
1090
|
+
function ut() {
|
|
1091
|
+
return B || (B = 1, A.exports = ct()), A.exports;
|
|
1121
1092
|
}
|
|
1122
|
-
var ht =
|
|
1093
|
+
var ht = ut();
|
|
1123
1094
|
function St() {
|
|
1124
|
-
const i =
|
|
1095
|
+
const i = p();
|
|
1125
1096
|
return ht.useSyncExternalStore(
|
|
1126
1097
|
(s) => i.subscribe(() => {
|
|
1127
1098
|
s();
|
|
@@ -1131,7 +1102,7 @@ function St() {
|
|
|
1131
1102
|
);
|
|
1132
1103
|
}
|
|
1133
1104
|
function wt() {
|
|
1134
|
-
const i = ot(), [s, t] =
|
|
1105
|
+
const i = ot(), [s, t] = b(""), [e, r] = b(!1);
|
|
1135
1106
|
return {
|
|
1136
1107
|
text: s,
|
|
1137
1108
|
setText: t,
|
|
@@ -1139,22 +1110,22 @@ function wt() {
|
|
|
1139
1110
|
send: async (a) => {
|
|
1140
1111
|
if (a == null || a.preventDefault(), !s.trim() || e) return;
|
|
1141
1112
|
const o = s;
|
|
1142
|
-
t(""),
|
|
1113
|
+
t(""), r(!0);
|
|
1143
1114
|
try {
|
|
1144
1115
|
await i.send(o);
|
|
1145
|
-
} catch (
|
|
1146
|
-
console.error("Failed to send message:",
|
|
1116
|
+
} catch (c) {
|
|
1117
|
+
console.error("Failed to send message:", c), t(o);
|
|
1147
1118
|
} finally {
|
|
1148
|
-
|
|
1119
|
+
r(!1);
|
|
1149
1120
|
}
|
|
1150
1121
|
},
|
|
1151
1122
|
clear: () => t(""),
|
|
1152
1123
|
append: (a) => t((o) => o + a)
|
|
1153
1124
|
};
|
|
1154
1125
|
}
|
|
1155
|
-
function
|
|
1156
|
-
var
|
|
1157
|
-
const e =
|
|
1126
|
+
function Q(i, s) {
|
|
1127
|
+
var n, a, o, c;
|
|
1128
|
+
const e = p().pluginRegistry.getBestRendererForType(i);
|
|
1158
1129
|
if (!e)
|
|
1159
1130
|
return {
|
|
1160
1131
|
component: null,
|
|
@@ -1163,31 +1134,31 @@ function U(i, s) {
|
|
|
1163
1134
|
supportsPreview: !1,
|
|
1164
1135
|
supportsFullscreen: !1
|
|
1165
1136
|
};
|
|
1166
|
-
const
|
|
1137
|
+
const r = s ? (n = e.auxiliary) == null ? void 0 : n[s] : null;
|
|
1167
1138
|
return {
|
|
1168
1139
|
component: e.component,
|
|
1169
|
-
auxiliaryComponent:
|
|
1140
|
+
auxiliaryComponent: r,
|
|
1170
1141
|
supportsFocus: ((a = e.capabilities) == null ? void 0 : a.supportsFocus) ?? !1,
|
|
1171
1142
|
supportsPreview: ((o = e.capabilities) == null ? void 0 : o.supportsPreview) ?? !1,
|
|
1172
|
-
supportsFullscreen: ((
|
|
1143
|
+
supportsFullscreen: ((c = e.capabilities) == null ? void 0 : c.supportsFullscreen) ?? !1
|
|
1173
1144
|
};
|
|
1174
1145
|
}
|
|
1175
|
-
function
|
|
1176
|
-
const i =
|
|
1146
|
+
function Ct() {
|
|
1147
|
+
const i = p(), [s, t] = b(i.contentFocus.state);
|
|
1177
1148
|
return w(() => i.contentFocus.subscribe(() => {
|
|
1178
1149
|
t(i.contentFocus.state);
|
|
1179
1150
|
}), [i]), {
|
|
1180
1151
|
...s,
|
|
1181
|
-
focus: (e,
|
|
1152
|
+
focus: (e, r, n, a) => i.contentFocus.focus(e, r, n, a),
|
|
1182
1153
|
blur: () => i.contentFocus.blur(),
|
|
1183
|
-
toggle: (e,
|
|
1154
|
+
toggle: (e, r, n, a) => i.contentFocus.toggle(e, r, n, a),
|
|
1184
1155
|
switchContext: (e) => i.contentFocus.switchContext(e),
|
|
1185
1156
|
focusNext: () => i.contentFocus.focusNext(i.thread.messages),
|
|
1186
1157
|
focusPrevious: () => i.contentFocus.focusPrevious(i.thread.messages)
|
|
1187
1158
|
};
|
|
1188
1159
|
}
|
|
1189
1160
|
function dt(i) {
|
|
1190
|
-
const s =
|
|
1161
|
+
const s = p();
|
|
1191
1162
|
w(() => (i.execute && s.capabilityRegistry.registerHandler(i.name, { execute: i.execute }), i.render && s.capabilityRegistry.registerRenderer(i.name, {
|
|
1192
1163
|
component: i.render
|
|
1193
1164
|
}), () => {
|
|
@@ -1195,110 +1166,110 @@ function dt(i) {
|
|
|
1195
1166
|
}), [i.name, s]);
|
|
1196
1167
|
}
|
|
1197
1168
|
function lt(i) {
|
|
1198
|
-
const s =
|
|
1169
|
+
const s = p(), [t, e] = b(
|
|
1199
1170
|
() => s.capabilityExecutionManager.getExecution(i)
|
|
1200
|
-
), [,
|
|
1171
|
+
), [, r] = z((n) => n + 1, 0);
|
|
1201
1172
|
return w(() => {
|
|
1202
|
-
const
|
|
1203
|
-
return e(
|
|
1173
|
+
const n = s.capabilityExecutionManager.getExecution(i);
|
|
1174
|
+
return e(n), s.capabilityExecutionManager.subscribe((o) => {
|
|
1204
1175
|
if (o === i) {
|
|
1205
|
-
const
|
|
1206
|
-
e(
|
|
1176
|
+
const c = s.capabilityExecutionManager.getExecution(i);
|
|
1177
|
+
e(c), r();
|
|
1207
1178
|
}
|
|
1208
1179
|
});
|
|
1209
1180
|
}, [i, s]), t;
|
|
1210
1181
|
}
|
|
1211
1182
|
const H = q(void 0);
|
|
1212
|
-
function
|
|
1213
|
-
const [s, t] =
|
|
1214
|
-
t((
|
|
1215
|
-
if (
|
|
1216
|
-
const { [
|
|
1217
|
-
return
|
|
1183
|
+
function Tt({ children: i }) {
|
|
1184
|
+
const [s, t] = b({}), e = C((c, l) => {
|
|
1185
|
+
t((f) => {
|
|
1186
|
+
if (l === null) {
|
|
1187
|
+
const { [c]: h, ...d } = f;
|
|
1188
|
+
return d;
|
|
1218
1189
|
}
|
|
1219
1190
|
return {
|
|
1220
|
-
...
|
|
1221
|
-
[
|
|
1191
|
+
...f,
|
|
1192
|
+
[c]: { id: c, ...l }
|
|
1222
1193
|
};
|
|
1223
1194
|
});
|
|
1224
|
-
}, []),
|
|
1225
|
-
t((
|
|
1226
|
-
const { [
|
|
1195
|
+
}, []), r = C((c) => {
|
|
1196
|
+
t((l) => {
|
|
1197
|
+
const { [c]: f, ...h } = l;
|
|
1227
1198
|
return h;
|
|
1228
1199
|
});
|
|
1229
|
-
}, []),
|
|
1230
|
-
(
|
|
1231
|
-
const
|
|
1232
|
-
(h, [
|
|
1200
|
+
}, []), n = C(() => Object.values(s).reduce(
|
|
1201
|
+
(c, l) => {
|
|
1202
|
+
const f = Object.entries(l.data).reduce(
|
|
1203
|
+
(h, [d, g]) => ({
|
|
1233
1204
|
...h,
|
|
1234
|
-
[
|
|
1205
|
+
[d]: typeof g == "string" ? g : JSON.stringify(g)
|
|
1235
1206
|
}),
|
|
1236
1207
|
{}
|
|
1237
1208
|
);
|
|
1238
|
-
return { ...
|
|
1209
|
+
return { ...c, ...f };
|
|
1239
1210
|
},
|
|
1240
1211
|
{}
|
|
1241
|
-
), [s]), a =
|
|
1212
|
+
), [s]), a = C(() => {
|
|
1242
1213
|
t({});
|
|
1243
1214
|
}, []), o = V(
|
|
1244
1215
|
() => ({
|
|
1245
1216
|
contexts: s,
|
|
1246
1217
|
setContext: e,
|
|
1247
|
-
removeContext:
|
|
1248
|
-
getContextData:
|
|
1218
|
+
removeContext: r,
|
|
1219
|
+
getContextData: n,
|
|
1249
1220
|
clearContexts: a
|
|
1250
1221
|
}),
|
|
1251
|
-
[s, e,
|
|
1222
|
+
[s, e, r, n, a]
|
|
1252
1223
|
);
|
|
1253
1224
|
return /* @__PURE__ */ S.jsx(H.Provider, { value: o, children: i });
|
|
1254
1225
|
}
|
|
1255
|
-
function
|
|
1256
|
-
const i =
|
|
1226
|
+
function ft() {
|
|
1227
|
+
const i = U(H);
|
|
1257
1228
|
if (!i)
|
|
1258
1229
|
throw new Error("useChatContext must be used within a ChatContextProvider");
|
|
1259
1230
|
return i;
|
|
1260
1231
|
}
|
|
1261
1232
|
function It(i) {
|
|
1262
|
-
const { setContext: s, removeContext: t } =
|
|
1263
|
-
w(() => (s(e,
|
|
1233
|
+
const { setContext: s, removeContext: t } = ft(), { id: e = "currentPage", ...r } = i;
|
|
1234
|
+
w(() => (s(e, r), () => {
|
|
1264
1235
|
t(e);
|
|
1265
|
-
}), [e,
|
|
1236
|
+
}), [e, r.displayName, JSON.stringify(r.data), r.priority, r.icon]);
|
|
1266
1237
|
}
|
|
1267
|
-
function
|
|
1268
|
-
const t =
|
|
1269
|
-
if (!
|
|
1238
|
+
function gt({ message: i, content: s }) {
|
|
1239
|
+
const t = p(), e = s, r = lt(e.capabilityId), n = t.capabilityRegistry.getRenderer(e.capabilityName);
|
|
1240
|
+
if (!n || !r)
|
|
1270
1241
|
return null;
|
|
1271
|
-
const a =
|
|
1242
|
+
const a = n.component;
|
|
1272
1243
|
return /* @__PURE__ */ S.jsx(
|
|
1273
1244
|
a,
|
|
1274
1245
|
{
|
|
1275
|
-
capabilityName:
|
|
1276
|
-
capabilityId:
|
|
1277
|
-
args:
|
|
1278
|
-
result:
|
|
1279
|
-
status:
|
|
1246
|
+
capabilityName: r.name,
|
|
1247
|
+
capabilityId: r.id,
|
|
1248
|
+
args: r.args,
|
|
1249
|
+
result: r.result,
|
|
1250
|
+
status: r.status,
|
|
1280
1251
|
message: i
|
|
1281
1252
|
}
|
|
1282
1253
|
);
|
|
1283
1254
|
}
|
|
1284
|
-
function
|
|
1285
|
-
const { component: t } =
|
|
1255
|
+
function vt({ message: i, content: s }) {
|
|
1256
|
+
const { component: t } = Q(s.type);
|
|
1286
1257
|
if (s.type === "capability")
|
|
1287
|
-
return /* @__PURE__ */ S.jsx(
|
|
1258
|
+
return /* @__PURE__ */ S.jsx(gt, { message: i, content: s });
|
|
1288
1259
|
if (!t)
|
|
1289
1260
|
return null;
|
|
1290
1261
|
const e = t;
|
|
1291
1262
|
return /* @__PURE__ */ S.jsx(e, { content: s, message: i });
|
|
1292
1263
|
}
|
|
1293
|
-
function
|
|
1264
|
+
function Rt({
|
|
1294
1265
|
message: i,
|
|
1295
1266
|
content: s,
|
|
1296
1267
|
context: t,
|
|
1297
1268
|
onClose: e,
|
|
1298
|
-
onNavigate:
|
|
1299
|
-
onSwitchContext:
|
|
1269
|
+
onNavigate: r,
|
|
1270
|
+
onSwitchContext: n
|
|
1300
1271
|
}) {
|
|
1301
|
-
const { auxiliaryComponent: a } =
|
|
1272
|
+
const { auxiliaryComponent: a } = Q(s.type, t);
|
|
1302
1273
|
if (!a)
|
|
1303
1274
|
return null;
|
|
1304
1275
|
const o = a;
|
|
@@ -1309,16 +1280,16 @@ function vt({
|
|
|
1309
1280
|
message: i,
|
|
1310
1281
|
context: t,
|
|
1311
1282
|
onClose: e,
|
|
1312
|
-
onNavigate:
|
|
1313
|
-
onSwitchContext:
|
|
1283
|
+
onNavigate: r,
|
|
1284
|
+
onSwitchContext: n
|
|
1314
1285
|
}
|
|
1315
1286
|
);
|
|
1316
1287
|
}
|
|
1317
|
-
function
|
|
1288
|
+
function Et(i) {
|
|
1318
1289
|
const s = () => (dt(i), null);
|
|
1319
1290
|
return s.displayName = `Capability(${i.name})`, s;
|
|
1320
1291
|
}
|
|
1321
|
-
class
|
|
1292
|
+
class Mt {
|
|
1322
1293
|
getAllowedEvents() {
|
|
1323
1294
|
return null;
|
|
1324
1295
|
}
|
|
@@ -1327,26 +1298,26 @@ class Et {
|
|
|
1327
1298
|
return t ? t.includes(s) : !0;
|
|
1328
1299
|
}
|
|
1329
1300
|
async *stream(s) {
|
|
1330
|
-
const { signal: t } = s, { url: e, options:
|
|
1331
|
-
if (!
|
|
1332
|
-
throw new Error(`HTTP error! status: ${
|
|
1333
|
-
if (!
|
|
1301
|
+
const { signal: t } = s, { url: e, options: r } = this.prepareRequest(s), n = await fetch(e, { ...r, signal: t });
|
|
1302
|
+
if (!n.ok)
|
|
1303
|
+
throw new Error(`HTTP error! status: ${n.status}`);
|
|
1304
|
+
if (!n.body)
|
|
1334
1305
|
throw new Error("Response body is null");
|
|
1335
|
-
yield* this.parseSSEStream(
|
|
1306
|
+
yield* this.parseSSEStream(n.body, t);
|
|
1336
1307
|
}
|
|
1337
1308
|
async *parseSSEStream(s, t) {
|
|
1338
|
-
const e = s.getReader(),
|
|
1339
|
-
let
|
|
1309
|
+
const e = s.getReader(), r = new TextDecoder();
|
|
1310
|
+
let n = "", a = null;
|
|
1340
1311
|
try {
|
|
1341
1312
|
for (; ; ) {
|
|
1342
|
-
const { done: o, value:
|
|
1313
|
+
const { done: o, value: c } = await e.read();
|
|
1343
1314
|
if (o || t != null && t.aborted) break;
|
|
1344
|
-
|
|
1345
|
-
const
|
|
1315
|
+
n += r.decode(c, { stream: !0 });
|
|
1316
|
+
const l = n.split(`
|
|
1346
1317
|
`);
|
|
1347
|
-
|
|
1348
|
-
for (const
|
|
1349
|
-
const h =
|
|
1318
|
+
n = l.pop() || "";
|
|
1319
|
+
for (const f of l) {
|
|
1320
|
+
const h = f.trim();
|
|
1350
1321
|
if (!h) {
|
|
1351
1322
|
a = null;
|
|
1352
1323
|
continue;
|
|
@@ -1357,17 +1328,17 @@ class Et {
|
|
|
1357
1328
|
continue;
|
|
1358
1329
|
}
|
|
1359
1330
|
if (h.startsWith("data:")) {
|
|
1360
|
-
const
|
|
1361
|
-
if (
|
|
1331
|
+
const d = h.substring(5).trim();
|
|
1332
|
+
if (d === "eof" || h === "eof")
|
|
1362
1333
|
break;
|
|
1363
1334
|
try {
|
|
1364
|
-
const
|
|
1335
|
+
const g = JSON.parse(d);
|
|
1365
1336
|
if (a && this.shouldProcessEvent(a)) {
|
|
1366
|
-
const
|
|
1337
|
+
const _ = this.convertEvent({
|
|
1367
1338
|
event: a,
|
|
1368
|
-
data:
|
|
1339
|
+
data: g
|
|
1369
1340
|
});
|
|
1370
|
-
|
|
1341
|
+
_ && (yield _);
|
|
1371
1342
|
}
|
|
1372
1343
|
} catch {
|
|
1373
1344
|
}
|
|
@@ -1384,27 +1355,27 @@ class Et {
|
|
|
1384
1355
|
export {
|
|
1385
1356
|
bt as AssistantRuntime,
|
|
1386
1357
|
yt as AssistantRuntimeProvider,
|
|
1387
|
-
|
|
1388
|
-
|
|
1358
|
+
Rt as AuxiliaryRenderer,
|
|
1359
|
+
Mt as BaseSSEStreamAdapter,
|
|
1389
1360
|
K as CapabilityExecutionManager,
|
|
1390
1361
|
Y as CapabilityRegistry,
|
|
1391
|
-
|
|
1392
|
-
|
|
1362
|
+
gt as CapabilityRendererComp,
|
|
1363
|
+
Tt as ChatContextProvider,
|
|
1393
1364
|
et as ComposerRuntime,
|
|
1394
|
-
|
|
1365
|
+
vt as ContentRenderer,
|
|
1395
1366
|
G as PluginRegistry,
|
|
1396
1367
|
I as ThreadListItemRuntime,
|
|
1397
1368
|
st as ThreadListRuntime,
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1369
|
+
v as ThreadRuntime,
|
|
1370
|
+
R as ThreadRuntimeCore,
|
|
1371
|
+
Et as makeCapability,
|
|
1372
|
+
p as useAssistantRuntime,
|
|
1402
1373
|
dt as useCapability,
|
|
1403
1374
|
lt as useCapabilityExecution,
|
|
1404
|
-
|
|
1375
|
+
ft as useChatContext,
|
|
1405
1376
|
wt as useComposer,
|
|
1406
|
-
|
|
1407
|
-
|
|
1377
|
+
Ct as useContentFocus,
|
|
1378
|
+
Q as useContentRenderer,
|
|
1408
1379
|
ot as useCurrentThread,
|
|
1409
1380
|
St as useMessages,
|
|
1410
1381
|
It as usePageContext,
|