@nemphi/sdk 0.1.0 → 0.2.4556
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/LICENSE +21 -0
- package/README.md +61 -59
- package/dist/block-kit-state.d.ts +55 -0
- package/dist/block-kit-state.d.ts.map +1 -0
- package/dist/block-kit-state.js +218 -0
- package/dist/block-kit-state.js.map +1 -0
- package/dist/block-kit.d.ts +889 -0
- package/dist/block-kit.d.ts.map +1 -0
- package/dist/block-kit.js +336 -0
- package/dist/block-kit.js.map +1 -0
- package/dist/index.d.ts +9431 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1348 -15
- package/dist/index.js.map +1 -0
- package/dist/reactions.d.ts +33 -0
- package/dist/reactions.d.ts.map +1 -0
- package/dist/reactions.js +70 -0
- package/dist/reactions.js.map +1 -0
- package/package.json +37 -15
- package/dist/client.d.ts +0 -12
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -69
- package/dist/errors.d.ts +0 -6
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -8
- package/dist/resources/crm.d.ts +0 -17
- package/dist/resources/crm.d.ts.map +0 -1
- package/dist/resources/crm.js +0 -59
- package/dist/resources/organization.d.ts +0 -23
- package/dist/resources/organization.d.ts.map +0 -1
- package/dist/resources/organization.js +0 -45
- package/dist/resources/usage.d.ts +0 -27
- package/dist/resources/usage.d.ts.map +0 -1
- package/dist/resources/usage.js +0 -35
- package/dist/types.d.ts +0 -27
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -1
|
@@ -0,0 +1,889 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block Kit — the message vocabulary.
|
|
3
|
+
*
|
|
4
|
+
* A chat message (an assistant turn, a message in a workspace thread) is a
|
|
5
|
+
* list of blocks in the shape Slack's Block Kit documents at
|
|
6
|
+
* https://docs.slack.dev/reference/block-kit: the same block types, block
|
|
7
|
+
* elements, rich-text elements and composition objects, with the same field
|
|
8
|
+
* names, so a payload written for Slack renders here unchanged and the
|
|
9
|
+
* models already know the format. The API validates a message against these
|
|
10
|
+
* shapes (with Slack's limits) before it is stored or shown.
|
|
11
|
+
*
|
|
12
|
+
* Interaction flows the other way in Slack's `block_actions` shape too: a
|
|
13
|
+
* click or a change produces a {@link BlockAction} whose `state` carries the
|
|
14
|
+
* values of every input block in the message, the way a view submission does.
|
|
15
|
+
*/
|
|
16
|
+
/** Plain text. `emoji` asks for `:name:` codes to render as emoji. */
|
|
17
|
+
export interface PlainTextObject {
|
|
18
|
+
type: "plain_text";
|
|
19
|
+
text: string;
|
|
20
|
+
emoji?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Slack's mrkdwn: `*bold*`, `_italic_`, `~strike~`, `` `code` ``, ```` ```pre``` ````,
|
|
24
|
+
* `> quote`, `<url|label>`, `<@user>`, `<#channel|name>`, `<!here>`,
|
|
25
|
+
* `<!date^ts^{format}|fallback>` and `:emoji:`.
|
|
26
|
+
*/
|
|
27
|
+
export interface MrkdwnTextObject {
|
|
28
|
+
type: "mrkdwn";
|
|
29
|
+
text: string;
|
|
30
|
+
/** When true, URLs and mentions in the text are left as written. */
|
|
31
|
+
verbatim?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export type TextObject = PlainTextObject | MrkdwnTextObject;
|
|
34
|
+
/** A confirmation step before an interactive element's action goes through. */
|
|
35
|
+
export interface ConfirmationDialogObject {
|
|
36
|
+
title: PlainTextObject;
|
|
37
|
+
text: TextObject;
|
|
38
|
+
confirm: PlainTextObject;
|
|
39
|
+
deny: PlainTextObject;
|
|
40
|
+
style?: "primary" | "danger";
|
|
41
|
+
}
|
|
42
|
+
/** One selectable item of a menu, checkbox group, radio group or overflow. */
|
|
43
|
+
export interface OptionObject {
|
|
44
|
+
text: TextObject;
|
|
45
|
+
value: string;
|
|
46
|
+
description?: TextObject;
|
|
47
|
+
/** Overflow menus only: open this URL instead of dispatching the action. */
|
|
48
|
+
url?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface OptionGroupObject {
|
|
51
|
+
label: PlainTextObject;
|
|
52
|
+
options: OptionObject[];
|
|
53
|
+
}
|
|
54
|
+
export type ConversationType = "im" | "mpim" | "private" | "public";
|
|
55
|
+
export interface ConversationFilterObject {
|
|
56
|
+
include?: ConversationType[];
|
|
57
|
+
exclude_external_shared_channels?: boolean;
|
|
58
|
+
exclude_bot_users?: boolean;
|
|
59
|
+
}
|
|
60
|
+
export type DispatchActionTrigger = "on_enter_pressed" | "on_character_entered";
|
|
61
|
+
export interface DispatchActionConfigurationObject {
|
|
62
|
+
trigger_actions_on?: DispatchActionTrigger[];
|
|
63
|
+
}
|
|
64
|
+
/** An image held by the platform, referenced by URL or id. */
|
|
65
|
+
export interface SlackFileObject {
|
|
66
|
+
url?: string;
|
|
67
|
+
id?: string;
|
|
68
|
+
}
|
|
69
|
+
export declare const SlackIconNames: readonly ["archive", "book", "bookmark", "bot", "bug", "calendar", "call", "caret-left", "caret-right", "check", "clipboard", "code", "comment", "compass", "copy", "cube", "download", "edit", "email", "eye-closed", "eye-open", "file", "flag", "folder", "gear", "globe", "heart", "help", "image", "info", "key", "lightbulb", "link", "map", "mobile", "new-window", "pin", "plus", "refine", "refresh", "rocket", "save", "screen", "share", "sparkle", "star", "star-filled", "tag", "thumbs-down", "thumbs-up", "trash", "upload", "user", "warning"];
|
|
70
|
+
export type SlackIconName = (typeof SlackIconNames)[number];
|
|
71
|
+
export interface SlackIconObject {
|
|
72
|
+
type: "icon";
|
|
73
|
+
name: SlackIconName;
|
|
74
|
+
}
|
|
75
|
+
export interface TriggerInputParameter {
|
|
76
|
+
name: string;
|
|
77
|
+
value: string;
|
|
78
|
+
}
|
|
79
|
+
export interface TriggerObject {
|
|
80
|
+
url: string;
|
|
81
|
+
customizable_input_parameters?: TriggerInputParameter[];
|
|
82
|
+
}
|
|
83
|
+
export interface WorkflowObject {
|
|
84
|
+
trigger: TriggerObject;
|
|
85
|
+
}
|
|
86
|
+
export type ButtonStyle = "primary" | "danger";
|
|
87
|
+
export interface ButtonElement {
|
|
88
|
+
type: "button";
|
|
89
|
+
text: PlainTextObject;
|
|
90
|
+
action_id?: string;
|
|
91
|
+
url?: string;
|
|
92
|
+
value?: string;
|
|
93
|
+
style?: ButtonStyle;
|
|
94
|
+
confirm?: ConfirmationDialogObject;
|
|
95
|
+
accessibility_label?: string;
|
|
96
|
+
/** Hands this prompt to the assistant instead of dispatching an action. */
|
|
97
|
+
agent_prompt?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface WorkflowButtonElement {
|
|
100
|
+
type: "workflow_button";
|
|
101
|
+
text: PlainTextObject;
|
|
102
|
+
workflow: WorkflowObject;
|
|
103
|
+
action_id: string;
|
|
104
|
+
style?: ButtonStyle;
|
|
105
|
+
accessibility_label?: string;
|
|
106
|
+
}
|
|
107
|
+
export interface CheckboxesElement {
|
|
108
|
+
type: "checkboxes";
|
|
109
|
+
action_id?: string;
|
|
110
|
+
options: OptionObject[];
|
|
111
|
+
initial_options?: OptionObject[];
|
|
112
|
+
confirm?: ConfirmationDialogObject;
|
|
113
|
+
focus_on_load?: boolean;
|
|
114
|
+
}
|
|
115
|
+
export interface RadioButtonsElement {
|
|
116
|
+
type: "radio_buttons";
|
|
117
|
+
action_id?: string;
|
|
118
|
+
options: OptionObject[];
|
|
119
|
+
initial_option?: OptionObject;
|
|
120
|
+
confirm?: ConfirmationDialogObject;
|
|
121
|
+
focus_on_load?: boolean;
|
|
122
|
+
}
|
|
123
|
+
export interface DatePickerElement {
|
|
124
|
+
type: "datepicker";
|
|
125
|
+
action_id?: string;
|
|
126
|
+
/** YYYY-MM-DD */
|
|
127
|
+
initial_date?: string;
|
|
128
|
+
confirm?: ConfirmationDialogObject;
|
|
129
|
+
focus_on_load?: boolean;
|
|
130
|
+
placeholder?: PlainTextObject;
|
|
131
|
+
}
|
|
132
|
+
export interface DateTimePickerElement {
|
|
133
|
+
type: "datetimepicker";
|
|
134
|
+
action_id?: string;
|
|
135
|
+
/** Unix seconds. */
|
|
136
|
+
initial_date_time?: number;
|
|
137
|
+
confirm?: ConfirmationDialogObject;
|
|
138
|
+
focus_on_load?: boolean;
|
|
139
|
+
}
|
|
140
|
+
export interface TimePickerElement {
|
|
141
|
+
type: "timepicker";
|
|
142
|
+
action_id?: string;
|
|
143
|
+
/** HH:mm, 24-hour. */
|
|
144
|
+
initial_time?: string;
|
|
145
|
+
confirm?: ConfirmationDialogObject;
|
|
146
|
+
focus_on_load?: boolean;
|
|
147
|
+
placeholder?: PlainTextObject;
|
|
148
|
+
/** IANA zone shown under the picker. */
|
|
149
|
+
timezone?: string;
|
|
150
|
+
}
|
|
151
|
+
export interface EmailInputElement {
|
|
152
|
+
type: "email_text_input";
|
|
153
|
+
action_id?: string;
|
|
154
|
+
initial_value?: string;
|
|
155
|
+
dispatch_action_config?: DispatchActionConfigurationObject;
|
|
156
|
+
focus_on_load?: boolean;
|
|
157
|
+
placeholder?: PlainTextObject;
|
|
158
|
+
}
|
|
159
|
+
export interface UrlInputElement {
|
|
160
|
+
type: "url_text_input";
|
|
161
|
+
action_id?: string;
|
|
162
|
+
initial_value?: string;
|
|
163
|
+
dispatch_action_config?: DispatchActionConfigurationObject;
|
|
164
|
+
focus_on_load?: boolean;
|
|
165
|
+
placeholder?: PlainTextObject;
|
|
166
|
+
}
|
|
167
|
+
export interface NumberInputElement {
|
|
168
|
+
type: "number_input";
|
|
169
|
+
is_decimal_allowed: boolean;
|
|
170
|
+
action_id?: string;
|
|
171
|
+
initial_value?: string;
|
|
172
|
+
min_value?: string;
|
|
173
|
+
max_value?: string;
|
|
174
|
+
dispatch_action_config?: DispatchActionConfigurationObject;
|
|
175
|
+
focus_on_load?: boolean;
|
|
176
|
+
placeholder?: PlainTextObject;
|
|
177
|
+
}
|
|
178
|
+
export interface PlainTextInputElement {
|
|
179
|
+
type: "plain_text_input";
|
|
180
|
+
action_id?: string;
|
|
181
|
+
initial_value?: string;
|
|
182
|
+
multiline?: boolean;
|
|
183
|
+
min_length?: number;
|
|
184
|
+
max_length?: number;
|
|
185
|
+
dispatch_action_config?: DispatchActionConfigurationObject;
|
|
186
|
+
focus_on_load?: boolean;
|
|
187
|
+
placeholder?: PlainTextObject;
|
|
188
|
+
}
|
|
189
|
+
export interface RichTextInputElement {
|
|
190
|
+
type: "rich_text_input";
|
|
191
|
+
action_id: string;
|
|
192
|
+
initial_value?: RichTextBlock;
|
|
193
|
+
dispatch_action_config?: DispatchActionConfigurationObject;
|
|
194
|
+
focus_on_load?: boolean;
|
|
195
|
+
placeholder?: PlainTextObject;
|
|
196
|
+
min_lines?: number;
|
|
197
|
+
max_lines?: number;
|
|
198
|
+
}
|
|
199
|
+
export interface FileInputElement {
|
|
200
|
+
type: "file_input";
|
|
201
|
+
action_id?: string;
|
|
202
|
+
filetypes?: string[];
|
|
203
|
+
max_files?: number;
|
|
204
|
+
}
|
|
205
|
+
export interface ImageElement {
|
|
206
|
+
type: "image";
|
|
207
|
+
alt_text: string;
|
|
208
|
+
image_url?: string;
|
|
209
|
+
slack_file?: SlackFileObject;
|
|
210
|
+
}
|
|
211
|
+
export interface OverflowElement {
|
|
212
|
+
type: "overflow";
|
|
213
|
+
action_id?: string;
|
|
214
|
+
options: OptionObject[];
|
|
215
|
+
confirm?: ConfirmationDialogObject;
|
|
216
|
+
}
|
|
217
|
+
export interface StaticSelectElement {
|
|
218
|
+
type: "static_select";
|
|
219
|
+
action_id?: string;
|
|
220
|
+
options?: OptionObject[];
|
|
221
|
+
option_groups?: OptionGroupObject[];
|
|
222
|
+
initial_option?: OptionObject;
|
|
223
|
+
confirm?: ConfirmationDialogObject;
|
|
224
|
+
focus_on_load?: boolean;
|
|
225
|
+
placeholder?: PlainTextObject;
|
|
226
|
+
}
|
|
227
|
+
export interface ExternalSelectElement {
|
|
228
|
+
type: "external_select";
|
|
229
|
+
action_id?: string;
|
|
230
|
+
initial_option?: OptionObject;
|
|
231
|
+
min_query_length?: number;
|
|
232
|
+
confirm?: ConfirmationDialogObject;
|
|
233
|
+
focus_on_load?: boolean;
|
|
234
|
+
placeholder?: PlainTextObject;
|
|
235
|
+
}
|
|
236
|
+
export interface UsersSelectElement {
|
|
237
|
+
type: "users_select";
|
|
238
|
+
action_id?: string;
|
|
239
|
+
initial_user?: string;
|
|
240
|
+
confirm?: ConfirmationDialogObject;
|
|
241
|
+
focus_on_load?: boolean;
|
|
242
|
+
placeholder?: PlainTextObject;
|
|
243
|
+
}
|
|
244
|
+
export interface ConversationsSelectElement {
|
|
245
|
+
type: "conversations_select";
|
|
246
|
+
action_id?: string;
|
|
247
|
+
initial_conversation?: string;
|
|
248
|
+
default_to_current_conversation?: boolean;
|
|
249
|
+
confirm?: ConfirmationDialogObject;
|
|
250
|
+
response_url_enabled?: boolean;
|
|
251
|
+
filter?: ConversationFilterObject;
|
|
252
|
+
focus_on_load?: boolean;
|
|
253
|
+
placeholder?: PlainTextObject;
|
|
254
|
+
}
|
|
255
|
+
export interface ChannelsSelectElement {
|
|
256
|
+
type: "channels_select";
|
|
257
|
+
action_id?: string;
|
|
258
|
+
initial_channel?: string;
|
|
259
|
+
confirm?: ConfirmationDialogObject;
|
|
260
|
+
response_url_enabled?: boolean;
|
|
261
|
+
focus_on_load?: boolean;
|
|
262
|
+
placeholder?: PlainTextObject;
|
|
263
|
+
}
|
|
264
|
+
export interface MultiStaticSelectElement {
|
|
265
|
+
type: "multi_static_select";
|
|
266
|
+
action_id?: string;
|
|
267
|
+
options?: OptionObject[];
|
|
268
|
+
option_groups?: OptionGroupObject[];
|
|
269
|
+
initial_options?: OptionObject[];
|
|
270
|
+
confirm?: ConfirmationDialogObject;
|
|
271
|
+
max_selected_items?: number;
|
|
272
|
+
focus_on_load?: boolean;
|
|
273
|
+
placeholder?: PlainTextObject;
|
|
274
|
+
}
|
|
275
|
+
export interface MultiExternalSelectElement {
|
|
276
|
+
type: "multi_external_select";
|
|
277
|
+
action_id?: string;
|
|
278
|
+
min_query_length?: number;
|
|
279
|
+
initial_options?: OptionObject[];
|
|
280
|
+
confirm?: ConfirmationDialogObject;
|
|
281
|
+
max_selected_items?: number;
|
|
282
|
+
focus_on_load?: boolean;
|
|
283
|
+
placeholder?: PlainTextObject;
|
|
284
|
+
}
|
|
285
|
+
export interface MultiUsersSelectElement {
|
|
286
|
+
type: "multi_users_select";
|
|
287
|
+
action_id?: string;
|
|
288
|
+
initial_users?: string[];
|
|
289
|
+
confirm?: ConfirmationDialogObject;
|
|
290
|
+
max_selected_items?: number;
|
|
291
|
+
focus_on_load?: boolean;
|
|
292
|
+
placeholder?: PlainTextObject;
|
|
293
|
+
}
|
|
294
|
+
export interface MultiConversationsSelectElement {
|
|
295
|
+
type: "multi_conversations_select";
|
|
296
|
+
action_id?: string;
|
|
297
|
+
initial_conversations?: string[];
|
|
298
|
+
default_to_current_conversation?: boolean;
|
|
299
|
+
confirm?: ConfirmationDialogObject;
|
|
300
|
+
max_selected_items?: number;
|
|
301
|
+
filter?: ConversationFilterObject;
|
|
302
|
+
focus_on_load?: boolean;
|
|
303
|
+
placeholder?: PlainTextObject;
|
|
304
|
+
}
|
|
305
|
+
export interface MultiChannelsSelectElement {
|
|
306
|
+
type: "multi_channels_select";
|
|
307
|
+
action_id?: string;
|
|
308
|
+
initial_channels?: string[];
|
|
309
|
+
confirm?: ConfirmationDialogObject;
|
|
310
|
+
max_selected_items?: number;
|
|
311
|
+
focus_on_load?: boolean;
|
|
312
|
+
placeholder?: PlainTextObject;
|
|
313
|
+
}
|
|
314
|
+
export interface FeedbackButton {
|
|
315
|
+
text: PlainTextObject;
|
|
316
|
+
value: string;
|
|
317
|
+
accessibility_label?: string;
|
|
318
|
+
}
|
|
319
|
+
export interface FeedbackButtonsElement {
|
|
320
|
+
type: "feedback_buttons";
|
|
321
|
+
positive_button: FeedbackButton;
|
|
322
|
+
negative_button: FeedbackButton;
|
|
323
|
+
action_id?: string;
|
|
324
|
+
}
|
|
325
|
+
export interface IconButtonElement {
|
|
326
|
+
type: "icon_button";
|
|
327
|
+
icon: "trash";
|
|
328
|
+
text: PlainTextObject;
|
|
329
|
+
action_id?: string;
|
|
330
|
+
value?: string;
|
|
331
|
+
confirm?: ConfirmationDialogObject;
|
|
332
|
+
accessibility_label?: string;
|
|
333
|
+
visible_to_user_ids?: string[];
|
|
334
|
+
}
|
|
335
|
+
/** A clickable source reference on a task card. */
|
|
336
|
+
export interface UrlSourceElement {
|
|
337
|
+
type: "url";
|
|
338
|
+
url: string;
|
|
339
|
+
text: string;
|
|
340
|
+
}
|
|
341
|
+
export type SelectElement = StaticSelectElement | ExternalSelectElement | UsersSelectElement | ConversationsSelectElement | ChannelsSelectElement;
|
|
342
|
+
export type MultiSelectElement = MultiStaticSelectElement | MultiExternalSelectElement | MultiUsersSelectElement | MultiConversationsSelectElement | MultiChannelsSelectElement;
|
|
343
|
+
/** What an `actions` block holds. */
|
|
344
|
+
export type ActionsElement = ButtonElement | WorkflowButtonElement | CheckboxesElement | RadioButtonsElement | DatePickerElement | DateTimePickerElement | TimePickerElement | OverflowElement | SelectElement | MultiSelectElement | RichTextInputElement;
|
|
345
|
+
/** What an `input` block holds. */
|
|
346
|
+
export type InputElement = CheckboxesElement | RadioButtonsElement | DatePickerElement | DateTimePickerElement | TimePickerElement | EmailInputElement | UrlInputElement | NumberInputElement | PlainTextInputElement | RichTextInputElement | FileInputElement | SelectElement | MultiSelectElement;
|
|
347
|
+
/** What a `section` block's `accessory` holds. */
|
|
348
|
+
export type SectionAccessory = ButtonElement | WorkflowButtonElement | CheckboxesElement | RadioButtonsElement | DatePickerElement | TimePickerElement | ImageElement | OverflowElement | SelectElement | MultiSelectElement;
|
|
349
|
+
export type ContextElement = ImageElement | TextObject;
|
|
350
|
+
export type ContextActionsElement = FeedbackButtonsElement | IconButtonElement;
|
|
351
|
+
export type BlockElement = ActionsElement | InputElement | SectionAccessory | ContextActionsElement | UrlSourceElement;
|
|
352
|
+
export interface RichTextStyle {
|
|
353
|
+
bold?: boolean;
|
|
354
|
+
italic?: boolean;
|
|
355
|
+
strike?: boolean;
|
|
356
|
+
highlight?: boolean;
|
|
357
|
+
client_highlight?: boolean;
|
|
358
|
+
underline?: boolean;
|
|
359
|
+
unlink?: boolean;
|
|
360
|
+
/** Inline code; what the composer emits for backticked text. */
|
|
361
|
+
code?: boolean;
|
|
362
|
+
}
|
|
363
|
+
export interface RichTextTextElement {
|
|
364
|
+
type: "text";
|
|
365
|
+
text: string;
|
|
366
|
+
style?: RichTextStyle;
|
|
367
|
+
}
|
|
368
|
+
export interface RichTextLinkElement {
|
|
369
|
+
type: "link";
|
|
370
|
+
url: string;
|
|
371
|
+
text?: string;
|
|
372
|
+
unsafe?: boolean;
|
|
373
|
+
from_llm?: boolean;
|
|
374
|
+
is_slack_url?: boolean;
|
|
375
|
+
truncated?: boolean;
|
|
376
|
+
style?: RichTextStyle;
|
|
377
|
+
}
|
|
378
|
+
export interface RichTextEmojiElement {
|
|
379
|
+
type: "emoji";
|
|
380
|
+
name: string;
|
|
381
|
+
/** Code points as lowercase hex, e.g. "1f44b" or "1f44b-1f3fb". */
|
|
382
|
+
unicode?: string;
|
|
383
|
+
}
|
|
384
|
+
export interface RichTextUserElement {
|
|
385
|
+
type: "user";
|
|
386
|
+
user_id: string;
|
|
387
|
+
style?: RichTextStyle;
|
|
388
|
+
from_llm?: boolean;
|
|
389
|
+
}
|
|
390
|
+
export interface RichTextUsergroupElement {
|
|
391
|
+
type: "usergroup";
|
|
392
|
+
usergroup_id: string;
|
|
393
|
+
style?: RichTextStyle;
|
|
394
|
+
}
|
|
395
|
+
export interface RichTextChannelElement {
|
|
396
|
+
type: "channel";
|
|
397
|
+
channel_id: string;
|
|
398
|
+
tab_id?: string;
|
|
399
|
+
style?: RichTextStyle;
|
|
400
|
+
from_llm?: boolean;
|
|
401
|
+
}
|
|
402
|
+
export interface RichTextBroadcastElement {
|
|
403
|
+
type: "broadcast";
|
|
404
|
+
range: "here" | "channel" | "everyone";
|
|
405
|
+
style?: RichTextStyle;
|
|
406
|
+
}
|
|
407
|
+
export interface RichTextDateElement {
|
|
408
|
+
type: "date";
|
|
409
|
+
/** Unix seconds. */
|
|
410
|
+
timestamp: number;
|
|
411
|
+
/** Template with `{date_short}`-style tokens. */
|
|
412
|
+
format: string;
|
|
413
|
+
timezone?: string;
|
|
414
|
+
url?: string;
|
|
415
|
+
fallback?: string;
|
|
416
|
+
style?: RichTextStyle;
|
|
417
|
+
}
|
|
418
|
+
export interface RichTextColorElement {
|
|
419
|
+
type: "color";
|
|
420
|
+
/** Hex, e.g. "#F405B3". */
|
|
421
|
+
value: string;
|
|
422
|
+
style?: RichTextStyle;
|
|
423
|
+
}
|
|
424
|
+
export type TagColor = "gray" | "brown" | "purple" | "indigo" | "blue" | "green" | "yellow" | "orange" | "red";
|
|
425
|
+
export interface RichTextTagElement {
|
|
426
|
+
type: "tag";
|
|
427
|
+
text: string;
|
|
428
|
+
color?: TagColor;
|
|
429
|
+
style?: RichTextStyle;
|
|
430
|
+
}
|
|
431
|
+
export type CitationDetails = {
|
|
432
|
+
citation_type: "file";
|
|
433
|
+
descriptor?: string;
|
|
434
|
+
file_id?: string;
|
|
435
|
+
} | {
|
|
436
|
+
citation_type: "external";
|
|
437
|
+
app_name?: string;
|
|
438
|
+
app_icon_url?: string;
|
|
439
|
+
} | {
|
|
440
|
+
citation_type: "web";
|
|
441
|
+
display_name?: string;
|
|
442
|
+
title?: string;
|
|
443
|
+
snippet?: string;
|
|
444
|
+
} | {
|
|
445
|
+
citation_type: "message";
|
|
446
|
+
channel?: string;
|
|
447
|
+
message_ts?: string;
|
|
448
|
+
} | {
|
|
449
|
+
citation_type: "memory";
|
|
450
|
+
memory_id?: string;
|
|
451
|
+
};
|
|
452
|
+
export interface RichTextCitationElement {
|
|
453
|
+
type: "citation";
|
|
454
|
+
url: string;
|
|
455
|
+
text: string;
|
|
456
|
+
index: number;
|
|
457
|
+
details: CitationDetails;
|
|
458
|
+
from_llm?: boolean;
|
|
459
|
+
is_slack_url?: boolean;
|
|
460
|
+
}
|
|
461
|
+
export interface RichTextFileElement {
|
|
462
|
+
type: "file";
|
|
463
|
+
file_id: string;
|
|
464
|
+
style?: RichTextStyle;
|
|
465
|
+
text?: string;
|
|
466
|
+
url?: string;
|
|
467
|
+
is_skill_invocation?: boolean;
|
|
468
|
+
}
|
|
469
|
+
export interface RichTextCanvasElement {
|
|
470
|
+
type: "canvas";
|
|
471
|
+
file_id: string;
|
|
472
|
+
label?: string;
|
|
473
|
+
hide_title?: boolean;
|
|
474
|
+
section_id?: string;
|
|
475
|
+
style?: RichTextStyle;
|
|
476
|
+
text?: string;
|
|
477
|
+
url?: string;
|
|
478
|
+
is_skill_invocation?: boolean;
|
|
479
|
+
}
|
|
480
|
+
export interface RichTextCanvasUserMentionElement {
|
|
481
|
+
type: "canvas_user_mention";
|
|
482
|
+
user_id: string;
|
|
483
|
+
thread_id?: string;
|
|
484
|
+
style?: RichTextStyle;
|
|
485
|
+
}
|
|
486
|
+
export interface RichTextCanvasMessageUnfurlElement {
|
|
487
|
+
type: "canvas_message_unfurl";
|
|
488
|
+
root_message_ts: string;
|
|
489
|
+
root_message_channel: string;
|
|
490
|
+
style?: RichTextStyle;
|
|
491
|
+
}
|
|
492
|
+
export interface RichTextListRecordElement {
|
|
493
|
+
type: "list_record";
|
|
494
|
+
file_id: string;
|
|
495
|
+
record_id?: string;
|
|
496
|
+
view_id?: string;
|
|
497
|
+
style?: RichTextStyle;
|
|
498
|
+
text?: string;
|
|
499
|
+
url?: string;
|
|
500
|
+
}
|
|
501
|
+
export interface RichTextMessageMentionElement {
|
|
502
|
+
type: "message_mention";
|
|
503
|
+
channel_id: string;
|
|
504
|
+
message_ts: string;
|
|
505
|
+
author_id?: string;
|
|
506
|
+
thread_ts?: string;
|
|
507
|
+
style?: RichTextStyle;
|
|
508
|
+
text?: string;
|
|
509
|
+
url?: string;
|
|
510
|
+
}
|
|
511
|
+
export interface RichTextAttachmentMentionElement {
|
|
512
|
+
type: "attachment_mention";
|
|
513
|
+
url: string;
|
|
514
|
+
text?: string;
|
|
515
|
+
app_id?: string;
|
|
516
|
+
entity_id?: string;
|
|
517
|
+
icon_url?: string;
|
|
518
|
+
channel_id?: string;
|
|
519
|
+
ts?: string;
|
|
520
|
+
full_size_preview_enabled?: boolean;
|
|
521
|
+
icon_name?: string;
|
|
522
|
+
reference_object_type?: string;
|
|
523
|
+
product_name?: string;
|
|
524
|
+
style?: RichTextStyle;
|
|
525
|
+
}
|
|
526
|
+
export interface RichTextSalesforceDataFieldElement {
|
|
527
|
+
type: "salesforce_data_field";
|
|
528
|
+
salesforce_record_id: string;
|
|
529
|
+
salesforce_field_label?: string;
|
|
530
|
+
salesforce_field_api_name?: string;
|
|
531
|
+
salesforce_include_field_label?: boolean;
|
|
532
|
+
style?: RichTextStyle;
|
|
533
|
+
}
|
|
534
|
+
export interface RichTextTeamElement {
|
|
535
|
+
type: "team";
|
|
536
|
+
team_id: string;
|
|
537
|
+
style?: RichTextStyle;
|
|
538
|
+
}
|
|
539
|
+
export interface RichTextWorkObjectMentionElement {
|
|
540
|
+
type: "work_object_mention";
|
|
541
|
+
entity_id: string;
|
|
542
|
+
app_id: string;
|
|
543
|
+
text: string;
|
|
544
|
+
url: string;
|
|
545
|
+
icon_url?: string;
|
|
546
|
+
full_size_preview_enabled?: boolean;
|
|
547
|
+
product_name?: string;
|
|
548
|
+
style?: RichTextStyle;
|
|
549
|
+
}
|
|
550
|
+
export interface RichTextWorkflowMentionElement {
|
|
551
|
+
type: "workflow_mention";
|
|
552
|
+
workflow_id: string;
|
|
553
|
+
function_trigger_id: string;
|
|
554
|
+
text: string;
|
|
555
|
+
url?: string;
|
|
556
|
+
channel_id?: string;
|
|
557
|
+
ts?: string;
|
|
558
|
+
style?: RichTextStyle;
|
|
559
|
+
}
|
|
560
|
+
/** An inline run inside a section, list item, quote or preformatted block. */
|
|
561
|
+
export type RichTextElement = RichTextTextElement | RichTextLinkElement | RichTextEmojiElement | RichTextUserElement | RichTextUsergroupElement | RichTextChannelElement | RichTextBroadcastElement | RichTextDateElement | RichTextColorElement | RichTextTagElement | RichTextCitationElement | RichTextFileElement | RichTextCanvasElement | RichTextCanvasUserMentionElement | RichTextCanvasMessageUnfurlElement | RichTextListRecordElement | RichTextMessageMentionElement | RichTextAttachmentMentionElement | RichTextSalesforceDataFieldElement | RichTextTeamElement | RichTextWorkObjectMentionElement | RichTextWorkflowMentionElement;
|
|
562
|
+
export interface RichTextSection {
|
|
563
|
+
type: "rich_text_section";
|
|
564
|
+
elements: RichTextElement[];
|
|
565
|
+
}
|
|
566
|
+
export interface RichTextList {
|
|
567
|
+
type: "rich_text_list";
|
|
568
|
+
style: "bullet" | "ordered";
|
|
569
|
+
elements: RichTextSection[];
|
|
570
|
+
indent?: number;
|
|
571
|
+
offset?: number;
|
|
572
|
+
border?: number;
|
|
573
|
+
}
|
|
574
|
+
export interface RichTextPreformatted {
|
|
575
|
+
type: "rich_text_preformatted";
|
|
576
|
+
elements: RichTextElement[];
|
|
577
|
+
border?: number;
|
|
578
|
+
language?: string;
|
|
579
|
+
}
|
|
580
|
+
export interface RichTextQuote {
|
|
581
|
+
type: "rich_text_quote";
|
|
582
|
+
elements: RichTextElement[];
|
|
583
|
+
border?: number;
|
|
584
|
+
}
|
|
585
|
+
export type RichTextPart = RichTextSection | RichTextList | RichTextPreformatted | RichTextQuote;
|
|
586
|
+
export interface ActionsBlock {
|
|
587
|
+
type: "actions";
|
|
588
|
+
elements: ActionsElement[];
|
|
589
|
+
block_id?: string;
|
|
590
|
+
}
|
|
591
|
+
export type AlertLevel = "default" | "info" | "warning" | "error" | "success";
|
|
592
|
+
export interface AlertBlock {
|
|
593
|
+
type: "alert";
|
|
594
|
+
text: TextObject;
|
|
595
|
+
level?: AlertLevel;
|
|
596
|
+
block_id?: string;
|
|
597
|
+
}
|
|
598
|
+
export type MetricTrend = "up" | "down" | "flat";
|
|
599
|
+
/** Whether a figure's move is good news: costs going up are negative. */
|
|
600
|
+
export type MetricTone = "positive" | "negative" | "neutral";
|
|
601
|
+
export interface MetricItem {
|
|
602
|
+
label: string;
|
|
603
|
+
/** Already formatted for display ("$12,4 M"). */
|
|
604
|
+
value: string;
|
|
605
|
+
change?: string;
|
|
606
|
+
trend?: MetricTrend;
|
|
607
|
+
tone?: MetricTone;
|
|
608
|
+
caption?: string;
|
|
609
|
+
}
|
|
610
|
+
/** Headline figures the answer already holds; live ones are canvas stats. */
|
|
611
|
+
export interface MetricsBlock {
|
|
612
|
+
type: "metrics";
|
|
613
|
+
title?: string;
|
|
614
|
+
items: MetricItem[];
|
|
615
|
+
block_id?: string;
|
|
616
|
+
}
|
|
617
|
+
export interface CardBlock {
|
|
618
|
+
type: "card";
|
|
619
|
+
block_id?: string;
|
|
620
|
+
hero_image?: ImageElement;
|
|
621
|
+
icon?: ImageElement;
|
|
622
|
+
title?: TextObject;
|
|
623
|
+
subtitle?: TextObject;
|
|
624
|
+
body?: TextObject;
|
|
625
|
+
actions?: ButtonElement[];
|
|
626
|
+
slack_icon?: SlackIconObject;
|
|
627
|
+
subtext?: TextObject;
|
|
628
|
+
}
|
|
629
|
+
export interface CarouselBlock {
|
|
630
|
+
type: "carousel";
|
|
631
|
+
elements: CardBlock[];
|
|
632
|
+
block_id?: string;
|
|
633
|
+
}
|
|
634
|
+
export type ContainerWidth = "narrow" | "standard" | "wide" | "full";
|
|
635
|
+
/** The blocks a container may hold. */
|
|
636
|
+
export type ContainerChildBlock = ActionsBlock | ContextBlock | DividerBlock | FileBlock | HeaderBlock | ImageBlock | InputBlock | RichTextBlock | SectionBlock | TableBlock | VideoBlock;
|
|
637
|
+
export interface ContainerBlock {
|
|
638
|
+
type: "container";
|
|
639
|
+
title?: PlainTextObject;
|
|
640
|
+
rich_text_title?: RichTextBlock;
|
|
641
|
+
subtitle?: TextObject;
|
|
642
|
+
child_blocks: ContainerChildBlock[];
|
|
643
|
+
block_id?: string;
|
|
644
|
+
width?: ContainerWidth;
|
|
645
|
+
icon?: ImageElement;
|
|
646
|
+
is_collapsible?: boolean;
|
|
647
|
+
default_collapsed?: boolean;
|
|
648
|
+
has_header_divider?: boolean;
|
|
649
|
+
}
|
|
650
|
+
export interface ContextBlock {
|
|
651
|
+
type: "context";
|
|
652
|
+
elements: ContextElement[];
|
|
653
|
+
block_id?: string;
|
|
654
|
+
}
|
|
655
|
+
export interface ContextActionsBlock {
|
|
656
|
+
type: "context_actions";
|
|
657
|
+
elements: ContextActionsElement[];
|
|
658
|
+
block_id?: string;
|
|
659
|
+
}
|
|
660
|
+
export interface RawTextCell {
|
|
661
|
+
type: "raw_text";
|
|
662
|
+
text: string;
|
|
663
|
+
}
|
|
664
|
+
export interface RawNumberCell {
|
|
665
|
+
type: "raw_number";
|
|
666
|
+
value: number;
|
|
667
|
+
text: string;
|
|
668
|
+
}
|
|
669
|
+
export type TableCell = RawTextCell | RawNumberCell | RichTextBlock;
|
|
670
|
+
export interface DataTableBlock {
|
|
671
|
+
type: "data_table";
|
|
672
|
+
/** The first row is the header. */
|
|
673
|
+
rows: TableCell[][];
|
|
674
|
+
block_id?: string;
|
|
675
|
+
page_size?: number;
|
|
676
|
+
caption: string;
|
|
677
|
+
row_header_column_index?: number;
|
|
678
|
+
}
|
|
679
|
+
export interface PieSegment {
|
|
680
|
+
label: string;
|
|
681
|
+
value: number;
|
|
682
|
+
}
|
|
683
|
+
export interface DataPoint {
|
|
684
|
+
label: string;
|
|
685
|
+
value: number;
|
|
686
|
+
}
|
|
687
|
+
export interface DataSeries {
|
|
688
|
+
name: string;
|
|
689
|
+
data: DataPoint[];
|
|
690
|
+
}
|
|
691
|
+
export interface AxisConfig {
|
|
692
|
+
categories: string[];
|
|
693
|
+
x_label?: string;
|
|
694
|
+
y_label?: string;
|
|
695
|
+
}
|
|
696
|
+
export interface PieChartSpec {
|
|
697
|
+
type: "pie";
|
|
698
|
+
segments: PieSegment[];
|
|
699
|
+
}
|
|
700
|
+
export interface BarChartSpec {
|
|
701
|
+
type: "bar";
|
|
702
|
+
series: DataSeries[];
|
|
703
|
+
axis_config: AxisConfig;
|
|
704
|
+
}
|
|
705
|
+
export interface AreaChartSpec {
|
|
706
|
+
type: "area";
|
|
707
|
+
series: DataSeries[];
|
|
708
|
+
axis_config: AxisConfig;
|
|
709
|
+
}
|
|
710
|
+
export interface LineChartSpec {
|
|
711
|
+
type: "line";
|
|
712
|
+
series: DataSeries[];
|
|
713
|
+
axis_config: AxisConfig;
|
|
714
|
+
}
|
|
715
|
+
export type ChartSpec = PieChartSpec | BarChartSpec | AreaChartSpec | LineChartSpec;
|
|
716
|
+
export interface DataVisualizationBlock {
|
|
717
|
+
type: "data_visualization";
|
|
718
|
+
title: string;
|
|
719
|
+
chart: ChartSpec;
|
|
720
|
+
block_id?: string;
|
|
721
|
+
}
|
|
722
|
+
export interface DividerBlock {
|
|
723
|
+
type: "divider";
|
|
724
|
+
block_id?: string;
|
|
725
|
+
}
|
|
726
|
+
export interface FileBlock {
|
|
727
|
+
type: "file";
|
|
728
|
+
external_id: string;
|
|
729
|
+
source: "remote";
|
|
730
|
+
block_id?: string;
|
|
731
|
+
}
|
|
732
|
+
export interface HeaderBlock {
|
|
733
|
+
type: "header";
|
|
734
|
+
text: PlainTextObject;
|
|
735
|
+
block_id?: string;
|
|
736
|
+
level?: 1 | 2 | 3 | 4;
|
|
737
|
+
}
|
|
738
|
+
export interface ImageBlock {
|
|
739
|
+
type: "image";
|
|
740
|
+
alt_text: string;
|
|
741
|
+
image_url?: string;
|
|
742
|
+
slack_file?: SlackFileObject;
|
|
743
|
+
title?: PlainTextObject;
|
|
744
|
+
block_id?: string;
|
|
745
|
+
}
|
|
746
|
+
export interface InputBlock {
|
|
747
|
+
type: "input";
|
|
748
|
+
label: PlainTextObject;
|
|
749
|
+
element: InputElement;
|
|
750
|
+
dispatch_action?: boolean;
|
|
751
|
+
block_id?: string;
|
|
752
|
+
hint?: PlainTextObject;
|
|
753
|
+
optional?: boolean;
|
|
754
|
+
}
|
|
755
|
+
/** Standard markdown (headers, lists, tables, task lists, code). */
|
|
756
|
+
export interface MarkdownBlock {
|
|
757
|
+
type: "markdown";
|
|
758
|
+
text: string;
|
|
759
|
+
block_id?: string;
|
|
760
|
+
}
|
|
761
|
+
export type TaskStatus = "pending" | "in_progress" | "complete" | "error";
|
|
762
|
+
/** A task inside a plan: a task card without its `type`. */
|
|
763
|
+
export interface PlanTask {
|
|
764
|
+
task_id: string;
|
|
765
|
+
title: string;
|
|
766
|
+
status: TaskStatus;
|
|
767
|
+
details?: RichTextBlock;
|
|
768
|
+
output?: RichTextBlock;
|
|
769
|
+
sources?: UrlSourceElement[];
|
|
770
|
+
icon?: SlackIconObject;
|
|
771
|
+
hide_title?: boolean;
|
|
772
|
+
}
|
|
773
|
+
export interface PlanBlock {
|
|
774
|
+
type: "plan";
|
|
775
|
+
title: string;
|
|
776
|
+
tasks: PlanTask[];
|
|
777
|
+
block_id?: string;
|
|
778
|
+
}
|
|
779
|
+
export interface RichTextBlock {
|
|
780
|
+
type: "rich_text";
|
|
781
|
+
elements: RichTextPart[];
|
|
782
|
+
block_id?: string;
|
|
783
|
+
}
|
|
784
|
+
export interface SectionBlock {
|
|
785
|
+
type: "section";
|
|
786
|
+
text?: TextObject;
|
|
787
|
+
block_id?: string;
|
|
788
|
+
/** Up to ten text objects in two columns. */
|
|
789
|
+
fields?: TextObject[];
|
|
790
|
+
accessory?: SectionAccessory;
|
|
791
|
+
/** Always show the full text instead of folding it behind "see more". */
|
|
792
|
+
expand?: boolean;
|
|
793
|
+
}
|
|
794
|
+
export interface TableColumnSetting {
|
|
795
|
+
align?: "left" | "center" | "right";
|
|
796
|
+
is_wrapped?: boolean;
|
|
797
|
+
}
|
|
798
|
+
export interface TableBlock {
|
|
799
|
+
type: "table";
|
|
800
|
+
block_id?: string;
|
|
801
|
+
/** The first row is the header. */
|
|
802
|
+
rows: TableCell[][];
|
|
803
|
+
column_settings?: Array<TableColumnSetting | null>;
|
|
804
|
+
}
|
|
805
|
+
export interface TaskCardBlock extends PlanTask {
|
|
806
|
+
type: "task_card";
|
|
807
|
+
block_id?: string;
|
|
808
|
+
}
|
|
809
|
+
export interface VideoBlock {
|
|
810
|
+
type: "video";
|
|
811
|
+
alt_text: string;
|
|
812
|
+
author_name?: string;
|
|
813
|
+
block_id?: string;
|
|
814
|
+
description?: PlainTextObject;
|
|
815
|
+
provider_icon_url?: string;
|
|
816
|
+
provider_name?: string;
|
|
817
|
+
title: PlainTextObject;
|
|
818
|
+
title_url?: string;
|
|
819
|
+
thumbnail_url: string;
|
|
820
|
+
video_url: string;
|
|
821
|
+
}
|
|
822
|
+
/** Every block a message may carry. */
|
|
823
|
+
export type MessageBlock = ActionsBlock | AlertBlock | CardBlock | CarouselBlock | ContainerBlock | ContextBlock | ContextActionsBlock | DataTableBlock | DataVisualizationBlock | DividerBlock | FileBlock | HeaderBlock | ImageBlock | InputBlock | MarkdownBlock | MetricsBlock | PlanBlock | RichTextBlock | SectionBlock | TableBlock | TaskCardBlock | VideoBlock;
|
|
824
|
+
export type MessageBlockType = MessageBlock["type"];
|
|
825
|
+
export declare const MessageBlockTypes: readonly ["actions", "alert", "card", "carousel", "container", "context", "context_actions", "data_table", "data_visualization", "divider", "file", "header", "image", "input", "markdown", "metrics", "plan", "rich_text", "section", "table", "task_card", "video"];
|
|
826
|
+
/** A message holds at most this many blocks. */
|
|
827
|
+
export declare const MaxMessageBlocks = 50;
|
|
828
|
+
/**
|
|
829
|
+
* The value one element holds — the entry `state.values[block_id][action_id]`
|
|
830
|
+
* carries in a `block_actions` payload, and what a submitted form reports for
|
|
831
|
+
* every input in the message.
|
|
832
|
+
*/
|
|
833
|
+
export interface BlockValue {
|
|
834
|
+
type: BlockElement["type"];
|
|
835
|
+
/** Buttons, text inputs, number inputs. */
|
|
836
|
+
value?: string;
|
|
837
|
+
selected_option?: OptionObject | null;
|
|
838
|
+
selected_options?: OptionObject[];
|
|
839
|
+
/** YYYY-MM-DD */
|
|
840
|
+
selected_date?: string | null;
|
|
841
|
+
/** HH:mm */
|
|
842
|
+
selected_time?: string | null;
|
|
843
|
+
/** Unix seconds. */
|
|
844
|
+
selected_date_time?: number | null;
|
|
845
|
+
selected_user?: string | null;
|
|
846
|
+
selected_users?: string[];
|
|
847
|
+
selected_conversation?: string | null;
|
|
848
|
+
selected_conversations?: string[];
|
|
849
|
+
selected_channel?: string | null;
|
|
850
|
+
selected_channels?: string[];
|
|
851
|
+
rich_text_value?: RichTextBlock;
|
|
852
|
+
files?: Array<{
|
|
853
|
+
name: string;
|
|
854
|
+
size: number;
|
|
855
|
+
type: string;
|
|
856
|
+
}>;
|
|
857
|
+
/** The URL a button or overflow option opened, when it did. */
|
|
858
|
+
url?: string;
|
|
859
|
+
}
|
|
860
|
+
/** Every input's value in a message, keyed by block id then action id. */
|
|
861
|
+
export interface BlockState {
|
|
862
|
+
values: Record<string, Record<string, BlockValue>>;
|
|
863
|
+
}
|
|
864
|
+
/**
|
|
865
|
+
* One interaction with a message: the element that fired, its value, and
|
|
866
|
+
* the state of every input block in the message at that moment.
|
|
867
|
+
*/
|
|
868
|
+
export interface BlockAction extends BlockValue {
|
|
869
|
+
block_id: string;
|
|
870
|
+
action_id: string;
|
|
871
|
+
/** The label the person saw: a button's text, an option's text. */
|
|
872
|
+
label?: string;
|
|
873
|
+
/** A button's `agent_prompt`: what to hand the assistant instead of an action. */
|
|
874
|
+
agent_prompt?: string;
|
|
875
|
+
state?: BlockState;
|
|
876
|
+
}
|
|
877
|
+
/** A rich text block as one string, lines between its parts. */
|
|
878
|
+
export declare const richTextText: (block: RichTextBlock) => string;
|
|
879
|
+
/**
|
|
880
|
+
* A message's blocks as plain text: what a surface without the renderer
|
|
881
|
+
* shows, and what the model reads back when a conversation replays.
|
|
882
|
+
*/
|
|
883
|
+
export declare const blockKitText: (blocks: ReadonlyArray<MessageBlock>) => string;
|
|
884
|
+
/**
|
|
885
|
+
* One line a person would read for an interaction: the button they clicked,
|
|
886
|
+
* the option they picked, the value they entered.
|
|
887
|
+
*/
|
|
888
|
+
export declare const blockActionText: (action: BlockAction) => string;
|
|
889
|
+
//# sourceMappingURL=block-kit.d.ts.map
|