@langchain/react 0.0.1

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 (200) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +301 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  4. package/dist/index.cjs +38 -0
  5. package/dist/index.d.cts +12 -0
  6. package/dist/index.d.cts.map +1 -0
  7. package/dist/index.d.ts +12 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +5 -0
  10. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/channels/base.d.cts +83 -0
  11. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/channels/base.d.cts.map +1 -0
  12. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/channels/base.d.ts +83 -0
  13. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/channels/base.d.ts.map +1 -0
  14. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/index.d.cts +3 -0
  15. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/index.d.ts +3 -0
  16. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/meta.d.cts +108 -0
  17. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/meta.d.cts.map +1 -0
  18. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/meta.d.ts +108 -0
  19. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/meta.d.ts.map +1 -0
  20. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/plugin.d.cts +31 -0
  21. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/plugin.d.cts.map +1 -0
  22. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/plugin.d.ts +31 -0
  23. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/plugin.d.ts.map +1 -0
  24. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/zod-registry.d.cts +49 -0
  25. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/zod-registry.d.cts.map +1 -0
  26. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/zod-registry.d.ts +49 -0
  27. package/dist/node_modules/.pnpm/@langchain_langgraph@1.1.5_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___z_0d5e45651b6fb9f696195862204d53c7/node_modules/@langchain/langgraph/dist/graph/zod/zod-registry.d.ts.map +1 -0
  28. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/ReactAgent.d.cts +3 -0
  29. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/ReactAgent.d.ts +3 -0
  30. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/index.d.cts +4 -0
  31. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/index.d.ts +4 -0
  32. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/contextEditing.d.cts +3 -0
  33. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/contextEditing.d.ts +3 -0
  34. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/dynamicSystemPrompt.d.cts +1 -0
  35. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/dynamicSystemPrompt.d.ts +1 -0
  36. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/hitl.d.cts +1 -0
  37. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/hitl.d.ts +1 -0
  38. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/llmToolSelector.d.cts +1 -0
  39. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/llmToolSelector.d.ts +1 -0
  40. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/modelCallLimit.d.cts +1 -0
  41. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/modelCallLimit.d.ts +1 -0
  42. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/modelFallback.d.cts +1 -0
  43. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/modelFallback.d.ts +1 -0
  44. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/modelRetry.d.cts +1 -0
  45. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/modelRetry.d.ts +1 -0
  46. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/pii.d.cts +1 -0
  47. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/pii.d.ts +1 -0
  48. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/piiRedaction.d.cts +1 -0
  49. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/piiRedaction.d.ts +1 -0
  50. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/provider/anthropic/promptCaching.d.cts +1 -0
  51. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/provider/anthropic/promptCaching.d.ts +1 -0
  52. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/provider/openai/moderation.d.cts +1 -0
  53. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/provider/openai/moderation.d.ts +1 -0
  54. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/summarization.d.cts +2 -0
  55. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/summarization.d.ts +2 -0
  56. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/todoListMiddleware.d.cts +2 -0
  57. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/todoListMiddleware.d.ts +2 -0
  58. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/toolCallLimit.d.cts +1 -0
  59. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/toolCallLimit.d.ts +1 -0
  60. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/toolEmulator.d.cts +1 -0
  61. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/toolEmulator.d.ts +1 -0
  62. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/toolRetry.d.cts +1 -0
  63. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/toolRetry.d.ts +1 -0
  64. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/types.d.cts +3 -0
  65. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware/types.d.ts +3 -0
  66. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware.d.cts +2 -0
  67. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/middleware.d.ts +2 -0
  68. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/types.d.cts +3 -0
  69. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/agents/types.d.ts +3 -0
  70. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/index.d.cts +23 -0
  71. package/dist/node_modules/.pnpm/langchain@1.2.27_@langchain_core@1.1.28_openai@6.16.0_ws@8.19.0_zod@4.3.5___openai@6.16_37b31122102851880bcc0afaeba68edd/node_modules/langchain/dist/index.d.ts +23 -0
  72. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/ZodError.d.cts +155 -0
  73. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/ZodError.d.cts.map +1 -0
  74. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/ZodError.d.ts +155 -0
  75. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/ZodError.d.ts.map +1 -0
  76. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/errorUtil.d.cts +13 -0
  77. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/errorUtil.d.cts.map +1 -0
  78. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/errorUtil.d.ts +13 -0
  79. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/errorUtil.d.ts.map +1 -0
  80. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/parseUtil.d.cts +63 -0
  81. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/parseUtil.d.cts.map +1 -0
  82. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/parseUtil.d.ts +63 -0
  83. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/parseUtil.d.ts.map +1 -0
  84. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/typeAliases.d.cts +5 -0
  85. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/typeAliases.d.cts.map +1 -0
  86. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/typeAliases.d.ts +5 -0
  87. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/typeAliases.d.ts.map +1 -0
  88. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/util.d.cts +64 -0
  89. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/util.d.cts.map +1 -0
  90. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/util.d.ts +64 -0
  91. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/helpers/util.d.ts.map +1 -0
  92. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/standard-schema.d.cts +106 -0
  93. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/standard-schema.d.cts.map +1 -0
  94. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/standard-schema.d.ts +106 -0
  95. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/standard-schema.d.ts.map +1 -0
  96. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/types.d.cts +291 -0
  97. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/types.d.cts.map +1 -0
  98. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/types.d.ts +291 -0
  99. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v3/types.d.ts.map +1 -0
  100. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/checks.d.cts +29 -0
  101. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/checks.d.cts.map +1 -0
  102. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/checks.d.ts +29 -0
  103. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/checks.d.ts.map +1 -0
  104. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/core.d.cts +29 -0
  105. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/core.d.cts.map +1 -0
  106. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/core.d.ts +29 -0
  107. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/core.d.ts.map +1 -0
  108. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/errors.d.cts +105 -0
  109. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/errors.d.cts.map +1 -0
  110. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/errors.d.ts +105 -0
  111. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/errors.d.ts.map +1 -0
  112. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/json-schema.d.cts +70 -0
  113. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/json-schema.d.cts.map +1 -0
  114. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/json-schema.d.ts +70 -0
  115. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/json-schema.d.ts.map +1 -0
  116. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/registries.d.cts +24 -0
  117. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/registries.d.cts.map +1 -0
  118. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/registries.d.ts +24 -0
  119. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/registries.d.ts.map +1 -0
  120. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.d.cts +97 -0
  121. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.d.cts.map +1 -0
  122. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.d.ts +97 -0
  123. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.d.ts.map +1 -0
  124. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/standard-schema.d.cts +79 -0
  125. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/standard-schema.d.cts.map +1 -0
  126. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/standard-schema.d.ts +79 -0
  127. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/standard-schema.d.ts.map +1 -0
  128. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/to-json-schema.d.cts +52 -0
  129. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/to-json-schema.d.cts.map +1 -0
  130. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/to-json-schema.d.ts +52 -0
  131. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/to-json-schema.d.ts.map +1 -0
  132. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/util.d.cts +17 -0
  133. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/util.d.cts.map +1 -0
  134. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/util.d.ts +17 -0
  135. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/util.d.ts.map +1 -0
  136. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/versions.d.cts +9 -0
  137. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/versions.d.cts.map +1 -0
  138. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/versions.d.ts +9 -0
  139. package/dist/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/versions.d.ts.map +1 -0
  140. package/dist/react-ui/client.cjs +138 -0
  141. package/dist/react-ui/client.cjs.map +1 -0
  142. package/dist/react-ui/client.d.cts +80 -0
  143. package/dist/react-ui/client.d.cts.map +1 -0
  144. package/dist/react-ui/client.d.ts +80 -0
  145. package/dist/react-ui/client.d.ts.map +1 -0
  146. package/dist/react-ui/client.js +132 -0
  147. package/dist/react-ui/client.js.map +1 -0
  148. package/dist/react-ui/index.cjs +15 -0
  149. package/dist/react-ui/index.cjs.map +1 -0
  150. package/dist/react-ui/index.d.cts +3 -0
  151. package/dist/react-ui/index.d.ts +3 -0
  152. package/dist/react-ui/index.js +9 -0
  153. package/dist/react-ui/index.js.map +1 -0
  154. package/dist/react-ui/server/index.cjs +6 -0
  155. package/dist/react-ui/server/index.d.cts +3 -0
  156. package/dist/react-ui/server/index.d.ts +3 -0
  157. package/dist/react-ui/server/index.js +4 -0
  158. package/dist/react-ui/server/server.cjs +57 -0
  159. package/dist/react-ui/server/server.cjs.map +1 -0
  160. package/dist/react-ui/server/server.d.cts +54 -0
  161. package/dist/react-ui/server/server.d.cts.map +1 -0
  162. package/dist/react-ui/server/server.d.ts +54 -0
  163. package/dist/react-ui/server/server.d.ts.map +1 -0
  164. package/dist/react-ui/server/server.js +56 -0
  165. package/dist/react-ui/server/server.js.map +1 -0
  166. package/dist/react-ui/types.cjs +38 -0
  167. package/dist/react-ui/types.cjs.map +1 -0
  168. package/dist/react-ui/types.d.cts +25 -0
  169. package/dist/react-ui/types.d.cts.map +1 -0
  170. package/dist/react-ui/types.d.ts +25 -0
  171. package/dist/react-ui/types.d.ts.map +1 -0
  172. package/dist/react-ui/types.js +35 -0
  173. package/dist/react-ui/types.js.map +1 -0
  174. package/dist/stream.cjs +18 -0
  175. package/dist/stream.cjs.map +1 -0
  176. package/dist/stream.custom.cjs +162 -0
  177. package/dist/stream.custom.cjs.map +1 -0
  178. package/dist/stream.custom.d.cts +3 -0
  179. package/dist/stream.custom.d.ts +4 -0
  180. package/dist/stream.custom.js +161 -0
  181. package/dist/stream.custom.js.map +1 -0
  182. package/dist/stream.d.cts +193 -0
  183. package/dist/stream.d.cts.map +1 -0
  184. package/dist/stream.d.ts +193 -0
  185. package/dist/stream.d.ts.map +1 -0
  186. package/dist/stream.js +17 -0
  187. package/dist/stream.js.map +1 -0
  188. package/dist/stream.lgp.cjs +623 -0
  189. package/dist/stream.lgp.cjs.map +1 -0
  190. package/dist/stream.lgp.js +622 -0
  191. package/dist/stream.lgp.js.map +1 -0
  192. package/dist/thread.cjs +21 -0
  193. package/dist/thread.cjs.map +1 -0
  194. package/dist/thread.js +20 -0
  195. package/dist/thread.js.map +1 -0
  196. package/dist/types.d.cts +93 -0
  197. package/dist/types.d.cts.map +1 -0
  198. package/dist/types.d.ts +93 -0
  199. package/dist/types.d.ts.map +1 -0
  200. package/package.json +106 -0
