@onesi/genesis 0.2.12 → 0.2.13

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.
@@ -136,6 +136,10 @@
136
136
  {
137
137
  "name": "brews",
138
138
  "description": "Brews (agent recipes and decisions)"
139
+ },
140
+ {
141
+ "name": "connections",
142
+ "description": "Connections (verified remote MCP servers)"
139
143
  }
140
144
  ],
141
145
  "paths": {
@@ -2130,53 +2134,6 @@
2130
2134
  "x-mcp": true
2131
2135
  }
2132
2136
  },
2133
- "/v1/foundry/files/{file_id}/content": {
2134
- "get": {
2135
- "operationId": "foundry_downloadFile",
2136
- "summary": "Download tenant file content",
2137
- "tags": [
2138
- "foundry"
2139
- ],
2140
- "x-foundry-executable": true,
2141
- "x-foundry-rust-source": "foundry-edge/src/openrouter_files.rs",
2142
- "x-foundry-rust-route": "/v1/files/{file_id}/content",
2143
- "responses": {
2144
- "200": {
2145
- "description": "File bytes.",
2146
- "content": {
2147
- "application/json": {
2148
- "schema": {
2149
- "type": "string",
2150
- "format": "binary"
2151
- }
2152
- }
2153
- }
2154
- },
2155
- "default": {
2156
- "$ref": "#/components/responses/Foundry.Error"
2157
- }
2158
- },
2159
- "parameters": [
2160
- {
2161
- "name": "file_id",
2162
- "in": "path",
2163
- "required": true,
2164
- "schema": {
2165
- "type": "string",
2166
- "minLength": 1
2167
- }
2168
- }
2169
- ],
2170
- "x-genesis-service": "foundry",
2171
- "x-upstream": {
2172
- "base": "https://api.fdy.sh",
2173
- "method": "GET",
2174
- "path": "/v1/files/{file_id}/content",
2175
- "status": "live"
2176
- },
2177
- "x-mcp": true
2178
- }
2179
- },
2180
2137
  "/v1/foundry/fine_tuning/providers": {
2181
2138
  "get": {
2182
2139
  "operationId": "foundry_listFineTuningProviders",
@@ -6674,13 +6631,13 @@
6674
6631
  "x-mcp": false
6675
6632
  }
6676
6633
  },
