@inkbox/sdk 0.7.9 → 0.7.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 (61) hide show
  1. package/README.md +205 -6
  2. package/dist/_http.d.ts +4 -2
  3. package/dist/_http.d.ts.map +1 -1
  4. package/dist/_http.js +19 -9
  5. package/dist/_http.js.map +1 -1
  6. package/dist/agent_identity.d.ts +4 -4
  7. package/dist/agent_identity.d.ts.map +1 -1
  8. package/dist/agent_identity.js.map +1 -1
  9. package/dist/contacts/types.d.ts +11 -0
  10. package/dist/contacts/types.d.ts.map +1 -1
  11. package/dist/contacts/types.js +5 -0
  12. package/dist/contacts/types.js.map +1 -1
  13. package/dist/imessage/resources/imessages.d.ts +7 -0
  14. package/dist/imessage/resources/imessages.d.ts.map +1 -1
  15. package/dist/imessage/resources/imessages.js +9 -1
  16. package/dist/imessage/resources/imessages.js.map +1 -1
  17. package/dist/index.d.ts +9 -4
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/inkbox.d.ts +4 -0
  22. package/dist/inkbox.d.ts.map +1 -1
  23. package/dist/inkbox.js +6 -0
  24. package/dist/inkbox.js.map +1 -1
  25. package/dist/mail/resources/messages.d.ts +5 -9
  26. package/dist/mail/resources/messages.d.ts.map +1 -1
  27. package/dist/mail/resources/messages.js +9 -20
  28. package/dist/mail/resources/messages.js.map +1 -1
  29. package/dist/message_sends.d.ts +25 -0
  30. package/dist/message_sends.d.ts.map +1 -0
  31. package/dist/message_sends.js +58 -0
  32. package/dist/message_sends.js.map +1 -0
  33. package/dist/phone/resources/texts.d.ts +3 -0
  34. package/dist/phone/resources/texts.d.ts.map +1 -1
  35. package/dist/phone/resources/texts.js +4 -1
  36. package/dist/phone/resources/texts.js.map +1 -1
  37. package/dist/slack-operations.d.ts +193 -0
  38. package/dist/slack-operations.d.ts.map +1 -0
  39. package/dist/slack-operations.js +255 -0
  40. package/dist/slack-operations.js.map +1 -0
  41. package/dist/slack.d.ts +119 -0
  42. package/dist/slack.d.ts.map +1 -0
  43. package/dist/slack.js +151 -0
  44. package/dist/slack.js.map +1 -0
  45. package/dist/tunnels/client/_runtime.d.ts.map +1 -1
  46. package/dist/tunnels/client/_runtime.js +2 -0
  47. package/dist/tunnels/client/_runtime.js.map +1 -1
  48. package/dist/version.d.ts +1 -1
  49. package/dist/version.d.ts.map +1 -1
  50. package/dist/version.js +1 -1
  51. package/dist/version.js.map +1 -1
  52. package/dist/webhooks/deliveries.d.ts +5 -4
  53. package/dist/webhooks/deliveries.d.ts.map +1 -1
  54. package/dist/webhooks/deliveries.js +3 -2
  55. package/dist/webhooks/deliveries.js.map +1 -1
  56. package/dist/webhooks/subscriptions.d.ts.map +1 -1
  57. package/dist/webhooks/subscriptions.js +8 -1
  58. package/dist/webhooks/subscriptions.js.map +1 -1
  59. package/dist/webhooks/types.d.ts +47 -0
  60. package/dist/webhooks/types.d.ts.map +1 -1
  61. package/package.json +1 -1
