@copilotkit/react-core 0.20.0-tools.0 → 0.20.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.
Files changed (84) hide show
  1. package/.turbo/turbo-build.log +108 -108
  2. package/CHANGELOG.md +26 -0
  3. package/dist/{chunk-CPEUPJQJ.mjs → chunk-2EP7VLPI.mjs} +2 -2
  4. package/dist/{chunk-JIKWSWIX.mjs → chunk-BQ5SSV4Z.mjs} +6 -4
  5. package/dist/chunk-BQ5SSV4Z.mjs.map +1 -0
  6. package/dist/{chunk-TZPIY754.mjs → chunk-FUULGZCN.mjs} +4 -4
  7. package/dist/chunk-FUULGZCN.mjs.map +1 -0
  8. package/dist/{chunk-ABXVFQLN.mjs → chunk-JFUS5YVO.mjs} +40 -8
  9. package/dist/chunk-JFUS5YVO.mjs.map +1 -0
  10. package/dist/{chunk-4LKP4DMT.mjs → chunk-JJGEMQL2.mjs} +3 -3
  11. package/dist/{chunk-XBLCD24W.mjs → chunk-JVCBCB2T.mjs} +2 -2
  12. package/dist/{chunk-4OWTRVNI.mjs → chunk-S7ZVOTYK.mjs} +1 -1
  13. package/dist/chunk-S7ZVOTYK.mjs.map +1 -0
  14. package/dist/{chunk-KAZJPE2I.mjs → chunk-UG4YO3FH.mjs} +5 -5
  15. package/dist/chunk-UG4YO3FH.mjs.map +1 -0
  16. package/dist/{chunk-KZNQLITJ.mjs → chunk-VIDJE3AO.mjs} +6 -6
  17. package/dist/{chunk-K2LVBFRY.mjs → chunk-WH4L73VS.mjs} +2 -2
  18. package/dist/components/copilot-provider/copilotkit-props.d.ts +11 -0
  19. package/dist/components/copilot-provider/copilotkit-props.js.map +1 -1
  20. package/dist/components/copilot-provider/copilotkit.js +1 -1
  21. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  22. package/dist/components/copilot-provider/copilotkit.mjs +2 -2
  23. package/dist/components/copilot-provider/index.js +1 -1
  24. package/dist/components/copilot-provider/index.js.map +1 -1
  25. package/dist/components/copilot-provider/index.mjs +2 -2
  26. package/dist/components/index.js +1 -1
  27. package/dist/components/index.js.map +1 -1
  28. package/dist/components/index.mjs +2 -2
  29. package/dist/context/copilot-context.d.ts +11 -0
  30. package/dist/context/copilot-context.js.map +1 -1
  31. package/dist/context/copilot-context.mjs +1 -1
  32. package/dist/context/index.js.map +1 -1
  33. package/dist/context/index.mjs +1 -1
  34. package/dist/hooks/index.js +42 -9
  35. package/dist/hooks/index.js.map +1 -1
  36. package/dist/hooks/index.mjs +12 -12
  37. package/dist/hooks/use-chat.js +41 -8
  38. package/dist/hooks/use-chat.js.map +1 -1
  39. package/dist/hooks/use-chat.mjs +2 -2
  40. package/dist/hooks/use-copilot-chat.js +42 -9
  41. package/dist/hooks/use-copilot-chat.js.map +1 -1
  42. package/dist/hooks/use-copilot-chat.mjs +5 -5
  43. package/dist/hooks/use-make-copilot-actionable.js.map +1 -1
  44. package/dist/hooks/use-make-copilot-actionable.mjs +2 -2
  45. package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
  46. package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
  47. package/dist/hooks/use-make-copilot-readable.js.map +1 -1
  48. package/dist/hooks/use-make-copilot-readable.mjs +2 -2
  49. package/dist/index.js +45 -12
  50. package/dist/index.js.map +1 -1
  51. package/dist/index.mjs +17 -17
  52. package/dist/lib/copilot-task.d.ts +3 -3
  53. package/dist/lib/copilot-task.js +4 -3
  54. package/dist/lib/copilot-task.js.map +1 -1
  55. package/dist/lib/copilot-task.mjs +4 -4
  56. package/dist/lib/index.js +4 -3
  57. package/dist/lib/index.js.map +1 -1
  58. package/dist/lib/index.mjs +4 -4
  59. package/dist/openai-assistants/hooks/index.js.map +1 -1
  60. package/dist/openai-assistants/hooks/index.mjs +3 -3
  61. package/dist/openai-assistants/hooks/use-copilot-chat-v2.js.map +1 -1
  62. package/dist/openai-assistants/hooks/use-copilot-chat-v2.mjs +3 -3
  63. package/dist/openai-assistants/index.js.map +1 -1
  64. package/dist/openai-assistants/index.mjs +3 -3
  65. package/dist/utils/fetch-chat-completion.js +3 -2
  66. package/dist/utils/fetch-chat-completion.js.map +1 -1
  67. package/dist/utils/fetch-chat-completion.mjs +1 -1
  68. package/package.json +4 -4
  69. package/src/components/copilot-provider/copilotkit-props.tsx +12 -0
  70. package/src/components/copilot-provider/copilotkit.tsx +4 -1
  71. package/src/context/copilot-context.tsx +12 -0
  72. package/src/hooks/use-chat.ts +57 -6
  73. package/src/lib/copilot-task.ts +4 -4
  74. package/src/utils/fetch-chat-completion.ts +5 -0
  75. package/dist/chunk-4OWTRVNI.mjs.map +0 -1
  76. package/dist/chunk-ABXVFQLN.mjs.map +0 -1
  77. package/dist/chunk-JIKWSWIX.mjs.map +0 -1
  78. package/dist/chunk-KAZJPE2I.mjs.map +0 -1
  79. package/dist/chunk-TZPIY754.mjs.map +0 -1
  80. /package/dist/{chunk-CPEUPJQJ.mjs.map → chunk-2EP7VLPI.mjs.map} +0 -0
  81. /package/dist/{chunk-4LKP4DMT.mjs.map → chunk-JJGEMQL2.mjs.map} +0 -0
  82. /package/dist/{chunk-XBLCD24W.mjs.map → chunk-JVCBCB2T.mjs.map} +0 -0
  83. /package/dist/{chunk-KZNQLITJ.mjs.map → chunk-VIDJE3AO.mjs.map} +0 -0
  84. /package/dist/{chunk-K2LVBFRY.mjs.map → chunk-WH4L73VS.mjs.map} +0 -0
@@ -1,8 +1,8 @@
1
1
 
2
- > @copilotkit/react-core@0.20.0-tools.0 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-core
2
+ > @copilotkit/react-core@0.20.0 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-core
3
3
  > tsup --clean
4
4
 
