@ornncompute/cli 0.2.23 → 1.0.25

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.
Files changed (85) hide show
  1. package/README.md +304 -420
  2. package/package.json +12 -6
  3. package/src/admin-capacity-reservations.mjs +280 -0
  4. package/src/admin-command-handlers.mjs +57 -0
  5. package/src/admin-enrollment.mjs +680 -0
  6. package/src/admin-mutations.mjs +187 -0
  7. package/src/admin-node-diagnostics.mjs +412 -0
  8. package/src/admin-node-lifecycle.mjs +908 -0
  9. package/src/admin-shell.mjs +322 -0
  10. package/src/api-client.mjs +81 -28
  11. package/src/atomic-output.mjs +112 -0
  12. package/src/auth-store.mjs +182 -11
  13. package/src/capability-catalog.mjs +7 -0
  14. package/src/catalog-shell.mjs +1350 -0
  15. package/src/cli.mjs +123 -10266
  16. package/src/connect-mode-handlers.mjs +170 -0
  17. package/src/device-auth.mjs +178 -61
  18. package/src/evidence-commands.mjs +1340 -0
  19. package/src/external-bucket-commands.mjs +1374 -0
  20. package/src/interaction-runtime.mjs +310 -0
  21. package/src/kubernetes-commands.mjs +2229 -0
  22. package/src/launch-mode-handlers.mjs +119 -0
  23. package/src/machine-reference.mjs +277 -0
  24. package/src/mount-commands.mjs +1146 -0
  25. package/src/session-commands.mjs +565 -0
  26. package/src/slurm-commands.mjs +263 -0
  27. package/src/startup.mjs +34 -11
  28. package/src/storage-commands.mjs +1144 -0
  29. package/src/update.mjs +172 -24
  30. package/src/vm-commands.mjs +4273 -0
  31. package/src/vpn-secret-output.mjs +150 -0
  32. package/src/wait-runtime.mjs +231 -0
  33. package/vendor/capabilities/capabilities/admin-capacity-reservations.js +126 -0
  34. package/vendor/capabilities/capabilities/admin-enrollment.js +321 -0
  35. package/vendor/capabilities/capabilities/admin-node-diagnostics.js +88 -0
  36. package/vendor/capabilities/capabilities/admin-nodes-lifecycle.js +235 -0
  37. package/vendor/capabilities/capabilities/admin.js +89 -0
  38. package/vendor/capabilities/capabilities/capacity-offers.js +368 -0
  39. package/vendor/capabilities/capabilities/cli.js +156 -0
  40. package/vendor/capabilities/capabilities/clusters.js +150 -1
  41. package/vendor/capabilities/capabilities/compute.js +522 -0
  42. package/vendor/capabilities/capabilities/evidence.js +145 -0
  43. package/vendor/capabilities/capabilities/external-buckets.js +191 -0
  44. package/vendor/capabilities/capabilities/fleet.js +21 -5
  45. package/vendor/capabilities/capabilities/identity.js +114 -3
  46. package/vendor/capabilities/capabilities/listings.js +14 -8
  47. package/vendor/capabilities/capabilities/mounts.js +176 -0
  48. package/vendor/capabilities/capabilities/networks.js +1257 -0
  49. package/vendor/capabilities/capabilities/observability.js +38 -8
  50. package/vendor/capabilities/capabilities/tokens.js +20 -8
  51. package/vendor/capabilities/capabilities/volumes.js +178 -0
  52. package/vendor/capabilities/capability.js +19 -13
  53. package/vendor/capabilities/cli-catalog.js +65 -0
  54. package/vendor/capabilities/cli-migrations.js +288 -0
  55. package/vendor/capabilities/cli.js +7 -0
  56. package/vendor/capabilities/software-catalog.js +36 -0
  57. package/vendor/capabilities/spec-catalog.js +2 -2
  58. package/src/catalog-dispatch.mjs +0 -605
  59. package/src/color.mjs +0 -71
  60. package/vendor/capabilities/capabilities/clusters.d.ts +0 -2
  61. package/vendor/capabilities/capabilities/fleet.d.ts +0 -8
  62. package/vendor/capabilities/capabilities/identity.d.ts +0 -3
  63. package/vendor/capabilities/capabilities/listings.d.ts +0 -51
  64. package/vendor/capabilities/capabilities/observability.d.ts +0 -5
  65. package/vendor/capabilities/capabilities/staff-access.d.ts +0 -29
  66. package/vendor/capabilities/capabilities/staff-access.js +0 -278
  67. package/vendor/capabilities/capabilities/staff-commerce.d.ts +0 -160
  68. package/vendor/capabilities/capabilities/staff-commerce.js +0 -689
  69. package/vendor/capabilities/capabilities/staff-fleet.d.ts +0 -140
  70. package/vendor/capabilities/capabilities/staff-fleet.js +0 -538
  71. package/vendor/capabilities/capabilities/staff-gtm.d.ts +0 -142
  72. package/vendor/capabilities/capabilities/staff-gtm.js +0 -521
  73. package/vendor/capabilities/capabilities/staff-shared.d.ts +0 -47
  74. package/vendor/capabilities/capabilities/staff-shared.js +0 -98
  75. package/vendor/capabilities/capabilities/tokens.d.ts +0 -10
  76. package/vendor/capabilities/capabilities/users.d.ts +0 -2
  77. package/vendor/capabilities/capability.d.ts +0 -93
  78. package/vendor/capabilities/catalog.d.ts +0 -3
  79. package/vendor/capabilities/catalog.js +0 -26
  80. package/vendor/capabilities/index.d.ts +0 -16
  81. package/vendor/capabilities/index.js +0 -16
  82. package/vendor/capabilities/names.d.ts +0 -6
  83. package/vendor/capabilities/role.d.ts +0 -6
  84. package/vendor/capabilities/role.js +0 -17
  85. package/vendor/capabilities/spec-catalog.d.ts +0 -78
