@vm0/cli 9.65.1 → 9.66.0
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 +101 -267
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -45,7 +45,7 @@ if (DSN) {
|
|
|
45
45
|
Sentry.init({
|
|
46
46
|
dsn: DSN,
|
|
47
47
|
environment: process.env.SENTRY_ENVIRONMENT ?? "production",
|
|
48
|
-
release: "9.
|
|
48
|
+
release: "9.66.0",
|
|
49
49
|
sendDefaultPii: false,
|
|
50
50
|
tracesSampleRate: 0,
|
|
51
51
|
shutdownTimeout: 500,
|
|
@@ -64,7 +64,7 @@ if (DSN) {
|
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
66
|
Sentry.setContext("cli", {
|
|
67
|
-
version: "9.
|
|
67
|
+
version: "9.66.0",
|
|
68
68
|
command: process.argv.slice(2).join(" ")
|
|
69
69
|
});
|
|
70
70
|
Sentry.setContext("runtime", {
|
|
@@ -675,7 +675,7 @@ function getConfigPath() {
|
|
|
675
675
|
return join2(homedir2(), ".vm0", "config.json");
|
|
676
676
|
}
|
|
677
677
|
var infoCommand = new Command6().name("info").description("Display environment and debug information").action(async () => {
|
|
678
|
-
console.log(chalk4.bold(`VM0 CLI v${"9.
|
|
678
|
+
console.log(chalk4.bold(`VM0 CLI v${"9.66.0"}`));
|
|
679
679
|
console.log();
|
|
680
680
|
const config = await loadConfig();
|
|
681
681
|
const hasEnvToken = !!process.env.VM0_TOKEN;
|
|
@@ -902,17 +902,7 @@ var agentDefinitionSchema = z4.object({
|
|
|
902
902
|
displayName: z4.string().optional(),
|
|
903
903
|
description: z4.string().optional(),
|
|
904
904
|
sound: z4.string().optional()
|
|
905
|
-
}).optional()
|
|
906
|
-
/**
|
|
907
|
-
* @deprecated Server-resolved field. User input is ignored.
|
|
908
|
-
* @internal
|
|
909
|
-
*/
|
|
910
|
-
image: z4.string().optional(),
|
|
911
|
-
/**
|
|
912
|
-
* @deprecated Server-resolved field. User input is ignored.
|
|
913
|
-
* @internal
|
|
914
|
-
*/
|
|
915
|
-
working_dir: z4.string().optional()
|
|
905
|
+
}).optional()
|
|
916
906
|
});
|
|
917
907
|
var agentComposeContentSchema = z4.object({
|
|
918
908
|
version: z4.string().min(1, "Version is required"),
|
|
@@ -2634,7 +2624,6 @@ var variablesByNameContract = c11.router({
|
|
|
2634
2624
|
|
|
2635
2625
|
// ../../packages/core/src/contracts/model-providers.ts
|
|
2636
2626
|
import { z as z15 } from "zod";
|
|
2637
|
-
var c12 = initContract();
|
|
2638
2627
|
var MODEL_PROVIDER_TYPES = {
|
|
2639
2628
|
"claude-code-oauth-token": {
|
|
2640
2629
|
framework: "claude-code",
|
|
@@ -2970,137 +2959,18 @@ var upsertModelProviderResponseSchema = z15.object({
|
|
|
2970
2959
|
provider: modelProviderResponseSchema,
|
|
2971
2960
|
created: z15.boolean()
|
|
2972
2961
|
});
|
|
2973
|
-
var checkSecretResponseSchema = z15.object({
|
|
2974
|
-
exists: z15.boolean(),
|
|
2975
|
-
secretName: z15.string()
|
|
2976
|
-
});
|
|
2977
|
-
var modelProvidersMainContract = c12.router({
|
|
2978
|
-
list: {
|
|
2979
|
-
method: "GET",
|
|
2980
|
-
path: "/api/model-providers",
|
|
2981
|
-
headers: authHeadersSchema,
|
|
2982
|
-
responses: {
|
|
2983
|
-
200: modelProviderListResponseSchema,
|
|
2984
|
-
401: apiErrorSchema,
|
|
2985
|
-
500: apiErrorSchema
|
|
2986
|
-
},
|
|
2987
|
-
summary: "List all model providers"
|
|
2988
|
-
},
|
|
2989
|
-
upsert: {
|
|
2990
|
-
method: "PUT",
|
|
2991
|
-
path: "/api/model-providers",
|
|
2992
|
-
headers: authHeadersSchema,
|
|
2993
|
-
body: upsertModelProviderRequestSchema,
|
|
2994
|
-
responses: {
|
|
2995
|
-
200: upsertModelProviderResponseSchema,
|
|
2996
|
-
201: upsertModelProviderResponseSchema,
|
|
2997
|
-
400: apiErrorSchema,
|
|
2998
|
-
401: apiErrorSchema,
|
|
2999
|
-
409: apiErrorSchema,
|
|
3000
|
-
500: apiErrorSchema
|
|
3001
|
-
},
|
|
3002
|
-
summary: "Create or update a model provider"
|
|
3003
|
-
}
|
|
3004
|
-
});
|
|
3005
|
-
var modelProvidersCheckContract = c12.router({
|
|
3006
|
-
check: {
|
|
3007
|
-
method: "GET",
|
|
3008
|
-
path: "/api/model-providers/check/:type",
|
|
3009
|
-
headers: authHeadersSchema,
|
|
3010
|
-
pathParams: z15.object({
|
|
3011
|
-
type: modelProviderTypeSchema
|
|
3012
|
-
}),
|
|
3013
|
-
responses: {
|
|
3014
|
-
200: checkSecretResponseSchema,
|
|
3015
|
-
401: apiErrorSchema,
|
|
3016
|
-
500: apiErrorSchema
|
|
3017
|
-
},
|
|
3018
|
-
summary: "Check if secret exists for a model provider type"
|
|
3019
|
-
}
|
|
3020
|
-
});
|
|
3021
|
-
var modelProvidersByTypeContract = c12.router({
|
|
3022
|
-
delete: {
|
|
3023
|
-
method: "DELETE",
|
|
3024
|
-
path: "/api/model-providers/:type",
|
|
3025
|
-
headers: authHeadersSchema,
|
|
3026
|
-
pathParams: z15.object({
|
|
3027
|
-
type: modelProviderTypeSchema
|
|
3028
|
-
}),
|
|
3029
|
-
responses: {
|
|
3030
|
-
204: c12.noBody(),
|
|
3031
|
-
401: apiErrorSchema,
|
|
3032
|
-
404: apiErrorSchema,
|
|
3033
|
-
500: apiErrorSchema
|
|
3034
|
-
},
|
|
3035
|
-
summary: "Delete a model provider"
|
|
3036
|
-
}
|
|
3037
|
-
});
|
|
3038
|
-
var modelProvidersConvertContract = c12.router({
|
|
3039
|
-
convert: {
|
|
3040
|
-
method: "POST",
|
|
3041
|
-
path: "/api/model-providers/:type/convert",
|
|
3042
|
-
headers: authHeadersSchema,
|
|
3043
|
-
pathParams: z15.object({
|
|
3044
|
-
type: modelProviderTypeSchema
|
|
3045
|
-
}),
|
|
3046
|
-
body: z15.undefined(),
|
|
3047
|
-
responses: {
|
|
3048
|
-
200: modelProviderResponseSchema,
|
|
3049
|
-
400: apiErrorSchema,
|
|
3050
|
-
401: apiErrorSchema,
|
|
3051
|
-
404: apiErrorSchema,
|
|
3052
|
-
500: apiErrorSchema
|
|
3053
|
-
},
|
|
3054
|
-
summary: "Convert existing user secret to model provider"
|
|
3055
|
-
}
|
|
3056
|
-
});
|
|
3057
|
-
var modelProvidersSetDefaultContract = c12.router({
|
|
3058
|
-
setDefault: {
|
|
3059
|
-
method: "POST",
|
|
3060
|
-
path: "/api/model-providers/:type/set-default",
|
|
3061
|
-
headers: authHeadersSchema,
|
|
3062
|
-
pathParams: z15.object({
|
|
3063
|
-
type: modelProviderTypeSchema
|
|
3064
|
-
}),
|
|
3065
|
-
body: z15.undefined(),
|
|
3066
|
-
responses: {
|
|
3067
|
-
200: modelProviderResponseSchema,
|
|
3068
|
-
401: apiErrorSchema,
|
|
3069
|
-
404: apiErrorSchema,
|
|
3070
|
-
500: apiErrorSchema
|
|
3071
|
-
},
|
|
3072
|
-
summary: "Set a model provider as default for its framework"
|
|
3073
|
-
}
|
|
3074
|
-
});
|
|
3075
2962
|
var updateModelRequestSchema = z15.object({
|
|
3076
2963
|
selectedModel: z15.string().optional()
|
|
3077
2964
|
});
|
|
3078
|
-
var modelProvidersUpdateModelContract = c12.router({
|
|
3079
|
-
updateModel: {
|
|
3080
|
-
method: "PATCH",
|
|
3081
|
-
path: "/api/model-providers/:type/model",
|
|
3082
|
-
headers: authHeadersSchema,
|
|
3083
|
-
pathParams: z15.object({
|
|
3084
|
-
type: modelProviderTypeSchema
|
|
3085
|
-
}),
|
|
3086
|
-
body: updateModelRequestSchema,
|
|
3087
|
-
responses: {
|
|
3088
|
-
200: modelProviderResponseSchema,
|
|
3089
|
-
401: apiErrorSchema,
|
|
3090
|
-
404: apiErrorSchema,
|
|
3091
|
-
500: apiErrorSchema
|
|
3092
|
-
},
|
|
3093
|
-
summary: "Update model selection for an existing provider"
|
|
3094
|
-
}
|
|
3095
|
-
});
|
|
3096
2965
|
|
|
3097
2966
|
// ../../packages/core/src/contracts/sessions.ts
|
|
3098
2967
|
import { z as z16 } from "zod";
|
|
3099
|
-
var
|
|
2968
|
+
var c12 = initContract();
|
|
3100
2969
|
var storedChatMessageSchema = z16.object({
|
|
3101
2970
|
role: z16.enum(["user", "assistant"]),
|
|
3102
2971
|
content: z16.string(),
|
|
3103
2972
|
runId: z16.string().optional(),
|
|
2973
|
+
summaries: z16.array(z16.string()).optional(),
|
|
3104
2974
|
createdAt: z16.string()
|
|
3105
2975
|
});
|
|
3106
2976
|
var sessionResponseSchema = z16.object({
|
|
@@ -3141,7 +3011,7 @@ var checkpointResponseSchema = z16.object({
|
|
|
3141
3011
|
volumeVersionsSnapshot: volumeVersionsSnapshotSchema2.nullable(),
|
|
3142
3012
|
createdAt: z16.string()
|
|
3143
3013
|
});
|
|
3144
|
-
var sessionsContract =
|
|
3014
|
+
var sessionsContract = c12.router({
|
|
3145
3015
|
/**
|
|
3146
3016
|
* GET /api/agent/sessions?agentComposeId=X
|
|
3147
3017
|
* List chat sessions for an agent
|
|
@@ -3160,7 +3030,7 @@ var sessionsContract = c13.router({
|
|
|
3160
3030
|
summary: "List chat sessions for an agent"
|
|
3161
3031
|
}
|
|
3162
3032
|
});
|
|
3163
|
-
var sessionsByIdContract =
|
|
3033
|
+
var sessionsByIdContract = c12.router({
|
|
3164
3034
|
/**
|
|
3165
3035
|
* GET /api/agent/sessions/:id
|
|
3166
3036
|
* Get session by ID
|
|
@@ -3181,7 +3051,7 @@ var sessionsByIdContract = c13.router({
|
|
|
3181
3051
|
summary: "Get session by ID"
|
|
3182
3052
|
}
|
|
3183
3053
|
});
|
|
3184
|
-
var sessionMessagesContract =
|
|
3054
|
+
var sessionMessagesContract = c12.router({
|
|
3185
3055
|
/**
|
|
3186
3056
|
* POST /api/agent/sessions/:id/messages
|
|
3187
3057
|
* Append chat messages to a session
|
|
@@ -3211,7 +3081,7 @@ var sessionMessagesContract = c13.router({
|
|
|
3211
3081
|
summary: "Append chat messages to a session"
|
|
3212
3082
|
}
|
|
3213
3083
|
});
|
|
3214
|
-
var checkpointsByIdContract =
|
|
3084
|
+
var checkpointsByIdContract = c12.router({
|
|
3215
3085
|
/**
|
|
3216
3086
|
* GET /api/agent/checkpoints/:id
|
|
3217
3087
|
* Get checkpoint by ID
|
|
@@ -3235,7 +3105,7 @@ var checkpointsByIdContract = c13.router({
|
|
|
3235
3105
|
|
|
3236
3106
|
// ../../packages/core/src/contracts/chat-threads.ts
|
|
3237
3107
|
import { z as z17 } from "zod";
|
|
3238
|
-
var
|
|
3108
|
+
var c13 = initContract();
|
|
3239
3109
|
var chatThreadListItemSchema = z17.object({
|
|
3240
3110
|
id: z17.string(),
|
|
3241
3111
|
title: z17.string().nullable(),
|
|
@@ -3265,7 +3135,7 @@ var chatThreadDetailSchema = z17.object({
|
|
|
3265
3135
|
createdAt: z17.string(),
|
|
3266
3136
|
updatedAt: z17.string()
|
|
3267
3137
|
});
|
|
3268
|
-
var chatThreadsContract =
|
|
3138
|
+
var chatThreadsContract = c13.router({
|
|
3269
3139
|
create: {
|
|
3270
3140
|
method: "POST",
|
|
3271
3141
|
path: "/api/chat-threads",
|
|
@@ -3294,7 +3164,7 @@ var chatThreadsContract = c14.router({
|
|
|
3294
3164
|
summary: "List chat threads for an agent"
|
|
3295
3165
|
}
|
|
3296
3166
|
});
|
|
3297
|
-
var chatThreadByIdContract =
|
|
3167
|
+
var chatThreadByIdContract = c13.router({
|
|
3298
3168
|
get: {
|
|
3299
3169
|
method: "GET",
|
|
3300
3170
|
path: "/api/chat-threads/:id",
|
|
@@ -3308,7 +3178,7 @@ var chatThreadByIdContract = c14.router({
|
|
|
3308
3178
|
summary: "Get chat thread detail with messages"
|
|
3309
3179
|
}
|
|
3310
3180
|
});
|
|
3311
|
-
var chatThreadRunsContract =
|
|
3181
|
+
var chatThreadRunsContract = c13.router({
|
|
3312
3182
|
addRun: {
|
|
3313
3183
|
method: "POST",
|
|
3314
3184
|
path: "/api/chat-threads/:id/runs",
|
|
@@ -3328,7 +3198,7 @@ var chatThreadRunsContract = c14.router({
|
|
|
3328
3198
|
|
|
3329
3199
|
// ../../packages/core/src/contracts/runners.ts
|
|
3330
3200
|
import { z as z18 } from "zod";
|
|
3331
|
-
var
|
|
3201
|
+
var c14 = initContract();
|
|
3332
3202
|
var runnerGroupSchema = z18.string().regex(
|
|
3333
3203
|
/^[a-z0-9-]+\/[a-z0-9-]+$/,
|
|
3334
3204
|
"Runner group must be in org/name format (e.g., acme/production)"
|
|
@@ -3341,7 +3211,7 @@ var jobSchema = z18.object({
|
|
|
3341
3211
|
checkpointId: z18.uuid().nullable(),
|
|
3342
3212
|
experimentalProfile: z18.string().optional()
|
|
3343
3213
|
});
|
|
3344
|
-
var runnersPollContract =
|
|
3214
|
+
var runnersPollContract = c14.router({
|
|
3345
3215
|
poll: {
|
|
3346
3216
|
method: "POST",
|
|
3347
3217
|
path: "/api/runners/poll",
|
|
@@ -3444,7 +3314,7 @@ var executionContextSchema = z18.object({
|
|
|
3444
3314
|
// VM profile for resource allocation (e.g., "vm0/default", "vm0/browser")
|
|
3445
3315
|
experimentalProfile: z18.string().optional()
|
|
3446
3316
|
});
|
|
3447
|
-
var runnersJobClaimContract =
|
|
3317
|
+
var runnersJobClaimContract = c14.router({
|
|
3448
3318
|
claim: {
|
|
3449
3319
|
method: "POST",
|
|
3450
3320
|
path: "/api/runners/jobs/:id/claim",
|
|
@@ -3470,7 +3340,7 @@ var runnersJobClaimContract = c15.router({
|
|
|
3470
3340
|
|
|
3471
3341
|
// ../../packages/core/src/contracts/schedules.ts
|
|
3472
3342
|
import { z as z19 } from "zod";
|
|
3473
|
-
var
|
|
3343
|
+
var c15 = initContract();
|
|
3474
3344
|
var scheduleTriggerSchema = z19.object({
|
|
3475
3345
|
cron: z19.string().optional(),
|
|
3476
3346
|
at: z19.string().optional(),
|
|
@@ -3587,7 +3457,7 @@ var deployScheduleResponseSchema = z19.object({
|
|
|
3587
3457
|
created: z19.boolean()
|
|
3588
3458
|
// true if created, false if updated
|
|
3589
3459
|
});
|
|
3590
|
-
var schedulesMainContract =
|
|
3460
|
+
var schedulesMainContract = c15.router({
|
|
3591
3461
|
/**
|
|
3592
3462
|
* POST /api/agent/schedules
|
|
3593
3463
|
* Deploy (create or update) a schedule
|
|
@@ -3625,7 +3495,7 @@ var schedulesMainContract = c16.router({
|
|
|
3625
3495
|
summary: "List all schedules"
|
|
3626
3496
|
}
|
|
3627
3497
|
});
|
|
3628
|
-
var schedulesByNameContract =
|
|
3498
|
+
var schedulesByNameContract = c15.router({
|
|
3629
3499
|
/**
|
|
3630
3500
|
* GET /api/agent/schedules/:name
|
|
3631
3501
|
* Get schedule by name
|
|
@@ -3663,7 +3533,7 @@ var schedulesByNameContract = c16.router({
|
|
|
3663
3533
|
composeId: z19.string().uuid("Compose ID required")
|
|
3664
3534
|
}),
|
|
3665
3535
|
responses: {
|
|
3666
|
-
204:
|
|
3536
|
+
204: c15.noBody(),
|
|
3667
3537
|
401: apiErrorSchema,
|
|
3668
3538
|
403: apiErrorSchema,
|
|
3669
3539
|
404: apiErrorSchema
|
|
@@ -3671,7 +3541,7 @@ var schedulesByNameContract = c16.router({
|
|
|
3671
3541
|
summary: "Delete schedule"
|
|
3672
3542
|
}
|
|
3673
3543
|
});
|
|
3674
|
-
var schedulesEnableContract =
|
|
3544
|
+
var schedulesEnableContract = c15.router({
|
|
3675
3545
|
/**
|
|
3676
3546
|
* POST /api/agent/schedules/:name/enable
|
|
3677
3547
|
* Enable a disabled schedule
|
|
@@ -3717,7 +3587,7 @@ var schedulesEnableContract = c16.router({
|
|
|
3717
3587
|
summary: "Disable schedule"
|
|
3718
3588
|
}
|
|
3719
3589
|
});
|
|
3720
|
-
var scheduleRunsContract =
|
|
3590
|
+
var scheduleRunsContract = c15.router({
|
|
3721
3591
|
/**
|
|
3722
3592
|
* GET /api/agent/schedules/:name/runs
|
|
3723
3593
|
* List recent runs for a schedule
|
|
@@ -3745,7 +3615,7 @@ var scheduleRunsContract = c16.router({
|
|
|
3745
3615
|
|
|
3746
3616
|
// ../../packages/core/src/contracts/realtime.ts
|
|
3747
3617
|
import { z as z20 } from "zod";
|
|
3748
|
-
var
|
|
3618
|
+
var c16 = initContract();
|
|
3749
3619
|
var ablyTokenRequestSchema = z20.object({
|
|
3750
3620
|
keyName: z20.string(),
|
|
3751
3621
|
ttl: z20.number().optional(),
|
|
@@ -3755,7 +3625,7 @@ var ablyTokenRequestSchema = z20.object({
|
|
|
3755
3625
|
nonce: z20.string(),
|
|
3756
3626
|
mac: z20.string()
|
|
3757
3627
|
});
|
|
3758
|
-
var runnerRealtimeTokenContract =
|
|
3628
|
+
var runnerRealtimeTokenContract = c16.router({
|
|
3759
3629
|
/**
|
|
3760
3630
|
* POST /api/runners/realtime/token
|
|
3761
3631
|
* Get an Ably token to subscribe to a runner group's job notification channel
|
|
@@ -3788,7 +3658,7 @@ var listQuerySchema = z21.object({
|
|
|
3788
3658
|
cursor: z21.string().optional(),
|
|
3789
3659
|
limit: z21.coerce.number().min(1).max(100).default(20)
|
|
3790
3660
|
});
|
|
3791
|
-
var
|
|
3661
|
+
var c17 = initContract();
|
|
3792
3662
|
var logStatusSchema = z21.enum([
|
|
3793
3663
|
"queued",
|
|
3794
3664
|
"pending",
|
|
@@ -3832,7 +3702,7 @@ var logDetailSchema = z21.object({
|
|
|
3832
3702
|
completedAt: z21.string().nullable(),
|
|
3833
3703
|
artifact: artifactSchema
|
|
3834
3704
|
});
|
|
3835
|
-
var logsListContract =
|
|
3705
|
+
var logsListContract = c17.router({
|
|
3836
3706
|
list: {
|
|
3837
3707
|
method: "GET",
|
|
3838
3708
|
path: "/api/app/logs",
|
|
@@ -3850,7 +3720,7 @@ var logsListContract = c18.router({
|
|
|
3850
3720
|
summary: "List agent run logs with pagination"
|
|
3851
3721
|
}
|
|
3852
3722
|
});
|
|
3853
|
-
var logsByIdContract =
|
|
3723
|
+
var logsByIdContract = c17.router({
|
|
3854
3724
|
getById: {
|
|
3855
3725
|
method: "GET",
|
|
3856
3726
|
path: "/api/app/logs/:id",
|
|
@@ -3870,7 +3740,7 @@ var artifactDownloadResponseSchema = z21.object({
|
|
|
3870
3740
|
url: z21.url(),
|
|
3871
3741
|
expiresAt: z21.string()
|
|
3872
3742
|
});
|
|
3873
|
-
var artifactDownloadContract =
|
|
3743
|
+
var artifactDownloadContract = c17.router({
|
|
3874
3744
|
getDownloadUrl: {
|
|
3875
3745
|
method: "GET",
|
|
3876
3746
|
path: "/api/app/artifacts/download",
|
|
@@ -3889,7 +3759,7 @@ var artifactDownloadContract = c18.router({
|
|
|
3889
3759
|
|
|
3890
3760
|
// ../../packages/core/src/contracts/compose-jobs.ts
|
|
3891
3761
|
import { z as z22 } from "zod";
|
|
3892
|
-
var
|
|
3762
|
+
var c18 = initContract();
|
|
3893
3763
|
var composeJobStatusSchema = z22.enum([
|
|
3894
3764
|
"pending",
|
|
3895
3765
|
"running",
|
|
@@ -3924,7 +3794,7 @@ var composeJobResponseSchema = z22.object({
|
|
|
3924
3794
|
startedAt: z22.string().optional(),
|
|
3925
3795
|
completedAt: z22.string().optional()
|
|
3926
3796
|
});
|
|
3927
|
-
var composeJobsMainContract =
|
|
3797
|
+
var composeJobsMainContract = c18.router({
|
|
3928
3798
|
/**
|
|
3929
3799
|
* POST /api/compose/jobs
|
|
3930
3800
|
* Create a new compose job from GitHub URL or platform content
|
|
@@ -3944,7 +3814,7 @@ var composeJobsMainContract = c19.router({
|
|
|
3944
3814
|
summary: "Create compose job"
|
|
3945
3815
|
}
|
|
3946
3816
|
});
|
|
3947
|
-
var composeJobsByIdContract =
|
|
3817
|
+
var composeJobsByIdContract = c18.router({
|
|
3948
3818
|
/**
|
|
3949
3819
|
* GET /api/compose/jobs/:jobId
|
|
3950
3820
|
* Get compose job status and result
|
|
@@ -3964,7 +3834,7 @@ var composeJobsByIdContract = c19.router({
|
|
|
3964
3834
|
summary: "Get compose job status"
|
|
3965
3835
|
}
|
|
3966
3836
|
});
|
|
3967
|
-
var webhookComposeCompleteContract =
|
|
3837
|
+
var webhookComposeCompleteContract = c18.router({
|
|
3968
3838
|
/**
|
|
3969
3839
|
* POST /api/webhooks/compose/complete
|
|
3970
3840
|
* Handle compose job completion from sandbox
|
|
@@ -3994,7 +3864,7 @@ var webhookComposeCompleteContract = c19.router({
|
|
|
3994
3864
|
|
|
3995
3865
|
// ../../packages/core/src/contracts/connectors.ts
|
|
3996
3866
|
import { z as z23 } from "zod";
|
|
3997
|
-
var
|
|
3867
|
+
var c19 = initContract();
|
|
3998
3868
|
var CONNECTOR_TYPES_DEF = {
|
|
3999
3869
|
axiom: {
|
|
4000
3870
|
label: "Axiom",
|
|
@@ -6654,7 +6524,7 @@ var connectorListResponseSchema = z23.object({
|
|
|
6654
6524
|
configuredTypes: z23.array(connectorTypeSchema),
|
|
6655
6525
|
connectorProvidedSecretNames: z23.array(z23.string())
|
|
6656
6526
|
});
|
|
6657
|
-
var connectorsMainContract =
|
|
6527
|
+
var connectorsMainContract = c19.router({
|
|
6658
6528
|
list: {
|
|
6659
6529
|
method: "GET",
|
|
6660
6530
|
path: "/api/connectors",
|
|
@@ -6667,7 +6537,7 @@ var connectorsMainContract = c20.router({
|
|
|
6667
6537
|
summary: "List all connectors for the authenticated user"
|
|
6668
6538
|
}
|
|
6669
6539
|
});
|
|
6670
|
-
var connectorsByTypeContract =
|
|
6540
|
+
var connectorsByTypeContract = c19.router({
|
|
6671
6541
|
get: {
|
|
6672
6542
|
method: "GET",
|
|
6673
6543
|
path: "/api/connectors/:type",
|
|
@@ -6691,7 +6561,7 @@ var connectorsByTypeContract = c20.router({
|
|
|
6691
6561
|
type: connectorTypeSchema
|
|
6692
6562
|
}),
|
|
6693
6563
|
responses: {
|
|
6694
|
-
204:
|
|
6564
|
+
204: c19.noBody(),
|
|
6695
6565
|
401: apiErrorSchema,
|
|
6696
6566
|
404: apiErrorSchema,
|
|
6697
6567
|
500: apiErrorSchema
|
|
@@ -6705,7 +6575,7 @@ var scopeDiffResponseSchema = z23.object({
|
|
|
6705
6575
|
currentScopes: z23.array(z23.string()),
|
|
6706
6576
|
storedScopes: z23.array(z23.string())
|
|
6707
6577
|
});
|
|
6708
|
-
var connectorScopeDiffContract =
|
|
6578
|
+
var connectorScopeDiffContract = c19.router({
|
|
6709
6579
|
getScopeDiff: {
|
|
6710
6580
|
method: "GET",
|
|
6711
6581
|
path: "/api/connectors/:type/scope-diff",
|
|
@@ -6740,7 +6610,7 @@ var connectorSessionStatusResponseSchema = z23.object({
|
|
|
6740
6610
|
status: connectorSessionStatusSchema,
|
|
6741
6611
|
errorMessage: z23.string().nullable().optional()
|
|
6742
6612
|
});
|
|
6743
|
-
var connectorSessionsContract =
|
|
6613
|
+
var connectorSessionsContract = c19.router({
|
|
6744
6614
|
/**
|
|
6745
6615
|
* POST /api/connectors/:type/sessions
|
|
6746
6616
|
* Create a new connector session for CLI device flow
|
|
@@ -6762,7 +6632,7 @@ var connectorSessionsContract = c20.router({
|
|
|
6762
6632
|
summary: "Create connector session for CLI device flow"
|
|
6763
6633
|
}
|
|
6764
6634
|
});
|
|
6765
|
-
var connectorSessionByIdContract =
|
|
6635
|
+
var connectorSessionByIdContract = c19.router({
|
|
6766
6636
|
/**
|
|
6767
6637
|
* GET /api/connectors/:type/sessions/:sessionId
|
|
6768
6638
|
* Get connector session status (for CLI polling)
|
|
@@ -6792,7 +6662,7 @@ var computerConnectorCreateResponseSchema = z23.object({
|
|
|
6792
6662
|
endpointPrefix: z23.string(),
|
|
6793
6663
|
domain: z23.string()
|
|
6794
6664
|
});
|
|
6795
|
-
var computerConnectorContract =
|
|
6665
|
+
var computerConnectorContract = c19.router({
|
|
6796
6666
|
create: {
|
|
6797
6667
|
method: "POST",
|
|
6798
6668
|
path: "/api/connectors/computer",
|
|
@@ -6823,7 +6693,7 @@ var computerConnectorContract = c20.router({
|
|
|
6823
6693
|
path: "/api/connectors/computer",
|
|
6824
6694
|
headers: authHeadersSchema,
|
|
6825
6695
|
responses: {
|
|
6826
|
-
204:
|
|
6696
|
+
204: c19.noBody(),
|
|
6827
6697
|
401: apiErrorSchema,
|
|
6828
6698
|
404: apiErrorSchema,
|
|
6829
6699
|
500: apiErrorSchema
|
|
@@ -7176,7 +7046,7 @@ async function expandFirewallConfigs(config, fetchFn) {
|
|
|
7176
7046
|
|
|
7177
7047
|
// ../../packages/core/src/contracts/user-preferences.ts
|
|
7178
7048
|
import { z as z24 } from "zod";
|
|
7179
|
-
var
|
|
7049
|
+
var c20 = initContract();
|
|
7180
7050
|
var sendModeSchema = z24.enum(["enter", "cmd-enter"]);
|
|
7181
7051
|
var userPreferencesResponseSchema = z24.object({
|
|
7182
7052
|
timezone: z24.string().nullable(),
|
|
@@ -7197,7 +7067,7 @@ var updateUserPreferencesRequestSchema = z24.object({
|
|
|
7197
7067
|
message: "At least one preference must be provided"
|
|
7198
7068
|
}
|
|
7199
7069
|
);
|
|
7200
|
-
var userPreferencesContract =
|
|
7070
|
+
var userPreferencesContract = c20.router({
|
|
7201
7071
|
/**
|
|
7202
7072
|
* GET /api/user/preferences
|
|
7203
7073
|
* Get current user's preferences
|
|
@@ -7234,7 +7104,7 @@ var userPreferencesContract = c21.router({
|
|
|
7234
7104
|
|
|
7235
7105
|
// ../../packages/core/src/contracts/org-list.ts
|
|
7236
7106
|
import { z as z25 } from "zod";
|
|
7237
|
-
var
|
|
7107
|
+
var c21 = initContract();
|
|
7238
7108
|
var orgListItemSchema = z25.object({
|
|
7239
7109
|
slug: z25.string(),
|
|
7240
7110
|
role: z25.string()
|
|
@@ -7243,7 +7113,7 @@ var orgListResponseSchema = z25.object({
|
|
|
7243
7113
|
orgs: z25.array(orgListItemSchema),
|
|
7244
7114
|
active: z25.string().optional()
|
|
7245
7115
|
});
|
|
7246
|
-
var orgListContract =
|
|
7116
|
+
var orgListContract = c21.router({
|
|
7247
7117
|
/**
|
|
7248
7118
|
* GET /api/org/list
|
|
7249
7119
|
* List all orgs accessible to the user
|
|
@@ -7263,7 +7133,7 @@ var orgListContract = c22.router({
|
|
|
7263
7133
|
|
|
7264
7134
|
// ../../packages/core/src/contracts/onboarding.ts
|
|
7265
7135
|
import { z as z26 } from "zod";
|
|
7266
|
-
var
|
|
7136
|
+
var c22 = initContract();
|
|
7267
7137
|
var onboardingStatusResponseSchema = z26.object({
|
|
7268
7138
|
needsOnboarding: z26.boolean(),
|
|
7269
7139
|
isAdmin: z26.boolean(),
|
|
@@ -7279,7 +7149,7 @@ var onboardingStatusResponseSchema = z26.object({
|
|
|
7279
7149
|
}).nullable(),
|
|
7280
7150
|
defaultAgentSkills: z26.array(z26.string())
|
|
7281
7151
|
});
|
|
7282
|
-
var onboardingStatusContract =
|
|
7152
|
+
var onboardingStatusContract = c22.router({
|
|
7283
7153
|
getStatus: {
|
|
7284
7154
|
method: "GET",
|
|
7285
7155
|
path: "/api/onboarding/status",
|
|
@@ -7294,7 +7164,7 @@ var onboardingStatusContract = c23.router({
|
|
|
7294
7164
|
|
|
7295
7165
|
// ../../packages/core/src/contracts/skills.ts
|
|
7296
7166
|
import { z as z27 } from "zod";
|
|
7297
|
-
var
|
|
7167
|
+
var c23 = initContract();
|
|
7298
7168
|
var skillFrontmatterSchema = z27.object({
|
|
7299
7169
|
name: z27.string().optional(),
|
|
7300
7170
|
description: z27.string().optional(),
|
|
@@ -7306,7 +7176,7 @@ var resolvedSkillSchema = z27.object({
|
|
|
7306
7176
|
versionHash: z27.string(),
|
|
7307
7177
|
frontmatter: skillFrontmatterSchema
|
|
7308
7178
|
});
|
|
7309
|
-
var skillsResolveContract =
|
|
7179
|
+
var skillsResolveContract = c23.router({
|
|
7310
7180
|
resolve: {
|
|
7311
7181
|
method: "POST",
|
|
7312
7182
|
path: "/api/skills/resolve",
|
|
@@ -7328,8 +7198,8 @@ var skillsResolveContract = c24.router({
|
|
|
7328
7198
|
|
|
7329
7199
|
// ../../packages/core/src/contracts/org-model-providers.ts
|
|
7330
7200
|
import { z as z28 } from "zod";
|
|
7331
|
-
var
|
|
7332
|
-
var orgModelProvidersMainContract =
|
|
7201
|
+
var c24 = initContract();
|
|
7202
|
+
var orgModelProvidersMainContract = c24.router({
|
|
7333
7203
|
list: {
|
|
7334
7204
|
method: "GET",
|
|
7335
7205
|
path: "/api/org/model-providers",
|
|
@@ -7357,7 +7227,7 @@ var orgModelProvidersMainContract = c25.router({
|
|
|
7357
7227
|
summary: "Create or update an org-level model provider (admin only)"
|
|
7358
7228
|
}
|
|
7359
7229
|
});
|
|
7360
|
-
var orgModelProvidersByTypeContract =
|
|
7230
|
+
var orgModelProvidersByTypeContract = c24.router({
|
|
7361
7231
|
delete: {
|
|
7362
7232
|
method: "DELETE",
|
|
7363
7233
|
path: "/api/org/model-providers/:type",
|
|
@@ -7366,7 +7236,7 @@ var orgModelProvidersByTypeContract = c25.router({
|
|
|
7366
7236
|
type: modelProviderTypeSchema
|
|
7367
7237
|
}),
|
|
7368
7238
|
responses: {
|
|
7369
|
-
204:
|
|
7239
|
+
204: c24.noBody(),
|
|
7370
7240
|
401: apiErrorSchema,
|
|
7371
7241
|
403: apiErrorSchema,
|
|
7372
7242
|
404: apiErrorSchema,
|
|
@@ -7375,7 +7245,7 @@ var orgModelProvidersByTypeContract = c25.router({
|
|
|
7375
7245
|
summary: "Delete an org-level model provider (admin only)"
|
|
7376
7246
|
}
|
|
7377
7247
|
});
|
|
7378
|
-
var orgModelProvidersSetDefaultContract =
|
|
7248
|
+
var orgModelProvidersSetDefaultContract = c24.router({
|
|
7379
7249
|
setDefault: {
|
|
7380
7250
|
method: "POST",
|
|
7381
7251
|
path: "/api/org/model-providers/:type/set-default",
|
|
@@ -7394,7 +7264,7 @@ var orgModelProvidersSetDefaultContract = c25.router({
|
|
|
7394
7264
|
summary: "Set org-level model provider as default (admin only)"
|
|
7395
7265
|
}
|
|
7396
7266
|
});
|
|
7397
|
-
var orgModelProvidersUpdateModelContract =
|
|
7267
|
+
var orgModelProvidersUpdateModelContract = c24.router({
|
|
7398
7268
|
updateModel: {
|
|
7399
7269
|
method: "PATCH",
|
|
7400
7270
|
path: "/api/org/model-providers/:type/model",
|
|
@@ -7416,8 +7286,8 @@ var orgModelProvidersUpdateModelContract = c25.router({
|
|
|
7416
7286
|
|
|
7417
7287
|
// ../../packages/core/src/contracts/org-secrets.ts
|
|
7418
7288
|
import { z as z29 } from "zod";
|
|
7419
|
-
var
|
|
7420
|
-
var orgSecretsMainContract =
|
|
7289
|
+
var c25 = initContract();
|
|
7290
|
+
var orgSecretsMainContract = c25.router({
|
|
7421
7291
|
list: {
|
|
7422
7292
|
method: "GET",
|
|
7423
7293
|
path: "/api/org/secrets",
|
|
@@ -7445,7 +7315,7 @@ var orgSecretsMainContract = c26.router({
|
|
|
7445
7315
|
summary: "Create or update an org-level secret (admin only)"
|
|
7446
7316
|
}
|
|
7447
7317
|
});
|
|
7448
|
-
var orgSecretsByNameContract =
|
|
7318
|
+
var orgSecretsByNameContract = c25.router({
|
|
7449
7319
|
delete: {
|
|
7450
7320
|
method: "DELETE",
|
|
7451
7321
|
path: "/api/org/secrets/:name",
|
|
@@ -7454,7 +7324,7 @@ var orgSecretsByNameContract = c26.router({
|
|
|
7454
7324
|
name: secretNameSchema
|
|
7455
7325
|
}),
|
|
7456
7326
|
responses: {
|
|
7457
|
-
204:
|
|
7327
|
+
204: c25.noBody(),
|
|
7458
7328
|
401: apiErrorSchema,
|
|
7459
7329
|
403: apiErrorSchema,
|
|
7460
7330
|
404: apiErrorSchema,
|
|
@@ -7466,8 +7336,8 @@ var orgSecretsByNameContract = c26.router({
|
|
|
7466
7336
|
|
|
7467
7337
|
// ../../packages/core/src/contracts/org-variables.ts
|
|
7468
7338
|
import { z as z30 } from "zod";
|
|
7469
|
-
var
|
|
7470
|
-
var orgVariablesMainContract =
|
|
7339
|
+
var c26 = initContract();
|
|
7340
|
+
var orgVariablesMainContract = c26.router({
|
|
7471
7341
|
list: {
|
|
7472
7342
|
method: "GET",
|
|
7473
7343
|
path: "/api/org/variables",
|
|
@@ -7495,7 +7365,7 @@ var orgVariablesMainContract = c27.router({
|
|
|
7495
7365
|
summary: "Create or update an org-level variable (admin only)"
|
|
7496
7366
|
}
|
|
7497
7367
|
});
|
|
7498
|
-
var orgVariablesByNameContract =
|
|
7368
|
+
var orgVariablesByNameContract = c26.router({
|
|
7499
7369
|
delete: {
|
|
7500
7370
|
method: "DELETE",
|
|
7501
7371
|
path: "/api/org/variables/:name",
|
|
@@ -7504,7 +7374,7 @@ var orgVariablesByNameContract = c27.router({
|
|
|
7504
7374
|
name: variableNameSchema
|
|
7505
7375
|
}),
|
|
7506
7376
|
responses: {
|
|
7507
|
-
204:
|
|
7377
|
+
204: c26.noBody(),
|
|
7508
7378
|
401: apiErrorSchema,
|
|
7509
7379
|
403: apiErrorSchema,
|
|
7510
7380
|
404: apiErrorSchema,
|
|
@@ -7514,23 +7384,6 @@ var orgVariablesByNameContract = c27.router({
|
|
|
7514
7384
|
}
|
|
7515
7385
|
});
|
|
7516
7386
|
|
|
7517
|
-
// ../../packages/core/src/org-reference.ts
|
|
7518
|
-
function isLegacySystemTemplate(reference) {
|
|
7519
|
-
return reference.startsWith("vm0-");
|
|
7520
|
-
}
|
|
7521
|
-
function getLegacySystemTemplateWarning(legacyFormat) {
|
|
7522
|
-
if (!isLegacySystemTemplate(legacyFormat)) {
|
|
7523
|
-
return void 0;
|
|
7524
|
-
}
|
|
7525
|
-
if (legacyFormat === "vm0-claude-code") {
|
|
7526
|
-
return `Warning: "${legacyFormat}" format is deprecated. Use "vm0/claude-code" instead.`;
|
|
7527
|
-
}
|
|
7528
|
-
if (legacyFormat.startsWith("vm0-github-cli")) {
|
|
7529
|
-
return `Warning: "${legacyFormat}" is deprecated. GitHub CLI is now included in the base image.`;
|
|
7530
|
-
}
|
|
7531
|
-
return `Warning: "${legacyFormat}" format is deprecated.`;
|
|
7532
|
-
}
|
|
7533
|
-
|
|
7534
7387
|
// ../../packages/core/src/storage-names.ts
|
|
7535
7388
|
function getInstructionsStorageName(agentName) {
|
|
7536
7389
|
return `agent-instructions@${agentName}`;
|
|
@@ -9589,24 +9442,6 @@ function hasVolumes(config) {
|
|
|
9589
9442
|
const volumes = cfg.volumes;
|
|
9590
9443
|
return typeof volumes === "object" && volumes !== null && Object.keys(volumes).length > 0;
|
|
9591
9444
|
}
|
|
9592
|
-
function checkLegacyImageFormat(config) {
|
|
9593
|
-
const cfg = config;
|
|
9594
|
-
const agentsConfig = cfg.agents;
|
|
9595
|
-
for (const [name, agentConfig] of Object.entries(agentsConfig)) {
|
|
9596
|
-
const image = agentConfig.image;
|
|
9597
|
-
if (image) {
|
|
9598
|
-
console.log(
|
|
9599
|
-
chalk6.yellow(
|
|
9600
|
-
`\u26A0 Agent "${name}": 'image' field is deprecated and will be ignored. The server resolves the image based on the framework.`
|
|
9601
|
-
)
|
|
9602
|
-
);
|
|
9603
|
-
const warning = getLegacySystemTemplateWarning(image);
|
|
9604
|
-
if (warning) {
|
|
9605
|
-
console.log(chalk6.yellow(` ${warning}`));
|
|
9606
|
-
}
|
|
9607
|
-
}
|
|
9608
|
-
}
|
|
9609
|
-
}
|
|
9610
9445
|
async function uploadAssets(agentName, agent, basePath, jsonMode) {
|
|
9611
9446
|
if (agent.instructions) {
|
|
9612
9447
|
if (!jsonMode) {
|
|
@@ -9928,9 +9763,6 @@ async function handleGitHubCompose(url, options) {
|
|
|
9928
9763
|
)
|
|
9929
9764
|
});
|
|
9930
9765
|
}
|
|
9931
|
-
if (!options.json) {
|
|
9932
|
-
checkLegacyImageFormat(config);
|
|
9933
|
-
}
|
|
9934
9766
|
const skillResults = await uploadAssets(
|
|
9935
9767
|
agentName,
|
|
9936
9768
|
agent,
|
|
@@ -9974,7 +9806,7 @@ var composeCommand = new Command7().name("compose").description("Create or updat
|
|
|
9974
9806
|
options.autoUpdate = false;
|
|
9975
9807
|
}
|
|
9976
9808
|
if (options.autoUpdate !== false) {
|
|
9977
|
-
await startSilentUpgrade("9.
|
|
9809
|
+
await startSilentUpgrade("9.66.0");
|
|
9978
9810
|
}
|
|
9979
9811
|
try {
|
|
9980
9812
|
let result;
|
|
@@ -9982,9 +9814,6 @@ var composeCommand = new Command7().name("compose").description("Create or updat
|
|
|
9982
9814
|
result = await handleGitHubCompose(resolvedConfigFile, options);
|
|
9983
9815
|
} else {
|
|
9984
9816
|
const { config, agentName, agent, basePath } = await loadAndValidateConfig(resolvedConfigFile);
|
|
9985
|
-
if (!options.json) {
|
|
9986
|
-
checkLegacyImageFormat(config);
|
|
9987
|
-
}
|
|
9988
9817
|
const skillResults = await uploadAssets(
|
|
9989
9818
|
agentName,
|
|
9990
9819
|
agent,
|
|
@@ -10796,7 +10625,7 @@ var mainRunCommand = new Command8().name("run").description("Run an agent").argu
|
|
|
10796
10625
|
withErrorHandler(
|
|
10797
10626
|
async (identifier, prompt, options) => {
|
|
10798
10627
|
if (options.autoUpdate !== false) {
|
|
10799
|
-
await startSilentUpgrade("9.
|
|
10628
|
+
await startSilentUpgrade("9.66.0");
|
|
10800
10629
|
}
|
|
10801
10630
|
const { org, name, version } = parseIdentifier(identifier);
|
|
10802
10631
|
let composeId;
|
|
@@ -12516,7 +12345,7 @@ var cookAction = new Command35().name("cook").description("Quick start: prepare,
|
|
|
12516
12345
|
withErrorHandler(
|
|
12517
12346
|
async (prompt, options) => {
|
|
12518
12347
|
if (options.autoUpdate !== false) {
|
|
12519
|
-
const shouldExit = await checkAndUpgrade("9.
|
|
12348
|
+
const shouldExit = await checkAndUpgrade("9.66.0", prompt);
|
|
12520
12349
|
if (shouldExit) {
|
|
12521
12350
|
process.exit(0);
|
|
12522
12351
|
}
|
|
@@ -14698,20 +14527,28 @@ import { tmpdir as tmpdir7 } from "os";
|
|
|
14698
14527
|
import * as tar6 from "tar";
|
|
14699
14528
|
import { stringify as yamlStringify } from "yaml";
|
|
14700
14529
|
function cleanComposeContent(content) {
|
|
14701
|
-
const
|
|
14530
|
+
const agents = {};
|
|
14531
|
+
for (const [name, agent] of Object.entries(content.agents)) {
|
|
14532
|
+
const cleaned = {
|
|
14533
|
+
framework: agent.framework
|
|
14534
|
+
};
|
|
14535
|
+
if (agent.description) cleaned.description = agent.description;
|
|
14536
|
+
if (agent.volumes) cleaned.volumes = agent.volumes;
|
|
14537
|
+
if (agent.environment) cleaned.environment = agent.environment;
|
|
14538
|
+
if (agent.instructions) cleaned.instructions = agent.instructions;
|
|
14539
|
+
if (agent.skills) cleaned.skills = agent.skills;
|
|
14540
|
+
if (agent.experimental_runner)
|
|
14541
|
+
cleaned.experimental_runner = agent.experimental_runner;
|
|
14542
|
+
agents[name] = cleaned;
|
|
14543
|
+
}
|
|
14544
|
+
const result = {
|
|
14702
14545
|
version: content.version,
|
|
14703
|
-
agents
|
|
14546
|
+
agents
|
|
14704
14547
|
};
|
|
14705
|
-
for (const [agentName, agent] of Object.entries(content.agents)) {
|
|
14706
|
-
const { image, working_dir: workingDir, ...rest } = agent;
|
|
14707
|
-
void image;
|
|
14708
|
-
void workingDir;
|
|
14709
|
-
cleaned.agents[agentName] = rest;
|
|
14710
|
-
}
|
|
14711
14548
|
if (content.volumes) {
|
|
14712
|
-
|
|
14549
|
+
result.volumes = content.volumes;
|
|
14713
14550
|
}
|
|
14714
|
-
return
|
|
14551
|
+
return result;
|
|
14715
14552
|
}
|
|
14716
14553
|
async function downloadInstructions(agentName, instructionsPath, destination) {
|
|
14717
14554
|
const destPath = join10(destination, instructionsPath);
|
|
@@ -14853,7 +14690,7 @@ var listCommand9 = new Command65().name("list").alias("ls").description("List al
|
|
|
14853
14690
|
);
|
|
14854
14691
|
return;
|
|
14855
14692
|
}
|
|
14856
|
-
const nameWidth = Math.max(4, ...data.composes.map((
|
|
14693
|
+
const nameWidth = Math.max(4, ...data.composes.map((c27) => c27.name.length));
|
|
14857
14694
|
const header = ["NAME".padEnd(nameWidth), "VERSION", "UPDATED"].join(
|
|
14858
14695
|
" "
|
|
14859
14696
|
);
|
|
@@ -15001,12 +14838,6 @@ function formatVariableSources(sources) {
|
|
|
15001
14838
|
function formatAgentDetails(agentName, agent, agentSources, volumeConfigs) {
|
|
15002
14839
|
console.log(` ${chalk59.cyan(agentName)}:`);
|
|
15003
14840
|
console.log(` Framework: ${agent.framework}`);
|
|
15004
|
-
if (agent.image) {
|
|
15005
|
-
console.log(` Image: ${agent.image}`);
|
|
15006
|
-
}
|
|
15007
|
-
if (agent.working_dir) {
|
|
15008
|
-
console.log(` Working Dir: ${agent.working_dir}`);
|
|
15009
|
-
}
|
|
15010
14841
|
formatVolumes(agent.volumes ?? [], volumeConfigs);
|
|
15011
14842
|
formatListSection("Skills", agent.skills ?? []);
|
|
15012
14843
|
if (agentSources) {
|
|
@@ -15271,6 +15102,9 @@ function validateTimeFormat(time) {
|
|
|
15271
15102
|
if (minute < 0 || minute > 59) {
|
|
15272
15103
|
return "Minute must be 0-59";
|
|
15273
15104
|
}
|
|
15105
|
+
if (minute % 5 !== 0) {
|
|
15106
|
+
return "Minute must be a multiple of 5 (0, 5, 10, ..., 55)";
|
|
15107
|
+
}
|
|
15274
15108
|
return true;
|
|
15275
15109
|
}
|
|
15276
15110
|
function validateDateFormat(date) {
|
|
@@ -15457,7 +15291,7 @@ async function gatherFrequency(optionFrequency, existingFrequency) {
|
|
|
15457
15291
|
if (!isInteractive()) {
|
|
15458
15292
|
throw new Error("--frequency is required (daily|weekly|monthly|once|loop)");
|
|
15459
15293
|
}
|
|
15460
|
-
const defaultIndex = existingFrequency ? FREQUENCY_CHOICES.findIndex((
|
|
15294
|
+
const defaultIndex = existingFrequency ? FREQUENCY_CHOICES.findIndex((c27) => c27.value === existingFrequency) : 0;
|
|
15461
15295
|
frequency = await promptSelect(
|
|
15462
15296
|
"Schedule frequency",
|
|
15463
15297
|
FREQUENCY_CHOICES,
|
|
@@ -15482,7 +15316,7 @@ async function gatherDay(frequency, optionDay, existingDay) {
|
|
|
15482
15316
|
throw new Error("--day is required for weekly/monthly");
|
|
15483
15317
|
}
|
|
15484
15318
|
if (frequency === "weekly") {
|
|
15485
|
-
const defaultDayIndex = existingDay !== void 0 ? DAY_OF_WEEK_CHOICES.findIndex((
|
|
15319
|
+
const defaultDayIndex = existingDay !== void 0 ? DAY_OF_WEEK_CHOICES.findIndex((c27) => c27.value === existingDay) : 0;
|
|
15486
15320
|
const day2 = await promptSelect(
|
|
15487
15321
|
"Day of week",
|
|
15488
15322
|
DAY_OF_WEEK_CHOICES,
|
|
@@ -16932,7 +16766,7 @@ import chalk76 from "chalk";
|
|
|
16932
16766
|
var listCommand13 = new Command86().name("list").alias("ls").description("List all connectors and their status").action(
|
|
16933
16767
|
withErrorHandler(async () => {
|
|
16934
16768
|
const result = await listConnectors();
|
|
16935
|
-
const connectedMap = new Map(result.connectors.map((
|
|
16769
|
+
const connectedMap = new Map(result.connectors.map((c27) => [c27.type, c27]));
|
|
16936
16770
|
const allTypesRaw = Object.keys(CONNECTOR_TYPES);
|
|
16937
16771
|
const allTypes = [];
|
|
16938
16772
|
for (const type2 of allTypesRaw) {
|
|
@@ -17493,16 +17327,16 @@ async function handleModelProvider(ctx) {
|
|
|
17493
17327
|
const providerType = await step.prompt(
|
|
17494
17328
|
() => promptSelect(
|
|
17495
17329
|
"Select provider type:",
|
|
17496
|
-
choices.map((
|
|
17497
|
-
title:
|
|
17498
|
-
value:
|
|
17330
|
+
choices.map((c27) => ({
|
|
17331
|
+
title: c27.label,
|
|
17332
|
+
value: c27.type
|
|
17499
17333
|
}))
|
|
17500
17334
|
)
|
|
17501
17335
|
);
|
|
17502
17336
|
if (!providerType) {
|
|
17503
17337
|
process.exit(0);
|
|
17504
17338
|
}
|
|
17505
|
-
const selectedChoice = choices.find((
|
|
17339
|
+
const selectedChoice = choices.find((c27) => c27.type === providerType);
|
|
17506
17340
|
if (selectedChoice?.helpText) {
|
|
17507
17341
|
for (const line of selectedChoice.helpText.split("\n")) {
|
|
17508
17342
|
step.detail(chalk82.dim(line));
|
|
@@ -17856,13 +17690,13 @@ var upgradeCommand = new Command94().name("upgrade").description("Upgrade vm0 CL
|
|
|
17856
17690
|
if (latestVersion === null) {
|
|
17857
17691
|
throw new Error("Could not check for updates. Please try again later.");
|
|
17858
17692
|
}
|
|
17859
|
-
if (latestVersion === "9.
|
|
17860
|
-
console.log(chalk86.green(`\u2713 Already up to date (${"9.
|
|
17693
|
+
if (latestVersion === "9.66.0") {
|
|
17694
|
+
console.log(chalk86.green(`\u2713 Already up to date (${"9.66.0"})`));
|
|
17861
17695
|
return;
|
|
17862
17696
|
}
|
|
17863
17697
|
console.log(
|
|
17864
17698
|
chalk86.yellow(
|
|
17865
|
-
`Current version: ${"9.
|
|
17699
|
+
`Current version: ${"9.66.0"} -> Latest version: ${latestVersion}`
|
|
17866
17700
|
)
|
|
17867
17701
|
);
|
|
17868
17702
|
console.log();
|
|
@@ -17889,7 +17723,7 @@ var upgradeCommand = new Command94().name("upgrade").description("Upgrade vm0 CL
|
|
|
17889
17723
|
const success = await performUpgrade(packageManager);
|
|
17890
17724
|
if (success) {
|
|
17891
17725
|
console.log(
|
|
17892
|
-
chalk86.green(`\u2713 Upgraded from ${"9.
|
|
17726
|
+
chalk86.green(`\u2713 Upgraded from ${"9.66.0"} to ${latestVersion}`)
|
|
17893
17727
|
);
|
|
17894
17728
|
return;
|
|
17895
17729
|
}
|
|
@@ -17903,7 +17737,7 @@ var upgradeCommand = new Command94().name("upgrade").description("Upgrade vm0 CL
|
|
|
17903
17737
|
|
|
17904
17738
|
// src/index.ts
|
|
17905
17739
|
var program = new Command95();
|
|
17906
|
-
program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.
|
|
17740
|
+
program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.66.0");
|
|
17907
17741
|
program.addCommand(authCommand);
|
|
17908
17742
|
program.addCommand(infoCommand);
|
|
17909
17743
|
program.addCommand(composeCommand);
|