@ornncompute/cli 1.0.97 → 1.0.109
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/README.md +7 -1
- package/package.json +1 -1
- package/src/admin-command-handlers.mjs +2 -0
- package/src/admin-ssh.mjs +113 -0
- package/src/api-client.mjs +4 -1
- package/src/catalog-shell.mjs +8 -0
- package/src/ornn-logo.txt +8 -0
- package/vendor/api-client/commerce.js +2 -0
- package/vendor/capabilities/cli.js +786 -718
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// ../../packages/capabilities/dist/capabilities/admin.js
|
|
2
|
-
import { z
|
|
1
|
+
// ../../packages/capabilities/dist/capabilities/admin-ssh.js
|
|
2
|
+
import { z } from "zod";
|
|
3
3
|
|
|
4
4
|
// ../../packages/capabilities/dist/names.js
|
|
5
5
|
function namesFromId(id) {
|
|
@@ -55,6 +55,38 @@ function byCliCommand(catalog2, command) {
|
|
|
55
55
|
return catalog2.find((capability) => capability.cli != null && capability.cli.command.length === command.length && capability.cli.command.every((part, index) => part === command[index]));
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
// ../../packages/capabilities/dist/capabilities/admin-ssh.js
|
|
59
|
+
var adminSshCapability = defineCapability({
|
|
60
|
+
id: "node.ssh",
|
|
61
|
+
domain: "fleet",
|
|
62
|
+
roles: ["admin"],
|
|
63
|
+
description: "Open staff SSH using a temporary local key and a short-lived node certificate.",
|
|
64
|
+
mutation: "local",
|
|
65
|
+
http: { method: "POST", path: "/nodes/{node_id}/ssh-certificates" },
|
|
66
|
+
mcp: false,
|
|
67
|
+
slack: false,
|
|
68
|
+
cli: {
|
|
69
|
+
command: ["admin", "ssh"],
|
|
70
|
+
vnext: {
|
|
71
|
+
command: ["admin", "ssh"],
|
|
72
|
+
audience: "admin",
|
|
73
|
+
category: "journey",
|
|
74
|
+
arguments: "semantic",
|
|
75
|
+
outcome: "Open an SSH session to one opted-in node with a 15-minute certificate.",
|
|
76
|
+
human: "ornn admin ssh <node-id>",
|
|
77
|
+
automation: "Requires an interactive terminal."
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
input: z.object({ node_id: z.string().uuid(), public_key: z.string().min(1) }),
|
|
81
|
+
execute: (ctx, input) => ctx.fetch(`/nodes/${encodeURIComponent(input.node_id)}/ssh-certificates`, {
|
|
82
|
+
method: "POST",
|
|
83
|
+
body: { public_key: input.public_key }
|
|
84
|
+
})
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// ../../packages/capabilities/dist/capabilities/admin.js
|
|
88
|
+
import { z as z6 } from "zod";
|
|
89
|
+
|
|
58
90
|
// ../../packages/api-client/dist/commerce/client.js
|
|
59
91
|
var BASE = "/commerce/v2/listings";
|
|
60
92
|
var listingPath = (id) => `${BASE}/${encodeURIComponent(id)}`;
|
|
@@ -224,7 +256,7 @@ async function listSupplierOrganizations(fetch) {
|
|
|
224
256
|
}
|
|
225
257
|
|
|
226
258
|
// ../../packages/capabilities/dist/capabilities/fleet.js
|
|
227
|
-
import { z } from "zod";
|
|
259
|
+
import { z as z2 } from "zod";
|
|
228
260
|
function queryPath(path, params) {
|
|
229
261
|
const parts = [];
|
|
230
262
|
for (const [key, value] of Object.entries(params)) {
|
|
@@ -233,45 +265,45 @@ function queryPath(path, params) {
|
|
|
233
265
|
}
|
|
234
266
|
return parts.length ? `${path}?${parts.join("&")}` : path;
|
|
235
267
|
}
|
|
236
|
-
var suppliersInput =
|
|
237
|
-
q:
|
|
238
|
-
offset:
|
|
239
|
-
limit:
|
|
240
|
-
});
|
|
241
|
-
var facilitiesInput =
|
|
242
|
-
organization_id:
|
|
243
|
-
cursor:
|
|
244
|
-
limit:
|
|
245
|
-
});
|
|
246
|
-
var nodesInput =
|
|
247
|
-
organization_id:
|
|
248
|
-
facility_id:
|
|
249
|
-
status:
|
|
250
|
-
reservation_id:
|
|
251
|
-
cursor:
|
|
252
|
-
max:
|
|
253
|
-
limit:
|
|
254
|
-
});
|
|
255
|
-
var nodeLifecycleInput =
|
|
256
|
-
node_id:
|
|
257
|
-
maintenance_batch_id:
|
|
258
|
-
node_ref:
|
|
259
|
-
reason:
|
|
260
|
-
delete_node_record:
|
|
261
|
-
idempotency_key:
|
|
262
|
-
yes:
|
|
263
|
-
wait:
|
|
264
|
-
timeout_seconds:
|
|
265
|
-
});
|
|
266
|
-
var nodeExecInput =
|
|
267
|
-
node_id:
|
|
268
|
-
host:
|
|
269
|
-
username:
|
|
270
|
-
port:
|
|
271
|
-
private_key:
|
|
272
|
-
command:
|
|
273
|
-
timeout_seconds:
|
|
274
|
-
yes:
|
|
268
|
+
var suppliersInput = z2.object({
|
|
269
|
+
q: z2.string().optional(),
|
|
270
|
+
offset: z2.number().int().min(0).optional(),
|
|
271
|
+
limit: z2.number().int().min(1).max(1e3).optional()
|
|
272
|
+
});
|
|
273
|
+
var facilitiesInput = z2.object({
|
|
274
|
+
organization_id: z2.string().optional(),
|
|
275
|
+
cursor: z2.string().optional(),
|
|
276
|
+
limit: z2.number().int().min(1).max(100).optional()
|
|
277
|
+
});
|
|
278
|
+
var nodesInput = z2.object({
|
|
279
|
+
organization_id: z2.string().optional(),
|
|
280
|
+
facility_id: z2.string().optional(),
|
|
281
|
+
status: z2.string().optional(),
|
|
282
|
+
reservation_id: z2.string().optional(),
|
|
283
|
+
cursor: z2.string().optional(),
|
|
284
|
+
max: z2.number().int().positive().max(5e3).optional(),
|
|
285
|
+
limit: z2.number().int().positive().max(5e3).optional()
|
|
286
|
+
});
|
|
287
|
+
var nodeLifecycleInput = z2.object({
|
|
288
|
+
node_id: z2.string().min(1),
|
|
289
|
+
maintenance_batch_id: z2.string().uuid().optional(),
|
|
290
|
+
node_ref: z2.string().optional(),
|
|
291
|
+
reason: z2.string().optional(),
|
|
292
|
+
delete_node_record: z2.literal(true).optional(),
|
|
293
|
+
idempotency_key: z2.string().optional(),
|
|
294
|
+
yes: z2.boolean().optional(),
|
|
295
|
+
wait: z2.boolean().optional(),
|
|
296
|
+
timeout_seconds: z2.number().positive().optional()
|
|
297
|
+
});
|
|
298
|
+
var nodeExecInput = z2.object({
|
|
299
|
+
node_id: z2.string().min(1).optional(),
|
|
300
|
+
host: z2.string().min(1).optional(),
|
|
301
|
+
username: z2.string().min(1).optional(),
|
|
302
|
+
port: z2.number().int().min(1).max(65535).optional(),
|
|
303
|
+
private_key: z2.string().min(1).optional(),
|
|
304
|
+
command: z2.string().min(1),
|
|
305
|
+
timeout_seconds: z2.number().int().positive(),
|
|
306
|
+
yes: z2.boolean().optional()
|
|
275
307
|
});
|
|
276
308
|
var listSuppliersCapability = defineCapability({
|
|
277
309
|
id: "supplier.list",
|
|
@@ -341,7 +373,7 @@ var listFacilitiesCapability = defineCapability({
|
|
|
341
373
|
});
|
|
342
374
|
}
|
|
343
375
|
});
|
|
344
|
-
var facilityShowInput =
|
|
376
|
+
var facilityShowInput = z2.object({ facilityId: z2.uuid() });
|
|
345
377
|
var facilityShowCapability = defineCapability({
|
|
346
378
|
id: "facilities.show",
|
|
347
379
|
domain: "fleet",
|
|
@@ -510,44 +542,82 @@ var fleetCapabilities = [
|
|
|
510
542
|
nodeTerminateCapability
|
|
511
543
|
];
|
|
512
544
|
|
|
513
|
-
// ../../packages/
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
545
|
+
// ../../packages/api-client/dist/observability/index.js
|
|
546
|
+
var base = "/v1/observability";
|
|
547
|
+
var nodePath = (id) => `${base}/nodes/${encodeURIComponent(id)}`;
|
|
548
|
+
function queryPath2(path, input) {
|
|
549
|
+
const query2 = new URLSearchParams();
|
|
550
|
+
for (const [key, value] of Object.entries(input)) {
|
|
551
|
+
if (value !== void 0)
|
|
552
|
+
query2.set(key, String(value));
|
|
520
553
|
}
|
|
521
|
-
return
|
|
554
|
+
return query2.size ? `${path}?${query2}` : path;
|
|
522
555
|
}
|
|
523
|
-
function
|
|
524
|
-
|
|
525
|
-
|
|
556
|
+
function getNodeLatestTelemetry(request, id, input = {}, signal) {
|
|
557
|
+
return request(queryPath2(`${nodePath(id)}/telemetry/latest`, input), {
|
|
558
|
+
method: "GET",
|
|
559
|
+
signal
|
|
560
|
+
});
|
|
526
561
|
}
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
562
|
+
function getLatestTelemetry(request, body2, signal) {
|
|
563
|
+
return request(`${base}/nodes/telemetry/latest`, {
|
|
564
|
+
method: "POST",
|
|
565
|
+
body: body2,
|
|
566
|
+
signal
|
|
567
|
+
});
|
|
568
|
+
}
|
|
569
|
+
function queryNodeTelemetry(request, id, input, signal) {
|
|
570
|
+
return request(queryPath2(`${nodePath(id)}/telemetry/query`, input), {
|
|
571
|
+
method: "GET",
|
|
572
|
+
signal
|
|
573
|
+
});
|
|
574
|
+
}
|
|
575
|
+
function queryNodeLogs(request, id, stream, input, signal) {
|
|
576
|
+
return request(queryPath2(`${nodePath(id)}/logs/${stream}/query`, input), {
|
|
577
|
+
method: "GET",
|
|
578
|
+
signal
|
|
579
|
+
});
|
|
580
|
+
}
|
|
581
|
+
function nodeTelemetrySubscribePath(id, fields) {
|
|
582
|
+
return queryPath2(`${nodePath(id)}/telemetry/subscribe`, { fields });
|
|
583
|
+
}
|
|
584
|
+
function nodeLogsSubscribePath(id, stream) {
|
|
585
|
+
return `${nodePath(id)}/logs/${stream}/subscribe`;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
// ../../packages/capabilities/dist/capabilities/observability.js
|
|
589
|
+
import { z as z3 } from "zod";
|
|
590
|
+
function tailPath(path, input) {
|
|
591
|
+
const query2 = new URLSearchParams({
|
|
592
|
+
duration: String(input.duration ?? 20),
|
|
593
|
+
max_events: String(input.max_events ?? 40)
|
|
594
|
+
});
|
|
595
|
+
return `${path}${path.includes("?") ? "&" : "?"}${query2}`;
|
|
596
|
+
}
|
|
597
|
+
var latestInput = z3.object({
|
|
598
|
+
node_id: z3.string().min(1),
|
|
599
|
+
start: z3.string().optional(),
|
|
600
|
+
end: z3.string().optional(),
|
|
601
|
+
span: z3.string().optional(),
|
|
602
|
+
max_points: z3.number().int().min(1).max(500).optional(),
|
|
603
|
+
metrics: z3.string().optional()
|
|
604
|
+
});
|
|
605
|
+
var logsLatestInput = z3.object({
|
|
606
|
+
node_id: z3.string().min(1),
|
|
607
|
+
stream: z3.enum(["serial", "kernel"]).default("kernel"),
|
|
608
|
+
count: z3.number().int().min(1).max(1e3).optional(),
|
|
609
|
+
before: z3.string().optional(),
|
|
610
|
+
start: z3.string().optional(),
|
|
611
|
+
cursor: z3.string().optional()
|
|
612
|
+
});
|
|
613
|
+
var tailInput = z3.object({
|
|
614
|
+
node_id: z3.string().min(1),
|
|
615
|
+
duration: z3.number().int().min(1).max(120).optional(),
|
|
616
|
+
max_events: z3.number().int().min(1).max(200).optional(),
|
|
617
|
+
fields: z3.string().optional()
|
|
548
618
|
});
|
|
549
619
|
var logsTailInput = tailInput.extend({
|
|
550
|
-
stream:
|
|
620
|
+
stream: z3.enum(["serial", "kernel"]).default("kernel")
|
|
551
621
|
});
|
|
552
622
|
function expandSpan(span, start, end) {
|
|
553
623
|
if (start?.trim() && end?.trim()) {
|
|
@@ -589,12 +659,12 @@ var telemetryLatestCapability = defineCapability({
|
|
|
589
659
|
const parsed = latestInput.parse(input);
|
|
590
660
|
const id = parsed.node_id.trim();
|
|
591
661
|
const range = expandSpan(parsed.span, parsed.start, parsed.end);
|
|
592
|
-
return ctx.fetch
|
|
662
|
+
return queryNodeTelemetry(ctx.fetch, id, {
|
|
593
663
|
start: range.start,
|
|
594
664
|
end: range.end,
|
|
595
|
-
max_points:
|
|
596
|
-
metrics: parsed.metrics
|
|
597
|
-
})
|
|
665
|
+
max_points: parsed.max_points ?? 240,
|
|
666
|
+
metrics: parsed.metrics?.trim() || void 0
|
|
667
|
+
});
|
|
598
668
|
}
|
|
599
669
|
});
|
|
600
670
|
var telemetryLatestBatchCapability = defineCapability({
|
|
@@ -619,11 +689,8 @@ var telemetryLatestBatchCapability = defineCapability({
|
|
|
619
689
|
required: ["node_ids"]
|
|
620
690
|
}
|
|
621
691
|
},
|
|
622
|
-
input:
|
|
623
|
-
execute: async (ctx, input) => ctx.fetch
|
|
624
|
-
method: "POST",
|
|
625
|
-
body: { node_ids: input.node_ids }
|
|
626
|
-
})
|
|
692
|
+
input: z3.object({ node_ids: z3.array(z3.uuid()).min(1).max(100) }),
|
|
693
|
+
execute: async (ctx, input) => getLatestTelemetry(ctx.fetch, { node_ids: input.node_ids })
|
|
627
694
|
});
|
|
628
695
|
var logsLatestCapability = defineCapability({
|
|
629
696
|
id: "logs.latest",
|
|
@@ -658,13 +725,13 @@ var logsLatestCapability = defineCapability({
|
|
|
658
725
|
const id = parsed.node_id.trim();
|
|
659
726
|
const end = parsed.before?.trim() || (/* @__PURE__ */ new Date()).toISOString();
|
|
660
727
|
const start = parsed.start?.trim() || new Date(Date.parse(end) - 7 * 864e5).toISOString();
|
|
661
|
-
return ctx.fetch
|
|
728
|
+
return queryNodeLogs(ctx.fetch, id, parsed.stream, {
|
|
662
729
|
start,
|
|
663
730
|
end,
|
|
664
|
-
limit:
|
|
731
|
+
limit: parsed.count ?? 200,
|
|
665
732
|
order: "desc",
|
|
666
|
-
cursor: parsed.cursor
|
|
667
|
-
})
|
|
733
|
+
cursor: parsed.cursor?.trim() || void 0
|
|
734
|
+
});
|
|
668
735
|
}
|
|
669
736
|
});
|
|
670
737
|
var telemetrySnapshotCapability = defineCapability({
|
|
@@ -685,13 +752,11 @@ var telemetrySnapshotCapability = defineCapability({
|
|
|
685
752
|
required: ["node_id"]
|
|
686
753
|
}
|
|
687
754
|
},
|
|
688
|
-
input:
|
|
689
|
-
node_id:
|
|
690
|
-
limit:
|
|
755
|
+
input: z3.object({
|
|
756
|
+
node_id: z3.string().min(1),
|
|
757
|
+
limit: z3.number().int().min(1).max(1e3).optional()
|
|
691
758
|
}),
|
|
692
|
-
execute: async (ctx, input) => ctx.fetch
|
|
693
|
-
limit: String(input.limit ?? 1)
|
|
694
|
-
}), { method: "GET" })
|
|
759
|
+
execute: async (ctx, input) => getNodeLatestTelemetry(ctx.fetch, input.node_id, { limit: input.limit ?? 1 })
|
|
695
760
|
});
|
|
696
761
|
var telemetryTailCapability = defineCapability({
|
|
697
762
|
id: "telemetry.tail",
|
|
@@ -716,11 +781,7 @@ var telemetryTailCapability = defineCapability({
|
|
|
716
781
|
execute: async (ctx, input) => {
|
|
717
782
|
const parsed = tailInput.parse(input);
|
|
718
783
|
const id = parsed.node_id.trim();
|
|
719
|
-
return ctx.fetch(
|
|
720
|
-
fields: parsed.fields,
|
|
721
|
-
duration: String(parsed.duration ?? 20),
|
|
722
|
-
max_events: String(parsed.max_events ?? 40)
|
|
723
|
-
}), { method: "GET", headers: { Accept: "text/event-stream" } });
|
|
784
|
+
return ctx.fetch(tailPath(nodeTelemetrySubscribePath(id, parsed.fields?.trim() || void 0), parsed), { method: "GET", headers: { Accept: "text/event-stream" } });
|
|
724
785
|
}
|
|
725
786
|
});
|
|
726
787
|
var logsTailCapability = defineCapability({
|
|
@@ -746,10 +807,10 @@ var logsTailCapability = defineCapability({
|
|
|
746
807
|
execute: async (ctx, input) => {
|
|
747
808
|
const parsed = logsTailInput.parse(input);
|
|
748
809
|
const id = parsed.node_id.trim();
|
|
749
|
-
return ctx.fetch(
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
})
|
|
810
|
+
return ctx.fetch(tailPath(nodeLogsSubscribePath(id, parsed.stream), parsed), {
|
|
811
|
+
method: "GET",
|
|
812
|
+
headers: { Accept: "text/event-stream" }
|
|
813
|
+
});
|
|
753
814
|
}
|
|
754
815
|
});
|
|
755
816
|
var observabilityCapabilities = [
|
|
@@ -762,25 +823,25 @@ var observabilityCapabilities = [
|
|
|
762
823
|
];
|
|
763
824
|
|
|
764
825
|
// ../../packages/capabilities/dist/capabilities/tokens.js
|
|
765
|
-
import { z as
|
|
766
|
-
var optionalText =
|
|
767
|
-
var tokenCreateInput =
|
|
768
|
-
organization_id:
|
|
826
|
+
import { z as z4 } from "zod";
|
|
827
|
+
var optionalText = z4.string().nullish();
|
|
828
|
+
var tokenCreateInput = z4.object({
|
|
829
|
+
organization_id: z4.string().min(1),
|
|
769
830
|
facility_id: optionalText,
|
|
770
|
-
expires_in_seconds:
|
|
771
|
-
filter:
|
|
831
|
+
expires_in_seconds: z4.number().int().positive().nullish(),
|
|
832
|
+
filter: z4.string().nullish(),
|
|
772
833
|
ip: optionalText,
|
|
773
834
|
installer_base: optionalText,
|
|
774
835
|
host: optionalText,
|
|
775
|
-
hosts:
|
|
836
|
+
hosts: z4.array(z4.string()).nullish(),
|
|
776
837
|
username: optionalText,
|
|
777
|
-
port:
|
|
838
|
+
port: z4.number().int().min(1).max(65535).nullish(),
|
|
778
839
|
private_key: optionalText,
|
|
779
|
-
yes:
|
|
840
|
+
yes: z4.boolean().optional()
|
|
780
841
|
});
|
|
781
|
-
var emptyInput =
|
|
842
|
+
var emptyInput = z4.object({});
|
|
782
843
|
function buildEnrollmentInstallCommand(options) {
|
|
783
|
-
const
|
|
844
|
+
const base3 = (options.base ?? "https://api.ornn.com/v1/orchestrator").replace(/\/+$/, "");
|
|
784
845
|
const params = [`token=${encodeURIComponent(options.token)}`];
|
|
785
846
|
if (options.facilityId)
|
|
786
847
|
params.push(`facility_id=${encodeURIComponent(options.facilityId)}`);
|
|
@@ -792,7 +853,7 @@ function buildEnrollmentInstallCommand(options) {
|
|
|
792
853
|
params.push(`restore_node_id=${encodeURIComponent(options.restoreNodeId)}`);
|
|
793
854
|
if (options.force)
|
|
794
855
|
params.push("force=true");
|
|
795
|
-
const href = `${
|
|
856
|
+
const href = `${base3}/enrollment/install?${params.join("&")}`;
|
|
796
857
|
return `set -o pipefail; curl -fsSL '${href.replace(/'/g, "'\\''")}' | sudo bash`;
|
|
797
858
|
}
|
|
798
859
|
function tokenString(row, keys) {
|
|
@@ -919,20 +980,20 @@ var tokensCreateCapability = defineCapability({
|
|
|
919
980
|
var tokenCapabilities = [tokensListCapability, tokensCreateCapability];
|
|
920
981
|
|
|
921
982
|
// ../../packages/capabilities/dist/capabilities/users.js
|
|
922
|
-
import { z as
|
|
923
|
-
var directoryLimit =
|
|
924
|
-
var directoryOffset =
|
|
925
|
-
var organizationListInput =
|
|
926
|
-
q:
|
|
927
|
-
role:
|
|
928
|
-
approved:
|
|
929
|
-
ids:
|
|
983
|
+
import { z as z5 } from "zod";
|
|
984
|
+
var directoryLimit = z5.number().int().min(1).max(100).default(25);
|
|
985
|
+
var directoryOffset = z5.number().int().nonnegative().optional();
|
|
986
|
+
var organizationListInput = z5.object({
|
|
987
|
+
q: z5.string().trim().optional().describe("Company name, contact/member name, or email."),
|
|
988
|
+
role: z5.enum(["consumer", "supplier"]).optional(),
|
|
989
|
+
approved: z5.boolean().optional(),
|
|
990
|
+
ids: z5.array(z5.uuid()).min(1).max(100).optional(),
|
|
930
991
|
limit: directoryLimit,
|
|
931
992
|
offset: directoryOffset
|
|
932
993
|
});
|
|
933
|
-
var usersListInput =
|
|
934
|
-
q:
|
|
935
|
-
organization_id:
|
|
994
|
+
var usersListInput = z5.object({
|
|
995
|
+
q: z5.string().trim().optional().describe("Person name, email, or company name."),
|
|
996
|
+
organization_id: z5.uuid().optional(),
|
|
936
997
|
limit: directoryLimit,
|
|
937
998
|
offset: directoryOffset
|
|
938
999
|
});
|
|
@@ -1078,7 +1139,8 @@ var ADMIN_CLI_ROOTS = [
|
|
|
1078
1139
|
{ name: "nodes" },
|
|
1079
1140
|
{ name: "enrollment-tokens" },
|
|
1080
1141
|
{ name: "capacity-offers" },
|
|
1081
|
-
{ name: "reservations" }
|
|
1142
|
+
{ name: "reservations" },
|
|
1143
|
+
{ name: "ssh" }
|
|
1082
1144
|
];
|
|
1083
1145
|
function adminHelp(command, outcome, human, automation, acceptedReferences = []) {
|
|
1084
1146
|
return {
|
|
@@ -1107,7 +1169,7 @@ var adminOrganizationsListCapability = withAdminBinding(organizationListCapabili
|
|
|
1107
1169
|
var adminSuppliersListCapability = withAdminBinding(listSuppliersCapability, adminHelp(["admin", "suppliers", "list"], "List supplier organizations visible to staff; pass next_offset as --offset to continue.", "ornn admin suppliers list [--limit 50] [--offset OFFSET]", "ornn admin suppliers list --limit 50 --offset OFFSET --format json"));
|
|
1108
1170
|
var adminFacilitiesListCapability = withAdminBinding(listFacilitiesCapability, adminHelp(["admin", "facilities", "list"], "List facilities visible to staff.", "ornn admin facilities list [--supplier UUID] [--limit 50] [--cursor CURSOR]", "ornn admin facilities list --limit 50 --format json"));
|
|
1109
1171
|
var adminNodesListCapability = withAdminBinding(listNodesCapability, adminHelp(["admin", "nodes", "list"], "List enrolled and ghost nodes.", "ornn admin nodes list [--supplier UUID] [--facility FACILITY] [--status STATUS] [--reservation UUID] [--limit 50] [--cursor CURSOR]", "ornn admin nodes list --limit 50 [--cursor CURSOR] --format json"));
|
|
1110
|
-
var nodeInput =
|
|
1172
|
+
var nodeInput = z6.object({ node_id: z6.string().min(1) });
|
|
1111
1173
|
var adminNodeHealthCapability = defineCapability({
|
|
1112
1174
|
id: "nodes.health",
|
|
1113
1175
|
domain: "fleet",
|
|
@@ -1236,7 +1298,7 @@ function listOffers(request, filter = {}) {
|
|
|
1236
1298
|
}
|
|
1237
1299
|
|
|
1238
1300
|
// ../../packages/capabilities/dist/capabilities/admin-capacity-reservations.js
|
|
1239
|
-
import { z as
|
|
1301
|
+
import { z as z9 } from "zod";
|
|
1240
1302
|
|
|
1241
1303
|
// ../../packages/capabilities/dist/capabilities/staff-shared.js
|
|
1242
1304
|
function statusOf(error) {
|
|
@@ -1279,7 +1341,7 @@ function ensureFacility2(fetch, organizationId, region2) {
|
|
|
1279
1341
|
}
|
|
1280
1342
|
|
|
1281
1343
|
// ../../packages/capabilities/dist/capabilities/native-listing.js
|
|
1282
|
-
import { z as
|
|
1344
|
+
import { z as z8 } from "zod";
|
|
1283
1345
|
|
|
1284
1346
|
// ../../packages/capabilities/dist/compute-units.js
|
|
1285
1347
|
var CPU_SLUG = "cpu";
|
|
@@ -1295,10 +1357,10 @@ function unitsPerNode(listing) {
|
|
|
1295
1357
|
}
|
|
1296
1358
|
|
|
1297
1359
|
// ../../packages/capabilities/dist/capabilities/market-shared.js
|
|
1298
|
-
import { z as
|
|
1299
|
-
var positionals =
|
|
1300
|
-
var microUsd =
|
|
1301
|
-
var flag =
|
|
1360
|
+
import { z as z7 } from "zod";
|
|
1361
|
+
var positionals = z7.array(z7.string()).max(0).default([]);
|
|
1362
|
+
var microUsd = z7.coerce.number().int().positive();
|
|
1363
|
+
var flag = z7.preprocess((value) => value === "true" ? true : value === "false" ? false : value, z7.boolean());
|
|
1302
1364
|
function resolveIdempotencyKey(ctx, supplied) {
|
|
1303
1365
|
return ctx.cli?.interaction?.idempotencyKey(supplied) ?? supplied?.trim();
|
|
1304
1366
|
}
|
|
@@ -1323,17 +1385,17 @@ function microUsdLabel(value) {
|
|
|
1323
1385
|
|
|
1324
1386
|
// ../../packages/capabilities/dist/capabilities/native-listing.js
|
|
1325
1387
|
var nativeTermFields = {
|
|
1326
|
-
type:
|
|
1327
|
-
minDurationHours:
|
|
1328
|
-
maxDurationHours:
|
|
1329
|
-
pricePerGpuHourMicroUsd:
|
|
1330
|
-
downPaymentCents:
|
|
1388
|
+
type: z8.enum(["reserved", "spot", "on-demand"]).nullable().optional(),
|
|
1389
|
+
minDurationHours: z8.coerce.number().nonnegative(),
|
|
1390
|
+
maxDurationHours: z8.coerce.number().nonnegative(),
|
|
1391
|
+
pricePerGpuHourMicroUsd: z8.coerce.number().int().positive().describe("Micro-USD per unit-hour: per GPU, or per vCPU on CPU capacity."),
|
|
1392
|
+
downPaymentCents: z8.coerce.number().int().nonnegative().nullable().optional(),
|
|
1331
1393
|
renewable: flag,
|
|
1332
|
-
preemptNoticeSeconds:
|
|
1394
|
+
preemptNoticeSeconds: z8.coerce.number().int().nonnegative().optional()
|
|
1333
1395
|
};
|
|
1334
|
-
var nativeTermInput =
|
|
1396
|
+
var nativeTermInput = z8.object(nativeTermFields).strict();
|
|
1335
1397
|
function jsonArray(item) {
|
|
1336
|
-
return
|
|
1398
|
+
return z8.preprocess((value) => {
|
|
1337
1399
|
if (typeof value !== "string")
|
|
1338
1400
|
return value;
|
|
1339
1401
|
try {
|
|
@@ -1341,36 +1403,36 @@ function jsonArray(item) {
|
|
|
1341
1403
|
} catch {
|
|
1342
1404
|
return value;
|
|
1343
1405
|
}
|
|
1344
|
-
},
|
|
1406
|
+
}, z8.array(item));
|
|
1345
1407
|
}
|
|
1346
1408
|
var nativeTermsInput = jsonArray(nativeTermInput);
|
|
1347
1409
|
var listingWriteControls = {
|
|
1348
|
-
confirm:
|
|
1349
|
-
idempotencyKey:
|
|
1410
|
+
confirm: z8.boolean().optional(),
|
|
1411
|
+
idempotencyKey: z8.string().min(1).max(200)
|
|
1350
1412
|
};
|
|
1351
|
-
var listingLocation =
|
|
1413
|
+
var listingLocation = z8.string().trim().min(1).max(256).optional().describe("Instead of facilityId: a state, city, address, or catalog region such as us-west-3. Ornn places it in a catalog region and uses the supplier's facility there.");
|
|
1352
1414
|
var CPU_CORES_MESSAGE = "CPU capacity is sold in whole cores (2 vCPUs each).";
|
|
1353
|
-
var coresPerNode =
|
|
1354
|
-
var nativeListingCreateInput =
|
|
1355
|
-
organizationId:
|
|
1356
|
-
kind:
|
|
1357
|
-
gpuSlug:
|
|
1358
|
-
gpusPerNode:
|
|
1415
|
+
var coresPerNode = z8.coerce.number().int(CPU_CORES_MESSAGE).min(1, CPU_CORES_MESSAGE).nullable().optional().describe("CPU capacity only: cores per node (2 vCPUs each), priced per vCPU-hour.");
|
|
1416
|
+
var nativeListingCreateInput = z8.object({
|
|
1417
|
+
organizationId: z8.string().uuid().nullable().optional(),
|
|
1418
|
+
kind: z8.enum(["primary", "secondary"]).default("primary"),
|
|
1419
|
+
gpuSlug: z8.string().min(1).nullable().describe('Catalog GPU slug; null or "cpu" lists CPU capacity sold per vCPU-hour.'),
|
|
1420
|
+
gpusPerNode: z8.coerce.number().int().nonnegative().optional().describe("GPUs per node; 0 or omitted on CPU capacity."),
|
|
1359
1421
|
coresPerNode,
|
|
1360
|
-
capacityNodeCount:
|
|
1361
|
-
nodeIds: jsonArray(
|
|
1362
|
-
facilityId:
|
|
1422
|
+
capacityNodeCount: z8.coerce.number().int().positive().optional().describe("Defaults to the number of nodeIds."),
|
|
1423
|
+
nodeIds: jsonArray(z8.string().uuid()).optional(),
|
|
1424
|
+
facilityId: z8.string().uuid().optional(),
|
|
1363
1425
|
location: listingLocation,
|
|
1364
|
-
provisioningType:
|
|
1365
|
-
state:
|
|
1366
|
-
availableAt:
|
|
1367
|
-
availableUntil:
|
|
1368
|
-
daysToRfs:
|
|
1369
|
-
cpu:
|
|
1370
|
-
ram:
|
|
1371
|
-
storage:
|
|
1372
|
-
fabricType:
|
|
1373
|
-
internet:
|
|
1426
|
+
provisioningType: z8.enum(["bare-metal", "virtual-machine"]),
|
|
1427
|
+
state: z8.enum(["draft", "available"]),
|
|
1428
|
+
availableAt: z8.iso.datetime({ offset: true }).nullable().optional().describe("Primary capacity takes availableAt and availableUntil, or daysToRfs, not both."),
|
|
1429
|
+
availableUntil: z8.iso.datetime({ offset: true }).nullable().optional(),
|
|
1430
|
+
daysToRfs: z8.coerce.number().int().nonnegative().optional().describe("Days until ready for service; 0 when ready now. Required unless both dates are set."),
|
|
1431
|
+
cpu: z8.string().optional(),
|
|
1432
|
+
ram: z8.string().optional(),
|
|
1433
|
+
storage: z8.string().optional(),
|
|
1434
|
+
fabricType: z8.string().optional(),
|
|
1435
|
+
internet: z8.string().optional(),
|
|
1374
1436
|
terms: nativeTermsInput,
|
|
1375
1437
|
...listingWriteControls
|
|
1376
1438
|
}).strict().refine((value) => Boolean(value.facilityId) !== Boolean(value.location), {
|
|
@@ -1409,22 +1471,22 @@ var nativeListingCreateInput = z7.object({
|
|
|
1409
1471
|
});
|
|
1410
1472
|
});
|
|
1411
1473
|
var nativeListingUpdateFields = {
|
|
1412
|
-
state:
|
|
1413
|
-
nodeCount:
|
|
1414
|
-
gpuSlug:
|
|
1415
|
-
gpusPerNode:
|
|
1474
|
+
state: z8.enum(["draft", "available", "delisted"]).optional(),
|
|
1475
|
+
nodeCount: z8.coerce.number().int().positive().optional(),
|
|
1476
|
+
gpuSlug: z8.string().min(1).nullable().optional().describe('Catalog GPU slug; null or "cpu" for CPU capacity.'),
|
|
1477
|
+
gpusPerNode: z8.coerce.number().int().nonnegative().optional(),
|
|
1416
1478
|
coresPerNode,
|
|
1417
|
-
facilityId:
|
|
1479
|
+
facilityId: z8.string().uuid().optional(),
|
|
1418
1480
|
location: listingLocation,
|
|
1419
|
-
provisioningType:
|
|
1420
|
-
availableAt:
|
|
1421
|
-
availableUntil:
|
|
1422
|
-
daysToRfs:
|
|
1423
|
-
cpu:
|
|
1424
|
-
ram:
|
|
1425
|
-
storage:
|
|
1426
|
-
fabricType:
|
|
1427
|
-
internet:
|
|
1481
|
+
provisioningType: z8.enum(["bare-metal", "virtual-machine"]).optional(),
|
|
1482
|
+
availableAt: z8.iso.datetime({ offset: true }).optional(),
|
|
1483
|
+
availableUntil: z8.iso.datetime({ offset: true }).nullable().optional(),
|
|
1484
|
+
daysToRfs: z8.coerce.number().int().nonnegative().optional(),
|
|
1485
|
+
cpu: z8.string().optional(),
|
|
1486
|
+
ram: z8.string().optional(),
|
|
1487
|
+
storage: z8.string().optional(),
|
|
1488
|
+
fabricType: z8.string().optional(),
|
|
1489
|
+
internet: z8.string().optional()
|
|
1428
1490
|
};
|
|
1429
1491
|
|
|
1430
1492
|
// ../../packages/capabilities/dist/capabilities/admin-capacity-reservations.js
|
|
@@ -1464,16 +1526,16 @@ var adminCapacityOffersCreateCapability = defineCapability({
|
|
|
1464
1526
|
return createCapacityListing(ctx.fetch, { ...body2, facilityId }, resolveIdempotencyKey(ctx, idempotencyKey));
|
|
1465
1527
|
}
|
|
1466
1528
|
});
|
|
1467
|
-
var wholeSecondInstant =
|
|
1468
|
-
var reservationCreateInput =
|
|
1469
|
-
organizationId:
|
|
1470
|
-
listingId:
|
|
1471
|
-
listingTermId:
|
|
1472
|
-
nodes:
|
|
1529
|
+
var wholeSecondInstant = z9.iso.datetime({ offset: true }).refine((value) => !/\.\d*[1-9]/.test(value), "Use a time in whole seconds.");
|
|
1530
|
+
var reservationCreateInput = z9.object({
|
|
1531
|
+
organizationId: z9.string().uuid().describe("The customer organization the window is booked for."),
|
|
1532
|
+
listingId: z9.string().uuid().describe("The listing's capacityListingId. Staff may book any available listing."),
|
|
1533
|
+
listingTermId: z9.string().uuid().describe("The listingTermsId of a non-renewable Reserved term on that listing."),
|
|
1534
|
+
nodes: z9.number().int().positive().max(2147483647).describe("Whole nodes to book."),
|
|
1473
1535
|
startsAt: wholeSecondInstant.describe("RFC 3339 start of the window in whole seconds, no more than five minutes ago."),
|
|
1474
1536
|
endsAt: wholeSecondInstant.describe("RFC 3339 end of the window in whole seconds, at least an hour after the start and within the term's duration range."),
|
|
1475
1537
|
pricePerGpuHourMicroUsd: microUsd.describe("The term's price in micro-USD per GPU-hour (per vCPU-hour on CPU capacity). A changed price refuses the booking."),
|
|
1476
|
-
idempotencyKey:
|
|
1538
|
+
idempotencyKey: z9.string().trim().min(1).max(200).describe("Reuse this key when retrying the same booking.")
|
|
1477
1539
|
});
|
|
1478
1540
|
var adminReservationsCreateCapability = defineCapability({
|
|
1479
1541
|
id: "reservations.create",
|
|
@@ -1501,7 +1563,7 @@ var adminCapacityReservationCapabilities = [
|
|
|
1501
1563
|
];
|
|
1502
1564
|
|
|
1503
1565
|
// ../../packages/capabilities/dist/capabilities/commerce-market.js
|
|
1504
|
-
import { z as
|
|
1566
|
+
import { z as z10 } from "zod";
|
|
1505
1567
|
function help(command, outcome, human, automation, related, order, acceptedReferences = []) {
|
|
1506
1568
|
return {
|
|
1507
1569
|
arguments: "semantic",
|
|
@@ -1516,15 +1578,15 @@ function help(command, outcome, human, automation, related, order, acceptedRefer
|
|
|
1516
1578
|
order
|
|
1517
1579
|
};
|
|
1518
1580
|
}
|
|
1519
|
-
var pageLimit =
|
|
1520
|
-
var listingsListInput =
|
|
1581
|
+
var pageLimit = z10.coerce.number().int().min(1).max(200).optional();
|
|
1582
|
+
var listingsListInput = z10.object({
|
|
1521
1583
|
$positionals: positionals,
|
|
1522
|
-
kind:
|
|
1523
|
-
state:
|
|
1524
|
-
sourceReservationId:
|
|
1525
|
-
sourceListingId:
|
|
1526
|
-
limit:
|
|
1527
|
-
cursor:
|
|
1584
|
+
kind: z10.enum(["primary", "secondary", "on_demand"]).optional(),
|
|
1585
|
+
state: z10.enum(["draft", "available", "held", "sold", "delisted"]).optional(),
|
|
1586
|
+
sourceReservationId: z10.string().uuid().optional(),
|
|
1587
|
+
sourceListingId: z10.string().uuid().optional(),
|
|
1588
|
+
limit: z10.coerce.number().int().min(1).max(100).optional(),
|
|
1589
|
+
cursor: z10.string().min(1).optional()
|
|
1528
1590
|
});
|
|
1529
1591
|
var listingsListCapability = defineCapability({
|
|
1530
1592
|
id: "listings.list",
|
|
@@ -1551,9 +1613,9 @@ var listingsListCapability = defineCapability({
|
|
|
1551
1613
|
});
|
|
1552
1614
|
}
|
|
1553
1615
|
});
|
|
1554
|
-
var listingShowInput =
|
|
1616
|
+
var listingShowInput = z10.object({
|
|
1555
1617
|
$positionals: positionals,
|
|
1556
|
-
listingId:
|
|
1618
|
+
listingId: z10.string().uuid()
|
|
1557
1619
|
});
|
|
1558
1620
|
var listingShowCapability = defineCapability({
|
|
1559
1621
|
id: "listings.show",
|
|
@@ -1591,11 +1653,11 @@ var listingTermsCapability = defineCapability({
|
|
|
1591
1653
|
return listCapacityTerms(ctx.fetch, parsed.listingId);
|
|
1592
1654
|
}
|
|
1593
1655
|
});
|
|
1594
|
-
var listingAvailabilityInput =
|
|
1656
|
+
var listingAvailabilityInput = z10.object({
|
|
1595
1657
|
$positionals: positionals,
|
|
1596
|
-
listingId:
|
|
1597
|
-
from:
|
|
1598
|
-
to:
|
|
1658
|
+
listingId: z10.string().uuid(),
|
|
1659
|
+
from: z10.iso.datetime({ offset: true }).optional().describe("RFC 3339 start of the range to read. Defaults to now or the listing's start."),
|
|
1660
|
+
to: z10.iso.datetime({ offset: true }).optional().describe("RFC 3339 end of the range to read. Defaults to the listing's end.")
|
|
1599
1661
|
});
|
|
1600
1662
|
var listingAvailabilityCapability = defineCapability({
|
|
1601
1663
|
id: "listings.availability",
|
|
@@ -1617,16 +1679,16 @@ var listingAvailabilityCapability = defineCapability({
|
|
|
1617
1679
|
});
|
|
1618
1680
|
}
|
|
1619
1681
|
});
|
|
1620
|
-
var listingRelistInput =
|
|
1682
|
+
var listingRelistInput = z10.strictObject({
|
|
1621
1683
|
$positionals: positionals,
|
|
1622
|
-
reservationId:
|
|
1623
|
-
startsAt:
|
|
1624
|
-
endsAt:
|
|
1625
|
-
nodeCount:
|
|
1684
|
+
reservationId: z10.string().uuid(),
|
|
1685
|
+
startsAt: z10.iso.datetime({ offset: true }),
|
|
1686
|
+
endsAt: z10.iso.datetime({ offset: true }),
|
|
1687
|
+
nodeCount: z10.coerce.number().int().positive(),
|
|
1626
1688
|
terms: nativeTermsInput,
|
|
1627
|
-
idempotencyKey:
|
|
1628
|
-
confirm:
|
|
1629
|
-
yes:
|
|
1689
|
+
idempotencyKey: z10.string().min(1).max(200).optional(),
|
|
1690
|
+
confirm: z10.boolean().optional(),
|
|
1691
|
+
yes: z10.boolean().optional()
|
|
1630
1692
|
});
|
|
1631
1693
|
var listingRelistCapability = defineCapability({
|
|
1632
1694
|
id: "listings.relist",
|
|
@@ -1652,10 +1714,10 @@ var listingRelistCapability = defineCapability({
|
|
|
1652
1714
|
return relistReservation(ctx.fetch, reservationId, body2, resolveIdempotencyKey(ctx, idempotencyKey));
|
|
1653
1715
|
}
|
|
1654
1716
|
});
|
|
1655
|
-
var listingUpdateInput =
|
|
1717
|
+
var listingUpdateInput = z10.object({
|
|
1656
1718
|
$positionals: positionals,
|
|
1657
|
-
listingId:
|
|
1658
|
-
listingTermsId:
|
|
1719
|
+
listingId: z10.string().uuid(),
|
|
1720
|
+
listingTermsId: z10.string().uuid(),
|
|
1659
1721
|
...nativeTermFields,
|
|
1660
1722
|
...listingWriteControls
|
|
1661
1723
|
}).strict();
|
|
@@ -1683,10 +1745,10 @@ var listingUpdateCapability = defineCapability({
|
|
|
1683
1745
|
return editCapacityTerms(ctx.fetch, listingId, listingTermsId, body2, resolveIdempotencyKey(ctx, idempotencyKey));
|
|
1684
1746
|
}
|
|
1685
1747
|
});
|
|
1686
|
-
var listingDelistInput =
|
|
1748
|
+
var listingDelistInput = z10.object({
|
|
1687
1749
|
$positionals: positionals,
|
|
1688
|
-
listingId:
|
|
1689
|
-
confirm:
|
|
1750
|
+
listingId: z10.string().uuid(),
|
|
1751
|
+
confirm: z10.boolean().optional()
|
|
1690
1752
|
});
|
|
1691
1753
|
var listingDelistCapability = defineCapability({
|
|
1692
1754
|
id: "listings.delist",
|
|
@@ -1715,10 +1777,10 @@ var listingDelistCapability = defineCapability({
|
|
|
1715
1777
|
return delistCapacityListing(ctx.fetch, parsed.listingId);
|
|
1716
1778
|
}
|
|
1717
1779
|
});
|
|
1718
|
-
var reservationsListInput =
|
|
1780
|
+
var reservationsListInput = z10.object({
|
|
1719
1781
|
$positionals: positionals,
|
|
1720
|
-
kind:
|
|
1721
|
-
status:
|
|
1782
|
+
kind: z10.enum(["schedule", "spot"]).optional(),
|
|
1783
|
+
status: z10.enum([
|
|
1722
1784
|
"awaiting_down_payment",
|
|
1723
1785
|
"awaiting_payment",
|
|
1724
1786
|
"confirmed",
|
|
@@ -1726,9 +1788,9 @@ var reservationsListInput = z9.object({
|
|
|
1726
1788
|
"completed",
|
|
1727
1789
|
"cancelled"
|
|
1728
1790
|
]).optional(),
|
|
1729
|
-
listingId:
|
|
1791
|
+
listingId: z10.string().uuid().optional().describe("Trades on a listing you own."),
|
|
1730
1792
|
limit: pageLimit,
|
|
1731
|
-
cursor:
|
|
1793
|
+
cursor: z10.string().min(1).optional()
|
|
1732
1794
|
});
|
|
1733
1795
|
var reservationsListCapability = defineCapability({
|
|
1734
1796
|
id: "reservations.list",
|
|
@@ -1749,9 +1811,9 @@ var reservationsListCapability = defineCapability({
|
|
|
1749
1811
|
return listReservations(ctx.fetch, filter);
|
|
1750
1812
|
}
|
|
1751
1813
|
});
|
|
1752
|
-
var reservationLookupInput =
|
|
1814
|
+
var reservationLookupInput = z10.object({
|
|
1753
1815
|
$positionals: positionals,
|
|
1754
|
-
reservationId:
|
|
1816
|
+
reservationId: z10.string().uuid()
|
|
1755
1817
|
});
|
|
1756
1818
|
var reservationsShowCapability = defineCapability({
|
|
1757
1819
|
id: "reservations.show",
|
|
@@ -1789,16 +1851,16 @@ var reservationInvoicesCapability = defineCapability({
|
|
|
1789
1851
|
return listReservationInvoices(ctx.fetch, parsed.reservationId);
|
|
1790
1852
|
}
|
|
1791
1853
|
});
|
|
1792
|
-
var reservationPurchaseInput =
|
|
1854
|
+
var reservationPurchaseInput = z10.object({
|
|
1793
1855
|
$positionals: positionals,
|
|
1794
|
-
listingId:
|
|
1795
|
-
listingTermId:
|
|
1796
|
-
nodeCount:
|
|
1797
|
-
startsAt:
|
|
1798
|
-
endsAt:
|
|
1856
|
+
listingId: z10.string().uuid().describe("The relisted (secondary) listing's capacityListingId, from listings.list."),
|
|
1857
|
+
listingTermId: z10.string().uuid().describe("The listingTermsId of the listing's term, from listings.terms."),
|
|
1858
|
+
nodeCount: z10.coerce.number().int().positive().optional().describe("Whole nodes to book for the window. Defaults to every node the listing sells."),
|
|
1859
|
+
startsAt: z10.iso.datetime({ offset: true }).describe("RFC 3339 start of the window, in whole seconds, inside the listing and not in the past."),
|
|
1860
|
+
endsAt: z10.iso.datetime({ offset: true }).describe("RFC 3339 end of the window, at least an hour after the start and within the term's duration range, or at the listing's end."),
|
|
1799
1861
|
pricePerGpuHourMicroUsd: microUsd.describe("The term's price from listings.terms, in micro-USD per GPU-hour (per vCPU-hour on CPU capacity). A changed price refuses the purchase."),
|
|
1800
|
-
idempotencyKey:
|
|
1801
|
-
confirm:
|
|
1862
|
+
idempotencyKey: z10.string().min(1).max(200).optional(),
|
|
1863
|
+
confirm: z10.boolean().optional()
|
|
1802
1864
|
});
|
|
1803
1865
|
var reservationPurchaseCapability = defineCapability({
|
|
1804
1866
|
id: "reservations.purchase",
|
|
@@ -1856,7 +1918,7 @@ var commerceMarketCapabilities = [
|
|
|
1856
1918
|
];
|
|
1857
1919
|
|
|
1858
1920
|
// ../../packages/capabilities/dist/capabilities/markets.js
|
|
1859
|
-
import { z as
|
|
1921
|
+
import { z as z11 } from "zod";
|
|
1860
1922
|
|
|
1861
1923
|
// ../../packages/capabilities/dist/spec-catalog.js
|
|
1862
1924
|
var HARDWARE_CATALOG_PATH = "/v1/orchestrator/catalog/hardware";
|
|
@@ -1978,10 +2040,10 @@ function projectCatalogTerms(terms, kind) {
|
|
|
1978
2040
|
}
|
|
1979
2041
|
|
|
1980
2042
|
// ../../packages/capabilities/dist/capabilities/markets.js
|
|
1981
|
-
var saleType =
|
|
1982
|
-
var region =
|
|
1983
|
-
var nodes =
|
|
1984
|
-
var bookSlug =
|
|
2043
|
+
var saleType = z11.enum(["spot", "on-demand"]).optional().describe("spot (the default) yields to scheduled bookings; on-demand runs until stopped or the listing ends.");
|
|
2044
|
+
var region = z11.string().min(1).optional().describe("A region slug, for example us-east-11. Omit for every region.");
|
|
2045
|
+
var nodes = z11.coerce.number().int().min(1).describe("Nodes to buy, each the GPUs (or vCPUs on the cpu book) of one whole machine.");
|
|
2046
|
+
var bookSlug = z11.string().min(1).describe('Catalog GPU slug, for example nvidia_h100_sxm, or "cpu" for CPU capacity sold per vCPU-hour.');
|
|
1985
2047
|
function help2(command, outcome, human, automation, related, order, acceptedReferences = []) {
|
|
1986
2048
|
return {
|
|
1987
2049
|
arguments: "semantic",
|
|
@@ -1996,11 +2058,11 @@ function help2(command, outcome, human, automation, related, order, acceptedRefe
|
|
|
1996
2058
|
order
|
|
1997
2059
|
};
|
|
1998
2060
|
}
|
|
1999
|
-
var marketBooksInput =
|
|
2061
|
+
var marketBooksInput = z11.object({
|
|
2000
2062
|
$positionals: positionals,
|
|
2001
|
-
gpuSlug:
|
|
2063
|
+
gpuSlug: z11.string().min(1).optional().describe('Only this catalog GPU slug, or "cpu".'),
|
|
2002
2064
|
saleType,
|
|
2003
|
-
region:
|
|
2065
|
+
region: z11.string().min(1).optional().describe("Only this region slug, or any for the books of bids in any region.")
|
|
2004
2066
|
});
|
|
2005
2067
|
var marketBooksCapability = defineCapability({
|
|
2006
2068
|
id: "market.books",
|
|
@@ -2019,7 +2081,7 @@ var marketBooksCapability = defineCapability({
|
|
|
2019
2081
|
return listOrderBooks(ctx.fetch, parsed);
|
|
2020
2082
|
}
|
|
2021
2083
|
});
|
|
2022
|
-
var marketBookInput =
|
|
2084
|
+
var marketBookInput = z11.object({
|
|
2023
2085
|
$positionals: positionals,
|
|
2024
2086
|
gpuSlug: bookSlug,
|
|
2025
2087
|
saleType,
|
|
@@ -2059,11 +2121,11 @@ var marketTradesCapability = defineCapability({
|
|
|
2059
2121
|
return listTrades(ctx.fetch, parsed.gpuSlug, parsed);
|
|
2060
2122
|
}
|
|
2061
2123
|
});
|
|
2062
|
-
var marketQuoteInput =
|
|
2124
|
+
var marketQuoteInput = z11.object({
|
|
2063
2125
|
$positionals: positionals,
|
|
2064
2126
|
gpuSlug: bookSlug,
|
|
2065
2127
|
saleType,
|
|
2066
|
-
region:
|
|
2128
|
+
region: z11.string().min(1).optional().describe("A region with an order book (see market books). Omit for any region."),
|
|
2067
2129
|
nodes
|
|
2068
2130
|
});
|
|
2069
2131
|
var marketQuoteCapability = defineCapability({
|
|
@@ -2083,15 +2145,15 @@ var marketQuoteCapability = defineCapability({
|
|
|
2083
2145
|
return quoteBid(ctx.fetch, { ...parsed, orderType: "market" });
|
|
2084
2146
|
}
|
|
2085
2147
|
});
|
|
2086
|
-
var marketBidInput =
|
|
2148
|
+
var marketBidInput = z11.object({
|
|
2087
2149
|
$positionals: positionals,
|
|
2088
2150
|
gpuSlug: bookSlug,
|
|
2089
2151
|
saleType,
|
|
2090
|
-
region:
|
|
2152
|
+
region: z11.string().min(1).optional().describe("A region with an order book (see market books), for example us-east-11. Omit to fill in any region."),
|
|
2091
2153
|
nodes,
|
|
2092
|
-
diskId:
|
|
2093
|
-
idempotencyKey:
|
|
2094
|
-
confirm:
|
|
2154
|
+
diskId: z11.string().uuid().optional().describe("The disk every VM boots. Omit to boot your newest disk, else Ornn's newest."),
|
|
2155
|
+
idempotencyKey: z11.string().min(1).max(200).optional(),
|
|
2156
|
+
confirm: z11.boolean().optional()
|
|
2095
2157
|
});
|
|
2096
2158
|
var marketBidCapability = defineCapability({
|
|
2097
2159
|
id: "market.bid",
|
|
@@ -2128,7 +2190,7 @@ var marketBidCapability = defineCapability({
|
|
|
2128
2190
|
return placeBid(ctx.fetch, body2, resolveIdempotencyKey(ctx, parsed.idempotencyKey));
|
|
2129
2191
|
}
|
|
2130
2192
|
});
|
|
2131
|
-
var marketOrdersInput =
|
|
2193
|
+
var marketOrdersInput = z11.object({ $positionals: positionals });
|
|
2132
2194
|
var marketOrdersCapability = defineCapability({
|
|
2133
2195
|
id: "market.orders",
|
|
2134
2196
|
domain: "markets",
|
|
@@ -2143,10 +2205,10 @@ var marketOrdersCapability = defineCapability({
|
|
|
2143
2205
|
slack: false,
|
|
2144
2206
|
execute: async (ctx) => listOrders(ctx.fetch)
|
|
2145
2207
|
});
|
|
2146
|
-
var marketCancelInput =
|
|
2208
|
+
var marketCancelInput = z11.object({
|
|
2147
2209
|
$positionals: positionals,
|
|
2148
|
-
orderId:
|
|
2149
|
-
confirm:
|
|
2210
|
+
orderId: z11.string().uuid().describe("A resting bid ID."),
|
|
2211
|
+
confirm: z11.boolean().optional()
|
|
2150
2212
|
});
|
|
2151
2213
|
var marketCancelCapability = defineCapability({
|
|
2152
2214
|
id: "market.cancel",
|
|
@@ -2174,9 +2236,9 @@ var marketCancelCapability = defineCapability({
|
|
|
2174
2236
|
return cancelOrder(ctx.fetch, parsed.orderId);
|
|
2175
2237
|
}
|
|
2176
2238
|
});
|
|
2177
|
-
var marketFillsInput =
|
|
2239
|
+
var marketFillsInput = z11.object({
|
|
2178
2240
|
$positionals: positionals,
|
|
2179
|
-
orderId:
|
|
2241
|
+
orderId: z11.string().uuid().optional().describe("Only this bid's fills.")
|
|
2180
2242
|
});
|
|
2181
2243
|
var marketFillsCapability = defineCapability({
|
|
2182
2244
|
id: "market.fills",
|
|
@@ -2195,10 +2257,10 @@ var marketFillsCapability = defineCapability({
|
|
|
2195
2257
|
return listFills(ctx.fetch, { orderId: parsed.orderId });
|
|
2196
2258
|
}
|
|
2197
2259
|
});
|
|
2198
|
-
var marketEndInput =
|
|
2260
|
+
var marketEndInput = z11.object({
|
|
2199
2261
|
$positionals: positionals,
|
|
2200
|
-
fillId:
|
|
2201
|
-
confirm:
|
|
2262
|
+
fillId: z11.string().uuid().describe("A fill ID; it is also its reservation ID."),
|
|
2263
|
+
confirm: z11.boolean().optional()
|
|
2202
2264
|
});
|
|
2203
2265
|
var marketEndCapability = defineCapability({
|
|
2204
2266
|
id: "market.end",
|
|
@@ -2224,9 +2286,9 @@ var marketEndCapability = defineCapability({
|
|
|
2224
2286
|
return stopReservation(ctx.fetch, parsed.fillId);
|
|
2225
2287
|
}
|
|
2226
2288
|
});
|
|
2227
|
-
var offersListInput =
|
|
2289
|
+
var offersListInput = z11.object({
|
|
2228
2290
|
$positionals: positionals,
|
|
2229
|
-
listingId:
|
|
2291
|
+
listingId: z11.string().uuid().optional().describe("A primary listing whose offer book to read. Omit for your organization's offers.")
|
|
2230
2292
|
});
|
|
2231
2293
|
var offersListCapability = defineCapability({
|
|
2232
2294
|
id: "offers.list",
|
|
@@ -2245,15 +2307,15 @@ var offersListCapability = defineCapability({
|
|
|
2245
2307
|
return listOffers(ctx.fetch, { listingId: parsed.listingId });
|
|
2246
2308
|
}
|
|
2247
2309
|
});
|
|
2248
|
-
var offerPostInput =
|
|
2310
|
+
var offerPostInput = z11.object({
|
|
2249
2311
|
$positionals: positionals,
|
|
2250
|
-
listingId:
|
|
2251
|
-
listingTermId:
|
|
2252
|
-
durationSeconds:
|
|
2312
|
+
listingId: z11.string().uuid().describe("A primary listing."),
|
|
2313
|
+
listingTermId: z11.string().uuid().describe("The listingTermsId of a non-spot term of that listing, from listings.terms."),
|
|
2314
|
+
durationSeconds: z11.coerce.number().int().positive().optional().describe("How long the reservation runs, within the term's minimum and maximum duration. Omit only when they are equal, or when the term has none (the rest of the listing)."),
|
|
2253
2315
|
pricePerGpuHourMicroUsd: microUsd.describe("Offer price in micro-USD per GPU-hour, or per vCPU-hour on CPU capacity (1000000 = $1.00). Covers every node on the listing."),
|
|
2254
|
-
downPaymentCents:
|
|
2255
|
-
idempotencyKey:
|
|
2256
|
-
confirm:
|
|
2316
|
+
downPaymentCents: z11.coerce.number().int().min(0).optional().describe("The down payment you offer, in cents."),
|
|
2317
|
+
idempotencyKey: z11.string().min(1).max(200).optional(),
|
|
2318
|
+
confirm: z11.boolean().optional()
|
|
2257
2319
|
});
|
|
2258
2320
|
var offerPostCapability = defineCapability({
|
|
2259
2321
|
id: "offers.post",
|
|
@@ -2291,10 +2353,10 @@ var offerPostCapability = defineCapability({
|
|
|
2291
2353
|
return postOffer(ctx.fetch, body2, resolveIdempotencyKey(ctx, parsed.idempotencyKey));
|
|
2292
2354
|
}
|
|
2293
2355
|
});
|
|
2294
|
-
var offerDecisionInput =
|
|
2356
|
+
var offerDecisionInput = z11.object({
|
|
2295
2357
|
$positionals: positionals,
|
|
2296
|
-
offerId:
|
|
2297
|
-
confirm:
|
|
2358
|
+
offerId: z11.string().uuid(),
|
|
2359
|
+
confirm: z11.boolean().optional()
|
|
2298
2360
|
});
|
|
2299
2361
|
var offerAcceptCapability = defineCapability({
|
|
2300
2362
|
id: "offers.accept",
|
|
@@ -2359,10 +2421,10 @@ var marketCapabilities = [
|
|
|
2359
2421
|
];
|
|
2360
2422
|
|
|
2361
2423
|
// ../../packages/capabilities/dist/capabilities/admin-enrollment.js
|
|
2362
|
-
import { z as
|
|
2363
|
-
var UUID =
|
|
2364
|
-
var nonEmpty =
|
|
2365
|
-
var tokenTtl =
|
|
2424
|
+
import { z as z12 } from "zod";
|
|
2425
|
+
var UUID = z12.string().uuid();
|
|
2426
|
+
var nonEmpty = z12.string().trim().min(1);
|
|
2427
|
+
var tokenTtl = z12.number().int().min(60).max(24 * 60 * 60);
|
|
2366
2428
|
function adminHelp3(command, outcome, human, automation, acceptedReferences = [], review) {
|
|
2367
2429
|
return {
|
|
2368
2430
|
audience: "admin",
|
|
@@ -2398,12 +2460,12 @@ var adminEnrollmentTokensListCapability2 = {
|
|
|
2398
2460
|
}
|
|
2399
2461
|
};
|
|
2400
2462
|
var adminEnrollmentTokenCreateCapability = withVnextBinding(tokensCreateCapability, adminHelp3(["admin", "enrollment-tokens", "create"], "Create one expiring enrollment token through an explicit secret export.", "ornn admin enrollment-tokens create --supplier UUID --expires-in SECONDS (--print | --output PATH) [--overwrite] []", "Unsupported: token creation requires an eligible human terminal.", ["canonical supplier organization UUID"], "Review the supplier, expiry, and secret destination before minting the token."));
|
|
2401
|
-
var tokenRevokeInput =
|
|
2402
|
-
tokenId:
|
|
2463
|
+
var tokenRevokeInput = z12.object({
|
|
2464
|
+
tokenId: z12.string().min(1),
|
|
2403
2465
|
token_id: UUID.optional(),
|
|
2404
2466
|
expected_created_at: nonEmpty.optional(),
|
|
2405
2467
|
idempotency_key: nonEmpty.optional(),
|
|
2406
|
-
confirm:
|
|
2468
|
+
confirm: z12.boolean().optional()
|
|
2407
2469
|
});
|
|
2408
2470
|
function rowsFromTokenList(payload) {
|
|
2409
2471
|
if (Array.isArray(payload))
|
|
@@ -2504,20 +2566,20 @@ var adminEnrollmentTokenRevokeCapability = defineCapability({
|
|
|
2504
2566
|
};
|
|
2505
2567
|
}
|
|
2506
2568
|
});
|
|
2507
|
-
var nodeEnrollInput =
|
|
2569
|
+
var nodeEnrollInput = z12.object({
|
|
2508
2570
|
node_id: UUID,
|
|
2509
2571
|
host: nonEmpty,
|
|
2510
2572
|
organization_id: UUID,
|
|
2511
2573
|
facility_id: UUID,
|
|
2512
|
-
filter:
|
|
2574
|
+
filter: z12.string().optional(),
|
|
2513
2575
|
identity_file: nonEmpty,
|
|
2514
|
-
private_key:
|
|
2576
|
+
private_key: z12.string().min(1).optional(),
|
|
2515
2577
|
username: nonEmpty.default("root"),
|
|
2516
|
-
port:
|
|
2578
|
+
port: z12.number().int().min(1).max(65535).default(22),
|
|
2517
2579
|
expires_in_seconds: tokenTtl,
|
|
2518
2580
|
installer_base: nonEmpty.optional(),
|
|
2519
|
-
replace_existing_management:
|
|
2520
|
-
verbose:
|
|
2581
|
+
replace_existing_management: z12.literal(true),
|
|
2582
|
+
verbose: z12.boolean().default(false)
|
|
2521
2583
|
});
|
|
2522
2584
|
function safeRemoteResult(value) {
|
|
2523
2585
|
if (!value || typeof value !== "object")
|
|
@@ -2607,7 +2669,7 @@ var adminNodeEnrollCapability = defineCapability({
|
|
|
2607
2669
|
};
|
|
2608
2670
|
}
|
|
2609
2671
|
});
|
|
2610
|
-
var nodeKeyInput =
|
|
2672
|
+
var nodeKeyInput = z12.object({ node_id: UUID });
|
|
2611
2673
|
var adminNodeExportKeyCapability = defineCapability({
|
|
2612
2674
|
id: "nodes.export-key",
|
|
2613
2675
|
domain: "fleet",
|
|
@@ -2666,18 +2728,25 @@ var adminEnrollmentCapabilities = [
|
|
|
2666
2728
|
adminNodeRotateKeyCapability
|
|
2667
2729
|
];
|
|
2668
2730
|
|
|
2731
|
+
// ../../packages/api-client/dist/benchmark/index.js
|
|
2732
|
+
var base2 = "/v1/benchmark";
|
|
2733
|
+
var benchmarkJobsPath = `${base2}/jobs`;
|
|
2734
|
+
function createJob(request, body2) {
|
|
2735
|
+
return request(benchmarkJobsPath, { method: "POST", body: body2 });
|
|
2736
|
+
}
|
|
2737
|
+
|
|
2669
2738
|
// ../../packages/capabilities/dist/capabilities/admin-node-diagnostics.js
|
|
2670
|
-
import { z as
|
|
2671
|
-
var nodeId =
|
|
2739
|
+
import { z as z13 } from "zod";
|
|
2740
|
+
var nodeId = z13.string().min(1).refine((value) => value === value.trim(), {
|
|
2672
2741
|
message: "node_id must be an exact canonical node ID without surrounding whitespace"
|
|
2673
2742
|
});
|
|
2674
|
-
var adminNodeDiagnoseInput =
|
|
2743
|
+
var adminNodeDiagnoseInput = z13.object({
|
|
2675
2744
|
node_id: nodeId
|
|
2676
2745
|
});
|
|
2677
|
-
var adminNodeExecInput =
|
|
2746
|
+
var adminNodeExecInput = z13.object({
|
|
2678
2747
|
node_id: nodeId,
|
|
2679
|
-
command:
|
|
2680
|
-
timeout_seconds:
|
|
2748
|
+
command: z13.string().min(1),
|
|
2749
|
+
timeout_seconds: z13.number().int().min(1).max(900)
|
|
2681
2750
|
});
|
|
2682
2751
|
function adminNodeHelp(command, outcome, human, automation, review) {
|
|
2683
2752
|
return {
|
|
@@ -2697,7 +2766,7 @@ var adminNodeDiagnoseCapability = defineCapability({
|
|
|
2697
2766
|
roles: ["admin"],
|
|
2698
2767
|
description: "Queue the staff-authorized diagnosis workflow for one exact node after a live review.",
|
|
2699
2768
|
mutation: "preview-confirm",
|
|
2700
|
-
http: { method: "POST", path: "/jobs" },
|
|
2769
|
+
http: { method: "POST", path: "/v1/benchmark/jobs" },
|
|
2701
2770
|
cli: {
|
|
2702
2771
|
command: ["admin", "nodes", "diagnose"],
|
|
2703
2772
|
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.")
|
|
@@ -2707,16 +2776,14 @@ var adminNodeDiagnoseCapability = defineCapability({
|
|
|
2707
2776
|
input: adminNodeDiagnoseInput,
|
|
2708
2777
|
execute: async (ctx, input) => {
|
|
2709
2778
|
const parsed = adminNodeDiagnoseInput.parse(input);
|
|
2779
|
+
const body2 = { node_id: parsed.node_id, burn_time_minutes: 0 };
|
|
2710
2780
|
if (!ctx.confirmed) {
|
|
2711
2781
|
return {
|
|
2712
2782
|
action: "node.diagnose",
|
|
2713
|
-
payload:
|
|
2783
|
+
payload: body2
|
|
2714
2784
|
};
|
|
2715
2785
|
}
|
|
2716
|
-
return ctx.fetch
|
|
2717
|
-
method: "POST",
|
|
2718
|
-
body: { node_id: parsed.node_id, source: { mode: "cli" }, burn_time_minutes: 0 }
|
|
2719
|
-
});
|
|
2786
|
+
return createJob(ctx.fetch, body2);
|
|
2720
2787
|
}
|
|
2721
2788
|
});
|
|
2722
2789
|
var adminNodeExecCapability = {
|
|
@@ -2752,8 +2819,8 @@ var adminNodeDiagnosticCapabilities = [
|
|
|
2752
2819
|
];
|
|
2753
2820
|
|
|
2754
2821
|
// ../../packages/capabilities/dist/capabilities/admin-node-sanitize.js
|
|
2755
|
-
import { z as
|
|
2756
|
-
var uuid =
|
|
2822
|
+
import { z as z14 } from "zod";
|
|
2823
|
+
var uuid = z14.string().uuid();
|
|
2757
2824
|
var sanitizeOperations = ["data_wipe", "ram_roundtrip", "node_turnover", "host_restore"];
|
|
2758
2825
|
var sanitizeConfirmations = [
|
|
2759
2826
|
"SANITIZE",
|
|
@@ -2772,13 +2839,13 @@ var startConfirmation = {
|
|
|
2772
2839
|
node_turnover: "WIPE AND RESTORE",
|
|
2773
2840
|
host_restore: "RESTORE HOST"
|
|
2774
2841
|
};
|
|
2775
|
-
var nodeSanitizeStartInput =
|
|
2842
|
+
var nodeSanitizeStartInput = z14.object({
|
|
2776
2843
|
node_id: uuid.describe("Node UUID whose drives will be sanitized."),
|
|
2777
2844
|
job_id: uuid.describe("Caller-supplied stable sanitize job UUID; reuse it when retrying."),
|
|
2778
|
-
operation:
|
|
2845
|
+
operation: z14.enum(sanitizeOperations).optional().describe("Sanitize operation; omission defaults to data_wipe."),
|
|
2779
2846
|
maintenance_batch_id: uuid.optional().describe("Optional maintenance batch UUID recorded by the audit middleware."),
|
|
2780
2847
|
recovery_uuid: uuid.optional().describe("Recovery boot identity: required for ram_roundtrip, optional for node_turnover and host_restore, rejected for data_wipe."),
|
|
2781
|
-
confirmation:
|
|
2848
|
+
confirmation: z14.enum(sanitizeConfirmations).describe("Exact confirmation phrase required for the selected operation.")
|
|
2782
2849
|
}).strict().refine((input) => input.confirmation === startConfirmation[input.operation ?? "data_wipe"], {
|
|
2783
2850
|
message: "confirmation must exactly match the selected sanitize operation.",
|
|
2784
2851
|
path: ["confirmation"]
|
|
@@ -2791,30 +2858,30 @@ var nodeSanitizeStartInput = z13.object({
|
|
|
2791
2858
|
message: "recovery_uuid is required for ram_roundtrip and not accepted for data_wipe.",
|
|
2792
2859
|
path: ["recovery_uuid"]
|
|
2793
2860
|
});
|
|
2794
|
-
var nodeSanitizeShowInput =
|
|
2861
|
+
var nodeSanitizeShowInput = z14.object({
|
|
2795
2862
|
node_id: uuid.describe("Node UUID associated with the sanitize job."),
|
|
2796
2863
|
job_id: uuid.describe("Sanitize job UUID to read.")
|
|
2797
2864
|
}).strict();
|
|
2798
|
-
var manualCleanupInput =
|
|
2865
|
+
var manualCleanupInput = z14.object({
|
|
2799
2866
|
reservation_id: uuid.describe("Reservation whose Bare Metal release this turnover job holds."),
|
|
2800
2867
|
lifecycle_operation_id: uuid.describe("The current orchestrator release operation UUID that owns the hold, not a Commerce operation."),
|
|
2801
|
-
reason:
|
|
2802
|
-
evidence_sha256:
|
|
2803
|
-
acknowledge_retained_os:
|
|
2804
|
-
tenant_access_revoked:
|
|
2805
|
-
data_drives_sanitized:
|
|
2868
|
+
reason: z14.string().trim().min(20).max(2e3).describe("Cleanup performed and why the existing OS must be retained."),
|
|
2869
|
+
evidence_sha256: z14.string().regex(/^[0-9a-f]{64}$/, "evidence_sha256 must be 64 lowercase hex characters.").describe("Lowercase SHA-256 of the immutable cleanup evidence file kept outside the host."),
|
|
2870
|
+
acknowledge_retained_os: z14.literal(true).describe("The existing OS is retained; OS integrity and full-media erasure are not established."),
|
|
2871
|
+
tenant_access_revoked: z14.literal(true).describe("Former tenant workloads, keys, and active access were removed and verified."),
|
|
2872
|
+
data_drives_sanitized: z14.literal(true).describe("Every local data drive was sanitized with retained per-drive receipts.")
|
|
2806
2873
|
}).strict();
|
|
2807
|
-
var nodeSanitizeUpdateInput =
|
|
2874
|
+
var nodeSanitizeUpdateInput = z14.object({
|
|
2808
2875
|
node_id: uuid.describe("Node UUID associated with the sanitize job."),
|
|
2809
2876
|
job_id: uuid.describe("Sanitize job UUID to decide."),
|
|
2810
|
-
confirmation:
|
|
2877
|
+
confirmation: z14.enum(sanitizeDecisions).describe("APPROVE SANITIZATION runs the held job, SKIP SANITIZATION skips an eligible first-use wipe, ACCEPT MANUAL CLEANUP attests manual cleanup with the OS retained."),
|
|
2811
2878
|
manual_cleanup: manualCleanupInput.optional().describe("Required with ACCEPT MANUAL CLEANUP and rejected with any other decision.")
|
|
2812
2879
|
}).strict().refine((input) => input.confirmation === "ACCEPT MANUAL CLEANUP" === (input.manual_cleanup !== void 0), {
|
|
2813
2880
|
message: "manual_cleanup is required with ACCEPT MANUAL CLEANUP and allowed only with it.",
|
|
2814
2881
|
path: ["manual_cleanup"]
|
|
2815
2882
|
});
|
|
2816
2883
|
function slackParameters(schema) {
|
|
2817
|
-
const json =
|
|
2884
|
+
const json = z14.toJSONSchema(schema);
|
|
2818
2885
|
return {
|
|
2819
2886
|
type: "object",
|
|
2820
2887
|
properties: json.properties,
|
|
@@ -2839,8 +2906,8 @@ function requireAdmin(ctx) {
|
|
|
2839
2906
|
throw new Error("Admin role required.");
|
|
2840
2907
|
}
|
|
2841
2908
|
function sanitizePath(nodeId3, jobId) {
|
|
2842
|
-
const
|
|
2843
|
-
return jobId ? `${
|
|
2909
|
+
const base3 = `/nodes/${encodeURIComponent(nodeId3)}/sanitize-drives`;
|
|
2910
|
+
return jobId ? `${base3}/${encodeURIComponent(jobId)}` : base3;
|
|
2844
2911
|
}
|
|
2845
2912
|
var nodeSanitizeStartCapability = defineCapability({
|
|
2846
2913
|
id: "node.sanitize.start",
|
|
@@ -2910,28 +2977,28 @@ var adminNodeSanitizeCapabilities = [
|
|
|
2910
2977
|
];
|
|
2911
2978
|
|
|
2912
2979
|
// ../../packages/capabilities/dist/capabilities/admin-nodes-lifecycle.js
|
|
2913
|
-
import { z as
|
|
2914
|
-
var nodeReference =
|
|
2915
|
-
var optionalText2 =
|
|
2980
|
+
import { z as z15 } from "zod";
|
|
2981
|
+
var nodeReference = z15.string().trim().min(1);
|
|
2982
|
+
var optionalText2 = z15.string().trim().min(1).optional();
|
|
2916
2983
|
var commonInput = {
|
|
2917
2984
|
node_ref: nodeReference,
|
|
2918
2985
|
node_id: optionalText2,
|
|
2919
2986
|
idempotency_key: optionalText2,
|
|
2920
2987
|
reason: optionalText2,
|
|
2921
|
-
yes:
|
|
2922
|
-
wait:
|
|
2923
|
-
timeout_seconds:
|
|
2988
|
+
yes: z15.boolean().optional(),
|
|
2989
|
+
wait: z15.boolean().optional(),
|
|
2990
|
+
timeout_seconds: z15.number().positive().optional()
|
|
2924
2991
|
};
|
|
2925
|
-
var rebootInput =
|
|
2992
|
+
var rebootInput = z15.object({
|
|
2926
2993
|
...commonInput,
|
|
2927
2994
|
machine_id: optionalText2
|
|
2928
2995
|
});
|
|
2929
2996
|
var hardResetInput = rebootInput.extend({
|
|
2930
|
-
erase_local_data:
|
|
2997
|
+
erase_local_data: z15.literal(true)
|
|
2931
2998
|
});
|
|
2932
|
-
var assignmentInput =
|
|
2999
|
+
var assignmentInput = z15.object({
|
|
2933
3000
|
...commonInput,
|
|
2934
|
-
reservation_id:
|
|
3001
|
+
reservation_id: z15.string().trim().min(1)
|
|
2935
3002
|
});
|
|
2936
3003
|
function adminLifecycleHelp(command, outcome, human, automation, review) {
|
|
2937
3004
|
return {
|
|
@@ -3048,7 +3115,7 @@ var adminNodeLifecycleCapabilities = [
|
|
|
3048
3115
|
];
|
|
3049
3116
|
|
|
3050
3117
|
// ../../packages/capabilities/dist/capabilities/billing.js
|
|
3051
|
-
import { z as
|
|
3118
|
+
import { z as z16 } from "zod";
|
|
3052
3119
|
var INVOICES_ROUTE = "/commerce/invoices";
|
|
3053
3120
|
var SHOWBACK_ROUTE = "/commerce/billing/showback";
|
|
3054
3121
|
var DATE_ONLY = /^\d{4}-\d{2}-\d{2}$/;
|
|
@@ -3060,7 +3127,7 @@ var billingCapabilities = [
|
|
|
3060
3127
|
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.",
|
|
3061
3128
|
mutation: "read",
|
|
3062
3129
|
http: { method: "GET", path: "/commerce/billing/summary" },
|
|
3063
|
-
input:
|
|
3130
|
+
input: z16.object({}),
|
|
3064
3131
|
slack: false,
|
|
3065
3132
|
execute: (ctx) => getBillingSummary(ctx.fetch)
|
|
3066
3133
|
}),
|
|
@@ -3071,9 +3138,9 @@ var billingCapabilities = [
|
|
|
3071
3138
|
description: "List a page of this tenant's invoices.",
|
|
3072
3139
|
mutation: "read",
|
|
3073
3140
|
http: { method: "GET", path: INVOICES_ROUTE },
|
|
3074
|
-
input:
|
|
3075
|
-
limit:
|
|
3076
|
-
cursor:
|
|
3141
|
+
input: z16.object({
|
|
3142
|
+
limit: z16.number().int().min(1).max(500).optional(),
|
|
3143
|
+
cursor: z16.string().trim().min(1).max(2048).optional()
|
|
3077
3144
|
}),
|
|
3078
3145
|
slack: false,
|
|
3079
3146
|
execute: (ctx, input) => listInvoices(ctx.fetch, input)
|
|
@@ -3085,9 +3152,9 @@ var billingCapabilities = [
|
|
|
3085
3152
|
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.",
|
|
3086
3153
|
mutation: "read",
|
|
3087
3154
|
http: { method: "GET", path: SHOWBACK_ROUTE },
|
|
3088
|
-
input:
|
|
3089
|
-
start:
|
|
3090
|
-
end:
|
|
3155
|
+
input: z16.object({
|
|
3156
|
+
start: z16.string().regex(DATE_ONLY, "start must be a date in yyyy-mm-dd format."),
|
|
3157
|
+
end: z16.string().regex(DATE_ONLY, "end must be a date in yyyy-mm-dd format.")
|
|
3091
3158
|
}).refine((input) => input.start <= input.end, { message: "start must be on or before end." }),
|
|
3092
3159
|
slack: false,
|
|
3093
3160
|
execute: (ctx, input) => getShowback(ctx.fetch, input)
|
|
@@ -3095,83 +3162,83 @@ var billingCapabilities = [
|
|
|
3095
3162
|
];
|
|
3096
3163
|
|
|
3097
3164
|
// ../../packages/capabilities/dist/capabilities/compute.js
|
|
3098
|
-
import { z as
|
|
3099
|
-
var positionals2 =
|
|
3100
|
-
var launchInput =
|
|
3165
|
+
import { z as z17 } from "zod";
|
|
3166
|
+
var positionals2 = z17.array(z17.string()).default([]);
|
|
3167
|
+
var launchInput = z17.object({
|
|
3101
3168
|
$positionals: positionals2,
|
|
3102
|
-
guided:
|
|
3103
|
-
idempotencyKey:
|
|
3104
|
-
key:
|
|
3105
|
-
keyId:
|
|
3106
|
-
label:
|
|
3107
|
-
machine:
|
|
3108
|
-
machines:
|
|
3109
|
-
mode:
|
|
3110
|
-
mountAccess:
|
|
3111
|
-
network:
|
|
3112
|
-
noWait:
|
|
3113
|
-
nodes:
|
|
3114
|
-
publicKey:
|
|
3115
|
-
publicKeyFile:
|
|
3116
|
-
reservation:
|
|
3117
|
-
resume:
|
|
3118
|
-
timeout:
|
|
3119
|
-
username:
|
|
3120
|
-
vms:
|
|
3121
|
-
wait:
|
|
3122
|
-
yes:
|
|
3123
|
-
volume:
|
|
3169
|
+
guided: z17.boolean().optional(),
|
|
3170
|
+
idempotencyKey: z17.string().optional(),
|
|
3171
|
+
key: z17.string().optional(),
|
|
3172
|
+
keyId: z17.string().optional(),
|
|
3173
|
+
label: z17.string().optional(),
|
|
3174
|
+
machine: z17.string().optional(),
|
|
3175
|
+
machines: z17.string().optional(),
|
|
3176
|
+
mode: z17.string().optional(),
|
|
3177
|
+
mountAccess: z17.string().optional(),
|
|
3178
|
+
network: z17.string().optional(),
|
|
3179
|
+
noWait: z17.boolean().optional(),
|
|
3180
|
+
nodes: z17.union([z17.string(), z17.number()]).optional(),
|
|
3181
|
+
publicKey: z17.string().optional(),
|
|
3182
|
+
publicKeyFile: z17.string().optional(),
|
|
3183
|
+
reservation: z17.string().optional(),
|
|
3184
|
+
resume: z17.union([z17.string().min(1), z17.literal(true)]).optional(),
|
|
3185
|
+
timeout: z17.string().optional(),
|
|
3186
|
+
username: z17.string().optional(),
|
|
3187
|
+
vms: z17.string().optional(),
|
|
3188
|
+
wait: z17.boolean().optional(),
|
|
3189
|
+
yes: z17.boolean().optional(),
|
|
3190
|
+
volume: z17.string().optional()
|
|
3124
3191
|
}).strict();
|
|
3125
|
-
var keyListInput =
|
|
3192
|
+
var keyListInput = z17.object({
|
|
3126
3193
|
$positionals: positionals2,
|
|
3127
|
-
cursor:
|
|
3128
|
-
limit:
|
|
3194
|
+
cursor: z17.string().optional(),
|
|
3195
|
+
limit: z17.coerce.number().int().min(1).max(500).optional()
|
|
3129
3196
|
}).strict();
|
|
3130
|
-
var keyMutationInput =
|
|
3197
|
+
var keyMutationInput = z17.object({
|
|
3131
3198
|
$positionals: positionals2,
|
|
3132
|
-
idempotencyKey:
|
|
3133
|
-
key:
|
|
3134
|
-
keyId:
|
|
3135
|
-
label:
|
|
3136
|
-
publicKey:
|
|
3137
|
-
publicKeyFile:
|
|
3138
|
-
yes:
|
|
3199
|
+
idempotencyKey: z17.string().optional(),
|
|
3200
|
+
key: z17.string().optional(),
|
|
3201
|
+
keyId: z17.string().optional(),
|
|
3202
|
+
label: z17.string().optional(),
|
|
3203
|
+
publicKey: z17.string().optional(),
|
|
3204
|
+
publicKeyFile: z17.string().optional(),
|
|
3205
|
+
yes: z17.boolean().optional()
|
|
3139
3206
|
}).strict();
|
|
3140
|
-
var machineListInput =
|
|
3207
|
+
var machineListInput = z17.object({
|
|
3141
3208
|
$positionals: positionals2,
|
|
3142
|
-
cursor:
|
|
3143
|
-
limit:
|
|
3209
|
+
cursor: z17.string().optional(),
|
|
3210
|
+
limit: z17.coerce.number().int().min(1).max(500).optional()
|
|
3144
3211
|
}).strict();
|
|
3145
|
-
var machineShowInput =
|
|
3212
|
+
var machineShowInput = z17.object({
|
|
3146
3213
|
$positionals: positionals2,
|
|
3147
|
-
guided:
|
|
3214
|
+
guided: z17.boolean().optional()
|
|
3148
3215
|
}).strict();
|
|
3149
|
-
var machineWaitInput =
|
|
3216
|
+
var machineWaitInput = z17.object({
|
|
3150
3217
|
$positionals: positionals2,
|
|
3151
|
-
guided:
|
|
3152
|
-
timeout:
|
|
3218
|
+
guided: z17.boolean().optional(),
|
|
3219
|
+
timeout: z17.string().optional()
|
|
3153
3220
|
}).strict();
|
|
3154
|
-
var machineSwitchInput =
|
|
3221
|
+
var machineSwitchInput = z17.object({
|
|
3155
3222
|
$positionals: positionals2,
|
|
3156
|
-
guided:
|
|
3157
|
-
eraseLocalData:
|
|
3158
|
-
idempotencyKey:
|
|
3159
|
-
mode:
|
|
3160
|
-
network:
|
|
3161
|
-
noWait:
|
|
3162
|
-
timeout:
|
|
3163
|
-
wait:
|
|
3164
|
-
yes:
|
|
3223
|
+
guided: z17.boolean().optional(),
|
|
3224
|
+
eraseLocalData: z17.boolean().optional(),
|
|
3225
|
+
idempotencyKey: z17.string().optional(),
|
|
3226
|
+
mode: z17.string().optional(),
|
|
3227
|
+
network: z17.string().optional(),
|
|
3228
|
+
noWait: z17.boolean().optional(),
|
|
3229
|
+
timeout: z17.string().optional(),
|
|
3230
|
+
wait: z17.boolean().optional(),
|
|
3231
|
+
yes: z17.boolean().optional()
|
|
3165
3232
|
}).strict();
|
|
3166
|
-
var machineMaintenanceInput =
|
|
3233
|
+
var machineMaintenanceInput = z17.object({
|
|
3167
3234
|
$positionals: positionals2,
|
|
3168
|
-
eraseLocalData:
|
|
3169
|
-
guided:
|
|
3170
|
-
idempotencyKey:
|
|
3171
|
-
noWait:
|
|
3172
|
-
timeout:
|
|
3173
|
-
wait:
|
|
3174
|
-
yes:
|
|
3235
|
+
eraseLocalData: z17.boolean().optional(),
|
|
3236
|
+
guided: z17.boolean().optional(),
|
|
3237
|
+
idempotencyKey: z17.string().optional(),
|
|
3238
|
+
noWait: z17.boolean().optional(),
|
|
3239
|
+
timeout: z17.string().optional(),
|
|
3240
|
+
wait: z17.boolean().optional(),
|
|
3241
|
+
yes: z17.boolean().optional()
|
|
3175
3242
|
}).strict();
|
|
3176
3243
|
function runtime(context) {
|
|
3177
3244
|
const interaction2 = context.cli?.interaction;
|
|
@@ -3613,17 +3680,17 @@ function pagedQuery(input) {
|
|
|
3613
3680
|
query2.set("cursor", input.cursor);
|
|
3614
3681
|
return query2.toString();
|
|
3615
3682
|
}
|
|
3616
|
-
var pageInput =
|
|
3617
|
-
limit:
|
|
3618
|
-
cursor:
|
|
3683
|
+
var pageInput = z17.object({
|
|
3684
|
+
limit: z17.number().int().min(1).max(500).optional(),
|
|
3685
|
+
cursor: z17.string().optional()
|
|
3619
3686
|
});
|
|
3620
|
-
var publicKeyInput =
|
|
3621
|
-
publicKey:
|
|
3622
|
-
label:
|
|
3623
|
-
confirm:
|
|
3687
|
+
var publicKeyInput = z17.object({
|
|
3688
|
+
publicKey: z17.string(),
|
|
3689
|
+
label: z17.string().optional(),
|
|
3690
|
+
confirm: z17.boolean().optional()
|
|
3624
3691
|
});
|
|
3625
|
-
var keyIdInput =
|
|
3626
|
-
var nodeIdInput =
|
|
3692
|
+
var keyIdInput = z17.object({ keyId: z17.string(), confirm: z17.boolean().optional() });
|
|
3693
|
+
var nodeIdInput = z17.object({ nodeId: z17.string(), confirm: z17.boolean().optional() });
|
|
3627
3694
|
var ADDED_KEY_OUTCOME = "The response's outcome field says whether the key was created, was already_registered (returned unchanged, so the submitted label is not applied), or was reactivated from a revoked key.";
|
|
3628
3695
|
function rebootMachine(mode) {
|
|
3629
3696
|
return (ctx, input) => ctx.fetch(`${NODES_ROUTE}/${encodeURIComponent(input.nodeId)}/reboot`, {
|
|
@@ -3639,7 +3706,7 @@ var accessVerbCapabilities = [
|
|
|
3639
3706
|
description: "Show VM and Bare Metal SSH access machines for a reservation.",
|
|
3640
3707
|
mutation: "read",
|
|
3641
3708
|
http: { method: "GET", path: NODES_ROUTE },
|
|
3642
|
-
input:
|
|
3709
|
+
input: z17.object({ reservationId: z17.string() }),
|
|
3643
3710
|
slack: false,
|
|
3644
3711
|
execute: (ctx, input) => ctx.fetch(`${NODES_ROUTE}?reservation_id=${encodeURIComponent(input.reservationId)}`, {
|
|
3645
3712
|
method: "GET"
|
|
@@ -3652,18 +3719,18 @@ var accessVerbCapabilities = [
|
|
|
3652
3719
|
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.",
|
|
3653
3720
|
mutation: "preview-confirm",
|
|
3654
3721
|
http: { method: "POST", path: `${NODES_ROUTE}/reservations/{reservationId}/launch` },
|
|
3655
|
-
input:
|
|
3656
|
-
reservationId:
|
|
3657
|
-
sshKeyIds:
|
|
3658
|
-
username:
|
|
3659
|
-
machineCount:
|
|
3660
|
-
requestId:
|
|
3661
|
-
accessMode:
|
|
3662
|
-
networkMode:
|
|
3663
|
-
diskId:
|
|
3664
|
-
storageLoadDriveId:
|
|
3665
|
-
storageSaveDriveId:
|
|
3666
|
-
confirm:
|
|
3722
|
+
input: z17.object({
|
|
3723
|
+
reservationId: z17.string(),
|
|
3724
|
+
sshKeyIds: z17.array(z17.string()).min(1),
|
|
3725
|
+
username: z17.string().optional(),
|
|
3726
|
+
machineCount: z17.number().int().positive().optional(),
|
|
3727
|
+
requestId: z17.string().optional(),
|
|
3728
|
+
accessMode: z17.enum(["bare-metal", "vm"]).optional(),
|
|
3729
|
+
networkMode: z17.enum(["public", "private"]).optional(),
|
|
3730
|
+
diskId: z17.string().optional(),
|
|
3731
|
+
storageLoadDriveId: z17.string().optional(),
|
|
3732
|
+
storageSaveDriveId: z17.string().optional(),
|
|
3733
|
+
confirm: z17.boolean().optional()
|
|
3667
3734
|
}),
|
|
3668
3735
|
slack: false,
|
|
3669
3736
|
// Without disk_id the orchestrator boots "virtual-machine" from the
|
|
@@ -3689,14 +3756,14 @@ var accessVerbCapabilities = [
|
|
|
3689
3756
|
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.",
|
|
3690
3757
|
mutation: "preview-confirm",
|
|
3691
3758
|
http: { method: "POST", path: `${NODES_ROUTE}/reservations/{reservationId}/switch-access` },
|
|
3692
|
-
input:
|
|
3693
|
-
reservationId:
|
|
3694
|
-
networkMode:
|
|
3695
|
-
sshKeyIds:
|
|
3696
|
-
accessMode:
|
|
3697
|
-
username:
|
|
3698
|
-
requestId:
|
|
3699
|
-
confirm:
|
|
3759
|
+
input: z17.object({
|
|
3760
|
+
reservationId: z17.string(),
|
|
3761
|
+
networkMode: z17.enum(["public", "private"]),
|
|
3762
|
+
sshKeyIds: z17.array(z17.string()).min(1),
|
|
3763
|
+
accessMode: z17.enum(["bare-metal", "virtual-machine"]).optional(),
|
|
3764
|
+
username: z17.string().optional(),
|
|
3765
|
+
requestId: z17.string().regex(/\S/),
|
|
3766
|
+
confirm: z17.boolean().optional()
|
|
3700
3767
|
}),
|
|
3701
3768
|
slack: false,
|
|
3702
3769
|
execute: (ctx, input) => ctx.fetch(reservationNodesRoute(input.reservationId, "switch-access"), {
|
|
@@ -3716,7 +3783,7 @@ var accessVerbCapabilities = [
|
|
|
3716
3783
|
description: "List SSH keys registered for a reservation.",
|
|
3717
3784
|
mutation: "read",
|
|
3718
3785
|
http: { method: "GET", path: `${NODES_ROUTE}/reservations/{reservationId}/ssh-keys` },
|
|
3719
|
-
input:
|
|
3786
|
+
input: z17.object({ reservationId: z17.string() }),
|
|
3720
3787
|
slack: false,
|
|
3721
3788
|
execute: (ctx, input) => ctx.fetch(reservationNodesRoute(input.reservationId, "ssh-keys"), { method: "GET" })
|
|
3722
3789
|
}),
|
|
@@ -3727,7 +3794,7 @@ var accessVerbCapabilities = [
|
|
|
3727
3794
|
description: `Add an SSH key to a reservation. ${ADDED_KEY_OUTCOME}`,
|
|
3728
3795
|
mutation: "preview-confirm",
|
|
3729
3796
|
http: { method: "POST", path: `${NODES_ROUTE}/reservations/{reservationId}/ssh-keys` },
|
|
3730
|
-
input: publicKeyInput.extend({ reservationId:
|
|
3797
|
+
input: publicKeyInput.extend({ reservationId: z17.string() }),
|
|
3731
3798
|
slack: false,
|
|
3732
3799
|
execute: (ctx, input) => ctx.fetch(reservationNodesRoute(input.reservationId, "ssh-keys"), {
|
|
3733
3800
|
method: "POST",
|
|
@@ -3842,11 +3909,11 @@ var machinePushKeysCapability = defineCapability({
|
|
|
3842
3909
|
description: "Push SSH keys onto one reservation machine.",
|
|
3843
3910
|
mutation: "preview-confirm",
|
|
3844
3911
|
http: { method: "POST", path: `${NODES_ROUTE}/{nodeId}/push-keys` },
|
|
3845
|
-
input:
|
|
3846
|
-
nodeId:
|
|
3847
|
-
sshKeyIds:
|
|
3848
|
-
requestId:
|
|
3849
|
-
confirm:
|
|
3912
|
+
input: z17.object({
|
|
3913
|
+
nodeId: z17.string(),
|
|
3914
|
+
sshKeyIds: z17.array(z17.string()).min(1),
|
|
3915
|
+
requestId: z17.string(),
|
|
3916
|
+
confirm: z17.boolean().optional()
|
|
3850
3917
|
}),
|
|
3851
3918
|
mcp: false,
|
|
3852
3919
|
slack: false,
|
|
@@ -3863,7 +3930,7 @@ var machineMetricsCapabilities = [
|
|
|
3863
3930
|
description: "Fetch a live metrics snapshot for one reservation machine.",
|
|
3864
3931
|
mutation: "read",
|
|
3865
3932
|
http: { method: "GET", path: `${NODES_ROUTE}/reservations/{reservationId}/live-metrics` },
|
|
3866
|
-
input:
|
|
3933
|
+
input: z17.object({ reservationId: z17.string(), machineId: z17.string() }),
|
|
3867
3934
|
mcp: false,
|
|
3868
3935
|
slack: false,
|
|
3869
3936
|
execute: (ctx, input) => ctx.fetch(`${reservationNodesRoute(input.reservationId, "live-metrics")}?machine_id=${encodeURIComponent(input.machineId)}`, { method: "GET" })
|
|
@@ -3875,12 +3942,12 @@ var machineMetricsCapabilities = [
|
|
|
3875
3942
|
description: "Fetch historical telemetry for one reservation machine over a time range.",
|
|
3876
3943
|
mutation: "read",
|
|
3877
3944
|
http: { method: "GET", path: `${NODES_ROUTE}/reservations/{reservationId}/telemetry-history` },
|
|
3878
|
-
input:
|
|
3879
|
-
reservationId:
|
|
3880
|
-
machineId:
|
|
3881
|
-
start:
|
|
3882
|
-
end:
|
|
3883
|
-
maxPoints:
|
|
3945
|
+
input: z17.object({
|
|
3946
|
+
reservationId: z17.string(),
|
|
3947
|
+
machineId: z17.string(),
|
|
3948
|
+
start: z17.string().optional(),
|
|
3949
|
+
end: z17.string().optional(),
|
|
3950
|
+
maxPoints: z17.number().int().positive().optional()
|
|
3884
3951
|
}),
|
|
3885
3952
|
mcp: false,
|
|
3886
3953
|
slack: false,
|
|
@@ -3900,14 +3967,14 @@ var machineMetricsCapabilities = [
|
|
|
3900
3967
|
];
|
|
3901
3968
|
|
|
3902
3969
|
// ../../packages/capabilities/dist/capabilities/credits.js
|
|
3903
|
-
import { z as
|
|
3904
|
-
var creditGrantInput =
|
|
3905
|
-
organizationId:
|
|
3906
|
-
adjustmentId:
|
|
3907
|
-
amountCents:
|
|
3908
|
-
direction:
|
|
3909
|
-
note:
|
|
3910
|
-
confirm:
|
|
3970
|
+
import { z as z18 } from "zod";
|
|
3971
|
+
var creditGrantInput = z18.object({
|
|
3972
|
+
organizationId: z18.uuid().describe("Customer organization UUID. Resolve names or emails with organization_list; ask which organization if matches are ambiguous."),
|
|
3973
|
+
adjustmentId: z18.uuid().describe("The credit-adjustment API's required grant UUID. Keep the same UUID when confirming this grant."),
|
|
3974
|
+
amountCents: z18.number().int().min(1).max(1e8).describe("USD cents: 10000 grants $100.00."),
|
|
3975
|
+
direction: z18.enum(["credit", "debit"]).optional().describe("credit adds funds (default); debit removes funds. Choose explicitly for a debit."),
|
|
3976
|
+
note: z18.string().trim().min(1).refine((value) => new TextEncoder().encode(value).length <= 500, "Keep the note under 500 UTF-8 bytes.").describe("Reason for the credit grant."),
|
|
3977
|
+
confirm: z18.boolean().optional()
|
|
3911
3978
|
});
|
|
3912
3979
|
var creditGrantCapability = defineCapability({
|
|
3913
3980
|
id: "credits.grant",
|
|
@@ -3969,20 +4036,20 @@ var creditGrantCapability = defineCapability({
|
|
|
3969
4036
|
});
|
|
3970
4037
|
|
|
3971
4038
|
// ../../packages/capabilities/dist/capabilities/cli.js
|
|
3972
|
-
import { z as
|
|
3973
|
-
var emptyInput2 =
|
|
4039
|
+
import { z as z19 } from "zod";
|
|
4040
|
+
var emptyInput2 = z19.object({});
|
|
3974
4041
|
function requireCliRuntime(context) {
|
|
3975
4042
|
if (!context.cli) {
|
|
3976
4043
|
throw new Error("This capability must execute through the Ornn CLI runtime.");
|
|
3977
4044
|
}
|
|
3978
4045
|
return context.cli;
|
|
3979
4046
|
}
|
|
3980
|
-
var updateInput =
|
|
3981
|
-
$positionals:
|
|
3982
|
-
major:
|
|
4047
|
+
var updateInput = z19.object({
|
|
4048
|
+
$positionals: z19.array(z19.string()).max(0).default([]),
|
|
4049
|
+
major: z19.boolean().optional()
|
|
3983
4050
|
});
|
|
3984
|
-
var completionInput =
|
|
3985
|
-
$positionals:
|
|
4051
|
+
var completionInput = z19.object({
|
|
4052
|
+
$positionals: z19.tuple([z19.enum(["bash", "fish", "zsh"])])
|
|
3986
4053
|
}).transform(({ $positionals }) => ({ shell: $positionals[0] }));
|
|
3987
4054
|
var versionCapability = defineCapability({
|
|
3988
4055
|
id: "cli.version",
|
|
@@ -4123,23 +4190,23 @@ var cliShellCapabilities = [
|
|
|
4123
4190
|
];
|
|
4124
4191
|
|
|
4125
4192
|
// ../../packages/capabilities/dist/capabilities/clusters.js
|
|
4126
|
-
import { z as
|
|
4127
|
-
var clusterCliInput =
|
|
4128
|
-
$positionals:
|
|
4129
|
-
cursor:
|
|
4130
|
-
guided:
|
|
4131
|
-
idempotencyKey:
|
|
4132
|
-
limit:
|
|
4133
|
-
machine:
|
|
4134
|
-
machines:
|
|
4135
|
-
network:
|
|
4136
|
-
noWait:
|
|
4137
|
-
nodes:
|
|
4138
|
-
output:
|
|
4139
|
-
overwrite:
|
|
4140
|
-
timeout:
|
|
4141
|
-
wait:
|
|
4142
|
-
yes:
|
|
4193
|
+
import { z as z20 } from "zod";
|
|
4194
|
+
var clusterCliInput = z20.object({
|
|
4195
|
+
$positionals: z20.array(z20.string()).optional(),
|
|
4196
|
+
cursor: z20.string().optional(),
|
|
4197
|
+
guided: z20.boolean().optional(),
|
|
4198
|
+
idempotencyKey: z20.string().optional(),
|
|
4199
|
+
limit: z20.union([z20.string(), z20.number()]).optional(),
|
|
4200
|
+
machine: z20.string().optional(),
|
|
4201
|
+
machines: z20.string().optional(),
|
|
4202
|
+
network: z20.enum(["public", "private"]).optional(),
|
|
4203
|
+
noWait: z20.boolean().optional(),
|
|
4204
|
+
nodes: z20.union([z20.string(), z20.number()]).optional(),
|
|
4205
|
+
output: z20.string().optional(),
|
|
4206
|
+
overwrite: z20.boolean().optional(),
|
|
4207
|
+
timeout: z20.string().optional(),
|
|
4208
|
+
wait: z20.boolean().optional(),
|
|
4209
|
+
yes: z20.boolean().optional()
|
|
4143
4210
|
}).strict();
|
|
4144
4211
|
function clusterExecutor(context) {
|
|
4145
4212
|
const runtime3 = context.cli?.interaction;
|
|
@@ -4267,12 +4334,12 @@ var clusterCliCapabilities = [
|
|
|
4267
4334
|
related: ["clusters show", "reservations show"]
|
|
4268
4335
|
})
|
|
4269
4336
|
];
|
|
4270
|
-
var clusterType =
|
|
4271
|
-
var reservationCluster =
|
|
4272
|
-
var controllerNode =
|
|
4273
|
-
controllerId:
|
|
4274
|
-
nodeId:
|
|
4275
|
-
confirm:
|
|
4337
|
+
var clusterType = z20.enum(["kubernetes", "slurm"]);
|
|
4338
|
+
var reservationCluster = z20.object({ reservationId: z20.string(), type: clusterType });
|
|
4339
|
+
var controllerNode = z20.object({
|
|
4340
|
+
controllerId: z20.string(),
|
|
4341
|
+
nodeId: z20.string(),
|
|
4342
|
+
confirm: z20.boolean().optional()
|
|
4276
4343
|
});
|
|
4277
4344
|
function reservationClusterPath(input, suffix) {
|
|
4278
4345
|
return `/v1/workflows/compute/${input.type}/reservations/${encodeURIComponent(input.reservationId)}/${suffix}`;
|
|
@@ -4288,7 +4355,7 @@ var clusterCapabilities = [
|
|
|
4288
4355
|
description: "List this tenant's kubernetes/slurm clusters.",
|
|
4289
4356
|
mutation: "read",
|
|
4290
4357
|
http: { method: "GET", path: "/v1/workflows/compute/clusters" },
|
|
4291
|
-
input:
|
|
4358
|
+
input: z20.object({}),
|
|
4292
4359
|
mcp: { name: "clusters_list" },
|
|
4293
4360
|
slack: false,
|
|
4294
4361
|
execute: (ctx) => ctx.fetch("/v1/workflows/compute/clusters", { method: "GET" })
|
|
@@ -4300,8 +4367,8 @@ var clusterCapabilities = [
|
|
|
4300
4367
|
description: "List active reservations eligible for cluster creation (kubernetes/slurm), 100 per page. Pass the response's nextCursor as cursor for the next page.",
|
|
4301
4368
|
mutation: "read",
|
|
4302
4369
|
http: { method: "GET", path: "/commerce/reservations" },
|
|
4303
|
-
input:
|
|
4304
|
-
cursor:
|
|
4370
|
+
input: z20.object({
|
|
4371
|
+
cursor: z20.string().min(1).optional().describe("nextCursor from the previous page.")
|
|
4305
4372
|
}),
|
|
4306
4373
|
mcp: { name: "clusters_reservations_list" },
|
|
4307
4374
|
slack: false,
|
|
@@ -4317,14 +4384,14 @@ var clusterCapabilities = [
|
|
|
4317
4384
|
description: "Launch a kubernetes or slurm cluster on a reservation.",
|
|
4318
4385
|
mutation: "preview-confirm",
|
|
4319
4386
|
http: { method: "POST", path: "/v1/orchestrator/controllers" },
|
|
4320
|
-
input:
|
|
4321
|
-
reservationId:
|
|
4387
|
+
input: z20.object({
|
|
4388
|
+
reservationId: z20.string(),
|
|
4322
4389
|
type: clusterType,
|
|
4323
|
-
networkMode:
|
|
4324
|
-
nodeIds:
|
|
4325
|
-
nodeCount:
|
|
4326
|
-
storageLoadSizeBytes:
|
|
4327
|
-
confirm:
|
|
4390
|
+
networkMode: z20.enum(["public", "private"]).optional(),
|
|
4391
|
+
nodeIds: z20.array(z20.string()).optional(),
|
|
4392
|
+
nodeCount: z20.number().int().positive().optional(),
|
|
4393
|
+
storageLoadSizeBytes: z20.number().int().nonnegative().optional(),
|
|
4394
|
+
confirm: z20.boolean().optional()
|
|
4328
4395
|
}),
|
|
4329
4396
|
mcp: { name: "clusters_create" },
|
|
4330
4397
|
slack: false,
|
|
@@ -4380,7 +4447,7 @@ var clusterCapabilities = [
|
|
|
4380
4447
|
method: "GET",
|
|
4381
4448
|
path: "/v1/workflows/compute/kubernetes/reservations/{reservationId}/credentials"
|
|
4382
4449
|
},
|
|
4383
|
-
input:
|
|
4450
|
+
input: z20.object({ reservationId: z20.string() }),
|
|
4384
4451
|
mcp: { name: "clusters_kubeconfig" },
|
|
4385
4452
|
slack: false,
|
|
4386
4453
|
execute: async (ctx, input) => {
|
|
@@ -4425,7 +4492,7 @@ var clusterCapabilities = [
|
|
|
4425
4492
|
method: "POST",
|
|
4426
4493
|
path: "/v1/workflows/compute/{type}/reservations/{reservationId}/cluster/teardown"
|
|
4427
4494
|
},
|
|
4428
|
-
input: reservationCluster.extend({ confirm:
|
|
4495
|
+
input: reservationCluster.extend({ confirm: z20.boolean().optional() }),
|
|
4429
4496
|
mcp: { name: "clusters_teardown" },
|
|
4430
4497
|
slack: false,
|
|
4431
4498
|
execute: (ctx, input) => ctx.fetch(reservationClusterPath(input, "cluster/teardown"), { method: "POST" })
|
|
@@ -4433,55 +4500,55 @@ var clusterCapabilities = [
|
|
|
4433
4500
|
];
|
|
4434
4501
|
|
|
4435
4502
|
// ../../packages/capabilities/dist/capabilities/external-buckets.js
|
|
4436
|
-
import { z as
|
|
4437
|
-
var pageInput2 =
|
|
4438
|
-
$positionals:
|
|
4439
|
-
cursor:
|
|
4440
|
-
limit:
|
|
4503
|
+
import { z as z21 } from "zod";
|
|
4504
|
+
var pageInput2 = z21.object({
|
|
4505
|
+
$positionals: z21.array(z21.string()).optional(),
|
|
4506
|
+
cursor: z21.string().optional(),
|
|
4507
|
+
limit: z21.union([z21.string(), z21.number()]).optional()
|
|
4441
4508
|
}).strict();
|
|
4442
|
-
var showInput =
|
|
4443
|
-
$positionals:
|
|
4509
|
+
var showInput = z21.object({
|
|
4510
|
+
$positionals: z21.array(z21.string()).optional()
|
|
4444
4511
|
}).strict();
|
|
4445
|
-
var verificationInput =
|
|
4446
|
-
$positionals:
|
|
4447
|
-
idempotencyKey:
|
|
4512
|
+
var verificationInput = z21.object({
|
|
4513
|
+
$positionals: z21.array(z21.string()).optional(),
|
|
4514
|
+
idempotencyKey: z21.string().optional()
|
|
4448
4515
|
}).strict();
|
|
4449
|
-
var disconnectInput =
|
|
4450
|
-
$positionals:
|
|
4451
|
-
idempotencyKey:
|
|
4452
|
-
yes:
|
|
4516
|
+
var disconnectInput = z21.object({
|
|
4517
|
+
$positionals: z21.array(z21.string()).optional(),
|
|
4518
|
+
idempotencyKey: z21.string().optional(),
|
|
4519
|
+
yes: z21.boolean().optional()
|
|
4453
4520
|
}).strict();
|
|
4454
|
-
var connectInput =
|
|
4455
|
-
$positionals:
|
|
4456
|
-
accessKeyId:
|
|
4457
|
-
accountId:
|
|
4458
|
-
bucket:
|
|
4459
|
-
endpointUrl:
|
|
4460
|
-
idempotencyKey:
|
|
4461
|
-
name:
|
|
4462
|
-
prefix:
|
|
4463
|
-
readOnly:
|
|
4464
|
-
readWrite:
|
|
4465
|
-
region:
|
|
4466
|
-
secretAccessKeyFile:
|
|
4467
|
-
url:
|
|
4468
|
-
yes:
|
|
4521
|
+
var connectInput = z21.object({
|
|
4522
|
+
$positionals: z21.array(z21.string()).optional(),
|
|
4523
|
+
accessKeyId: z21.string().optional(),
|
|
4524
|
+
accountId: z21.string().optional(),
|
|
4525
|
+
bucket: z21.string().optional(),
|
|
4526
|
+
endpointUrl: z21.string().optional(),
|
|
4527
|
+
idempotencyKey: z21.string().optional(),
|
|
4528
|
+
name: z21.string().optional(),
|
|
4529
|
+
prefix: z21.string().optional(),
|
|
4530
|
+
readOnly: z21.boolean().optional(),
|
|
4531
|
+
readWrite: z21.boolean().optional(),
|
|
4532
|
+
region: z21.string().optional(),
|
|
4533
|
+
secretAccessKeyFile: z21.string().optional(),
|
|
4534
|
+
url: z21.string().optional(),
|
|
4535
|
+
yes: z21.boolean().optional()
|
|
4469
4536
|
}).strict();
|
|
4470
|
-
var credentialInput =
|
|
4471
|
-
$positionals:
|
|
4472
|
-
accessKeyId:
|
|
4473
|
-
idempotencyKey:
|
|
4474
|
-
secretAccessKeyFile:
|
|
4475
|
-
yes:
|
|
4537
|
+
var credentialInput = z21.object({
|
|
4538
|
+
$positionals: z21.array(z21.string()).optional(),
|
|
4539
|
+
accessKeyId: z21.string().optional(),
|
|
4540
|
+
idempotencyKey: z21.string().optional(),
|
|
4541
|
+
secretAccessKeyFile: z21.string().optional(),
|
|
4542
|
+
yes: z21.boolean().optional()
|
|
4476
4543
|
}).strict();
|
|
4477
|
-
var importInput =
|
|
4478
|
-
$positionals:
|
|
4479
|
-
idempotencyKey:
|
|
4480
|
-
noWait:
|
|
4481
|
-
reservation:
|
|
4482
|
-
timeout:
|
|
4483
|
-
wait:
|
|
4484
|
-
yes:
|
|
4544
|
+
var importInput = z21.object({
|
|
4545
|
+
$positionals: z21.array(z21.string()).optional(),
|
|
4546
|
+
idempotencyKey: z21.string().optional(),
|
|
4547
|
+
noWait: z21.boolean().optional(),
|
|
4548
|
+
reservation: z21.string().optional(),
|
|
4549
|
+
timeout: z21.string().optional(),
|
|
4550
|
+
wait: z21.boolean().optional(),
|
|
4551
|
+
yes: z21.boolean().optional()
|
|
4485
4552
|
}).strict();
|
|
4486
4553
|
function externalBucketExecutor(context) {
|
|
4487
4554
|
const interaction2 = context.cli?.interaction;
|
|
@@ -4611,22 +4678,22 @@ var externalBucketCapabilities = [
|
|
|
4611
4678
|
];
|
|
4612
4679
|
|
|
4613
4680
|
// ../../packages/capabilities/dist/capabilities/evidence.js
|
|
4614
|
-
import { z as
|
|
4615
|
-
var positionals3 =
|
|
4616
|
-
var evidenceInput =
|
|
4681
|
+
import { z as z22 } from "zod";
|
|
4682
|
+
var positionals3 = z22.array(z22.string()).default([]);
|
|
4683
|
+
var evidenceInput = z22.object({
|
|
4617
4684
|
$positionals: positionals3,
|
|
4618
|
-
before:
|
|
4619
|
-
count:
|
|
4620
|
-
cursor:
|
|
4621
|
-
end:
|
|
4622
|
-
follow:
|
|
4623
|
-
guided:
|
|
4624
|
-
interval:
|
|
4625
|
-
limit:
|
|
4626
|
-
maxPoints:
|
|
4627
|
-
start:
|
|
4628
|
-
stream:
|
|
4629
|
-
timeout:
|
|
4685
|
+
before: z22.string().optional(),
|
|
4686
|
+
count: z22.string().optional(),
|
|
4687
|
+
cursor: z22.string().optional(),
|
|
4688
|
+
end: z22.string().optional(),
|
|
4689
|
+
follow: z22.boolean().optional(),
|
|
4690
|
+
guided: z22.boolean().optional(),
|
|
4691
|
+
interval: z22.string().optional(),
|
|
4692
|
+
limit: z22.string().optional(),
|
|
4693
|
+
maxPoints: z22.string().optional(),
|
|
4694
|
+
start: z22.string().optional(),
|
|
4695
|
+
stream: z22.enum(["kernel", "serial"]).optional(),
|
|
4696
|
+
timeout: z22.string().optional()
|
|
4630
4697
|
}).strict();
|
|
4631
4698
|
function runtime2(context) {
|
|
4632
4699
|
const interaction2 = context.cli?.interaction;
|
|
@@ -4755,20 +4822,20 @@ var evidenceCapabilities = [
|
|
|
4755
4822
|
];
|
|
4756
4823
|
|
|
4757
4824
|
// ../../packages/capabilities/dist/capabilities/mounts.js
|
|
4758
|
-
import { z as
|
|
4759
|
-
var mountInput =
|
|
4760
|
-
$positionals:
|
|
4761
|
-
access:
|
|
4762
|
-
capacityGib:
|
|
4763
|
-
cursor:
|
|
4764
|
-
idempotencyKey:
|
|
4765
|
-
limit:
|
|
4766
|
-
noWait:
|
|
4767
|
-
performanceTier:
|
|
4768
|
-
timeout:
|
|
4769
|
-
volume:
|
|
4770
|
-
wait:
|
|
4771
|
-
yes:
|
|
4825
|
+
import { z as z23 } from "zod";
|
|
4826
|
+
var mountInput = z23.object({
|
|
4827
|
+
$positionals: z23.array(z23.string()).default([]),
|
|
4828
|
+
access: z23.string().optional(),
|
|
4829
|
+
capacityGib: z23.union([z23.string(), z23.number()]).optional(),
|
|
4830
|
+
cursor: z23.string().optional(),
|
|
4831
|
+
idempotencyKey: z23.string().optional(),
|
|
4832
|
+
limit: z23.union([z23.string(), z23.number()]).optional(),
|
|
4833
|
+
noWait: z23.boolean().optional(),
|
|
4834
|
+
performanceTier: z23.string().optional(),
|
|
4835
|
+
timeout: z23.string().optional(),
|
|
4836
|
+
volume: z23.string().optional(),
|
|
4837
|
+
wait: z23.boolean().optional(),
|
|
4838
|
+
yes: z23.boolean().optional()
|
|
4772
4839
|
}).strict();
|
|
4773
4840
|
function mountExecutor(context) {
|
|
4774
4841
|
const interaction2 = context.cli?.interaction;
|
|
@@ -4930,13 +4997,13 @@ var mountCapabilities = [
|
|
|
4930
4997
|
];
|
|
4931
4998
|
|
|
4932
4999
|
// ../../packages/capabilities/dist/capabilities/identity.js
|
|
4933
|
-
import { z as
|
|
4934
|
-
var emptyInput3 =
|
|
4935
|
-
var loginInput =
|
|
4936
|
-
authBase:
|
|
4937
|
-
noBrowser:
|
|
4938
|
-
pollInterval:
|
|
4939
|
-
timeout:
|
|
5000
|
+
import { z as z24 } from "zod";
|
|
5001
|
+
var emptyInput3 = z24.object({});
|
|
5002
|
+
var loginInput = z24.object({
|
|
5003
|
+
authBase: z24.string().min(1).optional(),
|
|
5004
|
+
noBrowser: z24.boolean().optional(),
|
|
5005
|
+
pollInterval: z24.number().positive().optional(),
|
|
5006
|
+
timeout: z24.number().positive().optional()
|
|
4940
5007
|
});
|
|
4941
5008
|
function executeSession(context, command, input) {
|
|
4942
5009
|
if (!context.cli?.session) {
|
|
@@ -5060,50 +5127,50 @@ var identityCapabilities = [
|
|
|
5060
5127
|
];
|
|
5061
5128
|
|
|
5062
5129
|
// ../../packages/capabilities/dist/capabilities/listings.js
|
|
5063
|
-
import { z as
|
|
5064
|
-
var listingCreateInput =
|
|
5065
|
-
organizationId:
|
|
5066
|
-
organization_id:
|
|
5067
|
-
facilityId:
|
|
5068
|
-
facility_id:
|
|
5069
|
-
kind:
|
|
5070
|
-
gpu:
|
|
5071
|
-
cpu:
|
|
5072
|
-
site:
|
|
5073
|
-
fabric:
|
|
5074
|
-
min_nodes:
|
|
5075
|
-
starts_after:
|
|
5076
|
-
starts_before:
|
|
5077
|
-
ends_after:
|
|
5078
|
-
ends_before:
|
|
5079
|
-
gpu_type:
|
|
5080
|
-
node_model:
|
|
5081
|
-
fabric_type:
|
|
5082
|
-
node_count:
|
|
5083
|
-
gpus_per_node:
|
|
5084
|
-
cores_per_node:
|
|
5085
|
-
site_nickname:
|
|
5086
|
-
site_supplier:
|
|
5087
|
-
ram:
|
|
5088
|
-
storage:
|
|
5089
|
-
internet:
|
|
5090
|
-
network_hardware:
|
|
5091
|
-
available_start_at:
|
|
5092
|
-
available_end_at:
|
|
5093
|
-
available_from:
|
|
5094
|
-
available_to:
|
|
5095
|
-
buy_now_price_per_gpu_hour:
|
|
5096
|
-
deposit_percent:
|
|
5097
|
-
down_payment_cents:
|
|
5098
|
-
access_mode:
|
|
5099
|
-
state:
|
|
5100
|
-
price_omitted:
|
|
5101
|
-
announce:
|
|
5102
|
-
text:
|
|
5103
|
-
confirm:
|
|
5104
|
-
idempotencyKey:
|
|
5105
|
-
});
|
|
5106
|
-
var catalogTermsInput =
|
|
5130
|
+
import { z as z25 } from "zod";
|
|
5131
|
+
var listingCreateInput = z25.object({
|
|
5132
|
+
organizationId: z25.string().optional(),
|
|
5133
|
+
organization_id: z25.string().optional(),
|
|
5134
|
+
facilityId: z25.string().optional(),
|
|
5135
|
+
facility_id: z25.string().optional(),
|
|
5136
|
+
kind: z25.enum(["gpu", "cpu", "node", "link"]).optional(),
|
|
5137
|
+
gpu: z25.string().optional(),
|
|
5138
|
+
cpu: z25.string().optional(),
|
|
5139
|
+
site: z25.string().optional(),
|
|
5140
|
+
fabric: z25.string().optional(),
|
|
5141
|
+
min_nodes: z25.number().int().optional(),
|
|
5142
|
+
starts_after: z25.string().optional(),
|
|
5143
|
+
starts_before: z25.string().optional(),
|
|
5144
|
+
ends_after: z25.string().optional(),
|
|
5145
|
+
ends_before: z25.string().optional(),
|
|
5146
|
+
gpu_type: z25.string().optional(),
|
|
5147
|
+
node_model: z25.string().optional(),
|
|
5148
|
+
fabric_type: z25.string().optional(),
|
|
5149
|
+
node_count: z25.number().int().optional(),
|
|
5150
|
+
gpus_per_node: z25.number().int().optional(),
|
|
5151
|
+
cores_per_node: z25.number().int().optional().describe('CPU listings: cores per node (2 vCPUs each), at least 1, priced per vCPU-hour. Omit gpu_type or set it to "cpu".'),
|
|
5152
|
+
site_nickname: z25.string().optional().describe("A state, city, address, or catalog region such as us-west-3."),
|
|
5153
|
+
site_supplier: z25.string().optional(),
|
|
5154
|
+
ram: z25.string().optional(),
|
|
5155
|
+
storage: z25.string().optional(),
|
|
5156
|
+
internet: z25.string().optional(),
|
|
5157
|
+
network_hardware: z25.string().optional(),
|
|
5158
|
+
available_start_at: z25.string().optional().describe("Start of the availability window. YYYY-MM-DD or RFC3339."),
|
|
5159
|
+
available_end_at: z25.string().optional().describe("End of the availability window. YYYY-MM-DD or RFC3339."),
|
|
5160
|
+
available_from: z25.string().optional().describe("Alias for available_start_at."),
|
|
5161
|
+
available_to: z25.string().optional().describe("Alias for available_end_at."),
|
|
5162
|
+
buy_now_price_per_gpu_hour: z25.number().optional().describe("Price buyers pay, USD per GPU-hour (per vCPU-hour on CPU listings)."),
|
|
5163
|
+
deposit_percent: z25.number().optional(),
|
|
5164
|
+
down_payment_cents: z25.number().int().nonnegative().optional(),
|
|
5165
|
+
access_mode: z25.enum(["bare-metal", "virtual-machine"]).optional(),
|
|
5166
|
+
state: z25.enum(["available", "draft"]).optional(),
|
|
5167
|
+
price_omitted: z25.boolean().optional(),
|
|
5168
|
+
announce: z25.boolean().optional(),
|
|
5169
|
+
text: z25.string().optional(),
|
|
5170
|
+
confirm: z25.boolean().optional(),
|
|
5171
|
+
idempotencyKey: z25.string().min(1).max(200).optional()
|
|
5172
|
+
});
|
|
5173
|
+
var catalogTermsInput = z25.object({ kind: z25.enum(["gpu", "cpu", "node", "link"]).optional() });
|
|
5107
5174
|
var slackListingCreateParams = {
|
|
5108
5175
|
type: "object",
|
|
5109
5176
|
properties: {
|
|
@@ -5403,12 +5470,12 @@ var listingCapabilities = [
|
|
|
5403
5470
|
];
|
|
5404
5471
|
|
|
5405
5472
|
// ../../packages/capabilities/dist/capabilities/organization-invites.js
|
|
5406
|
-
import { z as
|
|
5407
|
-
var organizationInviteInput =
|
|
5408
|
-
organization_id:
|
|
5409
|
-
email:
|
|
5410
|
-
organization_role:
|
|
5411
|
-
send_email:
|
|
5473
|
+
import { z as z26 } from "zod";
|
|
5474
|
+
var organizationInviteInput = z26.object({
|
|
5475
|
+
organization_id: z26.uuid().optional(),
|
|
5476
|
+
email: z26.string().trim().toLowerCase().pipe(z26.email()),
|
|
5477
|
+
organization_role: z26.enum(["consumer", "supplier"]).optional(),
|
|
5478
|
+
send_email: z26.boolean().optional().describe("Defaults to true for an existing organization; false returns a link. Signup invites cannot be emailed.")
|
|
5412
5479
|
}).superRefine((input, ctx) => {
|
|
5413
5480
|
if (!input.organization_id && input.send_email === true) {
|
|
5414
5481
|
ctx.addIssue({
|
|
@@ -5469,38 +5536,38 @@ var organizationInviteCapability = defineCapability({
|
|
|
5469
5536
|
});
|
|
5470
5537
|
|
|
5471
5538
|
// ../../packages/capabilities/dist/capabilities/networks.js
|
|
5472
|
-
import { z as
|
|
5539
|
+
import { z as z27 } from "zod";
|
|
5473
5540
|
var CANONICAL_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
5474
5541
|
var DEFAULT_LIMIT = 50;
|
|
5475
|
-
var unknownRecordSchema =
|
|
5542
|
+
var unknownRecordSchema = z27.record(z27.string(), z27.unknown());
|
|
5476
5543
|
var MAX_LIMIT = 500;
|
|
5477
5544
|
var NETWORKS_PATH = "/v1/workflows/compute/networks";
|
|
5478
5545
|
var globalInput = {
|
|
5479
|
-
$positionals:
|
|
5480
|
-
guided:
|
|
5481
|
-
idempotencyKey:
|
|
5482
|
-
noBrowser:
|
|
5483
|
-
noWait:
|
|
5484
|
-
overwrite:
|
|
5485
|
-
print:
|
|
5486
|
-
wait:
|
|
5487
|
-
yes:
|
|
5546
|
+
$positionals: z27.array(z27.string()).optional(),
|
|
5547
|
+
guided: z27.boolean().optional(),
|
|
5548
|
+
idempotencyKey: z27.string().optional(),
|
|
5549
|
+
noBrowser: z27.boolean().optional(),
|
|
5550
|
+
noWait: z27.boolean().optional(),
|
|
5551
|
+
overwrite: z27.boolean().optional(),
|
|
5552
|
+
print: z27.boolean().optional(),
|
|
5553
|
+
wait: z27.boolean().optional(),
|
|
5554
|
+
yes: z27.boolean().optional()
|
|
5488
5555
|
};
|
|
5489
|
-
var noOptionsInput =
|
|
5490
|
-
var connectInput2 =
|
|
5556
|
+
var noOptionsInput = z27.object(globalInput).strict();
|
|
5557
|
+
var connectInput2 = z27.object({
|
|
5491
5558
|
...globalInput,
|
|
5492
|
-
identityFile:
|
|
5493
|
-
output:
|
|
5494
|
-
user:
|
|
5559
|
+
identityFile: z27.string().optional(),
|
|
5560
|
+
output: z27.string().optional(),
|
|
5561
|
+
user: z27.string().optional()
|
|
5495
5562
|
}).strict();
|
|
5496
|
-
var listInput =
|
|
5497
|
-
var networkCreateInput =
|
|
5498
|
-
var networkUpdateInput =
|
|
5499
|
-
var vpnConfigureInput =
|
|
5563
|
+
var listInput = z27.object({ ...globalInput, cursor: z27.string().optional(), limit: z27.string().optional() }).strict();
|
|
5564
|
+
var networkCreateInput = z27.object({ ...globalInput, cidr: z27.string().optional(), name: z27.string().optional() }).strict();
|
|
5565
|
+
var networkUpdateInput = z27.object({ ...globalInput, name: z27.string().optional() }).strict();
|
|
5566
|
+
var vpnConfigureInput = z27.object({
|
|
5500
5567
|
...globalInput,
|
|
5501
|
-
name:
|
|
5502
|
-
output:
|
|
5503
|
-
privateKey:
|
|
5568
|
+
name: z27.string().optional(),
|
|
5569
|
+
output: z27.string().optional(),
|
|
5570
|
+
privateKey: z27.string().optional()
|
|
5504
5571
|
}).strict();
|
|
5505
5572
|
function responseStatus(error) {
|
|
5506
5573
|
if (!error || typeof error !== "object" || !("status" in error))
|
|
@@ -6632,12 +6699,12 @@ function networkPath(networkId) {
|
|
|
6632
6699
|
function vpnPeersPath(reservationId) {
|
|
6633
6700
|
return `/v1/workflows/compute/nodes/reservations/${encodeURIComponent(reservationId)}/vpn/peers`;
|
|
6634
6701
|
}
|
|
6635
|
-
var networkUpdateFields =
|
|
6636
|
-
networkId:
|
|
6637
|
-
name:
|
|
6638
|
-
description:
|
|
6639
|
-
clearDescription:
|
|
6640
|
-
confirm:
|
|
6702
|
+
var networkUpdateFields = z27.object({
|
|
6703
|
+
networkId: z27.string(),
|
|
6704
|
+
name: z27.string().optional(),
|
|
6705
|
+
description: z27.string().optional(),
|
|
6706
|
+
clearDescription: z27.boolean().optional(),
|
|
6707
|
+
confirm: z27.boolean().optional()
|
|
6641
6708
|
}).refine((input) => !(input.clearDescription && input.description !== void 0), {
|
|
6642
6709
|
message: "Use either description or clearDescription, not both."
|
|
6643
6710
|
}).refine((input) => input.name !== void 0 || input.description !== void 0 || input.clearDescription, { message: "Provide name, description, or clearDescription." });
|
|
@@ -6649,7 +6716,7 @@ var networkVerbCapabilities = [
|
|
|
6649
6716
|
description: "List this tenant's private networks.",
|
|
6650
6717
|
mutation: "read",
|
|
6651
6718
|
http: { method: "GET", path: NETWORKS_PATH },
|
|
6652
|
-
input:
|
|
6719
|
+
input: z27.object({}),
|
|
6653
6720
|
mcp: { name: "networks_list" },
|
|
6654
6721
|
slack: false,
|
|
6655
6722
|
execute: (ctx) => ctx.fetch(NETWORKS_PATH, { method: "GET" })
|
|
@@ -6661,7 +6728,7 @@ var networkVerbCapabilities = [
|
|
|
6661
6728
|
description: "Show a single private network by id.",
|
|
6662
6729
|
mutation: "read",
|
|
6663
6730
|
http: { method: "GET", path: `${NETWORKS_PATH}/{networkId}` },
|
|
6664
|
-
input:
|
|
6731
|
+
input: z27.object({ networkId: z27.string() }),
|
|
6665
6732
|
mcp: { name: "networks_show" },
|
|
6666
6733
|
slack: false,
|
|
6667
6734
|
execute: (ctx, input) => ctx.fetch(networkPath(input.networkId), { method: "GET" })
|
|
@@ -6673,11 +6740,11 @@ var networkVerbCapabilities = [
|
|
|
6673
6740
|
description: "Create a private network.",
|
|
6674
6741
|
mutation: "preview-confirm",
|
|
6675
6742
|
http: { method: "POST", path: NETWORKS_PATH },
|
|
6676
|
-
input:
|
|
6677
|
-
name:
|
|
6678
|
-
cidr:
|
|
6679
|
-
description:
|
|
6680
|
-
confirm:
|
|
6743
|
+
input: z27.object({
|
|
6744
|
+
name: z27.string(),
|
|
6745
|
+
cidr: z27.string().optional(),
|
|
6746
|
+
description: z27.string().optional(),
|
|
6747
|
+
confirm: z27.boolean().optional()
|
|
6681
6748
|
}),
|
|
6682
6749
|
mcp: { name: "networks_create" },
|
|
6683
6750
|
slack: false,
|
|
@@ -6715,7 +6782,7 @@ var networkVerbCapabilities = [
|
|
|
6715
6782
|
description: "Delete a private network.",
|
|
6716
6783
|
mutation: "preview-confirm",
|
|
6717
6784
|
http: { method: "DELETE", path: `${NETWORKS_PATH}/{networkId}` },
|
|
6718
|
-
input:
|
|
6785
|
+
input: z27.object({ networkId: z27.string(), confirm: z27.boolean().optional() }),
|
|
6719
6786
|
mcp: { name: "networks_delete" },
|
|
6720
6787
|
slack: false,
|
|
6721
6788
|
// The route answers 204, so report which network went.
|
|
@@ -6734,7 +6801,7 @@ var networkVerbCapabilities = [
|
|
|
6734
6801
|
method: "GET",
|
|
6735
6802
|
path: "/v1/workflows/compute/nodes/reservations/{reservationId}/vpn/peers"
|
|
6736
6803
|
},
|
|
6737
|
-
input:
|
|
6804
|
+
input: z27.object({ reservationId: z27.string() }),
|
|
6738
6805
|
mcp: { name: "vpn_peers_list" },
|
|
6739
6806
|
slack: false,
|
|
6740
6807
|
execute: (ctx, input) => ctx.fetch(vpnPeersPath(input.reservationId), { method: "GET" })
|
|
@@ -6749,11 +6816,11 @@ var networkVerbCapabilities = [
|
|
|
6749
6816
|
method: "POST",
|
|
6750
6817
|
path: "/v1/workflows/compute/nodes/reservations/{reservationId}/vpn/peers"
|
|
6751
6818
|
},
|
|
6752
|
-
input:
|
|
6753
|
-
reservationId:
|
|
6754
|
-
publicKey:
|
|
6755
|
-
label:
|
|
6756
|
-
confirm:
|
|
6819
|
+
input: z27.object({
|
|
6820
|
+
reservationId: z27.string(),
|
|
6821
|
+
publicKey: z27.string(),
|
|
6822
|
+
label: z27.string().optional(),
|
|
6823
|
+
confirm: z27.boolean().optional()
|
|
6757
6824
|
}),
|
|
6758
6825
|
mcp: { name: "vpn_peers_create" },
|
|
6759
6826
|
slack: false,
|
|
@@ -6772,10 +6839,10 @@ var networkVerbCapabilities = [
|
|
|
6772
6839
|
method: "DELETE",
|
|
6773
6840
|
path: "/v1/workflows/compute/nodes/reservations/{reservationId}/vpn/peers/{peerId}"
|
|
6774
6841
|
},
|
|
6775
|
-
input:
|
|
6776
|
-
reservationId:
|
|
6777
|
-
peerId:
|
|
6778
|
-
confirm:
|
|
6842
|
+
input: z27.object({
|
|
6843
|
+
reservationId: z27.string(),
|
|
6844
|
+
peerId: z27.string(),
|
|
6845
|
+
confirm: z27.boolean().optional()
|
|
6779
6846
|
}),
|
|
6780
6847
|
mcp: { name: "vpn_peers_delete" },
|
|
6781
6848
|
slack: false,
|
|
@@ -6786,14 +6853,14 @@ var networkVerbCapabilities = [
|
|
|
6786
6853
|
];
|
|
6787
6854
|
|
|
6788
6855
|
// ../../packages/capabilities/dist/capabilities/reservation-list.js
|
|
6789
|
-
import { z as
|
|
6790
|
-
var reservationListInput =
|
|
6791
|
-
customerId:
|
|
6792
|
-
listingId:
|
|
6793
|
-
listingTermId:
|
|
6794
|
-
status:
|
|
6795
|
-
cursor:
|
|
6796
|
-
limit:
|
|
6856
|
+
import { z as z28 } from "zod";
|
|
6857
|
+
var reservationListInput = z28.object({
|
|
6858
|
+
customerId: z28.string().uuid().optional(),
|
|
6859
|
+
listingId: z28.string().uuid().optional(),
|
|
6860
|
+
listingTermId: z28.string().uuid().optional(),
|
|
6861
|
+
status: z28.enum(["confirmed", "active", "completed", "cancelled"]).optional(),
|
|
6862
|
+
cursor: z28.string().optional(),
|
|
6863
|
+
limit: z28.number().int().min(1).max(100).optional()
|
|
6797
6864
|
});
|
|
6798
6865
|
var reservationListCapability = defineCapability({
|
|
6799
6866
|
id: "reservation.list",
|
|
@@ -6845,20 +6912,20 @@ var reservationListCapability = defineCapability({
|
|
|
6845
6912
|
});
|
|
6846
6913
|
|
|
6847
6914
|
// ../../packages/capabilities/dist/capabilities/volumes.js
|
|
6848
|
-
import { z as
|
|
6849
|
-
var storageCliInput =
|
|
6850
|
-
$positionals:
|
|
6851
|
-
contentType:
|
|
6852
|
-
cursor:
|
|
6853
|
-
idempotencyKey:
|
|
6854
|
-
limit:
|
|
6855
|
-
name:
|
|
6856
|
-
output:
|
|
6857
|
-
overwrite:
|
|
6858
|
-
path:
|
|
6859
|
-
prefix:
|
|
6860
|
-
source:
|
|
6861
|
-
yes:
|
|
6915
|
+
import { z as z29 } from "zod";
|
|
6916
|
+
var storageCliInput = z29.object({
|
|
6917
|
+
$positionals: z29.array(z29.string()).optional(),
|
|
6918
|
+
contentType: z29.string().optional(),
|
|
6919
|
+
cursor: z29.string().optional(),
|
|
6920
|
+
idempotencyKey: z29.string().optional(),
|
|
6921
|
+
limit: z29.union([z29.string(), z29.number()]).optional(),
|
|
6922
|
+
name: z29.string().optional(),
|
|
6923
|
+
output: z29.string().optional(),
|
|
6924
|
+
overwrite: z29.boolean().optional(),
|
|
6925
|
+
path: z29.string().optional(),
|
|
6926
|
+
prefix: z29.string().optional(),
|
|
6927
|
+
source: z29.string().optional(),
|
|
6928
|
+
yes: z29.boolean().optional()
|
|
6862
6929
|
}).strict();
|
|
6863
6930
|
function storageExecutor(context) {
|
|
6864
6931
|
const interaction2 = context.cli?.interaction;
|
|
@@ -7031,22 +7098,22 @@ function storageDrivePath(driveId, action) {
|
|
|
7031
7098
|
function reservationStorageRoute(reservationId, suffix) {
|
|
7032
7099
|
return `/v1/workflows/compute/nodes/reservations/${encodeURIComponent(reservationId)}/${suffix}`;
|
|
7033
7100
|
}
|
|
7034
|
-
var reservationInput =
|
|
7035
|
-
var reservationWrite = reservationInput.extend({ confirm:
|
|
7036
|
-
var driveInput =
|
|
7037
|
-
var driveWrite = driveInput.extend({ confirm:
|
|
7038
|
-
var bucketConnectInput =
|
|
7039
|
-
provider:
|
|
7040
|
-
bucket:
|
|
7041
|
-
name:
|
|
7042
|
-
prefix:
|
|
7043
|
-
region:
|
|
7044
|
-
endpointUrl:
|
|
7045
|
-
accountId:
|
|
7046
|
-
accessKeyId:
|
|
7047
|
-
secretAccessKey:
|
|
7048
|
-
readOnly:
|
|
7049
|
-
confirm:
|
|
7101
|
+
var reservationInput = z29.object({ reservationId: z29.string() });
|
|
7102
|
+
var reservationWrite = reservationInput.extend({ confirm: z29.boolean().optional() });
|
|
7103
|
+
var driveInput = z29.object({ driveId: z29.string() });
|
|
7104
|
+
var driveWrite = driveInput.extend({ confirm: z29.boolean().optional() });
|
|
7105
|
+
var bucketConnectInput = z29.object({
|
|
7106
|
+
provider: z29.enum(["gcs", "s3", "r2"]),
|
|
7107
|
+
bucket: z29.string(),
|
|
7108
|
+
name: z29.string().optional(),
|
|
7109
|
+
prefix: z29.string().optional(),
|
|
7110
|
+
region: z29.string().optional(),
|
|
7111
|
+
endpointUrl: z29.string().optional(),
|
|
7112
|
+
accountId: z29.string().optional(),
|
|
7113
|
+
accessKeyId: z29.string().optional(),
|
|
7114
|
+
secretAccessKey: z29.string().optional(),
|
|
7115
|
+
readOnly: z29.boolean().optional(),
|
|
7116
|
+
confirm: z29.boolean().optional()
|
|
7050
7117
|
}).refine((input) => !(input.provider === "gcs" && (input.accessKeyId || input.secretAccessKey)), {
|
|
7051
7118
|
message: "Access key credentials are only supported for S3-compatible buckets."
|
|
7052
7119
|
}).refine((input) => Boolean(input.accessKeyId) === Boolean(input.secretAccessKey), {
|
|
@@ -7065,7 +7132,7 @@ var storageVerbCapabilities = [
|
|
|
7065
7132
|
method: "POST",
|
|
7066
7133
|
path: "/v1/workflows/compute/nodes/reservations/{reservationId}/storage-deployment"
|
|
7067
7134
|
},
|
|
7068
|
-
input: reservationWrite.extend({ driveId:
|
|
7135
|
+
input: reservationWrite.extend({ driveId: z29.string(), readOnly: z29.boolean().optional() }),
|
|
7069
7136
|
slack: false,
|
|
7070
7137
|
execute: (ctx, input) => ctx.fetch(reservationStorageRoute(input.reservationId, "storage-deployment"), {
|
|
7071
7138
|
method: "POST",
|
|
@@ -7115,8 +7182,8 @@ var storageVerbCapabilities = [
|
|
|
7115
7182
|
path: "/v1/workflows/compute/nodes/reservations/{reservationId}/filesystem-deployment"
|
|
7116
7183
|
},
|
|
7117
7184
|
input: reservationWrite.extend({
|
|
7118
|
-
performanceTier:
|
|
7119
|
-
capacityGib:
|
|
7185
|
+
performanceTier: z29.enum(["standard", "performance", "enterprise"]),
|
|
7186
|
+
capacityGib: z29.number().int().positive()
|
|
7120
7187
|
}),
|
|
7121
7188
|
slack: false,
|
|
7122
7189
|
execute: (ctx, input) => ctx.fetch(reservationStorageRoute(input.reservationId, "filesystem-deployment"), {
|
|
@@ -7147,7 +7214,7 @@ var storageVerbCapabilities = [
|
|
|
7147
7214
|
description: "List reservations that can receive a storage deploy, grouped the same way as the console picker.",
|
|
7148
7215
|
mutation: "read",
|
|
7149
7216
|
http: { method: "GET", path: "/v1/orchestrator/storage-targets" },
|
|
7150
|
-
input:
|
|
7217
|
+
input: z29.object({}),
|
|
7151
7218
|
slack: false,
|
|
7152
7219
|
execute: (ctx) => ctx.fetch("/v1/orchestrator/storage-targets", { method: "GET" })
|
|
7153
7220
|
}),
|
|
@@ -7158,9 +7225,9 @@ var storageVerbCapabilities = [
|
|
|
7158
7225
|
description: "List a page of storage volumes, newest updated first. Pass next_cursor as cursor to continue.",
|
|
7159
7226
|
mutation: "read",
|
|
7160
7227
|
http: { method: "GET", path: DRIVES_ROUTE },
|
|
7161
|
-
input:
|
|
7162
|
-
limit:
|
|
7163
|
-
cursor:
|
|
7228
|
+
input: z29.object({
|
|
7229
|
+
limit: z29.number().int().min(1).max(100).optional(),
|
|
7230
|
+
cursor: z29.string().optional()
|
|
7164
7231
|
}),
|
|
7165
7232
|
mcp: { name: "storage_volumes_list" },
|
|
7166
7233
|
slack: false,
|
|
@@ -7190,10 +7257,10 @@ var storageVerbCapabilities = [
|
|
|
7190
7257
|
description: "Create a storage volume (drive), optionally cloned from an existing source drive.",
|
|
7191
7258
|
mutation: "preview-confirm",
|
|
7192
7259
|
http: { method: "POST", path: DRIVES_ROUTE },
|
|
7193
|
-
input:
|
|
7194
|
-
name:
|
|
7195
|
-
sourceDriveId:
|
|
7196
|
-
confirm:
|
|
7260
|
+
input: z29.object({
|
|
7261
|
+
name: z29.string(),
|
|
7262
|
+
sourceDriveId: z29.string().optional(),
|
|
7263
|
+
confirm: z29.boolean().optional()
|
|
7197
7264
|
}),
|
|
7198
7265
|
mcp: { name: "storage_volumes_create" },
|
|
7199
7266
|
slack: false,
|
|
@@ -7295,7 +7362,7 @@ var storageVerbCapabilities = [
|
|
|
7295
7362
|
description: "Update a connected S3-compatible bucket's access key credentials.",
|
|
7296
7363
|
mutation: "preview-confirm",
|
|
7297
7364
|
http: { method: "PATCH", path: `${STORAGE_DRIVES_ROUTE}/{driveId}/source-credentials` },
|
|
7298
|
-
input: driveWrite.extend({ accessKeyId:
|
|
7365
|
+
input: driveWrite.extend({ accessKeyId: z29.string(), secretAccessKey: z29.string() }),
|
|
7299
7366
|
mcp: { name: "storage_buckets_update_credentials" },
|
|
7300
7367
|
slack: false,
|
|
7301
7368
|
execute: (ctx, input) => ctx.fetch(storageDrivePath(input.driveId, "source-credentials"), {
|
|
@@ -7315,9 +7382,9 @@ var storageCompositionCapabilities = [
|
|
|
7315
7382
|
description: "List a page of connected external buckets.",
|
|
7316
7383
|
mutation: "read",
|
|
7317
7384
|
http: { method: "GET", path: DRIVES_ROUTE },
|
|
7318
|
-
input:
|
|
7319
|
-
limit:
|
|
7320
|
-
cursor:
|
|
7385
|
+
input: z29.object({
|
|
7386
|
+
limit: z29.number().int().min(1).max(100).optional(),
|
|
7387
|
+
cursor: z29.string().optional()
|
|
7321
7388
|
}),
|
|
7322
7389
|
mcp: false,
|
|
7323
7390
|
slack: false,
|
|
@@ -7335,10 +7402,10 @@ var storageCompositionCapabilities = [
|
|
|
7335
7402
|
description: "List one page of a storage volume's contents.",
|
|
7336
7403
|
mutation: "read",
|
|
7337
7404
|
http: { method: "GET", path: `${DRIVES_ROUTE}/{driveId}/contents` },
|
|
7338
|
-
input:
|
|
7339
|
-
driveId:
|
|
7340
|
-
path:
|
|
7341
|
-
cursor:
|
|
7405
|
+
input: z29.object({
|
|
7406
|
+
driveId: z29.string(),
|
|
7407
|
+
path: z29.string().optional(),
|
|
7408
|
+
cursor: z29.union([z29.string(), z29.number()]).optional()
|
|
7342
7409
|
}),
|
|
7343
7410
|
mcp: false,
|
|
7344
7411
|
slack: false,
|
|
@@ -7405,6 +7472,7 @@ var catalog = [
|
|
|
7405
7472
|
...adminNodeDiagnosticCapabilities,
|
|
7406
7473
|
...adminNodeSanitizeCapabilities,
|
|
7407
7474
|
...adminEnrollmentCapabilities,
|
|
7475
|
+
adminSshCapability,
|
|
7408
7476
|
organizationInviteCapability,
|
|
7409
7477
|
creditGrantCapability
|
|
7410
7478
|
])
|