@hypercli.com/sdk 2026.6.26 → 2026.8.11

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 (106) hide show
  1. package/README.md +181 -1
  2. package/dist/agent-slots.d.ts +17 -0
  3. package/dist/agent-slots.d.ts.map +1 -0
  4. package/dist/agent-slots.js +18 -0
  5. package/dist/agent-slots.js.map +1 -0
  6. package/dist/agent.d.ts +67 -12
  7. package/dist/agent.d.ts.map +1 -1
  8. package/dist/agent.js +220 -28
  9. package/dist/agent.js.map +1 -1
  10. package/dist/agents.d.ts +690 -82
  11. package/dist/agents.d.ts.map +1 -1
  12. package/dist/agents.js +2595 -225
  13. package/dist/agents.js.map +1 -1
  14. package/dist/browser.d.ts +4 -2
  15. package/dist/browser.d.ts.map +1 -1
  16. package/dist/browser.js +10 -3
  17. package/dist/browser.js.map +1 -1
  18. package/dist/channels.d.ts +156 -0
  19. package/dist/channels.d.ts.map +1 -0
  20. package/dist/channels.js +110 -0
  21. package/dist/channels.js.map +1 -0
  22. package/dist/client.d.ts +2 -0
  23. package/dist/client.d.ts.map +1 -1
  24. package/dist/client.js +14 -4
  25. package/dist/client.js.map +1 -1
  26. package/dist/config.d.ts +1 -1
  27. package/dist/config.js +2 -2
  28. package/dist/config.js.map +1 -1
  29. package/dist/connectors.d.ts +79 -0
  30. package/dist/connectors.d.ts.map +1 -0
  31. package/dist/connectors.js +2 -0
  32. package/dist/connectors.js.map +1 -0
  33. package/dist/errors.d.ts +4 -1
  34. package/dist/errors.d.ts.map +1 -1
  35. package/dist/errors.js +9 -2
  36. package/dist/errors.js.map +1 -1
  37. package/dist/hermes/gateway.d.ts +194 -0
  38. package/dist/hermes/gateway.d.ts.map +1 -0
  39. package/dist/hermes/gateway.js +209 -0
  40. package/dist/hermes/gateway.js.map +1 -0
  41. package/dist/http.d.ts +16 -3
  42. package/dist/http.d.ts.map +1 -1
  43. package/dist/http.js +196 -63
  44. package/dist/http.js.map +1 -1
  45. package/dist/index.d.ts +15 -5
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +13 -4
  48. package/dist/index.js.map +1 -1
  49. package/dist/job/base.d.ts +6 -0
  50. package/dist/job/base.d.ts.map +1 -1
  51. package/dist/job/base.js +7 -1
  52. package/dist/job/base.js.map +1 -1
  53. package/dist/keys.d.ts +21 -5
  54. package/dist/keys.d.ts.map +1 -1
  55. package/dist/keys.js +62 -3
  56. package/dist/keys.js.map +1 -1
  57. package/dist/openclaw/channels.d.ts +86 -0
  58. package/dist/openclaw/channels.d.ts.map +1 -0
  59. package/dist/openclaw/channels.js +290 -0
  60. package/dist/openclaw/channels.js.map +1 -0
  61. package/dist/openclaw/connectors.d.ts +61 -0
  62. package/dist/openclaw/connectors.d.ts.map +1 -0
  63. package/dist/openclaw/connectors.js +174 -0
  64. package/dist/openclaw/connectors.js.map +1 -0
  65. package/dist/openclaw/gateway.d.ts +682 -16
  66. package/dist/openclaw/gateway.d.ts.map +1 -1
  67. package/dist/openclaw/gateway.js +1794 -187
  68. package/dist/openclaw/gateway.js.map +1 -1
  69. package/dist/openclaw/skills.d.ts +106 -0
  70. package/dist/openclaw/skills.d.ts.map +1 -0
  71. package/dist/openclaw/skills.js +575 -0
  72. package/dist/openclaw/skills.js.map +1 -0
  73. package/dist/openclaw/slack.d.ts +818 -0
  74. package/dist/openclaw/slack.d.ts.map +1 -0
  75. package/dist/openclaw/slack.js +536 -0
  76. package/dist/openclaw/slack.js.map +1 -0
  77. package/dist/openclaw/whatsapp.d.ts +63 -0
  78. package/dist/openclaw/whatsapp.d.ts.map +1 -0
  79. package/dist/openclaw/whatsapp.js +264 -0
  80. package/dist/openclaw/whatsapp.js.map +1 -0
  81. package/dist/renders.js +11 -11
  82. package/dist/renders.js.map +1 -1
  83. package/dist/skills.d.ts +126 -0
  84. package/dist/skills.d.ts.map +1 -0
  85. package/dist/skills.js +2 -0
  86. package/dist/skills.js.map +1 -0
  87. package/dist/user.d.ts +15 -2
  88. package/dist/user.d.ts.map +1 -1
  89. package/dist/user.js +51 -4
  90. package/dist/user.js.map +1 -1
  91. package/dist/voice-session.d.ts +74 -0
  92. package/dist/voice-session.d.ts.map +1 -0
  93. package/dist/voice-session.js +255 -0
  94. package/dist/voice-session.js.map +1 -0
  95. package/dist/voice.d.ts +27 -3
  96. package/dist/voice.d.ts.map +1 -1
  97. package/dist/voice.js +89 -6
  98. package/dist/voice.js.map +1 -1
  99. package/dist/workspaces.d.ts +181 -0
  100. package/dist/workspaces.d.ts.map +1 -0
  101. package/dist/workspaces.js +495 -0
  102. package/dist/workspaces.js.map +1 -0
  103. package/dist/x402.d.ts.map +1 -1
  104. package/dist/x402.js +1 -2
  105. package/dist/x402.js.map +1 -1
  106. package/package.json +42 -2
