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.
- package/README.md +515 -55
- package/dist/_virtual/index.cjs.js +1 -1
- package/dist/_virtual/index.cjs2.js +1 -1
- package/dist/_virtual/index.cjs3.js +1 -1
- package/dist/_virtual/index.es.js +5 -2
- package/dist/_virtual/index.es2.js +4 -2
- package/dist/_virtual/index.es2.js.map +1 -1
- package/dist/_virtual/index.es3.js +4 -4
- package/dist/assets/langgraph-ui-components.css +1 -1
- package/dist/components/ChatBody.cjs.js +2 -2
- package/dist/components/ChatBody.cjs.js.map +1 -1
- package/dist/components/ChatBody.d.ts.map +1 -1
- package/dist/components/ChatBody.es.js +208 -142
- package/dist/components/ChatBody.es.js.map +1 -1
- package/dist/components/TodoList.cjs.js +2 -0
- package/dist/components/TodoList.cjs.js.map +1 -0
- package/dist/components/TodoList.d.ts +5 -0
- package/dist/components/TodoList.d.ts.map +1 -0
- package/dist/components/TodoList.es.js +65 -0
- package/dist/components/TodoList.es.js.map +1 -0
- package/dist/components/messages/AgentMessage.cjs.js +3 -1
- package/dist/components/messages/AgentMessage.cjs.js.map +1 -1
- package/dist/components/messages/AgentMessage.d.ts +5 -1
- package/dist/components/messages/AgentMessage.d.ts.map +1 -1
- package/dist/components/messages/AgentMessage.es.js +200 -112
- package/dist/components/messages/AgentMessage.es.js.map +1 -1
- package/dist/components/messages/CustomComponentRender.cjs.js.map +1 -1
- package/dist/components/messages/CustomComponentRender.es.js.map +1 -1
- package/dist/components/ui/syntax-highlighter.cjs.js +1 -1
- package/dist/components/ui/syntax-highlighter.cjs.js.map +1 -1
- package/dist/components/ui/syntax-highlighter.es.js +1 -1
- package/dist/entries/components.cjs.js +1 -1
- package/dist/entries/components.d.ts.map +1 -1
- package/dist/entries/components.es.js +4 -5
- package/dist/entries/components.es.js.map +1 -1
- package/dist/entries/hooks.cjs.js +1 -1
- package/dist/entries/hooks.d.ts.map +1 -1
- package/dist/entries/hooks.es.js +5 -6
- package/dist/entries/hooks.es.js.map +1 -1
- package/dist/entries/providers.cjs.js +1 -1
- package/dist/entries/providers.d.ts +1 -1
- package/dist/entries/providers.d.ts.map +1 -1
- package/dist/entries/providers.es.js +18 -19
- package/dist/entries/providers.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +28 -29
- package/dist/index.es.js.map +1 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/pages/Chat/Chat.cjs.js +1 -1
- package/dist/pages/Chat/Chat.cjs.js.map +1 -1
- package/dist/pages/Chat/Chat.d.ts.map +1 -1
- package/dist/pages/Chat/Chat.es.js +41 -34
- package/dist/pages/Chat/Chat.es.js.map +1 -1
- package/dist/pages/Sidebar/sidebar.cjs.js +1 -1
- package/dist/pages/Sidebar/sidebar.cjs.js.map +1 -1
- package/dist/pages/Sidebar/sidebar.d.ts.map +1 -1
- package/dist/pages/Sidebar/sidebar.es.js +75 -70
- package/dist/pages/Sidebar/sidebar.es.js.map +1 -1
- package/dist/providers/ChatProvider.cjs.js +1 -1
- package/dist/providers/ChatProvider.cjs.js.map +1 -1
- package/dist/providers/ChatProvider.d.ts +17 -1
- package/dist/providers/ChatProvider.d.ts.map +1 -1
- package/dist/providers/ChatProvider.es.js +18 -17
- package/dist/providers/ChatProvider.es.js.map +1 -1
- package/dist/providers/ChatRuntime.es.js +4 -4
- package/dist/providers/CustomComponentProvider.cjs.js +1 -1
- package/dist/providers/CustomComponentProvider.cjs.js.map +1 -1
- package/dist/providers/CustomComponentProvider.d.ts +11 -0
- package/dist/providers/CustomComponentProvider.d.ts.map +1 -1
- package/dist/providers/CustomComponentProvider.es.js +51 -35
- package/dist/providers/CustomComponentProvider.es.js.map +1 -1
- package/dist/providers/Stream.cjs.js +1 -1
- package/dist/providers/Stream.cjs.js.map +1 -1
- package/dist/providers/Stream.d.ts +40 -8
- package/dist/providers/Stream.d.ts.map +1 -1
- package/dist/providers/Stream.es.js +151 -119
- package/dist/providers/Stream.es.js.map +1 -1
- package/dist/providers/Thread.cjs.js +1 -1
- package/dist/providers/Thread.cjs.js.map +1 -1
- package/dist/providers/Thread.d.ts +2 -1
- package/dist/providers/Thread.d.ts.map +1 -1
- package/dist/providers/Thread.es.js +19 -19
- package/dist/providers/Thread.es.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +17 -1
- package/src/App.tsx +4 -4
- package/src/components/ChatBody.tsx +229 -78
- package/src/components/TodoList.tsx +72 -0
- package/src/components/messages/AgentMessage.tsx +288 -82
- package/src/components/messages/CustomComponentRender.tsx +1 -1
- package/src/entries/components.ts +0 -2
- package/src/entries/hooks.ts +0 -2
- package/src/entries/providers.ts +1 -3
- package/src/index.css +2 -2
- package/src/index.ts +2 -4
- package/src/pages/Chat/Chat.tsx +13 -3
- package/src/pages/Sidebar/sidebar.tsx +12 -3
- package/src/providers/ChatProvider.tsx +18 -1
- package/src/providers/CustomComponentProvider.tsx +41 -0
- package/src/providers/Stream.tsx +88 -25
- package/src/providers/Thread.tsx +2 -2
- package/dist/_virtual/index.cjs10.js +0 -2
- package/dist/_virtual/index.cjs10.js.map +0 -1
- package/dist/_virtual/index.cjs11.js +0 -2
- package/dist/_virtual/index.cjs11.js.map +0 -1
- package/dist/_virtual/index.cjs12.js +0 -2
- package/dist/_virtual/index.cjs12.js.map +0 -1
- package/dist/_virtual/index.cjs4.js +0 -2
- package/dist/_virtual/index.cjs4.js.map +0 -1
- package/dist/_virtual/index.cjs5.js +0 -2
- package/dist/_virtual/index.cjs5.js.map +0 -1
- package/dist/_virtual/index.cjs6.js +0 -2
- package/dist/_virtual/index.cjs6.js.map +0 -1
- package/dist/_virtual/index.cjs7.js +0 -2
- package/dist/_virtual/index.cjs7.js.map +0 -1
- package/dist/_virtual/index.cjs8.js +0 -2
- package/dist/_virtual/index.cjs8.js.map +0 -1
- package/dist/_virtual/index.cjs9.js +0 -2
- package/dist/_virtual/index.cjs9.js.map +0 -1
- package/dist/_virtual/index.es10.js +0 -8
- package/dist/_virtual/index.es10.js.map +0 -1
- package/dist/_virtual/index.es11.js +0 -5
- package/dist/_virtual/index.es11.js.map +0 -1
- package/dist/_virtual/index.es12.js +0 -8
- package/dist/_virtual/index.es12.js.map +0 -1
- package/dist/_virtual/index.es4.js +0 -6
- package/dist/_virtual/index.es4.js.map +0 -1
- package/dist/_virtual/index.es5.js +0 -5
- package/dist/_virtual/index.es5.js.map +0 -1
- package/dist/_virtual/index.es6.js +0 -5
- package/dist/_virtual/index.es6.js.map +0 -1
- package/dist/_virtual/index.es7.js +0 -5
- package/dist/_virtual/index.es7.js.map +0 -1
- package/dist/_virtual/index.es8.js +0 -5
- package/dist/_virtual/index.es8.js.map +0 -1
- package/dist/_virtual/index.es9.js +0 -5
- package/dist/_virtual/index.es9.js.map +0 -1
- package/dist/_virtual/lower-bound.cjs.js +0 -2
- package/dist/_virtual/lower-bound.cjs.js.map +0 -1
- package/dist/_virtual/lower-bound.es.js +0 -5
- package/dist/_virtual/lower-bound.es.js.map +0 -1
- package/dist/_virtual/priority-queue.cjs.js +0 -2
- package/dist/_virtual/priority-queue.cjs.js.map +0 -1
- package/dist/_virtual/priority-queue.es.js +0 -5
- package/dist/_virtual/priority-queue.es.js.map +0 -1
- package/dist/_virtual/re.cjs.js +0 -2
- package/dist/_virtual/re.cjs.js.map +0 -1
- package/dist/_virtual/re.es.js +0 -5
- package/dist/_virtual/re.es.js.map +0 -1
- package/dist/components/ToolCallFunctions.cjs.js +0 -2
- package/dist/components/ToolCallFunctions.cjs.js.map +0 -1
- package/dist/components/ToolCallFunctions.es.js +0 -75
- package/dist/components/ToolCallFunctions.es.js.map +0 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/node_modules/.pnpm/ansi-styles@5.2.0/node_modules/ansi-styles/index.cjs.js +0 -2
- package/dist/node_modules/.pnpm/ansi-styles@5.2.0/node_modules/ansi-styles/index.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/ansi-styles@5.2.0/node_modules/ansi-styles/index.es.js +0 -111
- package/dist/node_modules/.pnpm/ansi-styles@5.2.0/node_modules/ansi-styles/index.es.js.map +0 -1
- package/dist/node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.cjs.js +0 -2
- package/dist/node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.es.js +0 -30
- package/dist/node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.es.js.map +0 -1
- package/dist/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.cjs.js +0 -2
- package/dist/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.es.js +0 -112
- package/dist/node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.es.js.map +0 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.cjs.js +0 -2
- package/dist/node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.es.js +0 -18
- package/dist/node_modules/.pnpm/p-finally@1.0.0/node_modules/p-finally/index.es.js.map +0 -1
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.cjs.js +0 -2
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.es.js +0 -198
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.es.js.map +0 -1
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.cjs.js +0 -2
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.es.js +0 -20
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/lower-bound.es.js.map +0 -1
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.cjs.js +0 -2
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.es.js +0 -41
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/priority-queue.es.js.map +0 -1
- package/dist/node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.cjs.js +0 -2
- package/dist/node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.es.js +0 -45
- package/dist/node_modules/.pnpm/p-timeout@3.2.0/node_modules/p-timeout/index.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.es.js +0 -57
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.es.js +0 -149
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.es.js +0 -170
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.es.js +0 -15
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.es.js +0 -40
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.es.js +0 -34
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.es.js +0 -15
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.es.js +0 -25
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.es.js +0 -22
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.es.js +0 -22
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.es.js +0 -15
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.es.js +0 -19
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.es.js +0 -15
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.es.js +0 -98
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.es.js +0 -29
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.es.js +0 -9
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.es.js +0 -19
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.es.js +0 -33
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.es.js +0 -11
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.es.js +0 -33
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.es.js +0 -23
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.es.js +0 -23
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.es.js +0 -43
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.es.js +0 -45
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.es.js +0 -25
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.es.js +0 -95
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.es.js +0 -12
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.es.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.cjs.js +0 -2
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.cjs.js.map +0 -1
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.es.js +0 -18
- package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.es.js.map +0 -1
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import { cn } from "@/utils/tailwindUtil";
|
|
2
|
+
import type { TodoItem } from "@/providers/Stream";
|
|
2
3
|
import { getContentString } from "@/utils/utils";
|
|
3
4
|
import type { Message } from "@langchain/langgraph-sdk";
|
|
4
|
-
import { BotMessageSquare, ChevronRight, LoaderCircle, Sparkles } from "lucide-react";
|
|
5
|
+
import { BotMessageSquare, ChevronRight, LoaderCircle, Sparkles, Wrench } from "lucide-react";
|
|
5
6
|
import React, { useEffect, useState } from "react";
|
|
7
|
+
import TodoList from "../TodoList";
|
|
6
8
|
import { AgentMarkdown } from "../ui/AgentMarkdown";
|
|
7
9
|
import { BranchSwitcher } from "./BranchSwitcher";
|
|
8
10
|
import { MessageActions, type MessageFeedback } from "./MessageActions";
|
|
9
11
|
|
|
12
|
+
type ToolStatusEntry = {
|
|
13
|
+
id?: string;
|
|
14
|
+
name?: string;
|
|
15
|
+
label?: string;
|
|
16
|
+
event?: string;
|
|
17
|
+
visible?: boolean;
|
|
18
|
+
};
|
|
19
|
+
|
|
10
20
|
function getReasoningFromKwargs(message: Message | undefined): string | null {
|
|
11
21
|
if (!message) return null;
|
|
12
22
|
const ak = (message as Record<string, unknown>).additional_kwargs as
|
|
@@ -22,12 +32,14 @@ function getReasoningFromKwargs(message: Message | undefined): string | null {
|
|
|
22
32
|
return null;
|
|
23
33
|
}
|
|
24
34
|
|
|
25
|
-
function
|
|
26
|
-
|
|
35
|
+
function AgentActivity({
|
|
36
|
+
reasoningText,
|
|
37
|
+
toolStatuses,
|
|
27
38
|
isStreaming,
|
|
28
39
|
fontSize,
|
|
29
40
|
}: {
|
|
30
|
-
|
|
41
|
+
reasoningText?: string;
|
|
42
|
+
toolStatuses?: Array<{ key: string; label: string; isCompleted: boolean }>;
|
|
31
43
|
isStreaming?: boolean;
|
|
32
44
|
fontSize?: string;
|
|
33
45
|
}) {
|
|
@@ -37,6 +49,11 @@ function InlineThinking({
|
|
|
37
49
|
setExpanded(!!isStreaming);
|
|
38
50
|
}, [isStreaming]);
|
|
39
51
|
|
|
52
|
+
const hasTools = toolStatuses && toolStatuses.length > 0;
|
|
53
|
+
const hasReasoning = !!reasoningText && reasoningText.length > 0;
|
|
54
|
+
|
|
55
|
+
if (!hasTools && !hasReasoning && !isStreaming) return null;
|
|
56
|
+
|
|
40
57
|
return (
|
|
41
58
|
<div className="my-1">
|
|
42
59
|
<button
|
|
@@ -58,105 +75,284 @@ function InlineThinking({
|
|
|
58
75
|
/>
|
|
59
76
|
</button>
|
|
60
77
|
{expanded && (
|
|
61
|
-
<div className="mt-1.5 border-l-2 border-white/10 pl-4
|
|
62
|
-
|
|
78
|
+
<div className="mt-1.5 border-l-2 border-white/10 pl-4 space-y-1">
|
|
79
|
+
{hasTools && toolStatuses!.map((ts) => (
|
|
80
|
+
<div key={ts.key} className="flex items-center gap-2 text-sm text-zinc-300 py-0.5">
|
|
81
|
+
{!ts.isCompleted && (
|
|
82
|
+
<LoaderCircle className="size-3.5 animate-spin text-zinc-400" />
|
|
83
|
+
)}
|
|
84
|
+
<Wrench className="size-3.5 text-zinc-500" />
|
|
85
|
+
<span>{ts.label}</span>
|
|
86
|
+
</div>
|
|
87
|
+
))}
|
|
88
|
+
{hasReasoning && (
|
|
89
|
+
<div className="text-sm text-zinc-300">
|
|
90
|
+
<AgentMarkdown fontSize={fontSize}>{reasoningText!}</AgentMarkdown>
|
|
91
|
+
</div>
|
|
92
|
+
)}
|
|
63
93
|
</div>
|
|
64
94
|
)}
|
|
65
95
|
</div>
|
|
66
96
|
);
|
|
67
97
|
}
|
|
68
98
|
|
|
99
|
+
function toToolStatusEntry(value: unknown): ToolStatusEntry | null {
|
|
100
|
+
if (!value || typeof value !== "object") return null;
|
|
101
|
+
const v = value as Record<string, unknown>;
|
|
102
|
+
|
|
103
|
+
const visible =
|
|
104
|
+
typeof v.visible === "boolean"
|
|
105
|
+
? v.visible
|
|
106
|
+
: typeof v.show === "boolean"
|
|
107
|
+
? v.show
|
|
108
|
+
: typeof v.display === "boolean"
|
|
109
|
+
? v.display
|
|
110
|
+
: typeof v.hidden === "boolean"
|
|
111
|
+
? !v.hidden
|
|
112
|
+
: true;
|
|
113
|
+
|
|
114
|
+
return {
|
|
115
|
+
id: typeof v.id === "string" ? v.id : undefined,
|
|
116
|
+
name: typeof v.name === "string" ? v.name : undefined,
|
|
117
|
+
label: typeof v.label === "string" ? v.label : undefined,
|
|
118
|
+
event: typeof v.event === "string" ? v.event : undefined,
|
|
119
|
+
visible,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function getToolStatusFromKwargs(message: Message | undefined): ToolStatusEntry[] {
|
|
124
|
+
if (!message) return [];
|
|
125
|
+
const ak = (message as Record<string, unknown>).additional_kwargs as
|
|
126
|
+
| Record<string, unknown>
|
|
127
|
+
| undefined;
|
|
128
|
+
|
|
129
|
+
if (!ak || !Array.isArray(ak.tool_status)) return [];
|
|
130
|
+
|
|
131
|
+
return (ak.tool_status as unknown[])
|
|
132
|
+
.map(toToolStatusEntry)
|
|
133
|
+
.filter((s): s is ToolStatusEntry => s !== null);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function hasToolStatusFieldInKwargs(message: Message | undefined): boolean {
|
|
137
|
+
if (!message) return false;
|
|
138
|
+
const ak = (message as Record<string, unknown>).additional_kwargs as
|
|
139
|
+
| Record<string, unknown>
|
|
140
|
+
| undefined;
|
|
141
|
+
if (!ak) return false;
|
|
142
|
+
return Object.prototype.hasOwnProperty.call(ak, "tool_status");
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function normalizeSemanticKey(value: string | undefined): string {
|
|
146
|
+
if (!value) return "";
|
|
147
|
+
return value
|
|
148
|
+
.toLowerCase()
|
|
149
|
+
.replace(/\s+/g, " ")
|
|
150
|
+
.replace(/\s*event:\s*metadata\s*$/i, "")
|
|
151
|
+
.trim();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function shouldRenderToolStatus(status: ToolStatusEntry): boolean {
|
|
155
|
+
if (status.visible === false) return false;
|
|
156
|
+
|
|
157
|
+
const labelKey = normalizeSemanticKey(status.label);
|
|
158
|
+
if (labelKey.length === 0) return false;
|
|
159
|
+
|
|
160
|
+
// Filter transport/debug noise like "event: metadata".
|
|
161
|
+
if (status.event?.toLowerCase() === "metadata") return false;
|
|
162
|
+
if (/\bevent:\s*metadata\b/i.test(status.label ?? "")) return false;
|
|
163
|
+
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function normalizeToolLabel(name: string, input: unknown): string {
|
|
168
|
+
if (!input) return name;
|
|
169
|
+
if (typeof input === "string") {
|
|
170
|
+
const trimmed = input.trim();
|
|
171
|
+
if (trimmed.length === 0) return name;
|
|
172
|
+
return `${name} ${trimmed.slice(0, 80)}${trimmed.length > 80 ? "..." : ""}`;
|
|
173
|
+
}
|
|
174
|
+
if (typeof input === "object") {
|
|
175
|
+
try {
|
|
176
|
+
const json = JSON.stringify(input);
|
|
177
|
+
return `${name} ${json.length > 80 ? `${json.slice(0, 80)}...` : json}`;
|
|
178
|
+
} catch {
|
|
179
|
+
return name;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return name;
|
|
183
|
+
}
|
|
184
|
+
|
|
69
185
|
function renderContentInline(
|
|
70
|
-
|
|
186
|
+
groupedMessages: Message[] | undefined,
|
|
187
|
+
showToolActivity: boolean,
|
|
71
188
|
isActivelyStreaming?: boolean,
|
|
72
189
|
fontSize?: string,
|
|
73
190
|
) {
|
|
74
|
-
if (!
|
|
75
|
-
const content = message.content;
|
|
76
|
-
const parts: React.ReactNode[] = [];
|
|
191
|
+
if (!groupedMessages || groupedMessages.length === 0) return null;
|
|
77
192
|
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
typeof content === "string"
|
|
82
|
-
? content.length > 0
|
|
83
|
-
: Array.isArray(content) &&
|
|
84
|
-
(content as Record<string, unknown>[]).some(
|
|
85
|
-
(block) =>
|
|
86
|
-
block.type === "text" &&
|
|
87
|
-
typeof block.text === "string" &&
|
|
88
|
-
(block.text as string).length > 0,
|
|
89
|
-
);
|
|
193
|
+
const timeline = groupedMessages;
|
|
194
|
+
const toolMessages = timeline.filter((m) => m.type === "tool");
|
|
195
|
+
const hasBackendToolStatus = timeline.some((m) => hasToolStatusFieldInKwargs(m));
|
|
90
196
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
197
|
+
const completedToolIds = new Set(
|
|
198
|
+
toolMessages
|
|
199
|
+
.map((m) => (m as Record<string, unknown>).tool_call_id)
|
|
200
|
+
.filter((id): id is string => typeof id === "string" && id.length > 0),
|
|
201
|
+
);
|
|
202
|
+
const completedToolNames = new Set(
|
|
203
|
+
toolMessages
|
|
204
|
+
.map((m) => (m as Record<string, unknown>).name)
|
|
205
|
+
.filter((name): name is string => typeof name === "string" && name.length > 0),
|
|
206
|
+
);
|
|
207
|
+
|
|
208
|
+
// ── Collect activity (reasoning + tool statuses) and text content separately ──
|
|
209
|
+
const collectedToolStatuses: Array<{ key: string; label: string; isCompleted: boolean }> = [];
|
|
210
|
+
const reasoningTexts: string[] = [];
|
|
211
|
+
const textParts: React.ReactNode[] = [];
|
|
212
|
+
const renderedToolKeys = new Set<string>();
|
|
213
|
+
let textIdx = 0;
|
|
100
214
|
|
|
101
|
-
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
);
|
|
215
|
+
const collectToolStatusFromKwargs = (message: Message) => {
|
|
216
|
+
if (!showToolActivity) return;
|
|
217
|
+
for (const status of getToolStatusFromKwargs(message)) {
|
|
218
|
+
if (!shouldRenderToolStatus(status)) continue;
|
|
219
|
+
const semanticKey =
|
|
220
|
+
normalizeSemanticKey(status.label) || normalizeSemanticKey(status.name) || "tool";
|
|
221
|
+
if (renderedToolKeys.has(semanticKey)) continue;
|
|
222
|
+
renderedToolKeys.add(semanticKey);
|
|
223
|
+
const label = status.label ?? status.name ?? "Running tool";
|
|
224
|
+
const isCompleted =
|
|
225
|
+
(status.id ? completedToolIds.has(status.id) : false) ||
|
|
226
|
+
(status.name ? completedToolNames.has(status.name) : false) ||
|
|
227
|
+
!isActivelyStreaming;
|
|
228
|
+
collectedToolStatuses.push({ key: semanticKey, label, isCompleted });
|
|
108
229
|
}
|
|
109
|
-
|
|
110
|
-
}
|
|
230
|
+
};
|
|
111
231
|
|
|
112
|
-
|
|
232
|
+
for (const message of timeline) {
|
|
233
|
+
if (message.type !== "ai") continue;
|
|
113
234
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
let idx = 0;
|
|
235
|
+
const content = message.content;
|
|
236
|
+
const kwargsReasoning = getReasoningFromKwargs(message);
|
|
117
237
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
238
|
+
// Collect tool statuses from kwargs
|
|
239
|
+
collectToolStatusFromKwargs(message);
|
|
240
|
+
|
|
241
|
+
if (typeof content === "string") {
|
|
242
|
+
if (kwargsReasoning) {
|
|
243
|
+
// When reasoning_content exists in kwargs, the string content is the
|
|
244
|
+
// same thinking text (set by messages-tuple before wrapModelCall clears
|
|
245
|
+
// it). Capture it only as reasoning to avoid duplication.
|
|
246
|
+
reasoningTexts.push(kwargsReasoning);
|
|
247
|
+
} else if (content.length > 0) {
|
|
248
|
+
textParts.push(
|
|
249
|
+
<div key={`text-content-${message.id ?? textIdx}`} className="py-1">
|
|
250
|
+
<AgentMarkdown fontSize={fontSize}>{content}</AgentMarkdown>
|
|
251
|
+
</div>,
|
|
252
|
+
);
|
|
253
|
+
textIdx++;
|
|
254
|
+
}
|
|
255
|
+
continue;
|
|
127
256
|
}
|
|
128
|
-
};
|
|
129
257
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
258
|
+
if (!Array.isArray(content)) {
|
|
259
|
+
if (kwargsReasoning) reasoningTexts.push(kwargsReasoning);
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
const blocks = content as Record<string, unknown>[];
|
|
264
|
+
let textAccum = "";
|
|
265
|
+
let hasReasoningBlock = false;
|
|
266
|
+
|
|
267
|
+
const flushText = () => {
|
|
268
|
+
if (textAccum.length > 0) {
|
|
269
|
+
textParts.push(
|
|
270
|
+
<div key={`text-${message.id ?? textIdx}-${textIdx}`} className="py-1">
|
|
271
|
+
<AgentMarkdown fontSize={fontSize}>{textAccum}</AgentMarkdown>
|
|
272
|
+
</div>,
|
|
273
|
+
);
|
|
274
|
+
textAccum = "";
|
|
275
|
+
textIdx++;
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
for (let i = 0; i < blocks.length; i++) {
|
|
280
|
+
const block = blocks[i];
|
|
281
|
+
if (block.type === "text" && typeof block.text === "string") {
|
|
282
|
+
textAccum += block.text;
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
if (
|
|
287
|
+
(block.type === "reasoning" && typeof block.reasoning === "string") ||
|
|
288
|
+
(block.type === "thinking" && typeof block.thinking === "string")
|
|
289
|
+
) {
|
|
290
|
+
flushText();
|
|
291
|
+
hasReasoningBlock = true;
|
|
292
|
+
const text = (block.reasoning ?? block.thinking) as string;
|
|
293
|
+
reasoningTexts.push(text);
|
|
294
|
+
continue;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
if (showToolActivity && !hasBackendToolStatus && block.type === "tool_use") {
|
|
298
|
+
flushText();
|
|
299
|
+
const toolId = typeof block.id === "string" ? block.id : undefined;
|
|
300
|
+
const toolName = typeof block.name === "string" ? block.name : "tool";
|
|
301
|
+
const semanticKey = normalizeSemanticKey(toolName) || `tool-${i}`;
|
|
302
|
+
if (!renderedToolKeys.has(semanticKey)) {
|
|
303
|
+
renderedToolKeys.add(semanticKey);
|
|
304
|
+
const label = normalizeToolLabel(toolName, (block as Record<string, unknown>).input);
|
|
305
|
+
const isCompleted = toolId ? completedToolIds.has(toolId) : !isActivelyStreaming;
|
|
306
|
+
collectedToolStatuses.push({ key: semanticKey, label, isCompleted });
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (!hasReasoningBlock && kwargsReasoning) {
|
|
312
|
+
// Same as the string-content case: kwargs reasoning duplicates the
|
|
313
|
+
// text blocks, so discard accumulated text and capture as reasoning only.
|
|
314
|
+
textAccum = "";
|
|
315
|
+
reasoningTexts.push(kwargsReasoning);
|
|
316
|
+
} else {
|
|
138
317
|
flushText();
|
|
139
|
-
const text = (block.reasoning ?? block.thinking) as string;
|
|
140
|
-
const hasTextAfter = blocks.slice(i + 1).some(
|
|
141
|
-
(b) =>
|
|
142
|
-
b.type === "text" &&
|
|
143
|
-
typeof b.text === "string" &&
|
|
144
|
-
(b.text as string).length > 0,
|
|
145
|
-
);
|
|
146
|
-
const isThisBlockStreaming = isActivelyStreaming && !hasTextAfter;
|
|
147
|
-
parts.push(
|
|
148
|
-
<InlineThinking
|
|
149
|
-
key={`thinking-${idx}`}
|
|
150
|
-
text={text}
|
|
151
|
-
isStreaming={isThisBlockStreaming}
|
|
152
|
-
fontSize={fontSize}
|
|
153
|
-
/>,
|
|
154
|
-
);
|
|
155
|
-
idx++;
|
|
156
318
|
}
|
|
157
319
|
}
|
|
158
320
|
|
|
159
|
-
|
|
321
|
+
// Fallback for legacy payloads without backend tool_status (only after streaming completes)
|
|
322
|
+
if (showToolActivity && !isActivelyStreaming && !hasBackendToolStatus && collectedToolStatuses.length === 0 && textParts.length === 0 && toolMessages.length > 0) {
|
|
323
|
+
for (const toolMessage of toolMessages) {
|
|
324
|
+
collectedToolStatuses.push({
|
|
325
|
+
key: `tool-msg-${toolMessage.id ?? textIdx}`,
|
|
326
|
+
label: "Tool call completed",
|
|
327
|
+
isCompleted: true,
|
|
328
|
+
});
|
|
329
|
+
textIdx++;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
// ── Assemble output: AgentActivity block first, then text content ──
|
|
334
|
+
const parts: React.ReactNode[] = [];
|
|
335
|
+
const hasTextContent = textParts.length > 0;
|
|
336
|
+
const combinedReasoning = reasoningTexts.join("\n\n");
|
|
337
|
+
const hasActivity =
|
|
338
|
+
(showToolActivity && collectedToolStatuses.length > 0) ||
|
|
339
|
+
combinedReasoning.length > 0;
|
|
340
|
+
const activityIsStreaming = !!isActivelyStreaming && !hasTextContent;
|
|
341
|
+
|
|
342
|
+
if (hasActivity || activityIsStreaming) {
|
|
343
|
+
parts.push(
|
|
344
|
+
<AgentActivity
|
|
345
|
+
key="agent-activity"
|
|
346
|
+
reasoningText={combinedReasoning || undefined}
|
|
347
|
+
toolStatuses={showToolActivity ? collectedToolStatuses : undefined}
|
|
348
|
+
isStreaming={activityIsStreaming}
|
|
349
|
+
fontSize={fontSize}
|
|
350
|
+
/>,
|
|
351
|
+
);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
parts.push(...textParts);
|
|
355
|
+
|
|
160
356
|
return parts.length > 0 ? <>{parts}</> : null;
|
|
161
357
|
}
|
|
162
358
|
|
|
@@ -164,6 +360,8 @@ function AgentMessage({
|
|
|
164
360
|
agentName,
|
|
165
361
|
fontSize,
|
|
166
362
|
message,
|
|
363
|
+
groupedMessages,
|
|
364
|
+
showToolActivity = true,
|
|
167
365
|
isStreaming = false,
|
|
168
366
|
onRegenerate,
|
|
169
367
|
feedback,
|
|
@@ -171,10 +369,13 @@ function AgentMessage({
|
|
|
171
369
|
branch,
|
|
172
370
|
branchOptions,
|
|
173
371
|
onBranchSelect,
|
|
372
|
+
todos,
|
|
174
373
|
}: {
|
|
175
374
|
agentName?: string;
|
|
176
375
|
fontSize?: string;
|
|
177
376
|
message: Message;
|
|
377
|
+
groupedMessages?: Message[];
|
|
378
|
+
showToolActivity?: boolean;
|
|
178
379
|
isStreaming?: boolean;
|
|
179
380
|
onRegenerate?: (parentCheckpoint: any | null | undefined, messageId: string, currentMessage: any) => void;
|
|
180
381
|
feedback?: MessageFeedback;
|
|
@@ -182,9 +383,10 @@ function AgentMessage({
|
|
|
182
383
|
branch?: string;
|
|
183
384
|
branchOptions?: string[];
|
|
184
385
|
onBranchSelect?: (branch: string) => void;
|
|
386
|
+
todos?: TodoItem[];
|
|
185
387
|
}) {
|
|
186
388
|
const content = getContentString(message?.content);
|
|
187
|
-
const inlineContent = renderContentInline(message, isStreaming, fontSize);
|
|
389
|
+
const inlineContent = renderContentInline(groupedMessages ?? [message], showToolActivity, isStreaming, fontSize);
|
|
188
390
|
|
|
189
391
|
return (
|
|
190
392
|
<div className="agent-message flex flex-col gap-1 w-full group">
|
|
@@ -198,6 +400,7 @@ function AgentMessage({
|
|
|
198
400
|
<span className="text-zinc-500 text-sm">{agentName || "Agent"}</span>
|
|
199
401
|
</div>
|
|
200
402
|
<div className="flex flex-1 flex-col gap-1 items-start min-w-0">
|
|
403
|
+
{todos && todos.length > 0 && <TodoList todos={todos} />}
|
|
201
404
|
<div className="text-content text-foreground" style={fontSize ? { fontSize } : undefined}>
|
|
202
405
|
{inlineContent ? (
|
|
203
406
|
inlineContent
|
|
@@ -249,12 +452,15 @@ export default React.memo(AgentMessage, (prevProps, nextProps) => {
|
|
|
249
452
|
// Otherwise, only re-render if the message ID, feedback, branch, or callbacks changed
|
|
250
453
|
return (
|
|
251
454
|
prevProps.message.id === nextProps.message.id &&
|
|
455
|
+
prevProps.groupedMessages?.length === nextProps.groupedMessages?.length &&
|
|
456
|
+
prevProps.showToolActivity === nextProps.showToolActivity &&
|
|
252
457
|
prevProps.isStreaming === nextProps.isStreaming &&
|
|
253
458
|
prevProps.feedback === nextProps.feedback &&
|
|
254
459
|
prevProps.onRegenerate === nextProps.onRegenerate &&
|
|
255
460
|
prevProps.onFeedback === nextProps.onFeedback &&
|
|
256
461
|
prevProps.branch === nextProps.branch &&
|
|
257
462
|
prevProps.branchOptions?.length === nextProps.branchOptions?.length &&
|
|
258
|
-
prevProps.onBranchSelect === nextProps.onBranchSelect
|
|
463
|
+
prevProps.onBranchSelect === nextProps.onBranchSelect &&
|
|
464
|
+
prevProps.todos === nextProps.todos
|
|
259
465
|
);
|
|
260
466
|
});
|
|
@@ -40,7 +40,7 @@ function CustomComponentRender({
|
|
|
40
40
|
return (
|
|
41
41
|
<LoadExternalComponent
|
|
42
42
|
key={(customComponent as any)._key || `${message.id}-${customComponent.id || index}`}
|
|
43
|
-
stream={thread}
|
|
43
|
+
stream={thread as any}
|
|
44
44
|
message={customComponent}
|
|
45
45
|
components={components}
|
|
46
46
|
meta={{ ...componentProps, ui: customComponent }}
|
package/src/entries/hooks.ts
CHANGED
package/src/entries/providers.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import "../index.css";
|
|
2
|
-
|
|
3
1
|
// ─── Providers ────────────────────────────────────────────────────────────────
|
|
4
2
|
export { ChatProvider } from "../providers/ChatProvider";
|
|
5
3
|
export { ChatRuntimeProvider } from "../providers/ChatRuntime";
|
|
@@ -7,7 +5,7 @@ export { ThreadProvider } from "../providers/Thread";
|
|
|
7
5
|
export { StreamProvider } from "../providers/Stream";
|
|
8
6
|
export { FileProvider } from "../providers/FileProvider";
|
|
9
7
|
export { CustomComponentProvider } from "../providers/CustomComponentProvider";
|
|
10
|
-
export type { CustomComponentContextValue } from "../providers/CustomComponentProvider";
|
|
8
|
+
export type { CustomComponentContextValue, InterruptComponentProps } from "../providers/CustomComponentProvider";
|
|
11
9
|
|
|
12
10
|
// ─── Provider hooks ───────────────────────────────────────────────────────────
|
|
13
11
|
export { useThread } from "../providers/Thread";
|
package/src/index.css
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import "./index.css";
|
|
2
|
-
|
|
3
1
|
// ─── Components ──────────────────────────────────────────────────────────────
|
|
4
2
|
export { default as Sidebar } from "./pages/Sidebar/sidebar";
|
|
5
3
|
export { Chat } from "./pages/Chat/Chat";
|
|
@@ -11,7 +9,7 @@ export { ThreadProvider } from "./providers/Thread";
|
|
|
11
9
|
export { StreamProvider } from "./providers/Stream";
|
|
12
10
|
export { FileProvider } from "./providers/FileProvider";
|
|
13
11
|
export { CustomComponentProvider } from "./providers/CustomComponentProvider";
|
|
14
|
-
export type { CustomComponentContextValue } from "./providers/CustomComponentProvider";
|
|
12
|
+
export type { CustomComponentContextValue, InterruptComponentProps } from "./providers/CustomComponentProvider";
|
|
15
13
|
|
|
16
14
|
// ─── Hooks ────────────────────────────────────────────────────────────────────
|
|
17
15
|
export { useTools } from "./hooks/useTools";
|
|
@@ -30,7 +28,7 @@ export { useModels } from "./hooks/use-models";
|
|
|
30
28
|
export type { ChatIdentity } from "./providers/ChatRuntime";
|
|
31
29
|
export type { ChatRuntimeContextValue } from "./providers/ChatRuntime";
|
|
32
30
|
export type { ThreadMode, ThreadConfiguration, ThreadContextType } from "./providers/Thread";
|
|
33
|
-
export type { StateType } from "./providers/Stream";
|
|
31
|
+
export type { StateType, TodoItem } from "./providers/Stream";
|
|
34
32
|
export type { SuggestionsOptions, SuggestionConfig } from "./providers/useChatSuggestions";
|
|
35
33
|
|
|
36
34
|
// ─── Types: Component props ───────────────────────────────────────────────────
|
package/src/pages/Chat/Chat.tsx
CHANGED
|
@@ -87,12 +87,22 @@ export function Chat(chatProps?: ChatUIProps) {
|
|
|
87
87
|
content: contentBlocks,
|
|
88
88
|
};
|
|
89
89
|
|
|
90
|
-
// Use the unified submitMessage function
|
|
91
|
-
await stream.submitMessage(newHumanMessage, { contextValues: contextValues });
|
|
92
|
-
|
|
93
90
|
setIsFirstMessage(false);
|
|
91
|
+
|
|
92
|
+
// Clear input optimistically, but restore on failure so the user doesn't lose their draft.
|
|
93
|
+
const savedInput = input;
|
|
94
|
+
const savedFileInput = fileInput;
|
|
94
95
|
setInput("");
|
|
95
96
|
setFileInput([]);
|
|
97
|
+
|
|
98
|
+
try {
|
|
99
|
+
// Use the unified submitMessage function
|
|
100
|
+
await stream.submitMessage(newHumanMessage, { contextValues: contextValues });
|
|
101
|
+
} catch (err) {
|
|
102
|
+
setInput(savedInput);
|
|
103
|
+
setFileInput(savedFileInput);
|
|
104
|
+
throw err;
|
|
105
|
+
}
|
|
96
106
|
};
|
|
97
107
|
|
|
98
108
|
const defaultHandleFileSelect = async (
|
|
@@ -159,11 +159,20 @@ export default function Sidebar(props: ChatSidebarProps) {
|
|
|
159
159
|
content: contentBlocks,
|
|
160
160
|
};
|
|
161
161
|
|
|
162
|
-
//
|
|
163
|
-
|
|
164
|
-
|
|
162
|
+
// Clear input optimistically, but restore on failure so the user doesn't lose their draft.
|
|
163
|
+
const savedInput = input;
|
|
164
|
+
const savedFileInput = fileInput;
|
|
165
165
|
setInput("");
|
|
166
166
|
setFileInput([]);
|
|
167
|
+
|
|
168
|
+
try {
|
|
169
|
+
// Use the unified submitMessage function
|
|
170
|
+
await stream.submitMessage(newHumanMessage, { contextValues: contextValues });
|
|
171
|
+
} catch (err) {
|
|
172
|
+
setInput(savedInput);
|
|
173
|
+
setFileInput(savedFileInput);
|
|
174
|
+
throw err;
|
|
175
|
+
}
|
|
167
176
|
};
|
|
168
177
|
|
|
169
178
|
const defaultHandleFileSelect = async (
|
|
@@ -26,6 +26,11 @@ interface ChatProviderProps {
|
|
|
26
26
|
* Defaults to a plain `<div>Loading chat...</div>` if not provided.
|
|
27
27
|
*/
|
|
28
28
|
suspenseFallback?: React.ReactNode;
|
|
29
|
+
/**
|
|
30
|
+
* Initial thread mode. Use `"multi"` to enable thread history and switching.
|
|
31
|
+
* Defaults to `"single"` (one conversation, no history panel).
|
|
32
|
+
*/
|
|
33
|
+
initialMode?: "single" | "multi";
|
|
29
34
|
}
|
|
30
35
|
|
|
31
36
|
/**
|
|
@@ -35,10 +40,21 @@ interface ChatProviderProps {
|
|
|
35
40
|
*
|
|
36
41
|
* @example
|
|
37
42
|
* ```tsx
|
|
43
|
+
* // Single-thread mode (default)
|
|
44
|
+
* <ChatProvider
|
|
45
|
+
* apiUrl="https://api.example.com"
|
|
46
|
+
* assistantId="my-assistant"
|
|
47
|
+
* identity={{ user_id: "user123", org_id: "org456" }}
|
|
48
|
+
* >
|
|
49
|
+
* <YourChatUI />
|
|
50
|
+
* </ChatProvider>
|
|
51
|
+
*
|
|
52
|
+
* // Multi-thread mode (enables thread history)
|
|
38
53
|
* <ChatProvider
|
|
39
54
|
* apiUrl="https://api.example.com"
|
|
40
55
|
* assistantId="my-assistant"
|
|
41
56
|
* identity={{ user_id: "user123", org_id: "org456" }}
|
|
57
|
+
* initialMode="multi"
|
|
42
58
|
* >
|
|
43
59
|
* <YourChatUI />
|
|
44
60
|
* </ChatProvider>
|
|
@@ -51,6 +67,7 @@ export function ChatProvider({
|
|
|
51
67
|
children,
|
|
52
68
|
customComponents,
|
|
53
69
|
suspenseFallback = <div>Loading chat...</div>,
|
|
70
|
+
initialMode = "single",
|
|
54
71
|
}: ChatProviderProps) {
|
|
55
72
|
return (
|
|
56
73
|
<React.Suspense fallback={suspenseFallback}>
|
|
@@ -59,7 +76,7 @@ export function ChatProvider({
|
|
|
59
76
|
assistantId={assistantId}
|
|
60
77
|
identity={identity}
|
|
61
78
|
>
|
|
62
|
-
<ThreadProvider>
|
|
79
|
+
<ThreadProvider initialMode={initialMode}>
|
|
63
80
|
<StreamProvider>
|
|
64
81
|
<SuggestionProvider>
|
|
65
82
|
<CustomComponentProvider initialComponents={customComponents}>
|