@@ -0,0 +1,255 @@
1
+ const base = (id) => `/slack/connections/${encodeURIComponent(id)}`;
2
+ const conversation = (id, channel) => `${base(id)}/conversations/${encodeURIComponent(channel)}`;
3
+ function timestamp(value) {
4
+ if (value != null && typeof value !== "string")
5
+ throw new TypeError("Slack timestamps must be strings");
6
+ return value;
7
+ }
8
+ const message = (id, channel, ts) => {
9
+ timestamp(ts);
10
+ return `${conversation(id, channel)}/messages/${encodeURIComponent(ts)}`;
11
+ };
12
+ const operation = (r) => ({
13
+ id: r.id,
14
+ connectionId: r.connection_id,
15
+ operation: r.operation,
16
+ status: r.status,
17
+ conversationId: r.conversation_id,
18
+ messageTs: r.message_ts ?? null,
19
+ fileId: r.file_id ?? null,
20
+ errorCode: r.error_code ?? null,
21
+ retryAfter: r.retry_after ?? null,
22
+ processingStatus: r.processing_status ?? null,
23
+ agentStatus: r.agent_status ?? null,
24
+ });
25
+ const settings = (r) => ({
26
+ retentionDays: r.retention_days,
27
+ revision: r.revision,
28
+ });
29
+ const archivedMessage = (r) => ({
30
+ id: r.id,
31
+ connectionId: r.connection_id,
32
+ conversationId: r.conversation_id,
33
+ messageTs: r.message_ts,
34
+ threadTs: r.thread_ts,
35
+ userId: r.user_id,
36
+ text: r.text,
37
+ files: r.files,
38
+ mentioned: r.mentioned,
39
+ source: r.source,
40
+ capturedAt: new Date(r.captured_at),
41
+ });
42
+ const coverage = (r) => ({
43
+ conversationId: r.conversation_id,
44
+ threadTs: r.thread_ts,
45
+ status: r.status,
46
+ importedCount: r.imported_count,
47
+ oldestTs: r.oldest_ts,
48
+ newestTs: r.newest_ts,
49
+ errorCode: r.error_code,
50
+ updatedAt: new Date(r.updated_at),
51
+ includesAllThreads: r.includes_all_threads ?? false,
52
+ accessRevoked: r.access_revoked ?? false,
53
+ });
54
+ export class SlackOperationsResource {
55
+ http;
56
+ constructor(http) {
57
+ this.http = http;
58
+ }
59
+ async mutate(method, path, key, body) {
60
+ if (typeof key !== "string" || !/^[A-Za-z0-9._:-]{1,128}$/.test(key))
61
+ throw new TypeError("idempotencyKey must be 1..128 letters, digits, '.', '_', ':', or '-'");
62
+ const opts = { headers: { "Idempotency-Key": key } };
63
+ const result = method === "DELETE"
64
+ ? await this.http.deleteWithResponse(path, opts)
65
+ : method === "PATCH"
66
+ ? await this.http.patch(path, body, opts)
67
+ : await this.http.post(path, body, opts);
68
+ return operation(result);
69
+ }
70
+ async capabilities(connectionId) {
71
+ const r = await this.http.get(`${base(connectionId)}/capabilities`);
72
+ return {
73
+ connectionId: r.connection_id,
74
+ scopes: r.scopes,
75
+ missingScopes: r.missing_scopes,
76
+ nativeProcessingStatus: r.native_processing_status,
77
+ maxUploadBytes: r.max_upload_bytes,
78
+ capabilities: Object.fromEntries(Object.entries(r.capabilities).map(([name, value]) => [
79
+ name,
80
+ {
81
+ requiredScopes: value.required_scopes,
82
+ missingScopes: value.missing_scopes,
83
+ scopesSatisfied: value.scopes_satisfied,
84
+ },
85
+ ])),
86
+ };
87
+ }
88
+ async listUsers(connectionId, options = {}) {
89
+ const r = await this.http.get(`${base(connectionId)}/users`, { limit: options.limit ?? 100, cursor: options.cursor });
90
+ return { users: r.users, nextCursor: r.next_cursor ?? null };
91
+ }
92
+ async getUser(connectionId, userId) {
93
+ return this.http.get(`${base(connectionId)}/users/${encodeURIComponent(userId)}`);
94
+ }
95
+ async listMembers(connectionId, conversationId, options = {}) {
96
+ const r = await this.http.get(`${conversation(connectionId, conversationId)}/members`, { limit: options.limit ?? 100, cursor: options.cursor });
97
+ return { members: r.members, nextCursor: r.next_cursor ?? null };
98
+ }
99
+ async getMessage(connectionId, conversationId, messageTs, options = {}) {
100
+ return this.http.get(message(connectionId, conversationId, messageTs), {
101
+ thread_ts: timestamp(options.threadTs),
102
+ });
103
+ }
104
+ async messageContext(connectionId, conversationId, messageTs, options = {}) {
105
+ const r = await this.http.get(`${message(connectionId, conversationId, messageTs)}/context`, { thread_ts: timestamp(options.threadTs), limit: options.limit ?? 5 });
106
+ return {
107
+ messages: r.messages,
108
+ nextCursor: r.next_cursor ?? null,
109
+ hasMore: r.has_more ?? false,
110
+ window: r.window,
111
+ complete: r.complete,
112
+ };
113
+ }
114
+ async getPermalink(connectionId, conversationId, messageTs) {
115
+ const r = await this.http.get(`${message(connectionId, conversationId, messageTs)}/permalink`);
116
+ return {
117
+ conversationId: r.conversation_id,
118
+ messageTs: r.message_ts,
119
+ permalink: r.permalink,
120
+ };
121
+ }
122
+ async getReactions(connectionId, conversationId, messageTs) {
123
+ const r = await this.http.get(`${message(connectionId, conversationId, messageTs)}/reactions`);
124
+ return {
125
+ conversationId: r.conversation_id,
126
+ messageTs: r.message_ts,
127
+ reactions: r.reactions,
128
+ };
129
+ }
130
+ async listPins(connectionId, conversationId) {
131
+ return this.http.get(`${conversation(connectionId, conversationId)}/pins`);
132
+ }
133
+ /** Poll only in_progress. Unknown is terminal uncertainty; never blindly repeat. */
134
+ async getOperation(connectionId, operationId) {
135
+ return operation(await this.http.get(`${base(connectionId)}/operations/${encodeURIComponent(operationId)}`));
136
+ }
137
+ async addReaction(connectionId, conversationId, messageTs, name, options) {
138
+ return this.mutate("POST", `${message(connectionId, conversationId, messageTs)}/reactions`, options.idempotencyKey, { name });
139
+ }
140
+ async removeReaction(connectionId, conversationId, messageTs, name, options) {
141
+ return this.mutate("DELETE", `${message(connectionId, conversationId, messageTs)}/reactions/${encodeURIComponent(name)}`, options.idempotencyKey);
142
+ }
143
+ async addPin(connectionId, conversationId, messageTs, options) {
144
+ return this.mutate("POST", `${conversation(connectionId, conversationId)}/pins`, options.idempotencyKey, { message_ts: timestamp(messageTs) });
145
+ }
146
+ async removePin(connectionId, conversationId, messageTs, options) {
147
+ timestamp(messageTs);
148
+ return this.mutate("DELETE", `${conversation(connectionId, conversationId)}/pins/${encodeURIComponent(messageTs)}`, options.idempotencyKey);
149
+ }
150
+ /** Slack enforces that the connected agent can only edit its own message. */
151
+ async updateMessage(connectionId, conversationId, messageTs, text, options) {
152
+ return this.mutate("PATCH", message(connectionId, conversationId, messageTs), options.idempotencyKey, { text });
153
+ }
154
+ async deleteMessage(connectionId, conversationId, messageTs, options) {
155
+ return this.mutate("DELETE", message(connectionId, conversationId, messageTs), options.idempotencyKey);
156
+ }
157
+ async joinConversation(connectionId, conversationId, options) {
158
+ return this.mutate("POST", `${conversation(connectionId, conversationId)}/join`, options.idempotencyKey);
159
+ }
160
+ async leaveConversation(connectionId, conversationId, options) {
161
+ return this.mutate("POST", `${conversation(connectionId, conversationId)}/leave`, options.idempotencyKey);
162
+ }
163
+ /** Native workspace support is not implied by scopes; unsupported calls remain explicit failures. */
164
+ async setProcessingStatus(connectionId, conversationId, threadTs, status, options) {
165
+ return this.mutate("POST", `${conversation(connectionId, conversationId)}/processing-status`, options.idempotencyKey, { thread_ts: timestamp(threadTs), status });
166
+ }
167
+ /** Standard base64 of any file type, bounded to 1 byte..10 MiB decoded. */
168
+ async uploadFile(connectionId, options) {
169
+ return this.mutate("POST", `${base(connectionId)}/files`, options.idempotencyKey, {
170
+ conversation_id: options.conversationId,
171
+ filename: options.filename,
172
+ content_base64: options.contentBase64,
173
+ title: options.title,
174
+ initial_comment: options.initialComment,
175
+ thread_ts: timestamp(options.threadTs),
176
+ });
177
+ }
178
+ async getArchiveSettings(connectionId) {
179
+ return settings(await this.http.get(`${base(connectionId)}/archive/settings`));
180
+ }
181
+ /** Organization management only; set message retention.
182
+ * Omitted retention resets to no time limit. Capture remains automatic for all
183
+ * accessible observed messages, independently of webhook filters.
184
+ */
185
+ async updateArchiveSettings(connectionId, options = {}) {
186
+ return settings(await this.http.patch(`${base(connectionId)}/archive/settings`, {
187
+ retention_days: options.retentionDays ?? null,
188
+ }));
189
+ }
190
+ async archiveMessages(path, options, extra = {}) {
191
+ const r = await this.http.get(path, {
192
+ conversation_id: options.conversationId,
193
+ thread_ts: timestamp(options.threadTs),
194
+ before_ts: timestamp(options.beforeTs),
195
+ after_ts: timestamp(options.afterTs),
196
+ cursor: options.cursor,
197
+ limit: options.limit ?? 50,
198
+ ...extra,
199
+ });
200
+ return {
201
+ messages: r.messages.map(archivedMessage),
202
+ nextCursor: r.next_cursor ?? null,
203
+ source: r.source,
204
+ pageBoundary: r.page_boundary
205
+ ? { messageTs: r.page_boundary.message_ts, id: r.page_boundary.id }
206
+ : null,
207
+ };
208
+ }
209
+ async listArchivedMessages(connectionId, options = {}) {
210
+ return this.archiveMessages(`${base(connectionId)}/archive/messages`, options, {
211
+ latest_per_conversation: options.latestPerConversation,
212
+ });
213
+ }
214
+ async searchArchivedMessages(connectionId, q, options = {}) {
215
+ return this.archiveMessages(`${base(connectionId)}/archive/search`, options, {
216
+ q,
217
+ user_id: options.userId,
218
+ });
219
+ }
220
+ /** Search retained messages across an identity's workspace connections.
221
+ * Agent credentials infer the identity; other credentials require identityId.
222
+ * Follow nextCursor even when a page is short or empty.
223
+ */
224
+ async searchMessages(options) {
225
+ return this.archiveMessages("/slack/search", options, {
226
+ q: options.q,
227
+ identity_id: options.identityId,
228
+ connection_id: options.connectionId,
229
+ user_id: options.userId,
230
+ });
231
+ }
232
+ async archiveBackfill(connectionId, conversationId, options = {}) {
233
+ return coverage(await this.http.post(`${base(connectionId)}/archive/backfill`, {
234
+ conversation_id: conversationId,
235
+ thread_ts: timestamp(options.threadTs),
236
+ restart: options.restart ?? false,
237
+ }));
238
+ }
239
+ async listArchiveCoverage(connectionId, options = {}) {
240
+ const r = await this.http.get(`${base(connectionId)}/archive/coverage`, {
241
+ limit: options.limit ?? 100,
242
+ cursor: options.cursor,
243
+ });
244
+ return {
245
+ coverage: r.coverage.map(coverage),
246
+ nextCursor: r.next_cursor ?? null,
247
+ };
248
+ }
249
+ /** Organization management only; delete retained history without stopping new capture. */
250
+ async purgeArchive(connectionId) {
251
+ const r = await this.http.deleteWithResponse(`${base(connectionId)}/archive`);
252
+ return { status: r.status };
253
+ }
254
+ }
255
+ //# sourceMappingURL=slack-operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-operations.js","sourceRoot":"","sources":["../src/slack-operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ /** Slack workspace setup, live reads, and durable sends. */
2
+ import type { HttpTransport } from "./_http.js";
3
+ import { SlackOperationsResource } from "./slack-operations.js";
4
+ export type SlackMessageKind = "dm" | "group_dm" | "mention" | "channel" | "thread";
5
+ export interface SlackConnection {
6
+ id: string;
7
+ identityId: string;
8
+ workspaceId: string;
9
+ workspaceName: string;
10
+ botUserId: string;
11
+ status: "connected" | "disconnected" | "reauthorization_required";
12
+ scopes: string[];
13
+ createdAt: Date;
14
+ }
15
+ export interface SlackConnectionsResponse {
16
+ connections: SlackConnection[];
17
+ installationAvailable: boolean;
18
+ setup?: SlackSetupStatus | null;
19
+ /** App existence, independent of identity enablement or workspace connections. */
20
+ applicationCreated?: boolean;
21
+ provisioningWorkspace?: SlackProvisioningWorkspace | null;
22
+ }
23
+ export interface SlackSetupStatus {
24
+ status: "not_started" | "pending" | "ready" | "failed" | "unavailable" | "needs_credentials";
25
+ retryAt: Date | null;
26
+ errorCode: "setup_failed" | "outcome_unknown" | "quota_exceeded" | "credentials_required" | null;
27
+ provisioningWorkspaceId: string | null;
28
+ }
29
+ export interface SlackProvisioningWorkspace {
30
+ id: string;
31
+ workspaceId: string;
32
+ workspaceName: string;
33
+ userId: string;
34
+ status: "ready" | "reauthorization_required";
35
+ tokenExpiresAt: Date | null;
36
+ createdAt: Date;
37
+ updatedAt: Date;
38
+ }
39
+ export interface SlackInstallation {
40
+ authorizationUrl: string;
41
+ expiresAt: Date;
42
+ }
43
+ export interface SlackAction {
44
+ id: string;
45
+ connectionId: string;
46
+ status: "sending" | "sent" | "failed" | "unknown";
47
+ conversationId: string;
48
+ messageTs: string | null;
49
+ threadTs: string | null;
50
+ errorCode: string | null;
51
+ /** Immediate rate-limit delay in seconds; absent from stored action reads. */
52
+ retryAfter: number | null;
53
+ }
54
+ export interface SlackConversationsResponse {
55
+ conversations: Record<string, unknown>[];
56
+ nextCursor: string | null;
57
+ }
58
+ export interface SlackMessagesResponse {
59
+ messages: Record<string, unknown>[];
60
+ nextCursor: string | null;
61
+ hasMore: boolean;
62
+ }
63
+ export interface SlackFile {
64
+ id: string;
65
+ name: string | null;
66
+ title: string | null;
67
+ mimetype: string | null;
68
+ size: number | null;
69
+ downloadable: boolean;
70
+ }
71
+ export interface SlackSendMessageOptions {
72
+ conversationId: string;
73
+ text: string;
74
+ idempotencyKey: string;
75
+ threadTs?: string | null;
76
+ }
77
+ export interface SlackPageOptions {
78
+ limit?: number;
79
+ cursor?: string | null;
80
+ }
81
+ export interface SlackMessagesOptions extends SlackPageOptions {
82
+ threadTs?: string | null;
83
+ }
84
+ export declare class SlackResource extends SlackOperationsResource {
85
+ constructor(http: HttpTransport);
86
+ /**
87
+ * Claimed agent keys can install only their own identity.
88
+ * Open the short-lived opaque URL in a browser; do not log it.
89
+ * returnUrl optionally selects an approved Console completion URL; omit it for the default page.
90
+ */
91
+ startInstallation(identityId: string, options?: {
92
+ workspaceId?: string;
93
+ returnUrl?: string | null;
94
+ }): Promise<SlackInstallation>;
95
+ listConnections(identityId: string): Promise<SlackConnectionsResponse>;
96
+ /** List saved workspace metadata; credentials are never returned. */
97
+ listProvisioningWorkspaces(): Promise<SlackProvisioningWorkspace[]>;
98
+ /** Verify and save configuration credentials for your organization. Claimed agent keys are supported. */
99
+ saveProvisioningWorkspace(options: {
100
+ accessToken: string;
101
+ refreshToken: string;
102
+ }): Promise<SlackProvisioningWorkspace>;
103
+ /** Prepare the identity app in a saved workspace; read listConnections for status. */
104
+ startSetup(identityId: string, provisioningWorkspaceId: string): Promise<SlackSetupStatus>;
105
+ /** Removes Inkbox authority; does not uninstall the Slack app. */
106
+ disconnect(connectionId: string): Promise<SlackConnection>;
107
+ listConversations(connectionId: string, options?: SlackPageOptions): Promise<SlackConversationsResponse>;
108
+ openConversation(connectionId: string, userIds: string[]): Promise<Record<string, unknown>>;
109
+ getConversation(connectionId: string, conversationId: string): Promise<Record<string, unknown>>;
110
+ listMessages(connectionId: string, conversationId: string, options?: SlackMessagesOptions): Promise<SlackMessagesResponse>;
111
+ /** Keep a stable key for this exact message. Poll getAction while sending. Unknown is terminal uncertainty; never blindly resend. */
112
+ sendMessage(connectionId: string, options: SlackSendMessageOptions): Promise<SlackAction>;
113
+ getAction(connectionId: string, actionId: string): Promise<SlackAction>;
114
+ /** Read a send without resending; a 404 does not prove no send occurred. */
115
+ getActionByKey(connectionId: string, idempotencyKey: string): Promise<SlackAction>;
116
+ getFile(connectionId: string, fileId: string): Promise<SlackFile>;
117
+ downloadFile(connectionId: string, fileId: string): Promise<Uint8Array>;
118
+ }
119
+ //# sourceMappingURL=slack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"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"}
package/dist/slack.js ADDED
@@ -0,0 +1,151 @@
1
+ import { SlackOperationsResource } from "./slack-operations.js";
2
+ const setupStatus = (r) => ({
3
+ status: r.status,
4
+ retryAt: r.retry_at ? new Date(r.retry_at) : null,
5
+ errorCode: r.error_code ?? null,
6
+ provisioningWorkspaceId: r.provisioning_workspace_id ?? null,
7
+ });
8
+ const connection = (r) => ({
9
+ id: r.id,
10
+ identityId: r.identity_id,
11
+ workspaceId: r.workspace_id,
12
+ workspaceName: r.workspace_name,
13
+ botUserId: r.bot_user_id,
14
+ status: r.status,
15
+ scopes: r.scopes,
16
+ createdAt: new Date(r.created_at),
17
+ });
18
+ const provisioningWorkspace = (r) => ({
19
+ id: r.id,
20
+ workspaceId: r.workspace_id,
21
+ workspaceName: r.workspace_name,
22
+ userId: r.user_id,
23
+ status: r.status,
24
+ tokenExpiresAt: r.token_expires_at ? new Date(r.token_expires_at) : null,
25
+ createdAt: new Date(r.created_at),
26
+ updatedAt: new Date(r.updated_at),
27
+ });
28
+ const action = (r) => ({
29
+ id: r.id,
30
+ connectionId: r.connection_id,
31
+ status: r.status,
32
+ conversationId: r.conversation_id,
33
+ messageTs: r.message_ts ?? null,
34
+ threadTs: r.thread_ts ?? null,
35
+ errorCode: r.error_code ?? null,
36
+ retryAfter: r.retry_after ?? null,
37
+ });
38
+ const base = (id) => `/slack/connections/${encodeURIComponent(id)}`;
39
+ export class SlackResource extends SlackOperationsResource {
40
+ constructor(http) {
41
+ super(http);
42
+ }
43
+ /**
44
+ * Claimed agent keys can install only their own identity.
45
+ * Open the short-lived opaque URL in a browser; do not log it.
46
+ * returnUrl optionally selects an approved Console completion URL; omit it for the default page.
47
+ */
48
+ async startInstallation(identityId, options = {}) {
49
+ const r = await this.http.post("/slack/installations", {
50
+ identity_id: identityId,
51
+ workspace_id: options.workspaceId,
52
+ return_url: options.returnUrl ?? undefined,
53
+ });
54
+ return {
55
+ authorizationUrl: r.authorization_url,
56
+ expiresAt: new Date(r.expires_at),
57
+ };
58
+ }
59
+ async listConnections(identityId) {
60
+ const r = await this.http.get("/slack/connections", { identity_id: identityId });
61
+ return {
62
+ connections: r.connections.map(connection),
63
+ installationAvailable: r.installation_available,
64
+ setup: r.setup ? setupStatus(r.setup) : null,
65
+ applicationCreated: r.application_created ?? false,
66
+ provisioningWorkspace: r.provisioning_workspace ? provisioningWorkspace(r.provisioning_workspace) : null,
67
+ };
68
+ }
69
+ /** List saved workspace metadata; credentials are never returned. */
70
+ async listProvisioningWorkspaces() {
71
+ const r = await this.http.get("/slack/provisioning-workspaces");
72
+ return r.workspaces.map(provisioningWorkspace);
73
+ }
74
+ /** Verify and save configuration credentials for your organization. Claimed agent keys are supported. */
75
+ async saveProvisioningWorkspace(options) {
76
+ return provisioningWorkspace(await this.http.post("/slack/provisioning-workspaces", {
77
+ access_token: options.accessToken,
78
+ refresh_token: options.refreshToken,
79
+ }));
80
+ }
81
+ /** Prepare the identity app in a saved workspace; read listConnections for status. */
82
+ async startSetup(identityId, provisioningWorkspaceId) {
83
+ return setupStatus(await this.http.post("/slack/applications/setup", {
84
+ identity_id: identityId,
85
+ provisioning_workspace_id: provisioningWorkspaceId,
86
+ }));
87
+ }
88
+ /** Removes Inkbox authority; does not uninstall the Slack app. */
89
+ async disconnect(connectionId) {
90
+ return connection(await this.http.post(`${base(connectionId)}/disconnect`));
91
+ }
92
+ async listConversations(connectionId, options = {}) {
93
+ const r = await this.http.get(`${base(connectionId)}/conversations`, {
94
+ limit: options.limit ?? 100,
95
+ cursor: options.cursor,
96
+ });
97
+ return {
98
+ conversations: r.conversations,
99
+ nextCursor: r.next_cursor ?? null,
100
+ };
101
+ }
102
+ async openConversation(connectionId, userIds) {
103
+ return this.http.post(`${base(connectionId)}/conversations`, {
104
+ user_ids: userIds,
105
+ });
106
+ }
107
+ async getConversation(connectionId, conversationId) {
108
+ return this.http.get(`${base(connectionId)}/conversations/${encodeURIComponent(conversationId)}`);
109
+ }
110
+ async listMessages(connectionId, conversationId, options = {}) {
111
+ if (options.threadTs != null && typeof options.threadTs !== "string")
112
+ throw new TypeError("threadTs must be a string");
113
+ const r = await this.http.get(`${base(connectionId)}/conversations/${encodeURIComponent(conversationId)}/messages`, {
114
+ limit: options.limit ?? 15,
115
+ cursor: options.cursor,
116
+ thread_ts: options.threadTs,
117
+ });
118
+ return {
119
+ messages: r.messages,
120
+ nextCursor: r.next_cursor ?? null,
121
+ hasMore: r.has_more ?? false,
122
+ };
123
+ }
124
+ /** Keep a stable key for this exact message. Poll getAction while sending. Unknown is terminal uncertainty; never blindly resend. */
125
+ async sendMessage(connectionId, options) {
126
+ if (typeof options.idempotencyKey !== "string" ||
127
+ !/^[A-Za-z0-9._:-]{1,128}$/.test(options.idempotencyKey))
128
+ throw new TypeError("idempotencyKey must be 1..128 letters, digits, '.', '_', ':', or '-'");
129
+ if (options.threadTs != null && typeof options.threadTs !== "string")
130
+ throw new TypeError("threadTs must be a string");
131
+ return action(await this.http.post(`${base(connectionId)}/messages`, {
132
+ conversation_id: options.conversationId,
133
+ text: options.text,
134
+ thread_ts: options.threadTs,
135
+ }, { headers: { "Idempotency-Key": options.idempotencyKey } }));
136
+ }
137
+ async getAction(connectionId, actionId) {
138
+ return action(await this.http.get(`${base(connectionId)}/actions/${encodeURIComponent(actionId)}`));
139
+ }
140
+ /** Read a send without resending; a 404 does not prove no send occurred. */
141
+ async getActionByKey(connectionId, idempotencyKey) {
142
+ return action(await this.http.get(`${base(connectionId)}/actions/by-key`, undefined, { headers: { "Idempotency-Key": idempotencyKey } }));
143
+ }
144
+ async getFile(connectionId, fileId) {
145
+ return this.http.get(`${base(connectionId)}/files/${encodeURIComponent(fileId)}`);
146
+ }
147
+ async downloadFile(connectionId, fileId) {
148
+ return (await this.http.getBytes(`${base(connectionId)}/files/${encodeURIComponent(fileId)}/content`)).data;
149
+ }
150
+ }
151
+ //# sourceMappingURL=slack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"_runtime.d.ts","sourceRoot":"","sources":["../../../src/tunnels/client/_runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_runtime.d.ts","sourceRoot":"","sources":["../../../src/tunnels/client/_runtime.ts"],"names":[],"mappings":"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"}
@@ -628,7 +628,9 @@ export class TunnelRuntime {
628
628
  * connection before closing it. In-band: never trips the backoff loop.
629
629
  */
630
630
  beginHandoff(oldConn) {
631
+ // A failed initial HELLO belongs to the cold reconnect loop, not a handoff.
631
632
  if (this.stop ||
633
+ oldConn.ownerToken === null ||
632
634
  oldConn.draining ||
633
635
  this.active !== oldConn ||
634
636
  this.handoffInFlight ||