@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.
Files changed (2) hide show
  1. package/index.js +213 -175
  2. 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/public/agents.ts
2654
+ // ../../packages/core/src/contracts/llm.ts
2655
2655
  import { z as z20 } from "zod";
2656
2656
  var c16 = initContract();
2657
- var publicAgentSchema = z20.object({
2658
- id: z20.string(),
2659
- name: z20.string(),
2660
- currentVersionId: z20.string().nullable(),
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 = z20.object({
2665
- id: z20.string(),
2666
- agentId: z20.string(),
2667
- versionNumber: z20.number(),
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: z20.string().optional()
2712
+ name: z21.string().optional()
2675
2713
  });
2676
- var publicAgentsListContract = c16.router({
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 = c16.router({
2729
+ var publicAgentByIdContract = c17.router({
2692
2730
  get: {
2693
2731
  method: "GET",
2694
2732
  path: "/v1/agents/:id",
2695
2733
  headers: authHeadersSchema,
2696
- pathParams: z20.object({
2697
- id: z20.string().min(1, "Agent ID is required")
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 = c16.router({
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: z20.object({
2715
- id: z20.string().min(1, "Agent ID is required")
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 z21 } from "zod";
2731
- var c17 = initContract();
2732
- var publicRunStatusSchema = z21.enum([
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 = z21.object({
2741
- id: z21.string(),
2742
- agentId: z21.string(),
2743
- agentName: z21.string(),
2778
+ var publicRunSchema = z22.object({
2779
+ id: z22.string(),
2780
+ agentId: z22.string(),
2781
+ agentName: z22.string(),
2744
2782
  status: publicRunStatusSchema,
2745
- prompt: z21.string(),
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: z21.string().nullable(),
2752
- executionTimeMs: z21.number().nullable(),
2753
- checkpointId: z21.string().nullable(),
2754
- sessionId: z21.string().nullable(),
2755
- artifactName: z21.string().nullable(),
2756
- artifactVersion: z21.string().nullable(),
2757
- volumes: z21.record(z21.string(), z21.string()).optional()
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 = z21.object({
2798
+ var createRunRequestSchema = z22.object({
2761
2799
  // Agent identification (one of: agent, agentId, sessionId, checkpointId)
2762
- agent: z21.string().optional(),
2800
+ agent: z22.string().optional(),
2763
2801
  // Agent name
2764
- agentId: z21.string().optional(),
2802
+ agentId: z22.string().optional(),
2765
2803
  // Agent ID
2766
- agentVersion: z21.string().optional(),
2804
+ agentVersion: z22.string().optional(),
2767
2805
  // Version specifier (e.g., "latest", "v1", specific ID)
2768
2806
  // Continue session
2769
- sessionId: z21.string().optional(),
2807
+ sessionId: z22.string().optional(),
2770
2808
  // Resume from checkpoint
2771
- checkpointId: z21.string().optional(),
2809
+ checkpointId: z22.string().optional(),
2772
2810
  // Required
2773
- prompt: z21.string().min(1, "Prompt is required"),
2811
+ prompt: z22.string().min(1, "Prompt is required"),
2774
2812
  // Optional configuration
2775
- variables: z21.record(z21.string(), z21.string()).optional(),
2776
- secrets: z21.record(z21.string(), z21.string()).optional(),
2777
- artifactName: z21.string().optional(),
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: z21.string().optional(),
2817
+ artifactVersion: z22.string().optional(),
2780
2818
  // Artifact version (defaults to latest)
2781
- volumes: z21.record(z21.string(), z21.string()).optional()
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 = c17.router({
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 = c17.router({
2857
+ var publicRunByIdContract = c18.router({
2820
2858
  get: {
2821
2859
  method: "GET",
2822
2860
  path: "/v1/runs/:id",
2823
2861
  headers: authHeadersSchema,
2824
- pathParams: z21.object({
2825
- id: z21.string().min(1, "Run ID is required")
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 = c17.router({
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: z21.object({
2843
- id: z21.string().min(1, "Run ID is required")
2880
+ pathParams: z22.object({
2881
+ id: z22.string().min(1, "Run ID is required")
2844
2882
  }),
2845
- body: z21.undefined(),
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 = z21.object({
2896
+ var logEntrySchema = z22.object({
2859
2897
  timestamp: timestampSchema,
2860
- type: z21.enum(["agent", "system", "network"]),
2861
- level: z21.enum(["debug", "info", "warn", "error"]),
2862
- message: z21.string(),
2863
- metadata: z21.record(z21.string(), z21.unknown()).optional()
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: z21.enum(["agent", "system", "network", "all"]).default("all"),
2905
+ type: z22.enum(["agent", "system", "network", "all"]).default("all"),
2868
2906
  since: timestampSchema.optional(),
2869
2907
  until: timestampSchema.optional(),
2870
- order: z21.enum(["asc", "desc"]).default("asc")
2908
+ order: z22.enum(["asc", "desc"]).default("asc")
2871
2909
  });
2872
- var publicRunLogsContract = c17.router({
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: z21.object({
2878
- id: z21.string().min(1, "Run ID is required")
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 = z21.object({
2929
+ var metricPointSchema = z22.object({
2892
2930
  timestamp: timestampSchema,
2893
- cpuPercent: z21.number(),
2894
- memoryUsedMb: z21.number(),
2895
- memoryTotalMb: z21.number(),
2896
- diskUsedMb: z21.number(),
2897
- diskTotalMb: z21.number()
2898
- });
2899
- var metricsSummarySchema = z21.object({
2900
- avgCpuPercent: z21.number(),
2901
- maxMemoryUsedMb: z21.number(),
2902
- totalDurationMs: z21.number().nullable()
2903
- });
2904
- var metricsResponseSchema2 = z21.object({
2905
- data: z21.array(metricPointSchema),
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 = c17.router({
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: z21.object({
2914
- id: z21.string().min(1, "Run ID is required")
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 = z21.enum([
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 = z21.object({
2976
+ var sseEventSchema = z22.object({
2939
2977
  event: sseEventTypeSchema,
2940
- data: z21.unknown(),
2941
- id: z21.string().optional()
2978
+ data: z22.unknown(),
2979
+ id: z22.string().optional()
2942
2980
  // For Last-Event-ID reconnection
2943
2981
  });
2944
- var publicRunEventsContract = c17.router({
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: z21.object({
2950
- id: z21.string().min(1, "Run ID is required")
2987
+ pathParams: z22.object({
2988
+ id: z22.string().min(1, "Run ID is required")
2951
2989
  }),
2952
- query: z21.object({
2953
- lastEventId: z21.string().optional()
2990
+ query: z22.object({
2991
+ lastEventId: z22.string().optional()
2954
2992
  // For reconnection
2955
2993
  }),
2956
2994
  responses: {
2957
- 200: z21.any(),
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 z22 } from "zod";
2970
- var c18 = initContract();
2971
- var publicArtifactSchema = z22.object({
2972
- id: z22.string(),
2973
- name: z22.string(),
2974
- currentVersionId: z22.string().nullable(),
2975
- size: z22.number(),
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: z22.number(),
3015
+ fileCount: z23.number(),
2978
3016
  createdAt: timestampSchema,
2979
3017
  updatedAt: timestampSchema
2980
3018
  });
2981
- var artifactVersionSchema = z22.object({
2982
- id: z22.string(),
3019
+ var artifactVersionSchema = z23.object({
3020
+ id: z23.string(),
2983
3021
  // SHA-256 content hash
2984
- artifactId: z22.string(),
2985
- size: z22.number(),
3022
+ artifactId: z23.string(),
3023
+ size: z23.number(),
2986
3024
  // Size in bytes
2987
- fileCount: z22.number(),
2988
- message: z22.string().nullable(),
3025
+ fileCount: z23.number(),
3026
+ message: z23.string().nullable(),
2989
3027
  // Optional commit message
2990
- createdBy: z22.string(),
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 = c18.router({
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 = c18.router({
3053
+ var publicArtifactByIdContract = c19.router({
3016
3054
  get: {
3017
3055
  method: "GET",
3018
3056
  path: "/v1/artifacts/:id",
3019
3057
  headers: authHeadersSchema,
3020
- pathParams: z22.object({
3021
- id: z22.string().min(1, "Artifact ID is required")
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 = c18.router({
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: z22.object({
3039
- id: z22.string().min(1, "Artifact ID is required")
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 = c18.router({
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: z22.object({
3058
- id: z22.string().min(1, "Artifact ID is required")
3095
+ pathParams: z23.object({
3096
+ id: z23.string().min(1, "Artifact ID is required")
3059
3097
  }),
3060
- query: z22.object({
3061
- versionId: z22.string().optional()
3098
+ query: z23.object({
3099
+ versionId: z23.string().optional()
3062
3100
  // Defaults to current version
3063
3101
  }),
3064
3102
  responses: {
3065
- 302: z22.undefined(),
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 z23 } from "zod";
3078
- var c19 = initContract();
3079
- var publicVolumeSchema = z23.object({
3080
- id: z23.string(),
3081
- name: z23.string(),
3082
- currentVersionId: z23.string().nullable(),
3083
- size: z23.number(),
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: z23.number(),
3123
+ fileCount: z24.number(),
3086
3124
  createdAt: timestampSchema,
3087
3125
  updatedAt: timestampSchema
3088
3126
  });
3089
- var volumeVersionSchema = z23.object({
3090
- id: z23.string(),
3127
+ var volumeVersionSchema = z24.object({
3128
+ id: z24.string(),
3091
3129
  // SHA-256 content hash
3092
- volumeId: z23.string(),
3093
- size: z23.number(),
3130
+ volumeId: z24.string(),
3131
+ size: z24.number(),
3094
3132
  // Size in bytes
3095
- fileCount: z23.number(),
3096
- message: z23.string().nullable(),
3133
+ fileCount: z24.number(),
3134
+ message: z24.string().nullable(),
3097
3135
  // Optional commit message
3098
- createdBy: z23.string(),
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 = c19.router({
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 = c19.router({
3159
+ var publicVolumeByIdContract = c20.router({
3122
3160
  get: {
3123
3161
  method: "GET",
3124
3162
  path: "/v1/volumes/:id",
3125
3163
  headers: authHeadersSchema,
3126
- pathParams: z23.object({
3127
- id: z23.string().min(1, "Volume ID is required")
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 = c19.router({
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: z23.object({
3145
- id: z23.string().min(1, "Volume ID is required")
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 = c19.router({
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: z23.object({
3164
- id: z23.string().min(1, "Volume ID is required")
3201
+ pathParams: z24.object({
3202
+ id: z24.string().min(1, "Volume ID is required")
3165
3203
  }),
3166
- query: z23.object({
3167
- versionId: z23.string().optional()
3204
+ query: z24.object({
3205
+ versionId: z24.string().optional()
3168
3206
  // Defaults to current version
3169
3207
  }),
3170
3208
  responses: {
3171
- 302: z23.undefined(),
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 z24 } from "zod";
3793
- var cliAgentNameSchema = z24.string().min(3, "Agent name must be at least 3 characters").max(64, "Agent name must be 64 characters or less").regex(
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: z24.ZodIssueCode.custom,
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 = z24.object({
3818
- version: z24.string().min(1, "Missing config.version"),
3819
- agents: z24.record(cliAgentNameSchema, cliAgentDefinitionSchema),
3820
- volumes: z24.record(z24.string(), volumeConfigSchema).optional()
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: z24.ZodIssueCode.custom,
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: z24.ZodIssueCode.custom,
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: z24.ZodIssueCode.custom,
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: z24.ZodIssueCode.custom,
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: z24.ZodIssueCode.custom,
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.0");
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((c20) => {
5654
- const action = c20.kind === "add" ? "Created" : c20.kind === "modify" ? "Modified" : "Deleted";
5655
- return `${action}: ${c20.path}`;
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((c20) => {
5810
- const icon = c20.kind === "add" ? "+" : c20.kind === "delete" ? "-" : "~";
5811
- return `${icon}${c20.path}`;
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.0");
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 (!options.noAutoUpdate) {
8635
- const shouldExit = await checkAndUpgrade("9.14.0", prompt);
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((c20) => c20.name.length));
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((c20) => c20.value === existingFrequency) : 0;
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((c20) => c20.value === existingDay) : 0;
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((c20) => ({
11929
- title: c20.label,
11930
- value: c20.type
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((c20) => c20.type === providerType);
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.0");
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vm0/cli",
3
- "version": "9.14.0",
3
+ "version": "9.14.1",
4
4
  "description": "CLI application",
5
5
  "repository": {
6
6
  "type": "git",