@agent-os-sdk/client 0.9.2 → 0.9.3

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