langgraph-ui-components 0.0.25 → 0.0.28

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 (490) hide show
  1. package/README.md +515 -55
  2. package/dist/_virtual/index.cjs.js +1 -1
  3. package/dist/_virtual/index.cjs2.js +1 -1
  4. package/dist/_virtual/index.cjs3.js +1 -1
  5. package/dist/_virtual/index.es.js +5 -2
  6. package/dist/_virtual/index.es2.js +4 -2
  7. package/dist/_virtual/index.es2.js.map +1 -1
  8. package/dist/_virtual/index.es3.js +4 -4
  9. package/dist/assets/langgraph-ui-components.css +1 -1
  10. package/dist/components/ChatBody.cjs.js +2 -2
  11. package/dist/components/ChatBody.cjs.js.map +1 -1
  12. package/dist/components/ChatBody.d.ts.map +1 -1
  13. package/dist/components/ChatBody.es.js +208 -142
  14. package/dist/components/ChatBody.es.js.map +1 -1
  15. package/dist/components/TodoList.cjs.js +2 -0
  16. package/dist/components/TodoList.cjs.js.map +1 -0
  17. package/dist/components/TodoList.d.ts +5 -0
  18. package/dist/components/TodoList.d.ts.map +1 -0
  19. package/dist/components/TodoList.es.js +65 -0
  20. package/dist/components/TodoList.es.js.map +1 -0
  21. package/dist/components/messages/AgentMessage.cjs.js +3 -1
  22. package/dist/components/messages/AgentMessage.cjs.js.map +1 -1
  23. package/dist/components/messages/AgentMessage.d.ts +5 -1
  24. package/dist/components/messages/AgentMessage.d.ts.map +1 -1
  25. package/dist/components/messages/AgentMessage.es.js +200 -112
  26. package/dist/components/messages/AgentMessage.es.js.map +1 -1
  27. package/dist/components/messages/CustomComponentRender.cjs.js.map +1 -1
  28. package/dist/components/messages/CustomComponentRender.es.js.map +1 -1
  29. package/dist/components/ui/syntax-highlighter.cjs.js +1 -1
  30. package/dist/components/ui/syntax-highlighter.cjs.js.map +1 -1
  31. package/dist/components/ui/syntax-highlighter.es.js +1 -1
  32. package/dist/entries/components.cjs.js +1 -1
  33. package/dist/entries/components.d.ts.map +1 -1
  34. package/dist/entries/components.es.js +4 -5
  35. package/dist/entries/components.es.js.map +1 -1
  36. package/dist/entries/hooks.cjs.js +1 -1
  37. package/dist/entries/hooks.d.ts.map +1 -1
  38. package/dist/entries/hooks.es.js +5 -6
  39. package/dist/entries/hooks.es.js.map +1 -1
  40. package/dist/entries/providers.cjs.js +1 -1
  41. package/dist/entries/providers.d.ts +1 -1
  42. package/dist/entries/providers.d.ts.map +1 -1
  43. package/dist/entries/providers.es.js +18 -19
  44. package/dist/entries/providers.es.js.map +1 -1
  45. package/dist/index.cjs.js +1 -1
  46. package/dist/index.d.ts +2 -2
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.es.js +28 -29
  49. package/dist/index.es.js.map +1 -1
  50. package/dist/node_modules/.pnpm/react-syntax-highlighter@16.1.0_react@19.2.3/node_modules/react-syntax-highlighter/dist/cjs/styles/prism/index.cjs.js +1 -1
  51. package/dist/node_modules/.pnpm/react-syntax-highlighter@16.1.0_react@19.2.3/node_modules/react-syntax-highlighter/dist/cjs/styles/prism/index.es.js +1 -1
  52. package/dist/node_modules/.pnpm/react-syntax-highlighter@16.1.0_react@19.2.3/node_modules/react-syntax-highlighter/dist/esm/async-languages/create-language-async-loader.cjs.js +1 -1
  53. package/dist/node_modules/.pnpm/react-syntax-highlighter@16.1.0_react@19.2.3/node_modules/react-syntax-highlighter/dist/esm/async-languages/create-language-async-loader.cjs.js.map +1 -1
  54. package/dist/node_modules/.pnpm/react-syntax-highlighter@16.1.0_react@19.2.3/node_modules/react-syntax-highlighter/dist/esm/async-languages/create-language-async-loader.es.js +1 -1
  55. package/dist/node_modules/.pnpm/react-syntax-highlighter@16.1.0_react@19.2.3/node_modules/react-syntax-highlighter/dist/esm/async-syntax-highlighter.cjs.js +1 -1
  56. package/dist/node_modules/.pnpm/react-syntax-highlighter@16.1.0_react@19.2.3/node_modules/react-syntax-highlighter/dist/esm/async-syntax-highlighter.cjs.js.map +1 -1
  57. package/dist/node_modules/.pnpm/react-syntax-highlighter@16.1.0_react@19.2.3/node_modules/react-syntax-highlighter/dist/esm/async-syntax-highlighter.es.js +1 -1
  58. package/dist/pages/Chat/Chat.cjs.js +1 -1
  59. package/dist/pages/Chat/Chat.cjs.js.map +1 -1
  60. package/dist/pages/Chat/Chat.d.ts.map +1 -1
  61. package/dist/pages/Chat/Chat.es.js +41 -34
  62. package/dist/pages/Chat/Chat.es.js.map +1 -1
  63. package/dist/pages/Sidebar/sidebar.cjs.js +1 -1
  64. package/dist/pages/Sidebar/sidebar.cjs.js.map +1 -1
  65. package/dist/pages/Sidebar/sidebar.d.ts.map +1 -1
  66. package/dist/pages/Sidebar/sidebar.es.js +75 -70
  67. package/dist/pages/Sidebar/sidebar.es.js.map +1 -1
  68. package/dist/providers/ChatProvider.cjs.js +1 -1
  69. package/dist/providers/ChatProvider.cjs.js.map +1 -1
  70. package/dist/providers/ChatProvider.d.ts +17 -1
  71. package/dist/providers/ChatProvider.d.ts.map +1 -1
  72. package/dist/providers/ChatProvider.es.js +18 -17
  73. package/dist/providers/ChatProvider.es.js.map +1 -1
  74. package/dist/providers/ChatRuntime.es.js +4 -4
  75. package/dist/providers/CustomComponentProvider.cjs.js +1 -1
  76. package/dist/providers/CustomComponentProvider.cjs.js.map +1 -1
  77. package/dist/providers/CustomComponentProvider.d.ts +11 -0
  78. package/dist/providers/CustomComponentProvider.d.ts.map +1 -1
  79. package/dist/providers/CustomComponentProvider.es.js +51 -35
  80. package/dist/providers/CustomComponentProvider.es.js.map +1 -1
  81. package/dist/providers/Stream.cjs.js +1 -1
  82. package/dist/providers/Stream.cjs.js.map +1 -1
  83. package/dist/providers/Stream.d.ts +40 -8
  84. package/dist/providers/Stream.d.ts.map +1 -1
  85. package/dist/providers/Stream.es.js +151 -119
  86. package/dist/providers/Stream.es.js.map +1 -1
  87. package/dist/providers/Thread.cjs.js +1 -1
  88. package/dist/providers/Thread.cjs.js.map +1 -1
  89. package/dist/providers/Thread.d.ts +2 -1
  90. package/dist/providers/Thread.d.ts.map +1 -1
  91. package/dist/providers/Thread.es.js +19 -19
  92. package/dist/providers/Thread.es.js.map +1 -1
  93. package/dist/styles.css +1 -1
  94. package/package.json +17 -1
  95. package/src/App.tsx +4 -4
  96. package/src/components/ChatBody.tsx +229 -78
  97. package/src/components/TodoList.tsx +72 -0
  98. package/src/components/messages/AgentMessage.tsx +288 -82
  99. package/src/components/messages/CustomComponentRender.tsx +1 -1
  100. package/src/entries/components.ts +0 -2
  101. package/src/entries/hooks.ts +0 -2
  102. package/src/entries/providers.ts +1 -3
  103. package/src/index.css +2 -2
  104. package/src/index.ts +2 -4
  105. package/src/pages/Chat/Chat.tsx +13 -3
  106. package/src/pages/Sidebar/sidebar.tsx +12 -3
  107. package/src/providers/ChatProvider.tsx +18 -1
  108. package/src/providers/CustomComponentProvider.tsx +41 -0
  109. package/src/providers/Stream.tsx +88 -25
  110. package/src/providers/Thread.tsx +2 -2
  111. package/dist/_virtual/index.cjs10.js +0 -2
  112. package/dist/_virtual/index.cjs10.js.map +0 -1
  113. package/dist/_virtual/index.cjs11.js +0 -2
  114. package/dist/_virtual/index.cjs11.js.map +0 -1
  115. package/dist/_virtual/index.cjs12.js +0 -2
  116. package/dist/_virtual/index.cjs12.js.map +0 -1
  117. package/dist/_virtual/index.cjs4.js +0 -2
  118. package/dist/_virtual/index.cjs4.js.map +0 -1
  119. package/dist/_virtual/index.cjs5.js +0 -2
  120. package/dist/_virtual/index.cjs5.js.map +0 -1
  121. package/dist/_virtual/index.cjs6.js +0 -2
  122. package/dist/_virtual/index.cjs6.js.map +0 -1
  123. package/dist/_virtual/index.cjs7.js +0 -2
  124. package/dist/_virtual/index.cjs7.js.map +0 -1
  125. package/dist/_virtual/index.cjs8.js +0 -2
  126. package/dist/_virtual/index.cjs8.js.map +0 -1
  127. package/dist/_virtual/index.cjs9.js +0 -2
  128. package/dist/_virtual/index.cjs9.js.map +0 -1
  129. package/dist/_virtual/index.es10.js +0 -8
  130. package/dist/_virtual/index.es10.js.map +0 -1
  131. package/dist/_virtual/index.es11.js +0 -5
  132. package/dist/_virtual/index.es11.js.map +0 -1
  133. package/dist/_virtual/index.es12.js +0 -8
  134. package/dist/_virtual/index.es12.js.map +0 -1
  135. package/dist/_virtual/index.es4.js +0 -6
  136. package/dist/_virtual/index.es4.js.map +0 -1
  137. package/dist/_virtual/index.es5.js +0 -5
  138. package/dist/_virtual/index.es5.js.map +0 -1
  139. package/dist/_virtual/index.es6.js +0 -5
  140. package/dist/_virtual/index.es6.js.map +0 -1
  141. package/dist/_virtual/index.es7.js +0 -5
  142. package/dist/_virtual/index.es7.js.map +0 -1
  143. package/dist/_virtual/index.es8.js +0 -5
  144. package/dist/_virtual/index.es8.js.map +0 -1
  145. package/dist/_virtual/index.es9.js +0 -5
  146. package/dist/_virtual/index.es9.js.map +0 -1
  147. package/dist/_virtual/lower-bound.cjs.js +0 -2
  148. package/dist/_virtual/lower-bound.cjs.js.map +0 -1
  149. package/dist/_virtual/lower-bound.es.js +0 -5
  150. package/dist/_virtual/lower-bound.es.js.map +0 -1
  151. package/dist/_virtual/priority-queue.cjs.js +0 -2
  152. package/dist/_virtual/priority-queue.cjs.js.map +0 -1
  153. package/dist/_virtual/priority-queue.es.js +0 -5
  154. package/dist/_virtual/priority-queue.es.js.map +0 -1
  155. package/dist/_virtual/re.cjs.js +0 -2
  156. package/dist/_virtual/re.cjs.js.map +0 -1
  157. package/dist/_virtual/re.es.js +0 -5
  158. package/dist/_virtual/re.es.js.map +0 -1
  159. package/dist/components/ToolCallFunctions.cjs.js +0 -2
  160. package/dist/components/ToolCallFunctions.cjs.js.map +0 -1
  161. package/dist/components/ToolCallFunctions.es.js +0 -75
  162. package/dist/components/ToolCallFunctions.es.js.map +0 -1
  163. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/_virtual/_rolldown/runtime.cjs.js +0 -2
  164. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/_virtual/_rolldown/runtime.cjs.js.map +0 -1
  165. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/_virtual/_rolldown/runtime.es.js +0 -12
  166. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/_virtual/_rolldown/runtime.es.js.map +0 -1
  167. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/errors/index.cjs.js +0 -2
  168. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/errors/index.cjs.js.map +0 -1
  169. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/errors/index.es.js +0 -66
  170. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/errors/index.es.js.map +0 -1
  171. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/anthropic.cjs.js +0 -2
  172. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/anthropic.cjs.js.map +0 -1
  173. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/anthropic.es.js +0 -283
  174. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/anthropic.es.js.map +0 -1
  175. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/bedrock_converse.cjs.js +0 -2
  176. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/bedrock_converse.cjs.js.map +0 -1
  177. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/bedrock_converse.es.js +0 -219
  178. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/bedrock_converse.es.js.map +0 -1
  179. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/data.cjs.js +0 -2
  180. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/data.cjs.js.map +0 -1
  181. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/data.es.js +0 -42
  182. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/data.es.js.map +0 -1
  183. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/deepseek.cjs.js +0 -2
  184. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/deepseek.cjs.js.map +0 -1
  185. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/deepseek.es.js +0 -31
  186. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/deepseek.es.js.map +0 -1
  187. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google.cjs.js +0 -2
  188. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google.cjs.js.map +0 -1
  189. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google.es.js +0 -77
  190. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google.es.js.map +0 -1
  191. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google_genai.cjs.js +0 -2
  192. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google_genai.cjs.js.map +0 -1
  193. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google_genai.es.js +0 -78
  194. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google_genai.es.js.map +0 -1
  195. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google_vertexai.cjs.js +0 -2
  196. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google_vertexai.cjs.js.map +0 -1
  197. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google_vertexai.es.js +0 -75
  198. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/google_vertexai.es.js.map +0 -1
  199. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/groq.cjs.js +0 -2
  200. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/groq.cjs.js.map +0 -1
  201. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/groq.es.js +0 -51
  202. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/groq.es.js.map +0 -1
  203. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/index.cjs.js +0 -2
  204. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/index.cjs.js.map +0 -1
  205. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/index.es.js +0 -23
  206. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/index.es.js.map +0 -1
  207. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/ollama.cjs.js +0 -2
  208. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/ollama.cjs.js.map +0 -1
  209. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/ollama.es.js +0 -31
  210. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/ollama.es.js.map +0 -1
  211. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/openai.cjs.js +0 -2
  212. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/openai.cjs.js.map +0 -1
  213. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/openai.es.js +0 -241
  214. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/openai.es.js.map +0 -1
  215. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/utils.cjs.js +0 -2
  216. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/utils.cjs.js.map +0 -1
  217. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/utils.es.js +0 -37
  218. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/utils.es.js.map +0 -1
  219. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/xai.cjs.js +0 -2
  220. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/xai.cjs.js.map +0 -1
  221. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/xai.es.js +0 -42
  222. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/block_translators/xai.es.js.map +0 -1
  223. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/content/data.cjs.js +0 -2
  224. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/content/data.cjs.js.map +0 -1
  225. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/content/data.es.js +0 -16
  226. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/messages/content/data.es.js.map +0 -1
  227. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/tracers/console.cjs.js +0 -2
  228. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/tracers/console.cjs.js.map +0 -1
  229. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/tracers/console.es.js +0 -9
  230. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/tracers/console.es.js.map +0 -1
  231. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/index.cjs.js +0 -2
  232. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/index.cjs.js.map +0 -1
  233. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/index.es.js +0 -3
  234. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/index.es.js.map +0 -1
  235. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/src/core.cjs.js +0 -2
  236. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/src/core.cjs.js.map +0 -1
  237. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/src/core.es.js +0 -230
  238. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/src/core.es.js.map +0 -1
  239. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/src/helpers.cjs.js +0 -3
  240. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/src/helpers.cjs.js.map +0 -1
  241. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/src/helpers.es.js +0 -87
  242. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/fast-json-patch/src/helpers.es.js.map +0 -1
  243. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/json.cjs.js +0 -3
  244. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/json.cjs.js.map +0 -1
  245. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/json.es.js +0 -133
  246. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/json.es.js.map +0 -1
  247. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/namespace.cjs.js +0 -2
  248. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/namespace.cjs.js.map +0 -1
  249. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/namespace.es.js +0 -29
  250. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/namespace.es.js.map +0 -1
  251. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/sax-js/sax.cjs.js +0 -10
  252. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/sax-js/sax.cjs.js.map +0 -1
  253. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/sax-js/sax.es.js +0 -795
  254. package/dist/node_modules/.pnpm/@langchain_core@1.1.33_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/sax-js/sax.es.js.map +0 -1
  255. package/dist/node_modules/.pnpm/ansi-styles@5.2.0/node_modules/ansi-styles/index.cjs.js +0 -2
  256. package/dist/node_modules/.pnpm/ansi-styles@5.2.0/node_modules/ansi-styles/index.cjs.js.map +0 -1
  257. package/dist/node_modules/.pnpm/ansi-styles@5.2.0/node_modules/ansi-styles/index.es.js +0 -111
  258. package/dist/node_modules/.pnpm/ansi-styles@5.2.0/node_modules/ansi-styles/index.es.js.map +0 -1
  259. package/dist/node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.cjs.js +0 -2
  260. package/dist/node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.cjs.js.map +0 -1
  261. package/dist/node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.es.js +0 -30
  262. package/dist/node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.es.js.map +0 -1
  263. package/dist/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.cjs.js +0 -2
  264. package/dist/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.cjs.js.map +0 -1
  265. package/dist/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.es.js +0 -112
  266. package/dist/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.es.js.map +0 -1
  267. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/_uuid.cjs.js +0 -2
  268. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/_uuid.cjs.js.map +0 -1
  269. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/_uuid.es.js +0 -3
  270. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/_uuid.es.js.map +0 -1
  271. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/fast-safe-stringify/index.cjs.js +0 -2
  272. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/fast-safe-stringify/index.cjs.js.map +0 -1
  273. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/fast-safe-stringify/index.es.js +0 -6
  274. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/fast-safe-stringify/index.es.js.map +0 -1
  275. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/fs.browser.cjs.js +0 -2
  276. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/fs.browser.cjs.js.map +0 -1
  277. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/fs.browser.es.js +0 -14
  278. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/fs.browser.es.js.map +0 -1
  279. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/p-queue.cjs.js +0 -2
  280. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/p-queue.cjs.js.map +0 -1
  281. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/p-queue.es.js +0 -3
  282. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/p-queue.es.js.map +0 -1
  283. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/prompt_cache/index.cjs.js +0 -2
  284. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/prompt_cache/index.cjs.js.map +0 -1
  285. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/prompt_cache/index.es.js +0 -200
  286. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/prompt_cache/index.es.js.map +0 -1
  287. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/xxhash/xxhash.cjs.js +0 -2
  288. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/xxhash/xxhash.cjs.js.map +0 -1
  289. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/xxhash/xxhash.es.js +0 -22
  290. package/dist/node_modules/.pnpm/langsmith@0.5.10_openai@6.16.0_zod@4.3.5_/node_modules/langsmith/dist/utils/xxhash/xxhash.es.js.map +0 -1
  291. package/dist/node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.cjs.js +0 -2
  292. package/dist/node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.cjs.js.map +0 -1
  293. package/dist/node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.es.js +0 -18
  294. package/dist/node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.es.js.map +0 -1
  295. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.cjs.js +0 -2
  296. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.cjs.js.map +0 -1
  297. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.es.js +0 -198
  298. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.es.js.map +0 -1
  299. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.cjs.js +0 -2
  300. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.cjs.js.map +0 -1
  301. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.es.js +0 -20
  302. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.es.js.map +0 -1
  303. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.cjs.js +0 -2
  304. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.cjs.js.map +0 -1
  305. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.es.js +0 -41
  306. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.es.js.map +0 -1
  307. package/dist/node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.cjs.js +0 -2
  308. package/dist/node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.cjs.js.map +0 -1
  309. package/dist/node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.es.js +0 -45
  310. package/dist/node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.es.js.map +0 -1
  311. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.cjs.js +0 -2
  312. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.cjs.js.map +0 -1
  313. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.es.js +0 -57
  314. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.es.js.map +0 -1
  315. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.cjs.js +0 -2
  316. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.cjs.js.map +0 -1
  317. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.es.js +0 -149
  318. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.es.js.map +0 -1
  319. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.cjs.js +0 -2
  320. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.cjs.js.map +0 -1
  321. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.es.js +0 -170
  322. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.es.js.map +0 -1
  323. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.cjs.js +0 -2
  324. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.cjs.js.map +0 -1
  325. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.es.js +0 -15
  326. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.es.js.map +0 -1
  327. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.cjs.js +0 -2
  328. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.cjs.js.map +0 -1
  329. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.es.js +0 -40
  330. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.es.js.map +0 -1
  331. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.cjs.js +0 -2
  332. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.cjs.js.map +0 -1
  333. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.es.js +0 -34
  334. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.es.js.map +0 -1
  335. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.cjs.js +0 -2
  336. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.cjs.js.map +0 -1
  337. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.es.js +0 -15
  338. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.es.js.map +0 -1
  339. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.cjs.js +0 -2
  340. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.cjs.js.map +0 -1
  341. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.es.js +0 -12
  342. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.es.js.map +0 -1
  343. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.cjs.js +0 -2
  344. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.cjs.js.map +0 -1
  345. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.es.js +0 -12
  346. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.es.js.map +0 -1
  347. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.cjs.js +0 -2
  348. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.cjs.js.map +0 -1
  349. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.es.js +0 -25
  350. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.es.js.map +0 -1
  351. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.cjs.js +0 -2
  352. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.cjs.js.map +0 -1
  353. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.es.js +0 -12
  354. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.es.js.map +0 -1
  355. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.cjs.js +0 -2
  356. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.cjs.js.map +0 -1
  357. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.es.js +0 -12
  358. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.es.js.map +0 -1
  359. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.cjs.js +0 -2
  360. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.cjs.js.map +0 -1
  361. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.es.js +0 -12
  362. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.es.js.map +0 -1
  363. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.cjs.js +0 -2
  364. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.cjs.js.map +0 -1
  365. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.es.js +0 -22
  366. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.es.js.map +0 -1
  367. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.cjs.js +0 -2
  368. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.cjs.js.map +0 -1
  369. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.es.js +0 -12
  370. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.es.js.map +0 -1
  371. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.cjs.js +0 -2
  372. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.cjs.js.map +0 -1
  373. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.es.js +0 -12
  374. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.es.js.map +0 -1
  375. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.cjs.js +0 -2
  376. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.cjs.js.map +0 -1
  377. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.es.js +0 -12
  378. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.es.js.map +0 -1
  379. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.cjs.js +0 -2
  380. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.cjs.js.map +0 -1
  381. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.es.js +0 -12
  382. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.es.js.map +0 -1
  383. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.cjs.js +0 -2
  384. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.cjs.js.map +0 -1
  385. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.es.js +0 -12
  386. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.es.js.map +0 -1
  387. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.cjs.js +0 -2
  388. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.cjs.js.map +0 -1
  389. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.es.js +0 -22
  390. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.es.js.map +0 -1
  391. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.cjs.js +0 -2
  392. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.cjs.js.map +0 -1
  393. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.es.js +0 -12
  394. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.es.js.map +0 -1
  395. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.cjs.js +0 -2
  396. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.cjs.js.map +0 -1
  397. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.es.js +0 -15
  398. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.es.js.map +0 -1
  399. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.cjs.js +0 -2
  400. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.cjs.js.map +0 -1
  401. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.es.js +0 -12
  402. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.es.js.map +0 -1
  403. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.cjs.js +0 -2
  404. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.cjs.js.map +0 -1
  405. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.es.js +0 -12
  406. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.es.js.map +0 -1
  407. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.cjs.js +0 -2
  408. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.cjs.js.map +0 -1
  409. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.es.js +0 -19
  410. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.es.js.map +0 -1
  411. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.cjs.js +0 -2
  412. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.cjs.js.map +0 -1
  413. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.es.js +0 -12
  414. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.es.js.map +0 -1
  415. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.cjs.js +0 -2
  416. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.cjs.js.map +0 -1
  417. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.es.js +0 -15
  418. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.es.js.map +0 -1
  419. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.cjs.js +0 -2
  420. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.cjs.js.map +0 -1
  421. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.es.js +0 -98
  422. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.es.js.map +0 -1
  423. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.cjs.js +0 -2
  424. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.cjs.js.map +0 -1
  425. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.es.js +0 -29
  426. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.es.js.map +0 -1
  427. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.cjs.js +0 -2
  428. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.cjs.js.map +0 -1
  429. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.es.js +0 -9
  430. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.es.js.map +0 -1
  431. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.cjs.js +0 -2
  432. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.cjs.js.map +0 -1
  433. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.es.js +0 -19
  434. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.es.js.map +0 -1
  435. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.cjs.js +0 -2
  436. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.cjs.js.map +0 -1
  437. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.es.js +0 -33
  438. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.es.js.map +0 -1
  439. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.cjs.js +0 -2
  440. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.cjs.js.map +0 -1
  441. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.es.js +0 -11
  442. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.es.js.map +0 -1
  443. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.cjs.js +0 -2
  444. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.cjs.js.map +0 -1
  445. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.es.js +0 -33
  446. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.es.js.map +0 -1
  447. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.cjs.js +0 -2
  448. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.cjs.js.map +0 -1
  449. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.es.js +0 -12
  450. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.es.js.map +0 -1
  451. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.cjs.js +0 -2
  452. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.cjs.js.map +0 -1
  453. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.es.js +0 -12
  454. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.es.js.map +0 -1
  455. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.cjs.js +0 -2
  456. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.cjs.js.map +0 -1
  457. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.es.js +0 -12
  458. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.es.js.map +0 -1
  459. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.cjs.js +0 -2
  460. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.cjs.js.map +0 -1
  461. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.es.js +0 -23
  462. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.es.js.map +0 -1
  463. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.cjs.js +0 -2
  464. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.cjs.js.map +0 -1
  465. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.es.js +0 -23
  466. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.es.js.map +0 -1
  467. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.cjs.js +0 -2
  468. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.cjs.js.map +0 -1
  469. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.es.js +0 -43
  470. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.es.js.map +0 -1
  471. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.cjs.js +0 -2
  472. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.cjs.js.map +0 -1
  473. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.es.js +0 -45
  474. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.es.js.map +0 -1
  475. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.cjs.js +0 -2
  476. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.cjs.js.map +0 -1
  477. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.es.js +0 -25
  478. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.es.js.map +0 -1
  479. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.cjs.js +0 -2
  480. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.cjs.js.map +0 -1
  481. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.es.js +0 -95
  482. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.es.js.map +0 -1
  483. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.cjs.js +0 -2
  484. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.cjs.js.map +0 -1
  485. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.es.js +0 -12
  486. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.es.js.map +0 -1
  487. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.cjs.js +0 -2
  488. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.cjs.js.map +0 -1
  489. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.es.js +0 -18
  490. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.es.js.map +0 -1
