@copilotkit/react-core 0.38.0-mme-alpha.1 → 1.0.0-beta.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/.turbo/turbo-build.log +90 -90
- package/CHANGELOG.md +10 -16
- package/dist/{chunk-4HP6NKA6.mjs → chunk-5CKW6KE7.mjs} +4 -4
- package/dist/{chunk-IBOL6LE5.mjs → chunk-7GPIOOXB.mjs} +2 -2
- package/dist/{chunk-FY3TQ7Q6.mjs → chunk-DDHJCFFV.mjs} +3 -3
- package/dist/{chunk-FY3TQ7Q6.mjs.map → chunk-DDHJCFFV.mjs.map} +1 -1
- package/dist/{chunk-GFQBAEJL.mjs → chunk-IQCLNCGL.mjs} +2 -2
- package/dist/{chunk-GLPZSBNA.mjs → chunk-K6EV2CNB.mjs} +1 -1
- package/dist/chunk-K6EV2CNB.mjs.map +1 -0
- package/dist/{chunk-MI7BERU7.mjs → chunk-LZVHW3T3.mjs} +2 -2
- package/dist/{chunk-5Q7DU3XW.mjs → chunk-NY6QSOU7.mjs} +14 -11
- package/dist/{chunk-5Q7DU3XW.mjs.map → chunk-NY6QSOU7.mjs.map} +1 -1
- package/dist/{chunk-3H7FWH56.mjs → chunk-PHMHNAYC.mjs} +2 -2
- package/dist/chunk-PHMHNAYC.mjs.map +1 -0
- package/dist/{chunk-ATWK243A.mjs → chunk-QNJQKKD4.mjs} +2 -2
- package/dist/{chunk-4V7S4R7X.mjs → chunk-WU3I3G3G.mjs} +3 -3
- package/dist/chunk-WU3I3G3G.mjs.map +1 -0
- package/dist/{chunk-WTGFKR3D.mjs → chunk-YM2JV2YQ.mjs} +2 -2
- package/dist/components/copilot-provider/copilotkit-props.d.ts +2 -2
- package/dist/components/copilot-provider/copilotkit-props.js.map +1 -1
- package/dist/components/copilot-provider/copilotkit.js +1 -1
- package/dist/components/copilot-provider/copilotkit.js.map +1 -1
- package/dist/components/copilot-provider/copilotkit.mjs +2 -2
- package/dist/components/copilot-provider/index.js +1 -1
- package/dist/components/copilot-provider/index.js.map +1 -1
- package/dist/components/copilot-provider/index.mjs +2 -2
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +2 -2
- package/dist/context/copilot-context.d.ts +2 -13
- package/dist/context/copilot-context.js.map +1 -1
- package/dist/context/copilot-context.mjs +1 -1
- package/dist/context/index.js.map +1 -1
- package/dist/context/index.mjs +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +9 -9
- package/dist/hooks/use-chat.js +1 -1
- package/dist/hooks/use-chat.js.map +1 -1
- package/dist/hooks/use-chat.mjs +1 -1
- package/dist/hooks/use-copilot-action.js.map +1 -1
- package/dist/hooks/use-copilot-action.mjs +2 -2
- package/dist/hooks/use-copilot-chat.js +1 -1
- package/dist/hooks/use-copilot-chat.js.map +1 -1
- package/dist/hooks/use-copilot-chat.mjs +4 -4
- package/dist/hooks/use-copilot-readable.js.map +1 -1
- package/dist/hooks/use-copilot-readable.mjs +2 -2
- package/dist/hooks/use-make-copilot-actionable.js.map +1 -1
- package/dist/hooks/use-make-copilot-actionable.mjs +2 -2
- package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
- package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
- package/dist/hooks/use-make-copilot-readable.js.map +1 -1
- package/dist/hooks/use-make-copilot-readable.mjs +2 -2
- package/dist/index.js +15 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -11
- package/dist/lib/copilot-task.js +12 -9
- package/dist/lib/copilot-task.js.map +1 -1
- package/dist/lib/copilot-task.mjs +3 -3
- package/dist/lib/index.js +12 -9
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +3 -3
- package/dist/utils/extract.js +1 -1
- package/dist/utils/extract.js.map +1 -1
- package/dist/utils/extract.mjs +3 -3
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/index.mjs +3 -3
- package/package.json +6 -5
- package/src/components/copilot-provider/copilotkit-props.tsx +2 -2
- package/src/components/copilot-provider/copilotkit.tsx +1 -4
- package/src/context/copilot-context.tsx +2 -14
- package/src/hooks/use-chat.ts +1 -26
- package/src/lib/copilot-task.ts +12 -9
- package/src/utils/extract.ts +1 -1
- package/dist/chunk-3H7FWH56.mjs.map +0 -1
- package/dist/chunk-4V7S4R7X.mjs.map +0 -1
- package/dist/chunk-GLPZSBNA.mjs.map +0 -1
- /package/dist/{chunk-4HP6NKA6.mjs.map → chunk-5CKW6KE7.mjs.map} +0 -0
- /package/dist/{chunk-IBOL6LE5.mjs.map → chunk-7GPIOOXB.mjs.map} +0 -0
- /package/dist/{chunk-GFQBAEJL.mjs.map → chunk-IQCLNCGL.mjs.map} +0 -0
- /package/dist/{chunk-MI7BERU7.mjs.map → chunk-LZVHW3T3.mjs.map} +0 -0
- /package/dist/{chunk-ATWK243A.mjs.map → chunk-QNJQKKD4.mjs.map} +0 -0
- /package/dist/{chunk-WTGFKR3D.mjs.map → chunk-YM2JV2YQ.mjs.map} +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @copilotkit/react-core@0.
|
|
2
|
+
> @copilotkit/react-core@1.0.0-beta.0 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-core
|
|
3
3
|
> tsup --clean
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.tsx, src/components/index.ts, src/context/copilot-context.tsx, src/context/index.ts, src/hooks/index.ts, src/hooks/use-chat.ts, src/hooks/use-copilot-action.ts, src/hooks/use-copilot-chat.ts, src/hooks/use-copilot-readable.ts, src/hooks/use-flat-category-store.ts, src/hooks/use-make-copilot-actionable.ts, src/hooks/use-make-copilot-document-readable.ts, src/hooks/use-make-copilot-readable.ts, src/hooks/use-tree.ts, src/lib/copilot-task.ts, src/lib/index.ts, src/types/chat-suggestion-configuration.ts, src/types/document-pointer.ts, src/types/frontend-action.ts, src/types/index.ts, src/types/system-message.ts, src/utils/extract.ts, src/utils/index.ts, src/utils/utils.test.ts, src/utils/utils.ts, src/components/copilot-provider/copilotkit-props.tsx, src/components/copilot-provider/copilotkit.tsx, src/components/copilot-provider/index.ts
|
|
@@ -10,41 +10,97 @@
|
|
|
10
10
|
[34mCLI[39m Cleaning output folder
|
|
11
11
|
[34mESM[39m Build start
|
|
12
12
|
[34mCJS[39m Build start
|
|
13
|
+
[32mCJS[39m [1mdist/lib/copilot-task.js [22m[32m5.47 KB[39m
|
|
14
|
+
[32mCJS[39m [1mdist/types/chat-suggestion-configuration.js [22m[32m893.00 B[39m
|
|
15
|
+
[32mCJS[39m [1mdist/utils/extract.js [22m[32m6.70 KB[39m
|
|
16
|
+
[32mCJS[39m [1mdist/components/copilot-provider/copilotkit-props.js [22m[32m864.00 B[39m
|
|
17
|
+
[32mCJS[39m [1mdist/index.js [22m[32m38.99 KB[39m
|
|
18
|
+
[32mCJS[39m [1mdist/components/index.js [22m[32m16.47 KB[39m
|
|
19
|
+
[32mCJS[39m [1mdist/context/copilot-context.js [22m[32m3.90 KB[39m
|
|
20
|
+
[32mCJS[39m [1mdist/context/index.js [22m[32m3.89 KB[39m
|
|
21
|
+
[32mCJS[39m [1mdist/hooks/index.js [22m[32m19.42 KB[39m
|
|
22
|
+
[32mCJS[39m [1mdist/hooks/use-chat.js [22m[32m8.85 KB[39m
|
|
23
|
+
[32mCJS[39m [1mdist/hooks/use-copilot-action.js [22m[32m5.16 KB[39m
|
|
24
|
+
[32mCJS[39m [1mdist/hooks/use-copilot-chat.js [22m[32m14.87 KB[39m
|
|
25
|
+
[32mCJS[39m [1mdist/hooks/use-copilot-readable.js [22m[32m4.61 KB[39m
|
|
26
|
+
[32mCJS[39m [1mdist/hooks/use-flat-category-store.js [22m[32m2.87 KB[39m
|
|
27
|
+
[32mCJS[39m [1mdist/hooks/use-make-copilot-actionable.js [22m[32m4.85 KB[39m
|
|
28
|
+
[32mCJS[39m [1mdist/hooks/use-make-copilot-document-readable.js [22m[32m4.50 KB[39m
|
|
29
|
+
[32mCJS[39m [1mdist/hooks/use-make-copilot-readable.js [22m[32m4.38 KB[39m
|
|
30
|
+
[32mCJS[39m [1mdist/hooks/use-tree.js [22m[32m5.53 KB[39m
|
|
31
|
+
[32mCJS[39m [1mdist/lib/index.js [22m[32m5.46 KB[39m
|
|
32
|
+
[32mCJS[39m [1mdist/types/document-pointer.js [22m[32m841.00 B[39m
|
|
33
|
+
[32mCJS[39m [1mdist/types/frontend-action.js [22m[32m837.00 B[39m
|
|
34
|
+
[32mCJS[39m [1mdist/types/index.js [22m[32m797.00 B[39m
|
|
35
|
+
[32mCJS[39m [1mdist/types/system-message.js [22m[32m833.00 B[39m
|
|
36
|
+
[32mCJS[39m [1mdist/utils/index.js [22m[32m6.71 KB[39m
|
|
37
|
+
[32mCJS[39m [1mdist/utils/utils.test.js [22m[32m184.00 B[39m
|
|
38
|
+
[32mCJS[39m [1mdist/utils/utils.js [22m[32m797.00 B[39m
|
|
39
|
+
[32mCJS[39m [1mdist/components/copilot-provider/copilotkit.js [22m[32m16.45 KB[39m
|
|
40
|
+
[32mCJS[39m [1mdist/components/copilot-provider/index.js [22m[32m16.51 KB[39m
|
|
41
|
+
[32mCJS[39m [1mdist/lib/copilot-task.js.map [22m[32m16.81 KB[39m
|
|
42
|
+
[32mCJS[39m [1mdist/types/chat-suggestion-configuration.js.map [22m[32m673.00 B[39m
|
|
43
|
+
[32mCJS[39m [1mdist/utils/extract.js.map [22m[32m15.10 KB[39m
|
|
44
|
+
[32mCJS[39m [1mdist/components/copilot-provider/copilotkit-props.js.map [22m[32m1.75 KB[39m
|
|
45
|
+
[32mCJS[39m [1mdist/components/index.js.map [22m[32m29.79 KB[39m
|
|
46
|
+
[32mCJS[39m [1mdist/context/copilot-context.js.map [22m[32m6.31 KB[39m
|
|
47
|
+
[32mCJS[39m [1mdist/context/index.js.map [22m[32m6.54 KB[39m
|
|
48
|
+
[32mCJS[39m [1mdist/index.js.map [22m[32m79.65 KB[39m
|
|
49
|
+
[32mCJS[39m [1mdist/hooks/use-chat.js.map [22m[32m12.77 KB[39m
|
|
50
|
+
[32mCJS[39m [1mdist/hooks/use-copilot-action.js.map [22m[32m10.42 KB[39m
|
|
51
|
+
[32mCJS[39m [1mdist/hooks/index.js.map [22m[32m47.96 KB[39m
|
|
52
|
+
[32mCJS[39m [1mdist/hooks/use-copilot-readable.js.map [22m[32m11.35 KB[39m
|
|
53
|
+
[32mCJS[39m [1mdist/hooks/use-flat-category-store.js.map [22m[32m4.25 KB[39m
|
|
54
|
+
[32mCJS[39m [1mdist/hooks/use-copilot-chat.js.map [22m[32m33.86 KB[39m
|
|
55
|
+
[32mCJS[39m [1mdist/hooks/use-make-copilot-document-readable.js.map [22m[32m7.60 KB[39m
|
|
56
|
+
[32mCJS[39m [1mdist/hooks/use-make-copilot-actionable.js.map [22m[32m8.03 KB[39m
|
|
57
|
+
[32mCJS[39m [1mdist/hooks/use-make-copilot-readable.js.map [22m[32m7.29 KB[39m
|
|
58
|
+
[32mCJS[39m [1mdist/hooks/use-tree.js.map [22m[32m8.32 KB[39m
|
|
59
|
+
[32mCJS[39m [1mdist/lib/index.js.map [22m[32m16.87 KB[39m
|
|
60
|
+
[32mCJS[39m [1mdist/types/document-pointer.js.map [22m[32m292.00 B[39m
|
|
61
|
+
[32mCJS[39m [1mdist/types/frontend-action.js.map [22m[32m1.77 KB[39m
|
|
62
|
+
[32mCJS[39m [1mdist/types/index.js.map [22m[32m432.00 B[39m
|
|
63
|
+
[32mCJS[39m [1mdist/types/system-message.js.map [22m[32m249.00 B[39m
|
|
64
|
+
[32mCJS[39m [1mdist/utils/index.js.map [22m[32m15.17 KB[39m
|
|
65
|
+
[32mCJS[39m [1mdist/utils/utils.test.js.map [22m[32m354.00 B[39m
|
|
66
|
+
[32mCJS[39m [1mdist/utils/utils.js.map [22m[32m137.00 B[39m
|
|
67
|
+
[32mCJS[39m [1mdist/components/copilot-provider/copilotkit.js.map [22m[32m29.73 KB[39m
|
|
68
|
+
[32mCJS[39m [1mdist/components/copilot-provider/index.js.map [22m[32m29.92 KB[39m
|
|
69
|
+
[32mCJS[39m ⚡️ Build success in 95ms
|
|
13
70
|
[32mESM[39m [1mdist/index.mjs [22m[32m1.28 KB[39m
|
|
14
71
|
[32mESM[39m [1mdist/components/index.mjs [22m[32m375.00 B[39m
|
|
15
72
|
[32mESM[39m [1mdist/context/copilot-context.mjs [22m[32m205.00 B[39m
|
|
16
73
|
[32mESM[39m [1mdist/hooks/index.mjs [22m[32m869.00 B[39m
|
|
17
74
|
[32mESM[39m [1mdist/chunk-EFZPSZWO.mjs [22m[32m43.00 B[39m
|
|
18
75
|
[32mESM[39m [1mdist/chunk-YJLRG5U3.mjs [22m[32m43.00 B[39m
|
|
19
|
-
[32mESM[39m [1mdist/chunk-
|
|
76
|
+
[32mESM[39m [1mdist/chunk-WU3I3G3G.mjs [22m[32m4.36 KB[39m
|
|
20
77
|
[32mESM[39m [1mdist/chunk-LUGEI4YQ.mjs [22m[32m43.00 B[39m
|
|
21
|
-
[32mESM[39m [1mdist/chunk-
|
|
78
|
+
[32mESM[39m [1mdist/chunk-NY6QSOU7.mjs [22m[32m3.72 KB[39m
|
|
22
79
|
[32mESM[39m [1mdist/context/index.mjs [22m[32m227.00 B[39m
|
|
23
80
|
[32mESM[39m [1mdist/chunk-VNRDQJXW.mjs [22m[32m43.00 B[39m
|
|
24
81
|
[32mESM[39m [1mdist/chunk-EYKDJBDE.mjs [22m[32m43.00 B[39m
|
|
25
|
-
[32mESM[39m [1mdist/chunk-
|
|
26
|
-
[32mESM[39m [1mdist/chunk-
|
|
27
|
-
[32mESM[39m [1mdist/chunk-
|
|
28
|
-
[32mESM[39m [1mdist/chunk-
|
|
82
|
+
[32mESM[39m [1mdist/chunk-YM2JV2YQ.mjs [22m[32m909.00 B[39m
|
|
83
|
+
[32mESM[39m [1mdist/chunk-IQCLNCGL.mjs [22m[32m1.04 KB[39m
|
|
84
|
+
[32mESM[39m [1mdist/chunk-7GPIOOXB.mjs [22m[32m700.00 B[39m
|
|
85
|
+
[32mESM[39m [1mdist/chunk-QNJQKKD4.mjs [22m[32m640.00 B[39m
|
|
29
86
|
[32mESM[39m [1mdist/hooks/use-chat.mjs [22m[32m142.00 B[39m
|
|
30
87
|
[32mESM[39m [1mdist/hooks/use-copilot-action.mjs [22m[32m202.00 B[39m
|
|
31
|
-
[32mESM[39m [1mdist/chunk-
|
|
88
|
+
[32mESM[39m [1mdist/chunk-LZVHW3T3.mjs [22m[32m1.42 KB[39m
|
|
32
89
|
[32mESM[39m [1mdist/hooks/use-copilot-chat.mjs [22m[32m436.00 B[39m
|
|
33
|
-
[32mESM[39m [1mdist/chunk-
|
|
90
|
+
[32mESM[39m [1mdist/chunk-5CKW6KE7.mjs [22m[32m3.12 KB[39m
|
|
34
91
|
[32mESM[39m [1mdist/chunk-JD7BAH7U.mjs [22m[32m43.00 B[39m
|
|
35
92
|
[32mESM[39m [1mdist/chunk-SPCZTZCY.mjs [22m[32m43.00 B[39m
|
|
36
|
-
[32mESM[39m [1mdist/chunk-
|
|
93
|
+
[32mESM[39m [1mdist/chunk-DDHJCFFV.mjs [22m[32m5.72 KB[39m
|
|
37
94
|
[32mESM[39m [1mdist/chunk-YULKJPY3.mjs [22m[32m1.84 KB[39m
|
|
38
95
|
[32mESM[39m [1mdist/chunk-YWITCRBI.mjs [22m[32m3.89 KB[39m
|
|
39
|
-
[32mESM[39m [1mdist/chunk-
|
|
40
|
-
[32mESM[39m [1mdist/chunk-
|
|
96
|
+
[32mESM[39m [1mdist/chunk-PHMHNAYC.mjs [22m[32m6.58 KB[39m
|
|
97
|
+
[32mESM[39m [1mdist/chunk-K6EV2CNB.mjs [22m[32m1.72 KB[39m
|
|
41
98
|
[32mESM[39m [1mdist/chunk-SKC7AJIV.mjs [22m[32m1.97 KB[39m
|
|
42
99
|
[32mESM[39m [1mdist/utils/utils.mjs [22m[32m34.00 B[39m
|
|
43
|
-
[32mESM[39m [1mdist/components/copilot-provider/copilotkit-props.mjs [22m[32m45.00 B[39m
|
|
44
|
-
[32mESM[39m [1mdist/types/chat-suggestion-configuration.mjs [22m[32m58.00 B[39m
|
|
45
|
-
[32mESM[39m [1mdist/lib/copilot-task.mjs [22m[32m346.00 B[39m
|
|
46
100
|
[32mESM[39m [1mdist/components/copilot-provider/copilotkit.mjs [22m[32m331.00 B[39m
|
|
47
101
|
[32mESM[39m [1mdist/components/copilot-provider/index.mjs [22m[32m361.00 B[39m
|
|
102
|
+
[32mESM[39m [1mdist/components/copilot-provider/copilotkit-props.mjs [22m[32m45.00 B[39m
|
|
103
|
+
[32mESM[39m [1mdist/types/chat-suggestion-configuration.mjs [22m[32m58.00 B[39m
|
|
48
104
|
[32mESM[39m [1mdist/types/document-pointer.mjs [22m[32m45.00 B[39m
|
|
49
105
|
[32mESM[39m [1mdist/types/frontend-action.mjs [22m[32m44.00 B[39m
|
|
50
106
|
[32mESM[39m [1mdist/types/index.mjs [22m[32m66.00 B[39m
|
|
@@ -58,6 +114,7 @@
|
|
|
58
114
|
[32mESM[39m [1mdist/hooks/use-make-copilot-document-readable.mjs [22m[32m246.00 B[39m
|
|
59
115
|
[32mESM[39m [1mdist/hooks/use-make-copilot-readable.mjs [22m[32m221.00 B[39m
|
|
60
116
|
[32mESM[39m [1mdist/hooks/use-tree.mjs [22m[32m171.00 B[39m
|
|
117
|
+
[32mESM[39m [1mdist/lib/copilot-task.mjs [22m[32m346.00 B[39m
|
|
61
118
|
[32mESM[39m [1mdist/lib/index.mjs [22m[32m371.00 B[39m
|
|
62
119
|
[32mESM[39m [1mdist/index.mjs.map [22m[32m71.00 B[39m
|
|
63
120
|
[32mESM[39m [1mdist/components/index.mjs.map [22m[32m71.00 B[39m
|
|
@@ -65,35 +122,34 @@
|
|
|
65
122
|
[32mESM[39m [1mdist/hooks/index.mjs.map [22m[32m71.00 B[39m
|
|
66
123
|
[32mESM[39m [1mdist/chunk-EFZPSZWO.mjs.map [22m[32m71.00 B[39m
|
|
67
124
|
[32mESM[39m [1mdist/chunk-YJLRG5U3.mjs.map [22m[32m71.00 B[39m
|
|
68
|
-
[32mESM[39m [1mdist/chunk-
|
|
125
|
+
[32mESM[39m [1mdist/chunk-WU3I3G3G.mjs.map [22m[32m7.35 KB[39m
|
|
69
126
|
[32mESM[39m [1mdist/chunk-LUGEI4YQ.mjs.map [22m[32m71.00 B[39m
|
|
70
|
-
[32mESM[39m [1mdist/chunk-
|
|
127
|
+
[32mESM[39m [1mdist/chunk-NY6QSOU7.mjs.map [22m[32m9.10 KB[39m
|
|
71
128
|
[32mESM[39m [1mdist/context/index.mjs.map [22m[32m71.00 B[39m
|
|
72
129
|
[32mESM[39m [1mdist/chunk-VNRDQJXW.mjs.map [22m[32m71.00 B[39m
|
|
73
130
|
[32mESM[39m [1mdist/chunk-EYKDJBDE.mjs.map [22m[32m71.00 B[39m
|
|
74
|
-
[32mESM[39m [1mdist/chunk-
|
|
75
|
-
[32mESM[39m [1mdist/chunk-
|
|
76
|
-
[32mESM[39m [1mdist/chunk-
|
|
77
|
-
[32mESM[39m [1mdist/chunk-
|
|
131
|
+
[32mESM[39m [1mdist/chunk-YM2JV2YQ.mjs.map [22m[32m5.15 KB[39m
|
|
132
|
+
[32mESM[39m [1mdist/chunk-IQCLNCGL.mjs.map [22m[32m1.84 KB[39m
|
|
133
|
+
[32mESM[39m [1mdist/chunk-7GPIOOXB.mjs.map [22m[32m1.40 KB[39m
|
|
134
|
+
[32mESM[39m [1mdist/chunk-QNJQKKD4.mjs.map [22m[32m1.08 KB[39m
|
|
78
135
|
[32mESM[39m [1mdist/hooks/use-chat.mjs.map [22m[32m71.00 B[39m
|
|
79
136
|
[32mESM[39m [1mdist/hooks/use-copilot-action.mjs.map [22m[32m71.00 B[39m
|
|
80
|
-
[32mESM[39m [1mdist/chunk-
|
|
137
|
+
[32mESM[39m [1mdist/chunk-LZVHW3T3.mjs.map [22m[32m4.22 KB[39m
|
|
81
138
|
[32mESM[39m [1mdist/hooks/use-copilot-chat.mjs.map [22m[32m71.00 B[39m
|
|
82
|
-
[32mESM[39m [1mdist/chunk-
|
|
139
|
+
[32mESM[39m [1mdist/chunk-5CKW6KE7.mjs.map [22m[32m7.22 KB[39m
|
|
83
140
|
[32mESM[39m [1mdist/chunk-JD7BAH7U.mjs.map [22m[32m71.00 B[39m
|
|
84
141
|
[32mESM[39m [1mdist/chunk-SPCZTZCY.mjs.map [22m[32m71.00 B[39m
|
|
85
|
-
[32mESM[39m [1mdist/chunk-
|
|
142
|
+
[32mESM[39m [1mdist/chunk-DDHJCFFV.mjs.map [22m[32m11.08 KB[39m
|
|
86
143
|
[32mESM[39m [1mdist/chunk-YULKJPY3.mjs.map [22m[32m4.21 KB[39m
|
|
87
144
|
[32mESM[39m [1mdist/chunk-YWITCRBI.mjs.map [22m[32m8.27 KB[39m
|
|
88
|
-
[32mESM[39m [1mdist/chunk-
|
|
89
|
-
[32mESM[39m [1mdist/chunk-
|
|
145
|
+
[32mESM[39m [1mdist/chunk-PHMHNAYC.mjs.map [22m[32m12.80 KB[39m
|
|
146
|
+
[32mESM[39m [1mdist/chunk-K6EV2CNB.mjs.map [22m[32m6.22 KB[39m
|
|
90
147
|
[32mESM[39m [1mdist/chunk-SKC7AJIV.mjs.map [22m[32m71.00 B[39m
|
|
91
148
|
[32mESM[39m [1mdist/utils/utils.mjs.map [22m[32m71.00 B[39m
|
|
92
|
-
[32mESM[39m [1mdist/components/copilot-provider/copilotkit-props.mjs.map [22m[32m71.00 B[39m
|
|
93
|
-
[32mESM[39m [1mdist/types/chat-suggestion-configuration.mjs.map [22m[32m71.00 B[39m
|
|
94
|
-
[32mESM[39m [1mdist/lib/copilot-task.mjs.map [22m[32m71.00 B[39m
|
|
95
149
|
[32mESM[39m [1mdist/components/copilot-provider/copilotkit.mjs.map [22m[32m71.00 B[39m
|
|
96
150
|
[32mESM[39m [1mdist/components/copilot-provider/index.mjs.map [22m[32m71.00 B[39m
|
|
151
|
+
[32mESM[39m [1mdist/components/copilot-provider/copilotkit-props.mjs.map [22m[32m71.00 B[39m
|
|
152
|
+
[32mESM[39m [1mdist/types/chat-suggestion-configuration.mjs.map [22m[32m71.00 B[39m
|
|
97
153
|
[32mESM[39m [1mdist/types/document-pointer.mjs.map [22m[32m71.00 B[39m
|
|
98
154
|
[32mESM[39m [1mdist/types/frontend-action.mjs.map [22m[32m71.00 B[39m
|
|
99
155
|
[32mESM[39m [1mdist/types/index.mjs.map [22m[32m71.00 B[39m
|
|
@@ -107,71 +163,15 @@
|
|
|
107
163
|
[32mESM[39m [1mdist/hooks/use-make-copilot-document-readable.mjs.map [22m[32m71.00 B[39m
|
|
108
164
|
[32mESM[39m [1mdist/hooks/use-make-copilot-readable.mjs.map [22m[32m71.00 B[39m
|
|
109
165
|
[32mESM[39m [1mdist/hooks/use-tree.mjs.map [22m[32m71.00 B[39m
|
|
166
|
+
[32mESM[39m [1mdist/lib/copilot-task.mjs.map [22m[32m71.00 B[39m
|
|
110
167
|
[32mESM[39m [1mdist/lib/index.mjs.map [22m[32m71.00 B[39m
|
|
111
|
-
[32mESM[39m ⚡️ Build success in
|
|
112
|
-
[32mCJS[39m [1mdist/index.js [22m[32m38.90 KB[39m
|
|
113
|
-
[32mCJS[39m [1mdist/components/index.js [22m[32m16.51 KB[39m
|
|
114
|
-
[32mCJS[39m [1mdist/context/copilot-context.js [22m[32m3.90 KB[39m
|
|
115
|
-
[32mCJS[39m [1mdist/context/index.js [22m[32m3.89 KB[39m
|
|
116
|
-
[32mCJS[39m [1mdist/hooks/index.js [22m[32m19.40 KB[39m
|
|
117
|
-
[32mCJS[39m [1mdist/hooks/use-chat.js [22m[32m8.83 KB[39m
|
|
118
|
-
[32mCJS[39m [1mdist/hooks/use-copilot-action.js [22m[32m5.16 KB[39m
|
|
119
|
-
[32mCJS[39m [1mdist/hooks/use-copilot-chat.js [22m[32m14.85 KB[39m
|
|
120
|
-
[32mCJS[39m [1mdist/hooks/use-copilot-readable.js [22m[32m4.61 KB[39m
|
|
121
|
-
[32mCJS[39m [1mdist/hooks/use-flat-category-store.js [22m[32m2.87 KB[39m
|
|
122
|
-
[32mCJS[39m [1mdist/hooks/use-make-copilot-actionable.js [22m[32m4.85 KB[39m
|
|
123
|
-
[32mCJS[39m [1mdist/hooks/use-make-copilot-document-readable.js [22m[32m4.50 KB[39m
|
|
124
|
-
[32mCJS[39m [1mdist/hooks/use-make-copilot-readable.js [22m[32m4.38 KB[39m
|
|
125
|
-
[32mCJS[39m [1mdist/hooks/use-tree.js [22m[32m5.53 KB[39m
|
|
126
|
-
[32mCJS[39m [1mdist/lib/copilot-task.js [22m[32m5.39 KB[39m
|
|
127
|
-
[32mCJS[39m [1mdist/lib/index.js [22m[32m5.38 KB[39m
|
|
128
|
-
[32mCJS[39m [1mdist/types/chat-suggestion-configuration.js [22m[32m893.00 B[39m
|
|
129
|
-
[32mCJS[39m [1mdist/types/document-pointer.js [22m[32m841.00 B[39m
|
|
130
|
-
[32mCJS[39m [1mdist/types/frontend-action.js [22m[32m837.00 B[39m
|
|
131
|
-
[32mCJS[39m [1mdist/types/index.js [22m[32m797.00 B[39m
|
|
132
|
-
[32mCJS[39m [1mdist/types/system-message.js [22m[32m833.00 B[39m
|
|
133
|
-
[32mCJS[39m [1mdist/utils/extract.js [22m[32m6.67 KB[39m
|
|
134
|
-
[32mCJS[39m [1mdist/utils/index.js [22m[32m6.69 KB[39m
|
|
135
|
-
[32mCJS[39m [1mdist/utils/utils.test.js [22m[32m184.00 B[39m
|
|
136
|
-
[32mCJS[39m [1mdist/utils/utils.js [22m[32m797.00 B[39m
|
|
137
|
-
[32mCJS[39m [1mdist/components/copilot-provider/copilotkit-props.js [22m[32m864.00 B[39m
|
|
138
|
-
[32mCJS[39m [1mdist/components/copilot-provider/copilotkit.js [22m[32m16.49 KB[39m
|
|
139
|
-
[32mCJS[39m [1mdist/components/copilot-provider/index.js [22m[32m16.55 KB[39m
|
|
140
|
-
[32mCJS[39m [1mdist/components/index.js.map [22m[32m30.07 KB[39m
|
|
141
|
-
[32mCJS[39m [1mdist/index.js.map [22m[32m80.56 KB[39m
|
|
142
|
-
[32mCJS[39m [1mdist/context/copilot-context.js.map [22m[32m6.56 KB[39m
|
|
143
|
-
[32mCJS[39m [1mdist/context/index.js.map [22m[32m6.79 KB[39m
|
|
144
|
-
[32mCJS[39m [1mdist/hooks/index.js.map [22m[32m49.00 KB[39m
|
|
145
|
-
[32mCJS[39m [1mdist/hooks/use-chat.js.map [22m[32m13.54 KB[39m
|
|
146
|
-
[32mCJS[39m [1mdist/hooks/use-copilot-action.js.map [22m[32m10.67 KB[39m
|
|
147
|
-
[32mCJS[39m [1mdist/hooks/use-copilot-chat.js.map [22m[32m34.90 KB[39m
|
|
148
|
-
[32mCJS[39m [1mdist/hooks/use-copilot-readable.js.map [22m[32m11.60 KB[39m
|
|
149
|
-
[32mCJS[39m [1mdist/hooks/use-flat-category-store.js.map [22m[32m4.25 KB[39m
|
|
150
|
-
[32mCJS[39m [1mdist/hooks/use-make-copilot-actionable.js.map [22m[32m8.28 KB[39m
|
|
151
|
-
[32mCJS[39m [1mdist/hooks/use-make-copilot-document-readable.js.map [22m[32m7.85 KB[39m
|
|
152
|
-
[32mCJS[39m [1mdist/hooks/use-tree.js.map [22m[32m8.32 KB[39m
|
|
153
|
-
[32mCJS[39m [1mdist/hooks/use-make-copilot-readable.js.map [22m[32m7.53 KB[39m
|
|
154
|
-
[32mCJS[39m [1mdist/lib/copilot-task.js.map [22m[32m16.73 KB[39m
|
|
155
|
-
[32mCJS[39m [1mdist/lib/index.js.map [22m[32m16.80 KB[39m
|
|
156
|
-
[32mCJS[39m [1mdist/types/chat-suggestion-configuration.js.map [22m[32m673.00 B[39m
|
|
157
|
-
[32mCJS[39m [1mdist/types/document-pointer.js.map [22m[32m292.00 B[39m
|
|
158
|
-
[32mCJS[39m [1mdist/types/index.js.map [22m[32m432.00 B[39m
|
|
159
|
-
[32mCJS[39m [1mdist/types/frontend-action.js.map [22m[32m1.77 KB[39m
|
|
160
|
-
[32mCJS[39m [1mdist/types/system-message.js.map [22m[32m249.00 B[39m
|
|
161
|
-
[32mCJS[39m [1mdist/utils/extract.js.map [22m[32m15.10 KB[39m
|
|
162
|
-
[32mCJS[39m [1mdist/utils/index.js.map [22m[32m15.17 KB[39m
|
|
163
|
-
[32mCJS[39m [1mdist/utils/utils.test.js.map [22m[32m354.00 B[39m
|
|
164
|
-
[32mCJS[39m [1mdist/utils/utils.js.map [22m[32m137.00 B[39m
|
|
165
|
-
[32mCJS[39m [1mdist/components/copilot-provider/copilotkit-props.js.map [22m[32m1.80 KB[39m
|
|
166
|
-
[32mCJS[39m [1mdist/components/copilot-provider/copilotkit.js.map [22m[32m30.01 KB[39m
|
|
167
|
-
[32mCJS[39m [1mdist/components/copilot-provider/index.js.map [22m[32m30.21 KB[39m
|
|
168
|
-
[32mCJS[39m ⚡️ Build success in 109ms
|
|
168
|
+
[32mESM[39m ⚡️ Build success in 99ms
|
|
169
169
|
[34mDTS[39m Build start
|
|
170
|
-
[32mDTS[39m ⚡️ Build success in
|
|
170
|
+
[32mDTS[39m ⚡️ Build success in 4953ms
|
|
171
171
|
[32mDTS[39m [1mdist/index.d.ts [22m[32m1.38 KB[39m
|
|
172
172
|
[32mDTS[39m [1mdist/components/copilot-provider/copilotkit.d.ts [22m[32m271.00 B[39m
|
|
173
|
-
[32mDTS[39m [1mdist/components/copilot-provider/copilotkit-props.d.ts [22m[32m1.
|
|
174
|
-
[32mDTS[39m [1mdist/context/copilot-context.d.ts [22m[32m3.
|
|
173
|
+
[32mDTS[39m [1mdist/components/copilot-provider/copilotkit-props.d.ts [22m[32m1.66 KB[39m
|
|
174
|
+
[32mDTS[39m [1mdist/context/copilot-context.d.ts [22m[32m3.42 KB[39m
|
|
175
175
|
[32mDTS[39m [1mdist/hooks/use-copilot-chat.d.ts [22m[32m1.64 KB[39m
|
|
176
176
|
[32mDTS[39m [1mdist/hooks/use-make-copilot-actionable.d.ts [22m[32m309.00 B[39m
|
|
177
177
|
[32mDTS[39m [1mdist/hooks/use-copilot-action.d.ts [22m[32m286.00 B[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,28 +1,22 @@
|
|
|
1
1
|
# ui
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 1.0.0-beta.0
|
|
4
4
|
|
|
5
|
-
###
|
|
6
|
-
|
|
7
|
-
- Fix: Missing server action results
|
|
8
|
-
|
|
9
|
-
### Patch Changes
|
|
5
|
+
### Major Changes
|
|
10
6
|
|
|
11
|
-
-
|
|
12
|
-
- @copilotkit/runtime-client-gql@0.38.0-mme-alpha.1
|
|
13
|
-
- @copilotkit/shared@0.38.0-mme-alpha.1
|
|
14
|
-
|
|
15
|
-
## 0.38.0-mme-alpha.0
|
|
16
|
-
|
|
17
|
-
### Minor Changes
|
|
7
|
+
- V1.0 Release Candidate
|
|
18
8
|
|
|
19
|
-
-
|
|
9
|
+
- A robust new protocol between the frontend and the Copilot Runtime
|
|
10
|
+
- Support for Copilot Cloud
|
|
11
|
+
- Generative UI
|
|
12
|
+
- Support for LangChain universal tool calling
|
|
13
|
+
- OpenAI assistant API streaming
|
|
20
14
|
|
|
21
15
|
### Patch Changes
|
|
22
16
|
|
|
23
17
|
- Updated dependencies
|
|
24
|
-
- @copilotkit/runtime-client-gql@0.
|
|
25
|
-
- @copilotkit/shared@0.
|
|
18
|
+
- @copilotkit/runtime-client-gql@1.0.0-beta.0
|
|
19
|
+
- @copilotkit/shared@1.0.0-beta.0
|
|
26
20
|
|
|
27
21
|
## 0.37.0
|
|
28
22
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
defaultCopilotContextCategories
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DDHJCFFV.mjs";
|
|
4
4
|
import {
|
|
5
5
|
useChat
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PHMHNAYC.mjs";
|
|
7
7
|
import {
|
|
8
8
|
CopilotContext
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-K6EV2CNB.mjs";
|
|
10
10
|
import {
|
|
11
11
|
__objRest,
|
|
12
12
|
__spreadProps,
|
|
@@ -104,4 +104,4 @@ export {
|
|
|
104
104
|
useCopilotChat,
|
|
105
105
|
defaultSystemMessage
|
|
106
106
|
};
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
107
|
+
//# sourceMappingURL=chunk-5CKW6KE7.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CopilotContext
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K6EV2CNB.mjs";
|
|
4
4
|
|
|
5
5
|
// src/hooks/use-make-copilot-document-readable.ts
|
|
6
6
|
import { useContext, useEffect, useRef } from "react";
|
|
@@ -20,4 +20,4 @@ function useMakeCopilotDocumentReadable(document, categories, dependencies = [])
|
|
|
20
20
|
export {
|
|
21
21
|
useMakeCopilotDocumentReadable
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
23
|
+
//# sourceMappingURL=chunk-7GPIOOXB.mjs.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-YWITCRBI.mjs";
|
|
7
7
|
import {
|
|
8
8
|
CopilotContext
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-K6EV2CNB.mjs";
|
|
10
10
|
import {
|
|
11
11
|
__async,
|
|
12
12
|
__objRest,
|
|
@@ -129,7 +129,7 @@ ${nonDocumentStrings}`;
|
|
|
129
129
|
chatApiEndpoint,
|
|
130
130
|
chatApiEndpointV2: `${props.url}/v2`,
|
|
131
131
|
headers: props.headers || {},
|
|
132
|
-
|
|
132
|
+
properties: props.properties || {},
|
|
133
133
|
transcribeAudioUrl: props.transcribeAudioUrl,
|
|
134
134
|
textToSpeechUrl: props.textToSpeechUrl,
|
|
135
135
|
credentials: props.credentials
|
|
@@ -192,4 +192,4 @@ export {
|
|
|
192
192
|
CopilotKit,
|
|
193
193
|
defaultCopilotContextCategories
|
|
194
194
|
};
|
|
195
|
-
//# sourceMappingURL=chunk-
|
|
195
|
+
//# sourceMappingURL=chunk-DDHJCFFV.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/copilot-provider/copilotkit.tsx"],"sourcesContent":["/**\n * Provides the Copilot context to its children.\n * \n * <img\n * referrerPolicy=\"no-referrer-when-downgrade\"\n * src=\"https://static.scarf.sh/a.png?x-pxid=a9b290bb-38f9-4518-ac3b-8f54fdbf43be\"\n * />\n * \n * This component provides the Copilot context to its children.\n * It can be configured either with a chat API endpoint or a `CopilotApiConfig`.\n * \n * <Note>\n * The backend can use OpenAI, or you can bring your own LLM. For examples of the\n * backend api implementation, see `examples/next-openai` or the [runtime\n * docs](https://docs.copilotkit.ai/getting-started/quickstart-runtime).\n * </Note>\n * \n * <RequestExample>\n * ```jsx CopilotKit Example\n * import { CopilotKit } from \"@copilotkit/react-core\";\n * \n * <CopilotKit \n * runtimeUrl=\"https://your.copilotkit.api\">\n * <YourApp/>\n * </CopilotKit>\n * ```\n * </RequestExample>\n * \n * ## Example usage\n * \n * ```jsx\n * <CopilotKit publicApiKey=\"the api key or self host (see below)\">\n * <App />\n * </CopilotKit>\n```\n */\nimport { Ref, useCallback, useRef, useState } from \"react\";\nimport {\n CopilotContext,\n CopilotApiConfig,\n InChatRenderFunction,\n} from \"../../context/copilot-context\";\nimport useTree from \"../../hooks/use-tree\";\nimport { CopilotChatSuggestionConfiguration, DocumentPointer } from \"../../types\";\n\nimport {\n COPILOT_CLOUD_CHAT_URL,\n CopilotCloudConfig,\n FunctionCallHandler,\n} from \"@copilotkit/shared\";\nimport { Message } from \"@copilotkit/runtime-client-gql\";\n\nimport { FrontendAction } from \"../../types/frontend-action\";\nimport useFlatCategoryStore from \"../../hooks/use-flat-category-store\";\nimport { CopilotKitProps } from \"./copilotkit-props\";\n\nexport function CopilotKit({ children, ...props }: CopilotKitProps) {\n // Compute all the functions and properties that we need to pass\n // to the CopilotContext.\n\n if (!props.runtimeUrl && !props.url && !props.publicApiKey) {\n throw new Error(\"Please provide either a url or a publicApiKey to the CopilotKit component.\");\n }\n\n const chatApiEndpoint = props.runtimeUrl || props.url || COPILOT_CLOUD_CHAT_URL;\n\n const [actions, setActions] = useState<Record<string, FrontendAction<any>>>({});\n const chatComponentsCache = useRef<Record<string, InChatRenderFunction | string>>({});\n const { addElement, removeElement, printTree } = useTree();\n const [messages, setMessages] = useState<Message[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [chatInstructions, setChatInstructions] = useState(\"\");\n\n const {\n addElement: addDocument,\n removeElement: removeDocument,\n allElements: allDocuments,\n } = useFlatCategoryStore<DocumentPointer>();\n\n const setAction = useCallback((id: string, action: FrontendAction<any>) => {\n setActions((prevPoints) => {\n return {\n ...prevPoints,\n [id]: action,\n };\n });\n }, []);\n\n const removeAction = useCallback((id: string) => {\n setActions((prevPoints) => {\n const newPoints = { ...prevPoints };\n delete newPoints[id];\n return newPoints;\n });\n }, []);\n\n const getContextString = useCallback(\n (documents: DocumentPointer[], categories: string[]) => {\n const documentsString = documents\n .map((document) => {\n return `${document.name} (${document.sourceApplication}):\\n${document.getContents()}`;\n })\n .join(\"\\n\\n\");\n\n const nonDocumentStrings = printTree(categories);\n\n return `${documentsString}\\n\\n${nonDocumentStrings}`;\n },\n [printTree],\n );\n\n const addContext = useCallback(\n (\n context: string,\n parentId?: string,\n categories: string[] = defaultCopilotContextCategories,\n ) => {\n return addElement(context, categories, parentId);\n },\n [addElement],\n );\n\n const removeContext = useCallback(\n (id: string) => {\n removeElement(id);\n },\n [removeElement],\n );\n\n const getFunctionCallHandler = useCallback(\n (customEntryPoints?: Record<string, FrontendAction<any>>) => {\n return entryPointsToFunctionCallHandler(Object.values(customEntryPoints || actions));\n },\n [actions],\n );\n\n const getDocumentsContext = useCallback(\n (categories: string[]) => {\n return allDocuments(categories);\n },\n [allDocuments],\n );\n\n const addDocumentContext = useCallback(\n (documentPointer: DocumentPointer, categories: string[] = defaultCopilotContextCategories) => {\n return addDocument(documentPointer, categories);\n },\n [addDocument],\n );\n\n const removeDocumentContext = useCallback(\n (documentId: string) => {\n removeDocument(documentId);\n },\n [removeDocument],\n );\n\n if (!props.publicApiKey) {\n if (props.cloudRestrictToTopic) {\n throw new Error(\n \"To use the cloudRestrictToTopic feature, please sign up at https://copilotkit.ai and provide a publicApiKey.\",\n );\n }\n }\n\n let cloud: CopilotCloudConfig | undefined = undefined;\n if (props.publicApiKey) {\n cloud = {\n guardrails: {\n input: {\n restrictToTopic: {\n enabled: props.cloudRestrictToTopic ? true : false,\n validTopics: props.cloudRestrictToTopic?.validTopics || [],\n invalidTopics: props.cloudRestrictToTopic?.invalidTopics || [],\n },\n },\n },\n };\n }\n\n // get the appropriate CopilotApiConfig from the props\n const copilotApiConfig: CopilotApiConfig = {\n publicApiKey: props.publicApiKey,\n ...(cloud ? { cloud } : {}),\n chatApiEndpoint: chatApiEndpoint,\n chatApiEndpointV2: `${props.url}/v2`,\n headers: props.headers || {},\n body: {\n ...props.body,\n ...props.backendOnlyProps,\n },\n transcribeAudioUrl: props.transcribeAudioUrl,\n textToSpeechUrl: props.textToSpeechUrl,\n credentials: props.credentials,\n };\n\n const [chatSuggestionConfiguration, setChatSuggestionConfiguration] = useState<{\n [key: string]: CopilotChatSuggestionConfiguration;\n }>({});\n\n const addChatSuggestionConfiguration = (\n id: string,\n suggestion: CopilotChatSuggestionConfiguration,\n ) => {\n setChatSuggestionConfiguration((prev) => ({ ...prev, [id]: suggestion }));\n };\n\n const removeChatSuggestionConfiguration = (id: string) => {\n setChatSuggestionConfiguration((prev) => {\n const { [id]: _, ...rest } = prev;\n return rest;\n });\n };\n\n return (\n <CopilotContext.Provider\n value={{\n actions,\n chatComponentsCache,\n getFunctionCallHandler,\n setAction,\n removeAction,\n getContextString,\n addContext,\n removeContext,\n getDocumentsContext,\n addDocumentContext,\n removeDocumentContext,\n copilotApiConfig: copilotApiConfig,\n messages,\n setMessages,\n isLoading,\n setIsLoading,\n chatSuggestionConfiguration,\n addChatSuggestionConfiguration,\n removeChatSuggestionConfiguration,\n chatInstructions,\n setChatInstructions,\n }}\n >\n {children}\n </CopilotContext.Provider>\n );\n}\n\nexport const defaultCopilotContextCategories = [\"global\"];\n\nfunction entryPointsToFunctionCallHandler(actions: FrontendAction<any>[]): FunctionCallHandler {\n return async ({ messages, name, args }) => {\n let actionsByFunctionName: Record<string, FrontendAction<any>> = {};\n for (let action of actions) {\n actionsByFunctionName[action.name] = action;\n }\n\n const action = actionsByFunctionName[name];\n if (action) {\n return await action.handler(args);\n }\n };\n}\n"],"mappings":"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","names":["_a","_b","action"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/copilot-provider/copilotkit.tsx"],"sourcesContent":["/**\n * Provides the Copilot context to its children.\n * \n * <img\n * referrerPolicy=\"no-referrer-when-downgrade\"\n * src=\"https://static.scarf.sh/a.png?x-pxid=a9b290bb-38f9-4518-ac3b-8f54fdbf43be\"\n * />\n * \n * This component provides the Copilot context to its children.\n * It can be configured either with a chat API endpoint or a `CopilotApiConfig`.\n * \n * <Note>\n * The backend can use OpenAI, or you can bring your own LLM. For examples of the\n * backend api implementation, see `examples/next-openai` or the [runtime\n * docs](https://docs.copilotkit.ai/getting-started/quickstart-runtime).\n * </Note>\n * \n * <RequestExample>\n * ```jsx CopilotKit Example\n * import { CopilotKit } from \"@copilotkit/react-core\";\n * \n * <CopilotKit \n * runtimeUrl=\"https://your.copilotkit.api\">\n * <YourApp/>\n * </CopilotKit>\n * ```\n * </RequestExample>\n * \n * ## Example usage\n * \n * ```jsx\n * <CopilotKit publicApiKey=\"the api key or self host (see below)\">\n * <App />\n * </CopilotKit>\n```\n */\nimport { Ref, useCallback, useRef, useState } from \"react\";\nimport {\n CopilotContext,\n CopilotApiConfig,\n InChatRenderFunction,\n} from \"../../context/copilot-context\";\nimport useTree from \"../../hooks/use-tree\";\nimport { CopilotChatSuggestionConfiguration, DocumentPointer } from \"../../types\";\n\nimport {\n COPILOT_CLOUD_CHAT_URL,\n CopilotCloudConfig,\n FunctionCallHandler,\n} from \"@copilotkit/shared\";\nimport { Message } from \"@copilotkit/runtime-client-gql\";\n\nimport { FrontendAction } from \"../../types/frontend-action\";\nimport useFlatCategoryStore from \"../../hooks/use-flat-category-store\";\nimport { CopilotKitProps } from \"./copilotkit-props\";\n\nexport function CopilotKit({ children, ...props }: CopilotKitProps) {\n // Compute all the functions and properties that we need to pass\n // to the CopilotContext.\n\n if (!props.runtimeUrl && !props.url && !props.publicApiKey) {\n throw new Error(\"Please provide either a url or a publicApiKey to the CopilotKit component.\");\n }\n\n const chatApiEndpoint = props.runtimeUrl || props.url || COPILOT_CLOUD_CHAT_URL;\n\n const [actions, setActions] = useState<Record<string, FrontendAction<any>>>({});\n const chatComponentsCache = useRef<Record<string, InChatRenderFunction | string>>({});\n const { addElement, removeElement, printTree } = useTree();\n const [messages, setMessages] = useState<Message[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [chatInstructions, setChatInstructions] = useState(\"\");\n\n const {\n addElement: addDocument,\n removeElement: removeDocument,\n allElements: allDocuments,\n } = useFlatCategoryStore<DocumentPointer>();\n\n const setAction = useCallback((id: string, action: FrontendAction<any>) => {\n setActions((prevPoints) => {\n return {\n ...prevPoints,\n [id]: action,\n };\n });\n }, []);\n\n const removeAction = useCallback((id: string) => {\n setActions((prevPoints) => {\n const newPoints = { ...prevPoints };\n delete newPoints[id];\n return newPoints;\n });\n }, []);\n\n const getContextString = useCallback(\n (documents: DocumentPointer[], categories: string[]) => {\n const documentsString = documents\n .map((document) => {\n return `${document.name} (${document.sourceApplication}):\\n${document.getContents()}`;\n })\n .join(\"\\n\\n\");\n\n const nonDocumentStrings = printTree(categories);\n\n return `${documentsString}\\n\\n${nonDocumentStrings}`;\n },\n [printTree],\n );\n\n const addContext = useCallback(\n (\n context: string,\n parentId?: string,\n categories: string[] = defaultCopilotContextCategories,\n ) => {\n return addElement(context, categories, parentId);\n },\n [addElement],\n );\n\n const removeContext = useCallback(\n (id: string) => {\n removeElement(id);\n },\n [removeElement],\n );\n\n const getFunctionCallHandler = useCallback(\n (customEntryPoints?: Record<string, FrontendAction<any>>) => {\n return entryPointsToFunctionCallHandler(Object.values(customEntryPoints || actions));\n },\n [actions],\n );\n\n const getDocumentsContext = useCallback(\n (categories: string[]) => {\n return allDocuments(categories);\n },\n [allDocuments],\n );\n\n const addDocumentContext = useCallback(\n (documentPointer: DocumentPointer, categories: string[] = defaultCopilotContextCategories) => {\n return addDocument(documentPointer, categories);\n },\n [addDocument],\n );\n\n const removeDocumentContext = useCallback(\n (documentId: string) => {\n removeDocument(documentId);\n },\n [removeDocument],\n );\n\n if (!props.publicApiKey) {\n if (props.cloudRestrictToTopic) {\n throw new Error(\n \"To use the cloudRestrictToTopic feature, please sign up at https://copilotkit.ai and provide a publicApiKey.\",\n );\n }\n }\n\n let cloud: CopilotCloudConfig | undefined = undefined;\n if (props.publicApiKey) {\n cloud = {\n guardrails: {\n input: {\n restrictToTopic: {\n enabled: props.cloudRestrictToTopic ? true : false,\n validTopics: props.cloudRestrictToTopic?.validTopics || [],\n invalidTopics: props.cloudRestrictToTopic?.invalidTopics || [],\n },\n },\n },\n };\n }\n\n // get the appropriate CopilotApiConfig from the props\n const copilotApiConfig: CopilotApiConfig = {\n publicApiKey: props.publicApiKey,\n ...(cloud ? { cloud } : {}),\n chatApiEndpoint: chatApiEndpoint,\n chatApiEndpointV2: `${props.url}/v2`,\n headers: props.headers || {},\n properties: props.properties || {},\n transcribeAudioUrl: props.transcribeAudioUrl,\n textToSpeechUrl: props.textToSpeechUrl,\n credentials: props.credentials,\n };\n\n const [chatSuggestionConfiguration, setChatSuggestionConfiguration] = useState<{\n [key: string]: CopilotChatSuggestionConfiguration;\n }>({});\n\n const addChatSuggestionConfiguration = (\n id: string,\n suggestion: CopilotChatSuggestionConfiguration,\n ) => {\n setChatSuggestionConfiguration((prev) => ({ ...prev, [id]: suggestion }));\n };\n\n const removeChatSuggestionConfiguration = (id: string) => {\n setChatSuggestionConfiguration((prev) => {\n const { [id]: _, ...rest } = prev;\n return rest;\n });\n };\n\n return (\n <CopilotContext.Provider\n value={{\n actions,\n chatComponentsCache,\n getFunctionCallHandler,\n setAction,\n removeAction,\n getContextString,\n addContext,\n removeContext,\n getDocumentsContext,\n addDocumentContext,\n removeDocumentContext,\n copilotApiConfig: copilotApiConfig,\n messages,\n setMessages,\n isLoading,\n setIsLoading,\n chatSuggestionConfiguration,\n addChatSuggestionConfiguration,\n removeChatSuggestionConfiguration,\n chatInstructions,\n setChatInstructions,\n }}\n >\n {children}\n </CopilotContext.Provider>\n );\n}\n\nexport const defaultCopilotContextCategories = [\"global\"];\n\nfunction entryPointsToFunctionCallHandler(actions: FrontendAction<any>[]): FunctionCallHandler {\n return async ({ messages, name, args }) => {\n let actionsByFunctionName: Record<string, FrontendAction<any>> = {};\n for (let action of actions) {\n actionsByFunctionName[action.name] = action;\n }\n\n const action = actionsByFunctionName[name];\n if (action) {\n return await action.handler(args);\n }\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAoCA,SAAc,aAAa,QAAQ,gBAAgB;AASnD;AAAA,EACE;AAAA,OAGK;AAmKH;AA5JG,SAAS,WAAW,IAAyC;AAAzC,eAAE,WAxD7B,IAwD2B,IAAe,kBAAf,IAAe,CAAb;AAxD7B,MAAAA,KAAAC;AA4DE,MAAI,CAAC,MAAM,cAAc,CAAC,MAAM,OAAO,CAAC,MAAM,cAAc;AAC1D,UAAM,IAAI,MAAM,4EAA4E;AAAA,EAC9F;AAEA,QAAM,kBAAkB,MAAM,cAAc,MAAM,OAAO;AAEzD,QAAM,CAAC,SAAS,UAAU,IAAI,SAA8C,CAAC,CAAC;AAC9E,QAAM,sBAAsB,OAAsD,CAAC,CAAC;AACpF,QAAM,EAAE,YAAY,eAAe,UAAU,IAAI,iBAAQ;AACzD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAoB,CAAC,CAAC;AACtD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAS,EAAE;AAE3D,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,aAAa;AAAA,EACf,IAAI,gCAAsC;AAE1C,QAAM,YAAY,YAAY,CAAC,IAAY,WAAgC;AACzE,eAAW,CAAC,eAAe;AACzB,aAAO,iCACF,aADE;AAAA,QAEL,CAAC,EAAE,GAAG;AAAA,MACR;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,eAAe,YAAY,CAAC,OAAe;AAC/C,eAAW,CAAC,eAAe;AACzB,YAAM,YAAY,mBAAK;AACvB,aAAO,UAAU,EAAE;AACnB,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,mBAAmB;AAAA,IACvB,CAAC,WAA8B,eAAyB;AACtD,YAAM,kBAAkB,UACrB,IAAI,CAAC,aAAa;AACjB,eAAO,GAAG,SAAS,SAAS,SAAS;AAAA,EAAwB,SAAS,YAAY;AAAA,MACpF,CAAC,EACA,KAAK,MAAM;AAEd,YAAM,qBAAqB,UAAU,UAAU;AAE/C,aAAO,GAAG;AAAA;AAAA,EAAsB;AAAA,IAClC;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAEA,QAAM,aAAa;AAAA,IACjB,CACE,SACA,UACA,aAAuB,oCACpB;AACH,aAAO,WAAW,SAAS,YAAY,QAAQ;AAAA,IACjD;AAAA,IACA,CAAC,UAAU;AAAA,EACb;AAEA,QAAM,gBAAgB;AAAA,IACpB,CAAC,OAAe;AACd,oBAAc,EAAE;AAAA,IAClB;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AAEA,QAAM,yBAAyB;AAAA,IAC7B,CAAC,sBAA4D;AAC3D,aAAO,iCAAiC,OAAO,OAAO,qBAAqB,OAAO,CAAC;AAAA,IACrF;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,QAAM,sBAAsB;AAAA,IAC1B,CAAC,eAAyB;AACxB,aAAO,aAAa,UAAU;AAAA,IAChC;AAAA,IACA,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,qBAAqB;AAAA,IACzB,CAAC,iBAAkC,aAAuB,oCAAoC;AAC5F,aAAO,YAAY,iBAAiB,UAAU;AAAA,IAChD;AAAA,IACA,CAAC,WAAW;AAAA,EACd;AAEA,QAAM,wBAAwB;AAAA,IAC5B,CAAC,eAAuB;AACtB,qBAAe,UAAU;AAAA,IAC3B;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAEA,MAAI,CAAC,MAAM,cAAc;AACvB,QAAI,MAAM,sBAAsB;AAC9B,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,MAAI,QAAwC;AAC5C,MAAI,MAAM,cAAc;AACtB,YAAQ;AAAA,MACN,YAAY;AAAA,QACV,OAAO;AAAA,UACL,iBAAiB;AAAA,YACf,SAAS,MAAM,uBAAuB,OAAO;AAAA,YAC7C,eAAaD,MAAA,MAAM,yBAAN,gBAAAA,IAA4B,gBAAe,CAAC;AAAA,YACzD,iBAAeC,MAAA,MAAM,yBAAN,gBAAAA,IAA4B,kBAAiB,CAAC;AAAA,UAC/D;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,QAAM,mBAAqC;AAAA,IACzC,cAAc,MAAM;AAAA,KAChB,QAAQ,EAAE,MAAM,IAAI,CAAC,IAFgB;AAAA,IAGzC;AAAA,IACA,mBAAmB,GAAG,MAAM;AAAA,IAC5B,SAAS,MAAM,WAAW,CAAC;AAAA,IAC3B,YAAY,MAAM,cAAc,CAAC;AAAA,IACjC,oBAAoB,MAAM;AAAA,IAC1B,iBAAiB,MAAM;AAAA,IACvB,aAAa,MAAM;AAAA,EACrB;AAEA,QAAM,CAAC,6BAA6B,8BAA8B,IAAI,SAEnE,CAAC,CAAC;AAEL,QAAM,iCAAiC,CACrC,IACA,eACG;AACH,mCAA+B,CAAC,SAAU,iCAAK,OAAL,EAAW,CAAC,EAAE,GAAG,WAAW,EAAE;AAAA,EAC1E;AAEA,QAAM,oCAAoC,CAAC,OAAe;AACxD,mCAA+B,CAAC,SAAS;AACvC,YAA6BD,MAAA,MAApB,EA9Mf,CA8Me,KAAK,EA9MpB,IA8MmCA,KAAT,iBAASA,KAAT,CAAX;AACT,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SACE;AAAA,IAAC,eAAe;AAAA,IAAf;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAEO,IAAM,kCAAkC,CAAC,QAAQ;AAExD,SAAS,iCAAiC,SAAqD;AAC7F,SAAO,CAAO,OAA6B,eAA7B,KAA6B,WAA7B,EAAE,UAAU,MAAM,KAAK,GAAM;AACzC,QAAI,wBAA6D,CAAC;AAClE,aAASE,WAAU,SAAS;AAC1B,4BAAsBA,QAAO,IAAI,IAAIA;AAAA,IACvC;AAEA,UAAM,SAAS,sBAAsB,IAAI;AACzC,QAAI,QAAQ;AACV,aAAO,MAAM,OAAO,QAAQ,IAAI;AAAA,IAClC;AAAA,EACF;AACF;","names":["_a","_b","action"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CopilotContext
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K6EV2CNB.mjs";
|
|
4
4
|
|
|
5
5
|
// src/hooks/use-make-copilot-actionable.ts
|
|
6
6
|
import { useRef, useContext, useEffect, useMemo } from "react";
|
|
@@ -30,4 +30,4 @@ function useMakeCopilotActionable(annotatedFunction, dependencies) {
|
|
|
30
30
|
export {
|
|
31
31
|
useMakeCopilotActionable
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=chunk-
|
|
33
|
+
//# sourceMappingURL=chunk-IQCLNCGL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/context/copilot-context.tsx"],"sourcesContent":["import { CopilotCloudConfig, FunctionCallHandler } from \"@copilotkit/shared\";\nimport { Message } from \"@copilotkit/runtime-client-gql\";\nimport { ActionRenderProps, FrontendAction } from \"../types/frontend-action\";\nimport React from \"react\";\nimport { TreeNodeId } from \"../hooks/use-tree\";\nimport { DocumentPointer } from \"../types\";\nimport { CopilotChatSuggestionConfiguration } from \"../types/chat-suggestion-configuration\";\n\n/**\n * Interface for the configuration of the Copilot API.\n */\nexport interface CopilotApiConfig {\n /**\n * The public API key for Copilot Cloud.\n */\n publicApiKey?: string;\n\n /**\n * The configuration for Copilot Cloud.\n */\n cloud?: CopilotCloudConfig;\n\n /**\n * The endpoint for the chat API.\n */\n chatApiEndpoint: string;\n\n /**\n * The endpoint for the Copilot transcribe audio service.\n */\n transcribeAudioUrl?: string;\n\n /**\n * The endpoint for the Copilot text to speech service.\n */\n textToSpeechUrl?: string;\n\n /**\n * The endpoint for the chat API v2.\n */\n chatApiEndpointV2: string;\n\n /**\n * additional headers to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'Authorization': 'Bearer your_token_here'\n * }\n * ```\n */\n headers: Record<string, string>;\n\n /**\n * Custom properties to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'user_id': 'user_id'\n * }\n * ```\n */\n properties?: Record<string, any>;\n\n /**\n * Indicates whether the user agent should send or receive cookies from the other domain\n * in the case of cross-origin requests.\n */\n credentials?: RequestCredentials;\n}\n\nexport type InChatRenderFunction = (props: ActionRenderProps<any>) => string | JSX.Element;\n\nexport interface CopilotContextParams {\n // function-calling\n actions: Record<string, FrontendAction<any>>;\n setAction: (id: string, action: FrontendAction<any>) => void;\n removeAction: (id: string) => void;\n chatComponentsCache: React.RefObject<Record<string, InChatRenderFunction | string>>;\n\n getFunctionCallHandler: (\n customEntryPoints?: Record<string, FrontendAction<any>>,\n ) => FunctionCallHandler;\n\n // text context\n addContext: (context: string, parentId?: string, categories?: string[]) => TreeNodeId;\n removeContext: (id: TreeNodeId) => void;\n getContextString: (documents: DocumentPointer[], categories: string[]) => string;\n\n // document context\n addDocumentContext: (documentPointer: DocumentPointer, categories?: string[]) => TreeNodeId;\n removeDocumentContext: (documentId: string) => void;\n getDocumentsContext: (categories: string[]) => DocumentPointer[];\n\n // chat\n messages: Message[];\n setMessages: React.Dispatch<React.SetStateAction<Message[]>>;\n\n isLoading: boolean;\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\n chatSuggestionConfiguration: { [key: string]: CopilotChatSuggestionConfiguration };\n addChatSuggestionConfiguration: (\n id: string,\n suggestion: CopilotChatSuggestionConfiguration,\n ) => void;\n removeChatSuggestionConfiguration: (id: string) => void;\n\n chatInstructions: string;\n setChatInstructions: React.Dispatch<React.SetStateAction<string>>;\n\n // api endpoints\n copilotApiConfig: CopilotApiConfig;\n}\n\nconst emptyCopilotContext: CopilotContextParams = {\n actions: {},\n setAction: () => {},\n removeAction: () => {},\n\n chatComponentsCache: { current: {} },\n getContextString: (documents: DocumentPointer[], categories: string[]) =>\n returnAndThrowInDebug(\"\"),\n addContext: () => \"\",\n removeContext: () => {},\n\n getFunctionCallHandler: () => returnAndThrowInDebug(async () => {}),\n\n messages: [],\n setMessages: () => returnAndThrowInDebug([]),\n\n isLoading: false,\n setIsLoading: () => returnAndThrowInDebug(false),\n\n chatInstructions: \"\",\n setChatInstructions: () => returnAndThrowInDebug(\"\"),\n\n getDocumentsContext: (categories: string[]) => returnAndThrowInDebug([]),\n addDocumentContext: () => returnAndThrowInDebug(\"\"),\n removeDocumentContext: () => {},\n\n copilotApiConfig: new (class implements CopilotApiConfig {\n get chatApiEndpoint(): string {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n get chatApiEndpointV2(): string {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n get headers(): Record<string, string> {\n return {};\n }\n get body(): Record<string, any> {\n return {};\n }\n })(),\n\n chatSuggestionConfiguration: {},\n addChatSuggestionConfiguration: () => {},\n removeChatSuggestionConfiguration: () => {},\n};\n\nexport const CopilotContext = React.createContext<CopilotContextParams>(emptyCopilotContext);\n\nexport function useCopilotContext(): CopilotContextParams {\n return React.useContext(CopilotContext);\n}\n\nfunction returnAndThrowInDebug<T>(value: T): T {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n return value;\n}\n"],"mappings":";;;;;AAGA,OAAO,WAAW;AAkHlB,IAAM,sBAA4C;AAAA,EAChD,SAAS,CAAC;AAAA,EACV,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,cAAc,MAAM;AAAA,EAAC;AAAA,EAErB,qBAAqB,EAAE,SAAS,CAAC,EAAE;AAAA,EACnC,kBAAkB,CAAC,WAA8B,eAC/C,sBAAsB,EAAE;AAAA,EAC1B,YAAY,MAAM;AAAA,EAClB,eAAe,MAAM;AAAA,EAAC;AAAA,EAEtB,wBAAwB,MAAM,sBAAsB,MAAY;AAAA,EAAC,EAAC;AAAA,EAElE,UAAU,CAAC;AAAA,EACX,aAAa,MAAM,sBAAsB,CAAC,CAAC;AAAA,EAE3C,WAAW;AAAA,EACX,cAAc,MAAM,sBAAsB,KAAK;AAAA,EAE/C,kBAAkB;AAAA,EAClB,qBAAqB,MAAM,sBAAsB,EAAE;AAAA,EAEnD,qBAAqB,CAAC,eAAyB,sBAAsB,CAAC,CAAC;AAAA,EACvE,oBAAoB,MAAM,sBAAsB,EAAE;AAAA,EAClD,uBAAuB,MAAM;AAAA,EAAC;AAAA,EAE9B,kBAAkB,IAAK,MAAkC;AAAA,IACvD,IAAI,kBAA0B;AAC5B,YAAM,IAAI,MAAM,uEAAuE;AAAA,IACzF;AAAA,IACA,IAAI,oBAA4B;AAC9B,YAAM,IAAI,MAAM,uEAAuE;AAAA,IACzF;AAAA,IACA,IAAI,UAAkC;AACpC,aAAO,CAAC;AAAA,IACV;AAAA,IACA,IAAI,OAA4B;AAC9B,aAAO,CAAC;AAAA,IACV;AAAA,EACF,EAAG;AAAA,EAEH,6BAA6B,CAAC;AAAA,EAC9B,gCAAgC,MAAM;AAAA,EAAC;AAAA,EACvC,mCAAmC,MAAM;AAAA,EAAC;AAC5C;AAEO,IAAM,iBAAiB,MAAM,cAAoC,mBAAmB;AAEpF,SAAS,oBAA0C;AACxD,SAAO,MAAM,WAAW,cAAc;AACxC;AAEA,SAAS,sBAAyB,OAAa;AAC7C,QAAM,IAAI,MAAM,uEAAuE;AACvF,SAAO;AACT;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CopilotContext
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-K6EV2CNB.mjs";
|
|
4
4
|
|
|
5
5
|
// src/hooks/use-copilot-action.ts
|
|
6
6
|
import { useRef, useContext, useEffect } from "react";
|
|
@@ -44,4 +44,4 @@ function useCopilotAction(action, dependencies) {
|
|
|
44
44
|
export {
|
|
45
45
|
useCopilotAction
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-LZVHW3T3.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
defaultCopilotContextCategories
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DDHJCFFV.mjs";
|
|
4
4
|
import {
|
|
5
5
|
__async
|
|
6
6
|
} from "./chunk-SKC7AJIV.mjs";
|
|
@@ -51,16 +51,19 @@ var CopilotTask = class {
|
|
|
51
51
|
publicApiKey: context.copilotApiConfig.publicApiKey,
|
|
52
52
|
headers: context.copilotApiConfig.headers
|
|
53
53
|
});
|
|
54
|
-
const response = yield runtimeClient.generateCopilotResponse(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
const response = yield runtimeClient.generateCopilotResponse(
|
|
55
|
+
{
|
|
56
|
+
frontend: {
|
|
57
|
+
actions: Object.values(actions).map((action) => ({
|
|
58
|
+
name: action.name,
|
|
59
|
+
description: action.description || "",
|
|
60
|
+
jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters || []))
|
|
61
|
+
}))
|
|
62
|
+
},
|
|
63
|
+
messages: convertMessagesToGqlInput(messages)
|
|
61
64
|
},
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
context.copilotApiConfig.properties
|
|
66
|
+
).toPromise();
|
|
64
67
|
const functionCallHandler = context.getFunctionCallHandler(actions);
|
|
65
68
|
const functionCalls = convertGqlOutputToMessages(
|
|
66
69
|
((_b = (_a = response.data) == null ? void 0 : _a.generateCopilotResponse) == null ? void 0 : _b.messages) || []
|
|
@@ -104,4 +107,4 @@ ${instructions}
|
|
|
104
107
|
export {
|
|
105
108
|
CopilotTask
|
|
106
109
|
};
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
110
|
+
//# sourceMappingURL=chunk-NY6QSOU7.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/copilot-task.ts"],"sourcesContent":["/**\n * Execute one-off tasks using Copilot intelligence.\n *\n * <img referrerPolicy=\"no-referrer-when-downgrade\" src=\"https://static.scarf.sh/a.png?x-pxid=a9b290bb-38f9-4518-ac3b-8f54fdbf43be\" />\n *\n * This class is used to execute one-off tasks, for example on button press. It\n * can use the context available via [useCopilotReadable](../useCopilotReadable)\n * and the actions provided by [useCopilotAction](../useCopilotAction), or\n * you can provide your own context and actions.\n *\n * <RequestExample>\n * ```jsx CopilotTask Example\n * import {\n * CopilotTask,\n * useCopilotContext\n * } from \"@copilotkit/react-core\";\n *\n * const task = new CopilotTask({\n * instructions: \"Set a random message\",\n * actions: [\n * {\n * name: \"setMessage\",\n * description: \"Set the message.\",\n * argumentAnnotations: [\n * {\n * name: \"message\",\n * type: \"string\",\n * description:\n * \"A message to display.\",\n * required: true,\n * },\n * ],\n *\n * implementation: async (message) => {\n * // ...\n * },\n * }\n * ]\n * });\n * const context = useCopilotContext();\n * await task.run(context);\n * ```\n * </RequestExample>\n *\n * In the simplest case, use CopilotTask in the context of your app by giving it instructions on what to do.\n *\n * ```jsx\n * import {\n * CopilotTask,\n * useCopilotContext\n * } from \"@copilotkit/react-core\";\n *\n * const randomSlideTask = new CopilotTask({\n * instructions: \"Make a random slide\",\n * });\n *\n * const context = useCopilotContext();\n *\n * return (\n * <button onClick={() => randomSlideTask.run(context)}>\n * Make a random slide\n * </button>\n * );\n * ```\n *\n * Have a look at the [Presentation example](https://github.com/CopilotKit/CopilotKit/blob/main/CopilotKit/examples/next-openai/src/app/presentation/page.tsx)\n * for a more complete example.\n *\n * It's also possible to provide your own context and actions. In addition, you can specify to ignore\n * `useCopilotReadable` and `useCopilotAction`.\n *\n * ```jsx\n * import {\n * CopilotTask,\n * useCopilotContext\n * } from \"@copilotkit/react-core\";\n *\n * const standaloneTask = new CopilotTask({\n * instructions: \"Do something standalone\",\n * data: [...],\n * actions: [...],\n * includeCopilotReadable: false, // Don't use current context\n * includeCopilotActions: false, // Don't use current actions\n * });\n *\n * const context = useCopilotContext();\n *\n * standaloneTask.run(context);\n * ```\n */\n\nimport {\n ActionExecutionMessage,\n CopilotRuntimeClient,\n Message,\n Role,\n TextMessage,\n convertGqlOutputToMessages,\n convertMessagesToGqlInput,\n} from \"@copilotkit/runtime-client-gql\";\nimport { FrontendAction } from \"../types/frontend-action\";\nimport { CopilotContextParams } from \"../context\";\nimport { defaultCopilotContextCategories } from \"../components\";\nimport { MessageStatusCode } from \"@copilotkit/runtime-client-gql\";\nimport { actionParametersToJsonSchema } from \"@copilotkit/shared\";\n\nexport interface CopilotTaskConfig {\n /**\n * The instructions to be given to the assistant.\n */\n instructions: string;\n /**\n * An array of action definitions that can be called.\n */\n actions?: FrontendAction<any>[];\n /**\n * Whether to include the copilot readable context in the task.\n */\n includeCopilotReadable?: boolean;\n\n /**\n * Whether to include actions defined via useCopilotAction in the task.\n * @deprecated Use the `includeCopilotActions` property instead.\n */\n includeCopilotActionable?: boolean;\n\n /**\n * Whether to include actions defined via useCopilotAction in the task.\n */\n includeCopilotActions?: boolean;\n}\n\nexport class CopilotTask<T = any> {\n private instructions: string;\n private actions: FrontendAction<any>[];\n private includeCopilotReadable: boolean;\n private includeCopilotActions: boolean;\n\n constructor(config: CopilotTaskConfig) {\n this.instructions = config.instructions;\n this.actions = config.actions || [];\n this.includeCopilotReadable = config.includeCopilotReadable !== false;\n this.includeCopilotActions =\n config.includeCopilotActions !== false && config.includeCopilotActionable !== false;\n }\n\n /**\n * Run the task.\n * @param context The CopilotContext to use for the task. Use `useCopilotContext` to obtain the current context.\n * @param data The data to use for the task.\n */\n async run(context: CopilotContextParams, data?: T): Promise<void> {\n const actions = this.includeCopilotActions ? Object.assign({}, context.actions) : {};\n\n // merge functions into entry points\n for (const fn of this.actions) {\n actions[fn.name] = fn;\n }\n\n let contextString = \"\";\n\n if (data) {\n contextString = (typeof data === \"string\" ? data : JSON.stringify(data)) + \"\\n\\n\";\n }\n\n if (this.includeCopilotReadable) {\n contextString += context.getContextString([], defaultCopilotContextCategories);\n }\n\n const systemMessage = new TextMessage({\n content: taskSystemMessage(contextString, this.instructions),\n role: Role.System,\n });\n\n const messages: Message[] = [systemMessage];\n\n const runtimeClient = new CopilotRuntimeClient({\n url: context.copilotApiConfig.chatApiEndpoint,\n publicApiKey: context.copilotApiConfig.publicApiKey,\n headers: context.copilotApiConfig.headers,\n });\n\n const response = await runtimeClient\n .generateCopilotResponse({\n
|
|
1
|
+
{"version":3,"sources":["../src/lib/copilot-task.ts"],"sourcesContent":["/**\n * Execute one-off tasks using Copilot intelligence.\n *\n * <img referrerPolicy=\"no-referrer-when-downgrade\" src=\"https://static.scarf.sh/a.png?x-pxid=a9b290bb-38f9-4518-ac3b-8f54fdbf43be\" />\n *\n * This class is used to execute one-off tasks, for example on button press. It\n * can use the context available via [useCopilotReadable](../useCopilotReadable)\n * and the actions provided by [useCopilotAction](../useCopilotAction), or\n * you can provide your own context and actions.\n *\n * <RequestExample>\n * ```jsx CopilotTask Example\n * import {\n * CopilotTask,\n * useCopilotContext\n * } from \"@copilotkit/react-core\";\n *\n * const task = new CopilotTask({\n * instructions: \"Set a random message\",\n * actions: [\n * {\n * name: \"setMessage\",\n * description: \"Set the message.\",\n * argumentAnnotations: [\n * {\n * name: \"message\",\n * type: \"string\",\n * description:\n * \"A message to display.\",\n * required: true,\n * },\n * ],\n *\n * implementation: async (message) => {\n * // ...\n * },\n * }\n * ]\n * });\n * const context = useCopilotContext();\n * await task.run(context);\n * ```\n * </RequestExample>\n *\n * In the simplest case, use CopilotTask in the context of your app by giving it instructions on what to do.\n *\n * ```jsx\n * import {\n * CopilotTask,\n * useCopilotContext\n * } from \"@copilotkit/react-core\";\n *\n * const randomSlideTask = new CopilotTask({\n * instructions: \"Make a random slide\",\n * });\n *\n * const context = useCopilotContext();\n *\n * return (\n * <button onClick={() => randomSlideTask.run(context)}>\n * Make a random slide\n * </button>\n * );\n * ```\n *\n * Have a look at the [Presentation example](https://github.com/CopilotKit/CopilotKit/blob/main/CopilotKit/examples/next-openai/src/app/presentation/page.tsx)\n * for a more complete example.\n *\n * It's also possible to provide your own context and actions. In addition, you can specify to ignore\n * `useCopilotReadable` and `useCopilotAction`.\n *\n * ```jsx\n * import {\n * CopilotTask,\n * useCopilotContext\n * } from \"@copilotkit/react-core\";\n *\n * const standaloneTask = new CopilotTask({\n * instructions: \"Do something standalone\",\n * data: [...],\n * actions: [...],\n * includeCopilotReadable: false, // Don't use current context\n * includeCopilotActions: false, // Don't use current actions\n * });\n *\n * const context = useCopilotContext();\n *\n * standaloneTask.run(context);\n * ```\n */\n\nimport {\n ActionExecutionMessage,\n CopilotRuntimeClient,\n Message,\n Role,\n TextMessage,\n convertGqlOutputToMessages,\n convertMessagesToGqlInput,\n} from \"@copilotkit/runtime-client-gql\";\nimport { FrontendAction } from \"../types/frontend-action\";\nimport { CopilotContextParams } from \"../context\";\nimport { defaultCopilotContextCategories } from \"../components\";\nimport { MessageStatusCode } from \"@copilotkit/runtime-client-gql\";\nimport { actionParametersToJsonSchema } from \"@copilotkit/shared\";\n\nexport interface CopilotTaskConfig {\n /**\n * The instructions to be given to the assistant.\n */\n instructions: string;\n /**\n * An array of action definitions that can be called.\n */\n actions?: FrontendAction<any>[];\n /**\n * Whether to include the copilot readable context in the task.\n */\n includeCopilotReadable?: boolean;\n\n /**\n * Whether to include actions defined via useCopilotAction in the task.\n * @deprecated Use the `includeCopilotActions` property instead.\n */\n includeCopilotActionable?: boolean;\n\n /**\n * Whether to include actions defined via useCopilotAction in the task.\n */\n includeCopilotActions?: boolean;\n}\n\nexport class CopilotTask<T = any> {\n private instructions: string;\n private actions: FrontendAction<any>[];\n private includeCopilotReadable: boolean;\n private includeCopilotActions: boolean;\n\n constructor(config: CopilotTaskConfig) {\n this.instructions = config.instructions;\n this.actions = config.actions || [];\n this.includeCopilotReadable = config.includeCopilotReadable !== false;\n this.includeCopilotActions =\n config.includeCopilotActions !== false && config.includeCopilotActionable !== false;\n }\n\n /**\n * Run the task.\n * @param context The CopilotContext to use for the task. Use `useCopilotContext` to obtain the current context.\n * @param data The data to use for the task.\n */\n async run(context: CopilotContextParams, data?: T): Promise<void> {\n const actions = this.includeCopilotActions ? Object.assign({}, context.actions) : {};\n\n // merge functions into entry points\n for (const fn of this.actions) {\n actions[fn.name] = fn;\n }\n\n let contextString = \"\";\n\n if (data) {\n contextString = (typeof data === \"string\" ? data : JSON.stringify(data)) + \"\\n\\n\";\n }\n\n if (this.includeCopilotReadable) {\n contextString += context.getContextString([], defaultCopilotContextCategories);\n }\n\n const systemMessage = new TextMessage({\n content: taskSystemMessage(contextString, this.instructions),\n role: Role.System,\n });\n\n const messages: Message[] = [systemMessage];\n\n const runtimeClient = new CopilotRuntimeClient({\n url: context.copilotApiConfig.chatApiEndpoint,\n publicApiKey: context.copilotApiConfig.publicApiKey,\n headers: context.copilotApiConfig.headers,\n });\n\n const response = await runtimeClient\n .generateCopilotResponse(\n {\n frontend: {\n actions: Object.values(actions).map((action) => ({\n name: action.name,\n description: action.description || \"\",\n jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters || [])),\n })),\n },\n messages: convertMessagesToGqlInput(messages),\n },\n context.copilotApiConfig.properties,\n )\n .toPromise();\n\n const functionCallHandler = context.getFunctionCallHandler(actions);\n const functionCalls = convertGqlOutputToMessages(\n response.data?.generateCopilotResponse?.messages || [],\n ).filter((m): m is ActionExecutionMessage => m instanceof ActionExecutionMessage);\n\n for (const functionCall of functionCalls) {\n await functionCallHandler({\n messages,\n name: functionCall.name,\n args: functionCall.arguments,\n });\n }\n }\n}\n\nfunction taskSystemMessage(contextString: string, instructions: string): string {\n return `\nPlease act as an efficient, competent, conscientious, and industrious professional assistant.\n\nHelp the user achieve their goals, and you do so in a way that is as efficient as possible, without unnecessary fluff, but also without sacrificing professionalism.\nAlways be polite and respectful, and prefer brevity over verbosity.\n\nThe user has provided you with the following context:\n\\`\\`\\`\n${contextString}\n\\`\\`\\`\n\nThey have also provided you with functions you can call to initiate actions on their behalf.\n\nPlease assist them as best you can.\n\nThis is not a conversation, so please do not ask questions. Just call a function without saying anything else.\n\nThe user has given you the following task to complete:\n\n\\`\\`\\`\n${instructions}\n\\`\\`\\`\n`;\n}\n"],"mappings":";;;;;;;;AA2FA;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAKP,SAAS,oCAAoC;AA4BtC,IAAM,cAAN,MAA2B;AAAA,EAMhC,YAAY,QAA2B;AACrC,SAAK,eAAe,OAAO;AAC3B,SAAK,UAAU,OAAO,WAAW,CAAC;AAClC,SAAK,yBAAyB,OAAO,2BAA2B;AAChE,SAAK,wBACH,OAAO,0BAA0B,SAAS,OAAO,6BAA6B;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,IAAI,SAA+B,MAAyB;AAAA;AAvJpE;AAwJI,YAAM,UAAU,KAAK,wBAAwB,OAAO,OAAO,CAAC,GAAG,QAAQ,OAAO,IAAI,CAAC;AAGnF,iBAAW,MAAM,KAAK,SAAS;AAC7B,gBAAQ,GAAG,IAAI,IAAI;AAAA,MACrB;AAEA,UAAI,gBAAgB;AAEpB,UAAI,MAAM;AACR,yBAAiB,OAAO,SAAS,WAAW,OAAO,KAAK,UAAU,IAAI,KAAK;AAAA,MAC7E;AAEA,UAAI,KAAK,wBAAwB;AAC/B,yBAAiB,QAAQ,iBAAiB,CAAC,GAAG,+BAA+B;AAAA,MAC/E;AAEA,YAAM,gBAAgB,IAAI,YAAY;AAAA,QACpC,SAAS,kBAAkB,eAAe,KAAK,YAAY;AAAA,QAC3D,MAAM,KAAK;AAAA,MACb,CAAC;AAED,YAAM,WAAsB,CAAC,aAAa;AAE1C,YAAM,gBAAgB,IAAI,qBAAqB;AAAA,QAC7C,KAAK,QAAQ,iBAAiB;AAAA,QAC9B,cAAc,QAAQ,iBAAiB;AAAA,QACvC,SAAS,QAAQ,iBAAiB;AAAA,MACpC,CAAC;AAED,YAAM,WAAW,MAAM,cACpB;AAAA,QACC;AAAA,UACE,UAAU;AAAA,YACR,SAAS,OAAO,OAAO,OAAO,EAAE,IAAI,CAAC,YAAY;AAAA,cAC/C,MAAM,OAAO;AAAA,cACb,aAAa,OAAO,eAAe;AAAA,cACnC,YAAY,KAAK,UAAU,6BAA6B,OAAO,cAAc,CAAC,CAAC,CAAC;AAAA,YAClF,EAAE;AAAA,UACJ;AAAA,UACA,UAAU,0BAA0B,QAAQ;AAAA,QAC9C;AAAA,QACA,QAAQ,iBAAiB;AAAA,MAC3B,EACC,UAAU;AAEb,YAAM,sBAAsB,QAAQ,uBAAuB,OAAO;AAClE,YAAM,gBAAgB;AAAA,UACpB,oBAAS,SAAT,mBAAe,4BAAf,mBAAwC,aAAY,CAAC;AAAA,MACvD,EAAE,OAAO,CAAC,MAAmC,aAAa,sBAAsB;AAEhF,iBAAW,gBAAgB,eAAe;AACxC,cAAM,oBAAoB;AAAA,UACxB;AAAA,UACA,MAAM,aAAa;AAAA,UACnB,MAAM,aAAa;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF;AAAA;AACF;AAEA,SAAS,kBAAkB,eAAuB,cAA8B;AAC9E,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA;AAAA;AAAA;AAGF;","names":[]}
|
|
@@ -79,7 +79,7 @@ function useChat(options) {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
} : {}),
|
|
82
|
-
|
|
82
|
+
copilotConfig.properties,
|
|
83
83
|
(_a = abortControllerRef.current) == null ? void 0 : _a.signal
|
|
84
84
|
)
|
|
85
85
|
);
|
|
@@ -189,4 +189,4 @@ function useChat(options) {
|
|
|
189
189
|
export {
|
|
190
190
|
useChat
|
|
191
191
|
};
|
|
192
|
-
//# sourceMappingURL=chunk-
|
|
192
|
+
//# sourceMappingURL=chunk-PHMHNAYC.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-chat.ts"],"sourcesContent":["import { useRef } from \"react\";\nimport {\n FunctionCallHandler,\n COPILOT_CLOUD_PUBLIC_API_KEY_HEADER,\n Action,\n actionParametersToJsonSchema,\n} from \"@copilotkit/shared\";\nimport {\n Message,\n TextMessage,\n ActionExecutionMessage,\n ResultMessage,\n CopilotRuntimeClient,\n convertMessagesToGqlInput,\n convertGqlOutputToMessages,\n MessageStatusCode,\n MessageRole,\n Role,\n} from \"@copilotkit/runtime-client-gql\";\n\nimport { CopilotApiConfig } from \"../context\";\n\nexport type UseChatOptions = {\n /**\n * System messages of the chat. Defaults to an empty array.\n */\n initialMessages?: Message[];\n /**\n * Callback function to be called when a function call is received.\n * If the function returns a `ChatRequest` object, the request will be sent\n * automatically to the API and will be used to update the chat.\n */\n onFunctionCall?: FunctionCallHandler;\n /**\n * Function definitions to be sent to the API.\n */\n actions: Action[];\n\n /**\n * The CopilotKit API configuration.\n */\n copilotConfig: CopilotApiConfig;\n\n /**\n * The current list of messages in the chat.\n */\n messages: Message[];\n /**\n * The setState-powered method to update the chat messages.\n */\n setMessages: React.Dispatch<React.SetStateAction<Message[]>>;\n\n /**\n * A callback to get the latest system message.\n */\n makeSystemMessageCallback: () => TextMessage;\n\n /**\n * Whether the API request is in progress\n */\n isLoading: boolean;\n\n /**\n * setState-powered method to update the isChatLoading value\n */\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport type UseChatHelpers = {\n /**\n * Append a user message to the chat list. This triggers the API call to fetch\n * the assistant's response.\n * @param message The message to append\n */\n append: (message: Message) => Promise<void>;\n /**\n * Reload the last AI chat response for the given chat history. If the last\n * message isn't from the assistant, it will request the API to generate a\n * new response.\n */\n reload: () => Promise<void>;\n /**\n * Abort the current request immediately, keep the generated tokens if any.\n */\n stop: () => void;\n};\n\nexport function useChat(options: UseChatOptions): UseChatHelpers {\n const {\n messages,\n setMessages,\n makeSystemMessageCallback,\n copilotConfig,\n setIsLoading,\n initialMessages,\n isLoading,\n actions,\n onFunctionCall,\n } = options;\n const abortControllerRef = useRef<AbortController>();\n const threadIdRef = useRef<string | null>(null);\n const runIdRef = useRef<string | null>(null);\n const publicApiKey = copilotConfig.publicApiKey;\n const headers = {\n ...(copilotConfig.headers || {}),\n ...(publicApiKey ? { [COPILOT_CLOUD_PUBLIC_API_KEY_HEADER]: publicApiKey } : {}),\n };\n\n const runtimeClient = new CopilotRuntimeClient({\n url: copilotConfig.chatApiEndpoint,\n publicApiKey: copilotConfig.publicApiKey,\n headers,\n });\n\n const runChatCompletion = async (previousMessages: Message[]): Promise<Message[]> => {\n setIsLoading(true);\n\n // this message is just a placeholder. It will disappear once the first real message\n // is received\n let newMessages: Message[] = [\n new TextMessage({\n content: \"\",\n role: Role.Assistant,\n }),\n ];\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n\n setMessages([...previousMessages, ...newMessages]);\n\n const systemMessage = makeSystemMessageCallback();\n\n const messagesWithContext = [systemMessage, ...(initialMessages || []), ...previousMessages];\n\n const stream = CopilotRuntimeClient.asStream(\n runtimeClient.generateCopilotResponse(\n {\n frontend: {\n actions: actions.map((action) => ({\n name: action.name,\n description: action.description || \"\",\n jsonSchema: JSON.stringify(actionParametersToJsonSchema(action.parameters || [])),\n })),\n },\n threadId: threadIdRef.current,\n runId: runIdRef.current,\n messages: convertMessagesToGqlInput(messagesWithContext),\n ...(copilotConfig.cloud\n ? {\n cloud: {\n guardrails: {\n inputValidationRules: {\n allowList: copilotConfig.cloud.guardrails.input.restrictToTopic.validTopics,\n denyList: copilotConfig.cloud.guardrails.input.restrictToTopic.invalidTopics,\n },\n },\n },\n }\n : {}),\n },\n copilotConfig.properties,\n abortControllerRef.current?.signal,\n ),\n );\n\n const guardrailsEnabled =\n copilotConfig.cloud?.guardrails?.input?.restrictToTopic.enabled || false;\n\n const reader = stream.getReader();\n\n let results: { [id: string]: string } = {};\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n break;\n }\n\n if (!value?.generateCopilotResponse) {\n continue;\n }\n\n threadIdRef.current = value.generateCopilotResponse.threadId || null;\n runIdRef.current = value.generateCopilotResponse.runId || null;\n\n const messages = convertGqlOutputToMessages(value.generateCopilotResponse.messages);\n\n if (messages.length === 0) {\n continue;\n }\n\n newMessages = [];\n\n // request failed, display error message\n if (\n value.generateCopilotResponse.status?.__typename === \"FailedResponseStatus\" &&\n value.generateCopilotResponse.status.reason === \"GUARDRAILS_VALIDATION_FAILED\"\n ) {\n newMessages = [\n new TextMessage({\n role: MessageRole.Assistant,\n content: value.generateCopilotResponse.status.details?.guardrailsReason || \"\",\n }),\n ];\n }\n\n // add messages to the chat\n else {\n for (const message of messages) {\n newMessages.push(message);\n\n if (\n message instanceof ActionExecutionMessage &&\n message.status.code !== MessageStatusCode.Pending &&\n message.scope === \"client\" &&\n onFunctionCall\n ) {\n if (!(message.id in results)) {\n // Do not execute a function call if guardrails are enabled but the status is not known\n if (guardrailsEnabled && value.generateCopilotResponse.status === undefined) {\n break;\n }\n // execute action\n const result = await onFunctionCall({\n messages: previousMessages,\n name: message.name,\n args: message.arguments,\n });\n results[message.id] = result;\n }\n\n // add the result message\n newMessages.push(\n new ResultMessage({\n result: ResultMessage.encodeResult(results[message.id]),\n actionExecutionId: message.id,\n actionName: message.name,\n }),\n );\n }\n }\n }\n\n if (newMessages.length > 0) {\n setMessages([...previousMessages, ...newMessages]);\n }\n }\n\n if (\n // if we have client side results\n Object.values(results).length ||\n // or the last message we received is a result\n (newMessages.length && newMessages[newMessages.length - 1] instanceof ResultMessage)\n ) {\n // run the completion again and return the result\n\n // wait for next tick to make sure all the react state updates\n // - tried using react-dom's flushSync, but it did not work\n await new Promise((resolve) => setTimeout(resolve, 10));\n\n return await runChatCompletion([...previousMessages, ...newMessages]);\n } else {\n return newMessages.slice();\n }\n } finally {\n setIsLoading(false);\n }\n };\n\n const runChatCompletionAndHandleFunctionCall = async (messages: Message[]): Promise<void> => {\n await runChatCompletion(messages);\n };\n\n const append = async (message: Message): Promise<void> => {\n if (isLoading) {\n return;\n }\n const newMessages = [...messages, message];\n setMessages(newMessages);\n return runChatCompletionAndHandleFunctionCall(newMessages);\n };\n\n const reload = async (): Promise<void> => {\n if (isLoading || messages.length === 0) {\n return;\n }\n let newMessages = [...messages];\n const lastMessage = messages[messages.length - 1];\n\n if (lastMessage instanceof TextMessage && lastMessage.role === \"assistant\") {\n newMessages = newMessages.slice(0, -1);\n }\n\n setMessages(newMessages);\n\n return runChatCompletionAndHandleFunctionCall(newMessages);\n };\n\n const stop = (): void => {\n abortControllerRef.current?.abort();\n };\n\n return {\n append,\n reload,\n stop,\n };\n}\n"],"mappings":";;;;;;AAAA,SAAS,cAAc;AACvB;AAAA,EAEE;AAAA,EAEA;AAAA,OACK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAqEA,SAAS,QAAQ,SAAyC;AAC/D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,qBAAqB,OAAwB;AACnD,QAAM,cAAc,OAAsB,IAAI;AAC9C,QAAM,WAAW,OAAsB,IAAI;AAC3C,QAAM,eAAe,cAAc;AACnC,QAAM,UAAU,kCACV,cAAc,WAAW,CAAC,IAC1B,eAAe,EAAE,CAAC,mCAAmC,GAAG,aAAa,IAAI,CAAC;AAGhF,QAAM,gBAAgB,IAAI,qBAAqB;AAAA,IAC7C,KAAK,cAAc;AAAA,IACnB,cAAc,cAAc;AAAA,IAC5B;AAAA,EACF,CAAC;AAED,QAAM,oBAAoB,CAAO,qBAAoD;AAlHvF;AAmHI,iBAAa,IAAI;AAIjB,QAAI,cAAyB;AAAA,MAC3B,IAAI,YAAY;AAAA,QACd,SAAS;AAAA,QACT,MAAM,KAAK;AAAA,MACb,CAAC;AAAA,IACH;AACA,UAAM,kBAAkB,IAAI,gBAAgB;AAC5C,uBAAmB,UAAU;AAE7B,gBAAY,CAAC,GAAG,kBAAkB,GAAG,WAAW,CAAC;AAEjD,UAAM,gBAAgB,0BAA0B;AAEhD,UAAM,sBAAsB,CAAC,eAAe,GAAI,mBAAmB,CAAC,GAAI,GAAG,gBAAgB;AAE3F,UAAM,SAAS,qBAAqB;AAAA,MAClC,cAAc;AAAA,QACZ;AAAA,UACE,UAAU;AAAA,YACR,SAAS,QAAQ,IAAI,CAAC,YAAY;AAAA,cAChC,MAAM,OAAO;AAAA,cACb,aAAa,OAAO,eAAe;AAAA,cACnC,YAAY,KAAK,UAAU,6BAA6B,OAAO,cAAc,CAAC,CAAC,CAAC;AAAA,YAClF,EAAE;AAAA,UACJ;AAAA,UACA,UAAU,YAAY;AAAA,UACtB,OAAO,SAAS;AAAA,UAChB,UAAU,0BAA0B,mBAAmB;AAAA,WACnD,cAAc,QACd;AAAA,UACE,OAAO;AAAA,YACL,YAAY;AAAA,cACV,sBAAsB;AAAA,gBACpB,WAAW,cAAc,MAAM,WAAW,MAAM,gBAAgB;AAAA,gBAChE,UAAU,cAAc,MAAM,WAAW,MAAM,gBAAgB;AAAA,cACjE;AAAA,YACF;AAAA,UACF;AAAA,QACF,IACA,CAAC;AAAA,QAEP,cAAc;AAAA,SACd,wBAAmB,YAAnB,mBAA4B;AAAA,MAC9B;AAAA,IACF;AAEA,UAAM,sBACJ,+BAAc,UAAd,mBAAqB,eAArB,mBAAiC,UAAjC,mBAAwC,gBAAgB,YAAW;AAErE,UAAM,SAAS,OAAO,UAAU;AAEhC,QAAI,UAAoC,CAAC;AAEzC,QAAI;AACF,aAAO,MAAM;AACX,cAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAE1C,YAAI,MAAM;AACR;AAAA,QACF;AAEA,YAAI,EAAC,+BAAO,0BAAyB;AACnC;AAAA,QACF;AAEA,oBAAY,UAAU,MAAM,wBAAwB,YAAY;AAChE,iBAAS,UAAU,MAAM,wBAAwB,SAAS;AAE1D,cAAMA,YAAW,2BAA2B,MAAM,wBAAwB,QAAQ;AAElF,YAAIA,UAAS,WAAW,GAAG;AACzB;AAAA,QACF;AAEA,sBAAc,CAAC;AAGf,cACE,WAAM,wBAAwB,WAA9B,mBAAsC,gBAAe,0BACrD,MAAM,wBAAwB,OAAO,WAAW,gCAChD;AACA,wBAAc;AAAA,YACZ,IAAI,YAAY;AAAA,cACd,MAAM,YAAY;AAAA,cAClB,WAAS,WAAM,wBAAwB,OAAO,YAArC,mBAA8C,qBAAoB;AAAA,YAC7E,CAAC;AAAA,UACH;AAAA,QACF,OAGK;AACH,qBAAW,WAAWA,WAAU;AAC9B,wBAAY,KAAK,OAAO;AAExB,gBACE,mBAAmB,0BACnB,QAAQ,OAAO,SAAS,kBAAkB,WAC1C,QAAQ,UAAU,YAClB,gBACA;AACA,kBAAI,EAAE,QAAQ,MAAM,UAAU;AAE5B,oBAAI,qBAAqB,MAAM,wBAAwB,WAAW,QAAW;AAC3E;AAAA,gBACF;AAEA,sBAAM,SAAS,MAAM,eAAe;AAAA,kBAClC,UAAU;AAAA,kBACV,MAAM,QAAQ;AAAA,kBACd,MAAM,QAAQ;AAAA,gBAChB,CAAC;AACD,wBAAQ,QAAQ,EAAE,IAAI;AAAA,cACxB;AAGA,0BAAY;AAAA,gBACV,IAAI,cAAc;AAAA,kBAChB,QAAQ,cAAc,aAAa,QAAQ,QAAQ,EAAE,CAAC;AAAA,kBACtD,mBAAmB,QAAQ;AAAA,kBAC3B,YAAY,QAAQ;AAAA,gBACtB,CAAC;AAAA,cACH;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,YAAI,YAAY,SAAS,GAAG;AAC1B,sBAAY,CAAC,GAAG,kBAAkB,GAAG,WAAW,CAAC;AAAA,QACnD;AAAA,MACF;AAEA;AAAA;AAAA,QAEE,OAAO,OAAO,OAAO,EAAE;AAAA,QAEtB,YAAY,UAAU,YAAY,YAAY,SAAS,CAAC,aAAa;AAAA,QACtE;AAKA,cAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,EAAE,CAAC;AAEtD,eAAO,MAAM,kBAAkB,CAAC,GAAG,kBAAkB,GAAG,WAAW,CAAC;AAAA,MACtE,OAAO;AACL,eAAO,YAAY,MAAM;AAAA,MAC3B;AAAA,IACF,UAAE;AACA,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF;AAEA,QAAM,yCAAyC,CAAOA,cAAuC;AAC3F,UAAM,kBAAkBA,SAAQ;AAAA,EAClC;AAEA,QAAM,SAAS,CAAO,YAAoC;AACxD,QAAI,WAAW;AACb;AAAA,IACF;AACA,UAAM,cAAc,CAAC,GAAG,UAAU,OAAO;AACzC,gBAAY,WAAW;AACvB,WAAO,uCAAuC,WAAW;AAAA,EAC3D;AAEA,QAAM,SAAS,MAA2B;AACxC,QAAI,aAAa,SAAS,WAAW,GAAG;AACtC;AAAA,IACF;AACA,QAAI,cAAc,CAAC,GAAG,QAAQ;AAC9B,UAAM,cAAc,SAAS,SAAS,SAAS,CAAC;AAEhD,QAAI,uBAAuB,eAAe,YAAY,SAAS,aAAa;AAC1E,oBAAc,YAAY,MAAM,GAAG,EAAE;AAAA,IACvC;AAEA,gBAAY,WAAW;AAEvB,WAAO,uCAAuC,WAAW;AAAA,EAC3D;AAEA,QAAM,OAAO,MAAY;AA5S3B;AA6SI,6BAAmB,YAAnB,mBAA4B;AAAA,EAC9B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;","names":["messages"]}
|