@assistant-ui/react 0.11.38 → 0.11.39
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/client/AssistantClient.d.ts.map +1 -1
- package/dist/client/AssistantClient.js +14 -30
- package/dist/client/AssistantClient.js.map +1 -1
- package/dist/client/ModelContextClient.d.ts +1 -1
- package/dist/client/NoOpComposerClient.d.ts +1 -1
- package/dist/client/ThreadMessageClient.d.ts +1 -1
- package/dist/client/Tools.d.ts +1 -1
- package/dist/client/Tools.d.ts.map +1 -1
- package/dist/client/Tools.js +29 -18
- package/dist/client/Tools.js.map +1 -1
- package/dist/client/types/Tools.d.ts +6 -1
- package/dist/client/types/Tools.d.ts.map +1 -1
- package/dist/context/react/AssistantApiContext.d.ts +2 -4
- package/dist/context/react/AssistantApiContext.d.ts.map +1 -1
- package/dist/context/react/AssistantApiContext.js +0 -7
- package/dist/context/react/AssistantApiContext.js.map +1 -1
- package/dist/context/react/hooks/useAssistantState.js +2 -2
- package/dist/context/react/hooks/useAssistantState.js.map +1 -1
- package/dist/legacy-runtime/RuntimeAdapter.d.ts +1 -1
- package/dist/legacy-runtime/client/AttachmentRuntimeClient.d.ts +1 -1
- package/dist/legacy-runtime/client/ComposerRuntimeClient.d.ts +1 -1
- package/dist/legacy-runtime/client/EventManagerRuntimeClient.d.ts +1 -1
- package/dist/legacy-runtime/client/MessagePartRuntimeClient.d.ts +1 -1
- package/dist/legacy-runtime/client/MessageRuntimeClient.d.ts +1 -1
- package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.d.ts +1 -1
- package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts +1 -1
- package/dist/legacy-runtime/client/ThreadRuntimeClient.d.ts +1 -1
- package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts +2 -2
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js +2 -0
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js +7 -4
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts +7 -2
- package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js +17 -3
- package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js.map +1 -1
- package/dist/model-context/index.d.ts +1 -1
- package/dist/model-context/index.d.ts.map +1 -1
- package/dist/model-context/index.js +0 -4
- package/dist/model-context/index.js.map +1 -1
- package/dist/model-context/makeAssistantVisible.d.ts.map +1 -1
- package/dist/model-context/makeAssistantVisible.js +21 -8
- package/dist/model-context/makeAssistantVisible.js.map +1 -1
- package/dist/model-context/toolbox.d.ts +1 -19
- package/dist/model-context/toolbox.d.ts.map +1 -1
- package/dist/model-context/toolbox.js +0 -13
- package/dist/model-context/toolbox.js.map +1 -1
- package/dist/model-context/useAssistantTool.js +1 -1
- package/dist/model-context/useAssistantTool.js.map +1 -1
- package/dist/model-context/useAssistantToolUI.js +1 -1
- package/dist/model-context/useAssistantToolUI.js.map +1 -1
- package/dist/primitives/index.d.ts +1 -0
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +2 -0
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/primitives/message/MessageParts.js +4 -2
- package/dist/primitives/message/MessageParts.js.map +1 -1
- package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
- package/dist/primitives/message/MessagePartsGrouped.js +4 -2
- package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartData.d.ts +3 -0
- package/dist/primitives/messagePart/useMessagePartData.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartData.js +23 -0
- package/dist/primitives/messagePart/useMessagePartData.js.map +1 -0
- package/dist/types/AssistantTypes.d.ts +2 -2
- package/dist/types/AssistantTypes.d.ts.map +1 -1
- package/dist/types/MessagePartTypes.d.ts +6 -1
- package/dist/types/MessagePartTypes.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/tap-store/derived-scopes.d.ts +1 -1
- package/dist/utils/tap-store/derived-scopes.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client/AssistantClient.ts +14 -33
- package/src/client/Tools.ts +31 -22
- package/src/client/types/Tools.ts +11 -2
- package/src/context/react/AssistantApiContext.tsx +2 -11
- package/src/context/react/hooks/useAssistantState.tsx +2 -2
- package/src/legacy-runtime/cloud/auiV0.ts +1 -1
- package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.tsx +10 -1
- package/src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx +7 -3
- package/src/legacy-runtime/runtime-cores/utils/MessageRepository.tsx +27 -3
- package/src/model-context/index.ts +1 -6
- package/src/model-context/makeAssistantVisible.tsx +23 -12
- package/src/model-context/toolbox.tsx +1 -21
- package/src/model-context/useAssistantTool.tsx +1 -1
- package/src/model-context/useAssistantToolUI.tsx +1 -1
- package/src/primitives/index.ts +1 -0
- package/src/primitives/message/MessageParts.tsx +5 -3
- package/src/primitives/message/MessagePartsGrouped.tsx +5 -3
- package/src/primitives/messagePart/useMessagePartData.tsx +24 -0
- package/src/types/AssistantTypes.ts +2 -0
- package/src/types/MessagePartTypes.ts +8 -1
- package/src/types/index.ts +1 -0
- package/dist/client/ToolUIClient.d.ts +0 -7
- package/dist/client/ToolUIClient.d.ts.map +0 -1
- package/dist/client/ToolUIClient.js +0 -71
- package/dist/client/ToolUIClient.js.map +0 -1
- package/dist/client/ToolUIContext.d.ts +0 -4
- package/dist/client/ToolUIContext.d.ts.map +0 -1
- package/dist/client/ToolUIContext.js +0 -20
- package/dist/client/ToolUIContext.js.map +0 -1
- package/dist/client/types/ToolUI.d.ts +0 -23
- package/dist/client/types/ToolUI.d.ts.map +0 -1
- package/dist/client/types/ToolUI.js +0 -1
- package/dist/client/types/ToolUI.js.map +0 -1
- package/src/client/ToolUIClient.ts +0 -76
- package/src/client/ToolUIContext.ts +0 -22
- package/src/client/types/ToolUI.ts +0 -27
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
// src/client/ToolUIClient.ts
|
|
2
|
-
import { resource, tapState } from "@assistant-ui/tap";
|
|
3
|
-
import { tapApi } from "../utils/tap-store/index.js";
|
|
4
|
-
var ToolUIClient = resource(() => {
|
|
5
|
-
const [state, setState] = tapState(() => ({
|
|
6
|
-
tools: {},
|
|
7
|
-
fallback: [],
|
|
8
|
-
layout: []
|
|
9
|
-
}));
|
|
10
|
-
return tapApi({
|
|
11
|
-
getState: () => state,
|
|
12
|
-
setToolUI: (toolName, render) => {
|
|
13
|
-
setState((prev) => {
|
|
14
|
-
return {
|
|
15
|
-
...prev,
|
|
16
|
-
tools: {
|
|
17
|
-
...prev.tools,
|
|
18
|
-
[toolName]: [...prev.tools[toolName] ?? [], render]
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
});
|
|
22
|
-
return () => {
|
|
23
|
-
setState((prev) => {
|
|
24
|
-
return {
|
|
25
|
-
...prev,
|
|
26
|
-
tools: {
|
|
27
|
-
...prev.tools,
|
|
28
|
-
[toolName]: prev.tools[toolName]?.filter((r) => r !== render) ?? []
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
},
|
|
34
|
-
setFallbackToolUI: (render) => {
|
|
35
|
-
setState((prev) => {
|
|
36
|
-
return {
|
|
37
|
-
...prev,
|
|
38
|
-
fallback: [...prev.fallback, render]
|
|
39
|
-
};
|
|
40
|
-
});
|
|
41
|
-
return () => {
|
|
42
|
-
setState((prev) => {
|
|
43
|
-
return {
|
|
44
|
-
...prev,
|
|
45
|
-
fallback: prev.fallback.filter((r) => r !== render)
|
|
46
|
-
};
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
},
|
|
50
|
-
setToolUILayout: (render) => {
|
|
51
|
-
setState((prev) => {
|
|
52
|
-
return {
|
|
53
|
-
...prev,
|
|
54
|
-
layout: [...prev.layout, render]
|
|
55
|
-
};
|
|
56
|
-
});
|
|
57
|
-
return () => {
|
|
58
|
-
setState((prev) => {
|
|
59
|
-
return {
|
|
60
|
-
...prev,
|
|
61
|
-
layout: prev.layout.filter((r) => r !== render)
|
|
62
|
-
};
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
export {
|
|
69
|
-
ToolUIClient
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=ToolUIClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/client/ToolUIClient.ts"],"sourcesContent":["import { resource, tapState } from \"@assistant-ui/tap\";\nimport { tapApi } from \"../utils/tap-store\";\nimport { ToolUIState, ToolUIApi } from \"./types/ToolUI\";\n\nexport const ToolUIClient = resource(() => {\n const [state, setState] = tapState<ToolUIState>(() => ({\n tools: {},\n fallback: [],\n layout: [],\n }));\n\n return tapApi<ToolUIApi>({\n getState: () => state,\n\n setToolUI: (toolName, render) => {\n setState((prev) => {\n return {\n ...prev,\n tools: {\n ...prev.tools,\n [toolName]: [...(prev.tools[toolName] ?? []), render],\n },\n };\n });\n\n return () => {\n setState((prev) => {\n return {\n ...prev,\n tools: {\n ...prev.tools,\n [toolName]:\n prev.tools[toolName]?.filter((r) => r !== render) ?? [],\n },\n };\n });\n };\n },\n\n setFallbackToolUI: (render) => {\n setState((prev) => {\n return {\n ...prev,\n fallback: [...prev.fallback, render],\n };\n });\n\n return () => {\n setState((prev) => {\n return {\n ...prev,\n fallback: prev.fallback.filter((r) => r !== render),\n };\n });\n };\n },\n\n setToolUILayout: (render) => {\n setState((prev) => {\n return {\n ...prev,\n layout: [...prev.layout, render],\n };\n });\n\n return () => {\n setState((prev) => {\n return {\n ...prev,\n layout: prev.layout.filter((r) => r !== render),\n };\n });\n };\n },\n });\n});\n"],"mappings":";AAAA,SAAS,UAAU,gBAAgB;AACnC,SAAS,cAAc;AAGhB,IAAM,eAAe,SAAS,MAAM;AACzC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAsB,OAAO;AAAA,IACrD,OAAO,CAAC;AAAA,IACR,UAAU,CAAC;AAAA,IACX,QAAQ,CAAC;AAAA,EACX,EAAE;AAEF,SAAO,OAAkB;AAAA,IACvB,UAAU,MAAM;AAAA,IAEhB,WAAW,CAAC,UAAU,WAAW;AAC/B,eAAS,CAAC,SAAS;AACjB,eAAO;AAAA,UACL,GAAG;AAAA,UACH,OAAO;AAAA,YACL,GAAG,KAAK;AAAA,YACR,CAAC,QAAQ,GAAG,CAAC,GAAI,KAAK,MAAM,QAAQ,KAAK,CAAC,GAAI,MAAM;AAAA,UACtD;AAAA,QACF;AAAA,MACF,CAAC;AAED,aAAO,MAAM;AACX,iBAAS,CAAC,SAAS;AACjB,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,OAAO;AAAA,cACL,GAAG,KAAK;AAAA,cACR,CAAC,QAAQ,GACP,KAAK,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC;AAAA,YAC1D;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IAEA,mBAAmB,CAAC,WAAW;AAC7B,eAAS,CAAC,SAAS;AACjB,eAAO;AAAA,UACL,GAAG;AAAA,UACH,UAAU,CAAC,GAAG,KAAK,UAAU,MAAM;AAAA,QACrC;AAAA,MACF,CAAC;AAED,aAAO,MAAM;AACX,iBAAS,CAAC,SAAS;AACjB,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,UAAU,KAAK,SAAS,OAAO,CAAC,MAAM,MAAM,MAAM;AAAA,UACpD;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IAEA,iBAAiB,CAAC,WAAW;AAC3B,eAAS,CAAC,SAAS;AACjB,eAAO;AAAA,UACL,GAAG;AAAA,UACH,QAAQ,CAAC,GAAG,KAAK,QAAQ,MAAM;AAAA,QACjC;AAAA,MACF,CAAC;AAED,aAAO,MAAM;AACX,iBAAS,CAAC,SAAS;AACjB,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,QAAQ,KAAK,OAAO,OAAO,CAAC,MAAM,MAAM,MAAM;AAAA,UAChD;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolUIContext.d.ts","sourceRoot":"","sources":["../../src/client/ToolUIContext.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,eAAO,MAAM,kBAAkB,GAAI,OAAO,EACxC,SAAS,SAAS,EAClB,IAAI,MAAM,OAAO,YAGlB,CAAC;AAEF,eAAO,MAAM,SAAS,iBAKrB,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// src/client/ToolUIContext.ts
|
|
2
|
-
import {
|
|
3
|
-
createContext,
|
|
4
|
-
tapContext,
|
|
5
|
-
withContextProvider
|
|
6
|
-
} from "@assistant-ui/tap";
|
|
7
|
-
var ToolUIContext = createContext(null);
|
|
8
|
-
var withToolUIProvider = (toolUIs, fn) => {
|
|
9
|
-
return withContextProvider(ToolUIContext, toolUIs, fn);
|
|
10
|
-
};
|
|
11
|
-
var tapToolUI = () => {
|
|
12
|
-
const toolUIs = tapContext(ToolUIContext);
|
|
13
|
-
if (!toolUIs) throw new Error("ToolUI context is not available");
|
|
14
|
-
return toolUIs;
|
|
15
|
-
};
|
|
16
|
-
export {
|
|
17
|
-
tapToolUI,
|
|
18
|
-
withToolUIProvider
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=ToolUIContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/client/ToolUIContext.ts"],"sourcesContent":["import {\n createContext,\n tapContext,\n withContextProvider,\n} from \"@assistant-ui/tap\";\nimport type { ToolUIApi } from \"./types/ToolUI\";\n\nconst ToolUIContext = createContext<ToolUIApi | null>(null);\n\nexport const withToolUIProvider = <TResult>(\n toolUIs: ToolUIApi,\n fn: () => TResult,\n) => {\n return withContextProvider(ToolUIContext, toolUIs, fn);\n};\n\nexport const tapToolUI = () => {\n const toolUIs = tapContext(ToolUIContext);\n if (!toolUIs) throw new Error(\"ToolUI context is not available\");\n\n return toolUIs;\n};\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,IAAM,gBAAgB,cAAgC,IAAI;AAEnD,IAAM,qBAAqB,CAChC,SACA,OACG;AACH,SAAO,oBAAoB,eAAe,SAAS,EAAE;AACvD;AAEO,IAAM,YAAY,MAAM;AAC7B,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,QAAS,OAAM,IAAI,MAAM,iCAAiC;AAE/D,SAAO;AACT;","names":[]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Unsubscribe } from "@assistant-ui/tap";
|
|
2
|
-
import type { ComponentType, ReactNode } from "react";
|
|
3
|
-
import { ToolCallMessagePartComponent } from "../../types";
|
|
4
|
-
export type ToolUIState = {
|
|
5
|
-
tools: Record<string, ToolCallMessagePartComponent[]>;
|
|
6
|
-
fallback: ToolCallMessagePartComponent[];
|
|
7
|
-
layout: ComponentType<{
|
|
8
|
-
children: ReactNode;
|
|
9
|
-
}>[];
|
|
10
|
-
};
|
|
11
|
-
export type ToolUIApi = {
|
|
12
|
-
getState(): ToolUIState;
|
|
13
|
-
setToolUI(toolName: string, render: ToolCallMessagePartComponent): Unsubscribe;
|
|
14
|
-
setFallbackToolUI(render: ToolCallMessagePartComponent): Unsubscribe;
|
|
15
|
-
setToolUILayout(render: ComponentType<{
|
|
16
|
-
children: ReactNode;
|
|
17
|
-
}>): Unsubscribe;
|
|
18
|
-
};
|
|
19
|
-
export type ToolUIMeta = {
|
|
20
|
-
source: "root";
|
|
21
|
-
query: Record<string, never>;
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=ToolUI.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolUI.d.ts","sourceRoot":"","sources":["../../../src/client/types/ToolUI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;IACtD,QAAQ,EAAE,4BAA4B,EAAE,CAAC;IACzC,MAAM,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,EAAE,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,IAAI,WAAW,CAAC;IAExB,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,4BAA4B,GACnC,WAAW,CAAC;IAEf,iBAAiB,CAAC,MAAM,EAAE,4BAA4B,GAAG,WAAW,CAAC;IAErE,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,GAAG,WAAW,CAAC;CAC9E,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC9B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=ToolUI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { resource, tapState } from "@assistant-ui/tap";
|
|
2
|
-
import { tapApi } from "../utils/tap-store";
|
|
3
|
-
import { ToolUIState, ToolUIApi } from "./types/ToolUI";
|
|
4
|
-
|
|
5
|
-
export const ToolUIClient = resource(() => {
|
|
6
|
-
const [state, setState] = tapState<ToolUIState>(() => ({
|
|
7
|
-
tools: {},
|
|
8
|
-
fallback: [],
|
|
9
|
-
layout: [],
|
|
10
|
-
}));
|
|
11
|
-
|
|
12
|
-
return tapApi<ToolUIApi>({
|
|
13
|
-
getState: () => state,
|
|
14
|
-
|
|
15
|
-
setToolUI: (toolName, render) => {
|
|
16
|
-
setState((prev) => {
|
|
17
|
-
return {
|
|
18
|
-
...prev,
|
|
19
|
-
tools: {
|
|
20
|
-
...prev.tools,
|
|
21
|
-
[toolName]: [...(prev.tools[toolName] ?? []), render],
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
return () => {
|
|
27
|
-
setState((prev) => {
|
|
28
|
-
return {
|
|
29
|
-
...prev,
|
|
30
|
-
tools: {
|
|
31
|
-
...prev.tools,
|
|
32
|
-
[toolName]:
|
|
33
|
-
prev.tools[toolName]?.filter((r) => r !== render) ?? [],
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
setFallbackToolUI: (render) => {
|
|
41
|
-
setState((prev) => {
|
|
42
|
-
return {
|
|
43
|
-
...prev,
|
|
44
|
-
fallback: [...prev.fallback, render],
|
|
45
|
-
};
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
return () => {
|
|
49
|
-
setState((prev) => {
|
|
50
|
-
return {
|
|
51
|
-
...prev,
|
|
52
|
-
fallback: prev.fallback.filter((r) => r !== render),
|
|
53
|
-
};
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
|
-
},
|
|
57
|
-
|
|
58
|
-
setToolUILayout: (render) => {
|
|
59
|
-
setState((prev) => {
|
|
60
|
-
return {
|
|
61
|
-
...prev,
|
|
62
|
-
layout: [...prev.layout, render],
|
|
63
|
-
};
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
return () => {
|
|
67
|
-
setState((prev) => {
|
|
68
|
-
return {
|
|
69
|
-
...prev,
|
|
70
|
-
layout: prev.layout.filter((r) => r !== render),
|
|
71
|
-
};
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
},
|
|
75
|
-
});
|
|
76
|
-
});
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createContext,
|
|
3
|
-
tapContext,
|
|
4
|
-
withContextProvider,
|
|
5
|
-
} from "@assistant-ui/tap";
|
|
6
|
-
import type { ToolUIApi } from "./types/ToolUI";
|
|
7
|
-
|
|
8
|
-
const ToolUIContext = createContext<ToolUIApi | null>(null);
|
|
9
|
-
|
|
10
|
-
export const withToolUIProvider = <TResult>(
|
|
11
|
-
toolUIs: ToolUIApi,
|
|
12
|
-
fn: () => TResult,
|
|
13
|
-
) => {
|
|
14
|
-
return withContextProvider(ToolUIContext, toolUIs, fn);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export const tapToolUI = () => {
|
|
18
|
-
const toolUIs = tapContext(ToolUIContext);
|
|
19
|
-
if (!toolUIs) throw new Error("ToolUI context is not available");
|
|
20
|
-
|
|
21
|
-
return toolUIs;
|
|
22
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Unsubscribe } from "@assistant-ui/tap";
|
|
2
|
-
import type { ComponentType, ReactNode } from "react";
|
|
3
|
-
import { ToolCallMessagePartComponent } from "../../types";
|
|
4
|
-
|
|
5
|
-
export type ToolUIState = {
|
|
6
|
-
tools: Record<string, ToolCallMessagePartComponent[]>;
|
|
7
|
-
fallback: ToolCallMessagePartComponent[];
|
|
8
|
-
layout: ComponentType<{ children: ReactNode }>[];
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export type ToolUIApi = {
|
|
12
|
-
getState(): ToolUIState;
|
|
13
|
-
|
|
14
|
-
setToolUI(
|
|
15
|
-
toolName: string,
|
|
16
|
-
render: ToolCallMessagePartComponent,
|
|
17
|
-
): Unsubscribe;
|
|
18
|
-
|
|
19
|
-
setFallbackToolUI(render: ToolCallMessagePartComponent): Unsubscribe;
|
|
20
|
-
|
|
21
|
-
setToolUILayout(render: ComponentType<{ children: ReactNode }>): Unsubscribe;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export type ToolUIMeta = {
|
|
25
|
-
source: "root";
|
|
26
|
-
query: Record<string, never>;
|
|
27
|
-
};
|