package/README.md CHANGED
@@ -12,6 +12,8 @@ A React component library for building AI chat interfaces with LangChain/LangGra
12
12
  - 🧩 **Provider-based architecture** - Flexible state management with React Context
13
13
  - 📝 **TypeScript** - Full type definitions included
14
14
  - 🎨 **Tailwind CSS** - Pre-built styles, easy to customize
15
+ - 🛑 **Human-in-the-Loop (HITL)** - Built-in interrupt handling for agent approval flows
16
+ - 📋 **Deep Agent Todos** - Built-in "Agent Plan" progress card that tracks multi-step agent tasks in real time
15
17
 
16
18
  ## Installation
17
19
 
@@ -136,8 +138,10 @@ import { Chat } from 'langgraph-ui-components/components';
136
138
 
137
139
  **Props:**
138
140
  - `enableToolCallIndicator?: boolean` - Show visual indicators when AI tools are being executed. Default: `false`
139
- - `callThisOnSubmit?: () => Promise<FileInfo[]>` - Custom callback executed before message submission, useful for uploading files to external storage
141
+ - `callThisOnSubmit?: () => Promise<CallThisOnSubmitResponse | void>` - Custom callback executed before message submission, useful for uploading files to external storage. Return `{ files, contextValues }` to attach files or inject context into the message.
140
142
  - `handleFileSelect?: (event: React.ChangeEvent<HTMLInputElement>) => void` - Custom file selection handler to override default behavior
