@assistant-ui/react 0.11.5 → 0.11.6
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 +1 -2
- package/dist/client/AssistantClient.js.map +1 -1
- package/dist/client/ToolUIClient.d.ts +3 -2
- package/dist/client/ToolUIClient.d.ts.map +1 -1
- package/dist/client/ToolUIClient.js +1 -5
- package/dist/client/ToolUIClient.js.map +1 -1
- package/dist/context/providers/AttachmentProvider.js +3 -3
- package/dist/context/providers/AttachmentProvider.js.map +1 -1
- package/dist/context/providers/MessageProvider.js +2 -2
- package/dist/context/providers/MessageProvider.js.map +1 -1
- package/dist/context/providers/PartProvider.js +2 -2
- package/dist/context/providers/PartProvider.js.map +1 -1
- package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -1
- package/dist/context/providers/TextMessagePartProvider.js +6 -7
- package/dist/context/providers/TextMessagePartProvider.js.map +1 -1
- package/dist/context/providers/ThreadListItemProvider.js +3 -3
- package/dist/context/providers/ThreadListItemProvider.js.map +1 -1
- package/dist/context/react/AssistantApiContext.d.ts +1 -1
- package/dist/context/react/AssistantApiContext.d.ts.map +1 -1
- package/dist/context/react/AssistantApiContext.js +4 -3
- package/dist/context/react/AssistantApiContext.js.map +1 -1
- package/dist/context/react/index.d.ts +1 -0
- package/dist/context/react/index.d.ts.map +1 -1
- package/dist/context/react/index.js +2 -0
- package/dist/context/react/index.js.map +1 -1
- package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
- package/dist/legacy-runtime/AssistantRuntimeProvider.js +1 -5
- package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
- package/dist/legacy-runtime/client/AttachmentRuntimeClient.d.ts +2 -4
- package/dist/legacy-runtime/client/AttachmentRuntimeClient.d.ts.map +1 -1
- package/dist/legacy-runtime/client/AttachmentRuntimeClient.js +10 -10
- package/dist/legacy-runtime/client/AttachmentRuntimeClient.js.map +1 -1
- package/dist/legacy-runtime/client/ComposerRuntimeClient.d.ts +3 -2
- package/dist/legacy-runtime/client/ComposerRuntimeClient.d.ts.map +1 -1
- package/dist/legacy-runtime/client/ComposerRuntimeClient.js +1 -5
- package/dist/legacy-runtime/client/ComposerRuntimeClient.js.map +1 -1
- package/dist/legacy-runtime/client/MessagePartRuntimeClient.d.ts +1 -1
- package/dist/legacy-runtime/client/MessagePartRuntimeClient.d.ts.map +1 -1
- package/dist/legacy-runtime/client/MessagePartRuntimeClient.js +10 -10
- package/dist/legacy-runtime/client/MessagePartRuntimeClient.js.map +1 -1
- package/dist/legacy-runtime/client/MessageRuntimeClient.d.ts +3 -3
- package/dist/legacy-runtime/client/MessageRuntimeClient.d.ts.map +1 -1
- package/dist/legacy-runtime/client/MessageRuntimeClient.js +31 -31
- package/dist/legacy-runtime/client/MessageRuntimeClient.js.map +1 -1
- package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.d.ts +2 -2
- package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.d.ts.map +1 -1
- package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.js +17 -17
- package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.js.map +1 -1
- package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts +3 -2
- package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts.map +1 -1
- package/dist/legacy-runtime/client/ThreadListRuntimeClient.js +1 -5
- package/dist/legacy-runtime/client/ThreadListRuntimeClient.js.map +1 -1
- package/dist/legacy-runtime/client/ThreadRuntimeClient.d.ts +3 -2
- package/dist/legacy-runtime/client/ThreadRuntimeClient.d.ts.map +1 -1
- package/dist/legacy-runtime/client/ThreadRuntimeClient.js +1 -5
- package/dist/legacy-runtime/client/ThreadRuntimeClient.js.map +1 -1
- package/dist/utils/tap-store/tap-api.d.ts +9 -1
- package/dist/utils/tap-store/tap-api.d.ts.map +1 -1
- package/dist/utils/tap-store/tap-api.js +12 -2
- package/dist/utils/tap-store/tap-api.js.map +1 -1
- package/package.json +1 -1
- package/src/client/AssistantClient.ts +1 -4
- package/src/client/ToolUIClient.ts +1 -6
- package/src/context/providers/AttachmentProvider.tsx +3 -3
- package/src/context/providers/MessageProvider.tsx +2 -2
- package/src/context/providers/PartProvider.tsx +2 -2
- package/src/context/providers/TextMessagePartProvider.tsx +5 -7
- package/src/context/providers/ThreadListItemProvider.tsx +3 -3
- package/src/context/react/AssistantApiContext.tsx +7 -2
- package/src/context/react/index.ts +2 -0
- package/src/legacy-runtime/AssistantRuntimeProvider.tsx +1 -15
- package/src/legacy-runtime/client/AttachmentRuntimeClient.ts +10 -11
- package/src/legacy-runtime/client/ComposerRuntimeClient.ts +1 -6
- package/src/legacy-runtime/client/MessagePartRuntimeClient.ts +13 -14
- package/src/legacy-runtime/client/MessageRuntimeClient.ts +35 -36
- package/src/legacy-runtime/client/ThreadListItemRuntimeClient.ts +17 -18
- package/src/legacy-runtime/client/ThreadListRuntimeClient.ts +1 -6
- package/src/legacy-runtime/client/ThreadRuntimeClient.ts +1 -6
- package/src/utils/tap-store/tap-api.ts +19 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssistantClient.d.ts","sourceRoot":"","sources":["../../src/client/AssistantClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAEX,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EACL,cAAc,EACd,sBAAsB,EAGvB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,SAAS,EAAe,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"AssistantClient.d.ts","sourceRoot":"","sources":["../../src/client/AssistantClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAEX,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EACL,cAAc,EACd,sBAAsB,EAGvB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,SAAS,EAAe,MAAM,gBAAgB,CAAC;AAwHxD,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,eAAe,CAAC;QACvB,KAAK,EAAE,qBAAqB,CAAC;QAC7B,GAAG,EAAE,mBAAmB,CAAC;KAC1B,CAAC,CAAC;IACH,4BAA4B,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,WAAW,CAAC;CAI/E,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAzCnB,oBAAoB;;;;;CA4C9D,CAAC"}
|
@@ -38,7 +38,7 @@ var AssistantStore = resource(
|
|
38
38
|
}),
|
39
39
|
[threads.state, toolUIs.state]
|
40
40
|
);
|
41
|
-
|
41
|
+
return tapApi({
|
42
42
|
getState: () => state,
|
43
43
|
threads: threads.api,
|
44
44
|
toolUIs: toolUIs.api,
|
@@ -46,7 +46,6 @@ var AssistantStore = resource(
|
|
46
46
|
registerModelContextProvider,
|
47
47
|
__internal_getRuntime: () => __internal_runtime ?? null
|
48
48
|
});
|
49
|
-
return tapMemo(() => ({ api }), [state]);
|
50
49
|
}
|
51
50
|
);
|
52
51
|
var getClientFromStore = (client) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/client/AssistantClient.ts"],"sourcesContent":["import {\n tapMemo,\n resource,\n Unsubscribe,\n tapInlineResource,\n ResourceElement,\n tapResource,\n} from \"@assistant-ui/tap\";\nimport { ThreadListClientApi, ThreadListClientState } from \"./types/ThreadList\";\nimport { AssistantRuntime } from \"../legacy-runtime/runtime/AssistantRuntime\";\nimport { ModelContextProvider } from \"../model-context\";\nimport { asStore, Store, tapApi } from \"../utils/tap-store\";\nimport { useResource } from \"@assistant-ui/tap/react\";\nimport { useMemo } from \"react\";\nimport {\n AssistantEvent,\n AssistantEventCallback,\n checkEventScope,\n normalizeEventSelector,\n} from \"../types/EventTypes\";\nimport { EventManager } from \"../legacy-runtime/client/EventManagerRuntimeClient\";\nimport {\n AssistantApi,\n createAssistantApiField,\n} from \"../context/react/AssistantApiContext\";\nimport { ToolUIClient } from \"./ToolUIClient\";\nimport { withEventsProvider } from \"./EventContext\";\nimport { ToolUIApi, ToolUIState } from \"./types/ToolUI\";\n\ntype AssistantClientState = {\n readonly threads: ThreadListClientState;\n readonly toolUIs: ToolUIState;\n};\n\ntype AssistantClientApi = {\n getState(): AssistantClientState;\n\n readonly threads: ThreadListClientApi;\n readonly toolUIs: ToolUIApi;\n\n on<TEvent extends AssistantEvent>(\n event: TEvent,\n callback: AssistantEventCallback<TEvent>,\n ): Unsubscribe;\n\n registerModelContextProvider(provider: ModelContextProvider): Unsubscribe;\n\n /** @internal */\n __internal_getRuntime(): AssistantRuntime | null;\n};\n\nconst AssistantStore = resource(\n ({\n threads: threadsEl,\n registerModelContextProvider,\n __internal_runtime,\n }: AssistantClientProps) => {\n const events = tapInlineResource(EventManager());\n\n const { threads, toolUIs } = withEventsProvider(events, () => {\n return {\n toolUIs: tapInlineResource(ToolUIClient()),\n threads: tapResource(threadsEl, [threadsEl]),\n };\n });\n\n const state = tapMemo<AssistantClientState>(\n () => ({\n threads: threads.state,\n toolUIs: toolUIs.state,\n }),\n [threads.state, toolUIs.state],\n );\n\n
|
1
|
+
{"version":3,"sources":["../../src/client/AssistantClient.ts"],"sourcesContent":["import {\n tapMemo,\n resource,\n Unsubscribe,\n tapInlineResource,\n ResourceElement,\n tapResource,\n} from \"@assistant-ui/tap\";\nimport { ThreadListClientApi, ThreadListClientState } from \"./types/ThreadList\";\nimport { AssistantRuntime } from \"../legacy-runtime/runtime/AssistantRuntime\";\nimport { ModelContextProvider } from \"../model-context\";\nimport { asStore, Store, tapApi } from \"../utils/tap-store\";\nimport { useResource } from \"@assistant-ui/tap/react\";\nimport { useMemo } from \"react\";\nimport {\n AssistantEvent,\n AssistantEventCallback,\n checkEventScope,\n normalizeEventSelector,\n} from \"../types/EventTypes\";\nimport { EventManager } from \"../legacy-runtime/client/EventManagerRuntimeClient\";\nimport {\n AssistantApi,\n createAssistantApiField,\n} from \"../context/react/AssistantApiContext\";\nimport { ToolUIClient } from \"./ToolUIClient\";\nimport { withEventsProvider } from \"./EventContext\";\nimport { ToolUIApi, ToolUIState } from \"./types/ToolUI\";\n\ntype AssistantClientState = {\n readonly threads: ThreadListClientState;\n readonly toolUIs: ToolUIState;\n};\n\ntype AssistantClientApi = {\n getState(): AssistantClientState;\n\n readonly threads: ThreadListClientApi;\n readonly toolUIs: ToolUIApi;\n\n on<TEvent extends AssistantEvent>(\n event: TEvent,\n callback: AssistantEventCallback<TEvent>,\n ): Unsubscribe;\n\n registerModelContextProvider(provider: ModelContextProvider): Unsubscribe;\n\n /** @internal */\n __internal_getRuntime(): AssistantRuntime | null;\n};\n\nconst AssistantStore = resource(\n ({\n threads: threadsEl,\n registerModelContextProvider,\n __internal_runtime,\n }: AssistantClientProps) => {\n const events = tapInlineResource(EventManager());\n\n const { threads, toolUIs } = withEventsProvider(events, () => {\n return {\n toolUIs: tapInlineResource(ToolUIClient()),\n threads: tapResource(threadsEl, [threadsEl]),\n };\n });\n\n const state = tapMemo<AssistantClientState>(\n () => ({\n threads: threads.state,\n toolUIs: toolUIs.state,\n }),\n [threads.state, toolUIs.state],\n );\n\n return tapApi<AssistantClientApi>({\n getState: () => state,\n\n threads: threads.api,\n toolUIs: toolUIs.api,\n on: events.on,\n\n registerModelContextProvider: registerModelContextProvider,\n __internal_getRuntime: () => __internal_runtime ?? null,\n });\n },\n);\n\nconst getClientFromStore = (client: Store<{ api: AssistantClientApi }>) => {\n const getItem = () => {\n return client.getState().api.threads.item(\"main\");\n };\n return {\n threads: createAssistantApiField({\n source: \"root\",\n query: {},\n get: () => client.getState().api.threads,\n }),\n toolUIs: createAssistantApiField({\n source: \"root\",\n query: {},\n get: () => client.getState().api.toolUIs,\n }),\n thread: createAssistantApiField({\n source: \"threads\",\n query: { type: \"main\" },\n get: () => client.getState().api.threads.thread(\"main\"),\n }),\n threadListItem: createAssistantApiField({\n source: \"threads\",\n query: { type: \"main\" },\n get: () => getItem(),\n }),\n composer: createAssistantApiField({\n source: \"thread\",\n query: {},\n get: () => client.getState().api.threads.thread(\"main\").composer,\n }),\n registerModelContextProvider(provider: ModelContextProvider) {\n return client.getState().api.registerModelContextProvider(provider);\n },\n __internal_getRuntime() {\n return client.getState().api.__internal_getRuntime();\n },\n on(selector, callback) {\n const { event, scope } = normalizeEventSelector(selector);\n if (scope === \"*\") return client.getState().api.on(event, callback);\n\n if (\n checkEventScope(\"thread\", scope, event) ||\n checkEventScope(\"thread-list-item\", scope, event) ||\n checkEventScope(\"composer\", scope, event)\n ) {\n return client.getState().api.on(event, (e) => {\n if (e.threadId !== getItem().getState().id) return;\n callback(e);\n });\n }\n\n throw new Error(\n `Event scope is not available in this component: ${scope}`,\n );\n },\n subscribe: client.subscribe,\n flushSync: client.flushSync,\n } satisfies Partial<AssistantApi>;\n};\n\ntype AssistantClientProps = {\n threads: ResourceElement<{\n state: ThreadListClientState;\n api: ThreadListClientApi;\n }>;\n registerModelContextProvider: (provider: ModelContextProvider) => Unsubscribe;\n\n /** @internal */\n __internal_runtime?: AssistantRuntime;\n};\n\nexport const useAssistantClient = (props: AssistantClientProps) => {\n const client = useResource(asStore(AssistantStore(props)));\n return useMemo(() => getClientFromStore(client), [client]);\n};\n"],"mappings":"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","names":[]}
|
@@ -1,6 +1,7 @@
|
|
1
|
-
import {
|
1
|
+
import { ToolUIApi } from "./types/ToolUI";
|
2
2
|
export declare const ToolUIClient: import("@assistant-ui/tap").ResourceElementConstructor<{
|
3
|
-
|
3
|
+
key: string | undefined;
|
4
|
+
state: any;
|
4
5
|
api: ToolUIApi;
|
5
6
|
}, undefined>;
|
6
7
|
//# sourceMappingURL=ToolUIClient.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ToolUIClient.d.ts","sourceRoot":"","sources":["../../src/client/ToolUIClient.ts"],"names":[],"mappings":"AAEA,OAAO,
|
1
|
+
{"version":3,"file":"ToolUIClient.d.ts","sourceRoot":"","sources":["../../src/client/ToolUIClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAExD,eAAO,MAAM,YAAY;;;;aAwBvB,CAAC"}
|
@@ -3,7 +3,7 @@ import { resource, tapState } from "@assistant-ui/tap";
|
|
3
3
|
import { tapApi } from "../utils/tap-store/index.js";
|
4
4
|
var ToolUIClient = resource(() => {
|
5
5
|
const [state, setState] = tapState(() => ({}));
|
6
|
-
|
6
|
+
return tapApi({
|
7
7
|
getState: () => state,
|
8
8
|
setToolUI: (toolName, render) => {
|
9
9
|
setState((prev) => {
|
@@ -22,10 +22,6 @@ var ToolUIClient = resource(() => {
|
|
22
22
|
};
|
23
23
|
}
|
24
24
|
});
|
25
|
-
return {
|
26
|
-
state,
|
27
|
-
api
|
28
|
-
};
|
29
25
|
});
|
30
26
|
export {
|
31
27
|
ToolUIClient
|
@@ -1 +1 @@
|
|
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\n
|
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\n return tapApi<ToolUIApi>({\n getState: () => state,\n\n setToolUI: (toolName, render) => {\n setState((prev) => {\n return {\n ...prev,\n [toolName]: [...(prev[toolName] ?? []), render],\n };\n });\n\n return () => {\n setState((prev) => {\n return {\n ...prev,\n [toolName]: prev[toolName]?.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,CAAC,EAAE;AAE1D,SAAO,OAAkB;AAAA,IACvB,UAAU,MAAM;AAAA,IAEhB,WAAW,CAAC,UAAU,WAAW;AAC/B,eAAS,CAAC,SAAS;AACjB,eAAO;AAAA,UACL,GAAG;AAAA,UACH,CAAC,QAAQ,GAAG,CAAC,GAAI,KAAK,QAAQ,KAAK,CAAC,GAAI,MAAM;AAAA,QAChD;AAAA,MACF,CAAC;AAED,aAAO,MAAM;AACX,iBAAS,CAAC,SAAS;AACjB,iBAAO;AAAA,YACL,GAAG;AAAA,YACH,CAAC,QAAQ,GAAG,KAAK,QAAQ,GAAG,OAAO,CAAC,MAAM,MAAM,MAAM,KAAK,CAAC;AAAA,UAC9D;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
// src/context/providers/AttachmentProvider.tsx
|
4
4
|
import { useMemo } from "react";
|
5
5
|
import {
|
6
|
-
|
6
|
+
AssistantProvider,
|
7
7
|
useAssistantApi,
|
8
8
|
createAssistantApiField
|
9
9
|
} from "../react/AssistantApiContext.js";
|
@@ -19,7 +19,7 @@ var MessageAttachmentByIndexProvider = ({ index, children }) => {
|
|
19
19
|
})
|
20
20
|
};
|
21
21
|
}, [api, index]);
|
22
|
-
return /* @__PURE__ */ jsx(
|
22
|
+
return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
|
23
23
|
};
|
24
24
|
var ComposerAttachmentByIndexProvider = ({ index, children }) => {
|
25
25
|
const api = useAssistantApi();
|
@@ -32,7 +32,7 @@ var ComposerAttachmentByIndexProvider = ({ index, children }) => {
|
|
32
32
|
})
|
33
33
|
};
|
34
34
|
}, [api, index]);
|
35
|
-
return /* @__PURE__ */ jsx(
|
35
|
+
return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
|
36
36
|
};
|
37
37
|
export {
|
38
38
|
ComposerAttachmentByIndexProvider,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/context/providers/AttachmentProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\n\nimport {\n AssistantApi,\n
|
1
|
+
{"version":3,"sources":["../../../src/context/providers/AttachmentProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\n\nimport {\n AssistantApi,\n AssistantProvider,\n useAssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\n\nexport const MessageAttachmentByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const api = useAssistantApi();\n const api2 = useMemo(() => {\n return {\n attachment: createAssistantApiField({\n source: \"message\",\n query: { type: \"index\", index },\n get: () => api.message().attachment({ index }),\n }),\n } satisfies Partial<AssistantApi>;\n }, [api, index]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n\nexport const ComposerAttachmentByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const api = useAssistantApi();\n const api2 = useMemo(() => {\n return {\n attachment: createAssistantApiField({\n source: \"composer\",\n query: { type: \"index\", index },\n get: () => api.composer().attachment({ index }),\n }),\n } satisfies Partial<AssistantApi>;\n }, [api, index]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AAEzD;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAkBE;AAhBF,IAAM,mCAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,YAAY,wBAAwB;AAAA,QAClC,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,QAC9B,KAAK,MAAM,IAAI,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,MAC/C,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;AAEO,IAAM,oCAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,YAAY,wBAAwB;AAAA,QAClC,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,QAC9B,KAAK,MAAM,IAAI,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,MAChD,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;","names":[]}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
// src/context/providers/MessageProvider.tsx
|
4
4
|
import { useMemo } from "react";
|
5
5
|
import {
|
6
|
-
|
6
|
+
AssistantProvider,
|
7
7
|
useAssistantApi,
|
8
8
|
createAssistantApiField
|
9
9
|
} from "../react/AssistantApiContext.js";
|
@@ -39,7 +39,7 @@ var MessageByIndexProvider = ({ index, children }) => {
|
|
39
39
|
}
|
40
40
|
};
|
41
41
|
}, [api, index]);
|
42
|
-
return /* @__PURE__ */ jsx(
|
42
|
+
return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
|
43
43
|
};
|
44
44
|
export {
|
45
45
|
MessageByIndexProvider
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/context/providers/MessageProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantApi,\n
|
1
|
+
{"version":3,"sources":["../../../src/context/providers/MessageProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantApi,\n AssistantProvider,\n useAssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\nimport {\n checkEventScope,\n normalizeEventSelector,\n} from \"../../types/EventTypes\";\n\nexport const MessageByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const api = useAssistantApi();\n const api2 = useMemo(() => {\n const getMessage = () => api.thread().message({ index });\n return {\n message: createAssistantApiField({\n source: \"thread\",\n query: { type: \"index\", index },\n get: () => getMessage(),\n }),\n composer: createAssistantApiField({\n source: \"message\",\n query: {},\n get: () => getMessage().composer,\n }),\n on(selector, callback) {\n const { event, scope } = normalizeEventSelector(selector);\n if (\n !checkEventScope(\"composer\", scope, event) &&\n !checkEventScope(\"message\", scope, event)\n )\n return api.on(selector, callback);\n\n return api.on({ scope: \"thread\", event }, (e) => {\n if (e.messageId === getMessage().getState().id) {\n callback(e);\n }\n });\n },\n } satisfies Partial<AssistantApi>;\n }, [api, index]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AACzD;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAsCE;AApCF,IAAM,yBAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,OAAO,QAAQ,MAAM;AACzB,UAAM,aAAa,MAAM,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;AACvD,WAAO;AAAA,MACL,SAAS,wBAAwB;AAAA,QAC/B,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,QAC9B,KAAK,MAAM,WAAW;AAAA,MACxB,CAAC;AAAA,MACD,UAAU,wBAAwB;AAAA,QAChC,QAAQ;AAAA,QACR,OAAO,CAAC;AAAA,QACR,KAAK,MAAM,WAAW,EAAE;AAAA,MAC1B,CAAC;AAAA,MACD,GAAG,UAAU,UAAU;AACrB,cAAM,EAAE,OAAO,MAAM,IAAI,uBAAuB,QAAQ;AACxD,YACE,CAAC,gBAAgB,YAAY,OAAO,KAAK,KACzC,CAAC,gBAAgB,WAAW,OAAO,KAAK;AAExC,iBAAO,IAAI,GAAG,UAAU,QAAQ;AAElC,eAAO,IAAI,GAAG,EAAE,OAAO,UAAU,MAAM,GAAG,CAAC,MAAM;AAC/C,cAAI,EAAE,cAAc,WAAW,EAAE,SAAS,EAAE,IAAI;AAC9C,qBAAS,CAAC;AAAA,UACZ;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;","names":[]}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
// src/context/providers/PartProvider.tsx
|
4
4
|
import { useMemo } from "react";
|
5
5
|
import {
|
6
|
-
|
6
|
+
AssistantProvider,
|
7
7
|
useAssistantApi,
|
8
8
|
createAssistantApiField
|
9
9
|
} from "../react/AssistantApiContext.js";
|
@@ -19,7 +19,7 @@ var PartByIndexProvider = ({ index, children }) => {
|
|
19
19
|
})
|
20
20
|
};
|
21
21
|
}, [api, index]);
|
22
|
-
return /* @__PURE__ */ jsx(
|
22
|
+
return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
|
23
23
|
};
|
24
24
|
export {
|
25
25
|
PartByIndexProvider
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/context/providers/PartProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantApi,\n
|
1
|
+
{"version":3,"sources":["../../../src/context/providers/PartProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantApi,\n AssistantProvider,\n useAssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\n\nexport const PartByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const api = useAssistantApi();\n const api2 = useMemo(() => {\n return {\n part: createAssistantApiField({\n source: \"message\",\n query: { type: \"index\", index },\n get: () => api.message().part({ index }),\n }),\n } satisfies Partial<AssistantApi>;\n }, [api, index]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AACzD;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAkBE;AAhBF,IAAM,sBAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,MAAM,wBAAwB;AAAA,QAC5B,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,QAC9B,KAAK,MAAM,IAAI,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;AAAA,MACzC,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;","names":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TextMessagePartProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/TextMessagePartProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"TextMessagePartProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/TextMessagePartProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAmCjE,eAAO,MAAM,uBAAuB,EAAE,EAAE,CACtC,iBAAiB,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC,CAkBH,CAAC"}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
// src/context/providers/TextMessagePartProvider.tsx
|
4
4
|
import { useMemo } from "react";
|
5
5
|
import {
|
6
|
-
|
6
|
+
AssistantProvider,
|
7
7
|
createAssistantApiField
|
8
8
|
} from "../react/AssistantApiContext.js";
|
9
9
|
import { resource, tapMemo } from "@assistant-ui/tap";
|
@@ -20,14 +20,13 @@ var TextMessagePartClient = resource(
|
|
20
20
|
}),
|
21
21
|
[text, isRunning]
|
22
22
|
);
|
23
|
-
|
23
|
+
return tapApi({
|
24
24
|
getState: () => state,
|
25
25
|
addToolResult: () => {
|
26
26
|
throw new Error("Not supported");
|
27
27
|
},
|
28
28
|
__internal_getRuntime: () => null
|
29
29
|
});
|
30
|
-
return api;
|
31
30
|
}
|
32
31
|
);
|
33
32
|
var TextMessagePartProvider = ({ text, isRunning = false, children }) => {
|
@@ -39,13 +38,13 @@ var TextMessagePartProvider = ({ text, isRunning = false, children }) => {
|
|
39
38
|
part: createAssistantApiField({
|
40
39
|
source: "root",
|
41
40
|
query: {},
|
42
|
-
get: () => store.getState()
|
41
|
+
get: () => store.getState().api
|
43
42
|
}),
|
44
|
-
subscribe: store.subscribe
|
45
|
-
|
43
|
+
subscribe: store.subscribe,
|
44
|
+
flushSync: store.flushSync
|
46
45
|
};
|
47
46
|
}, [store]);
|
48
|
-
return /* @__PURE__ */ jsx(
|
47
|
+
return /* @__PURE__ */ jsx(AssistantProvider, { api, children });
|
49
48
|
};
|
50
49
|
export {
|
51
50
|
TextMessagePartProvider
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/context/providers/TextMessagePartProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n
|
1
|
+
{"version":3,"sources":["../../../src/context/providers/TextMessagePartProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantProvider,\n AssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\nimport {\n MessagePartClientApi,\n MessagePartClientState,\n} from \"../../client/types/Part\";\nimport { resource, tapMemo } from \"@assistant-ui/tap\";\nimport { useResource } from \"@assistant-ui/tap/react\";\nimport { asStore, tapApi } from \"../../utils/tap-store\";\n\nconst TextMessagePartClient = resource(\n ({ text, isRunning }: { text: string; isRunning: boolean }) => {\n const state = tapMemo<MessagePartClientState>(\n () => ({\n type: \"text\",\n text,\n status: isRunning ? { type: \"running\" } : { type: \"complete\" },\n }),\n [text, isRunning],\n );\n\n return tapApi<MessagePartClientApi>({\n getState: () => state,\n addToolResult: () => {\n throw new Error(\"Not supported\");\n },\n __internal_getRuntime: () => null,\n });\n },\n);\n\nexport const TextMessagePartProvider: FC<\n PropsWithChildren<{\n text: string;\n isRunning?: boolean;\n }>\n> = ({ text, isRunning = false, children }) => {\n const store = useResource(\n asStore(TextMessagePartClient({ text, isRunning })),\n );\n const api = useMemo(() => {\n return {\n part: createAssistantApiField({\n source: \"root\",\n query: {},\n get: () => store.getState().api,\n }),\n subscribe: store.subscribe,\n flushSync: store.flushSync,\n } satisfies Partial<AssistantApi>;\n }, [store]);\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AACzD;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AAKP,SAAS,UAAU,eAAe;AAClC,SAAS,mBAAmB;AAC5B,SAAS,SAAS,cAAc;AA4CvB;AA1CT,IAAM,wBAAwB;AAAA,EAC5B,CAAC,EAAE,MAAM,UAAU,MAA4C;AAC7D,UAAM,QAAQ;AAAA,MACZ,OAAO;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA,QAAQ,YAAY,EAAE,MAAM,UAAU,IAAI,EAAE,MAAM,WAAW;AAAA,MAC/D;AAAA,MACA,CAAC,MAAM,SAAS;AAAA,IAClB;AAEA,WAAO,OAA6B;AAAA,MAClC,UAAU,MAAM;AAAA,MAChB,eAAe,MAAM;AACnB,cAAM,IAAI,MAAM,eAAe;AAAA,MACjC;AAAA,MACA,uBAAuB,MAAM;AAAA,IAC/B,CAAC;AAAA,EACH;AACF;AAEO,IAAM,0BAKT,CAAC,EAAE,MAAM,YAAY,OAAO,SAAS,MAAM;AAC7C,QAAM,QAAQ;AAAA,IACZ,QAAQ,sBAAsB,EAAE,MAAM,UAAU,CAAC,CAAC;AAAA,EACpD;AACA,QAAM,MAAM,QAAQ,MAAM;AACxB,WAAO;AAAA,MACL,MAAM,wBAAwB;AAAA,QAC5B,QAAQ;AAAA,QACR,OAAO,CAAC;AAAA,QACR,KAAK,MAAM,MAAM,SAAS,EAAE;AAAA,MAC9B,CAAC;AAAA,MACD,WAAW,MAAM;AAAA,MACjB,WAAW,MAAM;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAEV,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;","names":[]}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
// src/context/providers/ThreadListItemProvider.tsx
|
4
4
|
import { useMemo } from "react";
|
5
5
|
import {
|
6
|
-
|
6
|
+
AssistantProvider,
|
7
7
|
useAssistantApi,
|
8
8
|
createAssistantApiField
|
9
9
|
} from "../react/AssistantApiContext.js";
|
@@ -34,7 +34,7 @@ var ThreadListItemByIndexProvider = ({ index, archived, children }) => {
|
|
34
34
|
}
|
35
35
|
};
|
36
36
|
}, [api, index, archived]);
|
37
|
-
return /* @__PURE__ */ jsx(
|
37
|
+
return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
|
38
38
|
};
|
39
39
|
var ThreadListItemByIdProvider = ({ id, children }) => {
|
40
40
|
const api = useAssistantApi();
|
@@ -57,7 +57,7 @@ var ThreadListItemByIdProvider = ({ id, children }) => {
|
|
57
57
|
}
|
58
58
|
};
|
59
59
|
}, [api, id]);
|
60
|
-
return /* @__PURE__ */ jsx(
|
60
|
+
return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
|
61
61
|
};
|
62
62
|
export {
|
63
63
|
ThreadListItemByIdProvider,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/context/providers/ThreadListItemProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantApi,\n
|
1
|
+
{"version":3,"sources":["../../../src/context/providers/ThreadListItemProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantApi,\n AssistantProvider,\n useAssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\nimport {\n checkEventScope,\n normalizeEventSelector,\n} from \"../../types/EventTypes\";\n\nexport const ThreadListItemByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n archived: boolean;\n }>\n> = ({ index, archived, children }) => {\n const api = useAssistantApi();\n\n const api2 = useMemo(() => {\n const getItem = () => api.threads().item({ index, archived });\n return {\n threadListItem: createAssistantApiField({\n source: \"threads\",\n query: { type: \"index\", index, archived },\n get: () => getItem(),\n }),\n on(selector, callback) {\n const { event, scope } = normalizeEventSelector(selector);\n if (!checkEventScope(\"thread-list-item\", scope, event))\n return api.on(selector, callback);\n\n return api.on({ scope: \"*\", event }, (e) => {\n if (e.threadId === getItem().getState().id) {\n callback(e);\n }\n });\n },\n } satisfies Partial<AssistantApi>;\n }, [api, index, archived]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n\nexport const ThreadListItemByIdProvider: FC<\n PropsWithChildren<{\n id: string;\n }>\n> = ({ id, children }) => {\n const api = useAssistantApi();\n\n const api2 = useMemo(() => {\n const getItem = () => api.threads().item({ id });\n return {\n threadListItem: createAssistantApiField({\n source: \"threads\",\n query: { type: \"id\", id },\n get: () => getItem(),\n }),\n on(selector, callback) {\n const { event, scope } = normalizeEventSelector(selector);\n if (!checkEventScope(\"thread-list-item\", scope, event))\n return api.on(selector, callback);\n\n return api.on({ scope: \"*\", event }, (e) => {\n if (e.threadId !== getItem().getState().id) return;\n callback(e);\n });\n },\n } satisfies Partial<AssistantApi>;\n }, [api, id]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AACzD;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAgCE;AA9BF,IAAM,gCAKT,CAAC,EAAE,OAAO,UAAU,SAAS,MAAM;AACrC,QAAM,MAAM,gBAAgB;AAE5B,QAAM,OAAO,QAAQ,MAAM;AACzB,UAAM,UAAU,MAAM,IAAI,QAAQ,EAAE,KAAK,EAAE,OAAO,SAAS,CAAC;AAC5D,WAAO;AAAA,MACL,gBAAgB,wBAAwB;AAAA,QACtC,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,OAAO,SAAS;AAAA,QACxC,KAAK,MAAM,QAAQ;AAAA,MACrB,CAAC;AAAA,MACD,GAAG,UAAU,UAAU;AACrB,cAAM,EAAE,OAAO,MAAM,IAAI,uBAAuB,QAAQ;AACxD,YAAI,CAAC,gBAAgB,oBAAoB,OAAO,KAAK;AACnD,iBAAO,IAAI,GAAG,UAAU,QAAQ;AAElC,eAAO,IAAI,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,CAAC,MAAM;AAC1C,cAAI,EAAE,aAAa,QAAQ,EAAE,SAAS,EAAE,IAAI;AAC1C,qBAAS,CAAC;AAAA,UACZ;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,OAAO,QAAQ,CAAC;AAEzB,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;AAEO,IAAM,6BAIT,CAAC,EAAE,IAAI,SAAS,MAAM;AACxB,QAAM,MAAM,gBAAgB;AAE5B,QAAM,OAAO,QAAQ,MAAM;AACzB,UAAM,UAAU,MAAM,IAAI,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AAC/C,WAAO;AAAA,MACL,gBAAgB,wBAAwB;AAAA,QACtC,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,MAAM,GAAG;AAAA,QACxB,KAAK,MAAM,QAAQ;AAAA,MACrB,CAAC;AAAA,MACD,GAAG,UAAU,UAAU;AACrB,cAAM,EAAE,OAAO,MAAM,IAAI,uBAAuB,QAAQ;AACxD,YAAI,CAAC,gBAAgB,oBAAoB,OAAO,KAAK;AACnD,iBAAO,IAAI,GAAG,UAAU,QAAQ;AAElC,eAAO,IAAI,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,CAAC,MAAM;AAC1C,cAAI,EAAE,aAAa,QAAQ,EAAE,SAAS,EAAE,GAAI;AAC5C,mBAAS,CAAC;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,EAAE,CAAC;AAEZ,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;","names":[]}
|
@@ -99,7 +99,7 @@ export declare const createAssistantApiField: <TApi, TMeta extends {
|
|
99
99
|
query: Record<string, never>;
|
100
100
|
})) => AssistantApiField<TApi, TMeta>;
|
101
101
|
export declare const useAssistantApi: () => AssistantApi;
|
102
|
-
export declare const
|
102
|
+
export declare const AssistantProvider: FC<PropsWithChildren<{
|
103
103
|
api: Partial<AssistantApi>;
|
104
104
|
}>>;
|
105
105
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssistantApiContext.d.ts","sourceRoot":"","sources":["../../../src/context/react/AssistantApiContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,EAAE,EACF,iBAAiB,EAGlB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;
|
1
|
+
{"version":3,"file":"AssistantApiContext.d.ts","sourceRoot":"","sources":["../../../src/context/react/AssistantApiContext.tsx"],"names":[],"mappings":"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"}
|
@@ -9,6 +9,7 @@ import {
|
|
9
9
|
import {
|
10
10
|
normalizeEventSelector
|
11
11
|
} from "../../types/EventTypes.js";
|
12
|
+
import { ThreadViewportProvider } from "../providers/ThreadViewportProvider.js";
|
12
13
|
import { jsx } from "react/jsx-runtime";
|
13
14
|
var createAssistantApiField = (config) => {
|
14
15
|
const fn = config.get;
|
@@ -136,13 +137,13 @@ var extendApi = (api, api2) => {
|
|
136
137
|
flushSync: mergeFns(api.flushSync, api2FlushSync ?? NO_OP_FN)
|
137
138
|
};
|
138
139
|
};
|
139
|
-
var
|
140
|
+
var AssistantProvider = ({ api: api2, children }) => {
|
140
141
|
const api = useAssistantApi();
|
141
142
|
const extendedApi = useMemo(() => extendApi(api, api2), [api, api2]);
|
142
|
-
return /* @__PURE__ */ jsx(AssistantApiContext, { value: extendedApi, children });
|
143
|
+
return /* @__PURE__ */ jsx(AssistantApiContext, { value: extendedApi, children: /* @__PURE__ */ jsx(ThreadViewportProvider, { children }) });
|
143
144
|
};
|
144
145
|
export {
|
145
|
-
|
146
|
+
AssistantProvider,
|
146
147
|
createAssistantApiField,
|
147
148
|
useAssistantApi
|
148
149
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/context/react/AssistantApiContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n FC,\n PropsWithChildren,\n useContext,\n useMemo,\n} from \"react\";\n\nimport { ToolUIApi, ToolUIState, ToolUIMeta } from \"../../client/types/ToolUI\";\nimport {\n MessageClientApi,\n MessageClientState,\n} from \"../../client/types/Message\";\nimport {\n ThreadListItemClientApi,\n ThreadListItemClientState,\n} from \"../../client/types/ThreadListItem\";\nimport {\n MessagePartClientApi,\n MessagePartClientState,\n} from \"../../client/types/Part\";\nimport { ThreadClientApi, ThreadClientState } from \"../../client/types/Thread\";\nimport {\n ComposerClientApi,\n ComposerClientState,\n} from \"../../client/types/Composer\";\nimport {\n AttachmentClientApi,\n AttachmentClientState,\n} from \"../../client/types/Attachment\";\nimport { Unsubscribe } from \"@assistant-ui/tap\";\nimport { ModelContextProvider } from \"../../model-context\";\nimport { AssistantRuntime } from \"../../legacy-runtime/runtime/AssistantRuntime\";\nimport {\n AssistantEvent,\n AssistantEventCallback,\n AssistantEventSelector,\n normalizeEventSelector,\n} from \"../../types/EventTypes\";\nimport {\n ThreadListClientApi,\n ThreadListClientState,\n} from \"../../client/types/ThreadList\";\n\nexport type AssistantState = {\n readonly threads: ThreadListClientState;\n readonly toolUIs: ToolUIState;\n\n readonly threadListItem: ThreadListItemClientState;\n readonly thread: ThreadClientState;\n readonly composer: ComposerClientState;\n readonly message: MessageClientState;\n readonly part: MessagePartClientState;\n readonly attachment: AttachmentClientState;\n};\n\ntype AssistantApiField<\n TApi,\n TMeta extends { source: string | null; query: any },\n> = (() => TApi) & (TMeta | { source: null; query: Record<string, never> });\n\n// Meta types for each API method\ntype ThreadsMeta = {\n source: \"root\";\n query: Record<string, never>;\n};\n\ntype ThreadListItemMeta = {\n source: \"threads\";\n query:\n | { type: \"index\"; index: number; archived: boolean }\n | { type: \"main\" }\n | { type: \"id\"; id: string };\n};\n\ntype ThreadMeta = {\n source: \"threads\";\n query: { type: \"main\" };\n};\n\ntype ComposerMeta = {\n source: \"message\" | \"thread\";\n query: Record<string, never>;\n};\n\ntype MessageMeta = {\n source: \"thread\";\n query: { type: \"index\"; index: number };\n};\n\ntype PartMeta = {\n source: \"message\" | \"root\";\n query: { type: \"index\"; index: number } | Record<string, never>;\n};\n\ntype AttachmentMeta = {\n source: \"message\" | \"composer\";\n query: { type: \"index\"; index: number };\n};\n\nexport type AssistantApi = {\n threads: AssistantApiField<ThreadListClientApi, ThreadsMeta>;\n toolUIs: AssistantApiField<ToolUIApi, ToolUIMeta>;\n threadListItem: AssistantApiField<\n ThreadListItemClientApi,\n ThreadListItemMeta\n >;\n thread: AssistantApiField<ThreadClientApi, ThreadMeta>;\n composer: AssistantApiField<ComposerClientApi, ComposerMeta>;\n message: AssistantApiField<MessageClientApi, MessageMeta>;\n part: AssistantApiField<MessagePartClientApi, PartMeta>;\n attachment: AssistantApiField<AttachmentClientApi, AttachmentMeta>;\n\n subscribe(listener: () => void): Unsubscribe;\n flushSync(): void;\n\n on<TEvent extends AssistantEvent>(\n event: AssistantEventSelector<TEvent>,\n callback: AssistantEventCallback<TEvent>,\n ): Unsubscribe;\n\n // temp\n registerModelContextProvider(provider: ModelContextProvider): void;\n /** @internal */\n __internal_getRuntime(): AssistantRuntime | null;\n};\n\nexport const createAssistantApiField = <\n TApi,\n TMeta extends { source: any; query: any },\n>(\n config: {\n get: () => TApi;\n } & (TMeta | { source: null; query: Record<string, never> }),\n): AssistantApiField<TApi, TMeta> => {\n const fn = config.get as AssistantApiField<TApi, TMeta>;\n fn.source = config.source;\n fn.query = config.query;\n return fn;\n};\n\nconst NO_OP_FN = () => () => {};\n\nconst AssistantApiContext = createContext<AssistantApi>({\n threads: createAssistantApiField({\n source: null,\n query: {},\n get: () => {\n throw new Error(\"Threads is only available inside <AssistantProvider />\");\n },\n }),\n toolUIs: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\"ToolUIs is only available inside <AssistantProvider />\");\n },\n }),\n threadListItem: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\n \"ThreadListItem is only available inside <AssistantProvider />\",\n );\n },\n }),\n thread: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\"Thread is only available inside <AssistantProvider />\");\n },\n }),\n composer: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\n \"Composer is only available inside <AssistantProvider />\",\n );\n },\n }),\n message: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\n \"Message is only available inside <ThreadPrimitive.Messages />\",\n );\n },\n }),\n part: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\n \"Part is only available inside <MessagePrimitive.Parts />\",\n );\n },\n }),\n attachment: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\n \"Attachment is only available inside <MessagePrimitive.Attachments /> or <ComposerPrimitive.Attachments />\",\n );\n },\n }),\n\n subscribe: NO_OP_FN,\n flushSync: NO_OP_FN,\n on: (selector) => {\n const { scope } = normalizeEventSelector(selector);\n throw new Error(`Event scope is not available in this component: ${scope}`);\n },\n\n registerModelContextProvider: () => {\n throw new Error(\n \"Registering model context providers is only available inside <AssistantProvider />\",\n );\n },\n __internal_getRuntime: () => {\n return null;\n },\n});\n\nexport const useAssistantApi = (): AssistantApi => {\n return useContext(AssistantApiContext);\n};\n\nconst mergeFns = <TArgs extends Array<unknown>>(\n fn1: (...args: TArgs) => void,\n fn2: (...args: TArgs) => void,\n) => {\n if (fn1 === NO_OP_FN) return fn2;\n if (fn2 === NO_OP_FN) return fn1;\n\n return (...args: TArgs) => {\n fn1(...args);\n fn2(...args);\n };\n};\n\nconst mergeFnsWithUnsubscribe = <TArgs extends Array<unknown>>(\n fn1: (...args: TArgs) => Unsubscribe,\n fn2: (...args: TArgs) => Unsubscribe,\n) => {\n if (fn1 === NO_OP_FN) return fn2;\n if (fn2 === NO_OP_FN) return fn1;\n\n return (...args: TArgs) => {\n const unsubscribe1 = fn1(...args);\n const unsubscribe2 = fn2(...args);\n\n return () => {\n unsubscribe1();\n unsubscribe2();\n };\n };\n};\n\nconst extendApi = (\n api: AssistantApi,\n api2: Partial<AssistantApi>,\n): AssistantApi => {\n const api2Subscribe = api2.subscribe;\n const api2FlushSync = api2.flushSync;\n return {\n ...api,\n ...api2,\n subscribe: mergeFnsWithUnsubscribe(\n api.subscribe,\n api2Subscribe ?? NO_OP_FN,\n ),\n flushSync: mergeFns(api.flushSync, api2FlushSync ?? NO_OP_FN),\n };\n};\n\nexport const AssistantApiProvider: FC<\n PropsWithChildren<{ api: Partial<AssistantApi> }>\n> = ({ api: api2, children }) => {\n const api = useAssistantApi();\n const extendedApi = useMemo(() => extendApi(api, api2), [api, api2]);\n\n return (\n <AssistantApiContext value={extendedApi}>{children}</AssistantApiContext>\n );\n};\n"],"mappings":"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","names":[]}
|
1
|
+
{"version":3,"sources":["../../../src/context/react/AssistantApiContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n FC,\n PropsWithChildren,\n useContext,\n useMemo,\n} from \"react\";\n\nimport { ToolUIApi, ToolUIState, ToolUIMeta } from \"../../client/types/ToolUI\";\nimport {\n MessageClientApi,\n MessageClientState,\n} from \"../../client/types/Message\";\nimport {\n ThreadListItemClientApi,\n ThreadListItemClientState,\n} from \"../../client/types/ThreadListItem\";\nimport {\n MessagePartClientApi,\n MessagePartClientState,\n} from \"../../client/types/Part\";\nimport { ThreadClientApi, ThreadClientState } from \"../../client/types/Thread\";\nimport {\n ComposerClientApi,\n ComposerClientState,\n} from \"../../client/types/Composer\";\nimport {\n AttachmentClientApi,\n AttachmentClientState,\n} from \"../../client/types/Attachment\";\nimport { Unsubscribe } from \"@assistant-ui/tap\";\nimport { ModelContextProvider } from \"../../model-context\";\nimport { AssistantRuntime } from \"../../legacy-runtime/runtime/AssistantRuntime\";\nimport {\n AssistantEvent,\n AssistantEventCallback,\n AssistantEventSelector,\n normalizeEventSelector,\n} from \"../../types/EventTypes\";\nimport {\n ThreadListClientApi,\n ThreadListClientState,\n} from \"../../client/types/ThreadList\";\nimport { ThreadViewportProvider } from \"../providers/ThreadViewportProvider\";\n\nexport type AssistantState = {\n readonly threads: ThreadListClientState;\n readonly toolUIs: ToolUIState;\n\n readonly threadListItem: ThreadListItemClientState;\n readonly thread: ThreadClientState;\n readonly composer: ComposerClientState;\n readonly message: MessageClientState;\n readonly part: MessagePartClientState;\n readonly attachment: AttachmentClientState;\n};\n\ntype AssistantApiField<\n TApi,\n TMeta extends { source: string | null; query: any },\n> = (() => TApi) & (TMeta | { source: null; query: Record<string, never> });\n\n// Meta types for each API method\ntype ThreadsMeta = {\n source: \"root\";\n query: Record<string, never>;\n};\n\ntype ThreadListItemMeta = {\n source: \"threads\";\n query:\n | { type: \"index\"; index: number; archived: boolean }\n | { type: \"main\" }\n | { type: \"id\"; id: string };\n};\n\ntype ThreadMeta = {\n source: \"threads\";\n query: { type: \"main\" };\n};\n\ntype ComposerMeta = {\n source: \"message\" | \"thread\";\n query: Record<string, never>;\n};\n\ntype MessageMeta = {\n source: \"thread\";\n query: { type: \"index\"; index: number };\n};\n\ntype PartMeta = {\n source: \"message\" | \"root\";\n query: { type: \"index\"; index: number } | Record<string, never>;\n};\n\ntype AttachmentMeta = {\n source: \"message\" | \"composer\";\n query: { type: \"index\"; index: number };\n};\n\nexport type AssistantApi = {\n threads: AssistantApiField<ThreadListClientApi, ThreadsMeta>;\n toolUIs: AssistantApiField<ToolUIApi, ToolUIMeta>;\n threadListItem: AssistantApiField<\n ThreadListItemClientApi,\n ThreadListItemMeta\n >;\n thread: AssistantApiField<ThreadClientApi, ThreadMeta>;\n composer: AssistantApiField<ComposerClientApi, ComposerMeta>;\n message: AssistantApiField<MessageClientApi, MessageMeta>;\n part: AssistantApiField<MessagePartClientApi, PartMeta>;\n attachment: AssistantApiField<AttachmentClientApi, AttachmentMeta>;\n\n subscribe(listener: () => void): Unsubscribe;\n flushSync(): void;\n\n on<TEvent extends AssistantEvent>(\n event: AssistantEventSelector<TEvent>,\n callback: AssistantEventCallback<TEvent>,\n ): Unsubscribe;\n\n // temp\n registerModelContextProvider(provider: ModelContextProvider): void;\n /** @internal */\n __internal_getRuntime(): AssistantRuntime | null;\n};\n\nexport const createAssistantApiField = <\n TApi,\n TMeta extends { source: any; query: any },\n>(\n config: {\n get: () => TApi;\n } & (TMeta | { source: null; query: Record<string, never> }),\n): AssistantApiField<TApi, TMeta> => {\n const fn = config.get as AssistantApiField<TApi, TMeta>;\n fn.source = config.source;\n fn.query = config.query;\n return fn;\n};\n\nconst NO_OP_FN = () => () => {};\n\nconst AssistantApiContext = createContext<AssistantApi>({\n threads: createAssistantApiField({\n source: null,\n query: {},\n get: () => {\n throw new Error(\"Threads is only available inside <AssistantProvider />\");\n },\n }),\n toolUIs: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\"ToolUIs is only available inside <AssistantProvider />\");\n },\n }),\n threadListItem: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\n \"ThreadListItem is only available inside <AssistantProvider />\",\n );\n },\n }),\n thread: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\"Thread is only available inside <AssistantProvider />\");\n },\n }),\n composer: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\n \"Composer is only available inside <AssistantProvider />\",\n );\n },\n }),\n message: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\n \"Message is only available inside <ThreadPrimitive.Messages />\",\n );\n },\n }),\n part: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\n \"Part is only available inside <MessagePrimitive.Parts />\",\n );\n },\n }),\n attachment: createAssistantApiField({\n source: null,\n query: {},\n get: (): never => {\n throw new Error(\n \"Attachment is only available inside <MessagePrimitive.Attachments /> or <ComposerPrimitive.Attachments />\",\n );\n },\n }),\n\n subscribe: NO_OP_FN,\n flushSync: NO_OP_FN,\n on: (selector) => {\n const { scope } = normalizeEventSelector(selector);\n throw new Error(`Event scope is not available in this component: ${scope}`);\n },\n\n registerModelContextProvider: () => {\n throw new Error(\n \"Registering model context providers is only available inside <AssistantProvider />\",\n );\n },\n __internal_getRuntime: () => {\n return null;\n },\n});\n\nexport const useAssistantApi = (): AssistantApi => {\n return useContext(AssistantApiContext);\n};\n\nconst mergeFns = <TArgs extends Array<unknown>>(\n fn1: (...args: TArgs) => void,\n fn2: (...args: TArgs) => void,\n) => {\n if (fn1 === NO_OP_FN) return fn2;\n if (fn2 === NO_OP_FN) return fn1;\n\n return (...args: TArgs) => {\n fn1(...args);\n fn2(...args);\n };\n};\n\nconst mergeFnsWithUnsubscribe = <TArgs extends Array<unknown>>(\n fn1: (...args: TArgs) => Unsubscribe,\n fn2: (...args: TArgs) => Unsubscribe,\n) => {\n if (fn1 === NO_OP_FN) return fn2;\n if (fn2 === NO_OP_FN) return fn1;\n\n return (...args: TArgs) => {\n const unsubscribe1 = fn1(...args);\n const unsubscribe2 = fn2(...args);\n\n return () => {\n unsubscribe1();\n unsubscribe2();\n };\n };\n};\n\nconst extendApi = (\n api: AssistantApi,\n api2: Partial<AssistantApi>,\n): AssistantApi => {\n const api2Subscribe = api2.subscribe;\n const api2FlushSync = api2.flushSync;\n return {\n ...api,\n ...api2,\n subscribe: mergeFnsWithUnsubscribe(\n api.subscribe,\n api2Subscribe ?? NO_OP_FN,\n ),\n flushSync: mergeFns(api.flushSync, api2FlushSync ?? NO_OP_FN),\n };\n};\n\nexport const AssistantProvider: FC<\n PropsWithChildren<{ api: Partial<AssistantApi> }>\n> = ({ api: api2, children }) => {\n const api = useAssistantApi();\n const extendedApi = useMemo(() => extendApi(api, api2), [api, api2]);\n\n return (\n <AssistantApiContext value={extendedApi}>\n {/* TODO temporarily allow accessing viewport state from outside the viewport */}\n {/* TODO figure out if this behavior should be deprecated, since it is quite hacky */}\n <ThreadViewportProvider>{children}</ThreadViewportProvider>\n </AssistantApiContext>\n );\n};\n"],"mappings":"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","names":[]}
|
@@ -9,4 +9,5 @@ export { useMessageRuntime, useEditComposer, useMessage, } from "../../legacy-ru
|
|
9
9
|
export { useMessagePartRuntime, useMessagePart, } from "../../legacy-runtime/hooks/MessagePartContext";
|
10
10
|
export { useThreadRuntime, useThread, useThreadComposer, useThreadModelContext, } from "../../legacy-runtime/hooks/ThreadContext";
|
11
11
|
export { useThreadListItemRuntime, useThreadListItem, } from "../../legacy-runtime/hooks/ThreadListItemContext";
|
12
|
+
export { AssistantProvider } from "./AssistantApiContext";
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/react/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,aAAa,GACd,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,kCAAkC,EAClC,2BAA2B,EAC3B,gCAAgC,EAChC,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,kBAAkB,EAClB,WAAW,GACZ,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,GACX,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,kDAAkD,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/react/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,aAAa,GACd,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,kCAAkC,EAClC,2BAA2B,EAC3B,gCAAgC,EAChC,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,kBAAkB,EAClB,WAAW,GACZ,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,GACX,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,kDAAkD,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
|
@@ -45,7 +45,9 @@ import {
|
|
45
45
|
useThreadListItemRuntime,
|
46
46
|
useThreadListItem
|
47
47
|
} from "../../legacy-runtime/hooks/ThreadListItemContext.js";
|
48
|
+
import { AssistantProvider } from "./AssistantApiContext.js";
|
48
49
|
export {
|
50
|
+
AssistantProvider,
|
49
51
|
useAssistantApi,
|
50
52
|
useAssistantEvent,
|
51
53
|
useAssistantRuntime,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/context/react/index.ts"],"sourcesContent":["\"use client\";\n// TODO createContextStoreHook does not work well with server-side nextjs bundler\n// use client necessary here for now\n\nexport { useAssistantApi } from \"./AssistantApiContext\";\nexport { useAssistantState } from \"./hooks/useAssistantState\";\nexport { useAssistantEvent } from \"./hooks/useAssistantEvent\";\n\nexport {\n useThreadViewport,\n useThreadViewportStore,\n} from \"./ThreadViewportContext\";\n\nexport {\n useAssistantRuntime,\n useThreadList,\n} from \"../../legacy-runtime/hooks/AssistantContext\";\n\nexport {\n useAttachmentRuntime,\n useAttachment,\n useThreadComposerAttachmentRuntime,\n useThreadComposerAttachment,\n useEditComposerAttachmentRuntime,\n useEditComposerAttachment,\n useMessageAttachment,\n useMessageAttachmentRuntime,\n} from \"../../legacy-runtime/hooks/AttachmentContext\";\n\nexport {\n useComposerRuntime,\n useComposer,\n} from \"../../legacy-runtime/hooks/ComposerContext\";\n\nexport {\n useMessageRuntime,\n useEditComposer,\n useMessage,\n} from \"../../legacy-runtime/hooks/MessageContext\";\n\nexport {\n useMessagePartRuntime,\n useMessagePart,\n} from \"../../legacy-runtime/hooks/MessagePartContext\";\n\nexport {\n useThreadRuntime,\n useThread,\n useThreadComposer,\n useThreadModelContext,\n} from \"../../legacy-runtime/hooks/ThreadContext\";\n\nexport {\n useThreadListItemRuntime,\n useThreadListItem,\n} from \"../../legacy-runtime/hooks/ThreadListItemContext\";\n"],"mappings":";;;AAIA,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAElC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;","names":[]}
|
1
|
+
{"version":3,"sources":["../../../src/context/react/index.ts"],"sourcesContent":["\"use client\";\n// TODO createContextStoreHook does not work well with server-side nextjs bundler\n// use client necessary here for now\n\nexport { useAssistantApi } from \"./AssistantApiContext\";\nexport { useAssistantState } from \"./hooks/useAssistantState\";\nexport { useAssistantEvent } from \"./hooks/useAssistantEvent\";\n\nexport {\n useThreadViewport,\n useThreadViewportStore,\n} from \"./ThreadViewportContext\";\n\nexport {\n useAssistantRuntime,\n useThreadList,\n} from \"../../legacy-runtime/hooks/AssistantContext\";\n\nexport {\n useAttachmentRuntime,\n useAttachment,\n useThreadComposerAttachmentRuntime,\n useThreadComposerAttachment,\n useEditComposerAttachmentRuntime,\n useEditComposerAttachment,\n useMessageAttachment,\n useMessageAttachmentRuntime,\n} from \"../../legacy-runtime/hooks/AttachmentContext\";\n\nexport {\n useComposerRuntime,\n useComposer,\n} from \"../../legacy-runtime/hooks/ComposerContext\";\n\nexport {\n useMessageRuntime,\n useEditComposer,\n useMessage,\n} from \"../../legacy-runtime/hooks/MessageContext\";\n\nexport {\n useMessagePartRuntime,\n useMessagePart,\n} from \"../../legacy-runtime/hooks/MessagePartContext\";\n\nexport {\n useThreadRuntime,\n useThread,\n useThreadComposer,\n useThreadModelContext,\n} from \"../../legacy-runtime/hooks/ThreadContext\";\n\nexport {\n useThreadListItemRuntime,\n useThreadListItem,\n} from \"../../legacy-runtime/hooks/ThreadListItemContext\";\n\nexport { AssistantProvider } from \"./AssistantApiContext\";\n"],"mappings":";;;AAIA,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAElC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP,SAAS,yBAAyB;","names":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssistantRuntimeProvider.d.ts","sourceRoot":"","sources":["../../src/legacy-runtime/AssistantRuntimeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
1
|
+
{"version":3,"file":"AssistantRuntimeProvider.d.ts","sourceRoot":"","sources":["../../src/legacy-runtime/AssistantRuntimeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAQ,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAK9D,yBAAiB,iBAAiB,CAAC;IACjC,KAAY,KAAK,GAAG,iBAAiB,CAAC;QACpC;;WAEG;QACH,OAAO,EAAE,gBAAgB,CAAC;KAC3B,CAAC,CAAC;CACJ;AAMD,eAAO,MAAM,4BAA4B,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAqBpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,+DAAqC,CAAC"}
|
@@ -2,9 +2,8 @@
|
|
2
2
|
|
3
3
|
// src/legacy-runtime/AssistantRuntimeProvider.tsx
|
4
4
|
import { memo } from "react";
|
5
|
-
import {
|
5
|
+
import { AssistantProvider } from "../context/react/AssistantApiContext.js";
|
6
6
|
import { useAssistantClient } from "../client/AssistantClient.js";
|
7
|
-
import { ThreadViewportProvider } from "../context/providers/ThreadViewportProvider.js";
|
8
7
|
import { ThreadListClient } from "./client/ThreadListRuntimeClient.js";
|
9
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
10
9
|
var getRenderComponent = (runtime) => {
|
@@ -28,9 +27,6 @@ var AssistantRuntimeProviderImpl = ({
|
|
28
27
|
] });
|
29
28
|
};
|
30
29
|
var AssistantRuntimeProvider = memo(AssistantRuntimeProviderImpl);
|
31
|
-
var AssistantProvider = ({ children, api }) => {
|
32
|
-
return /* @__PURE__ */ jsx(AssistantApiProvider, { api, children: /* @__PURE__ */ jsx(ThreadViewportProvider, { children }) });
|
33
|
-
};
|
34
30
|
export {
|
35
31
|
AssistantRuntimeProvider,
|
36
32
|
AssistantRuntimeProviderImpl
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/legacy-runtime/AssistantRuntimeProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { FC, memo, PropsWithChildren } from \"react\";\nimport {
|
1
|
+
{"version":3,"sources":["../../src/legacy-runtime/AssistantRuntimeProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { FC, memo, PropsWithChildren } from \"react\";\nimport { AssistantProvider } from \"../context/react/AssistantApiContext\";\nimport { AssistantRuntime } from \"./runtime/AssistantRuntime\";\nimport { AssistantRuntimeCore } from \"./runtime-cores/core/AssistantRuntimeCore\";\nimport { useAssistantClient } from \"../client/AssistantClient\";\nimport { ThreadListClient } from \"./client/ThreadListRuntimeClient\";\n\nexport namespace AssistantProvider {\n export type Props = PropsWithChildren<{\n /**\n * The runtime to provide to the rest of your app.\n */\n runtime: AssistantRuntime;\n }>;\n}\n\nconst getRenderComponent = (runtime: AssistantRuntime) => {\n return (runtime as { _core?: AssistantRuntimeCore })._core?.RenderComponent;\n};\n\nexport const AssistantRuntimeProviderImpl: FC<AssistantProvider.Props> = ({\n children,\n runtime,\n}) => {\n const api = useAssistantClient({\n threads: ThreadListClient({\n runtime: runtime.threads,\n }),\n registerModelContextProvider: runtime.registerModelContextProvider,\n __internal_runtime: runtime,\n });\n\n const RenderComponent = getRenderComponent(runtime);\n\n return (\n <AssistantProvider api={api}>\n {RenderComponent && <RenderComponent />}\n\n {children}\n </AssistantProvider>\n );\n};\n\nexport const AssistantRuntimeProvider = memo(AssistantRuntimeProviderImpl);\n"],"mappings":";;;AAEA,SAAa,YAA+B;AAC5C,SAAS,yBAAyB;AAGlC,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AA8B7B,SACsB,KADtB;AAnBJ,IAAM,qBAAqB,CAAC,YAA8B;AACxD,SAAQ,QAA6C,OAAO;AAC9D;AAEO,IAAM,+BAA4D,CAAC;AAAA,EACxE;AAAA,EACA;AACF,MAAM;AACJ,QAAM,MAAM,mBAAmB;AAAA,IAC7B,SAAS,iBAAiB;AAAA,MACxB,SAAS,QAAQ;AAAA,IACnB,CAAC;AAAA,IACD,8BAA8B,QAAQ;AAAA,IACtC,oBAAoB;AAAA,EACtB,CAAC;AAED,QAAM,kBAAkB,mBAAmB,OAAO;AAElD,SACE,qBAAC,qBAAkB,KAChB;AAAA,uBAAmB,oBAAC,mBAAgB;AAAA,IAEpC;AAAA,KACH;AAEJ;AAEO,IAAM,2BAA2B,KAAK,4BAA4B;","names":[]}
|
@@ -1,11 +1,9 @@
|
|
1
1
|
import { AttachmentClientApi } from "../../client/types/Attachment";
|
2
2
|
import { AttachmentRuntime } from "../runtime";
|
3
3
|
export declare const AttachmentRuntimeClient: import("@assistant-ui/tap").ResourceElementConstructor<{
|
4
|
-
|
5
|
-
|
6
|
-
};
|
4
|
+
key: string | undefined;
|
5
|
+
state: any;
|
7
6
|
api: AttachmentClientApi;
|
8
|
-
key: string;
|
9
7
|
}, {
|
10
8
|
runtime: AttachmentRuntime;
|
11
9
|
}>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AttachmentRuntimeClient.d.ts","sourceRoot":"","sources":["../../../src/legacy-runtime/client/AttachmentRuntimeClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,eAAO,MAAM,uBAAuB
|
1
|
+
{"version":3,"file":"AttachmentRuntimeClient.d.ts","sourceRoot":"","sources":["../../../src/legacy-runtime/client/AttachmentRuntimeClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,eAAO,MAAM,uBAAuB;;;;;aACT,iBAAiB;EAa3C,CAAC"}
|
@@ -5,16 +5,16 @@ import { tapSubscribable } from "../util-hooks/tapSubscribable.js";
|
|
5
5
|
var AttachmentRuntimeClient = resource(
|
6
6
|
({ runtime }) => {
|
7
7
|
const state = tapSubscribable(runtime);
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
8
|
+
return tapApi(
|
9
|
+
{
|
10
|
+
getState: () => state,
|
11
|
+
remove: runtime.remove,
|
12
|
+
__internal_getRuntime: () => runtime
|
13
|
+
},
|
14
|
+
{
|
15
|
+
key: state.id
|
16
|
+
}
|
17
|
+
);
|
18
18
|
}
|
19
19
|
);
|
20
20
|
export {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/legacy-runtime/client/AttachmentRuntimeClient.ts"],"sourcesContent":["import { resource } from \"../../../../tap/dist/core/resource\";\nimport { AttachmentClientApi } from \"../../client/types/Attachment\";\nimport { tapApi } from \"../../utils/tap-store\";\nimport { AttachmentRuntime } from \"../runtime\";\nimport { tapSubscribable } from \"../util-hooks/tapSubscribable\";\n\nexport const AttachmentRuntimeClient = resource(\n ({ runtime }: { runtime: AttachmentRuntime }) => {\n const state = tapSubscribable(runtime);\n
|
1
|
+
{"version":3,"sources":["../../../src/legacy-runtime/client/AttachmentRuntimeClient.ts"],"sourcesContent":["import { resource } from \"../../../../tap/dist/core/resource\";\nimport { AttachmentClientApi } from \"../../client/types/Attachment\";\nimport { tapApi } from \"../../utils/tap-store\";\nimport { AttachmentRuntime } from \"../runtime\";\nimport { tapSubscribable } from \"../util-hooks/tapSubscribable\";\n\nexport const AttachmentRuntimeClient = resource(\n ({ runtime }: { runtime: AttachmentRuntime }) => {\n const state = tapSubscribable(runtime);\n return tapApi<AttachmentClientApi>(\n {\n getState: () => state,\n remove: runtime.remove,\n __internal_getRuntime: () => runtime,\n },\n {\n key: state.id,\n },\n );\n },\n);\n"],"mappings":";AAAA,SAAS,gBAAgB;AAEzB,SAAS,cAAc;AAEvB,SAAS,uBAAuB;AAEzB,IAAM,0BAA0B;AAAA,EACrC,CAAC,EAAE,QAAQ,MAAsC;AAC/C,UAAM,QAAQ,gBAAgB,OAAO;AACrC,WAAO;AAAA,MACL;AAAA,QACE,UAAU,MAAM;AAAA,QAChB,QAAQ,QAAQ;AAAA,QAChB,uBAAuB,MAAM;AAAA,MAC/B;AAAA,MACA;AAAA,QACE,KAAK,MAAM;AAAA,MACb;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import { RefObject } from "@assistant-ui/tap";
|
2
2
|
import { ComposerRuntime } from "../runtime/ComposerRuntime";
|
3
|
-
import {
|
3
|
+
import { ComposerClientApi } from "../../client/types/Composer";
|
4
4
|
export declare const ComposerClient: import("@assistant-ui/tap").ResourceElementConstructor<{
|
5
|
-
|
5
|
+
key: string | undefined;
|
6
|
+
state: any;
|
6
7
|
api: ComposerClientApi;
|
7
8
|
}, {
|
8
9
|
threadIdRef: RefObject<string>;
|