@vm0/cli 9.122.8 → 9.122.10
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/{chunk-4TLRYOVY.js → chunk-GMBF7S6J.js} +172 -32
- package/{chunk-4TLRYOVY.js.map → chunk-GMBF7S6J.js.map} +1 -1
- package/index.js +9 -9
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/zero.js +2 -2
- package/zero.js.map +1 -1
|
@@ -73642,7 +73642,7 @@ if (DSN) {
|
|
|
73642
73642
|
init2({
|
|
73643
73643
|
dsn: DSN,
|
|
73644
73644
|
environment: process.env.SENTRY_ENVIRONMENT ?? "production",
|
|
73645
|
-
release: "9.122.
|
|
73645
|
+
release: "9.122.10",
|
|
73646
73646
|
sendDefaultPii: false,
|
|
73647
73647
|
tracesSampleRate: 0,
|
|
73648
73648
|
shutdownTimeout: 500,
|
|
@@ -73661,7 +73661,7 @@ if (DSN) {
|
|
|
73661
73661
|
}
|
|
73662
73662
|
});
|
|
73663
73663
|
setContext("cli", {
|
|
73664
|
-
version: "9.122.
|
|
73664
|
+
version: "9.122.10",
|
|
73665
73665
|
command: process.argv.slice(2).join(" ")
|
|
73666
73666
|
});
|
|
73667
73667
|
setContext("runtime", {
|
|
@@ -108474,6 +108474,78 @@ init_esm_shims();
|
|
|
108474
108474
|
|
|
108475
108475
|
// ../../packages/core/src/contracts/firewalls.ts
|
|
108476
108476
|
init_esm_shims();
|
|
108477
|
+
|
|
108478
|
+
// ../../packages/core/src/contracts/segment-parser.ts
|
|
108479
|
+
init_esm_shims();
|
|
108480
|
+
var ERROR_HINT = 'use "{name}", "prefix{name}", "{name}suffix", or "prefix{name}suffix"';
|
|
108481
|
+
function parseSegment(seg) {
|
|
108482
|
+
const openCount = countChar(seg, "{");
|
|
108483
|
+
const closeCount = countChar(seg, "}");
|
|
108484
|
+
if (openCount === 0 && closeCount === 0) {
|
|
108485
|
+
return { kind: "literal", value: seg };
|
|
108486
|
+
}
|
|
108487
|
+
if (openCount !== closeCount) {
|
|
108488
|
+
return {
|
|
108489
|
+
kind: "error",
|
|
108490
|
+
reason: `unbalanced brace in segment "${seg}" \u2014 ${ERROR_HINT}`
|
|
108491
|
+
};
|
|
108492
|
+
}
|
|
108493
|
+
const open1 = seg.indexOf("{");
|
|
108494
|
+
const close1 = seg.indexOf("}");
|
|
108495
|
+
if (close1 < open1) {
|
|
108496
|
+
return {
|
|
108497
|
+
kind: "error",
|
|
108498
|
+
reason: `unbalanced brace in segment "${seg}" \u2014 ${ERROR_HINT}`
|
|
108499
|
+
};
|
|
108500
|
+
}
|
|
108501
|
+
if (openCount >= 2) {
|
|
108502
|
+
const open2 = seg.indexOf("{", close1 + 1);
|
|
108503
|
+
if (close1 + 1 === open2) {
|
|
108504
|
+
return {
|
|
108505
|
+
kind: "error",
|
|
108506
|
+
reason: `adjacent parameters in segment "${seg}" \u2014 only one parameter per segment is allowed; ${ERROR_HINT}`
|
|
108507
|
+
};
|
|
108508
|
+
}
|
|
108509
|
+
return {
|
|
108510
|
+
kind: "error",
|
|
108511
|
+
reason: `literal-separated parameters in segment "${seg}" \u2014 only one parameter per segment is allowed; ${ERROR_HINT}`
|
|
108512
|
+
};
|
|
108513
|
+
}
|
|
108514
|
+
const prefix = seg.slice(0, open1);
|
|
108515
|
+
const content = seg.slice(open1 + 1, close1);
|
|
108516
|
+
const suffix = seg.slice(close1 + 1);
|
|
108517
|
+
if (prefix.includes("{") || prefix.includes("}") || suffix.includes("{") || suffix.includes("}")) {
|
|
108518
|
+
return {
|
|
108519
|
+
kind: "error",
|
|
108520
|
+
reason: `unbalanced brace in segment "${seg}" \u2014 ${ERROR_HINT}`
|
|
108521
|
+
};
|
|
108522
|
+
}
|
|
108523
|
+
let greedy = "";
|
|
108524
|
+
let name = content;
|
|
108525
|
+
if (content.length > 0) {
|
|
108526
|
+
const last = content[content.length - 1];
|
|
108527
|
+
if (last === "+" || last === "*") {
|
|
108528
|
+
greedy = last;
|
|
108529
|
+
name = content.slice(0, -1);
|
|
108530
|
+
}
|
|
108531
|
+
}
|
|
108532
|
+
if (name.length === 0) {
|
|
108533
|
+
return {
|
|
108534
|
+
kind: "error",
|
|
108535
|
+
reason: `empty parameter name in segment "${seg}" \u2014 ${ERROR_HINT}`
|
|
108536
|
+
};
|
|
108537
|
+
}
|
|
108538
|
+
return { kind: "param", prefix, name, suffix, greedy };
|
|
108539
|
+
}
|
|
108540
|
+
function countChar(s, ch) {
|
|
108541
|
+
let n = 0;
|
|
108542
|
+
for (let i = 0; i < s.length; i++) {
|
|
108543
|
+
if (s[i] === ch) n++;
|
|
108544
|
+
}
|
|
108545
|
+
return n;
|
|
108546
|
+
}
|
|
108547
|
+
|
|
108548
|
+
// ../../packages/core/src/contracts/firewalls.ts
|
|
108477
108549
|
var firewallPermissionSchema = external_exports.object({
|
|
108478
108550
|
name: external_exports.string(),
|
|
108479
108551
|
description: external_exports.string().optional(),
|
|
@@ -110144,6 +110216,21 @@ var VM0_MODEL_TO_PROVIDER = {
|
|
|
110144
110216
|
"claude-opus-4-7": {
|
|
110145
110217
|
concreteType: "anthropic-api-key",
|
|
110146
110218
|
vendor: "anthropic"
|
|
110219
|
+
},
|
|
110220
|
+
"kimi-k2.5": {
|
|
110221
|
+
concreteType: "moonshot-api-key",
|
|
110222
|
+
vendor: "moonshot",
|
|
110223
|
+
featureFlag: "vm0KimiModel" /* Vm0KimiModel */
|
|
110224
|
+
},
|
|
110225
|
+
"glm-5.1": {
|
|
110226
|
+
concreteType: "zai-api-key",
|
|
110227
|
+
vendor: "zai",
|
|
110228
|
+
featureFlag: "vm0GlmModel" /* Vm0GlmModel */
|
|
110229
|
+
},
|
|
110230
|
+
"MiniMax-M2.7": {
|
|
110231
|
+
concreteType: "minimax-api-key",
|
|
110232
|
+
vendor: "minimax",
|
|
110233
|
+
featureFlag: "vm0MinimaxModel" /* Vm0MinimaxModel */
|
|
110147
110234
|
}
|
|
110148
110235
|
};
|
|
110149
110236
|
var MODEL_PROVIDER_TYPES = {
|
|
@@ -110245,8 +110332,8 @@ var MODEL_PROVIDER_TYPES = {
|
|
|
110245
110332
|
API_TIMEOUT_MS: "3000000",
|
|
110246
110333
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1"
|
|
110247
110334
|
},
|
|
110248
|
-
models: ["MiniMax-M2.1"],
|
|
110249
|
-
defaultModel: "MiniMax-M2.
|
|
110335
|
+
models: ["MiniMax-M2.7", "MiniMax-M2.1"],
|
|
110336
|
+
defaultModel: "MiniMax-M2.7"
|
|
110250
110337
|
},
|
|
110251
110338
|
"deepseek-api-key": {
|
|
110252
110339
|
framework: "claude-code",
|
|
@@ -110284,8 +110371,8 @@ var MODEL_PROVIDER_TYPES = {
|
|
|
110284
110371
|
CLAUDE_CODE_SUBAGENT_MODEL: "$model",
|
|
110285
110372
|
API_TIMEOUT_MS: "3000000"
|
|
110286
110373
|
},
|
|
110287
|
-
models: ["glm-5", "glm-4.7", "glm-4.5-air"],
|
|
110288
|
-
defaultModel: "glm-
|
|
110374
|
+
models: ["glm-5.1", "glm-5", "glm-4.7", "glm-4.5-air"],
|
|
110375
|
+
defaultModel: "glm-5.1"
|
|
110289
110376
|
},
|
|
110290
110377
|
"vercel-ai-gateway": {
|
|
110291
110378
|
framework: "claude-code",
|
|
@@ -110721,7 +110808,14 @@ var chatThreadListItemSchema = external_exports.object({
|
|
|
110721
110808
|
* Threads whose last message is archived are filtered out server-side.
|
|
110722
110809
|
*/
|
|
110723
110810
|
isRead: external_exports.boolean(),
|
|
110724
|
-
isArchived: external_exports.boolean()
|
|
110811
|
+
isArchived: external_exports.boolean(),
|
|
110812
|
+
/**
|
|
110813
|
+
* True when the thread has at least one non-terminal run
|
|
110814
|
+
* (queued / pending / running). Drives the sidebar running indicator,
|
|
110815
|
+
* which is mutually exclusive with the unread dot and shares the
|
|
110816
|
+
* `ChatThreadReadIndicator` feature switch gate.
|
|
110817
|
+
*/
|
|
110818
|
+
running: external_exports.boolean()
|
|
110725
110819
|
});
|
|
110726
110820
|
var toolSummaryEntrySchema = external_exports.object({
|
|
110727
110821
|
kind: external_exports.literal("tool"),
|
|
@@ -110915,8 +111009,7 @@ var chatThreadMessagesContract = c11.router({
|
|
|
110915
111009
|
}),
|
|
110916
111010
|
responses: {
|
|
110917
111011
|
200: external_exports.object({
|
|
110918
|
-
messages: external_exports.array(pagedChatMessageSchema)
|
|
110919
|
-
hasMore: external_exports.boolean()
|
|
111012
|
+
messages: external_exports.array(pagedChatMessageSchema)
|
|
110920
111013
|
}),
|
|
110921
111014
|
401: apiErrorSchema,
|
|
110922
111015
|
404: apiErrorSchema
|
|
@@ -111269,32 +111362,45 @@ var MAX_RESPONSE_SIZE = 128 * 1024;
|
|
|
111269
111362
|
|
|
111270
111363
|
// ../../packages/core/src/contracts/firewall-rule-matcher.ts
|
|
111271
111364
|
init_esm_shims();
|
|
111272
|
-
|
|
111365
|
+
function matchMixedSegment(runtime, prefix, suffix) {
|
|
111366
|
+
if (!runtime.startsWith(prefix)) return null;
|
|
111367
|
+
if (!runtime.endsWith(suffix)) return null;
|
|
111368
|
+
if (runtime.length <= prefix.length + suffix.length) return null;
|
|
111369
|
+
return runtime.slice(prefix.length, runtime.length - suffix.length);
|
|
111370
|
+
}
|
|
111273
111371
|
function matchFirewallPath(path3, pattern) {
|
|
111274
111372
|
const pathSegs = path3.split("/").filter(Boolean);
|
|
111275
111373
|
const patternSegs = pattern.split("/").filter(Boolean);
|
|
111276
111374
|
const params = {};
|
|
111277
111375
|
let pi = 0;
|
|
111278
111376
|
for (const seg of patternSegs) {
|
|
111279
|
-
const
|
|
111280
|
-
if (
|
|
111281
|
-
|
|
111282
|
-
if (
|
|
111283
|
-
if (pi >= pathSegs.length) return null;
|
|
111284
|
-
params[name.slice(0, -1)] = pathSegs.slice(pi).join("/");
|
|
111285
|
-
return params;
|
|
111286
|
-
}
|
|
111287
|
-
if (name.endsWith("*")) {
|
|
111288
|
-
params[name.slice(0, -1)] = pathSegs.slice(pi).join("/");
|
|
111289
|
-
return params;
|
|
111290
|
-
}
|
|
111291
|
-
if (pi >= pathSegs.length) return null;
|
|
111292
|
-
params[name] = pathSegs[pi];
|
|
111377
|
+
const parsed = parseSegment(seg);
|
|
111378
|
+
if (parsed.kind === "error") return null;
|
|
111379
|
+
if (parsed.kind === "literal") {
|
|
111380
|
+
if (pi >= pathSegs.length || pathSegs[pi] !== parsed.value) return null;
|
|
111293
111381
|
pi++;
|
|
111382
|
+
continue;
|
|
111383
|
+
}
|
|
111384
|
+
const { name, prefix, suffix, greedy } = parsed;
|
|
111385
|
+
if (greedy === "+") {
|
|
111386
|
+
if (pi >= pathSegs.length) return null;
|
|
111387
|
+
params[name] = pathSegs.slice(pi).join("/");
|
|
111388
|
+
return params;
|
|
111389
|
+
}
|
|
111390
|
+
if (greedy === "*") {
|
|
111391
|
+
params[name] = pathSegs.slice(pi).join("/");
|
|
111392
|
+
return params;
|
|
111393
|
+
}
|
|
111394
|
+
if (pi >= pathSegs.length) return null;
|
|
111395
|
+
const runtime = pathSegs[pi];
|
|
111396
|
+
if (prefix === "" && suffix === "") {
|
|
111397
|
+
params[name] = runtime;
|
|
111294
111398
|
} else {
|
|
111295
|
-
|
|
111296
|
-
|
|
111399
|
+
const captured = matchMixedSegment(runtime, prefix, suffix);
|
|
111400
|
+
if (captured === null) return null;
|
|
111401
|
+
params[name] = captured;
|
|
111297
111402
|
}
|
|
111403
|
+
pi++;
|
|
111298
111404
|
}
|
|
111299
111405
|
if (pi !== pathSegs.length) return null;
|
|
111300
111406
|
return params;
|
|
@@ -111562,20 +111668,26 @@ var zeroAgentResponseSchema = external_exports.object({
|
|
|
111562
111668
|
sound: external_exports.string().nullable(),
|
|
111563
111669
|
avatarUrl: external_exports.string().nullable(),
|
|
111564
111670
|
permissionPolicies: firewallPoliciesSchema.nullable(),
|
|
111565
|
-
customSkills: external_exports.array(external_exports.string()).default([])
|
|
111671
|
+
customSkills: external_exports.array(external_exports.string()).default([]),
|
|
111672
|
+
modelProviderId: external_exports.string().uuid().nullable().default(null),
|
|
111673
|
+
selectedModel: external_exports.string().nullable().default(null)
|
|
111566
111674
|
});
|
|
111567
111675
|
var zeroAgentRequestSchema = external_exports.object({
|
|
111568
111676
|
description: external_exports.string().optional(),
|
|
111569
111677
|
displayName: external_exports.string().optional(),
|
|
111570
111678
|
sound: external_exports.string().optional(),
|
|
111571
111679
|
avatarUrl: external_exports.string().optional(),
|
|
111572
|
-
customSkills: external_exports.array(zeroAgentCustomSkillNameSchema).optional()
|
|
111680
|
+
customSkills: external_exports.array(zeroAgentCustomSkillNameSchema).optional(),
|
|
111681
|
+
modelProviderId: external_exports.string().uuid().nullable().optional(),
|
|
111682
|
+
selectedModel: external_exports.string().nullable().optional()
|
|
111573
111683
|
});
|
|
111574
111684
|
var zeroAgentMetadataRequestSchema = external_exports.object({
|
|
111575
111685
|
displayName: external_exports.string().optional(),
|
|
111576
111686
|
description: external_exports.string().optional(),
|
|
111577
111687
|
sound: external_exports.string().optional(),
|
|
111578
|
-
avatarUrl: external_exports.string().nullable().optional()
|
|
111688
|
+
avatarUrl: external_exports.string().nullable().optional(),
|
|
111689
|
+
modelProviderId: external_exports.string().uuid().nullable().optional(),
|
|
111690
|
+
selectedModel: external_exports.string().nullable().optional()
|
|
111579
111691
|
});
|
|
111580
111692
|
var zeroAgentInstructionsResponseSchema = external_exports.object({
|
|
111581
111693
|
content: external_exports.string().nullable(),
|
|
@@ -112682,7 +112794,9 @@ var scheduleResponseSchema = external_exports.object({
|
|
|
112682
112794
|
retryStartedAt: external_exports.string().nullable(),
|
|
112683
112795
|
consecutiveFailures: external_exports.number(),
|
|
112684
112796
|
createdAt: external_exports.string(),
|
|
112685
|
-
updatedAt: external_exports.string()
|
|
112797
|
+
updatedAt: external_exports.string(),
|
|
112798
|
+
modelProviderId: external_exports.string().uuid().nullable().default(null),
|
|
112799
|
+
selectedModel: external_exports.string().nullable().default(null)
|
|
112686
112800
|
});
|
|
112687
112801
|
var scheduleListResponseSchema = external_exports.object({
|
|
112688
112802
|
schedules: external_exports.array(scheduleResponseSchema)
|
|
@@ -112702,7 +112816,9 @@ var zeroDeployScheduleRequestSchema = external_exports.object({
|
|
|
112702
112816
|
appendSystemPrompt: external_exports.string().optional(),
|
|
112703
112817
|
volumeVersions: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
112704
112818
|
agentId: external_exports.string().uuid("Invalid agent ID"),
|
|
112705
|
-
enabled: external_exports.boolean().optional()
|
|
112819
|
+
enabled: external_exports.boolean().optional(),
|
|
112820
|
+
modelProviderId: external_exports.string().uuid().nullable().optional(),
|
|
112821
|
+
selectedModel: external_exports.string().nullable().optional()
|
|
112706
112822
|
}).refine(
|
|
112707
112823
|
(data) => {
|
|
112708
112824
|
const triggers = [
|
|
@@ -114725,10 +114841,34 @@ var FEATURE_SWITCHES = {
|
|
|
114725
114841
|
description: "Enable the Zoom connector (OAuth 2.0) for meetings, past participants, and cloud recordings access",
|
|
114726
114842
|
enabled: false
|
|
114727
114843
|
},
|
|
114844
|
+
["vm0KimiModel" /* Vm0KimiModel */]: {
|
|
114845
|
+
maintainer: "ethan@vm0.ai",
|
|
114846
|
+
description: "Expose Moonshot Kimi K2.5 as a selectable model under the VM0 managed provider",
|
|
114847
|
+
enabled: false,
|
|
114848
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
114849
|
+
},
|
|
114850
|
+
["vm0GlmModel" /* Vm0GlmModel */]: {
|
|
114851
|
+
maintainer: "ethan@vm0.ai",
|
|
114852
|
+
description: "Expose Z.AI GLM-5.1 as a selectable model under the VM0 managed provider",
|
|
114853
|
+
enabled: false,
|
|
114854
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
114855
|
+
},
|
|
114856
|
+
["vm0MinimaxModel" /* Vm0MinimaxModel */]: {
|
|
114857
|
+
maintainer: "ethan@vm0.ai",
|
|
114858
|
+
description: "Expose MiniMax M2.7 as a selectable model under the VM0 managed provider",
|
|
114859
|
+
enabled: false,
|
|
114860
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
114861
|
+
},
|
|
114728
114862
|
["slackAgentSwitch" /* SlackAgentSwitch */]: {
|
|
114729
114863
|
maintainer: "yuma@vm0.ai",
|
|
114730
114864
|
description: "Per-user agent override in the org-aware Slack app. When enabled for an org, members can choose which agent replies to their Slack mentions / DMs via `/zero switch` (opens an agent picker modal) or the Switch button on the App Home tab. The help text for `/zero help` also lists the switch subcommand. Selecting an alternate agent persists a row in `slack_user_agent_preferences` so the preference follows the user across every Slack workspace joined under the same org, and subsequent mention / DM replies from a non-default agent carry a `Sent via <agent>` footer so it's clear which agent produced the reply. When gated off, the modal, slash subcommand, App Home button, and help line are hidden AND any existing DB preferences are ignored at read time \u2014 every user falls back to the org default agent with no footer. Staff-only during the rollout window defined by `enabledOrgIdHashes`.",
|
|
114731
114865
|
enabled: false
|
|
114866
|
+
},
|
|
114867
|
+
["modelProviderSelection" /* ModelProviderSelection */]: {
|
|
114868
|
+
maintainer: "ethan@vm0.ai",
|
|
114869
|
+
description: "Show the model provider + model picker on the agent profile page and schedule dialog. Allows per-agent and per-schedule model selection, overriding the org default. Staff-only during initial rollout.",
|
|
114870
|
+
enabled: false,
|
|
114871
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
114732
114872
|
}
|
|
114733
114873
|
};
|
|
114734
114874
|
function isFeatureEnabled(key, ctx) {
|
|
@@ -117199,4 +117339,4 @@ undici/lib/web/fetch/body.js:
|
|
|
117199
117339
|
undici/lib/web/websocket/frame.js:
|
|
117200
117340
|
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
|
|
117201
117341
|
*/
|
|
117202
|
-
//# sourceMappingURL=chunk-
|
|
117342
|
+
//# sourceMappingURL=chunk-GMBF7S6J.js.map
|