@langchain/angular 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +17 -15
  2. package/dist/context.cjs +6 -52
  3. package/dist/context.cjs.map +1 -1
  4. package/dist/context.d.cts +55 -71
  5. package/dist/context.d.cts.map +1 -1
  6. package/dist/context.d.ts +51 -67
  7. package/dist/context.d.ts.map +1 -1
  8. package/dist/context.js +7 -52
  9. package/dist/context.js.map +1 -1
  10. package/dist/index.cjs +26 -462
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +255 -104
  13. package/dist/index.d.cts.map +1 -1
  14. package/dist/index.d.ts +254 -103
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +25 -463
  17. package/dist/index.js.map +1 -1
  18. 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 -2
  19. 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 -2
  20. package/dist/stream-service-instance.d.cts +70 -0
  21. package/dist/stream-service-instance.d.cts.map +1 -0
  22. package/dist/stream-service-instance.d.ts +70 -0
  23. package/dist/stream-service-instance.d.ts.map +1 -0
  24. package/dist/stream.custom.cjs +59 -161
  25. package/dist/stream.custom.cjs.map +1 -1
  26. package/dist/stream.custom.d.cts +45 -0
  27. package/dist/stream.custom.d.cts.map +1 -0
  28. package/dist/stream.custom.d.ts +45 -0
  29. package/dist/stream.custom.d.ts.map +1 -0
  30. package/dist/stream.custom.js +60 -163
  31. package/dist/stream.custom.js.map +1 -1
  32. package/dist/stream.lgp.cjs +163 -0
  33. package/dist/stream.lgp.cjs.map +1 -0
  34. package/dist/stream.lgp.d.cts +57 -0
  35. package/dist/stream.lgp.d.cts.map +1 -0
  36. package/dist/stream.lgp.d.ts +57 -0
  37. package/dist/stream.lgp.d.ts.map +1 -0
  38. package/dist/stream.lgp.js +163 -0
  39. package/dist/stream.lgp.js.map +1 -0
  40. package/package.json +3 -3
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # @langchain/angular
2
2
 
3
- Angular SDK for building AI-powered applications with [Deep Agents](https://docs.langchain.com/oss/javascript/deepagents/overview), [LangChain](https://docs.langchain.com/oss/javascript/langchain/overview) and [LangGraph](https://docs.langchain.com/oss/javascript/langgraph/overview). It provides a `useStream` function that manages streaming, state, branching, and interrupts using Angular's Signals API.
3
+ Angular SDK for building AI-powered applications with [Deep Agents](https://docs.langchain.com/oss/javascript/deepagents/overview), [LangChain](https://docs.langchain.com/oss/javascript/langchain/overview) and [LangGraph](https://docs.langchain.com/oss/javascript/langgraph/overview). It provides an `injectStream` function that manages streaming, state, branching, and interrupts using Angular's Signals API.
4
+
5
+ > **Migration note:** `useStream` has been renamed to `injectStream` to follow Angular's `inject*` naming convention. `useStream` is still available as a deprecated alias for backwards compatibility.
4
6
 
5
7
  ## Installation
6
8
 
@@ -14,7 +16,7 @@ npm install @langchain/angular @langchain/core
14
16
 
15
17
  ```typescript
16
18
  import { Component } from "@angular/core";
17
- import { useStream } from "@langchain/angular";
19
+ import { injectStream } from "@langchain/angular";
18
20
 
19
21
  @Component({
20
22
  standalone: true,
@@ -34,7 +36,7 @@ import { useStream } from "@langchain/angular";
34
36
  `,
35
37
  })