5
- CLI 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-chat.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/openai-assistants/index.ts, src/types/document-pointer.ts, src/types/index.ts, src/types/system-message.ts, src/utils/fetch-chat-completion.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, src/components/copilot-provider/standard-copilot-api-config.tsx, src/openai-assistants/hooks/index.ts, src/openai-assistants/hooks/use-assistants.ts, src/openai-assistants/hooks/use-copilot-chat-v2.ts, src/openai-assistants/utils/index.ts, src/openai-assistants/utils/process-message-stream.ts
5
+ CLI Building entry: src/index.tsx, src/components/index.ts, src/hooks/index.ts, src/hooks/use-chat.ts, src/hooks/use-copilot-chat.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/context/copilot-context.tsx, src/context/index.ts, src/lib/copilot-task.ts, src/lib/index.ts, src/openai-assistants/index.ts, src/types/document-pointer.ts, src/types/index.ts, src/types/system-message.ts, src/utils/fetch-chat-completion.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, src/components/copilot-provider/standard-copilot-api-config.tsx, src/openai-assistants/hooks/index.ts, src/openai-assistants/hooks/use-assistants.ts, src/openai-assistants/hooks/use-copilot-chat-v2.ts, src/openai-assistants/utils/index.ts, src/openai-assistants/utils/process-message-stream.ts
6
6
  CLI Using tsconfig: tsconfig.json
7
7
  CLI tsup v6.7.0
8
8
  CLI Using tsup config: /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-core/tsup.config.ts
@@ -10,99 +10,67 @@
10
10
  CLI Cleaning output folder
11
11
  ESM Build start
12
12
  CJS Build start
13
- CJS dist/lib/copilot-task.js 7.17 KB
13
+ CJS dist/index.js 36.07 KB
14
+ CJS dist/components/index.js 15.17 KB
15
+ CJS dist/hooks/index.js 16.68 KB
16
+ CJS dist/context/copilot-context.js 3.62 KB
17
+ CJS dist/lib/copilot-task.js 7.43 KB
14
18
  CJS dist/openai-assistants/index.js 9.31 KB
15
19
  CJS dist/types/document-pointer.js 841.00 B
16
- CJS dist/utils/fetch-chat-completion.js 4.78 KB
20
+ CJS dist/utils/fetch-chat-completion.js 5.04 KB
17
21
  CJS dist/components/copilot-provider/copilotkit-props.js 878.00 B
18
22
  CJS dist/openai-assistants/hooks/index.js 9.21 KB
19
23
  CJS dist/openai-assistants/utils/index.js 2.30 KB
20
- CJS dist/index.js 34.54 KB
21
- CJS dist/components/index.js 15.12 KB
22
- CJS dist/context/copilot-context.js 3.62 KB
23
- CJS dist/context/index.js 3.60 KB
24
- CJS dist/hooks/index.js 15.21 KB
25
- CJS dist/hooks/use-chat.js 7.81 KB
26
- CJS dist/hooks/use-copilot-chat.js 13.04 KB
24
+ CJS dist/hooks/use-chat.js 9.29 KB
25
+ CJS dist/hooks/use-copilot-chat.js 14.51 KB
27
26
  CJS dist/hooks/use-flat-category-store.js 2.87 KB
28
27
  CJS dist/hooks/use-make-copilot-actionable.js 4.47 KB
29
28
  CJS dist/hooks/use-make-copilot-document-readable.js 4.22 KB
30
29
  CJS dist/hooks/use-make-copilot-readable.js 4.10 KB
31
30
  CJS dist/hooks/use-tree.js 5.53 KB
32
- CJS dist/lib/index.js 7.13 KB
31
+ CJS dist/context/index.js 3.60 KB
32
+ CJS dist/lib/index.js 7.39 KB
33
33
  CJS dist/types/index.js 797.00 B
34
34
  CJS dist/types/system-message.js 833.00 B
35
35
  CJS dist/utils/utils.test.js 184.00 B
36
36
  CJS dist/utils/utils.js 797.00 B
37
- CJS dist/components/copilot-provider/copilotkit.js 15.11 KB
38
- CJS dist/components/copilot-provider/index.js 15.16 KB
37
+ CJS dist/components/copilot-provider/copilotkit.js 15.17 KB
38
+ CJS dist/components/copilot-provider/index.js 15.21 KB
39
39
  CJS dist/components/copilot-provider/standard-copilot-api-config.js 1.48 KB
40
40
  CJS dist/openai-assistants/hooks/use-assistants.js 4.82 KB
41
41
  CJS dist/openai-assistants/hooks/use-copilot-chat-v2.js 9.30 KB
42
42
  CJS dist/openai-assistants/utils/process-message-stream.js 2.33 KB
43
- CJS dist/lib/copilot-task.js.map 16.40 KB
44
- CJS dist/openai-assistants/index.js.map 20.70 KB
43
+ CJS dist/index.js.map 67.24 KB
44
+ CJS dist/components/index.js.map 27.80 KB
45
+ CJS dist/hooks/index.js.map 36.60 KB
46
+ CJS dist/context/copilot-context.js.map 4.68 KB
47
+ CJS dist/lib/copilot-task.js.map 16.84 KB
48
+ CJS dist/openai-assistants/index.js.map 20.99 KB
45
49
  CJS dist/types/document-pointer.js.map 292.00 B
46
- CJS dist/utils/fetch-chat-completion.js.map 4.03 KB
47
- CJS dist/components/copilot-provider/copilotkit-props.js.map 894.00 B
48
- CJS dist/openai-assistants/hooks/index.js.map 21.00 KB
50
+ CJS dist/utils/fetch-chat-completion.js.map 4.44 KB
51
+ CJS dist/components/copilot-provider/copilotkit-props.js.map 1.12 KB
52
+ CJS dist/openai-assistants/hooks/index.js.map 21.29 KB
49
53
  CJS dist/openai-assistants/utils/index.js.map 1.44 KB
50
- CJS dist/index.js.map 64.08 KB
51
- CJS dist/components/index.js.map 27.51 KB
52
- CJS dist/context/copilot-context.js.map 4.44 KB
53
- CJS dist/context/index.js.map 4.67 KB
54
- CJS dist/hooks/index.js.map 33.45 KB
55
- CJS dist/hooks/use-chat.js.map 12.54 KB
56
- CJS dist/hooks/use-copilot-chat.js.map 28.54 KB
54
+ CJS dist/hooks/use-chat.js.map 15.40 KB
55
+ CJS dist/hooks/use-copilot-chat.js.map 31.69 KB
57
56
  CJS dist/hooks/use-flat-category-store.js.map 4.25 KB
58
- CJS dist/hooks/use-make-copilot-actionable.js.map 5.98 KB
59
- CJS dist/hooks/use-make-copilot-document-readable.js.map 5.75 KB
60
- CJS dist/hooks/use-make-copilot-readable.js.map 5.79 KB
57
+ CJS dist/hooks/use-make-copilot-actionable.js.map 6.22 KB
58
+ CJS dist/hooks/use-make-copilot-document-readable.js.map 5.99 KB
59
+ CJS dist/hooks/use-make-copilot-readable.js.map 6.04 KB
61
60
  CJS dist/hooks/use-tree.js.map 8.32 KB
62
- CJS dist/lib/index.js.map 16.46 KB
61
+ CJS dist/context/index.js.map 4.91 KB
62
+ CJS dist/lib/index.js.map 16.91 KB
63
63
  CJS dist/types/index.js.map 253.00 B
64
64
  CJS dist/types/system-message.js.map 249.00 B
65
65
  CJS dist/utils/utils.test.js.map 354.00 B
66
66
  CJS dist/utils/utils.js.map 137.00 B
