@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.
@@ -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":"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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 ]),\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"]}
@@ -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, timeout) {
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, timeout], __read(args)));
13134
+ return delegate.setTimeout.apply(delegate, __spreadArray2([handler, timeout2], __read(args)));
13135
13135
  }
13136
- return setTimeout.apply(void 0, __spreadArray2([handler, timeout], __read(args)));
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, timeout) {
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, timeout], __read(args)));
13812
+ return delegate.setInterval.apply(delegate, __spreadArray2([handler, timeout2], __read(args)));
13813
13813
  }
13814
- return setInterval.apply(void 0, __spreadArray2([handler, timeout], __read(args)));
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 timeout = clock.setTimeout(() => {
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] = timeout;
20016
+ timerMap[scheduledEventId] = timeout2;
19957
20017
  },
19958
20018
  cancel: (source, id) => {
19959
20019
  const scheduledEventId = createScheduledEventId(source, id);
19960
- const timeout = timerMap[scheduledEventId];
20020
+ const timeout2 = timerMap[scheduledEventId];
19961
20021
  delete timerMap[scheduledEventId];
19962
20022
  delete system._snapshot._scheduledEvents[scheduledEventId];
19963
- if (timeout !== void 0) {
19964
- clock.clearTimeout(timeout);
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
@@ -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, timeout) {
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, timeout], __read(args)));
12261
+ return delegate.setTimeout.apply(delegate, __spreadArray2([handler, timeout2], __read(args)));
12262
12262
  }
12263
- return setTimeout.apply(void 0, __spreadArray2([handler, timeout], __read(args)));
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, timeout) {
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, timeout], __read(args)));
12939
+ return delegate.setInterval.apply(delegate, __spreadArray2([handler, timeout2], __read(args)));
12940
12940
  }
12941
- return setInterval.apply(void 0, __spreadArray2([handler, timeout], __read(args)));
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 timeout = clock.setTimeout(() => {
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] = timeout;
18586
+ timerMap[scheduledEventId] = timeout2;
18533
18587
  },
18534
18588
  cancel: (source, id) => {
18535
18589
  const scheduledEventId = createScheduledEventId(source, id);
18536
- const timeout = timerMap[scheduledEventId];
18590
+ const timeout2 = timerMap[scheduledEventId];
18537
18591
  delete timerMap[scheduledEventId];
18538
18592
  delete system._snapshot._scheduledEvents[scheduledEventId];
18539
- if (timeout !== void 0) {
18540
- clock.clearTimeout(timeout);
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dremio/js-sdk",
3
- "version": "0.60.0",
3
+ "version": "0.61.0",
4
4
  "description": "JavaScript library for the Dremio API",
5
5
  "keywords": [
6
6
  "dremio",