@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.
@@ -677,14 +677,23 @@
677
677
  "tags": [
678
678
  "ApiTokens"
679
679
  ],
680
- "summary": "Lists all API tokens for the current workspace.",
681
- "description": "Returns token metadata without secrets. Token secrets are only\navailable at creation time and cannot be retrieved later.",
680
+ "summary": "Lists all API tokens for the current workspace.\nRequires `tokens:read` permission.",
682
681
  "responses": {
683
682
  "200": {
684
- "description": "Returns the list of tokens."
683
+ "description": "OK"
685
684
  },
686
685
  "400": {
687
- "description": "Workspace ID header is required.",
686
+ "description": "Bad Request",
687
+ "content": {
688
+ "application/json": {
689
+ "schema": {
690
+ "$ref": "#/components/schemas/ProblemDetails"
691
+ }
692
+ }
693
+ }
694
+ },
695
+ "403": {
696
+ "description": "Forbidden",
688
697
  "content": {
689
698
  "application/json": {
690
699
  "schema": {
@@ -699,7 +708,7 @@
699
708
  "tags": [
700
709
  "ApiTokens"
701
710
  ],
702
- "summary": "Create a new API token.\nThe token secret is only returned once on creation.",
711
+ "summary": "Create a new API token.\nRequires `tokens:write` permission.\nToken scopes cannot exceed the creator's own permissions (scope ceiling).\nThe token secret is only returned once on creation.",
703
712
  "requestBody": {
704
713
  "content": {
705
714
  "application/json": {
@@ -719,9 +728,49 @@
719
728
  }
720
729
  }
721
730
  },
731
+ "responses": {
732
+ "201": {
733
+ "description": "Created"
734
+ },
735
+ "400": {
736
+ "description": "Bad Request",
737
+ "content": {
738
+ "application/json": {
739
+ "schema": {
740
+ "$ref": "#/components/schemas/ProblemDetails"
741
+ }
742
+ }
743
+ }
744
+ },
745
+ "403": {
746
+ "description": "Forbidden",
747
+ "content": {
748
+ "application/json": {
749
+ "schema": {
750
+ "$ref": "#/components/schemas/ProblemDetails"
751
+ }
752
+ }
753
+ }
754
+ }
755
+ }
756
+ }
757
+ },
758
+ "/v1/api/tokens/available-scopes": {
759
+ "get": {
760
+ "tags": [
761
+ "ApiTokens"
762
+ ],
763
+ "summary": "Lists all available scopes that can be assigned to an API token.\nScopes are sourced from the canonical Permissions registry.",
722
764
  "responses": {
723
765
  "200": {
724
- "description": "OK"
766
+ "description": "OK",
767
+ "content": {
768
+ "application/json": {
769
+ "schema": {
770
+ "$ref": "#/components/schemas/ScopeListResponse"
771
+ }
772
+ }
773
+ }
725
774
  }
726
775
  }
727
776
  }
@@ -731,7 +780,7 @@
731
780
  "tags": [
732
781
  "ApiTokens"
733
782
  ],
734
- "summary": "Revoke an API token immediately.",
783
+ "summary": "Revoke an API token immediately.\nRequires `tokens:delete` permission.",
735
784
  "parameters": [
736
785
  {
737
786
  "name": "id",
@@ -746,6 +795,26 @@
746
795
  "responses": {
747
796
  "200": {
748
797
  "description": "OK"
798
+ },
799
+ "403": {
800
+ "description": "Forbidden",
801
+ "content": {
802
+ "application/json": {
803
+ "schema": {
804
+ "$ref": "#/components/schemas/ProblemDetails"
805
+ }
806
+ }
807
+ }
808
+ },
809
+ "404": {
810
+ "description": "Not Found",
811
+ "content": {
812
+ "application/json": {
813
+ "schema": {
814
+ "$ref": "#/components/schemas/ProblemDetails"
815
+ }
816
+ }
817
+ }
749
818
  }
750
819
  }
751
820
  }
@@ -755,13 +824,11 @@
755
824
  "tags": [
756
825
  "ApiTokens"
757
826
  ],
758
- "summary": "Rotate an API token - revokes current and issues a new one.\nThe new token secret is only returned once.",
759
- "description": "Rotation is useful for security hygiene (periodic credential rotation)\nor when a token may have been compromised. The new token inherits\nthe same scopes and expiration policy as the original.",
827
+ "summary": "Rotate an API token - revokes current and issues a new one.\nRequires `tokens:write` permission.\nThe new token secret is only returned once.",
760
828
  "parameters": [
761
829
  {
762
830
  "name": "id",
763
831
  "in": "path",
764
- "description": "Token ID to rotate.",
765
832
  "required": true,
766
833
  "schema": {
767
834
  "type": "string",
@@ -771,10 +838,20 @@
771
838
  ],
772
839
  "responses": {
773
840
  "200": {
774
- "description": "Token rotated successfully, new secret returned."
841
+ "description": "OK"
842
+ },
843
+ "403": {
844
+ "description": "Forbidden",
845
+ "content": {
846
+ "application/json": {
847
+ "schema": {
848
+ "$ref": "#/components/schemas/ProblemDetails"
849
+ }
850
+ }
851
+ }
775
852
  },
776
853
  "404": {
777
- "description": "Token not found or already revoked.",
854
+ "description": "Not Found",
778
855
  "content": {
779
856
  "application/json": {
780
857
  "schema": {
@@ -1069,6 +1146,56 @@
1069
1146
  }
1070
1147
  }
1071
1148
  },
1149
+ "/v1/api/auth/bootstrap": {
1150
+ "post": {
1151
+ "tags": [
1152
+ "AuthBootstrap"
1153
+ ],
1154
+ "summary": "Bootstrap the authenticated user with a default tenant, workspace, and roles.\nIdempotent: returns existing resources if already provisioned.",
1155
+ "responses": {
1156
+ "200": {
1157
+ "description": "User already bootstrapped — returns existing membership.",
1158
+ "content": {
1159
+ "application/json": {
1160
+ "schema": {
1161
+ "$ref": "#/components/schemas/BootstrapResponse"
1162
+ }
1163
+ }
1164
+ }
1165
+ },
1166
+ "201": {
1167
+ "description": "First bootstrap — created tenant, workspace, roles, and membership.",
1168
+ "content": {
1169
+ "application/json": {
1170
+ "schema": {
1171
+ "$ref": "#/components/schemas/BootstrapResponse"
1172
+ }
1173
+ }
1174
+ }
1175
+ },
1176
+ "401": {
1177
+ "description": "Missing or invalid JWT.",
1178
+ "content": {
1179
+ "application/json": {
1180
+ "schema": {
1181
+ "$ref": "#/components/schemas/ProblemDetails"
1182
+ }
1183
+ }
1184
+ }
1185
+ },
1186
+ "403": {
1187
+ "description": "PATs cannot trigger bootstrap.",
1188
+ "content": {
1189
+ "application/json": {
1190
+ "schema": {
1191
+ "$ref": "#/components/schemas/ProblemDetails"
1192
+ }
1193
+ }
1194
+ }
1195
+ }
1196
+ }
1197
+ }
1198
+ },
1072
1199
  "/v1/api/builder/{agentId}/chat": {
1073
1200
  "post": {
1074
1201
  "tags": [
@@ -1608,9 +1735,8 @@
1608
1735
  "Credentials"
1609
1736
  ],
1610
1737
  "summary": "Creates a new credential.",
1611
- "description": "Creates a new encrypted credential for storing API keys or secrets.\nThe credential is encrypted at rest using workspace-specific keys.",
1612
1738
  "requestBody": {
1613
- "description": "The credential configuration.",
1739
+ "description": "Credential creation details.",
1614
1740
  "content": {
1615
1741
  "application/json": {
1616
1742
  "schema": {
@@ -1631,31 +1757,11 @@
1631
1757
  },
1632
1758
  "responses": {
1633
1759
  "201": {
1634
- "description": "Credential created successfully.",
1635
- "content": {
1636
- "application/json": {
1637
- "schema": {
1638
- "$ref": "#/components/schemas/CredentialCreatedResponse"
1639
- }
1640
- }
1641
- }
1642
- },
1643
- "400": {
1644
- "description": "Invalid request (missing TypeId or WorkspaceId).",
1645
- "content": {
1646
- "application/json": {
1647
- "schema": {
1648
- "$ref": "#/components/schemas/ProblemDetails"
1649
- }
1650
- }
1651
- }
1652
- },
1653
- "401": {
1654
- "description": "Authentication required.",
1760
+ "description": "Created",
1655
1761
  "content": {
1656
1762
  "application/json": {
1657
1763
  "schema": {
1658
- "$ref": "#/components/schemas/ProblemDetails"
1764
+ "$ref": "#/components/schemas/CredentialResponse"
1659
1765
  }
1660
1766
  }
1661
1767
  }
@@ -1679,6 +1785,15 @@
1679
1785
  "type": "string",
1680
1786
  "format": "uuid"
1681
1787
  }
1788
+ },
1789
+ {
1790
+ "name": "includeValues",
1791
+ "in": "query",
1792
+ "description": "Whether to include the decrypted secret values.",
1793
+ "schema": {
1794
+ "type": "boolean",
1795
+ "default": false
1796
+ }
1682
1797
  }
1683
1798
  ],
1684
1799
  "responses": {
@@ -1713,7 +1828,7 @@
1713
1828
  {
1714
1829
  "name": "id",
1715
1830
  "in": "path",
1716
- "description": "The credential ID.",
1831
+ "description": "Credential ID.",
1717
1832
  "required": true,
1718
1833
  "schema": {
1719
1834
  "type": "string",
@@ -1722,7 +1837,7 @@
1722
1837
  }
1723
1838
  ],
1724
1839
  "requestBody": {
1725
- "description": "The update payload.",
1840
+ "description": "Update details.",
1726
1841
  "content": {
1727
1842
  "application/json": {
1728
1843
  "schema": {
@@ -1743,25 +1858,38 @@
1743
1858
  },
1744
1859
  "responses": {
1745
1860
  "200": {
1746
- "description": "Credential updated successfully.",
1861
+ "description": "OK",
1747
1862
  "content": {
1748
1863
  "application/json": {
1749
1864
  "schema": {
1750
- "$ref": "#/components/schemas/CredentialUpdatedResponse"
1865
+ "$ref": "#/components/schemas/CredentialResponse"
1751
1866
  }
1752
1867
  }
1753
1868
  }
1754
- },
1755
- "404": {
1756
- "description": "Credential not found.",
1757
- "content": {
1758
- "application/json": {
1759
- "schema": {
1760
- "$ref": "#/components/schemas/ProblemDetails"
1761
- }
1762
- }
1869
+ }
1870
+ }
1871
+ },
1872
+ "delete": {
1873
+ "tags": [
1874
+ "Credentials"
1875
+ ],
1876
+ "summary": "Deletes a credential.",
1877
+ "parameters": [
1878
+ {
1879
+ "name": "id",
1880
+ "in": "path",
1881
+ "description": "Credential ID.",
1882
+ "required": true,
1883
+ "schema": {
1884
+ "type": "string",
1885
+ "format": "uuid"
1763
1886
  }
1764
1887
  }
1888
+ ],
1889
+ "responses": {
1890
+ "204": {
1891
+ "description": "No Content"
1892
+ }
1765
1893
  }
1766
1894
  }
1767
1895
  },
@@ -1770,12 +1898,12 @@
1770
1898
  "tags": [
1771
1899
  "Credentials"
1772
1900
  ],
1773
- "summary": "Grants access to a credential for a workspace.",
1901
+ "summary": "Grants credential access to a workspace.",
1774
1902
  "parameters": [
1775
1903
  {
1776
1904
  "name": "id",
1777
1905
  "in": "path",
1778
- "description": "The credential ID.",
1906
+ "description": "Credential ID.",
1779
1907
  "required": true,
1780
1908
  "schema": {
1781
1909
  "type": "string",
@@ -1784,7 +1912,7 @@
1784
1912
  }
1785
1913
  ],
1786
1914
  "requestBody": {
1787
- "description": "The grant configuration.",
1915
+ "description": "Grant details.",
1788
1916
  "content": {
1789
1917
  "application/json": {
1790
1918
  "schema": {
@@ -1805,24 +1933,7 @@
1805
1933
  },
1806
1934
  "responses": {
1807
1935
  "200": {
1808
- "description": "Access granted successfully.",
1809
- "content": {
1810
- "application/json": {
1811
- "schema": {
1812
- "$ref": "#/components/schemas/CredentialAccessGrantedResponse"
1813
- }
1814
- }
1815
- }
1816
- },
1817
- "404": {
1818
- "description": "Credential not found.",
1819
- "content": {
1820
- "application/json": {
1821
- "schema": {
1822
- "$ref": "#/components/schemas/ProblemDetails"
1823
- }
1824
- }
1825
- }
1936
+ "description": "OK"
1826
1937
  }
1827
1938
  }
1828
1939
  }
@@ -1832,12 +1943,12 @@
1832
1943
  "tags": [
1833
1944
  "Credentials"
1834
1945
  ],
1835
- "summary": "Revokes access to a credential.",
1946
+ "summary": "Revokes credential access from a workspace.\nRevokes credential access from a workspace.",
1836
1947
  "parameters": [
1837
1948
  {
1838
1949
  "name": "accessId",
1839
1950
  "in": "path",
1840
- "description": "The access grant ID to revoke.",
1951
+ "description": "Access Record ID to revoke.",
1841
1952
  "required": true,
1842
1953
  "schema": {
1843
1954
  "type": "string",
@@ -1846,11 +1957,44 @@
1846
1957
  }
1847
1958
  ],
1848
1959
  "responses": {
1849
- "204": {
1850
- "description": "Access revoked successfully."
1960
+ "200": {
1961
+ "description": "OK"
1962
+ }
1963
+ }
1964
+ }
1965
+ },
1966
+ "/v1/api/credentials/{id}/models": {
1967
+ "get": {
1968
+ "tags": [
1969
+ "Credentials"
1970
+ ],
1971
+ "parameters": [
1972
+ {
1973
+ "name": "id",
1974
+ "in": "path",
1975
+ "required": true,
1976
+ "schema": {
1977
+ "type": "string",
1978
+ "format": "uuid"
1979
+ }
1980
+ }
1981
+ ],
1982
+ "responses": {
1983
+ "200": {
1984
+ "description": "OK",
1985
+ "content": {
1986
+ "application/json": {
1987
+ "schema": {
1988
+ "type": "array",
1989
+ "items": {
1990
+ "type": "string"
1991
+ }
1992
+ }
1993
+ }
1994
+ }
1851
1995
  },
1852
1996
  "404": {
1853
- "description": "Access grant not found.",
1997
+ "description": "Not Found",
1854
1998
  "content": {
1855
1999
  "application/json": {
1856
2000
  "schema": {
@@ -3261,6 +3405,27 @@
3261
3405
  }
3262
3406
  }
3263
3407
  },
3408
+ "/v1/api/observability/frontend-log": {
3409
+ "post": {
3410
+ "tags": [
3411
+ "FrontendObservability"
3412
+ ],
3413
+ "requestBody": {
3414
+ "content": {
3415
+ "application/json": {
3416
+ "schema": {
3417
+ "$ref": "#/components/schemas/FrontendLogIngestRequest"
3418
+ }
3419
+ }
3420
+ }
3421
+ },
3422
+ "responses": {
3423
+ "200": {
3424
+ "description": "OK"
3425
+ }
3426
+ }
3427
+ }
3428
+ },
3264
3429
  "/v1/api/graphs/validate": {
3265
3430
  "post": {
3266
3431
  "tags": [
@@ -3713,22 +3878,12 @@
3713
3878
  }
3714
3879
  }
3715
3880
  },
3716
- "/v1/api/mcp/tools": {
3881
+ "/v1/api/me": {
3717
3882
  "get": {
3718
3883
  "tags": [
3719
- "Mcp"
3720
- ],
3721
- "summary": "List available tools from ToolDefinition registry.",
3722
- "parameters": [
3723
- {
3724
- "name": "agentId",
3725
- "in": "query",
3726
- "schema": {
3727
- "type": "string",
3728
- "format": "uuid"
3729
- }
3730
- }
3884
+ "Me"
3731
3885
  ],
3886
+ "summary": "Get current user identity, tenant and workspace context (lightweight, backward compatible).",
3732
3887
  "responses": {
3733
3888
  "200": {
3734
3889
  "description": "OK"
@@ -3736,116 +3891,34 @@
3736
3891
  }
3737
3892
  }
3738
3893
  },
3739
- "/v1/api/mcp/tools/{name}": {
3894
+ "/v1/api/me/context": {
3740
3895
  "get": {
3741
3896
  "tags": [
3742
- "Mcp"
3743
- ],
3744
- "summary": "Get a specific tool definition.",
3745
- "parameters": [
3746
- {
3747
- "name": "name",
3748
- "in": "path",
3749
- "required": true,
3750
- "schema": {
3751
- "type": "string"
3752
- }
3753
- }
3754
- ],
3755
- "responses": {
3756
- "200": {
3757
- "description": "OK"
3758
- }
3759
- }
3760
- }
3761
- },
3762
- "/v1/api/mcp/resources": {
3763
- "get": {
3764
- "tags": [
3765
- "Mcp"
3766
- ],
3767
- "summary": "List resources (files, vector stores) available to an agent.",
3768
- "parameters": [
3769
- {
3770
- "name": "agentId",
3771
- "in": "query",
3772
- "schema": {
3773
- "type": "string",
3774
- "format": "uuid"
3775
- }
3776
- }
3897
+ "Me"
3777
3898
  ],
3899
+ "summary": "Get full user context: all tenants, workspaces, roles, and permissions.\nThis is the canonical endpoint for populating frontend layouts.",
3900
+ "description": "Returns every membership the user has, with nested tenant, role (including\ncanonical permission arrays), and accessible workspaces per membership.\n \n**Admin visibility:** Members with wildcard (\"*\") permission\nsee all workspaces in the tenant. Regular members see only their assigned workspaces.",
3778
3901
  "responses": {
3779
3902
  "200": {
3780
- "description": "OK"
3781
- }
3782
- }
3783
- }
3784
- },
3785
- "/v1/api/mcp/tools/call": {
3786
- "post": {
3787
- "tags": [
3788
- "Mcp"
3789
- ],
3790
- "summary": "Call a tool (experimental - routes to appropriate handler).",
3791
- "requestBody": {
3792
- "content": {
3793
- "application/json": {
3794
- "schema": {
3795
- "$ref": "#/components/schemas/ToolCallRequest"
3796
- }
3797
- },
3798
- "text/json": {
3799
- "schema": {
3800
- "$ref": "#/components/schemas/ToolCallRequest"
3801
- }
3802
- },
3803
- "application/*+json": {
3804
- "schema": {
3805
- "$ref": "#/components/schemas/ToolCallRequest"
3903
+ "description": "Full user context with all memberships.",
3904
+ "content": {
3905
+ "application/json": {
3906
+ "schema": {
3907
+ "$ref": "#/components/schemas/UserContextResponse"
3908
+ }
3806
3909
  }
3807
3910
  }
3808
- }
3809
- },
3810
- "responses": {
3811
- "200": {
3812
- "description": "OK"
3813
- }
3814
- }
3815
- }
3816
- },
3817
- "/v1/api/mcp/resources/read": {
3818
- "get": {
3819
- "tags": [
3820
- "Mcp"
3821
- ],
3822
- "summary": "Read a resource by URI.",
3823
- "parameters": [
3824
- {
3825
- "name": "uri",
3826
- "in": "query",
3827
- "schema": {
3828
- "type": "string"
3911
+ },
3912
+ "401": {
3913
+ "description": "Missing or invalid JWT.",
3914
+ "content": {
3915
+ "application/json": {
3916
+ "schema": {
3917
+ "$ref": "#/components/schemas/ProblemDetails"
3918
+ }
3919
+ }
3829
3920
  }
3830
3921
  }
3831
- ],
3832
- "responses": {
3833
- "200": {
3834
- "description": "OK"
3835
- }
3836
- }
3837
- }
3838
- },
3839
- "/v1/api/me": {
3840
- "get": {
3841
- "tags": [
3842
- "Me"
3843
- ],
3844
- "summary": "Get current user identity, tenant and workspace context.",
3845
- "responses": {
3846
- "200": {
3847
- "description": "OK"
3848
- }
3849
3922
  }
3850
3923
  }
3851
3924
  },
@@ -4591,7 +4664,7 @@
4591
4664
  "tags": [
4592
4665
  "Roles"
4593
4666
  ],
4594
- "summary": "Create a new custom role.",
4667
+ "summary": "Create a new custom role.\nPermissions are validated against the canonical Permissions registry.",
4595
4668
  "requestBody": {
4596
4669
  "content": {
4597
4670
  "application/json": {
@@ -4723,7 +4796,7 @@
4723
4796
  "tags": [
4724
4797
  "Roles"
4725
4798
  ],
4726
- "summary": "SEED DEFAULT PERMISSIONS (Temporary/Admin Helper)",
4799
+ "summary": "Seed default permissions for all roles in the tenant.\nUses canonical templates from Permissions constants.",
4727
4800
  "responses": {
4728
4801
  "200": {
4729
4802
  "description": "OK"
@@ -4926,12 +4999,12 @@
4926
4999
  "tags": [
4927
5000
  "Runs"
4928
5001
  ],
4929
- "summary": "Get run events for timeline display (paged, without SSE).\nAggregates checkpoints, tool calls, and state changes for UI replay.",
5002
+ "summary": "Get canonical run events from SSOT ledger (polling).",
4930
5003
  "parameters": [
4931
5004
  {
4932
5005
  "name": "runId",
4933
5006
  "in": "path",
4934
- "description": "The unique ID of the run.",
5007
+ "description": "Run ID.",
4935
5008
  "required": true,
4936
5009
  "schema": {
4937
5010
  "type": "string",
@@ -4939,23 +5012,33 @@
4939
5012
  }
4940
5013
  },
4941
5014
  {
4942
- "name": "limit",
5015
+ "name": "attemptId",
5016
+ "in": "query",
5017
+ "description": "Attempt ID (required).",
5018
+ "required": true,
5019
+ "schema": {
5020
+ "type": "string",
5021
+ "format": "uuid"
5022
+ }
5023
+ },
5024
+ {
5025
+ "name": "afterSeq",
4943
5026
  "in": "query",
4944
- "description": "Max events to return.",
5027
+ "description": "Return events with seq greater than this value.",
4945
5028
  "schema": {
4946
5029
  "type": "integer",
4947
- "format": "int32",
4948
- "default": 50
5030
+ "format": "int64",
5031
+ "default": 0
4949
5032
  }
4950
5033
  },
4951
5034
  {
4952
- "name": "offset",
5035
+ "name": "limit",
4953
5036
  "in": "query",
4954
- "description": "Pagination offset.",
5037
+ "description": "Max events to return (1..500).",
4955
5038
  "schema": {
4956
5039
  "type": "integer",
4957
5040
  "format": "int32",
4958
- "default": 0
5041
+ "default": 100
4959
5042
  }
4960
5043
  }
4961
5044
  ],
@@ -4965,7 +5048,17 @@
4965
5048
  "content": {
4966
5049
  "application/json": {
4967
5050
  "schema": {
4968
- "$ref": "#/components/schemas/RunEventsResponse"
5051
+ "$ref": "#/components/schemas/RunEventsPollResponse"
5052
+ }
5053
+ }
5054
+ }
5055
+ },
5056
+ "400": {
5057
+ "description": "Bad Request",
5058
+ "content": {
5059
+ "application/json": {
5060
+ "schema": {
5061
+ "$ref": "#/components/schemas/ProblemDetails"
4969
5062
  }
4970
5063
  }
4971
5064
  }
@@ -4988,13 +5081,12 @@
4988
5081
  "tags": [
4989
5082
  "Runs"
4990
5083
  ],
4991
- "summary": ".0: Get run events for polling-based replay.\nReturns events after a specific sequence number for incremental polling.",
4992
- "description": "This is the recommended endpoint for SDK/UI event consumption.\nEvents are ordered by sequence number (ascending) and limited to prevent\nlarge responses. Use `next_after_seq` for pagination.\n\n**Security:** Only returns events for runs in the caller's workspace.",
5084
+ "summary": "Stream canonical run events via SSE using SSOT ledger ordering.",
4993
5085
  "parameters": [
4994
5086
  {
4995
5087
  "name": "runId",
4996
5088
  "in": "path",
4997
- "description": "The unique ID of the run.",
5089
+ "description": "Run ID.",
4998
5090
  "required": true,
4999
5091
  "schema": {
5000
5092
  "type": "string",
@@ -5002,33 +5094,38 @@
5002
5094
  }
5003
5095
  },
5004
5096
  {
5005
- "name": "afterSeq",
5097
+ "name": "attemptId",
5006
5098
  "in": "query",
5007
- "description": "Return events with seq greater than this value (default: 0 = all).",
5099
+ "description": "Attempt ID (required).",
5100
+ "required": true,
5008
5101
  "schema": {
5009
- "type": "integer",
5010
- "format": "int64",
5011
- "default": 0
5102
+ "type": "string",
5103
+ "format": "uuid"
5012
5104
  }
5013
5105
  },
5014
5106
  {
5015
- "name": "limit",
5107
+ "name": "afterSeq",
5016
5108
  "in": "query",
5017
- "description": "Max events to return (default: 100, max: 500).",
5109
+ "description": "Start after this sequence number.",
5018
5110
  "schema": {
5019
5111
  "type": "integer",
5020
- "format": "int32",
5021
- "default": 100
5112
+ "format": "int64",
5113
+ "default": 0
5022
5114
  }
5023
5115
  }
5024
5116
  ],
5025
5117
  "responses": {
5026
- "200": {
5027
- "description": "OK",
5118
+ "400": {
5119
+ "description": "Bad Request",
5028
5120
  "content": {
5121
+ "text/event-stream": {
5122
+ "schema": {
5123
+ "$ref": "#/components/schemas/ProblemDetails"
5124
+ }
5125
+ },
5029
5126
  "application/json": {
5030
5127
  "schema": {
5031
- "$ref": "#/components/schemas/RunEventsPollResponse"
5128
+ "$ref": "#/components/schemas/ProblemDetails"
5032
5129
  }
5033
5130
  }
5034
5131
  }
@@ -5036,6 +5133,11 @@
5036
5133
  "404": {
5037
5134
  "description": "Not Found",
5038
5135
  "content": {
5136
+ "text/event-stream": {
5137
+ "schema": {
5138
+ "$ref": "#/components/schemas/ProblemDetails"
5139
+ }
5140
+ },
5039
5141
  "application/json": {
5040
5142
  "schema": {
5041
5143
  "$ref": "#/components/schemas/ProblemDetails"
@@ -5156,98 +5258,6 @@
5156
5258
  }
5157
5259
  }
5158
5260
  },
5159
- "/v1/api/runs/{runId}/join": {
5160
- "get": {
5161
- "tags": [
5162
- "Runs"
5163
- ],
5164
- "summary": "Joins an active run and returns its updates via SSE.",
5165
- "parameters": [
5166
- {
5167
- "name": "runId",
5168
- "in": "path",
5169
- "description": "The run ID to join.",
5170
- "required": true,
5171
- "schema": {
5172
- "type": "string",
5173
- "format": "uuid"
5174
- }
5175
- }
5176
- ],
5177
- "responses": {
5178
- "200": {
5179
- "description": "OK"
5180
- }
5181
- }
5182
- }
5183
- },
5184
- "/v1/api/runs/stream": {
5185
- "post": {
5186
- "tags": [
5187
- "Runs"
5188
- ],
5189
- "summary": "Creates a run and streams real-time updates via Server-Sent Events (SSE).",
5190
- "description": "This is the recommended endpoint for interactive applications. It creates\na run and maintains an open SSE connection to stream events in real-time.\n\n**SSE Events:**\n- `start`: Run created and queued\n- `update`: Run status changed\n- `complete`: Run finished successfully (includes output)\n- `error`: Run failed or was canceled (includes error details)\n\n**Example Event Stream:**\n```\nevent: start\ndata: {\"run_id\": \"...\", \"status\": \"queued\"}\n\nevent: update\ndata: {\"run_id\": \"...\", \"status\": \"running\"}\n\nevent: complete\ndata: {\"run_id\": \"...\", \"status\": \"completed\", \"output\": {...}}\n```",
5191
- "requestBody": {
5192
- "description": "The run request with agent ID and input.",
5193
- "content": {
5194
- "application/json": {
5195
- "schema": {
5196
- "$ref": "#/components/schemas/StreamRunRequest"
5197
- }
5198
- },
5199
- "text/json": {
5200
- "schema": {
5201
- "$ref": "#/components/schemas/StreamRunRequest"
5202
- }
5203
- },
5204
- "application/*+json": {
5205
- "schema": {
5206
- "$ref": "#/components/schemas/StreamRunRequest"
5207
- }
5208
- }
5209
- }
5210
- },
5211
- "responses": {
5212
- "200": {
5213
- "description": "OK"
5214
- }
5215
- }
5216
- }
5217
- },
5218
- "/v1/api/runs/{runId}/stream": {
5219
- "get": {
5220
- "tags": [
5221
- "Runs"
5222
- ],
5223
- "summary": ".2: Stream run events via SSE (Server-Sent Events).\nUses robust internal polling (Cinema V1.2) to ensure strict ordering and reliability.\nCloses connection when run is terminal and all events are delivered.",
5224
- "parameters": [
5225
- {
5226
- "name": "runId",
5227
- "in": "path",
5228
- "required": true,
5229
- "schema": {
5230
- "type": "string",
5231
- "format": "uuid"
5232
- }
5233
- },
5234
- {
5235
- "name": "after",
5236
- "in": "query",
5237
- "schema": {
5238
- "type": "integer",
5239
- "format": "int64",
5240
- "default": 0
5241
- }
5242
- }
5243
- ],
5244
- "responses": {
5245
- "200": {
5246
- "description": "OK"
5247
- }
5248
- }
5249
- }
5250
- },
5251
5261
  "/v1/api/runs/{runId}/rerun": {
5252
5262
  "post": {
5253
5263
  "tags": [
@@ -5985,6 +5995,24 @@
5985
5995
  "type": "string",
5986
5996
  "format": "uuid"
5987
5997
  }
5998
+ },
5999
+ {
6000
+ "name": "limit",
6001
+ "in": "query",
6002
+ "schema": {
6003
+ "type": "integer",
6004
+ "format": "int32",
6005
+ "default": 100
6006
+ }
6007
+ },
6008
+ {
6009
+ "name": "offset",
6010
+ "in": "query",
6011
+ "schema": {
6012
+ "type": "integer",
6013
+ "format": "int32",
6014
+ "default": 0
6015
+ }
5988
6016
  }
5989
6017
  ],
5990
6018
  "responses": {
@@ -7108,15 +7136,366 @@
7108
7136
  }
7109
7137
  }
7110
7138
  },
7111
- "/v1/api/quotas": {
7139
+ "/v1/api/triggers/{triggerId}/contract": {
7112
7140
  "get": {
7113
7141
  "tags": [
7114
- "Usage"
7142
+ "Triggers"
7115
7143
  ],
7116
- "summary": "Get current quota status.",
7144
+ "summary": "Get the full input contract for a trigger.\nReturns schemas and mapping spec for transformation configuration.",
7117
7145
  "parameters": [
7118
7146
  {
7119
- "name": "workspaceId",
7147
+ "name": "triggerId",
7148
+ "in": "path",
7149
+ "required": true,
7150
+ "schema": {
7151
+ "type": "string",
7152
+ "format": "uuid"
7153
+ }
7154
+ }
7155
+ ],
7156
+ "responses": {
7157
+ "200": {
7158
+ "description": "OK",
7159
+ "content": {
7160
+ "application/json": {
7161
+ "schema": {
7162
+ "$ref": "#/components/schemas/TriggerInputContractResponse"
7163
+ }
7164
+ }
7165
+ }
7166
+ },
7167
+ "404": {
7168
+ "description": "Not Found",
7169
+ "content": {
7170
+ "application/json": {
7171
+ "schema": {
7172
+ "$ref": "#/components/schemas/ProblemDetails"
7173
+ }
7174
+ }
7175
+ }
7176
+ }
7177
+ }
7178
+ }
7179
+ },
7180
+ "/v1/api/triggers/{triggerId}/test-mapping": {
7181
+ "post": {
7182
+ "tags": [
7183
+ "Triggers"
7184
+ ],
7185
+ "summary": "Preview payload transformation using the trigger's input mapping.\nReturns the transformed graph_input without executing a run.",
7186
+ "parameters": [
7187
+ {
7188
+ "name": "triggerId",
7189
+ "in": "path",
7190
+ "required": true,
7191
+ "schema": {
7192
+ "type": "string",
7193
+ "format": "uuid"
7194
+ }
7195
+ }
7196
+ ],
7197
+ "requestBody": {
7198
+ "content": {
7199
+ "application/json": {
7200
+ "schema": {
7201
+ "$ref": "#/components/schemas/TestMappingRequest"
7202
+ }
7203
+ },
7204
+ "text/json": {
7205
+ "schema": {
7206
+ "$ref": "#/components/schemas/TestMappingRequest"
7207
+ }
7208
+ },
7209
+ "application/*+json": {
7210
+ "schema": {
7211
+ "$ref": "#/components/schemas/TestMappingRequest"
7212
+ }
7213
+ }
7214
+ }
7215
+ },
7216
+ "responses": {
7217
+ "200": {
7218
+ "description": "OK",
7219
+ "content": {
7220
+ "application/json": {
7221
+ "schema": {
7222
+ "$ref": "#/components/schemas/TestMappingResponse"
7223
+ }
7224
+ }
7225
+ }
7226
+ },
7227
+ "400": {
7228
+ "description": "Bad Request",
7229
+ "content": {
7230
+ "application/json": {
7231
+ "schema": {
7232
+ "$ref": "#/components/schemas/ProblemDetails"
7233
+ }
7234
+ }
7235
+ }
7236
+ },
7237
+ "404": {
7238
+ "description": "Not Found",
7239
+ "content": {
7240
+ "application/json": {
7241
+ "schema": {
7242
+ "$ref": "#/components/schemas/ProblemDetails"
7243
+ }
7244
+ }
7245
+ }
7246
+ }
7247
+ }
7248
+ }
7249
+ },
7250
+ "/v1/api/triggers/{triggerId}/infer-schema": {
7251
+ "post": {
7252
+ "tags": [
7253
+ "Triggers"
7254
+ ],
7255
+ "summary": "Infer JSON Schema from a sample payload.\nReturns the inferred schema and flattened paths for UI consumption.",
7256
+ "parameters": [
7257
+ {
7258
+ "name": "triggerId",
7259
+ "in": "path",
7260
+ "required": true,
7261
+ "schema": {
7262
+ "type": "string",
7263
+ "format": "uuid"
7264
+ }
7265
+ }
7266
+ ],
7267
+ "requestBody": {
7268
+ "content": {
7269
+ "application/json": {
7270
+ "schema": {
7271
+ "$ref": "#/components/schemas/InferSchemaRequest"
7272
+ }
7273
+ },
7274
+ "text/json": {
7275
+ "schema": {
7276
+ "$ref": "#/components/schemas/InferSchemaRequest"
7277
+ }
7278
+ },
7279
+ "application/*+json": {
7280
+ "schema": {
7281
+ "$ref": "#/components/schemas/InferSchemaRequest"
7282
+ }
7283
+ }
7284
+ }
7285
+ },
7286
+ "responses": {
7287
+ "200": {
7288
+ "description": "OK",
7289
+ "content": {
7290
+ "application/json": {
7291
+ "schema": {
7292
+ "$ref": "#/components/schemas/InferSchemaResponse"
7293
+ }
7294
+ }
7295
+ }
7296
+ },
7297
+ "400": {
7298
+ "description": "Bad Request",
7299
+ "content": {
7300
+ "application/json": {
7301
+ "schema": {
7302
+ "$ref": "#/components/schemas/ProblemDetails"
7303
+ }
7304
+ }
7305
+ }
7306
+ },
7307
+ "404": {
7308
+ "description": "Not Found",
7309
+ "content": {
7310
+ "application/json": {
7311
+ "schema": {
7312
+ "$ref": "#/components/schemas/ProblemDetails"
7313
+ }
7314
+ }
7315
+ }
7316
+ },
7317
+ "413": {
7318
+ "description": "Content Too Large",
7319
+ "content": {
7320
+ "application/json": {
7321
+ "schema": {
7322
+ "$ref": "#/components/schemas/ProblemDetails"
7323
+ }
7324
+ }
7325
+ }
7326
+ }
7327
+ }
7328
+ }
7329
+ },
7330
+ "/v1/api/triggers/{triggerId}/input-mapping": {
7331
+ "put": {
7332
+ "tags": [
7333
+ "Triggers"
7334
+ ],
7335
+ "summary": "Save or update the input mapping override for a trigger.",
7336
+ "parameters": [
7337
+ {
7338
+ "name": "triggerId",
7339
+ "in": "path",
7340
+ "required": true,
7341
+ "schema": {
7342
+ "type": "string",
7343
+ "format": "uuid"
7344
+ }
7345
+ }
7346
+ ],
7347
+ "requestBody": {
7348
+ "content": {
7349
+ "application/json": {
7350
+ "schema": {
7351
+ "$ref": "#/components/schemas/SaveMappingRequest"
7352
+ }
7353
+ },
7354
+ "text/json": {
7355
+ "schema": {
7356
+ "$ref": "#/components/schemas/SaveMappingRequest"
7357
+ }
7358
+ },
7359
+ "application/*+json": {
7360
+ "schema": {
7361
+ "$ref": "#/components/schemas/SaveMappingRequest"
7362
+ }
7363
+ }
7364
+ }
7365
+ },
7366
+ "responses": {
7367
+ "200": {
7368
+ "description": "OK",
7369
+ "content": {
7370
+ "application/json": {
7371
+ "schema": {
7372
+ "$ref": "#/components/schemas/SaveMappingResponse"
7373
+ }
7374
+ }
7375
+ }
7376
+ },
7377
+ "400": {
7378
+ "description": "Bad Request",
7379
+ "content": {
7380
+ "application/json": {
7381
+ "schema": {
7382
+ "$ref": "#/components/schemas/ProblemDetails"
7383
+ }
7384
+ }
7385
+ }
7386
+ },
7387
+ "404": {
7388
+ "description": "Not Found",
7389
+ "content": {
7390
+ "application/json": {
7391
+ "schema": {
7392
+ "$ref": "#/components/schemas/ProblemDetails"
7393
+ }
7394
+ }
7395
+ }
7396
+ },
7397
+ "422": {
7398
+ "description": "Unprocessable Content",
7399
+ "content": {
7400
+ "application/json": {
7401
+ "schema": {
7402
+ "$ref": "#/components/schemas/ProblemDetails"
7403
+ }
7404
+ }
7405
+ }
7406
+ }
7407
+ }
7408
+ }
7409
+ },
7410
+ "/v1/api/triggers/{triggerId}/preview-input-mapping": {
7411
+ "post": {
7412
+ "tags": [
7413
+ "Triggers"
7414
+ ],
7415
+ "summary": "Preview payload transformation without persisting.\nThis is the \"product magic\" - users trust mapping when they see the transform.",
7416
+ "parameters": [
7417
+ {
7418
+ "name": "triggerId",
7419
+ "in": "path",
7420
+ "required": true,
7421
+ "schema": {
7422
+ "type": "string",
7423
+ "format": "uuid"
7424
+ }
7425
+ }
7426
+ ],
7427
+ "requestBody": {
7428
+ "content": {
7429
+ "application/json": {
7430
+ "schema": {
7431
+ "$ref": "#/components/schemas/PreviewMappingRequest"
7432
+ }
7433
+ },
7434
+ "text/json": {
7435
+ "schema": {
7436
+ "$ref": "#/components/schemas/PreviewMappingRequest"
7437
+ }
7438
+ },
7439
+ "application/*+json": {
7440
+ "schema": {
7441
+ "$ref": "#/components/schemas/PreviewMappingRequest"
7442
+ }
7443
+ }
7444
+ }
7445
+ },
7446
+ "responses": {
7447
+ "200": {
7448
+ "description": "OK",
7449
+ "content": {
7450
+ "application/json": {
7451
+ "schema": {
7452
+ "$ref": "#/components/schemas/PreviewMappingResponse"
7453
+ }
7454
+ }
7455
+ }
7456
+ },
7457
+ "400": {
7458
+ "description": "Bad Request",
7459
+ "content": {
7460
+ "application/json": {
7461
+ "schema": {
7462
+ "$ref": "#/components/schemas/ProblemDetails"
7463
+ }
7464
+ }
7465
+ }
7466
+ },
7467
+ "404": {
7468
+ "description": "Not Found",
7469
+ "content": {
7470
+ "application/json": {
7471
+ "schema": {
7472
+ "$ref": "#/components/schemas/ProblemDetails"
7473
+ }
7474
+ }
7475
+ }
7476
+ },
7477
+ "413": {
7478
+ "description": "Content Too Large",
7479
+ "content": {
7480
+ "application/json": {
7481
+ "schema": {
7482
+ "$ref": "#/components/schemas/ProblemDetails"
7483
+ }
7484
+ }
7485
+ }
7486
+ }
7487
+ }
7488
+ }
7489
+ },
7490
+ "/v1/api/quotas": {
7491
+ "get": {
7492
+ "tags": [
7493
+ "Usage"
7494
+ ],
7495
+ "summary": "Get current quota status.",
7496
+ "parameters": [
7497
+ {
7498
+ "name": "workspaceId",
7120
7499
  "in": "query",
7121
7500
  "schema": {
7122
7501
  "type": "string",
@@ -8254,6 +8633,50 @@
8254
8633
  },
8255
8634
  "additionalProperties": false
8256
8635
  },
8636
+ "BootstrapResponse": {
8637
+ "type": "object",
8638
+ "properties": {
8639
+ "status": {
8640
+ "type": "string",
8641
+ "description": "\"existing\" if already bootstrapped, \"created\" if newly provisioned.",
8642
+ "nullable": true
8643
+ },
8644
+ "tenant_id": {
8645
+ "type": "string",
8646
+ "format": "uuid"
8647
+ },
8648
+ "tenant_name": {
8649
+ "type": "string",
8650
+ "nullable": true
8651
+ },
8652
+ "tenant_slug": {
8653
+ "type": "string",
8654
+ "nullable": true
8655
+ },
8656
+ "workspace_id": {
8657
+ "type": "string",
8658
+ "format": "uuid",
8659
+ "nullable": true
8660
+ },
8661
+ "workspace_name": {
8662
+ "type": "string",
8663
+ "nullable": true
8664
+ },
8665
+ "workspace_slug": {
8666
+ "type": "string",
8667
+ "nullable": true
8668
+ },
8669
+ "member_id": {
8670
+ "type": "string",
8671
+ "format": "uuid"
8672
+ },
8673
+ "role_name": {
8674
+ "type": "string",
8675
+ "nullable": true
8676
+ }
8677
+ },
8678
+ "additionalProperties": false
8679
+ },
8257
8680
  "BuilderChatRequest": {
8258
8681
  "type": "object",
8259
8682
  "properties": {
@@ -8629,6 +9052,9 @@
8629
9052
  "name": {
8630
9053
  "type": "string",
8631
9054
  "nullable": true
9055
+ },
9056
+ "metadata": {
9057
+ "$ref": "#/components/schemas/JsonNode"
8632
9058
  }
8633
9059
  },
8634
9060
  "additionalProperties": false
@@ -8917,6 +9343,19 @@
8917
9343
  "type": "string",
8918
9344
  "format": "uuid",
8919
9345
  "nullable": true
9346
+ },
9347
+ "thread_key": {
9348
+ "type": "string",
9349
+ "nullable": true
9350
+ },
9351
+ "event_key": {
9352
+ "type": "string",
9353
+ "nullable": true
9354
+ },
9355
+ "rerun_of_run_id": {
9356
+ "type": "string",
9357
+ "format": "uuid",
9358
+ "nullable": true
8920
9359
  }
8921
9360
  },
8922
9361
  "additionalProperties": false
@@ -9034,97 +9473,55 @@
9034
9473
  },
9035
9474
  "config": {
9036
9475
  "nullable": true
9037
- }
9038
- },
9039
- "additionalProperties": false
9040
- },
9041
- "CreateVectorStoreRequest": {
9042
- "type": "object",
9043
- "properties": {
9044
- "name": {
9045
- "type": "string",
9046
- "nullable": true
9047
9476
  },
9048
- "embedding_provider": {
9049
- "type": "string",
9477
+ "payload_variants_json": {
9050
9478
  "nullable": true
9051
9479
  },
9052
- "embedding_model": {
9053
- "type": "string",
9480
+ "thread_key_spec_json": {
9054
9481
  "nullable": true
9055
9482
  },
9056
- "dimension": {
9057
- "type": "integer",
9058
- "format": "int32",
9059
- "nullable": true
9060
- },
9061
- "credential_binding_alias": {
9062
- "type": "string",
9483
+ "idempotency_spec_json": {
9063
9484
  "nullable": true
9064
9485
  }
9065
9486
  },
9066
9487
  "additionalProperties": false
9067
9488
  },
9068
- "CreateWorkspaceRequest": {
9489
+ "CreateVectorStoreRequest": {
9069
9490
  "type": "object",
9070
9491
  "properties": {
9071
9492
  "name": {
9072
9493
  "type": "string",
9073
9494
  "nullable": true
9074
- }
9075
- },
9076
- "additionalProperties": false
9077
- },
9078
- "CredentialAccessGrantedResponse": {
9079
- "type": "object",
9080
- "properties": {
9081
- "id": {
9082
- "type": "string",
9083
- "format": "uuid"
9084
- },
9085
- "status": {
9086
- "type": "string",
9087
- "nullable": true
9088
- }
9089
- },
9090
- "additionalProperties": false,
9091
- "description": "Response after granting access."
9092
- },
9093
- "CredentialCreatedResponse": {
9094
- "type": "object",
9095
- "properties": {
9096
- "id": {
9097
- "type": "string",
9098
- "format": "uuid"
9099
9495
  },
9100
- "name": {
9496
+ "embedding_provider": {
9101
9497
  "type": "string",
9102
9498
  "nullable": true
9103
9499
  },
9104
- "scope": {
9500
+ "embedding_model": {
9105
9501
  "type": "string",
9106
9502
  "nullable": true
9107
- },
9108
- "tenant_id": {
9109
- "type": "string",
9110
- "format": "uuid"
9111
- },
9112
- "workspace_id": {
9113
- "type": "string",
9114
- "format": "uuid",
9503
+ },
9504
+ "dimension": {
9505
+ "type": "integer",
9506
+ "format": "int32",
9115
9507
  "nullable": true
9116
9508
  },
9117
- "status": {
9509
+ "credential_binding_alias": {
9118
9510
  "type": "string",
9119
9511
  "nullable": true
9120
- },
9121
- "created_at": {
9512
+ }
9513
+ },
9514
+ "additionalProperties": false
9515
+ },
9516
+ "CreateWorkspaceRequest": {
9517
+ "type": "object",
9518
+ "properties": {
9519
+ "name": {
9122
9520
  "type": "string",
9123
- "format": "date-time"
9521
+ "nullable": true
9124
9522
  }
9125
9523
  },
9126
- "additionalProperties": false,
9127
- "description": "Response after creating a credential."
9524
+ "additionalProperties": false
9128
9525
  },
9129
9526
  "CredentialDetailResponse": {
9130
9527
  "type": "object",
@@ -9172,6 +9569,11 @@
9172
9569
  },
9173
9570
  "public_config": {
9174
9571
  "nullable": true
9572
+ },
9573
+ "values": {
9574
+ "type": "object",
9575
+ "additionalProperties": { },
9576
+ "nullable": true
9175
9577
  }
9176
9578
  },
9177
9579
  "additionalProperties": false,
@@ -9239,24 +9641,30 @@
9239
9641
  "additionalProperties": false,
9240
9642
  "description": "Credential metadata (without encrypted values)."
9241
9643
  },
9242
- "CredentialUpdatedResponse": {
9644
+ "CurlCommandParts": {
9243
9645
  "type": "object",
9244
9646
  "properties": {
9245
- "id": {
9647
+ "method": {
9246
9648
  "type": "string",
9247
- "format": "uuid"
9649
+ "nullable": true
9248
9650
  },
9249
- "status": {
9651
+ "url": {
9250
9652
  "type": "string",
9251
9653
  "nullable": true
9252
9654
  },
9253
- "sharing_mode": {
9655
+ "headers": {
9656
+ "type": "object",
9657
+ "additionalProperties": {
9658
+ "type": "string"
9659
+ },
9660
+ "nullable": true
9661
+ },
9662
+ "body_json": {
9254
9663
  "type": "string",
9255
9664
  "nullable": true
9256
9665
  }
9257
9666
  },
9258
- "additionalProperties": false,
9259
- "description": "Response after updating a credential."
9667
+ "additionalProperties": false
9260
9668
  },
9261
9669
  "DatasetResponse": {
9262
9670
  "type": "object",
@@ -9471,6 +9879,63 @@
9471
9879
  },
9472
9880
  "additionalProperties": false
9473
9881
  },
9882
+ "FrontendLogIngestRequest": {
9883
+ "type": "object",
9884
+ "properties": {
9885
+ "level": {
9886
+ "type": "string",
9887
+ "nullable": true
9888
+ },
9889
+ "message": {
9890
+ "type": "string",
9891
+ "nullable": true
9892
+ },
9893
+ "stack": {
9894
+ "type": "string",
9895
+ "nullable": true
9896
+ },
9897
+ "component": {
9898
+ "type": "string",
9899
+ "nullable": true
9900
+ },
9901
+ "route": {
9902
+ "type": "string",
9903
+ "nullable": true
9904
+ },
9905
+ "url": {
9906
+ "type": "string",
9907
+ "nullable": true
9908
+ },
9909
+ "user_agent": {
9910
+ "type": "string",
9911
+ "nullable": true
9912
+ },
9913
+ "correlation_id": {
9914
+ "type": "string",
9915
+ "nullable": true
9916
+ },
9917
+ "trace_id": {
9918
+ "type": "string",
9919
+ "nullable": true
9920
+ },
9921
+ "run_id": {
9922
+ "type": "string",
9923
+ "nullable": true
9924
+ },
9925
+ "session_id": {
9926
+ "type": "string",
9927
+ "nullable": true
9928
+ },
9929
+ "context": {
9930
+ "type": "object",
9931
+ "additionalProperties": {
9932
+ "nullable": true
9933
+ },
9934
+ "nullable": true
9935
+ }
9936
+ },
9937
+ "additionalProperties": false
9938
+ },
9474
9939
  "GetGraphSpecResponse": {
9475
9940
  "type": "object",
9476
9941
  "properties": {
@@ -9533,6 +9998,36 @@
9533
9998
  },
9534
9999
  "additionalProperties": false
9535
10000
  },
10001
+ "InferSchemaRequest": {
10002
+ "type": "object",
10003
+ "properties": {
10004
+ "sample_payload": { }
10005
+ },
10006
+ "additionalProperties": false,
10007
+ "description": "Request for POST /triggers/{id}/infer-schema"
10008
+ },
10009
+ "InferSchemaResponse": {
10010
+ "type": "object",
10011
+ "properties": {
10012
+ "inferred_schema": { },
10013
+ "paths": {
10014
+ "type": "array",
10015
+ "items": {
10016
+ "$ref": "#/components/schemas/PathInfoDto"
10017
+ },
10018
+ "nullable": true
10019
+ },
10020
+ "warnings": {
10021
+ "type": "array",
10022
+ "items": {
10023
+ "type": "string"
10024
+ },
10025
+ "nullable": true
10026
+ }
10027
+ },
10028
+ "additionalProperties": false,
10029
+ "description": "Response for POST /triggers/{id}/infer-schema"
10030
+ },
9536
10031
  "IntrospectGraphRequest": {
9537
10032
  "type": "object",
9538
10033
  "properties": {
@@ -9586,6 +10081,30 @@
9586
10081
  },
9587
10082
  "additionalProperties": false
9588
10083
  },
10084
+ "JsonNode": {
10085
+ "type": "object",
10086
+ "properties": {
10087
+ "options": {
10088
+ "$ref": "#/components/schemas/JsonNodeOptions"
10089
+ },
10090
+ "parent": {
10091
+ "$ref": "#/components/schemas/JsonNode"
10092
+ },
10093
+ "root": {
10094
+ "$ref": "#/components/schemas/JsonNode"
10095
+ }
10096
+ },
10097
+ "additionalProperties": false
10098
+ },
10099
+ "JsonNodeOptions": {
10100
+ "type": "object",
10101
+ "properties": {
10102
+ "property_name_case_insensitive": {
10103
+ "type": "boolean"
10104
+ }
10105
+ },
10106
+ "additionalProperties": false
10107
+ },
9589
10108
  "JsonRpcRequest": {
9590
10109
  "type": "object",
9591
10110
  "properties": {
@@ -9606,6 +10125,25 @@
9606
10125
  },
9607
10126
  "additionalProperties": false
9608
10127
  },
10128
+ "MappingValidationError": {
10129
+ "type": "object",
10130
+ "properties": {
10131
+ "code": {
10132
+ "type": "string",
10133
+ "nullable": true
10134
+ },
10135
+ "path": {
10136
+ "type": "string",
10137
+ "nullable": true
10138
+ },
10139
+ "message": {
10140
+ "type": "string",
10141
+ "nullable": true
10142
+ }
10143
+ },
10144
+ "additionalProperties": false,
10145
+ "description": "Structured validation error with path for better UI feedback."
10146
+ },
9609
10147
  "MemberDetailResponse": {
9610
10148
  "type": "object",
9611
10149
  "properties": {
@@ -9615,7 +10153,8 @@
9615
10153
  },
9616
10154
  "user_id": {
9617
10155
  "type": "string",
9618
- "format": "uuid"
10156
+ "format": "uuid",
10157
+ "nullable": true
9619
10158
  },
9620
10159
  "tenant_id": {
9621
10160
  "type": "string",
@@ -9697,6 +10236,29 @@
9697
10236
  },
9698
10237
  "additionalProperties": false
9699
10238
  },
10239
+ "MembershipContextDto": {
10240
+ "type": "object",
10241
+ "properties": {
10242
+ "member_id": {
10243
+ "type": "string",
10244
+ "format": "uuid"
10245
+ },
10246
+ "tenant": {
10247
+ "$ref": "#/components/schemas/TenantContextDto"
10248
+ },
10249
+ "role": {
10250
+ "$ref": "#/components/schemas/RoleContextDto"
10251
+ },
10252
+ "workspaces": {
10253
+ "type": "array",
10254
+ "items": {
10255
+ "$ref": "#/components/schemas/WorkspaceContextDto"
10256
+ },
10257
+ "nullable": true
10258
+ }
10259
+ },
10260
+ "additionalProperties": false
10261
+ },
9700
10262
  "NodeCatalogResponse": {
9701
10263
  "required": [
9702
10264
  "nodes",
@@ -9746,6 +10308,10 @@
9746
10308
  "nullable": true
9747
10309
  },
9748
10310
  "locked_fields": {
10311
+ "type": "array",
10312
+ "items": {
10313
+ "type": "string"
10314
+ },
9749
10315
  "nullable": true
9750
10316
  },
9751
10317
  "ui_variant": {
@@ -9779,12 +10345,12 @@
9779
10345
  "NodeTypeDto": {
9780
10346
  "required": [
9781
10347
  "category",
9782
- "id",
10348
+ "kind",
9783
10349
  "title"
9784
10350
  ],
9785
10351
  "type": "object",
9786
10352
  "properties": {
9787
- "id": {
10353
+ "kind": {
9788
10354
  "type": "string",
9789
10355
  "nullable": true
9790
10356
  },
@@ -9800,18 +10366,44 @@
9800
10366
  "type": "string",
9801
10367
  "nullable": true
9802
10368
  },
9803
- "ports": {
9804
- "nullable": true
9805
- },
9806
10369
  "config_schema": {
9807
10370
  "nullable": true
9808
10371
  },
9809
10372
  "default_config": {
9810
10373
  "nullable": true
10374
+ },
10375
+ "inputs": {
10376
+ "type": "array",
10377
+ "items": {
10378
+ "type": "string"
10379
+ },
10380
+ "nullable": true
10381
+ },
10382
+ "outputs": {
10383
+ "type": "array",
10384
+ "items": {
10385
+ "type": "string"
10386
+ },
10387
+ "nullable": true
9811
10388
  }
9812
10389
  },
9813
10390
  "additionalProperties": false
9814
10391
  },
10392
+ "PathInfoDto": {
10393
+ "type": "object",
10394
+ "properties": {
10395
+ "path": {
10396
+ "type": "string",
10397
+ "nullable": true
10398
+ },
10399
+ "kind": {
10400
+ "type": "string",
10401
+ "nullable": true
10402
+ }
10403
+ },
10404
+ "additionalProperties": false,
10405
+ "description": "A JSONPath with its inferred type."
10406
+ },
9815
10407
  "PlaygroundRequest": {
9816
10408
  "type": "object",
9817
10409
  "properties": {
@@ -9907,6 +10499,37 @@
9907
10499
  },
9908
10500
  "additionalProperties": false
9909
10501
  },
10502
+ "PreviewMappingRequest": {
10503
+ "type": "object",
10504
+ "properties": {
10505
+ "sample_payload": { },
10506
+ "input_mapping_override": { }
10507
+ },
10508
+ "additionalProperties": false,
10509
+ "description": "Request for POST /triggers/{id}/preview-input-mapping"
10510
+ },
10511
+ "PreviewMappingResponse": {
10512
+ "type": "object",
10513
+ "properties": {
10514
+ "result_input": { },
10515
+ "resolution": {
10516
+ "type": "array",
10517
+ "items": {
10518
+ "$ref": "#/components/schemas/ResolutionRowDto"
10519
+ },
10520
+ "nullable": true
10521
+ },
10522
+ "warnings": {
10523
+ "type": "array",
10524
+ "items": {
10525
+ "type": "string"
10526
+ },
10527
+ "nullable": true
10528
+ }
10529
+ },
10530
+ "additionalProperties": false,
10531
+ "description": "Response for POST /triggers/{id}/preview-input-mapping"
10532
+ },
9910
10533
  "ProblemDetails": {
9911
10534
  "type": "object",
9912
10535
  "properties": {
@@ -10020,6 +10643,28 @@
10020
10643
  },
10021
10644
  "additionalProperties": false
10022
10645
  },
10646
+ "ResolutionRowDto": {
10647
+ "type": "object",
10648
+ "properties": {
10649
+ "target": {
10650
+ "type": "string",
10651
+ "nullable": true
10652
+ },
10653
+ "source": {
10654
+ "type": "string",
10655
+ "nullable": true
10656
+ },
10657
+ "ok": {
10658
+ "type": "boolean"
10659
+ },
10660
+ "note": {
10661
+ "type": "string",
10662
+ "nullable": true
10663
+ }
10664
+ },
10665
+ "additionalProperties": false,
10666
+ "description": "Resolution row showing how a mapping was resolved."
10667
+ },
10023
10668
  "ResumeRequest": {
10024
10669
  "type": "object",
10025
10670
  "properties": {
@@ -10185,10 +10830,34 @@
10185
10830
  "data": {
10186
10831
  "$ref": "#/components/schemas/RevisionListResponse"
10187
10832
  },
10188
- "hints": {
10833
+ "hints": {
10834
+ "type": "array",
10835
+ "items": {
10836
+ "$ref": "#/components/schemas/ApiHint"
10837
+ },
10838
+ "nullable": true
10839
+ }
10840
+ },
10841
+ "additionalProperties": false
10842
+ },
10843
+ "RoleContextDto": {
10844
+ "type": "object",
10845
+ "properties": {
10846
+ "id": {
10847
+ "type": "string",
10848
+ "format": "uuid"
10849
+ },
10850
+ "name": {
10851
+ "type": "string",
10852
+ "nullable": true
10853
+ },
10854
+ "is_system": {
10855
+ "type": "boolean"
10856
+ },
10857
+ "permissions": {
10189
10858
  "type": "array",
10190
10859
  "items": {
10191
- "$ref": "#/components/schemas/ApiHint"
10860
+ "type": "string"
10192
10861
  },
10193
10862
  "nullable": true
10194
10863
  }
@@ -10222,23 +10891,34 @@
10222
10891
  "type": "string",
10223
10892
  "format": "uuid"
10224
10893
  },
10894
+ "current_attempt_id": {
10895
+ "type": "string",
10896
+ "format": "uuid",
10897
+ "nullable": true
10898
+ },
10899
+ "current_attempt_no": {
10900
+ "type": "integer",
10901
+ "format": "int32",
10902
+ "nullable": true
10903
+ },
10904
+ "latest_seq": {
10905
+ "type": "integer",
10906
+ "format": "int64",
10907
+ "nullable": true
10908
+ },
10225
10909
  "status": {
10226
10910
  "$ref": "#/components/schemas/RunStatus"
10227
10911
  },
10228
- "input_json": {
10229
- "type": "string",
10912
+ "input": {
10230
10913
  "nullable": true
10231
10914
  },
10232
- "output_json": {
10233
- "type": "string",
10915
+ "output": {
10234
10916
  "nullable": true
10235
10917
  },
10236
- "error_json": {
10237
- "type": "string",
10918
+ "error": {
10238
10919
  "nullable": true
10239
10920
  },
10240
- "metrics_json": {
10241
- "type": "string",
10921
+ "metrics": {
10242
10922
  "nullable": true
10243
10923
  },
10244
10924
  "started_at": {
@@ -10255,6 +10935,11 @@
10255
10935
  "type": "string",
10256
10936
  "format": "date-time"
10257
10937
  },
10938
+ "duration_ms": {
10939
+ "type": "number",
10940
+ "format": "double",
10941
+ "nullable": true
10942
+ },
10258
10943
  "prompt_hash": {
10259
10944
  "type": "string",
10260
10945
  "nullable": true
@@ -10298,27 +10983,6 @@
10298
10983
  },
10299
10984
  "additionalProperties": false
10300
10985
  },
10301
- "RunEventItem": {
10302
- "type": "object",
10303
- "properties": {
10304
- "id": {
10305
- "type": "string",
10306
- "nullable": true
10307
- },
10308
- "type": {
10309
- "type": "string",
10310
- "nullable": true
10311
- },
10312
- "timestamp": {
10313
- "type": "string",
10314
- "format": "date-time"
10315
- },
10316
- "data": {
10317
- "nullable": true
10318
- }
10319
- },
10320
- "additionalProperties": false
10321
- },
10322
10986
  "RunEventsPollResponse": {
10323
10987
  "type": "object",
10324
10988
  "properties": {
@@ -10344,34 +11008,6 @@
10344
11008
  },
10345
11009
  "additionalProperties": false
10346
11010
  },
10347
- "RunEventsResponse": {
10348
- "type": "object",
10349
- "properties": {
10350
- "items": {
10351
- "type": "array",
10352
- "items": {
10353
- "$ref": "#/components/schemas/RunEventItem"
10354
- },
10355
- "nullable": true
10356
- },
10357
- "total": {
10358
- "type": "integer",
10359
- "format": "int32"
10360
- },
10361
- "offset": {
10362
- "type": "integer",
10363
- "format": "int32"
10364
- },
10365
- "limit": {
10366
- "type": "integer",
10367
- "format": "int32"
10368
- },
10369
- "has_more": {
10370
- "type": "boolean"
10371
- }
10372
- },
10373
- "additionalProperties": false
10374
- },
10375
11011
  "RunListItem": {
10376
11012
  "type": "object",
10377
11013
  "properties": {
@@ -10476,6 +11112,56 @@
10476
11112
  "type": "integer",
10477
11113
  "format": "int32"
10478
11114
  },
11115
+ "SaveMappingRequest": {
11116
+ "type": "object",
11117
+ "properties": {
11118
+ "input_mapping_override": { }
11119
+ },
11120
+ "additionalProperties": false,
11121
+ "description": "Request for PUT /triggers/{id}/input-mapping"
11122
+ },
11123
+ "SaveMappingResponse": {
11124
+ "type": "object",
11125
+ "properties": {
11126
+ "trigger_id": {
11127
+ "type": "string",
11128
+ "format": "uuid"
11129
+ },
11130
+ "input_mapping_override": { }
11131
+ },
11132
+ "additionalProperties": false,
11133
+ "description": "Response for PUT /triggers/{id}/input-mapping"
11134
+ },
11135
+ "ScopeInfo": {
11136
+ "type": "object",
11137
+ "properties": {
11138
+ "key": {
11139
+ "type": "string",
11140
+ "nullable": true
11141
+ },
11142
+ "description": {
11143
+ "type": "string",
11144
+ "nullable": true
11145
+ }
11146
+ },
11147
+ "additionalProperties": false
11148
+ },
11149
+ "ScopeListResponse": {
11150
+ "required": [
11151
+ "scopes"
11152
+ ],
11153
+ "type": "object",
11154
+ "properties": {
11155
+ "scopes": {
11156
+ "type": "array",
11157
+ "items": {
11158
+ "$ref": "#/components/schemas/ScopeInfo"
11159
+ },
11160
+ "nullable": true
11161
+ }
11162
+ },
11163
+ "additionalProperties": false
11164
+ },
10479
11165
  "SetLiveVersionRequest": {
10480
11166
  "type": "object",
10481
11167
  "properties": {
@@ -10589,34 +11275,18 @@
10589
11275
  },
10590
11276
  "additionalProperties": false
10591
11277
  },
10592
- "StreamRunRequest": {
11278
+ "TenantContextDto": {
10593
11279
  "type": "object",
10594
11280
  "properties": {
10595
- "tenant_id": {
10596
- "type": "string",
10597
- "format": "uuid"
10598
- },
10599
- "workspace_id": {
11281
+ "id": {
10600
11282
  "type": "string",
10601
11283
  "format": "uuid"
10602
11284
  },
10603
- "agent_id": {
10604
- "type": "string",
10605
- "format": "uuid",
10606
- "nullable": true
10607
- },
10608
- "thread": {
10609
- "$ref": "#/components/schemas/ThreadRequest"
10610
- },
10611
- "idempotency_key": {
10612
- "type": "string",
10613
- "nullable": true
10614
- },
10615
- "input_json": {
11285
+ "name": {
10616
11286
  "type": "string",
10617
11287
  "nullable": true
10618
11288
  },
10619
- "stream_mode": {
11289
+ "slug": {
10620
11290
  "type": "string",
10621
11291
  "nullable": true
10622
11292
  }
@@ -10692,11 +11362,56 @@
10692
11362
  },
10693
11363
  "additionalProperties": false
10694
11364
  },
11365
+ "TestMappingRequest": {
11366
+ "type": "object",
11367
+ "properties": {
11368
+ "sample_payload": { }
11369
+ },
11370
+ "additionalProperties": false,
11371
+ "description": "Request for POST /triggers/{id}/test-mapping - Preview payload transformation."
11372
+ },
11373
+ "TestMappingResponse": {
11374
+ "type": "object",
11375
+ "properties": {
11376
+ "original_payload": {
11377
+ "description": "The original payload as received"
11378
+ },
11379
+ "transformed_graph_input": {
11380
+ "description": "The transformed payload after mapping"
11381
+ },
11382
+ "mapping_configured": {
11383
+ "type": "boolean",
11384
+ "description": "True if a mapping spec is configured (trigger override or template default)"
11385
+ },
11386
+ "mapping_executed": {
11387
+ "type": "boolean",
11388
+ "description": "True if the mapping was actually executed (not just configured)"
11389
+ },
11390
+ "validation_errors": {
11391
+ "type": "array",
11392
+ "items": {
11393
+ "$ref": "#/components/schemas/MappingValidationError"
11394
+ },
11395
+ "description": "Structured validation errors if any",
11396
+ "nullable": true
11397
+ }
11398
+ },
11399
+ "additionalProperties": false,
11400
+ "description": "Response for POST /triggers/{id}/test-mapping.\nP0: Separated mapping_configured from mapping_executed for honesty."
11401
+ },
10695
11402
  "TestTriggerRequest": {
10696
11403
  "type": "object",
10697
11404
  "properties": {
10698
11405
  "payload": {
10699
11406
  "nullable": true
11407
+ },
11408
+ "thread_key": {
11409
+ "type": "string",
11410
+ "nullable": true
11411
+ },
11412
+ "idempotency_key": {
11413
+ "type": "string",
11414
+ "nullable": true
10700
11415
  }
10701
11416
  },
10702
11417
  "additionalProperties": false,
@@ -10804,18 +11519,35 @@
10804
11519
  },
10805
11520
  "additionalProperties": false
10806
11521
  },
10807
- "ToolCallRequest": {
11522
+ "TriggerInputContractResponse": {
10808
11523
  "type": "object",
10809
11524
  "properties": {
10810
- "name": {
11525
+ "trigger_id": {
11526
+ "type": "string",
11527
+ "format": "uuid"
11528
+ },
11529
+ "template_slug": {
10811
11530
  "type": "string",
10812
11531
  "nullable": true
10813
11532
  },
10814
- "arguments": {
11533
+ "external_body_schema": {
11534
+ "nullable": true
11535
+ },
11536
+ "run_input_schema": {
11537
+ "nullable": true
11538
+ },
11539
+ "effective_input_mapping_spec": {
11540
+ "nullable": true
11541
+ },
11542
+ "example_payload": {
10815
11543
  "nullable": true
11544
+ },
11545
+ "has_input_mapping": {
11546
+ "type": "boolean"
10816
11547
  }
10817
11548
  },
10818
- "additionalProperties": false
11549
+ "additionalProperties": false,
11550
+ "description": "Response for GET /triggers/{id}/contract - Full input contract details."
10819
11551
  },
10820
11552
  "TriggerRequestContract": {
10821
11553
  "type": "object",
@@ -10849,6 +11581,9 @@
10849
11581
  "curl_example": {
10850
11582
  "type": "string",
10851
11583
  "nullable": true
11584
+ },
11585
+ "curl_command_parts": {
11586
+ "$ref": "#/components/schemas/CurlCommandParts"
10852
11587
  }
10853
11588
  },
10854
11589
  "additionalProperties": false
@@ -10890,6 +11625,26 @@
10890
11625
  "is_active": {
10891
11626
  "type": "boolean"
10892
11627
  },
11628
+ "template_slug": {
11629
+ "type": "string",
11630
+ "nullable": true
11631
+ },
11632
+ "config_json": {
11633
+ "type": "string",
11634
+ "nullable": true
11635
+ },
11636
+ "payload_variants_json": {
11637
+ "type": "string",
11638
+ "nullable": true
11639
+ },
11640
+ "thread_key_spec_json": {
11641
+ "type": "string",
11642
+ "nullable": true
11643
+ },
11644
+ "idempotency_spec_json": {
11645
+ "type": "string",
11646
+ "nullable": true
11647
+ },
10893
11648
  "created_at": {
10894
11649
  "type": "string",
10895
11650
  "format": "date-time"
@@ -10965,6 +11720,9 @@
10965
11720
  "type": "string",
10966
11721
  "format": "uuid",
10967
11722
  "nullable": true
11723
+ },
11724
+ "metadata": {
11725
+ "$ref": "#/components/schemas/JsonNode"
10968
11726
  }
10969
11727
  },
10970
11728
  "additionalProperties": false
@@ -11097,6 +11855,18 @@
11097
11855
  "is_active": {
11098
11856
  "type": "boolean",
11099
11857
  "nullable": true
11858
+ },
11859
+ "config": {
11860
+ "nullable": true
11861
+ },
11862
+ "payload_variants_json": {
11863
+ "nullable": true
11864
+ },
11865
+ "thread_key_spec_json": {
11866
+ "nullable": true
11867
+ },
11868
+ "idempotency_spec_json": {
11869
+ "nullable": true
11100
11870
  }
11101
11871
  },
11102
11872
  "additionalProperties": false
@@ -11111,6 +11881,36 @@
11111
11881
  },
11112
11882
  "additionalProperties": false
11113
11883
  },
11884
+ "UserContextResponse": {
11885
+ "type": "object",
11886
+ "properties": {
11887
+ "user": {
11888
+ "$ref": "#/components/schemas/UserIdentityDto"
11889
+ },
11890
+ "memberships": {
11891
+ "type": "array",
11892
+ "items": {
11893
+ "$ref": "#/components/schemas/MembershipContextDto"
11894
+ },
11895
+ "nullable": true
11896
+ }
11897
+ },
11898
+ "additionalProperties": false
11899
+ },
11900
+ "UserIdentityDto": {
11901
+ "type": "object",
11902
+ "properties": {
11903
+ "id": {
11904
+ "type": "string",
11905
+ "format": "uuid"
11906
+ },
11907
+ "email": {
11908
+ "type": "string",
11909
+ "nullable": true
11910
+ }
11911
+ },
11912
+ "additionalProperties": false
11913
+ },
11114
11914
  "ValidateGraphRequest": {
11115
11915
  "type": "object",
11116
11916
  "properties": {
@@ -11455,6 +12255,24 @@
11455
12255
  },
11456
12256
  "additionalProperties": false
11457
12257
  },
12258
+ "WorkspaceContextDto": {
12259
+ "type": "object",
12260
+ "properties": {
12261
+ "id": {
12262
+ "type": "string",
12263
+ "format": "uuid"
12264
+ },
12265
+ "name": {
12266
+ "type": "string",
12267
+ "nullable": true
12268
+ },
12269
+ "slug": {
12270
+ "type": "string",
12271
+ "nullable": true
12272
+ }
12273
+ },
12274
+ "additionalProperties": false
12275
+ },
11458
12276
  "WorkspaceListResponse": {
11459
12277
  "type": "object",
11460
12278
  "properties": {
@@ -11519,6 +12337,9 @@
11519
12337
  {
11520
12338
  "name": "Audit"
11521
12339
  },
12340
+ {
12341
+ "name": "AuthBootstrap"
12342
+ },
11522
12343
  {
11523
12344
  "name": "Builder"
11524
12345
  },
@@ -11549,6 +12370,9 @@
11549
12370
  {
11550
12371
  "name": "Files"
11551
12372
  },
12373
+ {
12374
+ "name": "FrontendObservability"
12375
+ },
11552
12376
  {
11553
12377
  "name": "Graphs"
11554
12378
  },
@@ -11558,9 +12382,6 @@
11558
12382
  {
11559
12383
  "name": "Knowledge"
11560
12384
  },
11561
- {
11562
- "name": "Mcp"
11563
- },
11564
12385
  {
11565
12386
  "name": "Me"
11566
12387
  },