67
- CJS dist/components/copilot-provider/copilotkit.js.map 27.45 KB
68
- CJS dist/components/copilot-provider/index.js.map 27.64 KB
67
+ CJS dist/components/copilot-provider/copilotkit.js.map 27.74 KB
68
+ CJS dist/components/copilot-provider/index.js.map 27.93 KB
69
69
  CJS dist/components/copilot-provider/standard-copilot-api-config.js.map 1.17 KB
70
70
  CJS dist/openai-assistants/hooks/use-assistants.js.map 5.92 KB
71
- CJS dist/openai-assistants/hooks/use-copilot-chat-v2.js.map 20.61 KB
71
+ CJS dist/openai-assistants/hooks/use-copilot-chat-v2.js.map 20.90 KB
72
72
  CJS dist/openai-assistants/utils/process-message-stream.js.map 1.33 KB
73
- CJS ⚡️ Build success in 179ms
74
- ESM dist/index.mjs 1.52 KB
75
- ESM dist/components/index.mjs 407.00 B
76
- ESM dist/context/copilot-context.mjs 219.00 B
77
- ESM dist/hooks/index.mjs 769.00 B
78
- ESM dist/chunk-EFZPSZWO.mjs 43.00 B
79
- ESM dist/chunk-LUGEI4YQ.mjs 43.00 B
80
- ESM dist/chunk-TZPIY754.mjs 3.17 KB
81
- ESM dist/chunk-7GFKOIO7.mjs 43.00 B
82
- ESM dist/chunk-BABVSMJR.mjs 43.00 B
83
- ESM dist/chunk-4LKP4DMT.mjs 4.39 KB
84
- ESM dist/chunk-FRAKUJWH.mjs 43.00 B
85
- ESM dist/chunk-MZ5UN3BY.mjs 802.00 B
86
- ESM dist/context/index.mjs 227.00 B
87
- ESM dist/chunk-VNRDQJXW.mjs 43.00 B
88
- ESM dist/chunk-5UGLWBZJ.mjs 43.00 B
89
- ESM dist/chunk-K2LVBFRY.mjs 970.00 B
90
- ESM dist/chunk-XBLCD24W.mjs 700.00 B
91
- ESM dist/chunk-CPEUPJQJ.mjs 640.00 B
92
- ESM dist/hooks/use-chat.mjs 174.00 B
93
- ESM dist/hooks/use-copilot-chat.mjs 500.00 B
94
- ESM dist/chunk-KZNQLITJ.mjs 2.89 KB
95
- ESM dist/chunk-JD7BAH7U.mjs 43.00 B
96
- ESM dist/chunk-SPCZTZCY.mjs 43.00 B
97
- ESM dist/chunk-KAZJPE2I.mjs 4.55 KB
98
- ESM dist/chunk-F2JIAPZQ.mjs 405.00 B
99
- ESM dist/chunk-VUY2K2DI.mjs 3.89 KB
100
- ESM dist/chunk-4OWTRVNI.mjs 1.42 KB
101
- ESM dist/chunk-ABXVFQLN.mjs 3.89 KB
102
- ESM dist/chunk-JIKWSWIX.mjs 2.35 KB
103
- ESM dist/hooks/use-flat-category-store.mjs 216.00 B
104
- ESM dist/chunk-YULKJPY3.mjs 1.84 KB
105
- ESM dist/chunk-MRXNTQOX.mjs 1.89 KB
73
+ CJS ⚡️ Build success in 172ms
106
74
  ESM dist/components/copilot-provider/standard-copilot-api-config.mjs 201.00 B
107
75
  ESM dist/openai-assistants/hooks/index.mjs 548.00 B
108
76
  ESM dist/openai-assistants/hooks/use-assistants.mjs 2.59 KB
@@ -117,46 +85,46 @@
117
85
  ESM dist/components/copilot-provider/copilotkit-props.mjs 59.00 B
118
86
  ESM dist/components/copilot-provider/copilotkit.mjs 380.00 B
119
87
  ESM dist/components/copilot-provider/index.mjs 396.00 B
120
- ESM dist/hooks/use-make-copilot-actionable.mjs 241.00 B
121
- ESM dist/hooks/use-make-copilot-document-readable.mjs 260.00 B
122
88
  ESM dist/hooks/use-make-copilot-readable.mjs 235.00 B
123
89
  ESM dist/hooks/use-tree.mjs 171.00 B
90
+ ESM dist/context/copilot-context.mjs 219.00 B
91
+ ESM dist/context/index.mjs 227.00 B
124
92
  ESM dist/lib/copilot-task.mjs 410.00 B
125
93
  ESM dist/lib/index.mjs 435.00 B
126
94
  ESM dist/openai-assistants/index.mjs 597.00 B
127
95
  ESM dist/types/document-pointer.mjs 45.00 B
