New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@athlera/react

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@athlera/react - npm Package Compare versions

Comparing version
0.1.0
to
0.1.1
+7
-1
dist/index.cjs

@@ -45,2 +45,5 @@ "use client";

chatInstance: () => {
},
assistant: null,
setAssistant: () => {
}

@@ -56,2 +59,3 @@ });

});
const [assistant, setAssistant] = (0, import_react2.useState)(null);
const addToolUI = (toolName, toolUI) => {

@@ -82,3 +86,5 @@ setToolUIStore((prev) => ({

setChatInstance,
chatInstance
chatInstance,
assistant,
setAssistant
};

@@ -85,0 +91,0 @@ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AssistantContext.Provider, { value: contextValue, children });

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/index.ts","../src/context/AssistantProvider/AssistantContext.ts","../src/context/AssistantProvider/AssistantProvider.tsx","../src/hooks/useToolUI.ts","../src/lib/createToolUI.ts"],"sourcesContent":["export * from './context'\nexport * from './hooks'\nexport * from './lib'\n\n// Expose the types from @athlera/core\nexport {\n type ToolUIRenderProps,\n type CreateToolUIInterface\n} from '@athlera/core'","import { createContext, Dispatch } from \"react\";\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { AddToolResultFunc } from \"./AssistantProvider\";\n\nexport type AssistantContextType = {\n toolUIStore: Record<string, Omit<CreateToolUIInterface, 'toolName'>>;\n getToolUI: (toolName: string) => Omit<CreateToolUIInterface, 'toolName'>;\n addToolUI: (toolName: string, toolUI: Omit<CreateToolUIInterface, 'toolName'>) => void;\n removeToolUI: (toolName: string) => void;\n setChatInstance: Dispatch<AddToolResultFunc>;\n chatInstance: AddToolResultFunc;\n}\n\nexport const AssistantContext = createContext<AssistantContextType>({\n toolUIStore: {},\n getToolUI: () => ({} as Omit<CreateToolUIInterface, 'toolName'>),\n addToolUI: () => {},\n removeToolUI: () => {},\n setChatInstance: () => {},\n chatInstance: () => {}\n} as AssistantContextType);","\"use client\";\nimport { ReactNode, useContext, useState } from 'react';\nimport { AssistantContext, AssistantContextType } from './AssistantContext';\nimport { CreateToolUIInterface } from '@athlera/core';\n\nexport type AddToolResultFunc = any;\n\nexport function AssistantProvider({ children }: { children: ReactNode }) {\n const [toolUIStore, setToolUIStore] = useState<Record<string, Omit<CreateToolUIInterface, 'toolName'>>>({});\n const [chatInstance, setChatInstance] = useState<AddToolResultFunc>(() => () => {});\n\n const addToolUI = (toolName: string, toolUI: any) => {\n setToolUIStore((prev) => ({\n ...prev,\n [toolName]: toolUI\n }));\n };\n\n const getToolUI = (toolName: string) => {\n return toolUIStore[toolName] ?? null;\n };\n\n const getToolsInPosition = (position: 'before' | 'after' | 'inline') => {\n return Object.entries(toolUIStore).filter(([_, tool]) => tool.position === position);\n };\n\n const removeToolUI = (toolName: string) => {\n setToolUIStore((prev) => {\n const newStore = { ...prev };\n delete newStore[toolName];\n return newStore;\n });\n };\n\n const contextValue: AssistantContextType = {\n toolUIStore,\n getToolUI,\n addToolUI,\n removeToolUI,\n setChatInstance,\n chatInstance\n }\n\n return (\n <AssistantContext.Provider value={contextValue}>\n {children}\n </AssistantContext.Provider>\n );\n}\n\nexport const useAssistantProvider = () => {\n const context = useContext(AssistantContext);\n \n if (!context) {\n throw new Error('useAssistantProvider must be used within an AssistantProvider');\n }\n\n return context;\n}","\"use client\";\n\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { useAssistantProvider } from \"../context\";\nimport { useEffect } from \"react\";\n\nexport const useToolUI = <TArgs, TResult = any, TResponse = any>(\n tool: CreateToolUIInterface<TArgs, TResult, TResponse>\n) => {\n const assistantRuntime = useAssistantProvider();\n\n useEffect(() => {\n if (!tool) return;\n\n assistantRuntime.addToolUI(tool.toolName, { render: tool.render, position: tool.position });\n\n return () => {\n assistantRuntime.removeToolUI(tool.toolName);\n };\n }, []);\n}","\"use client\";\n\nimport { FC } from \"react\";\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { useToolUI } from \"../hooks\";\n\nexport type ToolUIFunction = FC & {\n unstable_tool: CreateToolUIInterface<any, any>;\n};\n\nexport const createToolUI = <TArgs, TResult, TResponse>(tool: CreateToolUIInterface<TArgs, TResult, TResponse>) => {\n const ToolUI: ToolUIFunction = () => {\n useToolUI(tool);\n return null;\n };\n\n ToolUI.unstable_tool = tool;\n return ToolUI;\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAwC;AAajC,IAAM,uBAAmB,4BAAoC;AAAA,EAChE,aAAa,CAAC;AAAA,EACd,WAAW,OAAO,CAAC;AAAA,EACnB,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,cAAc,MAAM;AAAA,EAAC;AAAA,EACrB,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,cAAc,MAAM;AAAA,EAAC;AACzB,CAAyB;;;ACnBzB,IAAAA,gBAAgD;AA2CxC;AArCD,SAAS,kBAAkB,EAAE,SAAS,GAA4B;AACrE,QAAM,CAAC,aAAa,cAAc,QAAI,wBAAkE,CAAC,CAAC;AAC1G,QAAM,CAAC,cAAc,eAAe,QAAI,wBAA4B,MAAM,MAAM;AAAA,EAAC,CAAC;AAElF,QAAM,YAAY,CAAC,UAAkB,WAAgB;AACjD,mBAAe,CAAC,UAAU;AAAA,MACtB,GAAG;AAAA,MACH,CAAC,QAAQ,GAAG;AAAA,IAChB,EAAE;AAAA,EACN;AAEA,QAAM,YAAY,CAAC,aAAqB;AACpC,WAAO,YAAY,QAAQ,KAAK;AAAA,EACpC;AAEA,QAAM,qBAAqB,CAAC,aAA4C;AACpE,WAAO,OAAO,QAAQ,WAAW,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,MAAM,KAAK,aAAa,QAAQ;AAAA,EACvF;AAEA,QAAM,eAAe,CAAC,aAAqB;AACvC,mBAAe,CAAC,SAAS;AACrB,YAAM,WAAW,EAAE,GAAG,KAAK;AAC3B,aAAO,SAAS,QAAQ;AACxB,aAAO;AAAA,IACX,CAAC;AAAA,EACL;AAEA,QAAM,eAAqC;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,SACI,4CAAC,iBAAiB,UAAjB,EAA0B,OAAO,cAC7B,UACL;AAER;AAEO,IAAM,uBAAuB,MAAM;AACtC,QAAM,cAAU,0BAAW,gBAAgB;AAE3C,MAAI,CAAC,SAAS;AACV,UAAM,IAAI,MAAM,+DAA+D;AAAA,EACnF;AAEA,SAAO;AACX;;;ACtDA,IAAAC,gBAA0B;AAEnB,IAAM,YAAY,CACrB,SACC;AACD,QAAM,mBAAmB,qBAAqB;AAE9C,+BAAU,MAAM;AACZ,QAAI,CAAC,KAAM;AAEX,qBAAiB,UAAU,KAAK,UAAU,EAAE,QAAQ,KAAK,QAAQ,UAAU,KAAK,SAAS,CAAC;AAE1F,WAAO,MAAM;AACT,uBAAiB,aAAa,KAAK,QAAQ;AAAA,IAC/C;AAAA,EACJ,GAAG,CAAC,CAAC;AACT;;;ACVO,IAAM,eAAe,CAA4B,SAA2D;AAC/G,QAAM,SAAyB,MAAM;AACjC,cAAU,IAAI;AACd,WAAO;AAAA,EACX;AAEA,SAAO,gBAAgB;AACvB,SAAO;AACX;","names":["import_react","import_react"]}
{"version":3,"sources":["../src/index.ts","../src/context/AssistantProvider/AssistantContext.ts","../src/context/AssistantProvider/AssistantProvider.tsx","../src/hooks/useToolUI.ts","../src/lib/createToolUI.ts"],"sourcesContent":["export * from './context'\nexport * from './hooks'\nexport * from './lib'\n\n// Expose the types from @athlera/core\nexport {\n type ToolUIRenderProps,\n type CreateToolUIInterface\n} from '@athlera/core'","import { createContext, Dispatch } from \"react\";\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { AddToolResultFunc } from \"./AssistantProvider\";\n\nexport type AssistantContextType = {\n toolUIStore: Record<string, Omit<CreateToolUIInterface, 'toolName'>>;\n getToolUI: (toolName: string) => Omit<CreateToolUIInterface, 'toolName'>;\n addToolUI: (toolName: string, toolUI: Omit<CreateToolUIInterface, 'toolName'>) => void;\n removeToolUI: (toolName: string) => void;\n setChatInstance: Dispatch<AddToolResultFunc>;\n chatInstance: AddToolResultFunc;\n assistant: any;\n setAssistant: Dispatch<any>;\n}\n\nexport const AssistantContext = createContext<AssistantContextType>({\n toolUIStore: {},\n getToolUI: () => ({} as Omit<CreateToolUIInterface, 'toolName'>),\n addToolUI: () => {},\n removeToolUI: () => {},\n setChatInstance: () => {},\n chatInstance: () => {},\n assistant: null,\n setAssistant: () => {}\n} as AssistantContextType);","\"use client\";\nimport { ReactNode, useContext, useState } from 'react';\nimport { AssistantContext, AssistantContextType } from './AssistantContext';\nimport { CreateToolUIInterface } from '@athlera/core';\n\nexport type AddToolResultFunc = any;\n\nexport function AssistantProvider<T = any>({ children }: { children: ReactNode }) {\n const [toolUIStore, setToolUIStore] = useState<Record<string, Omit<CreateToolUIInterface, 'toolName'>>>({});\n const [chatInstance, setChatInstance] = useState<AddToolResultFunc>(() => () => {});\n const [assistant, setAssistant] = useState<T>(null!);\n\n const addToolUI = (toolName: string, toolUI: any) => {\n setToolUIStore((prev) => ({\n ...prev,\n [toolName]: toolUI\n }));\n };\n\n const getToolUI = (toolName: string) => {\n return toolUIStore[toolName] ?? null;\n };\n\n const getToolsInPosition = (position: 'before' | 'after' | 'inline') => {\n return Object.entries(toolUIStore).filter(([_, tool]) => tool.position === position);\n };\n\n const removeToolUI = (toolName: string) => {\n setToolUIStore((prev) => {\n const newStore = { ...prev };\n delete newStore[toolName];\n return newStore;\n });\n };\n\n const contextValue: AssistantContextType = {\n toolUIStore,\n getToolUI,\n addToolUI,\n removeToolUI,\n setChatInstance,\n chatInstance,\n assistant,\n setAssistant\n }\n\n return (\n <AssistantContext.Provider value={contextValue}>\n {children}\n </AssistantContext.Provider>\n );\n}\n\nexport const useAssistantProvider = () => {\n const context = useContext(AssistantContext);\n \n if (!context) {\n throw new Error('useAssistantProvider must be used within an AssistantProvider');\n }\n\n return context;\n}","\"use client\";\n\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { useAssistantProvider } from \"../context\";\nimport { useEffect } from \"react\";\n\nexport const useToolUI = <TArgs, TResult = any, TResponse = any>(\n tool: CreateToolUIInterface<TArgs, TResult, TResponse>\n) => {\n const assistantRuntime = useAssistantProvider();\n\n useEffect(() => {\n if (!tool) return;\n\n assistantRuntime.addToolUI(tool.toolName, { render: tool.render, position: tool.position });\n\n return () => {\n assistantRuntime.removeToolUI(tool.toolName);\n };\n }, []);\n}","\"use client\";\n\nimport { FC } from \"react\";\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { useToolUI } from \"../hooks\";\n\nexport type ToolUIFunction = FC & {\n unstable_tool: CreateToolUIInterface<any, any>;\n};\n\nexport const createToolUI = <TArgs, TResult, TResponse>(tool: CreateToolUIInterface<TArgs, TResult, TResponse>) => {\n const ToolUI: ToolUIFunction = () => {\n useToolUI(tool);\n return null;\n };\n\n ToolUI.unstable_tool = tool;\n return ToolUI;\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAwC;AAejC,IAAM,uBAAmB,4BAAoC;AAAA,EAChE,aAAa,CAAC;AAAA,EACd,WAAW,OAAO,CAAC;AAAA,EACnB,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,cAAc,MAAM;AAAA,EAAC;AAAA,EACrB,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,cAAc,MAAM;AAAA,EAAC;AAAA,EACrB,WAAW;AAAA,EACX,cAAc,MAAM;AAAA,EAAC;AACzB,CAAyB;;;ACvBzB,IAAAA,gBAAgD;AA8CxC;AAxCD,SAAS,kBAA2B,EAAE,SAAS,GAA4B;AAC9E,QAAM,CAAC,aAAa,cAAc,QAAI,wBAAkE,CAAC,CAAC;AAC1G,QAAM,CAAC,cAAc,eAAe,QAAI,wBAA4B,MAAM,MAAM;AAAA,EAAC,CAAC;AAClF,QAAM,CAAC,WAAW,YAAY,QAAI,wBAAY,IAAK;AAEnD,QAAM,YAAY,CAAC,UAAkB,WAAgB;AACjD,mBAAe,CAAC,UAAU;AAAA,MACtB,GAAG;AAAA,MACH,CAAC,QAAQ,GAAG;AAAA,IAChB,EAAE;AAAA,EACN;AAEA,QAAM,YAAY,CAAC,aAAqB;AACpC,WAAO,YAAY,QAAQ,KAAK;AAAA,EACpC;AAEA,QAAM,qBAAqB,CAAC,aAA4C;AACpE,WAAO,OAAO,QAAQ,WAAW,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,MAAM,KAAK,aAAa,QAAQ;AAAA,EACvF;AAEA,QAAM,eAAe,CAAC,aAAqB;AACvC,mBAAe,CAAC,SAAS;AACrB,YAAM,WAAW,EAAE,GAAG,KAAK;AAC3B,aAAO,SAAS,QAAQ;AACxB,aAAO;AAAA,IACX,CAAC;AAAA,EACL;AAEA,QAAM,eAAqC;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,SACI,4CAAC,iBAAiB,UAAjB,EAA0B,OAAO,cAC7B,UACL;AAER;AAEO,IAAM,uBAAuB,MAAM;AACtC,QAAM,cAAU,0BAAW,gBAAgB;AAE3C,MAAI,CAAC,SAAS;AACV,UAAM,IAAI,MAAM,+DAA+D;AAAA,EACnF;AAEA,SAAO;AACX;;;ACzDA,IAAAC,gBAA0B;AAEnB,IAAM,YAAY,CACrB,SACC;AACD,QAAM,mBAAmB,qBAAqB;AAE9C,+BAAU,MAAM;AACZ,QAAI,CAAC,KAAM;AAEX,qBAAiB,UAAU,KAAK,UAAU,EAAE,QAAQ,KAAK,QAAQ,UAAU,KAAK,SAAS,CAAC;AAE1F,WAAO,MAAM;AACT,uBAAiB,aAAa,KAAK,QAAQ;AAAA,IAC/C;AAAA,EACJ,GAAG,CAAC,CAAC;AACT;;;ACVO,IAAM,eAAe,CAA4B,SAA2D;AAC/G,QAAM,SAAyB,MAAM;AACjC,cAAU,IAAI;AACd,WAAO;AAAA,EACX;AAEA,SAAO,gBAAgB;AACvB,SAAO;AACX;","names":["import_react","import_react"]}

@@ -8,3 +8,3 @@ import * as react from 'react';

type AddToolResultFunc = any;
declare function AssistantProvider({ children }: {
declare function AssistantProvider<T = any>({ children }: {
children: ReactNode;

@@ -21,2 +21,4 @@ }): react_jsx_runtime.JSX.Element;

chatInstance: AddToolResultFunc;
assistant: any;
setAssistant: Dispatch<any>;
};

@@ -23,0 +25,0 @@ declare const AssistantContext: react.Context<AssistantContextType>;

@@ -8,3 +8,3 @@ import * as react from 'react';

type AddToolResultFunc = any;
declare function AssistantProvider({ children }: {
declare function AssistantProvider<T = any>({ children }: {
children: ReactNode;

@@ -21,2 +21,4 @@ }): react_jsx_runtime.JSX.Element;

chatInstance: AddToolResultFunc;
assistant: any;
setAssistant: Dispatch<any>;
};

@@ -23,0 +25,0 @@ declare const AssistantContext: react.Context<AssistantContextType>;

@@ -15,2 +15,5 @@ "use client";

chatInstance: () => {
},
assistant: null,
setAssistant: () => {
}

@@ -26,2 +29,3 @@ });

});
const [assistant, setAssistant] = useState(null);
const addToolUI = (toolName, toolUI) => {

@@ -52,3 +56,5 @@ setToolUIStore((prev) => ({

setChatInstance,
chatInstance
chatInstance,
assistant,
setAssistant
};

@@ -55,0 +61,0 @@ return /* @__PURE__ */ jsx(AssistantContext.Provider, { value: contextValue, children });

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/context/AssistantProvider/AssistantContext.ts","../src/context/AssistantProvider/AssistantProvider.tsx","../src/hooks/useToolUI.ts","../src/lib/createToolUI.ts"],"sourcesContent":["import { createContext, Dispatch } from \"react\";\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { AddToolResultFunc } from \"./AssistantProvider\";\n\nexport type AssistantContextType = {\n toolUIStore: Record<string, Omit<CreateToolUIInterface, 'toolName'>>;\n getToolUI: (toolName: string) => Omit<CreateToolUIInterface, 'toolName'>;\n addToolUI: (toolName: string, toolUI: Omit<CreateToolUIInterface, 'toolName'>) => void;\n removeToolUI: (toolName: string) => void;\n setChatInstance: Dispatch<AddToolResultFunc>;\n chatInstance: AddToolResultFunc;\n}\n\nexport const AssistantContext = createContext<AssistantContextType>({\n toolUIStore: {},\n getToolUI: () => ({} as Omit<CreateToolUIInterface, 'toolName'>),\n addToolUI: () => {},\n removeToolUI: () => {},\n setChatInstance: () => {},\n chatInstance: () => {}\n} as AssistantContextType);","\"use client\";\nimport { ReactNode, useContext, useState } from 'react';\nimport { AssistantContext, AssistantContextType } from './AssistantContext';\nimport { CreateToolUIInterface } from '@athlera/core';\n\nexport type AddToolResultFunc = any;\n\nexport function AssistantProvider({ children }: { children: ReactNode }) {\n const [toolUIStore, setToolUIStore] = useState<Record<string, Omit<CreateToolUIInterface, 'toolName'>>>({});\n const [chatInstance, setChatInstance] = useState<AddToolResultFunc>(() => () => {});\n\n const addToolUI = (toolName: string, toolUI: any) => {\n setToolUIStore((prev) => ({\n ...prev,\n [toolName]: toolUI\n }));\n };\n\n const getToolUI = (toolName: string) => {\n return toolUIStore[toolName] ?? null;\n };\n\n const getToolsInPosition = (position: 'before' | 'after' | 'inline') => {\n return Object.entries(toolUIStore).filter(([_, tool]) => tool.position === position);\n };\n\n const removeToolUI = (toolName: string) => {\n setToolUIStore((prev) => {\n const newStore = { ...prev };\n delete newStore[toolName];\n return newStore;\n });\n };\n\n const contextValue: AssistantContextType = {\n toolUIStore,\n getToolUI,\n addToolUI,\n removeToolUI,\n setChatInstance,\n chatInstance\n }\n\n return (\n <AssistantContext.Provider value={contextValue}>\n {children}\n </AssistantContext.Provider>\n );\n}\n\nexport const useAssistantProvider = () => {\n const context = useContext(AssistantContext);\n \n if (!context) {\n throw new Error('useAssistantProvider must be used within an AssistantProvider');\n }\n\n return context;\n}","\"use client\";\n\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { useAssistantProvider } from \"../context\";\nimport { useEffect } from \"react\";\n\nexport const useToolUI = <TArgs, TResult = any, TResponse = any>(\n tool: CreateToolUIInterface<TArgs, TResult, TResponse>\n) => {\n const assistantRuntime = useAssistantProvider();\n\n useEffect(() => {\n if (!tool) return;\n\n assistantRuntime.addToolUI(tool.toolName, { render: tool.render, position: tool.position });\n\n return () => {\n assistantRuntime.removeToolUI(tool.toolName);\n };\n }, []);\n}","\"use client\";\n\nimport { FC } from \"react\";\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { useToolUI } from \"../hooks\";\n\nexport type ToolUIFunction = FC & {\n unstable_tool: CreateToolUIInterface<any, any>;\n};\n\nexport const createToolUI = <TArgs, TResult, TResponse>(tool: CreateToolUIInterface<TArgs, TResult, TResponse>) => {\n const ToolUI: ToolUIFunction = () => {\n useToolUI(tool);\n return null;\n };\n\n ToolUI.unstable_tool = tool;\n return ToolUI;\n}"],"mappings":";AAAA,SAAS,qBAA+B;AAajC,IAAM,mBAAmB,cAAoC;AAAA,EAChE,aAAa,CAAC;AAAA,EACd,WAAW,OAAO,CAAC;AAAA,EACnB,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,cAAc,MAAM;AAAA,EAAC;AAAA,EACrB,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,cAAc,MAAM;AAAA,EAAC;AACzB,CAAyB;;;ACnBzB,SAAoB,YAAY,gBAAgB;AA2CxC;AArCD,SAAS,kBAAkB,EAAE,SAAS,GAA4B;AACrE,QAAM,CAAC,aAAa,cAAc,IAAI,SAAkE,CAAC,CAAC;AAC1G,QAAM,CAAC,cAAc,eAAe,IAAI,SAA4B,MAAM,MAAM;AAAA,EAAC,CAAC;AAElF,QAAM,YAAY,CAAC,UAAkB,WAAgB;AACjD,mBAAe,CAAC,UAAU;AAAA,MACtB,GAAG;AAAA,MACH,CAAC,QAAQ,GAAG;AAAA,IAChB,EAAE;AAAA,EACN;AAEA,QAAM,YAAY,CAAC,aAAqB;AACpC,WAAO,YAAY,QAAQ,KAAK;AAAA,EACpC;AAEA,QAAM,qBAAqB,CAAC,aAA4C;AACpE,WAAO,OAAO,QAAQ,WAAW,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,MAAM,KAAK,aAAa,QAAQ;AAAA,EACvF;AAEA,QAAM,eAAe,CAAC,aAAqB;AACvC,mBAAe,CAAC,SAAS;AACrB,YAAM,WAAW,EAAE,GAAG,KAAK;AAC3B,aAAO,SAAS,QAAQ;AACxB,aAAO;AAAA,IACX,CAAC;AAAA,EACL;AAEA,QAAM,eAAqC;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,SACI,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,cAC7B,UACL;AAER;AAEO,IAAM,uBAAuB,MAAM;AACtC,QAAM,UAAU,WAAW,gBAAgB;AAE3C,MAAI,CAAC,SAAS;AACV,UAAM,IAAI,MAAM,+DAA+D;AAAA,EACnF;AAEA,SAAO;AACX;;;ACtDA,SAAS,iBAAiB;AAEnB,IAAM,YAAY,CACrB,SACC;AACD,QAAM,mBAAmB,qBAAqB;AAE9C,YAAU,MAAM;AACZ,QAAI,CAAC,KAAM;AAEX,qBAAiB,UAAU,KAAK,UAAU,EAAE,QAAQ,KAAK,QAAQ,UAAU,KAAK,SAAS,CAAC;AAE1F,WAAO,MAAM;AACT,uBAAiB,aAAa,KAAK,QAAQ;AAAA,IAC/C;AAAA,EACJ,GAAG,CAAC,CAAC;AACT;;;ACVO,IAAM,eAAe,CAA4B,SAA2D;AAC/G,QAAM,SAAyB,MAAM;AACjC,cAAU,IAAI;AACd,WAAO;AAAA,EACX;AAEA,SAAO,gBAAgB;AACvB,SAAO;AACX;","names":[]}
{"version":3,"sources":["../src/context/AssistantProvider/AssistantContext.ts","../src/context/AssistantProvider/AssistantProvider.tsx","../src/hooks/useToolUI.ts","../src/lib/createToolUI.ts"],"sourcesContent":["import { createContext, Dispatch } from \"react\";\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { AddToolResultFunc } from \"./AssistantProvider\";\n\nexport type AssistantContextType = {\n toolUIStore: Record<string, Omit<CreateToolUIInterface, 'toolName'>>;\n getToolUI: (toolName: string) => Omit<CreateToolUIInterface, 'toolName'>;\n addToolUI: (toolName: string, toolUI: Omit<CreateToolUIInterface, 'toolName'>) => void;\n removeToolUI: (toolName: string) => void;\n setChatInstance: Dispatch<AddToolResultFunc>;\n chatInstance: AddToolResultFunc;\n assistant: any;\n setAssistant: Dispatch<any>;\n}\n\nexport const AssistantContext = createContext<AssistantContextType>({\n toolUIStore: {},\n getToolUI: () => ({} as Omit<CreateToolUIInterface, 'toolName'>),\n addToolUI: () => {},\n removeToolUI: () => {},\n setChatInstance: () => {},\n chatInstance: () => {},\n assistant: null,\n setAssistant: () => {}\n} as AssistantContextType);","\"use client\";\nimport { ReactNode, useContext, useState } from 'react';\nimport { AssistantContext, AssistantContextType } from './AssistantContext';\nimport { CreateToolUIInterface } from '@athlera/core';\n\nexport type AddToolResultFunc = any;\n\nexport function AssistantProvider<T = any>({ children }: { children: ReactNode }) {\n const [toolUIStore, setToolUIStore] = useState<Record<string, Omit<CreateToolUIInterface, 'toolName'>>>({});\n const [chatInstance, setChatInstance] = useState<AddToolResultFunc>(() => () => {});\n const [assistant, setAssistant] = useState<T>(null!);\n\n const addToolUI = (toolName: string, toolUI: any) => {\n setToolUIStore((prev) => ({\n ...prev,\n [toolName]: toolUI\n }));\n };\n\n const getToolUI = (toolName: string) => {\n return toolUIStore[toolName] ?? null;\n };\n\n const getToolsInPosition = (position: 'before' | 'after' | 'inline') => {\n return Object.entries(toolUIStore).filter(([_, tool]) => tool.position === position);\n };\n\n const removeToolUI = (toolName: string) => {\n setToolUIStore((prev) => {\n const newStore = { ...prev };\n delete newStore[toolName];\n return newStore;\n });\n };\n\n const contextValue: AssistantContextType = {\n toolUIStore,\n getToolUI,\n addToolUI,\n removeToolUI,\n setChatInstance,\n chatInstance,\n assistant,\n setAssistant\n }\n\n return (\n <AssistantContext.Provider value={contextValue}>\n {children}\n </AssistantContext.Provider>\n );\n}\n\nexport const useAssistantProvider = () => {\n const context = useContext(AssistantContext);\n \n if (!context) {\n throw new Error('useAssistantProvider must be used within an AssistantProvider');\n }\n\n return context;\n}","\"use client\";\n\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { useAssistantProvider } from \"../context\";\nimport { useEffect } from \"react\";\n\nexport const useToolUI = <TArgs, TResult = any, TResponse = any>(\n tool: CreateToolUIInterface<TArgs, TResult, TResponse>\n) => {\n const assistantRuntime = useAssistantProvider();\n\n useEffect(() => {\n if (!tool) return;\n\n assistantRuntime.addToolUI(tool.toolName, { render: tool.render, position: tool.position });\n\n return () => {\n assistantRuntime.removeToolUI(tool.toolName);\n };\n }, []);\n}","\"use client\";\n\nimport { FC } from \"react\";\nimport { CreateToolUIInterface } from \"@athlera/core\";\nimport { useToolUI } from \"../hooks\";\n\nexport type ToolUIFunction = FC & {\n unstable_tool: CreateToolUIInterface<any, any>;\n};\n\nexport const createToolUI = <TArgs, TResult, TResponse>(tool: CreateToolUIInterface<TArgs, TResult, TResponse>) => {\n const ToolUI: ToolUIFunction = () => {\n useToolUI(tool);\n return null;\n };\n\n ToolUI.unstable_tool = tool;\n return ToolUI;\n}"],"mappings":";AAAA,SAAS,qBAA+B;AAejC,IAAM,mBAAmB,cAAoC;AAAA,EAChE,aAAa,CAAC;AAAA,EACd,WAAW,OAAO,CAAC;AAAA,EACnB,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,cAAc,MAAM;AAAA,EAAC;AAAA,EACrB,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,cAAc,MAAM;AAAA,EAAC;AAAA,EACrB,WAAW;AAAA,EACX,cAAc,MAAM;AAAA,EAAC;AACzB,CAAyB;;;ACvBzB,SAAoB,YAAY,gBAAgB;AA8CxC;AAxCD,SAAS,kBAA2B,EAAE,SAAS,GAA4B;AAC9E,QAAM,CAAC,aAAa,cAAc,IAAI,SAAkE,CAAC,CAAC;AAC1G,QAAM,CAAC,cAAc,eAAe,IAAI,SAA4B,MAAM,MAAM;AAAA,EAAC,CAAC;AAClF,QAAM,CAAC,WAAW,YAAY,IAAI,SAAY,IAAK;AAEnD,QAAM,YAAY,CAAC,UAAkB,WAAgB;AACjD,mBAAe,CAAC,UAAU;AAAA,MACtB,GAAG;AAAA,MACH,CAAC,QAAQ,GAAG;AAAA,IAChB,EAAE;AAAA,EACN;AAEA,QAAM,YAAY,CAAC,aAAqB;AACpC,WAAO,YAAY,QAAQ,KAAK;AAAA,EACpC;AAEA,QAAM,qBAAqB,CAAC,aAA4C;AACpE,WAAO,OAAO,QAAQ,WAAW,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,MAAM,KAAK,aAAa,QAAQ;AAAA,EACvF;AAEA,QAAM,eAAe,CAAC,aAAqB;AACvC,mBAAe,CAAC,SAAS;AACrB,YAAM,WAAW,EAAE,GAAG,KAAK;AAC3B,aAAO,SAAS,QAAQ;AACxB,aAAO;AAAA,IACX,CAAC;AAAA,EACL;AAEA,QAAM,eAAqC;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAEA,SACI,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,cAC7B,UACL;AAER;AAEO,IAAM,uBAAuB,MAAM;AACtC,QAAM,UAAU,WAAW,gBAAgB;AAE3C,MAAI,CAAC,SAAS;AACV,UAAM,IAAI,MAAM,+DAA+D;AAAA,EACnF;AAEA,SAAO;AACX;;;ACzDA,SAAS,iBAAiB;AAEnB,IAAM,YAAY,CACrB,SACC;AACD,QAAM,mBAAmB,qBAAqB;AAE9C,YAAU,MAAM;AACZ,QAAI,CAAC,KAAM;AAEX,qBAAiB,UAAU,KAAK,UAAU,EAAE,QAAQ,KAAK,QAAQ,UAAU,KAAK,SAAS,CAAC;AAE1F,WAAO,MAAM;AACT,uBAAiB,aAAa,KAAK,QAAQ;AAAA,IAC/C;AAAA,EACJ,GAAG,CAAC,CAAC;AACT;;;ACVO,IAAM,eAAe,CAA4B,SAA2D;AAC/G,QAAM,SAAyB,MAAM;AACjC,cAAU,IAAI;AACd,WAAO;AAAA,EACX;AAEA,SAAO,gBAAgB;AACvB,SAAO;AACX;","names":[]}
{
"name": "@athlera/react",
"version": "0.1.0",
"version": "0.1.1",
"author": "Athlera AS <support@athlera.com> (https://athlera.com)",

@@ -5,0 +5,0 @@ "contributors": [