36
38
  export class ChatComponent {
37
- stream = useStream({
39
+ stream = injectStream({
38
40
  assistantId: "agent",
39
41
  apiUrl: "http://localhost:2024",
40
42
  });
@@ -51,7 +53,7 @@ export class ChatComponent {
51
53
  }
52
54
  ```
53
55
 
54
- ## `useStream` Options
56
+ ## `injectStream` Options
55
57
 
56
58
  | Option | Type | Description |
57
59
  |---|---|---|
@@ -105,7 +107,7 @@ interface MyState {
105
107
 
106
108
  @Component({ /* ... */ })
107
109
  export class ChatComponent {
108
- stream = useStream<MyState>({
110
+ stream = injectStream<MyState>({
109
111
  assistantId: "my-graph",
110
112
  apiUrl: "http://localhost:2024",
111
113
  });
@@ -119,7 +121,7 @@ import type { BaseMessage } from "langchain";
119
121
 
120
122
  @Component({ /* ... */ })
121
123
  export class ChatComponent {
122
- stream = useStream<
124
+ stream = injectStream<
123
125
  { messages: BaseMessage[] },
124
126
  { InterruptType: { question: string } }
125
127
  >({
@@ -136,7 +138,7 @@ export class ChatComponent {
136
138
  ```typescript
137
139
  import { Component } from "@angular/core";
138
140
  import type { BaseMessage } from "langchain";
139
- import { useStream } from "@langchain/angular";
141
+ import { injectStream } from "@langchain/angular";
140
142
 
141
143
  @Component({
142
144
  standalone: true,
@@ -158,7 +160,7 @@ import { useStream } from "@langchain/angular";
158
160
  `,
159
161
  })
160
162
  export class ChatComponent {
161
- stream = useStream<
163
+ stream = injectStream<
162
164
  { messages: BaseMessage[] },
163
165
  { InterruptType: { question: string } }
164
166
  >({
@@ -188,7 +190,7 @@ Enable conversation branching with `fetchStateHistory: true`:
188
190
 
189
191
  ```typescript
190
192
  import { Component } from "@angular/core";
191
- import { useStream } from "@langchain/angular";
193
+ import { injectStream } from "@langchain/angular";
192
194
 
193
195
  @Component({
194
196
  standalone: true,
@@ -211,7 +213,7 @@ import { useStream } from "@langchain/angular";
211
213
  `,
212
214
  })
213
215
  export class ChatComponent {
214
- stream = useStream({
216
+ stream = injectStream({
215
217
  assistantId: "agent",
216
218
  apiUrl: "http://localhost:2024",
217
219
  fetchStateHistory: true,
@@ -257,7 +259,7 @@ When `submit()` is called while a stream is already active, the SDK automaticall
257
259
 
258
260
  ```typescript
259
261
  import { Component } from "@angular/core";
260
- import { useStream } from "@langchain/angular";
262
+ import { injectStream } from "@langchain/angular";
261
263
 
262
264
  @Component({
263
265
  standalone: true,
@@ -285,7 +287,7 @@ import { useStream } from "@langchain/angular";
285
287
  `,
286
288
  })
287
289
  export class ChatComponent {
288
- stream = useStream({
290
+ stream = injectStream({
289
291
  assistantId: "agent",
290
292
  apiUrl: "http://localhost:2024",
291
293
  });
@@ -454,7 +456,7 @@ Instead of connecting to a LangGraph API, you can provide your own streaming tra
454
456
 
455
457
  ```typescript
456
458
  import { Component } from "@angular/core";
457
- import { useStream, FetchStreamTransport } from "@langchain/angular";
459
+ import { injectStream, FetchStreamTransport } from "@langchain/angular";
458
460
  import type { BaseMessage } from "langchain";
459
461
 
460
462
  @Component({
@@ -482,7 +484,7 @@ import type { BaseMessage } from "langchain";
482
484
  `,
483
485
  })
484
486
  export class ChatComponent {
485
- stream = useStream<{ messages: BaseMessage[] }>({
487
+ stream = injectStream<{ messages: BaseMessage[] }>({
486
488
  transport: new FetchStreamTransport({
487
489
  url: "https://my-api.example.com/stream",
488
490
  }),
@@ -507,7 +509,7 @@ export class ChatComponent {
507
509
  }
508
510
  ```
509
511
 
510
- The custom transport interface returns the same properties as the standard `useStream` function, including `getMessagesMetadata`, `branch`, `setBranch`, `switchThread`, and all message/interrupt/subagent helpers. When using a custom transport, `getMessagesMetadata` returns stream metadata sent alongside messages during streaming; `branch` and `setBranch` provide local branch state management. `onFinish` is also supported and receives a synthetic `ThreadState` built from the final locally streamed values; the run metadata argument is `undefined`.
512
+ The custom transport interface returns the same properties as the standard `injectStream` function, including `getMessagesMetadata`, `branch`, `setBranch`, `switchThread`, and all message/interrupt/subagent helpers. When using a custom transport, `getMessagesMetadata` returns stream metadata sent alongside messages during streaming; `branch` and `setBranch` provide local branch state management. `onFinish` is also supported and receives a synthetic `ThreadState` built from the final locally streamed values; the run metadata argument is `undefined`.
511
513
 
512
514
  ## Sharing State with `provideStream`
513
515
 
package/dist/context.cjs CHANGED
@@ -1,4 +1,5 @@
1
- const require_index = require("./index.cjs");
1
+ const require_stream_custom = require("./stream.custom.cjs");
2
+ const require_stream_lgp = require("./stream.lgp.cjs");
2
3
  let _angular_core = require("@angular/core");
3
4
  //#region src/context.ts
4
5
  /**
@@ -76,67 +77,20 @@ function provideStream(options) {
76
77
  provide: STREAM_INSTANCE,
77
78
  useFactory: () => {
78
79
  const defaults = (0, _angular_core.inject)(STREAM_DEFAULTS, { optional: true });
79
- return require_index.useStream({
80
+ const merged = {
80
81
  ...defaults ?? {},
81
82
  ...options,
82
83
  apiUrl: options.apiUrl ?? defaults?.apiUrl,
83
84
  client: options.client ?? defaults?.client
84
- });
85
+ };
86
+ if ("transport" in merged) return require_stream_custom.injectStreamCustom(merged);
87
+ return require_stream_lgp.useStreamLGP(merged);
85
88
  }
86
89
  };
87
90
  }
88
- /**
89
- * Injects the shared stream instance from the nearest ancestor that
90
- * provided one via `provideStream()`.
91
- *
92
- * Throws if no ancestor provides a stream instance.
93
- *
94
- * @example
95
- * ```typescript
96
- * import { Component } from "@angular/core";
97
- * import { injectStream } from "@langchain/angular";
98
- *
99
- * @Component({
100
- * template: `
101
- * @for (msg of stream.messages(); track msg.id) {
102
- * <div>{{ msg.content }}</div>
103
- * }
104
- * <button
105
- * [disabled]="stream.isLoading()"
106
- * (click)="onSubmit()"
107
- * >Send</button>
108
- * `,
109
- * })
110
- * export class ChatComponent {
111
- * stream = injectStream();
112
- *
113
- * onSubmit() {
114
- * void this.stream.submit({
115
- * messages: [{ type: "human", content: "Hello!" }],
116
- * });
117
- * }
118
- * }
119
- * ```
120
- *
121
- * @example With type parameters for full type safety:
122
- * ```typescript
123
- * import type { agent } from "./agent";
124
- *
125
- * export class ChatComponent {
126
- * stream = injectStream<typeof agent>();
127
- * // stream.messages() returns typed messages
128
- * }
129
- * ```
130
- */
131
- function injectStream() {
132
- const instance = (0, _angular_core.inject)(STREAM_INSTANCE, { optional: true });
133
- if (instance == null) throw new Error("injectStream() requires an ancestor component to provide a stream via provideStream(). Add provideStream({ assistantId: '...' }) to the providers array of a parent component, or use useStream() directly.");
134
- return instance;
135
- }
136
91
  //#endregion
137
92
  exports.STREAM_DEFAULTS = STREAM_DEFAULTS;
138
93
  exports.STREAM_INSTANCE = STREAM_INSTANCE;
139
- exports.injectStream = injectStream;
140
94
  exports.provideStream = provideStream;
141
95
  exports.provideStreamDefaults = provideStreamDefaults;
142
96
 
@@ -1 +1 @@
1
- {"version":3,"file":"context.cjs","names":["InjectionToken","useStream"],"sources":["../src/context.ts"],"sourcesContent":["import {\n InjectionToken,\n inject as angularInject,\n type EnvironmentProviders,\n makeEnvironmentProviders,\n} from \"@angular/core\";\nimport type { BagTemplate } from \"@langchain/langgraph-sdk\";\nimport { Client } from \"@langchain/langgraph-sdk\";\nimport type {\n ResolveStreamOptions,\n InferBag,\n InferStateType,\n UseStreamCustomOptions,\n} from \"@langchain/langgraph-sdk/ui\";\nimport { useStream } from \"./index.js\";\n\n/**\n * Configuration defaults for `useStream` and `injectStream` calls.\n */\nexport interface StreamDefaults {\n /** Base URL of the LangGraph API. */\n apiUrl?: string;\n /** API key for authenticating with the LangGraph API. */\n apiKey?: string;\n /** Pre-configured Client instance. */\n client?: Client;\n}\n\n/**\n * Injection token for stream default configuration.\n * Provide via `provideStreamDefaults()` in your application config.\n */\nexport const STREAM_DEFAULTS = new InjectionToken<StreamDefaults>(\n \"LANGCHAIN_STREAM_DEFAULTS\",\n);\n\n/**\n * Injection token for a shared stream instance.\n * Provide via `provideStream()` at the component level.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const STREAM_INSTANCE = new InjectionToken<any>(\n \"LANGCHAIN_STREAM_INSTANCE\",\n);\n\n/**\n * Provides default LangGraph configuration at the application level.\n *\n * Use this in your application's `providers` array to set defaults like\n * `apiUrl` that will be used by all `useStream` and `injectStream` calls.\n *\n * @example\n * ```typescript\n * // app.config.ts\n * import { ApplicationConfig } from \"@angular/core\";\n * import { provideStreamDefaults } from \"@langchain/angular\";\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideStreamDefaults({\n * apiUrl: \"http://localhost:2024\",\n * }),\n * ],\n * };\n * ```\n */\nexport function provideStreamDefaults(\n defaults: StreamDefaults,\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: STREAM_DEFAULTS, useValue: defaults },\n ]);\n}\n\n/**\n * Creates a provider for a shared `useStream` instance at the component level.\n *\n * Add the returned provider to a component's `providers` array so that all\n * child components can access the same stream via `injectStream()`.\n *\n * @example\n * ```typescript\n * import { Component } from \"@angular/core\";\n * import { provideStream, injectStream } from \"@langchain/angular\";\n *\n * @Component({\n * providers: [provideStream({ assistantId: \"agent\" })],\n * template: `\n * <app-message-list />\n * <app-message-input />\n * `,\n * })\n * export class ChatContainer {}\n *\n * // In child components:\n * @Component({\n * template: `\n * @for (msg of stream.messages(); track msg.id) {\n * <div>{{ msg.content }}</div>\n * }\n * `,\n * })\n * export class MessageListComponent {\n * stream = injectStream();\n * }\n * ```\n */\nexport function provideStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options:\n | ResolveStreamOptions<T, InferBag<T, Bag>>\n | UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>,\n) {\n return {\n provide: STREAM_INSTANCE,\n useFactory: () => {\n const defaults = angularInject(STREAM_DEFAULTS, { optional: true });\n const merged = {\n ...(defaults ?? {}),\n ...options,\n apiUrl: (options as Record<string, unknown>).apiUrl ?? defaults?.apiUrl,\n client: (options as Record<string, unknown>).client ?? defaults?.client,\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return useStream(merged as any);\n },\n };\n}\n\n/**\n * Injects the shared stream instance from the nearest ancestor that\n * provided one via `provideStream()`.\n *\n * Throws if no ancestor provides a stream 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 */\nexport function injectStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(): ReturnType<typeof useStream<T, Bag>> {\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 useStream() directly.\",\n );\n }\n return instance;\n}\n"],"mappings":";;;;;;;AAgCA,MAAa,kBAAkB,IAAIA,cAAAA,eACjC,4BACD;;;;;AAOD,MAAa,kBAAkB,IAAIA,cAAAA,eACjC,4BACD;;;;;;;;;;;;;;;;;;;;;;AAuBD,SAAgB,sBACd,UACsB;AACtB,SAAA,GAAA,cAAA,0BAAgC,CAC9B;EAAE,SAAS;EAAiB,UAAU;EAAU,CACjD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCJ,SAAgB,cAId,SAGA;AACA,QAAO;EACL,SAAS;EACT,kBAAkB;GAChB,MAAM,YAAA,GAAA,cAAA,QAAyB,iBAAiB,EAAE,UAAU,MAAM,CAAC;AAQnE,UAAOC,cAAAA,UAPQ;IACb,GAAI,YAAY,EAAE;IAClB,GAAG;IACH,QAAS,QAAoC,UAAU,UAAU;IACjE,QAAS,QAAoC,UAAU,UAAU;IAClE,CAE8B;;EAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CH,SAAgB,eAG0B;CACxC,MAAM,YAAA,GAAA,cAAA,QAAyB,iBAAiB,EAAE,UAAU,MAAM,CAAC;AACnE,KAAI,YAAY,KACd,OAAM,IAAI,MACR,8MAGD;AAEH,QAAO"}
1
+ {"version":3,"file":"context.cjs","names":["InjectionToken","injectStreamCustom","useStreamLGP"],"sources":["../src/context.ts"],"sourcesContent":["import {\n InjectionToken,\n inject as angularInject,\n type EnvironmentProviders,\n makeEnvironmentProviders,\n} from \"@angular/core\";\nimport type { BagTemplate } from \"@langchain/langgraph-sdk\";\nimport { Client } from \"@langchain/langgraph-sdk\";\nimport type {\n ResolveStreamOptions,\n InferBag,\n InferStateType,\n UseStreamCustomOptions,\n} from \"@langchain/langgraph-sdk/ui\";\nimport type { StreamServiceInstance } from \"./stream-service-instance.js\";\nimport { useStreamLGP } from \"./stream.lgp.js\";\nimport { injectStreamCustom } from \"./stream.custom.js\";\n\n/**\n * Configuration defaults for `useStream` and `injectStream` calls.\n */\nexport interface StreamDefaults {\n /** Base URL of the LangGraph API. */\n apiUrl?: string;\n /** API key for authenticating with the LangGraph API. */\n apiKey?: string;\n /** Pre-configured Client instance. */\n client?: Client;\n}\n\n/**\n * Injection token for stream default configuration.\n * Provide via `provideStreamDefaults()` in your application config.\n */\nexport const STREAM_DEFAULTS = new InjectionToken<StreamDefaults>(\n \"LANGCHAIN_STREAM_DEFAULTS\",\n);\n\n/**\n * Injection token for a shared stream instance.\n * Provide via `provideStream()` at the component level.\n */\nexport const STREAM_INSTANCE = new InjectionToken<StreamServiceInstance>(\n \"LANGCHAIN_STREAM_INSTANCE\",\n);\n\n/**\n * Provides default LangGraph configuration at the application level.\n *\n * Use this in your application's `providers` array to set defaults like\n * `apiUrl` that will be used by all `useStream` and `injectStream` calls.\n *\n * @example\n * ```typescript\n * // app.config.ts\n * import { ApplicationConfig } from \"@angular/core\";\n * import { provideStreamDefaults } from \"@langchain/angular\";\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideStreamDefaults({\n * apiUrl: \"http://localhost:2024\",\n * }),\n * ],\n * };\n * ```\n */\nexport function provideStreamDefaults(\n defaults: StreamDefaults,\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: STREAM_DEFAULTS, useValue: defaults },\n ]);\n}\n\n/**\n * Creates a provider for a shared `useStream` instance at the component level.\n *\n * Add the returned provider to a component's `providers` array so that all\n * child components can access the same stream via `injectStream()`.\n *\n * @example\n * ```typescript\n * import { Component } from \"@angular/core\";\n * import { provideStream, injectStream } from \"@langchain/angular\";\n *\n * @Component({\n * providers: [provideStream({ assistantId: \"agent\" })],\n * template: `\n * <app-message-list />\n * <app-message-input />\n * `,\n * })\n * export class ChatContainer {}\n *\n * // In child components:\n * @Component({\n * template: `\n * @for (msg of stream.messages(); track msg.id) {\n * <div>{{ msg.content }}</div>\n * }\n * `,\n * })\n * export class MessageListComponent {\n * stream = injectStream();\n * }\n * ```\n */\nexport function provideStream<\n T = Record<string, unknown>,\n Bag extends BagTemplate = BagTemplate,\n>(\n options:\n | ResolveStreamOptions<T, InferBag<T, Bag>>\n | UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>,\n) {\n return {\n provide: STREAM_INSTANCE,\n useFactory: () => {\n const defaults = angularInject(STREAM_DEFAULTS, { optional: true });\n const merged = {\n ...(defaults ?? {}),\n ...options,\n apiUrl: (options as Record<string, unknown>).apiUrl ?? defaults?.apiUrl,\n client: (options as Record<string, unknown>).client ?? defaults?.client,\n };\n if (\"transport\" in merged) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return injectStreamCustom(merged as any);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return useStreamLGP(merged as any);\n },\n };\n}\n"],"mappings":";;;;;;;;AAkCA,MAAa,kBAAkB,IAAIA,cAAAA,eACjC,4BACD;;;;;AAMD,MAAa,kBAAkB,IAAIA,cAAAA,eACjC,4BACD;;;;;;;;;;;;;;;;;;;;;;AAuBD,SAAgB,sBACd,UACsB;AACtB,SAAA,GAAA,cAAA,0BAAgC,CAC9B;EAAE,SAAS;EAAiB,UAAU;EAAU,CACjD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCJ,SAAgB,cAId,SAGA;AACA,QAAO;EACL,SAAS;EACT,kBAAkB;GAChB,MAAM,YAAA,GAAA,cAAA,QAAyB,iBAAiB,EAAE,UAAU,MAAM,CAAC;GACnE,MAAM,SAAS;IACb,GAAI,YAAY,EAAE;IAClB,GAAG;IACH,QAAS,QAAoC,UAAU,UAAU;IACjE,QAAS,QAAoC,UAAU,UAAU;IAClE;AACD,OAAI,eAAe,OAEjB,QAAOC,sBAAAA,mBAAmB,OAAc;AAG1C,UAAOC,mBAAAA,aAAa,OAAc;;EAErC"}
@@ -1,12 +1,12 @@
1
- import { BaseMessage as BaseMessage$1 } 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 { useStream } from "./index.cjs";
3
- import * as _langchain_langgraph_sdk0 from "@langchain/langgraph-sdk";
4
- import { BagTemplate, Client } from "@langchain/langgraph-sdk";
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 { StreamServiceInstance } from "./stream-service-instance.cjs";
3
+ import * as _angular_core0 from "@angular/core";
4
+ import { EnvironmentProviders, InjectionToken } from "@angular/core";
5
5
  import * as _langchain_core_messages0 from "@langchain/core/messages";
6
6
  import * as _langchain_langgraph_sdk_ui0 from "@langchain/langgraph-sdk/ui";
7
7
  import { InferBag, InferStateType, ResolveStreamOptions, UseStreamCustomOptions } from "@langchain/langgraph-sdk/ui";
8
- import * as _angular_core0 from "@angular/core";
9
- import { EnvironmentProviders, InjectionToken } from "@angular/core";
8
+ import * as _langchain_langgraph_sdk0 from "@langchain/langgraph-sdk";
9
+ import { BagTemplate, Client } from "@langchain/langgraph-sdk";
10
10
 
11
11
  //#region src/context.d.ts
12
12
  /**
@@ -29,7 +29,7 @@ declare const STREAM_DEFAULTS: InjectionToken<StreamDefaults>;
29
29
  * Injection token for a shared stream instance.
30
30
  * Provide via `provideStream()` at the component level.
31
31
  */
32
- declare const STREAM_INSTANCE: InjectionToken<any>;
32
+ declare const STREAM_INSTANCE: InjectionToken<StreamServiceInstance<Record<string, unknown>, BagTemplate>>;
33
33
  /**
34
34
  * Provides default LangGraph configuration at the application level.
35
35
  *
@@ -86,22 +86,27 @@ declare function provideStreamDefaults(defaults: StreamDefaults): EnvironmentPro
86
86
  * ```
87
87
  */
88
88
  declare function provideStream<T = Record<string, unknown>, Bag extends BagTemplate = BagTemplate>(options: ResolveStreamOptions<T, InferBag<T, Bag>> | UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>): {
89
- provide: InjectionToken<any>;
89
+ provide: InjectionToken<StreamServiceInstance<Record<string, unknown>, BagTemplate>>;
90
90
  useFactory: () => {
91
+ assistantId: string;
92
+ client: Client<_langchain_langgraph_sdk0.DefaultValues, _langchain_langgraph_sdk0.DefaultValues, unknown>;
91
93
  values: _angular_core0.Signal<Record<string, unknown>>;
92
94
  error: _angular_core0.Signal<unknown>;
93
95
  isLoading: _angular_core0.WritableSignal<boolean>;
94
- isThreadLoading: _angular_core0.Signal<boolean>;
96
+ branch: _angular_core0.WritableSignal<string>;
97
+ setBranch(value: string): void;
98
+ 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>)[]>;
99
+ toolCalls: _angular_core0.Signal<_langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[]>;
100
+ getToolCalls(message: _langchain_langgraph_sdk0.Message): _langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[];
95
101
  interrupt: _angular_core0.Signal<_langchain_langgraph_sdk0.Interrupt<unknown> | undefined>;
96
102
  interrupts: _angular_core0.Signal<_langchain_langgraph_sdk0.Interrupt<unknown>[]>;
97
- stop: () => Promise<void>;
98
- branch: _angular_core0.WritableSignal<string>;
99
- setBranch: (branch: string) => void;
100
- experimental_branchTree: _angular_core0.Signal<_langchain_langgraph_sdk_ui0.Sequence<Record<string, unknown>>>;
101
- toolProgress: _angular_core0.Signal<_langchain_langgraph_sdk0.ToolProgress[]>;
102
- client: Client<_langchain_langgraph_sdk0.DefaultValues, _langchain_langgraph_sdk0.DefaultValues, unknown>;
103
- assistantId: string;
104
- joinStream: (runId: string, lastEventId?: string | undefined, options?: {
103
+ history: _angular_core0.Signal<_langchain_langgraph_sdk0.ThreadState<any>[]>;
104
+ isThreadLoading: _angular_core0.Signal<boolean>;
105
+ experimental_branchTree: _angular_core0.Signal<_langchain_langgraph_sdk_ui0.Sequence<any>>;
106
+ getMessagesMetadata(message: _langchain_langgraph_sdk0.Message, index?: number | undefined): _langchain_langgraph_sdk_ui0.MessageMetadata<Record<string, unknown>> | undefined;
107
+ submit: (values: Record<string, unknown>, submitOptions?: _langchain_langgraph_sdk_ui0.SubmitOptions<Record<string, unknown>, Record<string, unknown>> | undefined) => Promise<void | Promise<void>>;
108
+ stop: () => void;
109
+ joinStream: (runId: string, lastEventId?: string | undefined, joinOptions?: {
105
110
  streamMode?: _langchain_langgraph_sdk0.StreamMode[] | _langchain_langgraph_sdk0.StreamMode | undefined;
106
111
  filter?: ((event: {
107
112
  id?: string | undefined;
@@ -109,67 +114,46 @@ declare function provideStream<T = Record<string, unknown>, Bag extends BagTempl
109
114
  data: unknown;
110
115
  }) => boolean) | undefined;
111
116
  } | undefined) => Promise<void>;
112
- switchThread: (newThreadId: string | null) => void;
113
117
  queue: {
114
118
  entries: _angular_core0.WritableSignal<readonly _langchain_langgraph_sdk_ui0.QueueEntry<Record<string, unknown>, _langchain_langgraph_sdk_ui0.SubmitOptions<Record<string, unknown>, Record<string, unknown>>>[]>;
115
119
  size: _angular_core0.WritableSignal<number>;
116
120
  cancel: (id: string) => Promise<boolean>;
117
121
  clear: () => Promise<void>;
118
122
  };
119
- messages: _angular_core0.Signal<BaseMessage$1<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>, _langchain_core_messages0.MessageType>[]>;
120
- getMessagesMetadata: (message: BaseMessage$1<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>, _langchain_core_messages0.MessageType>, index?: number | undefined) => _langchain_langgraph_sdk_ui0.MessageMetadata<Record<string, unknown>> | undefined;
121
- history: _angular_core0.Signal<_langchain_langgraph_sdk0.ThreadState<Omit<Record<string, unknown>, "messages"> & {
122
- messages: BaseMessage$1<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>, _langchain_core_messages0.MessageType>[];
123
- }>[]>;
124
- submit: (values: {
125
- [x: string]: unknown;
126
- } | null | undefined, options?: _langchain_langgraph_sdk_ui0.SubmitOptions<Record<string, unknown>, Record<string, unknown>> | undefined) => Promise<void>;
123
+ switchThread(newThreadId: string | null): void;
124
+ subagents: _angular_core0.Signal<ReadonlyMap<string, _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>>>;
125
+ activeSubagents: _angular_core0.Signal<readonly _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[]>;
126
+ getSubagent(toolCallId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string> | undefined;
127
+ getSubagentsByType(type: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
128
+ getSubagentsByMessage(messageId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
129
+ } | {
130
+ values: _angular_core0.Signal<Record<string, unknown>>;
131
+ error: _angular_core0.Signal<unknown>;
132
+ isLoading: _angular_core0.WritableSignal<boolean>;
133
+ stop: () => void;
134
+ submit(values: Partial<Record<string, unknown>> | null | undefined, submitOptions?: _langchain_langgraph_sdk_ui0.CustomSubmitOptions<Record<string, unknown>, Record<string, unknown>> | undefined): Promise<void>;
135
+ switchThread(newThreadId: string | null): void;
136
+ branch: _angular_core0.WritableSignal<string>;
137
+ setBranch(value: string): void;
138
+ getMessagesMetadata(message: _langchain_langgraph_sdk0.Message<_langchain_langgraph_sdk0.DefaultToolCall>, index?: number | undefined): _langchain_langgraph_sdk_ui0.MessageMetadata<Record<string, unknown>> | undefined;
139
+ queue: {
140
+ entries: _angular_core0.WritableSignal<never[]>;
141
+ size: _angular_core0.WritableSignal<number>;
142
+ cancel(): Promise<boolean>;
143
+ clear(): Promise<void>;
144
+ };
145
+ interrupts: _angular_core0.Signal<_langchain_langgraph_sdk0.Interrupt<unknown>[]>;
146
+ interrupt: _angular_core0.Signal<_langchain_langgraph_sdk0.Interrupt<unknown> | undefined>;
147
+ 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>)[]>;
148
+ toolCalls: _angular_core0.Signal<_langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[]>;
149
+ getToolCalls(message: _langchain_langgraph_sdk0.Message<_langchain_langgraph_sdk0.DefaultToolCall>): _langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[];
150
+ subagents: _angular_core0.Signal<ReadonlyMap<string, _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>>>;
151
+ activeSubagents: _angular_core0.Signal<readonly _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[]>;
152
+ getSubagent(toolCallId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string> | undefined;
153
+ getSubagentsByType(type: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
154
+ getSubagentsByMessage(messageId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
127
155
  };
128
156
  };
129
- /**
130
- * Injects the shared stream instance from the nearest ancestor that
131
- * provided one via `provideStream()`.
132
- *
133
- * Throws if no ancestor provides a stream instance.
134
- *
135
- * @example
136
- * ```typescript
137
- * import { Component } from "@angular/core";
138
- * import { injectStream } from "@langchain/angular";
139
- *
140
- * @Component({
141
- * template: `
142
- * @for (msg of stream.messages(); track msg.id) {
143
- * <div>{{ msg.content }}</div>
144
- * }
145
- * <button
146
- * [disabled]="stream.isLoading()"
147
- * (click)="onSubmit()"
148
- * >Send</button>
149
- * `,
150
- * })
151
- * export class ChatComponent {
152
- * stream = injectStream();
153
- *
154
- * onSubmit() {
155
- * void this.stream.submit({
156
- * messages: [{ type: "human", content: "Hello!" }],
157
- * });
158
- * }
159
- * }
160
- * ```
161
- *
162
- * @example With type parameters for full type safety:
163
- * ```typescript
164
- * import type { agent } from "./agent";
165
- *
166
- * export class ChatComponent {
167
- * stream = injectStream<typeof agent>();
168
- * // stream.messages() returns typed messages
169
- * }
170
- * ```
171
- */
172
- declare function injectStream<T = Record<string, unknown>, Bag extends BagTemplate = BagTemplate>(): ReturnType<typeof useStream<T, Bag>>;
173
157
  //#endregion
174
- export { STREAM_DEFAULTS, STREAM_INSTANCE, StreamDefaults, injectStream, provideStream, provideStreamDefaults };
158
+ export { STREAM_DEFAULTS, STREAM_INSTANCE, StreamDefaults, provideStream, provideStreamDefaults };
175
159
  //# sourceMappingURL=context.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.cts","names":[],"sources":["../src/context.ts"],"mappings":";;;;;;;;;;;;;;UAmBiB,cAAA;;EAEf,MAAA;EAFe;EAIf,MAAA;;EAEA,MAAA,GAAS,MAAA;AAAA;;;;;cAOE,eAAA,EAAe,cAAA,CAAA,cAAA;AAA5B;;;;AAAA,cASa,eAAA,EAAe,cAAA;AAA5B;;;;;AAyBA;;;;;;;;;AAyCA;;;;;;;AAlEA,iBAyBgB,qBAAA,CACd,QAAA,EAAU,cAAA,GACT,oBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCa,aAAA,KACV,MAAA,+BACQ,WAAA,GAAc,WAAA,CAAA,CAE1B,OAAA,EACI,oBAAA,CAAqB,CAAA,EAAG,QAAA,CAAS,CAAA,EAAG,GAAA,KACpC,sBAAA,CAAuB,cAAA,CAAe,CAAA,GAAI,QAAA,CAAS,CAAA,EAAG,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6D5C,YAAA,KACV,MAAA,+BACQ,WAAA,GAAc,WAAA,CAAA,CAAA,GACvB,UAAA,QAAkB,SAAA,CAAU,CAAA,EAAG,GAAA"}
1
+ {"version":3,"file":"context.d.cts","names":[],"sources":["../src/context.ts"],"mappings":";;;;;;;;;;;;;;UAqBiB,cAAA;;EAEf,MAAA;EAFe;EAIf,MAAA;;EAEA,MAAA,GAAS,MAAA;AAAA;;;;;cAOE,eAAA,EAAe,cAAA,CAAA,cAAA;AAA5B;;;;AAAA,cAQa,eAAA,EAAe,cAAA,CAAA,qBAAA,CAAA,MAAA,mBAAA,WAAA;AAA5B;;;;;;;;;;;;;;;AAyBA;;;;;;AAzBA,iBAyBgB,qBAAA,CACd,QAAA,EAAU,cAAA,GACT,oBAAA;;;AAuCH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,aAAA,KACV,MAAA,+BACQ,WAAA,GAAc,WAAA,CAAA,CAE1B,OAAA,EACI,oBAAA,CAAqB,CAAA,EAAG,QAAA,CAAS,CAAA,EAAG,GAAA,KACpC,sBAAA,CAAuB,cAAA,CAAe,CAAA,GAAI,QAAA,CAAS,CAAA,EAAG,GAAA"}
package/dist/context.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { BaseMessage as BaseMessage$1 } 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 { useStream } from "./index.js";
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 { StreamServiceInstance } from "./stream-service-instance.js";
3
3
  import * as _angular_core0 from "@angular/core";
4
4
  import { EnvironmentProviders, InjectionToken } from "@angular/core";
5
5
  import * as _langchain_langgraph_sdk_ui0 from "@langchain/langgraph-sdk/ui";
@@ -29,7 +29,7 @@ declare const STREAM_DEFAULTS: InjectionToken<StreamDefaults>;
29
29
  * Injection token for a shared stream instance.
30
30
  * Provide via `provideStream()` at the component level.
31
31
  */
32
- declare const STREAM_INSTANCE: InjectionToken<any>;
32
+ declare const STREAM_INSTANCE: InjectionToken<StreamServiceInstance<Record<string, unknown>, BagTemplate>>;
33
33
  /**
34
34
  * Provides default LangGraph configuration at the application level.
35
35
  *
@@ -86,22 +86,27 @@ declare function provideStreamDefaults(defaults: StreamDefaults): EnvironmentPro
86
86
  * ```
87
87
  */
88
88
  declare function provideStream<T = Record<string, unknown>, Bag extends BagTemplate = BagTemplate>(options: ResolveStreamOptions<T, InferBag<T, Bag>> | UseStreamCustomOptions<InferStateType<T>, InferBag<T, Bag>>): {
89
- provide: InjectionToken<any>;
89
+ provide: InjectionToken<StreamServiceInstance<Record<string, unknown>, BagTemplate>>;
90
90
  useFactory: () => {
91
+ assistantId: string;
92
+ client: Client<_langchain_langgraph_sdk0.DefaultValues, _langchain_langgraph_sdk0.DefaultValues, unknown>;
91
93
  values: _angular_core0.Signal<Record<string, unknown>>;
92
94
  error: _angular_core0.Signal<unknown>;
93
95
  isLoading: _angular_core0.WritableSignal<boolean>;
94
- isThreadLoading: _angular_core0.Signal<boolean>;
96
+ branch: _angular_core0.WritableSignal<string>;
97
+ setBranch(value: string): void;
98
+ 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>)[]>;
99
+ toolCalls: _angular_core0.Signal<_langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[]>;
100
+ getToolCalls(message: _langchain_langgraph_sdk0.Message): _langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[];
95
101
  interrupt: _angular_core0.Signal<_langchain_langgraph_sdk0.Interrupt<unknown> | undefined>;
96
102
  interrupts: _angular_core0.Signal<_langchain_langgraph_sdk0.Interrupt<unknown>[]>;
97
- stop: () => Promise<void>;
98
- branch: _angular_core0.WritableSignal<string>;
99
- setBranch: (branch: string) => void;
100
- experimental_branchTree: _angular_core0.Signal<_langchain_langgraph_sdk_ui0.Sequence<Record<string, unknown>>>;
101
- toolProgress: _angular_core0.Signal<_langchain_langgraph_sdk0.ToolProgress[]>;
102
- client: Client<_langchain_langgraph_sdk0.DefaultValues, _langchain_langgraph_sdk0.DefaultValues, unknown>;
103
- assistantId: string;
104
- joinStream: (runId: string, lastEventId?: string | undefined, options?: {
103
+ history: _angular_core0.Signal<_langchain_langgraph_sdk0.ThreadState<any>[]>;
104
+ isThreadLoading: _angular_core0.Signal<boolean>;
105
+ experimental_branchTree: _angular_core0.Signal<_langchain_langgraph_sdk_ui0.Sequence<any>>;
106
+ getMessagesMetadata(message: _langchain_langgraph_sdk0.Message, index?: number | undefined): _langchain_langgraph_sdk_ui0.MessageMetadata<Record<string, unknown>> | undefined;
107
+ submit: (values: Record<string, unknown>, submitOptions?: _langchain_langgraph_sdk_ui0.SubmitOptions<Record<string, unknown>, Record<string, unknown>> | undefined) => Promise<void | Promise<void>>;
108
+ stop: () => void;
109
+ joinStream: (runId: string, lastEventId?: string | undefined, joinOptions?: {
105
110
  streamMode?: _langchain_langgraph_sdk0.StreamMode[] | _langchain_langgraph_sdk0.StreamMode | undefined;
106
111
  filter?: ((event: {
107
112
  id?: string | undefined;
@@ -109,67 +114,46 @@ declare function provideStream<T = Record<string, unknown>, Bag extends BagTempl
109
114
  data: unknown;
110
115
  }) => boolean) | undefined;
111
116
  } | undefined) => Promise<void>;
112
- switchThread: (newThreadId: string | null) => void;
113
117
  queue: {
114
118
  entries: _angular_core0.WritableSignal<readonly _langchain_langgraph_sdk_ui0.QueueEntry<Record<string, unknown>, _langchain_langgraph_sdk_ui0.SubmitOptions<Record<string, unknown>, Record<string, unknown>>>[]>;
115
119
  size: _angular_core0.WritableSignal<number>;
116
120
  cancel: (id: string) => Promise<boolean>;
117
121
  clear: () => Promise<void>;
118
122
  };
119
- messages: _angular_core0.Signal<BaseMessage$1<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>, _langchain_core_messages0.MessageType>[]>;
120
- getMessagesMetadata: (message: BaseMessage$1<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>, _langchain_core_messages0.MessageType>, index?: number | undefined) => _langchain_langgraph_sdk_ui0.MessageMetadata<Record<string, unknown>> | undefined;
121
- history: _angular_core0.Signal<_langchain_langgraph_sdk0.ThreadState<Omit<Record<string, unknown>, "messages"> & {
122
- messages: BaseMessage$1<_langchain_core_messages0.MessageStructure<_langchain_core_messages0.MessageToolSet>, _langchain_core_messages0.MessageType>[];
123
- }>[]>;
124
- submit: (values: {
125
- [x: string]: unknown;
126
- } | null | undefined, options?: _langchain_langgraph_sdk_ui0.SubmitOptions<Record<string, unknown>, Record<string, unknown>> | undefined) => Promise<void>;
123
+ switchThread(newThreadId: string | null): void;
124
+ subagents: _angular_core0.Signal<ReadonlyMap<string, _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>>>;
125
+ activeSubagents: _angular_core0.Signal<readonly _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[]>;
126
+ getSubagent(toolCallId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string> | undefined;
127
+ getSubagentsByType(type: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
128
+ getSubagentsByMessage(messageId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
129
+ } | {
130
+ values: _angular_core0.Signal<Record<string, unknown>>;
131
+ error: _angular_core0.Signal<unknown>;
132
+ isLoading: _angular_core0.WritableSignal<boolean>;
133
+ stop: () => void;
134
+ submit(values: Partial<Record<string, unknown>> | null | undefined, submitOptions?: _langchain_langgraph_sdk_ui0.CustomSubmitOptions<Record<string, unknown>, Record<string, unknown>> | undefined): Promise<void>;
135
+ switchThread(newThreadId: string | null): void;
136
+ branch: _angular_core0.WritableSignal<string>;
137
+ setBranch(value: string): void;
138
+ getMessagesMetadata(message: _langchain_langgraph_sdk0.Message<_langchain_langgraph_sdk0.DefaultToolCall>, index?: number | undefined): _langchain_langgraph_sdk_ui0.MessageMetadata<Record<string, unknown>> | undefined;
139
+ queue: {
140
+ entries: _angular_core0.WritableSignal<never[]>;
141
+ size: _angular_core0.WritableSignal<number>;
142
+ cancel(): Promise<boolean>;
143
+ clear(): Promise<void>;
144
+ };
145
+ interrupts: _angular_core0.Signal<_langchain_langgraph_sdk0.Interrupt<unknown>[]>;
146
+ interrupt: _angular_core0.Signal<_langchain_langgraph_sdk0.Interrupt<unknown> | undefined>;
147
+ 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>)[]>;
148
+ toolCalls: _angular_core0.Signal<_langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[]>;
149
+ getToolCalls(message: _langchain_langgraph_sdk0.Message<_langchain_langgraph_sdk0.DefaultToolCall>): _langchain_langgraph_sdk0.ToolCallWithResult<_langchain_langgraph_sdk0.DefaultToolCall>[];
150
+ subagents: _angular_core0.Signal<ReadonlyMap<string, _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>>>;
151
+ activeSubagents: _angular_core0.Signal<readonly _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[]>;
152
+ getSubagent(toolCallId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string> | undefined;
153
+ getSubagentsByType(type: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
154
+ getSubagentsByMessage(messageId: string): _langchain_langgraph_sdk_ui0.SubagentStreamInterface<Record<string, unknown>, _langchain_langgraph_sdk0.DefaultToolCall, string>[];
127
155
  };
128
156
  };
129
- /**
130
- * Injects the shared stream instance from the nearest ancestor that
131
- * provided one via `provideStream()`.
132
- *
133
- * Throws if no ancestor provides a stream instance.
134
- *
135
- * @example
136
- * ```typescript
137
- * import { Component } from "@angular/core";
138
- * import { injectStream } from "@langchain/angular";
139
- *
140
- * @Component({
141
- * template: `
142
- * @for (msg of stream.messages(); track msg.id) {
143
- * <div>{{ msg.content }}</div>
144
- * }
145
- * <button
146
- * [disabled]="stream.isLoading()"
147
- * (click)="onSubmit()"
148
- * >Send</button>
149
- * `,
150
- * })
151
- * export class ChatComponent {
152
- * stream = injectStream();
153
- *
154
- * onSubmit() {
155
- * void this.stream.submit({
156
- * messages: [{ type: "human", content: "Hello!" }],
157
- * });
158
- * }
159
- * }
160
- * ```
161
- *
162
- * @example With type parameters for full type safety:
163
- * ```typescript
164
- * import type { agent } from "./agent";
165
- *
166
- * export class ChatComponent {
167
- * stream = injectStream<typeof agent>();
168
- * // stream.messages() returns typed messages
169
- * }
170
- * ```
171
- */
172
- declare function injectStream<T = Record<string, unknown>, Bag extends BagTemplate = BagTemplate>(): ReturnType<typeof useStream<T, Bag>>;
173
157
  //#endregion
174
- export { STREAM_DEFAULTS, STREAM_INSTANCE, StreamDefaults, injectStream, provideStream, provideStreamDefaults };
158
+ export { STREAM_DEFAULTS, STREAM_INSTANCE, StreamDefaults, provideStream, provideStreamDefaults };
175
159
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","names":[],"sources":["../src/context.ts"],"mappings":";;;;;;;;;;;;;;UAmBiB,cAAA;;EAEf,MAAA;EAFe;EAIf,MAAA;;EAEA,MAAA,GAAS,MAAA;AAAA;;;;;cAOE,eAAA,EAAe,cAAA,CAAA,cAAA;AAA5B;;;;AAAA,cASa,eAAA,EAAe,cAAA;AAA5B;;;;;AAyBA;;;;;;;;;AAyCA;;;;;;;AAlEA,iBAyBgB,qBAAA,CACd,QAAA,EAAU,cAAA,GACT,oBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCa,aAAA,KACV,MAAA,+BACQ,WAAA,GAAc,WAAA,CAAA,CAE1B,OAAA,EACI,oBAAA,CAAqB,CAAA,EAAG,QAAA,CAAS,CAAA,EAAG,GAAA,KACpC,sBAAA,CAAuB,cAAA,CAAe,CAAA,GAAI,QAAA,CAAS,CAAA,EAAG,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6D5C,YAAA,KACV,MAAA,+BACQ,WAAA,GAAc,WAAA,CAAA,CAAA,GACvB,UAAA,QAAkB,SAAA,CAAU,CAAA,EAAG,GAAA"}
1
+ {"version":3,"file":"context.d.ts","names":[],"sources":["../src/context.ts"],"mappings":";;;;;;;;;;;;;;UAqBiB,cAAA;;EAEf,MAAA;EAFe;EAIf,MAAA;;EAEA,MAAA,GAAS,MAAA;AAAA;;;;;cAOE,eAAA,EAAe,cAAA,CAAA,cAAA;AAA5B;;;;AAAA,cAQa,eAAA,EAAe,cAAA,CAAA,qBAAA,CAAA,MAAA,mBAAA,WAAA;AAA5B;;;;;;;;;;;;;;;AAyBA;;;;;;AAzBA,iBAyBgB,qBAAA,CACd,QAAA,EAAU,cAAA,GACT,oBAAA;;;AAuCH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,aAAA,KACV,MAAA,+BACQ,WAAA,GAAc,WAAA,CAAA,CAE1B,OAAA,EACI,oBAAA,CAAqB,CAAA,EAAG,QAAA,CAAS,CAAA,EAAG,GAAA,KACpC,sBAAA,CAAuB,cAAA,CAAe,CAAA,GAAI,QAAA,CAAS,CAAA,EAAG,GAAA"}