@databricks/appkit 0.43.1 → 0.45.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.
Files changed (68) hide show
  1. package/CLAUDE.md +0 -1
  2. package/NOTICE.md +1 -0
  3. package/dist/appkit/package.js +1 -1
  4. package/dist/connectors/sql-warehouse/arrow-schema.js +283 -0
  5. package/dist/connectors/sql-warehouse/arrow-schema.js.map +1 -0
  6. package/dist/connectors/sql-warehouse/client.js +166 -60
  7. package/dist/connectors/sql-warehouse/client.js.map +1 -1
  8. package/dist/errors/base.d.ts +18 -0
  9. package/dist/errors/base.d.ts.map +1 -1
  10. package/dist/errors/base.js +20 -0
  11. package/dist/errors/base.js.map +1 -1
  12. package/dist/errors/execution.d.ts +34 -2
  13. package/dist/errors/execution.d.ts.map +1 -1
  14. package/dist/errors/execution.js +40 -5
  15. package/dist/errors/execution.js.map +1 -1
  16. package/dist/plugins/agents/agents.d.ts.map +1 -1
  17. package/dist/plugins/agents/agents.js.map +1 -1
  18. package/dist/plugins/analytics/analytics.d.ts +84 -8
  19. package/dist/plugins/analytics/analytics.d.ts.map +1 -1
  20. package/dist/plugins/analytics/analytics.js +296 -61
  21. package/dist/plugins/analytics/analytics.js.map +1 -1
  22. package/dist/plugins/analytics/index.js +1 -1
  23. package/dist/plugins/analytics/result-delivery.js +287 -0
  24. package/dist/plugins/analytics/result-delivery.js.map +1 -0
  25. package/dist/plugins/analytics/types.d.ts +8 -0
  26. package/dist/plugins/analytics/types.d.ts.map +1 -1
  27. package/dist/plugins/analytics/types.js.map +1 -1
  28. package/dist/plugins/files/plugin.js +1 -1
  29. package/dist/plugins/genie/genie.js +1 -1
  30. package/dist/plugins/jobs/types.d.ts +1 -1
  31. package/dist/plugins/lakebase/lakebase.js +1 -1
  32. package/dist/shared/src/index.d.ts +1 -0
  33. package/dist/shared/src/sse/analytics.d.ts +1 -0
  34. package/dist/shared/src/sse/analytics.js +40 -0
  35. package/dist/shared/src/sse/analytics.js.map +1 -0
  36. package/dist/stream/arrow-stream-processor.js +93 -117
  37. package/dist/stream/arrow-stream-processor.js.map +1 -1
  38. package/dist/stream/defaults.js +1 -1
  39. package/dist/stream/defaults.js.map +1 -1
  40. package/dist/stream/sse-writer.js +3 -2
  41. package/dist/stream/sse-writer.js.map +1 -1
  42. package/dist/stream/stream-manager.d.ts.map +1 -1
  43. package/dist/stream/stream-manager.js +15 -9
  44. package/dist/stream/stream-manager.js.map +1 -1
  45. package/dist/stream/types.js.map +1 -1
  46. package/dist/type-generator/query-registry.js +32 -2
  47. package/dist/type-generator/query-registry.js.map +1 -1
  48. package/docs/api/appkit/Class.AppKitError.md +40 -8
  49. package/docs/api/appkit/Class.AuthenticationError.md +56 -16
  50. package/docs/api/appkit/Class.ConfigurationError.md +57 -17
  51. package/docs/api/appkit/Class.ConnectionError.md +57 -17
  52. package/docs/api/appkit/Class.ExecutionError.md +80 -22
  53. package/docs/api/appkit/Class.InitializationError.md +55 -15
  54. package/docs/api/appkit/Class.ServerError.md +55 -15
  55. package/docs/api/appkit/Class.TunnelError.md +56 -16
  56. package/docs/api/appkit/Class.ValidationError.md +55 -15
  57. package/docs/api/appkit-ui/ui/ContextMenu.md +2 -2
  58. package/docs/api/appkit-ui/ui/Drawer.md +0 -56
  59. package/docs/api/appkit-ui/ui/DropdownMenu.md +3 -3
  60. package/docs/api/appkit-ui/ui/HoverCard.md +2 -2
  61. package/docs/api/appkit-ui/ui/Menubar.md +3 -3
  62. package/docs/api/appkit-ui/ui/Popover.md +2 -2
  63. package/docs/api/appkit-ui/ui/Select.md +2 -2
  64. package/docs/api/appkit-ui/ui/Tooltip.md +2 -2
  65. package/llms.txt +0 -1
  66. package/package.json +2 -2
  67. package/sbom.cdx.json +1 -1
  68. package/docs/api/appkit-ui/ui/ChartContainer.md +0 -343