@@ -1,51 +0,0 @@
1
- import { z } from "zod";
2
- export declare const listingCreateInput: z.ZodObject<{
3
- operatorId: z.ZodOptional<z.ZodString>;
4
- operator_id: z.ZodOptional<z.ZodString>;
5
- facilityId: z.ZodOptional<z.ZodString>;
6
- facility_id: z.ZodOptional<z.ZodString>;
7
- kind: z.ZodOptional<z.ZodEnum<{
8
- link: "link";
9
- gpu: "gpu";
10
- cpu: "cpu";
11
- node: "node";
12
- }>>;
13
- gpu: z.ZodOptional<z.ZodString>;
14
- cpu: z.ZodOptional<z.ZodString>;
15
- site: z.ZodOptional<z.ZodString>;
16
- fabric: z.ZodOptional<z.ZodString>;
17
- min_nodes: z.ZodOptional<z.ZodNumber>;
18
- starts_after: z.ZodOptional<z.ZodString>;
19
- starts_before: z.ZodOptional<z.ZodString>;
20
- ends_after: z.ZodOptional<z.ZodString>;
21
- ends_before: z.ZodOptional<z.ZodString>;
22
- gpu_type: z.ZodOptional<z.ZodString>;
23
- node_model: z.ZodOptional<z.ZodString>;
24
- fabric_type: z.ZodOptional<z.ZodString>;
25
- node_count: z.ZodOptional<z.ZodNumber>;
26
- gpus_per_node: z.ZodOptional<z.ZodNumber>;
27
- site_nickname: z.ZodOptional<z.ZodString>;
28
- site_operator: z.ZodOptional<z.ZodString>;
29
- ram: z.ZodOptional<z.ZodString>;
30
- storage: z.ZodOptional<z.ZodString>;
31
- internet: z.ZodOptional<z.ZodString>;
32
- network_hardware: z.ZodOptional<z.ZodString>;
33
- available_start_at: z.ZodOptional<z.ZodString>;
34
- available_end_at: z.ZodOptional<z.ZodString>;
35
- available_from: z.ZodOptional<z.ZodString>;
36
- available_to: z.ZodOptional<z.ZodString>;
37
- buy_now_price_per_gpu_hour: z.ZodOptional<z.ZodNumber>;
38
- cost_per_gpu_hour: z.ZodOptional<z.ZodNumber>;
39
- deposit_percent: z.ZodOptional<z.ZodNumber>;
40
- price_omitted: z.ZodOptional<z.ZodBoolean>;
41
- announce: z.ZodOptional<z.ZodBoolean>;
42
- text: z.ZodOptional<z.ZodString>;
43
- confirm: z.ZodOptional<z.ZodBoolean>;
44
- }, z.core.$strip>;
45
- export declare const listCatalogTermsCapability: import("../capability.ts").Capability<unknown, unknown>;
46
- export declare const listListingsCapability: import("../capability.ts").Capability<unknown, unknown>;
47
- export declare const forecastListingsCapability: import("../capability.ts").Capability<unknown, unknown>;
48
- export declare const createListingCapability: import("../capability.ts").Capability<unknown, unknown>;
49
- export declare const listingCapabilities: import("../capability.ts").Capability<unknown, unknown>[];
50
- /** @deprecated Use createListingCapability. */
51
- export declare const proposeListingCapability: import("../capability.ts").Capability<unknown, unknown>;
@@ -1,5 +0,0 @@
1
- export declare const telemetryLatestCapability: import("../capability.ts").Capability<unknown, unknown>;
2
- export declare const logsLatestCapability: import("../capability.ts").Capability<unknown, unknown>;
3
- export declare const telemetryTailCapability: import("../capability.ts").Capability<unknown, unknown>;
4
- export declare const logsTailCapability: import("../capability.ts").Capability<unknown, unknown>;
5
- export declare const observabilityCapabilities: import("../capability.ts").Capability<unknown, unknown>[];
@@ -1,29 +0,0 @@
1
- import { z } from "zod";
2
- export declare const sshKeyPushInput: z.ZodObject<{
3
- instanceId: z.ZodString;
4
- reservationId: z.ZodString;
5
- tenantId: z.ZodString;
6
- authUserId: z.ZodString;
7
- sshKeyIds: z.ZodArray<z.ZodString>;
8
- requestId: z.ZodOptional<z.ZodString>;
9
- confirm: z.ZodOptional<z.ZodBoolean>;
10
- }, z.core.$strip>;
11
- export declare const sshKeyPushCapability: import("../capability.ts").Capability<unknown, unknown>;
12
- export declare const sshKeyAddInput: z.ZodObject<{
13
- reservationId: z.ZodString;
14
- tenantId: z.ZodString;
15
- authUserId: z.ZodString;
16
- publicKey: z.ZodOptional<z.ZodString>;
17
- label: z.ZodOptional<z.ZodString>;
18
- sshKeyId: z.ZodOptional<z.ZodString>;
19
- push: z.ZodOptional<z.ZodBoolean>;
20
- confirm: z.ZodOptional<z.ZodBoolean>;
21
- }, z.core.$strip>;
22
- export declare const sshKeyAddCapability: import("../capability.ts").Capability<unknown, unknown>;
23
- export declare const sshKeyRevokeInput: z.ZodObject<{
24
- tenantId: z.ZodString;
25
- keyId: z.ZodString;
26
- confirm: z.ZodOptional<z.ZodBoolean>;
27
- }, z.core.$strip>;
28
- export declare const sshKeyRevokeCapability: import("../capability.ts").Capability<unknown, unknown>;
29
- export declare const staffAccessCapabilities: import("../capability.ts").Capability<unknown, unknown>[];
@@ -1,278 +0,0 @@
1
- import { z } from "zod";
2
- import { defineStaffMcpCapability, preview } from "../capability.js";
3
- import { mapBody, seg, statusOf } from "./staff-shared.js";
4
- // Staff SSH-access verbs. MCP-only — see `defineStaffMcpCapability`.
5
- //
6
- // Field contracts from the internal SSH-key routes:
7
- // - push: PATCH /internal/nodes/{instanceId}/keys (or /internal/pods/... for a VM)
8
- // body { ssh_authorized_keys, request_id? }
9
- // - add: POST /internal/v1/reservations/{reservationId}/ssh-keys
10
- // body { public_key, label? }, after authorization owns the public key
11
- // - revoke: DELETE /v1/organizations/{tenantId}/ssh-keys/{keyId}
12
- //
13
- // The routes never forward tenantId/authUserId to the orchestrator as-is — they use them to
14
- // verify the reservation actually belongs to that organization, and that authUserId is a member
15
- // of it (commerce GET /internal/v1/reservations/{id} + authorization GET
16
- // /internal/organizations/{id}/members). Those two checks live in
17
- // `assertReservationOwnedByTenantUser` below so every surface runs them.
18
- /** Acts as the caller for a write the tenant's own user is nominally making. */
19
- const AUTH_USER_HEADER = "X-Auth-User-Id";
20
- /** Live keys only: a revoked or inactive key must never reach a machine. */
21
- function activePublicKeys(keys, wanted) {
22
- return keys
23
- .filter((key) => key.id &&
24
- wanted(key.id) &&
25
- key.status === "active" &&
26
- !key.revoked_at &&
27
- Boolean(key.public_key?.trim()))
28
- .map((key) => key.public_key.trim());
29
- }
30
- async function assertReservationOwnedByTenantUser(ctx, options) {
31
- let reservation;
32
- try {
33
- reservation = (await ctx.fetch(`/internal/v1/reservations/${seg(options.reservationId)}`, {
34
- method: "GET",
35
- }));
36
- }
37
- catch (error) {
38
- if (statusOf(error) === 404) {
39
- throw new Error("Reservation not found.");
40
- }
41
- throw error;
42
- }
43
- if (!reservation?.reservationId) {
44
- throw new Error("Reservation not found.");
45
- }
46
- const organizationId = reservation.organizationId ?? reservation.tenantId;
47
- if (organizationId !== options.tenantId) {
48
- throw new Error("Reservation does not belong to that tenant.");
49
- }
50
- const members = (await ctx.fetch(`/internal/organizations/${seg(options.tenantId)}/members`, {
51
- method: "GET",
52
- }));
53
- if (!members.some((member) => member.user_id === options.authUserId)) {
54
- throw new Error("Selected SSH key owner is not a member of this tenant.");
55
- }
56
- }
57
- async function assertMachineBelongsToReservation(ctx, options) {
58
- const listed = (await ctx.fetch(`/internal/nodes?reservation_id=${seg(options.reservationId)}`, {
59
- method: "GET",
60
- }));
61
- if (!(listed.nodes ?? []).some((node) => node.node_id === options.instanceId || node.id === options.instanceId)) {
62
- throw new Error("Machine does not belong to that reservation.");
63
- }
64
- }
65
- /** A VM's keys live on its pod; a bare-metal node's live on the node itself. */
66
- async function keyTargetPath(ctx, instanceId) {
67
- try {
68
- const pod = (await ctx.fetch(`/internal/pods/${seg(instanceId)}`, { method: "GET" }));
69
- if (pod.kind === "virtual-machine") {
70
- return `/internal/pods/${seg(instanceId)}/keys`;
71
- }
72
- }
73
- catch {
74
- // instanceId is a host node
75
- }
76
- return `/internal/nodes/${seg(instanceId)}/keys`;
77
- }
78
- /**
79
- * Push every key currently attached to a reservation onto its machines.
80
- *
81
- * Mirrors the staff web workflow (gateway `sync_reservation_keys`). Attaching
82
- * a key in commerce only records the grant; without this the key is invisible
83
- * on the machine until someone runs ssh_key_push by hand.
84
- */
85
- async function syncReservationKeys(ctx, options) {
86
- const attached = (await ctx.fetch(`/internal/v1/reservations/${seg(options.reservationId)}/ssh-keys`, { method: "GET" }));
87
- const selected = new Set((attached.sshKeys ?? []).map((row) => row.sshKeyId ?? row.ssh_key_id).filter(Boolean));
88
- const listed = (await ctx.fetch(`/v1/organizations/${seg(options.tenantId)}/ssh-keys`, {
89
- method: "GET",
90
- }));
91
- const sshAuthorizedKeys = activePublicKeys(listed.ssh_keys ?? [], (id) => selected.has(id));
92
- const listedNodes = (await ctx.fetch(`/internal/nodes?reservation_id=${seg(options.reservationId)}`, { method: "GET" }));
93
- const instanceIds = (listedNodes.nodes ?? [])
94
- .map((node) => node.node_id ?? node.id)
95
- .filter((id) => Boolean(id));
96
- for (const instanceId of instanceIds) {
97
- await ctx.fetch(await keyTargetPath(ctx, instanceId), {
98
- method: "PATCH",
99
- body: { ssh_authorized_keys: sshAuthorizedKeys },
100
- });
101
- }
102
- return { machinesSynced: instanceIds.length, keysApplied: sshAuthorizedKeys.length };
103
- }
104
- export const sshKeyPushInput = z.object({
105
- instanceId: z.string(),
106
- reservationId: z.string(),
107
- tenantId: z.string(),
108
- authUserId: z.string(),
109
- sshKeyIds: z.array(z.string()).min(1),
110
- requestId: z.string().optional(),
111
- confirm: z.boolean().optional(),
112
- });
113
- export const sshKeyPushCapability = defineStaffMcpCapability({
114
- id: "ssh-key.push",
115
- domain: "access",
116
- roles: ["admin"],
117
- description: "Internal staff only: push selected reservation SSH keys onto a live machine. " +
118
- "This grants remote access to a live machine. Requires confirm: true.",
119
- mutation: "preview-confirm",
120
- http: { method: "PATCH", path: "/internal/nodes/{instanceId}/keys" },
121
- input: sshKeyPushInput,
122
- execute: async (ctx, input) => {
123
- const parsed = sshKeyPushInput.parse(input);
124
- if (!ctx.confirmed) {
125
- return preview("ssh-key.push", {
126
- instanceId: parsed.instanceId,
127
- reservationId: parsed.reservationId,
128
- sshKeyIds: parsed.sshKeyIds,
129
- });
130
- }
131
- // Sequential, not Promise.all: this is a fail-fast authorization gate, not an independent
132
- // read pair. If the reservation doesn't belong to this tenant/user, there's no reason to
133
- // spend a second round trip checking machine membership.
134
- await assertReservationOwnedByTenantUser(ctx, {
135
- reservationId: parsed.reservationId,
136
- tenantId: parsed.tenantId,
137
- authUserId: parsed.authUserId,
138
- });
139
- await assertMachineBelongsToReservation(ctx, {
140
- reservationId: parsed.reservationId,
141
- instanceId: parsed.instanceId,
142
- });
143
- const listed = (await ctx.fetch(`/v1/organizations/${seg(parsed.tenantId)}/ssh-keys`, {
144
- method: "GET",
145
- }));
146
- const wanted = new Set(parsed.sshKeyIds);
147
- const sshAuthorizedKeys = activePublicKeys(listed.ssh_keys ?? [], (id) => wanted.has(id));
148
- const body = {
149
- ssh_authorized_keys: sshAuthorizedKeys,
150
- ...mapBody(parsed, { requestId: "request_id" }),
151
- };
152
- const keysPath = await keyTargetPath(ctx, parsed.instanceId);
153
- return ctx.fetch(keysPath, {
154
- method: "PATCH",
155
- body,
156
- headers: { [AUTH_USER_HEADER]: parsed.authUserId },
157
- });
158
- },
159
- });
160
- export const sshKeyAddInput = z.object({
161
- reservationId: z.string(),
162
- tenantId: z.string(),
163
- authUserId: z.string(),
164
- publicKey: z.string().min(1).optional(),
165
- label: z.string().optional(),
166
- sshKeyId: z.string().optional(),
167
- push: z.boolean().optional(),
168
- confirm: z.boolean().optional(),
169
- });
170
- export const sshKeyAddCapability = defineStaffMcpCapability({
171
- id: "ssh-key.add",
172
- domain: "access",
173
- roles: ["admin"],
174
- description: "Internal staff only: attach an SSH key to a reservation for a tenant user. " +
175
- "Pass sshKeyId to attach a key the organization already has, or publicKey (with label) " +
176
- "to register a new organization key and attach it. The reservation's machines are resynced " +
177
- "afterwards so the key works immediately; pass push: false to attach without touching them. " +
178
- "Requires confirm: true.",
179
- mutation: "preview-confirm",
180
- http: { method: "POST", path: "/internal/v1/reservations/{reservationId}/ssh-keys" },
181
- input: sshKeyAddInput,
182
- execute: async (ctx, input) => {
183
- const parsed = sshKeyAddInput.parse(input);
184
- if (!parsed.sshKeyId && !parsed.publicKey) {
185
- throw new Error("Pass sshKeyId to attach an existing organization key, or publicKey to register a new one.");
186
- }
187
- if (!ctx.confirmed) {
188
- return preview("ssh-key.add", {
189
- reservationId: parsed.reservationId,
190
- ...(parsed.sshKeyId ? { sshKeyId: parsed.sshKeyId } : { publicKey: parsed.publicKey, label: parsed.label }),
191
- });
192
- }
193
- await assertReservationOwnedByTenantUser(ctx, {
194
- reservationId: parsed.reservationId,
195
- tenantId: parsed.tenantId,
196
- authUserId: parsed.authUserId,
197
- });
198
- // Commerce attaches an existing authorization key by id; it has no notion
199
- // of a public key blob. Registering first mirrors the staff web workflow
200
- // (gateway `add_reservation_key`), which this tool previously bypassed by
201
- // posting `public_key` into a body that only reads `sshKeyId`/`userId`.
202
- let sshKeyId = parsed.sshKeyId;
203
- if (sshKeyId) {
204
- // Commerce stores the id as a soft key without checking authorization,
205
- // so gate it here the way gateway `add_reservation_key` does.
206
- const listed = (await ctx.fetch(`/v1/organizations/${seg(parsed.tenantId)}/ssh-keys`, {
207
- method: "GET",
208
- }));
209
- const key = (listed.ssh_keys ?? []).find((candidate) => candidate.id === sshKeyId);
210
- if (!key) {
211
- throw new Error("SSH key not found.");
212
- }
213
- if (key.status !== "active" || key.revoked_at) {
214
- throw new Error("SSH key is not active.");
215
- }
216
- }
217
- else {
218
- const registered = (await ctx.fetch(`/v1/organizations/${seg(parsed.tenantId)}/ssh-keys`, {
219
- method: "POST",
220
- body: { public_key: parsed.publicKey, ...mapBody(parsed, { label: "label" }) },
221
- }));
222
- if (!registered.id) {
223
- throw new Error("Authorization did not return an SSH key id.");
224
- }
225
- sshKeyId = registered.id;
226
- }
227
- const attached = await ctx.fetch(`/internal/v1/reservations/${seg(parsed.reservationId)}/ssh-keys`, {
228
- method: "POST",
229
- body: { sshKeyId, userId: parsed.authUserId },
230
- headers: { [AUTH_USER_HEADER]: parsed.authUserId },
231
- });
232
- if (parsed.push === false) {
233
- return { attached, pushed: false };
234
- }
235
- // The attach only records the grant. The staff web workflow resyncs the
236
- // reservation's machines in the same action, so a key added here is
237
- // usable immediately rather than only after a separate ssh_key_push.
238
- try {
239
- return { attached, pushed: true, ...(await syncReservationKeys(ctx, parsed)) };
240
- }
241
- catch (error) {
242
- return {
243
- attached,
244
- pushed: false,
245
- pushError: error instanceof Error ? error.message : String(error),
246
- detail: "The key is attached to the reservation but was not pushed to its machines. Run ssh_key_push to retry.",
247
- };
248
- }
249
- },
250
- });
251
- export const sshKeyRevokeInput = z.object({
252
- tenantId: z.string(),
253
- keyId: z.string(),
254
- confirm: z.boolean().optional(),
255
- });
256
- export const sshKeyRevokeCapability = defineStaffMcpCapability({
257
- id: "ssh-key.revoke",
258
- domain: "access",
259
- roles: ["admin"],
260
- description: "Internal staff only: revoke (delete) a tenant-scoped SSH key. Requires confirm: true.",
261
- mutation: "preview-confirm",
262
- http: { method: "DELETE", path: "/v1/organizations/{tenantId}/ssh-keys/{keyId}" },
263
- input: sshKeyRevokeInput,
264
- execute: async (ctx, input) => {
265
- const parsed = sshKeyRevokeInput.parse(input);
266
- if (!ctx.confirmed) {
267
- return preview("ssh-key.revoke", { tenantId: parsed.tenantId, keyId: parsed.keyId });
268
- }
269
- return ctx.fetch(`/v1/organizations/${seg(parsed.tenantId)}/ssh-keys/${seg(parsed.keyId)}`, {
270
- method: "DELETE",
271
- });
272
- },
273
- });
274
- export const staffAccessCapabilities = [
275
- sshKeyPushCapability,
276
- sshKeyAddCapability,
277
- sshKeyRevokeCapability,
278
- ];
@@ -1,160 +0,0 @@
1
- import { z } from "zod";
2
- export declare const reservationCancelInput: z.ZodObject<{
3
- reservationId: z.ZodString;
4
- confirm: z.ZodOptional<z.ZodBoolean>;
5
- }, z.core.$strip>;
6
- export declare const reservationCancelCapability: import("../capability.ts").Capability<unknown, unknown>;
7
- export declare const reservationTransferInput: z.ZodObject<{
8
- reservationId: z.ZodString;
9
- targetTenantId: z.ZodString;
10
- reservedStrategy: z.ZodEnum<{
11
- reject: "reject";
12
- park: "park";
13
- }>;
14
- confirmReservedTransfer: z.ZodOptional<z.ZodBoolean>;
15
- notes: z.ZodOptional<z.ZodString>;
16
- confirm: z.ZodOptional<z.ZodBoolean>;
17
- }, z.core.$strip>;
18
- export declare const reservationTransferCapability: import("../capability.ts").Capability<unknown, unknown>;
19
- export declare const reservationMachinesListInput: z.ZodObject<{
20
- reservationId: z.ZodString;
21
- }, z.core.$strip>;
22
- export declare const reservationMachinesListCapability: import("../capability.ts").Capability<unknown, unknown>;
23
- export declare const reservationSshKeyAddInput: z.ZodObject<{
24
- reservationId: z.ZodString;
25
- tenantId: z.ZodString;
26
- userId: z.ZodString;
27
- sshKeyId: z.ZodOptional<z.ZodString>;
28
- keyId: z.ZodOptional<z.ZodString>;
29
- publicKey: z.ZodOptional<z.ZodString>;
30
- label: z.ZodOptional<z.ZodString>;
31
- confirm: z.ZodOptional<z.ZodBoolean>;
32
- }, z.core.$strip>;
33
- export declare const reservationSshKeyAddCapability: import("../capability.ts").Capability<unknown, unknown>;
34
- export declare const reservationSshKeyRemoveInput: z.ZodObject<{
35
- reservationId: z.ZodString;
36
- keyId: z.ZodString;
37
- userId: z.ZodString;
38
- confirm: z.ZodOptional<z.ZodBoolean>;
39
- }, z.core.$strip>;
40
- export declare const reservationSshKeyRemoveCapability: import("../capability.ts").Capability<unknown, unknown>;
41
- export declare const reservationPublishInput: z.ZodObject<{
42
- reservationId: z.ZodOptional<z.ZodString>;
43
- reservation_id: z.ZodOptional<z.ZodString>;
44
- version: z.ZodOptional<z.ZodNumber>;
45
- awaitDownPayment: z.ZodOptional<z.ZodBoolean>;
46
- await_down_payment: z.ZodOptional<z.ZodBoolean>;
47
- confirm: z.ZodOptional<z.ZodBoolean>;
48
- }, z.core.$strip>;
49
- export declare const reservationPublishCapability: import("../capability.ts").Capability<unknown, unknown>;
50
- export declare const reservationShowInput: z.ZodObject<{
51
- reservationId: z.ZodString;
52
- }, z.core.$strip>;
53
- export declare const reservationShowCapability: import("../capability.ts").Capability<unknown, unknown>;
54
- export declare const reservationListInput: z.ZodObject<{
55
- organizationId: z.ZodOptional<z.ZodString>;
56
- status: z.ZodOptional<z.ZodString>;
57
- cursor: z.ZodOptional<z.ZodString>;
58
- limit: z.ZodOptional<z.ZodNumber>;
59
- }, z.core.$strip>;
60
- export declare const reservationListCapability: import("../capability.ts").Capability<unknown, unknown>;
61
- export declare const bidAcceptInput: z.ZodObject<{
62
- bidId: z.ZodOptional<z.ZodString>;
63
- bid_id: z.ZodOptional<z.ZodString>;
64
- acceptedGpuCount: z.ZodOptional<z.ZodNumber>;
65
- accepted_gpu_count: z.ZodOptional<z.ZodNumber>;
66
- fillNodeCount: z.ZodOptional<z.ZodNumber>;
67
- fill_node_count: z.ZodOptional<z.ZodNumber>;
68
- confirm: z.ZodOptional<z.ZodBoolean>;
69
- }, z.core.$strip>;
70
- export declare const bidAcceptCapability: import("../capability.ts").Capability<unknown, unknown>;
71
- export declare const bidRejectInput: z.ZodObject<{
72
- bidId: z.ZodString;
73
- confirm: z.ZodOptional<z.ZodBoolean>;
74
- }, z.core.$strip>;
75
- export declare const bidRejectCapability: import("../capability.ts").Capability<unknown, unknown>;
76
- export declare const bidShowInput: z.ZodObject<{
77
- bidId: z.ZodOptional<z.ZodString>;
78
- bid_id: z.ZodOptional<z.ZodString>;
79
- }, z.core.$strip>;
80
- export declare const bidShowCapability: import("../capability.ts").Capability<unknown, unknown>;
81
- export declare const inventoryUpdateInput: z.ZodObject<{
82
- inventoryId: z.ZodString;
83
- version: z.ZodOptional<z.ZodNumber>;
84
- operatorId: z.ZodOptional<z.ZodString>;
85
- facilityId: z.ZodOptional<z.ZodString>;
86
- gpuType: z.ZodOptional<z.ZodString>;
87
- nodeCount: z.ZodOptional<z.ZodNumber>;
88
- gpusPerNode: z.ZodOptional<z.ZodNumber>;
89
- availableFrom: z.ZodOptional<z.ZodString>;
90
- availableTo: z.ZodOptional<z.ZodString>;
91
- availableStartAt: z.ZodOptional<z.ZodString>;
92
- availableEndAt: z.ZodOptional<z.ZodString>;
93
- cpu: z.ZodOptional<z.ZodNullable<z.ZodString>>;
94
- ram: z.ZodOptional<z.ZodNullable<z.ZodString>>;
95
- fabricType: z.ZodOptional<z.ZodNullable<z.ZodString>>;
96
- storage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
97
- internet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
98
- buyNowPricePerGpuHour: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
99
- confirm: z.ZodOptional<z.ZodBoolean>;
100
- }, z.core.$strip>;
101
- export declare const inventoryUpdateCapability: import("../capability.ts").Capability<unknown, unknown>;
102
- export declare const tenantCreditProfileShowInput: z.ZodObject<{
103
- tenantId: z.ZodString;
104
- }, z.core.$strip>;
105
- export declare const tenantCreditProfileShowCapability: import("../capability.ts").Capability<unknown, unknown>;
106
- export declare const reservationDraftCreateInput: z.ZodObject<{
107
- organizationId: z.ZodString;
108
- nodeCount: z.ZodNumber;
109
- startAt: z.ZodString;
110
- endAt: z.ZodString;
111
- billingMode: z.ZodDefault<z.ZodString>;
112
- pricePerGpuHr: z.ZodString;
113
- listingId: z.ZodOptional<z.ZodString>;
114
- accessMode: z.ZodOptional<z.ZodString>;
115
- notes: z.ZodOptional<z.ZodString>;
116
- confirm: z.ZodOptional<z.ZodBoolean>;
117
- }, z.core.$strip>;
118
- export declare const reservationDraftCreateCapability: import("../capability.ts").Capability<unknown, unknown>;
119
- export declare const reservationUpdateInput: z.ZodObject<{
120
- reservationId: z.ZodString;
121
- startAt: z.ZodOptional<z.ZodString>;
122
- endAt: z.ZodOptional<z.ZodString>;
123
- nodeCount: z.ZodOptional<z.ZodNumber>;
124
- notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
125
- expectedStatus: z.ZodOptional<z.ZodString>;
126
- confirm: z.ZodOptional<z.ZodBoolean>;
127
- }, z.core.$strip>;
128
- export declare const reservationUpdateCapability: import("../capability.ts").Capability<unknown, unknown>;
129
- export declare const reservationActivateInput: z.ZodObject<{
130
- reservationId: z.ZodString;
131
- version: z.ZodOptional<z.ZodNumber>;
132
- confirm: z.ZodOptional<z.ZodBoolean>;
133
- }, z.core.$strip>;
134
- export declare const reservationActivateCapability: import("../capability.ts").Capability<unknown, unknown>;
135
- export declare const reservationCompleteInput: z.ZodObject<{
136
- reservationId: z.ZodString;
137
- version: z.ZodOptional<z.ZodNumber>;
138
- confirm: z.ZodOptional<z.ZodBoolean>;
139
- }, z.core.$strip>;
140
- export declare const reservationCompleteCapability: import("../capability.ts").Capability<unknown, unknown>;
141
- export declare const inventoryDelistInput: z.ZodObject<{
142
- inventoryId: z.ZodString;
143
- version: z.ZodOptional<z.ZodNumber>;
144
- confirm: z.ZodOptional<z.ZodBoolean>;
145
- }, z.core.$strip>;
146
- export declare const inventoryDelistCapability: import("../capability.ts").Capability<unknown, unknown>;
147
- export declare const billingInvoicesListInput: z.ZodObject<{
148
- status: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
149
- void: "void";
150
- due: "due";
151
- open: "open";
152
- paid: "paid";
153
- draft: "draft";
154
- uncollectible: "uncollectible";
155
- }>>>;
156
- cursor: z.ZodOptional<z.ZodString>;
157
- limit: z.ZodOptional<z.ZodNumber>;
158
- }, z.core.$strip>;
159
- export declare const billingInvoicesListCapability: import("../capability.ts").Capability<unknown, unknown>;
160
- export declare const staffCommerceCapabilities: import("../capability.ts").Capability<unknown, unknown>[];