@assistant-ui/react
Version:
React components for AI chat.
1 lines • 4.8 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/context/react/ThreadContext.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext, useEffect, useState } from \"react\";\nimport type { ThreadViewportState } from \"../stores/ThreadViewport\";\nimport { ReadonlyStore } from \"../ReadonlyStore\";\nimport { UseBoundStore } from \"zustand\";\nimport { createContextHook } from \"./utils/createContextHook\";\nimport { createContextStoreHook } from \"./utils/createContextStoreHook\";\nimport { ThreadRuntime } from \"../../api/ThreadRuntime\";\nimport { ThreadState } from \"../../api/ThreadRuntime\";\nimport { ModelConfig, ThreadMessage } from \"../../types\";\nimport { ThreadComposerState } from \"../../api/ComposerRuntime\";\n\nexport type ThreadContextValue = {\n useThread: UseBoundStore<ReadonlyStore<ThreadState>>;\n /**\n * @deprecated Use `useThreadRuntime` instead. This will be removed in 0.6.0.\n */\n useThreadActions: UseBoundStore<ReadonlyStore<ThreadRuntime>>;\n useThreadRuntime: UseBoundStore<ReadonlyStore<ThreadRuntime>>;\n useThreadMessages: UseBoundStore<ReadonlyStore<readonly ThreadMessage[]>>;\n useComposer: UseBoundStore<ReadonlyStore<ThreadComposerState>>;\n useViewport: UseBoundStore<ReadonlyStore<ThreadViewportState>>;\n};\n\nexport const ThreadContext = createContext<ThreadContextValue | null>(null);\n\nexport const useThreadContext = createContextHook(\n ThreadContext,\n \"AssistantRuntimeProvider\",\n);\n\nexport function useThreadRuntime(options?: {\n optional?: false | undefined;\n}): ThreadRuntime;\nexport function useThreadRuntime(options?: {\n optional?: boolean | undefined;\n}): ThreadRuntime | null;\nexport function useThreadRuntime(options?: { optional?: boolean | undefined }) {\n const context = useThreadContext(options);\n if (!context) return null;\n return context.useThreadRuntime();\n}\n\nexport const actions = createContextStoreHook(\n useThreadContext,\n \"useThreadActions\",\n);\n\n/**\n * @deprecated Use `useThreadRuntime` instead. This will be removed in 0.6.0.\n */\nexport const useThreadActionsStore = actions.useThreadActionsStore;\n\n/**\n * @deprecated Use `useThreadRuntime` instead. This will be removed in 0.6.0.\n */\nexport const useThreadActions = actions.useThreadActions;\n\n/**\n * @deprecated Use `useThreadRuntime` instead. This will be removed in 0.6.0.\n */\nexport const useThreadRuntimeStore = useThreadActionsStore;\n\nexport const { useThread, useThreadStore } = createContextStoreHook(\n useThreadContext,\n \"useThread\",\n);\n\nconst messages = createContextStoreHook(useThreadContext, \"useThreadMessages\");\n\n/**\n * @deprecated Use `useThread().messages` instead. This will be removed in 0.6.0.\n */\nexport const useThreadMessages = messages.useThreadMessages;\n\n/**\n * @deprecated Use `useThreadRuntime().getState().messages` instead. This will be removed in 0.6.0.\n */\nexport const useThreadMessagesStore = messages.useThreadMessagesStore;\n\nexport const {\n useComposer: useThreadComposer,\n useComposerStore: useThreadComposerStore,\n} = createContextStoreHook(useThreadContext, \"useComposer\");\n\nexport const {\n useViewport: useThreadViewport,\n useViewportStore: useThreadViewportStore,\n} = createContextStoreHook(useThreadContext, \"useViewport\");\n\nexport function useThreadModelConfig(options?: {\n optional?: false | undefined;\n}): ModelConfig;\nexport function useThreadModelConfig(options?: {\n optional?: boolean | undefined;\n}): ModelConfig | null;\nexport function useThreadModelConfig(options?: {\n optional?: boolean | undefined;\n}): ModelConfig | null {\n const [, rerender] = useState({});\n\n const runtime = useThreadRuntime(options);\n useEffect(() => {\n return runtime?.unstable_on(\"model-config-update\", () => rerender({}));\n }, [runtime]);\n\n if (!runtime) return null;\n return runtime?.getModelConfig();\n}\n"],"mappings":";;;AAEA,SAAS,eAAe,WAAW,gBAAgB;AAInD,SAAS,yBAAyB;AAClC,SAAS,8BAA8B;AAkBhC,IAAM,gBAAgB,cAAyC,IAAI;AAEnE,IAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AACF;AAQO,SAAS,iBAAiB,SAA8C;AAC7E,QAAM,UAAU,iBAAiB,OAAO;AACxC,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,QAAQ,iBAAiB;AAClC;AAEO,IAAM,UAAU;AAAA,EACrB;AAAA,EACA;AACF;AAKO,IAAM,wBAAwB,QAAQ;AAKtC,IAAM,mBAAmB,QAAQ;AAKjC,IAAM,wBAAwB;AAE9B,IAAM,EAAE,WAAW,eAAe,IAAI;AAAA,EAC3C;AAAA,EACA;AACF;AAEA,IAAM,WAAW,uBAAuB,kBAAkB,mBAAmB;AAKtE,IAAM,oBAAoB,SAAS;AAKnC,IAAM,yBAAyB,SAAS;AAExC,IAAM;AAAA,EACX,aAAa;AAAA,EACb,kBAAkB;AACpB,IAAI,uBAAuB,kBAAkB,aAAa;AAEnD,IAAM;AAAA,EACX,aAAa;AAAA,EACb,kBAAkB;AACpB,IAAI,uBAAuB,kBAAkB,aAAa;AAQnD,SAAS,qBAAqB,SAEd;AACrB,QAAM,CAAC,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAC;AAEhC,QAAM,UAAU,iBAAiB,OAAO;AACxC,YAAU,MAAM;AACd,WAAO,SAAS,YAAY,uBAAuB,MAAM,SAAS,CAAC,CAAC,CAAC;AAAA,EACvE,GAAG,CAAC,OAAO,CAAC;AAEZ,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,SAAS,eAAe;AACjC;","names":[]}