@@ -21,6 +21,7 @@ throw new InitializationError("ServiceContext not initialized. Call ServiceConte
21
21
  ```ts
22
22
  new InitializationError(message: string, options?: {
23
23
  cause?: Error;
24
+ clientMessage?: string;
24
25
  context?: Record<string, unknown>;
25
26
  }): InitializationError;
26
27
 
@@ -28,12 +29,13 @@ new InitializationError(message: string, options?: {
28
29
 
29
30
  #### Parameters[​](#parameters "Direct link to Parameters")
30
31
 
31
- | Parameter | Type |
32
- | ------------------ | ----------------------------------------------------------------- |
33
- | `message` | `string` |
34
- | `options?` | { `cause?`: `Error`; `context?`: `Record`<`string`, `unknown`>; } |
35
- | `options.cause?` | `Error` |
36
- | `options.context?` | `Record`<`string`, `unknown`> |
32
+ | Parameter | Type |
33
+ | ------------------------ | --------------------------------------------------------------------------------------------- |
34
+ | `message` | `string` |
35
+ | `options?` | { `cause?`: `Error`; `clientMessage?`: `string`; `context?`: `Record`<`string`, `unknown`>; } |
36
+ | `options.cause?` | `Error` |
37
+ | `options.clientMessage?` | `string` |
38
+ | `options.context?` | `Record`<`string`, `unknown`> |
37
39
 
38
40
  #### Returns[​](#returns "Direct link to Returns")
39
41
 
@@ -45,6 +47,23 @@ new InitializationError(message: string, options?: {
45
47
 
46
48
  ## Properties[​](#properties "Direct link to Properties")
47
49
 
50
+ ### \_clientMessage?[​](#_clientmessage "Direct link to _clientMessage?")
51
+
52
+ ```ts
53
+ protected readonly optional _clientMessage: string;
54
+
55
+ ```
56
+
57
+ Client-safe error message. When set, callers serializing the error to a client (SSE, HTTP body) MUST prefer `clientMessage` over `message` — `message` may contain raw upstream / SDK text including statement fragments, internal object names, and correlation IDs.
58
+
59
+ Subclasses can set this in their constructor for a fixed sanitized string. When unset, `clientMessage` defaults to a generic per-code string (see the getter), and the raw `message` is kept server-side only.
60
+
61
+ #### Inherited from[​](#inherited-from-1 "Direct link to Inherited from")
62
+
63
+ [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`_clientMessage`](./docs/api/appkit/Class.AppKitError.md#_clientmessage)
64
+
65
+ ***
66
+
48
67
  ### cause?[​](#cause "Direct link to cause?")
49
68
 
50
69
  ```ts
@@ -54,7 +73,7 @@ readonly optional cause: Error;
54
73
 
55
74
  Optional cause of the error
56
75
 
57
- #### Inherited from[​](#inherited-from-1 "Direct link to Inherited from")
76
+ #### Inherited from[​](#inherited-from-2 "Direct link to Inherited from")
58
77
 
59
78
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`cause`](./docs/api/appkit/Class.AppKitError.md#cause)
60
79
 
@@ -84,7 +103,7 @@ readonly optional context: Record<string, unknown>;
84
103
 
85
104
  Additional context for the error
86
105
 
87
- #### Inherited from[​](#inherited-from-2 "Direct link to Inherited from")
106
+ #### Inherited from[​](#inherited-from-3 "Direct link to Inherited from")
88
107
 
89
108
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`context`](./docs/api/appkit/Class.AppKitError.md#context)
90
109
 
@@ -118,6 +137,27 @@ HTTP status code suggestion (can be overridden)
118
137
 
119
138
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`statusCode`](./docs/api/appkit/Class.AppKitError.md#statuscode)
120
139
 
140
+ ## Accessors[​](#accessors "Direct link to Accessors")
141
+
142
+ ### clientMessage[​](#clientmessage "Direct link to clientMessage")
143
+
144
+ #### Get Signature[​](#get-signature "Direct link to Get Signature")
145
+
146
+ ```ts
147
+ get clientMessage(): string;
148
+
149
+ ```
150
+
151
+ Sanitized message safe to forward to clients. Override in subclasses if a more specific default is appropriate.
152
+
153
+ ##### Returns[​](#returns-1 "Direct link to Returns")
154
+
155
+ `string`
156
+
157
+ #### Inherited from[​](#inherited-from-4 "Direct link to Inherited from")
158
+
159
+ [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`clientMessage`](./docs/api/appkit/Class.AppKitError.md#clientmessage)
160
+
121
161
  ## Methods[​](#methods "Direct link to Methods")
122
162
 
123
163
  ### toJSON()[​](#tojson "Direct link to toJSON()")
@@ -129,11 +169,11 @@ toJSON(): Record<string, unknown>;
129
169
 
130
170
  Convert error to JSON for logging/serialization. Sensitive values in context are automatically redacted.
131
171
 
132
- #### Returns[​](#returns-1 "Direct link to Returns")
172
+ #### Returns[​](#returns-2 "Direct link to Returns")
133
173
 
134
174
  `Record`<`string`, `unknown`>
135
175
 
136
- #### Inherited from[​](#inherited-from-3 "Direct link to Inherited from")
176
+ #### Inherited from[​](#inherited-from-5 "Direct link to Inherited from")
137
177
 
138
178
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`toJSON`](./docs/api/appkit/Class.AppKitError.md#tojson)
139
179
 
@@ -148,11 +188,11 @@ toString(): string;
148
188
 
149
189
  Create a human-readable string representation
150
190
 
151
- #### Returns[​](#returns-2 "Direct link to Returns")
191
+ #### Returns[​](#returns-3 "Direct link to Returns")
152
192
 
153
193
  `string`
154
194
 
155
- #### Inherited from[​](#inherited-from-4 "Direct link to Inherited from")
195
+ #### Inherited from[​](#inherited-from-6 "Direct link to Inherited from")
156
196
 
157
197
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`toString`](./docs/api/appkit/Class.AppKitError.md#tostring)
158
198
 
@@ -173,7 +213,7 @@ Create an initialization error for migration failure
173
213
  | --------- | ------- |
174
214
  | `cause?` | `Error` |
175
215
 
176
- #### Returns[​](#returns-3 "Direct link to Returns")
216
+ #### Returns[​](#returns-4 "Direct link to Returns")
177
217
 
178
218
  `InitializationError`
179
219
 
@@ -195,7 +235,7 @@ Create an initialization error for a service that is not ready
195
235
  | `serviceName` | `string` |
196
236
  | `hint?` | `string` |
197
237
 
198
- #### Returns[​](#returns-4 "Direct link to Returns")
238
+ #### Returns[​](#returns-5 "Direct link to Returns")
199
239
 
200
240
  `InitializationError`
201
241
 
@@ -217,6 +257,6 @@ Create an initialization error for setup failure
217
257
  | `component` | `string` |
218
258
  | `cause?` | `Error` |
219
259
 
220
- #### Returns[​](#returns-5 "Direct link to Returns")
260
+ #### Returns[​](#returns-6 "Direct link to Returns")
221
261
 
222
262
  `InitializationError`
@@ -20,6 +20,7 @@ throw new ServerError("Server not started");
20
20
  ```ts
21
21
  new ServerError(message: string, options?: {
22
22
  cause?: Error;
23
+ clientMessage?: string;
23
24
  context?: Record<string, unknown>;
24
25
  }): ServerError;
25
26
 
@@ -27,12 +28,13 @@ new ServerError(message: string, options?: {
27
28
 
28
29
  #### Parameters[​](#parameters "Direct link to Parameters")
29
30
 
30
- | Parameter | Type |
31
- | ------------------ | ----------------------------------------------------------------- |
32
- | `message` | `string` |
33
- | `options?` | { `cause?`: `Error`; `context?`: `Record`<`string`, `unknown`>; } |
34
- | `options.cause?` | `Error` |
35
- | `options.context?` | `Record`<`string`, `unknown`> |
31
+ | Parameter | Type |
32
+ | ------------------------ | --------------------------------------------------------------------------------------------- |
33
+ | `message` | `string` |
34
+ | `options?` | { `cause?`: `Error`; `clientMessage?`: `string`; `context?`: `Record`<`string`, `unknown`>; } |
35
+ | `options.cause?` | `Error` |
36
+ | `options.clientMessage?` | `string` |
37
+ | `options.context?` | `Record`<`string`, `unknown`> |
36
38
 
37
39
  #### Returns[​](#returns "Direct link to Returns")
38
40
 
@@ -44,6 +46,23 @@ new ServerError(message: string, options?: {
44
46
 
45
47
  ## Properties[​](#properties "Direct link to Properties")
46
48
 
49
+ ### \_clientMessage?[​](#_clientmessage "Direct link to _clientMessage?")
50
+
51
+ ```ts
52
+ protected readonly optional _clientMessage: string;
53
+
54
+ ```
55
+
56
+ Client-safe error message. When set, callers serializing the error to a client (SSE, HTTP body) MUST prefer `clientMessage` over `message` — `message` may contain raw upstream / SDK text including statement fragments, internal object names, and correlation IDs.
57
+
58
+ Subclasses can set this in their constructor for a fixed sanitized string. When unset, `clientMessage` defaults to a generic per-code string (see the getter), and the raw `message` is kept server-side only.
59
+
60
+ #### Inherited from[​](#inherited-from-1 "Direct link to Inherited from")
61
+
62
+ [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`_clientMessage`](./docs/api/appkit/Class.AppKitError.md#_clientmessage)
63
+
64
+ ***
65
+
47
66
  ### cause?[​](#cause "Direct link to cause?")
48
67
 
49
68
  ```ts
@@ -53,7 +72,7 @@ readonly optional cause: Error;
53
72
 
54
73
  Optional cause of the error
55
74
 
56
- #### Inherited from[​](#inherited-from-1 "Direct link to Inherited from")
75
+ #### Inherited from[​](#inherited-from-2 "Direct link to Inherited from")
57
76
 
58
77
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`cause`](./docs/api/appkit/Class.AppKitError.md#cause)
59
78
 
@@ -83,7 +102,7 @@ readonly optional context: Record<string, unknown>;
83
102
 
84
103
  Additional context for the error
85
104
 
86
- #### Inherited from[​](#inherited-from-2 "Direct link to Inherited from")
105
+ #### Inherited from[​](#inherited-from-3 "Direct link to Inherited from")
87
106
 
88
107
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`context`](./docs/api/appkit/Class.AppKitError.md#context)
89
108
 
@@ -117,6 +136,27 @@ HTTP status code suggestion (can be overridden)
117
136
 
118
137
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`statusCode`](./docs/api/appkit/Class.AppKitError.md#statuscode)
119
138
 
139
+ ## Accessors[​](#accessors "Direct link to Accessors")
140
+
141
+ ### clientMessage[​](#clientmessage "Direct link to clientMessage")
142
+
143
+ #### Get Signature[​](#get-signature "Direct link to Get Signature")
144
+
145
+ ```ts
146
+ get clientMessage(): string;
147
+
148
+ ```
149
+
150
+ Sanitized message safe to forward to clients. Override in subclasses if a more specific default is appropriate.
151
+
152
+ ##### Returns[​](#returns-1 "Direct link to Returns")
153
+
154
+ `string`
155
+
156
+ #### Inherited from[​](#inherited-from-4 "Direct link to Inherited from")
157
+
158
+ [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`clientMessage`](./docs/api/appkit/Class.AppKitError.md#clientmessage)
159
+
120
160
  ## Methods[​](#methods "Direct link to Methods")
121
161
 
122
162
  ### toJSON()[​](#tojson "Direct link to toJSON()")
@@ -128,11 +168,11 @@ toJSON(): Record<string, unknown>;
128
168
 
129
169
  Convert error to JSON for logging/serialization. Sensitive values in context are automatically redacted.
130
170
 
131
- #### Returns[​](#returns-1 "Direct link to Returns")
171
+ #### Returns[​](#returns-2 "Direct link to Returns")
132
172
 
133
173
  `Record`<`string`, `unknown`>
134
174
 
135
- #### Inherited from[​](#inherited-from-3 "Direct link to Inherited from")
175
+ #### Inherited from[​](#inherited-from-5 "Direct link to Inherited from")
136
176
 
137
177
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`toJSON`](./docs/api/appkit/Class.AppKitError.md#tojson)
138
178
 
@@ -147,11 +187,11 @@ toString(): string;
147
187
 
148
188
  Create a human-readable string representation
149
189
 
150
- #### Returns[​](#returns-2 "Direct link to Returns")
190
+ #### Returns[​](#returns-3 "Direct link to Returns")
151
191
 
152
192
  `string`
153
193
 
154
- #### Inherited from[​](#inherited-from-4 "Direct link to Inherited from")
194
+ #### Inherited from[​](#inherited-from-6 "Direct link to Inherited from")
155
195
 
156
196
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`toString`](./docs/api/appkit/Class.AppKitError.md#tostring)
157
197
 
@@ -172,7 +212,7 @@ Create a server error for missing client directory
172
212
  | --------------- | ----------- |
173
213
  | `searchedPaths` | `string`\[] |
174
214
 
175
- #### Returns[​](#returns-3 "Direct link to Returns")
215
+ #### Returns[​](#returns-4 "Direct link to Returns")
176
216
 
177
217
  `ServerError`
178
218
 
@@ -187,7 +227,7 @@ static notStarted(): ServerError;
187
227
 
188
228
  Create a server error for server not started
189
229
 
190
- #### Returns[​](#returns-4 "Direct link to Returns")
230
+ #### Returns[​](#returns-5 "Direct link to Returns")
191
231
 
192
232
  `ServerError`
193
233
 
@@ -202,6 +242,6 @@ static viteNotInitialized(): ServerError;
202
242
 
203
243
  Create a server error for Vite dev server not initialized
204
244
 
205
- #### Returns[​](#returns-5 "Direct link to Returns")
245
+ #### Returns[​](#returns-6 "Direct link to Returns")
206
246
 
207
247
  `ServerError`
@@ -21,6 +21,7 @@ throw new TunnelError("Failed to parse WebSocket message", { cause: parseError }
21
21
  ```ts
22
22
  new TunnelError(message: string, options?: {
23
23
  cause?: Error;
24
+ clientMessage?: string;
24
25
  context?: Record<string, unknown>;
25
26
  }): TunnelError;
26
27
 
@@ -28,12 +29,13 @@ new TunnelError(message: string, options?: {
28
29
 
29
30
  #### Parameters[​](#parameters "Direct link to Parameters")
30
31
 
31
- | Parameter | Type |
32
- | ------------------ | ----------------------------------------------------------------- |
33
- | `message` | `string` |
34
- | `options?` | { `cause?`: `Error`; `context?`: `Record`<`string`, `unknown`>; } |
35
- | `options.cause?` | `Error` |
36
- | `options.context?` | `Record`<`string`, `unknown`> |
32
+ | Parameter | Type |
33
+ | ------------------------ | --------------------------------------------------------------------------------------------- |
34
+ | `message` | `string` |
35
+ | `options?` | { `cause?`: `Error`; `clientMessage?`: `string`; `context?`: `Record`<`string`, `unknown`>; } |
36
+ | `options.cause?` | `Error` |
37
+ | `options.clientMessage?` | `string` |
38
+ | `options.context?` | `Record`<`string`, `unknown`> |
37
39
 
38
40
  #### Returns[​](#returns "Direct link to Returns")
39
41
 
@@ -45,6 +47,23 @@ new TunnelError(message: string, options?: {
45
47
 
46
48
  ## Properties[​](#properties "Direct link to Properties")
47
49
 
50
+ ### \_clientMessage?[​](#_clientmessage "Direct link to _clientMessage?")
51
+
52
+ ```ts
53
+ protected readonly optional _clientMessage: string;
54
+
55
+ ```
56
+
57
+ Client-safe error message. When set, callers serializing the error to a client (SSE, HTTP body) MUST prefer `clientMessage` over `message` — `message` may contain raw upstream / SDK text including statement fragments, internal object names, and correlation IDs.
58
+
59
+ Subclasses can set this in their constructor for a fixed sanitized string. When unset, `clientMessage` defaults to a generic per-code string (see the getter), and the raw `message` is kept server-side only.
60
+
61
+ #### Inherited from[​](#inherited-from-1 "Direct link to Inherited from")
62
+
63
+ [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`_clientMessage`](./docs/api/appkit/Class.AppKitError.md#_clientmessage)
64
+
65
+ ***
66
+
48
67
  ### cause?[​](#cause "Direct link to cause?")
49
68
 
50
69
  ```ts
@@ -54,7 +73,7 @@ readonly optional cause: Error;
54
73
 
55
74
  Optional cause of the error
56
75
 
57
- #### Inherited from[​](#inherited-from-1 "Direct link to Inherited from")
76
+ #### Inherited from[​](#inherited-from-2 "Direct link to Inherited from")
58
77
 
59
78
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`cause`](./docs/api/appkit/Class.AppKitError.md#cause)
60
79
 
@@ -84,7 +103,7 @@ readonly optional context: Record<string, unknown>;
84
103
 
85
104
  Additional context for the error
86
105
 
87
- #### Inherited from[​](#inherited-from-2 "Direct link to Inherited from")
106
+ #### Inherited from[​](#inherited-from-3 "Direct link to Inherited from")
88
107
 
89
108
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`context`](./docs/api/appkit/Class.AppKitError.md#context)
90
109
 
@@ -118,6 +137,27 @@ HTTP status code suggestion (can be overridden)
118
137
 
119
138
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`statusCode`](./docs/api/appkit/Class.AppKitError.md#statuscode)
120
139
 
140
+ ## Accessors[​](#accessors "Direct link to Accessors")
141
+
142
+ ### clientMessage[​](#clientmessage "Direct link to clientMessage")
143
+
144
+ #### Get Signature[​](#get-signature "Direct link to Get Signature")
145
+
146
+ ```ts
147
+ get clientMessage(): string;
148
+
149
+ ```
150
+
151
+ Sanitized message safe to forward to clients. Override in subclasses if a more specific default is appropriate.
152
+
153
+ ##### Returns[​](#returns-1 "Direct link to Returns")
154
+
155
+ `string`
156
+
157
+ #### Inherited from[​](#inherited-from-4 "Direct link to Inherited from")
158
+
159
+ [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`clientMessage`](./docs/api/appkit/Class.AppKitError.md#clientmessage)
160
+
121
161
  ## Methods[​](#methods "Direct link to Methods")
122
162
 
123
163
  ### toJSON()[​](#tojson "Direct link to toJSON()")
@@ -129,11 +169,11 @@ toJSON(): Record<string, unknown>;
129
169
 
130
170
  Convert error to JSON for logging/serialization. Sensitive values in context are automatically redacted.
131
171
 
132
- #### Returns[​](#returns-1 "Direct link to Returns")
172
+ #### Returns[​](#returns-2 "Direct link to Returns")
133
173
 
134
174
  `Record`<`string`, `unknown`>
135
175
 
136
- #### Inherited from[​](#inherited-from-3 "Direct link to Inherited from")
176
+ #### Inherited from[​](#inherited-from-5 "Direct link to Inherited from")
137
177
 
138
178
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`toJSON`](./docs/api/appkit/Class.AppKitError.md#tojson)
139
179
 
@@ -148,11 +188,11 @@ toString(): string;
148
188
 
149
189
  Create a human-readable string representation
150
190
 
151
- #### Returns[​](#returns-2 "Direct link to Returns")
191
+ #### Returns[​](#returns-3 "Direct link to Returns")
152
192
 
153
193
  `string`
154
194
 
155
- #### Inherited from[​](#inherited-from-4 "Direct link to Inherited from")
195
+ #### Inherited from[​](#inherited-from-6 "Direct link to Inherited from")
156
196
 
157
197
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`toString`](./docs/api/appkit/Class.AppKitError.md#tostring)
158
198
 
@@ -174,7 +214,7 @@ Create a tunnel error for asset fetch failure
174
214
  | `path` | `string` |
175
215
  | `cause?` | `Error` |
176
216
 
177
- #### Returns[​](#returns-3 "Direct link to Returns")
217
+ #### Returns[​](#returns-4 "Direct link to Returns")
178
218
 
179
219
  `TunnelError`
180
220
 
@@ -189,7 +229,7 @@ static getterNotRegistered(): TunnelError;
189
229
 
190
230
  Create a tunnel error for missing tunnel getter
191
231
 
192
- #### Returns[​](#returns-4 "Direct link to Returns")
232
+ #### Returns[​](#returns-5 "Direct link to Returns")
193
233
 
194
234
  `TunnelError`
195
235
 
@@ -204,7 +244,7 @@ static noConnection(): TunnelError;
204
244
 
205
245
  Create a tunnel error for no available connection
206
246
 
207
- #### Returns[​](#returns-5 "Direct link to Returns")
247
+ #### Returns[​](#returns-6 "Direct link to Returns")
208
248
 
209
249
  `TunnelError`
210
250
 
@@ -226,6 +266,6 @@ Create a tunnel error for message parsing failure
226
266
  | `messageType` | `string` |
227
267
  | `cause?` | `Error` |
228
268
 
229
- #### Returns[​](#returns-6 "Direct link to Returns")
269
+ #### Returns[​](#returns-7 "Direct link to Returns")
230
270
 
231
271
  `TunnelError`
@@ -21,6 +21,7 @@ throw new ValidationError("maxPoolSize must be at least 1", { context: { value:
21
21
  ```ts
22
22
  new ValidationError(message: string, options?: {
23
23
  cause?: Error;
24
+ clientMessage?: string;
24
25
  context?: Record<string, unknown>;
25
26
  }): ValidationError;
26
27
 
@@ -28,12 +29,13 @@ new ValidationError(message: string, options?: {
28
29
 
29
30
  #### Parameters[​](#parameters "Direct link to Parameters")
30
31
 
31
- | Parameter | Type |
32
- | ------------------ | ----------------------------------------------------------------- |
33
- | `message` | `string` |
34
- | `options?` | { `cause?`: `Error`; `context?`: `Record`<`string`, `unknown`>; } |
35
- | `options.cause?` | `Error` |
36
- | `options.context?` | `Record`<`string`, `unknown`> |
32
+ | Parameter | Type |
33
+ | ------------------------ | --------------------------------------------------------------------------------------------- |
34
+ | `message` | `string` |
35
+ | `options?` | { `cause?`: `Error`; `clientMessage?`: `string`; `context?`: `Record`<`string`, `unknown`>; } |
36
+ | `options.cause?` | `Error` |
37
+ | `options.clientMessage?` | `string` |
38
+ | `options.context?` | `Record`<`string`, `unknown`> |
37
39
 
38
40
  #### Returns[​](#returns "Direct link to Returns")
39
41
 
@@ -45,6 +47,23 @@ new ValidationError(message: string, options?: {
45
47
 
46
48
  ## Properties[​](#properties "Direct link to Properties")
47
49
 
50
+ ### \_clientMessage?[​](#_clientmessage "Direct link to _clientMessage?")
51
+
52
+ ```ts
53
+ protected readonly optional _clientMessage: string;
54
+
55
+ ```
56
+
57
+ Client-safe error message. When set, callers serializing the error to a client (SSE, HTTP body) MUST prefer `clientMessage` over `message` — `message` may contain raw upstream / SDK text including statement fragments, internal object names, and correlation IDs.
58
+
59
+ Subclasses can set this in their constructor for a fixed sanitized string. When unset, `clientMessage` defaults to a generic per-code string (see the getter), and the raw `message` is kept server-side only.
60
+
61
+ #### Inherited from[​](#inherited-from-1 "Direct link to Inherited from")
62
+
63
+ [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`_clientMessage`](./docs/api/appkit/Class.AppKitError.md#_clientmessage)
64
+
65
+ ***
66
+
48
67
  ### cause?[​](#cause "Direct link to cause?")
49
68
 
50
69
  ```ts
@@ -54,7 +73,7 @@ readonly optional cause: Error;
54
73
 
55
74
  Optional cause of the error
56
75
 
57
- #### Inherited from[​](#inherited-from-1 "Direct link to Inherited from")
76
+ #### Inherited from[​](#inherited-from-2 "Direct link to Inherited from")
58
77
 
59
78
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`cause`](./docs/api/appkit/Class.AppKitError.md#cause)
60
79
 
@@ -84,7 +103,7 @@ readonly optional context: Record<string, unknown>;
84
103
 
85
104
  Additional context for the error
86
105
 
87
- #### Inherited from[​](#inherited-from-2 "Direct link to Inherited from")
106
+ #### Inherited from[​](#inherited-from-3 "Direct link to Inherited from")
88
107
 
89
108
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`context`](./docs/api/appkit/Class.AppKitError.md#context)
90
109
 
@@ -118,6 +137,27 @@ HTTP status code suggestion (can be overridden)
118
137
 
119
138
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`statusCode`](./docs/api/appkit/Class.AppKitError.md#statuscode)
120
139
 
140
+ ## Accessors[​](#accessors "Direct link to Accessors")
141
+
142
+ ### clientMessage[​](#clientmessage "Direct link to clientMessage")
143
+
144
+ #### Get Signature[​](#get-signature "Direct link to Get Signature")
145
+
146
+ ```ts
147
+ get clientMessage(): string;
148
+
149
+ ```
150
+
151
+ Sanitized message safe to forward to clients. Override in subclasses if a more specific default is appropriate.
152
+
153
+ ##### Returns[​](#returns-1 "Direct link to Returns")
154
+
155
+ `string`
156
+
157
+ #### Inherited from[​](#inherited-from-4 "Direct link to Inherited from")
158
+
159
+ [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`clientMessage`](./docs/api/appkit/Class.AppKitError.md#clientmessage)
160
+
121
161
  ## Methods[​](#methods "Direct link to Methods")
122
162
 
123
163
  ### toJSON()[​](#tojson "Direct link to toJSON()")
@@ -129,11 +169,11 @@ toJSON(): Record<string, unknown>;
129
169
 
130
170
  Convert error to JSON for logging/serialization. Sensitive values in context are automatically redacted.
131
171
 
132
- #### Returns[​](#returns-1 "Direct link to Returns")
172
+ #### Returns[​](#returns-2 "Direct link to Returns")
133
173
 
134
174
  `Record`<`string`, `unknown`>
135
175
 
136
- #### Inherited from[​](#inherited-from-3 "Direct link to Inherited from")
176
+ #### Inherited from[​](#inherited-from-5 "Direct link to Inherited from")
137
177
 
138
178
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`toJSON`](./docs/api/appkit/Class.AppKitError.md#tojson)
139
179
 
@@ -148,11 +188,11 @@ toString(): string;
148
188
 
149
189
  Create a human-readable string representation
150
190
 
151
- #### Returns[​](#returns-2 "Direct link to Returns")
191
+ #### Returns[​](#returns-3 "Direct link to Returns")
152
192
 
153
193
  `string`
154
194
 
155
- #### Inherited from[​](#inherited-from-4 "Direct link to Inherited from")
195
+ #### Inherited from[​](#inherited-from-6 "Direct link to Inherited from")
156
196
 
157
197
  [`AppKitError`](./docs/api/appkit/Class.AppKitError.md).[`toString`](./docs/api/appkit/Class.AppKitError.md#tostring)
158
198
 
@@ -178,7 +218,7 @@ Create a validation error for an invalid field value. Note: The actual value is
178
218
  | `value` | `unknown` |
179
219
  | `expected?` | `string` |
180
220
 
181
- #### Returns[​](#returns-3 "Direct link to Returns")
221
+ #### Returns[​](#returns-4 "Direct link to Returns")
182
222
 
183
223
  `ValidationError`
184
224
 
@@ -199,7 +239,7 @@ Create a validation error for missing environment variables
199
239
  | --------- | ----------- |
200
240
  | `vars` | `string`\[] |
201
241
 
202
- #### Returns[​](#returns-4 "Direct link to Returns")
242
+ #### Returns[​](#returns-5 "Direct link to Returns")
203
243
 
204
244
  `ValidationError`
205
245
 
@@ -220,6 +260,6 @@ Create a validation error for a missing required field
220
260
  | ----------- | -------- |
221
261
  | `fieldName` | `string` |
222
262
 
223
- #### Returns[​](#returns-5 "Direct link to Returns")
263
+ #### Returns[​](#returns-6 "Direct link to Returns")
224
264
 
225
265
  `ValidationError`
@@ -144,7 +144,7 @@ import { ContextMenuCheckboxItem } from '@databricks/appkit-ui';
144
144
  | `arrowPadding` | `number` | | - | - |
145
145
  | `avoidCollisions` | `boolean` | | - | - |
146
146
  | `collisionBoundary` | `Boundary \| Boundary[]` | | - | - |
147
- | `collisionPadding` | `number \| Partial<Record<"left" \| "right" \| "top" \| "bottom", number>>` | | - | - |
147
+ | `collisionPadding` | `number \| Partial<Record<"top" \| "right" \| "bottom" \| "left", number>>` | | - | - |
148
148
  | `sticky` | `enum` | | - | - |
149
149
  | `hideWhenDetached` | `boolean` | | - | - |
150
150
  | `updatePositionStrategy` | `enum` | | - | - |
@@ -362,7 +362,7 @@ import { ContextMenuSub } from '@databricks/appkit-ui';
362
362
  | `arrowPadding` | `number` | | - | - |
363
363
  | `avoidCollisions` | `boolean` | | - | - |
364
364
  | `collisionBoundary` | `Boundary \| Boundary[]` | | - | - |
365
- | `collisionPadding` | `number \| Partial<Record<"left" \| "right" \| "top" \| "bottom", number>>` | | - | - |
365
+ | `collisionPadding` | `number \| Partial<Record<"top" \| "right" \| "bottom" \| "left", number>>` | | - | - |
366
366
  | `sticky` | `enum` | | - | - |
367
367
  | `hideWhenDetached` | `boolean` | | - | - |
368
368
  | `updatePositionStrategy` | `enum` | | - | - |