128
- ESM dist/index.mjs.map 71.00 B
129
- ESM dist/components/index.mjs.map 71.00 B
130
- ESM dist/context/copilot-context.mjs.map 71.00 B
131
- ESM dist/hooks/index.mjs.map 71.00 B
132
- ESM dist/chunk-EFZPSZWO.mjs.map 71.00 B
133
- ESM dist/chunk-LUGEI4YQ.mjs.map 71.00 B
134
- ESM dist/chunk-TZPIY754.mjs.map 5.55 KB
135
- ESM dist/chunk-7GFKOIO7.mjs.map 71.00 B
136
- ESM dist/chunk-BABVSMJR.mjs.map 71.00 B
137
- ESM dist/chunk-4LKP4DMT.mjs.map 7.90 KB
138
- ESM dist/chunk-FRAKUJWH.mjs.map 71.00 B
139
- ESM dist/chunk-MZ5UN3BY.mjs.map 1.26 KB
140
- ESM dist/context/index.mjs.map 71.00 B
141
- ESM dist/chunk-VNRDQJXW.mjs.map 71.00 B
142
- ESM dist/chunk-5UGLWBZJ.mjs.map 71.00 B
143
- ESM dist/chunk-K2LVBFRY.mjs.map 1.66 KB
144
- ESM dist/chunk-XBLCD24W.mjs.map 1.42 KB
145
- ESM dist/chunk-CPEUPJQJ.mjs.map 1.47 KB
146
- ESM dist/hooks/use-chat.mjs.map 71.00 B
147
- ESM dist/hooks/use-copilot-chat.mjs.map 71.00 B
148
- ESM dist/chunk-KZNQLITJ.mjs.map 4.59 KB
149
- ESM dist/chunk-JD7BAH7U.mjs.map 71.00 B
150
- ESM dist/chunk-SPCZTZCY.mjs.map 71.00 B
151
- ESM dist/chunk-KAZJPE2I.mjs.map 9.62 KB
152
- ESM dist/chunk-F2JIAPZQ.mjs.map 1.12 KB
153
- ESM dist/chunk-VUY2K2DI.mjs.map 8.27 KB
154
- ESM dist/chunk-4OWTRVNI.mjs.map 4.35 KB
155
- ESM dist/chunk-ABXVFQLN.mjs.map 8.85 KB
156
- ESM dist/chunk-JIKWSWIX.mjs.map 3.98 KB
157
- ESM dist/hooks/use-flat-category-store.mjs.map 71.00 B
158
- ESM dist/chunk-YULKJPY3.mjs.map 4.21 KB
159
- ESM dist/chunk-MRXNTQOX.mjs.map 71.00 B
96
+ ESM dist/index.mjs 1.52 KB
97
+ ESM dist/chunk-EFZPSZWO.mjs 43.00 B
98
+ ESM dist/chunk-LUGEI4YQ.mjs 43.00 B
99
+ ESM dist/chunk-FUULGZCN.mjs 3.17 KB
100
+ ESM dist/chunk-7GFKOIO7.mjs 43.00 B
101
+ ESM dist/chunk-BABVSMJR.mjs 43.00 B
102
+ ESM dist/chunk-JJGEMQL2.mjs 4.39 KB
103
+ ESM dist/chunk-FRAKUJWH.mjs 43.00 B
104
+ ESM dist/chunk-MZ5UN3BY.mjs 802.00 B
105
+ ESM dist/chunk-VNRDQJXW.mjs 43.00 B
106
+ ESM dist/components/index.mjs 407.00 B
107
+ ESM dist/hooks/index.mjs 769.00 B
108
+ ESM dist/chunk-5UGLWBZJ.mjs 43.00 B
109
+ ESM dist/chunk-2EP7VLPI.mjs 640.00 B
110
+ ESM dist/hooks/use-chat.mjs 174.00 B
111
+ ESM dist/hooks/use-copilot-chat.mjs 500.00 B
112
+ ESM dist/chunk-VIDJE3AO.mjs 2.89 KB
113
+ ESM dist/chunk-JD7BAH7U.mjs 43.00 B
114
+ ESM dist/chunk-SPCZTZCY.mjs 43.00 B
115
+ ESM dist/chunk-UG4YO3FH.mjs 4.60 KB
116
+ ESM dist/chunk-F2JIAPZQ.mjs 405.00 B
117
+ ESM dist/chunk-VUY2K2DI.mjs 3.89 KB
118
+ ESM dist/chunk-JFUS5YVO.mjs 5.04 KB
119
+ ESM dist/chunk-BQ5SSV4Z.mjs 2.64 KB
120
+ ESM dist/hooks/use-flat-category-store.mjs 216.00 B
121
+ ESM dist/hooks/use-make-copilot-actionable.mjs 241.00 B
122
+ ESM dist/chunk-YULKJPY3.mjs 1.84 KB
123
+ ESM dist/chunk-WH4L73VS.mjs 970.00 B
124
+ ESM dist/hooks/use-make-copilot-document-readable.mjs 260.00 B
125
+ ESM dist/chunk-JVCBCB2T.mjs 700.00 B
126
+ ESM dist/chunk-S7ZVOTYK.mjs 1.42 KB
127
+ ESM dist/chunk-MRXNTQOX.mjs 1.89 KB
160
128
  ESM dist/components/copilot-provider/standard-copilot-api-config.mjs.map 71.00 B
161
129
  ESM dist/openai-assistants/hooks/index.mjs.map 71.00 B
162
130
  ESM dist/openai-assistants/hooks/use-assistants.mjs.map 4.67 KB
@@ -171,21 +139,53 @@
171
139
  ESM dist/components/copilot-provider/copilotkit-props.mjs.map 71.00 B
172
140
  ESM dist/components/copilot-provider/copilotkit.mjs.map 71.00 B
173
141
  ESM dist/components/copilot-provider/index.mjs.map 71.00 B
174
- ESM dist/hooks/use-make-copilot-actionable.mjs.map 71.00 B
175
- ESM dist/hooks/use-make-copilot-document-readable.mjs.map 71.00 B
176
142
  ESM dist/hooks/use-make-copilot-readable.mjs.map 71.00 B
177
143
  ESM dist/hooks/use-tree.mjs.map 71.00 B
144
+ ESM dist/context/copilot-context.mjs.map 71.00 B
145
+ ESM dist/context/index.mjs.map 71.00 B
178
146
  ESM dist/lib/copilot-task.mjs.map 71.00 B
179
147
  ESM dist/lib/index.mjs.map 71.00 B
180
148
  ESM dist/openai-assistants/index.mjs.map 71.00 B
181
149
  ESM dist/types/document-pointer.mjs.map 71.00 B
182
- ESM ⚡️ Build success in 190ms
150
+ ESM dist/index.mjs.map 71.00 B
151
+ ESM dist/chunk-EFZPSZWO.mjs.map 71.00 B
152
+ ESM dist/chunk-LUGEI4YQ.mjs.map 71.00 B
153
+ ESM dist/chunk-FUULGZCN.mjs.map 5.55 KB
154
+ ESM dist/chunk-7GFKOIO7.mjs.map 71.00 B
155
+ ESM dist/chunk-BABVSMJR.mjs.map 71.00 B
156
+ ESM dist/chunk-JJGEMQL2.mjs.map 7.90 KB
157
+ ESM dist/chunk-FRAKUJWH.mjs.map 71.00 B
158
+ ESM dist/chunk-MZ5UN3BY.mjs.map 1.26 KB
159
+ ESM dist/chunk-VNRDQJXW.mjs.map 71.00 B
160
+ ESM dist/components/index.mjs.map 71.00 B
161
+ ESM dist/hooks/index.mjs.map 71.00 B
162
+ ESM dist/chunk-5UGLWBZJ.mjs.map 71.00 B
163
+ ESM dist/chunk-2EP7VLPI.mjs.map 1.47 KB
164
+ ESM dist/hooks/use-chat.mjs.map 71.00 B
165
+ ESM dist/hooks/use-copilot-chat.mjs.map 71.00 B
166
+ ESM dist/chunk-VIDJE3AO.mjs.map 4.59 KB
167
+ ESM dist/chunk-JD7BAH7U.mjs.map 71.00 B
168
+ ESM dist/chunk-SPCZTZCY.mjs.map 71.00 B
169
+ ESM dist/chunk-UG4YO3FH.mjs.map 9.68 KB
170
+ ESM dist/chunk-F2JIAPZQ.mjs.map 1.12 KB
171
+ ESM dist/chunk-VUY2K2DI.mjs.map 8.27 KB
172
+ ESM dist/chunk-JFUS5YVO.mjs.map 11.29 KB
173
+ ESM dist/chunk-BQ5SSV4Z.mjs.map 4.40 KB
174
+ ESM dist/hooks/use-flat-category-store.mjs.map 71.00 B
175
+ ESM dist/hooks/use-make-copilot-actionable.mjs.map 71.00 B
176
+ ESM dist/chunk-YULKJPY3.mjs.map 4.21 KB
177
+ ESM dist/chunk-WH4L73VS.mjs.map 1.66 KB
178
+ ESM dist/hooks/use-make-copilot-document-readable.mjs.map 71.00 B
179
+ ESM dist/chunk-JVCBCB2T.mjs.map 1.42 KB
180
+ ESM dist/chunk-S7ZVOTYK.mjs.map 4.59 KB
181
+ ESM dist/chunk-MRXNTQOX.mjs.map 71.00 B
182
+ ESM ⚡️ Build success in 178ms
183
183
  DTS Build start