@@ -0,0 +1,818 @@
1
+ import { type OpenClawConfigSchemaLookupResult } from './gateway.js';
2
+ export type OpenClawSecretRefSource = 'env' | 'file' | 'exec';
3
+ export interface OpenClawSecretRef {
4
+ source: OpenClawSecretRefSource;
5
+ provider: string;
6
+ id: string;
7
+ }
8
+ export type OpenClawSlackSecretRefSource = OpenClawSecretRefSource;
9
+ export type OpenClawSlackSecretRef = OpenClawSecretRef;
10
+ export type OpenClawSlackSecretInput = string | OpenClawSecretRef;
11
+ export type OpenClawSlackMode = 'socket' | 'http' | 'relay';
12
+ export type OpenClawSlackReplyToMode = 'off' | 'first' | 'all' | 'batched';
13
+ export type OpenClawSlackGroupPolicy = 'open' | 'disabled' | 'allowlist';
14
+ export type OpenClawSlackDmPolicy = 'pairing' | 'allowlist' | 'open' | 'disabled';
15
+ export type OpenClawSlackContextVisibility = 'all' | 'allowlist' | 'allowlist_quote';
16
+ export interface OpenClawSlackToolPolicy {
17
+ allow?: string[];
18
+ alsoAllow?: string[];
19
+ deny?: string[];
20
+ }
21
+ export type OpenClawSlackToolPolicyBySender = Record<string, OpenClawSlackToolPolicy>;
22
+ export interface OpenClawSlackBotLoopProtectionConfig {
23
+ enabled?: boolean;
24
+ maxEventsPerWindow?: number;
25
+ windowSeconds?: number;
26
+ cooldownSeconds?: number;
27
+ }
28
+ export interface OpenClawSlackImplicitMentionsConfig {
29
+ replyToBot?: boolean;
30
+ quotedBot?: boolean;
31
+ threadParticipation?: boolean;
32
+ }
33
+ export interface OpenClawSlackPresenceEventsConfig {
34
+ mode?: 'off' | 'auto' | 'on';
35
+ }
36
+ export interface OpenClawSlackChannelConfig {
37
+ enabled?: boolean;
38
+ requireMention?: boolean;
39
+ ignoreOtherMentions?: boolean;
40
+ replyToMode?: OpenClawSlackReplyToMode;
41
+ tools?: OpenClawSlackToolPolicy;
42
+ toolsBySender?: OpenClawSlackToolPolicyBySender;
43
+ allowBots?: boolean | 'mentions';
44
+ botLoopProtection?: OpenClawSlackBotLoopProtectionConfig;
45
+ users?: Array<string | number>;
46
+ skills?: string[];
47
+ systemPrompt?: string;
48
+ presenceEvents?: OpenClawSlackPresenceEventsConfig;
49
+ }
50
+ export interface OpenClawSlackDmConfig {
51
+ enabled?: boolean;
52
+ /** @deprecated Use account-level dmPolicy. */
53
+ policy?: OpenClawSlackDmPolicy;
54
+ /** @deprecated Use account-level allowFrom. */
55
+ allowFrom?: Array<string | number>;
56
+ groupEnabled?: boolean;
57
+ groupChannels?: Array<string | number>;
58
+ /** @deprecated Prefer replyToModeByChatType.direct. */
59
+ replyToMode?: OpenClawSlackReplyToMode;
60
+ }
61
+ export interface OpenClawSlackSocketModeConfig {
62
+ clientPingTimeout?: number;
63
+ serverPingTimeout?: number;
64
+ pingPongLoggingEnabled?: boolean;
65
+ }
66
+ export interface OpenClawSlackRelayConfig {
67
+ url?: string;
68
+ authToken?: OpenClawSlackSecretInput;
69
+ gatewayId?: string;
70
+ }
71
+ export interface OpenClawSlackStreamingChunkConfig {
72
+ minChars?: number;
73
+ maxChars?: number;
74
+ breakPreference?: 'paragraph' | 'newline' | 'sentence';
75
+ }
76
+ export interface OpenClawSlackStreamingPreviewConfig {
77
+ chunk?: OpenClawSlackStreamingChunkConfig;
78
+ toolProgress?: boolean;
79
+ commandText?: 'raw' | 'status';
80
+ }
81
+ export interface OpenClawSlackStreamingProgressConfig {
82
+ label?: string | false;
83
+ labels?: string[];
84
+ maxLines?: number;
85
+ maxLineChars?: number;
86
+ render?: 'text' | 'rich';
87
+ toolProgress?: boolean;
88
+ commandText?: 'raw' | 'status';
89
+ commentary?: boolean;
90
+ narration?: boolean;
91
+ nativeTaskCards?: boolean;
92
+ }
93
+ export interface OpenClawSlackStreamingCoalesceConfig {
94
+ minChars?: number;
95
+ maxChars?: number;
96
+ idleMs?: number;
97
+ }
98
+ export interface OpenClawSlackStreamingBlockConfig {
99
+ enabled?: boolean;
100
+ coalesce?: OpenClawSlackStreamingCoalesceConfig;
101
+ }
102
+ export interface OpenClawSlackStreamingConfig {
103
+ mode?: 'off' | 'partial' | 'block' | 'progress';
104
+ chunkMode?: 'length' | 'newline';
105
+ nativeTransport?: boolean;
106
+ preview?: OpenClawSlackStreamingPreviewConfig;
107
+ progress?: OpenClawSlackStreamingProgressConfig;
108
+ block?: OpenClawSlackStreamingBlockConfig;
109
+ }
110
+ export interface OpenClawSlackExecApprovalConfig {
111
+ enabled?: boolean | 'auto';
112
+ approvers?: Array<string | number>;
113
+ agentFilter?: string[];
114
+ sessionFilter?: string[];
115
+ target?: 'dm' | 'channel' | 'both';
116
+ }
117
+ export type OpenClawSlackCapabilitiesConfig = string[] | {
118
+ interactiveReplies?: boolean;
119
+ };
120
+ export interface OpenClawSlackActionsConfig {
121
+ reactions?: boolean;
122
+ messages?: boolean;
123
+ pins?: boolean;
124
+ search?: boolean;
125
+ permissions?: boolean;
126
+ memberInfo?: boolean;
127
+ channelInfo?: boolean;
128
+ emojiList?: boolean;
129
+ }
130
+ export interface OpenClawSlackSlashCommandConfig {
131
+ enabled?: boolean;
132
+ name?: string;
133
+ sessionPrefix?: string;
134
+ ephemeral?: boolean;
135
+ }
136
+ export interface OpenClawSlackCommandsConfig {
137
+ native?: boolean | 'auto';
138
+ nativeSkills?: boolean | 'auto';
139
+ }
140
+ export interface OpenClawSlackMarkdownConfig {
141
+ tables?: 'off' | 'bullets' | 'code' | 'block';
142
+ }
143
+ export interface OpenClawSlackMentionPatternsConfig {
144
+ mode?: 'allow' | 'deny';
145
+ allowIn?: string[];
146
+ denyIn?: string[];
147
+ }
148
+ export interface OpenClawSlackThreadConfig {
149
+ historyScope?: 'thread' | 'channel';
150
+ inheritParent?: boolean;
151
+ initialHistoryLimit?: number;
152
+ }
153
+ export interface OpenClawSlackHeartbeatConfig {
154
+ showOk?: boolean;
155
+ showAlerts?: boolean;
156
+ useIndicator?: boolean;
157
+ }
158
+ export interface OpenClawSlackHealthMonitorConfig {
159
+ enabled?: boolean;
160
+ }
161
+ export interface OpenClawSlackAccountConfig {
162
+ name?: string;
163
+ mode?: OpenClawSlackMode;
164
+ enterpriseOrgInstall?: boolean;
165
+ socketMode?: OpenClawSlackSocketModeConfig;
166
+ relay?: OpenClawSlackRelayConfig;
167
+ signingSecret?: OpenClawSlackSecretInput;
168
+ webhookPath?: string;
169
+ capabilities?: OpenClawSlackCapabilitiesConfig;
170
+ execApprovals?: OpenClawSlackExecApprovalConfig;
171
+ markdown?: OpenClawSlackMarkdownConfig;
172
+ commands?: OpenClawSlackCommandsConfig;
173
+ configWrites?: boolean;
174
+ enabled?: boolean;
175
+ botToken?: OpenClawSlackSecretInput;
176
+ appToken?: OpenClawSlackSecretInput;
177
+ userToken?: OpenClawSlackSecretInput;
178
+ userTokenReadOnly?: boolean;
179
+ allowBots?: boolean | 'mentions';
180
+ botLoopProtection?: OpenClawSlackBotLoopProtectionConfig;
181
+ dangerouslyAllowNameMatching?: boolean;
182
+ requireMention?: boolean;
183
+ implicitMentions?: OpenClawSlackImplicitMentionsConfig;
184
+ groupPolicy?: OpenClawSlackGroupPolicy;
185
+ mentionPatterns?: OpenClawSlackMentionPatternsConfig;
186
+ contextVisibility?: OpenClawSlackContextVisibility;
187
+ historyLimit?: number;
188
+ dmHistoryLimit?: number;
189
+ dms?: Record<string, {
190
+ historyLimit?: number;
191
+ }>;
192
+ textChunkLimit?: number;
193
+ unfurlLinks?: boolean;
194
+ unfurlMedia?: boolean;
195
+ streaming?: OpenClawSlackStreamingConfig;
196
+ mediaMaxMb?: number;
197
+ reactionNotifications?: 'off' | 'own' | 'all' | 'allowlist';
198
+ reactionAllowlist?: Array<string | number>;
199
+ replyToMode?: OpenClawSlackReplyToMode;
200
+ replyToModeByChatType?: Partial<Record<'direct' | 'group' | 'channel', OpenClawSlackReplyToMode>>;
201
+ thread?: OpenClawSlackThreadConfig;
202
+ presenceEvents?: OpenClawSlackPresenceEventsConfig;
203
+ actions?: OpenClawSlackActionsConfig;
204
+ slashCommand?: OpenClawSlackSlashCommandConfig;
205
+ dmPolicy?: OpenClawSlackDmPolicy;
206
+ allowFrom?: Array<string | number>;
207
+ defaultTo?: string;
208
+ dm?: OpenClawSlackDmConfig;
209
+ channels?: Record<string, OpenClawSlackChannelConfig>;
210
+ heartbeat?: OpenClawSlackHeartbeatConfig;
211
+ healthMonitor?: OpenClawSlackHealthMonitorConfig;
212
+ responsePrefix?: string;
213
+ ackReaction?: string;
214
+ typingReaction?: string;
215
+ }
216
+ export interface OpenClawSlackConfig extends OpenClawSlackAccountConfig {
217
+ accounts?: Record<string, OpenClawSlackAccountConfig>;
218
+ defaultAccount?: string;
219
+ }
220
+ export type OpenClawSlackChannelId = string;
221
+ export type OpenClawSlackUserId = string;
222
+ export type OpenClawSlackMessageId = string;
223
+ export type OpenClawSlackThreadId = string;
224
+ export type OpenClawSlackFileId = string;
225
+ export type OpenClawSlackEmoji = string;
226
+ export type OpenClawSlackTarget = OpenClawSlackChannelId | OpenClawSlackUserId;
227
+ export type OpenClawPresentationTone = 'info' | 'success' | 'warning' | 'danger' | 'neutral';
228
+ export type OpenClawPresentationButtonStyle = 'primary' | 'secondary' | 'success' | 'danger';
229
+ export type OpenClawPresentationAction = {
230
+ type: 'command';
231
+ command: string;
232
+ } | {
233
+ type: 'callback';
234
+ value: string;
235
+ } | {
236
+ type: 'approval';
237
+ approvalId: string;
238
+ approvalKind: 'exec' | 'plugin';
239
+ decision: 'allow-once' | 'allow-always' | 'deny';
240
+ } | {
241
+ type: 'url';
242
+ url: string;
243
+ } | {
244
+ type: 'web-app';
245
+ url: string;
246
+ widgetId?: string;
247
+ } | {
248
+ type: 'web-app';
249
+ url?: string;
250
+ widgetId: string;
251
+ };
252
+ export interface OpenClawPresentationButton {
253
+ label: string;
254
+ action?: OpenClawPresentationAction;
255
+ /** @deprecated Use action. */
256
+ value?: string;
257
+ /** @deprecated Use action with type "url". */
258
+ url?: string;
259
+ /** @deprecated Use action with type "web-app". */
260
+ webApp?: {
261
+ url: string;
262
+ };
263
+ /** @deprecated Use action with type "web-app". */
264
+ web_app?: {
265
+ url: string;
266
+ };
267
+ priority?: number;
268
+ disabled?: boolean;
269
+ reusable?: boolean;
270
+ style?: OpenClawPresentationButtonStyle;
271
+ }
272
+ export interface OpenClawPresentationOption {
273
+ label: string;
274
+ action?: Extract<OpenClawPresentationAction, {
275
+ type: 'command' | 'callback';
276
+ }>;
277
+ /** @deprecated Use action. */
278
+ value?: string;
279
+ }
280
+ export interface OpenClawPresentationPieChart {
281
+ type: 'chart';
282
+ chartType: 'pie';
283
+ title: string;
284
+ segments: Array<{
285
+ label: string;
286
+ value: number;
287
+ }>;
288
+ }
289
+ export interface OpenClawPresentationSeriesChart {
290
+ type: 'chart';
291
+ chartType: 'bar' | 'area' | 'line';
292
+ title: string;
293
+ categories: string[];
294
+ series: Array<{
295
+ name: string;
296
+ values: number[];
297
+ }>;
298
+ xLabel?: string;
299
+ yLabel?: string;
300
+ }
301
+ export interface OpenClawPresentationTable {
302
+ type: 'table';
303
+ caption: string;
304
+ headers: string[];
305
+ rows: Array<Array<string | number>>;
306
+ rowHeaderColumnIndex?: number;
307
+ }
308
+ export type OpenClawPresentationBlock = {
309
+ type: 'text';
310
+ text: string;
311
+ } | {
312
+ type: 'context';
313
+ text: string;
314
+ } | {
315
+ type: 'divider';
316
+ } | {
317
+ type: 'buttons';
318
+ buttons: OpenClawPresentationButton[];
319
+ } | {
320
+ type: 'select';
321
+ placeholder?: string;
322
+ options: OpenClawPresentationOption[];
323
+ } | OpenClawPresentationPieChart | OpenClawPresentationSeriesChart | OpenClawPresentationTable;
324
+ export interface OpenClawPresentation {
325
+ title?: string;
326
+ tone?: OpenClawPresentationTone;
327
+ blocks: OpenClawPresentationBlock[];
328
+ }
329
+ export type OpenClawInteractiveReplyBlock = {
330
+ type: 'text';
331
+ text: string;
332
+ } | {
333
+ type: 'buttons';
334
+ buttons: OpenClawPresentationButton[];
335
+ } | {
336
+ type: 'select';
337
+ placeholder?: string;
338
+ options: OpenClawPresentationOption[];
339
+ };
340
+ export interface OpenClawInteractiveReply {
341
+ blocks: OpenClawInteractiveReplyBlock[];
342
+ }
343
+ export interface OpenClawSlackOperationOptions {
344
+ accountId?: string;
345
+ sessionKey?: string;
346
+ sessionId?: string;
347
+ agentId?: string;
348
+ directOperator?: boolean;
349
+ idempotencyKey?: string;
350
+ }
351
+ export interface OpenClawSlackMessageActionRequest {
352
+ channel: 'slack';
353
+ action: OpenClawSlackActionName;
354
+ params: Record<string, unknown>;
355
+ accountId?: string;
356
+ sessionKey?: string;
357
+ sessionId?: string;
358
+ agentId?: string;
359
+ conversationReadOrigin?: 'direct-operator';
360
+ idempotencyKey: string;
361
+ }
362
+ export type OpenClawSlackActionName = 'send' | 'upload-file' | 'download-file' | 'read' | 'edit' | 'delete' | 'react' | 'reactions' | 'pin' | 'unpin' | 'list-pins' | 'member-info' | 'emoji-list';
363
+ type ForwardCompatible<T extends object> = T & Record<string, unknown>;
364
+ export interface OpenClawSlackMessageSummary extends Record<string, unknown> {
365
+ ts?: string;
366
+ timestampMs?: number;
367
+ timestampUtc?: string;
368
+ text?: string;
369
+ user?: string;
370
+ thread_ts?: string;
371
+ reply_count?: number;
372
+ reactions?: OpenClawSlackReaction[];
373
+ files?: Array<{
374
+ id?: string;
375
+ name?: string;
376
+ mimetype?: string;
377
+ } & Record<string, unknown>>;
378
+ }
379
+ export interface OpenClawSlackReaction extends Record<string, unknown> {
380
+ name?: string;
381
+ count?: number;
382
+ users?: string[];
383
+ }
384
+ export interface OpenClawSlackPin extends Record<string, unknown> {
385
+ type?: string;
386
+ message?: ({
387
+ ts?: string;
388
+ timestampMs?: number;
389
+ timestampUtc?: string;
390
+ text?: string;
391
+ } & Record<string, unknown>);
392
+ file?: ({
393
+ id?: string;
394
+ name?: string;
395
+ } & Record<string, unknown>);
396
+ }
397
+ export type OpenClawMessageReceiptPartKind = 'text' | 'media' | 'voice' | 'poll' | 'card' | 'preview' | 'unknown';
398
+ export interface OpenClawMessageReceiptPart extends Record<string, unknown> {
399
+ platformMessageId: string;
400
+ kind: OpenClawMessageReceiptPartKind;
401
+ index: number;
402
+ threadId?: string;
403
+ replyToId?: string;
404
+ raw?: Record<string, unknown>;
405
+ }
406
+ export interface OpenClawMessageReceipt extends Record<string, unknown> {
407
+ primaryPlatformMessageId?: string;
408
+ platformMessageIds: string[];
409
+ parts: OpenClawMessageReceiptPart[];
410
+ threadId?: string;
411
+ replyToId?: string;
412
+ editToken?: string;
413
+ deleteToken?: string;
414
+ sentAt: number;
415
+ raw?: readonly Record<string, unknown>[];
416
+ }
417
+ export type OpenClawSlackSendResult = ForwardCompatible<{
418
+ channelId: string;
419
+ messageId: string;
420
+ receipt: OpenClawMessageReceipt;
421
+ threadTs?: string;
422
+ }>;
423
+ export type OpenClawSlackSendActionResult = ForwardCompatible<{
424
+ ok: true;
425
+ result: OpenClawSlackSendResult;
426
+ }>;
427
+ export type OpenClawSlackMutationResult = ForwardCompatible<{
428
+ ok: true;
429
+ }>;
430
+ export type OpenClawSlackAddReactionResult = ForwardCompatible<{
431
+ ok: true;
432
+ added: string;
433
+ }>;
434
+ export type OpenClawSlackRemoveReactionResult = ForwardCompatible<{
435
+ ok: true;
436
+ removed: string;
437
+ }>;
438
+ export type OpenClawSlackClearReactionsResult = ForwardCompatible<{
439
+ ok: true;
440
+ removed: string[];
441
+ }>;
442
+ export type OpenClawSlackListReactionsResult = ForwardCompatible<{
443
+ ok: true;
444
+ reactions: OpenClawSlackReaction[];
445
+ }>;
446
+ export type OpenClawSlackReadResult = ForwardCompatible<{
447
+ ok: true;
448
+ channelId: string;
449
+ threadId?: string;
450
+ messages: OpenClawSlackMessageSummary[];
451
+ hasMore: boolean;
452
+ }>;
453
+ export type OpenClawSlackPinsResult = ForwardCompatible<{
454
+ ok: true;
455
+ pins: OpenClawSlackPin[];
456
+ }>;
457
+ export type OpenClawSlackMemberInfoResult = ForwardCompatible<{
458
+ ok: true;
459
+ info: Record<string, unknown>;
460
+ }>;
461
+ export type OpenClawSlackEmojiListResult = ForwardCompatible<{
462
+ ok: true;
463
+ emojis: ForwardCompatible<{
464
+ emoji?: Record<string, string>;
465
+ }>;
466
+ }>;
467
+ export type OpenClawSlackDownloadResult = ForwardCompatible<{
468
+ ok: false;
469
+ error: string;
470
+ }> | ForwardCompatible<{
471
+ ok?: true;
472
+ fileId: string;
473
+ path: string;
474
+ contentType?: string;
475
+ placeholder?: string;
476
+ media: ForwardCompatible<{
477
+ mediaUrl: string;
478
+ outbound: false;
479
+ contentType?: string;
480
+ }>;
481
+ }>;
482
+ interface OpenClawSlackSendMessageInputBase {
483
+ to: OpenClawSlackTarget;
484
+ threadId?: OpenClawSlackThreadId | null;
485
+ replyTo?: OpenClawSlackMessageId;
486
+ topLevel?: boolean;
487
+ }
488
+ type OpenClawSlackNonMediaContent = {
489
+ message: string;
490
+ presentation?: OpenClawPresentation; /** @deprecated Use presentation. */
491
+ interactive?: OpenClawInteractiveReply;
492
+ } | {
493
+ message?: string;
494
+ presentation: OpenClawPresentation; /** @deprecated Use presentation. */
495
+ interactive?: OpenClawInteractiveReply;
496
+ } | {
497
+ message?: string;
498
+ presentation?: OpenClawPresentation; /** @deprecated Use presentation. */
499
+ interactive: OpenClawInteractiveReply;
500
+ };
501
+ export type OpenClawSlackSendMessageInput = OpenClawSlackSendMessageInputBase & (({
502
+ media: string;
503
+ replyBroadcast?: never;
504
+ } & Partial<OpenClawSlackNonMediaContent>) | ({
505
+ media?: never;
506
+ replyBroadcast?: boolean;
507
+ } & OpenClawSlackNonMediaContent));
508
+ export interface OpenClawSlackUploadFileInput {
509
+ to: OpenClawSlackTarget;
510
+ filePath: string;
511
+ initialComment?: string;
512
+ filename?: string;
513
+ title?: string;
514
+ threadId?: OpenClawSlackThreadId | null;
515
+ replyTo?: OpenClawSlackMessageId;
516
+ topLevel?: boolean;
517
+ }
518
+ interface OpenClawSlackEditMessageInputBase {
519
+ channelId: OpenClawSlackChannelId;
520
+ messageId: OpenClawSlackMessageId;
521
+ }
522
+ export type OpenClawSlackEditMessageInput = OpenClawSlackEditMessageInputBase & ({
523
+ message: string;
524
+ presentation?: OpenClawPresentation;
525
+ } | {
526
+ message?: string;
527
+ presentation: OpenClawPresentation;
528
+ });
529
+ interface OpenClawSlackDownloadFileInputBase {
530
+ fileId: OpenClawSlackFileId;
531
+ threadId?: OpenClawSlackThreadId;
532
+ }
533
+ export type OpenClawSlackDownloadFileInput = OpenClawSlackDownloadFileInputBase & ({
534
+ channelId: OpenClawSlackChannelId;
535
+ to?: OpenClawSlackTarget;
536
+ } | {
537
+ channelId?: OpenClawSlackChannelId;
538
+ to: OpenClawSlackTarget;
539
+ });
540
+ export interface OpenClawSlackReadMessagesInput {
541
+ channelId: OpenClawSlackChannelId;
542
+ limit?: number;
543
+ before?: string;
544
+ after?: string;
545
+ threadId?: OpenClawSlackThreadId;
546
+ messageId?: OpenClawSlackMessageId;
547
+ }
548
+ export interface OpenClawSlackMessageReference {
549
+ channelId: OpenClawSlackChannelId;
550
+ messageId: OpenClawSlackMessageId;
551
+ }
552
+ export interface OpenClawSlackReactionInput extends OpenClawSlackMessageReference {
553
+ emoji: OpenClawSlackEmoji;
554
+ }
555
+ export interface OpenClawSlackAccountStatus extends Record<string, unknown> {
556
+ accountId?: string;
557
+ name?: string;
558
+ mode?: OpenClawSlackMode;
559
+ configured?: boolean;
560
+ enabled?: boolean;
561
+ running?: boolean;
562
+ connected?: boolean;
563
+ authenticated?: boolean;
564
+ healthState?: string;
565
+ lastError?: string;
566
+ lastProbeAt?: number;
567
+ botTokenSource?: string;
568
+ appTokenSource?: string;
569
+ signingSecretSource?: string;
570
+ userTokenSource?: string;
571
+ botTokenStatus?: 'available' | 'configured_unavailable' | 'missing';
572
+ appTokenStatus?: 'available' | 'configured_unavailable' | 'missing';
573
+ signingSecretStatus?: 'available' | 'configured_unavailable' | 'missing';
574
+ userTokenStatus?: 'available' | 'configured_unavailable' | 'missing';
575
+ probe?: Record<string, unknown>;
576
+ }
577
+ export type OpenClawSlackStartResult = ForwardCompatible<{
578
+ channel: 'slack';
579
+ accountId: string;
580
+ started: boolean;
581
+ }>;
582
+ export type OpenClawSlackStopResult = ForwardCompatible<{
583
+ channel: 'slack';
584
+ accountId: string;
585
+ stopped: boolean;
586
+ }>;
587
+ export type OpenClawSlackLogoutResult = ForwardCompatible<{
588
+ channel: 'slack';
589
+ accountId: string;
590
+ cleared: boolean;
591
+ }>;
592
+ export type OpenClawSlackPluginInstallAction = {
593
+ source: 'clawhub';
594
+ packageName: string;
595
+ } | {
596
+ source: 'official';
597
+ pluginId: string;
598
+ };
599
+ export interface OpenClawSlackPluginInfo extends Record<string, unknown> {
600
+ id: string;
601
+ name: string;
602
+ packageName?: string;
603
+ description?: string;
604
+ version?: string;
605
+ kind?: string[];
606
+ origin?: string;
607
+ installed: boolean;
608
+ enabled: boolean;
609
+ state: 'enabled' | 'disabled' | 'not-installed' | 'error';
610
+ install?: OpenClawSlackPluginInstallAction;
611
+ error?: string;
612
+ removable?: boolean;
613
+ }
614
+ export interface OpenClawSlackPluginsListResult extends Record<string, unknown> {
615
+ plugins: OpenClawSlackPluginInfo[];
616
+ diagnostics: unknown[];
617
+ mutationAllowed: boolean;
618
+ }
619
+ export type OpenClawSlackPluginSupport = {
620
+ supported: false;
621
+ mutationAllowed: false;
622
+ } | {
623
+ supported: true;
624
+ mutationAllowed: boolean;
625
+ plugin?: OpenClawSlackPluginInfo;
626
+ };
627
+ export type OpenClawSlackPluginInstallResult = ForwardCompatible<{
628
+ ok: true;
629
+ plugin: OpenClawSlackPluginInfo;
630
+ restartRequired: true;
631
+ warnings?: string[];
632
+ }>;
633
+ export type OpenClawSlackPluginEnabledResult = ForwardCompatible<{
634
+ ok: true;
635
+ plugin: OpenClawSlackPluginInfo;
636
+ restartRequired: boolean;
637
+ warnings?: string[];
638
+ }>;
639
+ export type OpenClawSlackPluginUninstallResult = ForwardCompatible<{
640
+ ok: true;
641
+ pluginId: string;
642
+ restartRequired: true;
643
+ removed: string[];
644
+ warnings?: string[];
645
+ }>;
646
+ export type OpenClawSlackPluginRefreshResult = ForwardCompatible<{
647
+ ok: true;
648
+ }>;
649
+ export interface OpenClawSlackCommandArgument {
650
+ name: string;
651
+ description: string;
652
+ type: 'string' | 'number' | 'boolean';
653
+ required?: boolean;
654
+ choices?: Array<{
655
+ value: string;
656
+ label: string;
657
+ }>;
658
+ dynamic?: boolean;
659
+ }
660
+ export interface OpenClawSlackCommand {
661
+ name: string;
662
+ nativeName?: string;
663
+ textAliases?: string[];
664
+ description: string;
665
+ category?: 'session' | 'options' | 'status' | 'management' | 'media' | 'tools' | 'docks';
666
+ source: 'native' | 'skill' | 'plugin';
667
+ scope: 'text' | 'native' | 'both';
668
+ acceptsArgs: boolean;
669
+ args?: OpenClawSlackCommandArgument[];
670
+ }
671
+ export interface OpenClawSlackCommandListOptions {
672
+ agentId?: string;
673
+ scope?: 'text' | 'native' | 'both';
674
+ includeArgs?: boolean;
675
+ }
676
+ export type OpenClawSlackCommandRunnerResult = string | {
677
+ exitCode?: number;
678
+ exit_code?: number;
679
+ stdout?: string;
680
+ stderr?: string;
681
+ };
682
+ export interface OpenClawSlackProviderOptions {
683
+ runCommand?: (command: string) => Promise<OpenClawSlackCommandRunnerResult>;
684
+ }
685
+ export interface OpenClawSlackPairingRequest extends Record<string, unknown> {
686
+ id: string;
687
+ code: string;
688
+ createdAt: string;
689
+ lastSeenAt: string;
690
+ meta?: Record<string, string>;
691
+ }
692
+ export type OpenClawSlackPairingListResult = ForwardCompatible<{
693
+ channel: 'slack';
694
+ requests: OpenClawSlackPairingRequest[];
695
+ }>;
696
+ export type OpenClawSlackPairingApprovalResult = ForwardCompatible<{
697
+ channel: 'slack';
698
+ approved: true;
699
+ code: string;
700
+ mayBootstrapCommandOwner: true;
701
+ raw?: string;
702
+ }>;
703
+ export interface OpenClawSlackClient {
704
+ configGet(): Promise<Record<string, unknown>>;
705
+ configSchemaLookup(path: string): Promise<OpenClawConfigSchemaLookupResult>;
706
+ configPatch(patch: Record<string, unknown>): Promise<unknown>;
707
+ channelsStatus(probe?: boolean, timeoutMs?: number, channel?: string): Promise<Record<string, unknown>>;
708
+ channelsStart(channel: string, accountId?: string): Promise<unknown>;
709
+ channelsStop(channel: string, accountId?: string): Promise<unknown>;
710
+ channelsLogout(channel: string, accountId?: string): Promise<unknown>;
711
+ messageAction(request: OpenClawSlackMessageActionRequest): Promise<unknown>;
712
+ pluginsList(): Promise<unknown>;
713
+ pluginsInstall(action: OpenClawSlackPluginInstallAction): Promise<unknown>;
714
+ pluginsSetEnabled(params: {
715
+ pluginId: string;
716
+ enabled: boolean;
717
+ }): Promise<unknown>;
718
+ pluginsUninstall(params: {
719
+ pluginId: string;
720
+ }): Promise<unknown>;
721
+ pluginsRefresh(): Promise<unknown>;
722
+ commandsList(params: {
723
+ provider: string;
724
+ agentId?: string;
725
+ scope?: 'text' | 'native' | 'both';
726
+ includeArgs?: boolean;
727
+ }): Promise<{
728
+ commands: OpenClawSlackCommand[];
729
+ }>;
730
+ }
731
+ type OpenClawSlackTransportConfigurationBase = Omit<OpenClawSlackAccountConfig, 'mode' | 'botToken' | 'appToken' | 'signingSecret' | 'relay' | 'socketMode' | 'webhookPath'>;
732
+ export type OpenClawSlackSocketConfiguration = OpenClawSlackTransportConfigurationBase & {
733
+ botToken: OpenClawSlackSecretInput;
734
+ appToken: OpenClawSlackSecretInput;
735
+ socketMode?: OpenClawSlackSocketModeConfig;
736
+ };
737
+ export type OpenClawSlackHttpConfiguration = OpenClawSlackTransportConfigurationBase & {
738
+ botToken: OpenClawSlackSecretInput;
739
+ signingSecret: OpenClawSlackSecretInput;
740
+ webhookPath?: string;
741
+ };
742
+ export type OpenClawSlackRelayConfiguration = OpenClawSlackTransportConfigurationBase & {
743
+ botToken: OpenClawSlackSecretInput;
744
+ relay: Required<OpenClawSlackRelayConfig>;
745
+ };
746
+ export type OpenClawSlackAccountConfigPatch = {
747
+ [K in keyof OpenClawSlackAccountConfig]?: OpenClawSlackAccountConfig[K] | null;
748
+ };
749
+ export type OpenClawSlackConfigPatch = OpenClawSlackAccountConfigPatch & {
750
+ accounts?: Record<string, OpenClawSlackAccountConfigPatch | null> | null;
751
+ defaultAccount?: string | null;
752
+ };
753
+ export interface OpenClawSlackEnsurePluginResult {
754
+ plugin: OpenClawSlackPluginInfo;
755
+ changed: boolean;
756
+ restartRequired: boolean;
757
+ warnings?: string[];
758
+ }
759
+ export declare class OpenClawSlackProvider {
760
+ private readonly client;
761
+ private readonly options;
762
+ constructor(client: OpenClawSlackClient, options?: OpenClawSlackProviderOptions);
763
+ getConfig(): Promise<OpenClawSlackConfig | undefined>;
764
+ getSchema(): Promise<OpenClawConfigSchemaLookupResult>;
765
+ getAccountConfig(accountId: string): Promise<OpenClawSlackAccountConfig | undefined>;
766
+ patchConfig(patch: OpenClawSlackConfigPatch): Promise<void>;
767
+ patchAccount(accountId: string, patch: OpenClawSlackAccountConfigPatch): Promise<void>;
768
+ configureSocket(config: OpenClawSlackSocketConfiguration, accountId?: string): Promise<void>;
769
+ configureHttp(config: OpenClawSlackHttpConfiguration, accountId?: string): Promise<void>;
770
+ configureRelay(config: OpenClawSlackRelayConfiguration, accountId?: string): Promise<void>;
771
+ removeConfig(): Promise<void>;
772
+ removeAccount(accountId: string): Promise<void>;
773
+ setDefaultAccount(accountId: string): Promise<void>;
774
+ status(accountId?: string): Promise<OpenClawSlackAccountStatus | undefined>;
775
+ probe(accountId?: string, timeoutMs?: number): Promise<OpenClawSlackAccountStatus | undefined>;
776
+ start(accountId?: string): Promise<OpenClawSlackStartResult>;
777
+ stop(accountId?: string): Promise<OpenClawSlackStopResult>;
778
+ logout(accountId?: string): Promise<OpenClawSlackLogoutResult>;
779
+ pluginInfo(): Promise<OpenClawSlackPluginInfo | undefined>;
780
+ pluginSupport(): Promise<OpenClawSlackPluginSupport>;
781
+ ensurePluginInstalled(): Promise<OpenClawSlackEnsurePluginResult>;
782
+ ensurePluginInstalledWithCli(): Promise<OpenClawSlackEnsurePluginResult>;
783
+ verifyPluginRuntimeWithCli(): Promise<OpenClawSlackPluginInfo>;
784
+ restartGateway(): Promise<void>;
785
+ setPluginEnabled(enabled: boolean): Promise<OpenClawSlackPluginEnabledResult>;
786
+ uninstallPlugin(): Promise<OpenClawSlackPluginUninstallResult>;
787
+ refreshPlugins(): Promise<OpenClawSlackPluginRefreshResult>;
788
+ listCommands(options?: OpenClawSlackCommandListOptions): Promise<OpenClawSlackCommand[]>;
789
+ listPairings(accountId?: string): Promise<OpenClawSlackPairingListResult>;
790
+ approvePairing(code: string, options?: {
791
+ accountId?: string;
792
+ notify?: boolean;
793
+ }): Promise<OpenClawSlackPairingApprovalResult>;
794
+ sendMessage(input: OpenClawSlackSendMessageInput, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackSendActionResult>;
795
+ uploadFile(input: OpenClawSlackUploadFileInput, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackSendActionResult>;
796
+ downloadFile(input: OpenClawSlackDownloadFileInput, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackDownloadResult>;
797
+ readMessages(input: OpenClawSlackReadMessagesInput, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackReadResult>;
798
+ editMessage(input: OpenClawSlackEditMessageInput, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackMutationResult>;
799
+ deleteMessage(input: OpenClawSlackMessageReference, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackMutationResult>;
800
+ addReaction(input: OpenClawSlackReactionInput, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackAddReactionResult>;
801
+ removeReaction(input: OpenClawSlackReactionInput, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackRemoveReactionResult>;
802
+ clearOwnReactions(input: OpenClawSlackMessageReference, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackClearReactionsResult>;
803
+ listReactions(input: OpenClawSlackMessageReference, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackListReactionsResult>;
804
+ pinMessage(input: OpenClawSlackMessageReference, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackMutationResult>;
805
+ unpinMessage(input: OpenClawSlackMessageReference, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackMutationResult>;
806
+ listPins(channelId: OpenClawSlackChannelId, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackPinsResult>;
807
+ getMemberInfo(userId: OpenClawSlackUserId, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackMemberInfoResult>;
808
+ listEmojis(limit?: number, options?: OpenClawSlackOperationOptions): Promise<OpenClawSlackEmojiListResult>;
809
+ private patchTransport;
810
+ private readStatus;
811
+ private requireCommandRunner;
812
+ private safeCliAccountId;
813
+ private messageReference;
814
+ private messageReferenceAction;
815
+ private action;
816
+ }
817
+ export {};
818
+ //# sourceMappingURL=slack.d.ts.map