@buildbase/sdk 0.0.51 → 0.0.53
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/AGENTS.md +18 -8
- package/CHANGELOG.md +56 -0
- package/README.md +247 -32
- package/dist/css/styles.css +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +865 -53
- package/dist/index.mjs +1 -1
- package/dist/mcp/index.cjs +1 -0
- package/dist/mcp/index.d.ts +1402 -0
- package/dist/mcp/index.mjs +1 -0
- package/dist/react/chunks/{SettingsDialog-uVKFxlal.mjs → SettingsDialog-BxDYsie6.mjs} +1 -1
- package/dist/react/chunks/{SettingsDialog-DitAiAqr.cjs → SettingsDialog-Dy8W3NA6.cjs} +1 -1
- package/dist/react/chunks/{SubscriptionDialog-P0GlXEyn.mjs → SubscriptionDialog-6c5dHoQd.mjs} +1 -1
- package/dist/react/chunks/{SubscriptionDialog-Cg-qYVKr.cjs → SubscriptionDialog-CpVnnXJg.cjs} +1 -1
- package/dist/react/chunks/ar-1Z1MOGAP.mjs +2 -0
- package/dist/react/chunks/ar-VGzBv3AZ.cjs +2 -0
- package/dist/react/chunks/de-BjdDg60Y.cjs +2 -0
- package/dist/react/chunks/de-CXUItplO.mjs +2 -0
- package/dist/react/chunks/es-BBPsSZUp.cjs +2 -0
- package/dist/react/chunks/es-BTbzVutz.mjs +2 -0
- package/dist/react/chunks/fr-Cax48X_S.cjs +2 -0
- package/dist/react/chunks/fr-DPMeOQu3.mjs +2 -0
- package/dist/react/chunks/hi-BJqvpG6d.cjs +2 -0
- package/dist/react/chunks/hi-JfJx-LV7.mjs +2 -0
- package/dist/react/chunks/ja-CDGtLzTk.mjs +2 -0
- package/dist/react/chunks/ja-DvVyj5xX.cjs +2 -0
- package/dist/react/chunks/react-4SlWxHdh.cjs +2 -0
- package/dist/react/chunks/react-OL1uSkpr.mjs +2 -0
- package/dist/react/chunks/zh-BAcqxkxk.cjs +2 -0
- package/dist/react/chunks/zh-BNZ2Ooe8.mjs +2 -0
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.d.ts +39 -32
- package/dist/react/index.mjs +1 -1
- package/package.json +17 -4
- package/dist/react/chunks/ar-SrPOJXdL.mjs +0 -2
- package/dist/react/chunks/ar-a3aRbPCs.cjs +0 -2
- package/dist/react/chunks/de-DE3_z7r0.cjs +0 -2
- package/dist/react/chunks/de-xnPl61SS.mjs +0 -2
- package/dist/react/chunks/es-C_xcyGtp.cjs +0 -2
- package/dist/react/chunks/es-CyuBtosP.mjs +0 -2
- package/dist/react/chunks/fr-BMu7Bk4k.cjs +0 -2
- package/dist/react/chunks/fr-CxuDLZ27.mjs +0 -2
- package/dist/react/chunks/hi-CQ215yc9.cjs +0 -2
- package/dist/react/chunks/hi-CpuvyorS.mjs +0 -2
- package/dist/react/chunks/ja-DIJ_xCIi.mjs +0 -2
- package/dist/react/chunks/ja-DK6Buuws.cjs +0 -2
- package/dist/react/chunks/react-C2ikFWBG.cjs +0 -2
- package/dist/react/chunks/react-CCukNQ4q.mjs +0 -2
- package/dist/react/chunks/zh-CYQwZiBL.mjs +0 -2
- package/dist/react/chunks/zh-Dt-apS2s.cjs +0 -2
package/dist/index.d.ts
CHANGED
|
@@ -2186,8 +2186,9 @@ interface PermissionContext {
|
|
|
2186
2186
|
* 3. settings.workspace.permissions[role] (org-level template)
|
|
2187
2187
|
* 4. DEFAULT_ROLE_PERMISSIONS[role] (SDK built-in defaults)
|
|
2188
2188
|
* 5. Merge in appPermissions (developer-defined) for the role
|
|
2189
|
-
* 6. If role not found → use
|
|
2190
|
-
*
|
|
2189
|
+
* 6. If role not found → use an explicitly-configured, known `defaultRole`;
|
|
2190
|
+
* otherwise deny (no silent 'member' fallback for unknown roles)
|
|
2191
|
+
* 7. Apply setting restrictions (canInviteMembers)
|
|
2191
2192
|
*/
|
|
2192
2193
|
declare function resolvePermissions(ctx: PermissionContext): Set<string>;
|
|
2193
2194
|
/**
|
|
@@ -2222,6 +2223,652 @@ interface BetaFormResponse {
|
|
|
2222
2223
|
message: string;
|
|
2223
2224
|
}
|
|
2224
2225
|
|
|
2226
|
+
/**
|
|
2227
|
+
* Type-safe translation keys for the BuildBase SDK.
|
|
2228
|
+
* All user-facing strings are defined here.
|
|
2229
|
+
*/
|
|
2230
|
+
interface SDKMessages {
|
|
2231
|
+
security: {
|
|
2232
|
+
connectedAgentsTitle: string;
|
|
2233
|
+
connectedAgentsDescription: string;
|
|
2234
|
+
connectedAgentsDisconnect: string;
|
|
2235
|
+
connectedAgentsEmpty: string;
|
|
2236
|
+
connectedAgentsAccess: string;
|
|
2237
|
+
connectedAgentsGranted: string;
|
|
2238
|
+
inactive: string;
|
|
2239
|
+
inactiveHint: string;
|
|
2240
|
+
passkeysTitle: string;
|
|
2241
|
+
passkeysDescription: string;
|
|
2242
|
+
noPasskeys: string;
|
|
2243
|
+
addHint: string;
|
|
2244
|
+
rename: string;
|
|
2245
|
+
remove: string;
|
|
2246
|
+
removeTitle: string;
|
|
2247
|
+
removeDescription: string;
|
|
2248
|
+
renamePlaceholder: string;
|
|
2249
|
+
lastUsed: string;
|
|
2250
|
+
added: string;
|
|
2251
|
+
};
|
|
2252
|
+
settings: {
|
|
2253
|
+
titles: {
|
|
2254
|
+
profile: string;
|
|
2255
|
+
security: string;
|
|
2256
|
+
general: string;
|
|
2257
|
+
users: string;
|
|
2258
|
+
subscription: string;
|
|
2259
|
+
usage: string;
|
|
2260
|
+
credits: string;
|
|
2261
|
+
features: string;
|
|
2262
|
+
notifications: string;
|
|
2263
|
+
permissions: string;
|
|
2264
|
+
danger: string;
|
|
2265
|
+
};
|
|
2266
|
+
sidebar: {
|
|
2267
|
+
account: string;
|
|
2268
|
+
workspace: string;
|
|
2269
|
+
profile: string;
|
|
2270
|
+
security: string;
|
|
2271
|
+
general: string;
|
|
2272
|
+
users: string;
|
|
2273
|
+
subscription: string;
|
|
2274
|
+
usage: string;
|
|
2275
|
+
credits: string;
|
|
2276
|
+
features: string;
|
|
2277
|
+
notifications: string;
|
|
2278
|
+
permissions: string;
|
|
2279
|
+
danger: string;
|
|
2280
|
+
};
|
|
2281
|
+
common: {
|
|
2282
|
+
refresh: string;
|
|
2283
|
+
refreshing: string;
|
|
2284
|
+
retry: string;
|
|
2285
|
+
retrying: string;
|
|
2286
|
+
save: string;
|
|
2287
|
+
saving: string;
|
|
2288
|
+
cancel: string;
|
|
2289
|
+
delete: string;
|
|
2290
|
+
dismiss: string;
|
|
2291
|
+
loading: string;
|
|
2292
|
+
success: string;
|
|
2293
|
+
error: string;
|
|
2294
|
+
refreshAction: string;
|
|
2295
|
+
retryAction: string;
|
|
2296
|
+
noPermissionTitle: string;
|
|
2297
|
+
noPermissionDescription: string;
|
|
2298
|
+
billingManageOnly: string;
|
|
2299
|
+
openSettings: string;
|
|
2300
|
+
back: string;
|
|
2301
|
+
};
|
|
2302
|
+
};
|
|
2303
|
+
subscription: {
|
|
2304
|
+
managePlan: string;
|
|
2305
|
+
changePlan: string;
|
|
2306
|
+
viewPricingPlans: string;
|
|
2307
|
+
viewPlans: string;
|
|
2308
|
+
upgradePlan: string;
|
|
2309
|
+
subscribe: string;
|
|
2310
|
+
currentPlan: string;
|
|
2311
|
+
noSubscription: string;
|
|
2312
|
+
choosePlan: string;
|
|
2313
|
+
choosePlanDescription: string;
|
|
2314
|
+
forWorkspace: string;
|
|
2315
|
+
planUpdateAvailable: string;
|
|
2316
|
+
updateSuccess: string;
|
|
2317
|
+
updateFailed: string;
|
|
2318
|
+
cancelTitle: string;
|
|
2319
|
+
cancelConfirm: string;
|
|
2320
|
+
cancelKeep: string;
|
|
2321
|
+
cancelButton: string;
|
|
2322
|
+
canceling: string;
|
|
2323
|
+
cancelSuccess: string;
|
|
2324
|
+
cancelNotCharged: string;
|
|
2325
|
+
cancelResumeAnytime: string;
|
|
2326
|
+
cancelTrialTitle: string;
|
|
2327
|
+
cancelTrialConfirm: string;
|
|
2328
|
+
cancelTrialAccess: string;
|
|
2329
|
+
cancelTrialNoCharge: string;
|
|
2330
|
+
cancelTrialResume: string;
|
|
2331
|
+
cancelTrialKeep: string;
|
|
2332
|
+
cancelTrialButton: string;
|
|
2333
|
+
resumeTitle: string;
|
|
2334
|
+
resumeTrial: string;
|
|
2335
|
+
resumeConfirm: string;
|
|
2336
|
+
resumeKeep: string;
|
|
2337
|
+
resumeButton: string;
|
|
2338
|
+
resuming: string;
|
|
2339
|
+
resumeSuccess: string;
|
|
2340
|
+
managePayment: string;
|
|
2341
|
+
openingPortal: string;
|
|
2342
|
+
viewAllPlans: string;
|
|
2343
|
+
scheduledCancellation: string;
|
|
2344
|
+
scheduledTrialCancellation: string;
|
|
2345
|
+
paymentPastDue: string;
|
|
2346
|
+
paymentPastDueDescription: string;
|
|
2347
|
+
subscriptionPaused: string;
|
|
2348
|
+
subscriptionPausedDescription: string;
|
|
2349
|
+
errorLoading: string;
|
|
2350
|
+
errorLoadingDescription: string;
|
|
2351
|
+
errorProcessing: string;
|
|
2352
|
+
errorCanceling: string;
|
|
2353
|
+
errorResuming: string;
|
|
2354
|
+
invalidWorkspace: string;
|
|
2355
|
+
billingInterval: {
|
|
2356
|
+
monthly: string;
|
|
2357
|
+
quarterly: string;
|
|
2358
|
+
yearly: string;
|
|
2359
|
+
perMonth: string;
|
|
2360
|
+
perQuarter: string;
|
|
2361
|
+
perYear: string;
|
|
2362
|
+
};
|
|
2363
|
+
seats: {
|
|
2364
|
+
title: string;
|
|
2365
|
+
members: string;
|
|
2366
|
+
included: string;
|
|
2367
|
+
billable: string;
|
|
2368
|
+
perExtraSeat: string;
|
|
2369
|
+
limit: string;
|
|
2370
|
+
includedSeats: string;
|
|
2371
|
+
maxSeats: string;
|
|
2372
|
+
freeWithBase: string;
|
|
2373
|
+
allIncluded: string;
|
|
2374
|
+
extra: string;
|
|
2375
|
+
unlimited: string;
|
|
2376
|
+
};
|
|
2377
|
+
items: {
|
|
2378
|
+
features: string;
|
|
2379
|
+
limits: string;
|
|
2380
|
+
quotas: string;
|
|
2381
|
+
credits: string;
|
|
2382
|
+
creditsPerMonth: string;
|
|
2383
|
+
creditsOneTime: string;
|
|
2384
|
+
creditRenewal: string;
|
|
2385
|
+
creditModeReset: string;
|
|
2386
|
+
creditModeTopup: string;
|
|
2387
|
+
creditModeLifetime: string;
|
|
2388
|
+
/** @deprecated */
|
|
2389
|
+
creditsPerPeriod: string;
|
|
2390
|
+
/** @deprecated */
|
|
2391
|
+
creditRollover: string;
|
|
2392
|
+
};
|
|
2393
|
+
checkout: {
|
|
2394
|
+
upgrade: string;
|
|
2395
|
+
downgrade: string;
|
|
2396
|
+
switchTo: string;
|
|
2397
|
+
select: string;
|
|
2398
|
+
};
|
|
2399
|
+
status: {
|
|
2400
|
+
active: string;
|
|
2401
|
+
canceling: string;
|
|
2402
|
+
trial: string;
|
|
2403
|
+
canceled: string;
|
|
2404
|
+
pastDue: string;
|
|
2405
|
+
paused: string;
|
|
2406
|
+
deprecated: string;
|
|
2407
|
+
unknown: string;
|
|
2408
|
+
};
|
|
2409
|
+
plan: string;
|
|
2410
|
+
invoicesTab: string;
|
|
2411
|
+
tabsLabel: string;
|
|
2412
|
+
endsOn: string;
|
|
2413
|
+
versionLabel: string;
|
|
2414
|
+
changePlanButton: string;
|
|
2415
|
+
noPlanAssigned: string;
|
|
2416
|
+
free: string;
|
|
2417
|
+
perSeatDisplay: string;
|
|
2418
|
+
estTotalDisplay: string;
|
|
2419
|
+
nextBillingDisplay: string;
|
|
2420
|
+
membersInWorkspace: string;
|
|
2421
|
+
billingInCurrency: string;
|
|
2422
|
+
savingsPercent: string;
|
|
2423
|
+
switchToInterval: string;
|
|
2424
|
+
seatPriceDisplay: string;
|
|
2425
|
+
trialEnded: string;
|
|
2426
|
+
trialEndsIn: string;
|
|
2427
|
+
onTrial: string;
|
|
2428
|
+
upgradeToKeepAccess: string;
|
|
2429
|
+
viewInvoices: string;
|
|
2430
|
+
cancelTrial: string;
|
|
2431
|
+
dunningFinal: string;
|
|
2432
|
+
dunningSuspended: string;
|
|
2433
|
+
dunningRecovery: string;
|
|
2434
|
+
dunningSuspendedDescription: string;
|
|
2435
|
+
dunningRecoveryDescription: string;
|
|
2436
|
+
cancelEndDescription: string;
|
|
2437
|
+
trialEndDescription: string;
|
|
2438
|
+
cancelEndFallback: string;
|
|
2439
|
+
resumeChargeDate: string;
|
|
2440
|
+
resumeChargeFallback: string;
|
|
2441
|
+
resumeContinue: string;
|
|
2442
|
+
resumeCancelAnytime: string;
|
|
2443
|
+
retainAccess: string;
|
|
2444
|
+
retainAccessFallback: string;
|
|
2445
|
+
noPlansAvailable: string;
|
|
2446
|
+
noPlansAvailableHint: string;
|
|
2447
|
+
startTrialDescription: string;
|
|
2448
|
+
noSubscriptionDescription: string;
|
|
2449
|
+
startFreeTrial: string;
|
|
2450
|
+
startTrialDays: string;
|
|
2451
|
+
trialBadge: string;
|
|
2452
|
+
};
|
|
2453
|
+
users: {
|
|
2454
|
+
emailPlaceholder: string;
|
|
2455
|
+
title: string;
|
|
2456
|
+
adminOnly: string;
|
|
2457
|
+
inviteByEmail: string;
|
|
2458
|
+
inviteButton: string;
|
|
2459
|
+
inviting: string;
|
|
2460
|
+
inviteSuccess: string;
|
|
2461
|
+
emailRequired: string;
|
|
2462
|
+
invalidEmail: string;
|
|
2463
|
+
inviteFailed: string;
|
|
2464
|
+
seatLimitReached: string;
|
|
2465
|
+
memberLimitReached: string;
|
|
2466
|
+
role: string;
|
|
2467
|
+
you: string;
|
|
2468
|
+
owner: string;
|
|
2469
|
+
noMembers: string;
|
|
2470
|
+
extraSeatCost: string;
|
|
2471
|
+
unknownUser: string;
|
|
2472
|
+
seats: string;
|
|
2473
|
+
members: string;
|
|
2474
|
+
included: string;
|
|
2475
|
+
perExtraSeat: string;
|
|
2476
|
+
maxMembers: string;
|
|
2477
|
+
available: string;
|
|
2478
|
+
noMemberLimit: string;
|
|
2479
|
+
seatHeading: string;
|
|
2480
|
+
limitReached: string;
|
|
2481
|
+
memberCount: string;
|
|
2482
|
+
subscriptionRequired: string;
|
|
2483
|
+
seatLimitMessage: string;
|
|
2484
|
+
settingsLimitMessage: string;
|
|
2485
|
+
memberLimitMessage: string;
|
|
2486
|
+
selectRole: string;
|
|
2487
|
+
inviteAs: string;
|
|
2488
|
+
};
|
|
2489
|
+
invoices: {
|
|
2490
|
+
title: string;
|
|
2491
|
+
description: string;
|
|
2492
|
+
pay: string;
|
|
2493
|
+
view: string;
|
|
2494
|
+
viewDetails: string;
|
|
2495
|
+
download: string;
|
|
2496
|
+
errorLoading: string;
|
|
2497
|
+
noInvoices: string;
|
|
2498
|
+
noInvoicesWithSub: string;
|
|
2499
|
+
paidAmount: string;
|
|
2500
|
+
na: string;
|
|
2501
|
+
status: {
|
|
2502
|
+
draft: string;
|
|
2503
|
+
open: string;
|
|
2504
|
+
paid: string;
|
|
2505
|
+
uncollectible: string;
|
|
2506
|
+
void: string;
|
|
2507
|
+
};
|
|
2508
|
+
};
|
|
2509
|
+
usage: {
|
|
2510
|
+
title: string;
|
|
2511
|
+
description: string;
|
|
2512
|
+
totalResources: string;
|
|
2513
|
+
overallUsage: string;
|
|
2514
|
+
inOverage: string;
|
|
2515
|
+
estOverageCost: string;
|
|
2516
|
+
overageDetected: string;
|
|
2517
|
+
overageDescription: string;
|
|
2518
|
+
overageUnits: string;
|
|
2519
|
+
rate: string;
|
|
2520
|
+
billableBlocks: string;
|
|
2521
|
+
estimatedCharge: string;
|
|
2522
|
+
noData: string;
|
|
2523
|
+
noDataHint: string;
|
|
2524
|
+
used: string;
|
|
2525
|
+
remaining: string;
|
|
2526
|
+
overLimit: string;
|
|
2527
|
+
percentUsed: string;
|
|
2528
|
+
availableRemaining: string;
|
|
2529
|
+
overLimitCount: string;
|
|
2530
|
+
overageWarning: string;
|
|
2531
|
+
fullyUsed: string;
|
|
2532
|
+
renewingSoon: string;
|
|
2533
|
+
almostFull: string;
|
|
2534
|
+
overage: string;
|
|
2535
|
+
errorLoading: string;
|
|
2536
|
+
perUnit: string;
|
|
2537
|
+
perUnits: string;
|
|
2538
|
+
rateDisplay: string;
|
|
2539
|
+
resourcesExceeded: string;
|
|
2540
|
+
estOverageCharges: string;
|
|
2541
|
+
overageRateDisplay: string;
|
|
2542
|
+
resetDateDisplay: string;
|
|
2543
|
+
daysRemainingDisplay: string;
|
|
2544
|
+
};
|
|
2545
|
+
profile: {
|
|
2546
|
+
email: string;
|
|
2547
|
+
name: string;
|
|
2548
|
+
language: string;
|
|
2549
|
+
country: string;
|
|
2550
|
+
currency: string;
|
|
2551
|
+
timezone: string;
|
|
2552
|
+
profileImage: string;
|
|
2553
|
+
success: string;
|
|
2554
|
+
nameMinLength: string;
|
|
2555
|
+
save: string;
|
|
2556
|
+
reset: string;
|
|
2557
|
+
};
|
|
2558
|
+
general: {
|
|
2559
|
+
ownerOnly: string;
|
|
2560
|
+
name: string;
|
|
2561
|
+
namePlaceholder: string;
|
|
2562
|
+
nameMinLength: string;
|
|
2563
|
+
billingCurrency: string;
|
|
2564
|
+
icon: string;
|
|
2565
|
+
iconDescription: string;
|
|
2566
|
+
imageUrl: string;
|
|
2567
|
+
imageUrlPlaceholder: string;
|
|
2568
|
+
imageUrlDescription: string;
|
|
2569
|
+
previewLabel: string;
|
|
2570
|
+
previewImageAlt: string;
|
|
2571
|
+
success: string;
|
|
2572
|
+
chooseEmoji: string;
|
|
2573
|
+
customImageUrl: string;
|
|
2574
|
+
updateWorkspace: string;
|
|
2575
|
+
};
|
|
2576
|
+
features: {
|
|
2577
|
+
title: string;
|
|
2578
|
+
ownerOnly: string;
|
|
2579
|
+
noFeatures: string;
|
|
2580
|
+
enabled: string;
|
|
2581
|
+
disabled: string;
|
|
2582
|
+
enabling: string;
|
|
2583
|
+
disabling: string;
|
|
2584
|
+
featureSuccess: string;
|
|
2585
|
+
updateSuccess: string;
|
|
2586
|
+
actionStatus: string;
|
|
2587
|
+
};
|
|
2588
|
+
danger: {
|
|
2589
|
+
title: string;
|
|
2590
|
+
adminOnly: string;
|
|
2591
|
+
deleteWorkspace: string;
|
|
2592
|
+
deleteConfirm: string;
|
|
2593
|
+
deleteWarning: string;
|
|
2594
|
+
deleting: string;
|
|
2595
|
+
deleteDescription: string;
|
|
2596
|
+
deleteConfirmDescription: string;
|
|
2597
|
+
failedToDelete: string;
|
|
2598
|
+
};
|
|
2599
|
+
notifications: {
|
|
2600
|
+
title: string;
|
|
2601
|
+
permissionDenied: string;
|
|
2602
|
+
notSupported: string;
|
|
2603
|
+
manageDescription: string;
|
|
2604
|
+
blocked: string;
|
|
2605
|
+
blockedDescription: string;
|
|
2606
|
+
pushTitle: string;
|
|
2607
|
+
pushEnabledDescription: string;
|
|
2608
|
+
pushDisabledDescription: string;
|
|
2609
|
+
enabling: string;
|
|
2610
|
+
disabling: string;
|
|
2611
|
+
enable: string;
|
|
2612
|
+
disable: string;
|
|
2613
|
+
toggleAction: string;
|
|
2614
|
+
pushDescription: string;
|
|
2615
|
+
deviceNote: string;
|
|
2616
|
+
prefsSaved: string;
|
|
2617
|
+
loadingPrefs: string;
|
|
2618
|
+
categories: {
|
|
2619
|
+
workspace: string;
|
|
2620
|
+
billing: string;
|
|
2621
|
+
};
|
|
2622
|
+
events: {
|
|
2623
|
+
workspace_invite: string;
|
|
2624
|
+
workspace_invite_desc: string;
|
|
2625
|
+
workspace_removed: string;
|
|
2626
|
+
workspace_removed_desc: string;
|
|
2627
|
+
workspace_role_changed: string;
|
|
2628
|
+
workspace_role_changed_desc: string;
|
|
2629
|
+
subscription_created: string;
|
|
2630
|
+
subscription_created_desc: string;
|
|
2631
|
+
subscription_upgraded: string;
|
|
2632
|
+
subscription_upgraded_desc: string;
|
|
2633
|
+
subscription_canceled: string;
|
|
2634
|
+
subscription_canceled_desc: string;
|
|
2635
|
+
subscription_suspended: string;
|
|
2636
|
+
subscription_suspended_desc: string;
|
|
2637
|
+
trial_ending: string;
|
|
2638
|
+
trial_ending_desc: string;
|
|
2639
|
+
trial_expired: string;
|
|
2640
|
+
trial_expired_desc: string;
|
|
2641
|
+
payment_failed: string;
|
|
2642
|
+
payment_failed_desc: string;
|
|
2643
|
+
payment_action_required: string;
|
|
2644
|
+
payment_action_required_desc: string;
|
|
2645
|
+
payment_succeeded: string;
|
|
2646
|
+
payment_succeeded_desc: string;
|
|
2647
|
+
};
|
|
2648
|
+
unblock: {
|
|
2649
|
+
firefox: {
|
|
2650
|
+
step1: string;
|
|
2651
|
+
step2: string;
|
|
2652
|
+
step3: string;
|
|
2653
|
+
step4: string;
|
|
2654
|
+
};
|
|
2655
|
+
safari: {
|
|
2656
|
+
step1: string;
|
|
2657
|
+
step2: string;
|
|
2658
|
+
step3: string;
|
|
2659
|
+
step4: string;
|
|
2660
|
+
};
|
|
2661
|
+
edge: {
|
|
2662
|
+
step1: string;
|
|
2663
|
+
step2: string;
|
|
2664
|
+
step3: string;
|
|
2665
|
+
step4: string;
|
|
2666
|
+
};
|
|
2667
|
+
chrome: {
|
|
2668
|
+
step1: string;
|
|
2669
|
+
step2: string;
|
|
2670
|
+
step3: string;
|
|
2671
|
+
step4: string;
|
|
2672
|
+
};
|
|
2673
|
+
};
|
|
2674
|
+
};
|
|
2675
|
+
quota: {
|
|
2676
|
+
includedOnly: string;
|
|
2677
|
+
includedWithOverage: string;
|
|
2678
|
+
includedHardLimit: string;
|
|
2679
|
+
unitFallback: string;
|
|
2680
|
+
};
|
|
2681
|
+
pricing: {
|
|
2682
|
+
title: string;
|
|
2683
|
+
description: string;
|
|
2684
|
+
currency: string;
|
|
2685
|
+
billingIn: string;
|
|
2686
|
+
noPlansCurrency: string;
|
|
2687
|
+
noPlansCurrencyHint: string;
|
|
2688
|
+
noPlans: string;
|
|
2689
|
+
free: string;
|
|
2690
|
+
included: string;
|
|
2691
|
+
save: string;
|
|
2692
|
+
current: string;
|
|
2693
|
+
processing: string;
|
|
2694
|
+
unavailable: string;
|
|
2695
|
+
selectCurrency: string;
|
|
2696
|
+
billingInterval: string;
|
|
2697
|
+
};
|
|
2698
|
+
beta: {
|
|
2699
|
+
logoAlt: string;
|
|
2700
|
+
nameLabel: string;
|
|
2701
|
+
emailLabel: string;
|
|
2702
|
+
submitText: string;
|
|
2703
|
+
submittingText: string;
|
|
2704
|
+
errorMessage: string;
|
|
2705
|
+
tryAgain: string;
|
|
2706
|
+
privacyConsent: string;
|
|
2707
|
+
privacyPolicy: string;
|
|
2708
|
+
and: string;
|
|
2709
|
+
termsOfService: string;
|
|
2710
|
+
};
|
|
2711
|
+
workspace: {
|
|
2712
|
+
switchTitle: string;
|
|
2713
|
+
switchDescription: string;
|
|
2714
|
+
notLoggedIn: string;
|
|
2715
|
+
availableWorkspaces: string;
|
|
2716
|
+
loadingWorkspaces: string;
|
|
2717
|
+
searchPlaceholder: string;
|
|
2718
|
+
noWorkspacesFound: string;
|
|
2719
|
+
noWorkspacesAvailable: string;
|
|
2720
|
+
switchTo: string;
|
|
2721
|
+
membersCount: string;
|
|
2722
|
+
createNew: string;
|
|
2723
|
+
createTitle: string;
|
|
2724
|
+
createDescription: string;
|
|
2725
|
+
workspaceName: string;
|
|
2726
|
+
workspaceNamePlaceholder: string;
|
|
2727
|
+
workspaceNameMinLength: string;
|
|
2728
|
+
workspaceIcon: string;
|
|
2729
|
+
iconDescription: string;
|
|
2730
|
+
chooseEmoji: string;
|
|
2731
|
+
customImageUrl: string;
|
|
2732
|
+
imageUrl: string;
|
|
2733
|
+
imageUrlPlaceholder: string;
|
|
2734
|
+
imageUrlDescription: string;
|
|
2735
|
+
invalidUrl: string;
|
|
2736
|
+
creating: string;
|
|
2737
|
+
createWorkspace: string;
|
|
2738
|
+
};
|
|
2739
|
+
dropdowns: {
|
|
2740
|
+
search: string;
|
|
2741
|
+
chooseOption: string;
|
|
2742
|
+
chooseCountry: string;
|
|
2743
|
+
searchCountry: string;
|
|
2744
|
+
chooseLanguage: string;
|
|
2745
|
+
searchLanguage: string;
|
|
2746
|
+
chooseCurrency: string;
|
|
2747
|
+
searchCurrency: string;
|
|
2748
|
+
chooseTimezone: string;
|
|
2749
|
+
searchTimezone: string;
|
|
2750
|
+
noResults: string;
|
|
2751
|
+
};
|
|
2752
|
+
push: {
|
|
2753
|
+
failedToSubscribe: string;
|
|
2754
|
+
failedToUnsubscribe: string;
|
|
2755
|
+
};
|
|
2756
|
+
permissions: {
|
|
2757
|
+
title: string;
|
|
2758
|
+
description: string;
|
|
2759
|
+
ownerOnly: string;
|
|
2760
|
+
save: string;
|
|
2761
|
+
saving: string;
|
|
2762
|
+
saveSuccess: string;
|
|
2763
|
+
};
|
|
2764
|
+
credits: {
|
|
2765
|
+
title: string;
|
|
2766
|
+
description: string;
|
|
2767
|
+
balance: string;
|
|
2768
|
+
available: string;
|
|
2769
|
+
totalGranted: string;
|
|
2770
|
+
totalConsumed: string;
|
|
2771
|
+
totalExpired: string;
|
|
2772
|
+
noCredits: string;
|
|
2773
|
+
noCreditsHint: string;
|
|
2774
|
+
buyCredits: string;
|
|
2775
|
+
buyAmount: string;
|
|
2776
|
+
purchasing: string;
|
|
2777
|
+
packages: string;
|
|
2778
|
+
noPackages: string;
|
|
2779
|
+
creditsAmount: string;
|
|
2780
|
+
validityDays: string;
|
|
2781
|
+
validityUnlimited: string;
|
|
2782
|
+
transactions: string;
|
|
2783
|
+
noTransactions: string;
|
|
2784
|
+
loadMore: string;
|
|
2785
|
+
viewAll: string;
|
|
2786
|
+
expiringSoon: string;
|
|
2787
|
+
expiringInDays: string;
|
|
2788
|
+
noExpiring: string;
|
|
2789
|
+
type: {
|
|
2790
|
+
plan_grant: string;
|
|
2791
|
+
pack_purchased: string;
|
|
2792
|
+
consumed: string;
|
|
2793
|
+
expired: string;
|
|
2794
|
+
admin_grant: string;
|
|
2795
|
+
admin_revoke: string;
|
|
2796
|
+
refund: string;
|
|
2797
|
+
};
|
|
2798
|
+
dialogTitle: string;
|
|
2799
|
+
dialogDescription: string;
|
|
2800
|
+
dialogDescriptionWorkspace: string;
|
|
2801
|
+
perCredit: string;
|
|
2802
|
+
purchaseSuccess: string;
|
|
2803
|
+
purchaseCanceled: string;
|
|
2804
|
+
purchaseFailed: string;
|
|
2805
|
+
errorLoading: string;
|
|
2806
|
+
insufficientCredits: string;
|
|
2807
|
+
};
|
|
2808
|
+
loading: {
|
|
2809
|
+
restoringSession: string;
|
|
2810
|
+
redirecting: string;
|
|
2811
|
+
signingIn: string;
|
|
2812
|
+
verifyingAccount: string;
|
|
2813
|
+
almostThere: string;
|
|
2814
|
+
};
|
|
2815
|
+
errors: {
|
|
2816
|
+
networkError: string;
|
|
2817
|
+
unauthorized: string;
|
|
2818
|
+
notFound: string;
|
|
2819
|
+
generic: string;
|
|
2820
|
+
fetchPlans: string;
|
|
2821
|
+
fetchPlanGroup: string;
|
|
2822
|
+
fetchPlanGroupVersion: string;
|
|
2823
|
+
fetchPlanGroupVersions: string;
|
|
2824
|
+
fetchSubscription: string;
|
|
2825
|
+
createCheckout: string;
|
|
2826
|
+
updateSubscription: string;
|
|
2827
|
+
fetchInvoices: string;
|
|
2828
|
+
fetchInvoice: string;
|
|
2829
|
+
openBillingPortal: string;
|
|
2830
|
+
cancelSubscription: string;
|
|
2831
|
+
resumeSubscription: string;
|
|
2832
|
+
recordUsage: string;
|
|
2833
|
+
fetchQuotaUsage: string;
|
|
2834
|
+
fetchAllQuotaUsage: string;
|
|
2835
|
+
fetchUsageLogs: string;
|
|
2836
|
+
fetchCreditBalance: string;
|
|
2837
|
+
consumeCredits: string;
|
|
2838
|
+
purchaseCredits: string;
|
|
2839
|
+
fetchCreditPackages: string;
|
|
2840
|
+
fetchCreditTransactions: string;
|
|
2841
|
+
fetchExpiringCredits: string;
|
|
2842
|
+
};
|
|
2843
|
+
}
|
|
2844
|
+
/**
|
|
2845
|
+
* Generates a union of all valid dot-separated key paths from SDKMessages.
|
|
2846
|
+
* Supports up to 4 levels of nesting (covers all current keys, e.g.
|
|
2847
|
+
* "notifications.unblock.firefox.step1").
|
|
2848
|
+
* Used to make `t()` calls compile-time safe with autocomplete.
|
|
2849
|
+
*
|
|
2850
|
+
* @example
|
|
2851
|
+
* TranslationKey → "settings.titles.profile" | "settings.common.refresh" | ...
|
|
2852
|
+
*/
|
|
2853
|
+
type Level1 = keyof SDKMessages & string;
|
|
2854
|
+
type Level2 = {
|
|
2855
|
+
[K1 in Level1]: SDKMessages[K1] extends Record<string, unknown> ? `${K1}.${keyof SDKMessages[K1] & string}` : never;
|
|
2856
|
+
}[Level1];
|
|
2857
|
+
type Level3 = {
|
|
2858
|
+
[K1 in Level1]: SDKMessages[K1] extends Record<string, unknown> ? {
|
|
2859
|
+
[K2 in keyof SDKMessages[K1] & string]: SDKMessages[K1][K2] extends Record<string, unknown> ? `${K1}.${K2}.${keyof SDKMessages[K1][K2] & string}` : never;
|
|
2860
|
+
}[keyof SDKMessages[K1] & string] : never;
|
|
2861
|
+
}[Level1];
|
|
2862
|
+
type Level4 = {
|
|
2863
|
+
[K1 in Level1]: SDKMessages[K1] extends Record<string, unknown> ? {
|
|
2864
|
+
[K2 in keyof SDKMessages[K1] & string]: SDKMessages[K1][K2] extends Record<string, unknown> ? {
|
|
2865
|
+
[K3 in keyof SDKMessages[K1][K2] & string]: SDKMessages[K1][K2][K3] extends Record<string, unknown> ? `${K1}.${K2}.${K3}.${keyof SDKMessages[K1][K2][K3] & string}` : never;
|
|
2866
|
+
}[keyof SDKMessages[K1][K2] & string] : never;
|
|
2867
|
+
}[keyof SDKMessages[K1] & string] : never;
|
|
2868
|
+
}[Level1];
|
|
2869
|
+
/** Union of all valid translation key paths (e.g. "settings.titles.profile") */
|
|
2870
|
+
type TranslationKey = Level2 | Level3 | Level4;
|
|
2871
|
+
|
|
2225
2872
|
/**
|
|
2226
2873
|
* Verify that a webhook request came from BuildBase.
|
|
2227
2874
|
*
|
|
@@ -2332,34 +2979,31 @@ declare function parseWebhookEvent(options: {
|
|
|
2332
2979
|
* @example Next.js App Router — the entire integration:
|
|
2333
2980
|
* ```ts
|
|
2334
2981
|
* // lib/agent-ready.ts
|
|
2335
|
-
* import type
|
|
2982
|
+
* import { resolveAgentPath, type AgentReadyConfig } from "@buildbase/sdk";
|
|
2336
2983
|
* export const agentConfig: AgentReadyConfig = {
|
|
2337
2984
|
* serverUrl: process.env.BUILDBASE_URL!,
|
|
2338
2985
|
* orgId: process.env.BUILDBASE_ORG_ID!,
|
|
2339
2986
|
* siteUrl: "https://imejis.io",
|
|
2340
2987
|
* site: { name: "Imejis", description: "Generate images from templates via API." },
|
|
2988
|
+
* robots: { contentSignals: { search: true, aiInput: true, aiTrain: false } },
|
|
2341
2989
|
* };
|
|
2342
|
-
*
|
|
2343
|
-
*
|
|
2344
|
-
* import { resolveWellKnown } from "@buildbase/sdk";
|
|
2345
|
-
* import { agentConfig } from "@/lib/agent-ready";
|
|
2346
|
-
* export async function GET(req: Request) {
|
|
2347
|
-
* const doc = await resolveWellKnown(new URL(req.url).pathname, agentConfig);
|
|
2990
|
+
* export async function serveAgentPath(req: Request): Promise<Response> {
|
|
2991
|
+
* const doc = await resolveAgentPath(new URL(req.url).pathname, agentConfig);
|
|
2348
2992
|
* if (!doc) return new Response('{"error":"not_found"}', { status: 404 });
|
|
2349
2993
|
* return new Response(doc.body, {
|
|
2350
2994
|
* status: doc.status,
|
|
2351
|
-
* headers: {
|
|
2995
|
+
* headers: {
|
|
2996
|
+
* "Content-Type": doc.contentType,
|
|
2997
|
+
* "Cache-Control": doc.cacheControl,
|
|
2998
|
+
* ...(doc.vary ? { Vary: doc.vary } : {}),
|
|
2999
|
+
* },
|
|
2352
3000
|
* });
|
|
2353
3001
|
* }
|
|
2354
3002
|
*
|
|
2355
|
-
* // app/
|
|
2356
|
-
*
|
|
2357
|
-
* import {
|
|
2358
|
-
* export
|
|
2359
|
-
* const doc = buildLlmsTxt(agentConfig, await fetchAgentReadiness(agentConfig));
|
|
2360
|
-
* if (!doc) return new Response("Not found", { status: 404 });
|
|
2361
|
-
* return new Response(doc.body, { headers: { "Content-Type": doc.contentType } });
|
|
2362
|
-
* }
|
|
3003
|
+
* // app/.well-known/[...path]/route.ts — plus identical two-liners at
|
|
3004
|
+
* // app/robots.txt/route.ts, app/llms.txt/route.ts, app/auth.md/route.ts, …
|
|
3005
|
+
* import { serveAgentPath } from "@/lib/agent-ready";
|
|
3006
|
+
* export const GET = serveAgentPath;
|
|
2363
3007
|
* ```
|
|
2364
3008
|
*/
|
|
2365
3009
|
/**
|
|
@@ -2370,21 +3014,16 @@ declare function parseWebhookEvent(options: {
|
|
|
2370
3014
|
interface AgentReadinessBundle {
|
|
2371
3015
|
/** False when the org has not enabled agent readiness — everything else absent. */
|
|
2372
3016
|
enabled: boolean;
|
|
2373
|
-
/**
|
|
3017
|
+
/**
|
|
3018
|
+
* Pointer to the org's RFC 8414 authorization-server metadata. This is the
|
|
3019
|
+
* ONLY thing the platform owns and serves — discovery content (protected
|
|
3020
|
+
* resources, llms.txt, sitemap, API catalog, skills) is app-owned and
|
|
3021
|
+
* defined locally in {@link AgentReadyConfig}.
|
|
3022
|
+
*/
|
|
2374
3023
|
authorizationServer?: {
|
|
2375
3024
|
issuer: string;
|
|
2376
3025
|
metadataUrl: string;
|
|
2377
3026
|
};
|
|
2378
|
-
/**
|
|
2379
|
-
* RFC 9728 protected-resource metadata objects, ready to serve. Each `metadata`
|
|
2380
|
-
* is a complete document; `resource` is the canonical resource URI it describes.
|
|
2381
|
-
*/
|
|
2382
|
-
protectedResources?: Array<{
|
|
2383
|
-
resource: string;
|
|
2384
|
-
metadata: Record<string, unknown>;
|
|
2385
|
-
}>;
|
|
2386
|
-
/** Org-authored llms.txt content, or null when unset. */
|
|
2387
|
-
llmsTxt?: string | null;
|
|
2388
3027
|
}
|
|
2389
3028
|
/** An Agent Skill (Agent Skills Discovery RFC v0.2.0) published by this app. */
|
|
2390
3029
|
interface AgentSkill {
|
|
@@ -2432,6 +3071,59 @@ interface McpServerCard {
|
|
|
2432
3071
|
/** Documentation URL. */
|
|
2433
3072
|
documentationUrl?: string;
|
|
2434
3073
|
}
|
|
3074
|
+
/** One robots.txt policy group (a `User-agent:` block). */
|
|
3075
|
+
interface RobotsPolicy {
|
|
3076
|
+
/** User-agent(s) this group applies to, e.g. `'*'` or `'GPTBot'`. */
|
|
3077
|
+
userAgent: string | string[];
|
|
3078
|
+
/** Paths to allow, e.g. `['/']`. */
|
|
3079
|
+
allow?: string[];
|
|
3080
|
+
/** Paths to disallow, e.g. `['/api/']`. */
|
|
3081
|
+
disallow?: string[];
|
|
3082
|
+
/** Optional `Crawl-delay` (non-standard but widely honored). */
|
|
3083
|
+
crawlDelay?: number;
|
|
3084
|
+
}
|
|
3085
|
+
/**
|
|
3086
|
+
* Content Signals (https://contentsignals.org) — declares how crawlers may use
|
|
3087
|
+
* this site's content. Each flag renders as `<signal>=yes|no`; omitted flags
|
|
3088
|
+
* are not emitted (unset = no preference expressed).
|
|
3089
|
+
*/
|
|
3090
|
+
interface ContentSignals {
|
|
3091
|
+
/** May content be indexed for search? → `search=yes|no`. */
|
|
3092
|
+
search?: boolean;
|
|
3093
|
+
/** May content be used as AI input (RAG, grounding)? → `ai-input=yes|no`. */
|
|
3094
|
+
aiInput?: boolean;
|
|
3095
|
+
/** May content be used for AI training? → `ai-train=yes|no`. */
|
|
3096
|
+
aiTrain?: boolean;
|
|
3097
|
+
}
|
|
3098
|
+
/** Configuration for `buildRobotsTxt`. Every field is optional. */
|
|
3099
|
+
interface RobotsConfig {
|
|
3100
|
+
/** Policy groups. Defaults to `[{ userAgent: '*', allow: ['/'] }]`. */
|
|
3101
|
+
policies?: RobotsPolicy[];
|
|
3102
|
+
/**
|
|
3103
|
+
* Stance toward known AI crawlers ({@link AI_BOT_USER_AGENTS}): `'allow'`
|
|
3104
|
+
* (default — an explicit `Allow: /` group per bot, so readiness checkers see
|
|
3105
|
+
* AI bots addressed), `'deny'` (a `Disallow: /` group per bot), or explicit
|
|
3106
|
+
* per-bot policies for finer control.
|
|
3107
|
+
*/
|
|
3108
|
+
aiBots?: 'allow' | 'deny' | RobotsPolicy[];
|
|
3109
|
+
/** Content-Signal directive attached to the `User-agent: *` group. */
|
|
3110
|
+
contentSignals?: ContentSignals;
|
|
3111
|
+
/**
|
|
3112
|
+
* Sitemap URLs. Defaults to `${siteUrl}/sitemap.xml` when `config.sitemap`
|
|
3113
|
+
* is set; pass `[]` to emit no `Sitemap:` line.
|
|
3114
|
+
*/
|
|
3115
|
+
sitemaps?: string[];
|
|
3116
|
+
}
|
|
3117
|
+
/** One URL entry for the generated sitemap.xml. */
|
|
3118
|
+
interface SitemapUrl {
|
|
3119
|
+
/** Absolute URL, or a path resolved against `siteUrl`. */
|
|
3120
|
+
loc: string;
|
|
3121
|
+
/** ISO-8601 last-modified date. */
|
|
3122
|
+
lastmod?: string;
|
|
3123
|
+
changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
|
|
3124
|
+
/** 0.0–1.0. */
|
|
3125
|
+
priority?: number;
|
|
3126
|
+
}
|
|
2435
3127
|
/** Configuration for the agent-readiness discovery layer. */
|
|
2436
3128
|
interface AgentReadyConfig {
|
|
2437
3129
|
/** BuildBase server base URL, e.g. `https://api.buildbase.app` (no trailing slash needed). */
|
|
@@ -2484,8 +3176,46 @@ interface AgentReadyConfig {
|
|
|
2484
3176
|
* `buildAuthMd` generates one from the OAuth metadata + site config.
|
|
2485
3177
|
*/
|
|
2486
3178
|
authMd?: string;
|
|
3179
|
+
/**
|
|
3180
|
+
* Local `/llms.txt` content. Takes precedence over the org-authored llms.txt
|
|
3181
|
+
* from the platform bundle — use when the app owns richer llms.txt content.
|
|
3182
|
+
*/
|
|
3183
|
+
llmsTxt?: string;
|
|
3184
|
+
/** robots.txt generation (`buildRobotsTxt`). Omitted = sane defaults. */
|
|
3185
|
+
robots?: RobotsConfig;
|
|
3186
|
+
/**
|
|
3187
|
+
* URLs for a minimal generated sitemap.xml (`buildSitemap`). Omit when the
|
|
3188
|
+
* app already generates sitemaps (e.g. next-sitemap) — the builder then
|
|
3189
|
+
* returns null and your own files win.
|
|
3190
|
+
*/
|
|
3191
|
+
sitemap?: {
|
|
3192
|
+
urls: Array<string | SitemapUrl>;
|
|
3193
|
+
};
|
|
3194
|
+
/**
|
|
3195
|
+
* RFC 9728 protected resources this app serves, defined locally (app-owned).
|
|
3196
|
+
* When set, the SDK builds the `/.well-known/oauth-protected-resource`
|
|
3197
|
+
* document from this config — `authorization_servers` is derived from
|
|
3198
|
+
* `serverUrl`/`orgId` (the BuildBase issuer). Takes precedence over the
|
|
3199
|
+
* platform bundle. Omit to fall back to the org-configured bundle.
|
|
3200
|
+
*/
|
|
3201
|
+
protectedResources?: Array<{
|
|
3202
|
+
/** The protected API's resource URI. Defaults to `siteUrl`. */
|
|
3203
|
+
resource?: string;
|
|
3204
|
+
/** Scopes this resource accepts (`scopes_supported`). */
|
|
3205
|
+
scopes?: string[];
|
|
3206
|
+
/** Human documentation URL (`resource_documentation`). */
|
|
3207
|
+
documentationUrl?: string;
|
|
3208
|
+
/** Bearer methods (`bearer_methods_supported`). Defaults to `['header']`. */
|
|
3209
|
+
bearerMethods?: string[];
|
|
3210
|
+
}>;
|
|
2487
3211
|
/** TTL (seconds) for cached platform fetches. Default 300 (5 min). */
|
|
2488
3212
|
cacheTtlSeconds?: number;
|
|
3213
|
+
/**
|
|
3214
|
+
* Timeout (ms) for platform fetches. Fail-soft on timeout, so a hung or slow
|
|
3215
|
+
* BuildBase server can't hang discovery routes forever. Default 5000; set `0`
|
|
3216
|
+
* to disable.
|
|
3217
|
+
*/
|
|
3218
|
+
fetchTimeoutMs?: number;
|
|
2489
3219
|
/** Injectable fetch, mainly for testing. Defaults to the global `fetch`. */
|
|
2490
3220
|
fetch?: typeof fetch;
|
|
2491
3221
|
}
|
|
@@ -2495,7 +3225,15 @@ interface DiscoveryDocument {
|
|
|
2495
3225
|
contentType: string;
|
|
2496
3226
|
body: string;
|
|
2497
3227
|
cacheControl: string;
|
|
3228
|
+
/** Value for a `Vary` response header, when the body is negotiated. */
|
|
3229
|
+
vary?: string;
|
|
2498
3230
|
}
|
|
3231
|
+
/**
|
|
3232
|
+
* User-agent strings of the known AI crawlers/agents that agent-readiness
|
|
3233
|
+
* checkers look for in robots.txt (`buildRobotsTxt` emits a policy group per
|
|
3234
|
+
* entry when `robots.aiBots` is `'allow'`/`'deny'`).
|
|
3235
|
+
*/
|
|
3236
|
+
declare const AI_BOT_USER_AGENTS: readonly string[];
|
|
2499
3237
|
/**
|
|
2500
3238
|
* SHA-256 of `content` as `sha256:<hex>`, via the shared pure-JS hash (no Web
|
|
2501
3239
|
* Crypto / Node `crypto`), so output is identical on every runtime.
|
|
@@ -2509,7 +3247,7 @@ declare function sha256Digest(content: string): string;
|
|
|
2509
3247
|
* simply see the app as not (yet) agent-ready.
|
|
2510
3248
|
*/
|
|
2511
3249
|
declare function fetchAgentReadiness(config: AgentReadyConfig): Promise<AgentReadinessBundle>;
|
|
2512
|
-
/** Clear the in-memory agent-readiness
|
|
3250
|
+
/** Clear the in-memory agent-readiness caches (mainly for tests). */
|
|
2513
3251
|
declare function clearAgentReadinessCache(): void;
|
|
2514
3252
|
/**
|
|
2515
3253
|
* The Agent Card served at `/.well-known/agent.json`. A stable, machine-readable
|
|
@@ -2519,16 +3257,24 @@ declare function buildAgentCard(config: AgentReadyConfig, bundle: AgentReadiness
|
|
|
2519
3257
|
/**
|
|
2520
3258
|
* Resolve the RFC 9728 protected-resource metadata for a request path, or null
|
|
2521
3259
|
* if no configured resource maps to it.
|
|
3260
|
+
*
|
|
3261
|
+
* App-owned and local: built entirely from `config.protectedResources`, with
|
|
3262
|
+
* `authorization_servers` derived from `serverUrl`/`orgId` (the BuildBase
|
|
3263
|
+
* issuer). No platform round-trip.
|
|
2522
3264
|
*/
|
|
2523
|
-
declare function buildProtectedResourceMetadata(requestPath: string, config: AgentReadyConfig
|
|
3265
|
+
declare function buildProtectedResourceMetadata(requestPath: string, config: AgentReadyConfig): DiscoveryDocument | null;
|
|
2524
3266
|
/** Agent Skills discovery index (Agent Skills Discovery RFC v0.2.0). */
|
|
2525
3267
|
declare function buildAgentSkillsIndex(config: AgentReadyConfig): DiscoveryDocument | null;
|
|
2526
3268
|
/** Serve a single skill's SKILL.md by request path, or null if none matches. */
|
|
2527
3269
|
declare function buildSkillMd(requestPath: string, config: AgentReadyConfig): DiscoveryDocument | null;
|
|
2528
3270
|
/** security.txt (RFC 9116), or null when not configured. */
|
|
2529
3271
|
declare function buildSecurityTxt(config: AgentReadyConfig): DiscoveryDocument | null;
|
|
2530
|
-
/**
|
|
2531
|
-
|
|
3272
|
+
/**
|
|
3273
|
+
* The `/llms.txt` document from `config.llmsTxt` (app-authored). Returns null
|
|
3274
|
+
* when not set — serve your own static file instead. llms.txt is app content,
|
|
3275
|
+
* not platform-managed.
|
|
3276
|
+
*/
|
|
3277
|
+
declare function buildLlmsTxt(config: AgentReadyConfig): DiscoveryDocument | null;
|
|
2532
3278
|
/**
|
|
2533
3279
|
* API Catalog (RFC 9727) as a `linkset+json` document for
|
|
2534
3280
|
* `/.well-known/api-catalog`. Returns null when no APIs are configured.
|
|
@@ -2546,6 +3292,42 @@ declare function buildMcpServerCard(config: AgentReadyConfig): DiscoveryDocument
|
|
|
2546
3292
|
* there is nothing to describe (no authorizationServer and no override).
|
|
2547
3293
|
*/
|
|
2548
3294
|
declare function buildAuthMd(config: AgentReadyConfig, bundle: AgentReadinessBundle): DiscoveryDocument | null;
|
|
3295
|
+
/**
|
|
3296
|
+
* robots.txt with AI-bot policy groups, Content Signals, and sitemap
|
|
3297
|
+
* references. Always returns a document — with no `config.robots` it emits an
|
|
3298
|
+
* allow-all default policy plus an explicit `Allow: /` group per known AI bot.
|
|
3299
|
+
*/
|
|
3300
|
+
declare function buildRobotsTxt(config: AgentReadyConfig): DiscoveryDocument;
|
|
3301
|
+
/**
|
|
3302
|
+
* A minimal sitemap.xml from `config.sitemap.urls`, or null when not
|
|
3303
|
+
* configured. Meant for API-first apps that would otherwise have no sitemap —
|
|
3304
|
+
* apps with real content pipelines (e.g. next-sitemap) should keep those and
|
|
3305
|
+
* omit `config.sitemap`.
|
|
3306
|
+
*/
|
|
3307
|
+
declare function buildSitemap(config: AgentReadyConfig): DiscoveryDocument | null;
|
|
3308
|
+
/**
|
|
3309
|
+
* True when an `Accept` header prefers markdown (`text/markdown` /
|
|
3310
|
+
* `text/x-markdown`) over `text/html` — q-value aware, so
|
|
3311
|
+
* `text/html;q=0.5, text/markdown` is markdown but `text/markdown;q=0.1,
|
|
3312
|
+
* text/html` is not. A bare wildcard does not count as a markdown preference.
|
|
3313
|
+
*/
|
|
3314
|
+
declare function wantsMarkdown(acceptHeader: string | null | undefined): boolean;
|
|
3315
|
+
/**
|
|
3316
|
+
* Markdown content negotiation: pick the markdown or HTML variant of a page
|
|
3317
|
+
* per the `Accept` header. The returned document carries `vary: 'Accept'` —
|
|
3318
|
+
* forward it so caches key on the header.
|
|
3319
|
+
*/
|
|
3320
|
+
declare function negotiateMarkdown(acceptHeader: string | null | undefined, variants: {
|
|
3321
|
+
html: string;
|
|
3322
|
+
markdown: string;
|
|
3323
|
+
}, config?: Pick<AgentReadyConfig, 'cacheTtlSeconds'>): DiscoveryDocument;
|
|
3324
|
+
/**
|
|
3325
|
+
* Value for a `Link` response header advertising this app's discovery
|
|
3326
|
+
* documents (llms.txt, Agent Card, and — when configured — sitemap, API
|
|
3327
|
+
* catalog, MCP server card). Sync and pure (no platform fetch), so it's safe
|
|
3328
|
+
* in edge middleware.
|
|
3329
|
+
*/
|
|
3330
|
+
declare function buildDiscoveryLinkHeader(config: AgentReadyConfig): string;
|
|
2549
3331
|
/**
|
|
2550
3332
|
* Resolve any `.well-known` request path to its discovery document, or null if
|
|
2551
3333
|
* this app serves nothing there (caller should 404).
|
|
@@ -2554,10 +3336,18 @@ declare function buildAuthMd(config: AgentReadyConfig, bundle: AgentReadinessBun
|
|
|
2554
3336
|
* oauth-authorization-server (pointer), agent-skills index + SKILL.md,
|
|
2555
3337
|
* security.txt, api-catalog (RFC 9727), and the MCP server card.
|
|
2556
3338
|
*
|
|
2557
|
-
* Root-level docs
|
|
2558
|
-
*
|
|
3339
|
+
* Root-level docs (`/robots.txt`, `/llms.txt`, `/auth.md`, …) are not handled
|
|
3340
|
+
* here — use {@link resolveAgentPath}, which covers both, for new wiring.
|
|
2559
3341
|
*/
|
|
2560
3342
|
declare function resolveWellKnown(requestPath: string, config: AgentReadyConfig): Promise<DiscoveryDocument | null>;
|
|
3343
|
+
/**
|
|
3344
|
+
* Superset of {@link resolveWellKnown}: resolves ANY agent-facing path — the
|
|
3345
|
+
* root-level documents (`/robots.txt`, `/sitemap.xml`, `/llms.txt`,
|
|
3346
|
+
* `/auth.md`, `/security.txt`) plus everything under `/.well-known/*`. One
|
|
3347
|
+
* catch-all (or middleware) wired to this function covers the app's entire
|
|
3348
|
+
* agent-readiness surface. Returns null for paths this app doesn't serve.
|
|
3349
|
+
*/
|
|
3350
|
+
declare function resolveAgentPath(requestPath: string, config: AgentReadyConfig): Promise<DiscoveryDocument | null>;
|
|
2561
3351
|
/** A WebMCP tool definition exposed to in-page agents via `navigator.modelContext`. */
|
|
2562
3352
|
interface WebMcpTool {
|
|
2563
3353
|
name: string;
|
|
@@ -2644,6 +3434,13 @@ interface AppTokenRequestClaims {
|
|
|
2644
3434
|
resource?: string[];
|
|
2645
3435
|
/** The OAuth2 client's display title. */
|
|
2646
3436
|
clientTitle?: string;
|
|
3437
|
+
/**
|
|
3438
|
+
* Per-user BuildBase session bound to this grant. Embed it ENCRYPTED in the
|
|
3439
|
+
* token you mint (JWTs are signed, not encrypted) and never store it — your
|
|
3440
|
+
* MCP/agent endpoints decrypt it per request to call BuildBase as this user
|
|
3441
|
+
* (`buildbase.withSession(...)`). Fresh on every grant, including refresh.
|
|
3442
|
+
*/
|
|
3443
|
+
sessionId?: string;
|
|
2647
3444
|
[claim: string]: unknown;
|
|
2648
3445
|
}
|
|
2649
3446
|
/** The payload BuildBase sends to `applicationRevokeUrl`. */
|
|
@@ -2653,14 +3450,43 @@ interface AppRevokeRequestClaims {
|
|
|
2653
3450
|
reason: string;
|
|
2654
3451
|
[claim: string]: unknown;
|
|
2655
3452
|
}
|
|
3453
|
+
/** Options for {@link verifyClientJwt} (all optional; secure defaults). */
|
|
3454
|
+
interface VerifyClientJwtOptions {
|
|
3455
|
+
/** Allowed clock skew in seconds for `exp`/`nbf`. Default 60. */
|
|
3456
|
+
clockToleranceSec?: number;
|
|
3457
|
+
/**
|
|
3458
|
+
* Require a numeric `exp` claim. Default **true** — a JWT with no expiry
|
|
3459
|
+
* would never expire, so a leaked token stays valid forever. Set `false`
|
|
3460
|
+
* only for a token type you know is intentionally non-expiring.
|
|
3461
|
+
*/
|
|
3462
|
+
requireExp?: boolean;
|
|
3463
|
+
/** If set, `iss` must equal this value (RFC 7519 issuer check). */
|
|
3464
|
+
issuer?: string;
|
|
3465
|
+
/** If set, `aud` must equal (or, for an array `aud`, include) this value. */
|
|
3466
|
+
audience?: string;
|
|
3467
|
+
}
|
|
2656
3468
|
/**
|
|
2657
3469
|
* Verify a BuildBase-issued HS256 JWT (signed with the client secret) and return
|
|
2658
|
-
* its payload. Checks the signature (timing-safe), the algorithm,
|
|
3470
|
+
* its payload. Checks the signature (timing-safe), the algorithm, `exp`/`nbf`,
|
|
3471
|
+
* and — by default — that an `exp` is present at all. Optionally pins `iss`/`aud`.
|
|
2659
3472
|
* Throws {@link AppBridgeError} on any failure.
|
|
3473
|
+
*
|
|
3474
|
+
* The third argument accepts either the legacy `clockToleranceSec` number or a
|
|
3475
|
+
* {@link VerifyClientJwtOptions} object.
|
|
2660
3476
|
*/
|
|
2661
|
-
declare function verifyClientJwt(token: string, clientSecret: string,
|
|
3477
|
+
declare function verifyClientJwt(token: string, clientSecret: string, optionsOrTolerance?: number | VerifyClientJwtOptions): Record<string, any>;
|
|
2662
3478
|
/** Extract the token from an `Authorization: Bearer <token>` header. */
|
|
2663
3479
|
declare function extractBearerToken(authorization: string | null | undefined): string | null;
|
|
3480
|
+
/**
|
|
3481
|
+
* Sign an HS256 JWT — the symmetric counterpart of {@link verifyClientJwt}.
|
|
3482
|
+
* Sets `iat` and `exp` (from `expiresInSec`, default 3600) unless the payload
|
|
3483
|
+
* already carries them. The intended use is minting the app's own agent access
|
|
3484
|
+
* tokens in an `applicationTokenUrl` handler, embedding whatever claims the
|
|
3485
|
+
* MCP/API layer needs to verify later (e.g. `sub`, `scope`, a session id).
|
|
3486
|
+
*/
|
|
3487
|
+
declare function signClientJwt(payload: Record<string, unknown>, secret: string, options?: {
|
|
3488
|
+
expiresInSec?: number;
|
|
3489
|
+
}): string;
|
|
2664
3490
|
interface VerifyOptions {
|
|
2665
3491
|
/** The `Authorization` header value from the incoming request. */
|
|
2666
3492
|
authorization: string | null | undefined;
|
|
@@ -2735,20 +3561,6 @@ declare function handleAppRevokeRequest(options: {
|
|
|
2735
3561
|
success: boolean;
|
|
2736
3562
|
message?: string;
|
|
2737
3563
|
}>>;
|
|
2738
|
-
/**
|
|
2739
|
-
* Build the 401 an agent should receive when it calls your protected API without
|
|
2740
|
-
* a valid token. The `WWW-Authenticate: Bearer resource_metadata=...` header
|
|
2741
|
-
* points the agent at your `/.well-known/oauth-protected-resource` document,
|
|
2742
|
-
* bootstrapping the OAuth discovery flow (RFC 9728 §5.1, RFC 6750 §3).
|
|
2743
|
-
*
|
|
2744
|
-
* @example
|
|
2745
|
-
* ```ts
|
|
2746
|
-
* if (!isValid(token)) {
|
|
2747
|
-
* const c = bearerChallenge({ resourceMetadataUrl: "https://imejis.io/.well-known/oauth-protected-resource" });
|
|
2748
|
-
* res.writeHead(c.status, c.headers).end(c.body);
|
|
2749
|
-
* }
|
|
2750
|
-
* ```
|
|
2751
|
-
*/
|
|
2752
3564
|
declare function bearerChallenge(options: {
|
|
2753
3565
|
resourceMetadataUrl: string;
|
|
2754
3566
|
error?: 'invalid_token' | 'insufficient_scope' | string;
|
|
@@ -3043,5 +3855,5 @@ interface BuildBaseResult extends ScopedActions {
|
|
|
3043
3855
|
}
|
|
3044
3856
|
declare function BuildBase(config: BuildBaseConfig): BuildBaseResult;
|
|
3045
3857
|
|
|
3046
|
-
export { ApiVersion, AppBridgeError, AuthApi, AuthStatus, BBAction, BBScreen, BBStatus, BB_PARAM, BaseApi, BetaForm, BillingIntervals, BuildBase, CURRENCY_DISPLAY, CURRENCY_FLAG, CreditBucketSource, CreditBucketStatus, CreditTransactionType, DEFAULT_ROLE_PERMISSIONS, DunningState, EventEmitter, InvoiceStatuses, PLAN_CURRENCY_CODES, PLAN_CURRENCY_OPTIONS, PUSH_SERVICE_WORKER_SCRIPT, Permission, PushApi, SDKEvent, SettingsApi, SubscriptionItemType, SubscriptionStatus, UserApi, WorkspaceApi, appTokenFailure, appTokenSuccess, bearerChallenge, buildAgentCard, buildAgentSkillsIndex, buildApiCatalog, buildAuthMd, buildLlmsTxt, buildMcpServerCard, buildProtectedResourceMetadata, buildSecurityTxt, buildSkillMd, calculateBillableSeats, calculateSeatOverageCents, calculateTotalSubscriptionCents, cleanBBParams, clearAgentReadinessCache, clearAuthIntent, consumeAuthIntent, createBBUrl, createCheckoutRedirectUrls, createCreditPurchaseRedirectUrls, BuildBase as default, eventEmitter, extractBearerToken, fetchAgentReadiness, formatCents, formatOverageRate, formatOverageRateWithLabel, formatQuotaIncludedOverage, formatQuotaWithPrice, getAvailableCurrenciesFromPlans, getBasePriceCents, getBillingIntervalAndCurrencyFromPriceId, getCurrencyFlag, getCurrencySymbol, getDisplayCurrency, getPerSeatPriceCents, getPricingVariant, getQuotaDisplayValue, getQuotaDisplayWithVariant, getQuotaOverageCents, getQuotaUnitLabelFromName, getSeatPricing, getStripePriceIdForInterval, handleAppRevokeRequest, handleAppTokenRequest, hasPermission, invalidateCreditBalance, invalidateQuotaUsage, invalidateSubscription, parseWebhookEvent, provideWebMcpTools, readBBParams, resolveMaxUsers, resolvePermissions, resolveWellKnown, safeRedirect, saveAuthIntent, sha256Digest, validateInvite, validateRedirectUrl, verifyAppRevokeRequest, verifyAppTokenRequest, verifyClientJwt, verifyWebhookSignature };
|
|
3047
|
-
export type { AgentReadinessBundle, AgentReadyConfig, AgentSkill, ApiCatalogApi, AppRevokeRequestClaims, AppTokenRequestClaims, AppTokenResponseBody, AppTokenResult, BBActionType, BBScreenType, BBStatusType, BetaFormData, BetaFormResponse, BillingInterval, BuildBaseConfig, BuildBaseResult, BuildBaseSession, CheckoutResult, CreditActions, CreditBucketSourceType, CreditBucketStatusType, CreditTransactionTypeValue, DiscoveryDocument, DunningStateType, EventData, EventType, FeatureActions, FormatQuotaWithPriceOptions, GetCheckoutStripeParams, HandlerResult, IAllQuotaUsageResponse, IBaseApiConfig, IBasePricing, IBetaConfig, ICheckoutSessionRequest, ICheckoutSessionResponse, ICheckoutStripeOptions, IConsumeCreditsRequest, IConsumeCreditsResponse, ICreditBalance, ICreditBucket, ICreditBucketsQuery, ICreditBucketsResponse, ICreditPackage, ICreditPackagePricingVariant, ICreditPurchaseRequest, ICreditPurchaseResponse, ICreditTransaction, ICreditTransactionsQuery, ICreditTransactionsResponse, IEventCallbacks, IExpiringCreditsResponse, IInvoice, IInvoiceListResponse, IInvoiceResponse, IOsConfig, IOsState, IPlan, IPlanGroup, IPlanGroupInfo, IPlanGroupLatestVersion, IPlanGroupResponse, IPlanGroupVersion, IPlanGroupVersionWithPlans, IPlanGroupVersionsResponse, IPlanVersion, IPlanVersionSummary, IPlanVersionWithPlan, IPricingVariant, IPublicCreditPackage, IPublicCreditPackagesResponse, IPublicPlanItem, IPublicPlanItemCategory, IPublicPlanVersion, IPublicPlansResponse, IQuotaByInterval, IQuotaIntervalValue, IQuotaOveragePriceIdsByInterval, IQuotaOveragesByInterval, IQuotaUsageStatus, IQuotaUsageStatusResponse, IRecordUsageRequest, IRecordUsageResponse, IStripePricesByInterval, ISubscription, ISubscriptionItem, ISubscriptionResponse, ISubscriptionUpdateRequest, ISubscriptionUpdateResponse, IUsageLogEntry, IUsageLogsQuery, IUsageLogsResponse, InviteBlockReason, InviteValidation, InvoiceActions, InvoiceStatus, InvoiceStatusType, MaxUsersConfig, McpServerCard, NotificationData, NotificationEvent, NotificationResult, OnWorkspaceChangeParams, PermissionActions, PermissionContext, PermissionKey, PlanActions, PlanVersionWithPricingVariants, QuotaDisplayValue, QuotaDisplayWithOverage, RolePermissionMap, ScopedActions, SettingsActions, SubscriptionActions, SubscriptionItemTypeValue, SubscriptionStatusType, UsageActions, UserActions, UserCreatedEventData, UserUpdatedEventData, WebMcpTool, WorkspaceActions, WorkspaceChangedEventData, WorkspaceCreatedEventData, WorkspaceDeletedEventData, WorkspaceUpdatedEventData, WorkspaceUserAddedEventData, WorkspaceUserRemovedEventData, WorkspaceUserRoleChangedEventData };
|
|
3858
|
+
export { AI_BOT_USER_AGENTS, ApiVersion, AppBridgeError, AuthApi, AuthStatus, BBAction, BBScreen, BBStatus, BB_PARAM, BaseApi, BetaForm, BillingIntervals, BuildBase, CURRENCY_DISPLAY, CURRENCY_FLAG, CreditBucketSource, CreditBucketStatus, CreditTransactionType, DEFAULT_ROLE_PERMISSIONS, DunningState, EventEmitter, InvoiceStatuses, PLAN_CURRENCY_CODES, PLAN_CURRENCY_OPTIONS, PUSH_SERVICE_WORKER_SCRIPT, Permission, PushApi, SDKEvent, SettingsApi, SubscriptionItemType, SubscriptionStatus, UserApi, WorkspaceApi, appTokenFailure, appTokenSuccess, bearerChallenge, buildAgentCard, buildAgentSkillsIndex, buildApiCatalog, buildAuthMd, buildDiscoveryLinkHeader, buildLlmsTxt, buildMcpServerCard, buildProtectedResourceMetadata, buildRobotsTxt, buildSecurityTxt, buildSitemap, buildSkillMd, calculateBillableSeats, calculateSeatOverageCents, calculateTotalSubscriptionCents, cleanBBParams, clearAgentReadinessCache, clearAuthIntent, consumeAuthIntent, createBBUrl, createCheckoutRedirectUrls, createCreditPurchaseRedirectUrls, BuildBase as default, eventEmitter, extractBearerToken, fetchAgentReadiness, formatCents, formatOverageRate, formatOverageRateWithLabel, formatQuotaIncludedOverage, formatQuotaWithPrice, getAvailableCurrenciesFromPlans, getBasePriceCents, getBillingIntervalAndCurrencyFromPriceId, getCurrencyFlag, getCurrencySymbol, getDisplayCurrency, getPerSeatPriceCents, getPricingVariant, getQuotaDisplayValue, getQuotaDisplayWithVariant, getQuotaOverageCents, getQuotaUnitLabelFromName, getSeatPricing, getStripePriceIdForInterval, handleAppRevokeRequest, handleAppTokenRequest, hasPermission, invalidateCreditBalance, invalidateQuotaUsage, invalidateSubscription, negotiateMarkdown, parseWebhookEvent, provideWebMcpTools, readBBParams, resolveAgentPath, resolveMaxUsers, resolvePermissions, resolveWellKnown, safeRedirect, saveAuthIntent, sha256Digest, signClientJwt, validateInvite, validateRedirectUrl, verifyAppRevokeRequest, verifyAppTokenRequest, verifyClientJwt, verifyWebhookSignature, wantsMarkdown };
|
|
3859
|
+
export type { AgentReadinessBundle, AgentReadyConfig, AgentSkill, ApiCatalogApi, AppRevokeRequestClaims, AppTokenRequestClaims, AppTokenResponseBody, AppTokenResult, BBActionType, BBScreenType, BBStatusType, BetaFormData, BetaFormResponse, BillingInterval, BuildBaseConfig, BuildBaseResult, BuildBaseSession, CheckoutResult, ContentSignals, CreditActions, CreditBucketSourceType, CreditBucketStatusType, CreditTransactionTypeValue, DiscoveryDocument, DunningStateType, EventData, EventType, FeatureActions, FormatQuotaWithPriceOptions, GetCheckoutStripeParams, HandlerResult, IAllQuotaUsageResponse, IBaseApiConfig, IBasePricing, IBetaConfig, ICheckoutSessionRequest, ICheckoutSessionResponse, ICheckoutStripeOptions, IConsumeCreditsRequest, IConsumeCreditsResponse, ICreditBalance, ICreditBucket, ICreditBucketsQuery, ICreditBucketsResponse, ICreditPackage, ICreditPackagePricingVariant, ICreditPurchaseRequest, ICreditPurchaseResponse, ICreditTransaction, ICreditTransactionsQuery, ICreditTransactionsResponse, IEventCallbacks, IExpiringCreditsResponse, IInvoice, IInvoiceListResponse, IInvoiceResponse, IOsConfig, IOsState, IPlan, IPlanGroup, IPlanGroupInfo, IPlanGroupLatestVersion, IPlanGroupResponse, IPlanGroupVersion, IPlanGroupVersionWithPlans, IPlanGroupVersionsResponse, IPlanVersion, IPlanVersionSummary, IPlanVersionWithPlan, IPricingVariant, IPublicCreditPackage, IPublicCreditPackagesResponse, IPublicPlanItem, IPublicPlanItemCategory, IPublicPlanVersion, IPublicPlansResponse, IQuotaByInterval, IQuotaIntervalValue, IQuotaOveragePriceIdsByInterval, IQuotaOveragesByInterval, IQuotaUsageStatus, IQuotaUsageStatusResponse, IRecordUsageRequest, IRecordUsageResponse, ISettings, IStripePricesByInterval, ISubscription, ISubscriptionItem, ISubscriptionResponse, ISubscriptionUpdateRequest, ISubscriptionUpdateResponse, IUsageLogEntry, IUsageLogsQuery, IUsageLogsResponse, IUser, IWorkspace, InviteBlockReason, InviteValidation, InvoiceActions, InvoiceStatus, InvoiceStatusType, MaxUsersConfig, McpServerCard, NotificationData, NotificationEvent, NotificationResult, OnWorkspaceChangeParams, PermissionActions, PermissionContext, PermissionKey, PlanActions, PlanVersionWithPricingVariants, QuotaDisplayValue, QuotaDisplayWithOverage, RobotsConfig, RobotsPolicy, RolePermissionMap, ScopedActions, SettingsActions, SitemapUrl, SubscriptionActions, SubscriptionItemTypeValue, SubscriptionStatusType, TranslationKey, UsageActions, UserActions, UserCreatedEventData, UserUpdatedEventData, WebMcpTool, WorkspaceActions, WorkspaceChangedEventData, WorkspaceCreatedEventData, WorkspaceDeletedEventData, WorkspaceUpdatedEventData, WorkspaceUserAddedEventData, WorkspaceUserRemovedEventData, WorkspaceUserRoleChangedEventData };
|