184
- DTS ⚡️ Build success in 6052ms
184
+ DTS ⚡️ Build success in 5902ms
185
185
  DTS dist/index.d.ts 1.41 KB
186
186
  DTS dist/components/copilot-provider/copilotkit.d.ts 1.26 KB
187
- DTS dist/components/copilot-provider/copilotkit-props.d.ts 749.00 B
188
- DTS dist/context/copilot-context.d.ts 2.06 KB
187
+ DTS dist/components/copilot-provider/copilotkit-props.d.ts 1007.00 B
188
+ DTS dist/context/copilot-context.d.ts 2.31 KB
189
189
  DTS dist/hooks/use-copilot-chat.d.ts 1.01 KB
190
190
  DTS dist/hooks/use-make-copilot-actionable.d.ts 243.00 B
191
191
  DTS dist/hooks/use-make-copilot-readable.d.ts 598.00 B
@@ -195,13 +195,13 @@
195
195
  DTS dist/types/system-message.d.ts 132.00 B
196
196
  DTS dist/openai-assistants/hooks/use-copilot-chat-v2.d.ts 1.41 KB
197
197
  DTS dist/openai-assistants/utils/process-message-stream.d.ts 196.00 B
198
- DTS dist/lib/copilot-task.d.ts 1.01 KB
198
+ DTS dist/lib/copilot-task.d.ts 1.00 KB
199
199
  DTS dist/utils/fetch-chat-completion.d.ts 1.34 KB
200
200
  DTS dist/hooks/use-tree.d.ts 543.00 B
201
201
  DTS dist/components/index.d.ts 186.00 B
202
- DTS dist/context/index.d.ts 229.00 B
203
202
  DTS dist/hooks/index.d.ts 574.00 B
204
203
  DTS dist/hooks/use-flat-category-store.d.ts 424.00 B
204
+ DTS dist/context/index.d.ts 229.00 B
205
205
  DTS dist/lib/index.d.ts 223.00 B
206
206
  DTS dist/openai-assistants/index.d.ts 262.00 B
207
207
  DTS dist/types/index.d.ts 118.00 B
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # ui
2
2
 
3
+ ## 0.20.0
4
+
5
+ ### Minor Changes
6
+
7
+ - CopilotTask, function return values, LangChain support, LangServe support
8
+ - 401e474: Test the tools API
9
+ - 2f3296e: Test automation
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+ - Updated dependencies [401e474]
15
+ - Updated dependencies [2f3296e]
16
+ - @copilotkit/shared@0.4.0
17
+
18
+ ## 0.20.0-beta-automation.1
19
+
20
+ ### Minor Changes
21
+
22
+ - Test automation
23
+
24
+ ### Patch Changes
25
+
26
+ - Updated dependencies
27
+ - @copilotkit/shared@0.4.0-beta-automation.1
28
+
3
29
  ## 0.20.0-tools.0
4
30
 
5
31
  ### Minor Changes
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CopilotContext
3
- } from "./chunk-4OWTRVNI.mjs";
3
+ } from "./chunk-S7ZVOTYK.mjs";
4
4
 
5
5
  // src/hooks/use-make-copilot-readable.ts
6
6
  import { useContext, useEffect, useRef } from "react";
@@ -20,4 +20,4 @@ function useMakeCopilotReadable(information, parentId, categories) {
20
20
  export {
21
21
  useMakeCopilotReadable
22
22
  };
23
- //# sourceMappingURL=chunk-CPEUPJQJ.mjs.map
23
+ //# sourceMappingURL=chunk-2EP7VLPI.mjs.map
@@ -8,7 +8,8 @@ import {
8
8
  import {
9
9
  decodeChatCompletion,
10
10
  parseChatCompletion,
11
- decodeChatCompletionAsText
11
+ decodeChatCompletionAsText,
12
+ EXCLUDE_FROM_FORWARD_PROPS_KEYS
12
13
  } from "@copilotkit/shared";
13
14
  function fetchChatCompletion(_0) {
14
15
  return __async(this, arguments, function* ({
@@ -21,6 +22,7 @@ function fetchChatCompletion(_0) {
21
22
  body,
22
23
  signal
23
24
  }) {
25
+ var _a, _b;
24
26
  temperature || (temperature = 0.5);
25
27
  tools || (tools = []);
26
28
  const cleanedMessages = messages.map((message) => {
@@ -32,11 +34,11 @@ function fetchChatCompletion(_0) {
32
34
  headers: __spreadValues(__spreadValues({
33
35
  "Content-Type": "application/json"
34
36
  }, copilotConfig.headers), headers ? __spreadValues({}, headers) : {}),
35
- body: JSON.stringify(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({
37
+ body: JSON.stringify(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({
36
38
  model,
37
39
  messages: cleanedMessages,
38
40
  stream: true
39
- }, tools.length ? { tools } : {}), temperature ? { temperature } : {}), tools.length != 0 ? { tool_choice: "auto" } : {}), copilotConfig.body), body ? __spreadValues({}, body) : {})),
41
+ }, tools.length ? { tools } : {}), temperature ? { temperature } : {}), tools.length != 0 ? { tool_choice: "auto" } : {}), copilotConfig.body), copilotConfig.backendOnlyProps), Object.keys((_a = copilotConfig["body"]) != null ? _a : {}).length > 0 ? { [EXCLUDE_FROM_FORWARD_PROPS_KEYS]: Object.keys((_b = copilotConfig["body"]) != null ? _b : {}) } : {}), body ? __spreadValues({}, body) : {})),
40
42
  signal
41
43
  });
42
44
  return response;
@@ -70,4 +72,4 @@ export {
70
72
  fetchAndDecodeChatCompletion,
71
73
  fetchAndDecodeChatCompletionAsText
72
74
  };
