@dremio/js-sdk 0.60.0 → 0.61.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/dist/cloud/projects/Project.d.ts +5 -0
- package/dist/cloud/projects/projectPropertiesCodec.d.ts +15 -0
- package/dist/cloud/projects/projectPropertiesCodec.js +6 -0
- package/dist/cloud/projects/projectPropertiesCodec.js.map +1 -1
- package/dist/enterprise/ai/conversations/createConversationMachine.js +3 -2
- package/dist/enterprise/ai/conversations/createConversationMachine.js.map +1 -1
- package/dist-iife/cloud.js +73 -12
- package/dist-iife/enterprise.js +67 -12
- package/package.json +1 -1
|
@@ -50,6 +50,11 @@ export declare class Project implements ProjectInterface {
|
|
|
50
50
|
clientSecret: z.ZodMiniString<string>;
|
|
51
51
|
tenantId: z.ZodMiniString<string>;
|
|
52
52
|
type: z.ZodMiniLiteral<"AZURE_STORAGE_CLIENT_CREDENTIALS">;
|
|
53
|
+
}, z.core.$strip>, z.ZodMiniObject<{
|
|
54
|
+
clientId: z.ZodMiniString<string>;
|
|
55
|
+
storageAccountName: z.ZodMiniString<string>;
|
|
56
|
+
tenantId: z.ZodMiniString<string>;
|
|
57
|
+
type: z.ZodMiniLiteral<"AZURE_WORKLOAD_IDENTITY">;
|
|
53
58
|
}, z.core.$strip>], "type">>>;
|
|
54
59
|
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
55
60
|
}, z.core.$strip>;
|
|
@@ -26,6 +26,11 @@ export declare const projectPropertiesCodec: z.ZodMiniCodec<z.ZodMiniObject<{
|
|
|
26
26
|
clientSecret: z.ZodMiniString<string>;
|
|
27
27
|
tenantId: z.ZodMiniString<string>;
|
|
28
28
|
type: z.ZodMiniLiteral<"AZURE_STORAGE_CLIENT_CREDENTIALS">;
|
|
29
|
+
}, z.core.$strip>, z.ZodMiniObject<{
|
|
30
|
+
clientId: z.ZodMiniString<string>;
|
|
31
|
+
storageAccountName: z.ZodMiniString<string>;
|
|
32
|
+
tenantId: z.ZodMiniString<string>;
|
|
33
|
+
type: z.ZodMiniLiteral<"AZURE_WORKLOAD_IDENTITY">;
|
|
29
34
|
}, z.core.$strip>], "type">>;
|
|
30
35
|
id: z.ZodMiniString<string>;
|
|
31
36
|
jdbcConnectionString: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
@@ -94,6 +99,11 @@ export declare const projectPropertiesCodec: z.ZodMiniCodec<z.ZodMiniObject<{
|
|
|
94
99
|
clientSecret: z.ZodMiniString<string>;
|
|
95
100
|
tenantId: z.ZodMiniString<string>;
|
|
96
101
|
type: z.ZodMiniLiteral<"AZURE_STORAGE_CLIENT_CREDENTIALS">;
|
|
102
|
+
}, z.core.$strip>, z.ZodMiniObject<{
|
|
103
|
+
clientId: z.ZodMiniString<string>;
|
|
104
|
+
storageAccountName: z.ZodMiniString<string>;
|
|
105
|
+
tenantId: z.ZodMiniString<string>;
|
|
106
|
+
type: z.ZodMiniLiteral<"AZURE_WORKLOAD_IDENTITY">;
|
|
97
107
|
}, z.core.$strip>], "type">>;
|
|
98
108
|
jdbcConnectionString: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
99
109
|
lastStateError: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
@@ -123,6 +133,11 @@ export declare const projectUpdateSchema: z.ZodMiniObject<{
|
|
|
123
133
|
clientSecret: z.ZodMiniString<string>;
|
|
124
134
|
tenantId: z.ZodMiniString<string>;
|
|
125
135
|
type: z.ZodMiniLiteral<"AZURE_STORAGE_CLIENT_CREDENTIALS">;
|
|
136
|
+
}, z.core.$strip>, z.ZodMiniObject<{
|
|
137
|
+
clientId: z.ZodMiniString<string>;
|
|
138
|
+
storageAccountName: z.ZodMiniString<string>;
|
|
139
|
+
tenantId: z.ZodMiniString<string>;
|
|
140
|
+
type: z.ZodMiniLiteral<"AZURE_WORKLOAD_IDENTITY">;
|
|
126
141
|
}, z.core.$strip>], "type">>>;
|
|
127
142
|
name: z.ZodMiniOptional<z.ZodMiniString<string>>;
|
|
128
143
|
}, z.core.$strip>;
|
|
@@ -40,6 +40,12 @@ const sharedProjectPropertiesInSchema = z.object({
|
|
|
40
40
|
tenantId: z.string(),
|
|
41
41
|
type: z.literal("AZURE_STORAGE_CLIENT_CREDENTIALS"),
|
|
42
42
|
}),
|
|
43
|
+
z.object({
|
|
44
|
+
clientId: z.string(),
|
|
45
|
+
storageAccountName: z.string(),
|
|
46
|
+
tenantId: z.string(),
|
|
47
|
+
type: z.literal("AZURE_WORKLOAD_IDENTITY"),
|
|
48
|
+
}),
|
|
43
49
|
])),
|
|
44
50
|
id: z.string(),
|
|
45
51
|
jdbcConnectionString: z.optional(z.string()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectPropertiesCodec.js","sourceRoot":"","sources":["../../../src/cloud/projects/projectPropertiesCodec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,QAAQ,CACrB,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAC3B,CAAC,CAAC,MAAM,CAAC;YACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;SAC9B,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,mBAAmB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3C,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACtD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;SAC5B,CAAC;QACF,CAAC,CAAC,MAAM,CAAC;YACP,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;YACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;YACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;YACpB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC;SACpD,CAAC;KACH,CAAC,CACH;IACD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,oBAAoB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5C,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACtC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;QACZ,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,WAAW;QACX,UAAU;QACV,cAAc;QACd,UAAU;QACV,WAAW;KACZ,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC3C,+BAA+B,EAC/B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE;IACvF,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;IAC7B,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;CAC/B,CAAC,EACF;IACE,MAAM,CAAC,CAAC;QACN,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,OAAO;YACL,GAAG,IAAI;YACP,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC;YAC9B,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC;SACjC,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,CAAC;QACN,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7C,OAAO;YACL,GAAG,IAAI;YACP,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;YAC/B,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;SAClC,CAAC;IACJ,CAAC;CACF,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,OAAO,CAC1C,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE;IACrE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CACpB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,4CAA4C,CAAC,EAC5D,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,4CAA4C,CAAC,EAC7D,CAAC,CAAC,KAAK,CACL,2BAA2B,EAC3B,2HAA2H,CAC5H,EACD,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACzB,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,GAAG;gBACV,OAAO,EAAE,yCAAyC,SAAS,GAAG;aAC/D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CACH;CACF,CAAC,CACH,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,QAAQ;IACR,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;CACA,CAAC","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as z from \"zod/mini\";\n\nconst sharedProjectPropertiesInSchema = z.object({\n catalog: z.optional(z.object({ storageLocation: z.string() })),\n cloudId: z.string(),\n cloudType: z.enum([\"AWS\", \"AZURE\"]),\n createdAt: z.string(),\n createdBy: z.string(),\n credentials: z.optional(\n z.discriminatedUnion(\"type\", [\n z.object({\n accessKeyId: z.string(),\n secretAccessKey: z.optional(z.string()),\n type: z.literal(\"ACCESS_KEY\"),\n }),\n z.object({\n externalId: z.string(),\n externalIdSignature: z.optional(z.string()),\n instanceProfileArn: z.optional(z.nullable(z.string())),\n roleArn: z.string(),\n type: z.literal(\"IAM_ROLE\"),\n }),\n z.object({\n accountName: z.string(),\n clientId: z.string(),\n clientSecret: z.string(),\n tenantId: z.string(),\n type: z.literal(\"AZURE_STORAGE_CLIENT_CREDENTIALS\"),\n }),\n ]),\n ),\n id: z.string(),\n jdbcConnectionString: z.optional(z.string()),\n lastStateError: z.optional(z.object({ error: z.string(), timestamp: z.number() })),\n modifiedAt: z.string(),\n modifiedBy: z.string(),\n name: z.string(),\n numberOfEngines: z.number().check(z.int(), z.minimum(0)),\n primaryCatalog: z.optional(z.string()),\n projectStore: z.optional(z.string()),\n state: z.enum([\n \"ACTIVATING\",\n \"ACTIVE\",\n \"ARCHIVED\",\n \"ARCHIVING\",\n \"CREATING\",\n \"DEACTIVATING\",\n \"INACTIVE\",\n \"RESTORING\",\n ]),\n type: z.enum([\"QUERY_ENGINE\"]),\n});\n\nexport const projectPropertiesCodec = z.codec(\n sharedProjectPropertiesInSchema,\n z.extend(z.omit(sharedProjectPropertiesInSchema, { createdAt: true, modifiedAt: true }), {\n createdAt: z.instanceof(Date),\n modifiedAt: z.instanceof(Date),\n }),\n {\n decode(v) {\n const { createdAt, modifiedAt, ...rest } = v;\n return {\n ...rest,\n createdAt: new Date(createdAt),\n modifiedAt: new Date(modifiedAt),\n };\n },\n encode(v) {\n const { createdAt, modifiedAt, ...rest } = v;\n return {\n ...rest,\n createdAt: createdAt.toString(),\n modifiedAt: modifiedAt.toString(),\n };\n },\n },\n);\n\nexport const projectUpdateSchema = z.partial(\n z.extend(z.pick(projectPropertiesCodec.def.in, { credentials: true }), {\n name: z.string().check(\n z.minLength(6, \"Project name must be at least 6 characters\"),\n z.maxLength(30, \"Project name must be at most 30 characters\"),\n z.regex(\n /^[a-z][a-z0-9-]*[a-z0-9]$/,\n \"Project name must start with a letter, contain only lowercase letters, numbers, and hyphens, and cannot end with a hyphen\",\n ),\n z.superRefine((val, ctx) => {\n const foundWord = projectDisallowedWords.find((word) => val.includes(word));\n if (foundWord) {\n ctx.addIssue({\n code: \"custom\",\n input: val,\n message: `Project name cannot contain the word \"${foundWord}\"`,\n });\n }\n }),\n ),\n }),\n);\n\nconst projectDisallowedWords = [\n \"dremio\",\n \"ssl\",\n \"admin\",\n \"system\",\n \"null\",\n \"undefined\",\n \"static\",\n \"assets\",\n \"login\",\n \"logout\",\n] as const;\n"]}
|
|
1
|
+
{"version":3,"file":"projectPropertiesCodec.js","sourceRoot":"","sources":["../../../src/cloud/projects/projectPropertiesCodec.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as z from \"zod/mini\";\n\nconst sharedProjectPropertiesInSchema = z.object({\n catalog: z.optional(z.object({ storageLocation: z.string() })),\n cloudId: z.string(),\n cloudType: z.enum([\"AWS\", \"AZURE\"]),\n createdAt: z.string(),\n createdBy: z.string(),\n credentials: z.optional(\n z.discriminatedUnion(\"type\", [\n z.object({\n accessKeyId: z.string(),\n secretAccessKey: z.optional(z.string()),\n type: z.literal(\"ACCESS_KEY\"),\n }),\n z.object({\n externalId: z.string(),\n externalIdSignature: z.optional(z.string()),\n instanceProfileArn: z.optional(z.nullable(z.string())),\n roleArn: z.string(),\n type: z.literal(\"IAM_ROLE\"),\n }),\n z.object({\n accountName: z.string(),\n clientId: z.string(),\n clientSecret: z.string(),\n tenantId: z.string(),\n type: z.literal(\"AZURE_STORAGE_CLIENT_CREDENTIALS\"),\n }),\n z.object({\n clientId: z.string(),\n storageAccountName: z.string(),\n tenantId: z.string(),\n type: z.literal(\"AZURE_WORKLOAD_IDENTITY\"),\n }),\n ]),\n ),\n id: z.string(),\n jdbcConnectionString: z.optional(z.string()),\n lastStateError: z.optional(z.object({ error: z.string(), timestamp: z.number() })),\n modifiedAt: z.string(),\n modifiedBy: z.string(),\n name: z.string(),\n numberOfEngines: z.number().check(z.int(), z.minimum(0)),\n primaryCatalog: z.optional(z.string()),\n projectStore: z.optional(z.string()),\n state: z.enum([\n \"ACTIVATING\",\n \"ACTIVE\",\n \"ARCHIVED\",\n \"ARCHIVING\",\n \"CREATING\",\n \"DEACTIVATING\",\n \"INACTIVE\",\n \"RESTORING\",\n ]),\n type: z.enum([\"QUERY_ENGINE\"]),\n});\n\nexport const projectPropertiesCodec = z.codec(\n sharedProjectPropertiesInSchema,\n z.extend(z.omit(sharedProjectPropertiesInSchema, { createdAt: true, modifiedAt: true }), {\n createdAt: z.instanceof(Date),\n modifiedAt: z.instanceof(Date),\n }),\n {\n decode(v) {\n const { createdAt, modifiedAt, ...rest } = v;\n return {\n ...rest,\n createdAt: new Date(createdAt),\n modifiedAt: new Date(modifiedAt),\n };\n },\n encode(v) {\n const { createdAt, modifiedAt, ...rest } = v;\n return {\n ...rest,\n createdAt: createdAt.toString(),\n modifiedAt: modifiedAt.toString(),\n };\n },\n },\n);\n\nexport const projectUpdateSchema = z.partial(\n z.extend(z.pick(projectPropertiesCodec.def.in, { credentials: true }), {\n name: z.string().check(\n z.minLength(6, \"Project name must be at least 6 characters\"),\n z.maxLength(30, \"Project name must be at most 30 characters\"),\n z.regex(\n /^[a-z][a-z0-9-]*[a-z0-9]$/,\n \"Project name must start with a letter, contain only lowercase letters, numbers, and hyphens, and cannot end with a hyphen\",\n ),\n z.superRefine((val, ctx) => {\n const foundWord = projectDisallowedWords.find((word) => val.includes(word));\n if (foundWord) {\n ctx.addIssue({\n code: \"custom\",\n input: val,\n message: `Project name cannot contain the word \"${foundWord}\"`,\n });\n }\n }),\n ),\n }),\n);\n\nconst projectDisallowedWords = [\n \"dremio\",\n \"ssl\",\n \"admin\",\n \"system\",\n \"null\",\n \"undefined\",\n \"static\",\n \"assets\",\n \"login\",\n \"logout\",\n] as const;\n"]}
|
|
@@ -23,9 +23,10 @@ import { createExchangeRun } from "./methods/createExchangeRun.js";
|
|
|
23
23
|
import { stopExchangeRun } from "./methods/stopExchangeRun.js";
|
|
24
24
|
import { streamRunEvents } from "./methods/streamRunEvents.js";
|
|
25
25
|
import { fromTextEventStream } from "../../../common/fromTextEventStream.js";
|
|
26
|
-
import { map } from "rxjs";
|
|
26
|
+
import { map, timeout } from "rxjs";
|
|
27
27
|
import { chatEventCodec } from "../chat/chatEventSchema.js";
|
|
28
28
|
const RETRIEVE_STATE_TIMEOUT_MS = 10_000;
|
|
29
|
+
const STREAM_IDLE_TIMEOUT_MS = 60_000;
|
|
29
30
|
const STREAM_RETRY_DELAY_MS = 2500;
|
|
30
31
|
export const MAX_STREAM_RETRIES = 5;
|
|
31
32
|
const STREAM_STATE_RESET = {
|
|
@@ -85,7 +86,7 @@ export const createConversationMachine = (config) => setup({
|
|
|
85
86
|
}
|
|
86
87
|
return result.value;
|
|
87
88
|
})),
|
|
88
|
-
streamRun: fromObservable(({ input }) => fromTextEventStream(({ signal }) => streamRunEvents(config)({ conversationId: input.conversationId, runId: input.runId }, { signal })).pipe(map((event) => z.decode(chatEventCodec, JSON.parse(event.data))))),
|
|
89
|
+
streamRun: fromObservable(({ input }) => fromTextEventStream(({ signal }) => streamRunEvents(config)({ conversationId: input.conversationId, runId: input.runId }, { signal })).pipe(map((event) => z.decode(chatEventCodec, JSON.parse(event.data))), timeout({ each: STREAM_IDLE_TIMEOUT_MS }))),
|
|
89
90
|
},
|
|
90
91
|
delays: {
|
|
91
92
|
STREAM_RETRY_DELAY: STREAM_RETRY_DELAY_MS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createConversationMachine.js","sourceRoot":"","sources":["../../../../src/enterprise/ai/conversations/createConversationMachine.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { setup, fromObservable, fromPromise, assign, enqueueActions, emit } from \"xstate\";\nimport type { UserChatMessage } from \"../chat/UserChatMessage.ts\";\nimport { AgentConversation } from \"./AgentConversation.ts\";\nimport type { ConversationExchange } from \"./reduceChatEvents.ts\";\nimport type { SonarV4Config } from \"../../../common/Config.ts\";\nimport { createConversation, createConversationCodec } from \"./methods/createConversation.ts\";\nimport * as z from \"zod/mini\";\nimport { retrieveConversation } from \"./methods/retrieveConversation.ts\";\nimport { retrieveConversationHistory } from \"./methods/retrieveConversationHistory.ts\";\nimport { createExchangeRun } from \"./methods/createExchangeRun.ts\";\nimport { stopExchangeRun } from \"./methods/stopExchangeRun.ts\";\nimport { streamRunEvents } from \"./methods/streamRunEvents.ts\";\nimport { fromTextEventStream } from \"../../../common/fromTextEventStream.ts\";\nimport { map } from \"rxjs\";\nimport { chatEventCodec, type ChatEvent } from \"../chat/chatEventSchema.ts\";\nimport type { HttpError } from \"../../../common/HttpError.ts\";\n\nexport type ConversationMachineInput = {\n conversationId: string | null;\n};\n\nexport type ConversationMachineContext = {\n conversationId: string | null;\n conversationSnapshot?: ConversationExchange[];\n currentRunId?: string | null;\n lastError?: unknown;\n messageAttempt?: UserChatMessage;\n receivedEndOfStream: boolean;\n streamRetryCount: number;\n userRequestedStop: boolean;\n};\nexport type ConversationMachineEvents =\n | { type: \"STOP_RUN\" }\n | { type: \"SUBMIT_USER_MESSAGE\"; message: UserChatMessage }\n | { type: \"RETRY_MESSAGE\" }\n | { type: \"REFRESH_HISTORY\" };\n\nexport type ConversationMachineEmitted =\n | {\n type: \"apiError\";\n error: HttpError;\n }\n | {\n type: \"chatEventReceived\";\n chatEvent: ChatEvent;\n }\n | {\n type: \"conversationCreated\";\n id: string;\n };\n\nconst RETRIEVE_STATE_TIMEOUT_MS = 10_000;\nconst STREAM_RETRY_DELAY_MS = 2500;\nexport const MAX_STREAM_RETRIES = 5;\nconst STREAM_STATE_RESET = {\n receivedEndOfStream: false,\n streamRetryCount: 0,\n userRequestedStop: false,\n};\n\nexport const createConversationMachine = (config: SonarV4Config) =>\n setup({\n actors: {\n createConversation: fromPromise(\n ({ input }: { input: z.input<typeof createConversationCodec> }) =>\n createConversation(config)(input).then((result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n }),\n ),\n retrieveConversation: fromPromise(\n ({ input, signal }: { input: { conversationId: string }; signal: AbortSignal }) =>\n retrieveConversation(config)(input.conversationId, { signal }).then((result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n }),\n ),\n retrieveHistory: fromPromise(\n ({ input, signal }: { input: { conversationId: string }; signal: AbortSignal }) =>\n retrieveConversationHistory(config)(input.conversationId, { signal }).then((result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n }),\n ),\n retrieveState: fromPromise(\n async ({ input, signal }: { input: { conversationId: string }; signal: AbortSignal }) => {\n const timeoutSignal = AbortSignal.any([\n signal,\n AbortSignal.timeout(RETRIEVE_STATE_TIMEOUT_MS),\n ]);\n const [conversationResult, historyResult] = await Promise.all([\n retrieveConversation(config)(input.conversationId, { signal: timeoutSignal }),\n retrieveConversationHistory(config)(input.conversationId, { signal: timeoutSignal }),\n ]);\n\n if (conversationResult.isErr()) {\n throw conversationResult.error;\n }\n\n if (historyResult.isErr()) {\n throw historyResult.error;\n }\n\n return {\n conversation: conversationResult.value,\n history: historyResult.value,\n };\n },\n ),\n startRun: fromPromise(\n ({ input }: { input: { conversationId: string; message: UserChatMessage } }) =>\n createExchangeRun(config)(input.conversationId, { message: input.message }).then(\n (result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n },\n ),\n ),\n stopRun: fromPromise(({ input }: { input: { conversationId: string; runId: string } }) =>\n stopExchangeRun(config)(input.conversationId, input.runId).then((result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n }),\n ),\n streamRun: fromObservable(({ input }: { input: { conversationId: string; runId: string } }) =>\n fromTextEventStream(({ signal }) =>\n streamRunEvents(config)(\n { conversationId: input.conversationId, runId: input.runId },\n { signal },\n ),\n ).pipe(\n map((event) =>\n z.decode(chatEventCodec, JSON.parse(event.data) as z.input<typeof chatEventCodec>),\n ),\n ),\n ),\n },\n delays: {\n STREAM_RETRY_DELAY: STREAM_RETRY_DELAY_MS,\n },\n types: {\n context: {} as ConversationMachineContext,\n emitted: {} as ConversationMachineEmitted,\n events: {} as ConversationMachineEvents,\n input: {} as ConversationMachineInput,\n },\n }).createMachine({\n context: ({ input }) => ({\n conversationId: input.conversationId,\n conversationSnapshot: undefined,\n currentRunId: undefined,\n messageAttempt: undefined,\n ...STREAM_STATE_RESET,\n }),\n id: \"agentConversation\",\n initial: \"uninitialized\",\n states: {\n creating_conversation: {\n description: \"Creating a new conversation object\",\n invoke: {\n input: ({ context }) => ({\n message: context.messageAttempt!,\n }),\n onDone: [\n {\n actions: [\n assign({\n conversationId: ({ event }) => event.output.id,\n // Add the message attempt into the snapshot manually\n conversationSnapshot: ({ context, event }) => [\n ...(context.conversationSnapshot ?? []),\n {\n id: event.output.currentRunId!,\n messages: new Map(),\n submittedUserMessage: context.messageAttempt,\n toolCalls: new Map(),\n } satisfies ConversationExchange,\n ],\n currentRunId: ({ event }) => event.output.currentRunId,\n messageAttempt: undefined,\n ...STREAM_STATE_RESET,\n }),\n emit(({ event }) => ({\n id: event.output.id,\n type: \"conversationCreated\",\n })),\n ],\n // Don't transition to streaming in a situation where we didn't receive a currentRunId\n guard: ({ event }) => !!event.output.currentRunId,\n target: \"streaming\",\n },\n /**\n * Fall back to the retrieving_history state if we didn't receive a currentRunId\n */\n {\n actions: assign({\n conversationId: ({ event }) => event.output.id,\n currentRunId: ({ event }) => event.output.currentRunId,\n messageAttempt: undefined,\n }),\n target: \"retrieving_history\",\n },\n ],\n onError: {\n actions: emit(({ event }) => ({\n error: event.error as HttpError,\n type: \"apiError\",\n })),\n target: \"uninitialized\",\n },\n src: \"createConversation\",\n },\n },\n idle: {\n description: \"Waiting for user input to start the next reply stream\",\n on: {\n REFRESH_HISTORY: {\n target: \"retrieving_history\",\n },\n SUBMIT_USER_MESSAGE: {\n actions: assign({\n messageAttempt: ({ event }) => event.message,\n }),\n target: \"submitting_message\",\n },\n },\n },\n retrieve_history_failed: {\n on: {\n REFRESH_HISTORY: {\n actions: assign({ lastError: undefined }),\n target: \"retrieving_history\",\n },\n },\n },\n retrieving_history: {\n description: \"Retrieving latest copy of conversation history\",\n invoke: {\n input: ({ context }) => ({ conversationId: context.conversationId! }),\n onDone: [\n {\n actions: assign({\n conversationSnapshot: ({ context, event }) =>\n AgentConversation.reduceChatEvents(\n context.conversationSnapshot,\n event.output.history.data,\n ),\n currentRunId: ({ event }) => event.output.conversation.currentRunId,\n receivedEndOfStream: false,\n }),\n guard: ({ event }) => !!event.output.conversation.currentRunId,\n target: \"streaming\",\n },\n {\n actions: assign({\n conversationSnapshot: ({ context, event }) =>\n AgentConversation.reduceChatEvents(\n context.conversationSnapshot,\n event.output.history.data,\n ),\n currentRunId: ({ event }) => event.output.conversation.currentRunId,\n ...STREAM_STATE_RESET,\n }),\n target: \"idle\",\n },\n ],\n onError: [\n {\n guard: ({ event }) => {\n const e = event.error as Error & { code?: string };\n if (e?.name === \"TimeoutError\") return false;\n return (\n e?.name === \"AbortError\" ||\n e?.message?.includes(\"aborted\") ||\n e?.code === \"ABORT_ERR\"\n );\n },\n target: \"uninitialized\",\n },\n {\n guard: ({ context }) => context.streamRetryCount > 0,\n target: \"stream_interrupted\",\n },\n {\n actions: [\n assign({\n lastError: ({ event }) => event.error,\n }),\n emit(({ event }) => ({\n error: event.error as HttpError,\n type: \"apiError\",\n })),\n ],\n target: \"retrieve_history_failed\",\n },\n ],\n src: \"retrieveState\",\n },\n },\n stream_interrupted: {\n after: {\n STREAM_RETRY_DELAY: [\n {\n actions: assign({\n streamRetryCount: ({ context }) => context.streamRetryCount + 1,\n }),\n guard: ({ context }) => context.streamRetryCount < MAX_STREAM_RETRIES,\n target: \"retrieving_history\",\n },\n {\n target: \"stream_recovery_failed\",\n },\n ],\n },\n },\n stream_recovery_failed: {\n on: {\n REFRESH_HISTORY: {\n actions: assign({ lastError: undefined, streamRetryCount: 0 }),\n target: \"retrieving_history\",\n },\n },\n },\n streaming: {\n description: \"Manages monitoring and canceling the current run\",\n initial: \"monitoring_replies\",\n invoke: {\n input: ({ context }) => {\n if (!context.currentRunId) {\n throw new Error(\"Attempted to stream without a runId\");\n }\n return {\n conversationId: context.conversationId!,\n runId: context.currentRunId,\n };\n },\n onDone: [\n {\n actions: assign({ currentRunId: null, userRequestedStop: false }),\n guard: ({ context }) => !!context.receivedEndOfStream || !!context.userRequestedStop,\n target: \"idle\",\n },\n {\n actions: assign({ currentRunId: null }),\n target: \"stream_interrupted\",\n },\n ],\n onError: [\n {\n actions: assign({ currentRunId: null, userRequestedStop: false }),\n guard: ({ context }) => !!context.receivedEndOfStream || !!context.userRequestedStop,\n target: \"idle\",\n },\n {\n actions: assign({ currentRunId: null }),\n target: \"stream_interrupted\",\n },\n ],\n onSnapshot: {\n actions: enqueueActions(({ context, enqueue, event }) => {\n const chatEvent = event.snapshot.context;\n if (!chatEvent) {\n return;\n }\n\n if (chatEvent.content.chunkType === \"endOfStream\" && !context.receivedEndOfStream) {\n enqueue.assign({ receivedEndOfStream: true });\n }\n\n const nextSnapshot = AgentConversation.reduceChatEvents(\n context.conversationSnapshot,\n [chatEvent],\n );\n\n enqueue.assign({\n conversationSnapshot: nextSnapshot,\n });\n enqueue.emit({\n chatEvent,\n type: \"chatEventReceived\",\n });\n }),\n },\n src: \"streamRun\",\n },\n states: {\n monitoring_replies: {\n description: \"Attached to the run event stream\",\n on: {\n STOP_RUN: {\n actions: assign({ userRequestedStop: true }),\n target: \"stopping\",\n },\n },\n },\n stopping: {\n description: \"Background cancelation of the run stream\",\n invoke: {\n input: ({ context }) => ({\n conversationId: context.conversationId!,\n runId: context.currentRunId!,\n }),\n onDone: {\n actions: assign({ currentRunId: undefined, userRequestedStop: false }),\n target: \"#agentConversation.idle\",\n },\n onError: {\n actions: assign({ userRequestedStop: false }),\n target: \"#agentConversation.retrieving_history\",\n },\n src: \"stopRun\",\n },\n },\n },\n },\n submitting_message: {\n description: \"Submitting message to start a new reply stream\",\n invoke: {\n input: ({ context, event }) => {\n switch (event.type) {\n case \"RETRY_MESSAGE\":\n if (!context.messageAttempt) {\n throw new Error(\"Tried to resubmit nonexistent message\");\n }\n return {\n conversationId: context.conversationId!,\n message: context.messageAttempt,\n };\n case \"SUBMIT_USER_MESSAGE\":\n return {\n conversationId: context.conversationId!,\n message: event.message,\n };\n }\n throw new Error(`Unexpected event type received in submitting_message: ${event.type}`);\n },\n onDone: {\n actions: assign({\n // Add the message attempt into the snapshot manually\n conversationSnapshot: ({ context, event }) => [\n ...(context.conversationSnapshot ?? []),\n {\n id: event.output.currentRunId,\n messages: new Map(),\n submittedUserMessage: context.messageAttempt || undefined,\n toolCalls: new Map(),\n } satisfies ConversationExchange,\n ],\n currentRunId: ({ event }) => event.output.currentRunId,\n messageAttempt: undefined,\n ...STREAM_STATE_RESET,\n }),\n target: \"streaming\",\n },\n onError: {\n actions: [\n assign({\n currentRunId: () => null,\n lastError: ({ event }) => event.error,\n }),\n emit(({ event }) => ({\n error: event.error as HttpError,\n type: \"apiError\",\n })),\n ],\n target: \"submitting_message_failed\",\n },\n src: \"startRun\",\n },\n },\n submitting_message_failed: {\n description: \"Failed to submit message\",\n on: {\n REFRESH_HISTORY: {\n actions: assign({ lastError: undefined }),\n target: \"retrieving_history\",\n },\n RETRY_MESSAGE: {\n actions: assign({ lastError: undefined }),\n target: \"submitting_message\",\n },\n SUBMIT_USER_MESSAGE: {\n actions: assign({\n lastError: undefined,\n messageAttempt: ({ event }) => event.message,\n }),\n target: \"submitting_message\",\n },\n },\n },\n uninitialized: {\n always: {\n guard: ({ context }) => !!context.conversationId,\n target: \"retrieving_history\",\n },\n description:\n \"Entry state that the machine remains in when no conversation has been provided\",\n on: {\n SUBMIT_USER_MESSAGE: {\n actions: assign({\n messageAttempt: ({ event }) => event.message,\n }),\n target: \"creating_conversation\",\n },\n },\n },\n },\n });\n\nexport type AgentConversationMachine = ReturnType<typeof createConversationMachine>;\n"]}
|
|
1
|
+
{"version":3,"file":"createConversationMachine.js","sourceRoot":"","sources":["../../../../src/enterprise/ai/conversations/createConversationMachine.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2024-2025 Dremio Corporation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { setup, fromObservable, fromPromise, assign, enqueueActions, emit } from \"xstate\";\nimport type { UserChatMessage } from \"../chat/UserChatMessage.ts\";\nimport { AgentConversation } from \"./AgentConversation.ts\";\nimport type { ConversationExchange } from \"./reduceChatEvents.ts\";\nimport type { SonarV4Config } from \"../../../common/Config.ts\";\nimport { createConversation, createConversationCodec } from \"./methods/createConversation.ts\";\nimport * as z from \"zod/mini\";\nimport { retrieveConversation } from \"./methods/retrieveConversation.ts\";\nimport { retrieveConversationHistory } from \"./methods/retrieveConversationHistory.ts\";\nimport { createExchangeRun } from \"./methods/createExchangeRun.ts\";\nimport { stopExchangeRun } from \"./methods/stopExchangeRun.ts\";\nimport { streamRunEvents } from \"./methods/streamRunEvents.ts\";\nimport { fromTextEventStream } from \"../../../common/fromTextEventStream.ts\";\nimport { map, timeout } from \"rxjs\";\nimport { chatEventCodec, type ChatEvent } from \"../chat/chatEventSchema.ts\";\nimport type { HttpError } from \"../../../common/HttpError.ts\";\n\nexport type ConversationMachineInput = {\n conversationId: string | null;\n};\n\nexport type ConversationMachineContext = {\n conversationId: string | null;\n conversationSnapshot?: ConversationExchange[];\n currentRunId?: string | null;\n lastError?: unknown;\n messageAttempt?: UserChatMessage;\n receivedEndOfStream: boolean;\n streamRetryCount: number;\n userRequestedStop: boolean;\n};\nexport type ConversationMachineEvents =\n | { type: \"STOP_RUN\" }\n | { type: \"SUBMIT_USER_MESSAGE\"; message: UserChatMessage }\n | { type: \"RETRY_MESSAGE\" }\n | { type: \"REFRESH_HISTORY\" };\n\nexport type ConversationMachineEmitted =\n | {\n type: \"apiError\";\n error: HttpError;\n }\n | {\n type: \"chatEventReceived\";\n chatEvent: ChatEvent;\n }\n | {\n type: \"conversationCreated\";\n id: string;\n };\n\nconst RETRIEVE_STATE_TIMEOUT_MS = 10_000;\nconst STREAM_IDLE_TIMEOUT_MS = 60_000;\nconst STREAM_RETRY_DELAY_MS = 2500;\nexport const MAX_STREAM_RETRIES = 5;\nconst STREAM_STATE_RESET = {\n receivedEndOfStream: false,\n streamRetryCount: 0,\n userRequestedStop: false,\n};\n\nexport const createConversationMachine = (config: SonarV4Config) =>\n setup({\n actors: {\n createConversation: fromPromise(\n ({ input }: { input: z.input<typeof createConversationCodec> }) =>\n createConversation(config)(input).then((result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n }),\n ),\n retrieveConversation: fromPromise(\n ({ input, signal }: { input: { conversationId: string }; signal: AbortSignal }) =>\n retrieveConversation(config)(input.conversationId, { signal }).then((result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n }),\n ),\n retrieveHistory: fromPromise(\n ({ input, signal }: { input: { conversationId: string }; signal: AbortSignal }) =>\n retrieveConversationHistory(config)(input.conversationId, { signal }).then((result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n }),\n ),\n retrieveState: fromPromise(\n async ({ input, signal }: { input: { conversationId: string }; signal: AbortSignal }) => {\n const timeoutSignal = AbortSignal.any([\n signal,\n AbortSignal.timeout(RETRIEVE_STATE_TIMEOUT_MS),\n ]);\n const [conversationResult, historyResult] = await Promise.all([\n retrieveConversation(config)(input.conversationId, { signal: timeoutSignal }),\n retrieveConversationHistory(config)(input.conversationId, { signal: timeoutSignal }),\n ]);\n\n if (conversationResult.isErr()) {\n throw conversationResult.error;\n }\n\n if (historyResult.isErr()) {\n throw historyResult.error;\n }\n\n return {\n conversation: conversationResult.value,\n history: historyResult.value,\n };\n },\n ),\n startRun: fromPromise(\n ({ input }: { input: { conversationId: string; message: UserChatMessage } }) =>\n createExchangeRun(config)(input.conversationId, { message: input.message }).then(\n (result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n },\n ),\n ),\n stopRun: fromPromise(({ input }: { input: { conversationId: string; runId: string } }) =>\n stopExchangeRun(config)(input.conversationId, input.runId).then((result) => {\n if (result.isErr()) {\n throw result.error;\n }\n return result.value;\n }),\n ),\n streamRun: fromObservable(({ input }: { input: { conversationId: string; runId: string } }) =>\n fromTextEventStream(({ signal }) =>\n streamRunEvents(config)(\n { conversationId: input.conversationId, runId: input.runId },\n { signal },\n ),\n ).pipe(\n map((event) =>\n z.decode(chatEventCodec, JSON.parse(event.data) as z.input<typeof chatEventCodec>),\n ),\n timeout({ each: STREAM_IDLE_TIMEOUT_MS }),\n ),\n ),\n },\n delays: {\n STREAM_RETRY_DELAY: STREAM_RETRY_DELAY_MS,\n },\n types: {\n context: {} as ConversationMachineContext,\n emitted: {} as ConversationMachineEmitted,\n events: {} as ConversationMachineEvents,\n input: {} as ConversationMachineInput,\n },\n }).createMachine({\n context: ({ input }) => ({\n conversationId: input.conversationId,\n conversationSnapshot: undefined,\n currentRunId: undefined,\n messageAttempt: undefined,\n ...STREAM_STATE_RESET,\n }),\n id: \"agentConversation\",\n initial: \"uninitialized\",\n states: {\n creating_conversation: {\n description: \"Creating a new conversation object\",\n invoke: {\n input: ({ context }) => ({\n message: context.messageAttempt!,\n }),\n onDone: [\n {\n actions: [\n assign({\n conversationId: ({ event }) => event.output.id,\n // Add the message attempt into the snapshot manually\n conversationSnapshot: ({ context, event }) => [\n ...(context.conversationSnapshot ?? []),\n {\n id: event.output.currentRunId!,\n messages: new Map(),\n submittedUserMessage: context.messageAttempt,\n toolCalls: new Map(),\n } satisfies ConversationExchange,\n ],\n currentRunId: ({ event }) => event.output.currentRunId,\n messageAttempt: undefined,\n ...STREAM_STATE_RESET,\n }),\n emit(({ event }) => ({\n id: event.output.id,\n type: \"conversationCreated\",\n })),\n ],\n // Don't transition to streaming in a situation where we didn't receive a currentRunId\n guard: ({ event }) => !!event.output.currentRunId,\n target: \"streaming\",\n },\n /**\n * Fall back to the retrieving_history state if we didn't receive a currentRunId\n */\n {\n actions: assign({\n conversationId: ({ event }) => event.output.id,\n currentRunId: ({ event }) => event.output.currentRunId,\n messageAttempt: undefined,\n }),\n target: \"retrieving_history\",\n },\n ],\n onError: {\n actions: emit(({ event }) => ({\n error: event.error as HttpError,\n type: \"apiError\",\n })),\n target: \"uninitialized\",\n },\n src: \"createConversation\",\n },\n },\n idle: {\n description: \"Waiting for user input to start the next reply stream\",\n on: {\n REFRESH_HISTORY: {\n target: \"retrieving_history\",\n },\n SUBMIT_USER_MESSAGE: {\n actions: assign({\n messageAttempt: ({ event }) => event.message,\n }),\n target: \"submitting_message\",\n },\n },\n },\n retrieve_history_failed: {\n on: {\n REFRESH_HISTORY: {\n actions: assign({ lastError: undefined }),\n target: \"retrieving_history\",\n },\n },\n },\n retrieving_history: {\n description: \"Retrieving latest copy of conversation history\",\n invoke: {\n input: ({ context }) => ({ conversationId: context.conversationId! }),\n onDone: [\n {\n actions: assign({\n conversationSnapshot: ({ context, event }) =>\n AgentConversation.reduceChatEvents(\n context.conversationSnapshot,\n event.output.history.data,\n ),\n currentRunId: ({ event }) => event.output.conversation.currentRunId,\n receivedEndOfStream: false,\n }),\n guard: ({ event }) => !!event.output.conversation.currentRunId,\n target: \"streaming\",\n },\n {\n actions: assign({\n conversationSnapshot: ({ context, event }) =>\n AgentConversation.reduceChatEvents(\n context.conversationSnapshot,\n event.output.history.data,\n ),\n currentRunId: ({ event }) => event.output.conversation.currentRunId,\n ...STREAM_STATE_RESET,\n }),\n target: \"idle\",\n },\n ],\n onError: [\n {\n guard: ({ event }) => {\n const e = event.error as Error & { code?: string };\n if (e?.name === \"TimeoutError\") return false;\n return (\n e?.name === \"AbortError\" ||\n e?.message?.includes(\"aborted\") ||\n e?.code === \"ABORT_ERR\"\n );\n },\n target: \"uninitialized\",\n },\n {\n guard: ({ context }) => context.streamRetryCount > 0,\n target: \"stream_interrupted\",\n },\n {\n actions: [\n assign({\n lastError: ({ event }) => event.error,\n }),\n emit(({ event }) => ({\n error: event.error as HttpError,\n type: \"apiError\",\n })),\n ],\n target: \"retrieve_history_failed\",\n },\n ],\n src: \"retrieveState\",\n },\n },\n stream_interrupted: {\n after: {\n STREAM_RETRY_DELAY: [\n {\n actions: assign({\n streamRetryCount: ({ context }) => context.streamRetryCount + 1,\n }),\n guard: ({ context }) => context.streamRetryCount < MAX_STREAM_RETRIES,\n target: \"retrieving_history\",\n },\n {\n target: \"stream_recovery_failed\",\n },\n ],\n },\n },\n stream_recovery_failed: {\n on: {\n REFRESH_HISTORY: {\n actions: assign({ lastError: undefined, streamRetryCount: 0 }),\n target: \"retrieving_history\",\n },\n },\n },\n streaming: {\n description: \"Manages monitoring and canceling the current run\",\n initial: \"monitoring_replies\",\n invoke: {\n input: ({ context }) => {\n if (!context.currentRunId) {\n throw new Error(\"Attempted to stream without a runId\");\n }\n return {\n conversationId: context.conversationId!,\n runId: context.currentRunId,\n };\n },\n onDone: [\n {\n actions: assign({ currentRunId: null, userRequestedStop: false }),\n guard: ({ context }) => !!context.receivedEndOfStream || !!context.userRequestedStop,\n target: \"idle\",\n },\n {\n actions: assign({ currentRunId: null }),\n target: \"stream_interrupted\",\n },\n ],\n onError: [\n {\n actions: assign({ currentRunId: null, userRequestedStop: false }),\n guard: ({ context }) => !!context.receivedEndOfStream || !!context.userRequestedStop,\n target: \"idle\",\n },\n {\n actions: assign({ currentRunId: null }),\n target: \"stream_interrupted\",\n },\n ],\n onSnapshot: {\n actions: enqueueActions(({ context, enqueue, event }) => {\n const chatEvent = event.snapshot.context;\n if (!chatEvent) {\n return;\n }\n\n if (chatEvent.content.chunkType === \"endOfStream\" && !context.receivedEndOfStream) {\n enqueue.assign({ receivedEndOfStream: true });\n }\n\n const nextSnapshot = AgentConversation.reduceChatEvents(\n context.conversationSnapshot,\n [chatEvent],\n );\n\n enqueue.assign({\n conversationSnapshot: nextSnapshot,\n });\n enqueue.emit({\n chatEvent,\n type: \"chatEventReceived\",\n });\n }),\n },\n src: \"streamRun\",\n },\n states: {\n monitoring_replies: {\n description: \"Attached to the run event stream\",\n on: {\n STOP_RUN: {\n actions: assign({ userRequestedStop: true }),\n target: \"stopping\",\n },\n },\n },\n stopping: {\n description: \"Background cancelation of the run stream\",\n invoke: {\n input: ({ context }) => ({\n conversationId: context.conversationId!,\n runId: context.currentRunId!,\n }),\n onDone: {\n actions: assign({ currentRunId: undefined, userRequestedStop: false }),\n target: \"#agentConversation.idle\",\n },\n onError: {\n actions: assign({ userRequestedStop: false }),\n target: \"#agentConversation.retrieving_history\",\n },\n src: \"stopRun\",\n },\n },\n },\n },\n submitting_message: {\n description: \"Submitting message to start a new reply stream\",\n invoke: {\n input: ({ context, event }) => {\n switch (event.type) {\n case \"RETRY_MESSAGE\":\n if (!context.messageAttempt) {\n throw new Error(\"Tried to resubmit nonexistent message\");\n }\n return {\n conversationId: context.conversationId!,\n message: context.messageAttempt,\n };\n case \"SUBMIT_USER_MESSAGE\":\n return {\n conversationId: context.conversationId!,\n message: event.message,\n };\n }\n throw new Error(`Unexpected event type received in submitting_message: ${event.type}`);\n },\n onDone: {\n actions: assign({\n // Add the message attempt into the snapshot manually\n conversationSnapshot: ({ context, event }) => [\n ...(context.conversationSnapshot ?? []),\n {\n id: event.output.currentRunId,\n messages: new Map(),\n submittedUserMessage: context.messageAttempt || undefined,\n toolCalls: new Map(),\n } satisfies ConversationExchange,\n ],\n currentRunId: ({ event }) => event.output.currentRunId,\n messageAttempt: undefined,\n ...STREAM_STATE_RESET,\n }),\n target: \"streaming\",\n },\n onError: {\n actions: [\n assign({\n currentRunId: () => null,\n lastError: ({ event }) => event.error,\n }),\n emit(({ event }) => ({\n error: event.error as HttpError,\n type: \"apiError\",\n })),\n ],\n target: \"submitting_message_failed\",\n },\n src: \"startRun\",\n },\n },\n submitting_message_failed: {\n description: \"Failed to submit message\",\n on: {\n REFRESH_HISTORY: {\n actions: assign({ lastError: undefined }),\n target: \"retrieving_history\",\n },\n RETRY_MESSAGE: {\n actions: assign({ lastError: undefined }),\n target: \"submitting_message\",\n },\n SUBMIT_USER_MESSAGE: {\n actions: assign({\n lastError: undefined,\n messageAttempt: ({ event }) => event.message,\n }),\n target: \"submitting_message\",\n },\n },\n },\n uninitialized: {\n always: {\n guard: ({ context }) => !!context.conversationId,\n target: \"retrieving_history\",\n },\n description:\n \"Entry state that the machine remains in when no conversation has been provided\",\n on: {\n SUBMIT_USER_MESSAGE: {\n actions: assign({\n messageAttempt: ({ event }) => event.message,\n }),\n target: \"creating_conversation\",\n },\n },\n },\n },\n });\n\nexport type AgentConversationMachine = ReturnType<typeof createConversationMachine>;\n"]}
|
package/dist-iife/cloud.js
CHANGED
|
@@ -13124,16 +13124,16 @@ var DremioCloud = (() => {
|
|
|
13124
13124
|
|
|
13125
13125
|
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js
|
|
13126
13126
|
var timeoutProvider = {
|
|
13127
|
-
setTimeout: function(handler,
|
|
13127
|
+
setTimeout: function(handler, timeout2) {
|
|
13128
13128
|
var args = [];
|
|
13129
13129
|
for (var _i2 = 2; _i2 < arguments.length; _i2++) {
|
|
13130
13130
|
args[_i2 - 2] = arguments[_i2];
|
|
13131
13131
|
}
|
|
13132
13132
|
var delegate = timeoutProvider.delegate;
|
|
13133
13133
|
if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {
|
|
13134
|
-
return delegate.setTimeout.apply(delegate, __spreadArray2([handler,
|
|
13134
|
+
return delegate.setTimeout.apply(delegate, __spreadArray2([handler, timeout2], __read(args)));
|
|
13135
13135
|
}
|
|
13136
|
-
return setTimeout.apply(void 0, __spreadArray2([handler,
|
|
13136
|
+
return setTimeout.apply(void 0, __spreadArray2([handler, timeout2], __read(args)));
|
|
13137
13137
|
},
|
|
13138
13138
|
clearTimeout: function(handle) {
|
|
13139
13139
|
var delegate = timeoutProvider.delegate;
|
|
@@ -13802,16 +13802,16 @@ var DremioCloud = (() => {
|
|
|
13802
13802
|
|
|
13803
13803
|
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js
|
|
13804
13804
|
var intervalProvider = {
|
|
13805
|
-
setInterval: function(handler,
|
|
13805
|
+
setInterval: function(handler, timeout2) {
|
|
13806
13806
|
var args = [];
|
|
13807
13807
|
for (var _i2 = 2; _i2 < arguments.length; _i2++) {
|
|
13808
13808
|
args[_i2 - 2] = arguments[_i2];
|
|
13809
13809
|
}
|
|
13810
13810
|
var delegate = intervalProvider.delegate;
|
|
13811
13811
|
if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {
|
|
13812
|
-
return delegate.setInterval.apply(delegate, __spreadArray2([handler,
|
|
13812
|
+
return delegate.setInterval.apply(delegate, __spreadArray2([handler, timeout2], __read(args)));
|
|
13813
13813
|
}
|
|
13814
|
-
return setInterval.apply(void 0, __spreadArray2([handler,
|
|
13814
|
+
return setInterval.apply(void 0, __spreadArray2([handler, timeout2], __read(args)));
|
|
13815
13815
|
},
|
|
13816
13816
|
clearInterval: function(handle) {
|
|
13817
13817
|
var delegate = intervalProvider.delegate;
|
|
@@ -14426,6 +14426,60 @@ var DremioCloud = (() => {
|
|
|
14426
14426
|
return value instanceof Date && !isNaN(value);
|
|
14427
14427
|
}
|
|
14428
14428
|
|
|
14429
|
+
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timeout.js
|
|
14430
|
+
var TimeoutError = createErrorClass(function(_super) {
|
|
14431
|
+
return function TimeoutErrorImpl(info) {
|
|
14432
|
+
if (info === void 0) {
|
|
14433
|
+
info = null;
|
|
14434
|
+
}
|
|
14435
|
+
_super(this);
|
|
14436
|
+
this.message = "Timeout has occurred";
|
|
14437
|
+
this.name = "TimeoutError";
|
|
14438
|
+
this.info = info;
|
|
14439
|
+
};
|
|
14440
|
+
});
|
|
14441
|
+
function timeout(config3, schedulerArg) {
|
|
14442
|
+
var _a = isValidDate(config3) ? { first: config3 } : typeof config3 === "number" ? { each: config3 } : config3, first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;
|
|
14443
|
+
if (first == null && each == null) {
|
|
14444
|
+
throw new TypeError("No timeout provided.");
|
|
14445
|
+
}
|
|
14446
|
+
return operate(function(source, subscriber) {
|
|
14447
|
+
var originalSourceSubscription;
|
|
14448
|
+
var timerSubscription;
|
|
14449
|
+
var lastValue = null;
|
|
14450
|
+
var seen = 0;
|
|
14451
|
+
var startTimer = function(delay) {
|
|
14452
|
+
timerSubscription = executeSchedule(subscriber, scheduler, function() {
|
|
14453
|
+
try {
|
|
14454
|
+
originalSourceSubscription.unsubscribe();
|
|
14455
|
+
innerFrom(_with({
|
|
14456
|
+
meta,
|
|
14457
|
+
lastValue,
|
|
14458
|
+
seen
|
|
14459
|
+
})).subscribe(subscriber);
|
|
14460
|
+
} catch (err) {
|
|
14461
|
+
subscriber.error(err);
|
|
14462
|
+
}
|
|
14463
|
+
}, delay);
|
|
14464
|
+
};
|
|
14465
|
+
originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function(value) {
|
|
14466
|
+
timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();
|
|
14467
|
+
seen++;
|
|
14468
|
+
subscriber.next(lastValue = value);
|
|
14469
|
+
each > 0 && startTimer(each);
|
|
14470
|
+
}, void 0, void 0, function() {
|
|
14471
|
+
if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {
|
|
14472
|
+
timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();
|
|
14473
|
+
}
|
|
14474
|
+
lastValue = null;
|
|
14475
|
+
}));
|
|
14476
|
+
!seen && startTimer(first != null ? typeof first === "number" ? first : +first - scheduler.now() : each);
|
|
14477
|
+
});
|
|
14478
|
+
}
|
|
14479
|
+
function timeoutErrorFactory(info) {
|
|
14480
|
+
throw new TimeoutError(info);
|
|
14481
|
+
}
|
|
14482
|
+
|
|
14429
14483
|
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/map.js
|
|
14430
14484
|
function map(project, thisArg) {
|
|
14431
14485
|
return operate(function(source, subscriber) {
|
|
@@ -14927,6 +14981,12 @@ var DremioCloud = (() => {
|
|
|
14927
14981
|
clientSecret: string2(),
|
|
14928
14982
|
tenantId: string2(),
|
|
14929
14983
|
type: literal("AZURE_STORAGE_CLIENT_CREDENTIALS")
|
|
14984
|
+
}),
|
|
14985
|
+
object({
|
|
14986
|
+
clientId: string2(),
|
|
14987
|
+
storageAccountName: string2(),
|
|
14988
|
+
tenantId: string2(),
|
|
14989
|
+
type: literal("AZURE_WORKLOAD_IDENTITY")
|
|
14930
14990
|
})
|
|
14931
14991
|
])),
|
|
14932
14992
|
id: string2(),
|
|
@@ -19948,20 +20008,20 @@ var DremioCloud = (() => {
|
|
|
19948
20008
|
};
|
|
19949
20009
|
const scheduledEventId = createScheduledEventId(source, id);
|
|
19950
20010
|
system._snapshot._scheduledEvents[scheduledEventId] = scheduledEvent;
|
|
19951
|
-
const
|
|
20011
|
+
const timeout2 = clock.setTimeout(() => {
|
|
19952
20012
|
delete timerMap[scheduledEventId];
|
|
19953
20013
|
delete system._snapshot._scheduledEvents[scheduledEventId];
|
|
19954
20014
|
system._relay(source, target, event);
|
|
19955
20015
|
}, delay);
|
|
19956
|
-
timerMap[scheduledEventId] =
|
|
20016
|
+
timerMap[scheduledEventId] = timeout2;
|
|
19957
20017
|
},
|
|
19958
20018
|
cancel: (source, id) => {
|
|
19959
20019
|
const scheduledEventId = createScheduledEventId(source, id);
|
|
19960
|
-
const
|
|
20020
|
+
const timeout2 = timerMap[scheduledEventId];
|
|
19961
20021
|
delete timerMap[scheduledEventId];
|
|
19962
20022
|
delete system._snapshot._scheduledEvents[scheduledEventId];
|
|
19963
|
-
if (
|
|
19964
|
-
clock.clearTimeout(
|
|
20023
|
+
if (timeout2 !== void 0) {
|
|
20024
|
+
clock.clearTimeout(timeout2);
|
|
19965
20025
|
}
|
|
19966
20026
|
},
|
|
19967
20027
|
cancelAll: (actorRef) => {
|
|
@@ -22926,6 +22986,7 @@ ${err.message}`);
|
|
|
22926
22986
|
|
|
22927
22987
|
// dist/enterprise/ai/conversations/createConversationMachine.js
|
|
22928
22988
|
var RETRIEVE_STATE_TIMEOUT_MS = 1e4;
|
|
22989
|
+
var STREAM_IDLE_TIMEOUT_MS = 6e4;
|
|
22929
22990
|
var STREAM_RETRY_DELAY_MS = 2500;
|
|
22930
22991
|
var MAX_STREAM_RETRIES = 5;
|
|
22931
22992
|
var STREAM_STATE_RESET = {
|
|
@@ -22985,7 +23046,7 @@ ${err.message}`);
|
|
|
22985
23046
|
}
|
|
22986
23047
|
return result.value;
|
|
22987
23048
|
})),
|
|
22988
|
-
streamRun: fromObservable(({ input }) => fromTextEventStream(({ signal }) => streamRunEvents(config3)({ conversationId: input.conversationId, runId: input.runId }, { signal })).pipe(map((event) => decode(chatEventCodec, JSON.parse(event.data)))))
|
|
23049
|
+
streamRun: fromObservable(({ input }) => fromTextEventStream(({ signal }) => streamRunEvents(config3)({ conversationId: input.conversationId, runId: input.runId }, { signal })).pipe(map((event) => decode(chatEventCodec, JSON.parse(event.data))), timeout({ each: STREAM_IDLE_TIMEOUT_MS })))
|
|
22989
23050
|
},
|
|
22990
23051
|
delays: {
|
|
22991
23052
|
STREAM_RETRY_DELAY: STREAM_RETRY_DELAY_MS
|
package/dist-iife/enterprise.js
CHANGED
|
@@ -12251,16 +12251,16 @@ var DremioEnterprise = (() => {
|
|
|
12251
12251
|
|
|
12252
12252
|
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js
|
|
12253
12253
|
var timeoutProvider = {
|
|
12254
|
-
setTimeout: function(handler,
|
|
12254
|
+
setTimeout: function(handler, timeout2) {
|
|
12255
12255
|
var args = [];
|
|
12256
12256
|
for (var _i2 = 2; _i2 < arguments.length; _i2++) {
|
|
12257
12257
|
args[_i2 - 2] = arguments[_i2];
|
|
12258
12258
|
}
|
|
12259
12259
|
var delegate = timeoutProvider.delegate;
|
|
12260
12260
|
if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {
|
|
12261
|
-
return delegate.setTimeout.apply(delegate, __spreadArray2([handler,
|
|
12261
|
+
return delegate.setTimeout.apply(delegate, __spreadArray2([handler, timeout2], __read(args)));
|
|
12262
12262
|
}
|
|
12263
|
-
return setTimeout.apply(void 0, __spreadArray2([handler,
|
|
12263
|
+
return setTimeout.apply(void 0, __spreadArray2([handler, timeout2], __read(args)));
|
|
12264
12264
|
},
|
|
12265
12265
|
clearTimeout: function(handle) {
|
|
12266
12266
|
var delegate = timeoutProvider.delegate;
|
|
@@ -12929,16 +12929,16 @@ var DremioEnterprise = (() => {
|
|
|
12929
12929
|
|
|
12930
12930
|
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js
|
|
12931
12931
|
var intervalProvider = {
|
|
12932
|
-
setInterval: function(handler,
|
|
12932
|
+
setInterval: function(handler, timeout2) {
|
|
12933
12933
|
var args = [];
|
|
12934
12934
|
for (var _i2 = 2; _i2 < arguments.length; _i2++) {
|
|
12935
12935
|
args[_i2 - 2] = arguments[_i2];
|
|
12936
12936
|
}
|
|
12937
12937
|
var delegate = intervalProvider.delegate;
|
|
12938
12938
|
if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {
|
|
12939
|
-
return delegate.setInterval.apply(delegate, __spreadArray2([handler,
|
|
12939
|
+
return delegate.setInterval.apply(delegate, __spreadArray2([handler, timeout2], __read(args)));
|
|
12940
12940
|
}
|
|
12941
|
-
return setInterval.apply(void 0, __spreadArray2([handler,
|
|
12941
|
+
return setInterval.apply(void 0, __spreadArray2([handler, timeout2], __read(args)));
|
|
12942
12942
|
},
|
|
12943
12943
|
clearInterval: function(handle) {
|
|
12944
12944
|
var delegate = intervalProvider.delegate;
|
|
@@ -13553,6 +13553,60 @@ var DremioEnterprise = (() => {
|
|
|
13553
13553
|
return value instanceof Date && !isNaN(value);
|
|
13554
13554
|
}
|
|
13555
13555
|
|
|
13556
|
+
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timeout.js
|
|
13557
|
+
var TimeoutError = createErrorClass(function(_super) {
|
|
13558
|
+
return function TimeoutErrorImpl(info) {
|
|
13559
|
+
if (info === void 0) {
|
|
13560
|
+
info = null;
|
|
13561
|
+
}
|
|
13562
|
+
_super(this);
|
|
13563
|
+
this.message = "Timeout has occurred";
|
|
13564
|
+
this.name = "TimeoutError";
|
|
13565
|
+
this.info = info;
|
|
13566
|
+
};
|
|
13567
|
+
});
|
|
13568
|
+
function timeout(config3, schedulerArg) {
|
|
13569
|
+
var _a = isValidDate(config3) ? { first: config3 } : typeof config3 === "number" ? { each: config3 } : config3, first = _a.first, each = _a.each, _b = _a.with, _with = _b === void 0 ? timeoutErrorFactory : _b, _c = _a.scheduler, scheduler = _c === void 0 ? schedulerArg !== null && schedulerArg !== void 0 ? schedulerArg : asyncScheduler : _c, _d = _a.meta, meta = _d === void 0 ? null : _d;
|
|
13570
|
+
if (first == null && each == null) {
|
|
13571
|
+
throw new TypeError("No timeout provided.");
|
|
13572
|
+
}
|
|
13573
|
+
return operate(function(source, subscriber) {
|
|
13574
|
+
var originalSourceSubscription;
|
|
13575
|
+
var timerSubscription;
|
|
13576
|
+
var lastValue = null;
|
|
13577
|
+
var seen = 0;
|
|
13578
|
+
var startTimer = function(delay) {
|
|
13579
|
+
timerSubscription = executeSchedule(subscriber, scheduler, function() {
|
|
13580
|
+
try {
|
|
13581
|
+
originalSourceSubscription.unsubscribe();
|
|
13582
|
+
innerFrom(_with({
|
|
13583
|
+
meta,
|
|
13584
|
+
lastValue,
|
|
13585
|
+
seen
|
|
13586
|
+
})).subscribe(subscriber);
|
|
13587
|
+
} catch (err) {
|
|
13588
|
+
subscriber.error(err);
|
|
13589
|
+
}
|
|
13590
|
+
}, delay);
|
|
13591
|
+
};
|
|
13592
|
+
originalSourceSubscription = source.subscribe(createOperatorSubscriber(subscriber, function(value) {
|
|
13593
|
+
timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();
|
|
13594
|
+
seen++;
|
|
13595
|
+
subscriber.next(lastValue = value);
|
|
13596
|
+
each > 0 && startTimer(each);
|
|
13597
|
+
}, void 0, void 0, function() {
|
|
13598
|
+
if (!(timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.closed)) {
|
|
13599
|
+
timerSubscription === null || timerSubscription === void 0 ? void 0 : timerSubscription.unsubscribe();
|
|
13600
|
+
}
|
|
13601
|
+
lastValue = null;
|
|
13602
|
+
}));
|
|
13603
|
+
!seen && startTimer(first != null ? typeof first === "number" ? first : +first - scheduler.now() : each);
|
|
13604
|
+
});
|
|
13605
|
+
}
|
|
13606
|
+
function timeoutErrorFactory(info) {
|
|
13607
|
+
throw new TimeoutError(info);
|
|
13608
|
+
}
|
|
13609
|
+
|
|
13556
13610
|
// node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/map.js
|
|
13557
13611
|
function map(project, thisArg) {
|
|
13558
13612
|
return operate(function(source, subscriber) {
|
|
@@ -18524,20 +18578,20 @@ var DremioEnterprise = (() => {
|
|
|
18524
18578
|
};
|
|
18525
18579
|
const scheduledEventId = createScheduledEventId(source, id);
|
|
18526
18580
|
system._snapshot._scheduledEvents[scheduledEventId] = scheduledEvent;
|
|
18527
|
-
const
|
|
18581
|
+
const timeout2 = clock.setTimeout(() => {
|
|
18528
18582
|
delete timerMap[scheduledEventId];
|
|
18529
18583
|
delete system._snapshot._scheduledEvents[scheduledEventId];
|
|
18530
18584
|
system._relay(source, target, event);
|
|
18531
18585
|
}, delay);
|
|
18532
|
-
timerMap[scheduledEventId] =
|
|
18586
|
+
timerMap[scheduledEventId] = timeout2;
|
|
18533
18587
|
},
|
|
18534
18588
|
cancel: (source, id) => {
|
|
18535
18589
|
const scheduledEventId = createScheduledEventId(source, id);
|
|
18536
|
-
const
|
|
18590
|
+
const timeout2 = timerMap[scheduledEventId];
|
|
18537
18591
|
delete timerMap[scheduledEventId];
|
|
18538
18592
|
delete system._snapshot._scheduledEvents[scheduledEventId];
|
|
18539
|
-
if (
|
|
18540
|
-
clock.clearTimeout(
|
|
18593
|
+
if (timeout2 !== void 0) {
|
|
18594
|
+
clock.clearTimeout(timeout2);
|
|
18541
18595
|
}
|
|
18542
18596
|
},
|
|
18543
18597
|
cancelAll: (actorRef) => {
|
|
@@ -21502,6 +21556,7 @@ ${err.message}`);
|
|
|
21502
21556
|
|
|
21503
21557
|
// dist/enterprise/ai/conversations/createConversationMachine.js
|
|
21504
21558
|
var RETRIEVE_STATE_TIMEOUT_MS = 1e4;
|
|
21559
|
+
var STREAM_IDLE_TIMEOUT_MS = 6e4;
|
|
21505
21560
|
var STREAM_RETRY_DELAY_MS = 2500;
|
|
21506
21561
|
var MAX_STREAM_RETRIES = 5;
|
|
21507
21562
|
var STREAM_STATE_RESET = {
|
|
@@ -21561,7 +21616,7 @@ ${err.message}`);
|
|
|
21561
21616
|
}
|
|
21562
21617
|
return result.value;
|
|
21563
21618
|
})),
|
|
21564
|
-
streamRun: fromObservable(({ input }) => fromTextEventStream(({ signal }) => streamRunEvents(config3)({ conversationId: input.conversationId, runId: input.runId }, { signal })).pipe(map((event) => decode(chatEventCodec, JSON.parse(event.data)))))
|
|
21619
|
+
streamRun: fromObservable(({ input }) => fromTextEventStream(({ signal }) => streamRunEvents(config3)({ conversationId: input.conversationId, runId: input.runId }, { signal })).pipe(map((event) => decode(chatEventCodec, JSON.parse(event.data))), timeout({ each: STREAM_IDLE_TIMEOUT_MS })))
|
|
21565
21620
|
},
|
|
21566
21621
|
delays: {
|
|
21567
21622
|
STREAM_RETRY_DELAY: STREAM_RETRY_DELAY_MS
|