@agent-os-sdk/client 0.9.2 → 0.9.4

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.
@@ -744,8 +744,7 @@ export interface paths {
744
744
  };
745
745
  /**
746
746
  * Lists all API tokens for the current workspace.
747
- * @description Returns token metadata without secrets. Token secrets are only
748
- * available at creation time and cannot be retrieved later.
747
+ * Requires `tokens:read` permission.
749
748
  */
750
749
  get: {
751
750
  parameters: {
@@ -756,14 +755,14 @@ export interface paths {
756
755
  };
757
756
  requestBody?: never;
758
757
  responses: {
759
- /** @description Returns the list of tokens. */
758
+ /** @description OK */
760
759
  200: {
761
760
  headers: {
762
761
  [name: string]: unknown;
763
762
  };
764
763
  content?: never;
765
764
  };
766
- /** @description Workspace ID header is required. */
765
+ /** @description Bad Request */
767
766
  400: {
768
767
  headers: {
769
768
  [name: string]: unknown;
@@ -772,11 +771,22 @@ export interface paths {
772
771
  "application/json": components["schemas"]["ProblemDetails"];
773
772
  };
774
773
  };
774
+ /** @description Forbidden */
775
+ 403: {
776
+ headers: {
777
+ [name: string]: unknown;
778
+ };
779
+ content: {
780
+ "application/json": components["schemas"]["ProblemDetails"];
781
+ };
782
+ };
775
783
  };
776
784
  };
777
785
  put?: never;
778
786
  /**
779
787
  * Create a new API token.
788
+ * Requires `tokens:write` permission.
789
+ * Token scopes cannot exceed the creator's own permissions (scope ceiling).
780
790
  * The token secret is only returned once on creation.
781
791
  */
782
792
  post: {
@@ -793,16 +803,73 @@ export interface paths {
793
803
  "application/*+json": components["schemas"]["CreateTokenRequest"];
794
804
  };
795
805
  };
806
+ responses: {
807
+ /** @description Created */
808
+ 201: {
809
+ headers: {
810
+ [name: string]: unknown;
811
+ };
812
+ content?: never;
813
+ };
814
+ /** @description Bad Request */
815
+ 400: {
816
+ headers: {
817
+ [name: string]: unknown;
818
+ };
819
+ content: {
820
+ "application/json": components["schemas"]["ProblemDetails"];
821
+ };
822
+ };
823
+ /** @description Forbidden */
824
+ 403: {
825
+ headers: {
826
+ [name: string]: unknown;
827
+ };
828
+ content: {
829
+ "application/json": components["schemas"]["ProblemDetails"];
830
+ };
831
+ };
832
+ };
833
+ };
834
+ delete?: never;
835
+ options?: never;
836
+ head?: never;
837
+ patch?: never;
838
+ trace?: never;
839
+ };
840
+ "/v1/api/tokens/available-scopes": {
841
+ parameters: {
842
+ query?: never;
843
+ header?: never;
844
+ path?: never;
845
+ cookie?: never;
846
+ };
847
+ /**
848
+ * Lists all available scopes that can be assigned to an API token.
849
+ * Scopes are sourced from the canonical Permissions registry.
850
+ */
851
+ get: {
852
+ parameters: {
853
+ query?: never;
854
+ header?: never;
855
+ path?: never;
856
+ cookie?: never;
857
+ };
858
+ requestBody?: never;
796
859
  responses: {
797
860
  /** @description OK */
798
861
  200: {
799
862
  headers: {
800
863
  [name: string]: unknown;
801
864
  };
802
- content?: never;
865
+ content: {
866
+ "application/json": components["schemas"]["ScopeListResponse"];
867
+ };
803
868
  };
804
869
  };
805
870
  };
871
+ put?: never;
872
+ post?: never;
806
873
  delete?: never;
807
874
  options?: never;
808
875
  head?: never;
@@ -819,7 +886,10 @@ export interface paths {
819
886
  get?: never;
820
887
  put?: never;
821
888
  post?: never;
822
- /** Revoke an API token immediately. */
889
+ /**
890
+ * Revoke an API token immediately.
891
+ * Requires `tokens:delete` permission.
892
+ */
823
893
  delete: {
824
894
  parameters: {
825
895
  query?: never;
@@ -838,6 +908,24 @@ export interface paths {
838
908
  };
839
909
  content?: never;
840
910
  };
911
+ /** @description Forbidden */
912
+ 403: {
913
+ headers: {
914
+ [name: string]: unknown;
915
+ };
916
+ content: {
917
+ "application/json": components["schemas"]["ProblemDetails"];
918
+ };
919
+ };
920
+ /** @description Not Found */
921
+ 404: {
922
+ headers: {
923
+ [name: string]: unknown;
924
+ };
925
+ content: {
926
+ "application/json": components["schemas"]["ProblemDetails"];
927
+ };
928
+ };
841
929
  };
842
930
  };
843
931
  options?: never;
@@ -856,31 +944,37 @@ export interface paths {
856
944
  put?: never;
857
945
  /**
858
946
  * Rotate an API token - revokes current and issues a new one.
947
+ * Requires `tokens:write` permission.
859
948
  * The new token secret is only returned once.
860
- * @description Rotation is useful for security hygiene (periodic credential rotation)
861
- * or when a token may have been compromised. The new token inherits
862
- * the same scopes and expiration policy as the original.
863
949
  */
864
950
  post: {
865
951
  parameters: {
866
952
  query?: never;
867
953
  header?: never;
868
954
  path: {
869
- /** @description Token ID to rotate. */
870
955
  id: string;
871
956
  };
872
957
  cookie?: never;
873
958
  };
874
959
  requestBody?: never;
875
960
  responses: {
876
- /** @description Token rotated successfully, new secret returned. */
961
+ /** @description OK */
877
962
  200: {
878
963
  headers: {
879
964
  [name: string]: unknown;
880
965
  };
881
966
  content?: never;
882
967
  };
883
- /** @description Token not found or already revoked. */
968
+ /** @description Forbidden */
969
+ 403: {
970
+ headers: {
971
+ [name: string]: unknown;
972
+ };
973
+ content: {
974
+ "application/json": components["schemas"]["ProblemDetails"];
975
+ };
976
+ };
977
+ /** @description Not Found */
884
978
  404: {
885
979
  headers: {
886
980
  [name: string]: unknown;
@@ -1138,6 +1232,72 @@ export interface paths {
1138
1232
  patch?: never;
1139
1233
  trace?: never;
1140
1234
  };
1235
+ "/v1/api/auth/bootstrap": {
1236
+ parameters: {
1237
+ query?: never;
1238
+ header?: never;
1239
+ path?: never;
1240
+ cookie?: never;
1241
+ };
1242
+ get?: never;
1243
+ put?: never;
1244
+ /**
1245
+ * Bootstrap the authenticated user with a default tenant, workspace, and roles.
1246
+ * Idempotent: returns existing resources if already provisioned.
1247
+ */
1248
+ post: {
1249
+ parameters: {
1250
+ query?: never;
1251
+ header?: never;
1252
+ path?: never;
1253
+ cookie?: never;
1254
+ };
1255
+ requestBody?: never;
1256
+ responses: {
1257
+ /** @description User already bootstrapped — returns existing membership. */
1258
+ 200: {
1259
+ headers: {
1260
+ [name: string]: unknown;
1261
+ };
1262
+ content: {
1263
+ "application/json": components["schemas"]["BootstrapResponse"];
1264
+ };
1265
+ };
1266
+ /** @description First bootstrap — created tenant, workspace, roles, and membership. */
1267
+ 201: {
1268
+ headers: {
1269
+ [name: string]: unknown;
1270
+ };
1271
+ content: {
1272
+ "application/json": components["schemas"]["BootstrapResponse"];
1273
+ };
1274
+ };
1275
+ /** @description Missing or invalid JWT. */
1276
+ 401: {
1277
+ headers: {
1278
+ [name: string]: unknown;
1279
+ };
1280
+ content: {
1281
+ "application/json": components["schemas"]["ProblemDetails"];
1282
+ };
1283
+ };
1284
+ /** @description PATs cannot trigger bootstrap. */
1285
+ 403: {
1286
+ headers: {
1287
+ [name: string]: unknown;
1288
+ };
1289
+ content: {
1290
+ "application/json": components["schemas"]["ProblemDetails"];
1291
+ };
1292
+ };
1293
+ };
1294
+ };
1295
+ delete?: never;
1296
+ options?: never;
1297
+ head?: never;
1298
+ patch?: never;
1299
+ trace?: never;
1300
+ };
1141
1301
  "/v1/api/builder/{agentId}/chat": {
1142
1302
  parameters: {
1143
1303
  query?: never;
@@ -1644,11 +1804,7 @@ export interface paths {
1644
1804
  };
1645
1805
  };
1646
1806
  put?: never;
1647
- /**
1648
- * Creates a new credential.
1649
- * @description Creates a new encrypted credential for storing API keys or secrets.
1650
- * The credential is encrypted at rest using workspace-specific keys.
1651
- */
1807
+ /** Creates a new credential. */
1652
1808
  post: {
1653
1809
  parameters: {
1654
1810
  query?: never;
@@ -1656,7 +1812,7 @@ export interface paths {
1656
1812
  path?: never;
1657
1813
  cookie?: never;
1658
1814
  };
1659
- /** @description The credential configuration. */
1815
+ /** @description Credential creation details. */
1660
1816
  requestBody?: {
1661
1817
  content: {
1662
1818
  "application/json": components["schemas"]["CreateCredentialRequest"];
@@ -1665,31 +1821,13 @@ export interface paths {
1665
1821
  };
1666
1822
  };
1667
1823
  responses: {
1668
- /** @description Credential created successfully. */
1824
+ /** @description Created */
1669
1825
  201: {
1670
1826
  headers: {
1671
1827
  [name: string]: unknown;
1672
1828
  };
1673
1829
  content: {
1674
- "application/json": components["schemas"]["CredentialCreatedResponse"];
1675
- };
1676
- };
1677
- /** @description Invalid request (missing TypeId or WorkspaceId). */
1678
- 400: {
1679
- headers: {
1680
- [name: string]: unknown;
1681
- };
1682
- content: {
1683
- "application/json": components["schemas"]["ProblemDetails"];
1684
- };
1685
- };
1686
- /** @description Authentication required. */
1687
- 401: {
1688
- headers: {
1689
- [name: string]: unknown;
1690
- };
1691
- content: {
1692
- "application/json": components["schemas"]["ProblemDetails"];
1830
+ "application/json": components["schemas"]["CredentialResponse"];
1693
1831
  };
1694
1832
  };
1695
1833
  };
@@ -1710,7 +1848,10 @@ export interface paths {
1710
1848
  /** Gets a single credential by ID. */
1711
1849
  get: {
1712
1850
  parameters: {
1713
- query?: never;
1851
+ query?: {
1852
+ /** @description Whether to include the decrypted secret values. */
1853
+ includeValues?: boolean;
1854
+ };
1714
1855
  header?: never;
1715
1856
  path: {
1716
1857
  /** @description The credential ID. */
@@ -1742,7 +1883,28 @@ export interface paths {
1742
1883
  };
1743
1884
  put?: never;
1744
1885
  post?: never;
1745
- delete?: never;
1886
+ /** Deletes a credential. */
1887
+ delete: {
1888
+ parameters: {
1889
+ query?: never;
1890
+ header?: never;
1891
+ path: {
1892
+ /** @description Credential ID. */
1893
+ id: string;
1894
+ };
1895
+ cookie?: never;
1896
+ };
1897
+ requestBody?: never;
1898
+ responses: {
1899
+ /** @description No Content */
1900
+ 204: {
1901
+ headers: {
1902
+ [name: string]: unknown;
1903
+ };
1904
+ content?: never;
1905
+ };
1906
+ };
1907
+ };
1746
1908
  options?: never;
1747
1909
  head?: never;
1748
1910
  /** Updates an existing credential. */
@@ -1751,12 +1913,12 @@ export interface paths {
1751
1913
  query?: never;
1752
1914
  header?: never;
1753
1915
  path: {
1754
- /** @description The credential ID. */
1916
+ /** @description Credential ID. */
1755
1917
  id: string;
1756
1918
  };
1757
1919
  cookie?: never;
1758
1920
  };
1759
- /** @description The update payload. */
1921
+ /** @description Update details. */
1760
1922
  requestBody?: {
1761
1923
  content: {
1762
1924
  "application/json": components["schemas"]["UpdateCredentialRequest"];
@@ -1765,22 +1927,13 @@ export interface paths {
1765
1927
  };
1766
1928
  };
1767
1929
  responses: {
1768
- /** @description Credential updated successfully. */
1930
+ /** @description OK */
1769
1931
  200: {
1770
1932
  headers: {
1771
1933
  [name: string]: unknown;
1772
1934
  };
1773
1935
  content: {
1774
- "application/json": components["schemas"]["CredentialUpdatedResponse"];
1775
- };
1776
- };
1777
- /** @description Credential not found. */
1778
- 404: {
1779
- headers: {
1780
- [name: string]: unknown;
1781
- };
1782
- content: {
1783
- "application/json": components["schemas"]["ProblemDetails"];
1936
+ "application/json": components["schemas"]["CredentialResponse"];
1784
1937
  };
1785
1938
  };
1786
1939
  };
@@ -1796,18 +1949,18 @@ export interface paths {
1796
1949
  };
1797
1950
  get?: never;
1798
1951
  put?: never;
1799
- /** Grants access to a credential for a workspace. */
1952
+ /** Grants credential access to a workspace. */
1800
1953
  post: {
1801
1954
  parameters: {
1802
1955
  query?: never;
1803
1956
  header?: never;
1804
1957
  path: {
1805
- /** @description The credential ID. */
1958
+ /** @description Credential ID. */
1806
1959
  id: string;
1807
1960
  };
1808
1961
  cookie?: never;
1809
1962
  };
1810
- /** @description The grant configuration. */
1963
+ /** @description Grant details. */
1811
1964
  requestBody?: {
1812
1965
  content: {
1813
1966
  "application/json": components["schemas"]["GrantAccessRequest"];
@@ -1816,23 +1969,12 @@ export interface paths {
1816
1969
  };
1817
1970
  };
1818
1971
  responses: {
1819
- /** @description Access granted successfully. */
1972
+ /** @description OK */
1820
1973
  200: {
1821
1974
  headers: {
1822
1975
  [name: string]: unknown;
1823
1976
  };
1824
- content: {
1825
- "application/json": components["schemas"]["CredentialAccessGrantedResponse"];
1826
- };
1827
- };
1828
- /** @description Credential not found. */
1829
- 404: {
1830
- headers: {
1831
- [name: string]: unknown;
1832
- };
1833
- content: {
1834
- "application/json": components["schemas"]["ProblemDetails"];
1835
- };
1977
+ content?: never;
1836
1978
  };
1837
1979
  };
1838
1980
  };
@@ -1852,27 +1994,64 @@ export interface paths {
1852
1994
  get?: never;
1853
1995
  put?: never;
1854
1996
  post?: never;
1855
- /** Revokes access to a credential. */
1997
+ /**
1998
+ * Revokes credential access from a workspace.
1999
+ * Revokes credential access from a workspace.
2000
+ */
1856
2001
  delete: {
1857
2002
  parameters: {
1858
2003
  query?: never;
1859
2004
  header?: never;
1860
2005
  path: {
1861
- /** @description The access grant ID to revoke. */
2006
+ /** @description Access Record ID to revoke. */
1862
2007
  accessId: string;
1863
2008
  };
1864
2009
  cookie?: never;
1865
2010
  };
1866
2011
  requestBody?: never;
1867
2012
  responses: {
1868
- /** @description Access revoked successfully. */
1869
- 204: {
2013
+ /** @description OK */
2014
+ 200: {
1870
2015
  headers: {
1871
2016
  [name: string]: unknown;
1872
2017
  };
1873
2018
  content?: never;
1874
2019
  };
1875
- /** @description Access grant not found. */
2020
+ };
2021
+ };
2022
+ options?: never;
2023
+ head?: never;
2024
+ patch?: never;
2025
+ trace?: never;
2026
+ };
2027
+ "/v1/api/credentials/{id}/models": {
2028
+ parameters: {
2029
+ query?: never;
2030
+ header?: never;
2031
+ path?: never;
2032
+ cookie?: never;
2033
+ };
2034
+ get: {
2035
+ parameters: {
2036
+ query?: never;
2037
+ header?: never;
2038
+ path: {
2039
+ id: string;
2040
+ };
2041
+ cookie?: never;
2042
+ };
2043
+ requestBody?: never;
2044
+ responses: {
2045
+ /** @description OK */
2046
+ 200: {
2047
+ headers: {
2048
+ [name: string]: unknown;
2049
+ };
2050
+ content: {
2051
+ "application/json": string[];
2052
+ };
2053
+ };
2054
+ /** @description Not Found */
1876
2055
  404: {
1877
2056
  headers: {
1878
2057
  [name: string]: unknown;
@@ -1883,6 +2062,9 @@ export interface paths {
1883
2062
  };
1884
2063
  };
1885
2064
  };
2065
+ put?: never;
2066
+ post?: never;
2067
+ delete?: never;
1886
2068
  options?: never;
1887
2069
  head?: never;
1888
2070
  patch?: never;
@@ -3184,7 +3366,44 @@ export interface paths {
3184
3366
  patch?: never;
3185
3367
  trace?: never;
3186
3368
  };
3187
- "/v1/api/graphs/validate": {
3369
+ "/v1/api/observability/frontend-log": {
3370
+ parameters: {
3371
+ query?: never;
3372
+ header?: never;
3373
+ path?: never;
3374
+ cookie?: never;
3375
+ };
3376
+ get?: never;
3377
+ put?: never;
3378
+ post: {
3379
+ parameters: {
3380
+ query?: never;
3381
+ header?: never;
3382
+ path?: never;
3383
+ cookie?: never;
3384
+ };
3385
+ requestBody?: {
3386
+ content: {
3387
+ "application/json": components["schemas"]["FrontendLogIngestRequest"];
3388
+ };
3389
+ };
3390
+ responses: {
3391
+ /** @description OK */
3392
+ 200: {
3393
+ headers: {
3394
+ [name: string]: unknown;
3395
+ };
3396
+ content?: never;
3397
+ };
3398
+ };
3399
+ };
3400
+ delete?: never;
3401
+ options?: never;
3402
+ head?: never;
3403
+ patch?: never;
3404
+ trace?: never;
3405
+ };
3406
+ "/v1/api/graphs/validate": {
3188
3407
  parameters: {
3189
3408
  query?: never;
3190
3409
  header?: never;
@@ -3715,19 +3934,17 @@ export interface paths {
3715
3934
  patch?: never;
3716
3935
  trace?: never;
3717
3936
  };
3718
- "/v1/api/mcp/tools": {
3937
+ "/v1/api/me": {
3719
3938
  parameters: {
3720
3939
  query?: never;
3721
3940
  header?: never;
3722
3941
  path?: never;
3723
3942
  cookie?: never;
3724
3943
  };
3725
- /** List available tools from ToolDefinition registry. */
3944
+ /** Get current user identity, tenant and workspace context (lightweight, backward compatible). */
3726
3945
  get: {
3727
3946
  parameters: {
3728
- query?: {
3729
- agentId?: string;
3730
- };
3947
+ query?: never;
3731
3948
  header?: never;
3732
3949
  path?: never;
3733
3950
  cookie?: never;
@@ -3751,177 +3968,48 @@ export interface paths {
3751
3968
  patch?: never;
3752
3969
  trace?: never;
3753
3970
  };
3754
- "/v1/api/mcp/tools/{name}": {
3971
+ "/v1/api/me/context": {
3755
3972
  parameters: {
3756
3973
  query?: never;
3757
3974
  header?: never;
3758
3975
  path?: never;
3759
3976
  cookie?: never;
3760
3977
  };
3761
- /** Get a specific tool definition. */
3978
+ /**
3979
+ * Get full user context: all tenants, workspaces, roles, and permissions.
3980
+ * This is the canonical endpoint for populating frontend layouts.
3981
+ * @description Returns every membership the user has, with nested tenant, role (including
3982
+ * canonical permission arrays), and accessible workspaces per membership.
3983
+ *
3984
+ * **Admin visibility:** Members with wildcard ("*") permission
3985
+ * see all workspaces in the tenant. Regular members see only their assigned workspaces.
3986
+ */
3762
3987
  get: {
3763
3988
  parameters: {
3764
3989
  query?: never;
3765
3990
  header?: never;
3766
- path: {
3767
- name: string;
3768
- };
3769
- cookie?: never;
3770
- };
3771
- requestBody?: never;
3772
- responses: {
3773
- /** @description OK */
3774
- 200: {
3775
- headers: {
3776
- [name: string]: unknown;
3777
- };
3778
- content?: never;
3779
- };
3780
- };
3781
- };
3782
- put?: never;
3783
- post?: never;
3784
- delete?: never;
3785
- options?: never;
3786
- head?: never;
3787
- patch?: never;
3788
- trace?: never;
3789
- };
3790
- "/v1/api/mcp/resources": {
3791
- parameters: {
3792
- query?: never;
3793
- header?: never;
3794
- path?: never;
3795
- cookie?: never;
3796
- };
3797
- /** List resources (files, vector stores) available to an agent. */
3798
- get: {
3799
- parameters: {
3800
- query?: {
3801
- agentId?: string;
3802
- };
3803
- header?: never;
3804
3991
  path?: never;
3805
3992
  cookie?: never;
3806
3993
  };
3807
3994
  requestBody?: never;
3808
3995
  responses: {
3809
- /** @description OK */
3996
+ /** @description Full user context with all memberships. */
3810
3997
  200: {
3811
3998
  headers: {
3812
3999
  [name: string]: unknown;
3813
4000
  };
3814
- content?: never;
3815
- };
3816
- };
3817
- };
3818
- put?: never;
3819
- post?: never;
3820
- delete?: never;
3821
- options?: never;
3822
- head?: never;
3823
- patch?: never;
3824
- trace?: never;
3825
- };
3826
- "/v1/api/mcp/tools/call": {
3827
- parameters: {
3828
- query?: never;
3829
- header?: never;
3830
- path?: never;
3831
- cookie?: never;
3832
- };
3833
- get?: never;
3834
- put?: never;
3835
- /** Call a tool (experimental - routes to appropriate handler). */
3836
- post: {
3837
- parameters: {
3838
- query?: never;
3839
- header?: never;
3840
- path?: never;
3841
- cookie?: never;
3842
- };
3843
- requestBody?: {
3844
- content: {
3845
- "application/json": components["schemas"]["ToolCallRequest"];
3846
- "text/json": components["schemas"]["ToolCallRequest"];
3847
- "application/*+json": components["schemas"]["ToolCallRequest"];
3848
- };
3849
- };
3850
- responses: {
3851
- /** @description OK */
3852
- 200: {
3853
- headers: {
3854
- [name: string]: unknown;
4001
+ content: {
4002
+ "application/json": components["schemas"]["UserContextResponse"];
3855
4003
  };
3856
- content?: never;
3857
- };
3858
- };
3859
- };
3860
- delete?: never;
3861
- options?: never;
3862
- head?: never;
3863
- patch?: never;
3864
- trace?: never;
3865
- };
3866
- "/v1/api/mcp/resources/read": {
3867
- parameters: {
3868
- query?: never;
3869
- header?: never;
3870
- path?: never;
3871
- cookie?: never;
3872
- };
3873
- /** Read a resource by URI. */
3874
- get: {
3875
- parameters: {
3876
- query?: {
3877
- uri?: string;
3878
4004
  };
3879
- header?: never;
3880
- path?: never;
3881
- cookie?: never;
3882
- };
3883
- requestBody?: never;
3884
- responses: {
3885
- /** @description OK */
3886
- 200: {
4005
+ /** @description Missing or invalid JWT. */
4006
+ 401: {
3887
4007
  headers: {
3888
4008
  [name: string]: unknown;
3889
4009
  };
3890
- content?: never;
3891
- };
3892
- };
3893
- };
3894
- put?: never;
3895
- post?: never;
3896
- delete?: never;
3897
- options?: never;
3898
- head?: never;
3899
- patch?: never;
3900
- trace?: never;
3901
- };
3902
- "/v1/api/me": {
3903
- parameters: {
3904
- query?: never;
3905
- header?: never;
3906
- path?: never;
3907
- cookie?: never;
3908
- };
3909
- /** Get current user identity, tenant and workspace context. */
3910
- get: {
3911
- parameters: {
3912
- query?: never;
3913
- header?: never;
3914
- path?: never;
3915
- cookie?: never;
3916
- };
3917
- requestBody?: never;
3918
- responses: {
3919
- /** @description OK */
3920
- 200: {
3921
- headers: {
3922
- [name: string]: unknown;
4010
+ content: {
4011
+ "application/json": components["schemas"]["ProblemDetails"];
3923
4012
  };
3924
- content?: never;
3925
4013
  };
3926
4014
  };
3927
4015
  };
@@ -4753,7 +4841,10 @@ export interface paths {
4753
4841
  };
4754
4842
  };
4755
4843
  put?: never;
4756
- /** Create a new custom role. */
4844
+ /**
4845
+ * Create a new custom role.
4846
+ * Permissions are validated against the canonical Permissions registry.
4847
+ */
4757
4848
  post: {
4758
4849
  parameters: {
4759
4850
  query?: never;
@@ -4916,7 +5007,10 @@ export interface paths {
4916
5007
  };
4917
5008
  get?: never;
4918
5009
  put?: never;
4919
- /** SEED DEFAULT PERMISSIONS (Temporary/Admin Helper) */
5010
+ /**
5011
+ * Seed default permissions for all roles in the tenant.
5012
+ * Uses canonical templates from Permissions constants.
5013
+ */
4920
5014
  post: {
4921
5015
  parameters: {
4922
5016
  query?: never;
@@ -5135,21 +5229,20 @@ export interface paths {
5135
5229
  path?: never;
5136
5230
  cookie?: never;
5137
5231
  };
5138
- /**
5139
- * Get run events for timeline display (paged, without SSE).
5140
- * Aggregates checkpoints, tool calls, and state changes for UI replay.
5141
- */
5232
+ /** Get canonical run events from SSOT ledger (polling). */
5142
5233
  get: {
5143
5234
  parameters: {
5144
- query?: {
5145
- /** @description Max events to return. */
5235
+ query: {
5236
+ /** @description Attempt ID (required). */
5237
+ attemptId: string;
5238
+ /** @description Return events with seq greater than this value. */
5239
+ afterSeq?: number;
5240
+ /** @description Max events to return (1..500). */
5146
5241
  limit?: number;
5147
- /** @description Pagination offset. */
5148
- offset?: number;
5149
5242
  };
5150
5243
  header?: never;
5151
5244
  path: {
5152
- /** @description The unique ID of the run. */
5245
+ /** @description Run ID. */
5153
5246
  runId: string;
5154
5247
  };
5155
5248
  cookie?: never;
@@ -5162,7 +5255,16 @@ export interface paths {
5162
5255
  [name: string]: unknown;
5163
5256
  };
5164
5257
  content: {
5165
- "application/json": components["schemas"]["RunEventsResponse"];
5258
+ "application/json": components["schemas"]["RunEventsPollResponse"];
5259
+ };
5260
+ };
5261
+ /** @description Bad Request */
5262
+ 400: {
5263
+ headers: {
5264
+ [name: string]: unknown;
5265
+ };
5266
+ content: {
5267
+ "application/json": components["schemas"]["ProblemDetails"];
5166
5268
  };
5167
5269
  };
5168
5270
  /** @description Not Found */
@@ -5191,39 +5293,32 @@ export interface paths {
5191
5293
  path?: never;
5192
5294
  cookie?: never;
5193
5295
  };
5194
- /**
5195
- * .0: Get run events for polling-based replay.
5196
- * Returns events after a specific sequence number for incremental polling.
5197
- * @description This is the recommended endpoint for SDK/UI event consumption.
5198
- * Events are ordered by sequence number (ascending) and limited to prevent
5199
- * large responses. Use `next_after_seq` for pagination.
5200
- *
5201
- * **Security:** Only returns events for runs in the caller's workspace.
5202
- */
5296
+ /** Stream canonical run events via SSE using SSOT ledger ordering. */
5203
5297
  get: {
5204
5298
  parameters: {
5205
- query?: {
5206
- /** @description Return events with seq greater than this value (default: 0 = all). */
5299
+ query: {
5300
+ /** @description Attempt ID (required). */
5301
+ attemptId: string;
5302
+ /** @description Start after this sequence number. */
5207
5303
  afterSeq?: number;
5208
- /** @description Max events to return (default: 100, max: 500). */
5209
- limit?: number;
5210
5304
  };
5211
5305
  header?: never;
5212
5306
  path: {
5213
- /** @description The unique ID of the run. */
5307
+ /** @description Run ID. */
5214
5308
  runId: string;
5215
5309
  };
5216
5310
  cookie?: never;
5217
5311
  };
5218
5312
  requestBody?: never;
5219
5313
  responses: {
5220
- /** @description OK */
5221
- 200: {
5314
+ /** @description Bad Request */
5315
+ 400: {
5222
5316
  headers: {
5223
5317
  [name: string]: unknown;
5224
5318
  };
5225
5319
  content: {
5226
- "application/json": components["schemas"]["RunEventsPollResponse"];
5320
+ "text/event-stream": components["schemas"]["ProblemDetails"];
5321
+ "application/json": components["schemas"]["ProblemDetails"];
5227
5322
  };
5228
5323
  };
5229
5324
  /** @description Not Found */
@@ -5232,6 +5327,7 @@ export interface paths {
5232
5327
  [name: string]: unknown;
5233
5328
  };
5234
5329
  content: {
5330
+ "text/event-stream": components["schemas"]["ProblemDetails"];
5235
5331
  "application/json": components["schemas"]["ProblemDetails"];
5236
5332
  };
5237
5333
  };
@@ -5358,204 +5454,62 @@ export interface paths {
5358
5454
  patch?: never;
5359
5455
  trace?: never;
5360
5456
  };
5361
- "/v1/api/runs/{runId}/join": {
5457
+ "/v1/api/runs/{runId}/rerun": {
5362
5458
  parameters: {
5363
5459
  query?: never;
5364
5460
  header?: never;
5365
5461
  path?: never;
5366
5462
  cookie?: never;
5367
5463
  };
5368
- /** Joins an active run and returns its updates via SSE. */
5369
- get: {
5464
+ get?: never;
5465
+ put?: never;
5466
+ /** Re-runs an existing run with same inputs (stateless rerun). */
5467
+ post: {
5370
5468
  parameters: {
5371
5469
  query?: never;
5372
5470
  header?: never;
5373
5471
  path: {
5374
- /** @description The run ID to join. */
5472
+ /** @description The original run ID to rerun. */
5375
5473
  runId: string;
5376
5474
  };
5377
5475
  cookie?: never;
5378
5476
  };
5379
- requestBody?: never;
5477
+ /** @description Optional overrides for the rerun. */
5478
+ requestBody?: {
5479
+ content: {
5480
+ "application/json": components["schemas"]["RerunRequest"];
5481
+ "text/json": components["schemas"]["RerunRequest"];
5482
+ "application/*+json": components["schemas"]["RerunRequest"];
5483
+ };
5484
+ };
5380
5485
  responses: {
5381
- /** @description OK */
5382
- 200: {
5486
+ /** @description Created */
5487
+ 201: {
5383
5488
  headers: {
5384
5489
  [name: string]: unknown;
5385
5490
  };
5386
- content?: never;
5491
+ content: {
5492
+ "application/json": components["schemas"]["RerunResponse"];
5493
+ };
5494
+ };
5495
+ /** @description Not Found */
5496
+ 404: {
5497
+ headers: {
5498
+ [name: string]: unknown;
5499
+ };
5500
+ content: {
5501
+ "application/json": components["schemas"]["ProblemDetails"];
5502
+ };
5387
5503
  };
5388
5504
  };
5389
5505
  };
5390
- put?: never;
5391
- post?: never;
5392
5506
  delete?: never;
5393
5507
  options?: never;
5394
5508
  head?: never;
5395
5509
  patch?: never;
5396
5510
  trace?: never;
5397
5511
  };
5398
- "/v1/api/runs/stream": {
5399
- parameters: {
5400
- query?: never;
5401
- header?: never;
5402
- path?: never;
5403
- cookie?: never;
5404
- };
5405
- get?: never;
5406
- put?: never;
5407
- /**
5408
- * Creates a run and streams real-time updates via Server-Sent Events (SSE).
5409
- * @description This is the recommended endpoint for interactive applications. It creates
5410
- * a run and maintains an open SSE connection to stream events in real-time.
5411
- *
5412
- * **SSE Events:**
5413
- * - `start`: Run created and queued
5414
- * - `update`: Run status changed
5415
- * - `complete`: Run finished successfully (includes output)
5416
- * - `error`: Run failed or was canceled (includes error details)
5417
- *
5418
- * **Example Event Stream:**
5419
- * ```
5420
- * event: start
5421
- * data: {"run_id": "...", "status": "queued"}
5422
- *
5423
- * event: update
5424
- * data: {"run_id": "...", "status": "running"}
5425
- *
5426
- * event: complete
5427
- * data: {"run_id": "...", "status": "completed", "output": {...}}
5428
- * ```
5429
- */
5430
- post: {
5431
- parameters: {
5432
- query?: never;
5433
- header?: never;
5434
- path?: never;
5435
- cookie?: never;
5436
- };
5437
- /** @description The run request with agent ID and input. */
5438
- requestBody?: {
5439
- content: {
5440
- "application/json": components["schemas"]["StreamRunRequest"];
5441
- "text/json": components["schemas"]["StreamRunRequest"];
5442
- "application/*+json": components["schemas"]["StreamRunRequest"];
5443
- };
5444
- };
5445
- responses: {
5446
- /** @description OK */
5447
- 200: {
5448
- headers: {
5449
- [name: string]: unknown;
5450
- };
5451
- content?: never;
5452
- };
5453
- };
5454
- };
5455
- delete?: never;
5456
- options?: never;
5457
- head?: never;
5458
- patch?: never;
5459
- trace?: never;
5460
- };
5461
- "/v1/api/runs/{runId}/stream": {
5462
- parameters: {
5463
- query?: never;
5464
- header?: never;
5465
- path?: never;
5466
- cookie?: never;
5467
- };
5468
- /**
5469
- * .2: Stream run events via SSE (Server-Sent Events).
5470
- * Uses robust internal polling (Cinema V1.2) to ensure strict ordering and reliability.
5471
- * Closes connection when run is terminal and all events are delivered.
5472
- */
5473
- get: {
5474
- parameters: {
5475
- query?: {
5476
- after?: number;
5477
- };
5478
- header?: never;
5479
- path: {
5480
- runId: string;
5481
- };
5482
- cookie?: never;
5483
- };
5484
- requestBody?: never;
5485
- responses: {
5486
- /** @description OK */
5487
- 200: {
5488
- headers: {
5489
- [name: string]: unknown;
5490
- };
5491
- content?: never;
5492
- };
5493
- };
5494
- };
5495
- put?: never;
5496
- post?: never;
5497
- delete?: never;
5498
- options?: never;
5499
- head?: never;
5500
- patch?: never;
5501
- trace?: never;
5502
- };
5503
- "/v1/api/runs/{runId}/rerun": {
5504
- parameters: {
5505
- query?: never;
5506
- header?: never;
5507
- path?: never;
5508
- cookie?: never;
5509
- };
5510
- get?: never;
5511
- put?: never;
5512
- /** Re-runs an existing run with same inputs (stateless rerun). */
5513
- post: {
5514
- parameters: {
5515
- query?: never;
5516
- header?: never;
5517
- path: {
5518
- /** @description The original run ID to rerun. */
5519
- runId: string;
5520
- };
5521
- cookie?: never;
5522
- };
5523
- /** @description Optional overrides for the rerun. */
5524
- requestBody?: {
5525
- content: {
5526
- "application/json": components["schemas"]["RerunRequest"];
5527
- "text/json": components["schemas"]["RerunRequest"];
5528
- "application/*+json": components["schemas"]["RerunRequest"];
5529
- };
5530
- };
5531
- responses: {
5532
- /** @description Created */
5533
- 201: {
5534
- headers: {
5535
- [name: string]: unknown;
5536
- };
5537
- content: {
5538
- "application/json": components["schemas"]["RerunResponse"];
5539
- };
5540
- };
5541
- /** @description Not Found */
5542
- 404: {
5543
- headers: {
5544
- [name: string]: unknown;
5545
- };
5546
- content: {
5547
- "application/json": components["schemas"]["ProblemDetails"];
5548
- };
5549
- };
5550
- };
5551
- };
5552
- delete?: never;
5553
- options?: never;
5554
- head?: never;
5555
- patch?: never;
5556
- trace?: never;
5557
- };
5558
- "/v1/api/runs/{runId}/checkpoints/{checkpointId}/replay": {
5512
+ "/v1/api/runs/{runId}/checkpoints/{checkpointId}/replay": {
5559
5513
  parameters: {
5560
5514
  query?: never;
5561
5515
  header?: never;
@@ -6116,6 +6070,8 @@ export interface paths {
6116
6070
  parameters: {
6117
6071
  query?: {
6118
6072
  workspaceId?: string;
6073
+ limit?: number;
6074
+ offset?: number;
6119
6075
  };
6120
6076
  header?: never;
6121
6077
  path?: never;
@@ -7299,7 +7255,249 @@ export interface paths {
7299
7255
  };
7300
7256
  cookie?: never;
7301
7257
  };
7302
- requestBody?: never;
7258
+ requestBody?: never;
7259
+ responses: {
7260
+ /** @description OK */
7261
+ 200: {
7262
+ headers: {
7263
+ [name: string]: unknown;
7264
+ };
7265
+ content: {
7266
+ "application/json": components["schemas"]["TriggerSecretResponse"];
7267
+ };
7268
+ };
7269
+ /** @description Unauthorized */
7270
+ 401: {
7271
+ headers: {
7272
+ [name: string]: unknown;
7273
+ };
7274
+ content: {
7275
+ "application/json": components["schemas"]["ProblemDetails"];
7276
+ };
7277
+ };
7278
+ /** @description Not Found */
7279
+ 404: {
7280
+ headers: {
7281
+ [name: string]: unknown;
7282
+ };
7283
+ content: {
7284
+ "application/json": components["schemas"]["ProblemDetails"];
7285
+ };
7286
+ };
7287
+ };
7288
+ };
7289
+ put?: never;
7290
+ post?: never;
7291
+ delete?: never;
7292
+ options?: never;
7293
+ head?: never;
7294
+ patch?: never;
7295
+ trace?: never;
7296
+ };
7297
+ "/v1/api/triggers/invoke/{triggerId}": {
7298
+ parameters: {
7299
+ query?: never;
7300
+ header?: never;
7301
+ path?: never;
7302
+ cookie?: never;
7303
+ };
7304
+ get?: never;
7305
+ put?: never;
7306
+ /**
7307
+ * Invoke a trigger to start an agent run.
7308
+ * SECURITY: Requires HMAC-SHA256 signature over raw request body.
7309
+ * Signature format: X-Signature: sha256=[64_lowercase_hex]
7310
+ * Payload: X-Timestamp + "." + raw_request_body
7311
+ */
7312
+ post: {
7313
+ parameters: {
7314
+ query?: never;
7315
+ header?: never;
7316
+ path: {
7317
+ triggerId: string;
7318
+ };
7319
+ cookie?: never;
7320
+ };
7321
+ requestBody?: never;
7322
+ responses: {
7323
+ /** @description OK */
7324
+ 200: {
7325
+ headers: {
7326
+ [name: string]: unknown;
7327
+ };
7328
+ content?: never;
7329
+ };
7330
+ };
7331
+ };
7332
+ delete?: never;
7333
+ options?: never;
7334
+ head?: never;
7335
+ patch?: never;
7336
+ trace?: never;
7337
+ };
7338
+ "/v1/api/triggers/{triggerId}/regenerate-secret": {
7339
+ parameters: {
7340
+ query?: never;
7341
+ header?: never;
7342
+ path?: never;
7343
+ cookie?: never;
7344
+ };
7345
+ get?: never;
7346
+ put?: never;
7347
+ /** Regenerate secret key for a trigger. */
7348
+ post: {
7349
+ parameters: {
7350
+ query?: never;
7351
+ header?: never;
7352
+ path: {
7353
+ triggerId: string;
7354
+ };
7355
+ cookie?: never;
7356
+ };
7357
+ requestBody?: never;
7358
+ responses: {
7359
+ /** @description OK */
7360
+ 200: {
7361
+ headers: {
7362
+ [name: string]: unknown;
7363
+ };
7364
+ content?: never;
7365
+ };
7366
+ };
7367
+ };
7368
+ delete?: never;
7369
+ options?: never;
7370
+ head?: never;
7371
+ patch?: never;
7372
+ trace?: never;
7373
+ };
7374
+ "/v1/api/triggers/{triggerId}/test": {
7375
+ parameters: {
7376
+ query?: never;
7377
+ header?: never;
7378
+ path?: never;
7379
+ cookie?: never;
7380
+ };
7381
+ get?: never;
7382
+ put?: never;
7383
+ /**
7384
+ * Test a trigger by executing a run directly (no HMAC required).
7385
+ * SECURITY: Requires authenticated session, no secret leakage.
7386
+ * Wave 3: Server-side testing with workspace isolation.
7387
+ * @description Executes a run using either the provided payload or the template's example_payload.
7388
+ * Uses Channel.Test for audit trail differentiation.
7389
+ */
7390
+ post: {
7391
+ parameters: {
7392
+ query?: never;
7393
+ header?: never;
7394
+ path: {
7395
+ triggerId: string;
7396
+ };
7397
+ cookie?: never;
7398
+ };
7399
+ requestBody?: {
7400
+ content: {
7401
+ "application/json": components["schemas"]["TestTriggerRequest"];
7402
+ "text/json": components["schemas"]["TestTriggerRequest"];
7403
+ "application/*+json": components["schemas"]["TestTriggerRequest"];
7404
+ };
7405
+ };
7406
+ responses: {
7407
+ /** @description OK */
7408
+ 200: {
7409
+ headers: {
7410
+ [name: string]: unknown;
7411
+ };
7412
+ content?: never;
7413
+ };
7414
+ };
7415
+ };
7416
+ delete?: never;
7417
+ options?: never;
7418
+ head?: never;
7419
+ patch?: never;
7420
+ trace?: never;
7421
+ };
7422
+ "/v1/api/triggers/{triggerId}/contract": {
7423
+ parameters: {
7424
+ query?: never;
7425
+ header?: never;
7426
+ path?: never;
7427
+ cookie?: never;
7428
+ };
7429
+ /**
7430
+ * Get the full input contract for a trigger.
7431
+ * Returns schemas and mapping spec for transformation configuration.
7432
+ */
7433
+ get: {
7434
+ parameters: {
7435
+ query?: never;
7436
+ header?: never;
7437
+ path: {
7438
+ triggerId: string;
7439
+ };
7440
+ cookie?: never;
7441
+ };
7442
+ requestBody?: never;
7443
+ responses: {
7444
+ /** @description OK */
7445
+ 200: {
7446
+ headers: {
7447
+ [name: string]: unknown;
7448
+ };
7449
+ content: {
7450
+ "application/json": components["schemas"]["TriggerInputContractResponse"];
7451
+ };
7452
+ };
7453
+ /** @description Not Found */
7454
+ 404: {
7455
+ headers: {
7456
+ [name: string]: unknown;
7457
+ };
7458
+ content: {
7459
+ "application/json": components["schemas"]["ProblemDetails"];
7460
+ };
7461
+ };
7462
+ };
7463
+ };
7464
+ put?: never;
7465
+ post?: never;
7466
+ delete?: never;
7467
+ options?: never;
7468
+ head?: never;
7469
+ patch?: never;
7470
+ trace?: never;
7471
+ };
7472
+ "/v1/api/triggers/{triggerId}/test-mapping": {
7473
+ parameters: {
7474
+ query?: never;
7475
+ header?: never;
7476
+ path?: never;
7477
+ cookie?: never;
7478
+ };
7479
+ get?: never;
7480
+ put?: never;
7481
+ /**
7482
+ * Preview payload transformation using the trigger's input mapping.
7483
+ * Returns the transformed graph_input without executing a run.
7484
+ */
7485
+ post: {
7486
+ parameters: {
7487
+ query?: never;
7488
+ header?: never;
7489
+ path: {
7490
+ triggerId: string;
7491
+ };
7492
+ cookie?: never;
7493
+ };
7494
+ requestBody?: {
7495
+ content: {
7496
+ "application/json": components["schemas"]["TestMappingRequest"];
7497
+ "text/json": components["schemas"]["TestMappingRequest"];
7498
+ "application/*+json": components["schemas"]["TestMappingRequest"];
7499
+ };
7500
+ };
7303
7501
  responses: {
7304
7502
  /** @description OK */
7305
7503
  200: {
@@ -7307,11 +7505,11 @@ export interface paths {
7307
7505
  [name: string]: unknown;
7308
7506
  };
7309
7507
  content: {
7310
- "application/json": components["schemas"]["TriggerSecretResponse"];
7508
+ "application/json": components["schemas"]["TestMappingResponse"];
7311
7509
  };
7312
7510
  };
7313
- /** @description Unauthorized */
7314
- 401: {
7511
+ /** @description Bad Request */
7512
+ 400: {
7315
7513
  headers: {
7316
7514
  [name: string]: unknown;
7317
7515
  };
@@ -7330,15 +7528,13 @@ export interface paths {
7330
7528
  };
7331
7529
  };
7332
7530
  };
7333
- put?: never;
7334
- post?: never;
7335
7531
  delete?: never;
7336
7532
  options?: never;
7337
7533
  head?: never;
7338
7534
  patch?: never;
7339
7535
  trace?: never;
7340
7536
  };
7341
- "/v1/api/triggers/invoke/{triggerId}": {
7537
+ "/v1/api/triggers/{triggerId}/infer-schema": {
7342
7538
  parameters: {
7343
7539
  query?: never;
7344
7540
  header?: never;
@@ -7348,10 +7544,8 @@ export interface paths {
7348
7544
  get?: never;
7349
7545
  put?: never;
7350
7546
  /**
7351
- * Invoke a trigger to start an agent run.
7352
- * SECURITY: Requires HMAC-SHA256 signature over raw request body.
7353
- * Signature format: X-Signature: sha256=[64_lowercase_hex]
7354
- * Payload: X-Timestamp + "." + raw_request_body
7547
+ * Infer JSON Schema from a sample payload.
7548
+ * Returns the inferred schema and flattened paths for UI consumption.
7355
7549
  */
7356
7550
  post: {
7357
7551
  parameters: {
@@ -7362,14 +7556,49 @@ export interface paths {
7362
7556
  };
7363
7557
  cookie?: never;
7364
7558
  };
7365
- requestBody?: never;
7559
+ requestBody?: {
7560
+ content: {
7561
+ "application/json": components["schemas"]["InferSchemaRequest"];
7562
+ "text/json": components["schemas"]["InferSchemaRequest"];
7563
+ "application/*+json": components["schemas"]["InferSchemaRequest"];
7564
+ };
7565
+ };
7366
7566
  responses: {
7367
7567
  /** @description OK */
7368
7568
  200: {
7369
7569
  headers: {
7370
7570
  [name: string]: unknown;
7371
7571
  };
7372
- content?: never;
7572
+ content: {
7573
+ "application/json": components["schemas"]["InferSchemaResponse"];
7574
+ };
7575
+ };
7576
+ /** @description Bad Request */
7577
+ 400: {
7578
+ headers: {
7579
+ [name: string]: unknown;
7580
+ };
7581
+ content: {
7582
+ "application/json": components["schemas"]["ProblemDetails"];
7583
+ };
7584
+ };
7585
+ /** @description Not Found */
7586
+ 404: {
7587
+ headers: {
7588
+ [name: string]: unknown;
7589
+ };
7590
+ content: {
7591
+ "application/json": components["schemas"]["ProblemDetails"];
7592
+ };
7593
+ };
7594
+ /** @description Content Too Large */
7595
+ 413: {
7596
+ headers: {
7597
+ [name: string]: unknown;
7598
+ };
7599
+ content: {
7600
+ "application/json": components["schemas"]["ProblemDetails"];
7601
+ };
7373
7602
  };
7374
7603
  };
7375
7604
  };
@@ -7379,7 +7608,7 @@ export interface paths {
7379
7608
  patch?: never;
7380
7609
  trace?: never;
7381
7610
  };
7382
- "/v1/api/triggers/{triggerId}/regenerate-secret": {
7611
+ "/v1/api/triggers/{triggerId}/input-mapping": {
7383
7612
  parameters: {
7384
7613
  query?: never;
7385
7614
  header?: never;
@@ -7387,9 +7616,8 @@ export interface paths {
7387
7616
  cookie?: never;
7388
7617
  };
7389
7618
  get?: never;
7390
- put?: never;
7391
- /** Regenerate secret key for a trigger. */
7392
- post: {
7619
+ /** Save or update the input mapping override for a trigger. */
7620
+ put: {
7393
7621
  parameters: {
7394
7622
  query?: never;
7395
7623
  header?: never;
@@ -7398,24 +7626,60 @@ export interface paths {
7398
7626
  };
7399
7627
  cookie?: never;
7400
7628
  };
7401
- requestBody?: never;
7629
+ requestBody?: {
7630
+ content: {
7631
+ "application/json": components["schemas"]["SaveMappingRequest"];
7632
+ "text/json": components["schemas"]["SaveMappingRequest"];
7633
+ "application/*+json": components["schemas"]["SaveMappingRequest"];
7634
+ };
7635
+ };
7402
7636
  responses: {
7403
7637
  /** @description OK */
7404
7638
  200: {
7405
7639
  headers: {
7406
7640
  [name: string]: unknown;
7407
7641
  };
7408
- content?: never;
7642
+ content: {
7643
+ "application/json": components["schemas"]["SaveMappingResponse"];
7644
+ };
7645
+ };
7646
+ /** @description Bad Request */
7647
+ 400: {
7648
+ headers: {
7649
+ [name: string]: unknown;
7650
+ };
7651
+ content: {
7652
+ "application/json": components["schemas"]["ProblemDetails"];
7653
+ };
7654
+ };
7655
+ /** @description Not Found */
7656
+ 404: {
7657
+ headers: {
7658
+ [name: string]: unknown;
7659
+ };
7660
+ content: {
7661
+ "application/json": components["schemas"]["ProblemDetails"];
7662
+ };
7663
+ };
7664
+ /** @description Unprocessable Content */
7665
+ 422: {
7666
+ headers: {
7667
+ [name: string]: unknown;
7668
+ };
7669
+ content: {
7670
+ "application/json": components["schemas"]["ProblemDetails"];
7671
+ };
7409
7672
  };
7410
7673
  };
7411
7674
  };
7675
+ post?: never;
7412
7676
  delete?: never;
7413
7677
  options?: never;
7414
7678
  head?: never;
7415
7679
  patch?: never;
7416
7680
  trace?: never;
7417
7681
  };
7418
- "/v1/api/triggers/{triggerId}/test": {
7682
+ "/v1/api/triggers/{triggerId}/preview-input-mapping": {
7419
7683
  parameters: {
7420
7684
  query?: never;
7421
7685
  header?: never;
@@ -7425,11 +7689,8 @@ export interface paths {
7425
7689
  get?: never;
7426
7690
  put?: never;
7427
7691
  /**
7428
- * Test a trigger by executing a run directly (no HMAC required).
7429
- * SECURITY: Requires authenticated session, no secret leakage.
7430
- * Wave 3: Server-side testing with workspace isolation.
7431
- * @description Executes a run using either the provided payload or the template's example_payload.
7432
- * Uses Channel.Test for audit trail differentiation.
7692
+ * Preview payload transformation without persisting.
7693
+ * This is the "product magic" - users trust mapping when they see the transform.
7433
7694
  */
7434
7695
  post: {
7435
7696
  parameters: {
@@ -7442,9 +7703,9 @@ export interface paths {
7442
7703
  };
7443
7704
  requestBody?: {
7444
7705
  content: {
7445
- "application/json": components["schemas"]["TestTriggerRequest"];
7446
- "text/json": components["schemas"]["TestTriggerRequest"];
7447
- "application/*+json": components["schemas"]["TestTriggerRequest"];
7706
+ "application/json": components["schemas"]["PreviewMappingRequest"];
7707
+ "text/json": components["schemas"]["PreviewMappingRequest"];
7708
+ "application/*+json": components["schemas"]["PreviewMappingRequest"];
7448
7709
  };
7449
7710
  };
7450
7711
  responses: {
@@ -7453,7 +7714,36 @@ export interface paths {
7453
7714
  headers: {
7454
7715
  [name: string]: unknown;
7455
7716
  };
7456
- content?: never;
7717
+ content: {
7718
+ "application/json": components["schemas"]["PreviewMappingResponse"];
7719
+ };
7720
+ };
7721
+ /** @description Bad Request */
7722
+ 400: {
7723
+ headers: {
7724
+ [name: string]: unknown;
7725
+ };
7726
+ content: {
7727
+ "application/json": components["schemas"]["ProblemDetails"];
7728
+ };
7729
+ };
7730
+ /** @description Not Found */
7731
+ 404: {
7732
+ headers: {
7733
+ [name: string]: unknown;
7734
+ };
7735
+ content: {
7736
+ "application/json": components["schemas"]["ProblemDetails"];
7737
+ };
7738
+ };
7739
+ /** @description Content Too Large */
7740
+ 413: {
7741
+ headers: {
7742
+ [name: string]: unknown;
7743
+ };
7744
+ content: {
7745
+ "application/json": components["schemas"]["ProblemDetails"];
7746
+ };
7457
7747
  };
7458
7748
  };
7459
7749
  };
@@ -8366,6 +8656,21 @@ export interface components {
8366
8656
  /** Format: uuid */
8367
8657
  agent_id?: string;
8368
8658
  };
8659
+ BootstrapResponse: {
8660
+ /** @description "existing" if already bootstrapped, "created" if newly provisioned. */
8661
+ status?: string | null;
8662
+ /** Format: uuid */
8663
+ tenant_id?: string;
8664
+ tenant_name?: string | null;
8665
+ tenant_slug?: string | null;
8666
+ /** Format: uuid */
8667
+ workspace_id?: string | null;
8668
+ workspace_name?: string | null;
8669
+ workspace_slug?: string | null;
8670
+ /** Format: uuid */
8671
+ member_id?: string;
8672
+ role_name?: string | null;
8673
+ };
8369
8674
  /**
8370
8675
  * @description KERNEL P0: Request DTO for builder chat.
8371
8676
  * Contains ONLY intention fields. No graph_spec, no catalogs.
@@ -8492,6 +8797,7 @@ export interface components {
8492
8797
  };
8493
8798
  CreateAgentRequest: {
8494
8799
  name?: string | null;
8800
+ metadata?: components["schemas"]["JsonNode"];
8495
8801
  };
8496
8802
  CreateCheckpointRequest: {
8497
8803
  step_name?: string | null;
@@ -8587,6 +8893,10 @@ export interface components {
8587
8893
  webhook_url?: string | null;
8588
8894
  /** Format: uuid */
8589
8895
  bundle_id?: string | null;
8896
+ thread_key?: string | null;
8897
+ event_key?: string | null;
8898
+ /** Format: uuid */
8899
+ rerun_of_run_id?: string | null;
8590
8900
  };
8591
8901
  CreateTenantRequest: {
8592
8902
  name?: string | null;
@@ -8625,6 +8935,9 @@ export interface components {
8625
8935
  trigger_type?: string | null;
8626
8936
  template_slug?: string | null;
8627
8937
  config?: unknown;
8938
+ payload_variants_json?: unknown;
8939
+ thread_key_spec_json?: unknown;
8940
+ idempotency_spec_json?: unknown;
8628
8941
  };
8629
8942
  CreateVectorStoreRequest: {
8630
8943
  name?: string | null;
@@ -8637,26 +8950,6 @@ export interface components {
8637
8950
  CreateWorkspaceRequest: {
8638
8951
  name?: string | null;
8639
8952
  };
8640
- /** @description Response after granting access. */
8641
- CredentialAccessGrantedResponse: {
8642
- /** Format: uuid */
8643
- id?: string;
8644
- status?: string | null;
8645
- };
8646
- /** @description Response after creating a credential. */
8647
- CredentialCreatedResponse: {
8648
- /** Format: uuid */
8649
- id?: string;
8650
- name?: string | null;
8651
- scope?: string | null;
8652
- /** Format: uuid */
8653
- tenant_id?: string;
8654
- /** Format: uuid */
8655
- workspace_id?: string | null;
8656
- status?: string | null;
8657
- /** Format: date-time */
8658
- created_at?: string;
8659
- };
8660
8953
  /** @description Detailed credential response including config. */
8661
8954
  CredentialDetailResponse: {
8662
8955
  /** Format: uuid */
@@ -8674,6 +8967,9 @@ export interface components {
8674
8967
  /** Format: date-time */
8675
8968
  created_at?: string;
8676
8969
  public_config?: unknown;
8970
+ values?: {
8971
+ [key: string]: unknown;
8972
+ } | null;
8677
8973
  };
8678
8974
  /** @description Paginated list of credentials. */
8679
8975
  CredentialListResponse: {
@@ -8697,12 +8993,13 @@ export interface components {
8697
8993
  /** Format: date-time */
8698
8994
  created_at?: string;
8699
8995
  };
8700
- /** @description Response after updating a credential. */
8701
- CredentialUpdatedResponse: {
8702
- /** Format: uuid */
8703
- id?: string;
8704
- status?: string | null;
8705
- sharing_mode?: string | null;
8996
+ CurlCommandParts: {
8997
+ method?: string | null;
8998
+ url?: string | null;
8999
+ headers?: {
9000
+ [key: string]: string;
9001
+ } | null;
9002
+ body_json?: string | null;
8706
9003
  };
8707
9004
  DatasetResponse: {
8708
9005
  /** Format: uuid */
@@ -8789,6 +9086,22 @@ export interface components {
8789
9086
  /** Format: date-time */
8790
9087
  created_at?: string;
8791
9088
  };
9089
+ FrontendLogIngestRequest: {
9090
+ level?: string | null;
9091
+ message?: string | null;
9092
+ stack?: string | null;
9093
+ component?: string | null;
9094
+ route?: string | null;
9095
+ url?: string | null;
9096
+ user_agent?: string | null;
9097
+ correlation_id?: string | null;
9098
+ trace_id?: string | null;
9099
+ run_id?: string | null;
9100
+ session_id?: string | null;
9101
+ context?: {
9102
+ [key: string]: unknown;
9103
+ } | null;
9104
+ };
8792
9105
  GetGraphSpecResponse: {
8793
9106
  /** Format: uuid */
8794
9107
  agent_id?: string;
@@ -8808,6 +9121,16 @@ export interface components {
8808
9121
  workspace_id?: string;
8809
9122
  permission?: string | null;
8810
9123
  };
9124
+ /** @description Request for POST /triggers/{id}/infer-schema */
9125
+ InferSchemaRequest: {
9126
+ sample_payload?: unknown;
9127
+ };
9128
+ /** @description Response for POST /triggers/{id}/infer-schema */
9129
+ InferSchemaResponse: {
9130
+ inferred_schema?: unknown;
9131
+ paths?: components["schemas"]["PathInfoDto"][] | null;
9132
+ warnings?: string[] | null;
9133
+ };
8811
9134
  IntrospectGraphRequest: {
8812
9135
  graph_spec?: {
8813
9136
  [key: string]: unknown;
@@ -8827,17 +9150,31 @@ export interface components {
8827
9150
  role_id?: string;
8828
9151
  workspace_ids?: string[] | null;
8829
9152
  };
9153
+ JsonNode: {
9154
+ options?: components["schemas"]["JsonNodeOptions"];
9155
+ parent?: components["schemas"]["JsonNode"];
9156
+ root?: components["schemas"]["JsonNode"];
9157
+ };
9158
+ JsonNodeOptions: {
9159
+ property_name_case_insensitive?: boolean;
9160
+ };
8830
9161
  JsonRpcRequest: {
8831
9162
  json_rpc?: string | null;
8832
9163
  id?: unknown;
8833
9164
  method?: string | null;
8834
9165
  params?: unknown;
8835
9166
  };
9167
+ /** @description Structured validation error with path for better UI feedback. */
9168
+ MappingValidationError: {
9169
+ code?: string | null;
9170
+ path?: string | null;
9171
+ message?: string | null;
9172
+ };
8836
9173
  MemberDetailResponse: {
8837
9174
  /** Format: uuid */
8838
9175
  id?: string;
8839
9176
  /** Format: uuid */
8840
- user_id?: string;
9177
+ user_id?: string | null;
8841
9178
  /** Format: uuid */
8842
9179
  tenant_id?: string;
8843
9180
  /** Format: uuid */
@@ -8866,6 +9203,13 @@ export interface components {
8866
9203
  id?: string;
8867
9204
  name?: string | null;
8868
9205
  };
9206
+ MembershipContextDto: {
9207
+ /** Format: uuid */
9208
+ member_id?: string;
9209
+ tenant?: components["schemas"]["TenantContextDto"];
9210
+ role?: components["schemas"]["RoleContextDto"];
9211
+ workspaces?: components["schemas"]["WorkspaceContextDto"][] | null;
9212
+ };
8869
9213
  NodeCatalogResponse: {
8870
9214
  version: string | null;
8871
9215
  nodes: components["schemas"]["NodeTypeDto"][] | null;
@@ -8876,7 +9220,7 @@ export interface components {
8876
9220
  title: string | null;
8877
9221
  description?: string | null;
8878
9222
  default_config?: unknown;
8879
- locked_fields?: unknown;
9223
+ locked_fields?: string[] | null;
8880
9224
  ui_variant?: string | null;
8881
9225
  };
8882
9226
  NodePresetsCatalogResponse: {
@@ -8884,13 +9228,19 @@ export interface components {
8884
9228
  presets: components["schemas"]["NodePresetDto"][] | null;
8885
9229
  };
8886
9230
  NodeTypeDto: {
8887
- id: string | null;
9231
+ kind: string | null;
8888
9232
  title: string | null;
8889
9233
  category: string | null;
8890
9234
  description?: string | null;
8891
- ports?: unknown;
8892
9235
  config_schema?: unknown;
8893
9236
  default_config?: unknown;
9237
+ inputs?: string[] | null;
9238
+ outputs?: string[] | null;
9239
+ };
9240
+ /** @description A JSONPath with its inferred type. */
9241
+ PathInfoDto: {
9242
+ path?: string | null;
9243
+ kind?: string | null;
8894
9244
  };
8895
9245
  PlaygroundRequest: {
8896
9246
  variables?: {
@@ -8933,6 +9283,17 @@ export interface components {
8933
9283
  expires_in?: number;
8934
9284
  object_key?: string | null;
8935
9285
  };
9286
+ /** @description Request for POST /triggers/{id}/preview-input-mapping */
9287
+ PreviewMappingRequest: {
9288
+ sample_payload?: unknown;
9289
+ input_mapping_override?: unknown;
9290
+ };
9291
+ /** @description Response for POST /triggers/{id}/preview-input-mapping */
9292
+ PreviewMappingResponse: {
9293
+ result_input?: unknown;
9294
+ resolution?: components["schemas"]["ResolutionRowDto"][] | null;
9295
+ warnings?: string[] | null;
9296
+ };
8936
9297
  ProblemDetails: {
8937
9298
  type?: string | null;
8938
9299
  title?: string | null;
@@ -8974,6 +9335,13 @@ export interface components {
8974
9335
  rerun_of_run_id?: string;
8975
9336
  status?: string | null;
8976
9337
  };
9338
+ /** @description Resolution row showing how a mapping was resolved. */
9339
+ ResolutionRowDto: {
9340
+ target?: string | null;
9341
+ source?: string | null;
9342
+ ok?: boolean;
9343
+ note?: string | null;
9344
+ };
8977
9345
  ResumeRequest: {
8978
9346
  input?: unknown;
8979
9347
  message?: string | null;
@@ -9035,6 +9403,13 @@ export interface components {
9035
9403
  data?: components["schemas"]["RevisionListResponse"];
9036
9404
  hints?: components["schemas"]["ApiHint"][] | null;
9037
9405
  };
9406
+ RoleContextDto: {
9407
+ /** Format: uuid */
9408
+ id?: string;
9409
+ name?: string | null;
9410
+ is_system?: boolean;
9411
+ permissions?: string[] | null;
9412
+ };
9038
9413
  RunDetailResponse: {
9039
9414
  /** Format: uuid */
9040
9415
  run_id?: string;
@@ -9048,17 +9423,25 @@ export interface components {
9048
9423
  bundle_id?: string;
9049
9424
  /** Format: uuid */
9050
9425
  thread_id?: string;
9426
+ /** Format: uuid */
9427
+ current_attempt_id?: string | null;
9428
+ /** Format: int32 */
9429
+ current_attempt_no?: number | null;
9430
+ /** Format: int64 */
9431
+ latest_seq?: number | null;
9051
9432
  status?: components["schemas"]["RunStatus"];
9052
- input_json?: string | null;
9053
- output_json?: string | null;
9054
- error_json?: string | null;
9055
- metrics_json?: string | null;
9433
+ input?: unknown;
9434
+ output?: unknown;
9435
+ error?: unknown;
9436
+ metrics?: unknown;
9056
9437
  /** Format: date-time */
9057
9438
  started_at?: string | null;
9058
9439
  /** Format: date-time */
9059
9440
  completed_at?: string | null;
9060
9441
  /** Format: date-time */
9061
9442
  created_at?: string;
9443
+ /** Format: double */
9444
+ duration_ms?: number | null;
9062
9445
  prompt_hash?: string | null;
9063
9446
  toolset_hash?: string | null;
9064
9447
  };
@@ -9075,13 +9458,6 @@ export interface components {
9075
9458
  payload?: unknown;
9076
9459
  truncated?: boolean;
9077
9460
  };
9078
- RunEventItem: {
9079
- id?: string | null;
9080
- type?: string | null;
9081
- /** Format: date-time */
9082
- timestamp?: string;
9083
- data?: unknown;
9084
- };
9085
9461
  RunEventsPollResponse: {
9086
9462
  events?: components["schemas"]["RunEventDto"][] | null;
9087
9463
  /** Format: int64 */
@@ -9090,16 +9466,6 @@ export interface components {
9090
9466
  next_after_seq?: number | null;
9091
9467
  has_more?: boolean;
9092
9468
  };
9093
- RunEventsResponse: {
9094
- items?: components["schemas"]["RunEventItem"][] | null;
9095
- /** Format: int32 */
9096
- total?: number;
9097
- /** Format: int32 */
9098
- offset?: number;
9099
- /** Format: int32 */
9100
- limit?: number;
9101
- has_more?: boolean;
9102
- };
9103
9469
  RunListItem: {
9104
9470
  /** Format: uuid */
9105
9471
  id?: string;
@@ -9138,6 +9504,23 @@ export interface components {
9138
9504
  * @enum {integer}
9139
9505
  */
9140
9506
  RunStatus: 0 | 1 | 2 | 3 | 4 | 5 | 6;
9507
+ /** @description Request for PUT /triggers/{id}/input-mapping */
9508
+ SaveMappingRequest: {
9509
+ input_mapping_override?: unknown;
9510
+ };
9511
+ /** @description Response for PUT /triggers/{id}/input-mapping */
9512
+ SaveMappingResponse: {
9513
+ /** Format: uuid */
9514
+ trigger_id?: string;
9515
+ input_mapping_override?: unknown;
9516
+ };
9517
+ ScopeInfo: {
9518
+ key?: string | null;
9519
+ description?: string | null;
9520
+ };
9521
+ ScopeListResponse: {
9522
+ scopes: components["schemas"]["ScopeInfo"][] | null;
9523
+ };
9141
9524
  SetLiveVersionRequest: {
9142
9525
  /** Format: int32 */
9143
9526
  version_number?: number;
@@ -9174,17 +9557,11 @@ export interface components {
9174
9557
  /** Format: int32 */
9175
9558
  ttl_seconds?: number | null;
9176
9559
  };
9177
- StreamRunRequest: {
9178
- /** Format: uuid */
9179
- tenant_id?: string;
9180
- /** Format: uuid */
9181
- workspace_id?: string;
9560
+ TenantContextDto: {
9182
9561
  /** Format: uuid */
9183
- agent_id?: string | null;
9184
- thread?: components["schemas"]["ThreadRequest"];
9185
- idempotency_key?: string | null;
9186
- input_json?: string | null;
9187
- stream_mode?: string | null;
9562
+ id?: string;
9563
+ name?: string | null;
9564
+ slug?: string | null;
9188
9565
  };
9189
9566
  TenantListResponse: {
9190
9567
  items?: components["schemas"]["TenantResponse"][] | null;
@@ -9208,12 +9585,34 @@ export interface components {
9208
9585
  name?: string | null;
9209
9586
  is_system?: boolean;
9210
9587
  };
9588
+ /** @description Request for POST /triggers/{id}/test-mapping - Preview payload transformation. */
9589
+ TestMappingRequest: {
9590
+ sample_payload?: unknown;
9591
+ };
9592
+ /**
9593
+ * @description Response for POST /triggers/{id}/test-mapping.
9594
+ * P0: Separated mapping_configured from mapping_executed for honesty.
9595
+ */
9596
+ TestMappingResponse: {
9597
+ /** @description The original payload as received */
9598
+ original_payload?: unknown;
9599
+ /** @description The transformed payload after mapping */
9600
+ transformed_graph_input?: unknown;
9601
+ /** @description True if a mapping spec is configured (trigger override or template default) */
9602
+ mapping_configured?: boolean;
9603
+ /** @description True if the mapping was actually executed (not just configured) */
9604
+ mapping_executed?: boolean;
9605
+ /** @description Structured validation errors if any */
9606
+ validation_errors?: components["schemas"]["MappingValidationError"][] | null;
9607
+ };
9211
9608
  /**
9212
9609
  * @description Request body for POST /triggers/{id}/test.
9213
9610
  * Payload is optional - falls back to template example_payload.
9214
9611
  */
9215
9612
  TestTriggerRequest: {
9216
9613
  payload?: unknown;
9614
+ thread_key?: string | null;
9615
+ idempotency_key?: string | null;
9217
9616
  };
9218
9617
  ThreadCopyRequest: {
9219
9618
  copy_history?: boolean;
@@ -9252,9 +9651,16 @@ export interface components {
9252
9651
  /** Format: int32 */
9253
9652
  offset?: number | null;
9254
9653
  };
9255
- ToolCallRequest: {
9256
- name?: string | null;
9257
- arguments?: unknown;
9654
+ /** @description Response for GET /triggers/{id}/contract - Full input contract details. */
9655
+ TriggerInputContractResponse: {
9656
+ /** Format: uuid */
9657
+ trigger_id?: string;
9658
+ template_slug?: string | null;
9659
+ external_body_schema?: unknown;
9660
+ run_input_schema?: unknown;
9661
+ effective_input_mapping_spec?: unknown;
9662
+ example_payload?: unknown;
9663
+ has_input_mapping?: boolean;
9258
9664
  };
9259
9665
  TriggerRequestContract: {
9260
9666
  method?: string | null;
@@ -9266,6 +9672,7 @@ export interface components {
9266
9672
  body_schema_json?: string | null;
9267
9673
  example_payload_json?: string | null;
9268
9674
  curl_example?: string | null;
9675
+ curl_command_parts?: components["schemas"]["CurlCommandParts"];
9269
9676
  };
9270
9677
  TriggerSecretResponse: {
9271
9678
  /** Format: uuid */
@@ -9280,6 +9687,11 @@ export interface components {
9280
9687
  invoke_url?: string | null;
9281
9688
  request_contract?: components["schemas"]["TriggerRequestContract"];
9282
9689
  is_active?: boolean;
9690
+ template_slug?: string | null;
9691
+ config_json?: string | null;
9692
+ payload_variants_json?: string | null;
9693
+ thread_key_spec_json?: string | null;
9694
+ idempotency_spec_json?: string | null;
9283
9695
  /** Format: date-time */
9284
9696
  created_at?: string;
9285
9697
  };
@@ -9300,6 +9712,7 @@ export interface components {
9300
9712
  name?: string | null;
9301
9713
  /** Format: uuid */
9302
9714
  live_bundle_id?: string | null;
9715
+ metadata?: components["schemas"]["JsonNode"];
9303
9716
  };
9304
9717
  UpdateCredentialRequest: {
9305
9718
  name?: string | null;
@@ -9339,10 +9752,23 @@ export interface components {
9339
9752
  UpdateTriggerRequest: {
9340
9753
  name?: string | null;
9341
9754
  is_active?: boolean | null;
9755
+ config?: unknown;
9756
+ payload_variants_json?: unknown;
9757
+ thread_key_spec_json?: unknown;
9758
+ idempotency_spec_json?: unknown;
9342
9759
  };
9343
9760
  UpdateWorkspaceRequest: {
9344
9761
  name?: string | null;
9345
9762
  };
9763
+ UserContextResponse: {
9764
+ user?: components["schemas"]["UserIdentityDto"];
9765
+ memberships?: components["schemas"]["MembershipContextDto"][] | null;
9766
+ };
9767
+ UserIdentityDto: {
9768
+ /** Format: uuid */
9769
+ id?: string;
9770
+ email?: string | null;
9771
+ };
9346
9772
  ValidateGraphRequest: {
9347
9773
  graph_spec?: {
9348
9774
  [key: string]: unknown;
@@ -9459,6 +9885,12 @@ export interface components {
9459
9885
  /** Format: double */
9460
9886
  duration_ms?: number | null;
9461
9887
  };
9888
+ WorkspaceContextDto: {
9889
+ /** Format: uuid */
9890
+ id?: string;
9891
+ name?: string | null;
9892
+ slug?: string | null;
9893
+ };
9462
9894
  WorkspaceListResponse: {
9463
9895
  items?: components["schemas"]["WorkspaceResponse"][] | null;
9464
9896
  };