@copilotkit/react-core 2.0.0-next.1 → 2.0.0-rc.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 (538) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +18 -12
  3. package/dist/MarkdownRendererContext-B4Us6mwL.d.cts +954 -0
  4. package/dist/MarkdownRendererContext-B4Us6mwL.d.cts.map +1 -0
  5. package/dist/MarkdownRendererContext-CRKFzsEB.d.mts +954 -0
  6. package/dist/MarkdownRendererContext-CRKFzsEB.d.mts.map +1 -0
  7. package/dist/MarkdownSurfaces-C2XZISKn.cjs +3964 -0
  8. package/dist/MarkdownSurfaces-C2XZISKn.cjs.map +1 -0
  9. package/dist/MarkdownSurfaces-ChSlVYOk.mjs +3655 -0
  10. package/dist/MarkdownSurfaces-ChSlVYOk.mjs.map +1 -0
  11. package/dist/context.cjs +144 -0
  12. package/dist/context.cjs.map +1 -0
  13. package/dist/context.d.cts +166 -0
  14. package/dist/context.d.cts.map +1 -0
  15. package/dist/context.d.mts +166 -0
  16. package/dist/context.d.mts.map +1 -0
  17. package/dist/context.mjs +136 -0
  18. package/dist/context.mjs.map +1 -0
  19. package/dist/generative-ui.cjs +8151 -0
  20. package/dist/generative-ui.cjs.map +1 -0
  21. package/dist/generative-ui.d.cts +4952 -0
  22. package/dist/generative-ui.d.cts.map +1 -0
  23. package/dist/generative-ui.d.mts +4952 -0
  24. package/dist/generative-ui.d.mts.map +1 -0
  25. package/dist/generative-ui.mjs +8137 -0
  26. package/dist/generative-ui.mjs.map +1 -0
  27. package/dist/headless.cjs +1927 -0
  28. package/dist/headless.cjs.map +1 -0
  29. package/dist/headless.d.cts +1117 -0
  30. package/dist/headless.d.cts.map +1 -0
  31. package/dist/headless.d.mts +1008 -0
  32. package/dist/headless.d.mts.map +1 -0
  33. package/dist/headless.mjs +1869 -0
  34. package/dist/headless.mjs.map +1 -0
  35. package/dist/index.cjs +15576 -0
  36. package/dist/index.cjs.map +1 -0
  37. package/dist/index.css +2 -0
  38. package/dist/index.d.cts +3450 -0
  39. package/dist/index.d.cts.map +1 -0
  40. package/dist/index.d.mts +3433 -0
  41. package/dist/index.d.mts.map +1 -0
  42. package/dist/index.mjs +13927 -146
  43. package/dist/index.mjs.map +1 -1
  44. package/dist/index.umd.js +18856 -0
  45. package/dist/index.umd.js.map +1 -0
  46. package/package.json +124 -52
  47. package/CHANGELOG.md +0 -4210
  48. package/dist/chunk-2IDV5OHF.mjs +0 -11
  49. package/dist/chunk-2IDV5OHF.mjs.map +0 -1
  50. package/dist/chunk-36KQV2NA.mjs +0 -1
  51. package/dist/chunk-36KQV2NA.mjs.map +0 -1
  52. package/dist/chunk-3V5TOYKW.mjs +0 -120
  53. package/dist/chunk-3V5TOYKW.mjs.map +0 -1
  54. package/dist/chunk-4CEQJ2X6.mjs +0 -31
  55. package/dist/chunk-4CEQJ2X6.mjs.map +0 -1
  56. package/dist/chunk-4RRMC7L2.mjs +0 -32
  57. package/dist/chunk-4RRMC7L2.mjs.map +0 -1
  58. package/dist/chunk-4YZA2BZC.mjs +0 -551
  59. package/dist/chunk-4YZA2BZC.mjs.map +0 -1
  60. package/dist/chunk-53K6WNJG.mjs +0 -36
  61. package/dist/chunk-53K6WNJG.mjs.map +0 -1
  62. package/dist/chunk-6ESSSQ7Q.mjs +0 -134
  63. package/dist/chunk-6ESSSQ7Q.mjs.map +0 -1
  64. package/dist/chunk-6PUNP7CD.mjs +0 -102
  65. package/dist/chunk-6PUNP7CD.mjs.map +0 -1
  66. package/dist/chunk-6YOKPWQ7.mjs +0 -1
  67. package/dist/chunk-6YOKPWQ7.mjs.map +0 -1
  68. package/dist/chunk-6ZLPNY7X.mjs +0 -225
  69. package/dist/chunk-6ZLPNY7X.mjs.map +0 -1
  70. package/dist/chunk-7DTB7S5V.mjs +0 -83
  71. package/dist/chunk-7DTB7S5V.mjs.map +0 -1
  72. package/dist/chunk-7IBF6RBW.mjs +0 -23
  73. package/dist/chunk-7IBF6RBW.mjs.map +0 -1
  74. package/dist/chunk-A6NKSGH3.mjs +0 -1
  75. package/dist/chunk-A6NKSGH3.mjs.map +0 -1
  76. package/dist/chunk-ABWT4DRT.mjs +0 -24
  77. package/dist/chunk-ABWT4DRT.mjs.map +0 -1
  78. package/dist/chunk-AFNWX62Q.mjs +0 -110
  79. package/dist/chunk-AFNWX62Q.mjs.map +0 -1
  80. package/dist/chunk-BUSWSDYO.mjs +0 -17
  81. package/dist/chunk-BUSWSDYO.mjs.map +0 -1
  82. package/dist/chunk-CDUIA2WM.mjs +0 -60
  83. package/dist/chunk-CDUIA2WM.mjs.map +0 -1
  84. package/dist/chunk-CYDWEPFL.mjs +0 -1
  85. package/dist/chunk-CYDWEPFL.mjs.map +0 -1
  86. package/dist/chunk-DMLQZG75.mjs +0 -25
  87. package/dist/chunk-DMLQZG75.mjs.map +0 -1
  88. package/dist/chunk-E7SE25ZU.mjs +0 -59
  89. package/dist/chunk-E7SE25ZU.mjs.map +0 -1
  90. package/dist/chunk-EFL5OBKN.mjs +0 -310
  91. package/dist/chunk-EFL5OBKN.mjs.map +0 -1
  92. package/dist/chunk-F555TVE4.mjs +0 -33
  93. package/dist/chunk-F555TVE4.mjs.map +0 -1
  94. package/dist/chunk-FD6FGKYY.mjs +0 -1
  95. package/dist/chunk-FD6FGKYY.mjs.map +0 -1
  96. package/dist/chunk-FDOMAPJY.mjs +0 -59
  97. package/dist/chunk-FDOMAPJY.mjs.map +0 -1
  98. package/dist/chunk-FQFXYAV7.mjs +0 -86
  99. package/dist/chunk-FQFXYAV7.mjs.map +0 -1
  100. package/dist/chunk-GPEJNVE5.mjs +0 -80
  101. package/dist/chunk-GPEJNVE5.mjs.map +0 -1
  102. package/dist/chunk-HE22TZMF.mjs +0 -186
  103. package/dist/chunk-HE22TZMF.mjs.map +0 -1
  104. package/dist/chunk-I76HKHPJ.mjs +0 -32
  105. package/dist/chunk-I76HKHPJ.mjs.map +0 -1
  106. package/dist/chunk-ICIK2BSB.mjs +0 -17
  107. package/dist/chunk-ICIK2BSB.mjs.map +0 -1
  108. package/dist/chunk-JD7BAH7U.mjs +0 -1
  109. package/dist/chunk-JD7BAH7U.mjs.map +0 -1
  110. package/dist/chunk-LHERIF3L.mjs +0 -83
  111. package/dist/chunk-LHERIF3L.mjs.map +0 -1
  112. package/dist/chunk-LSHFN2Y5.mjs +0 -349
  113. package/dist/chunk-LSHFN2Y5.mjs.map +0 -1
  114. package/dist/chunk-LUGEI4YQ.mjs +0 -1
  115. package/dist/chunk-LUGEI4YQ.mjs.map +0 -1
  116. package/dist/chunk-NB2FKV2V.mjs +0 -1
  117. package/dist/chunk-NB2FKV2V.mjs.map +0 -1
  118. package/dist/chunk-NBK4KBLX.mjs +0 -54
  119. package/dist/chunk-NBK4KBLX.mjs.map +0 -1
  120. package/dist/chunk-O7ARI5CV.mjs +0 -31
  121. package/dist/chunk-O7ARI5CV.mjs.map +0 -1
  122. package/dist/chunk-PIF5KJYI.mjs +0 -103
  123. package/dist/chunk-PIF5KJYI.mjs.map +0 -1
  124. package/dist/chunk-PMAFHQ7P.mjs +0 -65
  125. package/dist/chunk-PMAFHQ7P.mjs.map +0 -1
  126. package/dist/chunk-QNUAXSDP.mjs +0 -166
  127. package/dist/chunk-QNUAXSDP.mjs.map +0 -1
  128. package/dist/chunk-RKTVJRK7.mjs +0 -143
  129. package/dist/chunk-RKTVJRK7.mjs.map +0 -1
  130. package/dist/chunk-SKC7AJIV.mjs +0 -61
  131. package/dist/chunk-SKC7AJIV.mjs.map +0 -1
  132. package/dist/chunk-SPCZTZCY.mjs +0 -1
  133. package/dist/chunk-SPCZTZCY.mjs.map +0 -1
  134. package/dist/chunk-VV56AVPB.mjs +0 -125
  135. package/dist/chunk-VV56AVPB.mjs.map +0 -1
  136. package/dist/chunk-WF65O6HX.mjs +0 -66
  137. package/dist/chunk-WF65O6HX.mjs.map +0 -1
  138. package/dist/chunk-XDFVCQD3.mjs +0 -27
  139. package/dist/chunk-XDFVCQD3.mjs.map +0 -1
  140. package/dist/chunk-YCG6SNAU.mjs +0 -759
  141. package/dist/chunk-YCG6SNAU.mjs.map +0 -1
  142. package/dist/chunk-YTQHRJUA.mjs +0 -86
  143. package/dist/chunk-YTQHRJUA.mjs.map +0 -1
  144. package/dist/chunk-YYN33GSG.mjs +0 -73
  145. package/dist/chunk-YYN33GSG.mjs.map +0 -1
  146. package/dist/chunk-Z6JV2LRY.mjs +0 -37
  147. package/dist/chunk-Z6JV2LRY.mjs.map +0 -1
  148. package/dist/chunk-ZVF5Q6IH.mjs +0 -29
  149. package/dist/chunk-ZVF5Q6IH.mjs.map +0 -1
  150. package/dist/chunk-ZYTXB6HH.mjs +0 -151
  151. package/dist/chunk-ZYTXB6HH.mjs.map +0 -1
  152. package/dist/components/CopilotListeners.d.ts +0 -3
  153. package/dist/components/CopilotListeners.js +0 -101
  154. package/dist/components/CopilotListeners.js.map +0 -1
  155. package/dist/components/CopilotListeners.mjs +0 -9
  156. package/dist/components/CopilotListeners.mjs.map +0 -1
  157. package/dist/components/copilot-provider/copilot-messages.d.ts +0 -24
  158. package/dist/components/copilot-provider/copilot-messages.js +0 -351
  159. package/dist/components/copilot-provider/copilot-messages.js.map +0 -1
  160. package/dist/components/copilot-provider/copilot-messages.mjs +0 -16
  161. package/dist/components/copilot-provider/copilot-messages.mjs.map +0 -1
  162. package/dist/components/copilot-provider/copilotkit-props.d.ts +0 -160
  163. package/dist/components/copilot-provider/copilotkit-props.js +0 -19
  164. package/dist/components/copilot-provider/copilotkit-props.js.map +0 -1
  165. package/dist/components/copilot-provider/copilotkit-props.mjs +0 -1
  166. package/dist/components/copilot-provider/copilotkit-props.mjs.map +0 -1
  167. package/dist/components/copilot-provider/copilotkit.d.ts +0 -19
  168. package/dist/components/copilot-provider/copilotkit.js +0 -1960
  169. package/dist/components/copilot-provider/copilotkit.js.map +0 -1
  170. package/dist/components/copilot-provider/copilotkit.mjs +0 -31
  171. package/dist/components/copilot-provider/copilotkit.mjs.map +0 -1
  172. package/dist/components/copilot-provider/index.d.ts +0 -14
  173. package/dist/components/copilot-provider/index.js +0 -1960
  174. package/dist/components/copilot-provider/index.js.map +0 -1
  175. package/dist/components/copilot-provider/index.mjs +0 -30
  176. package/dist/components/copilot-provider/index.mjs.map +0 -1
  177. package/dist/components/dev-console/console-trigger.d.ts +0 -8
  178. package/dist/components/dev-console/console-trigger.js +0 -1202
  179. package/dist/components/dev-console/console-trigger.js.map +0 -1
  180. package/dist/components/dev-console/console-trigger.mjs +0 -233
  181. package/dist/components/dev-console/console-trigger.mjs.map +0 -1
  182. package/dist/components/dev-console/developer-console-modal.d.ts +0 -10
  183. package/dist/components/dev-console/developer-console-modal.js +0 -987
  184. package/dist/components/dev-console/developer-console-modal.js.map +0 -1
  185. package/dist/components/dev-console/developer-console-modal.mjs +0 -12
  186. package/dist/components/dev-console/developer-console-modal.mjs.map +0 -1
  187. package/dist/components/dev-console/icons.d.ts +0 -9
  188. package/dist/components/dev-console/icons.js +0 -131
  189. package/dist/components/dev-console/icons.js.map +0 -1
  190. package/dist/components/dev-console/icons.mjs +0 -16
  191. package/dist/components/dev-console/icons.mjs.map +0 -1
  192. package/dist/components/error-boundary/error-boundary.d.ts +0 -31
  193. package/dist/components/error-boundary/error-boundary.js +0 -500
  194. package/dist/components/error-boundary/error-boundary.js.map +0 -1
  195. package/dist/components/error-boundary/error-boundary.mjs +0 -15
  196. package/dist/components/error-boundary/error-boundary.mjs.map +0 -1
  197. package/dist/components/error-boundary/error-utils.d.ts +0 -11
  198. package/dist/components/error-boundary/error-utils.js +0 -190
  199. package/dist/components/error-boundary/error-utils.js.map +0 -1
  200. package/dist/components/error-boundary/error-utils.mjs +0 -14
  201. package/dist/components/error-boundary/error-utils.mjs.map +0 -1
  202. package/dist/components/index.d.ts +0 -14
  203. package/dist/components/index.js +0 -1960
  204. package/dist/components/index.js.map +0 -1
  205. package/dist/components/index.mjs +0 -31
  206. package/dist/components/index.mjs.map +0 -1
  207. package/dist/components/toast/exclamation-mark-icon.d.ts +0 -9
  208. package/dist/components/toast/exclamation-mark-icon.js +0 -55
  209. package/dist/components/toast/exclamation-mark-icon.js.map +0 -1
  210. package/dist/components/toast/exclamation-mark-icon.mjs +0 -8
  211. package/dist/components/toast/exclamation-mark-icon.mjs.map +0 -1
  212. package/dist/components/toast/toast-provider.d.ts +0 -27
  213. package/dist/components/toast/toast-provider.js +0 -347
  214. package/dist/components/toast/toast-provider.js.map +0 -1
  215. package/dist/components/toast/toast-provider.mjs +0 -10
  216. package/dist/components/toast/toast-provider.mjs.map +0 -1
  217. package/dist/components/usage-banner.d.ts +0 -29
  218. package/dist/components/usage-banner.js +0 -247
  219. package/dist/components/usage-banner.js.map +0 -1
  220. package/dist/components/usage-banner.mjs +0 -12
  221. package/dist/components/usage-banner.mjs.map +0 -1
  222. package/dist/context/coagent-state-renders-context.d.ts +0 -24
  223. package/dist/context/coagent-state-renders-context.js +0 -91
  224. package/dist/context/coagent-state-renders-context.js.map +0 -1
  225. package/dist/context/coagent-state-renders-context.mjs +0 -12
  226. package/dist/context/coagent-state-renders-context.mjs.map +0 -1
  227. package/dist/context/copilot-context.d.ts +0 -10
  228. package/dist/context/copilot-context.js +0 -161
  229. package/dist/context/copilot-context.js.map +0 -1
  230. package/dist/context/copilot-context.mjs +0 -10
  231. package/dist/context/copilot-context.mjs.map +0 -1
  232. package/dist/context/copilot-messages-context.d.ts +0 -18
  233. package/dist/context/copilot-messages-context.js +0 -60
  234. package/dist/context/copilot-messages-context.js.map +0 -1
  235. package/dist/context/copilot-messages-context.mjs +0 -10
  236. package/dist/context/copilot-messages-context.mjs.map +0 -1
  237. package/dist/context/index.d.ts +0 -15
  238. package/dist/context/index.js +0 -285
  239. package/dist/context/index.js.map +0 -1
  240. package/dist/context/index.mjs +0 -33
  241. package/dist/context/index.mjs.map +0 -1
  242. package/dist/context/threads-context.d.ts +0 -16
  243. package/dist/context/threads-context.js +0 -59
  244. package/dist/context/threads-context.js.map +0 -1
  245. package/dist/context/threads-context.mjs +0 -12
  246. package/dist/context/threads-context.mjs.map +0 -1
  247. package/dist/copilot-context-ec77e921.d.ts +0 -209
  248. package/dist/hooks/index.d.ts +0 -33
  249. package/dist/hooks/index.js +0 -1774
  250. package/dist/hooks/index.js.map +0 -1
  251. package/dist/hooks/index.mjs +0 -91
  252. package/dist/hooks/index.mjs.map +0 -1
  253. package/dist/hooks/use-agent-nodename.d.ts +0 -3
  254. package/dist/hooks/use-agent-nodename.js +0 -56
  255. package/dist/hooks/use-agent-nodename.js.map +0 -1
  256. package/dist/hooks/use-agent-nodename.mjs +0 -8
  257. package/dist/hooks/use-agent-nodename.mjs.map +0 -1
  258. package/dist/hooks/use-coagent-state-render-bridge.d.ts +0 -100
  259. package/dist/hooks/use-coagent-state-render-bridge.js +0 -214
  260. package/dist/hooks/use-coagent-state-render-bridge.js.map +0 -1
  261. package/dist/hooks/use-coagent-state-render-bridge.mjs +0 -15
  262. package/dist/hooks/use-coagent-state-render-bridge.mjs.map +0 -1
  263. package/dist/hooks/use-coagent-state-render.d.ts +0 -55
  264. package/dist/hooks/use-coagent-state-render.js +0 -255
  265. package/dist/hooks/use-coagent-state-render.js.map +0 -1
  266. package/dist/hooks/use-coagent-state-render.mjs +0 -11
  267. package/dist/hooks/use-coagent-state-render.mjs.map +0 -1
  268. package/dist/hooks/use-coagent.d.ts +0 -192
  269. package/dist/hooks/use-coagent.js +0 -233
  270. package/dist/hooks/use-coagent.js.map +0 -1
  271. package/dist/hooks/use-coagent.mjs +0 -9
  272. package/dist/hooks/use-coagent.mjs.map +0 -1
  273. package/dist/hooks/use-configure-chat-suggestions.d.ts +0 -36
  274. package/dist/hooks/use-configure-chat-suggestions.js +0 -79
  275. package/dist/hooks/use-configure-chat-suggestions.js.map +0 -1
  276. package/dist/hooks/use-configure-chat-suggestions.mjs +0 -47
  277. package/dist/hooks/use-configure-chat-suggestions.mjs.map +0 -1
  278. package/dist/hooks/use-copilot-action.d.ts +0 -103
  279. package/dist/hooks/use-copilot-action.js +0 -295
  280. package/dist/hooks/use-copilot-action.js.map +0 -1
  281. package/dist/hooks/use-copilot-action.mjs +0 -11
  282. package/dist/hooks/use-copilot-action.mjs.map +0 -1
  283. package/dist/hooks/use-copilot-additional-instructions.d.ts +0 -26
  284. package/dist/hooks/use-copilot-additional-instructions.js +0 -177
  285. package/dist/hooks/use-copilot-additional-instructions.js.map +0 -1
  286. package/dist/hooks/use-copilot-additional-instructions.mjs +0 -9
  287. package/dist/hooks/use-copilot-additional-instructions.mjs.map +0 -1
  288. package/dist/hooks/use-copilot-authenticated-action.d.ts +0 -18
  289. package/dist/hooks/use-copilot-authenticated-action.js +0 -462
  290. package/dist/hooks/use-copilot-authenticated-action.js.map +0 -1
  291. package/dist/hooks/use-copilot-authenticated-action.mjs +0 -13
  292. package/dist/hooks/use-copilot-authenticated-action.mjs.map +0 -1
  293. package/dist/hooks/use-copilot-chat-headless_c.d.ts +0 -25
  294. package/dist/hooks/use-copilot-chat-headless_c.js +0 -1044
  295. package/dist/hooks/use-copilot-chat-headless_c.js.map +0 -1
  296. package/dist/hooks/use-copilot-chat-headless_c.mjs +0 -24
  297. package/dist/hooks/use-copilot-chat-headless_c.mjs.map +0 -1
  298. package/dist/hooks/use-copilot-chat-suggestions.d.ts +0 -35
  299. package/dist/hooks/use-copilot-chat-suggestions.js +0 -60
  300. package/dist/hooks/use-copilot-chat-suggestions.js.map +0 -1
  301. package/dist/hooks/use-copilot-chat-suggestions.mjs +0 -8
  302. package/dist/hooks/use-copilot-chat-suggestions.mjs.map +0 -1
  303. package/dist/hooks/use-copilot-chat.d.ts +0 -92
  304. package/dist/hooks/use-copilot-chat.js +0 -978
  305. package/dist/hooks/use-copilot-chat.js.map +0 -1
  306. package/dist/hooks/use-copilot-chat.mjs +0 -21
  307. package/dist/hooks/use-copilot-chat.mjs.map +0 -1
  308. package/dist/hooks/use-copilot-chat_internal.d.ts +0 -244
  309. package/dist/hooks/use-copilot-chat_internal.js +0 -976
  310. package/dist/hooks/use-copilot-chat_internal.js.map +0 -1
  311. package/dist/hooks/use-copilot-chat_internal.mjs +0 -22
  312. package/dist/hooks/use-copilot-chat_internal.mjs.map +0 -1
  313. package/dist/hooks/use-copilot-readable.d.ts +0 -37
  314. package/dist/hooks/use-copilot-readable.js +0 -61
  315. package/dist/hooks/use-copilot-readable.js.map +0 -1
  316. package/dist/hooks/use-copilot-readable.mjs +0 -8
  317. package/dist/hooks/use-copilot-readable.mjs.map +0 -1
  318. package/dist/hooks/use-copilot-runtime-client.d.ts +0 -10
  319. package/dist/hooks/use-copilot-runtime-client.js +0 -203
  320. package/dist/hooks/use-copilot-runtime-client.js.map +0 -1
  321. package/dist/hooks/use-copilot-runtime-client.mjs +0 -9
  322. package/dist/hooks/use-copilot-runtime-client.mjs.map +0 -1
  323. package/dist/hooks/use-default-tool.d.ts +0 -8
  324. package/dist/hooks/use-default-tool.js +0 -302
  325. package/dist/hooks/use-default-tool.js.map +0 -1
  326. package/dist/hooks/use-default-tool.mjs +0 -12
  327. package/dist/hooks/use-default-tool.mjs.map +0 -1
  328. package/dist/hooks/use-flat-category-store.d.ts +0 -9
  329. package/dist/hooks/use-flat-category-store.js +0 -93
  330. package/dist/hooks/use-flat-category-store.js.map +0 -1
  331. package/dist/hooks/use-flat-category-store.mjs +0 -8
  332. package/dist/hooks/use-flat-category-store.mjs.map +0 -1
  333. package/dist/hooks/use-frontend-tool.d.ts +0 -11
  334. package/dist/hooks/use-frontend-tool.js +0 -104
  335. package/dist/hooks/use-frontend-tool.js.map +0 -1
  336. package/dist/hooks/use-frontend-tool.mjs +0 -8
  337. package/dist/hooks/use-frontend-tool.mjs.map +0 -1
  338. package/dist/hooks/use-human-in-the-loop.d.ts +0 -13
  339. package/dist/hooks/use-human-in-the-loop.js +0 -122
  340. package/dist/hooks/use-human-in-the-loop.js.map +0 -1
  341. package/dist/hooks/use-human-in-the-loop.mjs +0 -8
  342. package/dist/hooks/use-human-in-the-loop.mjs.map +0 -1
  343. package/dist/hooks/use-langgraph-interrupt-render.d.ts +0 -6
  344. package/dist/hooks/use-langgraph-interrupt-render.js +0 -318
  345. package/dist/hooks/use-langgraph-interrupt-render.js.map +0 -1
  346. package/dist/hooks/use-langgraph-interrupt-render.mjs +0 -14
  347. package/dist/hooks/use-langgraph-interrupt-render.mjs.map +0 -1
  348. package/dist/hooks/use-langgraph-interrupt.d.ts +0 -14
  349. package/dist/hooks/use-langgraph-interrupt.js +0 -201
  350. package/dist/hooks/use-langgraph-interrupt.js.map +0 -1
  351. package/dist/hooks/use-langgraph-interrupt.mjs +0 -10
  352. package/dist/hooks/use-langgraph-interrupt.mjs.map +0 -1
  353. package/dist/hooks/use-lazy-tool-renderer.d.ts +0 -6
  354. package/dist/hooks/use-lazy-tool-renderer.js +0 -53
  355. package/dist/hooks/use-lazy-tool-renderer.js.map +0 -1
  356. package/dist/hooks/use-lazy-tool-renderer.mjs +0 -8
  357. package/dist/hooks/use-lazy-tool-renderer.mjs.map +0 -1
  358. package/dist/hooks/use-make-copilot-document-readable.d.ts +0 -12
  359. package/dist/hooks/use-make-copilot-document-readable.js +0 -176
  360. package/dist/hooks/use-make-copilot-document-readable.js.map +0 -1
  361. package/dist/hooks/use-make-copilot-document-readable.mjs +0 -9
  362. package/dist/hooks/use-make-copilot-document-readable.mjs.map +0 -1
  363. package/dist/hooks/use-render-tool-call.d.ts +0 -12
  364. package/dist/hooks/use-render-tool-call.js +0 -90
  365. package/dist/hooks/use-render-tool-call.js.map +0 -1
  366. package/dist/hooks/use-render-tool-call.mjs +0 -8
  367. package/dist/hooks/use-render-tool-call.mjs.map +0 -1
  368. package/dist/hooks/use-tree.d.ts +0 -19
  369. package/dist/hooks/use-tree.js +0 -175
  370. package/dist/hooks/use-tree.js.map +0 -1
  371. package/dist/hooks/use-tree.mjs +0 -8
  372. package/dist/hooks/use-tree.mjs.map +0 -1
  373. package/dist/index.d.ts +0 -43
  374. package/dist/index.js +0 -3528
  375. package/dist/index.js.map +0 -1
  376. package/dist/lib/copilot-task.d.ts +0 -97
  377. package/dist/lib/copilot-task.js +0 -194
  378. package/dist/lib/copilot-task.js.map +0 -1
  379. package/dist/lib/copilot-task.mjs +0 -31
  380. package/dist/lib/copilot-task.mjs.map +0 -1
  381. package/dist/lib/index.d.ts +0 -11
  382. package/dist/lib/index.js +0 -196
  383. package/dist/lib/index.js.map +0 -1
  384. package/dist/lib/index.mjs +0 -32
  385. package/dist/lib/index.mjs.map +0 -1
  386. package/dist/lib/status-checker.d.ts +0 -17
  387. package/dist/lib/status-checker.js +0 -102
  388. package/dist/lib/status-checker.js.map +0 -1
  389. package/dist/lib/status-checker.mjs +0 -8
  390. package/dist/lib/status-checker.mjs.map +0 -1
  391. package/dist/setupTests.d.ts +0 -2
  392. package/dist/setupTests.js +0 -26
  393. package/dist/setupTests.js.map +0 -1
  394. package/dist/setupTests.mjs +0 -24
  395. package/dist/setupTests.mjs.map +0 -1
  396. package/dist/types/chat-suggestion-configuration.d.ts +0 -22
  397. package/dist/types/chat-suggestion-configuration.js +0 -19
  398. package/dist/types/chat-suggestion-configuration.js.map +0 -1
  399. package/dist/types/chat-suggestion-configuration.mjs +0 -1
  400. package/dist/types/chat-suggestion-configuration.mjs.map +0 -1
  401. package/dist/types/coagent-action.d.ts +0 -29
  402. package/dist/types/coagent-action.js +0 -19
  403. package/dist/types/coagent-action.js.map +0 -1
  404. package/dist/types/coagent-action.mjs +0 -1
  405. package/dist/types/coagent-action.mjs.map +0 -1
  406. package/dist/types/coagent-state.d.ts +0 -15
  407. package/dist/types/coagent-state.js +0 -19
  408. package/dist/types/coagent-state.js.map +0 -1
  409. package/dist/types/coagent-state.mjs +0 -1
  410. package/dist/types/coagent-state.mjs.map +0 -1
  411. package/dist/types/crew.d.ts +0 -79
  412. package/dist/types/crew.js +0 -19
  413. package/dist/types/crew.js.map +0 -1
  414. package/dist/types/crew.mjs +0 -2
  415. package/dist/types/crew.mjs.map +0 -1
  416. package/dist/types/document-pointer.d.ts +0 -9
  417. package/dist/types/document-pointer.js +0 -19
  418. package/dist/types/document-pointer.js.map +0 -1
  419. package/dist/types/document-pointer.mjs +0 -1
  420. package/dist/types/document-pointer.mjs.map +0 -1
  421. package/dist/types/frontend-action.d.ts +0 -127
  422. package/dist/types/frontend-action.js +0 -53
  423. package/dist/types/frontend-action.js.map +0 -1
  424. package/dist/types/frontend-action.mjs +0 -8
  425. package/dist/types/frontend-action.mjs.map +0 -1
  426. package/dist/types/index.d.ts +0 -12
  427. package/dist/types/index.js +0 -19
  428. package/dist/types/index.js.map +0 -1
  429. package/dist/types/index.mjs +0 -4
  430. package/dist/types/index.mjs.map +0 -1
  431. package/dist/types/interrupt-action.d.ts +0 -10
  432. package/dist/types/interrupt-action.js +0 -19
  433. package/dist/types/interrupt-action.js.map +0 -1
  434. package/dist/types/interrupt-action.mjs +0 -2
  435. package/dist/types/interrupt-action.mjs.map +0 -1
  436. package/dist/types/system-message.d.ts +0 -3
  437. package/dist/types/system-message.js +0 -19
  438. package/dist/types/system-message.js.map +0 -1
  439. package/dist/types/system-message.mjs +0 -1
  440. package/dist/types/system-message.mjs.map +0 -1
  441. package/dist/utils/dev-console.d.ts +0 -3
  442. package/dist/utils/dev-console.js +0 -41
  443. package/dist/utils/dev-console.js.map +0 -1
  444. package/dist/utils/dev-console.mjs +0 -8
  445. package/dist/utils/dev-console.mjs.map +0 -1
  446. package/dist/utils/index.d.ts +0 -2
  447. package/dist/utils/index.js +0 -52
  448. package/dist/utils/index.js.map +0 -1
  449. package/dist/utils/index.mjs +0 -13
  450. package/dist/utils/index.mjs.map +0 -1
  451. package/dist/utils/suggestions-constants.d.ts +0 -9
  452. package/dist/utils/suggestions-constants.js +0 -35
  453. package/dist/utils/suggestions-constants.js.map +0 -1
  454. package/dist/utils/suggestions-constants.mjs +0 -8
  455. package/dist/utils/suggestions-constants.mjs.map +0 -1
  456. package/dist/utils/utils.d.ts +0 -2
  457. package/dist/utils/utils.js +0 -19
  458. package/dist/utils/utils.js.map +0 -1
  459. package/dist/utils/utils.mjs +0 -1
  460. package/dist/utils/utils.mjs.map +0 -1
  461. package/dist/v2/index.css +0 -4
  462. package/dist/v2/index.css.map +0 -1
  463. package/dist/v2/index.d.ts +0 -2
  464. package/dist/v2/index.js +0 -27
  465. package/dist/v2/index.js.map +0 -1
  466. package/dist/v2/index.mjs +0 -6
  467. package/dist/v2/index.mjs.map +0 -1
  468. package/jest.config.js +0 -25
  469. package/src/components/CopilotListeners.tsx +0 -81
  470. package/src/components/copilot-provider/__tests__/copilotkit-error.test.tsx +0 -75
  471. package/src/components/copilot-provider/copilot-messages.tsx +0 -274
  472. package/src/components/copilot-provider/copilotkit-props.tsx +0 -169
  473. package/src/components/copilot-provider/copilotkit.tsx +0 -671
  474. package/src/components/copilot-provider/index.ts +0 -3
  475. package/src/components/dev-console/console-trigger.tsx +0 -254
  476. package/src/components/dev-console/developer-console-modal.tsx +0 -866
  477. package/src/components/dev-console/icons.tsx +0 -101
  478. package/src/components/error-boundary/error-boundary.tsx +0 -91
  479. package/src/components/error-boundary/error-utils.tsx +0 -100
  480. package/src/components/index.ts +0 -1
  481. package/src/components/toast/exclamation-mark-icon.tsx +0 -27
  482. package/src/components/toast/toast-provider.tsx +0 -363
  483. package/src/components/usage-banner.tsx +0 -259
  484. package/src/context/coagent-state-renders-context.tsx +0 -76
  485. package/src/context/copilot-context.tsx +0 -332
  486. package/src/context/copilot-messages-context.tsx +0 -35
  487. package/src/context/index.ts +0 -16
  488. package/src/context/threads-context.tsx +0 -41
  489. package/src/hooks/__tests__/use-coagent-config.test.ts +0 -351
  490. package/src/hooks/index.ts +0 -34
  491. package/src/hooks/use-agent-nodename.ts +0 -30
  492. package/src/hooks/use-coagent-state-render-bridge.tsx +0 -293
  493. package/src/hooks/use-coagent-state-render.ts +0 -152
  494. package/src/hooks/use-coagent.ts +0 -366
  495. package/src/hooks/use-configure-chat-suggestions.tsx +0 -86
  496. package/src/hooks/use-copilot-action.ts +0 -236
  497. package/src/hooks/use-copilot-additional-instructions.ts +0 -85
  498. package/src/hooks/use-copilot-authenticated-action.ts +0 -70
  499. package/src/hooks/use-copilot-chat-headless_c.ts +0 -258
  500. package/src/hooks/use-copilot-chat-suggestions.tsx +0 -124
  501. package/src/hooks/use-copilot-chat.ts +0 -130
  502. package/src/hooks/use-copilot-chat_internal.ts +0 -696
  503. package/src/hooks/use-copilot-readable.ts +0 -135
  504. package/src/hooks/use-copilot-runtime-client.ts +0 -164
  505. package/src/hooks/use-default-tool.ts +0 -7
  506. package/src/hooks/use-flat-category-store.ts +0 -105
  507. package/src/hooks/use-frontend-tool.ts +0 -96
  508. package/src/hooks/use-human-in-the-loop.ts +0 -122
  509. package/src/hooks/use-langgraph-interrupt-render.ts +0 -136
  510. package/src/hooks/use-langgraph-interrupt.ts +0 -36
  511. package/src/hooks/use-lazy-tool-renderer.tsx +0 -30
  512. package/src/hooks/use-make-copilot-document-readable.ts +0 -30
  513. package/src/hooks/use-render-tool-call.ts +0 -80
  514. package/src/hooks/use-tree.ts +0 -207
  515. package/src/index.tsx +0 -7
  516. package/src/lib/copilot-task.ts +0 -201
  517. package/src/lib/index.ts +0 -1
  518. package/src/lib/status-checker.ts +0 -64
  519. package/src/setupTests.ts +0 -26
  520. package/src/types/chat-suggestion-configuration.ts +0 -23
  521. package/src/types/coagent-action.ts +0 -31
  522. package/src/types/coagent-state.ts +0 -13
  523. package/src/types/crew.ts +0 -89
  524. package/src/types/document-pointer.ts +0 -7
  525. package/src/types/frontend-action.ts +0 -202
  526. package/src/types/index.ts +0 -17
  527. package/src/types/interrupt-action.ts +0 -43
  528. package/src/types/system-message.ts +0 -4
  529. package/src/utils/dev-console.ts +0 -19
  530. package/src/utils/index.ts +0 -2
  531. package/src/utils/suggestions-constants.ts +0 -8
  532. package/src/utils/utils.test.ts +0 -7
  533. package/src/utils/utils.ts +0 -8
  534. package/src/v2/index.css +0 -1
  535. package/src/v2/index.ts +0 -4
  536. package/tsconfig.json +0 -8
  537. package/tsup.config.ts +0 -16
  538. package/typedoc.json +0 -4
