@langchain/langgraph-sdk 0.1.10 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/README.md +11 -0
- package/dist/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/auth/error.cjs +76 -86
- package/dist/auth/error.cjs.map +1 -0
- package/dist/auth/error.d.cts +13 -0
- package/dist/auth/error.d.cts.map +1 -0
- package/dist/auth/error.d.ts +12 -8
- package/dist/auth/error.d.ts.map +1 -0
- package/dist/auth/error.js +76 -83
- package/dist/auth/error.js.map +1 -0
- package/dist/auth/index.cjs +36 -44
- package/dist/auth/index.cjs.map +1 -0
- package/dist/auth/index.d.cts +31 -0
- package/dist/auth/index.d.cts.map +1 -0
- package/dist/auth/index.d.ts +20 -15
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +35 -39
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/types.d.cts +294 -0
- package/dist/auth/types.d.cts.map +1 -0
- package/dist/auth/types.d.ts +162 -165
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/client.cjs +1110 -1294
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.cts +697 -0
- package/dist/client.d.cts.map +1 -0
- package/dist/client.d.ts +656 -639
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +1101 -1281
- package/dist/client.js.map +1 -0
- package/dist/index.cjs +6 -8
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.js +4 -2
- package/dist/logging/index.cjs +30 -31
- package/dist/logging/index.cjs.map +1 -0
- package/dist/logging/index.d.cts +47 -0
- package/dist/logging/index.d.cts.map +1 -0
- package/dist/logging/index.d.ts +20 -16
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +31 -29
- package/dist/logging/index.js.map +1 -0
- package/dist/react/index.cjs +5 -7
- package/dist/react/index.d.cts +4 -0
- package/dist/react/index.d.ts +4 -3
- package/dist/react/index.js +4 -2
- package/dist/react/stream.cjs +14 -15
- package/dist/react/stream.cjs.map +1 -0
- package/dist/react/stream.custom.cjs +126 -145
- package/dist/react/stream.custom.cjs.map +1 -0
- package/dist/react/stream.custom.d.cts +39 -0
- package/dist/react/stream.custom.d.cts.map +1 -0
- package/dist/react/stream.custom.d.ts +35 -37
- package/dist/react/stream.custom.d.ts.map +1 -0
- package/dist/react/stream.custom.js +122 -137
- package/dist/react/stream.custom.js.map +1 -0
- package/dist/react/stream.d.cts +73 -0
- package/dist/react/stream.d.cts.map +1 -0
- package/dist/react/stream.d.ts +21 -15
- package/dist/react/stream.d.ts.map +1 -0
- package/dist/react/stream.js +12 -11
- package/dist/react/stream.js.map +1 -0
- package/dist/react/stream.lgp.cjs +438 -498
- package/dist/react/stream.lgp.cjs.map +1 -0
- package/dist/react/stream.lgp.js +433 -490
- package/dist/react/stream.lgp.js.map +1 -0
- package/dist/react/thread.cjs +18 -15
- package/dist/react/thread.cjs.map +1 -0
- package/dist/react/thread.js +19 -13
- package/dist/react/thread.js.map +1 -0
- package/dist/react/types.d.cts +356 -0
- package/dist/react/types.d.cts.map +1 -0
- package/dist/react/types.d.ts +334 -329
- package/dist/react/types.d.ts.map +1 -0
- package/dist/react-ui/client.cjs +123 -184
- package/dist/react-ui/client.cjs.map +1 -0
- package/dist/react-ui/client.d.cts +90 -0
- package/dist/react-ui/client.d.cts.map +1 -0
- package/dist/react-ui/client.d.ts +67 -51
- package/dist/react-ui/client.d.ts.map +1 -0
- package/dist/react-ui/client.js +118 -143
- package/dist/react-ui/client.js.map +1 -0
- package/dist/react-ui/index.cjs +14 -13
- package/dist/react-ui/index.cjs.map +1 -0
- package/dist/react-ui/index.d.cts +3 -0
- package/dist/react-ui/index.d.ts +3 -2
- package/dist/react-ui/index.js +8 -3
- package/dist/react-ui/index.js.map +1 -0
- package/dist/react-ui/server/index.cjs +5 -7
- package/dist/react-ui/server/index.d.cts +3 -0
- package/dist/react-ui/server/index.d.ts +3 -2
- package/dist/react-ui/server/index.js +4 -2
- package/dist/react-ui/server/server.cjs +53 -44
- package/dist/react-ui/server/server.cjs.map +1 -0
- package/dist/react-ui/server/server.d.cts +55 -0
- package/dist/react-ui/server/server.d.cts.map +1 -0
- package/dist/react-ui/server/server.d.ts +43 -39
- package/dist/react-ui/server/server.d.ts.map +1 -0
- package/dist/react-ui/server/server.js +54 -42
- package/dist/react-ui/server/server.js.map +1 -0
- package/dist/react-ui/types.cjs +32 -36
- package/dist/react-ui/types.cjs.map +1 -0
- package/dist/react-ui/types.d.cts +25 -0
- package/dist/react-ui/types.d.cts.map +1 -0
- package/dist/react-ui/types.d.ts +23 -19
- package/dist/react-ui/types.d.ts.map +1 -0
- package/dist/react-ui/types.js +32 -34
- package/dist/react-ui/types.js.map +1 -0
- package/dist/schema.d.cts +278 -0
- package/dist/schema.d.cts.map +1 -0
- package/dist/schema.d.ts +250 -242
- package/dist/schema.d.ts.map +1 -0
- package/dist/singletons/fetch.cjs +16 -20
- package/dist/singletons/fetch.cjs.map +1 -0
- package/dist/singletons/fetch.d.cts +14 -0
- package/dist/singletons/fetch.d.cts.map +1 -0
- package/dist/singletons/fetch.d.ts +5 -2
- package/dist/singletons/fetch.d.ts.map +1 -0
- package/dist/singletons/fetch.js +16 -17
- package/dist/singletons/fetch.js.map +1 -0
- package/dist/types.d.cts +187 -0
- package/dist/types.d.cts.map +1 -0
- package/dist/types.d.ts +178 -173
- package/dist/types.d.ts.map +1 -0
- package/dist/types.messages.d.cts +91 -0
- package/dist/types.messages.d.cts.map +1 -0
- package/dist/types.messages.d.ts +71 -66
- package/dist/types.messages.d.ts.map +1 -0
- package/dist/types.stream.d.cts +235 -0
- package/dist/types.stream.d.cts.map +1 -0
- package/dist/types.stream.d.ts +149 -142
- package/dist/types.stream.d.ts.map +1 -0
- package/dist/ui/branching.cjs +145 -141
- package/dist/ui/branching.cjs.map +1 -0
- package/dist/ui/branching.d.cts +22 -0
- package/dist/ui/branching.d.cts.map +1 -0
- package/dist/ui/branching.d.ts +17 -30
- package/dist/ui/branching.d.ts.map +1 -0
- package/dist/ui/branching.js +147 -139
- package/dist/ui/branching.js.map +1 -0
- package/dist/ui/errors.cjs +14 -12
- package/dist/ui/errors.cjs.map +1 -0
- package/dist/ui/errors.js +14 -9
- package/dist/ui/errors.js.map +1 -0
- package/dist/ui/manager.cjs +156 -232
- package/dist/ui/manager.cjs.map +1 -0
- package/dist/ui/manager.js +156 -228
- package/dist/ui/manager.js.map +1 -0
- package/dist/ui/messages.cjs +55 -69
- package/dist/ui/messages.cjs.map +1 -0
- package/dist/ui/messages.js +55 -66
- package/dist/ui/messages.js.map +1 -0
- package/dist/ui/utils.cjs +10 -10
- package/dist/ui/utils.cjs.map +1 -0
- package/dist/ui/utils.js +10 -8
- package/dist/ui/utils.js.map +1 -0
- package/dist/utils/async_caller.cjs +103 -185
- package/dist/utils/async_caller.cjs.map +1 -0
- package/dist/utils/async_caller.d.cts +53 -0
- package/dist/utils/async_caller.d.cts.map +1 -0
- package/dist/utils/async_caller.d.ts +36 -31
- package/dist/utils/async_caller.d.ts.map +1 -0
- package/dist/utils/async_caller.js +101 -177
- package/dist/utils/async_caller.js.map +1 -0
- package/dist/utils/env.cjs +11 -13
- package/dist/utils/env.cjs.map +1 -0
- package/dist/utils/env.js +11 -11
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/signals.cjs +18 -19
- package/dist/utils/signals.cjs.map +1 -0
- package/dist/utils/signals.js +18 -17
- package/dist/utils/signals.js.map +1 -0
- package/dist/utils/sse.cjs +110 -140
- package/dist/utils/sse.cjs.map +1 -0
- package/dist/utils/sse.js +110 -138
- package/dist/utils/sse.js.map +1 -0
- package/dist/utils/stream.cjs +90 -114
- package/dist/utils/stream.cjs.map +1 -0
- package/dist/utils/stream.js +90 -111
- package/dist/utils/stream.js.map +1 -0
- package/package.json +73 -81
- package/auth.cjs +0 -1
- package/auth.d.cts +0 -1
- package/auth.d.ts +0 -1
- package/auth.js +0 -1
- package/client.cjs +0 -1
- package/client.d.cts +0 -1
- package/client.d.ts +0 -1
- package/client.js +0 -1
- package/dist/auth/types.cjs +0 -2
- package/dist/auth/types.js +0 -1
- package/dist/react/stream.lgp.d.ts +0 -7
- package/dist/react/thread.d.ts +0 -4
- package/dist/react/types.cjs +0 -2
- package/dist/react/types.js +0 -1
- package/dist/schema.cjs +0 -2
- package/dist/schema.js +0 -1
- package/dist/types.cjs +0 -2
- package/dist/types.js +0 -1
- package/dist/types.messages.cjs +0 -2
- package/dist/types.messages.js +0 -1
- package/dist/types.stream.cjs +0 -2
- package/dist/types.stream.js +0 -1
- package/dist/ui/branching.test.cjs +0 -370
- package/dist/ui/branching.test.d.ts +0 -1
- package/dist/ui/branching.test.js +0 -368
- package/dist/ui/errors.d.ts +0 -12
- package/dist/ui/manager.d.ts +0 -87
- package/dist/ui/messages.d.ts +0 -18
- package/dist/ui/utils.d.ts +0 -2
- package/dist/utils/env.d.ts +0 -1
- package/dist/utils/signals.d.ts +0 -1
- package/dist/utils/sse.d.ts +0 -8
- package/dist/utils/stream.d.ts +0 -13
- package/index.cjs +0 -1
- package/index.d.cts +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/logging.cjs +0 -1
- package/logging.d.cts +0 -1
- package/logging.d.ts +0 -1
- package/logging.js +0 -1
- package/react-ui/server.cjs +0 -1
- package/react-ui/server.d.cts +0 -1
- package/react-ui/server.d.ts +0 -1
- package/react-ui/server.js +0 -1
- package/react-ui.cjs +0 -1
- package/react-ui.d.cts +0 -1
- package/react-ui.d.ts +0 -1
- package/react-ui.js +0 -1
- package/react.cjs +0 -1
- package/react.d.cts +0 -1
- package/react.d.ts +0 -1
- package/react.js +0 -1
|
@@ -1,48 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const uuid = require_rolldown_runtime.__toESM(require("uuid"));
|
|
3
|
+
|
|
4
|
+
//#region src/react-ui/server/server.ts
|
|
5
5
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
* Helper to send and persist UI messages. Accepts a map of component names to React components
|
|
7
|
+
* as type argument to provide type safety. Will also write to the `options?.stateKey` state.
|
|
8
|
+
*
|
|
9
|
+
* @param config LangGraphRunnableConfig
|
|
10
|
+
* @param options
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
13
|
const typedUi = (config, options) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
14
|
+
const items = [];
|
|
15
|
+
const stateKey = options?.stateKey ?? "ui";
|
|
16
|
+
const runId = config.metadata?.run_id ?? config.runId;
|
|
17
|
+
if (!runId) throw new Error("run_id is required");
|
|
18
|
+
function handlePush(message, options$1) {
|
|
19
|
+
const evt = {
|
|
20
|
+
type: "ui",
|
|
21
|
+
id: message?.id ?? (0, uuid.v4)(),
|
|
22
|
+
name: message?.name,
|
|
23
|
+
props: message?.props,
|
|
24
|
+
metadata: {
|
|
25
|
+
merge: options$1?.merge || void 0,
|
|
26
|
+
run_id: runId,
|
|
27
|
+
tags: config.tags,
|
|
28
|
+
name: config.runName,
|
|
29
|
+
...message?.metadata,
|
|
30
|
+
...options$1?.message ? { message_id: options$1.message.id } : null
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
items.push(evt);
|
|
34
|
+
config.writer?.(evt);
|
|
35
|
+
config.configurable?.__pregel_send?.([[stateKey, evt]]);
|
|
36
|
+
return evt;
|
|
37
|
+
}
|
|
38
|
+
const handleDelete = (id) => {
|
|
39
|
+
const evt = {
|
|
40
|
+
type: "remove-ui",
|
|
41
|
+
id
|
|
42
|
+
};
|
|
43
|
+
items.push(evt);
|
|
44
|
+
config.writer?.(evt);
|
|
45
|
+
config.configurable?.__pregel_send?.([[stateKey, evt]]);
|
|
46
|
+
return evt;
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
49
|
+
push: handlePush,
|
|
50
|
+
delete: handleDelete,
|
|
51
|
+
items
|
|
52
|
+
};
|
|
47
53
|
};
|
|
54
|
+
|
|
55
|
+
//#endregion
|
|
48
56
|
exports.typedUi = typedUi;
|
|
57
|
+
//# sourceMappingURL=server.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.cjs","names":["items: (UIMessage | RemoveUIMessage)[]","evt: UIMessage<K, PropMap[K] | Partial<PropMap[K]>>","options","evt: RemoveUIMessage"],"sources":["../../../src/react-ui/server/server.ts"],"sourcesContent":["import { v4 as uuidv4 } from \"uuid\";\nimport type { ComponentPropsWithoutRef, ElementType } from \"react\";\nimport type { RemoveUIMessage, UIMessage } from \"../types.js\";\n\ninterface MessageLike {\n id?: string;\n}\n\n/**\n * Helper to send and persist UI messages. Accepts a map of component names to React components\n * as type argument to provide type safety. Will also write to the `options?.stateKey` state.\n *\n * @param config LangGraphRunnableConfig\n * @param options\n * @returns\n */\nexport const typedUi = <Decl extends Record<string, ElementType>>(\n config: {\n writer?: (chunk: unknown) => void;\n runId?: string;\n metadata?: Record<string, unknown>;\n tags?: string[];\n runName?: string;\n configurable?: {\n __pregel_send?: (writes_: [string, unknown][]) => void;\n [key: string]: unknown;\n };\n },\n options?: {\n /** The key to write the UI messages to. Defaults to `ui`. */\n stateKey?: string;\n }\n) => {\n type PropMap = { [K in keyof Decl]: ComponentPropsWithoutRef<Decl[K]> };\n const items: (UIMessage | RemoveUIMessage)[] = [];\n const stateKey = options?.stateKey ?? \"ui\";\n\n const runId = (config.metadata?.run_id as string | undefined) ?? config.runId;\n if (!runId) throw new Error(\"run_id is required\");\n\n function handlePush<K extends keyof PropMap & string>(\n message: {\n id?: string;\n name: K;\n props: PropMap[K];\n metadata?: Record<string, unknown>;\n },\n options?: { message?: MessageLike; merge?: boolean }\n ): UIMessage<K, PropMap[K]>;\n\n function handlePush<K extends keyof PropMap & string>(\n message: {\n id?: string;\n name: K;\n props: Partial<PropMap[K]>;\n metadata?: Record<string, unknown>;\n },\n options: { message?: MessageLike; merge: true }\n ): UIMessage<K, Partial<PropMap[K]>>;\n\n function handlePush<K extends keyof PropMap & string>(\n message: {\n id?: string;\n name: K;\n props: PropMap[K] | Partial<PropMap[K]>;\n metadata?: Record<string, unknown>;\n },\n options?: { message?: MessageLike; merge?: boolean }\n ): UIMessage<K, PropMap[K] | Partial<PropMap[K]>> {\n const evt: UIMessage<K, PropMap[K] | Partial<PropMap[K]>> = {\n type: \"ui\" as const,\n id: message?.id ?? uuidv4(),\n name: message?.name,\n props: message?.props,\n metadata: {\n merge: options?.merge || undefined,\n run_id: runId,\n tags: config.tags,\n name: config.runName,\n ...message?.metadata,\n ...(options?.message ? { message_id: options.message.id } : null),\n },\n };\n items.push(evt);\n config.writer?.(evt);\n config.configurable?.__pregel_send?.([[stateKey, evt]]);\n return evt;\n }\n\n const handleDelete = (id: string): RemoveUIMessage => {\n const evt: RemoveUIMessage = { type: \"remove-ui\", id };\n items.push(evt);\n config.writer?.(evt);\n config.configurable?.__pregel_send?.([[stateKey, evt]]);\n return evt;\n };\n\n return { push: handlePush, delete: handleDelete, items };\n};\n"],"mappings":";;;;;;;;;;;;AAgBA,MAAa,WACX,QAWA,YAIG;CAEH,MAAMA,QAAyC;CAC/C,MAAM,WAAW,SAAS,YAAY;CAEtC,MAAM,QAAS,OAAO,UAAU,UAAiC,OAAO;AACxE,KAAI,CAAC,MAAO,OAAM,IAAI,MAAM;CAsB5B,SAAS,WACP,SAMA,WACgD;EAChD,MAAMC,MAAsD;GAC1D,MAAM;GACN,IAAI,SAAS;GACb,MAAM,SAAS;GACf,OAAO,SAAS;GAChB,UAAU;IACR,OAAOC,WAAS,SAAS;IACzB,QAAQ;IACR,MAAM,OAAO;IACb,MAAM,OAAO;IACb,GAAG,SAAS;IACZ,GAAIA,WAAS,UAAU,EAAE,YAAYA,UAAQ,QAAQ,OAAO;;;AAGhE,QAAM,KAAK;AACX,SAAO,SAAS;AAChB,SAAO,cAAc,gBAAgB,CAAC,CAAC,UAAU;AACjD,SAAO;;CAGT,MAAM,gBAAgB,OAAgC;EACpD,MAAMC,MAAuB;GAAE,MAAM;GAAa;;AAClD,QAAM,KAAK;AACX,SAAO,SAAS;AAChB,SAAO,cAAc,gBAAgB,CAAC,CAAC,UAAU;AACjD,SAAO;;AAGT,QAAO;EAAE,MAAM;EAAY,QAAQ;EAAc"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { RemoveUIMessage, UIMessage } from "../types.cjs";
|
|
2
|
+
import { ComponentPropsWithoutRef, ElementType } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/react-ui/server/server.d.ts
|
|
5
|
+
interface MessageLike {
|
|
6
|
+
id?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Helper to send and persist UI messages. Accepts a map of component names to React components
|
|
10
|
+
* as type argument to provide type safety. Will also write to the `options?.stateKey` state.
|
|
11
|
+
*
|
|
12
|
+
* @param config LangGraphRunnableConfig
|
|
13
|
+
* @param options
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
declare const typedUi: <Decl extends Record<string, ElementType>>(config: {
|
|
17
|
+
writer?: ((chunk: unknown) => void) | undefined;
|
|
18
|
+
runId?: string | undefined;
|
|
19
|
+
metadata?: Record<string, unknown> | undefined;
|
|
20
|
+
tags?: string[] | undefined;
|
|
21
|
+
runName?: string | undefined;
|
|
22
|
+
configurable?: {
|
|
23
|
+
[key: string]: unknown;
|
|
24
|
+
__pregel_send?: ((writes_: [string, unknown][]) => void) | undefined;
|
|
25
|
+
} | undefined;
|
|
26
|
+
}, options?: {
|
|
27
|
+
/** The key to write the UI messages to. Defaults to `ui`. */
|
|
28
|
+
stateKey?: string | undefined;
|
|
29
|
+
} | undefined) => {
|
|
30
|
+
push: {
|
|
31
|
+
<K extends keyof Decl & string>(message: {
|
|
32
|
+
id?: string | undefined;
|
|
33
|
+
name: K;
|
|
34
|
+
props: { [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]> }[K];
|
|
35
|
+
metadata?: Record<string, unknown> | undefined;
|
|
36
|
+
}, options?: {
|
|
37
|
+
message?: MessageLike | undefined;
|
|
38
|
+
merge?: boolean | undefined;
|
|
39
|
+
} | undefined): UIMessage<K, { [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]> }[K]>;
|
|
40
|
+
<K extends keyof Decl & string>(message: {
|
|
41
|
+
id?: string | undefined;
|
|
42
|
+
name: K;
|
|
43
|
+
props: Partial<{ [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]> }[K]>;
|
|
44
|
+
metadata?: Record<string, unknown> | undefined;
|
|
45
|
+
}, options: {
|
|
46
|
+
message?: MessageLike | undefined;
|
|
47
|
+
merge: true;
|
|
48
|
+
}): UIMessage<K, Partial<{ [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]> }[K]>>;
|
|
49
|
+
};
|
|
50
|
+
delete: (id: string) => RemoveUIMessage;
|
|
51
|
+
items: (RemoveUIMessage | UIMessage<string, Record<string, unknown>>)[];
|
|
52
|
+
};
|
|
53
|
+
//#endregion
|
|
54
|
+
export { typedUi };
|
|
55
|
+
//# sourceMappingURL=server.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.cts","names":["ComponentPropsWithoutRef","ElementType","RemoveUIMessage","UIMessage","MessageLike","typedUi","Record","Decl","K","K_1","Partial"],"sources":["../../../src/react-ui/server/server.d.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef, ElementType } from \"react\";\nimport type { RemoveUIMessage, UIMessage } from \"../types.js\";\ninterface MessageLike {\n id?: string;\n}\n/**\n * Helper to send and persist UI messages. Accepts a map of component names to React components\n * as type argument to provide type safety. Will also write to the `options?.stateKey` state.\n *\n * @param config LangGraphRunnableConfig\n * @param options\n * @returns\n */\nexport declare const typedUi: <Decl extends Record<string, ElementType>>(config: {\n writer?: ((chunk: unknown) => void) | undefined;\n runId?: string | undefined;\n metadata?: Record<string, unknown> | undefined;\n tags?: string[] | undefined;\n runName?: string | undefined;\n configurable?: {\n [key: string]: unknown;\n __pregel_send?: ((writes_: [string, unknown][]) => void) | undefined;\n } | undefined;\n}, options?: {\n /** The key to write the UI messages to. Defaults to `ui`. */\n stateKey?: string | undefined;\n} | undefined) => {\n push: {\n <K extends keyof Decl & string>(message: {\n id?: string | undefined;\n name: K;\n props: { [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]>; }[K];\n metadata?: Record<string, unknown> | undefined;\n }, options?: {\n message?: MessageLike | undefined;\n merge?: boolean | undefined;\n } | undefined): UIMessage<K, { [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]>; }[K]>;\n <K extends keyof Decl & string>(message: {\n id?: string | undefined;\n name: K;\n props: Partial<{ [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]>; }[K]>;\n metadata?: Record<string, unknown> | undefined;\n }, options: {\n message?: MessageLike | undefined;\n merge: true;\n }): UIMessage<K, Partial<{ [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]>; }[K]>>;\n };\n delete: (id: string) => RemoveUIMessage;\n items: (RemoveUIMessage | UIMessage<string, Record<string, unknown>>)[];\n};\nexport {};\n"],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { RemoveUIMessage, UIMessage } from "../types.js";
|
|
2
|
+
import { ComponentPropsWithoutRef, ElementType } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/react-ui/server/server.d.ts
|
|
3
5
|
interface MessageLike {
|
|
4
|
-
|
|
6
|
+
id?: string;
|
|
5
7
|
}
|
|
6
8
|
/**
|
|
7
9
|
* Helper to send and persist UI messages. Accepts a map of component names to React components
|
|
@@ -11,41 +13,43 @@ interface MessageLike {
|
|
|
11
13
|
* @param options
|
|
12
14
|
* @returns
|
|
13
15
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
declare const typedUi: <Decl extends Record<string, ElementType>>(config: {
|
|
17
|
+
writer?: ((chunk: unknown) => void) | undefined;
|
|
18
|
+
runId?: string | undefined;
|
|
19
|
+
metadata?: Record<string, unknown> | undefined;
|
|
20
|
+
tags?: string[] | undefined;
|
|
21
|
+
runName?: string | undefined;
|
|
22
|
+
configurable?: {
|
|
23
|
+
[key: string]: unknown;
|
|
24
|
+
__pregel_send?: ((writes_: [string, unknown][]) => void) | undefined;
|
|
25
|
+
} | undefined;
|
|
24
26
|
}, options?: {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}) => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
27
|
+
/** The key to write the UI messages to. Defaults to `ui`. */
|
|
28
|
+
stateKey?: string | undefined;
|
|
29
|
+
} | undefined) => {
|
|
30
|
+
push: {
|
|
31
|
+
<K extends keyof Decl & string>(message: {
|
|
32
|
+
id?: string | undefined;
|
|
33
|
+
name: K;
|
|
34
|
+
props: { [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]> }[K];
|
|
35
|
+
metadata?: Record<string, unknown> | undefined;
|
|
36
|
+
}, options?: {
|
|
37
|
+
message?: MessageLike | undefined;
|
|
38
|
+
merge?: boolean | undefined;
|
|
39
|
+
} | undefined): UIMessage<K, { [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]> }[K]>;
|
|
40
|
+
<K extends keyof Decl & string>(message: {
|
|
41
|
+
id?: string | undefined;
|
|
42
|
+
name: K;
|
|
43
|
+
props: Partial<{ [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]> }[K]>;
|
|
44
|
+
metadata?: Record<string, unknown> | undefined;
|
|
45
|
+
}, options: {
|
|
46
|
+
message?: MessageLike | undefined;
|
|
47
|
+
merge: true;
|
|
48
|
+
}): UIMessage<K, Partial<{ [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]> }[K]>>;
|
|
49
|
+
};
|
|
50
|
+
delete: (id: string) => RemoveUIMessage;
|
|
51
|
+
items: (RemoveUIMessage | UIMessage<string, Record<string, unknown>>)[];
|
|
50
52
|
};
|
|
51
|
-
|
|
53
|
+
//#endregion
|
|
54
|
+
export { typedUi };
|
|
55
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","names":["ComponentPropsWithoutRef","ElementType","RemoveUIMessage","UIMessage","MessageLike","typedUi","Record","Decl","K","K_1","Partial"],"sources":["../../../src/react-ui/server/server.d.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef, ElementType } from \"react\";\nimport type { RemoveUIMessage, UIMessage } from \"../types.js\";\ninterface MessageLike {\n id?: string;\n}\n/**\n * Helper to send and persist UI messages. Accepts a map of component names to React components\n * as type argument to provide type safety. Will also write to the `options?.stateKey` state.\n *\n * @param config LangGraphRunnableConfig\n * @param options\n * @returns\n */\nexport declare const typedUi: <Decl extends Record<string, ElementType>>(config: {\n writer?: ((chunk: unknown) => void) | undefined;\n runId?: string | undefined;\n metadata?: Record<string, unknown> | undefined;\n tags?: string[] | undefined;\n runName?: string | undefined;\n configurable?: {\n [key: string]: unknown;\n __pregel_send?: ((writes_: [string, unknown][]) => void) | undefined;\n } | undefined;\n}, options?: {\n /** The key to write the UI messages to. Defaults to `ui`. */\n stateKey?: string | undefined;\n} | undefined) => {\n push: {\n <K extends keyof Decl & string>(message: {\n id?: string | undefined;\n name: K;\n props: { [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]>; }[K];\n metadata?: Record<string, unknown> | undefined;\n }, options?: {\n message?: MessageLike | undefined;\n merge?: boolean | undefined;\n } | undefined): UIMessage<K, { [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]>; }[K]>;\n <K extends keyof Decl & string>(message: {\n id?: string | undefined;\n name: K;\n props: Partial<{ [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]>; }[K]>;\n metadata?: Record<string, unknown> | undefined;\n }, options: {\n message?: MessageLike | undefined;\n merge: true;\n }): UIMessage<K, Partial<{ [K_1 in keyof Decl]: ComponentPropsWithoutRef<Decl[K_1]>; }[K]>>;\n };\n delete: (id: string) => RemoveUIMessage;\n items: (RemoveUIMessage | UIMessage<string, Record<string, unknown>>)[];\n};\nexport {};\n"],"mappings":"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"}
|
|
@@ -1,44 +1,56 @@
|
|
|
1
|
-
import { v4
|
|
1
|
+
import { v4 } from "uuid";
|
|
2
|
+
|
|
3
|
+
//#region src/react-ui/server/server.ts
|
|
2
4
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
5
|
+
* Helper to send and persist UI messages. Accepts a map of component names to React components
|
|
6
|
+
* as type argument to provide type safety. Will also write to the `options?.stateKey` state.
|
|
7
|
+
*
|
|
8
|
+
* @param config LangGraphRunnableConfig
|
|
9
|
+
* @param options
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
const typedUi = (config, options) => {
|
|
13
|
+
const items = [];
|
|
14
|
+
const stateKey = options?.stateKey ?? "ui";
|
|
15
|
+
const runId = config.metadata?.run_id ?? config.runId;
|
|
16
|
+
if (!runId) throw new Error("run_id is required");
|
|
17
|
+
function handlePush(message, options$1) {
|
|
18
|
+
const evt = {
|
|
19
|
+
type: "ui",
|
|
20
|
+
id: message?.id ?? v4(),
|
|
21
|
+
name: message?.name,
|
|
22
|
+
props: message?.props,
|
|
23
|
+
metadata: {
|
|
24
|
+
merge: options$1?.merge || void 0,
|
|
25
|
+
run_id: runId,
|
|
26
|
+
tags: config.tags,
|
|
27
|
+
name: config.runName,
|
|
28
|
+
...message?.metadata,
|
|
29
|
+
...options$1?.message ? { message_id: options$1.message.id } : null
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
items.push(evt);
|
|
33
|
+
config.writer?.(evt);
|
|
34
|
+
config.configurable?.__pregel_send?.([[stateKey, evt]]);
|
|
35
|
+
return evt;
|
|
36
|
+
}
|
|
37
|
+
const handleDelete = (id) => {
|
|
38
|
+
const evt = {
|
|
39
|
+
type: "remove-ui",
|
|
40
|
+
id
|
|
41
|
+
};
|
|
42
|
+
items.push(evt);
|
|
43
|
+
config.writer?.(evt);
|
|
44
|
+
config.configurable?.__pregel_send?.([[stateKey, evt]]);
|
|
45
|
+
return evt;
|
|
46
|
+
};
|
|
47
|
+
return {
|
|
48
|
+
push: handlePush,
|
|
49
|
+
delete: handleDelete,
|
|
50
|
+
items
|
|
51
|
+
};
|
|
44
52
|
};
|
|
53
|
+
|
|
54
|
+
//#endregion
|
|
55
|
+
export { typedUi };
|
|
56
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","names":["items: (UIMessage | RemoveUIMessage)[]","evt: UIMessage<K, PropMap[K] | Partial<PropMap[K]>>","uuidv4","options","evt: RemoveUIMessage"],"sources":["../../../src/react-ui/server/server.ts"],"sourcesContent":["import { v4 as uuidv4 } from \"uuid\";\nimport type { ComponentPropsWithoutRef, ElementType } from \"react\";\nimport type { RemoveUIMessage, UIMessage } from \"../types.js\";\n\ninterface MessageLike {\n id?: string;\n}\n\n/**\n * Helper to send and persist UI messages. Accepts a map of component names to React components\n * as type argument to provide type safety. Will also write to the `options?.stateKey` state.\n *\n * @param config LangGraphRunnableConfig\n * @param options\n * @returns\n */\nexport const typedUi = <Decl extends Record<string, ElementType>>(\n config: {\n writer?: (chunk: unknown) => void;\n runId?: string;\n metadata?: Record<string, unknown>;\n tags?: string[];\n runName?: string;\n configurable?: {\n __pregel_send?: (writes_: [string, unknown][]) => void;\n [key: string]: unknown;\n };\n },\n options?: {\n /** The key to write the UI messages to. Defaults to `ui`. */\n stateKey?: string;\n }\n) => {\n type PropMap = { [K in keyof Decl]: ComponentPropsWithoutRef<Decl[K]> };\n const items: (UIMessage | RemoveUIMessage)[] = [];\n const stateKey = options?.stateKey ?? \"ui\";\n\n const runId = (config.metadata?.run_id as string | undefined) ?? config.runId;\n if (!runId) throw new Error(\"run_id is required\");\n\n function handlePush<K extends keyof PropMap & string>(\n message: {\n id?: string;\n name: K;\n props: PropMap[K];\n metadata?: Record<string, unknown>;\n },\n options?: { message?: MessageLike; merge?: boolean }\n ): UIMessage<K, PropMap[K]>;\n\n function handlePush<K extends keyof PropMap & string>(\n message: {\n id?: string;\n name: K;\n props: Partial<PropMap[K]>;\n metadata?: Record<string, unknown>;\n },\n options: { message?: MessageLike; merge: true }\n ): UIMessage<K, Partial<PropMap[K]>>;\n\n function handlePush<K extends keyof PropMap & string>(\n message: {\n id?: string;\n name: K;\n props: PropMap[K] | Partial<PropMap[K]>;\n metadata?: Record<string, unknown>;\n },\n options?: { message?: MessageLike; merge?: boolean }\n ): UIMessage<K, PropMap[K] | Partial<PropMap[K]>> {\n const evt: UIMessage<K, PropMap[K] | Partial<PropMap[K]>> = {\n type: \"ui\" as const,\n id: message?.id ?? uuidv4(),\n name: message?.name,\n props: message?.props,\n metadata: {\n merge: options?.merge || undefined,\n run_id: runId,\n tags: config.tags,\n name: config.runName,\n ...message?.metadata,\n ...(options?.message ? { message_id: options.message.id } : null),\n },\n };\n items.push(evt);\n config.writer?.(evt);\n config.configurable?.__pregel_send?.([[stateKey, evt]]);\n return evt;\n }\n\n const handleDelete = (id: string): RemoveUIMessage => {\n const evt: RemoveUIMessage = { type: \"remove-ui\", id };\n items.push(evt);\n config.writer?.(evt);\n config.configurable?.__pregel_send?.([[stateKey, evt]]);\n return evt;\n };\n\n return { push: handlePush, delete: handleDelete, items };\n};\n"],"mappings":";;;;;;;;;;;AAgBA,MAAa,WACX,QAWA,YAIG;CAEH,MAAMA,QAAyC;CAC/C,MAAM,WAAW,SAAS,YAAY;CAEtC,MAAM,QAAS,OAAO,UAAU,UAAiC,OAAO;AACxE,KAAI,CAAC,MAAO,OAAM,IAAI,MAAM;CAsB5B,SAAS,WACP,SAMA,WACgD;EAChD,MAAMC,MAAsD;GAC1D,MAAM;GACN,IAAI,SAAS,MAAMC;GACnB,MAAM,SAAS;GACf,OAAO,SAAS;GAChB,UAAU;IACR,OAAOC,WAAS,SAAS;IACzB,QAAQ;IACR,MAAM,OAAO;IACb,MAAM,OAAO;IACb,GAAG,SAAS;IACZ,GAAIA,WAAS,UAAU,EAAE,YAAYA,UAAQ,QAAQ,OAAO;;;AAGhE,QAAM,KAAK;AACX,SAAO,SAAS;AAChB,SAAO,cAAc,gBAAgB,CAAC,CAAC,UAAU;AACjD,SAAO;;CAGT,MAAM,gBAAgB,OAAgC;EACpD,MAAMC,MAAuB;GAAE,MAAM;GAAa;;AAClD,QAAM,KAAK;AACX,SAAO,SAAS;AAChB,SAAO,cAAc,gBAAgB,CAAC,CAAC,UAAU;AACjD,SAAO;;AAGT,QAAO;EAAE,MAAM;EAAY,QAAQ;EAAc"}
|
package/dist/react-ui/types.cjs
CHANGED
|
@@ -1,42 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.isUIMessage = isUIMessage;
|
|
4
|
-
exports.isRemoveUIMessage = isRemoveUIMessage;
|
|
5
|
-
exports.uiMessageReducer = uiMessageReducer;
|
|
1
|
+
|
|
2
|
+
//#region src/react-ui/types.ts
|
|
6
3
|
function isUIMessage(message) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return false;
|
|
11
|
-
return message.type === "ui";
|
|
4
|
+
if (typeof message !== "object" || message == null) return false;
|
|
5
|
+
if (!("type" in message)) return false;
|
|
6
|
+
return message.type === "ui";
|
|
12
7
|
}
|
|
13
8
|
function isRemoveUIMessage(message) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return false;
|
|
18
|
-
return message.type === "remove-ui";
|
|
9
|
+
if (typeof message !== "object" || message == null) return false;
|
|
10
|
+
if (!("type" in message)) return false;
|
|
11
|
+
return message.type === "remove-ui";
|
|
19
12
|
}
|
|
20
13
|
function uiMessageReducer(state, update) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return newState;
|
|
14
|
+
const events = Array.isArray(update) ? update : [update];
|
|
15
|
+
let newState = state.slice();
|
|
16
|
+
for (const event of events) {
|
|
17
|
+
if (event.type === "remove-ui") {
|
|
18
|
+
newState = newState.filter((ui) => ui.id !== event.id);
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const index = state.findIndex((ui) => ui.id === event.id);
|
|
22
|
+
if (index !== -1) newState[index] = typeof event.metadata === "object" && event.metadata != null && event.metadata.merge ? {
|
|
23
|
+
...event,
|
|
24
|
+
props: {
|
|
25
|
+
...state[index].props,
|
|
26
|
+
...event.props
|
|
27
|
+
}
|
|
28
|
+
} : event;
|
|
29
|
+
else newState.push(event);
|
|
30
|
+
}
|
|
31
|
+
return newState;
|
|
42
32
|
}
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
exports.isRemoveUIMessage = isRemoveUIMessage;
|
|
36
|
+
exports.isUIMessage = isUIMessage;
|
|
37
|
+
exports.uiMessageReducer = uiMessageReducer;
|
|
38
|
+
//# sourceMappingURL=types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.cjs","names":[],"sources":["../../src/react-ui/types.ts"],"sourcesContent":["export interface UIMessage<\n TName extends string = string,\n TProps extends Record<string, unknown> = Record<string, unknown>\n> {\n type: \"ui\";\n\n id: string;\n name: TName;\n props: TProps;\n metadata?: {\n merge?: boolean;\n run_id?: string;\n name?: string;\n tags?: string[];\n message_id?: string;\n [key: string]: unknown;\n };\n}\n\nexport interface RemoveUIMessage {\n type: \"remove-ui\";\n id: string;\n}\n\nexport function isUIMessage(message: unknown): message is UIMessage {\n if (typeof message !== \"object\" || message == null) return false;\n if (!(\"type\" in message)) return false;\n return message.type === \"ui\";\n}\n\nexport function isRemoveUIMessage(\n message: unknown\n): message is RemoveUIMessage {\n if (typeof message !== \"object\" || message == null) return false;\n if (!(\"type\" in message)) return false;\n return message.type === \"remove-ui\";\n}\n\nexport function uiMessageReducer(\n state: UIMessage[],\n update: UIMessage | RemoveUIMessage | (UIMessage | RemoveUIMessage)[]\n) {\n const events = Array.isArray(update) ? update : [update];\n let newState = state.slice();\n\n for (const event of events) {\n if (event.type === \"remove-ui\") {\n newState = newState.filter((ui) => ui.id !== event.id);\n continue;\n }\n\n const index = state.findIndex((ui) => ui.id === event.id);\n if (index !== -1) {\n newState[index] =\n typeof event.metadata === \"object\" &&\n event.metadata != null &&\n event.metadata.merge\n ? { ...event, props: { ...state[index].props, ...event.props } }\n : event;\n } else {\n newState.push(event);\n }\n }\n\n return newState;\n}\n"],"mappings":";;AAwBA,SAAgB,YAAY,SAAwC;AAClE,KAAI,OAAO,YAAY,YAAY,WAAW,KAAM,QAAO;AAC3D,KAAI,EAAE,UAAU,SAAU,QAAO;AACjC,QAAO,QAAQ,SAAS;;AAG1B,SAAgB,kBACd,SAC4B;AAC5B,KAAI,OAAO,YAAY,YAAY,WAAW,KAAM,QAAO;AAC3D,KAAI,EAAE,UAAU,SAAU,QAAO;AACjC,QAAO,QAAQ,SAAS;;AAG1B,SAAgB,iBACd,OACA,QACA;CACA,MAAM,SAAS,MAAM,QAAQ,UAAU,SAAS,CAAC;CACjD,IAAI,WAAW,MAAM;AAErB,MAAK,MAAM,SAAS,QAAQ;AAC1B,MAAI,MAAM,SAAS,aAAa;AAC9B,cAAW,SAAS,QAAQ,OAAO,GAAG,OAAO,MAAM;AACnD;;EAGF,MAAM,QAAQ,MAAM,WAAW,OAAO,GAAG,OAAO,MAAM;AACtD,MAAI,UAAU,GACZ,UAAS,SACP,OAAO,MAAM,aAAa,YAC1B,MAAM,YAAY,QAClB,MAAM,SAAS,QACX;GAAE,GAAG;GAAO,OAAO;IAAE,GAAG,MAAM,OAAO;IAAO,GAAG,MAAM;;MACrD;MAEN,UAAS,KAAK;;AAIlB,QAAO"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/react-ui/types.d.ts
|
|
2
|
+
interface UIMessage<TName extends string = string, TProps extends Record<string, unknown> = Record<string, unknown>> {
|
|
3
|
+
type: "ui";
|
|
4
|
+
id: string;
|
|
5
|
+
name: TName;
|
|
6
|
+
props: TProps;
|
|
7
|
+
metadata?: {
|
|
8
|
+
merge?: boolean;
|
|
9
|
+
run_id?: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
tags?: string[];
|
|
12
|
+
message_id?: string;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
interface RemoveUIMessage {
|
|
17
|
+
type: "remove-ui";
|
|
18
|
+
id: string;
|
|
19
|
+
}
|
|
20
|
+
declare function isUIMessage(message: unknown): message is UIMessage;
|
|
21
|
+
declare function isRemoveUIMessage(message: unknown): message is RemoveUIMessage;
|
|
22
|
+
declare function uiMessageReducer(state: UIMessage[], update: UIMessage | RemoveUIMessage | (UIMessage | RemoveUIMessage)[]): UIMessage<string, Record<string, unknown>>[];
|
|
23
|
+
//#endregion
|
|
24
|
+
export { RemoveUIMessage, UIMessage, isRemoveUIMessage, isUIMessage, uiMessageReducer };
|
|
25
|
+
//# sourceMappingURL=types.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.cts","names":["UIMessage","Record","TName","TProps","RemoveUIMessage","isUIMessage","isRemoveUIMessage","uiMessageReducer"],"sources":["../../src/react-ui/types.d.ts"],"sourcesContent":["export interface UIMessage<TName extends string = string, TProps extends Record<string, unknown> = Record<string, unknown>> {\n type: \"ui\";\n id: string;\n name: TName;\n props: TProps;\n metadata?: {\n merge?: boolean;\n run_id?: string;\n name?: string;\n tags?: string[];\n message_id?: string;\n [key: string]: unknown;\n };\n}\nexport interface RemoveUIMessage {\n type: \"remove-ui\";\n id: string;\n}\nexport declare function isUIMessage(message: unknown): message is UIMessage;\nexport declare function isRemoveUIMessage(message: unknown): message is RemoveUIMessage;\nexport declare function uiMessageReducer(state: UIMessage[], update: UIMessage | RemoveUIMessage | (UIMessage | RemoveUIMessage)[]): UIMessage<string, Record<string, unknown>>[];\n"],"mappings":";UAAiBA,wDAAwDC,0BAA0BA;EAAlFD,IAAAA,EAAAA,IAAAA;EAAS,EAAA,EAAA,MAAA;MAA+CC,EAG/DC,KAH+DD;OAA0BA,EAIxFE,MAJwFF;UAGzFC,CAAAA,EAAAA;IACCC,KAAAA,CAAAA,EAAAA,OAAAA;;IAUMC,IAAAA,CAAAA,EAAAA,MAAAA;IAIOC,IAAAA,CAAAA,EAAAA,MAAW,EAAA;IACXC,UAAAA,CAAAA,EAAAA,MAAiB;IACjBC,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EAAgB,OAAA;EAAA,CAAA;;AAA6BP,UANpDI,eAAAA,CAMoDJ;MAAYI,EAAAA,WAAAA;MAAmBJ,MAAAA;;AAAmDC,iBAF/HI,WAAAA,CAE+HJ,OAAAA,EAAAA,OAAAA,CAAAA,EAAAA,OAAAA,IAFrFD,SAEqFC;AAAlBD,iBAD7GM,iBAAAA,CAC6GN,OAAAA,EAAAA,OAAAA,CAAAA,EAAAA,OAAAA,IAD7DI,eAC6DJ;iBAA7GO,gBAAAA,QAAwBP,qBAAqBA,YAAYI,mBAAmBJ,YAAYI,qBAAqBJ,kBAAkBC"}
|
package/dist/react-ui/types.d.ts
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
//#region src/react-ui/types.d.ts
|
|
2
|
+
interface UIMessage<TName extends string = string, TProps extends Record<string, unknown> = Record<string, unknown>> {
|
|
3
|
+
type: "ui";
|
|
4
|
+
id: string;
|
|
5
|
+
name: TName;
|
|
6
|
+
props: TProps;
|
|
7
|
+
metadata?: {
|
|
8
|
+
merge?: boolean;
|
|
9
|
+
run_id?: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
tags?: string[];
|
|
12
|
+
message_id?: string;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
};
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
interface RemoveUIMessage {
|
|
17
|
+
type: "remove-ui";
|
|
18
|
+
id: string;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
declare function isUIMessage(message: unknown): message is UIMessage;
|
|
21
|
+
declare function isRemoveUIMessage(message: unknown): message is RemoveUIMessage;
|
|
22
|
+
declare function uiMessageReducer(state: UIMessage[], update: UIMessage | RemoveUIMessage | (UIMessage | RemoveUIMessage)[]): UIMessage<string, Record<string, unknown>>[];
|
|
23
|
+
//#endregion
|
|
24
|
+
export { RemoveUIMessage, UIMessage, isRemoveUIMessage, isUIMessage, uiMessageReducer };
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":["UIMessage","Record","TName","TProps","RemoveUIMessage","isUIMessage","isRemoveUIMessage","uiMessageReducer"],"sources":["../../src/react-ui/types.d.ts"],"sourcesContent":["export interface UIMessage<TName extends string = string, TProps extends Record<string, unknown> = Record<string, unknown>> {\n type: \"ui\";\n id: string;\n name: TName;\n props: TProps;\n metadata?: {\n merge?: boolean;\n run_id?: string;\n name?: string;\n tags?: string[];\n message_id?: string;\n [key: string]: unknown;\n };\n}\nexport interface RemoveUIMessage {\n type: \"remove-ui\";\n id: string;\n}\nexport declare function isUIMessage(message: unknown): message is UIMessage;\nexport declare function isRemoveUIMessage(message: unknown): message is RemoveUIMessage;\nexport declare function uiMessageReducer(state: UIMessage[], update: UIMessage | RemoveUIMessage | (UIMessage | RemoveUIMessage)[]): UIMessage<string, Record<string, unknown>>[];\n"],"mappings":";UAAiBA,wDAAwDC,0BAA0BA;EAAlFD,IAAAA,EAAAA,IAAAA;EAAS,EAAA,EAAA,MAAA;MAA+CC,EAG/DC,KAH+DD;OAA0BA,EAIxFE,MAJwFF;UAGzFC,CAAAA,EAAAA;IACCC,KAAAA,CAAAA,EAAAA,OAAAA;;IAUMC,IAAAA,CAAAA,EAAAA,MAAAA;IAIOC,IAAAA,CAAAA,EAAAA,MAAW,EAAA;IACXC,UAAAA,CAAAA,EAAAA,MAAiB;IACjBC,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EAAgB,OAAA;EAAA,CAAA;;AAA6BP,UANpDI,eAAAA,CAMoDJ;MAAYI,EAAAA,WAAAA;MAAmBJ,MAAAA;;AAAmDC,iBAF/HI,WAAAA,CAE+HJ,OAAAA,EAAAA,OAAAA,CAAAA,EAAAA,OAAAA,IAFrFD,SAEqFC;AAAlBD,iBAD7GM,iBAAAA,CAC6GN,OAAAA,EAAAA,OAAAA,CAAAA,EAAAA,OAAAA,IAD7DI,eAC6DJ;iBAA7GO,gBAAAA,QAAwBP,qBAAqBA,YAAYI,mBAAmBJ,YAAYI,qBAAqBJ,kBAAkBC"}
|