@plucky-ai/react 0.3.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -26,6 +26,14 @@ __plucky_ai_chat_sdk = __toESM(__plucky_ai_chat_sdk);
26
26
  let react = require("react");
27
27
  react = __toESM(react);
28
28
 
29
+ //#region src/hooks/useChat.ts
30
+ function useChat(params) {
31
+ (0, react.useEffect)(() => {
32
+ (0, __plucky_ai_chat_sdk.Plucky)(params);
33
+ }, [params]);
34
+ }
35
+
36
+ //#endregion
29
37
  //#region src/hooks/useTools.ts
30
38
  function useLatest(value) {
31
39
  const ref = (0, react.useRef)(value);
@@ -57,5 +65,6 @@ function useTools(params) {
57
65
  }
58
66
 
59
67
  //#endregion
68
+ exports.useChat = useChat;
60
69
  exports.useTools = useTools;
61
70
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../src/hooks/useTools.ts"],"sourcesContent":["import { UseToolsParams } from '@/types'\nimport { addTools, removeTools } from '@plucky-ai/chat-sdk'\nimport { useEffect, useMemo, useRef } from 'react'\nfunction useLatest<T>(value: T) {\n const ref = useRef(value)\n useEffect(() => {\n ref.current = value\n }, [value])\n return ref\n}\n\nexport function useTools<TContext = Record<string, unknown>>(\n params: UseToolsParams<TContext>,\n) {\n const contextRef = useLatest(params.context)\n\n const { tools } = params\n const wrappedTools = useMemo(\n () =>\n tools.map((tool) => {\n const originalCb = tool.cb\n return {\n ...tool,\n cb: async (input: Record<string, unknown>) => {\n if (!contextRef.current) return 'Tool not yet loaded.'\n return originalCb(input, contextRef.current)\n },\n }\n }),\n [tools, contextRef],\n )\n\n useEffect(() => {\n if (!tools || tools.length === 0) return\n addTools(wrappedTools)\n return () => {\n removeTools(wrappedTools.map((tool) => tool.name))\n }\n }, [wrappedTools])\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,SAAS,UAAa,OAAU;CAC9B,MAAM,wBAAa,MAAM;AACzB,4BAAgB;AACd,MAAI,UAAU;IACb,CAAC,MAAM,CAAC;AACX,QAAO;;AAGT,SAAgB,SACd,QACA;CACA,MAAM,aAAa,UAAU,OAAO,QAAQ;CAE5C,MAAM,EAAE,UAAU;CAClB,MAAM,wCAEF,MAAM,KAAK,SAAS;EAClB,MAAM,aAAa,KAAK;AACxB,SAAO;GACL,GAAG;GACH,IAAI,OAAO,UAAmC;AAC5C,QAAI,CAAC,WAAW,QAAS,QAAO;AAChC,WAAO,WAAW,OAAO,WAAW,QAAQ;;GAE/C;GACD,EACJ,CAAC,OAAO,WAAW,CACpB;AAED,4BAAgB;AACd,MAAI,CAAC,SAAS,MAAM,WAAW,EAAG;AAClC,qCAAS,aAAa;AACtB,eAAa;AACX,yCAAY,aAAa,KAAK,SAAS,KAAK,KAAK,CAAC;;IAEnD,CAAC,aAAa,CAAC"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../src/hooks/useChat.ts","../src/hooks/useTools.ts"],"sourcesContent":["import { UseChatParams } from '@/types'\nimport { Plucky } from '@plucky-ai/chat-sdk'\nimport { useEffect } from 'react'\n\nexport function useChat(params: UseChatParams) {\n useEffect(() => {\n Plucky(params)\n }, [params])\n}\n","import { UseToolsParams } from '@/types'\nimport { addTools, removeTools } from '@plucky-ai/chat-sdk'\nimport { useEffect, useMemo, useRef } from 'react'\nfunction useLatest<T>(value: T) {\n const ref = useRef(value)\n useEffect(() => {\n ref.current = value\n }, [value])\n return ref\n}\n\nexport function useTools<TContext = Record<string, unknown>>(\n params: UseToolsParams<TContext>,\n) {\n const contextRef = useLatest(params.context)\n\n const { tools } = params\n const wrappedTools = useMemo(\n () =>\n tools.map((tool) => {\n const originalCb = tool.cb\n return {\n ...tool,\n cb: async (input: Record<string, unknown>) => {\n if (!contextRef.current) return 'Tool not yet loaded.'\n return originalCb(input, contextRef.current)\n },\n }\n }),\n [tools, contextRef],\n )\n\n useEffect(() => {\n if (!tools || tools.length === 0) return\n addTools(wrappedTools)\n return () => {\n removeTools(wrappedTools.map((tool) => tool.name))\n }\n }, [wrappedTools])\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAAgB,QAAQ,QAAuB;AAC7C,4BAAgB;AACd,mCAAO,OAAO;IACb,CAAC,OAAO,CAAC;;;;;ACJd,SAAS,UAAa,OAAU;CAC9B,MAAM,wBAAa,MAAM;AACzB,4BAAgB;AACd,MAAI,UAAU;IACb,CAAC,MAAM,CAAC;AACX,QAAO;;AAGT,SAAgB,SACd,QACA;CACA,MAAM,aAAa,UAAU,OAAO,QAAQ;CAE5C,MAAM,EAAE,UAAU;CAClB,MAAM,wCAEF,MAAM,KAAK,SAAS;EAClB,MAAM,aAAa,KAAK;AACxB,SAAO;GACL,GAAG;GACH,IAAI,OAAO,UAAmC;AAC5C,QAAI,CAAC,WAAW,QAAS,QAAO;AAChC,WAAO,WAAW,OAAO,WAAW,QAAQ;;GAE/C;GACD,EACJ,CAAC,OAAO,WAAW,CACpB;AAED,4BAAgB;AACd,MAAI,CAAC,SAAS,MAAM,WAAW,EAAG;AAClC,qCAAS,aAAa;AACtB,eAAa;AACX,yCAAY,aAAa,KAAK,SAAS,KAAK,KAAK,CAAC;;IAEnD,CAAC,aAAa,CAAC"}
package/dist/index.d.cts CHANGED
@@ -1,15 +1,8 @@
1
1
  import { ToolConfig } from "@plucky-ai/chat-sdk";
2
+ import { PluckySettingsParams } from "@plucky-ai/loader-types";
2
3
 
3
4
  //#region src/types.d.ts
4
- type UseChatParams = {
5
- appId: string;
6
- user?: {
7
- id: string;
8
- name?: string;
9
- };
10
- tools?: ToolConfig[];
11
- tags?: string[];
12
- };
5
+ type UseChatParams = PluckySettingsParams;
13
6
  type UseToolsParams<TContext = Record<string, unknown>> = {
14
7
  context?: TContext;
15
8
  tools: Array<Omit<ToolConfig, 'cb'> & {
@@ -17,8 +10,11 @@ type UseToolsParams<TContext = Record<string, unknown>> = {
17
10
  }>;
18
11
  };
19
12
  //#endregion
13
+ //#region src/hooks/useChat.d.ts
14
+ declare function useChat(params: UseChatParams): void;
15
+ //#endregion
20
16
  //#region src/hooks/useTools.d.ts
21
17
  declare function useTools<TContext = Record<string, unknown>>(params: UseToolsParams<TContext>): void;
22
18
  //#endregion
23
- export { UseChatParams, UseToolsParams, useTools };
19
+ export { UseChatParams, UseToolsParams, useChat, useTools };
24
20
  //# sourceMappingURL=index.d.cts.map
package/dist/index.d.ts CHANGED
@@ -1,15 +1,8 @@
1
1
  import { ToolConfig } from "@plucky-ai/chat-sdk";
2
+ import { PluckySettingsParams } from "@plucky-ai/loader-types";
2
3
 
3
4
  //#region src/types.d.ts
4
- type UseChatParams = {
5
- appId: string;
6
- user?: {
7
- id: string;
8
- name?: string;
9
- };
10
- tools?: ToolConfig[];
11
- tags?: string[];
12
- };
5
+ type UseChatParams = PluckySettingsParams;
13
6
  type UseToolsParams<TContext = Record<string, unknown>> = {
14
7
  context?: TContext;
15
8
  tools: Array<Omit<ToolConfig, 'cb'> & {
@@ -17,8 +10,11 @@ type UseToolsParams<TContext = Record<string, unknown>> = {
17
10
  }>;
18
11
  };
19
12
  //#endregion
13
+ //#region src/hooks/useChat.d.ts
14
+ declare function useChat(params: UseChatParams): void;
15
+ //#endregion
20
16
  //#region src/hooks/useTools.d.ts
21
17
  declare function useTools<TContext = Record<string, unknown>>(params: UseToolsParams<TContext>): void;
22
18
  //#endregion
23
- export { UseChatParams, UseToolsParams, useTools };
19
+ export { UseChatParams, UseToolsParams, useChat, useTools };
24
20
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,6 +1,14 @@
1
- import { addTools, removeTools } from "@plucky-ai/chat-sdk";
1
+ import { Plucky, addTools, removeTools } from "@plucky-ai/chat-sdk";
2
2
  import { useEffect, useMemo, useRef } from "react";
3
3
 
4
+ //#region src/hooks/useChat.ts
5
+ function useChat(params) {
6
+ useEffect(() => {
7
+ Plucky(params);
8
+ }, [params]);
9
+ }
10
+
11
+ //#endregion
4
12
  //#region src/hooks/useTools.ts
5
13
  function useLatest(value) {
6
14
  const ref = useRef(value);
@@ -32,5 +40,5 @@ function useTools(params) {
32
40
  }
33
41
 
34
42
  //#endregion
35
- export { useTools };
43
+ export { useChat, useTools };
36
44
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/hooks/useTools.ts"],"sourcesContent":["import { UseToolsParams } from '@/types'\nimport { addTools, removeTools } from '@plucky-ai/chat-sdk'\nimport { useEffect, useMemo, useRef } from 'react'\nfunction useLatest<T>(value: T) {\n const ref = useRef(value)\n useEffect(() => {\n ref.current = value\n }, [value])\n return ref\n}\n\nexport function useTools<TContext = Record<string, unknown>>(\n params: UseToolsParams<TContext>,\n) {\n const contextRef = useLatest(params.context)\n\n const { tools } = params\n const wrappedTools = useMemo(\n () =>\n tools.map((tool) => {\n const originalCb = tool.cb\n return {\n ...tool,\n cb: async (input: Record<string, unknown>) => {\n if (!contextRef.current) return 'Tool not yet loaded.'\n return originalCb(input, contextRef.current)\n },\n }\n }),\n [tools, contextRef],\n )\n\n useEffect(() => {\n if (!tools || tools.length === 0) return\n addTools(wrappedTools)\n return () => {\n removeTools(wrappedTools.map((tool) => tool.name))\n }\n }, [wrappedTools])\n}\n"],"mappings":";;;;AAGA,SAAS,UAAa,OAAU;CAC9B,MAAM,MAAM,OAAO,MAAM;AACzB,iBAAgB;AACd,MAAI,UAAU;IACb,CAAC,MAAM,CAAC;AACX,QAAO;;AAGT,SAAgB,SACd,QACA;CACA,MAAM,aAAa,UAAU,OAAO,QAAQ;CAE5C,MAAM,EAAE,UAAU;CAClB,MAAM,eAAe,cAEjB,MAAM,KAAK,SAAS;EAClB,MAAM,aAAa,KAAK;AACxB,SAAO;GACL,GAAG;GACH,IAAI,OAAO,UAAmC;AAC5C,QAAI,CAAC,WAAW,QAAS,QAAO;AAChC,WAAO,WAAW,OAAO,WAAW,QAAQ;;GAE/C;GACD,EACJ,CAAC,OAAO,WAAW,CACpB;AAED,iBAAgB;AACd,MAAI,CAAC,SAAS,MAAM,WAAW,EAAG;AAClC,WAAS,aAAa;AACtB,eAAa;AACX,eAAY,aAAa,KAAK,SAAS,KAAK,KAAK,CAAC;;IAEnD,CAAC,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/hooks/useChat.ts","../src/hooks/useTools.ts"],"sourcesContent":["import { UseChatParams } from '@/types'\nimport { Plucky } from '@plucky-ai/chat-sdk'\nimport { useEffect } from 'react'\n\nexport function useChat(params: UseChatParams) {\n useEffect(() => {\n Plucky(params)\n }, [params])\n}\n","import { UseToolsParams } from '@/types'\nimport { addTools, removeTools } from '@plucky-ai/chat-sdk'\nimport { useEffect, useMemo, useRef } from 'react'\nfunction useLatest<T>(value: T) {\n const ref = useRef(value)\n useEffect(() => {\n ref.current = value\n }, [value])\n return ref\n}\n\nexport function useTools<TContext = Record<string, unknown>>(\n params: UseToolsParams<TContext>,\n) {\n const contextRef = useLatest(params.context)\n\n const { tools } = params\n const wrappedTools = useMemo(\n () =>\n tools.map((tool) => {\n const originalCb = tool.cb\n return {\n ...tool,\n cb: async (input: Record<string, unknown>) => {\n if (!contextRef.current) return 'Tool not yet loaded.'\n return originalCb(input, contextRef.current)\n },\n }\n }),\n [tools, contextRef],\n )\n\n useEffect(() => {\n if (!tools || tools.length === 0) return\n addTools(wrappedTools)\n return () => {\n removeTools(wrappedTools.map((tool) => tool.name))\n }\n }, [wrappedTools])\n}\n"],"mappings":";;;;AAIA,SAAgB,QAAQ,QAAuB;AAC7C,iBAAgB;AACd,SAAO,OAAO;IACb,CAAC,OAAO,CAAC;;;;;ACJd,SAAS,UAAa,OAAU;CAC9B,MAAM,MAAM,OAAO,MAAM;AACzB,iBAAgB;AACd,MAAI,UAAU;IACb,CAAC,MAAM,CAAC;AACX,QAAO;;AAGT,SAAgB,SACd,QACA;CACA,MAAM,aAAa,UAAU,OAAO,QAAQ;CAE5C,MAAM,EAAE,UAAU;CAClB,MAAM,eAAe,cAEjB,MAAM,KAAK,SAAS;EAClB,MAAM,aAAa,KAAK;AACxB,SAAO;GACL,GAAG;GACH,IAAI,OAAO,UAAmC;AAC5C,QAAI,CAAC,WAAW,QAAS,QAAO;AAChC,WAAO,WAAW,OAAO,WAAW,QAAQ;;GAE/C;GACD,EACJ,CAAC,OAAO,WAAW,CACpB;AAED,iBAAgB;AACd,MAAI,CAAC,SAAS,MAAM,WAAW,EAAG;AAClC,WAAS,aAAa;AACtB,eAAa;AACX,eAAY,aAAa,KAAK,SAAS,KAAK,KAAK,CAAC;;IAEnD,CAAC,aAAa,CAAC"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plucky-ai/react",
3
- "version": "0.3.3",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plucky-ai/react",
3
- "version": "0.3.3",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -15,13 +15,14 @@
15
15
  "dependencies": {
16
16
  "react": "19.2.1",
17
17
  "zod": "^4.1.11",
18
- "@plucky-ai/chat-sdk": "^0.3.3"
18
+ "@plucky-ai/chat-sdk": "^0.4.0"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/react": "19.1.13",
22
22
  "tsdown": "^0.15.12",
23
23
  "tsx": "^4.20.6",
24
- "typescript": "^5.9.3"
24
+ "typescript": "^5.9.3",
25
+ "@plucky-ai/loader-types": "^0.2.1"
25
26
  },
26
27
  "publishConfig": {
27
28
  "access": "public",