73
- //# sourceMappingURL=chunk-JIKWSWIX.mjs.map
75
+ //# sourceMappingURL=chunk-BQ5SSV4Z.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/fetch-chat-completion.ts"],"sourcesContent":["import {\n Message,\n ToolDefinition,\n ChatCompletionEvent,\n decodeChatCompletion,\n parseChatCompletion,\n decodeChatCompletionAsText,\n EXCLUDE_FROM_FORWARD_PROPS_KEYS,\n} from \"@copilotkit/shared\";\nimport { CopilotApiConfig } from \"../context\";\n\nexport interface FetchChatCompletionParams {\n copilotConfig: CopilotApiConfig;\n model?: string;\n messages: Message[];\n tools?: ToolDefinition[];\n temperature?: number;\n maxTokens?: number;\n headers?: Record<string, string> | Headers;\n body?: object;\n signal?: AbortSignal;\n}\n\nexport async function fetchChatCompletion({\n copilotConfig,\n model,\n messages,\n tools,\n temperature,\n headers,\n body,\n signal,\n}: FetchChatCompletionParams): Promise<Response> {\n temperature ||= 0.5;\n tools ||= [];\n\n // clean up any extra properties from messages\n const cleanedMessages = messages.map((message) => {\n const { content, role, name, function_call } = message;\n return { content, role, name, function_call };\n });\n\n const response = await fetch(copilotConfig.chatApiEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...copilotConfig.headers,\n ...(headers ? { ...headers } : {}),\n },\n body: JSON.stringify({\n model,\n messages: cleanedMessages,\n stream: true,\n ...(tools.length ? { tools } : {}),\n ...(temperature ? { temperature } : {}),\n ...(tools.length != 0 ? { tool_choice: \"auto\" } : {}),\n ...copilotConfig.body,\n ...copilotConfig.backendOnlyProps,\n ...(Object.keys(copilotConfig[\"body\"] ?? {}).length > 0\n ? { [EXCLUDE_FROM_FORWARD_PROPS_KEYS]: Object.keys(copilotConfig[\"body\"] ?? {}) }\n : {}),\n ...(body ? { ...body } : {}),\n }),\n signal,\n });\n\n return response;\n}\n\nexport interface DecodedChatCompletionResponse extends Response {\n events: ReadableStream<ChatCompletionEvent> | null;\n}\n\nexport async function fetchAndDecodeChatCompletion(\n params: FetchChatCompletionParams,\n): Promise<DecodedChatCompletionResponse> {\n const response = await fetchChatCompletion(params);\n if (!response.ok || !response.body) {\n return { ...response, events: null };\n }\n const events = await decodeChatCompletion(parseChatCompletion(response.body));\n return { ...response, events };\n}\n\nexport interface DecodedChatCompletionResponseAsText extends Response {\n events: ReadableStream<string> | null;\n}\n\nexport async function fetchAndDecodeChatCompletionAsText(\n params: FetchChatCompletionParams,\n): Promise<DecodedChatCompletionResponseAsText> {\n const response = await fetchChatCompletion(params);\n if (!response.ok || !response.body) {\n return { ...response, events: null };\n }\n const events = await decodeChatCompletionAsText(\n decodeChatCompletion(parseChatCompletion(response.body)),\n );\n return { ...response, events };\n}\n"],"mappings":";;;;;;;AAAA;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAeP,SAAsB,oBAAoB,IASO;AAAA,6CATP;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAiD;AAhCjD;AAiCE,kCAAgB;AAChB,sBAAU,CAAC;AAGX,UAAM,kBAAkB,SAAS,IAAI,CAAC,YAAY;AAChD,YAAM,EAAE,SAAS,MAAM,MAAM,cAAc,IAAI;AAC/C,aAAO,EAAE,SAAS,MAAM,MAAM,cAAc;AAAA,IAC9C,CAAC;AAED,UAAM,WAAW,MAAM,MAAM,cAAc,iBAAiB;AAAA,MAC1D,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,SACb,cAAc,UACb,UAAU,mBAAK,WAAY,CAAC;AAAA,MAElC,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA,QACA,UAAU;AAAA,QACV,QAAQ;AAAA,SACJ,MAAM,SAAS,EAAE,MAAM,IAAI,CAAC,IAC5B,cAAc,EAAE,YAAY,IAAI,CAAC,IACjC,MAAM,UAAU,IAAI,EAAE,aAAa,OAAO,IAAI,CAAC,IAChD,cAAc,OACd,cAAc,mBACb,OAAO,MAAK,mBAAc,MAAM,MAApB,YAAyB,CAAC,CAAC,EAAE,SAAS,IAClD,EAAE,CAAC,+BAA+B,GAAG,OAAO,MAAK,mBAAc,MAAM,MAApB,YAAyB,CAAC,CAAC,EAAE,IAC9E,CAAC,IACD,OAAO,mBAAK,QAAS,CAAC,EAC3B;AAAA,MACD;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAAA;AAMA,SAAsB,6BACpB,QACwC;AAAA;AACxC,UAAM,WAAW,MAAM,oBAAoB,MAAM;AACjD,QAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM;AAClC,aAAO,iCAAK,WAAL,EAAe,QAAQ,KAAK;AAAA,IACrC;AACA,UAAM,SAAS,MAAM,qBAAqB,oBAAoB,SAAS,IAAI,CAAC;AAC5E,WAAO,iCAAK,WAAL,EAAe,OAAO;AAAA,EAC/B;AAAA;AAMA,SAAsB,mCACpB,QAC8C;AAAA;AAC9C,UAAM,WAAW,MAAM,oBAAoB,MAAM;AACjD,QAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM;AAClC,aAAO,iCAAK,WAAL,EAAe,QAAQ,KAAK;AAAA,IACrC;AACA,UAAM,SAAS,MAAM;AAAA,MACnB,qBAAqB,oBAAoB,SAAS,IAAI,CAAC;AAAA,IACzD;AACA,WAAO,iCAAK,WAAL,EAAe,OAAO;AAAA,EAC/B;AAAA;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  defaultCopilotContextCategories
3
- } from "./chunk-KAZJPE2I.mjs";
3
+ } from "./chunk-UG4YO3FH.mjs";
4
4
  import {
5
5
  fetchAndDecodeChatCompletion
6
- } from "./chunk-JIKWSWIX.mjs";
6
+ } from "./chunk-BQ5SSV4Z.mjs";
7
7
  import {
8
8
  __async
9
9
  } from "./chunk-MRXNTQOX.mjs";
