@plucky-ai/react 0.3.3 → 0.5.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/README.md +7 -0
- package/dist/index.cjs +9 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -11
- package/dist/index.d.ts +7 -11
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -29,7 +29,14 @@ function MyComponent(props: { temperature: number }) {
|
|
|
29
29
|
defaultLoadingText: 'Checking the weather...',
|
|
30
30
|
defaultSuccessText: 'Weather retrieved.',
|
|
31
31
|
cb: async (_, { temperature }) => {
|
|
32
|
+
// Return a string:
|
|
32
33
|
return `It's currently ${temperature} degrees.`
|
|
34
|
+
|
|
35
|
+
// Or return an object with custom success text:
|
|
36
|
+
// return {
|
|
37
|
+
// content: `It's currently ${temperature} degrees.`,
|
|
38
|
+
// successText: `Weather: ${temperature}°`,
|
|
39
|
+
// }
|
|
33
40
|
},
|
|
34
41
|
},
|
|
35
42
|
],
|
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
|
package/dist/index.cjs.map
CHANGED
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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,24 +1,20 @@
|
|
|
1
1
|
import { ToolConfig } from "@plucky-ai/chat-sdk";
|
|
2
|
+
import { PluckySettingsParams, ToolCallbackResult } 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'> & {
|
|
16
|
-
cb: (input: Record<string, unknown>, context: TContext) => Promise<
|
|
9
|
+
cb: (input: Record<string, unknown>, context: TContext) => Promise<ToolCallbackResult> | ToolCallbackResult;
|
|
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,24 +1,20 @@
|
|
|
1
1
|
import { ToolConfig } from "@plucky-ai/chat-sdk";
|
|
2
|
+
import { PluckySettingsParams, ToolCallbackResult } 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'> & {
|
|
16
|
-
cb: (input: Record<string, unknown>, context: TContext) => Promise<
|
|
9
|
+
cb: (input: Record<string, unknown>, context: TContext) => Promise<ToolCallbackResult> | ToolCallbackResult;
|
|
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":";;;;
|
|
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plucky-ai/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -13,15 +13,16 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"react": "19.2.
|
|
16
|
+
"react": "^19.2.3",
|
|
17
17
|
"zod": "^4.1.11",
|
|
18
|
-
"@plucky-ai/chat-sdk": "^0.
|
|
18
|
+
"@plucky-ai/chat-sdk": "^0.5.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.3.0"
|
|
25
26
|
},
|
|
26
27
|
"publishConfig": {
|
|
27
28
|
"access": "public",
|