@ornncompute/cli 1.0.135 → 1.0.137
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/vendor/capabilities/cli.js +19 -165
package/package.json
CHANGED
|
@@ -375,7 +375,6 @@ var adminSshCapability = defineCapability({
|
|
|
375
375
|
roles: ["admin"],
|
|
376
376
|
description: "Open staff SSH using a temporary local key and a short-lived node certificate.",
|
|
377
377
|
mutation: "local",
|
|
378
|
-
http: { method: "POST", path: "/v1/orchestrator/nodes/{node_id}/ssh-certificates" },
|
|
379
378
|
mcp: false,
|
|
380
379
|
slack: false,
|
|
381
380
|
cli: {
|
|
@@ -670,7 +669,6 @@ var listFacilitiesCapability = defineCapability({
|
|
|
670
669
|
roles: ["admin"],
|
|
671
670
|
description: "List facilities (id, display name, region, supplier organization id). Optional organization_id filter. When nextCursor is present, pass it back as cursor for the next page. Use facilities.show to resolve one facility id.",
|
|
672
671
|
mutation: "read",
|
|
673
|
-
http: { method: "GET", path: "/internal/v1/facilities" },
|
|
674
672
|
slack: {
|
|
675
673
|
parameters: {
|
|
676
674
|
type: "object",
|
|
@@ -709,7 +707,6 @@ var facilityShowCapability = defineCapability({
|
|
|
709
707
|
roles: ["admin"],
|
|
710
708
|
description: "Resolve one facility id (e.g. a listing's facilityId) to its display name, region and status.",
|
|
711
709
|
mutation: "read",
|
|
712
|
-
http: { method: "GET", path: "/internal/v1/facilities/{facilityId}" },
|
|
713
710
|
cli: false,
|
|
714
711
|
slack: {
|
|
715
712
|
parameters: {
|
|
@@ -732,7 +729,6 @@ var listNodesCapability = defineCapability({
|
|
|
732
729
|
roles: ["user", "admin"],
|
|
733
730
|
description: "List nodes. Users see their own reserved machines. Admins see enrolled and ghost nodes. Call with no filters for the whole fleet. Optional reservation_id lists the nodes on one reservation (find a customer's reservations with reservation.list customerId). Optional organization_id (supplier), facility_id, and status (ghost, bare-metal) narrow the same list. Paginate large fleets with cursor + max: pass the response's next_cursor back as cursor to fetch the next page; next_cursor is omitted once the page is not full. Never invent nodes. Never print private keys.",
|
|
734
731
|
mutation: "read",
|
|
735
|
-
http: { method: "GET", path: "/nodes" },
|
|
736
732
|
slack: {
|
|
737
733
|
parameters: {
|
|
738
734
|
type: "object",
|
|
@@ -790,7 +786,6 @@ var nodeExecCapability = defineCapability({
|
|
|
790
786
|
roles: ["admin"],
|
|
791
787
|
description: "Admin-only. Run one unrestricted command over orchestrator SSH. Pass node_id for an enrolled node (uses its stored admin key), or host + private_key (+ optional username, default root, and port, default 22) for any host, including one not enrolled yet. Always pass timeout_seconds. Not an interactive shell. On NVIDIA hosts use nvidia-smi; on AMD Instinct use amd-smi. Runs on the tool call \u2014 no confirm, no y/N.",
|
|
792
788
|
mutation: "immediate",
|
|
793
|
-
http: { method: "POST", path: "/v1/staff/remote" },
|
|
794
789
|
slack: {
|
|
795
790
|
parameters: {
|
|
796
791
|
type: "object",
|
|
@@ -821,7 +816,6 @@ var nodeTerminateCapability = defineCapability({
|
|
|
821
816
|
roles: ["admin"],
|
|
822
817
|
description: "Admin-only. Mark a node terminated and clear its assignment once no undeleted VM remains on it. Does no host cleanup. There is no deenroll verb. Slack waits for a human confirm. ",
|
|
823
818
|
mutation: "preview-confirm",
|
|
824
|
-
http: { method: "POST", path: "/v1/orchestrator/nodes/{id}/terminate" },
|
|
825
819
|
cli: {
|
|
826
820
|
command: ["admin", "nodes", "terminate"],
|
|
827
821
|
vnext: {
|
|
@@ -962,7 +956,6 @@ var telemetryLatestCapability = defineCapability({
|
|
|
962
956
|
roles: ["user", "admin"],
|
|
963
957
|
description: "One-shot telemetry window for one node (start/end or span plus max_points). Users may only query a reserved machine. Admins may query any enrolled node. Pass a node UUID. Use this for heartbeat / last-seen / public_ip. Not a live stream.",
|
|
964
958
|
mutation: "read",
|
|
965
|
-
http: { method: "GET", path: "/v1/observability/nodes/{id}/telemetry/query" },
|
|
966
959
|
slack: {
|
|
967
960
|
parameters: {
|
|
968
961
|
type: "object",
|
|
@@ -999,7 +992,6 @@ var telemetryLatestBatchCapability = defineCapability({
|
|
|
999
992
|
roles: ["user", "admin"],
|
|
1000
993
|
description: "Latest telemetry tip (last heartbeat, public_ip, GPU/CPU/memory utilization) for up to 100 nodes in one call. Prefer this over telemetry_latest per node when checking several nodes.",
|
|
1001
994
|
mutation: "read",
|
|
1002
|
-
http: { method: "POST", path: "/v1/observability/nodes/telemetry/latest" },
|
|
1003
995
|
cli: false,
|
|
1004
996
|
slack: {
|
|
1005
997
|
parameters: {
|
|
@@ -1024,7 +1016,6 @@ var logsLatestCapability = defineCapability({
|
|
|
1024
1016
|
roles: ["user", "admin"],
|
|
1025
1017
|
description: "Stored kernel or serial logs, all severities, newest first. Optional start/before bounds can query any retained history; default is the seven days before now. First call omits cursor; subsequent pages pass next_cursor with the same start/before. Users only on a reserved machine. Not a live tail.",
|
|
1026
1018
|
mutation: "read",
|
|
1027
|
-
http: { method: "GET", path: "/v1/observability/nodes/{id}/logs/{stream}/query" },
|
|
1028
1019
|
slack: {
|
|
1029
1020
|
parameters: {
|
|
1030
1021
|
type: "object",
|
|
@@ -1066,7 +1057,6 @@ var telemetrySnapshotCapability = defineCapability({
|
|
|
1066
1057
|
roles: ["admin"],
|
|
1067
1058
|
description: "Read the latest stored heartbeat with all staff-visible fields, including version, status, port context, and kernel-log coverage when stored. Works while the node is offline; check observed_at for staleness. limit=1 returns the latest row; larger limits only scan a bounded recent window, at most 24h. Use telemetry.latest for historical numeric windows.",
|
|
1068
1059
|
mutation: "read",
|
|
1069
|
-
http: { method: "GET", path: "/v1/observability/nodes/{id}/telemetry/latest" },
|
|
1070
1060
|
mcp: false,
|
|
1071
1061
|
slack: {
|
|
1072
1062
|
parameters: {
|
|
@@ -1090,7 +1080,6 @@ var telemetryTailCapability = defineCapability({
|
|
|
1090
1080
|
roles: ["user", "admin"],
|
|
1091
1081
|
description: "Live telemetry follow on the same Observability subscribe feed the graphs use. Users only on a reserved machine. Slack and MCP attach for duration (default 20s) and return events. Not telemetry.latest.",
|
|
1092
1082
|
mutation: "read",
|
|
1093
|
-
http: { method: "GET", path: "/v1/observability/nodes/{id}/telemetry/subscribe" },
|
|
1094
1083
|
slack: {
|
|
1095
1084
|
parameters: {
|
|
1096
1085
|
type: "object",
|
|
@@ -1116,7 +1105,6 @@ var logsTailCapability = defineCapability({
|
|
|
1116
1105
|
roles: ["user", "admin"],
|
|
1117
1106
|
description: "Live kernel or serial log follow on the same Observability subscribe feed LogViewer uses. Users only on a reserved machine. Slack and MCP attach for duration (default 20s). Not logs.latest.",
|
|
1118
1107
|
mutation: "read",
|
|
1119
|
-
http: { method: "GET", path: "/v1/observability/nodes/{id}/logs/{stream}/subscribe" },
|
|
1120
1108
|
slack: {
|
|
1121
1109
|
parameters: {
|
|
1122
1110
|
type: "object",
|
|
@@ -1193,7 +1181,6 @@ var tokensListCapability = defineCapability({
|
|
|
1193
1181
|
roles: ["admin"],
|
|
1194
1182
|
description: "List issued enrollment tokens (id, supplier organization_id, status, expiry). Does not return plaintext secrets.",
|
|
1195
1183
|
mutation: "read",
|
|
1196
|
-
http: { method: "GET", path: "/v1/orchestrator/enrollment-tokens" },
|
|
1197
1184
|
slack: { parameters: { type: "object", properties: {} } },
|
|
1198
1185
|
input: emptyInput,
|
|
1199
1186
|
execute: async (ctx) => listEnrollmentTokens(ctx.fetch)
|
|
@@ -1204,7 +1191,6 @@ var tokensCreateCapability = defineCapability({
|
|
|
1204
1191
|
roles: ["admin"],
|
|
1205
1192
|
description: "Admin-only. Mint an enrollment token. Without a host this returns the curl installer. With host + private_key, orchestrator SSHs and runs that curl (same as Bulk Enroll). Never invent a command. Slack waits for a human confirm. ",
|
|
1206
1193
|
mutation: "preview-confirm",
|
|
1207
|
-
http: { method: "POST", path: "/v1/orchestrator/enrollment-tokens" },
|
|
1208
1194
|
slack: {
|
|
1209
1195
|
parameters: {
|
|
1210
1196
|
type: "object",
|
|
@@ -1484,7 +1470,6 @@ var adminNodeHealthCapability = defineCapability({
|
|
|
1484
1470
|
roles: ["admin"],
|
|
1485
1471
|
description: "Read lifecycle and readiness facts for one enrolled node.",
|
|
1486
1472
|
mutation: "read",
|
|
1487
|
-
http: { method: "GET", path: "/v1/orchestrator/nodes/{id}" },
|
|
1488
1473
|
cli: {
|
|
1489
1474
|
command: ["admin", "nodes", "health"],
|
|
1490
1475
|
vnext: adminHelp(["admin", "nodes", "health"], "Inspect lifecycle and readiness facts for one node.", "ornn admin nodes health <node-id>", "ornn admin nodes health <node-id> --format json", ["canonical node ID"])
|
|
@@ -1810,7 +1795,6 @@ var adminCapacityOffersCreateCapability = defineCapability({
|
|
|
1810
1795
|
roles: ["admin"],
|
|
1811
1796
|
description: "Create native capacity with an organization, a facilityId or a location, hardware, availability and advertised terms. A location is any state, city, address, or catalog region (us-west-3); Ornn places it in a catalog region and uses the organization's facility there. Primary capacity needs daysToRfs (0 when ready now) or both availableAt and availableUntil. nodeIds attach nodes at creation. Returns {listing, terms}. Requires an idempotencyKey reused on retries and confirm: true.",
|
|
1812
1797
|
mutation: "preview-confirm",
|
|
1813
|
-
http: { method: "POST", path: "/commerce/v2/listings" },
|
|
1814
1798
|
input: nativeListingCreateInput,
|
|
1815
1799
|
slack: false,
|
|
1816
1800
|
cli: {
|
|
@@ -1899,7 +1883,6 @@ var listingsListCapability = defineCapability({
|
|
|
1899
1883
|
roles: ["user"],
|
|
1900
1884
|
description: "List native capacity listings. Primary listings require organization approval. Returns capacityListingId, hardware, capacity and availability; when nextCursor is present, pass it back as cursor for the next page. Read listings.terms separately for prices and durations.",
|
|
1901
1885
|
mutation: "read",
|
|
1902
|
-
http: { method: "GET", path: "/commerce/v2/listings" },
|
|
1903
1886
|
input: listingsListInput,
|
|
1904
1887
|
cli: {
|
|
1905
1888
|
command: ["capacity-offers", "list"],
|
|
@@ -1928,7 +1911,6 @@ var listingShowCapability = defineCapability({
|
|
|
1928
1911
|
roles: ["user"],
|
|
1929
1912
|
description: "Show one native capacity listing. Returns capacityListingId, hardware, capacity and availability; use listings.terms for financial choices.",
|
|
1930
1913
|
mutation: "read",
|
|
1931
|
-
http: { method: "GET", path: "/commerce/v2/listings/{listingId}" },
|
|
1932
1914
|
input: listingShowInput,
|
|
1933
1915
|
cli: {
|
|
1934
1916
|
command: ["capacity-offers", "show"],
|
|
@@ -1946,7 +1928,6 @@ var listingTermsCapability = defineCapability({
|
|
|
1946
1928
|
roles: ["user"],
|
|
1947
1929
|
description: "Read a capacity listing's advertised financial terms. Each term returns listingTermsId, capacityListingId, pricePerGpuHourMicroUsd, duration bounds, downPaymentCents and renewable. Use the parent's capacityListingId as listingId. Prices are gross integer micro-USD per GPU-hour (per vCPU-hour on CPU capacity), the price reservations.purchase expects.",
|
|
1948
1930
|
mutation: "read",
|
|
1949
|
-
http: { method: "GET", path: "/commerce/v2/listings/{listingId}/terms" },
|
|
1950
1931
|
input: listingShowInput,
|
|
1951
1932
|
cli: {
|
|
1952
1933
|
command: ["capacity-offers", "terms"],
|
|
@@ -2001,7 +1982,6 @@ var listingRelistCapability = defineCapability({
|
|
|
2001
1982
|
roles: ["user"],
|
|
2002
1983
|
description: "Relist whole nodes of a reservation's capacity using a native availability window, nodeCount and financial terms. Buyers run on nodes Ornn assigns when their rental starts..",
|
|
2003
1984
|
mutation: "preview-confirm",
|
|
2004
|
-
http: { method: "POST", path: "/commerce/reservations/{reservationId}/relist" },
|
|
2005
1985
|
input: listingRelistInput,
|
|
2006
1986
|
cli: {
|
|
2007
1987
|
command: ["capacity-offers", "relist"],
|
|
@@ -2032,7 +2012,6 @@ var listingUpdateCapability = defineCapability({
|
|
|
2032
2012
|
roles: ["admin"],
|
|
2033
2013
|
description: "Staff only: edit one advertised native financial term with its complete financial fields. Reuse idempotencyKey on retries..",
|
|
2034
2014
|
mutation: "preview-confirm",
|
|
2035
|
-
http: { method: "PATCH", path: "/commerce/v2/listings/{listingId}/terms/{listingTermsId}" },
|
|
2036
2015
|
input: listingUpdateInput,
|
|
2037
2016
|
cli: {
|
|
2038
2017
|
command: ["admin", "capacity-offers", "update"],
|
|
@@ -2061,7 +2040,6 @@ var listingDelistCapability = defineCapability({
|
|
|
2061
2040
|
roles: ["user"],
|
|
2062
2041
|
description: "Delist a listing you own. Its unsold time leaves the market, its spot asks are cancelled and running spot reservations on it end. Windows already bought stay sold..",
|
|
2063
2042
|
mutation: "preview-confirm",
|
|
2064
|
-
http: { method: "POST", path: "/commerce/v2/listings/{listingId}/delist" },
|
|
2065
2043
|
input: listingDelistInput,
|
|
2066
2044
|
cli: {
|
|
2067
2045
|
command: ["capacity-offers", "delist"],
|
|
@@ -2103,7 +2081,6 @@ var reservationsListCapability = defineCapability({
|
|
|
2103
2081
|
roles: ["user"],
|
|
2104
2082
|
description: "List this organization's reservations, schedule and spot alike (a running spot reservation has no end time). With listingId, list the trades on a listing you own. When nextCursor is present, pass it back as cursor for the next page.",
|
|
2105
2083
|
mutation: "read",
|
|
2106
|
-
http: { method: "GET", path: "/commerce/reservations" },
|
|
2107
2084
|
input: reservationsListInput,
|
|
2108
2085
|
cli: {
|
|
2109
2086
|
command: ["reservations", "list"],
|
|
@@ -2126,7 +2103,6 @@ var reservationsShowCapability = defineCapability({
|
|
|
2126
2103
|
roles: ["user"],
|
|
2127
2104
|
description: "Show one reservation: kind, status, window, price and node count.",
|
|
2128
2105
|
mutation: "read",
|
|
2129
|
-
http: { method: "GET", path: "/commerce/reservations/{reservationId}" },
|
|
2130
2106
|
input: reservationLookupInput,
|
|
2131
2107
|
cli: {
|
|
2132
2108
|
command: ["reservations", "show"],
|
|
@@ -2144,7 +2120,6 @@ var reservationInvoicesCapability = defineCapability({
|
|
|
2144
2120
|
roles: ["user"],
|
|
2145
2121
|
description: "List a reservation's invoices: the down payment and each billing period, with status and amount in cents.",
|
|
2146
2122
|
mutation: "read",
|
|
2147
|
-
http: { method: "GET", path: "/commerce/reservations/{reservationId}/invoices" },
|
|
2148
2123
|
input: reservationLookupInput,
|
|
2149
2124
|
cli: {
|
|
2150
2125
|
command: ["reservations", "invoices"],
|
|
@@ -2572,7 +2547,6 @@ var marketEndCapability = defineCapability({
|
|
|
2572
2547
|
roles: ["user"],
|
|
2573
2548
|
description: "End a running fill: its reservation stops, its VMs stop, and its capacity goes back on the book..",
|
|
2574
2549
|
mutation: "preview-confirm",
|
|
2575
|
-
http: { method: "DELETE", path: "/commerce/reservations/{fillId}" },
|
|
2576
2550
|
input: marketEndInput,
|
|
2577
2551
|
cli: {
|
|
2578
2552
|
command: ["market", "end"],
|
|
@@ -2813,7 +2787,6 @@ var adminEnrollmentTokenRevokeCapability = defineCapability({
|
|
|
2813
2787
|
roles: ["admin"],
|
|
2814
2788
|
description: "Internal staff only: revoke one exact enrollment-token generation after reconciling its durable goal.",
|
|
2815
2789
|
mutation: "preview-confirm",
|
|
2816
|
-
http: { method: "DELETE", path: "/v1/orchestrator/enrollment-tokens/{tokenId}" },
|
|
2817
2790
|
cli: {
|
|
2818
2791
|
command: ["admin", "enrollment-tokens", "revoke"],
|
|
2819
2792
|
vnext: adminHelp3(["admin", "enrollment-tokens", "revoke"], "Revoke one exact enrollment-token generation.", "ornn admin enrollment-tokens revoke <token-id> [--expected-created-at TIME] []", "ornn admin enrollment-tokens revoke <token-id> --expected-created-at TIME --idempotency-key KEY --format json", ["canonical token UUID", "token created_at generation"], "Review the exact token generation and the loss of future enrollment access.")
|
|
@@ -2887,7 +2860,6 @@ var adminNodeEnrollCapability = defineCapability({
|
|
|
2887
2860
|
roles: ["admin"],
|
|
2888
2861
|
description: "Enroll one explicit node over SSH with an explicit supplier and facility assignment.",
|
|
2889
2862
|
mutation: "preview-confirm",
|
|
2890
|
-
http: { method: "POST", path: "/v1/staff/remote" },
|
|
2891
2863
|
cli: {
|
|
2892
2864
|
command: ["admin", "nodes", "enroll"],
|
|
2893
2865
|
vnext: adminHelp3(["admin", "nodes", "enroll"], "Install Ornn management on one explicitly assigned node.", "ornn admin nodes enroll <node-id> --host HOST --supplier UUID --facility UUID [--filter COMPARTMENT_IDS] --identity-file PATH --token-ttl SECONDS --replace-existing-management [--verbose] []", "Unsupported: remote enrollment requires an eligible human terminal.", ["canonical node UUID", "canonical supplier organization UUID", "canonical facility UUID"], "Review node identity, SSH target, assignment, compartment filter, and replacement of existing management.")
|
|
@@ -2957,7 +2929,6 @@ var adminNodeExportKeyCapability = defineCapability({
|
|
|
2957
2929
|
roles: ["admin"],
|
|
2958
2930
|
description: "Export an enrolled node's private admin key only through an explicit secret destination.",
|
|
2959
2931
|
mutation: "read",
|
|
2960
|
-
http: { method: "GET", path: "/v1/orchestrator/enrollment/admin-ssh-key" },
|
|
2961
2932
|
cli: {
|
|
2962
2933
|
command: ["admin", "nodes", "export-key"],
|
|
2963
2934
|
vnext: adminHelp3(["admin", "nodes", "export-key"], "Export one node admin key deliberately.", "ornn admin nodes export-key <node-id> (--print | --output PATH) [--overwrite]", "ornn admin nodes export-key <node-id> --output PATH [--overwrite] --format json", ["canonical node UUID"])
|
|
@@ -2976,7 +2947,6 @@ var adminNodeRotateKeyCapability = defineCapability({
|
|
|
2976
2947
|
roles: ["admin"],
|
|
2977
2948
|
description: "Replace a node's admin key and export the new private key explicitly.",
|
|
2978
2949
|
mutation: "preview-confirm",
|
|
2979
|
-
http: { method: "POST", path: "/v1/orchestrator/enrollment/admin-ssh-key" },
|
|
2980
2950
|
cli: {
|
|
2981
2951
|
command: ["admin", "nodes", "rotate-key"],
|
|
2982
2952
|
vnext: adminHelp3(["admin", "nodes", "rotate-key"], "Rotate one node admin key and export the replacement deliberately.", "ornn admin nodes rotate-key <node-id> (--print | --output PATH) [--overwrite] []", "Unsupported: key rotation requires an eligible human terminal.", ["canonical node UUID"], "Review the node and loss of access through the previous private key.")
|
|
@@ -3043,7 +3013,6 @@ var adminNodeDiagnoseCapability = defineCapability({
|
|
|
3043
3013
|
roles: ["admin"],
|
|
3044
3014
|
description: "Queue the staff-authorized diagnosis workflow for one exact node after a live review.",
|
|
3045
3015
|
mutation: "preview-confirm",
|
|
3046
|
-
http: { method: "POST", path: "/v1/benchmark/jobs" },
|
|
3047
3016
|
cli: {
|
|
3048
3017
|
command: ["admin", "nodes", "diagnose"],
|
|
3049
3018
|
vnext: adminNodeHelp(["admin", "nodes", "diagnose"], "Queue diagnosis for one exact node.", "ornn admin nodes diagnose <node-id>", "Unavailable in machine and redirected modes; use an eligible human terminal.", "Exact node, lifecycle, reachability, and diagnosis workflow.")
|
|
@@ -3188,7 +3157,6 @@ var nodeSanitizeStartCapability = defineCapability({
|
|
|
3188
3157
|
roles: ["admin"],
|
|
3189
3158
|
description: "Destructive staff maintenance write: start node drive sanitization with a stable job UUID. data_wipe erases local data drives and keeps the OS; ram_roundtrip does not erase drives; node_turnover wipes and restores the whole node; host_restore restores the host. Supply the exact operation-specific confirmation phrase yourself; it is never filled automatically. The job then waits for staff approval. Slack waits for a human confirm.",
|
|
3190
3159
|
mutation: "preview-confirm",
|
|
3191
|
-
http: { method: "POST", path: "/v1/orchestrator/nodes/{node_id}/sanitize-drives" },
|
|
3192
3160
|
cli: {
|
|
3193
3161
|
command: ["admin", "nodes", "sanitize"],
|
|
3194
3162
|
vnext: sanitizeHelp(["admin", "nodes", "sanitize"], "Start one held sanitize job on one exact node.", "ornn admin nodes sanitize <node-id> --operation data_wipe|ram_roundtrip|node_turnover|host_restore --confirmation PHRASE [--recovery-uuid UUID] [--job-id UUID] [--batch UUID]", "Exact node, operation, job UUID, and confirmation phrase.")
|
|
@@ -3209,7 +3177,6 @@ var nodeSanitizeShowCapability = defineCapability({
|
|
|
3209
3177
|
roles: ["admin"],
|
|
3210
3178
|
description: "Staff maintenance read: show the bounded JSON status for one node sanitize job, including its operation, approval, manual cleanup attestation, and per-drive results. This does not request an NDJSON download.",
|
|
3211
3179
|
mutation: "read",
|
|
3212
|
-
http: { method: "GET", path: "/v1/orchestrator/nodes/{node_id}/sanitize-drives/{job_id}" },
|
|
3213
3180
|
cli: {
|
|
3214
3181
|
command: ["admin", "nodes", "sanitize-status"],
|
|
3215
3182
|
vnext: sanitizeHelp(["admin", "nodes", "sanitize-status"], "Read one sanitize job on one exact node.", "ornn admin nodes sanitize-status <node-id> --job UUID")
|
|
@@ -3228,7 +3195,6 @@ var nodeSanitizeUpdateCapability = defineCapability({
|
|
|
3228
3195
|
roles: ["admin"],
|
|
3229
3196
|
description: "Staff maintenance write on a held sanitize job. APPROVE SANITIZATION starts destructive maintenance. SKIP SANITIZATION skips an eligible first-use wipe and certifies nothing. ACCEPT MANUAL CLEANUP lets a held Bare Metal release finish when its node_turnover job is awaiting_approval with no recovery image, after staff manually revoked tenant access and sanitized the data drives with the OS retained; it requires manual_cleanup with the reservation, the current orchestrator release operation, a reason, the evidence file SHA-256, and all three attestations. The owner enforces eligibility. Slack waits for a human confirm.",
|
|
3230
3197
|
mutation: "preview-confirm",
|
|
3231
|
-
http: { method: "PATCH", path: "/v1/orchestrator/nodes/{node_id}/sanitize-drives/{job_id}" },
|
|
3232
3198
|
cli: {
|
|
3233
3199
|
command: ["admin", "nodes", "sanitize-decide"],
|
|
3234
3200
|
vnext: sanitizeHelp(["admin", "nodes", "sanitize-decide"], "Approve, skip, or accept manual cleanup for one held sanitize job.", 'ornn admin nodes sanitize-decide <node-id> --job UUID --confirmation "APPROVE SANITIZATION"|"SKIP SANITIZATION"|"ACCEPT MANUAL CLEANUP" [--reservation UUID --release-operation UUID --reason TEXT --evidence-file PATH --tenant-access-revoked --data-drives-sanitized --acknowledge-retained-os]', "Exact node, job, decision, and for manual cleanup the reservation, release operation, reason, evidence SHA-256, and retained-OS attestations.")
|
|
@@ -3321,7 +3287,6 @@ var adminNodeRebootCapability = defineCapability({
|
|
|
3321
3287
|
roles: ["admin"],
|
|
3322
3288
|
description: "Reboot the exact live machine backing one managed node after a normalized review.",
|
|
3323
3289
|
mutation: "preview-confirm",
|
|
3324
|
-
http: { method: "POST", path: "/v1/orchestrator/nodes/{id}/reboot" },
|
|
3325
3290
|
cli: {
|
|
3326
3291
|
command: ["admin", "nodes", "reboot"],
|
|
3327
3292
|
vnext: adminLifecycleHelp(["admin", "nodes", "reboot"], "Reboot one exact live machine while preserving local data and access configuration.", "ornn admin nodes reboot <node-ref> [] [--no-wait] [--timeout SECONDS]", "Unsupported: reboot requires an eligible human terminal.", "Node and live-machine identities, supplier, facility, capacity assignment, and preserved access.")
|
|
@@ -3337,7 +3302,6 @@ var adminNodeHardResetCapability = defineCapability({
|
|
|
3337
3302
|
roles: ["admin"],
|
|
3338
3303
|
description: "Hard reset the exact live machine backing one node with explicit local-data erasure scope.",
|
|
3339
3304
|
mutation: "preview-confirm",
|
|
3340
|
-
http: { method: "POST", path: "/v1/orchestrator/nodes/{id}/reboot" },
|
|
3341
3305
|
cli: {
|
|
3342
3306
|
command: ["admin", "nodes", "hard-reset"],
|
|
3343
3307
|
vnext: adminLifecycleHelp(["admin", "nodes", "hard-reset"], "Erase local tenant data and hard reset one exact live machine.", "ornn admin nodes hard-reset <node-ref> --erase-local-data [] [--no-wait] [--timeout SECONDS]", "Unsupported: hard reset requires an eligible human terminal.", "Node and live-machine identities, supplier, facility, capacity assignment, erased local data, and restored keys.")
|
|
@@ -3353,7 +3317,6 @@ var adminNodeAssignCapability = defineCapability({
|
|
|
3353
3317
|
roles: ["admin"],
|
|
3354
3318
|
description: "Assign one exact node to one exact capacity reservation after consequence review.",
|
|
3355
3319
|
mutation: "preview-confirm",
|
|
3356
|
-
http: { method: "POST", path: "/v1/orchestrator/nodes/{id}/assign" },
|
|
3357
3320
|
cli: {
|
|
3358
3321
|
command: ["admin", "nodes", "assign"],
|
|
3359
3322
|
vnext: adminLifecycleHelp(["admin", "nodes", "assign"], "Assign one exact node to one exact capacity reservation.", "ornn admin nodes assign <node-ref> --reservation <reservation-id> [] [--no-wait]", "ornn admin nodes assign <node-id> --reservation <reservation-id> --idempotency-key KEY --format json", "Node, supplier, facility, previous and requested capacity assignments, and tenant access change.")
|
|
@@ -3381,8 +3344,6 @@ var adminNodeLifecycleCapabilities = [
|
|
|
3381
3344
|
|
|
3382
3345
|
// ../../packages/capabilities/dist/capabilities/billing.js
|
|
3383
3346
|
import { z as z16 } from "zod";
|
|
3384
|
-
var INVOICES_ROUTE = "/commerce/invoices";
|
|
3385
|
-
var SHOWBACK_ROUTE = "/commerce/billing/showback";
|
|
3386
3347
|
var DATE_ONLY = /^\d{4}-\d{2}-\d{2}$/;
|
|
3387
3348
|
var billingCapabilities = [
|
|
3388
3349
|
defineCapability({
|
|
@@ -3391,7 +3352,6 @@ var billingCapabilities = [
|
|
|
3391
3352
|
roles: ["user"],
|
|
3392
3353
|
description: "Read account billing totals: open balance, earliest due date, and paid monthly totals grouped by currency. Usage estimates are available separately through billing_showback.",
|
|
3393
3354
|
mutation: "read",
|
|
3394
|
-
http: { method: "GET", path: "/commerce/billing/summary" },
|
|
3395
3355
|
input: z16.object({}),
|
|
3396
3356
|
slack: false,
|
|
3397
3357
|
execute: (ctx) => getBillingSummary(ctx.fetch)
|
|
@@ -3402,7 +3362,6 @@ var billingCapabilities = [
|
|
|
3402
3362
|
roles: ["user"],
|
|
3403
3363
|
description: "List a page of this tenant's invoices.",
|
|
3404
3364
|
mutation: "read",
|
|
3405
|
-
http: { method: "GET", path: INVOICES_ROUTE },
|
|
3406
3365
|
input: z16.object({
|
|
3407
3366
|
limit: z16.number().int().min(1).max(500).optional(),
|
|
3408
3367
|
cursor: z16.string().trim().min(1).max(2048).optional()
|
|
@@ -3416,7 +3375,6 @@ var billingCapabilities = [
|
|
|
3416
3375
|
roles: ["user"],
|
|
3417
3376
|
description: "Get a showback report of this tenant's usage for a date range: per-reservation unit-hours, estimated cost, and share of total. Each row's unit is a GPU, or a vCPU when its `unit` is `vcpu` (CPU capacity); gpuCount and gpuHours count that unit. Unit-hours are the billable reservation interval that falls inside the inclusive dates, not a whole calendar day. This is an estimate from reservation windows, not a bill. Use billing_summary or billing_invoices for amounts actually charged.",
|
|
3418
3377
|
mutation: "read",
|
|
3419
|
-
http: { method: "GET", path: SHOWBACK_ROUTE },
|
|
3420
3378
|
input: z16.object({
|
|
3421
3379
|
start: z16.string().regex(DATE_ONLY, "start must be a date in yyyy-mm-dd format."),
|
|
3422
3380
|
end: z16.string().regex(DATE_ONLY, "end must be a date in yyyy-mm-dd format.")
|
|
@@ -4027,9 +3985,6 @@ var computeCapabilities = [
|
|
|
4027
3985
|
sshKeyAssignmentSyncCapability,
|
|
4028
3986
|
sshKeyAssignmentStatusCapability
|
|
4029
3987
|
];
|
|
4030
|
-
var NODES_ROUTE = "/v1/orchestrator/nodes";
|
|
4031
|
-
var ORG_SSH_KEYS_ROUTE = "/v1/workflows/compute/nodes/organizations/me/ssh-keys";
|
|
4032
|
-
var CLUSTER_USERS_ROUTE = "/v1/workflows/compute/nodes/organizations/me/cluster-users";
|
|
4033
3988
|
var pageInput = z17.object({
|
|
4034
3989
|
limit: z17.number().int().min(1).max(500).optional(),
|
|
4035
3990
|
cursor: z17.string().optional()
|
|
@@ -4052,7 +4007,6 @@ var accessVerbCapabilities = [
|
|
|
4052
4007
|
roles: ["user"],
|
|
4053
4008
|
description: "Show VM and Bare Metal SSH access machines for a reservation.",
|
|
4054
4009
|
mutation: "read",
|
|
4055
|
-
http: { method: "GET", path: NODES_ROUTE },
|
|
4056
4010
|
input: z17.object({ reservationId: z17.string() }),
|
|
4057
4011
|
slack: false,
|
|
4058
4012
|
execute: (ctx, input) => listNodes(ctx.fetch, { reservation_id: input.reservationId })
|
|
@@ -4063,7 +4017,6 @@ var accessVerbCapabilities = [
|
|
|
4063
4017
|
roles: ["user"],
|
|
4064
4018
|
description: "Activate access (bare-metal by default, or VM via accessMode) for a reservation and launch machine(s) with the given SSH key(s), optionally on the private network via networkMode. A VM launches on the reservation's saved disk; pass diskId to choose one, which a reservation without a saved disk needs.",
|
|
4065
4019
|
mutation: "preview-confirm",
|
|
4066
|
-
http: { method: "POST", path: `${NODES_ROUTE}/reservations/{reservationId}/launch` },
|
|
4067
4020
|
input: z17.object({
|
|
4068
4021
|
reservationId: z17.string(),
|
|
4069
4022
|
sshKeyIds: z17.array(z17.string()).min(1),
|
|
@@ -4097,7 +4050,6 @@ var accessVerbCapabilities = [
|
|
|
4097
4050
|
roles: ["user"],
|
|
4098
4051
|
description: "Switch a live reservation between public/private network mode (and optionally VM/Bare Metal) via switch-access. Use this instead of re-launching when machines are already running. Supply a unique requestId and keep it to check progress, including after a timeout. Acceptance does not confirm completion.",
|
|
4099
4052
|
mutation: "preview-confirm",
|
|
4100
|
-
http: { method: "POST", path: `${NODES_ROUTE}/reservations/{reservationId}/switch-access` },
|
|
4101
4053
|
input: z17.object({
|
|
4102
4054
|
reservationId: z17.string(),
|
|
4103
4055
|
networkMode: z17.enum(["public", "private"]),
|
|
@@ -4121,7 +4073,6 @@ var accessVerbCapabilities = [
|
|
|
4121
4073
|
roles: ["user"],
|
|
4122
4074
|
description: "List SSH keys registered for a reservation.",
|
|
4123
4075
|
mutation: "read",
|
|
4124
|
-
http: { method: "GET", path: `${NODES_ROUTE}/reservations/{reservationId}/ssh-keys` },
|
|
4125
4076
|
input: z17.object({ reservationId: z17.string() }),
|
|
4126
4077
|
slack: false,
|
|
4127
4078
|
execute: (ctx, input) => listReservationSshKeys(ctx.fetch, input.reservationId)
|
|
@@ -4132,7 +4083,6 @@ var accessVerbCapabilities = [
|
|
|
4132
4083
|
roles: ["user"],
|
|
4133
4084
|
description: `Add an SSH key to a reservation. ${ADDED_KEY_OUTCOME}`,
|
|
4134
4085
|
mutation: "preview-confirm",
|
|
4135
|
-
http: { method: "POST", path: `${NODES_ROUTE}/reservations/{reservationId}/ssh-keys` },
|
|
4136
4086
|
input: publicKeyInput.extend({ reservationId: z17.string() }),
|
|
4137
4087
|
slack: false,
|
|
4138
4088
|
execute: (ctx, input) => addReservationSshKey(ctx.fetch, input.reservationId, {
|
|
@@ -4146,7 +4096,6 @@ var accessVerbCapabilities = [
|
|
|
4146
4096
|
roles: ["user"],
|
|
4147
4097
|
description: "Reboot a running reservation machine. Keeps storage and SSH keys. Pass the machine/node instance id from access_show.",
|
|
4148
4098
|
mutation: "preview-confirm",
|
|
4149
|
-
http: { method: "POST", path: `${NODES_ROUTE}/{nodeId}/reboot` },
|
|
4150
4099
|
input: nodeIdInput,
|
|
4151
4100
|
mcp: { name: "nodes_reboot" },
|
|
4152
4101
|
slack: false,
|
|
@@ -4158,7 +4107,6 @@ var accessVerbCapabilities = [
|
|
|
4158
4107
|
roles: ["user"],
|
|
4159
4108
|
description: "Hard-reset a running reservation machine: clean (wipe tenant storage, users, keys, caches) then reboot and re-push keys. The tenant keeps ownership.",
|
|
4160
4109
|
mutation: "preview-confirm",
|
|
4161
|
-
http: { method: "POST", path: `${NODES_ROUTE}/{nodeId}/reboot` },
|
|
4162
4110
|
input: nodeIdInput,
|
|
4163
4111
|
mcp: { name: "nodes_hard_reset" },
|
|
4164
4112
|
slack: false,
|
|
@@ -4170,7 +4118,6 @@ var accessVerbCapabilities = [
|
|
|
4170
4118
|
roles: ["user"],
|
|
4171
4119
|
description: "List a page of account SSH keys. Pass next_cursor as cursor to continue.",
|
|
4172
4120
|
mutation: "read",
|
|
4173
|
-
http: { method: "GET", path: ORG_SSH_KEYS_ROUTE },
|
|
4174
4121
|
input: pageInput,
|
|
4175
4122
|
slack: false,
|
|
4176
4123
|
execute: (ctx, input) => listAccountSshKeys(ctx.fetch, {
|
|
@@ -4185,7 +4132,6 @@ var accessVerbCapabilities = [
|
|
|
4185
4132
|
roles: ["user"],
|
|
4186
4133
|
description: `Add an SSH public key to the account. ${ADDED_KEY_OUTCOME}`,
|
|
4187
4134
|
mutation: "preview-confirm",
|
|
4188
|
-
http: { method: "POST", path: ORG_SSH_KEYS_ROUTE },
|
|
4189
4135
|
input: publicKeyInput,
|
|
4190
4136
|
slack: false,
|
|
4191
4137
|
execute: (ctx, input) => createAccountSshKey(ctx.fetch, {
|
|
@@ -4199,7 +4145,6 @@ var accessVerbCapabilities = [
|
|
|
4199
4145
|
roles: ["user"],
|
|
4200
4146
|
description: "Delete an SSH key from the account.",
|
|
4201
4147
|
mutation: "preview-confirm",
|
|
4202
|
-
http: { method: "DELETE", path: `${ORG_SSH_KEYS_ROUTE}/{keyId}` },
|
|
4203
4148
|
input: keyIdInput,
|
|
4204
4149
|
slack: false,
|
|
4205
4150
|
execute: async (ctx, input) => await deleteAccountSshKey(ctx.fetch, input.keyId) ?? { deleted: true }
|
|
@@ -4210,7 +4155,6 @@ var accessVerbCapabilities = [
|
|
|
4210
4155
|
roles: ["user"],
|
|
4211
4156
|
description: "List a page of organization cluster-user SSH keys. Pass next_cursor as cursor to continue.",
|
|
4212
4157
|
mutation: "read",
|
|
4213
|
-
http: { method: "GET", path: CLUSTER_USERS_ROUTE },
|
|
4214
4158
|
input: pageInput,
|
|
4215
4159
|
slack: false,
|
|
4216
4160
|
execute: (ctx, input) => listClusterUserKeys(ctx.fetch, {
|
|
@@ -4225,7 +4169,6 @@ var accessVerbCapabilities = [
|
|
|
4225
4169
|
roles: ["user"],
|
|
4226
4170
|
description: "Add a cluster-user SSH public key to the organization. Registers the same organization key as ssh_keys_add; a key already registered is returned as-is with its existing label.",
|
|
4227
4171
|
mutation: "preview-confirm",
|
|
4228
|
-
http: { method: "POST", path: CLUSTER_USERS_ROUTE },
|
|
4229
4172
|
input: publicKeyInput,
|
|
4230
4173
|
slack: false,
|
|
4231
4174
|
execute: (ctx, input) => createClusterUserKey(ctx.fetch, {
|
|
@@ -4239,7 +4182,6 @@ var accessVerbCapabilities = [
|
|
|
4239
4182
|
roles: ["user"],
|
|
4240
4183
|
description: "Revoke a cluster-user SSH key from the organization.",
|
|
4241
4184
|
mutation: "preview-confirm",
|
|
4242
|
-
http: { method: "DELETE", path: `${CLUSTER_USERS_ROUTE}/{keyId}` },
|
|
4243
4185
|
input: keyIdInput,
|
|
4244
4186
|
slack: false,
|
|
4245
4187
|
execute: async (ctx, input) => await deleteClusterUserKey(ctx.fetch, input.keyId) ?? { deleted: true }
|
|
@@ -4251,7 +4193,6 @@ var machinePushKeysCapability = defineCapability({
|
|
|
4251
4193
|
roles: ["user"],
|
|
4252
4194
|
description: "Push SSH keys onto one reservation machine.",
|
|
4253
4195
|
mutation: "preview-confirm",
|
|
4254
|
-
http: { method: "POST", path: `${NODES_ROUTE}/{nodeId}/push-keys` },
|
|
4255
4196
|
input: z17.object({
|
|
4256
4197
|
nodeId: z17.string(),
|
|
4257
4198
|
sshKeyIds: z17.array(z17.string()).min(1),
|
|
@@ -4272,10 +4213,6 @@ var machineMetricsCapabilities = [
|
|
|
4272
4213
|
roles: ["user"],
|
|
4273
4214
|
description: "Fetch a live metrics snapshot for one reservation machine.",
|
|
4274
4215
|
mutation: "read",
|
|
4275
|
-
http: {
|
|
4276
|
-
method: "GET",
|
|
4277
|
-
path: "/v1/workflows/compute/nodes/reservations/{reservationId}/live-metrics"
|
|
4278
|
-
},
|
|
4279
4216
|
input: z17.object({ reservationId: z17.string(), machineId: z17.string() }),
|
|
4280
4217
|
mcp: false,
|
|
4281
4218
|
slack: false,
|
|
@@ -4289,10 +4226,6 @@ var machineMetricsCapabilities = [
|
|
|
4289
4226
|
roles: ["user"],
|
|
4290
4227
|
description: "Fetch historical telemetry for one reservation machine over a time range.",
|
|
4291
4228
|
mutation: "read",
|
|
4292
|
-
http: {
|
|
4293
|
-
method: "GET",
|
|
4294
|
-
path: "/v1/workflows/compute/nodes/reservations/{reservationId}/telemetry-history"
|
|
4295
|
-
},
|
|
4296
4229
|
input: z17.object({
|
|
4297
4230
|
reservationId: z17.string(),
|
|
4298
4231
|
machineId: z17.string(),
|
|
@@ -4327,7 +4260,6 @@ var creditGrantCapability = defineCapability({
|
|
|
4327
4260
|
roles: ["admin"],
|
|
4328
4261
|
description: "Adjust Ornn credits for a customer organization using Internal Billing. Defaults to credit; direction=debit removes credits. Credits belong to the organization, not an individual person. Resolve the intended organization first. MCP posts immediately; retain adjustmentId on retries. The verified staff actor supplies audit identity.",
|
|
4329
4262
|
mutation: "preview-confirm",
|
|
4330
|
-
http: { method: "POST", path: "/internal/v1/organizations/{organizationId}/credit-adjustments" },
|
|
4331
4263
|
cli: {
|
|
4332
4264
|
command: ["admin", "organizations", "grant-credit"],
|
|
4333
4265
|
vnext: {
|
|
@@ -4693,7 +4625,6 @@ var clusterCapabilities = [
|
|
|
4693
4625
|
roles: ["user"],
|
|
4694
4626
|
description: "List this tenant's kubernetes/slurm clusters.",
|
|
4695
4627
|
mutation: "read",
|
|
4696
|
-
http: { method: "GET", path: "/v1/workflows/compute/clusters" },
|
|
4697
4628
|
input: z20.object({}),
|
|
4698
4629
|
mcp: { name: "clusters_list" },
|
|
4699
4630
|
slack: false,
|
|
@@ -4705,7 +4636,6 @@ var clusterCapabilities = [
|
|
|
4705
4636
|
roles: ["user"],
|
|
4706
4637
|
description: "List active reservations eligible for cluster creation (kubernetes/slurm), 100 per page. Pass the response's nextCursor as cursor for the next page.",
|
|
4707
4638
|
mutation: "read",
|
|
4708
|
-
http: { method: "GET", path: "/commerce/reservations" },
|
|
4709
4639
|
input: z20.object({
|
|
4710
4640
|
cursor: z20.string().min(1).optional().describe("nextCursor from the previous page.")
|
|
4711
4641
|
}),
|
|
@@ -4722,7 +4652,6 @@ var clusterCapabilities = [
|
|
|
4722
4652
|
roles: ["user"],
|
|
4723
4653
|
description: "Launch a kubernetes or slurm cluster on a reservation.",
|
|
4724
4654
|
mutation: "preview-confirm",
|
|
4725
|
-
http: { method: "POST", path: "/v1/orchestrator/controllers" },
|
|
4726
4655
|
input: z20.object({
|
|
4727
4656
|
reservationId: z20.string(),
|
|
4728
4657
|
type: clusterType,
|
|
@@ -4747,10 +4676,6 @@ var clusterCapabilities = [
|
|
|
4747
4676
|
roles: ["user"],
|
|
4748
4677
|
description: "Show a kubernetes or slurm cluster's status for a reservation.",
|
|
4749
4678
|
mutation: "read",
|
|
4750
|
-
http: {
|
|
4751
|
-
method: "GET",
|
|
4752
|
-
path: "/v1/workflows/compute/{type}/reservations/{reservationId}/cluster"
|
|
4753
|
-
},
|
|
4754
4679
|
input: reservationCluster,
|
|
4755
4680
|
mcp: { name: "clusters_show" },
|
|
4756
4681
|
slack: false,
|
|
@@ -4762,10 +4687,6 @@ var clusterCapabilities = [
|
|
|
4762
4687
|
roles: ["user"],
|
|
4763
4688
|
description: "Fetch a kubernetes or slurm cluster's connection credentials for a reservation.",
|
|
4764
4689
|
mutation: "read",
|
|
4765
|
-
http: {
|
|
4766
|
-
method: "GET",
|
|
4767
|
-
path: "/v1/workflows/compute/{type}/reservations/{reservationId}/credentials"
|
|
4768
|
-
},
|
|
4769
4690
|
input: reservationCluster,
|
|
4770
4691
|
mcp: { name: "clusters_credentials" },
|
|
4771
4692
|
slack: false,
|
|
@@ -4777,10 +4698,6 @@ var clusterCapabilities = [
|
|
|
4777
4698
|
roles: ["user"],
|
|
4778
4699
|
description: "Fetch the raw kubeconfig text for a kubernetes cluster reservation. Unlike `ornn clusters kubeconfig`, this does not write a file locally -- the caller is responsible for saving the returned text if needed.",
|
|
4779
4700
|
mutation: "read",
|
|
4780
|
-
http: {
|
|
4781
|
-
method: "GET",
|
|
4782
|
-
path: "/v1/workflows/compute/kubernetes/reservations/{reservationId}/credentials"
|
|
4783
|
-
},
|
|
4784
4701
|
input: z20.object({ reservationId: z20.string() }),
|
|
4785
4702
|
mcp: { name: "clusters_kubeconfig" },
|
|
4786
4703
|
slack: false,
|
|
@@ -4798,7 +4715,6 @@ var clusterCapabilities = [
|
|
|
4798
4715
|
roles: ["user"],
|
|
4799
4716
|
description: "Join a node to a controller.",
|
|
4800
4717
|
mutation: "preview-confirm",
|
|
4801
|
-
http: { method: "POST", path: "/v1/orchestrator/controllers/{controllerId}/nodes/{nodeId}" },
|
|
4802
4718
|
input: controllerNode,
|
|
4803
4719
|
mcp: { name: "clusters_add_node" },
|
|
4804
4720
|
slack: false,
|
|
@@ -4810,7 +4726,6 @@ var clusterCapabilities = [
|
|
|
4810
4726
|
roles: ["user"],
|
|
4811
4727
|
description: "Remove a node from a controller.",
|
|
4812
4728
|
mutation: "preview-confirm",
|
|
4813
|
-
http: { method: "DELETE", path: "/v1/orchestrator/controllers/{controllerId}/nodes/{nodeId}" },
|
|
4814
4729
|
input: controllerNode,
|
|
4815
4730
|
mcp: { name: "clusters_remove_node" },
|
|
4816
4731
|
slack: false,
|
|
@@ -4822,10 +4737,6 @@ var clusterCapabilities = [
|
|
|
4822
4737
|
roles: ["user"],
|
|
4823
4738
|
description: "Tear down a kubernetes or slurm cluster on a reservation.",
|
|
4824
4739
|
mutation: "preview-confirm",
|
|
4825
|
-
http: {
|
|
4826
|
-
method: "POST",
|
|
4827
|
-
path: "/v1/workflows/compute/{type}/reservations/{reservationId}/cluster/teardown"
|
|
4828
|
-
},
|
|
4829
4740
|
input: reservationCluster.extend({ confirm: z20.boolean().optional() }),
|
|
4830
4741
|
mcp: { name: "clusters_teardown" },
|
|
4831
4742
|
slack: false,
|
|
@@ -5296,7 +5207,6 @@ var loginCapability = defineCapability({
|
|
|
5296
5207
|
roles: ["user"],
|
|
5297
5208
|
description: "Authenticate the CLI with Ornn device authorization.",
|
|
5298
5209
|
mutation: "local",
|
|
5299
|
-
http: { method: "POST", path: "/v1/cli/device/start" },
|
|
5300
5210
|
input: loginInput,
|
|
5301
5211
|
cli: {
|
|
5302
5212
|
command: ["login"],
|
|
@@ -5322,7 +5232,6 @@ var contextCapability = defineCapability({
|
|
|
5322
5232
|
roles: ["user"],
|
|
5323
5233
|
description: "Show the current server-verified organization context.",
|
|
5324
5234
|
mutation: "read",
|
|
5325
|
-
http: { method: "GET", path: "/v1/cli/session" },
|
|
5326
5235
|
input: emptyInput3,
|
|
5327
5236
|
cli: {
|
|
5328
5237
|
command: ["context"],
|
|
@@ -5347,7 +5256,6 @@ var logoutCapability = defineCapability({
|
|
|
5347
5256
|
roles: ["user"],
|
|
5348
5257
|
description: "Revoke the remote CLI session and clear its local bearer.",
|
|
5349
5258
|
mutation: "local",
|
|
5350
|
-
http: { method: "DELETE", path: "/v1/cli/session" },
|
|
5351
5259
|
input: emptyInput3,
|
|
5352
5260
|
cli: {
|
|
5353
5261
|
command: ["logout"],
|
|
@@ -5371,7 +5279,6 @@ var whoamiCapability = defineCapability({
|
|
|
5371
5279
|
roles: ["user", "admin"],
|
|
5372
5280
|
description: "Show the signed-in Ornn user and organization.",
|
|
5373
5281
|
mutation: "read",
|
|
5374
|
-
http: { method: "GET", path: "/v1/cli/session" },
|
|
5375
5282
|
input: emptyInput3,
|
|
5376
5283
|
execute: async (ctx) => getCliSession(ctx.fetch)
|
|
5377
5284
|
});
|
|
@@ -5381,7 +5288,6 @@ var statusCapability = defineCapability({
|
|
|
5381
5288
|
roles: ["user", "admin"],
|
|
5382
5289
|
description: "Show Ornn platform status.",
|
|
5383
5290
|
mutation: "read",
|
|
5384
|
-
http: { method: "GET", path: "/v1/cli/status" },
|
|
5385
5291
|
input: emptyInput3,
|
|
5386
5292
|
execute: async (ctx) => getCliStatus(ctx.fetch),
|
|
5387
5293
|
cli: {
|
|
@@ -5482,7 +5388,6 @@ var listCatalogTermsCapability = defineCapability({
|
|
|
5482
5388
|
roles: ["admin"],
|
|
5483
5389
|
description: "Dump the orchestrator hardware dictionary (display name + aliases). Call once and pick from it. Hardware fields on listings must match a term. Optional kind filter: gpu, cpu, node, or link.",
|
|
5484
5390
|
mutation: "read",
|
|
5485
|
-
http: { method: "GET", path: hardwareCatalogPath },
|
|
5486
5391
|
slack: {
|
|
5487
5392
|
parameters: {
|
|
5488
5393
|
type: "object",
|
|
@@ -5606,7 +5511,6 @@ var createListingCapability = defineCapability({
|
|
|
5606
5511
|
roles: ["admin"],
|
|
5607
5512
|
description: "Create a primary marketplace listing (admin). gpu_type, cpu, node_model, and fabric_type must exact-match an orchestrator catalog display name, canonical, or alias; gpu_type becomes the listing's GPU slug. buy_now_price_per_gpu_hour is the customer price; deposit_percent is the upfront payment as a percentage of the full availability window. Nodes are attached afterwards. Slack never POSTs until a human replies confirm. MCP and CLI use native listing.create instead.",
|
|
5608
5513
|
mutation: "preview-confirm",
|
|
5609
|
-
http: { method: "POST", path: "/commerce/v2/listings" },
|
|
5610
5514
|
slack: { parameters: slackListingCreateParams },
|
|
5611
5515
|
input: listingCreateInput,
|
|
5612
5516
|
execute: async (ctx, input) => {
|
|
@@ -5815,7 +5719,6 @@ var organizationInviteCapability = defineCapability({
|
|
|
5815
5719
|
|
|
5816
5720
|
// ../../packages/capabilities/dist/capabilities/networks.js
|
|
5817
5721
|
import { z as z27 } from "zod";
|
|
5818
|
-
var NETWORKS_PATH = "/v1/orchestrator/networks";
|
|
5819
5722
|
var globalInput = {
|
|
5820
5723
|
$positionals: z27.array(z27.string()).optional(),
|
|
5821
5724
|
guided: z27.boolean().optional(),
|
|
@@ -6102,7 +6005,6 @@ var networkVerbCapabilities = [
|
|
|
6102
6005
|
roles: ["user"],
|
|
6103
6006
|
description: "List this tenant's private networks.",
|
|
6104
6007
|
mutation: "read",
|
|
6105
|
-
http: { method: "GET", path: NETWORKS_PATH },
|
|
6106
6008
|
input: z27.object({}),
|
|
6107
6009
|
mcp: { name: "networks_list" },
|
|
6108
6010
|
slack: false,
|
|
@@ -6114,7 +6016,6 @@ var networkVerbCapabilities = [
|
|
|
6114
6016
|
roles: ["user"],
|
|
6115
6017
|
description: "Show a single private network by id.",
|
|
6116
6018
|
mutation: "read",
|
|
6117
|
-
http: { method: "GET", path: `${NETWORKS_PATH}/{networkId}` },
|
|
6118
6019
|
input: z27.object({ networkId: z27.string() }),
|
|
6119
6020
|
mcp: { name: "networks_show" },
|
|
6120
6021
|
slack: false,
|
|
@@ -6126,7 +6027,6 @@ var networkVerbCapabilities = [
|
|
|
6126
6027
|
roles: ["user"],
|
|
6127
6028
|
description: "Create a private network.",
|
|
6128
6029
|
mutation: "preview-confirm",
|
|
6129
|
-
http: { method: "POST", path: NETWORKS_PATH },
|
|
6130
6030
|
input: z27.object({
|
|
6131
6031
|
name: z27.string(),
|
|
6132
6032
|
cidr: z27.string().optional(),
|
|
@@ -6147,7 +6047,6 @@ var networkVerbCapabilities = [
|
|
|
6147
6047
|
roles: ["user"],
|
|
6148
6048
|
description: "Update a private network's name or description. Pass clearDescription: true to null out the description instead of setting it.",
|
|
6149
6049
|
mutation: "preview-confirm",
|
|
6150
|
-
http: { method: "PATCH", path: `${NETWORKS_PATH}/{networkId}` },
|
|
6151
6050
|
input: networkUpdateFields,
|
|
6152
6051
|
mcp: { name: "networks_update" },
|
|
6153
6052
|
slack: false,
|
|
@@ -6162,7 +6061,6 @@ var networkVerbCapabilities = [
|
|
|
6162
6061
|
roles: ["user"],
|
|
6163
6062
|
description: "Delete a private network.",
|
|
6164
6063
|
mutation: "preview-confirm",
|
|
6165
|
-
http: { method: "DELETE", path: `${NETWORKS_PATH}/{networkId}` },
|
|
6166
6064
|
input: z27.object({ networkId: z27.string(), confirm: z27.boolean().optional() }),
|
|
6167
6065
|
mcp: { name: "networks_delete" },
|
|
6168
6066
|
slack: false,
|
|
@@ -6178,10 +6076,6 @@ var networkVerbCapabilities = [
|
|
|
6178
6076
|
roles: ["user"],
|
|
6179
6077
|
description: "List WireGuard VPN peers registered on a reservation.",
|
|
6180
6078
|
mutation: "read",
|
|
6181
|
-
http: {
|
|
6182
|
-
method: "GET",
|
|
6183
|
-
path: "/v1/orchestrator/networks/shared/peers"
|
|
6184
|
-
},
|
|
6185
6079
|
input: z27.object({ reservationId: z27.string() }),
|
|
6186
6080
|
mcp: { name: "vpn_peers_list" },
|
|
6187
6081
|
slack: false,
|
|
@@ -6193,10 +6087,6 @@ var networkVerbCapabilities = [
|
|
|
6193
6087
|
roles: ["user"],
|
|
6194
6088
|
description: "Register a WireGuard VPN peer public key on a reservation.",
|
|
6195
6089
|
mutation: "preview-confirm",
|
|
6196
|
-
http: {
|
|
6197
|
-
method: "POST",
|
|
6198
|
-
path: "/v1/orchestrator/networks/shared/peers"
|
|
6199
|
-
},
|
|
6200
6090
|
input: z27.object({
|
|
6201
6091
|
reservationId: z27.string(),
|
|
6202
6092
|
publicKey: z27.string(),
|
|
@@ -6216,10 +6106,6 @@ var networkVerbCapabilities = [
|
|
|
6216
6106
|
roles: ["user"],
|
|
6217
6107
|
description: "Revoke a WireGuard VPN peer from a reservation.",
|
|
6218
6108
|
mutation: "preview-confirm",
|
|
6219
|
-
http: {
|
|
6220
|
-
method: "DELETE",
|
|
6221
|
-
path: "/v1/orchestrator/networks/shared/peers/{peerId}"
|
|
6222
|
-
},
|
|
6223
6109
|
input: z27.object({
|
|
6224
6110
|
reservationId: z27.string(),
|
|
6225
6111
|
peerId: z27.string(),
|
|
@@ -6233,7 +6119,6 @@ var networkVerbCapabilities = [
|
|
|
6233
6119
|
|
|
6234
6120
|
// ../../packages/capabilities/dist/capabilities/registry.js
|
|
6235
6121
|
import { z as z28 } from "zod";
|
|
6236
|
-
var REGISTRY_PATH = "/v1/orchestrator/registry";
|
|
6237
6122
|
var globalInput2 = {
|
|
6238
6123
|
$positionals: z28.array(z28.string()).default([]),
|
|
6239
6124
|
yes: z28.boolean().optional()
|
|
@@ -6292,7 +6177,6 @@ var registryShowCapability = defineCapability({
|
|
|
6292
6177
|
roles: ["user"],
|
|
6293
6178
|
description: "Show the organization's container registry: the host to docker login to and the namespace every image is pushed under.",
|
|
6294
6179
|
mutation: "read",
|
|
6295
|
-
http: { method: "GET", path: REGISTRY_PATH },
|
|
6296
6180
|
input: emptyInput4,
|
|
6297
6181
|
cli: {
|
|
6298
6182
|
command: ["registry", "show"],
|
|
@@ -6327,7 +6211,6 @@ var registryRepositoriesListCapability = defineCapability({
|
|
|
6327
6211
|
roles: ["user"],
|
|
6328
6212
|
description: "List the repositories in the organization's container registry that have a tag.",
|
|
6329
6213
|
mutation: "read",
|
|
6330
|
-
http: { method: "GET", path: `${REGISTRY_PATH}/repositories` },
|
|
6331
6214
|
input: emptyInput4,
|
|
6332
6215
|
cli: {
|
|
6333
6216
|
command: ["registry", "repositories", "list"],
|
|
@@ -6362,7 +6245,6 @@ var registryTagsListCapability = defineCapability({
|
|
|
6362
6245
|
roles: ["user"],
|
|
6363
6246
|
description: "List one repository's tags with the digest each names, the bytes the image occupies, and when it was built.",
|
|
6364
6247
|
mutation: "read",
|
|
6365
|
-
http: { method: "GET", path: `${REGISTRY_PATH}/tags` },
|
|
6366
6248
|
input: repositoryInput,
|
|
6367
6249
|
cli: {
|
|
6368
6250
|
command: ["registry", "tags", "list"],
|
|
@@ -6400,7 +6282,6 @@ var registryTagsDeleteCapability = defineCapability({
|
|
|
6400
6282
|
roles: ["user"],
|
|
6401
6283
|
description: "Delete a tag from the organization's container registry. Pods and Slurm jobs that name it can no longer pull it; each cluster drops its copy within a minute, and the registry frees the space no other tag uses, pausing pushes for about a minute while it does.",
|
|
6402
6284
|
mutation: "preview-confirm",
|
|
6403
|
-
http: { method: "DELETE", path: `${REGISTRY_PATH}/tags` },
|
|
6404
6285
|
input: tagInput,
|
|
6405
6286
|
cli: {
|
|
6406
6287
|
command: ["registry", "tags", "delete"],
|
|
@@ -6470,7 +6351,6 @@ var registryUsageCapability = defineCapability({
|
|
|
6470
6351
|
roles: ["user"],
|
|
6471
6352
|
description: "Show the bytes the organization's tagged images occupy in its container registry, each layer counted once.",
|
|
6472
6353
|
mutation: "read",
|
|
6473
|
-
http: { method: "GET", path: `${REGISTRY_PATH}/usage` },
|
|
6474
6354
|
input: emptyInput4,
|
|
6475
6355
|
cli: {
|
|
6476
6356
|
command: ["registry", "usage"],
|
|
@@ -6502,7 +6382,6 @@ var registryCopiesListCapability = defineCapability({
|
|
|
6502
6382
|
roles: ["user"],
|
|
6503
6383
|
description: "List, for each of the organization's clusters, the registry tags its own copy holds now and the digest it holds them at, so a push or delete can be followed until every cluster has it.",
|
|
6504
6384
|
mutation: "read",
|
|
6505
|
-
http: { method: "GET", path: `${REGISTRY_PATH}/caches` },
|
|
6506
6385
|
input: emptyInput4,
|
|
6507
6386
|
cli: {
|
|
6508
6387
|
command: ["registry", "copies", "list"],
|
|
@@ -6574,7 +6453,6 @@ var reservationListCapability = defineCapability({
|
|
|
6574
6453
|
roles: ["admin"],
|
|
6575
6454
|
description: "Internal staff only: list Commerce reservations across organizations, optionally filtered by customer organization (customerId), listing, listing term, and derived status. Resolve a customer's organization with users.list or organization.list first; pass each reservationId to nodes.list reservation_id for its machines. Page with nextCursor as cursor.",
|
|
6576
6455
|
mutation: "read",
|
|
6577
|
-
http: { method: "GET", path: "/commerce/reservations" },
|
|
6578
6456
|
cli: {
|
|
6579
6457
|
command: ["admin", "reservations", "list"],
|
|
6580
6458
|
vnext: {
|
|
@@ -6793,7 +6671,6 @@ var volumeCapabilities = [
|
|
|
6793
6671
|
related: ["volumes files list"]
|
|
6794
6672
|
})
|
|
6795
6673
|
];
|
|
6796
|
-
var DRIVES_ROUTE = "/v1/orchestrator/drives";
|
|
6797
6674
|
var reservationInput = z30.object({ reservationId: z30.string() });
|
|
6798
6675
|
var reservationWrite = reservationInput.extend({ confirm: z30.boolean().optional() });
|
|
6799
6676
|
var driveInput = z30.object({ driveId: z30.string() });
|
|
@@ -6824,10 +6701,6 @@ var storageVerbCapabilities = [
|
|
|
6824
6701
|
roles: ["user"],
|
|
6825
6702
|
description: "Attach an existing storage volume (drive) to a reservation -- the inverse of storage_undeploy. Always mounts at the platform path /home/tenant/volume (fuse). There is no customer mount-path override.",
|
|
6826
6703
|
mutation: "preview-confirm",
|
|
6827
|
-
http: {
|
|
6828
|
-
method: "POST",
|
|
6829
|
-
path: "/v1/workflows/compute/nodes/reservations/{reservationId}/storage-deployment"
|
|
6830
|
-
},
|
|
6831
6704
|
input: reservationWrite.extend({ driveId: z30.string(), readOnly: z30.boolean().optional() }),
|
|
6832
6705
|
slack: false,
|
|
6833
6706
|
execute: (ctx, input) => deployReservationStorage(ctx.fetch, input.reservationId, {
|
|
@@ -6841,10 +6714,6 @@ var storageVerbCapabilities = [
|
|
|
6841
6714
|
roles: ["user"],
|
|
6842
6715
|
description: "Detach the reservation storage attachment (after unmount) so the volume can be deleted.",
|
|
6843
6716
|
mutation: "preview-confirm",
|
|
6844
|
-
http: {
|
|
6845
|
-
method: "DELETE",
|
|
6846
|
-
path: "/v1/workflows/compute/nodes/reservations/{reservationId}/storage-attachment"
|
|
6847
|
-
},
|
|
6848
6717
|
input: reservationWrite,
|
|
6849
6718
|
slack: false,
|
|
6850
6719
|
execute: (ctx, input) => detachReservationStorage(ctx.fetch, input.reservationId)
|
|
@@ -6855,10 +6724,6 @@ var storageVerbCapabilities = [
|
|
|
6855
6724
|
roles: ["user"],
|
|
6856
6725
|
description: "Show a reservation's storage deployment (attachment) status.",
|
|
6857
6726
|
mutation: "read",
|
|
6858
|
-
http: {
|
|
6859
|
-
method: "GET",
|
|
6860
|
-
path: "/v1/workflows/compute/nodes/reservations/{reservationId}/storage-attachment"
|
|
6861
|
-
},
|
|
6862
6727
|
input: reservationInput,
|
|
6863
6728
|
slack: false,
|
|
6864
6729
|
execute: (ctx, input) => getReservationStorageAttachment(ctx.fetch, input.reservationId)
|
|
@@ -6869,7 +6734,6 @@ var storageVerbCapabilities = [
|
|
|
6869
6734
|
roles: ["user"],
|
|
6870
6735
|
description: "List reservations that can receive a storage deploy, grouped the same way as the console picker.",
|
|
6871
6736
|
mutation: "read",
|
|
6872
|
-
http: { method: "GET", path: "/v1/orchestrator/storage-targets" },
|
|
6873
6737
|
input: z30.object({}),
|
|
6874
6738
|
slack: false,
|
|
6875
6739
|
execute: (ctx) => listStorageTargets(ctx.fetch)
|
|
@@ -6880,7 +6744,6 @@ var storageVerbCapabilities = [
|
|
|
6880
6744
|
roles: ["user"],
|
|
6881
6745
|
description: "List a page of storage volumes, newest updated first. Pass next_cursor as cursor to continue.",
|
|
6882
6746
|
mutation: "read",
|
|
6883
|
-
http: { method: "GET", path: DRIVES_ROUTE },
|
|
6884
6747
|
input: z30.object({
|
|
6885
6748
|
limit: z30.number().int().min(1).max(100).optional(),
|
|
6886
6749
|
cursor: z30.string().optional()
|
|
@@ -6898,7 +6761,6 @@ var storageVerbCapabilities = [
|
|
|
6898
6761
|
roles: ["user"],
|
|
6899
6762
|
description: "Show a single storage volume (drive) by id.",
|
|
6900
6763
|
mutation: "read",
|
|
6901
|
-
http: { method: "GET", path: `${DRIVES_ROUTE}/{driveId}` },
|
|
6902
6764
|
input: driveInput,
|
|
6903
6765
|
mcp: { name: "storage_volumes_show" },
|
|
6904
6766
|
slack: false,
|
|
@@ -6910,7 +6772,6 @@ var storageVerbCapabilities = [
|
|
|
6910
6772
|
roles: ["user"],
|
|
6911
6773
|
description: "Create a storage volume (drive), optionally cloned from an existing source drive.",
|
|
6912
6774
|
mutation: "preview-confirm",
|
|
6913
|
-
http: { method: "POST", path: DRIVES_ROUTE },
|
|
6914
6775
|
input: z30.object({
|
|
6915
6776
|
name: z30.string(),
|
|
6916
6777
|
sourceDriveId: z30.string().optional(),
|
|
@@ -6929,7 +6790,6 @@ var storageVerbCapabilities = [
|
|
|
6929
6790
|
roles: ["user"],
|
|
6930
6791
|
description: "Refresh a storage volume's (drive's) reported usage/state.",
|
|
6931
6792
|
mutation: "preview-confirm",
|
|
6932
|
-
http: { method: "GET", path: `${DRIVES_ROUTE}/{driveId}` },
|
|
6933
6793
|
input: driveWrite,
|
|
6934
6794
|
mcp: { name: "storage_volumes_refresh" },
|
|
6935
6795
|
slack: false,
|
|
@@ -6941,7 +6801,6 @@ var storageVerbCapabilities = [
|
|
|
6941
6801
|
roles: ["user"],
|
|
6942
6802
|
description: "Clear (empty) a storage volume's (drive's) contents without deleting the drive.",
|
|
6943
6803
|
mutation: "preview-confirm",
|
|
6944
|
-
http: { method: "DELETE", path: `${DRIVES_ROUTE}/{driveId}/contents` },
|
|
6945
6804
|
input: driveWrite,
|
|
6946
6805
|
mcp: { name: "storage_volumes_clear" },
|
|
6947
6806
|
slack: false,
|
|
@@ -6957,7 +6816,6 @@ var storageVerbCapabilities = [
|
|
|
6957
6816
|
roles: ["user"],
|
|
6958
6817
|
description: "Delete a storage volume (drive).",
|
|
6959
6818
|
mutation: "preview-confirm",
|
|
6960
|
-
http: { method: "DELETE", path: `${DRIVES_ROUTE}/{driveId}` },
|
|
6961
6819
|
input: driveWrite,
|
|
6962
6820
|
mcp: { name: "storage_volumes_delete" },
|
|
6963
6821
|
slack: false,
|
|
@@ -6972,7 +6830,6 @@ var storageVerbCapabilities = [
|
|
|
6972
6830
|
roles: ["user"],
|
|
6973
6831
|
description: "Connect an external bucket (GCS, S3, or Cloudflare R2) as a storage volume. Cloudflare R2 deployment support is coming soon (connect succeeds, but deployment is not yet available).",
|
|
6974
6832
|
mutation: "preview-confirm",
|
|
6975
|
-
http: { method: "POST", path: DRIVES_ROUTE },
|
|
6976
6833
|
input: bucketConnectInput,
|
|
6977
6834
|
mcp: { name: "storage_buckets_connect" },
|
|
6978
6835
|
slack: false,
|
|
@@ -7000,7 +6857,6 @@ var storageVerbCapabilities = [
|
|
|
7000
6857
|
roles: ["user"],
|
|
7001
6858
|
description: "Verify a connected S3-compatible bucket's source credentials/connectivity.",
|
|
7002
6859
|
mutation: "preview-confirm",
|
|
7003
|
-
http: { method: "PATCH", path: `${DRIVES_ROUTE}/{driveId}` },
|
|
7004
6860
|
input: driveWrite,
|
|
7005
6861
|
mcp: { name: "storage_buckets_verify" },
|
|
7006
6862
|
slack: false,
|
|
@@ -7012,7 +6868,6 @@ var storageVerbCapabilities = [
|
|
|
7012
6868
|
roles: ["user"],
|
|
7013
6869
|
description: "Update a connected S3-compatible bucket's access key credentials.",
|
|
7014
6870
|
mutation: "preview-confirm",
|
|
7015
|
-
http: { method: "PATCH", path: `${DRIVES_ROUTE}/{driveId}` },
|
|
7016
6871
|
input: driveWrite.extend({ accessKeyId: z30.string(), secretAccessKey: z30.string() }),
|
|
7017
6872
|
mcp: { name: "storage_buckets_update_credentials" },
|
|
7018
6873
|
slack: false,
|
|
@@ -7024,33 +6879,32 @@ var storageVerbCapabilities = [
|
|
|
7024
6879
|
})
|
|
7025
6880
|
})
|
|
7026
6881
|
];
|
|
7027
|
-
var
|
|
7028
|
-
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
|
|
7032
|
-
|
|
7033
|
-
|
|
7034
|
-
|
|
7035
|
-
|
|
7036
|
-
limit: z30.number().int().min(1).max(100).optional(),
|
|
7037
|
-
cursor: z30.string().optional()
|
|
7038
|
-
}),
|
|
7039
|
-
mcp: false,
|
|
7040
|
-
slack: false,
|
|
7041
|
-
execute: (ctx, input) => listDrives(ctx.fetch, {
|
|
7042
|
-
limit: input.limit ?? 25,
|
|
7043
|
-
scope: "external",
|
|
7044
|
-
...input.cursor ? { cursor: input.cursor } : {}
|
|
7045
|
-
})
|
|
6882
|
+
var bucketListCapability = defineCapability({
|
|
6883
|
+
id: "bucket.list",
|
|
6884
|
+
domain: "storage",
|
|
6885
|
+
roles: ["user"],
|
|
6886
|
+
description: "List a page of connected external buckets. Pass next_cursor as cursor to continue.",
|
|
6887
|
+
mutation: "read",
|
|
6888
|
+
input: z30.object({
|
|
6889
|
+
limit: z30.number().int().min(1).max(100).optional(),
|
|
6890
|
+
cursor: z30.string().optional()
|
|
7046
6891
|
}),
|
|
6892
|
+
mcp: { name: "storage_buckets_list" },
|
|
6893
|
+
slack: false,
|
|
6894
|
+
execute: (ctx, input) => listDrives(ctx.fetch, {
|
|
6895
|
+
limit: input.limit ?? 25,
|
|
6896
|
+
scope: "external",
|
|
6897
|
+
...input.cursor ? { cursor: input.cursor } : {}
|
|
6898
|
+
})
|
|
6899
|
+
});
|
|
6900
|
+
var storageCompositionCapabilities = [
|
|
6901
|
+
bucketListCapability,
|
|
7047
6902
|
defineCapability({
|
|
7048
6903
|
id: "volume.contents",
|
|
7049
6904
|
domain: "storage",
|
|
7050
6905
|
roles: ["user"],
|
|
7051
6906
|
description: "List one page of a storage volume's contents.",
|
|
7052
6907
|
mutation: "read",
|
|
7053
|
-
http: { method: "GET", path: `${DRIVES_ROUTE}/{driveId}/contents` },
|
|
7054
6908
|
input: z30.object({
|
|
7055
6909
|
driveId: z30.string(),
|
|
7056
6910
|
path: z30.string().optional(),
|