143
+ - `inputFileAccept?: string` - File types accepted by the file input (e.g. `"image/*,.pdf"`)
144
+ - `chatBodyProps?: chatBodyProps` - Customize agent name, avatar, and font size (see [chatBodyProps](#chatbodyprops))
141
145
 
142
146
  ### Sidebar Component
143
147
 
@@ -164,27 +168,36 @@ import { Sidebar } from 'langgraph-ui-components/components';
164
168
  - `leftPanelContent?: React.ReactNode` - Custom content to display in the left expansion panel
165
169
  - `leftPanelOpen?: boolean` - External control for left panel open state
166
170
  - `setLeftPanelOpen?: (open: boolean) => void` - External setter for left panel open state
171
+ - `leftPanelInitialWidth?: number` - Initial width of the left panel in pixels
172
+ - `leftPanelClassName?: string` - CSS class name for the left panel container
173
+ - `banner?: React.ReactNode` - Optional banner rendered above the chat messages (e.g. an alert or notice)
174
+ - `filePreview?: (files: FileInfo[], setFileInput) => React.ReactNode` - Custom file preview renderer for selected files before submission
175
+ - `inputFileAccept?: string` - File types accepted by the file input (e.g. `"image/*,.pdf"`)
176
+ - `s3_upload?: boolean` - Enable S3 upload mode for file attachments
167
177
 
168
178
  ## Exported Providers
169
179
 
170
- - `ChatProvider` - Core chat state management
180
+ - `ChatProvider` - Core chat state management. Props: `apiUrl`, `assistantId`, `identity?`, `initialMode?` (`"single"` | `"multi"`, default `"single"`), `customComponents?`, `suspenseFallback?`
171
181
  - `ChatRuntimeProvider` - Runtime configuration
172
- - `ThreadProvider` - Conversation thread management
182
+ - `ThreadProvider` - Conversation thread management. Props: `initialMode?` (`"single"` | `"multi"`, default `"single"`)
173
183
  - `StreamProvider` - AI streaming responses
174
184
  - `FileProvider` - File upload handling
175
185
  - `CustomComponentProvider` - Custom component rendering
176
186
 
177
187
  ## Exported Hooks
178
188
 
179
- - `useThread()` - Access thread state (`langgraph-ui-components/providers`)
180
- - `useStreamContext()` - Access streaming state (`langgraph-ui-components/providers`)
181
- - `useChatRuntime()` - Access runtime config (`langgraph-ui-components/providers`)
182
- - `useFileProvider()` - Access file state (`langgraph-ui-components/providers`)
183
- - `useCustomComponents()` - Register custom components (`langgraph-ui-components/providers`)
184
- - `useChatSuggestions()` - Display contextual chat suggestions (`langgraph-ui-components/providers`)
185
- - `useTools()` - Access tool registration helpers (`langgraph-ui-components/hooks`)
186
- - `useToolsDefault` - Backward-compatible default export alias for `useTools` (`langgraph-ui-components/hooks`)
187
- - `useModels()` - Access configured model options (`langgraph-ui-components/hooks`)
189
+ All from `langgraph-ui-components/providers` unless noted:
190
+
191
+ | Hook | Description |
192
+ |------|-------------|
193
+ | `useStreamContext()` | Messages, loading state, sendMessage, stop, interrupt — [details](#usestreamcontext) |
194
+ | `useThread()` | Thread ID, thread list, deleteThread, updateThread, mode — [details](#usethread) |
195
+ | `useChatRuntime()` | apiUrl, assistantId, setAssistantId, identity — [details](#usechatruntime) |
196
+ | `useFileProvider()` | `fileInput: FileInfo[]` and `setFileInput` |
197
+ | `useCustomComponents()` | Register generative UI and interrupt components — [details](#custom-components) |
198
+ | `useChatSuggestions()` | Opt-in chat suggestions — [details](#usechatsuggestions-hook) |
199
+ | `useTools()` *(hooks)* | Sidebar tool buttons — [details](#usetools) |
200
+ | `useModels()` *(hooks)* | Model list and selection — [details](#usemodels) |
188
201
 
189
202
  ## useChatSuggestions Hook
190
203
 
@@ -200,7 +213,7 @@ The `useChatSuggestions` hook enables intelligent, opt-in chat suggestions for y
200
213
  ### Basic Usage
201
214
 
202
215
  ```tsx
203
- import { useChatSuggestions } from 'langgraph-ui-components/hooks';
216
+ import { useChatSuggestions } from 'langgraph-ui-components/providers';
204
217
 
205
218
  function MyComponent() {
206
219
  // Simply call the hook - it registers configuration internally
@@ -261,41 +274,246 @@ function ChatInterface() {
261
274
 
262
275
  When dependencies change, suggestions are regenerated to match the new context.
263
276
 
264
- ## sendMessage Function
277
+ ## useStreamContext
265
278
 
266
- The `sendMessage` function is available through the `useStreamContext()` hook and allows you to send messages programmatically to the AI agent.
279
+ Access the full streaming state and control functions from anywhere inside the provider tree.
267
280
 
268
- ### Parameters
281
+ ```tsx
282
+ import { useStreamContext } from 'langgraph-ui-components/providers';
283
+
284
+ const {
285
+ messages, // Message[] — all messages in the conversation
286
+ isLoading, // boolean — true while agent is streaming
287
+ interrupt, // interrupt payload when agent pauses for human input
288
+ sendMessage, // send a message programmatically
289
+ submitMessage, // low-level submit with stream control options
290
+ regenerateMessage, // regenerate an AI response by message ID
291
+ fetchCatalog, // fetch available agents from /agents/catalog
292
+ stop, // cancel the current stream
293
+ } = useStreamContext();
294
+ ```
269
295
 
270
- - `message` (Message | string): The message content. Can be a string for simple text messages or a full Message object for more control.
271
- - `options` (optional object):
272
- - `type` (Message["type"], optional): The message type to use when sending a string message. Defaults to "human" for user messages. Use "system" for agent-only messages.
273
- - `config` (any, optional): Additional configuration to pass to the agent.
296
+ ### sendMessage
274
297
 
275
- ### Usage Example
298
+ Send a message programmatically. The message is appended to the conversation and submitted to the agent.
276
299
 
277
300
  ```tsx
278
- import { useStreamContext } from 'langgraph-ui-components/hooks';
301
+ // Simple string
302
+ await sendMessage("Hello!");
303
+
304
+ // With options
305
+ await sendMessage("Hello!", {
306
+ type: "human", // message type, defaults to "human"
307
+ hidden: true, // hide from UI (useful for system-level triggers)
308
+ id: "custom-id", // custom message ID instead of auto-generated UUID
309
+ context: { key: "val" }, // extra context merged with identity
310
+ additional_kwargs: {}, // custom metadata attached to the message
311
+ });
312
+ ```
279
313
 
280
- function MyComponent() {
281
- const { sendMessage } = useStreamContext();
314
+ | Option | Type | Description |
315
+ |--------|------|-------------|
316
+ | `type` | `Message["type"]` | Message type (`"human"`, `"system"`, etc.). Default: `"human"` |
317
+ | `hidden` | `boolean` | If `true`, message is not shown in the chat UI |
318
+ | `id` | `string` | Custom message ID (auto-generated UUID if omitted) |
319
+ | `name` | `string` | Required for function/tool messages |
320
+ | `tool_call_id` | `string` | ID linking this message to a tool call |
321
+ | `tool_calls` | `ToolCall[]` | Tool calls to attach to the message |
322
+ | `additional_kwargs` | `Record<string, unknown>` | Custom metadata on the message |
323
+ | `ui` | `UIMessage[]` | UI components to display alongside the message |
324
+ | `context` | `Record<string, unknown>` | Context values merged with identity for this message |
282
325
 
283
- const handleSend = async () => {
284
- await sendMessage("Hello, AI!", { isAIMessage: false });
285
- };
326
+ ### submitMessage
327
+
328
+ Low-level submit with full control over streaming behavior. Use this when you need non-default stream modes.
329
+
330
+ ```tsx
331
+ await submitMessage(messageObject, {
332
+ streamMode: ["values", "updates"], // which stream modes to use
333
+ streamSubgraphs: true, // include subgraph updates
334
+ streamResumable: true, // allow stream resumption
335
+ contextValues: { user_role: "admin" }, // extra context for this call
336
+ });
337
+ ```
338
+
339
+ ### regenerateMessage
340
+
341
+ Regenerate an AI response. Resumes from the checkpoint before the given message ID.
342
+
343
+ ```tsx
344
+ await regenerateMessage(messageId);
345
+ ```
346
+
347
+ ### fetchCatalog
348
+
349
+ Fetch the list of available agents from your API's `/agents/catalog` endpoint.
350
+
351
+ ```tsx
352
+ const catalog = await fetchCatalog();
353
+ ```
354
+
355
+ ### stop
356
+
357
+ Cancel the currently active stream.
358
+
359
+ ```tsx
360
+ const { stop, isLoading } = useStreamContext();
361
+
362
+ <button onClick={stop} disabled={!isLoading}>Stop</button>
363
+ ```
364
+
365
+ ## useThread
366
+
367
+ Access and manage conversation threads.
368
+
369
+ ```tsx
370
+ import { useThread } from 'langgraph-ui-components/providers';
371
+
372
+ const {
373
+ threadId, // string | null — current thread ID
374
+ setThreadId, // switch to a different thread
375
+ threads, // Thread[] — list of all threads
376
+ getThreads, // fetch threads from API
377
+ setThreads, // directly update thread list
378
+ configuration, // ThreadConfiguration — config passed to LangGraph on each call
379
+ setConfiguration, // update thread configuration
380
+ mode, // "single" | "multi"
381
+ setMode, // switch between single and multi-thread modes
382
+ threadsLoading, // boolean — true while fetching thread list
383
+ deleteThread, // delete a thread by ID
384
+ updateThread, // update thread metadata
385
+ } = useThread();
386
+ ```
387
+
388
+ ### deleteThread
389
+
390
+ ```tsx
391
+ await deleteThread(threadId);
392
+ // Removes thread from list and clears current threadId if it was the active one
393
+ ```
394
+
395
+ ### updateThread
396
+
397
+ ```tsx
398
+ await updateThread(threadId, { title: "My conversation" });
399
+ // Updates metadata on the thread and refreshes the thread list
400
+ ```
401
+
402
+ ### Thread Configuration
403
+
404
+ `configuration` is a free-form object passed to the LangGraph API on every stream call. Use it to send per-thread settings your agent reads from `config.configurable`:
405
+
406
+ ```tsx
407
+ const { setConfiguration } = useThread();
408
+
409
+ setConfiguration({
410
+ temperature: 0.7,
411
+ system_prompt: "You are a helpful assistant.",
412
+ });
413
+ ```
414
+
415
+ ### URL-based Thread Loading
416
+
417
+ Append `?thread=<threadId>` to the page URL to automatically load a specific thread on mount:
418
+
419
+ ```
420
+ https://yourapp.com/chat?thread=abc123
421
+ ```
422
+
423
+ ## useChatRuntime
424
+
425
+ Access and update the core runtime configuration.
426
+
427
+ ```tsx
428
+ import { useChatRuntime } from 'langgraph-ui-components/providers';
429
+
430
+ const {
431
+ apiUrl, // string — base API URL
432
+ assistantId, // string — current assistant/graph ID
433
+ setAssistantId, // switch to a different assistant at runtime
434
+ identity, // ChatIdentity | null | undefined
435
+ } = useChatRuntime();
436
+ ```
437
+
438
+ `setAssistantId` is useful when your app lets users pick which agent to talk to:
286
439
 
287
- return <button onClick={handleSend}>Send Message</button>;
440
+ ```tsx
441
+ const { setAssistantId } = useChatRuntime();
442
+
443
+ <button onClick={() => setAssistantId("support_agent")}>Switch to Support</button>
444
+ ```
445
+
446
+ ## useTools
447
+
448
+ Manage the sidebar tool buttons (the icon strip on the left panel).
449
+
450
+ ```tsx
451
+ import { useTools } from 'langgraph-ui-components/hooks';
452
+
453
+ const {
454
+ tool, // CustomTool[] — built-in tools (Search, Chat)
455
+ addTool, // add a custom tool button
456
+ userDefinedTools, // CustomTool[] — tools added via addTool
457
+ setUserDefinedTools, // directly replace user-defined tools
458
+ } = useTools();
459
+ ```
460
+
461
+ ### Adding a Custom Tool
462
+
463
+ ```tsx
464
+ import { useTools } from 'langgraph-ui-components/hooks';
465
+ import { Download } from 'lucide-react';
466
+
467
+ function MyApp() {
468
+ const { addTool } = useTools();
469
+
470
+ useEffect(() => {
471
+ addTool({
472
+ label: "Export",
473
+ icon: <Download />,
474
+ alt: "Export conversation", // tooltip text
475
+ onClick: () => handleExport(),
476
+ });
477
+ }, []);
288
478
  }
289
479
  ```
290
480
 
291
- This will send a user-visible message "Hello, AI!" to the agent.
481
+ ### CustomTool Type
482
+
483
+ ```typescript
484
+ type CustomTool = {
485
+ label: string; // display name
486
+ icon: React.ReactElement; // icon component (e.g. from lucide-react)
487
+ alt?: string; // tooltip text
488
+ onClick: () => void; // click handler
489
+ };
490
+ ```
491
+
492
+ ## useModels
493
+
494
+ Fetch and manage model selection. Calls `GET /agents/models` on mount and persists the selection to `localStorage`.
292
495
 
293
- For agent-only messages:
496
+ ```tsx
497
+ import { useModels } from 'langgraph-ui-components/hooks';
498
+
499
+ const {
500
+ models, // ModelOption[] — available models
501
+ selectedModel, // string — currently selected model ID
502
+ setSelectedModel, // update selection (also persists to localStorage)
503
+ loading, // boolean — true while fetching
504
+ } = useModels();
505
+ ```
294
506
 
295
507
  ```tsx
296
- await sendMessage("Internal event occurred", { type: "system" });
508
+ // ModelOption type
509
+ type ModelOption = {
510
+ id: string;
511
+ name: string;
512
+ };
297
513
  ```
298
514
 
515
+ Models with "embed" or "rerank" in their ID are automatically filtered out. Selection persists under the localStorage key `"agent-chat:selected-model"` and is safe for SSR environments.
516
+
299
517
  ## Custom Components
300
518
 
301
519
  You can inject custom React components into chat messages using the `CustomComponentProvider`. Components are registered by name and can be referenced in message content.
@@ -327,7 +545,7 @@ function App() {
327
545
  Use the `registerComponent` method from the `useCustomComponents` hook:
328
546
 
329
547
  ```tsx
330
- import { useCustomComponents } from 'langgraph-ui-components/hooks';
548
+ import { useCustomComponents } from 'langgraph-ui-components/providers';
331
549
 
332
550
  function RegisterComponent() {
333
551
  const { registerComponent } = useCustomComponents();
@@ -345,29 +563,271 @@ function RegisterComponent() {
345
563
  - `registerComponents(components)`: Register multiple components at once.
346
564
  - `unregisterComponent(name)`: Remove a registered component.
347
565
 
566
+ ## Human-in-the-Loop (HITL) Interrupts
567
+
568
+ LangGraph agents can pause mid-execution and ask a human to review or approve an action before continuing. This library has built-in support for rendering these interrupt requests with custom UI.
569
+
570
+ ### How It Works
571
+
572
+ 1. Your agent raises an interrupt with an `actionRequests` payload
573
+ 2. The library detects `stream.interrupt` and looks up a registered interrupt component by **tool name**
574
+ 3. Your component receives the interrupt data and action callbacks
575
+ 4. Calling one of the action callbacks resumes the agent
576
+
577
+ ### Agent-side Interrupt Format
578
+
579
+ Your LangGraph agent should raise an interrupt with this shape:
580
+
581
+ ```python
582
+ from langgraph.types import interrupt
583
+
584
+ interrupt({
585
+ "actionRequests": [
586
+ {
587
+ "name": "send_email", # must match the name you register
588
+ "args": {"to": "user@example.com", "subject": "Hello"},
589
+ "description": "Send a welcome email" # optional
590
+ }
591
+ ],
592
+ "reviewConfigs": [
593
+ {
594
+ "actionName": "send_email",
595
+ "allowedDecisions": ["approve", "reject", "edit"]
596
+ }
597
+ ]
598
+ })
599
+ ```
600
+
601
+ ### Registering an Interrupt Component
602
+
603
+ Use `registerInterruptComponent` from `useCustomComponents()` to register a component for a specific tool name:
604
+
605
+ ```tsx
606
+ import { useCustomComponents } from 'langgraph-ui-components/providers';
607
+ import type { InterruptComponentProps } from 'langgraph-ui-components/providers';
608
+ import { useEffect } from 'react';
609
+
610
+ function SendEmailInterrupt({ interrupt, actions }: InterruptComponentProps) {
611
+ const request = interrupt.actionRequests[0];
612
+
613
+ return (
614
+ <div className="border rounded p-4">
615
+ <h3>Approve Action: {request.name}</h3>
616
+ <pre>{JSON.stringify(request.args, null, 2)}</pre>
617
+ <div className="flex gap-2 mt-3">
618
+ <button onClick={() => actions.approve()}>Approve</button>
619
+ <button onClick={() => actions.reject("Not needed")}>Reject</button>
620
+ <button onClick={() => actions.edit({ subject: "Updated subject" })}>
621
+ Edit & Approve
622
+ </button>
623
+ </div>
624
+ </div>
625
+ );
626
+ }
627
+
628
+ function App() {
629
+ const { registerInterruptComponent } = useCustomComponents();
630
+
631
+ useEffect(() => {
632
+ // Register for the tool name that matches your agent's interrupt
633
+ registerInterruptComponent('send_email', SendEmailInterrupt);
634
+ }, [registerInterruptComponent]);
635
+
636
+ return <Sidebar />;
637
+ }
638
+ ```
639
+
640
+ Or register via `ChatProvider`'s `customComponents` if you prefer props-based setup (note: this is for generative UI components — for interrupts, use `registerInterruptComponent` as above).
641
+
642
+ ### `InterruptComponentProps`
643
+
644
+ ```typescript
645
+ interface InterruptComponentProps {
646
+ interrupt: {
647
+ actionRequests: Array<{
648
+ name: string;
649
+ args: Record<string, unknown>;
650
+ description?: string;
651
+ }>;
652
+ reviewConfigs: Array<{
653
+ actionName: string;
654
+ allowedDecisions: string[];
655
+ argsSchema?: Record<string, unknown>;
656
+ }>;
657
+ };
658
+ actions: {
659
+ /** Resume the agent with approval */
660
+ approve: () => void;
661
+ /** Resume the agent with rejection */
662
+ reject: (reason?: string) => void;
663
+ /** Resume the agent with edited arguments */
664
+ edit: (editedArgs: Record<string, unknown>) => void;
665
+ };
666
+ }
667
+ ```
668
+
669
+ ### `useCustomComponents` — Interrupt Methods
670
+
671
+ - `registerInterruptComponent(toolName, component)` — Register a component to render when the agent interrupts for the given tool name
672
+ - `unregisterInterruptComponent(toolName)` — Remove a registered interrupt component
673
+
674
+ ### Accessing Interrupt State Directly
675
+
676
+ You can also access the raw interrupt from the stream context if you need to build custom logic:
677
+
678
+ ```tsx
679
+ import { useStreamContext } from 'langgraph-ui-components/providers';
680
+
681
+ function MyComponent() {
682
+ const { interrupt, isLoading } = useStreamContext();
683
+
684
+ if (!isLoading && interrupt) {
685
+ console.log('Agent paused:', interrupt.value);
686
+ }
687
+ }
688
+ ```
689
+
690
+ ## Deep Agent Todos
691
+
692
+ When your agent works through a multi-step plan, it can expose a `todos` list in its LangGraph state. The library automatically picks this up and renders an **"Agent Plan"** card above the agent's response — showing a progress bar, the currently active step, and a status-icon list of all tasks.
693
+
694
+ ### What it looks like
695
+
696
+ ```
697
+ ┌─────────────────────────────────────────┐
698
+ │ ✦ Agent Plan 2 / 4 done │
699
+ │ Now: Analysing purchase history │
700
+ │ ████████░░░░░░░░░░░░ 50% │
701
+ │ │
702
+ │ ✓ Fetch customer profile │
703
+ │ ✓ Load order history │
704
+ │ ⟳ Analysing purchase history │
705
+ │ ○ Generate recommendations │
706
+ └─────────────────────────────────────────┘
707
+ ```
708
+
709
+ Status icons: `✓` completed · `⟳` in_progress (spinning) · `○` pending
710
+
711
+ ### Agent-side setup (Python)
712
+
713
+ Add a `todos` field to your LangGraph state and update it as your agent progresses through steps:
714
+
715
+ ```python
716
+ from typing import TypedDict, Literal
717
+ from langgraph.graph import StateGraph
718
+
719
+ class TodoItem(TypedDict):
720
+ id: str
721
+ content: str
722
+ status: Literal["pending", "in_progress", "completed"]
723
+
724
+ class AgentState(TypedDict):
725
+ messages: list
726
+ todos: list[TodoItem]
727
+
728
+ def plan_node(state: AgentState):
729
+ return {
730
+ "todos": [
731
+ {"id": "1", "content": "Fetch customer profile", "status": "pending"},
732
+ {"id": "2", "content": "Load order history", "status": "pending"},
733
+ {"id": "3", "content": "Analyse purchase history", "status": "pending"},
734
+ {"id": "4", "content": "Generate recommendations", "status": "pending"},
735
+ ]
736
+ }
737
+
738
+ def step_1(state: AgentState):
739
+ # Mark step 1 in_progress, then completed when done
740
+ return {
741
+ "todos": [
742
+ {"id": "1", "content": "Fetch customer profile", "status": "completed"},
743
+ {"id": "2", "content": "Load order history", "status": "in_progress"},
744
+ {"id": "3", "content": "Analyse purchase history", "status": "pending"},
745
+ {"id": "4", "content": "Generate recommendations", "status": "pending"},
746
+ ]
747
+ }
748
+
749
+ # ... continue updating todos in each node
750
+ ```
751
+
752
+ The UI reads `todos` directly from the LangGraph state values — no extra configuration needed on the frontend.
753
+
754
+ ### How the UI handles it
755
+
756
+ - **During streaming** — the `todos` list updates live as the agent emits new state values. The progress bar and "Now: …" subtitle reflect the current `in_progress` item.
757
+ - **After streaming** — the final todos are frozen against the message group, so the card persists correctly when scrolling back through history.
758
+ - **Subgraph support** — when `streamSubgraphs: true`, the library scans nested update events for non-empty `todos` arrays so subgraph nodes don't accidentally overwrite the parent's todo state.
759
+ - **Empty arrays** — if an event contains `todos: []` (common in subgraph value events that don't own the todos state), the previous todos are preserved rather than cleared.
760
+
761
+ ### `TodoItem` type
762
+
763
+ ```typescript
764
+ import type { TodoItem } from 'langgraph-ui-components';
765
+
766
+ type TodoItem = {
767
+ id: string;
768
+ content: string;
769
+ status: "pending" | "in_progress" | "completed";
770
+ updatedAt?: string | number | Date; // raw JSON value from stream, not normalized
771
+ run_id?: string;
772
+ runId?: string;
773
+ messageId?: string;
774
+ checkpoint?: string;
775
+ };
776
+ ```
777
+
778
+ ### Enabling tool call indicators alongside todos
779
+
780
+ `enableToolCallIndicator` must be `true` (the default) for the Agent Plan card to appear, since the card is part of the agent message rendering pipeline:
781
+
782
+ ```tsx
783
+ <Sidebar enableToolCallIndicator={true} />
784
+ // or
785
+ <Chat enableToolCallIndicator={true} />
786
+ ```
787
+
788
+ ---
789
+
790
+ ## chatBodyProps
791
+
792
+ The `chatBodyProps` prop on both `Chat` and `Sidebar` customizes how agent messages are displayed:
793
+
794
+ ```tsx
795
+ <Sidebar
796
+ chatBodyProps={{
797
+ agentName: "Aria",
798
+ agentAvatarUrl: "https://example.com/avatar.png",
799
+ fontSize: "15px",
800
+ }}
801
+ />
802
+ ```
803
+
804
+ **Props:**
805
+ - `agentName?: string` — Display name shown above agent messages. Default: `"Agent"`
806
+ - `agentAvatarUrl?: string` — URL for the agent avatar image
807
+ - `fontSize?: string` — Font size for message text (e.g. `"14px"`, `"1rem"`)
808
+
348
809
  ## Types
349
810
 
350
811
  Full TypeScript definitions available for:
351
- - `ChatIdentity`
352
- - `ChatRuntimeContextValue`
353
- - `FileInfo`
354
- - `SuggestionsOptions`
355
- - `SuggestionConfig`
356
- - `ThreadMode`
357
- - `ThreadConfiguration`
358
- - `ThreadContextType`
359
- - `StateType`
360
- - `CustomComponentContextValue`
361
- - `CustomTool`
362
- - `ModelOption`
363
- - `ChatProps`
364
- - `ChatSidebarProps`
365
- - `ChatUIProps`
366
- - `CallThisOnSubmitResponse`
367
- - `chatBodyProps`
368
- - `headerProps`
369
- - `textToSpeechVoice`
370
-
371
- ## Keywords
372
-
373
- `langgraph ui components` `react` `chat-ui` `ai-components` `chatbot` `sidebar` `streaming` `langchain` `assistant` `chatgpt-ui`
812
+ - `ChatIdentity` — user/org identity + auth token
813
+ - `ChatRuntimeContextValue` — `useChatRuntime()` return type
814
+ - `FileInfo` — `{ fileName, fileType, file?, fileData?, metadata? }`
815
+ - `SuggestionsOptions` — options for `useChatSuggestions`
816
+ - `SuggestionConfig` — internal suggestion config shape
817
+ - `ThreadMode` — `"single" | "multi"`
818
+ - `ThreadConfiguration` — `Record<string, unknown>` passed to LangGraph config
819
+ - `ThreadContextType` — `useThread()` return type
820
+ - `StateType` — `{ messages, ui?, suggestions?, todos? }`
821
+ - `TodoItem` — `{ id, content, status, updatedAt?, run_id?, runId?, messageId?, checkpoint? }`
822
+ - `CustomComponentContextValue` — `useCustomComponents()` return type
823
+ - `InterruptComponentProps` — props for HITL interrupt components
824
+ - `CustomTool` — `{ label, icon, alt?, onClick }`
825
+ - `ModelOption` — `{ id, name }`
826
+ - `ChatProps` — base props shared by Chat and Sidebar
827
+ - `ChatSidebarProps` — Sidebar-specific props (extends ChatProps)
828
+ - `ChatUIProps` — Chat-specific props (extends ChatProps)
829
+ - `CallThisOnSubmitResponse` — `{ files?, contextValues? }`
830
+ - `chatBodyProps` — `{ agentName?, agentAvatarUrl?, fontSize? }`
831
+ - `headerProps` — `{ title?, logoUrl? }`
832
+ - `textToSpeechVoice` — `{ apiUrl, apiKey, model }`
833
+
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("../node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.cjs.js");e.__require();
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../node_modules/.pnpm/react-syntax-highlighter@16.1.0_react@19.2.3/node_modules/react-syntax-highlighter/dist/cjs/styles/prism/index.cjs.js");var e=r.__require();exports.prismExports=e;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("../node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.cjs.js");e.__require();
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={};exports.__exports=e;
2
2
  //# sourceMappingURL=index.cjs2.js.map
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("./_commonjsHelpers.cjs.js"),r=require("../node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.cjs.js");var s=r.__require();const t=e.getDefaultExportFromCjs(s);module.exports=t;
1
+ "use strict";const e=require("./_commonjsHelpers.cjs.js"),r=require("../node_modules/.pnpm/@babel_runtime@7.28.6/node_modules/@babel/runtime/regenerator/index.cjs.js");var t=r.__require();const o=e.getDefaultExportFromCjs(t);module.exports=o;
2
2
  //# sourceMappingURL=index.cjs3.js.map
@@ -1,3 +1,6 @@
1
- import { __require as e } from "../node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.es.js";
2
- e();
1
+ import { __require as r } from "../node_modules/.pnpm/react-syntax-highlighter@16.1.0_react@19.2.3/node_modules/react-syntax-highlighter/dist/cjs/styles/prism/index.es.js";
2
+ var i = /* @__PURE__ */ r();
3
+ export {
4
+ i as p
5
+ };
3
6
  //# sourceMappingURL=index.es.js.map
@@ -1,3 +1,5 @@
1
- import { __require as r } from "../node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.es.js";
2
- r();
1
+ var r = {};
2
+ export {
3
+ r as __exports
4
+ };
3
5
  //# sourceMappingURL=index.es2.js.map