@langchain/angular 0.1.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/README.md +275 -16
  2. package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorate.cjs +9 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorate.js +9 -0
  4. package/dist/context.cjs +94 -0
  5. package/dist/context.cjs.map +1 -0
  6. package/dist/context.d.cts +130 -0
  7. package/dist/context.d.cts.map +1 -0
  8. package/dist/context.d.ts +130 -0
  9. package/dist/context.d.ts.map +1 -0
  10. package/dist/context.js +91 -0
  11. package/dist/context.js.map +1 -0
  12. package/dist/index.cjs +212 -386
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.d.cts +317 -16
  15. package/dist/index.d.cts.map +1 -1
  16. package/dist/index.d.ts +317 -16
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +203 -390
  19. package/dist/index.js.map +1 -1
  20. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/channels/base.d.cts +83 -0
  21. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/channels/base.d.cts.map +1 -0
  22. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/channels/base.d.ts +83 -0
  23. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/channels/base.d.ts.map +1 -0
  24. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/constants.d.cts +42 -0
  25. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/constants.d.cts.map +1 -0
  26. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/constants.d.ts +42 -0
  27. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/constants.d.ts.map +1 -0
  28. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/index.d.cts +2 -0
  29. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/index.d.ts +2 -0
  30. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/meta.d.cts +109 -0
  31. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/meta.d.cts.map +1 -0
  32. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/meta.d.ts +109 -0
  33. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/meta.d.ts.map +1 -0
  34. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/plugin.d.cts +31 -0
  35. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/plugin.d.cts.map +1 -0
  36. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/plugin.d.ts +31 -0
  37. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/plugin.d.ts.map +1 -0
  38. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/zod-registry.d.cts +49 -0
  39. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/zod-registry.d.cts.map +1 -0
  40. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/zod-registry.d.ts +49 -0
  41. package/dist/node_modules/.pnpm/@langchain_langgraph@1.2.1_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/zod-registry.d.ts.map +1 -0
  42. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/ReactAgent.d.cts +1 -0
  43. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/ReactAgent.d.ts +1 -0
  44. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/index.d.cts +1 -0
  45. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/index.d.ts +1 -0
  46. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/contextEditing.d.cts +1 -0
  47. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/contextEditing.d.ts +1 -0
  48. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/dynamicSystemPrompt.d.cts +1 -0
  49. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/dynamicSystemPrompt.d.ts +1 -0
  50. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/hitl.d.cts +1 -0
  51. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/hitl.d.ts +1 -0
  52. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/llmToolSelector.d.cts +1 -0
  53. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/llmToolSelector.d.ts +1 -0
  54. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/modelCallLimit.d.cts +1 -0
  55. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/modelCallLimit.d.ts +1 -0
  56. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/modelFallback.d.cts +1 -0
  57. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/modelFallback.d.ts +1 -0
  58. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/modelRetry.d.cts +1 -0
  59. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/modelRetry.d.ts +1 -0
  60. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/pii.d.cts +1 -0
  61. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/pii.d.ts +1 -0
  62. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/piiRedaction.d.cts +1 -0
  63. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/piiRedaction.d.ts +1 -0
  64. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/provider/anthropic/promptCaching.d.cts +1 -0
  65. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/provider/anthropic/promptCaching.d.ts +1 -0
  66. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/provider/openai/moderation.d.cts +1 -0
  67. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/provider/openai/moderation.d.ts +1 -0
  68. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/summarization.d.cts +1 -0
  69. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/summarization.d.ts +1 -0
  70. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/todoListMiddleware.d.cts +1 -0
  71. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/todoListMiddleware.d.ts +1 -0
  72. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/toolCallLimit.d.cts +1 -0
  73. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/toolCallLimit.d.ts +1 -0
  74. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/toolEmulator.d.cts +1 -0
  75. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/toolEmulator.d.ts +1 -0
  76. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/toolRetry.d.cts +1 -0
  77. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/toolRetry.d.ts +1 -0
  78. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/types.d.cts +2 -0
  79. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware/types.d.ts +2 -0
  80. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware.d.cts +1 -0
  81. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/middleware.d.ts +1 -0
  82. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/types.d.cts +2 -0
  83. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/agents/types.d.ts +2 -0
  84. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/index.d.cts +2 -0
  85. package/dist/node_modules/.pnpm/langchain@1.2.30_@langchain_core@1.1.31_@opentelemetry_api@1.9.0_openai@6.27.0_ws@8.19._0520fb05d9e85da5f9e061dfe28cdbc8/node_modules/langchain/dist/index.d.ts +2 -0
  86. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/ZodError.d.cts +155 -0
  87. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/ZodError.d.cts.map +1 -0
  88. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/ZodError.d.ts +155 -0
  89. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/ZodError.d.ts.map +1 -0
  90. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/errorUtil.d.cts +13 -0
  91. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/errorUtil.d.cts.map +1 -0
  92. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/errorUtil.d.ts +13 -0
  93. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/errorUtil.d.ts.map +1 -0
  94. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/parseUtil.d.cts +63 -0
  95. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/parseUtil.d.cts.map +1 -0
  96. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/parseUtil.d.ts +63 -0
  97. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/parseUtil.d.ts.map +1 -0
  98. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/typeAliases.d.cts +5 -0
  99. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/typeAliases.d.cts.map +1 -0
  100. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/typeAliases.d.ts +5 -0
  101. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/typeAliases.d.ts.map +1 -0
  102. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.d.cts +64 -0
  103. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.d.cts.map +1 -0
  104. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.d.ts +64 -0
  105. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.d.ts.map +1 -0
  106. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/standard-schema.d.cts +106 -0
  107. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/standard-schema.d.cts.map +1 -0
  108. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/standard-schema.d.ts +106 -0
  109. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/standard-schema.d.ts.map +1 -0
  110. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/types.d.cts +291 -0
  111. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/types.d.cts.map +1 -0
  112. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/types.d.ts +291 -0
  113. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/types.d.ts.map +1 -0
  114. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.d.cts +29 -0
  115. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.d.cts.map +1 -0
  116. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.d.ts +29 -0
  117. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.d.ts.map +1 -0
  118. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.d.cts +29 -0
  119. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.d.cts.map +1 -0
  120. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.d.ts +29 -0
  121. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.d.ts.map +1 -0
  122. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.d.cts +105 -0
  123. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.d.cts.map +1 -0
  124. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.d.ts +105 -0
  125. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.d.ts.map +1 -0
  126. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.d.cts +70 -0
  127. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.d.cts.map +1 -0
  128. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.d.ts +70 -0
  129. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.d.ts.map +1 -0
  130. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.d.cts +24 -0
  131. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.d.cts.map +1 -0
  132. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.d.ts +24 -0
  133. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.d.ts.map +1 -0
  134. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.d.cts +97 -0
  135. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.d.cts.map +1 -0
  136. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.d.ts +97 -0
  137. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.d.ts.map +1 -0
  138. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/standard-schema.d.cts +79 -0
  139. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/standard-schema.d.cts.map +1 -0
  140. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/standard-schema.d.ts +79 -0
  141. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/standard-schema.d.ts.map +1 -0
  142. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.d.cts +52 -0
  143. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.d.cts.map +1 -0
  144. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.d.ts +52 -0
  145. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.d.ts.map +1 -0
  146. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.d.cts +17 -0
  147. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.d.cts.map +1 -0
  148. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.d.ts +17 -0
  149. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.d.ts.map +1 -0
  150. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.d.cts +9 -0
  151. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.d.cts.map +1 -0
  152. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.d.ts +9 -0
  153. package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.d.ts.map +1 -0
  154. package/dist/stream.custom.cjs +54 -137
  155. package/dist/stream.custom.cjs.map +1 -1
  156. package/dist/stream.custom.d.cts +45 -0
  157. package/dist/stream.custom.d.cts.map +1 -0
  158. package/dist/stream.custom.d.ts +45 -0
  159. package/dist/stream.custom.d.ts.map +1 -0
  160. package/dist/stream.custom.js +55 -139
  161. package/dist/stream.custom.js.map +1 -1
  162. package/dist/subagent-types.d.cts +15 -0
  163. package/dist/subagent-types.d.cts.map +1 -0
  164. package/dist/subagent-types.d.ts +15 -0
  165. package/dist/subagent-types.d.ts.map +1 -0
  166. package/package.json +9 -11
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import { signal, computed, effect } from \"@angular/core\";\nimport type { Signal, WritableSignal } from \"@angular/core\";\nimport type {\n BaseMessage,\n ToolMessage as CoreToolMessage,\n AIMessage as CoreAIMessage,\n} from \"@langchain/core/messages\";\nimport {\n StreamManager,\n MessageTupleManager,\n PendingRunsTracker,\n filterStream,\n getBranchContext,\n getMessagesMetadataMap,\n StreamError,\n extractInterrupts,\n toMessageClass,\n ensureMessageInstances,\n ensureHistoryMessageInstances,\n type UseStreamThread,\n type GetConfigurableType,\n type GetCustomEventType,\n type GetInterruptType,\n type GetUpdateType,\n type MessageMetadata,\n type AnyStreamOptions,\n type SubmitOptions,\n type EventStreamEvent,\n type RunCallbackMeta,\n type ResolveStreamOptions,\n type ResolveStreamInterface,\n type InferBag,\n type InferStateType,\n type AcceptBaseMessages,\n type UseStreamCustomOptions,\n type SubagentStreamInterface,\n type HistoryWithBaseMessages,\n} from \"@langchain/langgraph-sdk/ui\";\n\nimport {\n Client,\n type StreamEvent,\n type StreamMode,\n type Message,\n type Interrupt,\n type BagTemplate,\n type ThreadState,\n type ToolCallWithResult as _ToolCallWithResult,\n type DefaultToolCall,\n} from \"@langchain/langgraph-sdk\";\nimport { getToolCallsWithResults } from \"@langchain/langgraph-sdk/utils\";\nimport { useStreamCustom } from \"./stream.custom.js\";\n\nexport { FetchStreamTransport } from \"@langchain/langgraph-sdk/ui\";\n\ntype ClassToolCallWithResult<T> =\n T extends _ToolCallWithResult<infer TC, unknown, unknown>\n ? _ToolCallWithResult<TC, CoreToolMessage, CoreAIMessage>\n : T;\n\nexport type ClassSubagentStreamInterface<\n StateType = Record<string, unknown>,\n ToolCall = DefaultToolCall,\n SubagentName extends string = string,\n> = Omit<\n SubagentStreamInterface<StateType, ToolCall, SubagentName>,\n \"messages\"\n> & {\n messages: BaseMessage[];\n};\n\ntype WithClassMessages<T> = Omit<\n T,\n | \"messages\"\n | \"history\"\n | \"getMessagesMetadata\"\n | \"toolCalls\"\n | \"getToolCalls\"\n | \"submit\"\n | \"subagents\"\n | \"activeSubagents\"\n | \"getSubagent\"\n | \"getSubagentsByType\"\n | \"getSubagentsByMessage\"\n> & {\n messages: BaseMessage[];\n getMessagesMetadata: (\n message: BaseMessage,\n index?: number,\n ) => MessageMetadata<Record<string, unknown>> | undefined;\n} & (\"history\" extends keyof T\n ? { history: HistoryWithBaseMessages<T[\"history\"]> }\n : unknown) &\n (\"submit\" extends keyof T\n ? {\n submit: T extends {\n submit: (values: infer V, options?: infer O) => infer Ret;\n }\n ? (\n values:\n | AcceptBaseMessages<Exclude<V, null | undefined>>\n | null\n | undefined,\n options?: O,\n ) => Ret\n : never;\n }\n : unknown) &\n (\"toolCalls\" extends keyof T\n ? {\n toolCalls: T extends { toolCalls: (infer TC)[] }\n ? ClassToolCallWithResult<TC>[]\n : never;\n }\n : unknown) &\n (\"getToolCalls\" extends keyof T\n ? {\n getToolCalls: T extends {\n getToolCalls: (message: infer _M) => (infer TC)[];\n }\n ? (message: CoreAIMessage) => ClassToolCallWithResult<TC>[]\n : never;\n }\n : unknown) &\n (\"subagents\" extends keyof T\n ? {\n subagents: T extends {\n subagents: Map<\n string,\n SubagentStreamInterface<infer S, infer TC, infer N>\n >;\n }\n ? Map<string, ClassSubagentStreamInterface<S, TC, N>>\n : never;\n activeSubagents: T extends {\n activeSubagents: SubagentStreamInterface<\n infer S,\n infer TC,\n infer N\n >[];\n }\n ? ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n getSubagent: T extends {\n getSubagent: (\n id: string,\n ) => SubagentStreamInterface<infer S, infer TC, infer N> | undefined;\n }\n ? (\n toolCallId: string,\n ) => ClassSubagentStreamInterface<S, TC, N> | undefined\n : never;\n getSubagentsByType: T extends {\n getSubagentsByType: (\n type: string,\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (type: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n getSubagentsByMessage: T extends {\n getSubagentsByMessage: (\n id: string,\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (messageId: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n }\n : unknown);\n\ntype AngularWritableKeys = \"isLoading\" | \"branch\";\n\ntype AngularPlainKeys =\n | \"submit\"\n | \"stop\"\n | \"joinStream\"\n | \"switchThread\"\n | \"setBranch\"\n | \"getMessagesMetadata\"\n | \"getToolCalls\"\n | \"getSubagent\"\n | \"getSubagentsByType\"\n | \"getSubagentsByMessage\"\n | \"subagents\"\n | \"activeSubagents\"\n | \"client\"\n | \"assistantId\";\n\ntype AngularQueueInterface<T> = T extends {\n entries: infer E;\n size: infer S;\n cancel: infer C;\n clear: infer Cl;\n}\n ? {\n entries: WritableSignal<E>;\n size: WritableSignal<S>;\n cancel: C;\n clear: Cl;\n }\n : T;\n\ntype AngularSignalWrap<T> = {\n [K in keyof T]: K extends AngularPlainKeys\n ? T[K]\n : K extends AngularWritableKeys\n ? WritableSignal<T[K]>\n : K extends \"queue\"\n ? AngularQueueInterface<T[K]>\n : Signal<T[K]>;\n};\n\nfunction fetchHistory<StateType extends Record<string, unknown>>(\n client: Client,\n threadId: string,\n options?: { limit?: boolean | number },\n) {\n if (options?.limit === false) {\n return client.threads.getState<StateType>(threadId).then((state) => {\n if (state.checkpoint == null) return [];\n return [state];\n });\n }\n\n const limit = typeof options?.limit === \"number\" ? options.limit : 10;\n return client.threads.getHistory<StateType>(threadId, { limit });\n}\n\nexport function useStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: ResolveStreamOptions<T, InferBag<T, Bag>>,\n): AngularSignalWrap<\n WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>\n>;\n\nexport function useStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>,\n): AngularSignalWrap<\n WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>\n>;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useStream(options: any): any {\n if (\"transport\" in options) {\n return useStreamCustom(options);\n }\n return useStreamLGP(options);\n}\n\nfunction resolveRunMetadataStorage(\n reconnectOnMount: AnyStreamOptions[\"reconnectOnMount\"],\n) {\n if (typeof globalThis.window === \"undefined\") return null;\n if (reconnectOnMount === true) return globalThis.window.sessionStorage;\n if (typeof reconnectOnMount === \"function\") return reconnectOnMount();\n return null;\n}\n\nexport function useStreamLGP<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends {\n ConfigurableType?: Record<string, unknown>;\n InterruptType?: unknown;\n CustomEventType?: unknown;\n UpdateType?: unknown;\n } = BagTemplate,\n>(options: AnyStreamOptions<StateType, Bag>) {\n type UpdateType = GetUpdateType<Bag, StateType>;\n type CustomType = GetCustomEventType<Bag>;\n type InterruptType = GetInterruptType<Bag>;\n type ConfigurableType = GetConfigurableType<Bag>;\n\n const runMetadataStorage = resolveRunMetadataStorage(\n options.reconnectOnMount,\n );\n\n const getMessages = (value: StateType): Message[] => {\n const messagesKey = options.messagesKey ?? \"messages\";\n return Array.isArray(value[messagesKey]) ? value[messagesKey] : [];\n };\n\n const setMessages = (current: StateType, messages: Message[]): StateType => {\n const messagesKey = options.messagesKey ?? \"messages\";\n return { ...current, [messagesKey]: messages };\n };\n\n const historyLimit =\n typeof options.fetchStateHistory === \"object\" &&\n options.fetchStateHistory != null\n ? (options.fetchStateHistory.limit ?? false)\n : (options.fetchStateHistory ?? false);\n\n const threadId = signal<string | undefined>(undefined);\n let threadIdPromise: Promise<string> | null = null;\n\n const client = options.client ?? new Client({ apiUrl: options.apiUrl });\n\n const history = signal<UseStreamThread<StateType>>({\n data: undefined,\n error: undefined,\n isLoading: false,\n mutate: async () => undefined,\n });\n\n async function mutate(\n mutateId?: string,\n ): Promise<ThreadState<StateType>[] | undefined> {\n const tid = mutateId ?? threadId();\n if (!tid) return undefined;\n try {\n const data = await fetchHistory<StateType>(client, tid, {\n limit: historyLimit,\n });\n history.set({\n data,\n error: undefined,\n isLoading: false,\n mutate,\n });\n return data;\n } catch (err) {\n history.update((prev) => ({\n ...prev,\n error: err,\n isLoading: false,\n }));\n options.onError?.(err, undefined);\n return undefined;\n }\n }\n\n history.update((prev) => ({ ...prev, mutate }));\n\n const branch = signal<string>(\"\");\n const branchContext = computed(() =>\n getBranchContext(branch(), history().data ?? undefined),\n );\n\n const messageManager = new MessageTupleManager();\n const stream = new StreamManager<StateType, Bag>(messageManager, {\n throttle: options.throttle ?? false,\n subagentToolNames: options.subagentToolNames,\n filterSubagentMessages: options.filterSubagentMessages,\n toMessage: toMessageClass,\n });\n\n const pendingRuns = new PendingRunsTracker<\n StateType,\n SubmitOptions<StateType, ConfigurableType>\n >();\n const queueEntries = signal(pendingRuns.entries);\n const queueSize = signal(pendingRuns.size);\n\n const historyValues = computed(\n () =>\n branchContext().threadHead?.values ??\n options.initialValues ??\n ({} as StateType),\n );\n\n const historyError = computed(() => {\n const error = branchContext().threadHead?.tasks?.at(-1)?.error;\n if (error == null) return undefined;\n try {\n const parsed = JSON.parse(error) as unknown;\n if (StreamError.isStructuredError(parsed)) return new StreamError(parsed);\n return parsed;\n } catch {\n // do nothing\n }\n return error;\n });\n\n const streamValues = signal<StateType | null>(stream.values);\n const streamError = signal<unknown>(stream.error);\n const isLoading = signal(stream.isLoading);\n\n const values = computed(() => streamValues() ?? historyValues());\n const error = computed(\n () => streamError() ?? historyError() ?? history().error,\n );\n\n const messageMetadata = computed(() =>\n getMessagesMetadataMap({\n initialValues: options.initialValues,\n history: history().data,\n getMessages,\n branchContext: branchContext(),\n }),\n );\n\n const subagentVersion = signal(0);\n\n effect((onCleanup) => {\n const unsubscribe = stream.subscribe(() => {\n streamValues.set(stream.values);\n streamError.set(stream.error);\n isLoading.set(stream.isLoading);\n subagentVersion.update((v) => v + 1);\n });\n\n onCleanup(() => unsubscribe());\n });\n\n pendingRuns.subscribe(() => {\n queueEntries.set(pendingRuns.entries);\n queueSize.set(pendingRuns.size);\n });\n\n effect(() => {\n const hvMessages = getMessages(historyValues());\n const should =\n options.filterSubagentMessages &&\n !isLoading() &&\n !history().isLoading &&\n hvMessages.length > 0;\n if (should) {\n stream.reconstructSubagents(hvMessages, { skipIfPopulated: true });\n }\n });\n\n function stop() {\n return stream.stop(historyValues(), {\n onStop: (args) => {\n if (runMetadataStorage && threadId()) {\n const tid = threadId()!;\n const runId = runMetadataStorage.getItem(`lg:stream:${tid}`);\n if (runId) void client.runs.cancel(tid, runId);\n runMetadataStorage.removeItem(`lg:stream:${tid}`);\n }\n\n options.onStop?.(args);\n },\n });\n }\n\n function setBranch(value: string) {\n branch.set(value);\n }\n\n function submitDirect(\n values: StateType,\n submitOptions?: SubmitOptions<StateType, ConfigurableType>,\n ) {\n const currentBranchContext = branchContext();\n\n const checkpointId = submitOptions?.checkpoint?.checkpoint_id;\n branch.set(\n checkpointId != null\n ? (currentBranchContext.branchByCheckpoint[checkpointId]?.branch ?? \"\")\n : \"\",\n );\n\n const includeImplicitBranch =\n historyLimit === true || typeof historyLimit === \"number\";\n\n const shouldRefetch = options.onFinish != null || includeImplicitBranch;\n\n let checkpoint =\n submitOptions?.checkpoint ??\n (includeImplicitBranch\n ? currentBranchContext.threadHead?.checkpoint\n : undefined) ??\n undefined;\n\n if (submitOptions?.checkpoint === null) checkpoint = undefined;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n if (checkpoint != null) delete checkpoint.thread_id;\n\n const streamResumable =\n submitOptions?.streamResumable ?? !!runMetadataStorage;\n\n let callbackMeta: RunCallbackMeta | undefined;\n let rejoinKey: `lg:stream:${string}` | undefined;\n let usableThreadId: string | undefined;\n\n return stream.start(\n async (signal) => {\n usableThreadId = threadId();\n if (!usableThreadId) {\n const threadPromise = client.threads.create({\n threadId: submitOptions?.threadId,\n metadata: submitOptions?.metadata,\n });\n\n threadIdPromise = threadPromise.then((t) => t.thread_id);\n\n const thread = await threadPromise;\n\n usableThreadId = thread.thread_id;\n threadId.set(usableThreadId);\n options.onThreadId?.(usableThreadId);\n }\n\n const streamMode = new Set<StreamMode>([\n ...(submitOptions?.streamMode ?? []),\n \"values\",\n \"messages-tuple\",\n \"updates\",\n ]);\n if (options.onUpdateEvent) streamMode.add(\"updates\");\n if (options.onCustomEvent) streamMode.add(\"custom\");\n if (options.onCheckpointEvent) streamMode.add(\"checkpoints\");\n if (options.onTaskEvent) streamMode.add(\"tasks\");\n if (\"onDebugEvent\" in options && options.onDebugEvent)\n streamMode.add(\"debug\");\n if (\"onLangChainEvent\" in options && options.onLangChainEvent)\n streamMode.add(\"events\");\n\n stream.setStreamValues(() => {\n const prev = { ...historyValues(), ...stream.values };\n\n if (submitOptions?.optimisticValues != null) {\n return {\n ...prev,\n ...(typeof submitOptions.optimisticValues === \"function\"\n ? submitOptions.optimisticValues(prev)\n : submitOptions.optimisticValues),\n };\n }\n\n return { ...prev };\n });\n\n return client.runs.stream(usableThreadId!, options.assistantId, {\n input: values as Record<string, unknown>,\n config: submitOptions?.config,\n context: submitOptions?.context,\n command: submitOptions?.command,\n\n interruptBefore: submitOptions?.interruptBefore,\n interruptAfter: submitOptions?.interruptAfter,\n metadata: submitOptions?.metadata,\n multitaskStrategy: submitOptions?.multitaskStrategy,\n onCompletion: submitOptions?.onCompletion,\n onDisconnect:\n submitOptions?.onDisconnect ??\n (streamResumable ? \"continue\" : \"cancel\"),\n\n signal,\n\n checkpoint,\n streamMode: [...streamMode],\n streamSubgraphs: submitOptions?.streamSubgraphs,\n streamResumable,\n durability: submitOptions?.durability,\n onRunCreated(params) {\n callbackMeta = {\n run_id: params.run_id,\n thread_id: params.thread_id ?? usableThreadId!,\n };\n\n if (runMetadataStorage) {\n rejoinKey = `lg:stream:${usableThreadId}`;\n runMetadataStorage.setItem(rejoinKey, callbackMeta.run_id);\n }\n\n options.onCreated?.(callbackMeta);\n },\n }) as AsyncGenerator<\n EventStreamEvent<StateType, UpdateType, CustomType>\n >;\n },\n {\n getMessages,\n setMessages,\n\n initialValues: historyValues(),\n callbacks: options,\n\n async onSuccess() {\n if (rejoinKey) runMetadataStorage?.removeItem(rejoinKey);\n\n if (shouldRefetch && usableThreadId) {\n const newHistory = await mutate(usableThreadId);\n const lastHead = newHistory?.at(0);\n if (lastHead) {\n options.onFinish?.(lastHead, callbackMeta);\n return null;\n }\n }\n return undefined;\n },\n onError: (error) => {\n options.onError?.(error, callbackMeta);\n submitOptions?.onError?.(error, callbackMeta);\n },\n onFinish: () => {},\n },\n );\n }\n\n let submitting = false;\n\n function drainQueue() {\n if (!isLoading() && !submitting && pendingRuns.size > 0) {\n const next = pendingRuns.shift();\n if (next) {\n submitting = true;\n void joinStream(next.id).finally(() => {\n submitting = false;\n drainQueue();\n });\n }\n }\n }\n\n effect(() => {\n drainQueue();\n });\n\n async function submit(\n values: StateType,\n submitOptions?: SubmitOptions<StateType, ConfigurableType>,\n ) {\n if (stream.isLoading || submitting) {\n const shouldAbort =\n submitOptions?.multitaskStrategy === \"interrupt\" ||\n submitOptions?.multitaskStrategy === \"rollback\";\n\n if (shouldAbort) {\n submitting = true;\n try {\n await submitDirect(values, submitOptions);\n } finally {\n submitting = false;\n }\n return;\n }\n\n let usableThreadId: string | undefined = threadId();\n if (!usableThreadId && threadIdPromise) {\n usableThreadId = await threadIdPromise;\n }\n if (usableThreadId) {\n try {\n const run = await client.runs.create(\n usableThreadId,\n options.assistantId,\n {\n input: values as Record<string, unknown>,\n config: submitOptions?.config,\n context: submitOptions?.context,\n command: submitOptions?.command,\n interruptBefore: submitOptions?.interruptBefore,\n interruptAfter: submitOptions?.interruptAfter,\n metadata: submitOptions?.metadata,\n multitaskStrategy: \"enqueue\",\n streamResumable: true,\n streamSubgraphs: submitOptions?.streamSubgraphs,\n durability: submitOptions?.durability,\n },\n );\n\n pendingRuns.add({\n id: run.run_id,\n values: values as Partial<StateType> | null | undefined,\n options: submitOptions,\n createdAt: new Date(run.created_at),\n });\n } catch (error) {\n options.onError?.(error, undefined);\n submitOptions?.onError?.(error, undefined);\n }\n return;\n }\n }\n\n submitting = true;\n const result = submitDirect(values, submitOptions);\n void Promise.resolve(result).finally(() => {\n submitting = false;\n drainQueue();\n });\n return result;\n }\n\n async function joinStream(\n runId: string,\n lastEventId?: string,\n joinOptions?: {\n streamMode?: StreamMode | StreamMode[];\n filter?: (event: {\n id?: string;\n event: StreamEvent;\n data: unknown;\n }) => boolean;\n },\n ) {\n // eslint-disable-next-line no-param-reassign\n lastEventId ??= \"-1\";\n const tid = threadId();\n if (!tid) return;\n\n const callbackMeta: RunCallbackMeta = {\n thread_id: tid,\n run_id: runId,\n };\n\n await stream.start(\n async (signal: AbortSignal) => {\n const rawStream = client.runs.joinStream(tid, runId, {\n signal,\n lastEventId,\n streamMode: joinOptions?.streamMode,\n }) as AsyncGenerator<\n EventStreamEvent<StateType, UpdateType, CustomType>\n >;\n\n return joinOptions?.filter != null\n ? filterStream(rawStream, joinOptions.filter)\n : rawStream;\n },\n {\n getMessages,\n setMessages,\n\n initialValues: historyValues(),\n callbacks: options,\n async onSuccess() {\n runMetadataStorage?.removeItem(`lg:stream:${tid}`);\n const newHistory = await mutate(tid);\n const lastHead = newHistory?.at(0);\n if (lastHead) options.onFinish?.(lastHead, callbackMeta);\n },\n onError(error) {\n options.onError?.(error, callbackMeta);\n },\n onFinish() {},\n },\n );\n }\n\n const shouldReconnect = !!runMetadataStorage;\n let hasReconnected = false;\n\n effect(() => {\n const tid = threadId();\n if (\n !hasReconnected &&\n shouldReconnect &&\n runMetadataStorage &&\n tid &&\n !isLoading()\n ) {\n const runId = runMetadataStorage.getItem(`lg:stream:${tid}`);\n if (runId) {\n hasReconnected = true;\n void joinStream(runId);\n }\n }\n });\n\n const messages = computed(() =>\n ensureMessageInstances(getMessages(values())),\n );\n\n const toolCalls = computed(() =>\n getToolCallsWithResults(getMessages(values())),\n );\n\n function getToolCalls(message: Message) {\n const allToolCalls = getToolCallsWithResults(getMessages(values()));\n return allToolCalls.filter((tc) => tc.aiMessage.id === message.id);\n }\n\n const interrupt = computed(() =>\n extractInterrupts<InterruptType>(values(), {\n isLoading: isLoading(),\n threadState: branchContext().threadHead,\n error: error(),\n }),\n );\n\n const interrupts = computed((): Interrupt<InterruptType>[] => {\n const vals = values();\n if (\n vals != null &&\n \"__interrupt__\" in vals &&\n Array.isArray(vals.__interrupt__)\n ) {\n const valueInterrupts = vals.__interrupt__;\n if (valueInterrupts.length === 0) return [{ when: \"breakpoint\" }];\n return valueInterrupts;\n }\n\n if (isLoading()) return [];\n\n const allTasks = branchContext().threadHead?.tasks ?? [];\n const allInterrupts = allTasks.flatMap((t) => t.interrupts ?? []);\n\n if (allInterrupts.length > 0) {\n return allInterrupts as Interrupt<InterruptType>[];\n }\n\n const next = branchContext().threadHead?.next ?? [];\n if (!next.length || error() != null) return [];\n return [{ when: \"breakpoint\" }];\n });\n\n const historyList = computed(() => {\n if (historyLimit === false) {\n throw new Error(\n \"`fetchStateHistory` must be set to `true` to use `history`\",\n );\n }\n return ensureHistoryMessageInstances(\n branchContext().flatHistory,\n options.messagesKey ?? \"messages\",\n );\n });\n\n const isThreadLoading = computed(\n () => history().isLoading && history().data == null,\n );\n\n const experimentalBranchTree = computed(() => {\n if (historyLimit === false) {\n throw new Error(\n \"`fetchStateHistory` must be set to `true` to use `experimental_branchTree`\",\n );\n }\n return branchContext().branchTree;\n });\n\n function getMessagesMetadata(\n message: Message,\n index?: number,\n ): MessageMetadata<StateType> | undefined {\n const streamMetadata = messageManager.get(message.id)?.metadata;\n const historyMetadata = messageMetadata().find(\n (m) => m.messageId === (message.id ?? index),\n );\n\n if (streamMetadata != null || historyMetadata != null) {\n return {\n ...historyMetadata,\n streamMetadata,\n } as MessageMetadata<StateType>;\n }\n\n return undefined;\n }\n\n return {\n assistantId: options.assistantId,\n client,\n\n values,\n error,\n isLoading,\n\n branch,\n setBranch,\n\n messages,\n toolCalls,\n getToolCalls,\n\n interrupt,\n interrupts,\n\n history: historyList,\n isThreadLoading,\n experimental_branchTree: experimentalBranchTree,\n\n getMessagesMetadata,\n\n submit,\n stop,\n joinStream,\n\n queue: {\n entries: queueEntries,\n size: queueSize,\n async cancel(id: string) {\n const tid = threadId();\n const removed = pendingRuns.remove(id);\n if (removed && tid) {\n await client.runs.cancel(tid, id);\n }\n return removed;\n },\n async clear() {\n const tid = threadId();\n const removed = pendingRuns.removeAll();\n if (tid && removed.length > 0) {\n await Promise.all(removed.map((e) => client.runs.cancel(tid!, e.id)));\n }\n },\n },\n\n switchThread(newThreadId: string | null) {\n const current = threadId() ?? null;\n if (newThreadId !== current) {\n const prevThreadId = threadId();\n threadId.set(newThreadId ?? undefined);\n stream.clear();\n\n const removed = pendingRuns.removeAll();\n if (prevThreadId && removed.length > 0) {\n void Promise.all(\n removed.map((e) => client.runs.cancel(prevThreadId, e.id)),\n );\n }\n\n if (newThreadId != null) {\n options.onThreadId?.(newThreadId);\n }\n }\n },\n\n get subagents() {\n void subagentVersion();\n return stream.getSubagents();\n },\n get activeSubagents() {\n void subagentVersion();\n return stream.getActiveSubagents();\n },\n getSubagent(toolCallId: string) {\n return stream.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n return stream.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n return stream.getSubagentsByMessage(messageId);\n },\n };\n}\n\nexport type {\n BaseStream,\n UseAgentStream,\n UseAgentStreamOptions,\n UseDeepAgentStream,\n UseDeepAgentStreamOptions,\n ResolveStreamInterface,\n ResolveStreamOptions,\n InferStateType,\n InferToolCalls,\n InferSubagentStates,\n InferNodeNames,\n InferBag,\n MessageMetadata,\n UseStreamOptions,\n UseStreamCustomOptions,\n UseStreamTransport,\n UseStreamThread,\n GetToolCallsType,\n AgentTypeConfigLike,\n IsAgentLike,\n ExtractAgentConfig,\n InferAgentToolCalls,\n SubagentToolCall,\n SubagentStatus,\n SubagentApi,\n SubagentStream,\n SubagentStreamInterface,\n SubAgentLike,\n CompiledSubAgentLike,\n DeepAgentTypeConfigLike,\n IsDeepAgentLike,\n ExtractDeepAgentConfig,\n ExtractSubAgentMiddleware,\n InferDeepAgentSubagents,\n InferSubagentByName,\n InferSubagentState,\n InferSubagentNames,\n SubagentStateMap,\n DefaultSubagentStates,\n BaseSubagentState,\n QueueEntry,\n QueueInterface,\n} from \"@langchain/langgraph-sdk/ui\";\n\nexport type ToolCallWithResult<ToolCall = DefaultToolCall> =\n _ToolCallWithResult<ToolCall, CoreToolMessage, CoreAIMessage>;\nexport type {\n ToolCallState,\n DefaultToolCall,\n ToolCallFromTool,\n ToolCallsFromTools,\n} from \"@langchain/langgraph-sdk\";\n\nexport {\n SubagentManager,\n extractToolCallIdFromNamespace,\n calculateDepthFromNamespace,\n extractParentIdFromNamespace,\n isSubagentNamespace,\n} from \"@langchain/langgraph-sdk/ui\";\n"],"mappings":";;;;;;AAmNA,SAAS,aACP,QACA,UACA,SACA;AACA,KAAI,SAAS,UAAU,MACrB,QAAO,OAAO,QAAQ,SAAoB,SAAS,CAAC,MAAM,UAAU;AAClE,MAAI,MAAM,cAAc,KAAM,QAAO,EAAE;AACvC,SAAO,CAAC,MAAM;GACd;CAGJ,MAAM,QAAQ,OAAO,SAAS,UAAU,WAAW,QAAQ,QAAQ;AACnE,QAAO,OAAO,QAAQ,WAAsB,UAAU,EAAE,OAAO,CAAC;;AAsBlE,SAAgB,UAAU,SAAmB;AAC3C,KAAI,eAAe,QACjB,QAAO,gBAAgB,QAAQ;AAEjC,QAAO,aAAa,QAAQ;;AAG9B,SAAS,0BACP,kBACA;AACA,KAAI,OAAO,WAAW,WAAW,YAAa,QAAO;AACrD,KAAI,qBAAqB,KAAM,QAAO,WAAW,OAAO;AACxD,KAAI,OAAO,qBAAqB,WAAY,QAAO,kBAAkB;AACrE,QAAO;;AAGT,SAAgB,aAQd,SAA2C;CAM3C,MAAM,qBAAqB,0BACzB,QAAQ,iBACT;CAED,MAAM,eAAe,UAAgC;EACnD,MAAM,cAAc,QAAQ,eAAe;AAC3C,SAAO,MAAM,QAAQ,MAAM,aAAa,GAAG,MAAM,eAAe,EAAE;;CAGpE,MAAM,eAAe,SAAoB,aAAmC;EAC1E,MAAM,cAAc,QAAQ,eAAe;AAC3C,SAAO;GAAE,GAAG;IAAU,cAAc;GAAU;;CAGhD,MAAM,eACJ,OAAO,QAAQ,sBAAsB,YACrC,QAAQ,qBAAqB,OACxB,QAAQ,kBAAkB,SAAS,QACnC,QAAQ,qBAAqB;CAEpC,MAAM,WAAW,OAA2B,KAAA,EAAU;CACtD,IAAI,kBAA0C;CAE9C,MAAM,SAAS,QAAQ,UAAU,IAAI,OAAO,EAAE,QAAQ,QAAQ,QAAQ,CAAC;CAEvE,MAAM,UAAU,OAAmC;EACjD,MAAM,KAAA;EACN,OAAO,KAAA;EACP,WAAW;EACX,QAAQ,YAAY,KAAA;EACrB,CAAC;CAEF,eAAe,OACb,UAC+C;EAC/C,MAAM,MAAM,YAAY,UAAU;AAClC,MAAI,CAAC,IAAK,QAAO,KAAA;AACjB,MAAI;GACF,MAAM,OAAO,MAAM,aAAwB,QAAQ,KAAK,EACtD,OAAO,cACR,CAAC;AACF,WAAQ,IAAI;IACV;IACA,OAAO,KAAA;IACP,WAAW;IACX;IACD,CAAC;AACF,UAAO;WACA,KAAK;AACZ,WAAQ,QAAQ,UAAU;IACxB,GAAG;IACH,OAAO;IACP,WAAW;IACZ,EAAE;AACH,WAAQ,UAAU,KAAK,KAAA,EAAU;AACjC;;;AAIJ,SAAQ,QAAQ,UAAU;EAAE,GAAG;EAAM;EAAQ,EAAE;CAE/C,MAAM,SAAS,OAAe,GAAG;CACjC,MAAM,gBAAgB,eACpB,iBAAiB,QAAQ,EAAE,SAAS,CAAC,QAAQ,KAAA,EAAU,CACxD;CAED,MAAM,iBAAiB,IAAI,qBAAqB;CAChD,MAAM,SAAS,IAAI,cAA8B,gBAAgB;EAC/D,UAAU,QAAQ,YAAY;EAC9B,mBAAmB,QAAQ;EAC3B,wBAAwB,QAAQ;EAChC,WAAW;EACZ,CAAC;CAEF,MAAM,cAAc,IAAI,oBAGrB;CACH,MAAM,eAAe,OAAO,YAAY,QAAQ;CAChD,MAAM,YAAY,OAAO,YAAY,KAAK;CAE1C,MAAM,gBAAgB,eAElB,eAAe,CAAC,YAAY,UAC5B,QAAQ,iBACP,EAAE,CACN;CAED,MAAM,eAAe,eAAe;EAClC,MAAM,QAAQ,eAAe,CAAC,YAAY,OAAO,GAAG,GAAG,EAAE;AACzD,MAAI,SAAS,KAAM,QAAO,KAAA;AAC1B,MAAI;GACF,MAAM,SAAS,KAAK,MAAM,MAAM;AAChC,OAAI,YAAY,kBAAkB,OAAO,CAAE,QAAO,IAAI,YAAY,OAAO;AACzE,UAAO;UACD;AAGR,SAAO;GACP;CAEF,MAAM,eAAe,OAAyB,OAAO,OAAO;CAC5D,MAAM,cAAc,OAAgB,OAAO,MAAM;CACjD,MAAM,YAAY,OAAO,OAAO,UAAU;CAE1C,MAAM,SAAS,eAAe,cAAc,IAAI,eAAe,CAAC;CAChE,MAAM,QAAQ,eACN,aAAa,IAAI,cAAc,IAAI,SAAS,CAAC,MACpD;CAED,MAAM,kBAAkB,eACtB,uBAAuB;EACrB,eAAe,QAAQ;EACvB,SAAS,SAAS,CAAC;EACnB;EACA,eAAe,eAAe;EAC/B,CAAC,CACH;CAED,MAAM,kBAAkB,OAAO,EAAE;AAEjC,SAAQ,cAAc;EACpB,MAAM,cAAc,OAAO,gBAAgB;AACzC,gBAAa,IAAI,OAAO,OAAO;AAC/B,eAAY,IAAI,OAAO,MAAM;AAC7B,aAAU,IAAI,OAAO,UAAU;AAC/B,mBAAgB,QAAQ,MAAM,IAAI,EAAE;IACpC;AAEF,kBAAgB,aAAa,CAAC;GAC9B;AAEF,aAAY,gBAAgB;AAC1B,eAAa,IAAI,YAAY,QAAQ;AACrC,YAAU,IAAI,YAAY,KAAK;GAC/B;AAEF,cAAa;EACX,MAAM,aAAa,YAAY,eAAe,CAAC;AAM/C,MAJE,QAAQ,0BACR,CAAC,WAAW,IACZ,CAAC,SAAS,CAAC,aACX,WAAW,SAAS,EAEpB,QAAO,qBAAqB,YAAY,EAAE,iBAAiB,MAAM,CAAC;GAEpE;CAEF,SAAS,OAAO;AACd,SAAO,OAAO,KAAK,eAAe,EAAE,EAClC,SAAS,SAAS;AAChB,OAAI,sBAAsB,UAAU,EAAE;IACpC,MAAM,MAAM,UAAU;IACtB,MAAM,QAAQ,mBAAmB,QAAQ,aAAa,MAAM;AAC5D,QAAI,MAAY,QAAO,KAAK,OAAO,KAAK,MAAM;AAC9C,uBAAmB,WAAW,aAAa,MAAM;;AAGnD,WAAQ,SAAS,KAAK;KAEzB,CAAC;;CAGJ,SAAS,UAAU,OAAe;AAChC,SAAO,IAAI,MAAM;;CAGnB,SAAS,aACP,QACA,eACA;EACA,MAAM,uBAAuB,eAAe;EAE5C,MAAM,eAAe,eAAe,YAAY;AAChD,SAAO,IACL,gBAAgB,OACX,qBAAqB,mBAAmB,eAAe,UAAU,KAClE,GACL;EAED,MAAM,wBACJ,iBAAiB,QAAQ,OAAO,iBAAiB;EAEnD,MAAM,gBAAgB,QAAQ,YAAY,QAAQ;EAElD,IAAI,aACF,eAAe,eACd,wBACG,qBAAqB,YAAY,aACjC,KAAA,MACJ,KAAA;AAEF,MAAI,eAAe,eAAe,KAAM,cAAa,KAAA;AAGrD,MAAI,cAAc,KAAM,QAAO,WAAW;EAE1C,MAAM,kBACJ,eAAe,mBAAmB,CAAC,CAAC;EAEtC,IAAI;EACJ,IAAI;EACJ,IAAI;AAEJ,SAAO,OAAO,MACZ,OAAO,WAAW;AAChB,oBAAiB,UAAU;AAC3B,OAAI,CAAC,gBAAgB;IACnB,MAAM,gBAAgB,OAAO,QAAQ,OAAO;KAC1C,UAAU,eAAe;KACzB,UAAU,eAAe;KAC1B,CAAC;AAEF,sBAAkB,cAAc,MAAM,MAAM,EAAE,UAAU;AAIxD,sBAFe,MAAM,eAEG;AACxB,aAAS,IAAI,eAAe;AAC5B,YAAQ,aAAa,eAAe;;GAGtC,MAAM,aAAa,IAAI,IAAgB;IACrC,GAAI,eAAe,cAAc,EAAE;IACnC;IACA;IACA;IACD,CAAC;AACF,OAAI,QAAQ,cAAe,YAAW,IAAI,UAAU;AACpD,OAAI,QAAQ,cAAe,YAAW,IAAI,SAAS;AACnD,OAAI,QAAQ,kBAAmB,YAAW,IAAI,cAAc;AAC5D,OAAI,QAAQ,YAAa,YAAW,IAAI,QAAQ;AAChD,OAAI,kBAAkB,WAAW,QAAQ,aACvC,YAAW,IAAI,QAAQ;AACzB,OAAI,sBAAsB,WAAW,QAAQ,iBAC3C,YAAW,IAAI,SAAS;AAE1B,UAAO,sBAAsB;IAC3B,MAAM,OAAO;KAAE,GAAG,eAAe;KAAE,GAAG,OAAO;KAAQ;AAErD,QAAI,eAAe,oBAAoB,KACrC,QAAO;KACL,GAAG;KACH,GAAI,OAAO,cAAc,qBAAqB,aAC1C,cAAc,iBAAiB,KAAK,GACpC,cAAc;KACnB;AAGH,WAAO,EAAE,GAAG,MAAM;KAClB;AAEF,UAAO,OAAO,KAAK,OAAO,gBAAiB,QAAQ,aAAa;IAC9D,OAAO;IACP,QAAQ,eAAe;IACvB,SAAS,eAAe;IACxB,SAAS,eAAe;IAExB,iBAAiB,eAAe;IAChC,gBAAgB,eAAe;IAC/B,UAAU,eAAe;IACzB,mBAAmB,eAAe;IAClC,cAAc,eAAe;IAC7B,cACE,eAAe,iBACd,kBAAkB,aAAa;IAElC;IAEA;IACA,YAAY,CAAC,GAAG,WAAW;IAC3B,iBAAiB,eAAe;IAChC;IACA,YAAY,eAAe;IAC3B,aAAa,QAAQ;AACnB,oBAAe;MACb,QAAQ,OAAO;MACf,WAAW,OAAO,aAAa;MAChC;AAED,SAAI,oBAAoB;AACtB,kBAAY,aAAa;AACzB,yBAAmB,QAAQ,WAAW,aAAa,OAAO;;AAG5D,aAAQ,YAAY,aAAa;;IAEpC,CAAC;KAIJ;GACE;GACA;GAEA,eAAe,eAAe;GAC9B,WAAW;GAEX,MAAM,YAAY;AAChB,QAAI,UAAW,qBAAoB,WAAW,UAAU;AAExD,QAAI,iBAAiB,gBAAgB;KAEnC,MAAM,YADa,MAAM,OAAO,eAAe,GAClB,GAAG,EAAE;AAClC,SAAI,UAAU;AACZ,cAAQ,WAAW,UAAU,aAAa;AAC1C,aAAO;;;;GAKb,UAAU,UAAU;AAClB,YAAQ,UAAU,OAAO,aAAa;AACtC,mBAAe,UAAU,OAAO,aAAa;;GAE/C,gBAAgB;GACjB,CACF;;CAGH,IAAI,aAAa;CAEjB,SAAS,aAAa;AACpB,MAAI,CAAC,WAAW,IAAI,CAAC,cAAc,YAAY,OAAO,GAAG;GACvD,MAAM,OAAO,YAAY,OAAO;AAChC,OAAI,MAAM;AACR,iBAAa;AACR,eAAW,KAAK,GAAG,CAAC,cAAc;AACrC,kBAAa;AACb,iBAAY;MACZ;;;;AAKR,cAAa;AACX,cAAY;GACZ;CAEF,eAAe,OACb,QACA,eACA;AACA,MAAI,OAAO,aAAa,YAAY;AAKlC,OAHE,eAAe,sBAAsB,eACrC,eAAe,sBAAsB,YAEtB;AACf,iBAAa;AACb,QAAI;AACF,WAAM,aAAa,QAAQ,cAAc;cACjC;AACR,kBAAa;;AAEf;;GAGF,IAAI,iBAAqC,UAAU;AACnD,OAAI,CAAC,kBAAkB,gBACrB,kBAAiB,MAAM;AAEzB,OAAI,gBAAgB;AAClB,QAAI;KACF,MAAM,MAAM,MAAM,OAAO,KAAK,OAC5B,gBACA,QAAQ,aACR;MACE,OAAO;MACP,QAAQ,eAAe;MACvB,SAAS,eAAe;MACxB,SAAS,eAAe;MACxB,iBAAiB,eAAe;MAChC,gBAAgB,eAAe;MAC/B,UAAU,eAAe;MACzB,mBAAmB;MACnB,iBAAiB;MACjB,iBAAiB,eAAe;MAChC,YAAY,eAAe;MAC5B,CACF;AAED,iBAAY,IAAI;MACd,IAAI,IAAI;MACA;MACR,SAAS;MACT,WAAW,IAAI,KAAK,IAAI,WAAW;MACpC,CAAC;aACK,OAAO;AACd,aAAQ,UAAU,OAAO,KAAA,EAAU;AACnC,oBAAe,UAAU,OAAO,KAAA,EAAU;;AAE5C;;;AAIJ,eAAa;EACb,MAAM,SAAS,aAAa,QAAQ,cAAc;AAC7C,UAAQ,QAAQ,OAAO,CAAC,cAAc;AACzC,gBAAa;AACb,eAAY;IACZ;AACF,SAAO;;CAGT,eAAe,WACb,OACA,aACA,aAQA;AAEA,kBAAgB;EAChB,MAAM,MAAM,UAAU;AACtB,MAAI,CAAC,IAAK;EAEV,MAAM,eAAgC;GACpC,WAAW;GACX,QAAQ;GACT;AAED,QAAM,OAAO,MACX,OAAO,WAAwB;GAC7B,MAAM,YAAY,OAAO,KAAK,WAAW,KAAK,OAAO;IACnD;IACA;IACA,YAAY,aAAa;IAC1B,CAAC;AAIF,UAAO,aAAa,UAAU,OAC1B,aAAa,WAAW,YAAY,OAAO,GAC3C;KAEN;GACE;GACA;GAEA,eAAe,eAAe;GAC9B,WAAW;GACX,MAAM,YAAY;AAChB,wBAAoB,WAAW,aAAa,MAAM;IAElD,MAAM,YADa,MAAM,OAAO,IAAI,GACP,GAAG,EAAE;AAClC,QAAI,SAAU,SAAQ,WAAW,UAAU,aAAa;;GAE1D,QAAQ,OAAO;AACb,YAAQ,UAAU,OAAO,aAAa;;GAExC,WAAW;GACZ,CACF;;CAGH,MAAM,kBAAkB,CAAC,CAAC;CAC1B,IAAI,iBAAiB;AAErB,cAAa;EACX,MAAM,MAAM,UAAU;AACtB,MACE,CAAC,kBACD,mBACA,sBACA,OACA,CAAC,WAAW,EACZ;GACA,MAAM,QAAQ,mBAAmB,QAAQ,aAAa,MAAM;AAC5D,OAAI,OAAO;AACT,qBAAiB;AACZ,eAAW,MAAM;;;GAG1B;CAEF,MAAM,WAAW,eACf,uBAAuB,YAAY,QAAQ,CAAC,CAAC,CAC9C;CAED,MAAM,YAAY,eAChB,wBAAwB,YAAY,QAAQ,CAAC,CAAC,CAC/C;CAED,SAAS,aAAa,SAAkB;AAEtC,SADqB,wBAAwB,YAAY,QAAQ,CAAC,CAAC,CAC/C,QAAQ,OAAO,GAAG,UAAU,OAAO,QAAQ,GAAG;;CAGpE,MAAM,YAAY,eAChB,kBAAiC,QAAQ,EAAE;EACzC,WAAW,WAAW;EACtB,aAAa,eAAe,CAAC;EAC7B,OAAO,OAAO;EACf,CAAC,CACH;CAED,MAAM,aAAa,eAA2C;EAC5D,MAAM,OAAO,QAAQ;AACrB,MACE,QAAQ,QACR,mBAAmB,QACnB,MAAM,QAAQ,KAAK,cAAc,EACjC;GACA,MAAM,kBAAkB,KAAK;AAC7B,OAAI,gBAAgB,WAAW,EAAG,QAAO,CAAC,EAAE,MAAM,cAAc,CAAC;AACjE,UAAO;;AAGT,MAAI,WAAW,CAAE,QAAO,EAAE;EAG1B,MAAM,iBADW,eAAe,CAAC,YAAY,SAAS,EAAE,EACzB,SAAS,MAAM,EAAE,cAAc,EAAE,CAAC;AAEjE,MAAI,cAAc,SAAS,EACzB,QAAO;AAIT,MAAI,EADS,eAAe,CAAC,YAAY,QAAQ,EAAE,EACzC,UAAU,OAAO,IAAI,KAAM,QAAO,EAAE;AAC9C,SAAO,CAAC,EAAE,MAAM,cAAc,CAAC;GAC/B;CAEF,MAAM,cAAc,eAAe;AACjC,MAAI,iBAAiB,MACnB,OAAM,IAAI,MACR,6DACD;AAEH,SAAO,8BACL,eAAe,CAAC,aAChB,QAAQ,eAAe,WACxB;GACD;CAEF,MAAM,kBAAkB,eAChB,SAAS,CAAC,aAAa,SAAS,CAAC,QAAQ,KAChD;CAED,MAAM,yBAAyB,eAAe;AAC5C,MAAI,iBAAiB,MACnB,OAAM,IAAI,MACR,6EACD;AAEH,SAAO,eAAe,CAAC;GACvB;CAEF,SAAS,oBACP,SACA,OACwC;EACxC,MAAM,iBAAiB,eAAe,IAAI,QAAQ,GAAG,EAAE;EACvD,MAAM,kBAAkB,iBAAiB,CAAC,MACvC,MAAM,EAAE,eAAe,QAAQ,MAAM,OACvC;AAED,MAAI,kBAAkB,QAAQ,mBAAmB,KAC/C,QAAO;GACL,GAAG;GACH;GACD;;AAML,QAAO;EACL,aAAa,QAAQ;EACrB;EAEA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EAEA,SAAS;EACT;EACA,yBAAyB;EAEzB;EAEA;EACA;EACA;EAEA,OAAO;GACL,SAAS;GACT,MAAM;GACN,MAAM,OAAO,IAAY;IACvB,MAAM,MAAM,UAAU;IACtB,MAAM,UAAU,YAAY,OAAO,GAAG;AACtC,QAAI,WAAW,IACb,OAAM,OAAO,KAAK,OAAO,KAAK,GAAG;AAEnC,WAAO;;GAET,MAAM,QAAQ;IACZ,MAAM,MAAM,UAAU;IACtB,MAAM,UAAU,YAAY,WAAW;AACvC,QAAI,OAAO,QAAQ,SAAS,EAC1B,OAAM,QAAQ,IAAI,QAAQ,KAAK,MAAM,OAAO,KAAK,OAAO,KAAM,EAAE,GAAG,CAAC,CAAC;;GAG1E;EAED,aAAa,aAA4B;AAEvC,OAAI,iBADY,UAAU,IAAI,OACD;IAC3B,MAAM,eAAe,UAAU;AAC/B,aAAS,IAAI,eAAe,KAAA,EAAU;AACtC,WAAO,OAAO;IAEd,MAAM,UAAU,YAAY,WAAW;AACvC,QAAI,gBAAgB,QAAQ,SAAS,EAC9B,SAAQ,IACX,QAAQ,KAAK,MAAM,OAAO,KAAK,OAAO,cAAc,EAAE,GAAG,CAAC,CAC3D;AAGH,QAAI,eAAe,KACjB,SAAQ,aAAa,YAAY;;;EAKvC,IAAI,YAAY;AACT,oBAAiB;AACtB,UAAO,OAAO,cAAc;;EAE9B,IAAI,kBAAkB;AACf,oBAAiB;AACtB,UAAO,OAAO,oBAAoB;;EAEpC,YAAY,YAAoB;AAC9B,UAAO,OAAO,YAAY,WAAW;;EAEvC,mBAAmB,MAAc;AAC/B,UAAO,OAAO,mBAAmB,KAAK;;EAExC,sBAAsB,WAAmB;AACvC,UAAO,OAAO,sBAAsB,UAAU;;EAEjD"}
1
+ {"version":3,"file":"index.js","names":["angularInject"],"sources":["../src/index.ts"],"sourcesContent":["import {\n signal,\n computed,\n effect,\n Injectable,\n inject as angularInject,\n} from \"@angular/core\";\nimport type { Signal, WritableSignal } from \"@angular/core\";\nimport type {\n BaseMessage,\n ToolMessage as CoreToolMessage,\n AIMessage as CoreAIMessage,\n} from \"@langchain/core/messages\";\nimport {\n StreamOrchestrator,\n ensureMessageInstances,\n type MessageMetadata,\n type AnyStreamOptions,\n type SubmitOptions,\n type ResolveStreamOptions,\n type ResolveStreamInterface,\n type InferBag,\n type InferStateType,\n type AcceptBaseMessages,\n type UseStreamCustomOptions,\n type SubagentStreamInterface,\n type HistoryWithBaseMessages,\n type GetConfigurableType,\n type GetInterruptType,\n} from \"@langchain/langgraph-sdk/ui\";\n\nimport {\n Client,\n type StreamEvent,\n type StreamMode,\n type Message,\n type Interrupt,\n type BagTemplate,\n type ToolCallWithResult as SdkToolCallWithResult,\n type DefaultToolCall,\n} from \"@langchain/langgraph-sdk\";\nimport type { ClassSubagentStreamInterface } from \"./subagent-types.js\";\nimport type { StreamServiceInstance } from \"./stream-service-instance.js\";\nimport { injectStreamCustom } from \"./stream.custom.js\";\nimport { STREAM_INSTANCE } from \"./context.js\";\n\nexport { injectStreamCustom, useStreamCustom } from \"./stream.custom.js\";\nexport { FetchStreamTransport } from \"@langchain/langgraph-sdk/ui\";\nexport {\n provideStreamDefaults,\n provideStream,\n STREAM_DEFAULTS,\n STREAM_INSTANCE,\n} from \"./context.js\";\nexport type { StreamDefaults } from \"./context.js\";\nexport type { ClassSubagentStreamInterface } from \"./subagent-types.js\";\n\ntype ClassToolCallWithResult<T> =\n T extends SdkToolCallWithResult<infer TC, unknown, unknown>\n ? SdkToolCallWithResult<TC, CoreToolMessage, CoreAIMessage>\n : T;\n\ntype WithClassMessages<T> = Omit<\n T,\n | \"messages\"\n | \"history\"\n | \"getMessagesMetadata\"\n | \"toolCalls\"\n | \"getToolCalls\"\n | \"submit\"\n | \"subagents\"\n | \"activeSubagents\"\n | \"getSubagent\"\n | \"getSubagentsByType\"\n | \"getSubagentsByMessage\"\n> & {\n messages: BaseMessage[];\n getMessagesMetadata: (\n message: BaseMessage,\n index?: number,\n ) => MessageMetadata<Record<string, unknown>> | undefined;\n} & (\"history\" extends keyof T\n ? { history: HistoryWithBaseMessages<T[\"history\"]> }\n : unknown) &\n (\"submit\" extends keyof T\n ? {\n submit: T extends {\n submit: (values: infer V, options?: infer O) => infer Ret;\n }\n ? (\n values:\n | AcceptBaseMessages<Exclude<V, null | undefined>>\n | null\n | undefined,\n options?: O,\n ) => Ret\n : never;\n }\n : unknown) &\n (\"toolCalls\" extends keyof T\n ? {\n toolCalls: T extends { toolCalls: (infer TC)[] }\n ? ClassToolCallWithResult<TC>[]\n : never;\n }\n : unknown) &\n (\"getToolCalls\" extends keyof T\n ? {\n getToolCalls: T extends {\n getToolCalls: (message: infer _M) => (infer TC)[];\n }\n ? (message: CoreAIMessage) => ClassToolCallWithResult<TC>[]\n : never;\n }\n : unknown) &\n (\"subagents\" extends keyof T\n ? {\n subagents: T extends {\n subagents: Map<\n string,\n SubagentStreamInterface<infer S, infer TC, infer N>\n >;\n }\n ? Map<string, ClassSubagentStreamInterface<S, TC, N>>\n : never;\n activeSubagents: T extends {\n activeSubagents: SubagentStreamInterface<\n infer S,\n infer TC,\n infer N\n >[];\n }\n ? ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n getSubagent: T extends {\n getSubagent: (\n id: string,\n ) => SubagentStreamInterface<infer S, infer TC, infer N> | undefined;\n }\n ? (\n toolCallId: string,\n ) => ClassSubagentStreamInterface<S, TC, N> | undefined\n : never;\n getSubagentsByType: T extends {\n getSubagentsByType: (\n type: string,\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (type: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n getSubagentsByMessage: T extends {\n getSubagentsByMessage: (\n id: string,\n ) => SubagentStreamInterface<infer S, infer TC, infer N>[];\n }\n ? (messageId: string) => ClassSubagentStreamInterface<S, TC, N>[]\n : never;\n }\n : unknown);\n\ntype AngularWritableKeys = \"isLoading\" | \"branch\";\n\ntype AngularPlainKeys =\n | \"submit\"\n | \"stop\"\n | \"joinStream\"\n | \"switchThread\"\n | \"setBranch\"\n | \"getMessagesMetadata\"\n | \"getToolCalls\"\n | \"getSubagent\"\n | \"getSubagentsByType\"\n | \"getSubagentsByMessage\"\n | \"subagents\"\n | \"activeSubagents\"\n | \"client\"\n | \"assistantId\";\n\ntype AngularQueueInterface<T> = T extends {\n entries: infer E;\n size: infer S;\n cancel: infer C;\n clear: infer Cl;\n}\n ? {\n entries: WritableSignal<E>;\n size: WritableSignal<S>;\n cancel: C;\n clear: Cl;\n }\n : T;\n\ntype AngularSignalWrap<T> = {\n [K in keyof T]: K extends AngularPlainKeys\n ? T[K]\n : K extends AngularWritableKeys\n ? WritableSignal<T[K]>\n : K extends \"queue\"\n ? AngularQueueInterface<T[K]>\n : Signal<T[K]>;\n};\n\n/**\n * Injects the shared stream instance from the nearest ancestor that provided\n * one via {@link provideStream}. Throws if no ancestor provides a stream\n * instance.\n *\n * @example\n * ```typescript\n * import { Component } from \"@angular/core\";\n * import { injectStream } from \"@langchain/angular\";\n *\n * @Component({\n * template: `\n * @for (msg of stream.messages(); track msg.id) {\n * <div>{{ msg.content }}</div>\n * }\n * <button\n * [disabled]=\"stream.isLoading()\"\n * (click)=\"onSubmit()\"\n * >Send</button>\n * `,\n * })\n * export class ChatComponent {\n * stream = injectStream();\n *\n * onSubmit() {\n * void this.stream.submit({\n * messages: [{ type: \"human\", content: \"Hello!\" }],\n * });\n * }\n * }\n * ```\n *\n * @example With type parameters for full type safety:\n * ```typescript\n * import type { agent } from \"./agent\";\n *\n * export class ChatComponent {\n * stream = injectStream<typeof agent>();\n * // stream.messages() returns typed messages\n * }\n * ```\n */\nfunction injectStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(): AngularSignalWrap<\n WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>\n>;\n\n/**\n * Angular entry point for LangGraph streaming. Call from a component, directive,\n * or service field initializer to get a **Signals-based** stream controller\n * connected to the LangGraph Platform (HTTP + threads API).\n *\n * The returned object mirrors the shared `useStream` API from\n * `@langchain/langgraph-sdk/ui`, but reactive fields are\n * {@link https://angular.dev/guide/signals | Angular `Signal`s}:\n * read state with calls like `stream.messages()`, `stream.values()`, and\n * `stream.isLoading()`, and use `WritableSignal` setters where exposed (for\n * example `stream.branch` for branch selection).\n *\n * ## Typing with `createDeepAgent`\n *\n * Expect `export const agent = createDeepAgent({ ... })` from `deepagents`. In\n * UI code, `import { type agent } from \"./agent\"` (or `import type { agent }`)\n * is a **type-only** import: it is erased when compiling, so the agent module\n * does not run in the browser. You still pass **`typeof agent`** to\n * `injectStream`, not `agent` alone — `agent` is a value; TypeScript only\n * accepts it in a type position via `typeof` (otherwise: *refers to a value,\n * but is being used as a type*). If you prefer a named type in generics, add\n * `export type Agent = typeof agent` next to the const and use\n * `injectStream<Agent>(...)`.\n *\n * @example\n * ```typescript\n * // agent.ts\n * import { createDeepAgent } from \"deepagents\";\n * import { tool } from \"langchain\";\n * import { z } from \"zod\";\n *\n * const getWeather = tool(\n * async ({ location }) => `Weather in ${location}`,\n * { name: \"get_weather\", schema: z.object({ location: z.string() }) },\n * );\n *\n * export const agent = createDeepAgent({\n * model: \"openai:gpt-4o\",\n * tools: [getWeather],\n * });\n *\n * // chat.component.ts — type-only import; no agent runtime in the frontend\n * import { Component } from \"@angular/core\";\n * import { injectStream } from \"@langchain/angular\";\n * import { type agent } from \"./agent\";\n *\n * @Component({\n * standalone: true,\n * template: `\n * @for (msg of stream.messages(); track msg.id ?? $index) {\n * <p>{{ msg.content }}</p>\n * }\n * `,\n * })\n * export class ChatComponent {\n * readonly stream = injectStream<typeof agent>({\n * assistantId: \"agent\",\n * apiUrl: \"http://localhost:2024\",\n * });\n * // stream.toolCalls()[0].call.name is typed as \"get_weather\"\n * }\n * ```\n *\n * ## Typing with `StateGraph` / custom graph state\n *\n * Use your graph state interface as `T` and embed tool call unions in\n * `Message<...>[]` when you need discriminated tool types.\n *\n * @example\n * ```typescript\n * import { Message } from \"@langchain/langgraph-sdk\";\n * import { Component } from \"@angular/core\";\n * import { injectStream } from \"@langchain/angular\";\n *\n * type MyToolCalls =\n * | { name: \"search\"; args: { query: string }; id?: string }\n * | { name: \"calculate\"; args: { expression: string }; id?: string };\n *\n * interface MyGraphState {\n * messages: Message<MyToolCalls>[];\n * context?: string;\n * }\n *\n * @Component({ standalone: true, template: \"\" })\n * export class ChatComponent {\n * readonly stream = injectStream<MyGraphState>({\n * assistantId: \"my-graph\",\n * apiUrl: \"http://localhost:2024\",\n * });\n * // stream.values() is typed as MyGraphState | null\n * }\n * ```\n *\n * @example\n * ```typescript\n * // Optional bag for interrupts, configurable, custom events, and updates\n * import { Component } from \"@angular/core\";\n * import { injectStream } from \"@langchain/angular\";\n * import type { Message } from \"@langchain/langgraph-sdk\";\n *\n * interface MyGraphState {\n * messages: Message[];\n * }\n *\n * @Component({ standalone: true, template: \"\" })\n * export class ChatComponent {\n * readonly stream = injectStream<\n * MyGraphState,\n * {\n * InterruptType: { question: string };\n * ConfigurableType: { userId: string };\n * }\n * >({\n * assistantId: \"my-graph\",\n * apiUrl: \"http://localhost:2024\",\n * });\n * // stream.interrupt() is typed as { question: string } | undefined\n * }\n * ```\n *\n * ## Subagent streaming\n *\n * For `createDeepAgent` agents with `subagents`, set `filterSubagentMessages`\n * and use `streamSubgraphs` on `submit` to populate `stream.subagents` and\n * related helpers.\n *\n * @example\n * ```typescript\n * import { Component } from \"@angular/core\";\n * import { injectStream } from \"@langchain/angular\";\n * import { type agent } from \"./agent\";\n *\n * @Component({ standalone: true, template: \"\" })\n * export class DeepAgentChatComponent {\n * readonly stream = injectStream<typeof agent>({\n * assistantId: \"deepagent\",\n * apiUrl: \"http://localhost:2024\",\n * filterSubagentMessages: true,\n * });\n *\n * send(content: string) {\n * void this.stream.submit(\n * { messages: [{ content, type: \"human\" }] },\n * { streamSubgraphs: true },\n * );\n * }\n * }\n * ```\n *\n * @param options - LangGraph Platform client options (`apiUrl` or `client`),\n * `assistantId`, stream modes, history, reconnect, subagent settings, etc.\n *\n * @returns A stream controller backed by Signals: graph values, messages,\n * loading and error state, interrupts, tool calls, branching, queue, and\n * `submit` / `stop` / `switchThread` helpers (writable where the UI layer\n * requires mutation).\n *\n * @template T Agent type (with `~agentTypes`) from `createDeepAgent` or\n * `createAgent`, or a state shape extending `Record<string, unknown>`.\n * @template Bag Optional configuration bag:\n * - `ConfigurableType` — `config.configurable` typing\n * - `InterruptType` — human-in-the-loop interrupt payloads\n * - `CustomEventType` — custom stream events\n * - `UpdateType` — payload typing for `submit`\n *\n * @see {@link https://docs.langchain.com/oss/javascript/langgraph/overview | LangGraph JavaScript overview}\n * @see {@link https://docs.langchain.com/oss/javascript/langchain/overview | LangChain JavaScript overview}\n * @see {@link https://docs.langchain.com/oss/javascript/deepagents/overview | Deep Agents JavaScript overview}\n */\nfunction injectStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: ResolveStreamOptions<T, InferBag<T, Bag>>,\n): AngularSignalWrap<\n WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>\n>;\n\n/**\n * Overload for a **custom transport** (`options.transport`), for example\n * {@link FetchStreamTransport} or any implementation compatible with\n * {@link injectStreamCustom}. Prefer {@link injectStreamCustom} directly when\n * you only use custom transports and want a narrower import.\n *\n * @param options - Custom transport and stream options (must include\n * `transport`).\n *\n * @returns The same Signals-based controller shape as the LangGraph Platform\n * overload.\n *\n * @template T Agent type or state shape, matching the custom transport.\n * @template Bag Same optional bag as the platform overload.\n *\n * @see {@link injectStreamCustom}\n */\nfunction injectStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options: UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>,\n): AngularSignalWrap<\n WithClassMessages<ResolveStreamInterface<T, InferBag<T, Bag>>>\n>;\n\n/**\n * @internal Merges DI, LangGraph Platform, and custom transport overloads.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction injectStream(options?: any): any {\n if (arguments.length === 0) {\n const instance = angularInject(STREAM_INSTANCE, { optional: true });\n if (instance == null) {\n throw new Error(\n \"injectStream() requires an ancestor component to provide a stream via provideStream(). \" +\n \"Add provideStream({ assistantId: '...' }) to the providers array of a parent component, \" +\n \"or use injectStream(options) directly.\",\n );\n }\n return instance;\n }\n if (\"transport\" in options) {\n return injectStreamCustom(options);\n }\n return useStreamLGP(options);\n}\n\nexport { injectStream };\n\n/**\n * @deprecated Use `injectStream` instead. `useStream` will be removed in a\n * future major version. `injectStream` follows Angular's `inject*` naming\n * convention for injection-based patterns.\n */\nexport const useStream = injectStream;\n\nexport function useStreamLGP<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends {\n ConfigurableType?: Record<string, unknown>;\n InterruptType?: unknown;\n CustomEventType?: unknown;\n UpdateType?: unknown;\n } = BagTemplate,\n>(options: AnyStreamOptions<StateType, Bag>) {\n type ConfigurableType = GetConfigurableType<Bag>;\n type InterruptType = GetInterruptType<Bag>;\n\n const client = options.client ?? new Client({ apiUrl: options.apiUrl });\n\n const orchestrator = new StreamOrchestrator<StateType, Bag>(options, {\n getClient: () => client,\n getAssistantId: () => options.assistantId,\n getMessagesKey: () => options.messagesKey ?? \"messages\",\n });\n\n orchestrator.initThreadId(options.threadId ?? undefined);\n\n const version = signal(0);\n const subagentVersion = signal(0);\n\n effect((onCleanup) => {\n const unsubscribe = orchestrator.subscribe(() => {\n version.update((v) => v + 1);\n subagentVersion.update((v) => v + 1);\n });\n onCleanup(() => unsubscribe());\n });\n\n // Subagent reconstruction\n effect((onCleanup) => {\n void version();\n const hvMessages = orchestrator.messages;\n const should =\n options.filterSubagentMessages &&\n !orchestrator.isLoading &&\n !orchestrator.historyData.isLoading &&\n hvMessages.length > 0;\n if (should) {\n const controller = orchestrator.reconstructSubagentsIfNeeded();\n if (controller) {\n onCleanup(() => controller.abort());\n }\n }\n });\n\n // Queue draining - track isLoading changes specifically so the drain\n // fires exactly when stream transitions from loading → idle\n const isLoadingForDrain = computed(() => {\n void version();\n return orchestrator.isLoading;\n });\n effect(() => {\n void isLoadingForDrain();\n orchestrator.drainQueue();\n });\n\n // Auto-reconnect\n const { shouldReconnect } = orchestrator;\n let hasReconnected = false;\n\n effect(() => {\n void version();\n const tid = orchestrator.threadId;\n if (!hasReconnected && shouldReconnect && tid && !orchestrator.isLoading) {\n const reconnected = orchestrator.tryReconnect();\n if (reconnected) hasReconnected = true;\n }\n });\n\n const values = computed(() => {\n void version();\n orchestrator.trackStreamMode(\"values\");\n return orchestrator.values;\n });\n\n const error = computed(() => {\n void version();\n return orchestrator.error;\n });\n\n const isLoading = signal(orchestrator.isLoading);\n effect(() => {\n void version();\n isLoading.set(orchestrator.isLoading);\n });\n\n const branch = signal<string>(\"\");\n effect(() => {\n void version();\n const b = orchestrator.branch;\n if (branch() !== b) branch.set(b);\n });\n\n const messages = computed(() => {\n void version();\n orchestrator.trackStreamMode(\"messages-tuple\", \"values\");\n return ensureMessageInstances(orchestrator.messages);\n });\n\n const toolCalls = computed(() => {\n void version();\n orchestrator.trackStreamMode(\"messages-tuple\", \"values\");\n return orchestrator.toolCalls;\n });\n\n const interrupt = computed(() => {\n void version();\n return orchestrator.interrupt;\n });\n\n const interrupts = computed((): Interrupt<InterruptType>[] => {\n void version();\n return orchestrator.interrupts as Interrupt<InterruptType>[];\n });\n\n const historyList = computed(() => {\n void version();\n return orchestrator.flatHistory;\n });\n\n const isThreadLoading = computed(() => {\n void version();\n return orchestrator.isThreadLoading;\n });\n\n const experimentalBranchTree = computed(() => {\n void version();\n return orchestrator.experimental_branchTree;\n });\n\n const queueEntries = signal(orchestrator.queueEntries);\n const queueSize = signal(orchestrator.queueSize);\n effect(() => {\n void version();\n queueEntries.set(orchestrator.queueEntries);\n queueSize.set(orchestrator.queueSize);\n });\n\n return {\n assistantId: options.assistantId,\n client,\n\n values,\n error,\n isLoading,\n\n branch,\n setBranch(value: string) {\n orchestrator.setBranch(value);\n },\n\n messages,\n toolCalls,\n getToolCalls(message: Message) {\n return orchestrator.getToolCalls(message);\n },\n\n interrupt,\n interrupts,\n\n history: historyList,\n isThreadLoading,\n experimental_branchTree: experimentalBranchTree,\n\n getMessagesMetadata(\n message: Message,\n index?: number,\n ): MessageMetadata<StateType> | undefined {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n submit: (\n values: StateType,\n submitOptions?: SubmitOptions<StateType, ConfigurableType>,\n ) => orchestrator.submit(values, submitOptions),\n stop: () => orchestrator.stop(),\n joinStream: (...args: Parameters<typeof orchestrator.joinStream>) =>\n orchestrator.joinStream(...args),\n\n queue: {\n entries: queueEntries,\n size: queueSize,\n cancel: (id: string) => orchestrator.cancelQueueItem(id),\n clear: () => orchestrator.clearQueue(),\n },\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n get subagents() {\n void subagentVersion();\n return orchestrator.subagents;\n },\n get activeSubagents() {\n void subagentVersion();\n return orchestrator.activeSubagents;\n },\n getSubagent(toolCallId: string) {\n return orchestrator.getSubagent(toolCallId);\n },\n getSubagentsByType(type: string) {\n return orchestrator.getSubagentsByType(type);\n },\n getSubagentsByMessage(messageId: string) {\n return orchestrator.getSubagentsByMessage(messageId);\n },\n };\n}\n\n/**\n * Injectable Angular service that wraps {@link injectStream}.\n *\n * Extend this class with your own `@Injectable()` service and call\n * `super(options)` in the constructor:\n *\n * ```ts\n * \\@Injectable({ providedIn: 'root' })\n * export class ChatService extends StreamService {\n * constructor() {\n * super({ assistantId: 'agent', apiUrl: '...' });\n * }\n * }\n * ```\n *\n * The service exposes the same signals and methods as `injectStream`\n * (e.g. `values`, `messages`, `isLoading`, `submit`, `stop`).\n *\n * Must be created within an Angular injection context (via DI or\n * `runInInjectionContext`).\n */\n@Injectable()\nexport class StreamService<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n> {\n private readonly _stream: StreamServiceInstance<T, Bag>;\n\n constructor(\n options:\n | ResolveStreamOptions<T, InferBag<T, Bag>>\n | UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>,\n ) {\n this._stream = injectStream(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options as any,\n ) as unknown as StreamServiceInstance<T, Bag>;\n }\n\n get values(): Signal<T> {\n return this._stream.values;\n }\n\n get messages(): Signal<BaseMessage[]> {\n return this._stream.messages;\n }\n\n get isLoading(): WritableSignal<boolean> {\n return this._stream.isLoading;\n }\n\n get error(): Signal<unknown> {\n return this._stream.error;\n }\n\n get branch(): WritableSignal<string> {\n return this._stream.branch;\n }\n\n get interrupt(): Signal<Interrupt<GetInterruptType<Bag>> | undefined> {\n return this._stream.interrupt;\n }\n\n get interrupts(): Signal<Interrupt<GetInterruptType<Bag>>[]> {\n return this._stream.interrupts;\n }\n\n get toolCalls(): Signal<SdkToolCallWithResult<DefaultToolCall>[]> {\n return this._stream.toolCalls;\n }\n\n get queue(): AngularQueueInterface<{\n entries: readonly { id: string; values: Partial<T> | null | undefined }[];\n size: number;\n cancel: (id: string) => Promise<boolean>;\n clear: () => Promise<void>;\n }> {\n return this._stream.queue;\n }\n\n get subagents(): Map<string, SubagentStreamInterface> {\n return this._stream.subagents;\n }\n\n get activeSubagents(): SubagentStreamInterface[] {\n return this._stream.activeSubagents;\n }\n\n get history(): Signal<unknown> {\n return this._stream.history;\n }\n\n get isThreadLoading(): Signal<boolean> {\n return this._stream.isThreadLoading;\n }\n\n get experimental_branchTree(): Signal<unknown> {\n return this._stream.experimental_branchTree;\n }\n\n get client(): Client {\n return this._stream.client;\n }\n\n get assistantId(): string {\n return this._stream.assistantId;\n }\n\n submit(\n values: AcceptBaseMessages<Exclude<T, null | undefined>> | null | undefined,\n options?: SubmitOptions<\n T extends Record<string, unknown> ? T : Record<string, unknown>,\n GetConfigurableType<Bag>\n >,\n ): ReturnType<typeof this._stream.submit> {\n return this._stream.submit(values, options);\n }\n\n async stop(): Promise<void> {\n await this._stream.stop();\n }\n\n setBranch(value: string): void {\n this._stream.setBranch(value);\n }\n\n switchThread(newThreadId: string | null): void {\n this._stream.switchThread(newThreadId);\n }\n\n joinStream(\n runId: string,\n lastEventId?: string,\n options?: {\n streamMode?: StreamMode | StreamMode[];\n filter?: (event: {\n id?: string;\n event: StreamEvent;\n data: unknown;\n }) => boolean;\n },\n ): Promise<void> {\n return this._stream.joinStream(runId, lastEventId, options);\n }\n\n getMessagesMetadata(\n message: BaseMessage,\n index?: number,\n ):\n | MessageMetadata<\n T extends Record<string, unknown> ? T : Record<string, unknown>\n >\n | undefined {\n return this._stream.getMessagesMetadata(message as Message, index);\n }\n\n getToolCalls(message: BaseMessage): SdkToolCallWithResult<DefaultToolCall>[] {\n return this._stream.getToolCalls(message as Message);\n }\n\n getSubagent(toolCallId: string): SubagentStreamInterface | undefined {\n return this._stream.getSubagent(toolCallId);\n }\n\n getSubagentsByType(type: string): SubagentStreamInterface[] {\n return this._stream.getSubagentsByType(type);\n }\n\n getSubagentsByMessage(messageId: string): SubagentStreamInterface[] {\n return this._stream.getSubagentsByMessage(messageId);\n }\n}\n\nexport type {\n BaseStream,\n UseAgentStream,\n UseAgentStreamOptions,\n UseDeepAgentStream,\n UseDeepAgentStreamOptions,\n ResolveStreamInterface,\n ResolveStreamOptions,\n InferStateType,\n InferToolCalls,\n InferSubagentStates,\n InferNodeNames,\n InferBag,\n MessageMetadata,\n UseStreamOptions,\n UseStreamCustomOptions,\n UseStreamTransport,\n UseStreamThread,\n GetToolCallsType,\n AgentTypeConfigLike,\n IsAgentLike,\n ExtractAgentConfig,\n InferAgentToolCalls,\n SubagentToolCall,\n SubagentStatus,\n SubagentApi,\n SubagentStream,\n SubagentStreamInterface,\n SubAgentLike,\n CompiledSubAgentLike,\n DeepAgentTypeConfigLike,\n IsDeepAgentLike,\n ExtractDeepAgentConfig,\n ExtractSubAgentMiddleware,\n InferDeepAgentSubagents,\n InferSubagentByName,\n InferSubagentState,\n InferSubagentNames,\n SubagentStateMap,\n DefaultSubagentStates,\n BaseSubagentState,\n QueueEntry,\n QueueInterface,\n} from \"@langchain/langgraph-sdk/ui\";\n\nexport type ToolCallWithResult<ToolCall = DefaultToolCall> =\n SdkToolCallWithResult<ToolCall, CoreToolMessage, CoreAIMessage>;\nexport type {\n ToolCallState,\n DefaultToolCall,\n ToolCallFromTool,\n ToolCallsFromTools,\n} from \"@langchain/langgraph-sdk\";\n\nexport {\n SubagentManager,\n extractToolCallIdFromNamespace,\n calculateDepthFromNamespace,\n extractParentIdFromNamespace,\n isSubagentNamespace,\n} from \"@langchain/langgraph-sdk/ui\";\n"],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ //#region ../../node_modules/.pnpm/@langchain+langgraph@1.2.1_@langchain+core@1.1.31_@opentelemetry+api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/channels/base.d.ts
2
+ //#region src/channels/base.d.ts
3
+ /** @internal */
4
+ declare abstract class BaseChannel<ValueType = unknown, UpdateType = unknown, CheckpointType = unknown> {
5
+ ValueType: ValueType;
6
+ UpdateType: UpdateType;
7
+ /**
8
+ * The name of the channel.
9
+ */
10
+ abstract lc_graph_name: string;
11
+ /** @ignore */
12
+ lg_is_channel: boolean;
13
+ /**
14
+ * Return a new identical channel, optionally initialized from a checkpoint.
15
+ * Can be thought of as a "restoration" from a checkpoint which is a "snapshot" of the channel's state.
16
+ *
17
+ * @param {CheckpointType | undefined} checkpoint
18
+ * @param {CheckpointType | undefined} initialValue
19
+ * @returns {this}
20
+ */
21
+ abstract fromCheckpoint(checkpoint?: CheckpointType): this;
22
+ /**
23
+ * Update the channel's value with the given sequence of updates.
24
+ * The order of the updates in the sequence is arbitrary.
25
+ * This method is called by Pregel for all channels at the end of each step.
26
+ * If there are no updates, it is called with an empty sequence.
27
+ *
28
+ * Raises InvalidUpdateError if the sequence of updates is invalid.
29
+ * Returns True if the channel was updated, False otherwise.
30
+ *
31
+ * @throws {InvalidUpdateError} if the sequence of updates is invalid.
32
+ * @param {Array<UpdateType>} values
33
+ * @returns {void}
34
+ */
35
+ abstract update(values: UpdateType[]): boolean;
36
+ /**
37
+ * Return the current value of the channel.
38
+ *
39
+ * @throws {EmptyChannelError} if the channel is empty (never updated yet).
40
+ * @returns {ValueType}
41
+ */
42
+ abstract get(): ValueType;
43
+ /**
44
+ * Return a string representation of the channel's current state.
45
+ *
46
+ * @throws {EmptyChannelError} if the channel is empty (never updated yet), or doesn't support checkpoints.
47
+ * @returns {CheckpointType | undefined}
48
+ */
49
+ abstract checkpoint(): CheckpointType | undefined;
50
+ /**
51
+ * Mark the current value of the channel as consumed. By default, no-op.
52
+ * A channel can use this method to modify its state, preventing the value
53
+ * from being consumed again.
54
+ *
55
+ * Returns True if the channel was updated, False otherwise.
56
+ */
57
+ consume(): boolean;
58
+ /**
59
+ * Notify the channel that the Pregel run is finishing. By default, no-op.
60
+ * A channel can use this method to modify its state, preventing finish.
61
+ *
62
+ * Returns True if the channel was updated, False otherwise.
63
+ */
64
+ finish(): boolean;
65
+ /**
66
+ * Return True if the channel is available (not empty), False otherwise.
67
+ * Subclasses should override this method to provide a more efficient
68
+ * implementation than calling get() and catching EmptyChannelError.
69
+ */
70
+ isAvailable(): boolean;
71
+ /**
72
+ * Compare this channel with another channel for equality.
73
+ * Used to determine if two channels with the same key are semantically equivalent.
74
+ * Subclasses should override this method to provide a meaningful comparison.
75
+ *
76
+ * @param {BaseChannel} other - The other channel to compare with.
77
+ * @returns {boolean} True if the channels are equal, false otherwise.
78
+ */
79
+ equals(other: BaseChannel): boolean;
80
+ }
81
+ //#endregion
82
+ export { BaseChannel };
83
+ //# sourceMappingURL=base.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.cts","names":["Checkpoint","ReadonlyCheckpoint","BaseChannel","ValueType","UpdateType","CheckpointType","lc_graph_name","lg_is_channel","fromCheckpoint","checkpoint","update","values","get","consume","finish","isAvailable","equals","other","emptyChannels","Cc","Record","channels","createCheckpoint","step","id","options"],"sources":["../../../../../../../../../../../node_modules/.pnpm/@langchain+langgraph@1.2.1_@langchain+core@1.1.31_@opentelemetry+api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/channels/base.d.ts"],"x_google_ignoreList":[0],"mappings":";;;uBAIuBE,WAAAA;EACrBC,SAAAA,EAAWA,SAAAA;EACXC,UAAAA,EAAYA,UAAAA;EA6BYA;;;EAAAA,SAzBfE,aAAAA;EAqEgB;EAnEzBC,aAAAA;EARiCJ;;;;;;;;EAAAA,SAiBxBK,cAAAA,CAAeC,UAAAA,GAAaJ,cAAAA;EAA5BG;;;;;;;;;;;;;EAAAA,SAcAE,MAAAA,CAAOC,MAAAA,EAAQP,UAAAA;EA4CVF;;;;;;EAAAA,SArCLU,GAAAA,CAAAA,GAAOT,SAAAA;;;;;;;WAOPM,UAAAA,CAAAA,GAAcJ,cAAAA;;;;;;;;EAQvBQ,OAAAA,CAAAA;;;;;;;EAOAC,MAAAA,CAAAA;;;;;;EAMAC,WAAAA,CAAAA;;;;;;;;;EASAC,MAAAA,CAAOC,KAAAA,EAAOf,WAAAA;AAAAA"}
@@ -0,0 +1,83 @@
1
+ //#region ../../node_modules/.pnpm/@langchain+langgraph@1.2.1_@langchain+core@1.1.31_@opentelemetry+api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/channels/base.d.ts
2
+ //#region src/channels/base.d.ts
3
+ /** @internal */
4
+ declare abstract class BaseChannel<ValueType = unknown, UpdateType = unknown, CheckpointType = unknown> {
5
+ ValueType: ValueType;
6
+ UpdateType: UpdateType;
7
+ /**
8
+ * The name of the channel.
9
+ */
10
+ abstract lc_graph_name: string;
11
+ /** @ignore */
12
+ lg_is_channel: boolean;
13
+ /**
14
+ * Return a new identical channel, optionally initialized from a checkpoint.
15
+ * Can be thought of as a "restoration" from a checkpoint which is a "snapshot" of the channel's state.
16
+ *
17
+ * @param {CheckpointType | undefined} checkpoint
18
+ * @param {CheckpointType | undefined} initialValue
19
+ * @returns {this}
20
+ */
21
+ abstract fromCheckpoint(checkpoint?: CheckpointType): this;
22
+ /**
23
+ * Update the channel's value with the given sequence of updates.
24
+ * The order of the updates in the sequence is arbitrary.
25
+ * This method is called by Pregel for all channels at the end of each step.
26
+ * If there are no updates, it is called with an empty sequence.
27
+ *
28
+ * Raises InvalidUpdateError if the sequence of updates is invalid.
29
+ * Returns True if the channel was updated, False otherwise.
30
+ *
31
+ * @throws {InvalidUpdateError} if the sequence of updates is invalid.
32
+ * @param {Array<UpdateType>} values
33
+ * @returns {void}
34
+ */
35
+ abstract update(values: UpdateType[]): boolean;
36
+ /**
37
+ * Return the current value of the channel.
38
+ *
39
+ * @throws {EmptyChannelError} if the channel is empty (never updated yet).
40
+ * @returns {ValueType}
41
+ */
42
+ abstract get(): ValueType;
43
+ /**
44
+ * Return a string representation of the channel's current state.
45
+ *
46
+ * @throws {EmptyChannelError} if the channel is empty (never updated yet), or doesn't support checkpoints.
47
+ * @returns {CheckpointType | undefined}
48
+ */
49
+ abstract checkpoint(): CheckpointType | undefined;
50
+ /**
51
+ * Mark the current value of the channel as consumed. By default, no-op.
52
+ * A channel can use this method to modify its state, preventing the value
53
+ * from being consumed again.
54
+ *
55
+ * Returns True if the channel was updated, False otherwise.
56
+ */
57
+ consume(): boolean;
58
+ /**
59
+ * Notify the channel that the Pregel run is finishing. By default, no-op.
60
+ * A channel can use this method to modify its state, preventing finish.
61
+ *
62
+ * Returns True if the channel was updated, False otherwise.
63
+ */
64
+ finish(): boolean;
65
+ /**
66
+ * Return True if the channel is available (not empty), False otherwise.
67
+ * Subclasses should override this method to provide a more efficient
68
+ * implementation than calling get() and catching EmptyChannelError.
69
+ */
70
+ isAvailable(): boolean;
71
+ /**
72
+ * Compare this channel with another channel for equality.
73
+ * Used to determine if two channels with the same key are semantically equivalent.
74
+ * Subclasses should override this method to provide a meaningful comparison.
75
+ *
76
+ * @param {BaseChannel} other - The other channel to compare with.
77
+ * @returns {boolean} True if the channels are equal, false otherwise.
78
+ */
79
+ equals(other: BaseChannel): boolean;
80
+ }
81
+ //#endregion
82
+ export { BaseChannel };
83
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","names":["Checkpoint","ReadonlyCheckpoint","BaseChannel","ValueType","UpdateType","CheckpointType","lc_graph_name","lg_is_channel","fromCheckpoint","checkpoint","update","values","get","consume","finish","isAvailable","equals","other","emptyChannels","Cc","Record","channels","createCheckpoint","step","id","options"],"sources":["../../../../../../../../../../../node_modules/.pnpm/@langchain+langgraph@1.2.1_@langchain+core@1.1.31_@opentelemetry+api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/channels/base.d.ts"],"x_google_ignoreList":[0],"mappings":";;;uBAIuBE,WAAAA;EACrBC,SAAAA,EAAWA,SAAAA;EACXC,UAAAA,EAAYA,UAAAA;EA6BYA;;;EAAAA,SAzBfE,aAAAA;EAqEgB;EAnEzBC,aAAAA;EARiCJ;;;;;;;;EAAAA,SAiBxBK,cAAAA,CAAeC,UAAAA,GAAaJ,cAAAA;EAA5BG;;;;;;;;;;;;;EAAAA,SAcAE,MAAAA,CAAOC,MAAAA,EAAQP,UAAAA;EA4CVF;;;;;;EAAAA,SArCLU,GAAAA,CAAAA,GAAOT,SAAAA;;;;;;;WAOPM,UAAAA,CAAAA,GAAcJ,cAAAA;;;;;;;;EAQvBQ,OAAAA,CAAAA;;;;;;;EAOAC,MAAAA,CAAAA;;;;;;EAMAC,WAAAA,CAAAA;;;;;;;;;EASAC,MAAAA,CAAOC,KAAAA,EAAOf,WAAAA;AAAAA"}
@@ -0,0 +1,42 @@
1
+ //#region ../../node_modules/.pnpm/@langchain+langgraph@1.2.1_@langchain+core@1.1.31_@opentelemetry+api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/constants.d.ts
2
+ declare const OVERWRITE = "__overwrite__";
3
+ /**
4
+ * An object representing a direct overwrite of a value for a channel.
5
+ * Used to signal that the channel value should be replaced with the given value,
6
+ * bypassing any reducer or binary operator logic.
7
+ *
8
+ * @template ValueType - The type of the value being overwritten.
9
+ * @property {ValueType} [OVERWRITE] - The value to directly set.
10
+ *
11
+ * @example
12
+ * const overwriteObj: OverwriteValue<number> = { __overwrite__: 123 };
13
+ */
14
+ interface OverwriteValue<ValueType> {
15
+ [OVERWRITE]: ValueType;
16
+ }
17
+ /**
18
+ * Bypass a reducer and write the wrapped value directly to a
19
+ * {@link BinaryOperatorAggregate} channel.
20
+ *
21
+ * Receiving multiple `Overwrite` values for the same channel in a single
22
+ * super-step will raise an {@link InvalidUpdateError}.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * import { Annotation, StateGraph, Overwrite } from "@langchain/langgraph";
27
+ *
28
+ * const State = Annotation.Root({
29
+ * messages: Annotation<string[]>({
30
+ * reducer: (a, b) => a.concat(b),
31
+ * default: () => [],
32
+ * }),
33
+ * });
34
+ *
35
+ * const replaceMessages = (_state: typeof State.State) => {
36
+ * return { messages: new Overwrite(["replacement"]) };
37
+ * };
38
+ * ```
39
+ */
40
+ //#endregion
41
+ export { OverwriteValue };
42
+ //# sourceMappingURL=constants.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.cts","names":["PendingWrite","START","END","INTERRUPT","PREVIOUS","COMMAND_SYMBOL","CommandInstance","Resume","Update","Nodes","Record","CommandParams","constructor","args","SendInterface","Node","Args","node","Send","lg_name","toJSON","OVERWRITE","OverwriteValue","ValueType","Overwrite","value","__overwrite__","isInstance","Interrupt","Value","id","isInterrupted","values","resume","graph","update","goto","Command","Omit","lc_direct_tool_output","PARENT","_updateAsTuples","isCommand","x"],"sources":["../../../../../../../../../../node_modules/.pnpm/@langchain+langgraph@1.2.1_@langchain+core@1.1.31_@opentelemetry+api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/constants.d.ts"],"x_google_ignoreList":[0],"mappings":";cA2FcqB,SAAAA;;;;;;;;;;;;UAYJC,cAAAA;EAAAA,CACPD,SAAAA,GAAYE,SAAAA;AAAAA"}
@@ -0,0 +1,42 @@
1
+ //#region ../../node_modules/.pnpm/@langchain+langgraph@1.2.1_@langchain+core@1.1.31_@opentelemetry+api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/constants.d.ts
2
+ declare const OVERWRITE = "__overwrite__";
3
+ /**
4
+ * An object representing a direct overwrite of a value for a channel.
5
+ * Used to signal that the channel value should be replaced with the given value,
6
+ * bypassing any reducer or binary operator logic.
7
+ *
8
+ * @template ValueType - The type of the value being overwritten.
9
+ * @property {ValueType} [OVERWRITE] - The value to directly set.
10
+ *
11
+ * @example
12
+ * const overwriteObj: OverwriteValue<number> = { __overwrite__: 123 };
13
+ */
14
+ interface OverwriteValue<ValueType> {
15
+ [OVERWRITE]: ValueType;
16
+ }
17
+ /**
18
+ * Bypass a reducer and write the wrapped value directly to a
19
+ * {@link BinaryOperatorAggregate} channel.
20
+ *
21
+ * Receiving multiple `Overwrite` values for the same channel in a single
22
+ * super-step will raise an {@link InvalidUpdateError}.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * import { Annotation, StateGraph, Overwrite } from "@langchain/langgraph";
27
+ *
28
+ * const State = Annotation.Root({
29
+ * messages: Annotation<string[]>({
30
+ * reducer: (a, b) => a.concat(b),
31
+ * default: () => [],
32
+ * }),
33
+ * });
34
+ *
35
+ * const replaceMessages = (_state: typeof State.State) => {
36
+ * return { messages: new Overwrite(["replacement"]) };
37
+ * };
38
+ * ```
39
+ */
40
+ //#endregion
41
+ export { OverwriteValue };
42
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","names":["PendingWrite","START","END","INTERRUPT","PREVIOUS","COMMAND_SYMBOL","CommandInstance","Resume","Update","Nodes","Record","CommandParams","constructor","args","SendInterface","Node","Args","node","Send","lg_name","toJSON","OVERWRITE","OverwriteValue","ValueType","Overwrite","value","__overwrite__","isInstance","Interrupt","Value","id","isInterrupted","values","resume","graph","update","goto","Command","Omit","lc_direct_tool_output","PARENT","_updateAsTuples","isCommand","x"],"sources":["../../../../../../../../../../node_modules/.pnpm/@langchain+langgraph@1.2.1_@langchain+core@1.1.31_@opentelemetry+api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/constants.d.ts"],"x_google_ignoreList":[0],"mappings":";cA2FcqB,SAAAA;;;;;;;;;;;;UAYJC,cAAAA;EAAAA,CACPD,SAAAA,GAAYE,SAAAA;AAAAA"}
@@ -0,0 +1,2 @@
1
+ import { InteropZodToStateDefinition, ReducedZodChannel, SchemaMeta, SchemaMetaRegistry } from "./meta.cjs";
2
+ import { LanggraphZodMetaRegistry } from "./zod-registry.cjs";
@@ -0,0 +1,2 @@
1
+ import { InteropZodToStateDefinition, ReducedZodChannel, SchemaMeta, SchemaMetaRegistry } from "./meta.js";
2
+ import { LanggraphZodMetaRegistry } from "./zod-registry.js";
@@ -0,0 +1,109 @@
1
+ import { BaseChannel } from "../../channels/base.cjs";
2
+ import { OverwriteValue } from "../../constants.cjs";
3
+ import { InteropZodObject, InteropZodObjectShape, InteropZodType } from "@langchain/core/utils/types";
4
+
5
+ //#region ../../node_modules/.pnpm/@langchain+langgraph@1.2.1_@langchain+core@1.1.31_@opentelemetry+api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/meta.d.ts
6
+ /** @internal */
7
+ type ReducedZodChannel<T extends InteropZodType, TReducerSchema extends InteropZodType> = T & {
8
+ lg_reducer_schema: TReducerSchema;
9
+ };
10
+ /** @internal */
11
+ type InteropZodToStateDefinition<T extends InteropZodObject, TShape = InteropZodObjectShape<T>> = { [key in keyof TShape]: TShape[key] extends ReducedZodChannel<infer Schema, infer ReducerSchema> ? Schema extends InteropZodType<infer V> ? ReducerSchema extends InteropZodType<infer U> ? BaseChannel<V, OverwriteValue<V> | U> : never : never : TShape[key] extends InteropZodType<infer V, infer U> ? BaseChannel<V, U> : never };
12
+ interface SchemaMeta<TValue = any, TUpdate = TValue> {
13
+ jsonSchemaExtra?: {
14
+ langgraph_nodes?: string[];
15
+ langgraph_type?: "prompt" | "messages";
16
+ [key: string]: unknown;
17
+ };
18
+ reducer?: {
19
+ schema?: InteropZodType<TUpdate>;
20
+ fn: (a: TValue, b: TUpdate) => TValue;
21
+ };
22
+ default?: () => TValue;
23
+ }
24
+ /**
25
+ * A registry for storing and managing metadata associated with schemas.
26
+ * This class provides methods to get, extend, remove, and check metadata for a given schema.
27
+ */
28
+ declare class SchemaMetaRegistry {
29
+ /**
30
+ * Internal map storing schema metadata.
31
+ * @internal
32
+ */
33
+ _map: Map<InteropZodType, SchemaMeta<any, any>>;
34
+ /**
35
+ * Cache for extended schemas.
36
+ * @internal
37
+ */
38
+ _extensionCache: Map<string, Map<InteropZodType, InteropZodType>>;
39
+ /**
40
+ * Retrieves the metadata associated with a given schema.
41
+ * @template TValue The value type of the schema.
42
+ * @template TUpdate The update type of the schema (defaults to TValue).
43
+ * @param schema The schema to retrieve metadata for.
44
+ * @returns The associated SchemaMeta, or undefined if not present.
45
+ */
46
+ get<TValue, TUpdate = TValue>(schema: InteropZodType<TValue>): SchemaMeta<TValue, TUpdate> | undefined;
47
+ /**
48
+ * Extends or sets the metadata for a given schema.
49
+ * @template TValue The value type of the schema.
50
+ * @template TUpdate The update type of the schema (defaults to TValue).
51
+ * @param schema The schema to extend metadata for.
52
+ * @param predicate A function that receives the existing metadata (or undefined) and returns the new metadata.
53
+ */
54
+ extend<TValue, TUpdate>(schema: InteropZodType<TValue>, predicate: (meta: SchemaMeta<TValue, TUpdate> | undefined) => SchemaMeta<TValue, TUpdate>): void;
55
+ /**
56
+ * Removes the metadata associated with a given schema.
57
+ * @param schema The schema to remove metadata for.
58
+ * @returns The SchemaMetaRegistry instance (for chaining).
59
+ */
60
+ remove(schema: InteropZodType): this;
61
+ /**
62
+ * Checks if metadata exists for a given schema.
63
+ * @param schema The schema to check.
64
+ * @returns True if metadata exists, false otherwise.
65
+ */
66
+ has(schema: InteropZodType): boolean;
67
+ /**
68
+ * Returns a mapping of channel instances for each property in the schema
69
+ * using the associated metadata in the registry.
70
+ *
71
+ * This is used to create the `channels` object that's passed to the `Graph` constructor.
72
+ *
73
+ * @template T The shape of the schema.
74
+ * @param schema The schema to extract channels from.
75
+ * @returns A mapping from property names to channel instances.
76
+ */
77
+ getChannelsForSchema<T extends InteropZodObject>(schema: T): InteropZodToStateDefinition<T>;
78
+ /**
79
+ * Returns a modified schema that introspectively looks at all keys of the provided
80
+ * object schema, and applies the augmentations based on meta provided with those keys
81
+ * in the registry and the selectors provided in the `effects` parameter.
82
+ *
83
+ * This assumes that the passed in schema is the "root" schema object for a graph where
84
+ * the keys of the schema are the channels of the graph. Because we need to represent
85
+ * the input of a graph in a couple of different ways, the `effects` parameter allows
86
+ * us to apply those augmentations based on pre determined conditions.
87
+ *
88
+ * @param schema The root schema object to extend.
89
+ * @param effects The effects that are being applied.
90
+ * @returns The extended schema.
91
+ */
92
+ getExtendedChannelSchemas<T extends InteropZodObject>(schema: T, effects: {
93
+ /**
94
+ * Augments the shape by using the reducer's schema if it exists
95
+ */
96
+ withReducerSchema?: boolean;
97
+ /**
98
+ * Applies the stringified jsonSchemaExtra as a description to the schema.
99
+ */
100
+ withJsonSchemaExtrasAsDescription?: boolean;
101
+ /**
102
+ * Applies the `.partial()` modifier to the schema.
103
+ */
104
+ asPartial?: boolean;
105
+ }): InteropZodObject;
106
+ }
107
+ //#endregion
108
+ export { InteropZodToStateDefinition, ReducedZodChannel, SchemaMeta, SchemaMetaRegistry };
109
+ //# sourceMappingURL=meta.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.d.cts","names":["BaseChannel","OverwriteValue","InteropZodObject","InteropZodObjectShape","InteropZodType","META_EXTRAS_DESCRIPTION_PREFIX","ReducedZodChannel","T","TReducerSchema","lg_reducer_schema","InteropZodToStateDefinition","TShape","key","V","U","Schema","ReducerSchema","UpdateType","SchemaMeta","TValue","TUpdate","jsonSchemaExtra","langgraph_nodes","langgraph_type","reducer","schema","fn","a","b","default","SchemaMetaRegistry","Map","_map","_extensionCache","get","extend","meta","predicate","remove","has","getChannelsForSchema","getExtendedChannelSchemas","withReducerSchema","withJsonSchemaExtrasAsDescription","asPartial","effects","schemaMetaRegistry","withLangGraph","TSchema"],"sources":["../../../../../../../../../../../../node_modules/.pnpm/@langchain+langgraph@1.2.1_@langchain+core@1.1.31_@opentelemetry+api@1.9.0_openai@6.27._db5dc2b7d473236f1e1bf7d3e1a7ed18/node_modules/@langchain/langgraph/dist/graph/zod/meta.d.ts"],"x_google_ignoreList":[0],"mappings":";;;;;;KAOKM,iBAAAA,WAA4BF,cAAAA,yBAAuCA,cAAAA,IAAkBG,CAAAA;EACxFE,iBAAAA,EAAmBD,cAAAA;AAAAA;;KAGhBE,2BAAAA,WAAsCR,gBAAAA,WAA2BC,qBAAAA,CAAsBI,CAAAA,qBAAsBI,MAAAA,GAASA,MAAAA,CAAOC,GAAAA,UAAaN,iBAAAA,sCAAuDS,MAAAA,SAAeX,cAAAA,YAA0BY,aAAAA,SAAsBZ,cAAAA,YAA0BJ,WAAAA,CAAYa,CAAAA,EAAGZ,cAAAA,CAAeY,CAAAA,IAAKC,CAAAA,oBAAqBH,MAAAA,CAAOC,GAAAA,UAAaR,cAAAA,qBAAmCJ,WAAAA,CAAYa,CAAAA,EAAGC,CAAAA;AAAAA,UAEnZI,UAAAA,yBAAmCC,MAAAA;EAC3CE,eAAAA;IACEC,eAAAA;IACAC,cAAAA;IAAAA,CACCX,GAAAA;EAAAA;EAEHY,OAAAA;IACEC,MAAAA,GAASrB,cAAAA,CAAegB,OAAAA;IACxBM,EAAAA,GAAKC,CAAAA,EAAGR,MAAAA,EAAQS,CAAAA,EAAGR,OAAAA,KAAYD,MAAAA;EAAAA;EAEjCU,OAAAA,SAAgBV,MAAAA;AAAAA;;;;;cAMJW,kBAAAA;EAlB6GnB;;;;EAuBzHqB,IAAAA,EAAMD,GAAAA,CAAI3B,cAAAA,EAAgBc,UAAAA;EAvB+QL;;;;EA4BzSoB,eAAAA,EAAiBF,GAAAA,SAAYA,GAAAA,CAAI3B,cAAAA,EAAgBA,cAAAA;EA5BoSO;;;;;;;EAoCrVuB,GAAAA,mBAAsBf,MAAAA,CAAAA,CAAQM,MAAAA,EAAQrB,cAAAA,CAAee,MAAAA,IAAUD,UAAAA,CAAWC,MAAAA,EAAQC,OAAAA;EApCnDb;;;;;;;EA4C/B4B,MAAAA,iBAAAA,CAAwBV,MAAAA,EAAQrB,cAAAA,CAAee,MAAAA,GAASkB,SAAAA,GAAYD,IAAAA,EAAMlB,UAAAA,CAAWC,MAAAA,EAAQC,OAAAA,kBAAyBF,UAAAA,CAAWC,MAAAA,EAAQC,OAAAA;EA5CTR;;;;;EAkDhI0B,MAAAA,CAAOb,MAAAA,EAAQrB,cAAAA;EAlDyNS;;;;;EAwDxO0B,GAAAA,CAAId,MAAAA,EAAQrB,cAAAA;EAxDgSH;;;;;;;;;;EAmE5SuC,oBAAAA,WAA+BtC,gBAAAA,CAAAA,CAAkBuB,MAAAA,EAAQlB,CAAAA,GAAIG,2BAAAA,CAA4BH,CAAAA;EAnEmU;;AAC/C;;;;;;;;;;;;EAiF7WkC,yBAAAA,WAAoCvC,gBAAAA,CAAAA,CAAkBuB,MAAAA,EAAQlB,CAAAA,EAAGsC,OAAAA;IAhFhCzB;;;IAoF/BsB,iBAAAA;IAjFAnB;;;IAqFAoB,iCAAAA;IAjFSvC;;;IAqFTwC,SAAAA;EAAAA,IACE1C,gBAAAA;AAAAA"}