@tangle-network/hub-sdk 0.18.0-develop.20260804063715.1e576c2 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,3 +1,336 @@
1
+ //#region src/allowances.d.ts
2
+ /**
3
+ * Allowances: a developer's per-member daily allowance on a meter, and the
4
+ * paywall decision past it. The platform counts every admitted turn and reads
5
+ * each payer's dollars from the ledger; the app keeps only its checkout and
6
+ * records a paying member with {@link HubAllowancesClient.grant}.
7
+ *
8
+ * Only the meter's owner may call these, signed in or with a root API key of
9
+ * their own. A delegated or resource-bound key, such as the key a hosted end
10
+ * user's sandbox runs on, is refused.
11
+ */
12
+ type HubAllowanceTier = "free" | "paid" | "owner";
13
+ type HubAllowanceRole = "owner" | "member";
14
+ interface HubAllowancePlanInput {
15
+ free: {
16
+ turnsPerDay: number;
17
+ usdPerDay: number | null;
18
+ };
19
+ /** Null turns billing off: past the free allowance nothing lifts the limit. */
20
+ paid: {
21
+ turnsPerDay: number;
22
+ usdPerDay: number | null;
23
+ priceUsdMonthly: number;
24
+ } | null;
25
+ owner?: {
26
+ turnsPerDay: number;
27
+ };
28
+ /** Key resource type whose ledger spend counts against a payer's dollars. */
29
+ spendResourceType: string | null;
30
+ }
31
+ interface HubAllowancePlan extends HubAllowancePlanInput {
32
+ meter: string;
33
+ owner: {
34
+ turnsPerDay: number;
35
+ };
36
+ /** False while the meter runs on the default plan. */
37
+ configured: boolean;
38
+ updatedAt: string | null;
39
+ }
40
+ interface HubAllowanceSubject {
41
+ member: string;
42
+ role?: HubAllowanceRole;
43
+ /** The member whose keys pay for the turn, when that is someone else. */
44
+ payer?: string;
45
+ payerRole?: HubAllowanceRole;
46
+ }
47
+ interface HubAllowanceDecision {
48
+ /** `paywall`: paying lifts the limit. `allowance_reached`: nothing does today. */
49
+ decision: "admit" | "paywall" | "allowance_reached";
50
+ tier: HubAllowanceTier;
51
+ paywall: boolean;
52
+ turns: {
53
+ used: number;
54
+ limit: number;
55
+ };
56
+ usd: {
57
+ spent: number;
58
+ limit: number;
59
+ remaining: number;
60
+ } | null;
61
+ day: string;
62
+ resetsAt: string;
63
+ /**
64
+ * A paying payer's spend in the current paid period against what funds it:
65
+ * the plan price less Tangle's 10% fee, plus the free daily allowance for
66
+ * the period. A paid turn is refused once `remaining` is gone.
67
+ */
68
+ period?: {
69
+ spent: number;
70
+ funded: number;
71
+ remaining: number;
72
+ startsAt: string;
73
+ endsAt: string;
74
+ };
75
+ replay?: boolean;
76
+ }
77
+ interface HubAllowanceUsage {
78
+ day: string;
79
+ turns: number;
80
+ members: Array<{
81
+ member: string;
82
+ turns: number;
83
+ tier: HubAllowanceTier;
84
+ usdSpent: number | null;
85
+ }>;
86
+ lines: Array<{
87
+ line: string;
88
+ turns: number;
89
+ }>;
90
+ }
91
+ interface HubAllowanceGrant {
92
+ member: string;
93
+ tier: "paid";
94
+ expiresAt: string;
95
+ reference: string | null;
96
+ }
97
+ declare class HubAllowancesClient {
98
+ private readonly request;
99
+ constructor(request: <T>(path: string, init: RequestInit) => Promise<T>);
100
+ plan(meter: string): Promise<HubAllowancePlan>;
101
+ setPlan(meter: string, plan: HubAllowancePlanInput): Promise<HubAllowancePlan>;
102
+ /** Admit one turn or refuse it. Retrying the same `turnId` never counts twice. */
103
+ admit(meter: string, input: HubAllowanceSubject & {
104
+ turnId: string;
105
+ line?: string;
106
+ channel?: string;
107
+ }): Promise<HubAllowanceDecision>;
108
+ /** What the member's next turn would get, without counting anything. */
109
+ status(meter: string, subject: HubAllowanceSubject): Promise<HubAllowanceDecision>;
110
+ /** Move a member to the paid allowance until `expiresAt` (the paid period's end). */
111
+ grant(meter: string, member: string, input: {
112
+ expiresAt: string;
113
+ reference?: string | null;
114
+ }): Promise<HubAllowanceGrant>;
115
+ revoke(meter: string, member: string): Promise<void>;
116
+ /** Turns per member and per line on one UTC day (default today). */
117
+ usage(meter: string, day?: string): Promise<HubAllowanceUsage>;
118
+ private path;
119
+ private memberPath;
120
+ private body;
121
+ }
122
+ //#endregion
123
+ //#region src/apps.d.ts
124
+ /** App identity and customer permissions over the existing Platform transport.
125
+ * These operations do not authorize spending or expose upstream credentials. */
126
+ interface HubApp {
127
+ id: string;
128
+ clientId: string;
129
+ oauthClientId: string | null;
130
+ name: string;
131
+ redirectUris: string[];
132
+ allowedScopes: string[];
133
+ homepageUrl: string | null;
134
+ status: "active" | "revoked";
135
+ createdAt: string;
136
+ updatedAt: string;
137
+ }
138
+ interface HubAppCreateInput {
139
+ name: string;
140
+ redirectUris: string[];
141
+ allowedScopes: string[];
142
+ homepageUrl?: string;
143
+ /** Associate an existing owned login client in the same transaction as creation. */
144
+ oauthClientId?: string;
145
+ }
146
+ interface HubAppGrant {
147
+ id: string;
148
+ appId: string;
149
+ userId: string;
150
+ connectionId: string;
151
+ scopes: string[];
152
+ status: "active" | "revoked";
153
+ createdAt: string;
154
+ updatedAt: string;
155
+ revokedAt: string | null;
156
+ /** Display metadata is additive; older deployments may omit it. */
157
+ appName?: string | null;
158
+ oauthClientId?: string | null;
159
+ providerId?: string | null;
160
+ accountDisplay?: string | null;
161
+ connectionDisplayName?: string | null;
162
+ }
163
+ interface HubAppGrantRevoked {
164
+ grantId: string;
165
+ status: "revoked";
166
+ revokedAt: string | null;
167
+ tokensRevoked: number;
168
+ }
169
+ declare class HubAppsClient {
170
+ private readonly request;
171
+ readonly grants: {
172
+ list: () => Promise<HubAppGrant[]>;
173
+ revoke: (grantId: string) => Promise<HubAppGrantRevoked>;
174
+ };
175
+ constructor(request: <T>(path: string, init: RequestInit) => Promise<T>);
176
+ list(): Promise<HubApp[]>;
177
+ /** The secret is returned only by creation; keep it in your server vault. */
178
+ create(input: HubAppCreateInput): Promise<{
179
+ app: HubApp;
180
+ clientSecret: string;
181
+ }>;
182
+ /** Immutable association of two existing records with the same owner. */
183
+ linkOAuthClient(appId: string, clientId: string): Promise<{
184
+ appId: string;
185
+ oauthClientId: string;
186
+ }>;
187
+ revoke(appId: string): Promise<{
188
+ appId: string;
189
+ grantsRevoked: number;
190
+ tokensRevoked: number;
191
+ }>;
192
+ }
193
+ //#endregion
194
+ //#region src/inbound-webhooks.d.ts
195
+ /** Provider setup uses the existing authenticated Hub transport and vault. */
196
+ interface HubInboundWebhookCreateOptions {
197
+ /** Inkbox identity that owns all selected channels. */
198
+ identityId?: string;
199
+ mailboxId?: string;
200
+ phoneNumberId?: string;
201
+ imessage?: boolean;
202
+ /** Linq: explicit owned lines; omitted does not mean every account line. */
203
+ phoneNumbers?: string[];
204
+ /** Linq WhatsApp: explicit opaque IDs from numbers.list, not E.164 phone strings. */
205
+ phoneNumberIds?: string[];
206
+ /** Contiguity Console secret, or an existing Inkbox identity signing key. */
207
+ signingSecret?: string;
208
+ }
209
+ interface HubInboundWebhookCreateResponse {
210
+ url: string;
211
+ /** True only when the provider subscription was created by the server. */
212
+ provisioned?: boolean;
213
+ /** Self-configured legacy providers can return a newly minted secret once. */
214
+ secret?: string;
215
+ inboundAddress?: string;
216
+ requiresProviderSetup?: boolean;
217
+ }
218
+ interface HubInboundWebhookStatus {
219
+ configured: boolean;
220
+ url?: string;
221
+ /** Configuration is not evidence of a real delivered message. */
222
+ deliveryVerified: false;
223
+ requiresProviderSetup?: boolean;
224
+ }
225
+ /** Live provider readback for one explicitly selected Linq WhatsApp number. */
226
+ interface HubInboundPhoneNumberScope {
227
+ configured: true;
228
+ provisioned: true;
229
+ subscribed: true;
230
+ phoneNumberIds: string[];
231
+ }
232
+ declare class HubInboundWebhooksClient {
233
+ private readonly request;
234
+ constructor(request: <T>(path: string, init: RequestInit) => Promise<T>);
235
+ create(connectionId: string, options?: HubInboundWebhookCreateOptions): Promise<HubInboundWebhookCreateResponse>;
236
+ get(connectionId: string): Promise<HubInboundWebhookStatus>;
237
+ /** Add one owned Linq WhatsApp number without rotating the webhook secret. */
238
+ ensurePhoneNumber(connectionId: string, phoneNumberId: string): Promise<HubInboundPhoneNumberScope>;
239
+ /** Remove event subscriptions first. This does not silently rotate a live URL. */
240
+ delete(connectionId: string): Promise<{
241
+ removed: boolean;
242
+ }>;
243
+ private path;
244
+ }
245
+ //#endregion
246
+ //#region src/managed-numbers.d.ts
247
+ interface HubNumberReadiness {
248
+ configured: boolean;
249
+ provider: "inkbox";
250
+ transports: Array<"sms" | "imessage">;
251
+ billing: "prepaid_activation";
252
+ automaticRentalBilling: false;
253
+ deliveryVerified: false;
254
+ }
255
+ interface HubNumberQuote {
256
+ transport: "sms" | "imessage";
257
+ activationCents: number;
258
+ currency: "usd";
259
+ termsVersion: string;
260
+ terms: string;
261
+ expiresAt: number;
262
+ token: string;
263
+ }
264
+ /** An operator's terminal decision on an order stuck in `needs_review`.
265
+ * Read-only for a creator: the resolution is made through the platform's
266
+ * admin surface, never through this client. */
267
+ interface HubNumberResolution {
268
+ action: "release" | "settle" | "abandon";
269
+ operator: string;
270
+ reason: string;
271
+ at: number;
272
+ /** Present while the operator's action is still running. The decision is
273
+ * not final and the order can still return to review. */
274
+ pending?: true;
275
+ /** Present when a `settle` handed a live, unfinished order back to
276
+ * provisioning, so the order is working again rather than closed. */
277
+ requeued?: true;
278
+ }
279
+ interface HubNumberOrder {
280
+ id: string;
281
+ clientReference: string;
282
+ transport: "sms" | "imessage";
283
+ status: "pending" | "provider_pending" | "needs_review" | "ready_for_setup" | "cancelled";
284
+ phase: "identity" | "number" | "credential" | "connection" | "complete";
285
+ address: string | null;
286
+ connectionId: string | null;
287
+ identityId: string | null;
288
+ providerNumberId: string | null;
289
+ billingStatus: "unreserved" | "reserved" | "settled" | "released";
290
+ cancellation: "none" | "requested" | "needs_review" | "released" | "abandoned";
291
+ errorCode: string | null;
292
+ nextAttemptAt: number | null;
293
+ resolution: HubNumberResolution | null;
294
+ deliveryVerified: false;
295
+ activationCents: number;
296
+ currency: "usd";
297
+ terms: string;
298
+ }
299
+ /** Administrative number operations through Hub's authenticated transport.
300
+ * A mutation is one attempt; an uncertain create reuses its quote and reference. */
301
+ declare class HubManagedNumbersClient {
302
+ private readonly request;
303
+ constructor(request: <T>(path: string, init: RequestInit) => Promise<T>);
304
+ readiness(): Promise<HubNumberReadiness>;
305
+ list(): Promise<{
306
+ orders: HubNumberOrder[];
307
+ }>;
308
+ get(id: string): Promise<{
309
+ order: HubNumberOrder;
310
+ }>;
311
+ quote(input: {
312
+ transport: "sms" | "imessage";
313
+ clientReference: string;
314
+ }): Promise<{
315
+ quote: HubNumberQuote;
316
+ }>;
317
+ create(input: {
318
+ quoteToken: string;
319
+ consent: true;
320
+ state?: string;
321
+ }): Promise<{
322
+ order: HubNumberOrder;
323
+ }>;
324
+ advance(id: string): Promise<{
325
+ order: HubNumberOrder;
326
+ }>;
327
+ cancel(id: string): Promise<{
328
+ order: HubNumberOrder;
329
+ }>;
330
+ private path;
331
+ private post;
332
+ }
333
+ //#endregion
1
334
  //#region src/types.d.ts