@@ -1,136 +0,0 @@
1
- import { useCopilotContext } from "../context";
2
- import React, { useCallback, useEffect, useMemo } from "react";
3
- import type { AbstractAgent, AgentSubscriber } from "@ag-ui/client";
4
- import { MetaEventName } from "@copilotkit/runtime-client-gql";
5
- import { dataToUUID, parseJson } from "@copilotkit/shared";
6
- import { useAgentNodeName } from "./use-agent-nodename";
7
- import { useCopilotChatConfiguration } from "@copilotkitnext/react";
8
-
9
- type InterruptProps = {
10
- event: any;
11
- result: any;
12
- render: (props: {
13
- event: any;
14
- result: any;
15
- resolve: (response: string) => void;
16
- }) => string | React.ReactElement;
17
- resolve: (response: string) => void;
18
- };
19
-
20
- const InterruptRenderer: React.FC<InterruptProps> = ({ event, result, render, resolve }) => {
21
- return render({ event, result, resolve });
22
- };
23
-
24
- export function useLangGraphInterruptRender(
25
- agent: AbstractAgent,
26
- ): string | React.ReactElement | null {
27
- const {
28
- interruptActions,
29
- agentSession,
30
- threadId,
31
- interruptEventQueue,
32
- addInterruptEvent,
33
- resolveInterruptEvent,
34
- } = useCopilotContext();
35
- const existingConfig = useCopilotChatConfiguration();
36
- const resolvedAgentId = existingConfig?.agentId ?? "default";
37
- const nodeName = useAgentNodeName(resolvedAgentId);
38
-
39
- useEffect(() => {
40
- if (!agent) return;
41
- let localInterrupt: any = null;
42
- const subscriber: AgentSubscriber = {
43
- onCustomEvent: ({ event }) => {
44
- if (event.name === "on_interrupt") {
45
- const eventData = {
46
- name: MetaEventName.LangGraphInterruptEvent,
47
- type: event.type,
48
- value: parseJson(event.value, event.value),
49
- };
50
- const eventId = dataToUUID(eventData, "interruptEvents");
51
- localInterrupt = {
52
- eventId,
53
- threadId,
54
- event: eventData,
55
- };
56
- }
57
- },
58
- onRunStartedEvent: () => {
59
- localInterrupt = null;
60
- },
61
- onRunFinalized: () => {
62
- if (localInterrupt) {
63
- addInterruptEvent(localInterrupt);
64
- localInterrupt = null;
65
- }
66
- },
67
- };
68
-
69
- const { unsubscribe } = agent.subscribe(subscriber);
70
- return () => {
71
- unsubscribe();
72
- };
73
- // eslint-disable-next-line react-hooks/exhaustive-deps
74
- }, [agent, threadId]);
75
-
76
- const handleResolve = useCallback(
77
- (eventId: string, response?: string) => {
78
- agent?.runAgent({
79
- forwardedProps: {
80
- command: {
81
- resume: response,
82
- },
83
- },
84
- });
85
- resolveInterruptEvent(threadId, eventId, response ?? "");
86
- },
87
- // eslint-disable-next-line react-hooks/exhaustive-deps
88
- [agent, threadId],
89
- );
90
-
91
- return useMemo(() => {
92
- // Get the queue for this thread and find the first unresponded event
93
- const eventQueue = interruptEventQueue[threadId] || [];
94
- const currentQueuedEvent = eventQueue.find((qe) => !qe.event.response);
95
-
96
- if (!currentQueuedEvent || !agentSession) return null;
97
-
98
- // Find the first matching action from all registered actions
99
- const allActions = Object.values(interruptActions);
100
- const matchingAction = allActions.find((action) => {
101
- if (!action.enabled) return true; // No filter = match all
102
- return action.enabled({
103
- eventValue: currentQueuedEvent.event.value,
104
- agentMetadata: {
105
- ...agentSession,
106
- nodeName,
107
- },
108
- });
109
- });
110
-
111
- if (!matchingAction) return null;
112
-
113
- const { render, handler } = matchingAction;
114
-
115
- const resolveInterrupt = (response: string) => {
116
- handleResolve(currentQueuedEvent.eventId, response);
117
- };
118
-
119
- let result = null;
120
- if (handler) {
121
- result = handler({
122
- event: currentQueuedEvent.event,
123
- resolve: resolveInterrupt,
124
- });
125
- }
126
-
127
- if (!render) return null;
128
-
129
- return React.createElement(InterruptRenderer, {
130
- event: currentQueuedEvent.event,
131
- result,
132
- render,
133
- resolve: resolveInterrupt,
134
- });
135
- }, [interruptActions, interruptEventQueue, threadId, agentSession, handleResolve]);
136
- }
@@ -1,36 +0,0 @@
1
- import { useContext, useEffect, useMemo } from "react";
2
- import { CopilotContext } from "../context/copilot-context";
3
- import { LangGraphInterruptRender } from "../types/interrupt-action";
4
- import { useToast } from "../components/toast/toast-provider";
5
- import { dataToUUID } from "@copilotkit/shared";
6
-
7
- export function useLangGraphInterrupt<TEventValue = any>(
8
- action: Omit<LangGraphInterruptRender<TEventValue>, "id">,
9
- dependencies?: any[],
10
- ) {
11
- const { setInterruptAction, removeInterruptAction, interruptActions, threadId } =
12
- useContext(CopilotContext);
13
- const { addToast } = useToast();
14
-
15
- const actionId = dataToUUID(action, "lgAction");
16
-
17
- useEffect(() => {
18
- if (!action) return;
19
-
20
- // if (!action.enabled) {
21
- // TODO: if there are any other actions registered, we need to warn the user that a current action without "enabled" might render for everything
22
- // addToast({
23
- // type: "warning",
24
- // message: "An action is already registered for the interrupt event",
25
- // });
26
- // return;
27
- // }
28
-
29
- setInterruptAction({ ...action, id: actionId });
30
-
31
- // Cleanup: remove action on unmount
32
- return () => {
33
- removeInterruptAction(actionId);
34
- };
35
- }, [setInterruptAction, removeInterruptAction, threadId, actionId, ...(dependencies || [])]);
36
- }
@@ -1,30 +0,0 @@
1
- import { useRenderToolCall } from "@copilotkitnext/react";
2
- import { AIMessage, Message, ToolResult } from "@copilotkit/shared";
3
- import React, { useCallback } from "react";
4
-
5
- export function useLazyToolRenderer(): (
6
- message?: AIMessage,
7
- messages?: Message[],
8
- ) => null | (() => ReturnType<ReturnType<typeof useRenderToolCall>> | null) {
9
- const renderToolCall = useRenderToolCall();
10
-
11
- return useCallback(
12
- (message?: AIMessage, messages?: Message[]) => {
13
- if (!message?.toolCalls?.length) return null;
14
-
15
- const toolCall = message.toolCalls[0];
16
- if (!toolCall) return null;
17
-
18
- const toolMessage = messages?.find(
19
- (m) => m.role === "tool" && m.toolCallId === toolCall.id,
20
- ) as ToolResult;
21
-
22
- return () =>
23
- renderToolCall({
24
- toolCall,
25
- toolMessage,
26
- });
27
- },
28
- [renderToolCall],
29
- );
30
- }
@@ -1,30 +0,0 @@
1
- import { useEffect, useRef } from "react";
2
- import { useCopilotContext } from "../context/copilot-context";
3
- import { DocumentPointer } from "../types";
4
-
5
- /**
6
- * Makes a document readable by Copilot.
7
- * @param document The document to make readable.
8
- * @param categories The categories to associate with the document.
9
- * @param dependencies The dependencies to use for the effect.
10
- * @returns The id of the document.
11
- */
12
- export function useMakeCopilotDocumentReadable(
13
- document: DocumentPointer,
14
- categories?: string[],
15
- dependencies: any[] = [],
16
- ): string | undefined {
17
- const { addDocumentContext, removeDocumentContext } = useCopilotContext();
18
- const idRef = useRef<string>(undefined!);
19
-
20
- useEffect(() => {
21
- const id = addDocumentContext(document, categories);
22
- idRef.current = id;
23
-
24
- return () => {
25
- removeDocumentContext(id);
26
- };
27
- }, [addDocumentContext, removeDocumentContext, ...dependencies]);
28
-
29
- return idRef.current;
30
- }
@@ -1,80 +0,0 @@
1
- import {
2
- ActionRenderProps,
3
- ActionRenderPropsNoArgs,
4
- ActionRenderPropsWait,
5
- FrontendAction,
6
- } from "../types";
7
- import { Parameter, getZodParameters } from "@copilotkit/shared";
8
- import React, { useEffect, useRef } from "react";
9
- import { defineToolCallRenderer, useCopilotKit } from "@copilotkitnext/react";
10
- import { parseJson } from "@copilotkit/shared";
11
-
12
- type ToolCallRendererDefinition = Parameters<typeof defineToolCallRenderer>[0];
13
-
14
- export type UseRenderToolCallArgs<T extends Parameter[] | [] = []> = Pick<
15
- FrontendAction<T>,
16
- "name" | "description" | "parameters"
17
- > & {
18
- available?: "disabled" | "enabled";
19
- render: T extends []
20
- ? (props: ActionRenderPropsNoArgs<T>) => React.ReactElement
21
- : (props: ActionRenderProps<T>) => React.ReactElement;
22
- };
23
-
24
- export function useRenderToolCall<const T extends Parameter[] | [] = []>(
25
- tool: UseRenderToolCallArgs<T>,
26
- dependencies?: any[],
27
- ) {
28
- const { copilotkit } = useCopilotKit();
29
-
30
- // Track whether we've already added this renderer to avoid duplicates
31
- const hasAddedRef = useRef(false);
32
-
33
- useEffect(() => {
34
- const { name, parameters, render } = tool;
35
- const zodParameters = getZodParameters(parameters);
36
-
37
- const renderToolCall =
38
- name === "*"
39
- ? defineToolCallRenderer({
40
- name: "*",
41
- render: ((args) => {
42
- return render({
43
- ...args,
44
- result: args.result ? parseJson(args.result, args.result) : args.result,
45
- });
46
- }) as ToolCallRendererDefinition["render"],
47
- })
48
- : defineToolCallRenderer({
49
- name,
50
- args: zodParameters,
51
- render: ((args) => {
52
- return render({
53
- ...args,
54
- result: args.result ? parseJson(args.result, args.result) : args.result,
55
- });
56
- }) as ToolCallRendererDefinition["render"],
57
- });
58
-
59
- // Remove any existing renderer with the same name
60
- const existingIndex = copilotkit.renderToolCalls.findIndex((r) => r.name === name);
61
- if (existingIndex !== -1) {
62
- copilotkit.renderToolCalls.splice(existingIndex, 1);
63
- }
64
-
65
- // Add the new renderer
66
- copilotkit.renderToolCalls.push(renderToolCall);
67
- hasAddedRef.current = true;
68
-
69
- // Cleanup: remove this renderer when the component unmounts or tool changes
70
- return () => {
71
- if (hasAddedRef.current) {
72
- const index = copilotkit.renderToolCalls.findIndex((r) => r.name === name);
73
- if (index !== -1) {
74
- copilotkit.renderToolCalls.splice(index, 1);
75
- }
76
- hasAddedRef.current = false;
77
- }
78
- };
79
- }, [tool, ...(dependencies ?? [])]);
80
- }
@@ -1,207 +0,0 @@
1
- import { randomId } from "@copilotkit/shared";
2
- import { useCallback, useReducer } from "react";
3
-
4
- export type TreeNodeId = string;
5
-
6
- export interface TreeNode {
7
- id: TreeNodeId;
8
- value: string;
9
- children: TreeNode[];
10
- parentId?: TreeNodeId;
11
- categories: Set<string>;
12
- }
13
-
14
- export type Tree = TreeNode[];
15
-
16
- export interface UseTreeReturn {
17
- tree: Tree;
18
- addElement: (value: string, categories: string[], parentId?: TreeNodeId) => TreeNodeId;
19
- printTree: (categories: string[]) => string;
20
- removeElement: (id: TreeNodeId) => void;
21
- getAllElements: () => Tree;
22
- }
23
-
24
- const findNode = (nodes: Tree, id: TreeNodeId): TreeNode | undefined => {
25
- for (const node of nodes) {
26
- if (node.id === id) {
27
- return node;
28
- }
29
- const result = findNode(node.children, id);
30
- if (result) {
31
- return result;
32
- }
33
- }
34
- return undefined;
35
- };
36
-
37
- const removeNode = (nodes: Tree, id: TreeNodeId): Tree => {
38
- return nodes.reduce((result: Tree, node) => {
39
- if (node.id !== id) {
40
- const newNode = { ...node, children: removeNode(node.children, id) };
41
- result.push(newNode);
42
- }
43
- return result;
44
- }, []);
45
- };
46
-
47
- const addNode = (nodes: Tree, newNode: TreeNode, parentId?: TreeNodeId): Tree => {
48
- if (!parentId) {
49
- return [...nodes, newNode];
50
- }
51
- return nodes.map((node) => {
52
- if (node.id === parentId) {
53
- return { ...node, children: [...node.children, newNode] };
54
- } else if (node.children.length) {
55
- return { ...node, children: addNode(node.children, newNode, parentId) };
56
- }
57
- return node;
58
- });
59
- };
60
-
61
- const treeIndentationRepresentation = (index: number, indentLevel: number): string => {
62
- if (indentLevel === 0) {
63
- return (index + 1).toString();
64
- } else if (indentLevel === 1) {
65
- return String.fromCharCode(65 + index); // 65 is the ASCII value for 'A'
66
- } else if (indentLevel === 2) {
67
- return String.fromCharCode(97 + index); // 97 is the ASCII value for 'a'
68
- } else {
69
- return "-";
70
- }
71
- };
72
-
73
- const printNode = (node: TreeNode, prefix = "", indentLevel = 0): string => {
74
- const indent = " ".repeat(3).repeat(indentLevel);
75
-
76
- const prefixPlusIndentLength = prefix.length + indent.length;
77
- const subsequentLinesPrefix = " ".repeat(prefixPlusIndentLength);
78
-
79
- const valueLines = node.value.split("\n");
80
-
81
- const outputFirstLine = `${indent}${prefix}${valueLines[0]}`;
82
- const outputSubsequentLines = valueLines
83
- .slice(1)
84
- .map((line) => `${subsequentLinesPrefix}${line}`)
85
- .join("\n");
86
-
87
- let output = `${outputFirstLine}\n`;
88
- if (outputSubsequentLines) {
89
- output += `${outputSubsequentLines}\n`;
90
- }
91
-
92
- const childPrePrefix = " ".repeat(prefix.length);
93
-
94
- node.children.forEach(
95
- (child, index) =>
96
- (output += printNode(
97
- child,
98
- `${childPrePrefix}${treeIndentationRepresentation(index, indentLevel + 1)}. `,
99
- indentLevel + 1,
100
- )),
101
- );
102
- return output;
103
- };
104
-
105
- // Action types
106
- type Action =
107
- | {
108
- type: "ADD_NODE";
109
- value: string;
110
- parentId?: string;
111
- id: string;
112
- categories: string[];
113
- }
114
- | { type: "REMOVE_NODE"; id: string };
115
-
116
- // Reducer function
117
- function treeReducer(state: Tree, action: Action): Tree {
118
- switch (action.type) {
119
- case "ADD_NODE": {
120
- const { value, parentId, id: newNodeId } = action;
121
- const newNode: TreeNode = {
122
- id: newNodeId,
123
- value,
124
- children: [],
125
- categories: new Set(action.categories),
126
- };
127
-
128
- try {
129
- return addNode(state, newNode, parentId);
130
- } catch (error) {
131
- console.error(`Error while adding node with id ${newNodeId}: ${error}`);
132
- return state;
133
- }
134
- }
135
- case "REMOVE_NODE":
136
- return removeNode(state, action.id);
137
- default:
138
- return state;
139
- }
140
- }
141
-
142
- // useTree hook
143
- const useTree = (): UseTreeReturn => {
144
- const [tree, dispatch] = useReducer(treeReducer, []);
145
-
146
- const addElement = useCallback(
147
- (value: string, categories: string[], parentId?: string): TreeNodeId => {
148
- const newNodeId = randomId(); // Generate new ID outside of dispatch
149
- dispatch({
150
- type: "ADD_NODE",
151
- value,
152
- parentId,
153
- id: newNodeId,
154
- categories: categories,
155
- });
156
- return newNodeId; // Return the new ID
157
- },
158
- [],
159
- );
160
-
161
- const removeElement = useCallback((id: TreeNodeId): void => {
162
- dispatch({ type: "REMOVE_NODE", id });
163
- }, []);
164
-
165
- const getAllElements = useCallback(() => {
166
- return tree;
167
- }, [tree]);
168
-
169
- const printTree = useCallback(
170
- (categories: string[]): string => {
171
- const categoriesSet = new Set(categories);
172
-
173
- let output = "";
174
- tree.forEach((node, index) => {
175
- // if the node does not have any of the desired categories, continue to the next node
176
- if (!setsHaveIntersection(categoriesSet, node.categories)) {
177
- return;
178
- }
179
-
180
- // add a new line before each node except the first one
181
- if (index !== 0) {
182
- output += "\n";
183
- }
184
-
185
- output += printNode(node, `${treeIndentationRepresentation(index, 0)}. `);
186
- });
187
- return output;
188
- },
189
- [tree],
190
- );
191
-
192
- return { tree, addElement, printTree, removeElement, getAllElements };
193
- };
194
-
195
- export default useTree;
196
-
197
- function setsHaveIntersection<T>(setA: Set<T>, setB: Set<T>): boolean {
198
- const [smallerSet, largerSet] = setA.size <= setB.size ? [setA, setB] : [setB, setA];
199
-
200
- for (let item of smallerSet) {
201
- if (largerSet.has(item)) {
202
- return true;
203
- }
204
- }
205
-
206
- return false;
207
- }
package/src/index.tsx DELETED
@@ -1,7 +0,0 @@
1
- "use client";
2
- export * from "./components";
3
- export * from "./context";
4
- export * from "./hooks";
5
- export * from "./types";
6
- export * from "./lib";
7
- export * from "./utils";