@vm0/cli 9.14.0 → 9.14.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 +213 -175
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -2651,29 +2651,67 @@ var platformArtifactDownloadContract = c15.router({
|
|
|
2651
2651
|
}
|
|
2652
2652
|
});
|
|
2653
2653
|
|
|
2654
|
-
// ../../packages/core/src/contracts/
|
|
2654
|
+
// ../../packages/core/src/contracts/llm.ts
|
|
2655
2655
|
import { z as z20 } from "zod";
|
|
2656
2656
|
var c16 = initContract();
|
|
2657
|
-
var
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2657
|
+
var messageRoleSchema = z20.enum(["user", "assistant", "system"]);
|
|
2658
|
+
var chatMessageSchema = z20.object({
|
|
2659
|
+
role: messageRoleSchema,
|
|
2660
|
+
content: z20.string()
|
|
2661
|
+
});
|
|
2662
|
+
var tokenUsageSchema = z20.object({
|
|
2663
|
+
promptTokens: z20.number(),
|
|
2664
|
+
completionTokens: z20.number(),
|
|
2665
|
+
totalTokens: z20.number()
|
|
2666
|
+
});
|
|
2667
|
+
var llmChatRequestSchema = z20.object({
|
|
2668
|
+
model: z20.string().min(1).optional(),
|
|
2669
|
+
messages: z20.array(chatMessageSchema).min(1, "At least one message is required"),
|
|
2670
|
+
stream: z20.boolean().optional().default(false)
|
|
2671
|
+
});
|
|
2672
|
+
var llmChatResponseSchema = z20.object({
|
|
2673
|
+
content: z20.string(),
|
|
2674
|
+
model: z20.string(),
|
|
2675
|
+
usage: tokenUsageSchema
|
|
2676
|
+
});
|
|
2677
|
+
var llmChatContract = c16.router({
|
|
2678
|
+
chat: {
|
|
2679
|
+
method: "POST",
|
|
2680
|
+
path: "/api/llm/chat",
|
|
2681
|
+
body: llmChatRequestSchema,
|
|
2682
|
+
responses: {
|
|
2683
|
+
200: llmChatResponseSchema,
|
|
2684
|
+
400: apiErrorSchema,
|
|
2685
|
+
500: apiErrorSchema,
|
|
2686
|
+
503: apiErrorSchema
|
|
2687
|
+
},
|
|
2688
|
+
summary: "Send a chat completion request to OpenRouter"
|
|
2689
|
+
}
|
|
2690
|
+
});
|
|
2691
|
+
|
|
2692
|
+
// ../../packages/core/src/contracts/public/agents.ts
|
|
2693
|
+
import { z as z21 } from "zod";
|
|
2694
|
+
var c17 = initContract();
|
|
2695
|
+
var publicAgentSchema = z21.object({
|
|
2696
|
+
id: z21.string(),
|
|
2697
|
+
name: z21.string(),
|
|
2698
|
+
currentVersionId: z21.string().nullable(),
|
|
2661
2699
|
createdAt: timestampSchema,
|
|
2662
2700
|
updatedAt: timestampSchema
|
|
2663
2701
|
});
|
|
2664
|
-
var agentVersionSchema =
|
|
2665
|
-
id:
|
|
2666
|
-
agentId:
|
|
2667
|
-
versionNumber:
|
|
2702
|
+
var agentVersionSchema = z21.object({
|
|
2703
|
+
id: z21.string(),
|
|
2704
|
+
agentId: z21.string(),
|
|
2705
|
+
versionNumber: z21.number(),
|
|
2668
2706
|
createdAt: timestampSchema
|
|
2669
2707
|
});
|
|
2670
2708
|
var publicAgentDetailSchema = publicAgentSchema;
|
|
2671
2709
|
var paginatedAgentsSchema = createPaginatedResponseSchema(publicAgentSchema);
|
|
2672
2710
|
var paginatedAgentVersionsSchema = createPaginatedResponseSchema(agentVersionSchema);
|
|
2673
2711
|
var agentListQuerySchema = listQuerySchema.extend({
|
|
2674
|
-
name:
|
|
2712
|
+
name: z21.string().optional()
|
|
2675
2713
|
});
|
|
2676
|
-
var publicAgentsListContract =
|
|
2714
|
+
var publicAgentsListContract = c17.router({
|
|
2677
2715
|
list: {
|
|
2678
2716
|
method: "GET",
|
|
2679
2717
|
path: "/v1/agents",
|
|
@@ -2688,13 +2726,13 @@ var publicAgentsListContract = c16.router({
|
|
|
2688
2726
|
description: "List all agents in the current scope with pagination. Use the `name` query parameter to filter by agent name."
|
|
2689
2727
|
}
|
|
2690
2728
|
});
|
|
2691
|
-
var publicAgentByIdContract =
|
|
2729
|
+
var publicAgentByIdContract = c17.router({
|
|
2692
2730
|
get: {
|
|
2693
2731
|
method: "GET",
|
|
2694
2732
|
path: "/v1/agents/:id",
|
|
2695
2733
|
headers: authHeadersSchema,
|
|
2696
|
-
pathParams:
|
|
2697
|
-
id:
|
|
2734
|
+
pathParams: z21.object({
|
|
2735
|
+
id: z21.string().min(1, "Agent ID is required")
|
|
2698
2736
|
}),
|
|
2699
2737
|
responses: {
|
|
2700
2738
|
200: publicAgentDetailSchema,
|
|
@@ -2706,13 +2744,13 @@ var publicAgentByIdContract = c16.router({
|
|
|
2706
2744
|
description: "Get agent details by ID"
|
|
2707
2745
|
}
|
|
2708
2746
|
});
|
|
2709
|
-
var publicAgentVersionsContract =
|
|
2747
|
+
var publicAgentVersionsContract = c17.router({
|
|
2710
2748
|
list: {
|
|
2711
2749
|
method: "GET",
|
|
2712
2750
|
path: "/v1/agents/:id/versions",
|
|
2713
2751
|
headers: authHeadersSchema,
|
|
2714
|
-
pathParams:
|
|
2715
|
-
id:
|
|
2752
|
+
pathParams: z21.object({
|
|
2753
|
+
id: z21.string().min(1, "Agent ID is required")
|
|
2716
2754
|
}),
|
|
2717
2755
|
query: listQuerySchema,
|
|
2718
2756
|
responses: {
|
|
@@ -2727,9 +2765,9 @@ var publicAgentVersionsContract = c16.router({
|
|
|
2727
2765
|
});
|
|
2728
2766
|
|
|
2729
2767
|
// ../../packages/core/src/contracts/public/runs.ts
|
|
2730
|
-
import { z as
|
|
2731
|
-
var
|
|
2732
|
-
var publicRunStatusSchema =
|
|
2768
|
+
import { z as z22 } from "zod";
|
|
2769
|
+
var c18 = initContract();
|
|
2770
|
+
var publicRunStatusSchema = z22.enum([
|
|
2733
2771
|
"pending",
|
|
2734
2772
|
"running",
|
|
2735
2773
|
"completed",
|
|
@@ -2737,54 +2775,54 @@ var publicRunStatusSchema = z21.enum([
|
|
|
2737
2775
|
"timeout",
|
|
2738
2776
|
"cancelled"
|
|
2739
2777
|
]);
|
|
2740
|
-
var publicRunSchema =
|
|
2741
|
-
id:
|
|
2742
|
-
agentId:
|
|
2743
|
-
agentName:
|
|
2778
|
+
var publicRunSchema = z22.object({
|
|
2779
|
+
id: z22.string(),
|
|
2780
|
+
agentId: z22.string(),
|
|
2781
|
+
agentName: z22.string(),
|
|
2744
2782
|
status: publicRunStatusSchema,
|
|
2745
|
-
prompt:
|
|
2783
|
+
prompt: z22.string(),
|
|
2746
2784
|
createdAt: timestampSchema,
|
|
2747
2785
|
startedAt: timestampSchema.nullable(),
|
|
2748
2786
|
completedAt: timestampSchema.nullable()
|
|
2749
2787
|
});
|
|
2750
2788
|
var publicRunDetailSchema = publicRunSchema.extend({
|
|
2751
|
-
error:
|
|
2752
|
-
executionTimeMs:
|
|
2753
|
-
checkpointId:
|
|
2754
|
-
sessionId:
|
|
2755
|
-
artifactName:
|
|
2756
|
-
artifactVersion:
|
|
2757
|
-
volumes:
|
|
2789
|
+
error: z22.string().nullable(),
|
|
2790
|
+
executionTimeMs: z22.number().nullable(),
|
|
2791
|
+
checkpointId: z22.string().nullable(),
|
|
2792
|
+
sessionId: z22.string().nullable(),
|
|
2793
|
+
artifactName: z22.string().nullable(),
|
|
2794
|
+
artifactVersion: z22.string().nullable(),
|
|
2795
|
+
volumes: z22.record(z22.string(), z22.string()).optional()
|
|
2758
2796
|
});
|
|
2759
2797
|
var paginatedRunsSchema = createPaginatedResponseSchema(publicRunSchema);
|
|
2760
|
-
var createRunRequestSchema =
|
|
2798
|
+
var createRunRequestSchema = z22.object({
|
|
2761
2799
|
// Agent identification (one of: agent, agentId, sessionId, checkpointId)
|
|
2762
|
-
agent:
|
|
2800
|
+
agent: z22.string().optional(),
|
|
2763
2801
|
// Agent name
|
|
2764
|
-
agentId:
|
|
2802
|
+
agentId: z22.string().optional(),
|
|
2765
2803
|
// Agent ID
|
|
2766
|
-
agentVersion:
|
|
2804
|
+
agentVersion: z22.string().optional(),
|
|
2767
2805
|
// Version specifier (e.g., "latest", "v1", specific ID)
|
|
2768
2806
|
// Continue session
|
|
2769
|
-
sessionId:
|
|
2807
|
+
sessionId: z22.string().optional(),
|
|
2770
2808
|
// Resume from checkpoint
|
|
2771
|
-
checkpointId:
|
|
2809
|
+
checkpointId: z22.string().optional(),
|
|
2772
2810
|
// Required
|
|
2773
|
-
prompt:
|
|
2811
|
+
prompt: z22.string().min(1, "Prompt is required"),
|
|
2774
2812
|
// Optional configuration
|
|
2775
|
-
variables:
|
|
2776
|
-
secrets:
|
|
2777
|
-
artifactName:
|
|
2813
|
+
variables: z22.record(z22.string(), z22.string()).optional(),
|
|
2814
|
+
secrets: z22.record(z22.string(), z22.string()).optional(),
|
|
2815
|
+
artifactName: z22.string().optional(),
|
|
2778
2816
|
// Artifact name to mount
|
|
2779
|
-
artifactVersion:
|
|
2817
|
+
artifactVersion: z22.string().optional(),
|
|
2780
2818
|
// Artifact version (defaults to latest)
|
|
2781
|
-
volumes:
|
|
2819
|
+
volumes: z22.record(z22.string(), z22.string()).optional()
|
|
2782
2820
|
// volume_name -> version
|
|
2783
2821
|
});
|
|
2784
2822
|
var runListQuerySchema = listQuerySchema.extend({
|
|
2785
2823
|
status: publicRunStatusSchema.optional()
|
|
2786
2824
|
});
|
|
2787
|
-
var publicRunsListContract =
|
|
2825
|
+
var publicRunsListContract = c18.router({
|
|
2788
2826
|
list: {
|
|
2789
2827
|
method: "GET",
|
|
2790
2828
|
path: "/v1/runs",
|
|
@@ -2816,13 +2854,13 @@ var publicRunsListContract = c17.router({
|
|
|
2816
2854
|
description: "Create and execute a new agent run. Returns 202 Accepted as runs execute asynchronously."
|
|
2817
2855
|
}
|
|
2818
2856
|
});
|
|
2819
|
-
var publicRunByIdContract =
|
|
2857
|
+
var publicRunByIdContract = c18.router({
|
|
2820
2858
|
get: {
|
|
2821
2859
|
method: "GET",
|
|
2822
2860
|
path: "/v1/runs/:id",
|
|
2823
2861
|
headers: authHeadersSchema,
|
|
2824
|
-
pathParams:
|
|
2825
|
-
id:
|
|
2862
|
+
pathParams: z22.object({
|
|
2863
|
+
id: z22.string().min(1, "Run ID is required")
|
|
2826
2864
|
}),
|
|
2827
2865
|
responses: {
|
|
2828
2866
|
200: publicRunDetailSchema,
|
|
@@ -2834,15 +2872,15 @@ var publicRunByIdContract = c17.router({
|
|
|
2834
2872
|
description: "Get run details by ID"
|
|
2835
2873
|
}
|
|
2836
2874
|
});
|
|
2837
|
-
var publicRunCancelContract =
|
|
2875
|
+
var publicRunCancelContract = c18.router({
|
|
2838
2876
|
cancel: {
|
|
2839
2877
|
method: "POST",
|
|
2840
2878
|
path: "/v1/runs/:id/cancel",
|
|
2841
2879
|
headers: authHeadersSchema,
|
|
2842
|
-
pathParams:
|
|
2843
|
-
id:
|
|
2880
|
+
pathParams: z22.object({
|
|
2881
|
+
id: z22.string().min(1, "Run ID is required")
|
|
2844
2882
|
}),
|
|
2845
|
-
body:
|
|
2883
|
+
body: z22.undefined(),
|
|
2846
2884
|
responses: {
|
|
2847
2885
|
200: publicRunDetailSchema,
|
|
2848
2886
|
400: publicApiErrorSchema,
|
|
@@ -2855,27 +2893,27 @@ var publicRunCancelContract = c17.router({
|
|
|
2855
2893
|
description: "Cancel a pending or running execution"
|
|
2856
2894
|
}
|
|
2857
2895
|
});
|
|
2858
|
-
var logEntrySchema =
|
|
2896
|
+
var logEntrySchema = z22.object({
|
|
2859
2897
|
timestamp: timestampSchema,
|
|
2860
|
-
type:
|
|
2861
|
-
level:
|
|
2862
|
-
message:
|
|
2863
|
-
metadata:
|
|
2898
|
+
type: z22.enum(["agent", "system", "network"]),
|
|
2899
|
+
level: z22.enum(["debug", "info", "warn", "error"]),
|
|
2900
|
+
message: z22.string(),
|
|
2901
|
+
metadata: z22.record(z22.string(), z22.unknown()).optional()
|
|
2864
2902
|
});
|
|
2865
2903
|
var paginatedLogsSchema = createPaginatedResponseSchema(logEntrySchema);
|
|
2866
2904
|
var logsQuerySchema = listQuerySchema.extend({
|
|
2867
|
-
type:
|
|
2905
|
+
type: z22.enum(["agent", "system", "network", "all"]).default("all"),
|
|
2868
2906
|
since: timestampSchema.optional(),
|
|
2869
2907
|
until: timestampSchema.optional(),
|
|
2870
|
-
order:
|
|
2908
|
+
order: z22.enum(["asc", "desc"]).default("asc")
|
|
2871
2909
|
});
|
|
2872
|
-
var publicRunLogsContract =
|
|
2910
|
+
var publicRunLogsContract = c18.router({
|
|
2873
2911
|
getLogs: {
|
|
2874
2912
|
method: "GET",
|
|
2875
2913
|
path: "/v1/runs/:id/logs",
|
|
2876
2914
|
headers: authHeadersSchema,
|
|
2877
|
-
pathParams:
|
|
2878
|
-
id:
|
|
2915
|
+
pathParams: z22.object({
|
|
2916
|
+
id: z22.string().min(1, "Run ID is required")
|
|
2879
2917
|
}),
|
|
2880
2918
|
query: logsQuerySchema,
|
|
2881
2919
|
responses: {
|
|
@@ -2888,30 +2926,30 @@ var publicRunLogsContract = c17.router({
|
|
|
2888
2926
|
description: "Get unified logs for a run. Combines agent, system, and network logs."
|
|
2889
2927
|
}
|
|
2890
2928
|
});
|
|
2891
|
-
var metricPointSchema =
|
|
2929
|
+
var metricPointSchema = z22.object({
|
|
2892
2930
|
timestamp: timestampSchema,
|
|
2893
|
-
cpuPercent:
|
|
2894
|
-
memoryUsedMb:
|
|
2895
|
-
memoryTotalMb:
|
|
2896
|
-
diskUsedMb:
|
|
2897
|
-
diskTotalMb:
|
|
2898
|
-
});
|
|
2899
|
-
var metricsSummarySchema =
|
|
2900
|
-
avgCpuPercent:
|
|
2901
|
-
maxMemoryUsedMb:
|
|
2902
|
-
totalDurationMs:
|
|
2903
|
-
});
|
|
2904
|
-
var metricsResponseSchema2 =
|
|
2905
|
-
data:
|
|
2931
|
+
cpuPercent: z22.number(),
|
|
2932
|
+
memoryUsedMb: z22.number(),
|
|
2933
|
+
memoryTotalMb: z22.number(),
|
|
2934
|
+
diskUsedMb: z22.number(),
|
|
2935
|
+
diskTotalMb: z22.number()
|
|
2936
|
+
});
|
|
2937
|
+
var metricsSummarySchema = z22.object({
|
|
2938
|
+
avgCpuPercent: z22.number(),
|
|
2939
|
+
maxMemoryUsedMb: z22.number(),
|
|
2940
|
+
totalDurationMs: z22.number().nullable()
|
|
2941
|
+
});
|
|
2942
|
+
var metricsResponseSchema2 = z22.object({
|
|
2943
|
+
data: z22.array(metricPointSchema),
|
|
2906
2944
|
summary: metricsSummarySchema
|
|
2907
2945
|
});
|
|
2908
|
-
var publicRunMetricsContract =
|
|
2946
|
+
var publicRunMetricsContract = c18.router({
|
|
2909
2947
|
getMetrics: {
|
|
2910
2948
|
method: "GET",
|
|
2911
2949
|
path: "/v1/runs/:id/metrics",
|
|
2912
2950
|
headers: authHeadersSchema,
|
|
2913
|
-
pathParams:
|
|
2914
|
-
id:
|
|
2951
|
+
pathParams: z22.object({
|
|
2952
|
+
id: z22.string().min(1, "Run ID is required")
|
|
2915
2953
|
}),
|
|
2916
2954
|
responses: {
|
|
2917
2955
|
200: metricsResponseSchema2,
|
|
@@ -2923,7 +2961,7 @@ var publicRunMetricsContract = c17.router({
|
|
|
2923
2961
|
description: "Get CPU, memory, and disk metrics for a run"
|
|
2924
2962
|
}
|
|
2925
2963
|
});
|
|
2926
|
-
var sseEventTypeSchema =
|
|
2964
|
+
var sseEventTypeSchema = z22.enum([
|
|
2927
2965
|
"status",
|
|
2928
2966
|
// Run status change
|
|
2929
2967
|
"output",
|
|
@@ -2935,26 +2973,26 @@ var sseEventTypeSchema = z21.enum([
|
|
|
2935
2973
|
"heartbeat"
|
|
2936
2974
|
// Keep-alive
|
|
2937
2975
|
]);
|
|
2938
|
-
var sseEventSchema =
|
|
2976
|
+
var sseEventSchema = z22.object({
|
|
2939
2977
|
event: sseEventTypeSchema,
|
|
2940
|
-
data:
|
|
2941
|
-
id:
|
|
2978
|
+
data: z22.unknown(),
|
|
2979
|
+
id: z22.string().optional()
|
|
2942
2980
|
// For Last-Event-ID reconnection
|
|
2943
2981
|
});
|
|
2944
|
-
var publicRunEventsContract =
|
|
2982
|
+
var publicRunEventsContract = c18.router({
|
|
2945
2983
|
streamEvents: {
|
|
2946
2984
|
method: "GET",
|
|
2947
2985
|
path: "/v1/runs/:id/events",
|
|
2948
2986
|
headers: authHeadersSchema,
|
|
2949
|
-
pathParams:
|
|
2950
|
-
id:
|
|
2987
|
+
pathParams: z22.object({
|
|
2988
|
+
id: z22.string().min(1, "Run ID is required")
|
|
2951
2989
|
}),
|
|
2952
|
-
query:
|
|
2953
|
-
lastEventId:
|
|
2990
|
+
query: z22.object({
|
|
2991
|
+
lastEventId: z22.string().optional()
|
|
2954
2992
|
// For reconnection
|
|
2955
2993
|
}),
|
|
2956
2994
|
responses: {
|
|
2957
|
-
200:
|
|
2995
|
+
200: z22.any(),
|
|
2958
2996
|
// SSE stream - actual content is text/event-stream
|
|
2959
2997
|
401: publicApiErrorSchema,
|
|
2960
2998
|
404: publicApiErrorSchema,
|
|
@@ -2966,28 +3004,28 @@ var publicRunEventsContract = c17.router({
|
|
|
2966
3004
|
});
|
|
2967
3005
|
|
|
2968
3006
|
// ../../packages/core/src/contracts/public/artifacts.ts
|
|
2969
|
-
import { z as
|
|
2970
|
-
var
|
|
2971
|
-
var publicArtifactSchema =
|
|
2972
|
-
id:
|
|
2973
|
-
name:
|
|
2974
|
-
currentVersionId:
|
|
2975
|
-
size:
|
|
3007
|
+
import { z as z23 } from "zod";
|
|
3008
|
+
var c19 = initContract();
|
|
3009
|
+
var publicArtifactSchema = z23.object({
|
|
3010
|
+
id: z23.string(),
|
|
3011
|
+
name: z23.string(),
|
|
3012
|
+
currentVersionId: z23.string().nullable(),
|
|
3013
|
+
size: z23.number(),
|
|
2976
3014
|
// Total size in bytes
|
|
2977
|
-
fileCount:
|
|
3015
|
+
fileCount: z23.number(),
|
|
2978
3016
|
createdAt: timestampSchema,
|
|
2979
3017
|
updatedAt: timestampSchema
|
|
2980
3018
|
});
|
|
2981
|
-
var artifactVersionSchema =
|
|
2982
|
-
id:
|
|
3019
|
+
var artifactVersionSchema = z23.object({
|
|
3020
|
+
id: z23.string(),
|
|
2983
3021
|
// SHA-256 content hash
|
|
2984
|
-
artifactId:
|
|
2985
|
-
size:
|
|
3022
|
+
artifactId: z23.string(),
|
|
3023
|
+
size: z23.number(),
|
|
2986
3024
|
// Size in bytes
|
|
2987
|
-
fileCount:
|
|
2988
|
-
message:
|
|
3025
|
+
fileCount: z23.number(),
|
|
3026
|
+
message: z23.string().nullable(),
|
|
2989
3027
|
// Optional commit message
|
|
2990
|
-
createdBy:
|
|
3028
|
+
createdBy: z23.string(),
|
|
2991
3029
|
createdAt: timestampSchema
|
|
2992
3030
|
});
|
|
2993
3031
|
var publicArtifactDetailSchema = publicArtifactSchema.extend({
|
|
@@ -2997,7 +3035,7 @@ var paginatedArtifactsSchema = createPaginatedResponseSchema(publicArtifactSchem
|
|
|
2997
3035
|
var paginatedArtifactVersionsSchema = createPaginatedResponseSchema(
|
|
2998
3036
|
artifactVersionSchema
|
|
2999
3037
|
);
|
|
3000
|
-
var publicArtifactsListContract =
|
|
3038
|
+
var publicArtifactsListContract = c19.router({
|
|
3001
3039
|
list: {
|
|
3002
3040
|
method: "GET",
|
|
3003
3041
|
path: "/v1/artifacts",
|
|
@@ -3012,13 +3050,13 @@ var publicArtifactsListContract = c18.router({
|
|
|
3012
3050
|
description: "List all artifacts in the current scope with pagination"
|
|
3013
3051
|
}
|
|
3014
3052
|
});
|
|
3015
|
-
var publicArtifactByIdContract =
|
|
3053
|
+
var publicArtifactByIdContract = c19.router({
|
|
3016
3054
|
get: {
|
|
3017
3055
|
method: "GET",
|
|
3018
3056
|
path: "/v1/artifacts/:id",
|
|
3019
3057
|
headers: authHeadersSchema,
|
|
3020
|
-
pathParams:
|
|
3021
|
-
id:
|
|
3058
|
+
pathParams: z23.object({
|
|
3059
|
+
id: z23.string().min(1, "Artifact ID is required")
|
|
3022
3060
|
}),
|
|
3023
3061
|
responses: {
|
|
3024
3062
|
200: publicArtifactDetailSchema,
|
|
@@ -3030,13 +3068,13 @@ var publicArtifactByIdContract = c18.router({
|
|
|
3030
3068
|
description: "Get artifact details by ID"
|
|
3031
3069
|
}
|
|
3032
3070
|
});
|
|
3033
|
-
var publicArtifactVersionsContract =
|
|
3071
|
+
var publicArtifactVersionsContract = c19.router({
|
|
3034
3072
|
list: {
|
|
3035
3073
|
method: "GET",
|
|
3036
3074
|
path: "/v1/artifacts/:id/versions",
|
|
3037
3075
|
headers: authHeadersSchema,
|
|
3038
|
-
pathParams:
|
|
3039
|
-
id:
|
|
3076
|
+
pathParams: z23.object({
|
|
3077
|
+
id: z23.string().min(1, "Artifact ID is required")
|
|
3040
3078
|
}),
|
|
3041
3079
|
query: listQuerySchema,
|
|
3042
3080
|
responses: {
|
|
@@ -3049,20 +3087,20 @@ var publicArtifactVersionsContract = c18.router({
|
|
|
3049
3087
|
description: "List all versions of an artifact with pagination"
|
|
3050
3088
|
}
|
|
3051
3089
|
});
|
|
3052
|
-
var publicArtifactDownloadContract =
|
|
3090
|
+
var publicArtifactDownloadContract = c19.router({
|
|
3053
3091
|
download: {
|
|
3054
3092
|
method: "GET",
|
|
3055
3093
|
path: "/v1/artifacts/:id/download",
|
|
3056
3094
|
headers: authHeadersSchema,
|
|
3057
|
-
pathParams:
|
|
3058
|
-
id:
|
|
3095
|
+
pathParams: z23.object({
|
|
3096
|
+
id: z23.string().min(1, "Artifact ID is required")
|
|
3059
3097
|
}),
|
|
3060
|
-
query:
|
|
3061
|
-
versionId:
|
|
3098
|
+
query: z23.object({
|
|
3099
|
+
versionId: z23.string().optional()
|
|
3062
3100
|
// Defaults to current version
|
|
3063
3101
|
}),
|
|
3064
3102
|
responses: {
|
|
3065
|
-
302:
|
|
3103
|
+
302: z23.undefined(),
|
|
3066
3104
|
// Redirect to presigned URL
|
|
3067
3105
|
401: publicApiErrorSchema,
|
|
3068
3106
|
404: publicApiErrorSchema,
|
|
@@ -3074,28 +3112,28 @@ var publicArtifactDownloadContract = c18.router({
|
|
|
3074
3112
|
});
|
|
3075
3113
|
|
|
3076
3114
|
// ../../packages/core/src/contracts/public/volumes.ts
|
|
3077
|
-
import { z as
|
|
3078
|
-
var
|
|
3079
|
-
var publicVolumeSchema =
|
|
3080
|
-
id:
|
|
3081
|
-
name:
|
|
3082
|
-
currentVersionId:
|
|
3083
|
-
size:
|
|
3115
|
+
import { z as z24 } from "zod";
|
|
3116
|
+
var c20 = initContract();
|
|
3117
|
+
var publicVolumeSchema = z24.object({
|
|
3118
|
+
id: z24.string(),
|
|
3119
|
+
name: z24.string(),
|
|
3120
|
+
currentVersionId: z24.string().nullable(),
|
|
3121
|
+
size: z24.number(),
|
|
3084
3122
|
// Total size in bytes
|
|
3085
|
-
fileCount:
|
|
3123
|
+
fileCount: z24.number(),
|
|
3086
3124
|
createdAt: timestampSchema,
|
|
3087
3125
|
updatedAt: timestampSchema
|
|
3088
3126
|
});
|
|
3089
|
-
var volumeVersionSchema =
|
|
3090
|
-
id:
|
|
3127
|
+
var volumeVersionSchema = z24.object({
|
|
3128
|
+
id: z24.string(),
|
|
3091
3129
|
// SHA-256 content hash
|
|
3092
|
-
volumeId:
|
|
3093
|
-
size:
|
|
3130
|
+
volumeId: z24.string(),
|
|
3131
|
+
size: z24.number(),
|
|
3094
3132
|
// Size in bytes
|
|
3095
|
-
fileCount:
|
|
3096
|
-
message:
|
|
3133
|
+
fileCount: z24.number(),
|
|
3134
|
+
message: z24.string().nullable(),
|
|
3097
3135
|
// Optional commit message
|
|
3098
|
-
createdBy:
|
|
3136
|
+
createdBy: z24.string(),
|
|
3099
3137
|
createdAt: timestampSchema
|
|
3100
3138
|
});
|
|
3101
3139
|
var publicVolumeDetailSchema = publicVolumeSchema.extend({
|
|
@@ -3103,7 +3141,7 @@ var publicVolumeDetailSchema = publicVolumeSchema.extend({
|
|
|
3103
3141
|
});
|
|
3104
3142
|
var paginatedVolumesSchema = createPaginatedResponseSchema(publicVolumeSchema);
|
|
3105
3143
|
var paginatedVolumeVersionsSchema = createPaginatedResponseSchema(volumeVersionSchema);
|
|
3106
|
-
var publicVolumesListContract =
|
|
3144
|
+
var publicVolumesListContract = c20.router({
|
|
3107
3145
|
list: {
|
|
3108
3146
|
method: "GET",
|
|
3109
3147
|
path: "/v1/volumes",
|
|
@@ -3118,13 +3156,13 @@ var publicVolumesListContract = c19.router({
|
|
|
3118
3156
|
description: "List all volumes in the current scope with pagination"
|
|
3119
3157
|
}
|
|
3120
3158
|
});
|
|
3121
|
-
var publicVolumeByIdContract =
|
|
3159
|
+
var publicVolumeByIdContract = c20.router({
|
|
3122
3160
|
get: {
|
|
3123
3161
|
method: "GET",
|
|
3124
3162
|
path: "/v1/volumes/:id",
|
|
3125
3163
|
headers: authHeadersSchema,
|
|
3126
|
-
pathParams:
|
|
3127
|
-
id:
|
|
3164
|
+
pathParams: z24.object({
|
|
3165
|
+
id: z24.string().min(1, "Volume ID is required")
|
|
3128
3166
|
}),
|
|
3129
3167
|
responses: {
|
|
3130
3168
|
200: publicVolumeDetailSchema,
|
|
@@ -3136,13 +3174,13 @@ var publicVolumeByIdContract = c19.router({
|
|
|
3136
3174
|
description: "Get volume details by ID"
|
|
3137
3175
|
}
|
|
3138
3176
|
});
|
|
3139
|
-
var publicVolumeVersionsContract =
|
|
3177
|
+
var publicVolumeVersionsContract = c20.router({
|
|
3140
3178
|
list: {
|
|
3141
3179
|
method: "GET",
|
|
3142
3180
|
path: "/v1/volumes/:id/versions",
|
|
3143
3181
|
headers: authHeadersSchema,
|
|
3144
|
-
pathParams:
|
|
3145
|
-
id:
|
|
3182
|
+
pathParams: z24.object({
|
|
3183
|
+
id: z24.string().min(1, "Volume ID is required")
|
|
3146
3184
|
}),
|
|
3147
3185
|
query: listQuerySchema,
|
|
3148
3186
|
responses: {
|
|
@@ -3155,20 +3193,20 @@ var publicVolumeVersionsContract = c19.router({
|
|
|
3155
3193
|
description: "List all versions of a volume with pagination"
|
|
3156
3194
|
}
|
|
3157
3195
|
});
|
|
3158
|
-
var publicVolumeDownloadContract =
|
|
3196
|
+
var publicVolumeDownloadContract = c20.router({
|
|
3159
3197
|
download: {
|
|
3160
3198
|
method: "GET",
|
|
3161
3199
|
path: "/v1/volumes/:id/download",
|
|
3162
3200
|
headers: authHeadersSchema,
|
|
3163
|
-
pathParams:
|
|
3164
|
-
id:
|
|
3201
|
+
pathParams: z24.object({
|
|
3202
|
+
id: z24.string().min(1, "Volume ID is required")
|
|
3165
3203
|
}),
|
|
3166
|
-
query:
|
|
3167
|
-
versionId:
|
|
3204
|
+
query: z24.object({
|
|
3205
|
+
versionId: z24.string().optional()
|
|
3168
3206
|
// Defaults to current version
|
|
3169
3207
|
}),
|
|
3170
3208
|
responses: {
|
|
3171
|
-
302:
|
|
3209
|
+
302: z24.undefined(),
|
|
3172
3210
|
// Redirect to presigned URL
|
|
3173
3211
|
401: publicApiErrorSchema,
|
|
3174
3212
|
404: publicApiErrorSchema,
|
|
@@ -3789,8 +3827,8 @@ async function getUsage(options) {
|
|
|
3789
3827
|
}
|
|
3790
3828
|
|
|
3791
3829
|
// src/lib/domain/yaml-validator.ts
|
|
3792
|
-
import { z as
|
|
3793
|
-
var cliAgentNameSchema =
|
|
3830
|
+
import { z as z25 } from "zod";
|
|
3831
|
+
var cliAgentNameSchema = z25.string().min(3, "Agent name must be at least 3 characters").max(64, "Agent name must be 64 characters or less").regex(
|
|
3794
3832
|
/^[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?$/,
|
|
3795
3833
|
"Agent name must start and end with letter or number, and contain only letters, numbers, and hyphens"
|
|
3796
3834
|
);
|
|
@@ -3805,7 +3843,7 @@ var cliAgentDefinitionSchema = agentDefinitionSchema.superRefine(
|
|
|
3805
3843
|
const skillUrl = agent.skills[i];
|
|
3806
3844
|
if (skillUrl && !validateGitHubTreeUrl(skillUrl)) {
|
|
3807
3845
|
ctx.addIssue({
|
|
3808
|
-
code:
|
|
3846
|
+
code: z25.ZodIssueCode.custom,
|
|
3809
3847
|
message: `Invalid skill URL: ${skillUrl}. Expected format: https://github.com/{owner}/{repo}/tree/{branch}/{path}`,
|
|
3810
3848
|
path: ["skills", i]
|
|
3811
3849
|
});
|
|
@@ -3814,15 +3852,15 @@ var cliAgentDefinitionSchema = agentDefinitionSchema.superRefine(
|
|
|
3814
3852
|
}
|
|
3815
3853
|
}
|
|
3816
3854
|
);
|
|
3817
|
-
var cliComposeSchema =
|
|
3818
|
-
version:
|
|
3819
|
-
agents:
|
|
3820
|
-
volumes:
|
|
3855
|
+
var cliComposeSchema = z25.object({
|
|
3856
|
+
version: z25.string().min(1, "Missing config.version"),
|
|
3857
|
+
agents: z25.record(cliAgentNameSchema, cliAgentDefinitionSchema),
|
|
3858
|
+
volumes: z25.record(z25.string(), volumeConfigSchema).optional()
|
|
3821
3859
|
}).superRefine((config, ctx) => {
|
|
3822
3860
|
const agentKeys = Object.keys(config.agents);
|
|
3823
3861
|
if (agentKeys.length === 0) {
|
|
3824
3862
|
ctx.addIssue({
|
|
3825
|
-
code:
|
|
3863
|
+
code: z25.ZodIssueCode.custom,
|
|
3826
3864
|
message: "agents must have at least one agent defined",
|
|
3827
3865
|
path: ["agents"]
|
|
3828
3866
|
});
|
|
@@ -3830,7 +3868,7 @@ var cliComposeSchema = z24.object({
|
|
|
3830
3868
|
}
|
|
3831
3869
|
if (agentKeys.length > 1) {
|
|
3832
3870
|
ctx.addIssue({
|
|
3833
|
-
code:
|
|
3871
|
+
code: z25.ZodIssueCode.custom,
|
|
3834
3872
|
message: "Multiple agents not supported yet. Only one agent allowed.",
|
|
3835
3873
|
path: ["agents"]
|
|
3836
3874
|
});
|
|
@@ -3842,7 +3880,7 @@ var cliComposeSchema = z24.object({
|
|
|
3842
3880
|
if (agentVolumes && agentVolumes.length > 0) {
|
|
3843
3881
|
if (!config.volumes) {
|
|
3844
3882
|
ctx.addIssue({
|
|
3845
|
-
code:
|
|
3883
|
+
code: z25.ZodIssueCode.custom,
|
|
3846
3884
|
message: "Agent references volumes but no volumes section defined. Each volume must have explicit name and version.",
|
|
3847
3885
|
path: ["volumes"]
|
|
3848
3886
|
});
|
|
@@ -3852,7 +3890,7 @@ var cliComposeSchema = z24.object({
|
|
|
3852
3890
|
const parts = volDeclaration.split(":");
|
|
3853
3891
|
if (parts.length !== 2) {
|
|
3854
3892
|
ctx.addIssue({
|
|
3855
|
-
code:
|
|
3893
|
+
code: z25.ZodIssueCode.custom,
|
|
3856
3894
|
message: `Invalid volume declaration: ${volDeclaration}. Expected format: volume-key:/mount/path`,
|
|
3857
3895
|
path: ["agents", agentName, "volumes"]
|
|
3858
3896
|
});
|
|
@@ -3861,7 +3899,7 @@ var cliComposeSchema = z24.object({
|
|
|
3861
3899
|
const volumeKey = parts[0].trim();
|
|
3862
3900
|
if (!config.volumes[volumeKey]) {
|
|
3863
3901
|
ctx.addIssue({
|
|
3864
|
-
code:
|
|
3902
|
+
code: z25.ZodIssueCode.custom,
|
|
3865
3903
|
message: `Volume "${volumeKey}" is not defined in volumes section. Each volume must have explicit name and version.`,
|
|
3866
3904
|
path: ["volumes", volumeKey]
|
|
3867
3905
|
});
|
|
@@ -4895,7 +4933,7 @@ var composeCommand = new Command7().name("compose").description("Create or updat
|
|
|
4895
4933
|
)
|
|
4896
4934
|
);
|
|
4897
4935
|
if (options.autoUpdate !== false) {
|
|
4898
|
-
await silentUpgradeAfterCommand("9.14.
|
|
4936
|
+
await silentUpgradeAfterCommand("9.14.1");
|
|
4899
4937
|
}
|
|
4900
4938
|
} catch (error) {
|
|
4901
4939
|
if (error instanceof Error) {
|
|
@@ -5650,9 +5688,9 @@ var CodexEventParser = class {
|
|
|
5650
5688
|
}
|
|
5651
5689
|
}
|
|
5652
5690
|
if (itemType === "file_change" && item.changes && item.changes.length > 0) {
|
|
5653
|
-
const changes = item.changes.map((
|
|
5654
|
-
const action =
|
|
5655
|
-
return `${action}: ${
|
|
5691
|
+
const changes = item.changes.map((c21) => {
|
|
5692
|
+
const action = c21.kind === "add" ? "Created" : c21.kind === "modify" ? "Modified" : "Deleted";
|
|
5693
|
+
return `${action}: ${c21.path}`;
|
|
5656
5694
|
}).join("\n");
|
|
5657
5695
|
return {
|
|
5658
5696
|
type: "text",
|
|
@@ -5806,9 +5844,9 @@ var CodexEventRenderer = class {
|
|
|
5806
5844
|
return;
|
|
5807
5845
|
}
|
|
5808
5846
|
if (itemType === "file_change" && item.changes && item.changes.length > 0) {
|
|
5809
|
-
const summary = item.changes.map((
|
|
5810
|
-
const icon =
|
|
5811
|
-
return `${icon}${
|
|
5847
|
+
const summary = item.changes.map((c21) => {
|
|
5848
|
+
const icon = c21.kind === "add" ? "+" : c21.kind === "delete" ? "-" : "~";
|
|
5849
|
+
return `${icon}${c21.path}`;
|
|
5812
5850
|
}).join(", ");
|
|
5813
5851
|
console.log(chalk7.green("[files]") + ` ${summary}`);
|
|
5814
5852
|
return;
|
|
@@ -7126,7 +7164,7 @@ var mainRunCommand = new Command8().name("run").description("Run an agent").argu
|
|
|
7126
7164
|
}
|
|
7127
7165
|
showNextSteps(result);
|
|
7128
7166
|
if (options.autoUpdate !== false) {
|
|
7129
|
-
await silentUpgradeAfterCommand("9.14.
|
|
7167
|
+
await silentUpgradeAfterCommand("9.14.1");
|
|
7130
7168
|
}
|
|
7131
7169
|
} catch (error) {
|
|
7132
7170
|
handleRunError(error, identifier);
|
|
@@ -8631,8 +8669,8 @@ var cookAction = new Command27().name("cook").description("Quick start: prepare,
|
|
|
8631
8669
|
"Load environment variables from file (priority: CLI flags > file > env vars)"
|
|
8632
8670
|
).option("-y, --yes", "Skip confirmation prompts").option("-v, --verbose", "Show full tool inputs and outputs").addOption(new Option5("--debug-no-mock-claude").hideHelp()).addOption(new Option5("--no-auto-update").hideHelp()).action(
|
|
8633
8671
|
async (prompt, options) => {
|
|
8634
|
-
if (
|
|
8635
|
-
const shouldExit = await checkAndUpgrade("9.14.
|
|
8672
|
+
if (options.autoUpdate !== false) {
|
|
8673
|
+
const shouldExit = await checkAndUpgrade("9.14.1", prompt);
|
|
8636
8674
|
if (shouldExit) {
|
|
8637
8675
|
process.exit(0);
|
|
8638
8676
|
}
|
|
@@ -9346,7 +9384,7 @@ var listCommand4 = new Command36().name("list").alias("ls").description("List al
|
|
|
9346
9384
|
);
|
|
9347
9385
|
return;
|
|
9348
9386
|
}
|
|
9349
|
-
const nameWidth = Math.max(4, ...data.composes.map((
|
|
9387
|
+
const nameWidth = Math.max(4, ...data.composes.map((c21) => c21.name.length));
|
|
9350
9388
|
const header = ["NAME".padEnd(nameWidth), "VERSION", "UPDATED"].join(
|
|
9351
9389
|
" "
|
|
9352
9390
|
);
|
|
@@ -10128,7 +10166,7 @@ async function gatherFrequency(optionFrequency, existingFrequency) {
|
|
|
10128
10166
|
);
|
|
10129
10167
|
process.exit(1);
|
|
10130
10168
|
}
|
|
10131
|
-
const defaultIndex = existingFrequency ? FREQUENCY_CHOICES.findIndex((
|
|
10169
|
+
const defaultIndex = existingFrequency ? FREQUENCY_CHOICES.findIndex((c21) => c21.value === existingFrequency) : 0;
|
|
10132
10170
|
frequency = await promptSelect(
|
|
10133
10171
|
"Schedule frequency",
|
|
10134
10172
|
FREQUENCY_CHOICES,
|
|
@@ -10157,7 +10195,7 @@ async function gatherDay(frequency, optionDay, existingDay) {
|
|
|
10157
10195
|
process.exit(1);
|
|
10158
10196
|
}
|
|
10159
10197
|
if (frequency === "weekly") {
|
|
10160
|
-
const defaultDayIndex = existingDay !== void 0 ? DAY_OF_WEEK_CHOICES.findIndex((
|
|
10198
|
+
const defaultDayIndex = existingDay !== void 0 ? DAY_OF_WEEK_CHOICES.findIndex((c21) => c21.value === existingDay) : 0;
|
|
10161
10199
|
const day2 = await promptSelect(
|
|
10162
10200
|
"Day of week",
|
|
10163
10201
|
DAY_OF_WEEK_CHOICES,
|
|
@@ -11925,16 +11963,16 @@ async function handleModelProvider(ctx) {
|
|
|
11925
11963
|
const providerType = await step.prompt(
|
|
11926
11964
|
() => promptSelect(
|
|
11927
11965
|
"Select provider type:",
|
|
11928
|
-
choices.map((
|
|
11929
|
-
title:
|
|
11930
|
-
value:
|
|
11966
|
+
choices.map((c21) => ({
|
|
11967
|
+
title: c21.label,
|
|
11968
|
+
value: c21.type
|
|
11931
11969
|
}))
|
|
11932
11970
|
)
|
|
11933
11971
|
);
|
|
11934
11972
|
if (!providerType) {
|
|
11935
11973
|
process.exit(0);
|
|
11936
11974
|
}
|
|
11937
|
-
const selectedChoice = choices.find((
|
|
11975
|
+
const selectedChoice = choices.find((c21) => c21.type === providerType);
|
|
11938
11976
|
if (selectedChoice?.helpText) {
|
|
11939
11977
|
for (const line of selectedChoice.helpText.split("\n")) {
|
|
11940
11978
|
step.detail(chalk58.dim(line));
|
|
@@ -12124,7 +12162,7 @@ var setupClaudeCommand = new Command58().name("setup-claude").description("Insta
|
|
|
12124
12162
|
|
|
12125
12163
|
// src/index.ts
|
|
12126
12164
|
var program = new Command59();
|
|
12127
|
-
program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.14.
|
|
12165
|
+
program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.14.1");
|
|
12128
12166
|
program.addCommand(authCommand);
|
|
12129
12167
|
program.addCommand(infoCommand);
|
|
12130
12168
|
program.addCommand(composeCommand);
|