2
335
  type HubPrincipalKind = "user_session" | "api_key" | "sandbox_runtime";
3
336
  interface HubSuccessEnvelope<TData> {
@@ -14,7 +347,7 @@ interface HubErrorBody {
14
347
  message: string;
15
348
  details?: unknown;
16
349
  }
17
- type HubErrorCode = "HUB_UNAUTHENTICATED" | "HUB_FORBIDDEN" | "HUB_INVALID_INPUT" | "HUB_INVALID_STATE" | "HUB_PROVIDER_MISSING" | "HUB_CONNECTION_MISSING" | "HUB_CONNECTION_REVOKED" | "HUB_TOKEN_EXPIRED" | "HUB_TOKEN_REPLAYED" | "HUB_TOKEN_REVOKED" | "HUB_TOKEN_ACTION_MISMATCH" | "HUB_POLICY_DENIED" | "HUB_APPROVAL_REQUIRED" | "HUB_EXECUTOR_FAILURE" | "HUB_PROVIDER_FAILURE" | "HUB_CONFIG_MISSING" | "HUB_CONFIG_INVALID" | "HUB_NOT_FOUND" | "HUB_NOT_IMPLEMENTED" | "HUB_CONFLICT" | "VALIDATION_ERROR" | "WORKFLOW_INVALID" | "NOT_FOUND" | "UNAUTHORIZED" | "CONFLICT" | "MISSING_RUN_INPUTS" | "WORKFLOW_DISABLED" | "PAYLOAD_TOO_LARGE" | "WORKFLOW_RUN_TIMEOUT" | `HUB_HTTP_${number}`;
350
+ type HubErrorCode = "HUB_UNAUTHENTICATED" | "HUB_FORBIDDEN" | "HUB_INVALID_INPUT" | "HUB_INVALID_STATE" | "HUB_PROVIDER_MISSING" | "HUB_CONNECTION_MISSING" | "HUB_CONNECTION_REVOKED" | "HUB_TOKEN_EXPIRED" | "HUB_TOKEN_REPLAYED" | "HUB_TOKEN_REVOKED" | "HUB_TOKEN_ACTION_MISMATCH" | "HUB_POLICY_DENIED" | "HUB_APPROVAL_REQUIRED" | "HUB_EXECUTOR_FAILURE" | "HUB_PROVIDER_FAILURE" | "HUB_PROVIDER_REJECTED" | "HUB_CONFIG_MISSING" | "HUB_CONFIG_INVALID" | "HUB_NOT_FOUND" | "HUB_NOT_IMPLEMENTED" | "HUB_CONFLICT" | "HUB_IDEMPOTENCY_CONFLICT" | "HUB_IDEMPOTENCY_IN_FLIGHT" | "VALIDATION_ERROR" | "WORKFLOW_INVALID" | "NOT_FOUND" | "UNAUTHORIZED" | "CONFLICT" | "MISSING_RUN_INPUTS" | "WORKFLOW_DISABLED" | "PAYLOAD_TOO_LARGE" | "WORKFLOW_RUN_TIMEOUT" | `HUB_HTTP_${number}`;
18
351
  interface HubStatusResponse {
19
352
  contract: unknown;
20
353
  principal: HubPrincipal;
@@ -36,6 +369,7 @@ interface HubConnection {
36
369
  providerId: string;
37
370
  displayName: string;
38
371
  accountDisplay: string | null;
372
+ providerAccountId: string | null;
39
373
  scopes: string[];
40
374
  status: "active" | "revoked" | "unhealthy" | "reconnect_required";
41
375
  health: "unknown" | "healthy" | "unhealthy" | "rate_limited";
@@ -168,6 +502,15 @@ interface HubEventDelivery {
168
502
  }
169
503
  /** A connector's auth model. */
170
504
  type HubProviderAuthKind = "oauth2" | "api_key" | "none" | "custom";
505
+ /** One non-secret value needed before an OAuth redirect can be built. Tenant-
506
+ * scoped providers use this for the account label in their OAuth hostname. */
507
+ interface HubOAuthConnectionParameter {
508
+ key: string;
509
+ label: string;
510
+ description: string;
511
+ placeholder: string;
512
+ required: true;
513
+ }
171
514
  interface HubProvider {
172
515
  providerId: string;
173
516
  title: string;
@@ -193,6 +536,9 @@ interface HubProvider {
193
536
  /** True when the provider's OAuth app credentials are wired, i.e. a connect
194
537
  * flow can actually start. UIs offer Connect only for configured providers. */
195
538
  configured: boolean;
539
+ /** Values the user must supply before OAuth starts. Empty or absent means the
540
+ * provider can redirect immediately. */
541
+ connectionParameters?: HubOAuthConnectionParameter[];
196
542
  /**
197
543
  * True when this deployment can receive this provider's inbound events.
198
544
  * This is separate from `configured`: OAuth can be ready while the shared
@@ -209,6 +555,7 @@ interface HubOAuthStartRequest {
209
555
  provider: string;
210
556
  returnUrl?: string;
211
557
  cli?: boolean;
558
+ connectionParameters?: Record<string, string>;
212
559
  }
213
560
  interface HubOAuthCallbackSuccessQuery {
214
561
  provider: string;
@@ -269,7 +616,18 @@ interface HubOAuthCallbackResponse {
269
616
  interface HubApiKeyConnectRequest {
270
617
  provider: string;
271
618
  apiKey: string;
619
+ /** Connector-owned setup values. Hub validates them before testing the key. */
620
+ metadata?: HubApiKeyConnectionMetadata;
272
621
  }
622
+ type HubApiKeyConnectionMetadata = {
623
+ propertyId: string;
624
+ currency?: string;
625
+ } | {
626
+ listings: Array<{
627
+ id: string;
628
+ pms: string;
629
+ }>;
630
+ };
273
631
  /** Result of an api-key connect: the created (or reconnected) connection.
274
632
  * Synchronous — there is no redirect leg, unlike the OAuth flow. */
275
633
  interface HubApiKeyConnectResponse {
@@ -285,7 +643,7 @@ interface HubConnectionDeleteResponse {
285
643
  interface HubConnectionHealthRequest {
286
644
  connectionId: string;
287
645
  }
288
- type HubConnectionHealthStatus = "healthy" | "reconnect_required" | "unhealthy" | "rate_limited";
646
+ type HubConnectionHealthStatus = "healthy" | "reconnect_required" | "unhealthy" | "rate_limited" | "unsupported";
289
647
  interface HubConnectionHealthError {
290
648
  code: string;
291
649
  message: string;
@@ -345,9 +703,18 @@ interface HubExecRequest {
345
703
  path: string;
346
704
  input?: unknown;
347
705
  connectionId?: string;
706
+ /** Caller-minted key for this exec. The platform ledger replays the first
707
+ * call's result for a retry that carries the same key, and rejects a key
708
+ * reused for a different request. On the capability-token arm the key only
709
+ * reaches the connector for provider-native dedupe: that arm is at-most-once
710
+ * per token and replays no stored result. */
711
+ idempotencyKey?: string;
348
712
  }
349
713
  interface HubExecResponse<TResult = unknown> {
350
714
  result: TResult;
715
+ /** True when the result was replayed from a previous call with the same
716
+ * idempotency key, so the action did not run again. */
717
+ replayed?: boolean;
351
718
  }
352
719
  interface HubTokenMintRequest {
353
720
  connectionId?: string;
@@ -524,11 +891,38 @@ interface HubGithubAppListInstallationsResponse {
524
891
  * unconfigured — in which case there is no way to add another account and
525
892
  * the UI must say so rather than link nowhere. */
526
893
  installUrl: string | null;
894
+ /** Whether this deployment can ask GitHub for installations it never
895
+ * witnessed. Rests on the App CREDENTIAL, not the slug behind `installUrl` —
896
+ * a deployment can have one without the other. */
897
+ syncAvailable?: boolean;
527
898
  }
528
899
  interface HubGithubAppDisconnectResponse {
529
900
  installationId: number;
530
901
  disconnected: boolean;
531
902
  }
903
+ interface HubGithubAppSyncedInstallation {
904
+ installationId: number;
905
+ accountLogin: string;
906
+ accountType: string | null;
907
+ repositorySelection: "all" | "selected";
908
+ /** False when this run is what linked it — the newly reachable access. */
909
+ alreadyLinked: boolean;
910
+ }
911
+ /** Result of reconciling the caller's installations from GitHub. */
912
+ interface HubGithubAppSyncResponse {
913
+ /** How many of the caller's GitHub accounts were examined. */
914
+ accountsChecked: number;
915
+ /** Installations the caller may act through once this returns. */
916
+ linked: HubGithubAppSyncedInstallation[];
917
+ /** An installation was found but not linked, and why. An account with no
918
+ * installation is absent — that is the ordinary case, not a problem. */
919
+ skipped: Array<{
920
+ accountLogin: string;
921
+ reason: string;
922
+ }>;
923
+ /** Why the examined set is not everything, when it isn't. */
924
+ incomplete?: string;
925
+ }
532
926
  interface HubGithubAppListReposResponse {
533
927
  installationId: number;
534
928
  /** Lowercased "owner/repo" — covers the full registry view of the install. */
@@ -1075,6 +1469,14 @@ interface HubWorkflowConnectionRequirement {
1075
1469
  /** Where to satisfy the requirement (App install flow for `github_app`,
1076
1470
  * integrations page otherwise); null when no target exists. */
1077
1471
  connectUrl: string | null;
1472
+ /** Another requirement in the same list that must be satisfied first — a
1473
+ * `github_app` install is claimed through the `github` connection, so it is
1474
+ * refused while that connection is missing. Null when nothing blocks this
1475
+ * requirement. The list is ordered prerequisite-first. */
1476
+ prerequisite: {
1477
+ provider: string;
1478
+ kind: "integration" | "github_app";
1479
+ } | null;
1078
1480
  }
1079
1481
  /**
1080
1482
  * Result of instantiating a template. `created: false` is NOT an error — an
@@ -1198,8 +1600,11 @@ declare class HubClient {
1198
1600
  readonly fetch: typeof fetch;
1199
1601
  readonly apiKey?: string;
1200
1602
  readonly authHeaders?: HubAuthHeaders;
1603
+ readonly allowances: HubAllowancesClient;
1604
+ readonly apps: HubAppsClient;
1201
1605
  readonly connections: HubConnectionsClient;
1202
1606
  readonly channels: HubChannelsClient;
1607
+ readonly numbers: HubManagedNumbersClient;
1203
1608
  readonly eventSubscriptions: HubEventSubscriptionsClient;
1204
1609
  readonly permissions: HubPermissionsClient;
1205
1610
  readonly tokens: HubTokensClient;
@@ -1277,6 +1682,13 @@ interface HubToolSearchOptions {
1277
1682
  interface HubToolInvokeOptions {
1278
1683
  connectionId?: string;
1279
1684
  approve?: boolean;
1685
+ /** Caller-minted key for this invoke. On the direct exec arm the platform
1686
+ * ledger replays the first call's result for a retry that carries the same
1687
+ * key, and refuses a key bound to a different request. The approval and
1688
+ * capability-token retries re-send the key, and the connector receives it
1689
+ * for provider-native dedupe. Capability-token execution stays at-most-once
1690
+ * per token: it refuses a replay instead of replaying a stored result. */
1691
+ idempotencyKey?: string;
1280
1692
  }
1281
1693
  declare class HubToolsClient {
1282
1694
  private readonly request;
@@ -1284,12 +1696,18 @@ declare class HubToolsClient {
1284
1696
  search(query: string, options?: HubToolSearchOptions): Promise<HubToolsSearchResponse>;
1285
1697
  sources(): Promise<HubToolSourcesResponse>;
1286
1698
  describe(path: string): Promise<HubToolsDescribeResponse>;
1287
- invoke<TResult = unknown>(path: string, input: unknown, options?: HubToolInvokeOptions): Promise<HubExecResponse<TResult>>;
1699
+ /**
1700
+ * Run one hub tool. `raw` is the tool input: the SDK forwards it verbatim as
1701
+ * the request body's `input`, and the server validates it against the tool's
1702
+ * own schema, so the client never gives it a shape.
1703
+ */
1704
+ invoke<TResult = unknown>(path: string, raw: unknown, options?: HubToolInvokeOptions): Promise<HubExecResponse<TResult>>;
1288
1705
  private buildExecInit;
1289
1706
  }
1290
1707
  interface HubConnectionStartOptions {
1291
1708
  returnUrl?: string;
1292
1709
  cli?: boolean;
1710
+ connectionParameters?: Record<string, string>;
1293
1711
  }
1294
1712
  declare class HubChannelsClient {
1295
1713
  private readonly request;
@@ -1307,6 +1725,7 @@ declare class HubEventSubscriptionsClient {
1307
1725
  }
1308
1726
  declare class HubConnectionsClient {
1309
1727
  private readonly request;
1728
+ readonly inboundWebhook: HubInboundWebhooksClient;
1310
1729
  constructor(request: <TData>(path: string, init: RequestInit) => Promise<TData>);
1311
1730
  list(): Promise<HubConnectionsResponse>;
1312
1731
  /** Connector catalog: every provider the hub can expose, each flagged with
@@ -1319,8 +1738,9 @@ declare class HubConnectionsClient {
1319
1738
  /** Connect a non-OAuth (api-key) connector by submitting the user's key.
1320
1739
  * The server validates the key with a live probe before persisting and
1321
1740
  * returns the created (or reconnected) connection — there is no redirect,
1322
- * unlike `start`. */
1323
- connectApiKey(provider: string, apiKey: string): Promise<HubApiKeyConnectResponse>;
1741
+ * unlike `start`. Cloudbeds requires propertyId metadata and PriceLabs
1742
+ * requires listing ID/PMS pairs; other providers have no metadata. */
1743
+ connectApiKey(provider: string, apiKey: string, metadata?: HubApiKeyConnectRequest["metadata"]): Promise<HubApiKeyConnectResponse>;
1324
1744
  revoke(connectionId: string): Promise<HubConnectionDeleteResponse>;
1325
1745
  health(connectionId: string): Promise<HubConnectionHealthResponse>;
1326
1746
  }
@@ -1338,6 +1758,13 @@ declare class HubGithubAppClient {
1338
1758
  /** Every installation the caller may act through — their own and any org's
1339
1759
  * they were verified against. The management surface's read. */
1340
1760
  listInstallations(): Promise<HubGithubAppListInstallationsResponse>;
1761
+ /**
1762
+ * Find installations `listInstallations` cannot show: the hub only registers
1763
+ * what the setup redirect witnessed, so an org install approved out of band —
1764
+ * or created by another member — is invisible until this asks GitHub for it.
1765
+ * Links whatever the caller can prove access to; never uninstalls anything.
1766
+ */
1767
+ syncInstallations(): Promise<HubGithubAppSyncResponse>;
1341
1768
  /** Give up THIS caller's access. Not an uninstall — the installation is
1342
1769
  * account-level and other members may still be using it. */
1343
1770
  disconnectInstallation(installationId: number): Promise<HubGithubAppDisconnectResponse>;
@@ -1595,15 +2022,18 @@ declare class HubWorkflowsClient {
1595
2022
  /**
1596
2023
  * Upsert a key; returns the entry with its NEW version (increments on every
1597
2024
  * write). Throws `HubSdkError(KV_VALUE_TOO_LARGE)` past the 64KiB value cap
1598
- * or `KV_KEY_LIMIT` past the per-workflow key cap.
2025
+ * or `KV_KEY_LIMIT` past the per-workflow key cap. `raw` is the caller's
2026
+ * value, stored and read back verbatim, so the client never gives it a shape.
1599
2027
  */
1600
- putKv(id: string, key: string, value: unknown): Promise<HubWorkflowKvEntry>;
2028
+ putKv(id: string, key: string, raw: unknown): Promise<HubWorkflowKvEntry>;
1601
2029
  /**
1602
2030
  * Compare-and-swap: the write lands only when the stored version still
1603
2031
  * equals `expectedVersion`; otherwise `HubSdkError(KV_VERSION_CONFLICT)`
1604
- * (409) — re-read and retry. Creation is {@link putKv}'s job.
2032
+ * (409) — re-read and retry. Creation is {@link putKv}'s job. `raw` is the
2033
+ * caller's value, stored and read back verbatim, so the client never gives it
2034
+ * a shape.
1605
2035
  */
1606
- casKv(id: string, key: string, expectedVersion: number, value: unknown): Promise<HubWorkflowKvEntry>;
2036
+ casKv(id: string, key: string, expectedVersion: number, raw: unknown): Promise<HubWorkflowKvEntry>;
1607
2037
  /** Delete a key; idempotent — `deleted` reports whether a row was removed. */
1608
2038
  deleteKv(id: string, key: string): Promise<HubWorkflowKvDeleteResponse>;
1609
2039
  /** The curated starter gallery runnable on THIS deployment: metadata,
@@ -1732,5 +2162,5 @@ declare function parseHubEventDelivery(input: string | unknown): HubEventDeliver
1732
2162
  //#region src/redaction.d.ts
1733
2163
  declare function redactHubValue(value: unknown): unknown;
1734
2164
  //#endregion
1735
- export { type AuthenticateHubEventRequestInput, type DeriveHubEventCallbackSecretInput, HUB_API_KEY_ENV_VAR, HUB_CAPABILITY_TOKEN_ENV_VAR, HUB_URL_ENV_VAR, type HubAgentIterationSpan, type HubAgentRunDetail, type HubApiKeyConnectRequest, type HubApiKeyConnectResponse, type HubApproval, type HubApprovalCapabilityToken, type HubApprovalDecisionResponse, type HubApprovalStatus, HubApprovalsClient, HubAuditClient, type HubAuditEvent, type HubAuditListRequest, type HubAuditResponse, type HubAuthHeaders, type HubCapabilityToken, type HubChannel, type HubChannelCreateResponse, type HubChannelDeleteResponse, HubChannelsClient, type HubChannelsResponse, HubClient, type HubClientFromEnvOptions, type HubClientOptions, type HubConnection, type HubConnectionDeleteRequest, type HubConnectionDeleteResponse, type HubConnectionHealthError, type HubConnectionHealthInfo, type HubConnectionHealthRequest, type HubConnectionHealthResponse, type HubConnectionHealthStatus, type HubConnectionStartOptions, HubConnectionsClient, type HubConnectionsResponse, type HubEmailChannel, type HubEmailChannelCreateRequest, type HubEnv, type HubEnvelope, type HubErrorBody, type HubErrorCode, type HubErrorEnvelope, type HubEventCondition, type HubEventConditionScalar, type HubEventDelivery, HubEventDeliveryError, type HubEventRequestFailureCode, type HubEventRequestResult, type HubEventSignatureFailure, type HubEventSignatureResult, type HubEventSubscription, type HubEventSubscriptionCallback, type HubEventSubscriptionCreateRequest, type HubEventSubscriptionCreateResponse, type HubEventSubscriptionDeleteResponse, type HubEventSubscriptionFilter, type HubEventSubscriptionSource, HubEventSubscriptionsClient, type HubEventSubscriptionsResponse, type HubExecRequest, type HubExecResponse, HubGithubAppClient, type HubGithubAppDisconnectResponse, type HubGithubAppInstallation, type HubGithubAppInstallationResponse, type HubGithubAppIsRepoInstalledRequest, type HubGithubAppIsRepoInstalledResponse, type HubGithubAppListInstallationsResponse, type HubGithubAppListReposResponse, type HubGithubAppManagedInstallation, type HubGithubAppMintInstallationTokenRequest, type HubGithubAppMintInstallationTokenResponse, type HubManualRunInput, type HubOAuthCallbackErrorQuery, type HubOAuthCallbackQuery, type HubOAuthCallbackResponse, type HubOAuthCallbackSuccessQuery, type HubOAuthStartRequest, type HubOAuthStartResponse, HubPermissionsClient, type HubPolicy, type HubPolicyDecision, type HubPolicyDeleteRequest, type HubPolicyDeleteResponse, type HubPolicyListRequest, type HubPolicyListResponse, type HubPolicyResponse, type HubPolicyUpdateRequest, type HubPrincipal, type HubPrincipalKind, type HubProvider, type HubProviderAuthKind, type HubProviderEvent, type HubProvidersResponse, HubSdkError, type HubStatusConnections, type HubStatusResponse, type HubSuccessEnvelope, type HubTokenListOptions, type HubTokenMintRequest, type HubTokenMintResponse, type HubTokenRevokeResponse, HubTokensClient, type HubTokensListResponse, type HubTool, type HubToolInvokeOptions, type HubToolRisk, type HubToolSearchOptions, type HubToolSource, type HubToolSourcesResponse, HubToolsClient, type HubToolsDescribeRequest, type HubToolsDescribeResponse, type HubToolsSearchRequest, type HubToolsSearchResponse, type HubUnimplementedErrorEnvelope, type HubWhatsappEmbeddedSignupCompleteRequest, type HubWhatsappEmbeddedSignupCompleteResponse, type HubWhatsappEmbeddedSignupStartRequest, type HubWhatsappEmbeddedSignupStartResponse, type HubWorkflow, type HubWorkflowAction, type HubWorkflowActionResult, type HubWorkflowAgentStep, type HubWorkflowArtifact, type HubWorkflowArtifactDownload, type HubWorkflowArtifactRef, type HubWorkflowArtifactsResponse, type HubWorkflowCondition, type HubWorkflowConditionOp, type HubWorkflowConditionScalar, type HubWorkflowConnectionRequirement, type HubWorkflowDecision, type HubWorkflowDecisionOnTimeout, type HubWorkflowDecisionResolveResult, type HubWorkflowDecisionResolvedVia, type HubWorkflowDecisionStatus, type HubWorkflowDistillationCandidate, type HubWorkflowEdgeVerdicts, type HubWorkflowEventFilter, type HubWorkflowFailureCluster, type HubWorkflowFleetEntry, type HubWorkflowFleetInsights, type HubWorkflowFleetWindow, type HubWorkflowGraphEdge, type HubWorkflowGraphJoinRule, type HubWorkflowGraphNode, type HubWorkflowGraphSpec, type HubWorkflowHealth, type HubWorkflowHookEndpoint, type HubWorkflowHookToken, type HubWorkflowKvDeleteResponse, type HubWorkflowKvEntry, type HubWorkflowKvEntryMeta, type HubWorkflowKvListResponse, type HubWorkflowNodeHealth, type HubWorkflowOnErrorOutcome, type HubWorkflowPendingDecision, type HubWorkflowPendingDecisionsResponse, type HubWorkflowProposal, type HubWorkflowProposalInput, type HubWorkflowRevision, type HubWorkflowRevisionMeta, type HubWorkflowRevisionSource, type HubWorkflowRevisionStatus, type HubWorkflowRun, type HubWorkflowRunCancelResult, type HubWorkflowRunDetail, type HubWorkflowRunEnqueued, type HubWorkflowRunInputs, type HubWorkflowRunRetried, type HubWorkflowRunStatus, type HubWorkflowRunStepsPage, type HubWorkflowRunStreamEvent, type HubWorkflowRunSummary, type HubWorkflowRunsPage, type HubWorkflowSchemaResponse, type HubWorkflowTemplate, type HubWorkflowTemplateCategory, type HubWorkflowTemplateInstantiateResult, type HubWorkflowTemplateParameter, type HubWorkflowTrigger, type HubWorkflowValidateResponse, type HubWorkflowValidationError, HubWorkflowsClient, type VerifyHubEventSignatureInput, authenticateHubEventRequest, deriveHubEventCallbackSecret, parseHubEventDelivery, redactHubValue, resolveHubAuth, resolveHubBaseUrl, verifyHubEventSignature };
2165
+ export { type AuthenticateHubEventRequestInput, type DeriveHubEventCallbackSecretInput, HUB_API_KEY_ENV_VAR, HUB_CAPABILITY_TOKEN_ENV_VAR, HUB_URL_ENV_VAR, type HubAgentIterationSpan, type HubAgentRunDetail, type HubAllowanceDecision, type HubAllowanceGrant, type HubAllowancePlan, type HubAllowancePlanInput, type HubAllowanceRole, type HubAllowanceSubject, type HubAllowanceTier, type HubAllowanceUsage, HubAllowancesClient, type HubApiKeyConnectRequest, type HubApiKeyConnectResponse, type HubApiKeyConnectionMetadata, type HubApp, type HubAppCreateInput, type HubAppGrant, type HubAppGrantRevoked, type HubApproval, type HubApprovalCapabilityToken, type HubApprovalDecisionResponse, type HubApprovalStatus, HubApprovalsClient, HubAppsClient, HubAuditClient, type HubAuditEvent, type HubAuditListRequest, type HubAuditResponse, type HubAuthHeaders, type HubCapabilityToken, type HubChannel, type HubChannelCreateResponse, type HubChannelDeleteResponse, HubChannelsClient, type HubChannelsResponse, HubClient, type HubClientFromEnvOptions, type HubClientOptions, type HubConnection, type HubConnectionDeleteRequest, type HubConnectionDeleteResponse, type HubConnectionHealthError, type HubConnectionHealthInfo, type HubConnectionHealthRequest, type HubConnectionHealthResponse, type HubConnectionHealthStatus, type HubConnectionStartOptions, HubConnectionsClient, type HubConnectionsResponse, type HubEmailChannel, type HubEmailChannelCreateRequest, type HubEnv, type HubEnvelope, type HubErrorBody, type HubErrorCode, type HubErrorEnvelope, type HubEventCondition, type HubEventConditionScalar, type HubEventDelivery, HubEventDeliveryError, type HubEventRequestFailureCode, type HubEventRequestResult, type HubEventSignatureFailure, type HubEventSignatureResult, type HubEventSubscription, type HubEventSubscriptionCallback, type HubEventSubscriptionCreateRequest, type HubEventSubscriptionCreateResponse, type HubEventSubscriptionDeleteResponse, type HubEventSubscriptionFilter, type HubEventSubscriptionSource, HubEventSubscriptionsClient, type HubEventSubscriptionsResponse, type HubExecRequest, type HubExecResponse, HubGithubAppClient, type HubGithubAppDisconnectResponse, type HubGithubAppInstallation, type HubGithubAppInstallationResponse, type HubGithubAppIsRepoInstalledRequest, type HubGithubAppIsRepoInstalledResponse, type HubGithubAppListInstallationsResponse, type HubGithubAppListReposResponse, type HubGithubAppManagedInstallation, type HubGithubAppMintInstallationTokenRequest, type HubGithubAppMintInstallationTokenResponse, type HubGithubAppSyncResponse, type HubGithubAppSyncedInstallation, type HubInboundPhoneNumberScope, type HubInboundWebhookCreateOptions, type HubInboundWebhookCreateResponse, type HubInboundWebhookStatus, HubInboundWebhooksClient, HubManagedNumbersClient, type HubManualRunInput, type HubNumberOrder, type HubNumberQuote, type HubNumberReadiness, type HubNumberResolution, type HubOAuthCallbackErrorQuery, type HubOAuthCallbackQuery, type HubOAuthCallbackResponse, type HubOAuthCallbackSuccessQuery, type HubOAuthConnectionParameter, type HubOAuthStartRequest, type HubOAuthStartResponse, HubPermissionsClient, type HubPolicy, type HubPolicyDecision, type HubPolicyDeleteRequest, type HubPolicyDeleteResponse, type HubPolicyListRequest, type HubPolicyListResponse, type HubPolicyResponse, type HubPolicyUpdateRequest, type HubPrincipal, type HubPrincipalKind, type HubProvider, type HubProviderAuthKind, type HubProviderEvent, type HubProvidersResponse, HubSdkError, type HubStatusConnections, type HubStatusResponse, type HubSuccessEnvelope, type HubTokenListOptions, type HubTokenMintRequest, type HubTokenMintResponse, type HubTokenRevokeResponse, HubTokensClient, type HubTokensListResponse, type HubTool, type HubToolInvokeOptions, type HubToolRisk, type HubToolSearchOptions, type HubToolSource, type HubToolSourcesResponse, HubToolsClient, type HubToolsDescribeRequest, type HubToolsDescribeResponse, type HubToolsSearchRequest, type HubToolsSearchResponse, type HubUnimplementedErrorEnvelope, type HubWhatsappEmbeddedSignupCompleteRequest, type HubWhatsappEmbeddedSignupCompleteResponse, type HubWhatsappEmbeddedSignupStartRequest, type HubWhatsappEmbeddedSignupStartResponse, type HubWorkflow, type HubWorkflowAction, type HubWorkflowActionResult, type HubWorkflowAgentStep, type HubWorkflowArtifact, type HubWorkflowArtifactDownload, type HubWorkflowArtifactRef, type HubWorkflowArtifactsResponse, type HubWorkflowCondition, type HubWorkflowConditionOp, type HubWorkflowConditionScalar, type HubWorkflowConnectionRequirement, type HubWorkflowDecision, type HubWorkflowDecisionOnTimeout, type HubWorkflowDecisionResolveResult, type HubWorkflowDecisionResolvedVia, type HubWorkflowDecisionStatus, type HubWorkflowDistillationCandidate, type HubWorkflowEdgeVerdicts, type HubWorkflowEventFilter, type HubWorkflowFailureCluster, type HubWorkflowFleetEntry, type HubWorkflowFleetInsights, type HubWorkflowFleetWindow, type HubWorkflowGraphEdge, type HubWorkflowGraphJoinRule, type HubWorkflowGraphNode, type HubWorkflowGraphSpec, type HubWorkflowHealth, type HubWorkflowHookEndpoint, type HubWorkflowHookToken, type HubWorkflowKvDeleteResponse, type HubWorkflowKvEntry, type HubWorkflowKvEntryMeta, type HubWorkflowKvListResponse, type HubWorkflowNodeHealth, type HubWorkflowOnErrorOutcome, type HubWorkflowPendingDecision, type HubWorkflowPendingDecisionsResponse, type HubWorkflowProposal, type HubWorkflowProposalInput, type HubWorkflowRevision, type HubWorkflowRevisionMeta, type HubWorkflowRevisionSource, type HubWorkflowRevisionStatus, type HubWorkflowRun, type HubWorkflowRunCancelResult, type HubWorkflowRunDetail, type HubWorkflowRunEnqueued, type HubWorkflowRunInputs, type HubWorkflowRunRetried, type HubWorkflowRunStatus, type HubWorkflowRunStepsPage, type HubWorkflowRunStreamEvent, type HubWorkflowRunSummary, type HubWorkflowRunsPage, type HubWorkflowSchemaResponse, type HubWorkflowTemplate, type HubWorkflowTemplateCategory, type HubWorkflowTemplateInstantiateResult, type HubWorkflowTemplateParameter, type HubWorkflowTrigger, type HubWorkflowValidateResponse, type HubWorkflowValidationError, HubWorkflowsClient, type VerifyHubEventSignatureInput, authenticateHubEventRequest, deriveHubEventCallbackSecret, parseHubEventDelivery, redactHubValue, resolveHubAuth, resolveHubBaseUrl, verifyHubEventSignature };
1736
2166
  //# sourceMappingURL=index.d.ts.map