@@ -12,7 +12,7 @@ import {
12
12
  var CopilotTask = class {
13
13
  constructor(config) {
14
14
  this.instructions = config.instructions;
15
- this.functions = config.functions || [];
15
+ this.functions = config.actions || [];
16
16
  this.includeCopilotReadable = config.includeCopilotReadable || true;
17
17
  this.includeCopilotActionable = config.includeCopilotActionable || true;
18
18
  }
@@ -99,4 +99,4 @@ ${instructions}
99
99
  export {
100
100
  CopilotTask
101
101
  };
102
- //# sourceMappingURL=chunk-TZPIY754.mjs.map
102
+ //# sourceMappingURL=chunk-FUULGZCN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/copilot-task.ts"],"sourcesContent":["import { AnnotatedFunction, FunctionCall, Message } from \"@copilotkit/shared\";\nimport { CopilotContextParams } from \"../context\";\nimport { defaultCopilotContextCategories } from \"../components\";\nimport { fetchAndDecodeChatCompletion } from \"../utils/fetch-chat-completion\";\n\nexport interface CopilotTaskConfig {\n /**\n * The instructions to be given to the assistant.\n */\n instructions: string;\n /**\n * Action definitions to be sent to the API.\n */\n actions?: AnnotatedFunction<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 useMakeCopilotActionable in the task.\n */\n includeCopilotActionable?: boolean;\n}\n\nexport class CopilotTask<T = any> {\n private instructions: string;\n private functions: AnnotatedFunction<any[]>[];\n private includeCopilotReadable: boolean;\n private includeCopilotActionable: boolean;\n\n constructor(config: CopilotTaskConfig) {\n this.instructions = config.instructions;\n this.functions = config.actions || [];\n this.includeCopilotReadable = config.includeCopilotReadable || true;\n this.includeCopilotActionable = config.includeCopilotActionable || true;\n }\n\n async run(context: CopilotContextParams, data?: T): Promise<void> {\n const entryPoints = this.includeCopilotActionable ? Object.assign({}, context.entryPoints) : {};\n\n // merge functions into entry points\n for (const fn of this.functions) {\n entryPoints[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: Message = {\n id: \"system\",\n content: taskSystemMessage(contextString, this.instructions),\n role: \"system\",\n };\n\n const messages = [systemMessage];\n\n const response = await fetchAndDecodeChatCompletion({\n copilotConfig: context.copilotApiConfig,\n messages: messages,\n tools: context.getChatCompletionFunctionDescriptions(entryPoints),\n headers: context.copilotApiConfig.headers,\n body: context.copilotApiConfig.body,\n });\n\n if (!response.events) {\n throw new Error(\"Failed to execute task\");\n }\n\n const reader = response.events.getReader();\n let functionCalls: FunctionCall[] = [];\n\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n break;\n }\n\n if (value.type === \"function\") {\n functionCalls.push({\n name: value.name,\n arguments: JSON.stringify(value.arguments),\n });\n break;\n }\n }\n\n if (!functionCalls.length) {\n throw new Error(\"No function call occurred\");\n }\n\n const functionCallHandler = context.getFunctionCallHandler(entryPoints);\n for (const functionCall of functionCalls) {\n await functionCallHandler(messages, functionCall);\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":";;;;;;;;;;;AAyBO,IAAM,cAAN,MAA2B;AAAA,EAMhC,YAAY,QAA2B;AACrC,SAAK,eAAe,OAAO;AAC3B,SAAK,YAAY,OAAO,WAAW,CAAC;AACpC,SAAK,yBAAyB,OAAO,0BAA0B;AAC/D,SAAK,2BAA2B,OAAO,4BAA4B;AAAA,EACrE;AAAA,EAEM,IAAI,SAA+B,MAAyB;AAAA;AAChE,YAAM,cAAc,KAAK,2BAA2B,OAAO,OAAO,CAAC,GAAG,QAAQ,WAAW,IAAI,CAAC;AAG9F,iBAAW,MAAM,KAAK,WAAW;AAC/B,oBAAY,GAAG,IAAI,IAAI;AAAA,MACzB;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,gBAAyB;AAAA,QAC7B,IAAI;AAAA,QACJ,SAAS,kBAAkB,eAAe,KAAK,YAAY;AAAA,QAC3D,MAAM;AAAA,MACR;AAEA,YAAM,WAAW,CAAC,aAAa;AAE/B,YAAM,WAAW,MAAM,6BAA6B;AAAA,QAClD,eAAe,QAAQ;AAAA,QACvB;AAAA,QACA,OAAO,QAAQ,sCAAsC,WAAW;AAAA,QAChE,SAAS,QAAQ,iBAAiB;AAAA,QAClC,MAAM,QAAQ,iBAAiB;AAAA,MACjC,CAAC;AAED,UAAI,CAAC,SAAS,QAAQ;AACpB,cAAM,IAAI,MAAM,wBAAwB;AAAA,MAC1C;AAEA,YAAM,SAAS,SAAS,OAAO,UAAU;AACzC,UAAI,gBAAgC,CAAC;AAErC,aAAO,MAAM;AACX,cAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAE1C,YAAI,MAAM;AACR;AAAA,QACF;AAEA,YAAI,MAAM,SAAS,YAAY;AAC7B,wBAAc,KAAK;AAAA,YACjB,MAAM,MAAM;AAAA,YACZ,WAAW,KAAK,UAAU,MAAM,SAAS;AAAA,UAC3C,CAAC;AACD;AAAA,QACF;AAAA,MACF;AAEA,UAAI,CAAC,cAAc,QAAQ;AACzB,cAAM,IAAI,MAAM,2BAA2B;AAAA,MAC7C;AAEA,YAAM,sBAAsB,QAAQ,uBAAuB,WAAW;AACtE,iBAAW,gBAAgB,eAAe;AACxC,cAAM,oBAAoB,UAAU,YAAY;AAAA,MAClD;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":[]}
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  fetchAndDecodeChatCompletion
3
- } from "./chunk-JIKWSWIX.mjs";
3
+ } from "./chunk-BQ5SSV4Z.mjs";
4
4
  import {
5
5
  __async
6
6
  } from "./chunk-MRXNTQOX.mjs";
7
7
 
8
8
  // src/hooks/use-chat.ts
9
9
  import { useRef, useState } from "react";
10
+ import { encodeResult } from "@copilotkit/shared";
10
11
  import { nanoid } from "nanoid";
