@dbx-tools/genie-shared 0.1.18
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/index.d.ts +32 -0
- package/dist/index.js +32 -0
- package/dist/src/event.d.ts +161 -0
- package/dist/src/event.js +257 -0
- package/dist/src/protocol.d.ts +855 -0
- package/dist/src/protocol.js +418 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/index.ts +33 -0
- package/package.json +38 -0
- package/src/event.ts +376 -0
- package/src/protocol.ts +519 -0
|
@@ -0,0 +1,855 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire-format zod schemas + types and high-level event vocabulary
|
|
3
|
+
* for `@dbx-tools/genie`.
|
|
4
|
+
*
|
|
5
|
+
* Two related layers live here:
|
|
6
|
+
*
|
|
7
|
+
* 1. Genie wire shapes derived from `@dbx-tools/sdk-shared`'s
|
|
8
|
+
* `dashboards.zod.ts` (which is regenerated from the upstream
|
|
9
|
+
* `@databricks/sdk-experimental` `apis/dashboards/model.d.ts`
|
|
10
|
+
* on every `bun run prebuild`). We extend the SDK schemas
|
|
11
|
+
* where Genie ships fields on the wire that the SDK doesn't
|
|
12
|
+
* currently type:
|
|
13
|
+
*
|
|
14
|
+
* - `GenieMessage.auto_regenerate_count: number` (stamped
|
|
15
|
+
* on every wire message, omitted from the SDK shape).
|
|
16
|
+
* - `GenieQueryAttachment.thoughts: GenieThought[]` (the
|
|
17
|
+
* streamed reasoning payload with `DESCRIPTION`,
|
|
18
|
+
* `DATA_SOURCING`, `STEPS`, and `UNDERSTANDING` thought
|
|
19
|
+
* kinds).
|
|
20
|
+
* - `GenieAttachment.attachment_type: AttachmentType`
|
|
21
|
+
* (a derived discriminator literal so callers can
|
|
22
|
+
* `switch (att.attachment_type)` instead of probing
|
|
23
|
+
* which sub-key is populated; populated by
|
|
24
|
+
* {@link tagAttachment}).
|
|
25
|
+
*
|
|
26
|
+
* 2. Event vocabulary for the high-level `genieEventChat`
|
|
27
|
+
* driver. Each event is a flat `z.object` with a `type`
|
|
28
|
+
* literal discriminator and snake_case payload fields hoisted
|
|
29
|
+
* to the top level (no `payload` wrapper). Events that share
|
|
30
|
+
* the attachment-scoped location use
|
|
31
|
+
* {@link GenieChatLocationSchema} as a base; events that
|
|
32
|
+
* don't carry an `attachment_id` (status, result) omit it.
|
|
33
|
+
* {@link GenieChatEventSchema} bundles the variants into one
|
|
34
|
+
* discriminated union.
|
|
35
|
+
*
|
|
36
|
+
* Pure types: no runtime imports beyond zod + the generated
|
|
37
|
+
* sdk-type schemas, no Node-only code, safe for browser bundles.
|
|
38
|
+
*/
|
|
39
|
+
import { messageStatusSchema } from "@dbx-tools/sdk-shared";
|
|
40
|
+
import { z } from "zod";
|
|
41
|
+
/** SDK `MessageStatus` enum value (e.g. `SUBMITTED`, `ASKING_AI`, `COMPLETED`). */
|
|
42
|
+
export type MessageStatus = z.infer<typeof messageStatusSchema>;
|
|
43
|
+
/**
|
|
44
|
+
* Genie's per-query "thoughts" surface. These appear on the
|
|
45
|
+
* `/messages/{id}` wire under `attachments[i].query.thoughts[]` but
|
|
46
|
+
* are not typed on the SDK's `GenieQueryAttachment` at v0.17.
|
|
47
|
+
*
|
|
48
|
+
* Known thought types observed in production polls:
|
|
49
|
+
*
|
|
50
|
+
* - `THOUGHT_TYPE_DESCRIPTION`: a one-paragraph restatement of
|
|
51
|
+
* what the user asked. The final `query.description` field on
|
|
52
|
+
* the attachment carries the same text.
|
|
53
|
+
* - `THOUGHT_TYPE_DATA_SOURCING`: markdown bullets of the
|
|
54
|
+
* fully-qualified `catalog.schema.table` sources Genie chose.
|
|
55
|
+
* - `THOUGHT_TYPE_STEPS`: the high-level plan Genie wrote before
|
|
56
|
+
* running SQL (one bullet per step).
|
|
57
|
+
* - `THOUGHT_TYPE_UNDERSTANDING`: ambiguity / interpretation
|
|
58
|
+
* notes (e.g. "'revenue' could be interpreted as gross,
|
|
59
|
+
* net, or recognized revenue...").
|
|
60
|
+
*
|
|
61
|
+
* Open at the type level (`| (string & {})`) so a new server-side
|
|
62
|
+
* thought type doesn't break compilation; the four known types
|
|
63
|
+
* still narrow correctly under `switch`.
|
|
64
|
+
*/
|
|
65
|
+
export type GenieThoughtType = "THOUGHT_TYPE_DESCRIPTION" | "THOUGHT_TYPE_DATA_SOURCING" | "THOUGHT_TYPE_STEPS" | "THOUGHT_TYPE_UNDERSTANDING" | (string & {});
|
|
66
|
+
/**
|
|
67
|
+
* One reasoning step on a query attachment. See
|
|
68
|
+
* {@link GenieThoughtType} for the known `thought_type` values.
|
|
69
|
+
*/
|
|
70
|
+
export declare const GenieThoughtSchema: z.ZodObject<{
|
|
71
|
+
thought_type: z.ZodCustom<GenieThoughtType, GenieThoughtType>;
|
|
72
|
+
content: z.ZodString;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
export type GenieThought = z.infer<typeof GenieThoughtSchema>;
|
|
75
|
+
/**
|
|
76
|
+
* Discriminator for what's inside a `GenieAttachment`. Genie only
|
|
77
|
+
* ever populates one of `query` / `text` / `suggested_questions`
|
|
78
|
+
* per attachment. Open via `(string & {})` so a new server-side
|
|
79
|
+
* type doesn't break compilation; the three known types still
|
|
80
|
+
* narrow correctly under `switch`.
|
|
81
|
+
*
|
|
82
|
+
* Lifted into the schema as the optional
|
|
83
|
+
* {@link GenieAttachmentSchema}.`attachment_type` field
|
|
84
|
+
* (populated by {@link tagAttachment}) so consumers can branch
|
|
85
|
+
* on a literal instead of probing which sub-object key is
|
|
86
|
+
* present. Also surfaced on {@link AttachmentEvent}'s payload as
|
|
87
|
+
* `attachment_type` (vs a bare `type`) to keep the field clear of
|
|
88
|
+
* the event-union discriminator key.
|
|
89
|
+
*/
|
|
90
|
+
export declare const ATTACHMENT_TYPES: readonly ["query", "text", "suggested_questions"];
|
|
91
|
+
export type KnownAttachmentType = (typeof ATTACHMENT_TYPES)[number];
|
|
92
|
+
export type AttachmentType = KnownAttachmentType | (string & {});
|
|
93
|
+
/**
|
|
94
|
+
* `GenieQueryAttachment` widened with the `thoughts[]` field the
|
|
95
|
+
* Genie wire exposes but the SDK doesn't currently type. Every
|
|
96
|
+
* other field (`description`, `query`, `statement_id`,
|
|
97
|
+
* `query_result_metadata`, `title`, `parameters`,
|
|
98
|
+
* `last_updated_timestamp`, `id`) flows through verbatim from
|
|
99
|
+
* the SDK schema.
|
|
100
|
+
*/
|
|
101
|
+
export declare const GenieQueryAttachmentSchema: z.ZodObject<{
|
|
102
|
+
description: z.ZodOptional<z.ZodString>;
|
|
103
|
+
id: z.ZodOptional<z.ZodString>;
|
|
104
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
105
|
+
parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
106
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
107
|
+
sql_type: z.ZodOptional<z.ZodString>;
|
|
108
|
+
value: z.ZodOptional<z.ZodString>;
|
|
109
|
+
}, z.core.$strip>>>;
|
|
110
|
+
query: z.ZodOptional<z.ZodString>;
|
|
111
|
+
query_result_metadata: z.ZodOptional<z.ZodObject<{
|
|
112
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
113
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
114
|
+
}, z.core.$strip>>;
|
|
115
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
116
|
+
title: z.ZodOptional<z.ZodString>;
|
|
117
|
+
thoughts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
118
|
+
thought_type: z.ZodCustom<GenieThoughtType, GenieThoughtType>;
|
|
119
|
+
content: z.ZodString;
|
|
120
|
+
}, z.core.$strip>>>;
|
|
121
|
+
}, z.core.$strip>;
|
|
122
|
+
export type GenieQueryAttachment = z.infer<typeof GenieQueryAttachmentSchema>;
|
|
123
|
+
/**
|
|
124
|
+
* `GenieAttachment` with:
|
|
125
|
+
*
|
|
126
|
+
* - `query` re-typed to the thoughts-aware
|
|
127
|
+
* {@link GenieQueryAttachmentSchema}.
|
|
128
|
+
* - `attachment_type` discriminator literal
|
|
129
|
+
* ({@link AttachmentType}) so consumers can `switch
|
|
130
|
+
* (att.attachment_type)` to narrow which sub-object is
|
|
131
|
+
* populated. Optional on the wire (Genie doesn't send it),
|
|
132
|
+
* but every attachment that flows through {@link
|
|
133
|
+
* tagAttachment} - including all of the ones
|
|
134
|
+
* `genieEventChat` emits - has it filled in.
|
|
135
|
+
*
|
|
136
|
+
* `attachment_id`, `text`, and `suggested_questions` pass through
|
|
137
|
+
* unchanged. `attachment_id` is genuinely optional on the wire:
|
|
138
|
+
* the first text attachment Genie emits per turn (the "main
|
|
139
|
+
* answer text") arrives with no id, only the follow-up text
|
|
140
|
+
* attachment gets one.
|
|
141
|
+
*/
|
|
142
|
+
export declare const GenieAttachmentSchema: z.ZodObject<{
|
|
143
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
144
|
+
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
145
|
+
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
146
|
+
}, z.core.$strip>>;
|
|
147
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
148
|
+
content: z.ZodOptional<z.ZodString>;
|
|
149
|
+
id: z.ZodOptional<z.ZodString>;
|
|
150
|
+
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
151
|
+
}, z.core.$strip>>;
|
|
152
|
+
query: z.ZodOptional<z.ZodObject<{
|
|
153
|
+
description: z.ZodOptional<z.ZodString>;
|
|
154
|
+
id: z.ZodOptional<z.ZodString>;
|
|
155
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
156
|
+
parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
157
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
158
|
+
sql_type: z.ZodOptional<z.ZodString>;
|
|
159
|
+
value: z.ZodOptional<z.ZodString>;
|
|
160
|
+
}, z.core.$strip>>>;
|
|
161
|
+
query: z.ZodOptional<z.ZodString>;
|
|
162
|
+
query_result_metadata: z.ZodOptional<z.ZodObject<{
|
|
163
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
164
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
165
|
+
}, z.core.$strip>>;
|
|
166
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
167
|
+
title: z.ZodOptional<z.ZodString>;
|
|
168
|
+
thoughts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
169
|
+
thought_type: z.ZodCustom<GenieThoughtType, GenieThoughtType>;
|
|
170
|
+
content: z.ZodString;
|
|
171
|
+
}, z.core.$strip>>>;
|
|
172
|
+
}, z.core.$strip>>;
|
|
173
|
+
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
174
|
+
}, z.core.$strip>;
|
|
175
|
+
export type GenieAttachment = z.infer<typeof GenieAttachmentSchema>;
|
|
176
|
+
/**
|
|
177
|
+
* `GenieMessage` widened with:
|
|
178
|
+
*
|
|
179
|
+
* - `auto_regenerate_count`: number stamped on every wire
|
|
180
|
+
* message that the SDK type omits at v0.17.
|
|
181
|
+
* - `attachments`: re-typed to the local
|
|
182
|
+
* {@link GenieAttachmentSchema} so
|
|
183
|
+
* `attachment.query?.thoughts` (and the
|
|
184
|
+
* `attachment_type` discriminator) is reachable without a
|
|
185
|
+
* cast.
|
|
186
|
+
*
|
|
187
|
+
* Every other field (`id`, `space_id`, `conversation_id`,
|
|
188
|
+
* `user_id`, `created_timestamp`, `last_updated_timestamp`,
|
|
189
|
+
* `status`, `content`, `message_id`, `query_result`, `error`,
|
|
190
|
+
* `feedback`) passes through from the SDK schema.
|
|
191
|
+
*/
|
|
192
|
+
export declare const GenieMessageSchema: z.ZodObject<{
|
|
193
|
+
content: z.ZodString;
|
|
194
|
+
conversation_id: z.ZodString;
|
|
195
|
+
created_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
196
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
197
|
+
error: z.ZodOptional<z.ZodString>;
|
|
198
|
+
type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"BLOCK_MULTIPLE_EXECUTIONS_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_CLIENT_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_CLIENT_TIMEOUT_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_NETWORK_EXCEPTION">, z.ZodLiteral<"CONTENT_FILTER_EXCEPTION">, z.ZodLiteral<"CONTEXT_EXCEEDED_EXCEPTION">, z.ZodLiteral<"COULD_NOT_GET_MODEL_DEPLOYMENTS_EXCEPTION">, z.ZodLiteral<"COULD_NOT_GET_UC_SCHEMA_EXCEPTION">, z.ZodLiteral<"DEPLOYMENT_NOT_FOUND_EXCEPTION">, z.ZodLiteral<"DESCRIBE_QUERY_INVALID_SQL_ERROR">, z.ZodLiteral<"DESCRIBE_QUERY_TIMEOUT">, z.ZodLiteral<"DESCRIBE_QUERY_UNEXPECTED_FAILURE">, z.ZodLiteral<"EXCEEDED_MAX_TOKEN_LENGTH_EXCEPTION">, z.ZodLiteral<"FUNCTIONS_NOT_AVAILABLE_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_JSON_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_TYPE_EXCEPTION">, z.ZodLiteral<"FUNCTION_CALL_MISSING_PARAMETER_EXCEPTION">, z.ZodLiteral<"GENERATED_SQL_QUERY_TOO_LONG_EXCEPTION">, z.ZodLiteral<"GENERIC_CHAT_COMPLETION_EXCEPTION">, z.ZodLiteral<"GENERIC_CHAT_COMPLETION_SERVICE_EXCEPTION">, z.ZodLiteral<"GENERIC_SQL_EXEC_API_CALL_EXCEPTION">, z.ZodLiteral<"ILLEGAL_PARAMETER_DEFINITION_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_FAILED_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_ONGOING_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_UNSUPPORTED_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_MISSING_UC_PATH_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_PATH_OVERLAP_EXCEPTION">, z.ZodLiteral<"INVALID_CERTIFIED_ANSWER_FUNCTION_EXCEPTION">, z.ZodLiteral<"INVALID_CERTIFIED_ANSWER_IDENTIFIER_EXCEPTION">, z.ZodLiteral<"INVALID_CHAT_COMPLETION_ARGUMENTS_JSON_EXCEPTION">, z.ZodLiteral<"INVALID_CHAT_COMPLETION_JSON_EXCEPTION">, z.ZodLiteral<"INVALID_COMPLETION_REQUEST_EXCEPTION">, z.ZodLiteral<"INVALID_FUNCTION_CALL_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_MULTIPLE_DATASET_REFERENCES_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_MULTIPLE_STATEMENTS_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_UNKNOWN_TABLE_EXCEPTION">, z.ZodLiteral<"INVALID_TABLE_IDENTIFIER_EXCEPTION">, z.ZodLiteral<"LOCAL_CONTEXT_EXCEEDED_EXCEPTION">, z.ZodLiteral<"MESSAGE_ATTACHMENT_TOO_LONG_ERROR">, z.ZodLiteral<"MESSAGE_CANCELLED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MESSAGE_DELETED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MESSAGE_UPDATED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MISSING_SQL_QUERY_EXCEPTION">, z.ZodLiteral<"NO_DEPLOYMENTS_AVAILABLE_TO_WORKSPACE">, z.ZodLiteral<"NO_QUERY_TO_VISUALIZE_EXCEPTION">, z.ZodLiteral<"NO_TABLES_TO_QUERY_EXCEPTION">, z.ZodLiteral<"RATE_LIMIT_EXCEEDED_GENERIC_EXCEPTION">, z.ZodLiteral<"RATE_LIMIT_EXCEEDED_SPECIFIED_WAIT_EXCEPTION">, z.ZodLiteral<"REPLY_PROCESS_TIMEOUT_EXCEPTION">, z.ZodLiteral<"RETRYABLE_PROCESSING_EXCEPTION">, z.ZodLiteral<"SQL_EXECUTION_EXCEPTION">, z.ZodLiteral<"STOP_PROCESS_DUE_TO_AUTO_REGENERATE">, z.ZodLiteral<"TABLES_MISSING_EXCEPTION">, z.ZodLiteral<"TOO_MANY_CERTIFIED_ANSWERS_EXCEPTION">, z.ZodLiteral<"TOO_MANY_TABLES_EXCEPTION">, z.ZodLiteral<"UNEXPECTED_REPLY_PROCESS_EXCEPTION">, z.ZodLiteral<"UNKNOWN_AI_MODEL">, z.ZodLiteral<"UNSUPPORTED_CONVERSATION_TYPE_EXCEPTION">, z.ZodLiteral<"WAREHOUSE_ACCESS_MISSING_EXCEPTION">, z.ZodLiteral<"WAREHOUSE_NOT_FOUND_EXCEPTION">]>>;
|
|
199
|
+
}, z.core.$strip>>;
|
|
200
|
+
feedback: z.ZodOptional<z.ZodObject<{
|
|
201
|
+
rating: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"NEGATIVE">, z.ZodLiteral<"NONE">, z.ZodLiteral<"POSITIVE">]>>;
|
|
202
|
+
}, z.core.$strip>>;
|
|
203
|
+
id: z.ZodString;
|
|
204
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
205
|
+
message_id: z.ZodString;
|
|
206
|
+
query_result: z.ZodOptional<z.ZodObject<{
|
|
207
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
208
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
209
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
210
|
+
statement_id_signature: z.ZodOptional<z.ZodString>;
|
|
211
|
+
}, z.core.$strip>>;
|
|
212
|
+
space_id: z.ZodString;
|
|
213
|
+
status: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"ASKING_AI">, z.ZodLiteral<"CANCELLED">, z.ZodLiteral<"COMPLETED">, z.ZodLiteral<"EXECUTING_QUERY">, z.ZodLiteral<"FAILED">, z.ZodLiteral<"FETCHING_METADATA">, z.ZodLiteral<"FILTERING_CONTEXT">, z.ZodLiteral<"PENDING_WAREHOUSE">, z.ZodLiteral<"QUERY_RESULT_EXPIRED">, z.ZodLiteral<"SUBMITTED">]>>;
|
|
214
|
+
user_id: z.ZodOptional<z.ZodNumber>;
|
|
215
|
+
attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
216
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
217
|
+
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
218
|
+
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
219
|
+
}, z.core.$strip>>;
|
|
220
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
221
|
+
content: z.ZodOptional<z.ZodString>;
|
|
222
|
+
id: z.ZodOptional<z.ZodString>;
|
|
223
|
+
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
224
|
+
}, z.core.$strip>>;
|
|
225
|
+
query: z.ZodOptional<z.ZodObject<{
|
|
226
|
+
description: z.ZodOptional<z.ZodString>;
|
|
227
|
+
id: z.ZodOptional<z.ZodString>;
|
|
228
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
229
|
+
parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
230
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
231
|
+
sql_type: z.ZodOptional<z.ZodString>;
|
|
232
|
+
value: z.ZodOptional<z.ZodString>;
|
|
233
|
+
}, z.core.$strip>>>;
|
|
234
|
+
query: z.ZodOptional<z.ZodString>;
|
|
235
|
+
query_result_metadata: z.ZodOptional<z.ZodObject<{
|
|
236
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
237
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
238
|
+
}, z.core.$strip>>;
|
|
239
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
240
|
+
title: z.ZodOptional<z.ZodString>;
|
|
241
|
+
thoughts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
242
|
+
thought_type: z.ZodCustom<GenieThoughtType, GenieThoughtType>;
|
|
243
|
+
content: z.ZodString;
|
|
244
|
+
}, z.core.$strip>>>;
|
|
245
|
+
}, z.core.$strip>>;
|
|
246
|
+
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
247
|
+
}, z.core.$strip>>>;
|
|
248
|
+
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
|
249
|
+
}, z.core.$strip>;
|
|
250
|
+
export type GenieMessage = z.infer<typeof GenieMessageSchema>;
|
|
251
|
+
/**
|
|
252
|
+
* Terminal Genie message statuses. The polling loop in
|
|
253
|
+
* `chat.ts` stops as soon as the latest message has one of these
|
|
254
|
+
* statuses.
|
|
255
|
+
*/
|
|
256
|
+
export declare const TERMINAL_STATUSES: readonly ["COMPLETED", "FAILED", "CANCELLED"];
|
|
257
|
+
export type TerminalStatus = (typeof TERMINAL_STATUSES)[number];
|
|
258
|
+
/** Narrow `MessageStatus | undefined` to a {@link TerminalStatus}. */
|
|
259
|
+
export declare function isTerminalStatus(s: MessageStatus | undefined): s is TerminalStatus;
|
|
260
|
+
/**
|
|
261
|
+
* Convert a raw Genie wire status (`FETCHING_METADATA`,
|
|
262
|
+
* `ASKING_AI`, `EXECUTING_QUERY`, ...) into a short, sentence-cased
|
|
263
|
+
* label safe to drop into a UI pill. Known states get a curated
|
|
264
|
+
* label; unknown states fall back to `stringUtils.tokenizeWithOptions`
|
|
265
|
+
* so new states still render cleanly without code changes.
|
|
266
|
+
*
|
|
267
|
+
* Pure (no Node-only deps), safe for browser bundles. Both the
|
|
268
|
+
* Genie agent (server) and any UI that subscribes to status events
|
|
269
|
+
* call this so labels stay in lock-step across the wire.
|
|
270
|
+
*/
|
|
271
|
+
export declare function humanizeStatus(status: MessageStatus): string;
|
|
272
|
+
/**
|
|
273
|
+
* Inspect a {@link GenieAttachment} and return the
|
|
274
|
+
* {@link AttachmentType} of payload it carries. Returns the first
|
|
275
|
+
* known sub-object that's present; if none of the known ones are
|
|
276
|
+
* populated, falls back to the first non-bookkeeping key
|
|
277
|
+
* (forward-compat for types we don't model yet), else `"unknown"`.
|
|
278
|
+
*
|
|
279
|
+
* Honors a pre-tagged `attachment_type` if one is already on the
|
|
280
|
+
* value (e.g. from a prior {@link tagAttachment} pass) so this is
|
|
281
|
+
* idempotent across re-detections.
|
|
282
|
+
*/
|
|
283
|
+
export declare function detectAttachmentType(att: GenieAttachment): AttachmentType;
|
|
284
|
+
/**
|
|
285
|
+
* Return a copy of `att` with `attachment_type` filled in from
|
|
286
|
+
* {@link detectAttachmentType}. Consumers that want a discriminator
|
|
287
|
+
* literal up-front (e.g. `switch (att.attachment_type)`) call this
|
|
288
|
+
* once when an attachment first arrives.
|
|
289
|
+
*/
|
|
290
|
+
export declare function tagAttachment(att: GenieAttachment): GenieAttachment;
|
|
291
|
+
/**
|
|
292
|
+
* Where on the wire an event was observed. Spread into every
|
|
293
|
+
* attachment-scoped event payload so subscribers can route, log,
|
|
294
|
+
* or correlate without re-walking the message.
|
|
295
|
+
*
|
|
296
|
+
* Fields:
|
|
297
|
+
* - `space_id`: the Genie space the conversation lives in.
|
|
298
|
+
* - `conversation_id`: conversation id once Genie has assigned one.
|
|
299
|
+
* - `message_id`: Genie message id for the active turn.
|
|
300
|
+
* - `attachment_id`: attachment the event came from. Optional
|
|
301
|
+
* because Genie sometimes emits an anonymous main-answer
|
|
302
|
+
* attachment without an id; those still get events, just with
|
|
303
|
+
* `attachment_id` undefined.
|
|
304
|
+
*/
|
|
305
|
+
export declare const GenieChatLocationSchema: z.ZodObject<{
|
|
306
|
+
space_id: z.ZodString;
|
|
307
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
308
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
309
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
310
|
+
}, z.core.$strip>;
|
|
311
|
+
export type GenieChatLocation = z.infer<typeof GenieChatLocationSchema>;
|
|
312
|
+
/**
|
|
313
|
+
* Lifecycle event: the question this turn is asking Genie. Fires
|
|
314
|
+
* once per `genieEventChat` call, the first time the underlying
|
|
315
|
+
* `genieChat` loop yields a `GenieMessage`. Carries the prompt
|
|
316
|
+
* text Genie echoed back on `message.content` and the assigned
|
|
317
|
+
* `message_id` so subscribers can group every subsequent event
|
|
318
|
+
* for this turn under one stable key. `conversation_id` is
|
|
319
|
+
* populated for both opening and follow-up turns (Genie assigns
|
|
320
|
+
* it on `startConversation`).
|
|
321
|
+
*
|
|
322
|
+
* Deferred (instead of fired synchronously on entry) so the
|
|
323
|
+
* `message_id` is available when the event lands - that one round
|
|
324
|
+
* trip costs ~200ms but lets UIs render question / thinking /
|
|
325
|
+
* query / text as a single grouped block per Genie call instead
|
|
326
|
+
* of a flat stream.
|
|
327
|
+
*
|
|
328
|
+
* `attachment_id` is intentionally absent - questions are turn
|
|
329
|
+
* scoped, not attachment scoped.
|
|
330
|
+
*/
|
|
331
|
+
export declare const QuestionEventSchema: z.ZodObject<{
|
|
332
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
333
|
+
space_id: z.ZodString;
|
|
334
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
335
|
+
type: z.ZodLiteral<"question">;
|
|
336
|
+
content: z.ZodString;
|
|
337
|
+
}, z.core.$strip>;
|
|
338
|
+
export type QuestionEvent = z.infer<typeof QuestionEventSchema>;
|
|
339
|
+
/**
|
|
340
|
+
* Lifecycle event: raw `GenieMessage` snapshot for the active
|
|
341
|
+
* turn. Fires once per poll yield. The full message shape
|
|
342
|
+
* (including the widened thought / regen / attachment-type
|
|
343
|
+
* fields) is exposed inline as `message`; consumers narrow on
|
|
344
|
+
* `event.type === "message"` and reach for `event.message`.
|
|
345
|
+
*/
|
|
346
|
+
export declare const MessageEventSchema: z.ZodObject<{
|
|
347
|
+
type: z.ZodLiteral<"message">;
|
|
348
|
+
message: z.ZodObject<{
|
|
349
|
+
content: z.ZodString;
|
|
350
|
+
conversation_id: z.ZodString;
|
|
351
|
+
created_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
352
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
353
|
+
error: z.ZodOptional<z.ZodString>;
|
|
354
|
+
type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"BLOCK_MULTIPLE_EXECUTIONS_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_CLIENT_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_CLIENT_TIMEOUT_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_NETWORK_EXCEPTION">, z.ZodLiteral<"CONTENT_FILTER_EXCEPTION">, z.ZodLiteral<"CONTEXT_EXCEEDED_EXCEPTION">, z.ZodLiteral<"COULD_NOT_GET_MODEL_DEPLOYMENTS_EXCEPTION">, z.ZodLiteral<"COULD_NOT_GET_UC_SCHEMA_EXCEPTION">, z.ZodLiteral<"DEPLOYMENT_NOT_FOUND_EXCEPTION">, z.ZodLiteral<"DESCRIBE_QUERY_INVALID_SQL_ERROR">, z.ZodLiteral<"DESCRIBE_QUERY_TIMEOUT">, z.ZodLiteral<"DESCRIBE_QUERY_UNEXPECTED_FAILURE">, z.ZodLiteral<"EXCEEDED_MAX_TOKEN_LENGTH_EXCEPTION">, z.ZodLiteral<"FUNCTIONS_NOT_AVAILABLE_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_JSON_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_TYPE_EXCEPTION">, z.ZodLiteral<"FUNCTION_CALL_MISSING_PARAMETER_EXCEPTION">, z.ZodLiteral<"GENERATED_SQL_QUERY_TOO_LONG_EXCEPTION">, z.ZodLiteral<"GENERIC_CHAT_COMPLETION_EXCEPTION">, z.ZodLiteral<"GENERIC_CHAT_COMPLETION_SERVICE_EXCEPTION">, z.ZodLiteral<"GENERIC_SQL_EXEC_API_CALL_EXCEPTION">, z.ZodLiteral<"ILLEGAL_PARAMETER_DEFINITION_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_FAILED_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_ONGOING_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_UNSUPPORTED_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_MISSING_UC_PATH_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_PATH_OVERLAP_EXCEPTION">, z.ZodLiteral<"INVALID_CERTIFIED_ANSWER_FUNCTION_EXCEPTION">, z.ZodLiteral<"INVALID_CERTIFIED_ANSWER_IDENTIFIER_EXCEPTION">, z.ZodLiteral<"INVALID_CHAT_COMPLETION_ARGUMENTS_JSON_EXCEPTION">, z.ZodLiteral<"INVALID_CHAT_COMPLETION_JSON_EXCEPTION">, z.ZodLiteral<"INVALID_COMPLETION_REQUEST_EXCEPTION">, z.ZodLiteral<"INVALID_FUNCTION_CALL_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_MULTIPLE_DATASET_REFERENCES_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_MULTIPLE_STATEMENTS_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_UNKNOWN_TABLE_EXCEPTION">, z.ZodLiteral<"INVALID_TABLE_IDENTIFIER_EXCEPTION">, z.ZodLiteral<"LOCAL_CONTEXT_EXCEEDED_EXCEPTION">, z.ZodLiteral<"MESSAGE_ATTACHMENT_TOO_LONG_ERROR">, z.ZodLiteral<"MESSAGE_CANCELLED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MESSAGE_DELETED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MESSAGE_UPDATED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MISSING_SQL_QUERY_EXCEPTION">, z.ZodLiteral<"NO_DEPLOYMENTS_AVAILABLE_TO_WORKSPACE">, z.ZodLiteral<"NO_QUERY_TO_VISUALIZE_EXCEPTION">, z.ZodLiteral<"NO_TABLES_TO_QUERY_EXCEPTION">, z.ZodLiteral<"RATE_LIMIT_EXCEEDED_GENERIC_EXCEPTION">, z.ZodLiteral<"RATE_LIMIT_EXCEEDED_SPECIFIED_WAIT_EXCEPTION">, z.ZodLiteral<"REPLY_PROCESS_TIMEOUT_EXCEPTION">, z.ZodLiteral<"RETRYABLE_PROCESSING_EXCEPTION">, z.ZodLiteral<"SQL_EXECUTION_EXCEPTION">, z.ZodLiteral<"STOP_PROCESS_DUE_TO_AUTO_REGENERATE">, z.ZodLiteral<"TABLES_MISSING_EXCEPTION">, z.ZodLiteral<"TOO_MANY_CERTIFIED_ANSWERS_EXCEPTION">, z.ZodLiteral<"TOO_MANY_TABLES_EXCEPTION">, z.ZodLiteral<"UNEXPECTED_REPLY_PROCESS_EXCEPTION">, z.ZodLiteral<"UNKNOWN_AI_MODEL">, z.ZodLiteral<"UNSUPPORTED_CONVERSATION_TYPE_EXCEPTION">, z.ZodLiteral<"WAREHOUSE_ACCESS_MISSING_EXCEPTION">, z.ZodLiteral<"WAREHOUSE_NOT_FOUND_EXCEPTION">]>>;
|
|
355
|
+
}, z.core.$strip>>;
|
|
356
|
+
feedback: z.ZodOptional<z.ZodObject<{
|
|
357
|
+
rating: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"NEGATIVE">, z.ZodLiteral<"NONE">, z.ZodLiteral<"POSITIVE">]>>;
|
|
358
|
+
}, z.core.$strip>>;
|
|
359
|
+
id: z.ZodString;
|
|
360
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
361
|
+
message_id: z.ZodString;
|
|
362
|
+
query_result: z.ZodOptional<z.ZodObject<{
|
|
363
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
364
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
365
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
366
|
+
statement_id_signature: z.ZodOptional<z.ZodString>;
|
|
367
|
+
}, z.core.$strip>>;
|
|
368
|
+
space_id: z.ZodString;
|
|
369
|
+
status: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"ASKING_AI">, z.ZodLiteral<"CANCELLED">, z.ZodLiteral<"COMPLETED">, z.ZodLiteral<"EXECUTING_QUERY">, z.ZodLiteral<"FAILED">, z.ZodLiteral<"FETCHING_METADATA">, z.ZodLiteral<"FILTERING_CONTEXT">, z.ZodLiteral<"PENDING_WAREHOUSE">, z.ZodLiteral<"QUERY_RESULT_EXPIRED">, z.ZodLiteral<"SUBMITTED">]>>;
|
|
370
|
+
user_id: z.ZodOptional<z.ZodNumber>;
|
|
371
|
+
attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
372
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
373
|
+
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
374
|
+
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
375
|
+
}, z.core.$strip>>;
|
|
376
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
377
|
+
content: z.ZodOptional<z.ZodString>;
|
|
378
|
+
id: z.ZodOptional<z.ZodString>;
|
|
379
|
+
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
380
|
+
}, z.core.$strip>>;
|
|
381
|
+
query: z.ZodOptional<z.ZodObject<{
|
|
382
|
+
description: z.ZodOptional<z.ZodString>;
|
|
383
|
+
id: z.ZodOptional<z.ZodString>;
|
|
384
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
385
|
+
parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
386
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
387
|
+
sql_type: z.ZodOptional<z.ZodString>;
|
|
388
|
+
value: z.ZodOptional<z.ZodString>;
|
|
389
|
+
}, z.core.$strip>>>;
|
|
390
|
+
query: z.ZodOptional<z.ZodString>;
|
|
391
|
+
query_result_metadata: z.ZodOptional<z.ZodObject<{
|
|
392
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
393
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
394
|
+
}, z.core.$strip>>;
|
|
395
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
396
|
+
title: z.ZodOptional<z.ZodString>;
|
|
397
|
+
thoughts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
398
|
+
thought_type: z.ZodCustom<GenieThoughtType, GenieThoughtType>;
|
|
399
|
+
content: z.ZodString;
|
|
400
|
+
}, z.core.$strip>>>;
|
|
401
|
+
}, z.core.$strip>>;
|
|
402
|
+
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
403
|
+
}, z.core.$strip>>>;
|
|
404
|
+
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
|
405
|
+
}, z.core.$strip>;
|
|
406
|
+
}, z.core.$strip>;
|
|
407
|
+
export type MessageEvent = z.infer<typeof MessageEventSchema>;
|
|
408
|
+
/**
|
|
409
|
+
* Top-level `message.status` transitioned. Fires for every
|
|
410
|
+
* distinct status seen on the wire (e.g. `SUBMITTED` ->
|
|
411
|
+
* `FILTERING_CONTEXT` -> `ASKING_AI` -> `PENDING_WAREHOUSE` ->
|
|
412
|
+
* `ASKING_AI` -> `COMPLETED`).
|
|
413
|
+
*/
|
|
414
|
+
export declare const StatusEventSchema: z.ZodObject<{
|
|
415
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
416
|
+
space_id: z.ZodString;
|
|
417
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
418
|
+
type: z.ZodLiteral<"status">;
|
|
419
|
+
status: z.ZodUnion<readonly [z.ZodLiteral<"ASKING_AI">, z.ZodLiteral<"CANCELLED">, z.ZodLiteral<"COMPLETED">, z.ZodLiteral<"EXECUTING_QUERY">, z.ZodLiteral<"FAILED">, z.ZodLiteral<"FETCHING_METADATA">, z.ZodLiteral<"FILTERING_CONTEXT">, z.ZodLiteral<"PENDING_WAREHOUSE">, z.ZodLiteral<"QUERY_RESULT_EXPIRED">, z.ZodLiteral<"SUBMITTED">]>;
|
|
420
|
+
previous_status: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"ASKING_AI">, z.ZodLiteral<"CANCELLED">, z.ZodLiteral<"COMPLETED">, z.ZodLiteral<"EXECUTING_QUERY">, z.ZodLiteral<"FAILED">, z.ZodLiteral<"FETCHING_METADATA">, z.ZodLiteral<"FILTERING_CONTEXT">, z.ZodLiteral<"PENDING_WAREHOUSE">, z.ZodLiteral<"QUERY_RESULT_EXPIRED">, z.ZodLiteral<"SUBMITTED">]>>;
|
|
421
|
+
}, z.core.$strip>;
|
|
422
|
+
export type StatusEvent = z.infer<typeof StatusEventSchema>;
|
|
423
|
+
/**
|
|
424
|
+
* A new attachment slot appeared in `message.attachments[]`.
|
|
425
|
+
* Fires exactly once per attachment (matched by `attachment_id`,
|
|
426
|
+
* positionally for anonymous attachments) the first time we see
|
|
427
|
+
* it. The slot's payload kind lands in `attachment_type` so the
|
|
428
|
+
* outer `type` discriminator stays unambiguous.
|
|
429
|
+
*/
|
|
430
|
+
export declare const AttachmentEventSchema: z.ZodObject<{
|
|
431
|
+
space_id: z.ZodString;
|
|
432
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
433
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
434
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
435
|
+
type: z.ZodLiteral<"attachment">;
|
|
436
|
+
index: z.ZodNumber;
|
|
437
|
+
attachment_type: z.ZodCustom<AttachmentType, AttachmentType>;
|
|
438
|
+
}, z.core.$strip>;
|
|
439
|
+
export type AttachmentEvent = z.infer<typeof AttachmentEventSchema>;
|
|
440
|
+
/**
|
|
441
|
+
* A new reasoning step appeared on a query attachment
|
|
442
|
+
* (`attachments[i].query.thoughts[i]`). Deduplicated per
|
|
443
|
+
* `(thought_type, content)` tuple within an attachment so
|
|
444
|
+
* subscribers don't see the same thought multiple times - Genie
|
|
445
|
+
* sometimes mutates existing thought slots in place, so the diff
|
|
446
|
+
* is value-based rather than positional.
|
|
447
|
+
*/
|
|
448
|
+
export declare const ThinkingEventSchema: z.ZodObject<{
|
|
449
|
+
space_id: z.ZodString;
|
|
450
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
451
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
452
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
453
|
+
type: z.ZodLiteral<"thinking">;
|
|
454
|
+
text: z.ZodString;
|
|
455
|
+
thought_type: z.ZodCustom<GenieThoughtType, GenieThoughtType>;
|
|
456
|
+
}, z.core.$strip>;
|
|
457
|
+
export type ThinkingEvent = z.infer<typeof ThinkingEventSchema>;
|
|
458
|
+
/**
|
|
459
|
+
* A text-attachment `content` field appeared or changed
|
|
460
|
+
* (`attachments[i].text.content`). Fires whenever the snapshot
|
|
461
|
+
* value differs from the previous one for the same attachment.
|
|
462
|
+
*/
|
|
463
|
+
export declare const TextEventSchema: z.ZodObject<{
|
|
464
|
+
space_id: z.ZodString;
|
|
465
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
466
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
467
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
468
|
+
type: z.ZodLiteral<"text">;
|
|
469
|
+
text: z.ZodString;
|
|
470
|
+
}, z.core.$strip>;
|
|
471
|
+
export type TextEvent = z.infer<typeof TextEventSchema>;
|
|
472
|
+
/**
|
|
473
|
+
* SQL was finalized on a query attachment
|
|
474
|
+
* (`attachments[i].query.query`). Fires once when the SQL string
|
|
475
|
+
* transitions from undefined to defined, and again if Genie ever
|
|
476
|
+
* rewrites it. `title` and `description` are denormalised off the
|
|
477
|
+
* attachment's `query.title` / `query.description` so consumers
|
|
478
|
+
* can label the SQL pill without re-walking the message.
|
|
479
|
+
*/
|
|
480
|
+
export declare const QueryEventSchema: z.ZodObject<{
|
|
481
|
+
space_id: z.ZodString;
|
|
482
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
483
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
484
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
485
|
+
type: z.ZodLiteral<"query">;
|
|
486
|
+
sql: z.ZodString;
|
|
487
|
+
title: z.ZodOptional<z.ZodString>;
|
|
488
|
+
description: z.ZodOptional<z.ZodString>;
|
|
489
|
+
}, z.core.$strip>;
|
|
490
|
+
export type QueryEvent = z.infer<typeof QueryEventSchema>;
|
|
491
|
+
/**
|
|
492
|
+
* SQL was submitted to a SQL warehouse and a statement id was
|
|
493
|
+
* assigned (`attachments[i].query.statement_id`). Fires when the
|
|
494
|
+
* statement id transitions from undefined to defined - this is the
|
|
495
|
+
* point at which `client.statementExecution.getStatement({ statement_id })`
|
|
496
|
+
* becomes a valid call.
|
|
497
|
+
*/
|
|
498
|
+
export declare const StatementEventSchema: z.ZodObject<{
|
|
499
|
+
space_id: z.ZodString;
|
|
500
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
501
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
502
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
503
|
+
type: z.ZodLiteral<"statement">;
|
|
504
|
+
statement_id: z.ZodString;
|
|
505
|
+
}, z.core.$strip>;
|
|
506
|
+
export type StatementEvent = z.infer<typeof StatementEventSchema>;
|
|
507
|
+
/**
|
|
508
|
+
* Row count for a query attachment's result changed
|
|
509
|
+
* (`attachments[i].query.query_result_metadata.row_count`). Fires
|
|
510
|
+
* on every change, including the initial `undefined -> 0` and the
|
|
511
|
+
* later `0 -> N` once the warehouse finishes execution.
|
|
512
|
+
*/
|
|
513
|
+
export declare const RowsEventSchema: z.ZodObject<{
|
|
514
|
+
space_id: z.ZodString;
|
|
515
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
516
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
517
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
518
|
+
type: z.ZodLiteral<"rows">;
|
|
519
|
+
row_count: z.ZodNumber;
|
|
520
|
+
previous_row_count: z.ZodOptional<z.ZodNumber>;
|
|
521
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
522
|
+
}, z.core.$strip>;
|
|
523
|
+
export type RowsEvent = z.infer<typeof RowsEventSchema>;
|
|
524
|
+
/**
|
|
525
|
+
* Genie produced a follow-up suggested-questions list
|
|
526
|
+
* (`attachments[i].suggested_questions.questions[]`). Fires once
|
|
527
|
+
* when the list appears, and again if Genie rewrites it.
|
|
528
|
+
*/
|
|
529
|
+
export declare const SuggestedQuestionsEventSchema: z.ZodObject<{
|
|
530
|
+
space_id: z.ZodString;
|
|
531
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
532
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
533
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
534
|
+
type: z.ZodLiteral<"suggested_questions">;
|
|
535
|
+
questions: z.ZodArray<z.ZodString>;
|
|
536
|
+
}, z.core.$strip>;
|
|
537
|
+
export type SuggestedQuestionsEvent = z.infer<typeof SuggestedQuestionsEventSchema>;
|
|
538
|
+
/**
|
|
539
|
+
* The active turn reached a terminal status. Always fires once
|
|
540
|
+
* per turn (immediately after the terminal `message` event).
|
|
541
|
+
* Carries the final `GenieMessage` snapshot inline so subscribers
|
|
542
|
+
* don't need to keep their own copy of the last message.
|
|
543
|
+
*/
|
|
544
|
+
export declare const ResultEventSchema: z.ZodObject<{
|
|
545
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
546
|
+
space_id: z.ZodString;
|
|
547
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
548
|
+
type: z.ZodLiteral<"result">;
|
|
549
|
+
status: z.ZodEnum<{
|
|
550
|
+
CANCELLED: "CANCELLED";
|
|
551
|
+
COMPLETED: "COMPLETED";
|
|
552
|
+
FAILED: "FAILED";
|
|
553
|
+
}>;
|
|
554
|
+
message: z.ZodObject<{
|
|
555
|
+
content: z.ZodString;
|
|
556
|
+
conversation_id: z.ZodString;
|
|
557
|
+
created_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
558
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
559
|
+
error: z.ZodOptional<z.ZodString>;
|
|
560
|
+
type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"BLOCK_MULTIPLE_EXECUTIONS_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_CLIENT_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_CLIENT_TIMEOUT_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_NETWORK_EXCEPTION">, z.ZodLiteral<"CONTENT_FILTER_EXCEPTION">, z.ZodLiteral<"CONTEXT_EXCEEDED_EXCEPTION">, z.ZodLiteral<"COULD_NOT_GET_MODEL_DEPLOYMENTS_EXCEPTION">, z.ZodLiteral<"COULD_NOT_GET_UC_SCHEMA_EXCEPTION">, z.ZodLiteral<"DEPLOYMENT_NOT_FOUND_EXCEPTION">, z.ZodLiteral<"DESCRIBE_QUERY_INVALID_SQL_ERROR">, z.ZodLiteral<"DESCRIBE_QUERY_TIMEOUT">, z.ZodLiteral<"DESCRIBE_QUERY_UNEXPECTED_FAILURE">, z.ZodLiteral<"EXCEEDED_MAX_TOKEN_LENGTH_EXCEPTION">, z.ZodLiteral<"FUNCTIONS_NOT_AVAILABLE_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_JSON_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_TYPE_EXCEPTION">, z.ZodLiteral<"FUNCTION_CALL_MISSING_PARAMETER_EXCEPTION">, z.ZodLiteral<"GENERATED_SQL_QUERY_TOO_LONG_EXCEPTION">, z.ZodLiteral<"GENERIC_CHAT_COMPLETION_EXCEPTION">, z.ZodLiteral<"GENERIC_CHAT_COMPLETION_SERVICE_EXCEPTION">, z.ZodLiteral<"GENERIC_SQL_EXEC_API_CALL_EXCEPTION">, z.ZodLiteral<"ILLEGAL_PARAMETER_DEFINITION_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_FAILED_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_ONGOING_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_UNSUPPORTED_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_MISSING_UC_PATH_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_PATH_OVERLAP_EXCEPTION">, z.ZodLiteral<"INVALID_CERTIFIED_ANSWER_FUNCTION_EXCEPTION">, z.ZodLiteral<"INVALID_CERTIFIED_ANSWER_IDENTIFIER_EXCEPTION">, z.ZodLiteral<"INVALID_CHAT_COMPLETION_ARGUMENTS_JSON_EXCEPTION">, z.ZodLiteral<"INVALID_CHAT_COMPLETION_JSON_EXCEPTION">, z.ZodLiteral<"INVALID_COMPLETION_REQUEST_EXCEPTION">, z.ZodLiteral<"INVALID_FUNCTION_CALL_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_MULTIPLE_DATASET_REFERENCES_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_MULTIPLE_STATEMENTS_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_UNKNOWN_TABLE_EXCEPTION">, z.ZodLiteral<"INVALID_TABLE_IDENTIFIER_EXCEPTION">, z.ZodLiteral<"LOCAL_CONTEXT_EXCEEDED_EXCEPTION">, z.ZodLiteral<"MESSAGE_ATTACHMENT_TOO_LONG_ERROR">, z.ZodLiteral<"MESSAGE_CANCELLED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MESSAGE_DELETED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MESSAGE_UPDATED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MISSING_SQL_QUERY_EXCEPTION">, z.ZodLiteral<"NO_DEPLOYMENTS_AVAILABLE_TO_WORKSPACE">, z.ZodLiteral<"NO_QUERY_TO_VISUALIZE_EXCEPTION">, z.ZodLiteral<"NO_TABLES_TO_QUERY_EXCEPTION">, z.ZodLiteral<"RATE_LIMIT_EXCEEDED_GENERIC_EXCEPTION">, z.ZodLiteral<"RATE_LIMIT_EXCEEDED_SPECIFIED_WAIT_EXCEPTION">, z.ZodLiteral<"REPLY_PROCESS_TIMEOUT_EXCEPTION">, z.ZodLiteral<"RETRYABLE_PROCESSING_EXCEPTION">, z.ZodLiteral<"SQL_EXECUTION_EXCEPTION">, z.ZodLiteral<"STOP_PROCESS_DUE_TO_AUTO_REGENERATE">, z.ZodLiteral<"TABLES_MISSING_EXCEPTION">, z.ZodLiteral<"TOO_MANY_CERTIFIED_ANSWERS_EXCEPTION">, z.ZodLiteral<"TOO_MANY_TABLES_EXCEPTION">, z.ZodLiteral<"UNEXPECTED_REPLY_PROCESS_EXCEPTION">, z.ZodLiteral<"UNKNOWN_AI_MODEL">, z.ZodLiteral<"UNSUPPORTED_CONVERSATION_TYPE_EXCEPTION">, z.ZodLiteral<"WAREHOUSE_ACCESS_MISSING_EXCEPTION">, z.ZodLiteral<"WAREHOUSE_NOT_FOUND_EXCEPTION">]>>;
|
|
561
|
+
}, z.core.$strip>>;
|
|
562
|
+
feedback: z.ZodOptional<z.ZodObject<{
|
|
563
|
+
rating: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"NEGATIVE">, z.ZodLiteral<"NONE">, z.ZodLiteral<"POSITIVE">]>>;
|
|
564
|
+
}, z.core.$strip>>;
|
|
565
|
+
id: z.ZodString;
|
|
566
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
567
|
+
message_id: z.ZodString;
|
|
568
|
+
query_result: z.ZodOptional<z.ZodObject<{
|
|
569
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
570
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
571
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
572
|
+
statement_id_signature: z.ZodOptional<z.ZodString>;
|
|
573
|
+
}, z.core.$strip>>;
|
|
574
|
+
space_id: z.ZodString;
|
|
575
|
+
status: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"ASKING_AI">, z.ZodLiteral<"CANCELLED">, z.ZodLiteral<"COMPLETED">, z.ZodLiteral<"EXECUTING_QUERY">, z.ZodLiteral<"FAILED">, z.ZodLiteral<"FETCHING_METADATA">, z.ZodLiteral<"FILTERING_CONTEXT">, z.ZodLiteral<"PENDING_WAREHOUSE">, z.ZodLiteral<"QUERY_RESULT_EXPIRED">, z.ZodLiteral<"SUBMITTED">]>>;
|
|
576
|
+
user_id: z.ZodOptional<z.ZodNumber>;
|
|
577
|
+
attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
578
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
579
|
+
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
580
|
+
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
581
|
+
}, z.core.$strip>>;
|
|
582
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
583
|
+
content: z.ZodOptional<z.ZodString>;
|
|
584
|
+
id: z.ZodOptional<z.ZodString>;
|
|
585
|
+
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
586
|
+
}, z.core.$strip>>;
|
|
587
|
+
query: z.ZodOptional<z.ZodObject<{
|
|
588
|
+
description: z.ZodOptional<z.ZodString>;
|
|
589
|
+
id: z.ZodOptional<z.ZodString>;
|
|
590
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
591
|
+
parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
592
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
593
|
+
sql_type: z.ZodOptional<z.ZodString>;
|
|
594
|
+
value: z.ZodOptional<z.ZodString>;
|
|
595
|
+
}, z.core.$strip>>>;
|
|
596
|
+
query: z.ZodOptional<z.ZodString>;
|
|
597
|
+
query_result_metadata: z.ZodOptional<z.ZodObject<{
|
|
598
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
599
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
600
|
+
}, z.core.$strip>>;
|
|
601
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
602
|
+
title: z.ZodOptional<z.ZodString>;
|
|
603
|
+
thoughts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
604
|
+
thought_type: z.ZodCustom<GenieThoughtType, GenieThoughtType>;
|
|
605
|
+
content: z.ZodString;
|
|
606
|
+
}, z.core.$strip>>>;
|
|
607
|
+
}, z.core.$strip>>;
|
|
608
|
+
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
609
|
+
}, z.core.$strip>>>;
|
|
610
|
+
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
|
611
|
+
}, z.core.$strip>;
|
|
612
|
+
}, z.core.$strip>;
|
|
613
|
+
export type ResultEvent = z.infer<typeof ResultEventSchema>;
|
|
614
|
+
/**
|
|
615
|
+
* Discriminated union yielded by `genieEventChat`. Each variant
|
|
616
|
+
* is a single flat object with `type` as the discriminator and
|
|
617
|
+
* the payload fields hoisted directly to the top level - no
|
|
618
|
+
* `payload` wrapper. Consumers narrow on `type` and read fields
|
|
619
|
+
* inline:
|
|
620
|
+
*
|
|
621
|
+
* @example
|
|
622
|
+
* for await (const event of genieEventChat(spaceId, "Top stores?")) {
|
|
623
|
+
* switch (event.type) {
|
|
624
|
+
* case "thinking":
|
|
625
|
+
* console.log(event.thought_type, event.text);
|
|
626
|
+
* break;
|
|
627
|
+
* case "result":
|
|
628
|
+
* console.log("done:", event.status);
|
|
629
|
+
* break;
|
|
630
|
+
* }
|
|
631
|
+
* }
|
|
632
|
+
*
|
|
633
|
+
* Stream order per turn:
|
|
634
|
+
*
|
|
635
|
+
* 1. `question` (synchronous, before the first SDK call)
|
|
636
|
+
* carrying the prompt this turn sent to Genie.
|
|
637
|
+
* 2. `message` for every poll yield (raw `GenieMessage` on
|
|
638
|
+
* `event.message`).
|
|
639
|
+
* 3. Any derived events the snapshot diff produced (`status`,
|
|
640
|
+
* `attachment`, `thinking`, `text`, `query`, `statement`,
|
|
641
|
+
* `rows`, `suggested_questions`) in that fixed order.
|
|
642
|
+
* 4. On the terminal snapshot, a final `result` event.
|
|
643
|
+
*
|
|
644
|
+
* Errors propagate via the generator throwing (`try`/`catch` the
|
|
645
|
+
* `for await`), not via an `error` variant on this union.
|
|
646
|
+
*/
|
|
647
|
+
export declare const GenieChatEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
648
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
649
|
+
space_id: z.ZodString;
|
|
650
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
651
|
+
type: z.ZodLiteral<"question">;
|
|
652
|
+
content: z.ZodString;
|
|
653
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
654
|
+
type: z.ZodLiteral<"message">;
|
|
655
|
+
message: z.ZodObject<{
|
|
656
|
+
content: z.ZodString;
|
|
657
|
+
conversation_id: z.ZodString;
|
|
658
|
+
created_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
659
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
660
|
+
error: z.ZodOptional<z.ZodString>;
|
|
661
|
+
type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"BLOCK_MULTIPLE_EXECUTIONS_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_CLIENT_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_CLIENT_TIMEOUT_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_NETWORK_EXCEPTION">, z.ZodLiteral<"CONTENT_FILTER_EXCEPTION">, z.ZodLiteral<"CONTEXT_EXCEEDED_EXCEPTION">, z.ZodLiteral<"COULD_NOT_GET_MODEL_DEPLOYMENTS_EXCEPTION">, z.ZodLiteral<"COULD_NOT_GET_UC_SCHEMA_EXCEPTION">, z.ZodLiteral<"DEPLOYMENT_NOT_FOUND_EXCEPTION">, z.ZodLiteral<"DESCRIBE_QUERY_INVALID_SQL_ERROR">, z.ZodLiteral<"DESCRIBE_QUERY_TIMEOUT">, z.ZodLiteral<"DESCRIBE_QUERY_UNEXPECTED_FAILURE">, z.ZodLiteral<"EXCEEDED_MAX_TOKEN_LENGTH_EXCEPTION">, z.ZodLiteral<"FUNCTIONS_NOT_AVAILABLE_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_JSON_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_TYPE_EXCEPTION">, z.ZodLiteral<"FUNCTION_CALL_MISSING_PARAMETER_EXCEPTION">, z.ZodLiteral<"GENERATED_SQL_QUERY_TOO_LONG_EXCEPTION">, z.ZodLiteral<"GENERIC_CHAT_COMPLETION_EXCEPTION">, z.ZodLiteral<"GENERIC_CHAT_COMPLETION_SERVICE_EXCEPTION">, z.ZodLiteral<"GENERIC_SQL_EXEC_API_CALL_EXCEPTION">, z.ZodLiteral<"ILLEGAL_PARAMETER_DEFINITION_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_FAILED_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_ONGOING_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_UNSUPPORTED_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_MISSING_UC_PATH_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_PATH_OVERLAP_EXCEPTION">, z.ZodLiteral<"INVALID_CERTIFIED_ANSWER_FUNCTION_EXCEPTION">, z.ZodLiteral<"INVALID_CERTIFIED_ANSWER_IDENTIFIER_EXCEPTION">, z.ZodLiteral<"INVALID_CHAT_COMPLETION_ARGUMENTS_JSON_EXCEPTION">, z.ZodLiteral<"INVALID_CHAT_COMPLETION_JSON_EXCEPTION">, z.ZodLiteral<"INVALID_COMPLETION_REQUEST_EXCEPTION">, z.ZodLiteral<"INVALID_FUNCTION_CALL_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_MULTIPLE_DATASET_REFERENCES_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_MULTIPLE_STATEMENTS_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_UNKNOWN_TABLE_EXCEPTION">, z.ZodLiteral<"INVALID_TABLE_IDENTIFIER_EXCEPTION">, z.ZodLiteral<"LOCAL_CONTEXT_EXCEEDED_EXCEPTION">, z.ZodLiteral<"MESSAGE_ATTACHMENT_TOO_LONG_ERROR">, z.ZodLiteral<"MESSAGE_CANCELLED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MESSAGE_DELETED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MESSAGE_UPDATED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MISSING_SQL_QUERY_EXCEPTION">, z.ZodLiteral<"NO_DEPLOYMENTS_AVAILABLE_TO_WORKSPACE">, z.ZodLiteral<"NO_QUERY_TO_VISUALIZE_EXCEPTION">, z.ZodLiteral<"NO_TABLES_TO_QUERY_EXCEPTION">, z.ZodLiteral<"RATE_LIMIT_EXCEEDED_GENERIC_EXCEPTION">, z.ZodLiteral<"RATE_LIMIT_EXCEEDED_SPECIFIED_WAIT_EXCEPTION">, z.ZodLiteral<"REPLY_PROCESS_TIMEOUT_EXCEPTION">, z.ZodLiteral<"RETRYABLE_PROCESSING_EXCEPTION">, z.ZodLiteral<"SQL_EXECUTION_EXCEPTION">, z.ZodLiteral<"STOP_PROCESS_DUE_TO_AUTO_REGENERATE">, z.ZodLiteral<"TABLES_MISSING_EXCEPTION">, z.ZodLiteral<"TOO_MANY_CERTIFIED_ANSWERS_EXCEPTION">, z.ZodLiteral<"TOO_MANY_TABLES_EXCEPTION">, z.ZodLiteral<"UNEXPECTED_REPLY_PROCESS_EXCEPTION">, z.ZodLiteral<"UNKNOWN_AI_MODEL">, z.ZodLiteral<"UNSUPPORTED_CONVERSATION_TYPE_EXCEPTION">, z.ZodLiteral<"WAREHOUSE_ACCESS_MISSING_EXCEPTION">, z.ZodLiteral<"WAREHOUSE_NOT_FOUND_EXCEPTION">]>>;
|
|
662
|
+
}, z.core.$strip>>;
|
|
663
|
+
feedback: z.ZodOptional<z.ZodObject<{
|
|
664
|
+
rating: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"NEGATIVE">, z.ZodLiteral<"NONE">, z.ZodLiteral<"POSITIVE">]>>;
|
|
665
|
+
}, z.core.$strip>>;
|
|
666
|
+
id: z.ZodString;
|
|
667
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
668
|
+
message_id: z.ZodString;
|
|
669
|
+
query_result: z.ZodOptional<z.ZodObject<{
|
|
670
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
671
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
672
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
673
|
+
statement_id_signature: z.ZodOptional<z.ZodString>;
|
|
674
|
+
}, z.core.$strip>>;
|
|
675
|
+
space_id: z.ZodString;
|
|
676
|
+
status: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"ASKING_AI">, z.ZodLiteral<"CANCELLED">, z.ZodLiteral<"COMPLETED">, z.ZodLiteral<"EXECUTING_QUERY">, z.ZodLiteral<"FAILED">, z.ZodLiteral<"FETCHING_METADATA">, z.ZodLiteral<"FILTERING_CONTEXT">, z.ZodLiteral<"PENDING_WAREHOUSE">, z.ZodLiteral<"QUERY_RESULT_EXPIRED">, z.ZodLiteral<"SUBMITTED">]>>;
|
|
677
|
+
user_id: z.ZodOptional<z.ZodNumber>;
|
|
678
|
+
attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
679
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
680
|
+
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
681
|
+
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
682
|
+
}, z.core.$strip>>;
|
|
683
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
684
|
+
content: z.ZodOptional<z.ZodString>;
|
|
685
|
+
id: z.ZodOptional<z.ZodString>;
|
|
686
|
+
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
687
|
+
}, z.core.$strip>>;
|
|
688
|
+
query: z.ZodOptional<z.ZodObject<{
|
|
689
|
+
description: z.ZodOptional<z.ZodString>;
|
|
690
|
+
id: z.ZodOptional<z.ZodString>;
|
|
691
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
692
|
+
parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
693
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
694
|
+
sql_type: z.ZodOptional<z.ZodString>;
|
|
695
|
+
value: z.ZodOptional<z.ZodString>;
|
|
696
|
+
}, z.core.$strip>>>;
|
|
697
|
+
query: z.ZodOptional<z.ZodString>;
|
|
698
|
+
query_result_metadata: z.ZodOptional<z.ZodObject<{
|
|
699
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
700
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
701
|
+
}, z.core.$strip>>;
|
|
702
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
703
|
+
title: z.ZodOptional<z.ZodString>;
|
|
704
|
+
thoughts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
705
|
+
thought_type: z.ZodCustom<GenieThoughtType, GenieThoughtType>;
|
|
706
|
+
content: z.ZodString;
|
|
707
|
+
}, z.core.$strip>>>;
|
|
708
|
+
}, z.core.$strip>>;
|
|
709
|
+
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
710
|
+
}, z.core.$strip>>>;
|
|
711
|
+
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
|
712
|
+
}, z.core.$strip>;
|
|
713
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
714
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
715
|
+
space_id: z.ZodString;
|
|
716
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
717
|
+
type: z.ZodLiteral<"status">;
|
|
718
|
+
status: z.ZodUnion<readonly [z.ZodLiteral<"ASKING_AI">, z.ZodLiteral<"CANCELLED">, z.ZodLiteral<"COMPLETED">, z.ZodLiteral<"EXECUTING_QUERY">, z.ZodLiteral<"FAILED">, z.ZodLiteral<"FETCHING_METADATA">, z.ZodLiteral<"FILTERING_CONTEXT">, z.ZodLiteral<"PENDING_WAREHOUSE">, z.ZodLiteral<"QUERY_RESULT_EXPIRED">, z.ZodLiteral<"SUBMITTED">]>;
|
|
719
|
+
previous_status: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"ASKING_AI">, z.ZodLiteral<"CANCELLED">, z.ZodLiteral<"COMPLETED">, z.ZodLiteral<"EXECUTING_QUERY">, z.ZodLiteral<"FAILED">, z.ZodLiteral<"FETCHING_METADATA">, z.ZodLiteral<"FILTERING_CONTEXT">, z.ZodLiteral<"PENDING_WAREHOUSE">, z.ZodLiteral<"QUERY_RESULT_EXPIRED">, z.ZodLiteral<"SUBMITTED">]>>;
|
|
720
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
721
|
+
space_id: z.ZodString;
|
|
722
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
723
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
724
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
725
|
+
type: z.ZodLiteral<"attachment">;
|
|
726
|
+
index: z.ZodNumber;
|
|
727
|
+
attachment_type: z.ZodCustom<AttachmentType, AttachmentType>;
|
|
728
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
729
|
+
space_id: z.ZodString;
|
|
730
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
731
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
732
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
733
|
+
type: z.ZodLiteral<"thinking">;
|
|
734
|
+
text: z.ZodString;
|
|
735
|
+
thought_type: z.ZodCustom<GenieThoughtType, GenieThoughtType>;
|
|
736
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
737
|
+
space_id: z.ZodString;
|
|
738
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
739
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
740
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
741
|
+
type: z.ZodLiteral<"text">;
|
|
742
|
+
text: z.ZodString;
|
|
743
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
744
|
+
space_id: z.ZodString;
|
|
745
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
746
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
747
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
748
|
+
type: z.ZodLiteral<"query">;
|
|
749
|
+
sql: z.ZodString;
|
|
750
|
+
title: z.ZodOptional<z.ZodString>;
|
|
751
|
+
description: z.ZodOptional<z.ZodString>;
|
|
752
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
753
|
+
space_id: z.ZodString;
|
|
754
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
755
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
756
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
757
|
+
type: z.ZodLiteral<"statement">;
|
|
758
|
+
statement_id: z.ZodString;
|
|
759
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
760
|
+
space_id: z.ZodString;
|
|
761
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
762
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
763
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
764
|
+
type: z.ZodLiteral<"rows">;
|
|
765
|
+
row_count: z.ZodNumber;
|
|
766
|
+
previous_row_count: z.ZodOptional<z.ZodNumber>;
|
|
767
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
768
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
769
|
+
space_id: z.ZodString;
|
|
770
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
771
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
772
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
773
|
+
type: z.ZodLiteral<"suggested_questions">;
|
|
774
|
+
questions: z.ZodArray<z.ZodString>;
|
|
775
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
776
|
+
conversation_id: z.ZodOptional<z.ZodString>;
|
|
777
|
+
space_id: z.ZodString;
|
|
778
|
+
message_id: z.ZodOptional<z.ZodString>;
|
|
779
|
+
type: z.ZodLiteral<"result">;
|
|
780
|
+
status: z.ZodEnum<{
|
|
781
|
+
CANCELLED: "CANCELLED";
|
|
782
|
+
COMPLETED: "COMPLETED";
|
|
783
|
+
FAILED: "FAILED";
|
|
784
|
+
}>;
|
|
785
|
+
message: z.ZodObject<{
|
|
786
|
+
content: z.ZodString;
|
|
787
|
+
conversation_id: z.ZodString;
|
|
788
|
+
created_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
789
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
790
|
+
error: z.ZodOptional<z.ZodString>;
|
|
791
|
+
type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"BLOCK_MULTIPLE_EXECUTIONS_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_CLIENT_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_CLIENT_TIMEOUT_EXCEPTION">, z.ZodLiteral<"CHAT_COMPLETION_NETWORK_EXCEPTION">, z.ZodLiteral<"CONTENT_FILTER_EXCEPTION">, z.ZodLiteral<"CONTEXT_EXCEEDED_EXCEPTION">, z.ZodLiteral<"COULD_NOT_GET_MODEL_DEPLOYMENTS_EXCEPTION">, z.ZodLiteral<"COULD_NOT_GET_UC_SCHEMA_EXCEPTION">, z.ZodLiteral<"DEPLOYMENT_NOT_FOUND_EXCEPTION">, z.ZodLiteral<"DESCRIBE_QUERY_INVALID_SQL_ERROR">, z.ZodLiteral<"DESCRIBE_QUERY_TIMEOUT">, z.ZodLiteral<"DESCRIBE_QUERY_UNEXPECTED_FAILURE">, z.ZodLiteral<"EXCEEDED_MAX_TOKEN_LENGTH_EXCEPTION">, z.ZodLiteral<"FUNCTIONS_NOT_AVAILABLE_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_JSON_EXCEPTION">, z.ZodLiteral<"FUNCTION_ARGUMENTS_INVALID_TYPE_EXCEPTION">, z.ZodLiteral<"FUNCTION_CALL_MISSING_PARAMETER_EXCEPTION">, z.ZodLiteral<"GENERATED_SQL_QUERY_TOO_LONG_EXCEPTION">, z.ZodLiteral<"GENERIC_CHAT_COMPLETION_EXCEPTION">, z.ZodLiteral<"GENERIC_CHAT_COMPLETION_SERVICE_EXCEPTION">, z.ZodLiteral<"GENERIC_SQL_EXEC_API_CALL_EXCEPTION">, z.ZodLiteral<"ILLEGAL_PARAMETER_DEFINITION_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_FAILED_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_ONGOING_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_ASSET_CREATION_UNSUPPORTED_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_MISSING_UC_PATH_EXCEPTION">, z.ZodLiteral<"INTERNAL_CATALOG_PATH_OVERLAP_EXCEPTION">, z.ZodLiteral<"INVALID_CERTIFIED_ANSWER_FUNCTION_EXCEPTION">, z.ZodLiteral<"INVALID_CERTIFIED_ANSWER_IDENTIFIER_EXCEPTION">, z.ZodLiteral<"INVALID_CHAT_COMPLETION_ARGUMENTS_JSON_EXCEPTION">, z.ZodLiteral<"INVALID_CHAT_COMPLETION_JSON_EXCEPTION">, z.ZodLiteral<"INVALID_COMPLETION_REQUEST_EXCEPTION">, z.ZodLiteral<"INVALID_FUNCTION_CALL_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_MULTIPLE_DATASET_REFERENCES_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_MULTIPLE_STATEMENTS_EXCEPTION">, z.ZodLiteral<"INVALID_SQL_UNKNOWN_TABLE_EXCEPTION">, z.ZodLiteral<"INVALID_TABLE_IDENTIFIER_EXCEPTION">, z.ZodLiteral<"LOCAL_CONTEXT_EXCEEDED_EXCEPTION">, z.ZodLiteral<"MESSAGE_ATTACHMENT_TOO_LONG_ERROR">, z.ZodLiteral<"MESSAGE_CANCELLED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MESSAGE_DELETED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MESSAGE_UPDATED_WHILE_EXECUTING_EXCEPTION">, z.ZodLiteral<"MISSING_SQL_QUERY_EXCEPTION">, z.ZodLiteral<"NO_DEPLOYMENTS_AVAILABLE_TO_WORKSPACE">, z.ZodLiteral<"NO_QUERY_TO_VISUALIZE_EXCEPTION">, z.ZodLiteral<"NO_TABLES_TO_QUERY_EXCEPTION">, z.ZodLiteral<"RATE_LIMIT_EXCEEDED_GENERIC_EXCEPTION">, z.ZodLiteral<"RATE_LIMIT_EXCEEDED_SPECIFIED_WAIT_EXCEPTION">, z.ZodLiteral<"REPLY_PROCESS_TIMEOUT_EXCEPTION">, z.ZodLiteral<"RETRYABLE_PROCESSING_EXCEPTION">, z.ZodLiteral<"SQL_EXECUTION_EXCEPTION">, z.ZodLiteral<"STOP_PROCESS_DUE_TO_AUTO_REGENERATE">, z.ZodLiteral<"TABLES_MISSING_EXCEPTION">, z.ZodLiteral<"TOO_MANY_CERTIFIED_ANSWERS_EXCEPTION">, z.ZodLiteral<"TOO_MANY_TABLES_EXCEPTION">, z.ZodLiteral<"UNEXPECTED_REPLY_PROCESS_EXCEPTION">, z.ZodLiteral<"UNKNOWN_AI_MODEL">, z.ZodLiteral<"UNSUPPORTED_CONVERSATION_TYPE_EXCEPTION">, z.ZodLiteral<"WAREHOUSE_ACCESS_MISSING_EXCEPTION">, z.ZodLiteral<"WAREHOUSE_NOT_FOUND_EXCEPTION">]>>;
|
|
792
|
+
}, z.core.$strip>>;
|
|
793
|
+
feedback: z.ZodOptional<z.ZodObject<{
|
|
794
|
+
rating: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"NEGATIVE">, z.ZodLiteral<"NONE">, z.ZodLiteral<"POSITIVE">]>>;
|
|
795
|
+
}, z.core.$strip>>;
|
|
796
|
+
id: z.ZodString;
|
|
797
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
798
|
+
message_id: z.ZodString;
|
|
799
|
+
query_result: z.ZodOptional<z.ZodObject<{
|
|
800
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
801
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
802
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
803
|
+
statement_id_signature: z.ZodOptional<z.ZodString>;
|
|
804
|
+
}, z.core.$strip>>;
|
|
805
|
+
space_id: z.ZodString;
|
|
806
|
+
status: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"ASKING_AI">, z.ZodLiteral<"CANCELLED">, z.ZodLiteral<"COMPLETED">, z.ZodLiteral<"EXECUTING_QUERY">, z.ZodLiteral<"FAILED">, z.ZodLiteral<"FETCHING_METADATA">, z.ZodLiteral<"FILTERING_CONTEXT">, z.ZodLiteral<"PENDING_WAREHOUSE">, z.ZodLiteral<"QUERY_RESULT_EXPIRED">, z.ZodLiteral<"SUBMITTED">]>>;
|
|
807
|
+
user_id: z.ZodOptional<z.ZodNumber>;
|
|
808
|
+
attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
809
|
+
attachment_id: z.ZodOptional<z.ZodString>;
|
|
810
|
+
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
811
|
+
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
812
|
+
}, z.core.$strip>>;
|
|
813
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
814
|
+
content: z.ZodOptional<z.ZodString>;
|
|
815
|
+
id: z.ZodOptional<z.ZodString>;
|
|
816
|
+
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
817
|
+
}, z.core.$strip>>;
|
|
818
|
+
query: z.ZodOptional<z.ZodObject<{
|
|
819
|
+
description: z.ZodOptional<z.ZodString>;
|
|
820
|
+
id: z.ZodOptional<z.ZodString>;
|
|
821
|
+
last_updated_timestamp: z.ZodOptional<z.ZodNumber>;
|
|
822
|
+
parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
823
|
+
keyword: z.ZodOptional<z.ZodString>;
|
|
824
|
+
sql_type: z.ZodOptional<z.ZodString>;
|
|
825
|
+
value: z.ZodOptional<z.ZodString>;
|
|
826
|
+
}, z.core.$strip>>>;
|
|
827
|
+
query: z.ZodOptional<z.ZodString>;
|
|
828
|
+
query_result_metadata: z.ZodOptional<z.ZodObject<{
|
|
829
|
+
is_truncated: z.ZodOptional<z.ZodBoolean>;
|
|
830
|
+
row_count: z.ZodOptional<z.ZodNumber>;
|
|
831
|
+
}, z.core.$strip>>;
|
|
832
|
+
statement_id: z.ZodOptional<z.ZodString>;
|
|
833
|
+
title: z.ZodOptional<z.ZodString>;
|
|
834
|
+
thoughts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
835
|
+
thought_type: z.ZodCustom<GenieThoughtType, GenieThoughtType>;
|
|
836
|
+
content: z.ZodString;
|
|
837
|
+
}, z.core.$strip>>>;
|
|
838
|
+
}, z.core.$strip>>;
|
|
839
|
+
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
840
|
+
}, z.core.$strip>>>;
|
|
841
|
+
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
|
842
|
+
}, z.core.$strip>;
|
|
843
|
+
}, z.core.$strip>], "type">;
|
|
844
|
+
export type GenieChatEvent = z.infer<typeof GenieChatEventSchema>;
|
|
845
|
+
/** Discriminator type for {@link GenieChatEvent}. */
|
|
846
|
+
export type GenieChatEventType = GenieChatEvent["type"];
|
|
847
|
+
/**
|
|
848
|
+
* Field set for a given {@link GenieChatEventType} - the variant
|
|
849
|
+
* with the `type` discriminator stripped. Used by detectors in
|
|
850
|
+
* `event.ts` so each detector returns just the payload fields and
|
|
851
|
+
* the orchestrator stamps `type` at yield time.
|
|
852
|
+
*/
|
|
853
|
+
export type GenieChatEventFields<T extends GenieChatEventType> = Omit<Extract<GenieChatEvent, {
|
|
854
|
+
type: T;
|
|
855
|
+
}>, "type">;
|