@vm0/cli 4.38.0 → 4.38.1
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/index.js +176 -153
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -12267,8 +12267,123 @@ var apiErrorSchema = external_exports.object({
|
|
|
12267
12267
|
})
|
|
12268
12268
|
});
|
|
12269
12269
|
|
|
12270
|
-
// ../../packages/core/src/contracts/
|
|
12270
|
+
// ../../packages/core/src/contracts/runners.ts
|
|
12271
12271
|
var c = initContract();
|
|
12272
|
+
var firewallRuleSchema = external_exports.object({
|
|
12273
|
+
domain: external_exports.string().optional(),
|
|
12274
|
+
ip: external_exports.string().optional(),
|
|
12275
|
+
/** Terminal rule - value is the action (ALLOW or DENY) */
|
|
12276
|
+
final: external_exports.enum(["ALLOW", "DENY"]).optional(),
|
|
12277
|
+
/** Action for domain/ip rules */
|
|
12278
|
+
action: external_exports.enum(["ALLOW", "DENY"]).optional()
|
|
12279
|
+
});
|
|
12280
|
+
var experimentalFirewallSchema = external_exports.object({
|
|
12281
|
+
enabled: external_exports.boolean(),
|
|
12282
|
+
rules: external_exports.array(firewallRuleSchema).optional(),
|
|
12283
|
+
experimental_mitm: external_exports.boolean().optional(),
|
|
12284
|
+
experimental_seal_secrets: external_exports.boolean().optional()
|
|
12285
|
+
});
|
|
12286
|
+
var runnerGroupSchema = external_exports.string().regex(
|
|
12287
|
+
/^[a-z0-9-]+\/[a-z0-9-]+$/,
|
|
12288
|
+
"Runner group must be in scope/name format (e.g., acme/production)"
|
|
12289
|
+
);
|
|
12290
|
+
var jobSchema = external_exports.object({
|
|
12291
|
+
runId: external_exports.string().uuid(),
|
|
12292
|
+
prompt: external_exports.string(),
|
|
12293
|
+
agentComposeVersionId: external_exports.string(),
|
|
12294
|
+
vars: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
|
|
12295
|
+
secretNames: external_exports.array(external_exports.string()).nullable(),
|
|
12296
|
+
checkpointId: external_exports.string().uuid().nullable()
|
|
12297
|
+
});
|
|
12298
|
+
var runnersPollContract = c.router({
|
|
12299
|
+
poll: {
|
|
12300
|
+
method: "POST",
|
|
12301
|
+
path: "/api/runners/poll",
|
|
12302
|
+
body: external_exports.object({
|
|
12303
|
+
group: runnerGroupSchema
|
|
12304
|
+
}),
|
|
12305
|
+
responses: {
|
|
12306
|
+
200: external_exports.object({
|
|
12307
|
+
job: jobSchema.nullable()
|
|
12308
|
+
}),
|
|
12309
|
+
400: apiErrorSchema,
|
|
12310
|
+
401: apiErrorSchema,
|
|
12311
|
+
500: apiErrorSchema
|
|
12312
|
+
},
|
|
12313
|
+
summary: "Poll for pending jobs (long-polling with 30s timeout)"
|
|
12314
|
+
}
|
|
12315
|
+
});
|
|
12316
|
+
var storageEntrySchema = external_exports.object({
|
|
12317
|
+
mountPath: external_exports.string(),
|
|
12318
|
+
archiveUrl: external_exports.string().nullable()
|
|
12319
|
+
});
|
|
12320
|
+
var artifactEntrySchema = external_exports.object({
|
|
12321
|
+
mountPath: external_exports.string(),
|
|
12322
|
+
archiveUrl: external_exports.string().nullable(),
|
|
12323
|
+
vasStorageName: external_exports.string(),
|
|
12324
|
+
vasVersionId: external_exports.string()
|
|
12325
|
+
});
|
|
12326
|
+
var storageManifestSchema = external_exports.object({
|
|
12327
|
+
storages: external_exports.array(storageEntrySchema),
|
|
12328
|
+
artifact: artifactEntrySchema.nullable()
|
|
12329
|
+
});
|
|
12330
|
+
var resumeSessionSchema = external_exports.object({
|
|
12331
|
+
sessionId: external_exports.string(),
|
|
12332
|
+
sessionHistory: external_exports.string()
|
|
12333
|
+
});
|
|
12334
|
+
var storedExecutionContextSchema = external_exports.object({
|
|
12335
|
+
workingDir: external_exports.string(),
|
|
12336
|
+
storageManifest: storageManifestSchema.nullable(),
|
|
12337
|
+
environment: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
|
|
12338
|
+
resumeSession: resumeSessionSchema.nullable(),
|
|
12339
|
+
encryptedSecrets: external_exports.string().nullable(),
|
|
12340
|
+
// AES-256-GCM encrypted secrets
|
|
12341
|
+
cliAgentType: external_exports.string(),
|
|
12342
|
+
experimentalFirewall: experimentalFirewallSchema.optional()
|
|
12343
|
+
});
|
|
12344
|
+
var executionContextSchema = external_exports.object({
|
|
12345
|
+
runId: external_exports.string().uuid(),
|
|
12346
|
+
prompt: external_exports.string(),
|
|
12347
|
+
agentComposeVersionId: external_exports.string(),
|
|
12348
|
+
vars: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
|
|
12349
|
+
secretNames: external_exports.array(external_exports.string()).nullable(),
|
|
12350
|
+
checkpointId: external_exports.string().uuid().nullable(),
|
|
12351
|
+
sandboxToken: external_exports.string(),
|
|
12352
|
+
// New fields for E2B parity:
|
|
12353
|
+
workingDir: external_exports.string(),
|
|
12354
|
+
storageManifest: storageManifestSchema.nullable(),
|
|
12355
|
+
environment: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
|
|
12356
|
+
resumeSession: resumeSessionSchema.nullable(),
|
|
12357
|
+
secretValues: external_exports.array(external_exports.string()).nullable(),
|
|
12358
|
+
cliAgentType: external_exports.string(),
|
|
12359
|
+
// Experimental firewall configuration
|
|
12360
|
+
experimentalFirewall: experimentalFirewallSchema.optional()
|
|
12361
|
+
});
|
|
12362
|
+
var runnersJobClaimContract = c.router({
|
|
12363
|
+
claim: {
|
|
12364
|
+
method: "POST",
|
|
12365
|
+
path: "/api/runners/jobs/:id/claim",
|
|
12366
|
+
pathParams: external_exports.object({
|
|
12367
|
+
id: external_exports.string().uuid()
|
|
12368
|
+
}),
|
|
12369
|
+
body: external_exports.object({}),
|
|
12370
|
+
responses: {
|
|
12371
|
+
200: executionContextSchema,
|
|
12372
|
+
400: apiErrorSchema,
|
|
12373
|
+
401: apiErrorSchema,
|
|
12374
|
+
403: apiErrorSchema,
|
|
12375
|
+
// Job does not belong to user
|
|
12376
|
+
404: apiErrorSchema,
|
|
12377
|
+
409: apiErrorSchema,
|
|
12378
|
+
// Already claimed
|
|
12379
|
+
500: apiErrorSchema
|
|
12380
|
+
},
|
|
12381
|
+
summary: "Claim a pending job for execution"
|
|
12382
|
+
}
|
|
12383
|
+
});
|
|
12384
|
+
|
|
12385
|
+
// ../../packages/core/src/contracts/composes.ts
|
|
12386
|
+
var c2 = initContract();
|
|
12272
12387
|
var composeVersionQuerySchema = external_exports.preprocess(
|
|
12273
12388
|
(val) => val === void 0 || val === null ? void 0 : String(val),
|
|
12274
12389
|
external_exports.string().min(1, "Missing version query parameter").regex(
|
|
@@ -12341,7 +12456,13 @@ var agentDefinitionSchema = external_exports.object({
|
|
|
12341
12456
|
/^[a-z0-9-]+\/[a-z0-9-]+$/,
|
|
12342
12457
|
"Runner group must be in scope/name format (e.g., acme/production)"
|
|
12343
12458
|
)
|
|
12344
|
-
}).optional()
|
|
12459
|
+
}).optional(),
|
|
12460
|
+
/**
|
|
12461
|
+
* Experimental firewall configuration for network egress control.
|
|
12462
|
+
* Requires experimental_runner to be configured.
|
|
12463
|
+
* When enabled, filters outbound traffic by domain/IP rules.
|
|
12464
|
+
*/
|
|
12465
|
+
experimental_firewall: experimentalFirewallSchema.optional()
|
|
12345
12466
|
});
|
|
12346
12467
|
var agentComposeContentSchema = external_exports.object({
|
|
12347
12468
|
version: external_exports.string().min(1, "Version is required"),
|
|
@@ -12363,7 +12484,7 @@ var createComposeResponseSchema = external_exports.object({
|
|
|
12363
12484
|
action: external_exports.enum(["created", "existing"]),
|
|
12364
12485
|
updatedAt: external_exports.string()
|
|
12365
12486
|
});
|
|
12366
|
-
var composesMainContract =
|
|
12487
|
+
var composesMainContract = c2.router({
|
|
12367
12488
|
/**
|
|
12368
12489
|
* GET /api/agent/composes?name={name}&scope={scope}
|
|
12369
12490
|
* Get agent compose by name with HEAD version content
|
|
@@ -12405,7 +12526,7 @@ var composesMainContract = c.router({
|
|
|
12405
12526
|
summary: "Create or update agent compose version"
|
|
12406
12527
|
}
|
|
12407
12528
|
});
|
|
12408
|
-
var composesByIdContract =
|
|
12529
|
+
var composesByIdContract = c2.router({
|
|
12409
12530
|
/**
|
|
12410
12531
|
* GET /api/agent/composes/:id
|
|
12411
12532
|
* Get agent compose by ID with HEAD version content
|
|
@@ -12424,7 +12545,7 @@ var composesByIdContract = c.router({
|
|
|
12424
12545
|
summary: "Get agent compose by ID"
|
|
12425
12546
|
}
|
|
12426
12547
|
});
|
|
12427
|
-
var composesVersionsContract =
|
|
12548
|
+
var composesVersionsContract = c2.router({
|
|
12428
12549
|
/**
|
|
12429
12550
|
* GET /api/agent/composes/versions?composeId={id}&version={hash|tag}
|
|
12430
12551
|
* Resolve a version specifier to a full version ID
|
|
@@ -12453,7 +12574,7 @@ var composeListItemSchema = external_exports.object({
|
|
|
12453
12574
|
headVersionId: external_exports.string().nullable(),
|
|
12454
12575
|
updatedAt: external_exports.string()
|
|
12455
12576
|
});
|
|
12456
|
-
var composesListContract =
|
|
12577
|
+
var composesListContract = c2.router({
|
|
12457
12578
|
/**
|
|
12458
12579
|
* GET /api/agent/composes/list?scope={scope}
|
|
12459
12580
|
* List all agent composes for a scope
|
|
@@ -12477,7 +12598,7 @@ var composesListContract = c.router({
|
|
|
12477
12598
|
});
|
|
12478
12599
|
|
|
12479
12600
|
// ../../packages/core/src/contracts/runs.ts
|
|
12480
|
-
var
|
|
12601
|
+
var c3 = initContract();
|
|
12481
12602
|
var runStatusSchema = external_exports.enum([
|
|
12482
12603
|
"pending",
|
|
12483
12604
|
"running",
|
|
@@ -12552,7 +12673,7 @@ var eventsResponseSchema = external_exports.object({
|
|
|
12552
12673
|
run: runStateSchema,
|
|
12553
12674
|
provider: external_exports.string()
|
|
12554
12675
|
});
|
|
12555
|
-
var runsMainContract =
|
|
12676
|
+
var runsMainContract = c3.router({
|
|
12556
12677
|
/**
|
|
12557
12678
|
* POST /api/agent/runs
|
|
12558
12679
|
* Create and execute a new agent run
|
|
@@ -12570,7 +12691,7 @@ var runsMainContract = c2.router({
|
|
|
12570
12691
|
summary: "Create and execute agent run"
|
|
12571
12692
|
}
|
|
12572
12693
|
});
|
|
12573
|
-
var runsByIdContract =
|
|
12694
|
+
var runsByIdContract = c3.router({
|
|
12574
12695
|
/**
|
|
12575
12696
|
* GET /api/agent/runs/:id
|
|
12576
12697
|
* Get agent run status and results
|
|
@@ -12590,7 +12711,7 @@ var runsByIdContract = c2.router({
|
|
|
12590
12711
|
summary: "Get agent run by ID"
|
|
12591
12712
|
}
|
|
12592
12713
|
});
|
|
12593
|
-
var runEventsContract =
|
|
12714
|
+
var runEventsContract = c3.router({
|
|
12594
12715
|
/**
|
|
12595
12716
|
* GET /api/agent/runs/:id/events
|
|
12596
12717
|
* Poll for agent run events with pagination
|
|
@@ -12651,7 +12772,7 @@ var telemetryResponseSchema = external_exports.object({
|
|
|
12651
12772
|
systemLog: external_exports.string(),
|
|
12652
12773
|
metrics: external_exports.array(telemetryMetricSchema)
|
|
12653
12774
|
});
|
|
12654
|
-
var runTelemetryContract =
|
|
12775
|
+
var runTelemetryContract = c3.router({
|
|
12655
12776
|
/**
|
|
12656
12777
|
* GET /api/agent/runs/:id/telemetry
|
|
12657
12778
|
* Get aggregated telemetry data for a run (legacy combined format)
|
|
@@ -12670,7 +12791,7 @@ var runTelemetryContract = c2.router({
|
|
|
12670
12791
|
summary: "Get run telemetry data"
|
|
12671
12792
|
}
|
|
12672
12793
|
});
|
|
12673
|
-
var runSystemLogContract =
|
|
12794
|
+
var runSystemLogContract = c3.router({
|
|
12674
12795
|
/**
|
|
12675
12796
|
* GET /api/agent/runs/:id/telemetry/system-log
|
|
12676
12797
|
* Get system log with pagination
|
|
@@ -12694,7 +12815,7 @@ var runSystemLogContract = c2.router({
|
|
|
12694
12815
|
summary: "Get system log with pagination"
|
|
12695
12816
|
}
|
|
12696
12817
|
});
|
|
12697
|
-
var runMetricsContract =
|
|
12818
|
+
var runMetricsContract = c3.router({
|
|
12698
12819
|
/**
|
|
12699
12820
|
* GET /api/agent/runs/:id/telemetry/metrics
|
|
12700
12821
|
* Get metrics with pagination
|
|
@@ -12718,7 +12839,7 @@ var runMetricsContract = c2.router({
|
|
|
12718
12839
|
summary: "Get metrics with pagination"
|
|
12719
12840
|
}
|
|
12720
12841
|
});
|
|
12721
|
-
var runAgentEventsContract =
|
|
12842
|
+
var runAgentEventsContract = c3.router({
|
|
12722
12843
|
/**
|
|
12723
12844
|
* GET /api/agent/runs/:id/telemetry/agent
|
|
12724
12845
|
* Get agent events with pagination (for vm0 logs default)
|
|
@@ -12742,7 +12863,7 @@ var runAgentEventsContract = c2.router({
|
|
|
12742
12863
|
summary: "Get agent events with pagination"
|
|
12743
12864
|
}
|
|
12744
12865
|
});
|
|
12745
|
-
var runNetworkLogsContract =
|
|
12866
|
+
var runNetworkLogsContract = c3.router({
|
|
12746
12867
|
/**
|
|
12747
12868
|
* GET /api/agent/runs/:id/telemetry/network
|
|
12748
12869
|
* Get network logs with pagination (for vm0 logs --network)
|
|
@@ -12768,7 +12889,7 @@ var runNetworkLogsContract = c2.router({
|
|
|
12768
12889
|
});
|
|
12769
12890
|
|
|
12770
12891
|
// ../../packages/core/src/contracts/storages.ts
|
|
12771
|
-
var
|
|
12892
|
+
var c4 = initContract();
|
|
12772
12893
|
var storageTypeSchema = external_exports.enum(["volume", "artifact"]);
|
|
12773
12894
|
var versionQuerySchema = external_exports.preprocess(
|
|
12774
12895
|
(val) => val === void 0 || val === null ? void 0 : String(val),
|
|
@@ -12782,7 +12903,7 @@ var uploadStorageResponseSchema = external_exports.object({
|
|
|
12782
12903
|
type: storageTypeSchema,
|
|
12783
12904
|
deduplicated: external_exports.boolean()
|
|
12784
12905
|
});
|
|
12785
|
-
var storagesContract =
|
|
12906
|
+
var storagesContract = c4.router({
|
|
12786
12907
|
/**
|
|
12787
12908
|
* POST /api/storages
|
|
12788
12909
|
* Upload a storage (tar.gz file)
|
|
@@ -12798,7 +12919,7 @@ var storagesContract = c3.router({
|
|
|
12798
12919
|
method: "POST",
|
|
12799
12920
|
path: "/api/storages",
|
|
12800
12921
|
contentType: "multipart/form-data",
|
|
12801
|
-
body:
|
|
12922
|
+
body: c4.type(),
|
|
12802
12923
|
responses: {
|
|
12803
12924
|
200: uploadStorageResponseSchema,
|
|
12804
12925
|
400: apiErrorSchema,
|
|
@@ -12826,9 +12947,9 @@ var storagesContract = c3.router({
|
|
|
12826
12947
|
}),
|
|
12827
12948
|
responses: {
|
|
12828
12949
|
// Binary response - actual handling done at route level
|
|
12829
|
-
200:
|
|
12950
|
+
200: c4.otherResponse({
|
|
12830
12951
|
contentType: "application/gzip",
|
|
12831
|
-
body:
|
|
12952
|
+
body: c4.type()
|
|
12832
12953
|
}),
|
|
12833
12954
|
400: apiErrorSchema,
|
|
12834
12955
|
401: apiErrorSchema,
|
|
@@ -12852,7 +12973,7 @@ var presignedUploadSchema = external_exports.object({
|
|
|
12852
12973
|
key: external_exports.string(),
|
|
12853
12974
|
presignedUrl: external_exports.string().url()
|
|
12854
12975
|
});
|
|
12855
|
-
var storagesPrepareContract =
|
|
12976
|
+
var storagesPrepareContract = c4.router({
|
|
12856
12977
|
prepare: {
|
|
12857
12978
|
method: "POST",
|
|
12858
12979
|
path: "/api/storages/prepare",
|
|
@@ -12884,7 +13005,7 @@ var storagesPrepareContract = c3.router({
|
|
|
12884
13005
|
summary: "Prepare for direct S3 upload"
|
|
12885
13006
|
}
|
|
12886
13007
|
});
|
|
12887
|
-
var storagesCommitContract =
|
|
13008
|
+
var storagesCommitContract = c4.router({
|
|
12888
13009
|
commit: {
|
|
12889
13010
|
method: "POST",
|
|
12890
13011
|
path: "/api/storages/commit",
|
|
@@ -12915,7 +13036,7 @@ var storagesCommitContract = c3.router({
|
|
|
12915
13036
|
summary: "Commit uploaded storage"
|
|
12916
13037
|
}
|
|
12917
13038
|
});
|
|
12918
|
-
var storagesDownloadContract =
|
|
13039
|
+
var storagesDownloadContract = c4.router({
|
|
12919
13040
|
download: {
|
|
12920
13041
|
method: "GET",
|
|
12921
13042
|
path: "/api/storages/download",
|
|
@@ -12949,7 +13070,7 @@ var storagesDownloadContract = c3.router({
|
|
|
12949
13070
|
summary: "Get presigned download URL"
|
|
12950
13071
|
}
|
|
12951
13072
|
});
|
|
12952
|
-
var storagesListContract =
|
|
13073
|
+
var storagesListContract = c4.router({
|
|
12953
13074
|
list: {
|
|
12954
13075
|
method: "GET",
|
|
12955
13076
|
path: "/api/storages/list",
|
|
@@ -12973,7 +13094,7 @@ var storagesListContract = c3.router({
|
|
|
12973
13094
|
});
|
|
12974
13095
|
|
|
12975
13096
|
// ../../packages/core/src/contracts/webhooks.ts
|
|
12976
|
-
var
|
|
13097
|
+
var c5 = initContract();
|
|
12977
13098
|
var agentEventSchema = external_exports.object({
|
|
12978
13099
|
type: external_exports.string(),
|
|
12979
13100
|
sequenceNumber: external_exports.number().int().positive()
|
|
@@ -12985,7 +13106,7 @@ var artifactSnapshotSchema = external_exports.object({
|
|
|
12985
13106
|
var volumeVersionsSnapshotSchema = external_exports.object({
|
|
12986
13107
|
versions: external_exports.record(external_exports.string(), external_exports.string())
|
|
12987
13108
|
});
|
|
12988
|
-
var webhookEventsContract =
|
|
13109
|
+
var webhookEventsContract = c5.router({
|
|
12989
13110
|
/**
|
|
12990
13111
|
* POST /api/webhooks/agent/events
|
|
12991
13112
|
* Receive agent events from E2B sandbox
|
|
@@ -13011,7 +13132,7 @@ var webhookEventsContract = c4.router({
|
|
|
13011
13132
|
summary: "Receive agent events from sandbox"
|
|
13012
13133
|
}
|
|
13013
13134
|
});
|
|
13014
|
-
var webhookCompleteContract =
|
|
13135
|
+
var webhookCompleteContract = c5.router({
|
|
13015
13136
|
/**
|
|
13016
13137
|
* POST /api/webhooks/agent/complete
|
|
13017
13138
|
* Handle agent run completion (success or failure)
|
|
@@ -13037,7 +13158,7 @@ var webhookCompleteContract = c4.router({
|
|
|
13037
13158
|
summary: "Handle agent run completion"
|
|
13038
13159
|
}
|
|
13039
13160
|
});
|
|
13040
|
-
var webhookCheckpointsContract =
|
|
13161
|
+
var webhookCheckpointsContract = c5.router({
|
|
13041
13162
|
/**
|
|
13042
13163
|
* POST /api/webhooks/agent/checkpoints
|
|
13043
13164
|
* Create checkpoint for completed agent run
|
|
@@ -13069,7 +13190,7 @@ var webhookCheckpointsContract = c4.router({
|
|
|
13069
13190
|
summary: "Create checkpoint for agent run"
|
|
13070
13191
|
}
|
|
13071
13192
|
});
|
|
13072
|
-
var webhookHeartbeatContract =
|
|
13193
|
+
var webhookHeartbeatContract = c5.router({
|
|
13073
13194
|
/**
|
|
13074
13195
|
* POST /api/webhooks/agent/heartbeat
|
|
13075
13196
|
* Receive heartbeat signals from E2B sandbox
|
|
@@ -13092,7 +13213,7 @@ var webhookHeartbeatContract = c4.router({
|
|
|
13092
13213
|
summary: "Receive heartbeat from sandbox"
|
|
13093
13214
|
}
|
|
13094
13215
|
});
|
|
13095
|
-
var webhookStoragesContract =
|
|
13216
|
+
var webhookStoragesContract = c5.router({
|
|
13096
13217
|
/**
|
|
13097
13218
|
* POST /api/webhooks/agent/storages
|
|
13098
13219
|
* Create a new version of a storage from sandbox
|
|
@@ -13107,7 +13228,7 @@ var webhookStoragesContract = c4.router({
|
|
|
13107
13228
|
method: "POST",
|
|
13108
13229
|
path: "/api/webhooks/agent/storages",
|
|
13109
13230
|
contentType: "multipart/form-data",
|
|
13110
|
-
body:
|
|
13231
|
+
body: c5.type(),
|
|
13111
13232
|
responses: {
|
|
13112
13233
|
200: external_exports.object({
|
|
13113
13234
|
versionId: external_exports.string(),
|
|
@@ -13123,7 +13244,7 @@ var webhookStoragesContract = c4.router({
|
|
|
13123
13244
|
summary: "Upload storage version from sandbox"
|
|
13124
13245
|
}
|
|
13125
13246
|
});
|
|
13126
|
-
var webhookStoragesIncrementalContract =
|
|
13247
|
+
var webhookStoragesIncrementalContract = c5.router({
|
|
13127
13248
|
/**
|
|
13128
13249
|
* POST /api/webhooks/agent/storages/incremental
|
|
13129
13250
|
* Create a new version using incremental upload
|
|
@@ -13140,7 +13261,7 @@ var webhookStoragesIncrementalContract = c4.router({
|
|
|
13140
13261
|
method: "POST",
|
|
13141
13262
|
path: "/api/webhooks/agent/storages/incremental",
|
|
13142
13263
|
contentType: "multipart/form-data",
|
|
13143
|
-
body:
|
|
13264
|
+
body: c5.type(),
|
|
13144
13265
|
responses: {
|
|
13145
13266
|
200: external_exports.object({
|
|
13146
13267
|
versionId: external_exports.string(),
|
|
@@ -13180,7 +13301,7 @@ var networkLogSchema = external_exports.object({
|
|
|
13180
13301
|
request_size: external_exports.number(),
|
|
13181
13302
|
response_size: external_exports.number()
|
|
13182
13303
|
});
|
|
13183
|
-
var webhookTelemetryContract =
|
|
13304
|
+
var webhookTelemetryContract = c5.router({
|
|
13184
13305
|
/**
|
|
13185
13306
|
* POST /api/webhooks/agent/telemetry
|
|
13186
13307
|
* Receive telemetry data (system log, metrics, and network logs) from sandbox
|
|
@@ -13207,7 +13328,7 @@ var webhookTelemetryContract = c4.router({
|
|
|
13207
13328
|
summary: "Receive telemetry data from sandbox"
|
|
13208
13329
|
}
|
|
13209
13330
|
});
|
|
13210
|
-
var webhookStoragesPrepareContract =
|
|
13331
|
+
var webhookStoragesPrepareContract = c5.router({
|
|
13211
13332
|
prepare: {
|
|
13212
13333
|
method: "POST",
|
|
13213
13334
|
path: "/api/webhooks/agent/storages/prepare",
|
|
@@ -13238,7 +13359,7 @@ var webhookStoragesPrepareContract = c4.router({
|
|
|
13238
13359
|
summary: "Prepare for direct S3 upload from sandbox"
|
|
13239
13360
|
}
|
|
13240
13361
|
});
|
|
13241
|
-
var webhookStoragesCommitContract =
|
|
13362
|
+
var webhookStoragesCommitContract = c5.router({
|
|
13242
13363
|
commit: {
|
|
13243
13364
|
method: "POST",
|
|
13244
13365
|
path: "/api/webhooks/agent/storages/commit",
|
|
@@ -13272,12 +13393,12 @@ var webhookStoragesCommitContract = c4.router({
|
|
|
13272
13393
|
});
|
|
13273
13394
|
|
|
13274
13395
|
// ../../packages/core/src/contracts/cli-auth.ts
|
|
13275
|
-
var
|
|
13396
|
+
var c6 = initContract();
|
|
13276
13397
|
var oauthErrorSchema = external_exports.object({
|
|
13277
13398
|
error: external_exports.string(),
|
|
13278
13399
|
error_description: external_exports.string()
|
|
13279
13400
|
});
|
|
13280
|
-
var cliAuthDeviceContract =
|
|
13401
|
+
var cliAuthDeviceContract = c6.router({
|
|
13281
13402
|
/**
|
|
13282
13403
|
* POST /api/cli/auth/device
|
|
13283
13404
|
* Initiate device authorization flow
|
|
@@ -13299,7 +13420,7 @@ var cliAuthDeviceContract = c5.router({
|
|
|
13299
13420
|
summary: "Initiate device authorization flow"
|
|
13300
13421
|
}
|
|
13301
13422
|
});
|
|
13302
|
-
var cliAuthTokenContract =
|
|
13423
|
+
var cliAuthTokenContract = c6.router({
|
|
13303
13424
|
/**
|
|
13304
13425
|
* POST /api/cli/auth/token
|
|
13305
13426
|
* Exchange device code for access token
|
|
@@ -13329,8 +13450,8 @@ var cliAuthTokenContract = c5.router({
|
|
|
13329
13450
|
});
|
|
13330
13451
|
|
|
13331
13452
|
// ../../packages/core/src/contracts/auth.ts
|
|
13332
|
-
var
|
|
13333
|
-
var authContract =
|
|
13453
|
+
var c7 = initContract();
|
|
13454
|
+
var authContract = c7.router({
|
|
13334
13455
|
/**
|
|
13335
13456
|
* GET /api/auth/me
|
|
13336
13457
|
* Get current user information
|
|
@@ -13352,7 +13473,7 @@ var authContract = c6.router({
|
|
|
13352
13473
|
});
|
|
13353
13474
|
|
|
13354
13475
|
// ../../packages/core/src/contracts/cron.ts
|
|
13355
|
-
var
|
|
13476
|
+
var c8 = initContract();
|
|
13356
13477
|
var cleanupResultSchema = external_exports.object({
|
|
13357
13478
|
runId: external_exports.string(),
|
|
13358
13479
|
sandboxId: external_exports.string().nullable(),
|
|
@@ -13364,7 +13485,7 @@ var cleanupResponseSchema = external_exports.object({
|
|
|
13364
13485
|
errors: external_exports.number(),
|
|
13365
13486
|
results: external_exports.array(cleanupResultSchema)
|
|
13366
13487
|
});
|
|
13367
|
-
var cronCleanupSandboxesContract =
|
|
13488
|
+
var cronCleanupSandboxesContract = c8.router({
|
|
13368
13489
|
/**
|
|
13369
13490
|
* GET /api/cron/cleanup-sandboxes
|
|
13370
13491
|
* Cron job to cleanup sandboxes that have stopped sending heartbeats
|
|
@@ -13396,7 +13517,7 @@ var proxyErrorSchema = external_exports.object({
|
|
|
13396
13517
|
});
|
|
13397
13518
|
|
|
13398
13519
|
// ../../packages/core/src/contracts/scopes.ts
|
|
13399
|
-
var
|
|
13520
|
+
var c9 = initContract();
|
|
13400
13521
|
var scopeTypeSchema = external_exports.enum(["personal", "organization", "system"]);
|
|
13401
13522
|
var scopeSlugSchema = external_exports.string().min(3, "Scope slug must be at least 3 characters").max(64, "Scope slug must be at most 64 characters").regex(
|
|
13402
13523
|
/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]{1,2}$/,
|
|
@@ -13421,7 +13542,7 @@ var updateScopeRequestSchema = external_exports.object({
|
|
|
13421
13542
|
slug: scopeSlugSchema,
|
|
13422
13543
|
force: external_exports.boolean().optional().default(false)
|
|
13423
13544
|
});
|
|
13424
|
-
var scopeContract =
|
|
13545
|
+
var scopeContract = c9.router({
|
|
13425
13546
|
/**
|
|
13426
13547
|
* GET /api/scope
|
|
13427
13548
|
* Get current user's scope
|
|
@@ -13476,7 +13597,7 @@ var scopeContract = c8.router({
|
|
|
13476
13597
|
});
|
|
13477
13598
|
|
|
13478
13599
|
// ../../packages/core/src/contracts/sessions.ts
|
|
13479
|
-
var
|
|
13600
|
+
var c10 = initContract();
|
|
13480
13601
|
var sessionResponseSchema = external_exports.object({
|
|
13481
13602
|
id: external_exports.string(),
|
|
13482
13603
|
agentComposeId: external_exports.string(),
|
|
@@ -13510,7 +13631,7 @@ var checkpointResponseSchema = external_exports.object({
|
|
|
13510
13631
|
volumeVersionsSnapshot: volumeVersionsSnapshotSchema2.nullable(),
|
|
13511
13632
|
createdAt: external_exports.string()
|
|
13512
13633
|
});
|
|
13513
|
-
var sessionsByIdContract =
|
|
13634
|
+
var sessionsByIdContract = c10.router({
|
|
13514
13635
|
/**
|
|
13515
13636
|
* GET /api/agent/sessions/:id
|
|
13516
13637
|
* Get session by ID
|
|
@@ -13530,7 +13651,7 @@ var sessionsByIdContract = c9.router({
|
|
|
13530
13651
|
summary: "Get session by ID"
|
|
13531
13652
|
}
|
|
13532
13653
|
});
|
|
13533
|
-
var checkpointsByIdContract =
|
|
13654
|
+
var checkpointsByIdContract = c10.router({
|
|
13534
13655
|
/**
|
|
13535
13656
|
* GET /api/agent/checkpoints/:id
|
|
13536
13657
|
* Get checkpoint by ID
|
|
@@ -13551,107 +13672,6 @@ var checkpointsByIdContract = c9.router({
|
|
|
13551
13672
|
}
|
|
13552
13673
|
});
|
|
13553
13674
|
|
|
13554
|
-
// ../../packages/core/src/contracts/runners.ts
|
|
13555
|
-
var c10 = initContract();
|
|
13556
|
-
var runnerGroupSchema = external_exports.string().regex(
|
|
13557
|
-
/^[a-z0-9-]+\/[a-z0-9-]+$/,
|
|
13558
|
-
"Runner group must be in scope/name format (e.g., acme/production)"
|
|
13559
|
-
);
|
|
13560
|
-
var jobSchema = external_exports.object({
|
|
13561
|
-
runId: external_exports.string().uuid(),
|
|
13562
|
-
prompt: external_exports.string(),
|
|
13563
|
-
agentComposeVersionId: external_exports.string(),
|
|
13564
|
-
vars: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
|
|
13565
|
-
secretNames: external_exports.array(external_exports.string()).nullable(),
|
|
13566
|
-
checkpointId: external_exports.string().uuid().nullable()
|
|
13567
|
-
});
|
|
13568
|
-
var runnersPollContract = c10.router({
|
|
13569
|
-
poll: {
|
|
13570
|
-
method: "POST",
|
|
13571
|
-
path: "/api/runners/poll",
|
|
13572
|
-
body: external_exports.object({
|
|
13573
|
-
group: runnerGroupSchema
|
|
13574
|
-
}),
|
|
13575
|
-
responses: {
|
|
13576
|
-
200: external_exports.object({
|
|
13577
|
-
job: jobSchema.nullable()
|
|
13578
|
-
}),
|
|
13579
|
-
400: apiErrorSchema,
|
|
13580
|
-
401: apiErrorSchema,
|
|
13581
|
-
500: apiErrorSchema
|
|
13582
|
-
},
|
|
13583
|
-
summary: "Poll for pending jobs (long-polling with 30s timeout)"
|
|
13584
|
-
}
|
|
13585
|
-
});
|
|
13586
|
-
var storageEntrySchema = external_exports.object({
|
|
13587
|
-
mountPath: external_exports.string(),
|
|
13588
|
-
archiveUrl: external_exports.string().nullable()
|
|
13589
|
-
});
|
|
13590
|
-
var artifactEntrySchema = external_exports.object({
|
|
13591
|
-
mountPath: external_exports.string(),
|
|
13592
|
-
archiveUrl: external_exports.string().nullable(),
|
|
13593
|
-
vasStorageName: external_exports.string(),
|
|
13594
|
-
vasVersionId: external_exports.string()
|
|
13595
|
-
});
|
|
13596
|
-
var storageManifestSchema = external_exports.object({
|
|
13597
|
-
storages: external_exports.array(storageEntrySchema),
|
|
13598
|
-
artifact: artifactEntrySchema.nullable()
|
|
13599
|
-
});
|
|
13600
|
-
var resumeSessionSchema = external_exports.object({
|
|
13601
|
-
sessionId: external_exports.string(),
|
|
13602
|
-
sessionHistory: external_exports.string()
|
|
13603
|
-
});
|
|
13604
|
-
var storedExecutionContextSchema = external_exports.object({
|
|
13605
|
-
workingDir: external_exports.string(),
|
|
13606
|
-
storageManifest: storageManifestSchema.nullable(),
|
|
13607
|
-
environment: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
|
|
13608
|
-
resumeSession: resumeSessionSchema.nullable(),
|
|
13609
|
-
encryptedSecrets: external_exports.string().nullable(),
|
|
13610
|
-
// AES-256-GCM encrypted secrets
|
|
13611
|
-
cliAgentType: external_exports.string(),
|
|
13612
|
-
experimentalNetworkSecurity: external_exports.boolean().optional()
|
|
13613
|
-
});
|
|
13614
|
-
var executionContextSchema = external_exports.object({
|
|
13615
|
-
runId: external_exports.string().uuid(),
|
|
13616
|
-
prompt: external_exports.string(),
|
|
13617
|
-
agentComposeVersionId: external_exports.string(),
|
|
13618
|
-
vars: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
|
|
13619
|
-
secretNames: external_exports.array(external_exports.string()).nullable(),
|
|
13620
|
-
checkpointId: external_exports.string().uuid().nullable(),
|
|
13621
|
-
sandboxToken: external_exports.string(),
|
|
13622
|
-
// New fields for E2B parity:
|
|
13623
|
-
workingDir: external_exports.string(),
|
|
13624
|
-
storageManifest: storageManifestSchema.nullable(),
|
|
13625
|
-
environment: external_exports.record(external_exports.string(), external_exports.string()).nullable(),
|
|
13626
|
-
resumeSession: resumeSessionSchema.nullable(),
|
|
13627
|
-
secretValues: external_exports.array(external_exports.string()).nullable(),
|
|
13628
|
-
cliAgentType: external_exports.string(),
|
|
13629
|
-
// Network security mode flag
|
|
13630
|
-
experimentalNetworkSecurity: external_exports.boolean().optional()
|
|
13631
|
-
});
|
|
13632
|
-
var runnersJobClaimContract = c10.router({
|
|
13633
|
-
claim: {
|
|
13634
|
-
method: "POST",
|
|
13635
|
-
path: "/api/runners/jobs/:id/claim",
|
|
13636
|
-
pathParams: external_exports.object({
|
|
13637
|
-
id: external_exports.string().uuid()
|
|
13638
|
-
}),
|
|
13639
|
-
body: external_exports.object({}),
|
|
13640
|
-
responses: {
|
|
13641
|
-
200: executionContextSchema,
|
|
13642
|
-
400: apiErrorSchema,
|
|
13643
|
-
401: apiErrorSchema,
|
|
13644
|
-
403: apiErrorSchema,
|
|
13645
|
-
// Job does not belong to user
|
|
13646
|
-
404: apiErrorSchema,
|
|
13647
|
-
409: apiErrorSchema,
|
|
13648
|
-
// Already claimed
|
|
13649
|
-
500: apiErrorSchema
|
|
13650
|
-
},
|
|
13651
|
-
summary: "Claim a pending job for execution"
|
|
13652
|
-
}
|
|
13653
|
-
});
|
|
13654
|
-
|
|
13655
13675
|
// ../../packages/core/src/contracts/public/common.ts
|
|
13656
13676
|
var publicApiErrorTypeSchema = external_exports.enum([
|
|
13657
13677
|
"api_error",
|
|
@@ -13725,18 +13745,21 @@ var updateAgentRequestSchema = external_exports.object({
|
|
|
13725
13745
|
config: external_exports.unknown()
|
|
13726
13746
|
// New agent configuration (creates new version)
|
|
13727
13747
|
});
|
|
13748
|
+
var agentListQuerySchema = listQuerySchema.extend({
|
|
13749
|
+
name: external_exports.string().optional()
|
|
13750
|
+
});
|
|
13728
13751
|
var publicAgentsListContract = c11.router({
|
|
13729
13752
|
list: {
|
|
13730
13753
|
method: "GET",
|
|
13731
13754
|
path: "/v1/agents",
|
|
13732
|
-
query:
|
|
13755
|
+
query: agentListQuerySchema,
|
|
13733
13756
|
responses: {
|
|
13734
13757
|
200: paginatedAgentsSchema,
|
|
13735
13758
|
401: publicApiErrorSchema,
|
|
13736
13759
|
500: publicApiErrorSchema
|
|
13737
13760
|
},
|
|
13738
13761
|
summary: "List agents",
|
|
13739
|
-
description: "List all agents in the current scope with pagination"
|
|
13762
|
+
description: "List all agents in the current scope with pagination. Use the `name` query parameter to filter by agent name."
|
|
13740
13763
|
},
|
|
13741
13764
|
create: {
|
|
13742
13765
|
method: "POST",
|
|
@@ -18628,7 +18651,7 @@ async function autoPullArtifact(runOutput, artifactDir) {
|
|
|
18628
18651
|
}
|
|
18629
18652
|
var cookCmd = new Command17().name("cook").description("One-click agent preparation and execution from vm0.yaml");
|
|
18630
18653
|
cookCmd.argument("[prompt]", "Prompt for the agent").option("-y, --yes", "Skip confirmation prompts").action(async (prompt, options) => {
|
|
18631
|
-
const shouldExit = await checkAndUpgrade("4.38.
|
|
18654
|
+
const shouldExit = await checkAndUpgrade("4.38.1", prompt);
|
|
18632
18655
|
if (shouldExit) {
|
|
18633
18656
|
process.exit(0);
|
|
18634
18657
|
}
|
|
@@ -20182,7 +20205,7 @@ var setupGithubCommand = new Command26().name("setup-github").description("Initi
|
|
|
20182
20205
|
|
|
20183
20206
|
// src/index.ts
|
|
20184
20207
|
var program = new Command27();
|
|
20185
|
-
program.name("vm0").description("VM0 CLI - A modern build tool").version("4.38.
|
|
20208
|
+
program.name("vm0").description("VM0 CLI - A modern build tool").version("4.38.1");
|
|
20186
20209
|
program.command("info").description("Display environment information").action(async () => {
|
|
20187
20210
|
console.log(chalk29.bold("System Information:"));
|
|
20188
20211
|
console.log(`Node Version: ${process.version}`);
|