11
12
  function useChat(options) {
12
13
  const [messages, setMessages] = useState([]);
@@ -14,7 +15,6 @@ function useChat(options) {
14
15
  const [isLoading, setIsLoading] = useState(false);
15
16
  const abortControllerRef = useRef();
16
17
  const runChatCompletion = (messages2) => __async(this, null, function* () {
17
- var _a;
18
18
  setIsLoading(true);
19
19
  const newMessages = [
20
20
  {
@@ -39,15 +39,16 @@ function useChat(options) {
39
39
  throw new Error("Failed to fetch chat completion");
40
40
  }
41
41
  const reader = response.events.getReader();
42
+ let feedback = false;
42
43
  try {
43
44
  while (true) {
44
45
  const { done, value } = yield reader.read();
45
46
  if (done) {
46
- return newMessages.slice();
47
+ break;
47
48
  }
48
49
  let currentMessage = Object.assign({}, newMessages[newMessages.length - 1]);
49
50
  if (value.type === "content") {
50
- if (currentMessage.function_call) {
51
+ if (currentMessage.function_call || currentMessage.role === "function") {
51
52
  currentMessage = {
52
53
  id: nanoid(),
53
54
  createdAt: /* @__PURE__ */ new Date(),
@@ -59,8 +60,18 @@ function useChat(options) {
59
60
  currentMessage.content += value.content;
60
61
  newMessages[newMessages.length - 1] = currentMessage;
61
62
  setMessages([...messages2, ...newMessages]);
63
+ } else if (value.type === "result") {
64
+ currentMessage = {
65
+ id: nanoid(),
66
+ role: "function",
67
+ content: value.content,
68
+ name: value.name
69
+ };
70
+ newMessages.push(currentMessage);
71
+ setMessages([...messages2, ...newMessages]);
72
+ feedback = true;
62
73
  } else if (value.type === "function") {
63
- if (currentMessage.content != "" || currentMessage.function_call) {
74
+ if (currentMessage.content != "" || currentMessage.function_call || currentMessage.role == "function") {
64
75
  currentMessage = {
65
76
  id: nanoid(),
66
77
  createdAt: /* @__PURE__ */ new Date(),
@@ -71,13 +82,34 @@ function useChat(options) {
71
82
  }
72
83
  currentMessage.function_call = {
73
84
  name: value.name,
74
- arguments: JSON.stringify(value.arguments)
85
+ arguments: JSON.stringify(value.arguments),
86
+ scope: value.scope
75
87
  };
76
88
  newMessages[newMessages.length - 1] = currentMessage;
77
89
  setMessages([...messages2, ...newMessages]);
78
- yield (_a = options.onFunctionCall) == null ? void 0 : _a.call(options, messages2, currentMessage.function_call);
90
+ try {
91
+ if (options.onFunctionCall && value.scope === "client") {
92
+ const result = yield options.onFunctionCall(messages2, currentMessage.function_call);
93
+ currentMessage = {
94
+ id: nanoid(),
95
+ role: "function",
96
+ content: encodeResult(result),
97
+ name: currentMessage.function_call.name
98
+ };
99
+ newMessages.push(currentMessage);
100
+ setMessages([...messages2, ...newMessages]);
101
+ feedback = true;
102
+ }
103
+ } catch (error) {
104
+ console.error("Failed to execute function call", error);
105
+ }
79
106
  }
80
107
  }
108
+ if (feedback) {
109
+ return yield runChatCompletion([...messages2, ...newMessages]);
110
+ } else {
111
+ return newMessages.slice();
112
+ }
81
113
  } finally {
82
114
  setIsLoading(false);
83
115
  }
@@ -123,4 +155,4 @@ function useChat(options) {
123
155
  export {
124
156
  useChat
125
157
  };
126
- //# sourceMappingURL=chunk-ABXVFQLN.mjs.map
158
+ //# sourceMappingURL=chunk-JFUS5YVO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/use-chat.ts"],"sourcesContent":["import { useRef, useState } from \"react\";\nimport { Message, ToolDefinition, FunctionCallHandler, encodeResult } from \"@copilotkit/shared\";\nimport { nanoid } from \"nanoid\";\nimport { fetchAndDecodeChatCompletion } from \"../utils/fetch-chat-completion\";\nimport { CopilotApiConfig } from \"../context\";\n\nexport type UseChatOptions = {\n /**\n * The API endpoint that accepts a `{ messages: Message[] }` object and returns\n * a stream of tokens of the AI chat response. Defaults to `/api/chat`.\n */\n api?: string;\n /**\n * A unique identifier for the chat. If not provided, a random one will be\n * generated. When provided, the `useChat` hook with the same `id` will\n * have shared states across components.\n */\n id?: string;\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 * HTTP headers to be sent with the API request.\n */\n headers?: Record<string, string> | Headers;\n /**\n * Extra body object to be sent with the API request.\n * @example\n * Send a `sessionId` to the API along with the messages.\n * ```js\n * useChat({\n * body: {\n * sessionId: '123',\n * }\n * })\n * ```\n */\n body?: object;\n /**\n * Function definitions to be sent to the API.\n */\n tools?: ToolDefinition[];\n};\n\nexport type UseChatHelpers = {\n /** Current messages in the chat */\n messages: Message[];\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 /** The current value of the input */\n input: string;\n /** setState-powered method to update the input value */\n setInput: React.Dispatch<React.SetStateAction<string>>;\n /** Whether the API request is in progress */\n isLoading: boolean;\n};\n\nexport type UseChatOptionsWithCopilotConfig = UseChatOptions & {\n copilotConfig: CopilotApiConfig;\n};\n\nexport function useChat(options: UseChatOptionsWithCopilotConfig): UseChatHelpers {\n const [messages, setMessages] = useState<Message[]>([]);\n const [input, setInput] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n const abortControllerRef = useRef<AbortController>();\n\n const runChatCompletion = async (messages: Message[]): Promise<Message[]> => {\n setIsLoading(true);\n\n const newMessages: Message[] = [\n {\n id: nanoid(),\n createdAt: new Date(),\n content: \"\",\n role: \"assistant\",\n },\n ];\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n\n setMessages([...messages, ...newMessages]);\n\n const messagesWithContext = [...(options.initialMessages || []), ...messages];\n const response = await fetchAndDecodeChatCompletion({\n copilotConfig: options.copilotConfig,\n messages: messagesWithContext,\n tools: options.tools,\n headers: options.headers,\n signal: abortController.signal,\n });\n\n if (!response.events) {\n throw new Error(\"Failed to fetch chat completion\");\n }\n\n const reader = response.events.getReader();\n\n // Whether to feed back the new messages to GPT\n let feedback = false;\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n break;\n }\n\n let currentMessage = Object.assign({}, newMessages[newMessages.length - 1]);\n\n if (value.type === \"content\") {\n if (currentMessage.function_call || currentMessage.role === \"function\") {\n // Create a new message if the previous one is a function call or result\n currentMessage = {\n id: nanoid(),\n createdAt: new Date(),\n content: \"\",\n role: \"assistant\",\n };\n newMessages.push(currentMessage);\n }\n currentMessage.content += value.content;\n newMessages[newMessages.length - 1] = currentMessage;\n setMessages([...messages, ...newMessages]);\n } else if (value.type === \"result\") {\n // When we get a result message, it is already complete\n currentMessage = {\n id: nanoid(),\n role: \"function\",\n content: value.content,\n name: value.name,\n };\n newMessages.push(currentMessage);\n setMessages([...messages, ...newMessages]);\n\n // After receiving a result, feed back the new messages to GPT\n feedback = true;\n } else if (value.type === \"function\") {\n // Create a new message if the previous one is not empty\n if (\n currentMessage.content != \"\" ||\n currentMessage.function_call ||\n currentMessage.role == \"function\"\n ) {\n currentMessage = {\n id: nanoid(),\n createdAt: new Date(),\n content: \"\",\n role: \"assistant\",\n };\n newMessages.push(currentMessage);\n }\n currentMessage.function_call = {\n name: value.name,\n arguments: JSON.stringify(value.arguments),\n scope: value.scope,\n };\n\n newMessages[newMessages.length - 1] = currentMessage;\n setMessages([...messages, ...newMessages]);\n\n // Execute the function call\n try {\n if (options.onFunctionCall && value.scope === \"client\") {\n const result = await options.onFunctionCall(messages, currentMessage.function_call);\n\n currentMessage = {\n id: nanoid(),\n role: \"function\",\n content: encodeResult(result),\n name: currentMessage.function_call!.name!,\n };\n newMessages.push(currentMessage);\n setMessages([...messages, ...newMessages]);\n\n // After a function call, feed back the new messages to GPT\n feedback = true;\n }\n } catch (error) {\n console.error(\"Failed to execute function call\", error);\n // TODO: Handle error\n // this should go to the message itself\n }\n }\n }\n\n // If we want feedback, run the completion again and return the results\n if (feedback) {\n return await runChatCompletion([...messages, ...newMessages]);\n }\n // otherwise, return the new messages\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.role === \"assistant\") {\n newMessages = newMessages.slice(0, -1);\n }\n setMessages(newMessages);\n\n return runChatCompletionAndHandleFunctionCall(newMessages);\n };\n\n const stop = (): void => {\n abortControllerRef.current?.abort();\n };\n\n return {\n messages,\n append,\n reload,\n stop,\n isLoading,\n input,\n setInput,\n };\n}\n"],"mappings":"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","names":["messages"]}
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-MZ5UN3BY.mjs";
4
4
  import {
5
5
  defaultCopilotContextCategories
6
- } from "./chunk-KAZJPE2I.mjs";
6
+ } from "./chunk-UG4YO3FH.mjs";
7
7
  import {
8
8
  CopilotContext
9
- } from "./chunk-4OWTRVNI.mjs";
9
+ } from "./chunk-S7ZVOTYK.mjs";
10
10
  import {
11
11
  __async,
12
12
  __spreadValues
@@ -134,4 +134,4 @@ export {
134
134
  useCopilotChatV2,
135
135
  defaultSystemMessage
136
136
  };
137
- //# sourceMappingURL=chunk-4LKP4DMT.mjs.map
137
+ //# sourceMappingURL=chunk-JJGEMQL2.mjs.map