@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.
- package/README.md +275 -16
- package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorate.cjs +9 -0
- package/dist/_virtual/_@oxc-project_runtime@0.115.0/helpers/decorate.js +9 -0
- package/dist/context.cjs +94 -0
- package/dist/context.cjs.map +1 -0
- package/dist/context.d.cts +130 -0
- package/dist/context.d.cts.map +1 -0
- package/dist/context.d.ts +130 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +91 -0
- package/dist/context.js.map +1 -0
- package/dist/index.cjs +212 -386
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +317 -16
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +317 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +203 -390
- package/dist/index.js.map +1 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/ZodError.d.cts +155 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/ZodError.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/ZodError.d.ts +155 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/ZodError.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/errorUtil.d.cts +13 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/errorUtil.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/errorUtil.d.ts +13 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/errorUtil.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/parseUtil.d.cts +63 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/parseUtil.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/parseUtil.d.ts +63 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/parseUtil.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/typeAliases.d.cts +5 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/typeAliases.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/typeAliases.d.ts +5 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/typeAliases.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.d.cts +64 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.d.ts +64 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/helpers/util.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/standard-schema.d.cts +106 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/standard-schema.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/standard-schema.d.ts +106 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/standard-schema.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/types.d.cts +291 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/types.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/types.d.ts +291 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v3/types.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.d.cts +29 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.d.ts +29 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.d.cts +29 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.d.ts +29 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.d.cts +105 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.d.ts +105 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.d.cts +70 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.d.ts +70 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.d.cts +24 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.d.ts +24 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.d.cts +97 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.d.ts +97 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/standard-schema.d.cts +79 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/standard-schema.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/standard-schema.d.ts +79 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/standard-schema.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.d.cts +52 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.d.ts +52 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.d.cts +17 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.d.ts +17 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.d.cts +9 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.d.ts +9 -0
- package/dist/node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.d.ts.map +1 -0
- package/dist/stream.custom.cjs +54 -137
- package/dist/stream.custom.cjs.map +1 -1
- package/dist/stream.custom.d.cts +45 -0
- package/dist/stream.custom.d.cts.map +1 -0
- package/dist/stream.custom.d.ts +45 -0
- package/dist/stream.custom.d.ts.map +1 -0
- package/dist/stream.custom.js +55 -139
- package/dist/stream.custom.js.map +1 -1
- package/dist/subagent-types.d.cts +15 -0
- package/dist/subagent-types.d.cts.map +1 -0
- package/dist/subagent-types.d.ts +15 -0
- package/dist/subagent-types.d.ts.map +1 -0
- package/package.json +9 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.custom.cjs","names":["MessageTupleManager","StreamManager","toMessageClass"],"sources":["../src/stream.custom.ts"],"sourcesContent":["import { signal, computed, effect } from \"@angular/core\";\nimport {\n StreamManager,\n MessageTupleManager,\n extractInterrupts,\n toMessageClass,\n ensureMessageInstances,\n type EventStreamEvent,\n type GetUpdateType,\n type GetCustomEventType,\n type GetInterruptType,\n type GetConfigurableType,\n type GetToolCallsType,\n type AnyStreamCustomOptions,\n type CustomSubmitOptions,\n type MessageMetadata,\n} from \"@langchain/langgraph-sdk/ui\";\nimport { getToolCallsWithResults } from \"@langchain/langgraph-sdk/utils\";\nimport type { BagTemplate, Message, Interrupt } from \"@langchain/langgraph-sdk\";\n\nexport function useStreamCustom<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(options: AnyStreamCustomOptions<StateType, Bag>) {\n type UpdateType = GetUpdateType<Bag, StateType>;\n type CustomType = GetCustomEventType<Bag>;\n type InterruptType = GetInterruptType<Bag>;\n type ConfigurableType = GetConfigurableType<Bag>;\n type ToolCallType = GetToolCallsType<StateType>;\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 streamValues = signal<StateType | null>(stream.values);\n const streamError = signal<unknown>(stream.error);\n const isLoading = signal(stream.isLoading);\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 let threadId: string | null = options.threadId ?? null;\n\n const branch = signal<string>(\"\");\n\n const getMessages = (value: StateType): Message[] => {\n const messagesKey = options.messagesKey ?? \"messages\";\n return Array.isArray(value[messagesKey])\n ? (value[messagesKey] as Message[])\n : [];\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 historyValues = options.initialValues ?? ({} as StateType);\n\n const historyMessages = getMessages(historyValues);\n const shouldReconstructSubagents =\n options.filterSubagentMessages &&\n !stream.isLoading &&\n historyMessages.length > 0;\n\n effect(() => {\n const loading = isLoading();\n const hvMessages = getMessages(historyValues);\n const should =\n options.filterSubagentMessages && !loading && hvMessages.length > 0;\n if (should) {\n stream.reconstructSubagents(hvMessages, { skipIfPopulated: true });\n }\n });\n\n if (shouldReconstructSubagents) {\n stream.reconstructSubagents(historyMessages, { skipIfPopulated: true });\n }\n\n function switchThread(newThreadId: string | null) {\n if (newThreadId !== threadId) {\n threadId = newThreadId;\n stream.clear();\n }\n }\n\n function stop() {\n return stream.stop(historyValues, { onStop: options.onStop });\n }\n\n async function submitDirect(\n values: UpdateType | null | undefined,\n submitOptions?: CustomSubmitOptions<StateType, ConfigurableType>,\n ) {\n const currentThreadId = options.threadId ?? null;\n if (currentThreadId !== threadId) {\n threadId = currentThreadId;\n stream.clear();\n }\n\n let usableThreadId = threadId ?? submitOptions?.threadId;\n\n stream.setStreamValues(() => {\n if (submitOptions?.optimisticValues != null) {\n return {\n ...historyValues,\n ...(typeof submitOptions.optimisticValues === \"function\"\n ? submitOptions.optimisticValues(historyValues)\n : submitOptions.optimisticValues),\n };\n }\n\n return { ...historyValues };\n });\n\n await stream.start(\n async (signal: AbortSignal) => {\n if (!usableThreadId) {\n usableThreadId = crypto.randomUUID();\n threadId = usableThreadId;\n options.onThreadId?.(usableThreadId);\n }\n\n if (!usableThreadId) {\n throw new Error(\"Failed to obtain valid thread ID.\");\n }\n\n return options.transport.stream({\n input: values,\n context: submitOptions?.context,\n command: submitOptions?.command,\n signal,\n config: {\n ...submitOptions?.config,\n configurable: {\n thread_id: usableThreadId,\n ...submitOptions?.config?.configurable,\n } as unknown as GetConfigurableType<Bag>,\n },\n }) as Promise<\n AsyncGenerator<EventStreamEvent<StateType, UpdateType, CustomType>>\n >;\n },\n {\n getMessages,\n setMessages,\n\n initialValues: {} as StateType,\n callbacks: options,\n\n onSuccess: () => undefined,\n onError(error) {\n options.onError?.(error, undefined);\n submitOptions?.onError?.(error, undefined);\n },\n },\n );\n }\n\n async function submit(\n values: UpdateType | null | undefined,\n submitOptions?: CustomSubmitOptions<StateType, ConfigurableType>,\n ) {\n await submitDirect(values, submitOptions);\n }\n\n const values = computed(() => streamValues() ?? ({} as StateType));\n\n function setBranch(value: string) {\n branch.set(value);\n }\n\n function getMessagesMetadata(\n message: Message<ToolCallType>,\n index?: number,\n ): MessageMetadata<StateType> | undefined {\n const streamMetadata = messageManager.get(message.id)?.metadata;\n if (streamMetadata != null) {\n return {\n messageId: message.id ?? String(index),\n firstSeenState: undefined,\n branch: undefined,\n branchOptions: undefined,\n streamMetadata,\n } as MessageMetadata<StateType>;\n }\n return undefined;\n }\n\n return {\n values,\n error: streamError,\n isLoading,\n\n stop,\n submit,\n switchThread,\n\n branch,\n setBranch,\n getMessagesMetadata,\n\n queue: {\n entries: signal([]),\n size: signal(0),\n async cancel() {\n return false;\n },\n async clear() {},\n },\n\n interrupts: computed((): Interrupt<InterruptType>[] => {\n const vals = streamValues();\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 return [];\n }),\n\n interrupt: computed((): Interrupt<InterruptType> | undefined => {\n return extractInterrupts<InterruptType>(streamValues());\n }),\n\n messages: computed(() => {\n const vals = streamValues();\n if (!vals) return [];\n return ensureMessageInstances(getMessages(vals));\n }),\n\n toolCalls: computed(() => {\n const vals = streamValues();\n if (!vals) return [];\n const msgs = getMessages(vals);\n return getToolCallsWithResults<ToolCallType>(msgs);\n }),\n\n getToolCalls(message: Message<ToolCallType>) {\n const vals = streamValues();\n if (!vals) return [];\n const msgs = getMessages(vals);\n const allToolCalls = getToolCallsWithResults<ToolCallType>(msgs);\n return allToolCalls.filter((tc) => tc.aiMessage.id === message.id);\n },\n\n get subagents() {\n void subagentVersion();\n return stream.getSubagents();\n },\n\n get activeSubagents() {\n void subagentVersion();\n return stream.getActiveSubagents();\n },\n\n getSubagent(toolCallId: string) {\n return stream.getSubagent(toolCallId);\n },\n\n getSubagentsByType(type: string) {\n return stream.getSubagentsByType(type);\n },\n\n getSubagentsByMessage(messageId: string) {\n return stream.getSubagentsByMessage(messageId);\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stream.custom.cjs","names":["CustomStreamOrchestrator"],"sources":["../src/stream.custom.ts"],"sourcesContent":["import { signal, computed, effect } from \"@angular/core\";\nimport {\n CustomStreamOrchestrator,\n ensureMessageInstances,\n type AnyStreamCustomOptions,\n type CustomSubmitOptions,\n type GetUpdateType,\n type GetInterruptType,\n type GetConfigurableType,\n type GetToolCallsType,\n type MessageMetadata,\n} from \"@langchain/langgraph-sdk/ui\";\nimport type { BagTemplate, Message, Interrupt } from \"@langchain/langgraph-sdk\";\n\nexport function injectStreamCustom<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(options: AnyStreamCustomOptions<StateType, Bag>) {\n type UpdateType = GetUpdateType<Bag, StateType>;\n type InterruptType = GetInterruptType<Bag>;\n type ConfigurableType = GetConfigurableType<Bag>;\n type ToolCallType = GetToolCallsType<StateType>;\n\n const orchestrator = new CustomStreamOrchestrator<StateType, Bag>(options);\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 effect(() => {\n void version();\n const loading = orchestrator.isLoading;\n const hvMessages = orchestrator.messages;\n if (options.filterSubagentMessages && !loading && hvMessages.length > 0) {\n orchestrator.reconstructSubagentsIfNeeded();\n }\n });\n\n const values = computed(() => {\n void version();\n return orchestrator.values;\n });\n\n const branch = signal<string>(\"\");\n\n return {\n values,\n error: computed(() => {\n void version();\n return orchestrator.error;\n }),\n isLoading: signal(false),\n\n stop: () => orchestrator.stop(),\n\n async submit(\n values: UpdateType | null | undefined,\n submitOptions?: CustomSubmitOptions<StateType, ConfigurableType>,\n ) {\n await orchestrator.submit(values, submitOptions);\n },\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n branch,\n setBranch(value: string) {\n branch.set(value);\n orchestrator.setBranch(value);\n },\n\n getMessagesMetadata(\n message: Message<ToolCallType>,\n index?: number,\n ): MessageMetadata<StateType> | undefined {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n queue: {\n entries: signal([]),\n size: signal(0),\n async cancel() {\n return false;\n },\n async clear() {},\n },\n\n interrupts: computed((): Interrupt<InterruptType>[] => {\n void version();\n return orchestrator.interrupts as Interrupt<InterruptType>[];\n }),\n\n interrupt: computed((): Interrupt<InterruptType> | undefined => {\n void version();\n return orchestrator.interrupt as Interrupt<InterruptType> | undefined;\n }),\n\n messages: computed(() => {\n void version();\n return ensureMessageInstances(orchestrator.messages);\n }),\n\n toolCalls: computed(() => {\n void version();\n return orchestrator.toolCalls;\n }),\n\n getToolCalls(message: Message<ToolCallType>) {\n return orchestrator.getToolCalls(message);\n },\n\n get subagents() {\n void subagentVersion();\n return orchestrator.subagents;\n },\n\n get activeSubagents() {\n void subagentVersion();\n return orchestrator.activeSubagents;\n },\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 * @deprecated Use `injectStreamCustom` instead. `useStreamCustom` will be\n * removed in a future major version. `injectStreamCustom` follows Angular's\n * `inject*` naming convention for injection-based patterns.\n */\nexport const useStreamCustom = injectStreamCustom;\n"],"mappings":";;;AAcA,SAAgB,mBAGd,SAAiD;CAMjD,MAAM,eAAe,IAAIA,4BAAAA,yBAAyC,QAAQ;CAE1E,MAAM,WAAA,GAAA,cAAA,QAAiB,EAAE;CACzB,MAAM,mBAAA,GAAA,cAAA,QAAyB,EAAE;AAEjC,EAAA,GAAA,cAAA,SAAQ,cAAc;EACpB,MAAM,cAAc,aAAa,gBAAgB;AAC/C,WAAQ,QAAQ,MAAM,IAAI,EAAE;AAC5B,mBAAgB,QAAQ,MAAM,IAAI,EAAE;IACpC;AACF,kBAAgB,aAAa,CAAC;GAC9B;AAEF,EAAA,GAAA,cAAA,cAAa;AACN,WAAS;EACd,MAAM,UAAU,aAAa;EAC7B,MAAM,aAAa,aAAa;AAChC,MAAI,QAAQ,0BAA0B,CAAC,WAAW,WAAW,SAAS,EACpE,cAAa,8BAA8B;GAE7C;CAEF,MAAM,UAAA,GAAA,cAAA,gBAAwB;AACvB,WAAS;AACd,SAAO,aAAa;GACpB;CAEF,MAAM,UAAA,GAAA,cAAA,QAAwB,GAAG;AAEjC,QAAO;EACL;EACA,QAAA,GAAA,cAAA,gBAAsB;AACf,YAAS;AACd,UAAO,aAAa;IACpB;EACF,YAAA,GAAA,cAAA,QAAkB,MAAM;EAExB,YAAY,aAAa,MAAM;EAE/B,MAAM,OACJ,QACA,eACA;AACA,SAAM,aAAa,OAAO,QAAQ,cAAc;;EAGlD,aAAa,aAA4B;AACvC,gBAAa,aAAa,YAAY;;EAGxC;EACA,UAAU,OAAe;AACvB,UAAO,IAAI,MAAM;AACjB,gBAAa,UAAU,MAAM;;EAG/B,oBACE,SACA,OACwC;AACxC,UAAO,aAAa,oBAAoB,SAAS,MAAM;;EAGzD,OAAO;GACL,UAAA,GAAA,cAAA,QAAgB,EAAE,CAAC;GACnB,OAAA,GAAA,cAAA,QAAa,EAAE;GACf,MAAM,SAAS;AACb,WAAO;;GAET,MAAM,QAAQ;GACf;EAED,aAAA,GAAA,cAAA,gBAAuD;AAChD,YAAS;AACd,UAAO,aAAa;IACpB;EAEF,YAAA,GAAA,cAAA,gBAAgE;AACzD,YAAS;AACd,UAAO,aAAa;IACpB;EAEF,WAAA,GAAA,cAAA,gBAAyB;AAClB,YAAS;AACd,WAAA,GAAA,4BAAA,wBAA8B,aAAa,SAAS;IACpD;EAEF,YAAA,GAAA,cAAA,gBAA0B;AACnB,YAAS;AACd,UAAO,aAAa;IACpB;EAEF,aAAa,SAAgC;AAC3C,UAAO,aAAa,aAAa,QAAQ;;EAG3C,IAAI,YAAY;AACT,oBAAiB;AACtB,UAAO,aAAa;;EAGtB,IAAI,kBAAkB;AACf,oBAAiB;AACtB,UAAO,aAAa;;EAGtB,YAAY,YAAoB;AAC9B,UAAO,aAAa,YAAY,WAAW;;EAE7C,mBAAmB,MAAc;AAC/B,UAAO,aAAa,mBAAmB,KAAK;;EAE9C,sBAAsB,WAAmB;AACvC,UAAO,aAAa,sBAAsB,UAAU;;EAEvD;;;;;;;AAQH,MAAa,kBAAkB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BaseMessage as BaseMessage$1, BaseMessageChunk } from "./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.cjs";
|
|
2
|
+
import * as _langchain_langgraph_sdk0 from "@langchain/langgraph-sdk";
|
|
3
|
+
import { BagTemplate, Interrupt, Message } from "@langchain/langgraph-sdk";
|
|
4
|
+
import * as _langchain_core_messages0 from "@langchain/core/messages";
|
|
5
|
+
import * as _langchain_langgraph_sdk_ui0 from "@langchain/langgraph-sdk/ui";
|
|
6
|
+
import { AnyStreamCustomOptions, CustomSubmitOptions, GetConfigurableType, GetInterruptType, GetToolCallsType, GetUpdateType, MessageMetadata } from "@langchain/langgraph-sdk/ui";
|
|
7
|
+
import * as _angular_core0 from "@angular/core";
|
|
8
|
+
|
|
9
|
+
//#region src/stream.custom.d.ts
|
|
10
|
+
declare function injectStreamCustom<StateType extends Record<string, unknown> = Record<string, unknown>, Bag extends BagTemplate = BagTemplate>(options: AnyStreamCustomOptions<StateType, Bag>): {
|
|
11
|
+
values: _angular_core0.Signal<StateType>;
|
|
12
|
+
error: _angular_core0.Signal<unknown>;
|
|
13
|
+
isLoading: _angular_core0.WritableSignal<boolean>;
|
|
14
|
+
stop: () => void;
|
|
15
|
+
submit(values: GetUpdateType<Bag, StateType> | null | undefined, submitOptions?: CustomSubmitOptions<StateType, GetConfigurableType<Bag>> | undefined): Promise<void>;
|
|
16
|
+
switchThread(newThreadId: string | null): void;
|
|
17
|
+
branch: _angular_core0.WritableSignal<string>;
|
|
18
|
+
setBranch(value: string): void;
|
|
19
|
+
getMessagesMetadata(message: Message<GetToolCallsType<StateType>>, index?: number | undefined): MessageMetadata<StateType> | undefined;
|
|
20
|
+
queue: {
|
|
21
|
+
entries: _angular_core0.WritableSignal<never[]>;
|
|
22
|
+
size: _angular_core0.WritableSignal<number>;
|
|
23
|
+
cancel(): Promise<boolean>;
|
|
24
|
+
clear(): Promise<void>;
|
|
25
|
+
};
|
|
26
|
+
interrupts: _angular_core0.Signal<Interrupt<GetInterruptType<Bag>>[]>;
|
|
27
|
+
interrupt: _angular_core0.Signal<Interrupt<GetInterruptType<Bag>> | undefined>;
|
|
28
|
+
messages: _angular_core0.Signal<(BaseMessage$1<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>, _langchain_core_messages0.MessageType> | BaseMessageChunk<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>, _langchain_core_messages0.MessageType>)[]>;
|
|
29
|
+
toolCalls: _angular_core0.Signal<_langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[]>;
|
|
30
|
+
getToolCalls(message: Message<GetToolCallsType<StateType>>): _langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[];
|
|
31
|
+
readonly subagents: Map<string, _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>>;
|
|
32
|
+
readonly activeSubagents: _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
|
|
33
|
+
getSubagent(toolCallId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string> | undefined;
|
|
34
|
+
getSubagentsByType(type: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
|
|
35
|
+
getSubagentsByMessage(messageId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated Use `injectStreamCustom` instead. `useStreamCustom` will be
|
|
39
|
+
* removed in a future major version. `injectStreamCustom` follows Angular's
|
|
40
|
+
* `inject*` naming convention for injection-based patterns.
|
|
41
|
+
*/
|
|
42
|
+
declare const useStreamCustom: typeof injectStreamCustom;
|
|
43
|
+
//#endregion
|
|
44
|
+
export { injectStreamCustom, useStreamCustom };
|
|
45
|
+
//# sourceMappingURL=stream.custom.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.custom.d.cts","names":[],"sources":["../src/stream.custom.ts"],"mappings":";;;;;;;;;iBAcgB,kBAAA,mBACI,MAAA,oBAA0B,MAAA,+BAChC,WAAA,GAAc,WAAA,CAAA,CAC1B,OAAA,EAAS,sBAAA,CAAuB,SAAA,EAAW,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAiIhC,eAAA,SAAe,kBAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BaseMessage as BaseMessage$1, BaseMessageChunk } from "./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.js";
|
|
2
|
+
import * as _angular_core0 from "@angular/core";
|
|
3
|
+
import * as _langchain_langgraph_sdk_ui0 from "@langchain/langgraph-sdk/ui";
|
|
4
|
+
import { AnyStreamCustomOptions, CustomSubmitOptions, GetConfigurableType, GetInterruptType, GetToolCallsType, GetUpdateType, MessageMetadata } from "@langchain/langgraph-sdk/ui";
|
|
5
|
+
import * as _langchain_langgraph_sdk0 from "@langchain/langgraph-sdk";
|
|
6
|
+
import { BagTemplate, Interrupt, Message } from "@langchain/langgraph-sdk";
|
|
7
|
+
import * as _langchain_core_messages0 from "@langchain/core/messages";
|
|
8
|
+
|
|
9
|
+
//#region src/stream.custom.d.ts
|
|
10
|
+
declare function injectStreamCustom<StateType extends Record<string, unknown> = Record<string, unknown>, Bag extends BagTemplate = BagTemplate>(options: AnyStreamCustomOptions<StateType, Bag>): {
|
|
11
|
+
values: _angular_core0.Signal<StateType>;
|
|
12
|
+
error: _angular_core0.Signal<unknown>;
|
|
13
|
+
isLoading: _angular_core0.WritableSignal<boolean>;
|
|
14
|
+
stop: () => void;
|
|
15
|
+
submit(values: GetUpdateType<Bag, StateType> | null | undefined, submitOptions?: CustomSubmitOptions<StateType, GetConfigurableType<Bag>> | undefined): Promise<void>;
|
|
16
|
+
switchThread(newThreadId: string | null): void;
|
|
17
|
+
branch: _angular_core0.WritableSignal<string>;
|
|
18
|
+
setBranch(value: string): void;
|
|
19
|
+
getMessagesMetadata(message: Message<GetToolCallsType<StateType>>, index?: number | undefined): MessageMetadata<StateType> | undefined;
|
|
20
|
+
queue: {
|
|
21
|
+
entries: _angular_core0.WritableSignal<never[]>;
|
|
22
|
+
size: _angular_core0.WritableSignal<number>;
|
|
23
|
+
cancel(): Promise<boolean>;
|
|
24
|
+
clear(): Promise<void>;
|
|
25
|
+
};
|
|
26
|
+
interrupts: _angular_core0.Signal<Interrupt<GetInterruptType<Bag>>[]>;
|
|
27
|
+
interrupt: _angular_core0.Signal<Interrupt<GetInterruptType<Bag>> | undefined>;
|
|
28
|
+
messages: _angular_core0.Signal<(BaseMessage$1<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>, _langchain_core_messages0.MessageType> | BaseMessageChunk<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>, _langchain_core_messages0.MessageType>)[]>;
|
|
29
|
+
toolCalls: _angular_core0.Signal<_langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[]>;
|
|
30
|
+
getToolCalls(message: Message<GetToolCallsType<StateType>>): _langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[];
|
|
31
|
+
readonly subagents: Map<string, _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>>;
|
|
32
|
+
readonly activeSubagents: _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
|
|
33
|
+
getSubagent(toolCallId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string> | undefined;
|
|
34
|
+
getSubagentsByType(type: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
|
|
35
|
+
getSubagentsByMessage(messageId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated Use `injectStreamCustom` instead. `useStreamCustom` will be
|
|
39
|
+
* removed in a future major version. `injectStreamCustom` follows Angular's
|
|
40
|
+
* `inject*` naming convention for injection-based patterns.
|
|
41
|
+
*/
|
|
42
|
+
declare const useStreamCustom: typeof injectStreamCustom;
|
|
43
|
+
//#endregion
|
|
44
|
+
export { injectStreamCustom, useStreamCustom };
|
|
45
|
+
//# sourceMappingURL=stream.custom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.custom.d.ts","names":[],"sources":["../src/stream.custom.ts"],"mappings":";;;;;;;;;iBAcgB,kBAAA,mBACI,MAAA,oBAA0B,MAAA,+BAChC,WAAA,GAAc,WAAA,CAAA,CAC1B,OAAA,EAAS,sBAAA,CAAuB,SAAA,EAAW,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAiIhC,eAAA,SAAe,kBAAA"}
|
package/dist/stream.custom.js
CHANGED
|
@@ -1,132 +1,50 @@
|
|
|
1
1
|
import { computed, effect, signal } from "@angular/core";
|
|
2
|
-
import {
|
|
3
|
-
import { getToolCallsWithResults } from "@langchain/langgraph-sdk/utils";
|
|
2
|
+
import { CustomStreamOrchestrator, ensureMessageInstances } from "@langchain/langgraph-sdk/ui";
|
|
4
3
|
//#region src/stream.custom.ts
|
|
5
|
-
function
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
throttle: options.throttle ?? false,
|
|
9
|
-
subagentToolNames: options.subagentToolNames,
|
|
10
|
-
filterSubagentMessages: options.filterSubagentMessages,
|
|
11
|
-
toMessage: toMessageClass
|
|
12
|
-
});
|
|
13
|
-
const streamValues = signal(stream.values);
|
|
14
|
-
const streamError = signal(stream.error);
|
|
15
|
-
const isLoading = signal(stream.isLoading);
|
|
4
|
+
function injectStreamCustom(options) {
|
|
5
|
+
const orchestrator = new CustomStreamOrchestrator(options);
|
|
6
|
+
const version = signal(0);
|
|
16
7
|
const subagentVersion = signal(0);
|
|
17
8
|
effect((onCleanup) => {
|
|
18
|
-
const unsubscribe =
|
|
19
|
-
|
|
20
|
-
streamError.set(stream.error);
|
|
21
|
-
isLoading.set(stream.isLoading);
|
|
9
|
+
const unsubscribe = orchestrator.subscribe(() => {
|
|
10
|
+
version.update((v) => v + 1);
|
|
22
11
|
subagentVersion.update((v) => v + 1);
|
|
23
12
|
});
|
|
24
13
|
onCleanup(() => unsubscribe());
|
|
25
14
|
});
|
|
26
|
-
let threadId = options.threadId ?? null;
|
|
27
|
-
const branch = signal("");
|
|
28
|
-
const getMessages = (value) => {
|
|
29
|
-
const messagesKey = options.messagesKey ?? "messages";
|
|
30
|
-
return Array.isArray(value[messagesKey]) ? value[messagesKey] : [];
|
|
31
|
-
};
|
|
32
|
-
const setMessages = (current, messages) => {
|
|
33
|
-
const messagesKey = options.messagesKey ?? "messages";
|
|
34
|
-
return {
|
|
35
|
-
...current,
|
|
36
|
-
[messagesKey]: messages
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
const historyValues = options.initialValues ?? {};
|
|
40
|
-
const historyMessages = getMessages(historyValues);
|
|
41
|
-
const shouldReconstructSubagents = options.filterSubagentMessages && !stream.isLoading && historyMessages.length > 0;
|
|
42
15
|
effect(() => {
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
16
|
+
version();
|
|
17
|
+
const loading = orchestrator.isLoading;
|
|
18
|
+
const hvMessages = orchestrator.messages;
|
|
19
|
+
if (options.filterSubagentMessages && !loading && hvMessages.length > 0) orchestrator.reconstructSubagentsIfNeeded();
|
|
46
20
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function stop() {
|
|
55
|
-
return stream.stop(historyValues, { onStop: options.onStop });
|
|
56
|
-
}
|
|
57
|
-
async function submitDirect(values, submitOptions) {
|
|
58
|
-
const currentThreadId = options.threadId ?? null;
|
|
59
|
-
if (currentThreadId !== threadId) {
|
|
60
|
-
threadId = currentThreadId;
|
|
61
|
-
stream.clear();
|
|
62
|
-
}
|
|
63
|
-
let usableThreadId = threadId ?? submitOptions?.threadId;
|
|
64
|
-
stream.setStreamValues(() => {
|
|
65
|
-
if (submitOptions?.optimisticValues != null) return {
|
|
66
|
-
...historyValues,
|
|
67
|
-
...typeof submitOptions.optimisticValues === "function" ? submitOptions.optimisticValues(historyValues) : submitOptions.optimisticValues
|
|
68
|
-
};
|
|
69
|
-
return { ...historyValues };
|
|
70
|
-
});
|
|
71
|
-
await stream.start(async (signal) => {
|
|
72
|
-
if (!usableThreadId) {
|
|
73
|
-
usableThreadId = crypto.randomUUID();
|
|
74
|
-
threadId = usableThreadId;
|
|
75
|
-
options.onThreadId?.(usableThreadId);
|
|
76
|
-
}
|
|
77
|
-
if (!usableThreadId) throw new Error("Failed to obtain valid thread ID.");
|
|
78
|
-
return options.transport.stream({
|
|
79
|
-
input: values,
|
|
80
|
-
context: submitOptions?.context,
|
|
81
|
-
command: submitOptions?.command,
|
|
82
|
-
signal,
|
|
83
|
-
config: {
|
|
84
|
-
...submitOptions?.config,
|
|
85
|
-
configurable: {
|
|
86
|
-
thread_id: usableThreadId,
|
|
87
|
-
...submitOptions?.config?.configurable
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}, {
|
|
92
|
-
getMessages,
|
|
93
|
-
setMessages,
|
|
94
|
-
initialValues: {},
|
|
95
|
-
callbacks: options,
|
|
96
|
-
onSuccess: () => void 0,
|
|
97
|
-
onError(error) {
|
|
98
|
-
options.onError?.(error, void 0);
|
|
99
|
-
submitOptions?.onError?.(error, void 0);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
async function submit(values, submitOptions) {
|
|
104
|
-
await submitDirect(values, submitOptions);
|
|
105
|
-
}
|
|
106
|
-
const values = computed(() => streamValues() ?? {});
|
|
107
|
-
function setBranch(value) {
|
|
108
|
-
branch.set(value);
|
|
109
|
-
}
|
|
110
|
-
function getMessagesMetadata(message, index) {
|
|
111
|
-
const streamMetadata = messageManager.get(message.id)?.metadata;
|
|
112
|
-
if (streamMetadata != null) return {
|
|
113
|
-
messageId: message.id ?? String(index),
|
|
114
|
-
firstSeenState: void 0,
|
|
115
|
-
branch: void 0,
|
|
116
|
-
branchOptions: void 0,
|
|
117
|
-
streamMetadata
|
|
118
|
-
};
|
|
119
|
-
}
|
|
21
|
+
const values = computed(() => {
|
|
22
|
+
version();
|
|
23
|
+
return orchestrator.values;
|
|
24
|
+
});
|
|
25
|
+
const branch = signal("");
|
|
120
26
|
return {
|
|
121
27
|
values,
|
|
122
|
-
error:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
28
|
+
error: computed(() => {
|
|
29
|
+
version();
|
|
30
|
+
return orchestrator.error;
|
|
31
|
+
}),
|
|
32
|
+
isLoading: signal(false),
|
|
33
|
+
stop: () => orchestrator.stop(),
|
|
34
|
+
async submit(values, submitOptions) {
|
|
35
|
+
await orchestrator.submit(values, submitOptions);
|
|
36
|
+
},
|
|
37
|
+
switchThread(newThreadId) {
|
|
38
|
+
orchestrator.switchThread(newThreadId);
|
|
39
|
+
},
|
|
127
40
|
branch,
|
|
128
|
-
setBranch
|
|
129
|
-
|
|
41
|
+
setBranch(value) {
|
|
42
|
+
branch.set(value);
|
|
43
|
+
orchestrator.setBranch(value);
|
|
44
|
+
},
|
|
45
|
+
getMessagesMetadata(message, index) {
|
|
46
|
+
return orchestrator.getMessagesMetadata(message, index);
|
|
47
|
+
},
|
|
130
48
|
queue: {
|
|
131
49
|
entries: signal([]),
|
|
132
50
|
size: signal(0),
|
|
@@ -136,52 +54,50 @@ function useStreamCustom(options) {
|
|
|
136
54
|
async clear() {}
|
|
137
55
|
},
|
|
138
56
|
interrupts: computed(() => {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
const valueInterrupts = vals.__interrupt__;
|
|
142
|
-
if (valueInterrupts.length === 0) return [{ when: "breakpoint" }];
|
|
143
|
-
return valueInterrupts;
|
|
144
|
-
}
|
|
145
|
-
return [];
|
|
57
|
+
version();
|
|
58
|
+
return orchestrator.interrupts;
|
|
146
59
|
}),
|
|
147
60
|
interrupt: computed(() => {
|
|
148
|
-
|
|
61
|
+
version();
|
|
62
|
+
return orchestrator.interrupt;
|
|
149
63
|
}),
|
|
150
64
|
messages: computed(() => {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
return ensureMessageInstances(getMessages(vals));
|
|
65
|
+
version();
|
|
66
|
+
return ensureMessageInstances(orchestrator.messages);
|
|
154
67
|
}),
|
|
155
68
|
toolCalls: computed(() => {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return getToolCallsWithResults(getMessages(vals));
|
|
69
|
+
version();
|
|
70
|
+
return orchestrator.toolCalls;
|
|
159
71
|
}),
|
|
160
72
|
getToolCalls(message) {
|
|
161
|
-
|
|
162
|
-
if (!vals) return [];
|
|
163
|
-
return getToolCallsWithResults(getMessages(vals)).filter((tc) => tc.aiMessage.id === message.id);
|
|
73
|
+
return orchestrator.getToolCalls(message);
|
|
164
74
|
},
|
|
165
75
|
get subagents() {
|
|
166
76
|
subagentVersion();
|
|
167
|
-
return
|
|
77
|
+
return orchestrator.subagents;
|
|
168
78
|
},
|
|
169
79
|
get activeSubagents() {
|
|
170
80
|
subagentVersion();
|
|
171
|
-
return
|
|
81
|
+
return orchestrator.activeSubagents;
|
|
172
82
|
},
|
|
173
83
|
getSubagent(toolCallId) {
|
|
174
|
-
return
|
|
84
|
+
return orchestrator.getSubagent(toolCallId);
|
|
175
85
|
},
|
|
176
86
|
getSubagentsByType(type) {
|
|
177
|
-
return
|
|
87
|
+
return orchestrator.getSubagentsByType(type);
|
|
178
88
|
},
|
|
179
89
|
getSubagentsByMessage(messageId) {
|
|
180
|
-
return
|
|
90
|
+
return orchestrator.getSubagentsByMessage(messageId);
|
|
181
91
|
}
|
|
182
92
|
};
|
|
183
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* @deprecated Use `injectStreamCustom` instead. `useStreamCustom` will be
|
|
96
|
+
* removed in a future major version. `injectStreamCustom` follows Angular's
|
|
97
|
+
* `inject*` naming convention for injection-based patterns.
|
|
98
|
+
*/
|
|
99
|
+
const useStreamCustom = injectStreamCustom;
|
|
184
100
|
//#endregion
|
|
185
|
-
export { useStreamCustom };
|
|
101
|
+
export { injectStreamCustom, useStreamCustom };
|
|
186
102
|
|
|
187
103
|
//# sourceMappingURL=stream.custom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.custom.js","names":[],"sources":["../src/stream.custom.ts"],"sourcesContent":["import { signal, computed, effect } from \"@angular/core\";\nimport {\n StreamManager,\n MessageTupleManager,\n extractInterrupts,\n toMessageClass,\n ensureMessageInstances,\n type EventStreamEvent,\n type GetUpdateType,\n type GetCustomEventType,\n type GetInterruptType,\n type GetConfigurableType,\n type GetToolCallsType,\n type AnyStreamCustomOptions,\n type CustomSubmitOptions,\n type MessageMetadata,\n} from \"@langchain/langgraph-sdk/ui\";\nimport { getToolCallsWithResults } from \"@langchain/langgraph-sdk/utils\";\nimport type { BagTemplate, Message, Interrupt } from \"@langchain/langgraph-sdk\";\n\nexport function useStreamCustom<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(options: AnyStreamCustomOptions<StateType, Bag>) {\n type UpdateType = GetUpdateType<Bag, StateType>;\n type CustomType = GetCustomEventType<Bag>;\n type InterruptType = GetInterruptType<Bag>;\n type ConfigurableType = GetConfigurableType<Bag>;\n type ToolCallType = GetToolCallsType<StateType>;\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 streamValues = signal<StateType | null>(stream.values);\n const streamError = signal<unknown>(stream.error);\n const isLoading = signal(stream.isLoading);\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 let threadId: string | null = options.threadId ?? null;\n\n const branch = signal<string>(\"\");\n\n const getMessages = (value: StateType): Message[] => {\n const messagesKey = options.messagesKey ?? \"messages\";\n return Array.isArray(value[messagesKey])\n ? (value[messagesKey] as Message[])\n : [];\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 historyValues = options.initialValues ?? ({} as StateType);\n\n const historyMessages = getMessages(historyValues);\n const shouldReconstructSubagents =\n options.filterSubagentMessages &&\n !stream.isLoading &&\n historyMessages.length > 0;\n\n effect(() => {\n const loading = isLoading();\n const hvMessages = getMessages(historyValues);\n const should =\n options.filterSubagentMessages && !loading && hvMessages.length > 0;\n if (should) {\n stream.reconstructSubagents(hvMessages, { skipIfPopulated: true });\n }\n });\n\n if (shouldReconstructSubagents) {\n stream.reconstructSubagents(historyMessages, { skipIfPopulated: true });\n }\n\n function switchThread(newThreadId: string | null) {\n if (newThreadId !== threadId) {\n threadId = newThreadId;\n stream.clear();\n }\n }\n\n function stop() {\n return stream.stop(historyValues, { onStop: options.onStop });\n }\n\n async function submitDirect(\n values: UpdateType | null | undefined,\n submitOptions?: CustomSubmitOptions<StateType, ConfigurableType>,\n ) {\n const currentThreadId = options.threadId ?? null;\n if (currentThreadId !== threadId) {\n threadId = currentThreadId;\n stream.clear();\n }\n\n let usableThreadId = threadId ?? submitOptions?.threadId;\n\n stream.setStreamValues(() => {\n if (submitOptions?.optimisticValues != null) {\n return {\n ...historyValues,\n ...(typeof submitOptions.optimisticValues === \"function\"\n ? submitOptions.optimisticValues(historyValues)\n : submitOptions.optimisticValues),\n };\n }\n\n return { ...historyValues };\n });\n\n await stream.start(\n async (signal: AbortSignal) => {\n if (!usableThreadId) {\n usableThreadId = crypto.randomUUID();\n threadId = usableThreadId;\n options.onThreadId?.(usableThreadId);\n }\n\n if (!usableThreadId) {\n throw new Error(\"Failed to obtain valid thread ID.\");\n }\n\n return options.transport.stream({\n input: values,\n context: submitOptions?.context,\n command: submitOptions?.command,\n signal,\n config: {\n ...submitOptions?.config,\n configurable: {\n thread_id: usableThreadId,\n ...submitOptions?.config?.configurable,\n } as unknown as GetConfigurableType<Bag>,\n },\n }) as Promise<\n AsyncGenerator<EventStreamEvent<StateType, UpdateType, CustomType>>\n >;\n },\n {\n getMessages,\n setMessages,\n\n initialValues: {} as StateType,\n callbacks: options,\n\n onSuccess: () => undefined,\n onError(error) {\n options.onError?.(error, undefined);\n submitOptions?.onError?.(error, undefined);\n },\n },\n );\n }\n\n async function submit(\n values: UpdateType | null | undefined,\n submitOptions?: CustomSubmitOptions<StateType, ConfigurableType>,\n ) {\n await submitDirect(values, submitOptions);\n }\n\n const values = computed(() => streamValues() ?? ({} as StateType));\n\n function setBranch(value: string) {\n branch.set(value);\n }\n\n function getMessagesMetadata(\n message: Message<ToolCallType>,\n index?: number,\n ): MessageMetadata<StateType> | undefined {\n const streamMetadata = messageManager.get(message.id)?.metadata;\n if (streamMetadata != null) {\n return {\n messageId: message.id ?? String(index),\n firstSeenState: undefined,\n branch: undefined,\n branchOptions: undefined,\n streamMetadata,\n } as MessageMetadata<StateType>;\n }\n return undefined;\n }\n\n return {\n values,\n error: streamError,\n isLoading,\n\n stop,\n submit,\n switchThread,\n\n branch,\n setBranch,\n getMessagesMetadata,\n\n queue: {\n entries: signal([]),\n size: signal(0),\n async cancel() {\n return false;\n },\n async clear() {},\n },\n\n interrupts: computed((): Interrupt<InterruptType>[] => {\n const vals = streamValues();\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 return [];\n }),\n\n interrupt: computed((): Interrupt<InterruptType> | undefined => {\n return extractInterrupts<InterruptType>(streamValues());\n }),\n\n messages: computed(() => {\n const vals = streamValues();\n if (!vals) return [];\n return ensureMessageInstances(getMessages(vals));\n }),\n\n toolCalls: computed(() => {\n const vals = streamValues();\n if (!vals) return [];\n const msgs = getMessages(vals);\n return getToolCallsWithResults<ToolCallType>(msgs);\n }),\n\n getToolCalls(message: Message<ToolCallType>) {\n const vals = streamValues();\n if (!vals) return [];\n const msgs = getMessages(vals);\n const allToolCalls = getToolCallsWithResults<ToolCallType>(msgs);\n return allToolCalls.filter((tc) => tc.aiMessage.id === message.id);\n },\n\n get subagents() {\n void subagentVersion();\n return stream.getSubagents();\n },\n\n get activeSubagents() {\n void subagentVersion();\n return stream.getActiveSubagents();\n },\n\n getSubagent(toolCallId: string) {\n return stream.getSubagent(toolCallId);\n },\n\n getSubagentsByType(type: string) {\n return stream.getSubagentsByType(type);\n },\n\n getSubagentsByMessage(messageId: string) {\n return stream.getSubagentsByMessage(messageId);\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stream.custom.js","names":[],"sources":["../src/stream.custom.ts"],"sourcesContent":["import { signal, computed, effect } from \"@angular/core\";\nimport {\n CustomStreamOrchestrator,\n ensureMessageInstances,\n type AnyStreamCustomOptions,\n type CustomSubmitOptions,\n type GetUpdateType,\n type GetInterruptType,\n type GetConfigurableType,\n type GetToolCallsType,\n type MessageMetadata,\n} from \"@langchain/langgraph-sdk/ui\";\nimport type { BagTemplate, Message, Interrupt } from \"@langchain/langgraph-sdk\";\n\nexport function injectStreamCustom<\n StateType extends Record<string, unknown> = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(options: AnyStreamCustomOptions<StateType, Bag>) {\n type UpdateType = GetUpdateType<Bag, StateType>;\n type InterruptType = GetInterruptType<Bag>;\n type ConfigurableType = GetConfigurableType<Bag>;\n type ToolCallType = GetToolCallsType<StateType>;\n\n const orchestrator = new CustomStreamOrchestrator<StateType, Bag>(options);\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 effect(() => {\n void version();\n const loading = orchestrator.isLoading;\n const hvMessages = orchestrator.messages;\n if (options.filterSubagentMessages && !loading && hvMessages.length > 0) {\n orchestrator.reconstructSubagentsIfNeeded();\n }\n });\n\n const values = computed(() => {\n void version();\n return orchestrator.values;\n });\n\n const branch = signal<string>(\"\");\n\n return {\n values,\n error: computed(() => {\n void version();\n return orchestrator.error;\n }),\n isLoading: signal(false),\n\n stop: () => orchestrator.stop(),\n\n async submit(\n values: UpdateType | null | undefined,\n submitOptions?: CustomSubmitOptions<StateType, ConfigurableType>,\n ) {\n await orchestrator.submit(values, submitOptions);\n },\n\n switchThread(newThreadId: string | null) {\n orchestrator.switchThread(newThreadId);\n },\n\n branch,\n setBranch(value: string) {\n branch.set(value);\n orchestrator.setBranch(value);\n },\n\n getMessagesMetadata(\n message: Message<ToolCallType>,\n index?: number,\n ): MessageMetadata<StateType> | undefined {\n return orchestrator.getMessagesMetadata(message, index);\n },\n\n queue: {\n entries: signal([]),\n size: signal(0),\n async cancel() {\n return false;\n },\n async clear() {},\n },\n\n interrupts: computed((): Interrupt<InterruptType>[] => {\n void version();\n return orchestrator.interrupts as Interrupt<InterruptType>[];\n }),\n\n interrupt: computed((): Interrupt<InterruptType> | undefined => {\n void version();\n return orchestrator.interrupt as Interrupt<InterruptType> | undefined;\n }),\n\n messages: computed(() => {\n void version();\n return ensureMessageInstances(orchestrator.messages);\n }),\n\n toolCalls: computed(() => {\n void version();\n return orchestrator.toolCalls;\n }),\n\n getToolCalls(message: Message<ToolCallType>) {\n return orchestrator.getToolCalls(message);\n },\n\n get subagents() {\n void subagentVersion();\n return orchestrator.subagents;\n },\n\n get activeSubagents() {\n void subagentVersion();\n return orchestrator.activeSubagents;\n },\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 * @deprecated Use `injectStreamCustom` instead. `useStreamCustom` will be\n * removed in a future major version. `injectStreamCustom` follows Angular's\n * `inject*` naming convention for injection-based patterns.\n */\nexport const useStreamCustom = injectStreamCustom;\n"],"mappings":";;;AAcA,SAAgB,mBAGd,SAAiD;CAMjD,MAAM,eAAe,IAAI,yBAAyC,QAAQ;CAE1E,MAAM,UAAU,OAAO,EAAE;CACzB,MAAM,kBAAkB,OAAO,EAAE;AAEjC,SAAQ,cAAc;EACpB,MAAM,cAAc,aAAa,gBAAgB;AAC/C,WAAQ,QAAQ,MAAM,IAAI,EAAE;AAC5B,mBAAgB,QAAQ,MAAM,IAAI,EAAE;IACpC;AACF,kBAAgB,aAAa,CAAC;GAC9B;AAEF,cAAa;AACN,WAAS;EACd,MAAM,UAAU,aAAa;EAC7B,MAAM,aAAa,aAAa;AAChC,MAAI,QAAQ,0BAA0B,CAAC,WAAW,WAAW,SAAS,EACpE,cAAa,8BAA8B;GAE7C;CAEF,MAAM,SAAS,eAAe;AACvB,WAAS;AACd,SAAO,aAAa;GACpB;CAEF,MAAM,SAAS,OAAe,GAAG;AAEjC,QAAO;EACL;EACA,OAAO,eAAe;AACf,YAAS;AACd,UAAO,aAAa;IACpB;EACF,WAAW,OAAO,MAAM;EAExB,YAAY,aAAa,MAAM;EAE/B,MAAM,OACJ,QACA,eACA;AACA,SAAM,aAAa,OAAO,QAAQ,cAAc;;EAGlD,aAAa,aAA4B;AACvC,gBAAa,aAAa,YAAY;;EAGxC;EACA,UAAU,OAAe;AACvB,UAAO,IAAI,MAAM;AACjB,gBAAa,UAAU,MAAM;;EAG/B,oBACE,SACA,OACwC;AACxC,UAAO,aAAa,oBAAoB,SAAS,MAAM;;EAGzD,OAAO;GACL,SAAS,OAAO,EAAE,CAAC;GACnB,MAAM,OAAO,EAAE;GACf,MAAM,SAAS;AACb,WAAO;;GAET,MAAM,QAAQ;GACf;EAED,YAAY,eAA2C;AAChD,YAAS;AACd,UAAO,aAAa;IACpB;EAEF,WAAW,eAAqD;AACzD,YAAS;AACd,UAAO,aAAa;IACpB;EAEF,UAAU,eAAe;AAClB,YAAS;AACd,UAAO,uBAAuB,aAAa,SAAS;IACpD;EAEF,WAAW,eAAe;AACnB,YAAS;AACd,UAAO,aAAa;IACpB;EAEF,aAAa,SAAgC;AAC3C,UAAO,aAAa,aAAa,QAAQ;;EAG3C,IAAI,YAAY;AACT,oBAAiB;AACtB,UAAO,aAAa;;EAGtB,IAAI,kBAAkB;AACf,oBAAiB;AACtB,UAAO,aAAa;;EAGtB,YAAY,YAAoB;AAC9B,UAAO,aAAa,YAAY,WAAW;;EAE7C,mBAAmB,MAAc;AAC/B,UAAO,aAAa,mBAAmB,KAAK;;EAE9C,sBAAsB,WAAmB;AACvC,UAAO,aAAa,sBAAsB,UAAU;;EAEvD;;;;;;;AAQH,MAAa,kBAAkB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DefaultToolCall } from "@langchain/langgraph-sdk";
|
|
2
|
+
import { BaseMessage } from "@langchain/core/messages";
|
|
3
|
+
import { SubagentStreamInterface } from "@langchain/langgraph-sdk/ui";
|
|
4
|
+
|
|
5
|
+
//#region src/subagent-types.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Subagent stream view with {@link BaseMessage} arrays (Angular SDK uses class
|
|
8
|
+
* messages end-to-end).
|
|
9
|
+
*/
|
|
10
|
+
type ClassSubagentStreamInterface<StateType = Record<string, unknown>, ToolCall = DefaultToolCall, SubagentName extends string = string> = Omit<SubagentStreamInterface<StateType, ToolCall, SubagentName>, "messages"> & {
|
|
11
|
+
messages: BaseMessage[];
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
export { ClassSubagentStreamInterface };
|
|
15
|
+
//# sourceMappingURL=subagent-types.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-types.d.cts","names":[],"sources":["../src/subagent-types.ts"],"mappings":";;;;;;;AAQA;;KAAY,4BAAA,aACE,MAAA,8BACD,eAAA,0CAET,IAAA,CACF,uBAAA,CAAwB,SAAA,EAAW,QAAA,EAAU,YAAA;EAG7C,QAAA,EAAU,WAAA;AAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SubagentStreamInterface } from "@langchain/langgraph-sdk/ui";
|
|
2
|
+
import { DefaultToolCall } from "@langchain/langgraph-sdk";
|
|
3
|
+
import { BaseMessage } from "@langchain/core/messages";
|
|
4
|
+
|
|
5
|
+
//#region src/subagent-types.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Subagent stream view with {@link BaseMessage} arrays (Angular SDK uses class
|
|
8
|
+
* messages end-to-end).
|
|
9
|
+
*/
|
|
10
|
+
type ClassSubagentStreamInterface<StateType = Record<string, unknown>, ToolCall = DefaultToolCall, SubagentName extends string = string> = Omit<SubagentStreamInterface<StateType, ToolCall, SubagentName>, "messages"> & {
|
|
11
|
+
messages: BaseMessage[];
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
export { ClassSubagentStreamInterface };
|
|
15
|
+
//# sourceMappingURL=subagent-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-types.d.ts","names":[],"sources":["../src/subagent-types.ts"],"mappings":";;;;;;;AAQA;;KAAY,4BAAA,aACE,MAAA,8BACD,eAAA,0CAET,IAAA,CACF,uBAAA,CAAwB,SAAA,EAAW,QAAA,EAAU,YAAA;EAG7C,QAAA,EAAU,WAAA;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@langchain/angular",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Angular integration for LangGraph & LangChain",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,26 +10,24 @@
|
|
|
10
10
|
"directory": "libs/sdk-angular"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@langchain/langgraph-sdk": "^1.
|
|
13
|
+
"@langchain/langgraph-sdk": "^1.8.0"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@analogjs/vite-plugin-angular": "^2.3.1",
|
|
17
17
|
"@analogjs/vitest-angular": "^2.3.1",
|
|
18
|
-
"@angular/compiler": "^21.2.
|
|
19
|
-
"@angular/core": "^21.2.
|
|
18
|
+
"@angular/compiler": "^21.2.5",
|
|
19
|
+
"@angular/core": "^21.2.5",
|
|
20
20
|
"@angular/platform-browser": "^21.2.2",
|
|
21
21
|
"@angular/platform-browser-dynamic": "^21.2.2",
|
|
22
22
|
"@angular/router": "^21.2.2",
|
|
23
23
|
"@hono/node-server": "^1.19.11",
|
|
24
24
|
"@langchain/core": "^1.1.31",
|
|
25
|
-
"@langchain/scripts": "^0.1.4",
|
|
26
|
-
"@tsconfig/recommended": "^1.0.13",
|
|
27
25
|
"@types/node": "^25.4.0",
|
|
28
26
|
"@typescript-eslint/eslint-plugin": "^6.12.0",
|
|
29
27
|
"@typescript-eslint/parser": "^6.12.0",
|
|
30
28
|
"@vitest/browser": "^4.0.18",
|
|
31
29
|
"@vitest/browser-webdriverio": "^4.0.18",
|
|
32
|
-
"deepagents": "^1.8.
|
|
30
|
+
"deepagents": "^1.8.3",
|
|
33
31
|
"eslint": "^8.33.0",
|
|
34
32
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
35
33
|
"eslint-config-prettier": "^8.6.0",
|
|
@@ -47,12 +45,12 @@
|
|
|
47
45
|
"vitest-browser-angular": "^0.3.0",
|
|
48
46
|
"webdriverio": "^9.25.0",
|
|
49
47
|
"zod": "^4.3.6",
|
|
50
|
-
"@langchain/langgraph": "^1.2.
|
|
51
|
-
"@langchain/langgraph-api": "^1.1.
|
|
52
|
-
"@langchain/langgraph-checkpoint": "^1.0.
|
|
48
|
+
"@langchain/langgraph": "^1.2.5",
|
|
49
|
+
"@langchain/langgraph-api": "^1.1.16",
|
|
50
|
+
"@langchain/langgraph-checkpoint": "^1.0.1"
|
|
53
51
|
},
|
|
54
52
|
"peerDependencies": {
|
|
55
|
-
"@angular/core": "^18.0.0 || ^19.0.0 || ^20.0.0",
|
|
53
|
+
"@angular/core": "^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0",
|
|
56
54
|
"@langchain/core": "^1.1.27"
|
|
57
55
|
},
|
|
58
56
|
"main": "./dist/index.js",
|