@runtypelabs/sdk 4.8.0 → 4.9.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
@@ -3240,6 +3240,826 @@ interface paths {
3240
3240
  patch?: never;
3241
3241
  trace?: never;
3242
3242
  };
3243
+ "/v1/apps": {
3244
+ parameters: {
3245
+ query?: never;
3246
+ header?: never;
3247
+ path?: never;
3248
+ cookie?: never;
3249
+ };
3250
+ /**
3251
+ * List apps
3252
+ * @description List apps for the authenticated owner, newest first.
3253
+ */
3254
+ get: {
3255
+ parameters: {
3256
+ query?: never;
3257
+ header?: never;
3258
+ path?: never;
3259
+ cookie?: never;
3260
+ };
3261
+ requestBody?: never;
3262
+ responses: {
3263
+ /** @description Apps */
3264
+ 200: {
3265
+ headers: {
3266
+ [name: string]: unknown;
3267
+ };
3268
+ content: {
3269
+ "application/json": {
3270
+ data: {
3271
+ activeVersionId: string | null;
3272
+ clientTokenId: string | null;
3273
+ createdAt: string;
3274
+ description: string | null;
3275
+ hostname: string;
3276
+ id: string;
3277
+ name: string;
3278
+ shortId: string;
3279
+ slug: string;
3280
+ /** @enum {string} */
3281
+ status: "active" | "suspended";
3282
+ updatedAt: string;
3283
+ url: string;
3284
+ /** @enum {string} */
3285
+ visibility: "public" | "unlisted";
3286
+ }[];
3287
+ };
3288
+ };
3289
+ };
3290
+ /** @description Unauthorized */
3291
+ 401: {
3292
+ headers: {
3293
+ [name: string]: unknown;
3294
+ };
3295
+ content: {
3296
+ "application/json": components["schemas"]["Error"];
3297
+ };
3298
+ };
3299
+ /** @description Insufficient permissions */
3300
+ 403: {
3301
+ headers: {
3302
+ [name: string]: unknown;
3303
+ };
3304
+ content: {
3305
+ "application/json": components["schemas"]["Error"];
3306
+ };
3307
+ };
3308
+ /** @description Internal server error */
3309
+ 500: {
3310
+ headers: {
3311
+ [name: string]: unknown;
3312
+ };
3313
+ content: {
3314
+ "application/json": components["schemas"]["Error"];
3315
+ };
3316
+ };
3317
+ };
3318
+ };
3319
+ put?: never;
3320
+ /**
3321
+ * Create an app
3322
+ * @description Create an app. The hostname is {slug}-{shortId}.runtype.run; a client token scoped to that origin is auto-provisioned. Upload a version and activate it to start serving.
3323
+ */
3324
+ post: {
3325
+ parameters: {
3326
+ query?: never;
3327
+ header?: never;
3328
+ path?: never;
3329
+ cookie?: never;
3330
+ };
3331
+ requestBody: {
3332
+ content: {
3333
+ "application/json": {
3334
+ description?: string;
3335
+ name: string;
3336
+ /** @description Hostname slug: lowercase letters, digits, and hyphens; must start with a letter. The app serves at {slug}-{shortId}.runtype.run. */
3337
+ slug: string;
3338
+ /**
3339
+ * @default unlisted
3340
+ * @enum {string}
3341
+ */
3342
+ visibility?: "public" | "unlisted";
3343
+ };
3344
+ };
3345
+ };
3346
+ responses: {
3347
+ /** @description App created */
3348
+ 201: {
3349
+ headers: {
3350
+ [name: string]: unknown;
3351
+ };
3352
+ content: {
3353
+ "application/json": {
3354
+ activeVersionId: string | null;
3355
+ clientTokenId: string | null;
3356
+ createdAt: string;
3357
+ description: string | null;
3358
+ hostname: string;
3359
+ id: string;
3360
+ name: string;
3361
+ shortId: string;
3362
+ slug: string;
3363
+ /** @enum {string} */
3364
+ status: "active" | "suspended";
3365
+ updatedAt: string;
3366
+ url: string;
3367
+ /** @enum {string} */
3368
+ visibility: "public" | "unlisted";
3369
+ };
3370
+ };
3371
+ };
3372
+ /** @description Invalid input */
3373
+ 400: {
3374
+ headers: {
3375
+ [name: string]: unknown;
3376
+ };
3377
+ content: {
3378
+ "application/json": components["schemas"]["Error"];
3379
+ };
3380
+ };
3381
+ /** @description Unauthorized */
3382
+ 401: {
3383
+ headers: {
3384
+ [name: string]: unknown;
3385
+ };
3386
+ content: {
3387
+ "application/json": components["schemas"]["Error"];
3388
+ };
3389
+ };
3390
+ /** @description Plan limit reached */
3391
+ 402: {
3392
+ headers: {
3393
+ [name: string]: unknown;
3394
+ };
3395
+ content: {
3396
+ "application/json": components["schemas"]["Error"];
3397
+ };
3398
+ };
3399
+ /** @description Insufficient permissions */
3400
+ 403: {
3401
+ headers: {
3402
+ [name: string]: unknown;
3403
+ };
3404
+ content: {
3405
+ "application/json": components["schemas"]["Error"];
3406
+ };
3407
+ };
3408
+ /** @description Internal server error */
3409
+ 500: {
3410
+ headers: {
3411
+ [name: string]: unknown;
3412
+ };
3413
+ content: {
3414
+ "application/json": components["schemas"]["Error"];
3415
+ };
3416
+ };
3417
+ };
3418
+ };
3419
+ delete?: never;
3420
+ options?: never;
3421
+ head?: never;
3422
+ patch?: never;
3423
+ trace?: never;
3424
+ };
3425
+ "/v1/apps/{id}": {
3426
+ parameters: {
3427
+ query?: never;
3428
+ header?: never;
3429
+ path?: never;
3430
+ cookie?: never;
3431
+ };
3432
+ /** Get an app */
3433
+ get: {
3434
+ parameters: {
3435
+ query?: never;
3436
+ header?: never;
3437
+ path: {
3438
+ id: string;
3439
+ };
3440
+ cookie?: never;
3441
+ };
3442
+ requestBody?: never;
3443
+ responses: {
3444
+ /** @description App */
3445
+ 200: {
3446
+ headers: {
3447
+ [name: string]: unknown;
3448
+ };
3449
+ content: {
3450
+ "application/json": {
3451
+ activeVersionId: string | null;
3452
+ clientTokenId: string | null;
3453
+ createdAt: string;
3454
+ description: string | null;
3455
+ hostname: string;
3456
+ id: string;
3457
+ name: string;
3458
+ shortId: string;
3459
+ slug: string;
3460
+ /** @enum {string} */
3461
+ status: "active" | "suspended";
3462
+ updatedAt: string;
3463
+ url: string;
3464
+ /** @enum {string} */
3465
+ visibility: "public" | "unlisted";
3466
+ };
3467
+ };
3468
+ };
3469
+ /** @description Invalid id */
3470
+ 400: {
3471
+ headers: {
3472
+ [name: string]: unknown;
3473
+ };
3474
+ content: {
3475
+ "application/json": components["schemas"]["Error"];
3476
+ };
3477
+ };
3478
+ /** @description Unauthorized */
3479
+ 401: {
3480
+ headers: {
3481
+ [name: string]: unknown;
3482
+ };
3483
+ content: {
3484
+ "application/json": components["schemas"]["Error"];
3485
+ };
3486
+ };
3487
+ /** @description Insufficient permissions */
3488
+ 403: {
3489
+ headers: {
3490
+ [name: string]: unknown;
3491
+ };
3492
+ content: {
3493
+ "application/json": components["schemas"]["Error"];
3494
+ };
3495
+ };
3496
+ /** @description Not found */
3497
+ 404: {
3498
+ headers: {
3499
+ [name: string]: unknown;
3500
+ };
3501
+ content: {
3502
+ "application/json": components["schemas"]["Error"];
3503
+ };
3504
+ };
3505
+ };
3506
+ };
3507
+ put?: never;
3508
+ post?: never;
3509
+ /**
3510
+ * Delete an app
3511
+ * @description Delete an app, its versions, and its routing. Stored bundle files are cleaned up in the background; the auto-provisioned client token is deactivated.
3512
+ */
3513
+ delete: {
3514
+ parameters: {
3515
+ query?: never;
3516
+ header?: never;
3517
+ path: {
3518
+ id: string;
3519
+ };
3520
+ cookie?: never;
3521
+ };
3522
+ requestBody?: never;
3523
+ responses: {
3524
+ /** @description Deleted */
3525
+ 200: {
3526
+ headers: {
3527
+ [name: string]: unknown;
3528
+ };
3529
+ content: {
3530
+ "application/json": {
3531
+ success: boolean;
3532
+ };
3533
+ };
3534
+ };
3535
+ /** @description Invalid id */
3536
+ 400: {
3537
+ headers: {
3538
+ [name: string]: unknown;
3539
+ };
3540
+ content: {
3541
+ "application/json": components["schemas"]["Error"];
3542
+ };
3543
+ };
3544
+ /** @description Unauthorized */
3545
+ 401: {
3546
+ headers: {
3547
+ [name: string]: unknown;
3548
+ };
3549
+ content: {
3550
+ "application/json": components["schemas"]["Error"];
3551
+ };
3552
+ };
3553
+ /** @description Insufficient permissions */
3554
+ 403: {
3555
+ headers: {
3556
+ [name: string]: unknown;
3557
+ };
3558
+ content: {
3559
+ "application/json": components["schemas"]["Error"];
3560
+ };
3561
+ };
3562
+ /** @description Not found */
3563
+ 404: {
3564
+ headers: {
3565
+ [name: string]: unknown;
3566
+ };
3567
+ content: {
3568
+ "application/json": components["schemas"]["Error"];
3569
+ };
3570
+ };
3571
+ /** @description Internal server error */
3572
+ 500: {
3573
+ headers: {
3574
+ [name: string]: unknown;
3575
+ };
3576
+ content: {
3577
+ "application/json": components["schemas"]["Error"];
3578
+ };
3579
+ };
3580
+ };
3581
+ };
3582
+ options?: never;
3583
+ head?: never;
3584
+ /**
3585
+ * Update an app
3586
+ * @description Update name, description, visibility, or status. Setting status to suspended makes the edge serve 410 for the app.
3587
+ */
3588
+ patch: {
3589
+ parameters: {
3590
+ query?: never;
3591
+ header?: never;
3592
+ path: {
3593
+ id: string;
3594
+ };
3595
+ cookie?: never;
3596
+ };
3597
+ requestBody: {
3598
+ content: {
3599
+ "application/json": {
3600
+ description?: string | null;
3601
+ name?: string;
3602
+ /** @enum {string} */
3603
+ status?: "active" | "suspended";
3604
+ /** @enum {string} */
3605
+ visibility?: "public" | "unlisted";
3606
+ };
3607
+ };
3608
+ };
3609
+ responses: {
3610
+ /** @description Updated app */
3611
+ 200: {
3612
+ headers: {
3613
+ [name: string]: unknown;
3614
+ };
3615
+ content: {
3616
+ "application/json": {
3617
+ activeVersionId: string | null;
3618
+ clientTokenId: string | null;
3619
+ createdAt: string;
3620
+ description: string | null;
3621
+ hostname: string;
3622
+ id: string;
3623
+ name: string;
3624
+ shortId: string;
3625
+ slug: string;
3626
+ /** @enum {string} */
3627
+ status: "active" | "suspended";
3628
+ updatedAt: string;
3629
+ url: string;
3630
+ /** @enum {string} */
3631
+ visibility: "public" | "unlisted";
3632
+ };
3633
+ };
3634
+ };
3635
+ /** @description Invalid input */
3636
+ 400: {
3637
+ headers: {
3638
+ [name: string]: unknown;
3639
+ };
3640
+ content: {
3641
+ "application/json": components["schemas"]["Error"];
3642
+ };
3643
+ };
3644
+ /** @description Unauthorized */
3645
+ 401: {
3646
+ headers: {
3647
+ [name: string]: unknown;
3648
+ };
3649
+ content: {
3650
+ "application/json": components["schemas"]["Error"];
3651
+ };
3652
+ };
3653
+ /** @description Plan limit reached */
3654
+ 402: {
3655
+ headers: {
3656
+ [name: string]: unknown;
3657
+ };
3658
+ content: {
3659
+ "application/json": components["schemas"]["Error"];
3660
+ };
3661
+ };
3662
+ /** @description Insufficient permissions */
3663
+ 403: {
3664
+ headers: {
3665
+ [name: string]: unknown;
3666
+ };
3667
+ content: {
3668
+ "application/json": components["schemas"]["Error"];
3669
+ };
3670
+ };
3671
+ /** @description Not found */
3672
+ 404: {
3673
+ headers: {
3674
+ [name: string]: unknown;
3675
+ };
3676
+ content: {
3677
+ "application/json": components["schemas"]["Error"];
3678
+ };
3679
+ };
3680
+ /** @description Internal server error */
3681
+ 500: {
3682
+ headers: {
3683
+ [name: string]: unknown;
3684
+ };
3685
+ content: {
3686
+ "application/json": components["schemas"]["Error"];
3687
+ };
3688
+ };
3689
+ };
3690
+ };
3691
+ trace?: never;
3692
+ };
3693
+ "/v1/apps/{id}/activate": {
3694
+ parameters: {
3695
+ query?: never;
3696
+ header?: never;
3697
+ path?: never;
3698
+ cookie?: never;
3699
+ };
3700
+ get?: never;
3701
+ put?: never;
3702
+ /**
3703
+ * Activate an app version
3704
+ * @description Flip the active-version pointer to the given version (deploy or rollback). Syncs the app client token to the manifest capabilities and updates edge routing.
3705
+ */
3706
+ post: {
3707
+ parameters: {
3708
+ query?: never;
3709
+ header?: never;
3710
+ path: {
3711
+ id: string;
3712
+ };
3713
+ cookie?: never;
3714
+ };
3715
+ requestBody: {
3716
+ content: {
3717
+ "application/json": {
3718
+ versionId: string;
3719
+ };
3720
+ };
3721
+ };
3722
+ responses: {
3723
+ /** @description Activated */
3724
+ 200: {
3725
+ headers: {
3726
+ [name: string]: unknown;
3727
+ };
3728
+ content: {
3729
+ "application/json": {
3730
+ app: {
3731
+ activeVersionId: string | null;
3732
+ clientTokenId: string | null;
3733
+ createdAt: string;
3734
+ description: string | null;
3735
+ hostname: string;
3736
+ id: string;
3737
+ name: string;
3738
+ shortId: string;
3739
+ slug: string;
3740
+ /** @enum {string} */
3741
+ status: "active" | "suspended";
3742
+ updatedAt: string;
3743
+ url: string;
3744
+ /** @enum {string} */
3745
+ visibility: "public" | "unlisted";
3746
+ };
3747
+ version: {
3748
+ appId: string;
3749
+ bundleHash: string;
3750
+ createdAt: string;
3751
+ createdBy: string;
3752
+ fileCount: number;
3753
+ id: string;
3754
+ manifest: {
3755
+ /** @enum {string} */
3756
+ auth: "none" | "optional" | "required";
3757
+ capabilities: {
3758
+ agents: string[];
3759
+ flows: string[];
3760
+ };
3761
+ data: {
3762
+ /** @enum {string} */
3763
+ access: "read" | "read-write";
3764
+ namespace: string;
3765
+ }[];
3766
+ description?: string;
3767
+ name: string;
3768
+ };
3769
+ sizeBytes: number;
3770
+ /** @enum {string} */
3771
+ status: "uploaded" | "active" | "superseded";
3772
+ versionNumber: number;
3773
+ };
3774
+ };
3775
+ };
3776
+ };
3777
+ /** @description Invalid input */
3778
+ 400: {
3779
+ headers: {
3780
+ [name: string]: unknown;
3781
+ };
3782
+ content: {
3783
+ "application/json": components["schemas"]["Error"];
3784
+ };
3785
+ };
3786
+ /** @description Unauthorized */
3787
+ 401: {
3788
+ headers: {
3789
+ [name: string]: unknown;
3790
+ };
3791
+ content: {
3792
+ "application/json": components["schemas"]["Error"];
3793
+ };
3794
+ };
3795
+ /** @description Insufficient permissions */
3796
+ 403: {
3797
+ headers: {
3798
+ [name: string]: unknown;
3799
+ };
3800
+ content: {
3801
+ "application/json": components["schemas"]["Error"];
3802
+ };
3803
+ };
3804
+ /** @description Not found */
3805
+ 404: {
3806
+ headers: {
3807
+ [name: string]: unknown;
3808
+ };
3809
+ content: {
3810
+ "application/json": components["schemas"]["Error"];
3811
+ };
3812
+ };
3813
+ /** @description Internal server error */
3814
+ 500: {
3815
+ headers: {
3816
+ [name: string]: unknown;
3817
+ };
3818
+ content: {
3819
+ "application/json": components["schemas"]["Error"];
3820
+ };
3821
+ };
3822
+ };
3823
+ };
3824
+ delete?: never;
3825
+ options?: never;
3826
+ head?: never;
3827
+ patch?: never;
3828
+ trace?: never;
3829
+ };
3830
+ "/v1/apps/{id}/versions": {
3831
+ parameters: {
3832
+ query?: never;
3833
+ header?: never;
3834
+ path?: never;
3835
+ cookie?: never;
3836
+ };
3837
+ /**
3838
+ * List an app's versions
3839
+ * @description List all versions of an app, newest first.
3840
+ */
3841
+ get: {
3842
+ parameters: {
3843
+ query?: never;
3844
+ header?: never;
3845
+ path: {
3846
+ id: string;
3847
+ };
3848
+ cookie?: never;
3849
+ };
3850
+ requestBody?: never;
3851
+ responses: {
3852
+ /** @description Versions */
3853
+ 200: {
3854
+ headers: {
3855
+ [name: string]: unknown;
3856
+ };
3857
+ content: {
3858
+ "application/json": {
3859
+ data: {
3860
+ appId: string;
3861
+ bundleHash: string;
3862
+ createdAt: string;
3863
+ createdBy: string;
3864
+ fileCount: number;
3865
+ id: string;
3866
+ manifest: {
3867
+ /** @enum {string} */
3868
+ auth: "none" | "optional" | "required";
3869
+ capabilities: {
3870
+ agents: string[];
3871
+ flows: string[];
3872
+ };
3873
+ data: {
3874
+ /** @enum {string} */
3875
+ access: "read" | "read-write";
3876
+ namespace: string;
3877
+ }[];
3878
+ description?: string;
3879
+ name: string;
3880
+ };
3881
+ sizeBytes: number;
3882
+ /** @enum {string} */
3883
+ status: "uploaded" | "active" | "superseded";
3884
+ versionNumber: number;
3885
+ }[];
3886
+ };
3887
+ };
3888
+ };
3889
+ /** @description Invalid id */
3890
+ 400: {
3891
+ headers: {
3892
+ [name: string]: unknown;
3893
+ };
3894
+ content: {
3895
+ "application/json": components["schemas"]["Error"];
3896
+ };
3897
+ };
3898
+ /** @description Unauthorized */
3899
+ 401: {
3900
+ headers: {
3901
+ [name: string]: unknown;
3902
+ };
3903
+ content: {
3904
+ "application/json": components["schemas"]["Error"];
3905
+ };
3906
+ };
3907
+ /** @description Insufficient permissions */
3908
+ 403: {
3909
+ headers: {
3910
+ [name: string]: unknown;
3911
+ };
3912
+ content: {
3913
+ "application/json": components["schemas"]["Error"];
3914
+ };
3915
+ };
3916
+ /** @description Not found */
3917
+ 404: {
3918
+ headers: {
3919
+ [name: string]: unknown;
3920
+ };
3921
+ content: {
3922
+ "application/json": components["schemas"]["Error"];
3923
+ };
3924
+ };
3925
+ };
3926
+ };
3927
+ put?: never;
3928
+ /**
3929
+ * Upload an app version
3930
+ * @description Upload a zip bundle as a new version. The bundle must contain index.html and runtype.app.json at the root. Uploading does not change what is served; call activate to deploy.
3931
+ */
3932
+ post: {
3933
+ parameters: {
3934
+ query?: never;
3935
+ header?: never;
3936
+ path: {
3937
+ id: string;
3938
+ };
3939
+ cookie?: never;
3940
+ };
3941
+ /** @description The app bundle as a zip archive. */
3942
+ requestBody: {
3943
+ content: {
3944
+ "application/zip": string;
3945
+ };
3946
+ };
3947
+ responses: {
3948
+ /** @description Version uploaded */
3949
+ 201: {
3950
+ headers: {
3951
+ [name: string]: unknown;
3952
+ };
3953
+ content: {
3954
+ "application/json": {
3955
+ appId: string;
3956
+ bundleHash: string;
3957
+ createdAt: string;
3958
+ createdBy: string;
3959
+ fileCount: number;
3960
+ id: string;
3961
+ manifest: {
3962
+ /** @enum {string} */
3963
+ auth: "none" | "optional" | "required";
3964
+ capabilities: {
3965
+ agents: string[];
3966
+ flows: string[];
3967
+ };
3968
+ data: {
3969
+ /** @enum {string} */
3970
+ access: "read" | "read-write";
3971
+ namespace: string;
3972
+ }[];
3973
+ description?: string;
3974
+ name: string;
3975
+ };
3976
+ sizeBytes: number;
3977
+ /** @enum {string} */
3978
+ status: "uploaded" | "active" | "superseded";
3979
+ versionNumber: number;
3980
+ };
3981
+ };
3982
+ };
3983
+ /** @description Invalid bundle */
3984
+ 400: {
3985
+ headers: {
3986
+ [name: string]: unknown;
3987
+ };
3988
+ content: {
3989
+ "application/json": components["schemas"]["Error"];
3990
+ };
3991
+ };
3992
+ /** @description Unauthorized */
3993
+ 401: {
3994
+ headers: {
3995
+ [name: string]: unknown;
3996
+ };
3997
+ content: {
3998
+ "application/json": components["schemas"]["Error"];
3999
+ };
4000
+ };
4001
+ /** @description Plan limit reached */
4002
+ 402: {
4003
+ headers: {
4004
+ [name: string]: unknown;
4005
+ };
4006
+ content: {
4007
+ "application/json": components["schemas"]["Error"];
4008
+ };
4009
+ };
4010
+ /** @description Insufficient permissions */
4011
+ 403: {
4012
+ headers: {
4013
+ [name: string]: unknown;
4014
+ };
4015
+ content: {
4016
+ "application/json": components["schemas"]["Error"];
4017
+ };
4018
+ };
4019
+ /** @description Not found */
4020
+ 404: {
4021
+ headers: {
4022
+ [name: string]: unknown;
4023
+ };
4024
+ content: {
4025
+ "application/json": components["schemas"]["Error"];
4026
+ };
4027
+ };
4028
+ /** @description Manifest uses reserved features */
4029
+ 422: {
4030
+ headers: {
4031
+ [name: string]: unknown;
4032
+ };
4033
+ content: {
4034
+ "application/json": components["schemas"]["Error"];
4035
+ };
4036
+ };
4037
+ /** @description Internal server error */
4038
+ 500: {
4039
+ headers: {
4040
+ [name: string]: unknown;
4041
+ };
4042
+ content: {
4043
+ "application/json": components["schemas"]["Error"];
4044
+ };
4045
+ };
4046
+ /** @description App storage not configured */
4047
+ 503: {
4048
+ headers: {
4049
+ [name: string]: unknown;
4050
+ };
4051
+ content: {
4052
+ "application/json": components["schemas"]["Error"];
4053
+ };
4054
+ };
4055
+ };
4056
+ };
4057
+ delete?: never;
4058
+ options?: never;
4059
+ head?: never;
4060
+ patch?: never;
4061
+ trace?: never;
4062
+ };
3243
4063
  "/v1/assets/preview/{orgId}/{assetId}": {
3244
4064
  parameters: {
3245
4065
  query?: never;
@@ -3428,7 +4248,7 @@ interface paths {
3428
4248
  };
3429
4249
  /**
3430
4250
  * Get current user info
3431
- * @description Get the current user and organization info from the Clerk session.
4251
+ * @description Get the current user and organization info for the authenticated caller (Clerk session or API key).
3432
4252
  */
3433
4253
  get: {
3434
4254
  parameters: {
@@ -10313,50 +11133,185 @@ interface paths {
10313
11133
  };
10314
11134
  };
10315
11135
  };
10316
- put?: never;
11136
+ put?: never;
11137
+ /**
11138
+ * Create or update an integration config
11139
+ * @description Stores an API key for the specified integration provider. Storing a NEW integration key requires the BYOK (Bring Your Own Key) entitlement; rotating a key that already exists for the provider is always allowed.
11140
+ */
11141
+ post: {
11142
+ parameters: {
11143
+ query?: never;
11144
+ header?: never;
11145
+ path: {
11146
+ /** @description Integration provider name */
11147
+ provider: string;
11148
+ };
11149
+ cookie?: never;
11150
+ };
11151
+ requestBody?: {
11152
+ content: {
11153
+ "application/json": {
11154
+ /** @description API key for the provider */
11155
+ apiKey: string;
11156
+ };
11157
+ };
11158
+ };
11159
+ responses: {
11160
+ /** @description Integration config saved */
11161
+ 200: {
11162
+ headers: {
11163
+ [name: string]: unknown;
11164
+ };
11165
+ content: {
11166
+ "application/json": {
11167
+ success: boolean;
11168
+ };
11169
+ };
11170
+ };
11171
+ /** @description Invalid request */
11172
+ 400: {
11173
+ headers: {
11174
+ [name: string]: unknown;
11175
+ };
11176
+ content: {
11177
+ "application/json": components["schemas"]["Error"];
11178
+ };
11179
+ };
11180
+ /** @description Unauthorized */
11181
+ 401: {
11182
+ headers: {
11183
+ [name: string]: unknown;
11184
+ };
11185
+ content: {
11186
+ "application/json": components["schemas"]["Error"];
11187
+ };
11188
+ };
11189
+ /** @description BYOK entitlement required */
11190
+ 402: {
11191
+ headers: {
11192
+ [name: string]: unknown;
11193
+ };
11194
+ content: {
11195
+ "application/json": components["schemas"]["Error"];
11196
+ };
11197
+ };
11198
+ /** @description Forbidden */
11199
+ 403: {
11200
+ headers: {
11201
+ [name: string]: unknown;
11202
+ };
11203
+ content: {
11204
+ "application/json": components["schemas"]["Error"];
11205
+ };
11206
+ };
11207
+ /** @description Internal server error */
11208
+ 500: {
11209
+ headers: {
11210
+ [name: string]: unknown;
11211
+ };
11212
+ content: {
11213
+ "application/json": components["schemas"]["Error"];
11214
+ };
11215
+ };
11216
+ };
11217
+ };
11218
+ /**
11219
+ * Delete an integration config
11220
+ * @description Removes the API key and configuration for the specified integration provider.
11221
+ */
11222
+ delete: {
11223
+ parameters: {
11224
+ query?: never;
11225
+ header?: never;
11226
+ path: {
11227
+ /** @description Integration provider name */
11228
+ provider: string;
11229
+ };
11230
+ cookie?: never;
11231
+ };
11232
+ requestBody?: never;
11233
+ responses: {
11234
+ /** @description Integration config deleted */
11235
+ 200: {
11236
+ headers: {
11237
+ [name: string]: unknown;
11238
+ };
11239
+ content: {
11240
+ "application/json": {
11241
+ success: boolean;
11242
+ };
11243
+ };
11244
+ };
11245
+ /** @description Unauthorized */
11246
+ 401: {
11247
+ headers: {
11248
+ [name: string]: unknown;
11249
+ };
11250
+ content: {
11251
+ "application/json": components["schemas"]["Error"];
11252
+ };
11253
+ };
11254
+ /** @description Forbidden */
11255
+ 403: {
11256
+ headers: {
11257
+ [name: string]: unknown;
11258
+ };
11259
+ content: {
11260
+ "application/json": components["schemas"]["Error"];
11261
+ };
11262
+ };
11263
+ };
11264
+ };
11265
+ options?: never;
11266
+ head?: never;
11267
+ patch?: never;
11268
+ trace?: never;
11269
+ };
11270
+ "/v1/integrations": {
11271
+ parameters: {
11272
+ query?: never;
11273
+ header?: never;
11274
+ path?: never;
11275
+ cookie?: never;
11276
+ };
10317
11277
  /**
10318
- * Create or update an integration config
10319
- * @description Stores an API key for the specified integration provider. Storing a NEW integration key requires the BYOK (Bring Your Own Key) entitlement; rotating a key that already exists for the provider is always allowed.
11278
+ * List integrations
11279
+ * @description List all available integrations with the caller’s configuration status. Optionally filter credential status by environment.
10320
11280
  */
10321
- post: {
11281
+ get: {
10322
11282
  parameters: {
10323
- query?: never;
10324
- header?: never;
10325
- path: {
10326
- /** @description Integration provider name */
10327
- provider: string;
11283
+ query?: {
11284
+ environment?: string;
10328
11285
  };
11286
+ header?: never;
11287
+ path?: never;
10329
11288
  cookie?: never;
10330
11289
  };
10331
- requestBody?: {
10332
- content: {
10333
- "application/json": {
10334
- /** @description API key for the provider */
10335
- apiKey: string;
10336
- };
10337
- };
10338
- };
11290
+ requestBody?: never;
10339
11291
  responses: {
10340
- /** @description Integration config saved */
11292
+ /** @description List of integrations with configuration status */
10341
11293
  200: {
10342
11294
  headers: {
10343
11295
  [name: string]: unknown;
10344
11296
  };
10345
11297
  content: {
10346
11298
  "application/json": {
10347
- success: boolean;
11299
+ integrations: {
11300
+ category: string;
11301
+ description: string;
11302
+ documentationUrl?: string;
11303
+ icon?: string;
11304
+ id: string;
11305
+ isConfigured: boolean;
11306
+ missingCredentials: string[];
11307
+ name: string;
11308
+ requiredCredentials: string[];
11309
+ toolCount: number;
11310
+ }[];
11311
+ total: number;
10348
11312
  };
10349
11313
  };
10350
11314
  };
10351
- /** @description Invalid request */
10352
- 400: {
10353
- headers: {
10354
- [name: string]: unknown;
10355
- };
10356
- content: {
10357
- "application/json": components["schemas"]["Error"];
10358
- };
10359
- };
10360
11315
  /** @description Unauthorized */
10361
11316
  401: {
10362
11317
  headers: {
@@ -10366,16 +11321,7 @@ interface paths {
10366
11321
  "application/json": components["schemas"]["Error"];
10367
11322
  };
10368
11323
  };
10369
- /** @description BYOK entitlement required */
10370
- 402: {
10371
- headers: {
10372
- [name: string]: unknown;
10373
- };
10374
- content: {
10375
- "application/json": components["schemas"]["Error"];
10376
- };
10377
- };
10378
- /** @description Forbidden */
11324
+ /** @description Insufficient permissions */
10379
11325
  403: {
10380
11326
  headers: {
10381
11327
  [name: string]: unknown;
@@ -10395,30 +11341,39 @@ interface paths {
10395
11341
  };
10396
11342
  };
10397
11343
  };
11344
+ put?: never;
10398
11345
  /**
10399
- * Delete an integration config
10400
- * @description Removes the API key and configuration for the specified integration provider.
11346
+ * Reserve a new integration
11347
+ * @description Reserve a new integration row server-side. Returns a pending row scoped to the authenticated owner whose id may be embedded in provider manifests before credentials are supplied.
10401
11348
  */
10402
- delete: {
11349
+ post: {
10403
11350
  parameters: {
10404
11351
  query?: never;
10405
11352
  header?: never;
10406
- path: {
10407
- /** @description Integration provider name */
10408
- provider: string;
10409
- };
11353
+ path?: never;
10410
11354
  cookie?: never;
10411
11355
  };
10412
- requestBody?: never;
11356
+ requestBody?: {
11357
+ content: {
11358
+ "application/json": {
11359
+ /** @enum {string} */
11360
+ provider: "slack" | "telegram";
11361
+ };
11362
+ };
11363
+ };
10413
11364
  responses: {
10414
- /** @description Integration config deleted */
10415
- 200: {
11365
+ /** @description Pending integration reserved */
11366
+ 201: {
10416
11367
  headers: {
10417
11368
  [name: string]: unknown;
10418
11369
  };
10419
11370
  content: {
10420
11371
  "application/json": {
10421
- success: boolean;
11372
+ createdAt: string;
11373
+ expiresAt: string;
11374
+ id: string;
11375
+ provider: string;
11376
+ status: string;
10422
11377
  };
10423
11378
  };
10424
11379
  };
@@ -10431,7 +11386,7 @@ interface paths {
10431
11386
  "application/json": components["schemas"]["Error"];
10432
11387
  };
10433
11388
  };
10434
- /** @description Forbidden */
11389
+ /** @description Insufficient permissions */
10435
11390
  403: {
10436
11391
  headers: {
10437
11392
  [name: string]: unknown;
@@ -10440,14 +11395,24 @@ interface paths {
10440
11395
  "application/json": components["schemas"]["Error"];
10441
11396
  };
10442
11397
  };
11398
+ /** @description Internal server error */
11399
+ 500: {
11400
+ headers: {
11401
+ [name: string]: unknown;
11402
+ };
11403
+ content: {
11404
+ "application/json": components["schemas"]["Error"];
11405
+ };
11406
+ };
10443
11407
  };
10444
11408
  };
11409
+ delete?: never;
10445
11410
  options?: never;
10446
11411
  head?: never;
10447
11412
  patch?: never;
10448
11413
  trace?: never;
10449
11414
  };
10450
- "/v1/integrations": {
11415
+ "/v1/integrations/category/{category}": {
10451
11416
  parameters: {
10452
11417
  query?: never;
10453
11418
  header?: never;
@@ -10455,21 +11420,21 @@ interface paths {
10455
11420
  cookie?: never;
10456
11421
  };
10457
11422
  /**
10458
- * List integrations
10459
- * @description List all available integrations with the caller’s configuration status. Optionally filter credential status by environment.
11423
+ * List integrations by category
11424
+ * @description List integrations within a given category along with the caller’s configuration status for each.
10460
11425
  */
10461
11426
  get: {
10462
11427
  parameters: {
10463
- query?: {
10464
- environment?: string;
10465
- };
11428
+ query?: never;
10466
11429
  header?: never;
10467
- path?: never;
11430
+ path: {
11431
+ category: string;
11432
+ };
10468
11433
  cookie?: never;
10469
11434
  };
10470
11435
  requestBody?: never;
10471
11436
  responses: {
10472
- /** @description List of integrations with configuration status */
11437
+ /** @description List of integrations in the category */
10473
11438
  200: {
10474
11439
  headers: {
10475
11440
  [name: string]: unknown;
@@ -10522,38 +11487,50 @@ interface paths {
10522
11487
  };
10523
11488
  };
10524
11489
  put?: never;
11490
+ post?: never;
11491
+ delete?: never;
11492
+ options?: never;
11493
+ head?: never;
11494
+ patch?: never;
11495
+ trace?: never;
11496
+ };
11497
+ "/v1/integrations/connections": {
11498
+ parameters: {
11499
+ query?: never;
11500
+ header?: never;
11501
+ path?: never;
11502
+ cookie?: never;
11503
+ };
10525
11504
  /**
10526
- * Reserve a new integration
10527
- * @description Reserve a new integration row server-side. Returns a pending row scoped to the authenticated owner whose id may be embedded in provider manifests before credentials are supplied.
11505
+ * List connected integration accounts
11506
+ * @description List the caller's connected integration accounts (with their integration IDs) for a provider. Use the integration ID to pin a tool instance to a specific connection, e.g. a Granola tool's toolConfigs integrationId.
10528
11507
  */
10529
- post: {
11508
+ get: {
10530
11509
  parameters: {
10531
- query?: never;
11510
+ query: {
11511
+ /** @description Integration provider, e.g. granola or slack. */
11512
+ provider: string;
11513
+ };
10532
11514
  header?: never;
10533
11515
  path?: never;
10534
11516
  cookie?: never;
10535
11517
  };
10536
- requestBody?: {
10537
- content: {
10538
- "application/json": {
10539
- /** @enum {string} */
10540
- provider: "slack" | "telegram";
10541
- };
10542
- };
10543
- };
11518
+ requestBody?: never;
10544
11519
  responses: {
10545
- /** @description Pending integration reserved */
10546
- 201: {
11520
+ /** @description Connected accounts for the provider */
11521
+ 200: {
10547
11522
  headers: {
10548
11523
  [name: string]: unknown;
10549
11524
  };
10550
11525
  content: {
10551
11526
  "application/json": {
10552
- createdAt: string;
10553
- expiresAt: string;
10554
- id: string;
10555
- provider: string;
10556
- status: string;
11527
+ connections: {
11528
+ accountName: string;
11529
+ createdAt: string;
11530
+ integrationId: string;
11531
+ provider: string;
11532
+ status: string;
11533
+ }[];
10557
11534
  };
10558
11535
  };
10559
11536
  };
@@ -10586,13 +11563,15 @@ interface paths {
10586
11563
  };
10587
11564
  };
10588
11565
  };
11566
+ put?: never;
11567
+ post?: never;
10589
11568
  delete?: never;
10590
11569
  options?: never;
10591
11570
  head?: never;
10592
11571
  patch?: never;
10593
11572
  trace?: never;
10594
11573
  };
10595
- "/v1/integrations/category/{category}": {
11574
+ "/v1/integrations/credentials-status": {
10596
11575
  parameters: {
10597
11576
  query?: never;
10598
11577
  header?: never;
@@ -10600,40 +11579,41 @@ interface paths {
10600
11579
  cookie?: never;
10601
11580
  };
10602
11581
  /**
10603
- * List integrations by category
10604
- * @description List integrations within a given category along with the caller’s configuration status for each.
11582
+ * Get integration credential status
11583
+ * @description Return which environments have credentials configured for each integration for the authenticated caller.
10605
11584
  */
10606
11585
  get: {
10607
11586
  parameters: {
10608
11587
  query?: never;
10609
11588
  header?: never;
10610
- path: {
10611
- category: string;
10612
- };
11589
+ path?: never;
10613
11590
  cookie?: never;
10614
11591
  };
10615
11592
  requestBody?: never;
10616
11593
  responses: {
10617
- /** @description List of integrations in the category */
11594
+ /** @description Per-environment credential status */
10618
11595
  200: {
10619
11596
  headers: {
10620
11597
  [name: string]: unknown;
10621
11598
  };
10622
11599
  content: {
10623
11600
  "application/json": {
10624
- integrations: {
10625
- category: string;
11601
+ integrations: ({
10626
11602
  description: string;
10627
11603
  documentationUrl?: string;
10628
- icon?: string;
11604
+ environments: {
11605
+ all: boolean;
11606
+ development: boolean;
11607
+ production: boolean;
11608
+ };
11609
+ hasPlatformKey?: boolean;
11610
+ hasUserKey?: boolean;
10629
11611
  id: string;
10630
11612
  isConfigured: boolean;
10631
- missingCredentials: string[];
10632
11613
  name: string;
10633
- requiredCredentials: string[];
10634
- toolCount: number;
10635
- }[];
10636
- total: number;
11614
+ } & {
11615
+ [key: string]: unknown;
11616
+ })[];
10637
11617
  };
10638
11618
  };
10639
11619
  };
@@ -10674,49 +11654,44 @@ interface paths {
10674
11654
  patch?: never;
10675
11655
  trace?: never;
10676
11656
  };
10677
- "/v1/integrations/credentials-status": {
11657
+ "/v1/integrations/granola/install": {
10678
11658
  parameters: {
10679
11659
  query?: never;
10680
11660
  header?: never;
10681
11661
  path?: never;
10682
11662
  cookie?: never;
10683
11663
  };
11664
+ get?: never;
11665
+ put?: never;
10684
11666
  /**
10685
- * Get integration credential status
10686
- * @description Return which environments have credentials configured for each integration for the authenticated caller.
11667
+ * Install Granola integration
11668
+ * @description Install or upsert a Granola integration for the authenticated owner. Verifies the pasted API key against the Granola public API before storing it in the secret store. Re-pasting the same key updates the existing connection.
10687
11669
  */
10688
- get: {
11670
+ post: {
10689
11671
  parameters: {
10690
11672
  query?: never;
10691
11673
  header?: never;
10692
11674
  path?: never;
10693
11675
  cookie?: never;
10694
11676
  };
10695
- requestBody?: never;
11677
+ requestBody?: {
11678
+ content: {
11679
+ "application/json": {
11680
+ apiKey: string;
11681
+ displayName?: string;
11682
+ };
11683
+ };
11684
+ };
10696
11685
  responses: {
10697
- /** @description Per-environment credential status */
11686
+ /** @description Granola integration installed */
10698
11687
  200: {
10699
11688
  headers: {
10700
11689
  [name: string]: unknown;
10701
11690
  };
10702
11691
  content: {
10703
11692
  "application/json": {
10704
- integrations: ({
10705
- description: string;
10706
- documentationUrl?: string;
10707
- environments: {
10708
- all: boolean;
10709
- development: boolean;
10710
- production: boolean;
10711
- };
10712
- hasPlatformKey?: boolean;
10713
- hasUserKey?: boolean;
10714
- id: string;
10715
- isConfigured: boolean;
10716
- name: string;
10717
- } & {
10718
- [key: string]: unknown;
10719
- })[];
11693
+ created: boolean;
11694
+ integrationId: string;
10720
11695
  };
10721
11696
  };
10722
11697
  };
@@ -10738,6 +11713,15 @@ interface paths {
10738
11713
  "application/json": components["schemas"]["Error"];
10739
11714
  };
10740
11715
  };
11716
+ /** @description Granola rejected the API key (invalid key or plan does not include API access) */
11717
+ 422: {
11718
+ headers: {
11719
+ [name: string]: unknown;
11720
+ };
11721
+ content: {
11722
+ "application/json": components["schemas"]["Error"];
11723
+ };
11724
+ };
10741
11725
  /** @description Internal server error */
10742
11726
  500: {
10743
11727
  headers: {
@@ -10747,10 +11731,17 @@ interface paths {
10747
11731
  "application/json": components["schemas"]["Error"];
10748
11732
  };
10749
11733
  };
11734
+ /** @description Granola API unreachable during key verification */
11735
+ 502: {
11736
+ headers: {
11737
+ [name: string]: unknown;
11738
+ };
11739
+ content: {
11740
+ "application/json": components["schemas"]["Error"];
11741
+ };
11742
+ };
10750
11743
  };
10751
11744
  };
10752
- put?: never;
10753
- post?: never;
10754
11745
  delete?: never;
10755
11746
  options?: never;
10756
11747
  head?: never;
@@ -14018,6 +15009,8 @@ interface paths {
14018
15009
  };
14019
15010
  content: {
14020
15011
  "application/json": {
15012
+ /** @description When the response was served from cache, the cache write time. Null for fresh responses. */
15013
+ cachedAt?: string | null;
14021
15014
  data: {
14022
15015
  byCategory: {
14023
15016
  [key: string]: number;
@@ -32011,7 +33004,9 @@ interface paths {
32011
33004
  dashboardUrl: string;
32012
33005
  email: string | null;
32013
33006
  features: {
33007
+ dashboardAssistantModel: string;
32014
33008
  enableAgentSkills: boolean;
33009
+ enableDashboardAssistant: boolean;
32015
33010
  productGeneratorModel: string;
32016
33011
  };
32017
33012
  id: string;
@@ -39180,6 +40175,12 @@ interface LocalToolExecutionLoopSnapshot {
39180
40175
  }
39181
40176
  interface ExecuteWithLocalToolsOptions {
39182
40177
  onLocalToolResult?: (snapshot: LocalToolExecutionLoopSnapshot) => AgentCompleteEvent | null | undefined;
40178
+ /**
40179
+ * Polled after each local tool execution. Returning true ends the session
40180
+ * early (synthetic `agent_complete`) so queued user steering can be
40181
+ * delivered at the next session boundary instead of after the full session.
40182
+ */
40183
+ shouldInterrupt?: () => boolean;
39183
40184
  }
39184
40185
  /**
39185
40186
  * Status of a long-task agent run
@@ -39435,6 +40436,20 @@ interface RunTaskOptions {
39435
40436
  workflow?: WorkflowDefinition;
39436
40437
  /** IDs of built-in tools to enable for the agent (e.g., "exa", "firecrawl", "dalle") */
39437
40438
  toolIds?: string[];
40439
+ /**
40440
+ * Mid-run steering queue: called at every session boundary; returned
40441
+ * messages are DRAINED and injected as user steering at the start of the
40442
+ * next session's context. Pair with `hasQueuedUserMessages` to also end
40443
+ * in-flight sessions early at the next local-tool pause.
40444
+ */
40445
+ getQueuedUserMessages?: () => string[] | undefined;
40446
+ /**
40447
+ * Non-draining peek at the steering queue. When it returns true after a
40448
+ * local tool executes, the current session ends early (synthetic
40449
+ * `agent_complete`) so the queued steering is delivered within seconds
40450
+ * instead of after the session completes.
40451
+ */
40452
+ hasQueuedUserMessages?: () => boolean;
39438
40453
  }
39439
40454
  /**
39440
40455
  * Final result returned by `agents.runTask()`