@barndoor-ai/sdk 1.2.0 → 1.3.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/client.d.ts +95 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/http/client.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +7 -7
- package/dist/index.js +11 -11
- package/dist/models/index.d.ts +133 -0
- package/dist/models/index.d.ts.map +1 -1
- package/package.json +13 -1
package/dist/client.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* SDK's client.py functionality with 100% API compatibility.
|
|
6
6
|
*/
|
|
7
7
|
import { ServerSummary, ServerDetail } from './models';
|
|
8
|
+
import type { Channel, ChannelOptions, ChannelTestResult, UpsertChannelInput, WebhookSecret } from './models';
|
|
8
9
|
import { ClientCredentialsParams } from './auth/clientCredentials';
|
|
9
10
|
/**
|
|
10
11
|
* Configuration options for BarndoorSDK constructor.
|
|
@@ -62,6 +63,8 @@ export interface FromClientCredentialsOptions extends ClientCredentialsParams {
|
|
|
62
63
|
* JWT token in all requests.
|
|
63
64
|
*/
|
|
64
65
|
export declare class BarndoorSDK {
|
|
66
|
+
/** Platform path for the public notification channel-management surface (BCP-3758). */
|
|
67
|
+
private static readonly CHANNELS_PATH;
|
|
65
68
|
/** Base URL of the Barndoor API */
|
|
66
69
|
readonly base: string;
|
|
67
70
|
/** User JWT token */
|
|
@@ -190,6 +193,98 @@ export declare class BarndoorSDK {
|
|
|
190
193
|
* @param serverId - Server ID or slug to disconnect from
|
|
191
194
|
*/
|
|
192
195
|
disconnectServer(serverId: string): Promise<void>;
|
|
196
|
+
/**
|
|
197
|
+
* List the alert types this organization may subscribe a channel to.
|
|
198
|
+
*
|
|
199
|
+
* Read this before building a subscription set: the alert-type vocabulary grows over
|
|
200
|
+
* time and is gated per organization, so this endpoint — not a hardcoded list — is the
|
|
201
|
+
* authoritative answer to what `subscriptions` accepts. Subscribing to a type absent
|
|
202
|
+
* here is accepted but never delivers.
|
|
203
|
+
*
|
|
204
|
+
* @returns The admitted alert types, plus the category and severity vocabularies
|
|
205
|
+
*/
|
|
206
|
+
getChannelOptions(): Promise<ChannelOptions>;
|
|
207
|
+
/**
|
|
208
|
+
* List the organization's shared notification channels.
|
|
209
|
+
*
|
|
210
|
+
* Returns the organization-wide channels — `email`, `webhook`, `slack`, `teams` — with
|
|
211
|
+
* their current subscription sets. Personal channels are not included; use
|
|
212
|
+
* {@link listUserChannels} for those.
|
|
213
|
+
*
|
|
214
|
+
* @returns The organization's shared channels, in no guaranteed order
|
|
215
|
+
*/
|
|
216
|
+
listChannels(): Promise<Channel[]>;
|
|
217
|
+
/**
|
|
218
|
+
* List the caller's own personal notification channels.
|
|
219
|
+
*
|
|
220
|
+
* Returns the authenticated caller's `in_app` and `user_email` channels. Always
|
|
221
|
+
* self-scoped — there is no way to read another user's personal channels.
|
|
222
|
+
*
|
|
223
|
+
* @returns The caller's personal channels
|
|
224
|
+
*/
|
|
225
|
+
listUserChannels(): Promise<Channel[]>;
|
|
226
|
+
/**
|
|
227
|
+
* Create or update a notification channel and replace its subscriptions.
|
|
228
|
+
*
|
|
229
|
+
* This is a full upsert, not a patch: `subscriptions` **replaces** the channel's
|
|
230
|
+
* existing set, so omitting it removes every subscription the channel had. Send the
|
|
231
|
+
* complete desired set on every call.
|
|
232
|
+
*
|
|
233
|
+
* Without `channelId` the channel is keyed on its type's natural identity, so repeating
|
|
234
|
+
* an identical call is idempotent rather than creating duplicates: `email` by address,
|
|
235
|
+
* `webhook` by URL, `slack` by channel id, and the personal types by (organization,
|
|
236
|
+
* type, caller). With `channelId` it is an authoritative edit of that row — the only way
|
|
237
|
+
* to update a `teams` channel, whose natural identity is a secret URL.
|
|
238
|
+
*
|
|
239
|
+
* Which destination fields are permitted depends on `type`; sending one that does not
|
|
240
|
+
* belong throws {@link HTTPError} with status 422 rather than being silently ignored.
|
|
241
|
+
*
|
|
242
|
+
* @param input - Channel definition; see {@link UpsertChannelInput}
|
|
243
|
+
* @returns The created or updated channel. When this call *creates* a `webhook`
|
|
244
|
+
* channel, `signing_secret` carries the one-time reveal — store it. A retried create
|
|
245
|
+
* that lands after the first attempt already succeeded returns a null
|
|
246
|
+
* `signing_secret` rather than a second secret; use {@link regenerateChannelSecret}
|
|
247
|
+
* if you need one.
|
|
248
|
+
*/
|
|
249
|
+
upsertChannel(input: UpsertChannelInput): Promise<Channel>;
|
|
250
|
+
/**
|
|
251
|
+
* Delete a notification channel.
|
|
252
|
+
*
|
|
253
|
+
* Its subscriptions cascade and any stored secret is removed. Irreversible — to stop
|
|
254
|
+
* delivery reversibly, call {@link upsertChannel} with `enabled: false`.
|
|
255
|
+
*
|
|
256
|
+
* @param channelId - Unique identifier of the channel to delete
|
|
257
|
+
* @throws {HTTPError} With status 404 when no such channel exists in the caller's org
|
|
258
|
+
*/
|
|
259
|
+
deleteChannel(channelId: string): Promise<void>;
|
|
260
|
+
/**
|
|
261
|
+
* Rotate a webhook channel's signing secret.
|
|
262
|
+
*
|
|
263
|
+
* Returns the new secret once. The previous secret stops verifying immediately, so
|
|
264
|
+
* deploy the new one to your receiver before the next alert fires. There is no endpoint
|
|
265
|
+
* that reads the current secret, so this is also the recovery path when a secret from
|
|
266
|
+
* channel creation was lost.
|
|
267
|
+
*
|
|
268
|
+
* @param channelId - Unique identifier of the webhook channel
|
|
269
|
+
* @returns The new signing secret
|
|
270
|
+
*/
|
|
271
|
+
regenerateChannelSecret(channelId: string): Promise<WebhookSecret>;
|
|
272
|
+
/**
|
|
273
|
+
* Send a connectivity-test message through a channel's real transport.
|
|
274
|
+
*
|
|
275
|
+
* Lets you verify a webhook receiver, email address, Slack channel, or Teams workflow
|
|
276
|
+
* actually works. It is not an alert: nothing is persisted, no other channel is
|
|
277
|
+
* notified, and it ignores the channel's subscriptions.
|
|
278
|
+
*
|
|
279
|
+
* A transport failure comes back as `ok: false` with a reason, not as a thrown error —
|
|
280
|
+
* the request succeeded, the delivery did not.
|
|
281
|
+
*
|
|
282
|
+
* @param channelId - Unique identifier of the channel to test
|
|
283
|
+
* @returns Whether the message reached the transport, and why not if it did not
|
|
284
|
+
*/
|
|
285
|
+
testChannel(channelId: string): Promise<ChannelTestResult>;
|
|
286
|
+
/** Validate and normalize a channel id shared by the by-id channel methods. */
|
|
287
|
+
private _requireChannelId;
|
|
193
288
|
/**
|
|
194
289
|
* Validate server ID format.
|
|
195
290
|
* @private
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,wBAAwB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACnD,+BAA+B;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,mCAAmC;IACnC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,sCAAsC;IACtC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;gBACS,IAAI,SAAK,EAAE,OAAO,SAAK;CAIpC;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,yCAAyC;IAClC,MAAM,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;gBACS,aAAa,gBAAsB,EAAE,UAAU,SAAI;IAM/D;;;;;;OAMG;IACU,OAAO,CAClB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,wBAAwB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACnD,+BAA+B;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,mCAAmC;IACnC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,sCAAsC;IACtC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;gBACS,IAAI,SAAK,EAAE,OAAO,SAAK;CAIpC;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,4BAA4B;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,yCAAyC;IAClC,MAAM,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;gBACS,aAAa,gBAAsB,EAAE,UAAU,SAAI;IAM/D;;;;;;OAMG;IACU,OAAO,CAClB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,OAAO,CAAC;IAiKnB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAejB;;;OAGG;IACH,OAAO,CAAC,MAAM;IAId;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGrC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export { BarndoorSDK } from './client';
|
|
|
31
31
|
export type { FromClientCredentialsOptions } from './client';
|
|
32
32
|
export { BarndoorError, AuthenticationError, TokenError, TokenExpiredError, TokenValidationError, ConnectionError, HTTPError, ServerNotFoundError, OAuthError, ConfigurationError, TimeoutError, } from './exceptions';
|
|
33
33
|
export { ServerSummary, ServerDetail, AgentToken } from './models';
|
|
34
|
+
export type { AlertTypeOption, Channel, ChannelListResponse, ChannelOptions, ChannelSubscription, ChannelTestResult, ChannelType, LabeledOption, UpsertChannelInput, WebhookSecret, } from './models';
|
|
34
35
|
export { loginInteractive, ensureServerConnected, makeMcpConnectionParams, makeMcpClient, } from './quickstart';
|
|
35
36
|
export { PKCEManager, startLocalCallbackServer, loadUserToken, saveUserToken, clearCachedToken, setTokenLogger, verifyJWTLocal, JWTVerificationResult, isTokenActive, isTokenActiveWithRefresh, validateToken, TokenManager, getOidcConfig, clearOidcConfigCache, getClientCredentialsToken, } from './auth';
|
|
36
37
|
export type { OidcConfig, ClientCredentialsParams } from './auth';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,YAAY,GACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,YAAY,GACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEnE,YAAY,EACV,eAAe,EACf,OAAO,EACP,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,GACd,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,QAAQ,CAAC;AAChB,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,QAAQ,CAAC;AAGlE,OAAO,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,SAAS,EACT,MAAM,GACP,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAC/F,YAAY,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
|