@assistant-ui/core 0.3.2 → 0.3.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/dist/index.d.ts +4 -4
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +9 -7
- package/dist/internal.js +8 -6
- package/dist/react/primitive-hooks/useActionBarCopy.js +51 -24
- package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
- package/dist/react/primitive-hooks/useSuggestionTrigger.js +29 -25
- package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.d.ts +2 -1
- package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.js +2 -2
- package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
- package/dist/react/primitives/message/MessageParts.d.ts +6 -1
- package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageParts.js.map +1 -1
- package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
- package/dist/react/providers/ReadonlyThreadProvider.js +1 -0
- package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +67 -0
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +76 -15
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +4 -0
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +21 -0
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.d.ts +26 -2
- package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.js +29 -8
- package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
- package/dist/react/types/MessagePartComponentTypes.d.ts +8 -0
- package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
- package/dist/runtime/api/bindings.d.ts +5 -0
- package/dist/runtime/api/bindings.d.ts.map +1 -1
- package/dist/runtime/api/message-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-runtime.js +5 -1
- package/dist/runtime/api/message-runtime.js.map +1 -1
- package/dist/runtime/api/thread-list-runtime.d.ts +14 -1
- package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-runtime.js +6 -1
- package/dist/runtime/api/thread-list-runtime.js.map +1 -1
- package/dist/runtime/api/thread-runtime.d.ts +7 -1
- package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-runtime.js +11 -3
- package/dist/runtime/api/thread-runtime.js.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.d.ts +3 -0
- package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.js +54 -12
- package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +10 -0
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-runtime-core.d.ts +14 -0
- package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +4 -4
- package/dist/runtime/internal.js +4 -4
- package/dist/runtimes/external-store/external-store-adapter.d.ts +9 -0
- package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +1 -0
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +4 -0
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +1 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js +6 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.d.ts +1 -0
- package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.js +1 -0
- package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +1 -0
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +1 -0
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/remote-thread-list/empty-thread-core.js +1 -0
- package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
- package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
- package/dist/store/clients/chain-of-thought-client.js +29 -23
- package/dist/store/clients/chain-of-thought-client.js.map +1 -1
- package/dist/store/clients/thread-message-client.d.ts.map +1 -1
- package/dist/store/clients/thread-message-client.js +101 -89
- package/dist/store/clients/thread-message-client.js.map +1 -1
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +1 -0
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-item-runtime-client.js +66 -45
- package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.js +91 -75
- package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
- package/dist/store/scopes/thread-list-item.d.ts +7 -0
- package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
- package/dist/store/scopes/threads.d.ts +1 -0
- package/dist/store/scopes/threads.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/message.d.ts +22 -1
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js.map +1 -1
- package/dist/utils/data-url.d.ts +14 -1
- package/dist/utils/data-url.d.ts.map +1 -1
- package/dist/utils/data-url.js +23 -1
- package/dist/utils/data-url.js.map +1 -1
- package/dist/utils/getGroupStatus.d.ts +9 -0
- package/dist/utils/getGroupStatus.d.ts.map +1 -0
- package/dist/utils/getGroupStatus.js +15 -0
- package/dist/utils/getGroupStatus.js.map +1 -0
- package/dist/utils/image-media-type.d.ts +13 -0
- package/dist/utils/image-media-type.d.ts.map +1 -0
- package/dist/utils/image-media-type.js +141 -0
- package/dist/utils/image-media-type.js.map +1 -0
- package/dist/utils/normalizePartStatus.d.ts +8 -0
- package/dist/utils/normalizePartStatus.d.ts.map +1 -0
- package/dist/utils/normalizePartStatus.js +39 -0
- package/dist/utils/normalizePartStatus.js.map +1 -0
- package/dist/utils/wire-media.d.ts +35 -0
- package/dist/utils/wire-media.d.ts.map +1 -0
- package/dist/utils/wire-media.js +55 -0
- package/dist/utils/wire-media.js.map +1 -0
- package/package.json +4 -4
- package/src/index.ts +1 -0
- package/src/internal.ts +13 -1
- package/src/react/primitive-hooks/useActionBarCopy.test.ts +109 -14
- package/src/react/primitive-hooks/useActionBarCopy.ts +27 -2
- package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +148 -0
- package/src/react/primitive-hooks/useSuggestionTrigger.ts +10 -4
- package/src/react/primitives/message/MessageGroupedParts.tsx +4 -4
- package/src/react/primitives/message/MessageParts.tsx +6 -1
- package/src/react/providers/ReadonlyThreadProvider.tsx +1 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +157 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +160 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +135 -32
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +37 -0
- package/src/react/runtimes/cloud/auiV0.ts +59 -14
- package/src/react/types/MessagePartComponentTypes.ts +8 -0
- package/src/runtime/api/bindings.ts +5 -0
- package/src/runtime/api/message-runtime.test.ts +140 -0
- package/src/runtime/api/message-runtime.ts +10 -5
- package/src/runtime/api/thread-list-runtime.ts +22 -1
- package/src/runtime/api/thread-runtime.ts +15 -6
- package/src/runtime/base/base-composer-runtime-core.ts +72 -19
- package/src/runtime/interfaces/thread-list-runtime-core.ts +11 -0
- package/src/runtime/interfaces/thread-runtime-core.ts +15 -0
- package/src/runtimes/external-store/external-store-adapter.ts +9 -0
- package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +9 -0
- package/src/runtimes/external-store/external-store-thread-runtime-core.ts +8 -0
- package/src/runtimes/local/local-thread-runtime-core.ts +1 -0
- package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +1 -0
- package/src/runtimes/remote-thread-list/empty-thread-core.ts +1 -0
- package/src/store/clients/chain-of-thought-client.ts +2 -7
- package/src/store/clients/thread-message-client.test.ts +84 -0
- package/src/store/clients/thread-message-client.ts +14 -4
- package/src/store/runtime-clients/thread-list-item-runtime-client.ts +13 -2
- package/src/store/runtime-clients/thread-list-runtime-client.ts +13 -1
- package/src/store/scopes/thread-list-item.ts +7 -0
- package/src/store/scopes/threads.ts +1 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-reloadMainThread.test.ts +257 -0
- package/src/tests/auiV0Encode.test.ts +218 -1
- package/src/tests/base-composer-runtime-core-addAttachment.test.ts +296 -0
- package/src/tests/event-subscription-listener-errors.test.ts +1 -0
- package/src/tests/external-store-thread-list-runtime-core.test.ts +39 -1
- package/src/types/index.ts +1 -0
- package/src/types/message.ts +30 -0
- package/src/utils/data-url.ts +24 -0
- package/src/utils/getGroupStatus.test.ts +36 -0
- package/src/utils/getGroupStatus.ts +31 -0
- package/src/utils/image-media-type.test.ts +96 -0
- package/src/utils/image-media-type.ts +118 -0
- package/src/utils/normalizePartStatus.test.ts +59 -0
- package/src/utils/normalizePartStatus.ts +55 -0
- package/src/utils/wire-media.test.ts +96 -0
- package/src/utils/wire-media.ts +70 -0
|
@@ -1,44 +1,50 @@
|
|
|
1
|
+
import { getGroupStatus } from "../../utils/getGroupStatus.js";
|
|
1
2
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
2
3
|
import { useState } from "@assistant-ui/tap/react-shim";
|
|
3
4
|
import { resource } from "@assistant-ui/tap";
|
|
4
5
|
//#region src/store/clients/chain-of-thought-client.ts
|
|
5
|
-
const COMPLETE_STATUS = Object.freeze({ type: "complete" });
|
|
6
6
|
const useChainOfThoughtClient = (t0) => {
|
|
7
|
-
const $ = c(
|
|
7
|
+
const $ = c(11);
|
|
8
8
|
const { parts, getMessagePart } = t0;
|
|
9
9
|
const [collapsed, setCollapsed] = useState(true);
|
|
10
|
-
const status = parts[parts.length - 1]?.status ?? COMPLETE_STATUS;
|
|
11
10
|
let t1;
|
|
12
|
-
if ($[0] !==
|
|
13
|
-
t1 =
|
|
11
|
+
if ($[0] !== parts) {
|
|
12
|
+
t1 = getGroupStatus(parts);
|
|
13
|
+
$[0] = parts;
|
|
14
|
+
$[1] = t1;
|
|
15
|
+
} else t1 = $[1];
|
|
16
|
+
const status = t1;
|
|
17
|
+
let t2;
|
|
18
|
+
if ($[2] !== collapsed || $[3] !== parts || $[4] !== status) {
|
|
19
|
+
t2 = {
|
|
14
20
|
parts,
|
|
15
21
|
collapsed,
|
|
16
22
|
status
|
|
17
23
|
};
|
|
18
|
-
$[
|
|
19
|
-
$[
|
|
20
|
-
$[
|
|
21
|
-
$[3] = t1;
|
|
22
|
-
} else t1 = $[3];
|
|
23
|
-
const state = t1;
|
|
24
|
-
let t2;
|
|
25
|
-
if ($[4] !== state) {
|
|
26
|
-
t2 = () => state;
|
|
27
|
-
$[4] = state;
|
|
24
|
+
$[2] = collapsed;
|
|
25
|
+
$[3] = parts;
|
|
26
|
+
$[4] = status;
|
|
28
27
|
$[5] = t2;
|
|
29
28
|
} else t2 = $[5];
|
|
29
|
+
const state = t2;
|
|
30
30
|
let t3;
|
|
31
|
-
if ($[6] !==
|
|
32
|
-
t3 =
|
|
33
|
-
|
|
31
|
+
if ($[6] !== state) {
|
|
32
|
+
t3 = () => state;
|
|
33
|
+
$[6] = state;
|
|
34
|
+
$[7] = t3;
|
|
35
|
+
} else t3 = $[7];
|
|
36
|
+
let t4;
|
|
37
|
+
if ($[8] !== getMessagePart || $[9] !== t3) {
|
|
38
|
+
t4 = {
|
|
39
|
+
getState: t3,
|
|
34
40
|
setCollapsed,
|
|
35
41
|
part: getMessagePart
|
|
36
42
|
};
|
|
37
|
-
$[
|
|
38
|
-
$[
|
|
39
|
-
$[
|
|
40
|
-
} else
|
|
41
|
-
return
|
|
43
|
+
$[8] = getMessagePart;
|
|
44
|
+
$[9] = t3;
|
|
45
|
+
$[10] = t4;
|
|
46
|
+
} else t4 = $[10];
|
|
47
|
+
return t4;
|
|
42
48
|
};
|
|
43
49
|
const ChainOfThoughtClient = resource(useChainOfThoughtClient);
|
|
44
50
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-of-thought-client.js","names":["useMemo","useState","resource","ClientOutput","ChainOfThoughtState","ChainOfThoughtPart","
|
|
1
|
+
{"version":3,"file":"chain-of-thought-client.js","names":["useMemo","useState","resource","ClientOutput","ChainOfThoughtState","ChainOfThoughtPart","PartMethods","getGroupStatus","useChainOfThoughtClient","t0","$","_c","parts","getMessagePart","collapsed","setCollapsed","t1","status","t2","state","t3","t4","getState","part","ChainOfThoughtClient"],"sources":["../../../src/store/clients/chain-of-thought-client.ts"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport type {\n ChainOfThoughtState,\n ChainOfThoughtPart,\n} from \"../scopes/chain-of-thought\";\nimport type { PartMethods } from \"../scopes/part\";\nimport { getGroupStatus } from \"../../utils/getGroupStatus\";\n\nconst useChainOfThoughtClient = ({\n parts,\n getMessagePart,\n}: {\n parts: readonly ChainOfThoughtPart[];\n getMessagePart: (selector: { index: number }) => PartMethods;\n}): ClientOutput<\"chainOfThought\"> => {\n const [collapsed, setCollapsed] = useState(true);\n\n const status = useMemo(() => {\n return getGroupStatus(parts);\n }, [parts]);\n\n const state = useMemo<ChainOfThoughtState>(\n () => ({ parts, collapsed, status }),\n [parts, collapsed, status],\n );\n\n return {\n getState: () => state,\n setCollapsed,\n part: getMessagePart,\n };\n};\n\nexport const ChainOfThoughtClient = resource(useChainOfThoughtClient);\n"],"mappings":";;;;;AAUA,MAAMQ,2BAA0BC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAAC,OAAAC,mBAAAJ;CAO/B,MAAA,CAAAK,WAAAC,gBAAkCd,SAAS,IAAI;CAAE,IAAAe;CAAA,IAAAN,EAAA,OAAAE,OAAA;EAGxCI,KAAAT,eAAeK,KAAK;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAD9B,MAAAO,SACED;CACU,IAAAE;CAAA,IAAAR,EAAA,OAAAI,aAAAJ,EAAA,OAAAE,SAAAF,EAAA,OAAAO,QAAA;EAGHC,KAAA;GAAAN;GAAAE;GAAAG;EAA2B;EAACP,EAAA,KAAAI;EAAAJ,EAAA,KAAAE;EAAAF,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CADrC,MAAAS,QACSD;CAEP,IAAAE;CAAA,IAAAV,EAAA,OAAAS,OAAA;EAGUC,WAAMD;EAAKT,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,IAAAW;CAAA,IAAAX,EAAA,OAAAG,kBAAAH,EAAA,OAAAU,IAAA;EADhBC,KAAA;GAAAC,UACKF;GAAWL;GAAAQ,MAEfV;EACR;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAU;EAAAV,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,OAJMW;AAIN;AAGH,MAAaG,uBAAuBtB,SAASM,uBAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-message-client.d.ts","names":[],"sources":["../../../src/store/clients/thread-message-client.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"thread-message-client.d.ts","names":[],"sources":["../../../src/store/clients/thread-message-client.ts"],"mappings":";;;KAmEY;EACV,SAAS;EACT;EACA;EACA;EACA;;cA2GW,iDAAmB,SAAA,0BAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getThreadMessageText } from "../../utils/text.js";
|
|
2
|
+
import { COMPLETE_STATUS, normalizePartStatus } from "../../utils/normalizePartStatus.js";
|
|
2
3
|
import { NoOpComposerClient } from "./no-op-composer-client.js";
|
|
3
4
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
4
5
|
import { useState } from "@assistant-ui/tap/react-shim";
|
|
@@ -6,34 +7,37 @@ import { useClientLookup } from "@assistant-ui/store";
|
|
|
6
7
|
import { resource, useResource, withKey } from "@assistant-ui/tap";
|
|
7
8
|
//#region src/store/clients/thread-message-client.ts
|
|
8
9
|
const useThreadMessagePartClient = (t0) => {
|
|
9
|
-
const $ = c(
|
|
10
|
-
const { part } = t0;
|
|
10
|
+
const $ = c(8);
|
|
11
|
+
const { part, isMessageRunning } = t0;
|
|
11
12
|
let t1;
|
|
12
|
-
if ($[0]
|
|
13
|
-
t1 =
|
|
14
|
-
$[0] =
|
|
15
|
-
|
|
13
|
+
if ($[0] !== isMessageRunning || $[1] !== part) {
|
|
14
|
+
t1 = isMessageRunning ? normalizePartStatus(part) ?? COMPLETE_STATUS : COMPLETE_STATUS;
|
|
15
|
+
$[0] = isMessageRunning;
|
|
16
|
+
$[1] = part;
|
|
17
|
+
$[2] = t1;
|
|
18
|
+
} else t1 = $[2];
|
|
16
19
|
let t2;
|
|
17
|
-
if ($[
|
|
20
|
+
if ($[3] !== part || $[4] !== t1) {
|
|
18
21
|
t2 = {
|
|
19
22
|
...part,
|
|
20
23
|
status: t1
|
|
21
24
|
};
|
|
22
|
-
$[
|
|
23
|
-
$[
|
|
24
|
-
|
|
25
|
+
$[3] = part;
|
|
26
|
+
$[4] = t1;
|
|
27
|
+
$[5] = t2;
|
|
28
|
+
} else t2 = $[5];
|
|
25
29
|
const state = t2;
|
|
26
30
|
let t3;
|
|
27
|
-
if ($[
|
|
31
|
+
if ($[6] !== state) {
|
|
28
32
|
t3 = {
|
|
29
33
|
getState: () => state,
|
|
30
34
|
addToolResult: _temp,
|
|
31
35
|
resumeToolCall: _temp2,
|
|
32
36
|
respondToToolApproval: _temp3
|
|
33
37
|
};
|
|
34
|
-
$[
|
|
35
|
-
$[
|
|
36
|
-
} else t3 = $[
|
|
38
|
+
$[6] = state;
|
|
39
|
+
$[7] = t3;
|
|
40
|
+
} else t3 = $[7];
|
|
37
41
|
return t3;
|
|
38
42
|
};
|
|
39
43
|
const ThreadMessagePartClient = resource(useThreadMessagePartClient);
|
|
@@ -47,48 +51,59 @@ const useThreadMessageAttachmentClient = ({ attachment }) => {
|
|
|
47
51
|
};
|
|
48
52
|
const ThreadMessageAttachmentClient = resource(useThreadMessageAttachmentClient);
|
|
49
53
|
const useThreadMessageClient = (t0) => {
|
|
50
|
-
const $ = c(
|
|
54
|
+
const $ = c(38);
|
|
51
55
|
const { message, index, isLast: t1, branchNumber: t2, branchCount: t3 } = t0;
|
|
52
56
|
const isLast = t1 === void 0 ? true : t1;
|
|
53
57
|
const branchNumber = t2 === void 0 ? 1 : t2;
|
|
54
58
|
const branchCount = t3 === void 0 ? 1 : t3;
|
|
55
59
|
const [isCopiedState, setIsCopied] = useState(false);
|
|
56
60
|
const [isHoveringState, setIsHovering] = useState(false);
|
|
61
|
+
const isMessageRunning = message.role === "assistant" && message.status.type === "running";
|
|
57
62
|
let t4;
|
|
58
|
-
if ($[0] !== message.content) {
|
|
59
|
-
|
|
60
|
-
$[
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
if ($[0] !== isMessageRunning || $[1] !== message.content) {
|
|
64
|
+
let t5;
|
|
65
|
+
if ($[3] !== isMessageRunning) {
|
|
66
|
+
t5 = (part, idx) => withKey("toolCallId" in part && part.toolCallId != null ? `toolCallId-${part.toolCallId}` : `index-${idx}`, ThreadMessagePartClient({
|
|
67
|
+
part,
|
|
68
|
+
isMessageRunning
|
|
69
|
+
}), [part, isMessageRunning]);
|
|
70
|
+
$[3] = isMessageRunning;
|
|
71
|
+
$[4] = t5;
|
|
72
|
+
} else t5 = $[4];
|
|
73
|
+
t4 = message.content.map(t5);
|
|
74
|
+
$[0] = isMessageRunning;
|
|
75
|
+
$[1] = message.content;
|
|
76
|
+
$[2] = t4;
|
|
77
|
+
} else t4 = $[2];
|
|
63
78
|
const parts = useClientLookup(t4);
|
|
64
79
|
let t5;
|
|
65
|
-
if ($[
|
|
80
|
+
if ($[5] !== message.attachments) {
|
|
66
81
|
t5 = message.attachments ?? [];
|
|
67
|
-
$[
|
|
68
|
-
$[
|
|
69
|
-
} else t5 = $[
|
|
82
|
+
$[5] = message.attachments;
|
|
83
|
+
$[6] = t5;
|
|
84
|
+
} else t5 = $[6];
|
|
70
85
|
let t6;
|
|
71
|
-
if ($[
|
|
72
|
-
t6 = t5.map(
|
|
73
|
-
$[
|
|
74
|
-
$[
|
|
75
|
-
} else t6 = $[
|
|
86
|
+
if ($[7] !== t5) {
|
|
87
|
+
t6 = t5.map(_temp4);
|
|
88
|
+
$[7] = t5;
|
|
89
|
+
$[8] = t6;
|
|
90
|
+
} else t6 = $[8];
|
|
76
91
|
const attachments = useClientLookup(t6);
|
|
77
92
|
let t7;
|
|
78
|
-
if ($[
|
|
93
|
+
if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
|
|
79
94
|
t7 = NoOpComposerClient({ type: "edit" });
|
|
80
|
-
$[
|
|
81
|
-
} else t7 = $[
|
|
95
|
+
$[9] = t7;
|
|
96
|
+
} else t7 = $[9];
|
|
82
97
|
const composer = useResource(t7);
|
|
83
98
|
let t8;
|
|
84
|
-
if ($[
|
|
99
|
+
if ($[10] !== composer) {
|
|
85
100
|
t8 = composer.getState();
|
|
86
|
-
$[
|
|
87
|
-
$[
|
|
88
|
-
} else t8 = $[
|
|
101
|
+
$[10] = composer;
|
|
102
|
+
$[11] = t8;
|
|
103
|
+
} else t8 = $[11];
|
|
89
104
|
const composerState = t8;
|
|
90
105
|
let t9;
|
|
91
|
-
if ($[
|
|
106
|
+
if ($[12] !== branchCount || $[13] !== branchNumber || $[14] !== composerState || $[15] !== index || $[16] !== isCopiedState || $[17] !== isHoveringState || $[18] !== isLast || $[19] !== message || $[20] !== parts.state) {
|
|
92
107
|
t9 = {
|
|
93
108
|
...message,
|
|
94
109
|
parts: parts.state,
|
|
@@ -102,78 +117,78 @@ const useThreadMessageClient = (t0) => {
|
|
|
102
117
|
isCopied: isCopiedState,
|
|
103
118
|
isHovering: isHoveringState
|
|
104
119
|
};
|
|
105
|
-
$[
|
|
106
|
-
$[
|
|
107
|
-
$[
|
|
108
|
-
$[
|
|
109
|
-
$[
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
112
|
-
$[
|
|
113
|
-
$[
|
|
114
|
-
$[
|
|
115
|
-
} else t9 = $[
|
|
120
|
+
$[12] = branchCount;
|
|
121
|
+
$[13] = branchNumber;
|
|
122
|
+
$[14] = composerState;
|
|
123
|
+
$[15] = index;
|
|
124
|
+
$[16] = isCopiedState;
|
|
125
|
+
$[17] = isHoveringState;
|
|
126
|
+
$[18] = isLast;
|
|
127
|
+
$[19] = message;
|
|
128
|
+
$[20] = parts.state;
|
|
129
|
+
$[21] = t9;
|
|
130
|
+
} else t9 = $[21];
|
|
116
131
|
const state = t9;
|
|
117
132
|
let t10;
|
|
118
|
-
if ($[
|
|
133
|
+
if ($[22] !== state) {
|
|
119
134
|
t10 = () => state;
|
|
120
|
-
$[
|
|
121
|
-
$[
|
|
122
|
-
} else t10 = $[
|
|
135
|
+
$[22] = state;
|
|
136
|
+
$[23] = t10;
|
|
137
|
+
} else t10 = $[23];
|
|
123
138
|
let t11;
|
|
124
|
-
if ($[
|
|
139
|
+
if ($[24] !== composer) {
|
|
125
140
|
t11 = () => composer;
|
|
126
|
-
$[
|
|
127
|
-
$[
|
|
128
|
-
} else t11 = $[
|
|
141
|
+
$[24] = composer;
|
|
142
|
+
$[25] = t11;
|
|
143
|
+
} else t11 = $[25];
|
|
129
144
|
let t12;
|
|
130
|
-
if ($[
|
|
145
|
+
if ($[26] !== parts) {
|
|
131
146
|
t12 = (selector) => {
|
|
132
147
|
if ("index" in selector) return parts.get({ index: selector.index });
|
|
133
148
|
else return parts.get({ key: `toolCallId-${selector.toolCallId}` });
|
|
134
149
|
};
|
|
135
|
-
$[
|
|
136
|
-
$[
|
|
137
|
-
} else t12 = $[
|
|
150
|
+
$[26] = parts;
|
|
151
|
+
$[27] = t12;
|
|
152
|
+
} else t12 = $[27];
|
|
138
153
|
let t13;
|
|
139
|
-
if ($[
|
|
154
|
+
if ($[28] !== attachments) {
|
|
140
155
|
t13 = (selector_0) => {
|
|
141
156
|
if ("id" in selector_0) return attachments.get({ key: selector_0.id });
|
|
142
157
|
else return attachments.get(selector_0);
|
|
143
158
|
};
|
|
144
|
-
$[
|
|
145
|
-
$[
|
|
146
|
-
} else t13 = $[
|
|
159
|
+
$[28] = attachments;
|
|
160
|
+
$[29] = t13;
|
|
161
|
+
} else t13 = $[29];
|
|
147
162
|
let t14;
|
|
148
|
-
if ($[
|
|
163
|
+
if ($[30] !== message) {
|
|
149
164
|
t14 = () => getThreadMessageText(message);
|
|
150
|
-
$[
|
|
151
|
-
$[
|
|
152
|
-
} else t14 = $[
|
|
165
|
+
$[30] = message;
|
|
166
|
+
$[31] = t14;
|
|
167
|
+
} else t14 = $[31];
|
|
153
168
|
let t15;
|
|
154
|
-
if ($[
|
|
169
|
+
if ($[32] !== t10 || $[33] !== t11 || $[34] !== t12 || $[35] !== t13 || $[36] !== t14) {
|
|
155
170
|
t15 = {
|
|
156
171
|
getState: t10,
|
|
157
172
|
composer: t11,
|
|
158
173
|
part: t12,
|
|
159
174
|
attachment: t13,
|
|
160
|
-
delete:
|
|
161
|
-
reload:
|
|
162
|
-
speak:
|
|
163
|
-
stopSpeaking:
|
|
164
|
-
submitFeedback:
|
|
165
|
-
switchToBranch:
|
|
175
|
+
delete: _temp5,
|
|
176
|
+
reload: _temp6,
|
|
177
|
+
speak: _temp7,
|
|
178
|
+
stopSpeaking: _temp8,
|
|
179
|
+
submitFeedback: _temp9,
|
|
180
|
+
switchToBranch: _temp0,
|
|
166
181
|
getCopyText: t14,
|
|
167
182
|
setIsCopied,
|
|
168
183
|
setIsHovering
|
|
169
184
|
};
|
|
170
|
-
$[
|
|
171
|
-
$[
|
|
172
|
-
$[
|
|
173
|
-
$[
|
|
174
|
-
$[
|
|
175
|
-
$[
|
|
176
|
-
} else t15 = $[
|
|
185
|
+
$[32] = t10;
|
|
186
|
+
$[33] = t11;
|
|
187
|
+
$[34] = t12;
|
|
188
|
+
$[35] = t13;
|
|
189
|
+
$[36] = t14;
|
|
190
|
+
$[37] = t15;
|
|
191
|
+
} else t15 = $[37];
|
|
177
192
|
return t15;
|
|
178
193
|
};
|
|
179
194
|
const ThreadMessageClient = resource(useThreadMessageClient);
|
|
@@ -186,12 +201,12 @@ function _temp2() {
|
|
|
186
201
|
function _temp3() {
|
|
187
202
|
throw new Error("Not supported");
|
|
188
203
|
}
|
|
189
|
-
function _temp4(
|
|
190
|
-
return withKey("toolCallId" in part && part.toolCallId != null ? `toolCallId-${part.toolCallId}` : `index-${idx}`, ThreadMessagePartClient({ part }), [part]);
|
|
191
|
-
}
|
|
192
|
-
function _temp5(attachment) {
|
|
204
|
+
function _temp4(attachment) {
|
|
193
205
|
return withKey(attachment.id, ThreadMessageAttachmentClient({ attachment }), [attachment]);
|
|
194
206
|
}
|
|
207
|
+
function _temp5() {
|
|
208
|
+
throw new Error("Not supported in ThreadMessageProvider");
|
|
209
|
+
}
|
|
195
210
|
function _temp6() {
|
|
196
211
|
throw new Error("Not supported in ThreadMessageProvider");
|
|
197
212
|
}
|
|
@@ -207,9 +222,6 @@ function _temp9() {
|
|
|
207
222
|
function _temp0() {
|
|
208
223
|
throw new Error("Not supported in ThreadMessageProvider");
|
|
209
224
|
}
|
|
210
|
-
function _temp1() {
|
|
211
|
-
throw new Error("Not supported in ThreadMessageProvider");
|
|
212
|
-
}
|
|
213
225
|
//#endregion
|
|
214
226
|
export { ThreadMessageClient };
|
|
215
227
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-message-client.js","names":["ThreadAssistantMessagePart","ThreadUserMessagePart","ThreadMessage","Attachment","useMemo","useState","useResource","resource","withKey","ClientOutput","useClientLookup","MessageState","PartState","NoOpComposerClient","getThreadMessageText","useThreadMessagePartClient","t0","$","_c","part","t1","Symbol","for","type","t2","status","state","t3","getState","addToolResult","_temp","resumeToolCall","_temp2","respondToToolApproval","_temp3","ThreadMessagePartClient","useThreadMessageAttachmentClient","attachment","remove","Error","ThreadMessageAttachmentClient","ThreadMessageClientProps","message","index","isLast","branchNumber","branchCount","useThreadMessageClient","undefined","isCopiedState","setIsCopied","isHoveringState","setIsHovering","t4","content","map","_temp4","parts","t5","attachments","t6","_temp5","t7","composer","t8","composerState","t9","parentId","speech","isCopied","isHovering","t10","t11","t12","selector","get","key","toolCallId","t13","selector_0","id","t14","t15","delete","_temp6","reload","_temp7","speak","_temp8","stopSpeaking","_temp9","submitFeedback","_temp0","switchToBranch","_temp1","getCopyText","ThreadMessageClient","idx"],"sources":["../../../src/store/clients/thread-message-client.ts"],"sourcesContent":["import type {\n ThreadAssistantMessagePart,\n ThreadUserMessagePart,\n ThreadMessage,\n} from \"../../types/message\";\nimport type { Attachment } from \"../../types/attachment\";\nimport { useMemo, useState } from \"react\";\nimport { useResource, resource, withKey } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport { useClientLookup } from \"@assistant-ui/store\";\nimport type { MessageState } from \"../scopes/message\";\nimport type { PartState } from \"../scopes/part\";\nimport { NoOpComposerClient } from \"./no-op-composer-client\";\nimport { getThreadMessageText } from \"../../utils/text\";\n\nconst useThreadMessagePartClient = ({\n part,\n}: {\n part: ThreadAssistantMessagePart | ThreadUserMessagePart;\n}): ClientOutput<\"part\"> => {\n const state = useMemo<PartState>(() => {\n return {\n ...part,\n status: { type: \"complete\" },\n };\n }, [part]);\n\n return {\n getState: () => state,\n addToolResult: () => {\n throw new Error(\"Not supported\");\n },\n resumeToolCall: () => {\n throw new Error(\"Not supported\");\n },\n respondToToolApproval: () => {\n throw new Error(\"Not supported\");\n },\n };\n};\n\nconst ThreadMessagePartClient = resource(useThreadMessagePartClient);\n\nconst useThreadMessageAttachmentClient = ({\n attachment,\n}: {\n attachment: Attachment;\n}): ClientOutput<\"attachment\"> => {\n return {\n getState: () => attachment,\n remove: () => {\n throw new Error(\"Not supported\");\n },\n };\n};\n\nconst ThreadMessageAttachmentClient = resource(\n useThreadMessageAttachmentClient,\n);\nexport type ThreadMessageClientProps = {\n message: ThreadMessage;\n index: number;\n isLast?: boolean;\n branchNumber?: number;\n branchCount?: number;\n};\n\nconst useThreadMessageClient = ({\n message,\n index,\n isLast = true,\n branchNumber = 1,\n branchCount = 1,\n}: ThreadMessageClientProps): ClientOutput<\"message\"> => {\n const [isCopiedState, setIsCopied] = useState(false);\n const [isHoveringState, setIsHovering] = useState(false);\n\n const parts = useClientLookup(\n message.content.map((part, idx) =>\n withKey(\n \"toolCallId\" in part && part.toolCallId != null\n ? `toolCallId-${part.toolCallId}`\n : `index-${idx}`,\n ThreadMessagePartClient({ part }),\n [part],\n ),\n ),\n );\n\n const attachments = useClientLookup(\n (message.attachments ?? []).map((attachment) =>\n withKey(attachment.id, ThreadMessageAttachmentClient({ attachment }), [\n attachment,\n ]),\n ),\n );\n\n const composer = useResource(NoOpComposerClient({ type: \"edit\" }));\n const composerState = composer.getState();\n\n const state = useMemo<MessageState>(() => {\n return {\n ...message,\n parts: parts.state,\n composer: composerState,\n parentId: null,\n index,\n isLast,\n branchNumber,\n branchCount,\n speech: undefined,\n isCopied: isCopiedState,\n isHovering: isHoveringState,\n };\n }, [\n message,\n index,\n isCopiedState,\n isHoveringState,\n isLast,\n parts.state,\n composerState,\n branchNumber,\n branchCount,\n ]);\n\n return {\n getState: () => state,\n composer: () => composer,\n part: (selector) => {\n if (\"index\" in selector) {\n return parts.get({ index: selector.index });\n } else {\n return parts.get({ key: `toolCallId-${selector.toolCallId}` });\n }\n },\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachments.get({ key: selector.id });\n } else {\n return attachments.get(selector);\n }\n },\n delete: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n reload: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n speak: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n stopSpeaking: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n submitFeedback: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n switchToBranch: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n getCopyText: () => {\n return getThreadMessageText(message);\n },\n setIsCopied,\n setIsHovering,\n };\n};\n\nexport const ThreadMessageClient = resource(useThreadMessageClient);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thread-message-client.js","names":["ThreadAssistantMessagePart","ThreadUserMessagePart","ThreadMessage","Attachment","useMemo","useState","useResource","resource","withKey","ClientOutput","useClientLookup","MessageState","PartState","NoOpComposerClient","COMPLETE_STATUS","normalizePartStatus","getThreadMessageText","useThreadMessagePartClient","t0","$","_c","part","isMessageRunning","t1","t2","status","state","t3","getState","addToolResult","_temp","resumeToolCall","_temp2","respondToToolApproval","_temp3","ThreadMessagePartClient","useThreadMessageAttachmentClient","attachment","remove","Error","ThreadMessageAttachmentClient","ThreadMessageClientProps","message","index","isLast","branchNumber","branchCount","useThreadMessageClient","undefined","isCopiedState","setIsCopied","isHoveringState","setIsHovering","role","type","t4","content","t5","idx","toolCallId","map","parts","attachments","t6","_temp4","t7","Symbol","for","composer","t8","composerState","t9","parentId","speech","isCopied","isHovering","t10","t11","t12","selector","get","key","t13","selector_0","id","t14","t15","delete","_temp5","reload","_temp6","speak","_temp7","stopSpeaking","_temp8","submitFeedback","_temp9","switchToBranch","_temp0","getCopyText","ThreadMessageClient"],"sources":["../../../src/store/clients/thread-message-client.ts"],"sourcesContent":["import type {\n ThreadAssistantMessagePart,\n ThreadUserMessagePart,\n ThreadMessage,\n} from \"../../types/message\";\nimport type { Attachment } from \"../../types/attachment\";\nimport { useMemo, useState } from \"react\";\nimport { useResource, resource, withKey } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport { useClientLookup } from \"@assistant-ui/store\";\nimport type { MessageState } from \"../scopes/message\";\nimport type { PartState } from \"../scopes/part\";\nimport { NoOpComposerClient } from \"./no-op-composer-client\";\nimport {\n COMPLETE_STATUS,\n normalizePartStatus,\n} from \"../../utils/normalizePartStatus\";\nimport { getThreadMessageText } from \"../../utils/text\";\n\nconst useThreadMessagePartClient = ({\n part,\n isMessageRunning,\n}: {\n part: ThreadAssistantMessagePart | ThreadUserMessagePart;\n isMessageRunning: boolean;\n}): ClientOutput<\"part\"> => {\n const state = useMemo<PartState>(() => {\n return {\n ...part,\n status: isMessageRunning\n ? (normalizePartStatus(part) ?? COMPLETE_STATUS)\n : COMPLETE_STATUS,\n };\n }, [part, isMessageRunning]);\n\n return {\n getState: () => state,\n addToolResult: () => {\n throw new Error(\"Not supported\");\n },\n resumeToolCall: () => {\n throw new Error(\"Not supported\");\n },\n respondToToolApproval: () => {\n throw new Error(\"Not supported\");\n },\n };\n};\n\nconst ThreadMessagePartClient = resource(useThreadMessagePartClient);\n\nconst useThreadMessageAttachmentClient = ({\n attachment,\n}: {\n attachment: Attachment;\n}): ClientOutput<\"attachment\"> => {\n return {\n getState: () => attachment,\n remove: () => {\n throw new Error(\"Not supported\");\n },\n };\n};\n\nconst ThreadMessageAttachmentClient = resource(\n useThreadMessageAttachmentClient,\n);\nexport type ThreadMessageClientProps = {\n message: ThreadMessage;\n index: number;\n isLast?: boolean;\n branchNumber?: number;\n branchCount?: number;\n};\n\nconst useThreadMessageClient = ({\n message,\n index,\n isLast = true,\n branchNumber = 1,\n branchCount = 1,\n}: ThreadMessageClientProps): ClientOutput<\"message\"> => {\n const [isCopiedState, setIsCopied] = useState(false);\n const [isHoveringState, setIsHovering] = useState(false);\n const isMessageRunning =\n message.role === \"assistant\" && message.status.type === \"running\";\n\n const parts = useClientLookup(\n message.content.map((part, idx) =>\n withKey(\n \"toolCallId\" in part && part.toolCallId != null\n ? `toolCallId-${part.toolCallId}`\n : `index-${idx}`,\n ThreadMessagePartClient({ part, isMessageRunning }),\n [part, isMessageRunning],\n ),\n ),\n );\n\n const attachments = useClientLookup(\n (message.attachments ?? []).map((attachment) =>\n withKey(attachment.id, ThreadMessageAttachmentClient({ attachment }), [\n attachment,\n ]),\n ),\n );\n\n const composer = useResource(NoOpComposerClient({ type: \"edit\" }));\n const composerState = composer.getState();\n\n const state = useMemo<MessageState>(() => {\n return {\n ...message,\n parts: parts.state,\n composer: composerState,\n parentId: null,\n index,\n isLast,\n branchNumber,\n branchCount,\n speech: undefined,\n isCopied: isCopiedState,\n isHovering: isHoveringState,\n };\n }, [\n message,\n index,\n isCopiedState,\n isHoveringState,\n isLast,\n parts.state,\n composerState,\n branchNumber,\n branchCount,\n ]);\n\n return {\n getState: () => state,\n composer: () => composer,\n part: (selector) => {\n if (\"index\" in selector) {\n return parts.get({ index: selector.index });\n } else {\n return parts.get({ key: `toolCallId-${selector.toolCallId}` });\n }\n },\n attachment: (selector) => {\n if (\"id\" in selector) {\n return attachments.get({ key: selector.id });\n } else {\n return attachments.get(selector);\n }\n },\n delete: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n reload: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n speak: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n stopSpeaking: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n submitFeedback: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n switchToBranch: () => {\n throw new Error(\"Not supported in ThreadMessageProvider\");\n },\n getCopyText: () => {\n return getThreadMessageText(message);\n },\n setIsCopied,\n setIsHovering,\n };\n};\n\nexport const ThreadMessageClient = resource(useThreadMessageClient);\n"],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { ClientOutput } from "@assistant-ui/store";
|
|
|
3
3
|
//#region src/store/runtime-clients/thread-list-item-runtime-client.d.ts
|
|
4
4
|
declare const ThreadListItemClient: import("@assistant-ui/tap").Resource<ClientOutput<"threadListItem">, [{
|
|
5
5
|
runtime: ThreadListItemRuntime;
|
|
6
|
+
mainThreadIsRunning?: boolean | undefined;
|
|
6
7
|
}]>;
|
|
7
8
|
//#endregion
|
|
8
9
|
export { ThreadListItemClient };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-list-item-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/thread-list-item-runtime-client.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"thread-list-item-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/thread-list-item-runtime-client.ts"],"mappings":";;;cAoEa,kDAAoB,SAAA;EAtDtB,SAAA;EAIa"}
|
|
@@ -5,14 +5,35 @@ import { useAssistantEmit } from "@assistant-ui/store";
|
|
|
5
5
|
import { resource } from "@assistant-ui/tap";
|
|
6
6
|
//#region src/store/runtime-clients/thread-list-item-runtime-client.ts
|
|
7
7
|
const useThreadListItemClient = (t0) => {
|
|
8
|
-
const $ = c(
|
|
9
|
-
const { runtime } = t0;
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
let t1;
|
|
8
|
+
const $ = c(23);
|
|
9
|
+
const { runtime, mainThreadIsRunning: t1 } = t0;
|
|
10
|
+
const mainThreadIsRunning = t1 === void 0 ? false : t1;
|
|
11
|
+
const runtimeState = useSubscribable(runtime);
|
|
13
12
|
let t2;
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
bb0: {
|
|
14
|
+
const isRunning = runtimeState.isRunning || runtimeState.isMain && mainThreadIsRunning;
|
|
15
|
+
if (isRunning === runtimeState.isRunning) {
|
|
16
|
+
t2 = runtimeState;
|
|
17
|
+
break bb0;
|
|
18
|
+
}
|
|
19
|
+
let t3;
|
|
20
|
+
if ($[0] !== isRunning || $[1] !== runtimeState) {
|
|
21
|
+
t3 = {
|
|
22
|
+
...runtimeState,
|
|
23
|
+
isRunning
|
|
24
|
+
};
|
|
25
|
+
$[0] = isRunning;
|
|
26
|
+
$[1] = runtimeState;
|
|
27
|
+
$[2] = t3;
|
|
28
|
+
} else t3 = $[2];
|
|
29
|
+
t2 = t3;
|
|
30
|
+
}
|
|
31
|
+
const state = t2;
|
|
32
|
+
const emit = useAssistantEmit();
|
|
33
|
+
let t3;
|
|
34
|
+
let t4;
|
|
35
|
+
if ($[3] !== emit || $[4] !== runtime) {
|
|
36
|
+
t3 = () => {
|
|
16
37
|
const unsubscribers = [];
|
|
17
38
|
for (const event of ["switchedTo", "switchedAway"]) {
|
|
18
39
|
const unsubscribe = runtime.unstable_on(event, () => {
|
|
@@ -24,32 +45,32 @@ const useThreadListItemClient = (t0) => {
|
|
|
24
45
|
for (const unsub of unsubscribers) unsub();
|
|
25
46
|
};
|
|
26
47
|
};
|
|
27
|
-
|
|
28
|
-
$[
|
|
29
|
-
$[
|
|
30
|
-
$[
|
|
31
|
-
$[
|
|
48
|
+
t4 = [runtime, emit];
|
|
49
|
+
$[3] = emit;
|
|
50
|
+
$[4] = runtime;
|
|
51
|
+
$[5] = t3;
|
|
52
|
+
$[6] = t4;
|
|
32
53
|
} else {
|
|
33
|
-
|
|
34
|
-
|
|
54
|
+
t3 = $[5];
|
|
55
|
+
t4 = $[6];
|
|
35
56
|
}
|
|
36
|
-
useEffect(
|
|
37
|
-
let t3;
|
|
38
|
-
if ($[4] !== state) {
|
|
39
|
-
t3 = () => state;
|
|
40
|
-
$[4] = state;
|
|
41
|
-
$[5] = t3;
|
|
42
|
-
} else t3 = $[5];
|
|
43
|
-
let t4;
|
|
44
|
-
if ($[6] !== runtime) {
|
|
45
|
-
t4 = () => runtime;
|
|
46
|
-
$[6] = runtime;
|
|
47
|
-
$[7] = t4;
|
|
48
|
-
} else t4 = $[7];
|
|
57
|
+
useEffect(t3, t4);
|
|
49
58
|
let t5;
|
|
50
|
-
if ($[
|
|
51
|
-
t5 =
|
|
52
|
-
|
|
59
|
+
if ($[7] !== state) {
|
|
60
|
+
t5 = () => state;
|
|
61
|
+
$[7] = state;
|
|
62
|
+
$[8] = t5;
|
|
63
|
+
} else t5 = $[8];
|
|
64
|
+
let t6;
|
|
65
|
+
if ($[9] !== runtime) {
|
|
66
|
+
t6 = () => runtime;
|
|
67
|
+
$[9] = runtime;
|
|
68
|
+
$[10] = t6;
|
|
69
|
+
} else t6 = $[10];
|
|
70
|
+
let t7;
|
|
71
|
+
if ($[11] !== runtime.archive || $[12] !== runtime.delete || $[13] !== runtime.detach || $[14] !== runtime.generateTitle || $[15] !== runtime.initialize || $[16] !== runtime.rename || $[17] !== runtime.switchTo || $[18] !== runtime.unarchive || $[19] !== runtime.updateCustom || $[20] !== t5 || $[21] !== t6) {
|
|
72
|
+
t7 = {
|
|
73
|
+
getState: t5,
|
|
53
74
|
switchTo: runtime.switchTo,
|
|
54
75
|
rename: runtime.rename,
|
|
55
76
|
updateCustom: runtime.updateCustom,
|
|
@@ -59,22 +80,22 @@ const useThreadListItemClient = (t0) => {
|
|
|
59
80
|
generateTitle: runtime.generateTitle,
|
|
60
81
|
initialize: runtime.initialize,
|
|
61
82
|
detach: runtime.detach,
|
|
62
|
-
__internal_getRuntime:
|
|
83
|
+
__internal_getRuntime: t6
|
|
63
84
|
};
|
|
64
|
-
$[
|
|
65
|
-
$[
|
|
66
|
-
$[
|
|
67
|
-
$[
|
|
68
|
-
$[
|
|
69
|
-
$[
|
|
70
|
-
$[
|
|
71
|
-
$[
|
|
72
|
-
$[
|
|
73
|
-
$[
|
|
74
|
-
$[
|
|
75
|
-
$[
|
|
76
|
-
} else
|
|
77
|
-
return
|
|
85
|
+
$[11] = runtime.archive;
|
|
86
|
+
$[12] = runtime.delete;
|
|
87
|
+
$[13] = runtime.detach;
|
|
88
|
+
$[14] = runtime.generateTitle;
|
|
89
|
+
$[15] = runtime.initialize;
|
|
90
|
+
$[16] = runtime.rename;
|
|
91
|
+
$[17] = runtime.switchTo;
|
|
92
|
+
$[18] = runtime.unarchive;
|
|
93
|
+
$[19] = runtime.updateCustom;
|
|
94
|
+
$[20] = t5;
|
|
95
|
+
$[21] = t6;
|
|
96
|
+
$[22] = t7;
|
|
97
|
+
} else t7 = $[22];
|
|
98
|
+
return t7;
|
|
78
99
|
};
|
|
79
100
|
const ThreadListItemClient = resource(useThreadListItemClient);
|
|
80
101
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-list-item-runtime-client.js","names":["Unsubscribe","useEffect","resource","ClientOutput","useAssistantEmit","ThreadListItemEventType","ThreadListItemRuntime","useSubscribable","useThreadListItemClient","t0","$","_c","runtime","
|
|
1
|
+
{"version":3,"file":"thread-list-item-runtime-client.js","names":["Unsubscribe","useEffect","useMemo","resource","ClientOutput","useAssistantEmit","ThreadListItemEventType","ThreadListItemRuntime","useSubscribable","useThreadListItemClient","t0","$","_c","runtime","mainThreadIsRunning","t1","undefined","runtimeState","t2","bb0","isRunning","isMain","t3","state","emit","t4","unsubscribers","threadListItemEvents","event","unsubscribe","unstable_on","threadId","getState","id","push","unsub","t5","t6","t7","archive","delete","detach","generateTitle","initialize","rename","switchTo","unarchive","updateCustom","__internal_getRuntime","ThreadListItemClient"],"sources":["../../../src/store/runtime-clients/thread-list-item-runtime-client.ts"],"sourcesContent":["import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport { useEffect, useMemo } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport { type ClientOutput, useAssistantEmit } from \"@assistant-ui/store\";\nimport type {\n ThreadListItemEventType,\n ThreadListItemRuntime,\n} from \"../../runtime/api/thread-list-item-runtime\";\nimport { useSubscribable } from \"./useSubscribable\";\n\nconst useThreadListItemClient = ({\n runtime,\n mainThreadIsRunning = false,\n}: {\n runtime: ThreadListItemRuntime;\n // A thread list that cannot report per-thread run state still leaves the open\n // thread observable, and the thread client tracks that reactively. Omitted\n // where the runtime state is already authoritative for every thread.\n mainThreadIsRunning?: boolean | undefined;\n}): ClientOutput<\"threadListItem\"> => {\n const runtimeState = useSubscribable(runtime);\n const state = useMemo(() => {\n const isRunning =\n runtimeState.isRunning || (runtimeState.isMain && mainThreadIsRunning);\n if (isRunning === runtimeState.isRunning) return runtimeState;\n return { ...runtimeState, isRunning };\n }, [runtimeState, mainThreadIsRunning]);\n const emit = useAssistantEmit();\n\n // Bind thread list item events to event manager\n useEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n // Subscribe to thread list item events\n const threadListItemEvents: ThreadListItemEventType[] = [\n \"switchedTo\",\n \"switchedAway\",\n ];\n\n for (const event of threadListItemEvents) {\n const unsubscribe = runtime.unstable_on(event, () => {\n emit(`threadListItem.${event}`, {\n threadId: runtime.getState()!.id,\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit]);\n\n return {\n getState: () => state,\n switchTo: runtime.switchTo,\n rename: runtime.rename,\n updateCustom: runtime.updateCustom,\n archive: runtime.archive,\n unarchive: runtime.unarchive,\n delete: runtime.delete,\n generateTitle: runtime.generateTitle,\n initialize: runtime.initialize,\n detach: runtime.detach,\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const ThreadListItemClient = resource(useThreadListItemClient);\n"],"mappings":";;;;;;AAUA,MAAMS,2BAA0BC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAAC,SAAAC,qBAAAC,OAAAL;CAE/B,MAAAI,sBAAAC,OAAAC,KAAAA,IAAA,QAAAD;CAQA,MAAAE,eAAqBT,gBAAgBK,OAAO;CAAE,IAAAK;CAAAC,KAAA;EAE5C,MAAAC,YACEH,aAAYG,aAAeH,aAAYI,UAAZP;EAC7B,IAAIM,cAAcH,aAAYG,WAAU;GAAEF,KAAOD;GAAP,MAAAE;EAAoB;EAAA,IAAAG;EAAA,IAAAX,EAAA,OAAAS,aAAAT,EAAA,OAAAM,cAAA;GACvDK,KAAA;IAAA,GAAKL;IAAYG;GAAY;GAACT,EAAA,KAAAS;GAAAT,EAAA,KAAAM;GAAAN,EAAA,KAAAW;EAAA,OAAAA,KAAAX,EAAA;EAArCO,KAAOI;CAA+B;CAJxC,MAAAC,QAAcL;CAMd,MAAAM,OAAanB,iBAAiB;CAAE,IAAAiB;CAAA,IAAAG;CAAA,IAAAd,EAAA,OAAAa,QAAAb,EAAA,OAAAE,SAAA;EAGtBS,WAAA;GACR,MAAAI,gBAAqC,CAAA;GAQrC,KAAK,MAAAE,SAAeD,CAJlB,cACA,cAGkBA,GAAoB;IACtC,MAAAE,cAAoBhB,QAAOiB,YAAaF,aAAO;KAC7CJ,KAAK,kBAAkBI,SAAS,EAAAG,UACpBlB,QAAOmB,SAAU,CAAC,CAAAC,GAC9B,CAAC;IAAC,CACH;IACDP,cAAaQ,KAAML,WAAW;GAAC;GAChC,aAEM;IACL,KAAK,MAAAM,SAAeT,eAAeS,MAAM;GAAE;EAC5C;EACAV,KAAA,CAACZ,SAASW,IAAI;EAACb,EAAA,KAAAa;EAAAb,EAAA,KAAAE;EAAAF,EAAA,KAAAW;EAAAX,EAAA,KAAAc;CAAA,OAAA;EAAAH,KAAAX,EAAA;EAAAc,KAAAd,EAAA;CAAA;CArBlBV,UAAUqB,IAqBPG,EAAe;CAAC,IAAAW;CAAA,IAAAzB,EAAA,OAAAY,OAAA;EAGPa,WAAMb;EAAKZ,EAAA,KAAAY;EAAAZ,EAAA,KAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,IAAA0B;CAAA,IAAA1B,EAAA,OAAAE,SAAA;EAUEwB,WAAMxB;EAAOF,EAAA,KAAAE;EAAAF,EAAA,MAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,QAAAE,QAAA0B,WAAA5B,EAAA,QAAAE,QAAA2B,UAAA7B,EAAA,QAAAE,QAAA4B,UAAA9B,EAAA,QAAAE,QAAA6B,iBAAA/B,EAAA,QAAAE,QAAA8B,cAAAhC,EAAA,QAAAE,QAAA+B,UAAAjC,EAAA,QAAAE,QAAAgC,YAAAlC,EAAA,QAAAE,QAAAiC,aAAAnC,EAAA,QAAAE,QAAAkC,gBAAApC,EAAA,QAAAyB,MAAAzB,EAAA,QAAA0B,IAAA;EAX/BC,KAAA;GAAAN,UACKI;GAAWS,UACXhC,QAAOgC;GAASD,QAClB/B,QAAO+B;GAAOG,cACRlC,QAAOkC;GAAaR,SACzB1B,QAAO0B;GAAQO,WACbjC,QAAOiC;GAAUN,QACpB3B,QAAO2B;GAAOE,eACP7B,QAAO6B;GAAcC,YACxB9B,QAAO8B;GAAWF,QACtB5B,QAAO4B;GAAOO,uBACCX;EACzB;EAAC1B,EAAA,MAAAE,QAAA0B;EAAA5B,EAAA,MAAAE,QAAA2B;EAAA7B,EAAA,MAAAE,QAAA4B;EAAA9B,EAAA,MAAAE,QAAA6B;EAAA/B,EAAA,MAAAE,QAAA8B;EAAAhC,EAAA,MAAAE,QAAA+B;EAAAjC,EAAA,MAAAE,QAAAgC;EAAAlC,EAAA,MAAAE,QAAAiC;EAAAnC,EAAA,MAAAE,QAAAkC;EAAApC,EAAA,MAAAyB;EAAAzB,EAAA,MAAA0B;EAAA1B,EAAA,MAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,OAZM2B;AAYN;AAGH,MAAaW,uBAAuB9C,SAASM,uBAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-list-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/thread-list-runtime-client.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"thread-list-runtime-client.d.ts","names":[],"sources":["../../../src/store/runtime-clients/thread-list-runtime-client.ts"],"mappings":";;;;cAgHa,8CAAgB,SAAA;EAvElB,SAAA;EACoB,6BAAA"}
|