6677
- "/v1/hives/organizations/{org_id}/sso": {
6634
+ "/v1/hives/organizations/{org_id}/usage": {
6678
6635
  "get": {
6679
6636
  "tags": [
6680
6637
  "hives"
6681
6638
  ],
6682
- "summary": "Get SSO configuration for an organization",
6683
- "operationId": "hives_get_sso_config",
6639
+ "summary": "Get organization usage (proxied to Cabbage)",
6640
+ "operationId": "hives_get_org_usage",
6684
6641
  "parameters": [
6685
6642
  {
6686
6643
  "name": "org_id",
@@ -6694,7 +6651,7 @@
6694
6651
  ],
6695
6652
  "responses": {
6696
6653
  "200": {
6697
- "description": "SSO configuration",
6654
+ "description": "Organization usage summary",
6698
6655
  "content": {
6699
6656
  "application/json": {
6700
6657
  "schema": {
@@ -6710,40 +6667,31 @@
6710
6667
  "description": "Organization not found"
6711
6668
  },
6712
6669
  "503": {
6713
- "description": "SSO service unavailable"
6670
+ "description": "Billing service unavailable"
6714
6671
  }
6715
6672
  },
6716
6673
  "x-genesis-service": "hives",
6717
6674
  "x-upstream": {
6718
6675
  "base": "https://api.hives.sh",
6719
6676
  "method": "GET",
6720
- "path": "/v1/organizations/{org_id}/sso",
6677
+ "path": "/v1/organizations/{org_id}/usage",
6721
6678
  "status": "down"
6722
6679
  },
6723
6680
  "x-mcp": false
6724
- },
6681
+ }
6682
+ },
6683
+ "/v1/hives/payments/checkout": {
6725
6684
  "post": {
6726
6685
  "tags": [
6727
6686
  "hives"
6728
6687
  ],
6729
- "summary": "Create a new SSO connection",
6730
- "operationId": "hives_create_sso_connection",
6731
- "parameters": [
6732
- {
6733
- "name": "org_id",
6734
- "in": "path",
6735
- "description": "Organization ID",
6736
- "required": true,
6737
- "schema": {
6738
- "type": "string"
6739
- }
6740
- }
6741
- ],
6688
+ "summary": "Create a Stripe checkout session",
6689
+ "operationId": "hives_create_checkout",
6742
6690
  "requestBody": {
6743
6691
  "content": {
6744
6692
  "application/json": {
6745
6693
  "schema": {
6746
- "$ref": "#/components/schemas/Hives.CreateSsoConnectionRequest"
6694
+ "$ref": "#/components/schemas/Hives.CreateCheckoutRequest"
6747
6695
  }
6748
6696
  }
6749
6697
  },
@@ -6751,7 +6699,7 @@
6751
6699
  },
6752
6700
  "responses": {
6753
6701
  "200": {
6754
- "description": "SSO connection created",
6702
+ "description": "Checkout session created",
6755
6703
  "content": {
6756
6704
  "application/json": {
6757
6705
  "schema": {
@@ -6763,53 +6711,73 @@
6763
6711
  "401": {
6764
6712
  "description": "Unauthorized"
6765
6713
  },
6766
- "404": {
6767
- "description": "Organization not found"
6768
- },
6769
6714
  "503": {
6770
- "description": "SSO service unavailable"
6715
+ "description": "Payments service unavailable"
6771
6716
  }
6772
6717
  },
6773
6718
  "x-genesis-service": "hives",
6774
6719
  "x-upstream": {
6775
6720
  "base": "https://api.hives.sh",
6776
6721
  "method": "POST",
6777
- "path": "/v1/organizations/{org_id}/sso",
6722
+ "path": "/v1/payments/checkout",
6778
6723
  "status": "down"
6779
6724
  },
6780
6725
  "x-mcp": false
6781
6726
  }
6782
6727
  },
6783
- "/v1/hives/organizations/{org_id}/sso/{connection_id}": {
6784
- "delete": {
6728
+ "/v1/hives/payments/methods": {
6729
+ "get": {
6785
6730
  "tags": [
6786
6731
  "hives"
6787
6732
  ],
6788
- "summary": "Delete an SSO connection",
6789
- "operationId": "hives_delete_sso_connection",
6790
- "parameters": [
6791
- {
6792
- "name": "org_id",
6793
- "in": "path",
6794
- "description": "Organization ID",
6795
- "required": true,
6796
- "schema": {
6797
- "type": "string"
6733
+ "summary": "List payment methods for the authenticated org",
6734
+ "operationId": "hives_list_payment_methods",
6735
+ "responses": {
6736
+ "200": {
6737
+ "description": "Payment methods",
6738
+ "content": {
6739
+ "application/json": {
6740
+ "schema": {
6741
+ "type": "object"
6742
+ }
6743
+ }
6798
6744
  }
6799
6745
  },
6800
- {
6801
- "name": "connection_id",
6802
- "in": "path",
6803
- "description": "SSO connection ID",
6804
- "required": true,
6805
- "schema": {
6806
- "type": "string"
6807
- }
6746
+ "401": {
6747
+ "description": "Unauthorized"
6748
+ },
6749
+ "503": {
6750
+ "description": "Payments service unavailable"
6808
6751
  }
6752
+ },
6753
+ "x-genesis-service": "hives",
6754
+ "x-upstream": {
6755
+ "base": "https://api.hives.sh",
6756
+ "method": "GET",
6757
+ "path": "/v1/payments/methods",
6758
+ "status": "down"
6759
+ },
6760
+ "x-mcp": false
6761
+ },
6762
+ "post": {
6763
+ "tags": [
6764
+ "hives"
6809
6765
  ],
6766
+ "summary": "Add a payment method",
6767
+ "operationId": "hives_add_payment_method",
6768
+ "requestBody": {
6769
+ "content": {
6770
+ "application/json": {
6771
+ "schema": {
6772
+ "$ref": "#/components/schemas/Hives.AddPaymentMethodRequest"
6773
+ }
6774
+ }
6775
+ },
6776
+ "required": true
6777
+ },
6810
6778
  "responses": {
6811
6779
  "200": {
6812
- "description": "SSO connection deleted",
6780
+ "description": "Payment method added",
6813
6781
  "content": {
6814
6782
  "application/json": {
6815
6783
  "schema": {
@@ -6821,48 +6789,147 @@
6821
6789
  "401": {
6822
6790
  "description": "Unauthorized"
6823
6791
  },
6824
- "404": {
6825
- "description": "Organization or connection not found"
6792
+ "503": {
6793
+ "description": "Payments service unavailable"
6794
+ }
6795
+ },
6796
+ "x-genesis-service": "hives",
6797
+ "x-upstream": {
6798
+ "base": "https://api.hives.sh",
6799
+ "method": "POST",
6800
+ "path": "/v1/payments/methods",
6801
+ "status": "down"
6802
+ },
6803
+ "x-mcp": false
6804
+ }
6805
+ },
6806
+ "/v1/hives/payments/portal": {
6807
+ "post": {
6808
+ "tags": [
6809
+ "hives"
6810
+ ],
6811
+ "summary": "Get Stripe billing portal URL",
6812
+ "operationId": "hives_get_billing_portal",
6813
+ "responses": {
6814
+ "200": {
6815
+ "description": "Billing portal URL",
6816
+ "content": {
6817
+ "application/json": {
6818
+ "schema": {
6819
+ "type": "object"
6820
+ }
6821
+ }
6822
+ }
6823
+ },
6824
+ "401": {
6825
+ "description": "Unauthorized"
6826
6826
  },
6827
6827
  "503": {
6828
- "description": "SSO service unavailable"
6828
+ "description": "Payments service unavailable"
6829
6829
  }
6830
6830
  },
6831
6831
  "x-genesis-service": "hives",
6832
6832
  "x-upstream": {
6833
6833
  "base": "https://api.hives.sh",
6834
- "method": "DELETE",
6835
- "path": "/v1/organizations/{org_id}/sso/{connection_id}",
6834
+ "method": "POST",
6835
+ "path": "/v1/payments/portal",
6836
6836
  "status": "down"
6837
6837
  },
6838
6838
  "x-mcp": false
6839
6839
  }
6840
6840
  },
6841
- "/v1/hives/organizations/{org_id}/usage": {
6841
+ "/v1/hives/projects": {
6842
6842
  "get": {
6843
6843
  "tags": [
6844
6844
  "hives"
6845
6845
  ],
6846
- "summary": "Get organization usage (proxied to Cabbage)",
6847
- "operationId": "hives_get_org_usage",
6846
+ "summary": "List all projects for the authenticated tenant",
6847
+ "operationId": "hives_list_projects",
6848
6848
  "parameters": [
6849
6849
  {
6850
- "name": "org_id",
6851
- "in": "path",
6852
- "description": "Organization ID",
6853
- "required": true,
6850
+ "name": "kind",
6851
+ "in": "query",
6852
+ "description": "Filter by project kind",
6853
+ "required": false,
6854
6854
  "schema": {
6855
- "type": "string"
6855
+ "type": [
6856
+ "string",
6857
+ "null"
6858
+ ]
6859
+ }
6860
+ },
6861
+ {
6862
+ "name": "status",
6863
+ "in": "query",
6864
+ "description": "Filter by status",
6865
+ "required": false,
6866
+ "schema": {
6867
+ "type": [
6868
+ "string",
6869
+ "null"
6870
+ ]
6871
+ }
6872
+ },
6873
+ {
6874
+ "name": "search",
6875
+ "in": "query",
6876
+ "description": "Search by name",
6877
+ "required": false,
6878
+ "schema": {
6879
+ "type": [
6880
+ "string",
6881
+ "null"
6882
+ ]
6883
+ }
6884
+ },
6885
+ {
6886
+ "name": "sort_by",
6887
+ "in": "query",
6888
+ "description": "Sort field",
6889
+ "required": false,
6890
+ "schema": {
6891
+ "$ref": "#/components/schemas/Hives.ProjectSortField"
6892
+ }
6893
+ },
6894
+ {
6895
+ "name": "sort_order",
6896
+ "in": "query",
6897
+ "description": "Sort order",
6898
+ "required": false,
6899
+ "schema": {
6900
+ "$ref": "#/components/schemas/Hives.SortOrder"
6901
+ }
6902
+ },
6903
+ {
6904
+ "name": "page",
6905
+ "in": "query",
6906
+ "description": "Page number (1-indexed)",
6907
+ "required": false,
6908
+ "schema": {
6909
+ "type": "integer",
6910
+ "format": "int32",
6911
+ "minimum": 0
6912
+ }
6913
+ },
6914
+ {
6915
+ "name": "per_page",
6916
+ "in": "query",
6917
+ "description": "Items per page",
6918
+ "required": false,
6919
+ "schema": {
6920
+ "type": "integer",
6921
+ "format": "int32",
6922
+ "minimum": 0
6856
6923
  }
6857
6924
  }
6858
6925
  ],
6859
6926
  "responses": {
6860
6927
  "200": {
6861
- "description": "Organization usage summary",
6928
+ "description": "List of projects",
6862
6929
  "content": {
6863
6930
  "application/json": {
6864
6931
  "schema": {
6865
- "type": "object"
6932
+ "$ref": "#/components/schemas/Hives.PaginatedResponse_ProjectResponse"
6866
6933
  }
6867
6934
  }
6868
6935
  }
@@ -6870,82 +6937,94 @@
6870
6937
  "401": {
6871
6938
  "description": "Unauthorized"
6872
6939
  },
6873
- "404": {
6874
- "description": "Organization not found"
6875
- },
6876
- "503": {
6877
- "description": "Billing service unavailable"
6940
+ "500": {
6941
+ "description": "Internal server error"
6878
6942
  }
6879
6943
  },
6880
6944
  "x-genesis-service": "hives",
6881
6945
  "x-upstream": {
6882
6946
  "base": "https://api.hives.sh",
6883
6947
  "method": "GET",
6884
- "path": "/v1/organizations/{org_id}/usage",
6948
+ "path": "/v1/projects",
6885
6949
  "status": "down"
6886
6950
  },
6887
- "x-mcp": false
6888
- }
6889
- },
6890
- "/v1/hives/payments/checkout": {
6951
+ "x-mcp": true
6952
+ },
6891
6953
  "post": {
6892
6954
  "tags": [
6893
6955
  "hives"
6894
6956
  ],
6895
- "summary": "Create a Stripe checkout session",
6896
- "operationId": "hives_create_checkout",
6957
+ "summary": "Create a new project",
6958
+ "operationId": "hives_create_project",
6897
6959
  "requestBody": {
6898
6960
  "content": {
6899
6961
  "application/json": {
6900
6962
  "schema": {
6901
- "$ref": "#/components/schemas/Hives.CreateCheckoutRequest"
6963
+ "$ref": "#/components/schemas/Hives.CreateProjectRequest"
6902
6964
  }
6903
6965
  }
6904
6966
  },
6905
6967
  "required": true
6906
6968
  },
6907
6969
  "responses": {
6908
- "200": {
6909
- "description": "Checkout session created",
6970
+ "201": {
6971
+ "description": "Project created",
6910
6972
  "content": {
6911
6973
  "application/json": {
6912
6974
  "schema": {
6913
- "type": "object"
6975
+ "$ref": "#/components/schemas/Hives.ProjectResponse"
6914
6976
  }
6915
6977
  }
6916
6978
  }
6917
6979
  },
6980
+ "400": {
6981
+ "description": "Invalid request"
6982
+ },
6918
6983
  "401": {
6919
6984
  "description": "Unauthorized"
6920
6985
  },
6921
- "503": {
6922
- "description": "Payments service unavailable"
6986
+ "409": {
6987
+ "description": "Project already exists"
6988
+ },
6989
+ "500": {
6990
+ "description": "Internal server error"
6923
6991
  }
6924
6992
  },
6925
6993
  "x-genesis-service": "hives",
6926
6994
  "x-upstream": {
6927
6995
  "base": "https://api.hives.sh",
6928
6996
  "method": "POST",
6929
- "path": "/v1/payments/checkout",
6997
+ "path": "/v1/projects",
6930
6998
  "status": "down"
6931
6999
  },
6932
- "x-mcp": false
7000
+ "x-mcp": true
6933
7001
  }
6934
7002
  },
6935
- "/v1/hives/payments/methods": {
7003
+ "/v1/hives/projects/{project_id}": {
6936
7004
  "get": {
6937
7005
  "tags": [
6938
7006
  "hives"
6939
7007
  ],
6940
- "summary": "List payment methods for the authenticated org",
6941
- "operationId": "hives_list_payment_methods",
7008
+ "summary": "Get a project by ID",
7009
+ "operationId": "hives_get_project",
7010
+ "parameters": [
7011
+ {
7012
+ "name": "project_id",
7013
+ "in": "path",
7014
+ "description": "Hives project id (prj_…)",
7015
+ "required": true,
7016
+ "schema": {
7017
+ "type": "string"
7018
+ }
7019
+ }
7020
+ ],
6942
7021
  "responses": {
6943
7022
  "200": {
6944
- "description": "Payment methods",
7023
+ "description": "Project details",
6945
7024
  "content": {
6946
7025
  "application/json": {
6947
7026
  "schema": {
6948
- "type": "object"
7027
+ "$ref": "#/components/schemas/Hives.ProjectResponse"
6949
7028
  }
6950
7029
  }
6951
7030
  }
@@ -6953,42 +7032,46 @@
6953
7032
  "401": {
6954
7033
  "description": "Unauthorized"
6955
7034
  },
6956
- "503": {
6957
- "description": "Payments service unavailable"
7035
+ "404": {
7036
+ "description": "Project not found"
7037
+ },
7038
+ "500": {
7039
+ "description": "Internal server error"
6958
7040
  }
6959
7041
  },
6960
7042
  "x-genesis-service": "hives",
6961
7043
  "x-upstream": {
6962
7044
  "base": "https://api.hives.sh",
6963
7045
  "method": "GET",
6964
- "path": "/v1/payments/methods",
7046
+ "path": "/v1/projects/{project_id}",
6965
7047
  "status": "down"
6966
7048
  },
6967
- "x-mcp": false
7049
+ "x-mcp": true
6968
7050
  },
6969
- "post": {
7051
+ "delete": {
6970
7052
  "tags": [
6971
7053
  "hives"
6972
7054
  ],
6973
- "summary": "Add a payment method",
6974
- "operationId": "hives_add_payment_method",
6975
- "requestBody": {
6976
- "content": {
6977
- "application/json": {
6978
- "schema": {
6979
- "$ref": "#/components/schemas/Hives.AddPaymentMethodRequest"
6980
- }
7055
+ "summary": "Delete a project",
7056
+ "operationId": "hives_delete_project",
7057
+ "parameters": [
7058
+ {
7059
+ "name": "project_id",
7060
+ "in": "path",
7061
+ "description": "Hives project id (prj_…)",
7062
+ "required": true,
7063
+ "schema": {
7064
+ "type": "string"
6981
7065
  }
6982
- },
6983
- "required": true
6984
- },
7066
+ }
7067
+ ],
6985
7068
  "responses": {
6986
7069
  "200": {
6987
- "description": "Payment method added",
7070
+ "description": "Project deleted",
6988
7071
  "content": {
6989
7072
  "application/json": {
6990
7073
  "schema": {
6991
- "type": "object"
7074
+ "$ref": "#/components/schemas/Hives.DeleteResponse"
6992
7075
  }
6993
7076
  }
6994
7077
  }
@@ -6996,508 +7079,218 @@
6996
7079
  "401": {
6997
7080
  "description": "Unauthorized"
6998
7081
  },
6999
- "503": {
7000
- "description": "Payments service unavailable"
7082
+ "404": {
7083
+ "description": "Project not found"
7084
+ },
7085
+ "500": {
7086
+ "description": "Internal server error"
7001
7087
  }
7002
7088
  },
7003
7089
  "x-genesis-service": "hives",
7004
7090
  "x-upstream": {
7005
7091
  "base": "https://api.hives.sh",
7006
- "method": "POST",
7007
- "path": "/v1/payments/methods",
7092
+ "method": "DELETE",
7093
+ "path": "/v1/projects/{project_id}",
7008
7094
  "status": "down"
7009
7095
  },
7010
- "x-mcp": false
7011
- }
7012
- },
7013
- "/v1/hives/payments/portal": {
7014
- "post": {
7096
+ "x-mcp": true
7097
+ },
7098
+ "patch": {
7015
7099
  "tags": [
7016
7100
  "hives"
7017
7101
  ],
7018
- "summary": "Get Stripe billing portal URL",
7019
- "operationId": "hives_get_billing_portal",
7102
+ "summary": "Update a project",
7103
+ "operationId": "hives_update_project",
7104
+ "parameters": [
7105
+ {
7106
+ "name": "project_id",
7107
+ "in": "path",
7108
+ "description": "Hives project id (prj_…)",
7109
+ "required": true,
7110
+ "schema": {
7111
+ "type": "string"
7112
+ }
7113
+ }
7114
+ ],
7115
+ "requestBody": {
7116
+ "content": {
7117
+ "application/json": {
7118
+ "schema": {
7119
+ "$ref": "#/components/schemas/Hives.UpdateProjectRequest"
7120
+ }
7121
+ }
7122
+ },
7123
+ "required": true
7124
+ },
7020
7125
  "responses": {
7021
7126
  "200": {
7022
- "description": "Billing portal URL",
7127
+ "description": "Project updated",
7023
7128
  "content": {
7024
7129
  "application/json": {
7025
7130
  "schema": {
7026
- "type": "object"
7131
+ "$ref": "#/components/schemas/Hives.ProjectResponse"
7027
7132
  }
7028
7133
  }
7029
7134
  }
7030
7135
  },
7136
+ "400": {
7137
+ "description": "Invalid request"
7138
+ },
7031
7139
  "401": {
7032
7140
  "description": "Unauthorized"
7033
7141
  },
7034
- "503": {
7035
- "description": "Payments service unavailable"
7142
+ "404": {
7143
+ "description": "Project not found"
7144
+ },
7145
+ "500": {
7146
+ "description": "Internal server error"
7036
7147
  }
7037
7148
  },
7038
7149
  "x-genesis-service": "hives",
7039
7150
  "x-upstream": {
7040
7151
  "base": "https://api.hives.sh",
7041
- "method": "POST",
7042
- "path": "/v1/payments/portal",
7152
+ "method": "PATCH",
7153
+ "path": "/v1/projects/{project_id}",
7043
7154
  "status": "down"
7044
7155
  },
7045
- "x-mcp": false
7156
+ "x-mcp": true
7046
7157
  }
7047
7158
  },
7048
- "/v1/hives/projects": {
7159
+ "/v1/hives/projects/{project_id}/activity": {
7049
7160
  "get": {
7050
7161
  "tags": [
7051
7162
  "hives"
7052
7163
  ],
7053
- "summary": "List all projects for the authenticated tenant",
7054
- "operationId": "hives_list_projects",
7164
+ "summary": "List activity for an authenticated org's project",
7165
+ "description": "Requires hives:read. The backend verifies that the project belongs to the signed org before reading its activity; an unknown or foreign-org project returns 404.",
7166
+ "operationId": "hives_get_project_activity",
7055
7167
  "parameters": [
7056
7168
  {
7057
- "name": "kind",
7169
+ "name": "project_id",
7170
+ "in": "path",
7171
+ "description": "Hives project id (prj_…)",
7172
+ "required": true,
7173
+ "schema": {
7174
+ "type": "string"
7175
+ }
7176
+ },
7177
+ {
7178
+ "name": "action",
7058
7179
  "in": "query",
7059
- "description": "Filter by project kind",
7060
- "required": false,
7180
+ "description": "Filter by action, such as project.updated",
7061
7181
  "schema": {
7062
- "type": [
7063
- "string",
7064
- "null"
7065
- ]
7182
+ "type": "string"
7066
7183
  }
7067
7184
  },
7068
7185
  {
7069
- "name": "status",
7186
+ "name": "actor_type",
7070
7187
  "in": "query",
7071
- "description": "Filter by status",
7072
- "required": false,
7188
+ "description": "Filter by actor type, such as user, api_key or system",
7073
7189
  "schema": {
7074
- "type": [
7075
- "string",
7076
- "null"
7077
- ]
7190
+ "type": "string"
7078
7191
  }
7079
7192
  },
7080
7193
  {
7081
- "name": "search",
7194
+ "name": "resource_type",
7082
7195
  "in": "query",
7083
- "description": "Search by name",
7084
- "required": false,
7196
+ "description": "Filter by resource type",
7085
7197
  "schema": {
7086
- "type": [
7087
- "string",
7088
- "null"
7089
- ]
7198
+ "type": "string"
7090
7199
  }
7091
7200
  },
7092
7201
  {
7093
- "name": "sort_by",
7202
+ "name": "since",
7094
7203
  "in": "query",
7095
- "description": "Sort field",
7096
- "required": false,
7204
+ "description": "Inclusive start timestamp",
7097
7205
  "schema": {
7098
- "$ref": "#/components/schemas/Hives.ProjectSortField"
7206
+ "type": "string",
7207
+ "format": "date-time"
7099
7208
  }
7100
7209
  },
7101
7210
  {
7102
- "name": "sort_order",
7211
+ "name": "until",
7103
7212
  "in": "query",
7104
- "description": "Sort order",
7105
- "required": false,
7213
+ "description": "Inclusive end timestamp",
7106
7214
  "schema": {
7107
- "$ref": "#/components/schemas/Hives.SortOrder"
7108
- }
7109
- },
7110
- {
7111
- "name": "page",
7112
- "in": "query",
7113
- "description": "Page number (1-indexed)",
7114
- "required": false,
7115
- "schema": {
7116
- "type": "integer",
7117
- "format": "int32",
7118
- "minimum": 0
7119
- }
7120
- },
7121
- {
7122
- "name": "per_page",
7123
- "in": "query",
7124
- "description": "Items per page",
7125
- "required": false,
7126
- "schema": {
7127
- "type": "integer",
7128
- "format": "int32",
7129
- "minimum": 0
7130
- }
7131
- }
7132
- ],
7133
- "responses": {
7134
- "200": {
7135
- "description": "List of projects",
7136
- "content": {
7137
- "application/json": {
7138
- "schema": {
7139
- "$ref": "#/components/schemas/Hives.PaginatedResponse_ProjectResponse"
7140
- }
7141
- }
7142
- }
7143
- },
7144
- "401": {
7145
- "description": "Unauthorized"
7146
- },
7147
- "500": {
7148
- "description": "Internal server error"
7149
- }
7150
- },
7151
- "x-genesis-service": "hives",
7152
- "x-upstream": {
7153
- "base": "https://api.hives.sh",
7154
- "method": "GET",
7155
- "path": "/v1/projects",
7156
- "status": "down"
7157
- },
7158
- "x-mcp": true
7159
- },
7160
- "post": {
7161
- "tags": [
7162
- "hives"
7163
- ],
7164
- "summary": "Create a new project",
7165
- "operationId": "hives_create_project",
7166
- "requestBody": {
7167
- "content": {
7168
- "application/json": {
7169
- "schema": {
7170
- "$ref": "#/components/schemas/Hives.CreateProjectRequest"
7171
- }
7172
- }
7173
- },
7174
- "required": true
7175
- },
7176
- "responses": {
7177
- "201": {
7178
- "description": "Project created",
7179
- "content": {
7180
- "application/json": {
7181
- "schema": {
7182
- "$ref": "#/components/schemas/Hives.ProjectResponse"
7183
- }
7184
- }
7185
- }
7186
- },
7187
- "400": {
7188
- "description": "Invalid request"
7189
- },
7190
- "401": {
7191
- "description": "Unauthorized"
7192
- },
7193
- "409": {
7194
- "description": "Project already exists"
7195
- },
7196
- "500": {
7197
- "description": "Internal server error"
7198
- }
7199
- },
7200
- "x-genesis-service": "hives",
7201
- "x-upstream": {
7202
- "base": "https://api.hives.sh",
7203
- "method": "POST",
7204
- "path": "/v1/projects",
7205
- "status": "down"
7206
- },
7207
- "x-mcp": true
7208
- }
7209
- },
7210
- "/v1/hives/projects/{project_id}": {
7211
- "get": {
7212
- "tags": [
7213
- "hives"
7214
- ],
7215
- "summary": "Get a project by ID",
7216
- "operationId": "hives_get_project",
7217
- "parameters": [
7218
- {
7219
- "name": "project_id",
7220
- "in": "path",
7221
- "description": "Hives project id (prj_…)",
7222
- "required": true,
7223
- "schema": {
7224
- "type": "string"
7225
- }
7226
- }
7227
- ],
7228
- "responses": {
7229
- "200": {
7230
- "description": "Project details",
7231
- "content": {
7232
- "application/json": {
7233
- "schema": {
7234
- "$ref": "#/components/schemas/Hives.ProjectResponse"
7235
- }
7236
- }
7237
- }
7238
- },
7239
- "401": {
7240
- "description": "Unauthorized"
7241
- },
7242
- "404": {
7243
- "description": "Project not found"
7244
- },
7245
- "500": {
7246
- "description": "Internal server error"
7247
- }
7248
- },
7249
- "x-genesis-service": "hives",
7250
- "x-upstream": {
7251
- "base": "https://api.hives.sh",
7252
- "method": "GET",
7253
- "path": "/v1/projects/{project_id}",
7254
- "status": "down"
7255
- },
7256
- "x-mcp": true
7257
- },
7258
- "delete": {
7259
- "tags": [
7260
- "hives"
7261
- ],
7262
- "summary": "Delete a project",
7263
- "operationId": "hives_delete_project",
7264
- "parameters": [
7265
- {
7266
- "name": "project_id",
7267
- "in": "path",
7268
- "description": "Hives project id (prj_…)",
7269
- "required": true,
7270
- "schema": {
7271
- "type": "string"
7272
- }
7273
- }
7274
- ],
7275
- "responses": {
7276
- "200": {
7277
- "description": "Project deleted",
7278
- "content": {
7279
- "application/json": {
7280
- "schema": {
7281
- "$ref": "#/components/schemas/Hives.DeleteResponse"
7282
- }
7283
- }
7284
- }
7285
- },
7286
- "401": {
7287
- "description": "Unauthorized"
7288
- },
7289
- "404": {
7290
- "description": "Project not found"
7291
- },
7292
- "500": {
7293
- "description": "Internal server error"
7294
- }
7295
- },
7296
- "x-genesis-service": "hives",
7297
- "x-upstream": {
7298
- "base": "https://api.hives.sh",
7299
- "method": "DELETE",
7300
- "path": "/v1/projects/{project_id}",
7301
- "status": "down"
7302
- },
7303
- "x-mcp": true
7304
- },
7305
- "patch": {
7306
- "tags": [
7307
- "hives"
7308
- ],
7309
- "summary": "Update a project",
7310
- "operationId": "hives_update_project",
7311
- "parameters": [
7312
- {
7313
- "name": "project_id",
7314
- "in": "path",
7315
- "description": "Hives project id (prj_…)",
7316
- "required": true,
7317
- "schema": {
7318
- "type": "string"
7319
- }
7320
- }
7321
- ],
7322
- "requestBody": {
7323
- "content": {
7324
- "application/json": {
7325
- "schema": {
7326
- "$ref": "#/components/schemas/Hives.UpdateProjectRequest"
7327
- }
7328
- }
7329
- },
7330
- "required": true
7331
- },
7332
- "responses": {
7333
- "200": {
7334
- "description": "Project updated",
7335
- "content": {
7336
- "application/json": {
7337
- "schema": {
7338
- "$ref": "#/components/schemas/Hives.ProjectResponse"
7339
- }
7340
- }
7341
- }
7342
- },
7343
- "400": {
7344
- "description": "Invalid request"
7345
- },
7346
- "401": {
7347
- "description": "Unauthorized"
7348
- },
7349
- "404": {
7350
- "description": "Project not found"
7351
- },
7352
- "500": {
7353
- "description": "Internal server error"
7354
- }
7355
- },
7356
- "x-genesis-service": "hives",
7357
- "x-upstream": {
7358
- "base": "https://api.hives.sh",
7359
- "method": "PATCH",
7360
- "path": "/v1/projects/{project_id}",
7361
- "status": "down"
7362
- },
7363
- "x-mcp": true
7364
- }
7365
- },
7366
- "/v1/hives/projects/{project_id}/activity": {
7367
- "get": {
7368
- "tags": [
7369
- "hives"
7370
- ],
7371
- "summary": "List activity for an authenticated org's project",
7372
- "description": "Requires hives:read. The backend verifies that the project belongs to the signed org before reading its activity; an unknown or foreign-org project returns 404.",
7373
- "operationId": "hives_get_project_activity",
7374
- "parameters": [
7375
- {
7376
- "name": "project_id",
7377
- "in": "path",
7378
- "description": "Hives project id (prj_…)",
7379
- "required": true,
7380
- "schema": {
7381
- "type": "string"
7382
- }
7383
- },
7384
- {
7385
- "name": "action",
7386
- "in": "query",
7387
- "description": "Filter by action, such as project.updated",
7388
- "schema": {
7389
- "type": "string"
7390
- }
7391
- },
7392
- {
7393
- "name": "actor_type",
7394
- "in": "query",
7395
- "description": "Filter by actor type, such as user, api_key or system",
7396
- "schema": {
7397
- "type": "string"
7398
- }
7399
- },
7400
- {
7401
- "name": "resource_type",
7402
- "in": "query",
7403
- "description": "Filter by resource type",
7404
- "schema": {
7405
- "type": "string"
7406
- }
7407
- },
7408
- {
7409
- "name": "since",
7410
- "in": "query",
7411
- "description": "Inclusive start timestamp",
7412
- "schema": {
7413
- "type": "string",
7414
- "format": "date-time"
7415
- }
7416
- },
7417
- {
7418
- "name": "until",
7419
- "in": "query",
7420
- "description": "Inclusive end timestamp",
7421
- "schema": {
7422
- "type": "string",
7423
- "format": "date-time"
7424
- }
7425
- },
7426
- {
7427
- "name": "page",
7428
- "in": "query",
7429
- "description": "Page number (1-indexed)",
7430
- "schema": {
7431
- "type": "integer",
7432
- "minimum": 1,
7433
- "maximum": 10000,
7434
- "default": 1
7435
- }
7436
- },
7437
- {
7438
- "name": "per_page",
7439
- "in": "query",
7440
- "description": "Items per page",
7441
- "schema": {
7442
- "type": "integer",
7443
- "minimum": 1,
7444
- "maximum": 100,
7445
- "default": 20
7446
- }
7447
- }
7448
- ],
7449
- "responses": {
7450
- "200": {
7451
- "description": "Project activity for the authenticated org",
7452
- "content": {
7453
- "application/json": {
7454
- "schema": {
7455
- "$ref": "#/components/schemas/Hives.PaginatedResponse_ActivityEntry"
7456
- }
7457
- }
7458
- }
7459
- },
7460
- "400": {
7461
- "description": "Invalid filter or pagination"
7462
- },
7463
- "401": {
7464
- "description": "Missing or invalid signed identity"
7465
- },
7466
- "403": {
7467
- "description": "Missing hives:read scope"
7468
- },
7469
- "404": {
7470
- "description": "Project not found in the authenticated org"
7471
- },
7472
- "500": {
7473
- "description": "Internal server error"
7474
- }
7475
- },
7476
- "x-genesis-service": "hives",
7477
- "x-upstream": {
7478
- "base": "https://api.hives.sh",
7479
- "method": "GET",
7480
- "path": "/v1/projects/{project_id}/activity",
7481
- "status": "down"
7482
- },
7483
- "x-mcp": true
7484
- }
7485
- },
7486
- "/v1/hives/projects/{project_id}/cron": {
7487
- "get": {
7488
- "tags": [
7489
- "hives"
7490
- ],
7491
- "summary": "List all cron jobs for a project",
7492
- "operationId": "hives_list_crons",
7493
- "parameters": [
7494
- {
7495
- "name": "project_id",
7496
- "in": "path",
7497
- "description": "Hives project id (prj_…)",
7498
- "required": true,
7499
- "schema": {
7500
- "type": "string"
7215
+ "type": "string",
7216
+ "format": "date-time"
7217
+ }
7218
+ },
7219
+ {
7220
+ "name": "page",
7221
+ "in": "query",
7222
+ "description": "Page number (1-indexed)",
7223
+ "schema": {
7224
+ "type": "integer",
7225
+ "minimum": 1,
7226
+ "maximum": 10000,
7227
+ "default": 1
7228
+ }
7229
+ },
7230
+ {
7231
+ "name": "per_page",
7232
+ "in": "query",
7233
+ "description": "Items per page",
7234
+ "schema": {
7235
+ "type": "integer",
7236
+ "minimum": 1,
7237
+ "maximum": 100,
7238
+ "default": 20
7239
+ }
7240
+ }
7241
+ ],
7242
+ "responses": {
7243
+ "200": {
7244
+ "description": "Project activity for the authenticated org",
7245
+ "content": {
7246
+ "application/json": {
7247
+ "schema": {
7248
+ "$ref": "#/components/schemas/Hives.PaginatedResponse_ActivityEntry"
7249
+ }
7250
+ }
7251
+ }
7252
+ },
7253
+ "400": {
7254
+ "description": "Invalid filter or pagination"
7255
+ },
7256
+ "401": {
7257
+ "description": "Missing or invalid signed identity"
7258
+ },
7259
+ "403": {
7260
+ "description": "Missing hives:read scope"
7261
+ },
7262
+ "404": {
7263
+ "description": "Project not found in the authenticated org"
7264
+ },
7265
+ "500": {
7266
+ "description": "Internal server error"
7267
+ }
7268
+ },
7269
+ "x-genesis-service": "hives",
7270
+ "x-upstream": {
7271
+ "base": "https://api.hives.sh",
7272
+ "method": "GET",
7273
+ "path": "/v1/projects/{project_id}/activity",
7274
+ "status": "down"
7275
+ },
7276
+ "x-mcp": true
7277
+ }
7278
+ },
7279
+ "/v1/hives/projects/{project_id}/cron": {
7280
+ "get": {
7281
+ "tags": [
7282
+ "hives"
7283
+ ],
7284
+ "summary": "List all cron jobs for a project",
7285
+ "operationId": "hives_list_crons",
7286
+ "parameters": [
7287
+ {
7288
+ "name": "project_id",
7289
+ "in": "path",
7290
+ "description": "Hives project id (prj_…)",
7291
+ "required": true,
7292
+ "schema": {
7293
+ "type": "string"
7501
7294
  }
7502
7295
  },
7503
7296
  {
@@ -101545,6 +101338,718 @@
101545
101338
  },
101546
101339
  "x-mcp": true
101547
101340
  }
101341
+ },
101342
+ "/v1/connections/catalog": {
101343
+ "get": {
101344
+ "operationId": "connections_listCatalog",
101345
+ "summary": "List verified MCP servers in the catalog",
101346
+ "description": "Scope `connections:read`. Filter by OneOS plugin category (`plugin`, e.g. `scopes`). Suspended servers are listed with their `reason`.",
101347
+ "parameters": [
101348
+ {
101349
+ "name": "plugin",
101350
+ "in": "query",
101351
+ "required": false,
101352
+ "description": "OneOS plugin category the server competes in, e.g. scopes, silos, traces",
101353
+ "schema": {
101354
+ "type": "string",
101355
+ "pattern": "^[a-z][a-z0-9-]{0,31}$"
101356
+ }
101357
+ }
101358
+ ],
101359
+ "responses": {
101360
+ "200": {
101361
+ "description": "Catalog servers",
101362
+ "content": {
101363
+ "application/json": {
101364
+ "schema": {
101365
+ "type": "object",
101366
+ "required": [
101367
+ "data"
101368
+ ],
101369
+ "properties": {
101370
+ "data": {
101371
+ "type": "array",
101372
+ "items": {
101373
+ "$ref": "#/components/schemas/Connections.CatalogServer"
101374
+ }
101375
+ }
101376
+ }
101377
+ }
101378
+ }
101379
+ }
101380
+ },
101381
+ "403": {
101382
+ "$ref": "#/components/responses/Connections.Forbidden"
101383
+ }
101384
+ },
101385
+ "tags": [
101386
+ "connections"
101387
+ ],
101388
+ "x-genesis-service": "connections",
101389
+ "x-upstream": {
101390
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101391
+ "method": "GET",
101392
+ "path": "/v1/catalog",
101393
+ "status": "not_deployed"
101394
+ },
101395
+ "x-mcp": true
101396
+ }
101397
+ },
101398
+ "/v1/connections/catalog/{server}": {
101399
+ "parameters": [
101400
+ {
101401
+ "$ref": "#/components/parameters/Connections.Server"
101402
+ }
101403
+ ],
101404
+ "get": {
101405
+ "operationId": "connections_getCatalogServer",
101406
+ "summary": "Get a catalog server with its pinned tool manifest",
101407
+ "description": "Scope `connections:read`.",
101408
+ "responses": {
101409
+ "200": {
101410
+ "description": "The server and its pinned manifest",
101411
+ "content": {
101412
+ "application/json": {
101413
+ "schema": {
101414
+ "$ref": "#/components/schemas/Connections.CatalogServerDetail"
101415
+ }
101416
+ }
101417
+ }
101418
+ },
101419
+ "404": {
101420
+ "$ref": "#/components/responses/Connections.NotFound"
101421
+ }
101422
+ },
101423
+ "tags": [
101424
+ "connections"
101425
+ ],
101426
+ "x-genesis-service": "connections",
101427
+ "x-upstream": {
101428
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101429
+ "method": "GET",
101430
+ "path": "/v1/catalog/{server}",
101431
+ "status": "not_deployed"
101432
+ },
101433
+ "x-mcp": true
101434
+ }
101435
+ },
101436
+ "/v1/connections": {
101437
+ "get": {
101438
+ "operationId": "connections_list",
101439
+ "summary": "List your organization's connections",
101440
+ "description": "Scope `connections:read`. Connections of the selected environment, newest first (at most 200), optionally of one `status`.",
101441
+ "parameters": [
101442
+ {
101443
+ "name": "status",
101444
+ "in": "query",
101445
+ "required": false,
101446
+ "schema": {
101447
+ "type": "string",
101448
+ "enum": [
101449
+ "pending_auth",
101450
+ "active",
101451
+ "needs_reauth",
101452
+ "revoked"
101453
+ ]
101454
+ }
101455
+ }
101456
+ ],
101457
+ "responses": {
101458
+ "200": {
101459
+ "description": "Connections",
101460
+ "content": {
101461
+ "application/json": {
101462
+ "schema": {
101463
+ "type": "object",
101464
+ "required": [
101465
+ "data"
101466
+ ],
101467
+ "properties": {
101468
+ "data": {
101469
+ "type": "array",
101470
+ "items": {
101471
+ "$ref": "#/components/schemas/Connections.Connection"
101472
+ }
101473
+ }
101474
+ }
101475
+ }
101476
+ }
101477
+ }
101478
+ },
101479
+ "403": {
101480
+ "$ref": "#/components/responses/Connections.Forbidden"
101481
+ }
101482
+ },
101483
+ "tags": [
101484
+ "connections"
101485
+ ],
101486
+ "x-genesis-service": "connections",
101487
+ "x-upstream": {
101488
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101489
+ "method": "GET",
101490
+ "path": "/v1",
101491
+ "status": "not_deployed"
101492
+ },
101493
+ "x-mcp": true
101494
+ },
101495
+ "post": {
101496
+ "operationId": "connections_connect",
101497
+ "summary": "Connect a catalog server",
101498
+ "description": "Scope `connections:write`. Creates a `pending_auth` connection and returns the `authorize_url` a person opens to consent at the vendor. `tools` picks the tools to enable (default: the manifest's defaults); only their scopes are requested. Unknown fields are refused (422). Enabling any `send`, `spend` or `destructive` tool needs an owner's approval (428). `auto_org` names the Auto org that governs the connection (its authority checks and approvals); a connect carrying `auto_org` always answers `428 APPROVAL_REQUIRED` first, so a person approves binding the connection to that Auto org.",
101499
+ "parameters": [
101500
+ {
101501
+ "$ref": "#/components/parameters/Connections.Approval"
101502
+ }
101503
+ ],
101504
+ "requestBody": {
101505
+ "required": true,
101506
+ "content": {
101507
+ "application/json": {
101508
+ "schema": {
101509
+ "$ref": "#/components/schemas/Connections.ConnectRequest"
101510
+ }
101511
+ }
101512
+ }
101513
+ },
101514
+ "responses": {
101515
+ "201": {
101516
+ "description": "Connection created, waiting for a person to authorize it",
101517
+ "content": {
101518
+ "application/json": {
101519
+ "schema": {
101520
+ "$ref": "#/components/schemas/Connections.ConnectResponse"
101521
+ }
101522
+ }
101523
+ }
101524
+ },
101525
+ "403": {
101526
+ "$ref": "#/components/responses/Connections.Forbidden"
101527
+ },
101528
+ "404": {
101529
+ "$ref": "#/components/responses/Connections.NotFound"
101530
+ },
101531
+ "409": {
101532
+ "$ref": "#/components/responses/Connections.Conflict"
101533
+ },
101534
+ "410": {
101535
+ "$ref": "#/components/responses/Connections.ToolChanged"
101536
+ },
101537
+ "422": {
101538
+ "$ref": "#/components/responses/Connections.Invalid"
101539
+ },
101540
+ "428": {
101541
+ "$ref": "#/components/responses/Connections.ApprovalRequired"
101542
+ }
101543
+ },
101544
+ "tags": [
101545
+ "connections"
101546
+ ],
101547
+ "x-genesis-service": "connections",
101548
+ "x-upstream": {
101549
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101550
+ "method": "POST",
101551
+ "path": "/v1",
101552
+ "status": "not_deployed"
101553
+ },
101554
+ "x-mcp": true
101555
+ }
101556
+ },
101557
+ "/v1/connections/{id}": {
101558
+ "parameters": [
101559
+ {
101560
+ "$ref": "#/components/parameters/Connections.Id"
101561
+ }
101562
+ ],
101563
+ "get": {
101564
+ "operationId": "connections_get",
101565
+ "summary": "Get a connection",
101566
+ "description": "Scope `connections:read`. Status, granted scopes and the pinned manifest hash.",
101567
+ "responses": {
101568
+ "200": {
101569
+ "description": "The connection",
101570
+ "content": {
101571
+ "application/json": {
101572
+ "schema": {
101573
+ "$ref": "#/components/schemas/Connections.Connection"
101574
+ }
101575
+ }
101576
+ }
101577
+ },
101578
+ "404": {
101579
+ "$ref": "#/components/responses/Connections.NotFound"
101580
+ }
101581
+ },
101582
+ "tags": [
101583
+ "connections"
101584
+ ],
101585
+ "x-genesis-service": "connections",
101586
+ "x-upstream": {
101587
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101588
+ "method": "GET",
101589
+ "path": "/v1/{id}",
101590
+ "status": "not_deployed"
101591
+ },
101592
+ "x-mcp": true
101593
+ },
101594
+ "delete": {
101595
+ "operationId": "connections_revoke",
101596
+ "summary": "Revoke a connection",
101597
+ "description": "Scope `connections:write`. Never needs an approval. Blinds deletes the stored tokens and asks the vendor to revoke them (best effort, reported as `vendor_revoked`; `tokens_deleted` is false when Blinds did not confirm, and repeating the DELETE retries). The connection stays listed as `revoked`.",
101598
+ "responses": {
101599
+ "200": {
101600
+ "description": "Revoked",
101601
+ "content": {
101602
+ "application/json": {
101603
+ "schema": {
101604
+ "$ref": "#/components/schemas/Connections.RevokeResponse"
101605
+ }
101606
+ }
101607
+ }
101608
+ },
101609
+ "403": {
101610
+ "$ref": "#/components/responses/Connections.Forbidden"
101611
+ },
101612
+ "404": {
101613
+ "$ref": "#/components/responses/Connections.NotFound"
101614
+ }
101615
+ },
101616
+ "tags": [
101617
+ "connections"
101618
+ ],
101619
+ "x-genesis-service": "connections",
101620
+ "x-upstream": {
101621
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101622
+ "method": "DELETE",
101623
+ "path": "/v1/{id}",
101624
+ "status": "not_deployed"
101625
+ },
101626
+ "x-mcp": true
101627
+ }
101628
+ },
101629
+ "/v1/connections/{id}/authorize": {
101630
+ "parameters": [
101631
+ {
101632
+ "$ref": "#/components/parameters/Connections.Id"
101633
+ }
101634
+ ],
101635
+ "post": {
101636
+ "operationId": "connections_authorize",
101637
+ "summary": "Get a new authorize URL for a person to open",
101638
+ "description": "Scope `connections:write`. Returns a fresh `authorize_url` (its `state` is single use and valid for 10 minutes). Human step: a person opens it in a browser. The hosted MCP refuses this operation for agents (human consent); use the CLI (`genesis connections authorize <id>`) or the Console.",
101639
+ "responses": {
101640
+ "200": {
101641
+ "description": "The URL a person opens to consent at the vendor",
101642
+ "content": {
101643
+ "application/json": {
101644
+ "schema": {
101645
+ "$ref": "#/components/schemas/Connections.AuthorizeResponse"
101646
+ }
101647
+ }
101648
+ }
101649
+ },
101650
+ "403": {
101651
+ "$ref": "#/components/responses/Connections.Forbidden"
101652
+ },
101653
+ "404": {
101654
+ "$ref": "#/components/responses/Connections.NotFound"
101655
+ },
101656
+ "409": {
101657
+ "$ref": "#/components/responses/Connections.Conflict"
101658
+ }
101659
+ },
101660
+ "tags": [
101661
+ "connections"
101662
+ ],
101663
+ "x-genesis-service": "connections",
101664
+ "x-upstream": {
101665
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101666
+ "method": "POST",
101667
+ "path": "/v1/{id}/authorize",
101668
+ "status": "not_deployed"
101669
+ },
101670
+ "x-mcp": false
101671
+ }
101672
+ },
101673
+ "/v1/connections/{id}/tools": {
101674
+ "parameters": [
101675
+ {
101676
+ "$ref": "#/components/parameters/Connections.Id"
101677
+ }
101678
+ ],
101679
+ "get": {
101680
+ "operationId": "connections_listTools",
101681
+ "summary": "List a connection's tools with their policy",
101682
+ "description": "Scope `connections:read`. The pinned manifest's tools, each with its effect, scopes, policy mode and the vendor's description and input schema (untrusted).",
101683
+ "responses": {
101684
+ "200": {
101685
+ "description": "Tools",
101686
+ "content": {
101687
+ "application/json": {
101688
+ "schema": {
101689
+ "$ref": "#/components/schemas/Connections.ToolList"
101690
+ }
101691
+ }
101692
+ }
101693
+ },
101694
+ "404": {
101695
+ "$ref": "#/components/responses/Connections.NotFound"
101696
+ },
101697
+ "410": {
101698
+ "$ref": "#/components/responses/Connections.ToolChanged"
101699
+ }
101700
+ },
101701
+ "tags": [
101702
+ "connections"
101703
+ ],
101704
+ "x-genesis-service": "connections",
101705
+ "x-upstream": {
101706
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101707
+ "method": "GET",
101708
+ "path": "/v1/{id}/tools",
101709
+ "status": "not_deployed"
101710
+ },
101711
+ "x-mcp": true
101712
+ },
101713
+ "patch": {
101714
+ "operationId": "connections_setToolPolicy",
101715
+ "summary": "Set tool policies (allow, approve or deny)",
101716
+ "description": "Scope `connections:write`. `tools` maps tool names to `allow`, `approve` or `deny`; `send`, `spend` and `destructive` tools take `approve` or `deny` only (422 for `allow`). Narrowing never needs an approval; widening (deny to approve or allow, approve to allow) needs an owner's approval (428) and Auto's `connections.widen` check. When the change needs scopes not yet granted, the answer carries `reauthorize`.",
101717
+ "parameters": [
101718
+ {
101719
+ "$ref": "#/components/parameters/Connections.Approval"
101720
+ }
101721
+ ],
101722
+ "requestBody": {
101723
+ "required": true,
101724
+ "content": {
101725
+ "application/json": {
101726
+ "schema": {
101727
+ "$ref": "#/components/schemas/Connections.ToolPolicyRequest"
101728
+ }
101729
+ }
101730
+ }
101731
+ },
101732
+ "responses": {
101733
+ "200": {
101734
+ "description": "The connection with its new policy and the changes made",
101735
+ "content": {
101736
+ "application/json": {
101737
+ "schema": {
101738
+ "$ref": "#/components/schemas/Connections.ToolPolicyResponse"
101739
+ }
101740
+ }
101741
+ }
101742
+ },
101743
+ "403": {
101744
+ "$ref": "#/components/responses/Connections.Forbidden"
101745
+ },
101746
+ "404": {
101747
+ "$ref": "#/components/responses/Connections.NotFound"
101748
+ },
101749
+ "409": {
101750
+ "$ref": "#/components/responses/Connections.Conflict"
101751
+ },
101752
+ "422": {
101753
+ "$ref": "#/components/responses/Connections.Invalid"
101754
+ },
101755
+ "428": {
101756
+ "$ref": "#/components/responses/Connections.ApprovalRequired"
101757
+ }
101758
+ },
101759
+ "tags": [
101760
+ "connections"
101761
+ ],
101762
+ "x-genesis-service": "connections",
101763
+ "x-upstream": {
101764
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101765
+ "method": "PATCH",
101766
+ "path": "/v1/{id}/tools",
101767
+ "status": "not_deployed"
101768
+ },
101769
+ "x-mcp": true
101770
+ }
101771
+ },
101772
+ "/v1/connections/{id}/tools/{tool}/call": {
101773
+ "parameters": [
101774
+ {
101775
+ "$ref": "#/components/parameters/Connections.Id"
101776
+ },
101777
+ {
101778
+ "$ref": "#/components/parameters/Connections.Tool"
101779
+ }
101780
+ ],
101781
+ "post": {
101782
+ "operationId": "connections_call",
101783
+ "summary": "Call a connected tool",
101784
+ "description": "Scope `connections:write`. Runs Auto's `connections.call` check, then calls the tool through Blinds. The result is third-party content inside the `untrusted` wrapper. A tool whose policy is `approve`, or a write to another connection after this session read untrusted content, answers 428; retry with `OneOS-Approval`.",
101785
+ "parameters": [
101786
+ {
101787
+ "$ref": "#/components/parameters/Connections.Approval"
101788
+ }
101789
+ ],
101790
+ "requestBody": {
101791
+ "required": true,
101792
+ "content": {
101793
+ "application/json": {
101794
+ "schema": {
101795
+ "$ref": "#/components/schemas/Connections.CallRequest"
101796
+ }
101797
+ }
101798
+ }
101799
+ },
101800
+ "responses": {
101801
+ "200": {
101802
+ "description": "The call's outcome and its wrapped result",
101803
+ "content": {
101804
+ "application/json": {
101805
+ "schema": {
101806
+ "$ref": "#/components/schemas/Connections.CallResult"
101807
+ }
101808
+ }
101809
+ }
101810
+ },
101811
+ "403": {
101812
+ "$ref": "#/components/responses/Connections.Forbidden"
101813
+ },
101814
+ "404": {
101815
+ "$ref": "#/components/responses/Connections.NotFound"
101816
+ },
101817
+ "409": {
101818
+ "$ref": "#/components/responses/Connections.NeedsReauth"
101819
+ },
101820
+ "410": {
101821
+ "$ref": "#/components/responses/Connections.ToolChanged"
101822
+ },
101823
+ "422": {
101824
+ "$ref": "#/components/responses/Connections.Invalid"
101825
+ },
101826
+ "428": {
101827
+ "$ref": "#/components/responses/Connections.ApprovalRequired"
101828
+ }
101829
+ },
101830
+ "tags": [
101831
+ "connections"
101832
+ ],
101833
+ "x-genesis-service": "connections",
101834
+ "x-upstream": {
101835
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101836
+ "method": "POST",
101837
+ "path": "/v1/{id}/tools/{tool}/call",
101838
+ "status": "not_deployed"
101839
+ },
101840
+ "x-mcp": true
101841
+ }
101842
+ },
101843
+ "/v1/connections/{id}/activity": {
101844
+ "parameters": [
101845
+ {
101846
+ "$ref": "#/components/parameters/Connections.Id"
101847
+ }
101848
+ ],
101849
+ "get": {
101850
+ "operationId": "connections_activity",
101851
+ "summary": "Read a connection's activity ledger",
101852
+ "description": "Scope `connections:read`. Append-only, hash-chained rows, oldest first; hashes only, never payloads. Page with `after` = `next_after`.",
101853
+ "parameters": [
101854
+ {
101855
+ "name": "after",
101856
+ "in": "query",
101857
+ "required": false,
101858
+ "description": "Return rows with a larger `seq` (default 0)",
101859
+ "schema": {
101860
+ "type": "integer",
101861
+ "minimum": 0
101862
+ }
101863
+ },
101864
+ {
101865
+ "name": "limit",
101866
+ "in": "query",
101867
+ "required": false,
101868
+ "description": "Page size, 1-500 (default 100)",
101869
+ "schema": {
101870
+ "type": "integer",
101871
+ "minimum": 1,
101872
+ "maximum": 500
101873
+ }
101874
+ }
101875
+ ],
101876
+ "responses": {
101877
+ "200": {
101878
+ "description": "Ledger rows",
101879
+ "content": {
101880
+ "application/json": {
101881
+ "schema": {
101882
+ "type": "object",
101883
+ "required": [
101884
+ "data"
101885
+ ],
101886
+ "properties": {
101887
+ "data": {
101888
+ "type": "array",
101889
+ "items": {
101890
+ "$ref": "#/components/schemas/Connections.ActivityRow"
101891
+ }
101892
+ },
101893
+ "next_after": {
101894
+ "type": [
101895
+ "integer",
101896
+ "null"
101897
+ ]
101898
+ }
101899
+ }
101900
+ }
101901
+ }
101902
+ }
101903
+ },
101904
+ "404": {
101905
+ "$ref": "#/components/responses/Connections.NotFound"
101906
+ }
101907
+ },
101908
+ "tags": [
101909
+ "connections"
101910
+ ],
101911
+ "x-genesis-service": "connections",
101912
+ "x-upstream": {
101913
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101914
+ "method": "GET",
101915
+ "path": "/v1/{id}/activity",
101916
+ "status": "not_deployed"
101917
+ },
101918
+ "x-mcp": true
101919
+ }
101920
+ },
101921
+ "/v1/connections/tools": {
101922
+ "get": {
101923
+ "operationId": "connections_searchTools",
101924
+ "summary": "Search the connected tools your organization may call",
101925
+ "description": "Scope `connections:read`. Connected tools of the selected environment whose policy is not `deny`, matched against `q` (at most 100). genesis-mcp's `genesis_search_tools` lists them by `name` (`conn.<connection>.<tool>`). `session_tainted` says whether this principal has read untrusted content.",
101926
+ "parameters": [
101927
+ {
101928
+ "name": "q",
101929
+ "in": "query",
101930
+ "required": false,
101931
+ "description": "Keywords",
101932
+ "schema": {
101933
+ "type": "string",
101934
+ "maxLength": 200
101935
+ }
101936
+ }
101937
+ ],
101938
+ "responses": {
101939
+ "200": {
101940
+ "description": "Matching connected tools",
101941
+ "content": {
101942
+ "application/json": {
101943
+ "schema": {
101944
+ "$ref": "#/components/schemas/Connections.SearchToolsResponse"
101945
+ }
101946
+ }
101947
+ }
101948
+ },
101949
+ "403": {
101950
+ "$ref": "#/components/responses/Connections.Forbidden"
101951
+ }
101952
+ },
101953
+ "tags": [
101954
+ "connections"
101955
+ ],
101956
+ "x-genesis-service": "connections",
101957
+ "x-upstream": {
101958
+ "base": "https://connections-api-808958844152.us-central1.run.app",
101959
+ "method": "GET",
101960
+ "path": "/v1/tools",
101961
+ "status": "not_deployed"
101962
+ },
101963
+ "x-mcp": true
101964
+ }
101965
+ },
101966
+ "/v1/connections/oauth/callback": {
101967
+ "get": {
101968
+ "operationId": "connections_oauthCallback",
101969
+ "summary": "OAuth redirect target for a person's browser (anonymous)",
101970
+ "description": "Human browser only; anonymous. The vendor redirects the person here after consent. The gateway forwards it with no identity envelope and no credential; Connections authenticates it only by the single-use `state` (10 minutes, bound to the connection and its PKCE verifier) and hands the code to Blinds. Not an API for agents.",
101971
+ "parameters": [
101972
+ {
101973
+ "name": "state",
101974
+ "in": "query",
101975
+ "required": false,
101976
+ "schema": {
101977
+ "type": "string",
101978
+ "maxLength": 512
101979
+ }
101980
+ },
101981
+ {
101982
+ "name": "code",
101983
+ "in": "query",
101984
+ "required": false,
101985
+ "schema": {
101986
+ "type": "string",
101987
+ "maxLength": 2048
101988
+ }
101989
+ },
101990
+ {
101991
+ "name": "iss",
101992
+ "in": "query",
101993
+ "required": false,
101994
+ "schema": {
101995
+ "type": "string",
101996
+ "maxLength": 512
101997
+ }
101998
+ },
101999
+ {
102000
+ "name": "error",
102001
+ "in": "query",
102002
+ "required": false,
102003
+ "schema": {
102004
+ "type": "string",
102005
+ "maxLength": 256
102006
+ }
102007
+ },
102008
+ {
102009
+ "name": "error_description",
102010
+ "in": "query",
102011
+ "required": false,
102012
+ "schema": {
102013
+ "type": "string",
102014
+ "maxLength": 1024
102015
+ }
102016
+ }
102017
+ ],
102018
+ "responses": {
102019
+ "200": {
102020
+ "description": "A page telling the person the connection is ready (or what failed)",
102021
+ "content": {
102022
+ "text/html": {
102023
+ "schema": {
102024
+ "type": "string"
102025
+ }
102026
+ }
102027
+ }
102028
+ },
102029
+ "400": {
102030
+ "description": "Unknown, used or expired state",
102031
+ "content": {
102032
+ "text/html": {
102033
+ "schema": {
102034
+ "type": "string"
102035
+ }
102036
+ }
102037
+ }
102038
+ }
102039
+ },
102040
+ "tags": [
102041
+ "connections"
102042
+ ],
102043
+ "security": [],
102044
+ "x-genesis-service": "connections",
102045
+ "x-upstream": {
102046
+ "base": "https://connections-api-808958844152.us-central1.run.app",
102047
+ "method": "GET",
102048
+ "path": "/v1/oauth/callback",
102049
+ "status": "not_deployed"
102050
+ },
102051
+ "x-mcp": false
102052
+ }
101548
102053
  }
101549
102054
  },
101550
102055
  "components": {
@@ -105260,39 +105765,6 @@
105260
105765
  }
105261
105766
  }
105262
105767
  },
105263
- "Hives.CreateSsoConnectionRequest": {
105264
- "type": "object",
105265
- "required": [
105266
- "name"
105267
- ],
105268
- "properties": {
105269
- "idp_type": {
105270
- "type": [
105271
- "string",
105272
- "null"
105273
- ],
105274
- "description": "IdP type hint"
105275
- },
105276
- "metadata_raw": {
105277
- "type": [
105278
- "string",
105279
- "null"
105280
- ],
105281
- "description": "Raw IdP metadata XML (alternative to URL)"
105282
- },
105283
- "metadata_url": {
105284
- "type": [
105285
- "string",
105286
- "null"
105287
- ],
105288
- "description": "IdP metadata URL (e.g. Okta, Azure AD metadata endpoint)"
105289
- },
105290
- "name": {
105291
- "type": "string",
105292
- "description": "Connection name/label"
105293
- }
105294
- }
105295
- },
105296
105768
  "Hives.CreateTerminalSessionRequest": {
105297
105769
  "type": "object",
105298
105770
  "description": "Create terminal session request",
@@ -157015,6 +157487,842 @@
157015
157487
  }
157016
157488
  }
157017
157489
  }
157490
+ },
157491
+ "Connections.Tier": {
157492
+ "type": "string",
157493
+ "enum": [
157494
+ "verified",
157495
+ "suspended",
157496
+ "pending"
157497
+ ]
157498
+ },
157499
+ "Connections.Effect": {
157500
+ "type": "string",
157501
+ "enum": [
157502
+ "read",
157503
+ "write",
157504
+ "send",
157505
+ "spend",
157506
+ "destructive"
157507
+ ]
157508
+ },
157509
+ "Connections.Mode": {
157510
+ "type": "string",
157511
+ "enum": [
157512
+ "allow",
157513
+ "approve",
157514
+ "deny"
157515
+ ]
157516
+ },
157517
+ "Connections.ConnectionStatus": {
157518
+ "type": "string",
157519
+ "enum": [
157520
+ "pending_auth",
157521
+ "active",
157522
+ "needs_reauth",
157523
+ "revoked"
157524
+ ]
157525
+ },
157526
+ "Connections.Error": {
157527
+ "type": "object",
157528
+ "required": [
157529
+ "error"
157530
+ ],
157531
+ "description": "Codes include TOOL_DENIED, AUTHORITY_DENIED (with `reasons`), APPROVAL_UNAVAILABLE (403), TOOL_CHANGED_PENDING_REVIEW (410), APPROVAL_CONSUMED, APPROVAL_NOT_APPROVED, APPROVAL_MISMATCH, revoked, conflict (409) and invalid (422).",
157532
+ "properties": {
157533
+ "error": {
157534
+ "type": "object",
157535
+ "required": [
157536
+ "code",
157537
+ "message"
157538
+ ],
157539
+ "properties": {
157540
+ "code": {
157541
+ "type": "string"
157542
+ },
157543
+ "message": {
157544
+ "type": "string"
157545
+ },
157546
+ "request_id": {
157547
+ "type": "string"
157548
+ }
157549
+ }
157550
+ },
157551
+ "reasons": {
157552
+ "type": "array",
157553
+ "items": {},
157554
+ "description": "Auto's reasons on 403 AUTHORITY_DENIED"
157555
+ },
157556
+ "auto_check_id": {
157557
+ "type": "string"
157558
+ }
157559
+ }
157560
+ },
157561
+ "Connections.ApprovalRequired": {
157562
+ "type": "object",
157563
+ "required": [
157564
+ "error",
157565
+ "approval_request_id",
157566
+ "poll_url",
157567
+ "expires_at"
157568
+ ],
157569
+ "properties": {
157570
+ "error": {
157571
+ "type": "object",
157572
+ "required": [
157573
+ "code",
157574
+ "message"
157575
+ ],
157576
+ "properties": {
157577
+ "code": {
157578
+ "type": "string",
157579
+ "const": "APPROVAL_REQUIRED"
157580
+ },
157581
+ "message": {
157582
+ "type": "string"
157583
+ },
157584
+ "request_id": {
157585
+ "type": "string"
157586
+ }
157587
+ }
157588
+ },
157589
+ "approval_request_id": {
157590
+ "type": "string",
157591
+ "pattern": "^apr_[0-9a-f]{32}$"
157592
+ },
157593
+ "poll_url": {
157594
+ "type": "string",
157595
+ "description": "Read the approval here, e.g. /v1/auto/approvals/apr_…"
157596
+ },
157597
+ "expires_at": {
157598
+ "type": [
157599
+ "string",
157600
+ "null"
157601
+ ],
157602
+ "format": "date-time"
157603
+ }
157604
+ }
157605
+ },
157606
+ "Connections.NeedsReauth": {
157607
+ "type": "object",
157608
+ "required": [
157609
+ "error",
157610
+ "authorize_url"
157611
+ ],
157612
+ "properties": {
157613
+ "error": {
157614
+ "type": "object",
157615
+ "required": [
157616
+ "code",
157617
+ "message"
157618
+ ],
157619
+ "properties": {
157620
+ "code": {
157621
+ "type": "string",
157622
+ "const": "CONNECTION_NEEDS_REAUTH"
157623
+ },
157624
+ "message": {
157625
+ "type": "string"
157626
+ },
157627
+ "request_id": {
157628
+ "type": "string"
157629
+ }
157630
+ }
157631
+ },
157632
+ "authorize_url": {
157633
+ "type": "string",
157634
+ "format": "uri",
157635
+ "description": "A person opens this to re-authorize"
157636
+ }
157637
+ }
157638
+ },
157639
+ "Connections.Source": {
157640
+ "type": "object",
157641
+ "properties": {
157642
+ "connection": {
157643
+ "type": "string"
157644
+ },
157645
+ "server": {
157646
+ "type": "string"
157647
+ },
157648
+ "tool": {
157649
+ "type": "string"
157650
+ },
157651
+ "tier": {
157652
+ "$ref": "#/components/schemas/Connections.Tier"
157653
+ }
157654
+ }
157655
+ },
157656
+ "Connections.UntrustedText": {
157657
+ "type": "object",
157658
+ "description": "A vendor-written text (a tool description), sanitized and flagged. Data, never instructions.",
157659
+ "required": [
157660
+ "untrusted",
157661
+ "text"
157662
+ ],
157663
+ "properties": {
157664
+ "untrusted": {
157665
+ "type": "boolean",
157666
+ "const": true
157667
+ },
157668
+ "source": {
157669
+ "$ref": "#/components/schemas/Connections.Source"
157670
+ },
157671
+ "text": {
157672
+ "type": "string"
157673
+ },
157674
+ "sanitized": {
157675
+ "type": "integer",
157676
+ "minimum": 0
157677
+ },
157678
+ "flags": {
157679
+ "type": "array",
157680
+ "items": {
157681
+ "type": "string"
157682
+ }
157683
+ }
157684
+ }
157685
+ },
157686
+ "Connections.UntrustedResult": {
157687
+ "type": "object",
157688
+ "description": "A tool's output (MCP content blocks), sanitized, credential-redacted and flagged. Third-party data, never instructions.",
157689
+ "required": [
157690
+ "untrusted",
157691
+ "source",
157692
+ "content"
157693
+ ],
157694
+ "properties": {
157695
+ "untrusted": {
157696
+ "type": "boolean",
157697
+ "const": true
157698
+ },
157699
+ "source": {
157700
+ "$ref": "#/components/schemas/Connections.Source"
157701
+ },
157702
+ "flags": {
157703
+ "type": "array",
157704
+ "items": {
157705
+ "type": "string"
157706
+ }
157707
+ },
157708
+ "sanitized": {
157709
+ "type": "integer",
157710
+ "minimum": 0
157711
+ },
157712
+ "credentials_redacted": {
157713
+ "type": "integer",
157714
+ "minimum": 0
157715
+ },
157716
+ "truncated": {
157717
+ "type": "boolean"
157718
+ },
157719
+ "content": {
157720
+ "type": "array",
157721
+ "items": {}
157722
+ },
157723
+ "structuredContent": {},
157724
+ "isError": {
157725
+ "type": "boolean"
157726
+ }
157727
+ }
157728
+ },
157729
+ "Connections.CatalogServer": {
157730
+ "type": "object",
157731
+ "required": [
157732
+ "id",
157733
+ "display",
157734
+ "tier"
157735
+ ],
157736
+ "properties": {
157737
+ "id": {
157738
+ "type": "string"
157739
+ },
157740
+ "vendor": {
157741
+ "type": "string"
157742
+ },
157743
+ "display": {
157744
+ "type": "string"
157745
+ },
157746
+ "plugins": {
157747
+ "type": "array",
157748
+ "items": {
157749
+ "type": "string"
157750
+ }
157751
+ },
157752
+ "url": {
157753
+ "type": "string"
157754
+ },
157755
+ "docs": {
157756
+ "type": "string"
157757
+ },
157758
+ "auth": {
157759
+ "type": "string"
157760
+ },
157761
+ "tier": {
157762
+ "$ref": "#/components/schemas/Connections.Tier"
157763
+ },
157764
+ "reason": {
157765
+ "type": [
157766
+ "string",
157767
+ "null"
157768
+ ],
157769
+ "description": "Why a suspended server is paused"
157770
+ },
157771
+ "tools": {
157772
+ "type": "integer",
157773
+ "description": "Number of tools in the pinned manifest"
157774
+ }
157775
+ }
157776
+ },
157777
+ "Connections.CatalogTool": {
157778
+ "type": "object",
157779
+ "required": [
157780
+ "name",
157781
+ "effect"
157782
+ ],
157783
+ "properties": {
157784
+ "name": {
157785
+ "type": "string"
157786
+ },
157787
+ "effect": {
157788
+ "$ref": "#/components/schemas/Connections.Effect"
157789
+ },
157790
+ "scopes": {
157791
+ "type": "array",
157792
+ "items": {
157793
+ "type": "string"
157794
+ }
157795
+ },
157796
+ "description": {
157797
+ "$ref": "#/components/schemas/Connections.UntrustedText"
157798
+ }
157799
+ }
157800
+ },
157801
+ "Connections.CatalogServerDetail": {
157802
+ "type": "object",
157803
+ "required": [
157804
+ "id",
157805
+ "display",
157806
+ "tier",
157807
+ "tools"
157808
+ ],
157809
+ "properties": {
157810
+ "id": {
157811
+ "type": "string"
157812
+ },
157813
+ "vendor": {
157814
+ "type": "string"
157815
+ },
157816
+ "display": {
157817
+ "type": "string"
157818
+ },
157819
+ "plugins": {
157820
+ "type": "array",
157821
+ "items": {
157822
+ "type": "string"
157823
+ }
157824
+ },
157825
+ "url": {
157826
+ "type": "string"
157827
+ },
157828
+ "docs": {
157829
+ "type": "string"
157830
+ },
157831
+ "auth": {
157832
+ "type": "string"
157833
+ },
157834
+ "tier": {
157835
+ "$ref": "#/components/schemas/Connections.Tier"
157836
+ },
157837
+ "reason": {
157838
+ "type": [
157839
+ "string",
157840
+ "null"
157841
+ ]
157842
+ },
157843
+ "manifest_sha256": {
157844
+ "type": [
157845
+ "string",
157846
+ "null"
157847
+ ]
157848
+ },
157849
+ "tools": {
157850
+ "type": "array",
157851
+ "items": {
157852
+ "$ref": "#/components/schemas/Connections.CatalogTool"
157853
+ }
157854
+ }
157855
+ }
157856
+ },
157857
+ "Connections.Connection": {
157858
+ "type": "object",
157859
+ "required": [
157860
+ "id",
157861
+ "server",
157862
+ "status"
157863
+ ],
157864
+ "properties": {
157865
+ "id": {
157866
+ "type": "string",
157867
+ "pattern": "^conn_[0-9a-f]{32}$"
157868
+ },
157869
+ "server": {
157870
+ "type": "string"
157871
+ },
157872
+ "url": {
157873
+ "type": "string"
157874
+ },
157875
+ "status": {
157876
+ "$ref": "#/components/schemas/Connections.ConnectionStatus"
157877
+ },
157878
+ "auto_org": {
157879
+ "type": [
157880
+ "string",
157881
+ "null"
157882
+ ],
157883
+ "description": "The Auto org that governs the connection, if one was named at connect"
157884
+ },
157885
+ "tier": {
157886
+ "$ref": "#/components/schemas/Connections.Tier"
157887
+ },
157888
+ "server_status": {
157889
+ "$ref": "#/components/schemas/Connections.Tier"
157890
+ },
157891
+ "policy": {
157892
+ "type": "object",
157893
+ "additionalProperties": {
157894
+ "$ref": "#/components/schemas/Connections.Mode"
157895
+ }
157896
+ },
157897
+ "scopes_requested": {
157898
+ "type": "array",
157899
+ "items": {
157900
+ "type": "string"
157901
+ }
157902
+ },
157903
+ "scopes_granted": {
157904
+ "type": "array",
157905
+ "items": {
157906
+ "type": "string"
157907
+ }
157908
+ },
157909
+ "token_expires_at": {
157910
+ "type": [
157911
+ "string",
157912
+ "null"
157913
+ ],
157914
+ "format": "date-time"
157915
+ },
157916
+ "created_by": {
157917
+ "type": "string"
157918
+ },
157919
+ "created_at": {
157920
+ "type": "string",
157921
+ "format": "date-time"
157922
+ },
157923
+ "updated_at": {
157924
+ "type": "string",
157925
+ "format": "date-time"
157926
+ },
157927
+ "revoked_at": {
157928
+ "type": [
157929
+ "string",
157930
+ "null"
157931
+ ],
157932
+ "format": "date-time"
157933
+ }
157934
+ }
157935
+ },
157936
+ "Connections.ConnectRequest": {
157937
+ "type": "object",
157938
+ "required": [
157939
+ "server"
157940
+ ],
157941
+ "additionalProperties": false,
157942
+ "properties": {
157943
+ "server": {
157944
+ "type": "string",
157945
+ "pattern": "^[a-z0-9-]{1,64}$"
157946
+ },
157947
+ "tools": {
157948
+ "type": "array",
157949
+ "maxItems": 500,
157950
+ "items": {
157951
+ "type": "string",
157952
+ "pattern": "^[A-Za-z0-9_.-]{1,128}$"
157953
+ },
157954
+ "description": "Tools to enable (default: the manifest defaults)"
157955
+ },
157956
+ "auto_org": {
157957
+ "type": "string",
157958
+ "pattern": "^aorg_[a-f0-9]{32}$",
157959
+ "description": "The Auto org that governs the connection. A connect carrying it always answers 428 APPROVAL_REQUIRED first."
157960
+ }
157961
+ }
157962
+ },
157963
+ "Connections.ConnectResponse": {
157964
+ "type": "object",
157965
+ "required": [
157966
+ "connection",
157967
+ "authorize_url"
157968
+ ],
157969
+ "properties": {
157970
+ "connection": {
157971
+ "$ref": "#/components/schemas/Connections.Connection"
157972
+ },
157973
+ "authorize_url": {
157974
+ "type": "string",
157975
+ "format": "uri",
157976
+ "description": "A person opens this to consent at the vendor"
157977
+ },
157978
+ "next": {
157979
+ "type": "string"
157980
+ }
157981
+ }
157982
+ },
157983
+ "Connections.AuthorizeResponse": {
157984
+ "type": "object",
157985
+ "required": [
157986
+ "authorize_url"
157987
+ ],
157988
+ "properties": {
157989
+ "authorize_url": {
157990
+ "type": "string",
157991
+ "format": "uri"
157992
+ },
157993
+ "next": {
157994
+ "type": "string"
157995
+ }
157996
+ }
157997
+ },
157998
+ "Connections.ConnectionTool": {
157999
+ "type": "object",
158000
+ "required": [
158001
+ "name",
158002
+ "effect",
158003
+ "mode"
158004
+ ],
158005
+ "properties": {
158006
+ "name": {
158007
+ "type": "string"
158008
+ },
158009
+ "effect": {
158010
+ "$ref": "#/components/schemas/Connections.Effect"
158011
+ },
158012
+ "mode": {
158013
+ "$ref": "#/components/schemas/Connections.Mode"
158014
+ },
158015
+ "stored_mode": {
158016
+ "$ref": "#/components/schemas/Connections.Mode"
158017
+ },
158018
+ "scopes": {
158019
+ "type": "array",
158020
+ "items": {
158021
+ "type": "string"
158022
+ }
158023
+ },
158024
+ "description": {
158025
+ "$ref": "#/components/schemas/Connections.UntrustedText"
158026
+ },
158027
+ "inputSchema": {},
158028
+ "schema_flags": {
158029
+ "type": "array",
158030
+ "items": {
158031
+ "type": "string"
158032
+ }
158033
+ }
158034
+ }
158035
+ },
158036
+ "Connections.ToolList": {
158037
+ "type": "object",
158038
+ "required": [
158039
+ "connection",
158040
+ "server",
158041
+ "tools"
158042
+ ],
158043
+ "properties": {
158044
+ "connection": {
158045
+ "type": "string"
158046
+ },
158047
+ "server": {
158048
+ "type": "string"
158049
+ },
158050
+ "tier": {
158051
+ "$ref": "#/components/schemas/Connections.Tier"
158052
+ },
158053
+ "server_status": {
158054
+ "$ref": "#/components/schemas/Connections.Tier"
158055
+ },
158056
+ "manifest_sha256": {
158057
+ "type": [
158058
+ "string",
158059
+ "null"
158060
+ ]
158061
+ },
158062
+ "tools": {
158063
+ "type": "array",
158064
+ "items": {
158065
+ "$ref": "#/components/schemas/Connections.ConnectionTool"
158066
+ }
158067
+ }
158068
+ }
158069
+ },
158070
+ "Connections.ToolPolicyRequest": {
158071
+ "type": "object",
158072
+ "required": [
158073
+ "tools"
158074
+ ],
158075
+ "additionalProperties": false,
158076
+ "properties": {
158077
+ "tools": {
158078
+ "type": "object",
158079
+ "maxProperties": 500,
158080
+ "additionalProperties": {
158081
+ "$ref": "#/components/schemas/Connections.Mode"
158082
+ },
158083
+ "description": "Tool name to mode, e.g. {\"create_issue\": \"approve\"}"
158084
+ }
158085
+ }
158086
+ },
158087
+ "Connections.ToolPolicyResponse": {
158088
+ "type": "object",
158089
+ "required": [
158090
+ "connection",
158091
+ "changed"
158092
+ ],
158093
+ "properties": {
158094
+ "connection": {
158095
+ "$ref": "#/components/schemas/Connections.Connection"
158096
+ },
158097
+ "changed": {
158098
+ "type": "array",
158099
+ "items": {
158100
+ "type": "object",
158101
+ "properties": {
158102
+ "name": {
158103
+ "type": "string"
158104
+ },
158105
+ "effect": {
158106
+ "$ref": "#/components/schemas/Connections.Effect"
158107
+ },
158108
+ "from": {
158109
+ "$ref": "#/components/schemas/Connections.Mode"
158110
+ },
158111
+ "to": {
158112
+ "$ref": "#/components/schemas/Connections.Mode"
158113
+ }
158114
+ }
158115
+ }
158116
+ },
158117
+ "reauthorize": {
158118
+ "type": "object",
158119
+ "properties": {
158120
+ "missing_scopes": {
158121
+ "type": "array",
158122
+ "items": {
158123
+ "type": "string"
158124
+ }
158125
+ },
158126
+ "authorize_url": {
158127
+ "type": "string",
158128
+ "format": "uri"
158129
+ }
158130
+ }
158131
+ }
158132
+ }
158133
+ },
158134
+ "Connections.CallRequest": {
158135
+ "type": "object",
158136
+ "required": [
158137
+ "arguments"
158138
+ ],
158139
+ "additionalProperties": false,
158140
+ "properties": {
158141
+ "arguments": {
158142
+ "type": "object",
158143
+ "additionalProperties": true,
158144
+ "description": "The tool's arguments, as its inputSchema describes"
158145
+ }
158146
+ }
158147
+ },
158148
+ "Connections.CallResult": {
158149
+ "type": "object",
158150
+ "required": [
158151
+ "call_id",
158152
+ "outcome",
158153
+ "result"
158154
+ ],
158155
+ "properties": {
158156
+ "call_id": {
158157
+ "type": "string"
158158
+ },
158159
+ "outcome": {
158160
+ "type": "string",
158161
+ "enum": [
158162
+ "ok",
158163
+ "tool_error"
158164
+ ]
158165
+ },
158166
+ "result": {
158167
+ "$ref": "#/components/schemas/Connections.UntrustedResult"
158168
+ },
158169
+ "auto_check_id": {
158170
+ "type": [
158171
+ "string",
158172
+ "null"
158173
+ ]
158174
+ },
158175
+ "auto_receipt": {
158176
+ "type": [
158177
+ "string",
158178
+ "null"
158179
+ ],
158180
+ "description": "Auto's signed receipt (JWS)"
158181
+ },
158182
+ "approval_id": {
158183
+ "type": [
158184
+ "string",
158185
+ "null"
158186
+ ]
158187
+ }
158188
+ }
158189
+ },
158190
+ "Connections.RevokeResponse": {
158191
+ "type": "object",
158192
+ "required": [
158193
+ "connection"
158194
+ ],
158195
+ "properties": {
158196
+ "connection": {
158197
+ "$ref": "#/components/schemas/Connections.Connection"
158198
+ },
158199
+ "vendor_revoked": {
158200
+ "type": "boolean"
158201
+ },
158202
+ "tokens_deleted": {
158203
+ "type": "boolean"
158204
+ }
158205
+ }
158206
+ },
158207
+ "Connections.ActivityRow": {
158208
+ "type": "object",
158209
+ "required": [
158210
+ "seq",
158211
+ "kind",
158212
+ "outcome",
158213
+ "hash"
158214
+ ],
158215
+ "additionalProperties": true,
158216
+ "properties": {
158217
+ "seq": {
158218
+ "type": "integer"
158219
+ },
158220
+ "at": {
158221
+ "type": "string",
158222
+ "format": "date-time"
158223
+ },
158224
+ "kind": {
158225
+ "type": "string"
158226
+ },
158227
+ "connection_id": {
158228
+ "type": [
158229
+ "string",
158230
+ "null"
158231
+ ]
158232
+ },
158233
+ "principal": {
158234
+ "type": [
158235
+ "string",
158236
+ "null"
158237
+ ]
158238
+ },
158239
+ "tool": {
158240
+ "type": [
158241
+ "string",
158242
+ "null"
158243
+ ]
158244
+ },
158245
+ "args_sha256": {
158246
+ "type": [
158247
+ "string",
158248
+ "null"
158249
+ ]
158250
+ },
158251
+ "result_sha256": {
158252
+ "type": [
158253
+ "string",
158254
+ "null"
158255
+ ]
158256
+ },
158257
+ "outcome": {
158258
+ "type": "string"
158259
+ },
158260
+ "prev_hash": {
158261
+ "type": "string"
158262
+ },
158263
+ "hash": {
158264
+ "type": "string"
158265
+ }
158266
+ }
158267
+ },
158268
+ "Connections.ConnectedTool": {
158269
+ "type": "object",
158270
+ "required": [
158271
+ "name",
158272
+ "connection",
158273
+ "server",
158274
+ "tool",
158275
+ "effect"
158276
+ ],
158277
+ "properties": {
158278
+ "name": {
158279
+ "type": "string",
158280
+ "description": "conn.<connection>.<tool>"
158281
+ },
158282
+ "connection": {
158283
+ "type": "string",
158284
+ "pattern": "^conn_[0-9a-f]{32}$"
158285
+ },
158286
+ "server": {
158287
+ "type": "string"
158288
+ },
158289
+ "tool": {
158290
+ "type": "string"
158291
+ },
158292
+ "effect": {
158293
+ "$ref": "#/components/schemas/Connections.Effect"
158294
+ },
158295
+ "mode": {
158296
+ "$ref": "#/components/schemas/Connections.Mode"
158297
+ },
158298
+ "description": {
158299
+ "$ref": "#/components/schemas/Connections.UntrustedText"
158300
+ },
158301
+ "inputSchema": {},
158302
+ "schema_flags": {
158303
+ "type": "array",
158304
+ "items": {
158305
+ "type": "string"
158306
+ }
158307
+ }
158308
+ }
158309
+ },
158310
+ "Connections.SearchToolsResponse": {
158311
+ "type": "object",
158312
+ "required": [
158313
+ "data"
158314
+ ],
158315
+ "properties": {
158316
+ "data": {
158317
+ "type": "array",
158318
+ "items": {
158319
+ "$ref": "#/components/schemas/Connections.ConnectedTool"
158320
+ }
158321
+ },
158322
+ "session_tainted": {
158323
+ "type": "boolean"
158324
+ }
158325
+ }
157018
158326
  }
157019
158327
  },
157020
158328
  "responses": {
@@ -157593,6 +158901,76 @@
157593
158901
  }
157594
158902
  }
157595
158903
  }
158904
+ },
158905
+ "Connections.Forbidden": {
158906
+ "description": "Missing scope; `TOOL_DENIED` (policy deny or not in the manifest); `AUTHORITY_DENIED` with `reasons` (Auto denied); `APPROVAL_UNAVAILABLE` (an approval is needed but the org has no Auto org)",
158907
+ "content": {
158908
+ "application/json": {
158909
+ "schema": {
158910
+ "$ref": "#/components/schemas/Connections.Error"
158911
+ }
158912
+ }
158913
+ }
158914
+ },
158915
+ "Connections.NotFound": {
158916
+ "description": "Not found in your organization and environment",
158917
+ "content": {
158918
+ "application/json": {
158919
+ "schema": {
158920
+ "$ref": "#/components/schemas/Connections.Error"
158921
+ }
158922
+ }
158923
+ }
158924
+ },
158925
+ "Connections.Conflict": {
158926
+ "description": "`revoked`, `conflict` (the policy changed meanwhile), or an approval refusal: `APPROVAL_CONSUMED`, `APPROVAL_NOT_APPROVED`, `APPROVAL_MISMATCH`",
158927
+ "content": {
158928
+ "application/json": {
158929
+ "schema": {
158930
+ "$ref": "#/components/schemas/Connections.Error"
158931
+ }
158932
+ }
158933
+ }
158934
+ },
158935
+ "Connections.NeedsReauth": {
158936
+ "description": "`CONNECTION_NEEDS_REAUTH`: a person opens the fresh `authorize_url` (an approval refusal or `revoked` is also a 409, without it)",
158937
+ "content": {
158938
+ "application/json": {
158939
+ "schema": {
158940
+ "$ref": "#/components/schemas/Connections.NeedsReauth"
158941
+ }
158942
+ }
158943
+ }
158944
+ },
158945
+ "Connections.ToolChanged": {
158946
+ "description": "`TOOL_CHANGED_PENDING_REVIEW`: the server's live tools differ from its pinned manifest; it is suspended for every organization until re-verified",
158947
+ "content": {
158948
+ "application/json": {
158949
+ "schema": {
158950
+ "$ref": "#/components/schemas/Connections.Error"
158951
+ }
158952
+ }
158953
+ }
158954
+ },
158955
+ "Connections.Invalid": {
158956
+ "description": "Invalid request body or parameters",
158957
+ "content": {
158958
+ "application/json": {
158959
+ "schema": {
158960
+ "$ref": "#/components/schemas/Connections.Error"
158961
+ }
158962
+ }
158963
+ }
158964
+ },
158965
+ "Connections.ApprovalRequired": {
158966
+ "description": "`APPROVAL_REQUIRED`: a human approves `approval_request_id` in Auto; then retry the same request with `OneOS-Approval`",
158967
+ "content": {
158968
+ "application/json": {
158969
+ "schema": {
158970
+ "$ref": "#/components/schemas/Connections.ApprovalRequired"
158971
+ }
158972
+ }
158973
+ }
157596
158974
  }
157597
158975
  },
157598
158976
  "parameters": {
@@ -158718,6 +160096,46 @@
158718
160096
  "maxLength": 256
158719
160097
  },
158720
160098
  "description": "Stable key; a retry with it returns the original decision instead of creating another"
160099
+ },
160100
+ "Connections.Id": {
160101
+ "name": "id",
160102
+ "in": "path",
160103
+ "required": true,
160104
+ "description": "Connection id (conn_ followed by 32 hex)",
160105
+ "schema": {
160106
+ "type": "string",
160107
+ "pattern": "^conn_[0-9a-f]{32}$"
160108
+ }
160109
+ },
160110
+ "Connections.Server": {
160111
+ "name": "server",
160112
+ "in": "path",
160113
+ "required": true,
160114
+ "description": "Catalog server id, e.g. linear, neon, sentry",
160115
+ "schema": {
160116
+ "type": "string",
160117
+ "pattern": "^[a-z0-9-]{1,64}$"
160118
+ }
160119
+ },
160120
+ "Connections.Tool": {
160121
+ "name": "tool",
160122
+ "in": "path",
160123
+ "required": true,
160124
+ "description": "The tool's name in the pinned manifest",
160125
+ "schema": {
160126
+ "type": "string",
160127
+ "pattern": "^[A-Za-z0-9_.-]{1,128}$"
160128
+ }
160129
+ },
160130
+ "Connections.Approval": {
160131
+ "name": "OneOS-Approval",
160132
+ "in": "header",
160133
+ "required": false,
160134
+ "description": "An approved approval id (`apr_…`) from an earlier 428, to retry the same request",
160135
+ "schema": {
160136
+ "type": "string",
160137
+ "pattern": "^apr_[0-9a-f]{32}$"
160138
+ }
158721
160139
  }
158722
160140
  },
158723
160141
  "headers": {
@@ -158754,7 +160172,7 @@
158754
160172
  "upstream": "https://api.fdy.sh",
158755
160173
  "status": "live",
158756
160174
  "statusNote": "api.fdy.sh answered in the Oct 9 inventory probe",
158757
- "operations": 116
160175
+ "operations": 115
158758
160176
  },
158759
160177
  {
158760
160178
  "name": "hives",
@@ -158762,7 +160180,7 @@
158762
160180
  "upstream": "https://api.hives.sh",
158763
160181
  "status": "down",
158764
160182
  "statusNote": "api.hives.sh returned 503 (audit G-LIVE-1); spec misses 35 console-called paths (G-SPEC-1)",
158765
- "operations": 198
160183
+ "operations": 195
158766
160184
  },
158767
160185
  {
158768
160186
  "name": "relays",
@@ -158994,6 +160412,15 @@
158994
160412
  "statusNote": "Org API keys and One account logins with a selected project (gateway/src/brews-transport.ts). Sandbox. Omit scope: Brews fills it from the selection. Run, eval and bench answer 503 BREWS_E_METERING_UNAVAILABLE.",
158995
160413
  "gatewayRoute": "dedicated",
158996
160414
  "operations": 22
160415
+ },
160416
+ {
160417
+ "name": "connections",
160418
+ "title": "Connections (verified remote MCP servers)",
160419
+ "upstream": "https://connections-api-808958844152.us-central1.run.app",
160420
+ "status": "not_deployed",
160421
+ "statusNote": "Closed gateway admission behind CONNECTIONS_GATEWAY_ENABLED (default off): /v1/connections/* with a v2 signed identity and selected context (API key, M2M token or login session); connections:read for GET, connections:write otherwise, connections:* both. Sandbox in P0; Live only through UPSTREAM_CONNECTIONS_LIVE once connections is in GENESIS_LIVE_SERVICES. GET /v1/connections/oauth/callback is anonymous (a person's browser after vendor consent): no credential is read or forwarded and no identity envelope is sent. connections_authorize is a human-consent operation the hosted MCP refuses. Tool results and vendor descriptions are wrapped as untrusted. Vendor tokens live in Blinds only.",
160422
+ "gatewayRoute": "dedicated",
160423
+ "operations": 13
158997
160424
  }
158998
160425
  ]
158999
160426
  }