@@ -0,0 +1,622 @@
1
+ "use client";
2
+
3
+ import { useControllableThreadId } from "./thread.js";
4
+ import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
5
+ import { Client, getClientConfigHash } from "@langchain/langgraph-sdk/client";
6
+ import { MessageTupleManager, PendingRunsTracker, StreamError, StreamManager, extractInterrupts, filterStream, getBranchContext, getMessagesMetadataMap, toMessageClass, unique } from "@langchain/langgraph-sdk/ui";
7
+ import { getToolCallsWithResults } from "@langchain/langgraph-sdk/utils";
8
+
9
+ //#region src/stream.lgp.tsx
10
+ function getFetchHistoryKey(client, threadId, limit) {
11
+ return [
12
+ getClientConfigHash(client),
13
+ threadId,
14
+ limit
15
+ ].join(":");
16
+ }
17
+ function fetchHistory(client, threadId, options) {
18
+ if (options?.limit === false) return client.threads.getState(threadId).then((state) => {
19
+ if (state.checkpoint == null) return [];
20
+ return [state];
21
+ });
22
+ const limit = typeof options?.limit === "number" ? options.limit : 10;
23
+ return client.threads.getHistory(threadId, { limit });
24
+ }
25
+ function useThreadHistory(client, threadId, limit, options) {
26
+ const key = getFetchHistoryKey(client, threadId, limit);
27
+ const [state, setState] = useState(() => ({
28
+ key: void 0,
29
+ data: void 0,
30
+ error: void 0,
31
+ isLoading: threadId != null
32
+ }));
33
+ const clientRef = useRef(client);
34
+ clientRef.current = client;
35
+ const onErrorRef = useRef(options?.onError);
36
+ onErrorRef.current = options?.onError;
37
+ const fetcher = useCallback((threadId, limit) => {
38
+ if (options.passthrough) return Promise.resolve([]);
39
+ const client = clientRef.current;
40
+ const key = getFetchHistoryKey(client, threadId, limit);
41
+ if (threadId != null) {
42
+ setState((state) => {
43
+ if (state.key === key) return {
44
+ ...state,
45
+ isLoading: true
46
+ };
47
+ return {
48
+ key,
49
+ data: void 0,
50
+ error: void 0,
51
+ isLoading: true
52
+ };
53
+ });
54
+ return fetchHistory(client, threadId, { limit }).then((data) => {
55
+ setState((state) => {
56
+ if (state.key !== key) return state;
57
+ return {
58
+ key,
59
+ data,
60
+ error: void 0,
61
+ isLoading: false
62
+ };
63
+ });
64
+ return data;
65
+ }, (error) => {
66
+ setState((state) => {
67
+ if (state.key !== key) return state;
68
+ return {
69
+ key,
70
+ data: state.data,
71
+ error,
72
+ isLoading: false
73
+ };
74
+ });
75
+ onErrorRef.current?.(error);
76
+ return Promise.reject(error);
77
+ });
78
+ }
79
+ setState({
80
+ key,
81
+ data: void 0,
82
+ error: void 0,
83
+ isLoading: false
84
+ });
85
+ return Promise.resolve([]);
86
+ }, [options.passthrough]);
87
+ useEffect(() => {
88
+ if (options.submittingRef.current != null && options.submittingRef.current === threadId) return;
89
+ fetcher(threadId, limit);
90
+ }, [fetcher, key]);
91
+ return {
92
+ data: state.data,
93
+ error: state.error,
94
+ isLoading: state.isLoading,
95
+ mutate: (mutateId) => fetcher(mutateId ?? threadId, limit)
96
+ };
97
+ }
98
+ function useTrackStreamMode() {
99
+ const trackStreamModeRef = useRef([]);
100
+ return [trackStreamModeRef, useCallback((...mode) => {
101
+ const ref = trackStreamModeRef.current;
102
+ for (const m of mode) if (!ref.includes(m)) ref.push(m);
103
+ }, [])];
104
+ }
105
+ function useCallbackStreamMode(options) {
106
+ const hasUpdateListener = options.onUpdateEvent != null;
107
+ const hasCustomListener = options.onCustomEvent != null;
108
+ const hasLangChainListener = options.onLangChainEvent != null;
109
+ const hasDebugListener = options.onDebugEvent != null;
110
+ const hasCheckpointListener = options.onCheckpointEvent != null;
111
+ const hasTaskListener = options.onTaskEvent != null;
112
+ return useMemo(() => {
113
+ const modes = [];
114
+ if (hasUpdateListener) modes.push("updates");
115
+ if (hasCustomListener) modes.push("custom");
116
+ if (hasLangChainListener) modes.push("events");
117
+ if (hasDebugListener) modes.push("debug");
118
+ if (hasCheckpointListener) modes.push("checkpoints");
119
+ if (hasTaskListener) modes.push("tasks");
120
+ return modes;
121
+ }, [
122
+ hasUpdateListener,
123
+ hasCustomListener,
124
+ hasLangChainListener,
125
+ hasDebugListener,
126
+ hasCheckpointListener,
127
+ hasTaskListener
128
+ ]);
129
+ }
130
+ function useStreamLGP(options) {
131
+ const reconnectOnMountRef = useRef(options.reconnectOnMount);
132
+ const runMetadataStorage = useMemo(() => {
133
+ if (typeof window === "undefined") return null;
134
+ const storage = reconnectOnMountRef.current;
135
+ if (storage === true) return window.sessionStorage;
136
+ if (typeof storage === "function") return storage();
137
+ return null;
138
+ }, []);
139
+ const client = useMemo(() => options.client ?? new Client({
140
+ apiUrl: options.apiUrl,
141
+ apiKey: options.apiKey,
142
+ callerOptions: options.callerOptions,
143
+ defaultHeaders: options.defaultHeaders
144
+ }), [
145
+ options.client,
146
+ options.apiKey,
147
+ options.apiUrl,
148
+ options.callerOptions,
149
+ options.defaultHeaders
150
+ ]);
151
+ const [messageManager] = useState(() => new MessageTupleManager());
152
+ const [stream] = useState(() => new StreamManager(messageManager, {
153
+ throttle: options.throttle ?? false,
154
+ subagentToolNames: options.subagentToolNames,
155
+ filterSubagentMessages: options.filterSubagentMessages,
156
+ toMessage: options.toMessage ?? toMessageClass
157
+ }));
158
+ const [pendingRuns] = useState(() => new PendingRunsTracker());
159
+ useSyncExternalStore(pendingRuns.subscribe, pendingRuns.getSnapshot, pendingRuns.getSnapshot);
160
+ const [trackStreamModeRef, trackStreamMode] = useTrackStreamMode();
161
+ const callbackStreamMode = useCallbackStreamMode(options);
162
+ const getMessages = (value) => {
163
+ const messagesKey = options.messagesKey ?? "messages";
164
+ return Array.isArray(value[messagesKey]) ? value[messagesKey] : [];
165
+ };
166
+ const setMessages = (current, messages) => {
167
+ const messagesKey = options.messagesKey ?? "messages";
168
+ return {
169
+ ...current,
170
+ [messagesKey]: messages
171
+ };
172
+ };
173
+ useSyncExternalStore(stream.subscribe, stream.getSnapshot, stream.getSnapshot);
174
+ const [threadId, onThreadId] = useControllableThreadId(options);
175
+ const threadIdRef = useRef(threadId);
176
+ const threadIdStreamingRef = useRef(null);
177
+ useEffect(() => {
178
+ if (threadIdRef.current !== threadId) {
179
+ threadIdRef.current = threadId;
180
+ stream.clear();
181
+ }
182
+ }, [threadId, stream]);
183
+ const switchThread = useCallback((newThreadId) => {
184
+ if (newThreadId !== threadIdRef.current) {
185
+ const prevThreadId = threadIdRef.current;
186
+ threadIdRef.current = newThreadId;
187
+ stream.clear();
188
+ const removed = pendingRuns.removeAll();
189
+ if (prevThreadId && removed.length > 0) Promise.all(removed.map((e) => client.runs.cancel(prevThreadId, e.id)));
190
+ onThreadId(newThreadId);
191
+ }
192
+ }, [
193
+ stream,
194
+ pendingRuns,
195
+ onThreadId,
196
+ client
197
+ ]);
198
+ const historyLimit = typeof options.fetchStateHistory === "object" && options.fetchStateHistory != null ? options.fetchStateHistory.limit ?? false : options.fetchStateHistory ?? false;
199
+ const builtInHistory = useThreadHistory(client, threadId, historyLimit, {
200
+ passthrough: options.thread != null,
201
+ submittingRef: threadIdStreamingRef,
202
+ onError: options.onError
203
+ });
204
+ const history = options.thread ?? builtInHistory;
205
+ const [branch, setBranch] = useState("");
206
+ const branchContext = getBranchContext(branch, history.data ?? void 0);
207
+ const [toolProgressMap, setToolProgressMap] = useState(/* @__PURE__ */ new Map());
208
+ const handleToolEvent = useCallback((data) => {
209
+ setToolProgressMap((prev) => {
210
+ const next = new Map(prev);
211
+ const key = data.toolCallId ?? data.name;
212
+ const existing = next.get(key);
213
+ switch (data.event) {
214
+ case "on_tool_start":
215
+ next.set(key, {
216
+ toolCallId: data.toolCallId,
217
+ name: data.name,
218
+ state: "starting",
219
+ input: data.input
220
+ });
221
+ break;
222
+ case "on_tool_event":
223
+ if (existing) next.set(key, {
224
+ ...existing,
225
+ state: "running",
226
+ data: data.data
227
+ });
228
+ break;
229
+ case "on_tool_end":
230
+ if (existing) next.set(key, {
231
+ ...existing,
232
+ state: "completed",
233
+ result: data.output
234
+ });
235
+ break;
236
+ case "on_tool_error":
237
+ if (existing) next.set(key, {
238
+ ...existing,
239
+ state: "error",
240
+ error: data.error
241
+ });
242
+ break;
243
+ default: throw new Error(`Unexpected tool event: ${data.event}`);
244
+ }
245
+ return next;
246
+ });
247
+ }, []);
248
+ const historyValues = branchContext.threadHead?.values ?? options.initialValues ?? {};
249
+ const historyMessages = getMessages(historyValues);
250
+ const shouldReconstructSubagents = options.filterSubagentMessages && !stream.isLoading && !history.isLoading && historyMessages.length > 0;
251
+ useEffect(() => {
252
+ if (shouldReconstructSubagents) stream.reconstructSubagents(historyMessages, { skipIfPopulated: true });
253
+ }, [shouldReconstructSubagents, historyMessages.length]);
254
+ const historyError = (() => {
255
+ const error = branchContext.threadHead?.tasks?.at(-1)?.error;
256
+ if (error == null) return void 0;
257
+ try {
258
+ const parsed = JSON.parse(error);
259
+ if (StreamError.isStructuredError(parsed)) return new StreamError(parsed);
260
+ return parsed;
261
+ } catch {}
262
+ return error;
263
+ })();
264
+ const messageMetadata = getMessagesMetadataMap({
265
+ initialValues: options.initialValues,
266
+ history: history.data,
267
+ getMessages,
268
+ branchContext
269
+ });
270
+ const stop = () => stream.stop(historyValues, { onStop: (args) => {
271
+ if (runMetadataStorage && threadId) {
272
+ const runId = runMetadataStorage.getItem(`lg:stream:${threadId}`);
273
+ if (runId) client.runs.cancel(threadId, runId);
274
+ runMetadataStorage.removeItem(`lg:stream:${threadId}`);
275
+ }
276
+ options.onStop?.(args);
277
+ } });
278
+ const submitDirect = async (values, submitOptions) => {
279
+ setToolProgressMap(/* @__PURE__ */ new Map());
280
+ const checkpointId = submitOptions?.checkpoint?.checkpoint_id;
281
+ setBranch(checkpointId != null ? branchContext.branchByCheckpoint[checkpointId]?.branch ?? "" : "");
282
+ const includeImplicitBranch = historyLimit === true || typeof historyLimit === "number";
283
+ const shouldRefetch = options.onFinish != null || includeImplicitBranch;
284
+ let callbackMeta;
285
+ let rejoinKey;
286
+ let usableThreadId = threadId;
287
+ const shouldAbortPrevious = (submitOptions?.multitaskStrategy === "interrupt" || submitOptions?.multitaskStrategy === "rollback") && stream.isLoading;
288
+ await stream.start(async (signal) => {
289
+ stream.setStreamValues((values) => {
290
+ const prev = {
291
+ ...historyValues,
292
+ ...values
293
+ };
294
+ if (submitOptions?.optimisticValues != null) return {
295
+ ...prev,
296
+ ...typeof submitOptions.optimisticValues === "function" ? submitOptions.optimisticValues(prev) : submitOptions.optimisticValues
297
+ };
298
+ return { ...prev };
299
+ });
300
+ if (!usableThreadId) {
301
+ usableThreadId = (await client.threads.create({
302
+ threadId: submitOptions?.threadId,
303
+ metadata: submitOptions?.metadata,
304
+ signal
305
+ })).thread_id;
306
+ threadIdRef.current = usableThreadId;
307
+ threadIdStreamingRef.current = usableThreadId;
308
+ onThreadId(usableThreadId);
309
+ }
310
+ if (!usableThreadId) throw new Error("Failed to obtain valid thread ID.");
311
+ threadIdStreamingRef.current = usableThreadId;
312
+ const streamMode = unique([
313
+ ...submitOptions?.streamMode ?? [],
314
+ ...trackStreamModeRef.current,
315
+ ...callbackStreamMode
316
+ ]);
317
+ let checkpoint = submitOptions?.checkpoint ?? (includeImplicitBranch ? branchContext.threadHead?.checkpoint : void 0) ?? void 0;
318
+ if (submitOptions?.checkpoint === null) checkpoint = void 0;
319
+ if (checkpoint != null) delete checkpoint.thread_id;
320
+ const streamResumable = submitOptions?.streamResumable ?? !!runMetadataStorage;
321
+ return client.runs.stream(usableThreadId, options.assistantId, {
322
+ input: values,
323
+ config: submitOptions?.config,
324
+ context: submitOptions?.context,
325
+ command: submitOptions?.command,
326
+ interruptBefore: submitOptions?.interruptBefore,
327
+ interruptAfter: submitOptions?.interruptAfter,
328
+ metadata: submitOptions?.metadata,
329
+ multitaskStrategy: submitOptions?.multitaskStrategy,
330
+ onCompletion: submitOptions?.onCompletion,
331
+ onDisconnect: submitOptions?.onDisconnect ?? (streamResumable ? "continue" : "cancel"),
332
+ signal,
333
+ checkpoint,
334
+ streamMode,
335
+ streamSubgraphs: submitOptions?.streamSubgraphs,
336
+ streamResumable,
337
+ durability: submitOptions?.durability,
338
+ onRunCreated(params) {
339
+ callbackMeta = {
340
+ run_id: params.run_id,
341
+ thread_id: params.thread_id ?? usableThreadId
342
+ };
343
+ if (runMetadataStorage) {
344
+ rejoinKey = `lg:stream:${usableThreadId}`;
345
+ runMetadataStorage.setItem(rejoinKey, callbackMeta.run_id);
346
+ }
347
+ options.onCreated?.(callbackMeta);
348
+ }
349
+ });
350
+ }, {
351
+ getMessages,
352
+ setMessages,
353
+ initialValues: historyValues,
354
+ callbacks: {
355
+ ...options,
356
+ onToolEvent: (data, opts) => {
357
+ handleToolEvent(data);
358
+ options.onToolEvent?.(data, opts);
359
+ }
360
+ },
361
+ async onSuccess() {
362
+ if (rejoinKey) runMetadataStorage?.removeItem(rejoinKey);
363
+ if (shouldRefetch) {
364
+ const lastHead = (await history.mutate(usableThreadId))?.at(0);
365
+ if (lastHead) {
366
+ options.onFinish?.(lastHead, callbackMeta);
367
+ return null;
368
+ }
369
+ }
370
+ },
371
+ onError(error) {
372
+ options.onError?.(error, callbackMeta);
373
+ },
374
+ onFinish() {
375
+ threadIdStreamingRef.current = null;
376
+ }
377
+ }, { abortPrevious: shouldAbortPrevious });
378
+ };
379
+ const submitDirectRef = useRef(submitDirect);
380
+ submitDirectRef.current = submitDirect;
381
+ const submittingRef = useRef(false);
382
+ const submit = async (values, submitOptions) => {
383
+ if (stream.isLoading || submittingRef.current) {
384
+ if (submitOptions?.multitaskStrategy === "interrupt" || submitOptions?.multitaskStrategy === "rollback") {
385
+ submittingRef.current = true;
386
+ try {
387
+ await submitDirect(values, submitOptions);
388
+ } finally {
389
+ submittingRef.current = false;
390
+ }
391
+ return;
392
+ }
393
+ const usableThreadId = threadIdRef.current ?? threadId;
394
+ if (usableThreadId) {
395
+ const run = await client.runs.create(usableThreadId, options.assistantId, {
396
+ input: values,
397
+ config: submitOptions?.config,
398
+ context: submitOptions?.context,
399
+ command: submitOptions?.command,
400
+ interruptBefore: submitOptions?.interruptBefore,
401
+ interruptAfter: submitOptions?.interruptAfter,
402
+ metadata: submitOptions?.metadata,
403
+ multitaskStrategy: "enqueue",
404
+ streamResumable: true,
405
+ streamSubgraphs: submitOptions?.streamSubgraphs,
406
+ durability: submitOptions?.durability
407
+ });
408
+ pendingRuns.add({
409
+ id: run.run_id,
410
+ values,
411
+ options: submitOptions,
412
+ createdAt: new Date(run.created_at)
413
+ });
414
+ return;
415
+ }
416
+ }
417
+ submittingRef.current = true;
418
+ try {
419
+ await submitDirect(values, submitOptions);
420
+ } finally {
421
+ submittingRef.current = false;
422
+ }
423
+ };
424
+ const joinStream = async (runId, lastEventId, joinOptions) => {
425
+ setToolProgressMap(/* @__PURE__ */ new Map());
426
+ lastEventId ??= "-1";
427
+ if (!threadId) return;
428
+ const callbackMeta = {
429
+ thread_id: threadId,
430
+ run_id: runId
431
+ };
432
+ await stream.start(async (signal) => {
433
+ threadIdStreamingRef.current = threadId;
434
+ const stream = client.runs.joinStream(threadId, runId, {
435
+ signal,
436
+ lastEventId,
437
+ streamMode: joinOptions?.streamMode
438
+ });
439
+ return joinOptions?.filter != null ? filterStream(stream, joinOptions.filter) : stream;
440
+ }, {
441
+ getMessages,
442
+ setMessages,
443
+ initialValues: historyValues,
444
+ callbacks: {
445
+ ...options,
446
+ onToolEvent: (data, opts) => {
447
+ handleToolEvent(data);
448
+ options.onToolEvent?.(data, opts);
449
+ }
450
+ },
451
+ async onSuccess() {
452
+ runMetadataStorage?.removeItem(`lg:stream:${threadId}`);
453
+ const lastHead = (await history.mutate(threadId))?.at(0);
454
+ if (lastHead) options.onFinish?.(lastHead, callbackMeta);
455
+ },
456
+ onError(error) {
457
+ options.onError?.(error, callbackMeta);
458
+ },
459
+ onFinish() {
460
+ threadIdStreamingRef.current = null;
461
+ }
462
+ });
463
+ };
464
+ const joinStreamRef = useRef(joinStream);
465
+ joinStreamRef.current = joinStream;
466
+ useEffect(() => {
467
+ if (!stream.isLoading && !submittingRef.current && pendingRuns.size > 0) {
468
+ const next = pendingRuns.shift();
469
+ if (next) {
470
+ submittingRef.current = true;
471
+ joinStreamRef.current(next.id).finally(() => {
472
+ submittingRef.current = false;
473
+ });
474
+ }
475
+ }
476
+ }, [stream.isLoading, pendingRuns.size]);
477
+ const reconnectKey = useMemo(() => {
478
+ if (!runMetadataStorage || stream.isLoading) return void 0;
479
+ if (typeof window === "undefined") return void 0;
480
+ const runId = runMetadataStorage?.getItem(`lg:stream:${threadId}`);
481
+ if (!runId) return void 0;
482
+ return {
483
+ runId,
484
+ threadId
485
+ };
486
+ }, [
487
+ runMetadataStorage,
488
+ stream.isLoading,
489
+ threadId
490
+ ]);
491
+ const shouldReconnect = !!runMetadataStorage;
492
+ const reconnectRef = useRef({
493
+ threadId,
494
+ shouldReconnect
495
+ });
496
+ useEffect(() => {
497
+ if (reconnectRef.current.threadId !== threadId) reconnectRef.current = {
498
+ threadId,
499
+ shouldReconnect
500
+ };
501
+ }, [threadId, shouldReconnect]);
502
+ useEffect(() => {
503
+ if (reconnectKey && reconnectRef.current.shouldReconnect) {
504
+ reconnectRef.current.shouldReconnect = false;
505
+ joinStreamRef.current?.(reconnectKey.runId);
506
+ }
507
+ }, [reconnectKey]);
508
+ const error = stream.error ?? historyError ?? history.error;
509
+ const values = stream.values ?? historyValues;
510
+ return {
511
+ get values() {
512
+ trackStreamMode("values");
513
+ return values;
514
+ },
515
+ client,
516
+ assistantId: options.assistantId,
517
+ error,
518
+ isLoading: stream.isLoading,
519
+ stop,
520
+ submit,
521
+ switchThread,
522
+ joinStream,
523
+ branch,
524
+ setBranch,
525
+ get history() {
526
+ if (historyLimit === false) throw new Error("`fetchStateHistory` must be set to `true` to use `history`");
527
+ return branchContext.flatHistory;
528
+ },
529
+ isThreadLoading: history.isLoading && history.data == null,
530
+ get experimental_branchTree() {
531
+ if (historyLimit === false) throw new Error("`fetchStateHistory` must be set to `true` to use `experimental_branchTree`");
532
+ return branchContext.branchTree;
533
+ },
534
+ get interrupts() {
535
+ if (values != null && "__interrupt__" in values && Array.isArray(values.__interrupt__)) {
536
+ const valueInterrupts = values.__interrupt__;
537
+ if (valueInterrupts.length === 0) return [{ when: "breakpoint" }];
538
+ return valueInterrupts;
539
+ }
540
+ if (stream.isLoading) return [];
541
+ const allInterrupts = (branchContext.threadHead?.tasks ?? []).flatMap((t) => t.interrupts ?? []);
542
+ if (allInterrupts.length > 0) return allInterrupts;
543
+ if (!(branchContext.threadHead?.next ?? []).length || error != null) return [];
544
+ return [{ when: "breakpoint" }];
545
+ },
546
+ get interrupt() {
547
+ return extractInterrupts(values, {
548
+ error,
549
+ isLoading: stream.isLoading,
550
+ threadState: branchContext.threadHead
551
+ });
552
+ },
553
+ get messages() {
554
+ trackStreamMode("messages-tuple", "values");
555
+ return getMessages(values);
556
+ },
557
+ get toolCalls() {
558
+ trackStreamMode("messages-tuple", "values");
559
+ return getToolCallsWithResults(getMessages(values));
560
+ },
561
+ get toolProgress() {
562
+ trackStreamMode("tools");
563
+ return Array.from(toolProgressMap.values());
564
+ },
565
+ getToolCalls(message) {
566
+ trackStreamMode("messages-tuple", "values");
567
+ return getToolCallsWithResults(getMessages(values)).filter((tc) => tc.aiMessage.id === message.id);
568
+ },
569
+ getMessagesMetadata(message, index) {
570
+ trackStreamMode("values");
571
+ const streamMetadata = messageManager.get(message.id)?.metadata;
572
+ const historyMetadata = messageMetadata?.find((m) => m.messageId === (message.id ?? index));
573
+ if (streamMetadata != null || historyMetadata != null) return {
574
+ ...historyMetadata,
575
+ streamMetadata
576
+ };
577
+ },
578
+ get subagents() {
579
+ trackStreamMode("updates", "messages-tuple");
580
+ return stream.getSubagents();
581
+ },
582
+ get activeSubagents() {
583
+ trackStreamMode("updates", "messages-tuple");
584
+ return stream.getActiveSubagents();
585
+ },
586
+ getSubagent(toolCallId) {
587
+ trackStreamMode("updates", "messages-tuple");
588
+ return stream.getSubagent(toolCallId);
589
+ },
590
+ getSubagentsByType(type) {
591
+ trackStreamMode("updates", "messages-tuple");
592
+ return stream.getSubagentsByType(type);
593
+ },
594
+ getSubagentsByMessage(messageId) {
595
+ trackStreamMode("updates", "messages-tuple");
596
+ return stream.getSubagentsByMessage(messageId);
597
+ },
598
+ queue: {
599
+ get entries() {
600
+ return pendingRuns.entries;
601
+ },
602
+ get size() {
603
+ return pendingRuns.size;
604
+ },
605
+ async cancel(id) {
606
+ const usableThreadId = threadIdRef.current ?? threadId;
607
+ const removed = pendingRuns.remove(id);
608
+ if (removed && usableThreadId) await client.runs.cancel(usableThreadId, id);
609
+ return removed;
610
+ },
611
+ async clear() {
612
+ const usableThreadId = threadIdRef.current ?? threadId;
613
+ const removed = pendingRuns.removeAll();
614
+ if (usableThreadId && removed.length > 0) await Promise.all(removed.map((e) => client.runs.cancel(usableThreadId, e.id)));
615
+ }
616
+ }
617
+ };
618
+ }
619
+
620
+ //#endregion
621
+ export { useStreamLGP };
622
+ //# sourceMappingURL=stream.lgp.js.map