@mutagent/cli 0.2.31 → 0.2.33
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/dist/bin/cli.js +82 -11
- package/package.json +2 -2
package/dist/bin/cli.js
CHANGED
|
@@ -21920,7 +21920,7 @@ Examples:
|
|
|
21920
21920
|
${chalk11.dim("$")} printf %s "$OPENAI_API_KEY" | mutagent providers add --provider openai --name "My OpenAI" --api-key-stdin
|
|
21921
21921
|
${chalk11.dim("$")} mutagent providers add --provider openai --name "My OpenAI" --api-key $OPENAI_API_KEY
|
|
21922
21922
|
${chalk11.dim("$")} mutagent providers add --provider azure --name "Azure GPT" --api-key $KEY \\
|
|
21923
|
-
--hosted-family openai --resource-endpoint https://my.openai.azure.com --deployment-name gpt-5
|
|
21923
|
+
--hosted-family openai --resource-endpoint https://my.openai.azure.com --deployment-name gpt-5.6-sol
|
|
21924
21924
|
${chalk11.dim("$")} mutagent providers add --provider bedrock --name "Bedrock Claude" --api-key $KEY --region us-east-1
|
|
21925
21925
|
${chalk11.dim("$")} mutagent providers add --provider custom --name "My gateway" --api-key $KEY \\
|
|
21926
21926
|
--base-url https://llm.example.com/v1 --api-format anthropic
|
|
@@ -22284,6 +22284,25 @@ var harnessProviderIdSchema = z2.string().min(1).max(100).regex(/^[a-zA-Z0-9][a-
|
|
|
22284
22284
|
var api = z2.enum(["openai-completions", "openai-responses", "anthropic-messages"]);
|
|
22285
22285
|
var rate = z2.number().nonnegative().max(1e9);
|
|
22286
22286
|
var cost = z2.object({ input: rate, output: rate, cacheRead: rate, cacheWrite: rate }).strict();
|
|
22287
|
+
var count = z2.number().int().min(1).max(1e9);
|
|
22288
|
+
var inputLimits = z2.object({
|
|
22289
|
+
maxRequestBytes: count.optional(),
|
|
22290
|
+
images: z2.object({
|
|
22291
|
+
resize: z2.object({
|
|
22292
|
+
maxWidth: count.optional(),
|
|
22293
|
+
maxHeight: count.optional(),
|
|
22294
|
+
maxBytes: count.optional(),
|
|
22295
|
+
jpegQuality: z2.number().int().min(1).max(100).optional()
|
|
22296
|
+
}).strict().optional(),
|
|
22297
|
+
maxPerMessage: count.optional(),
|
|
22298
|
+
maxPerRequest: count.optional()
|
|
22299
|
+
}).strict().optional()
|
|
22300
|
+
}).strict();
|
|
22301
|
+
var promptCache = z2.object({
|
|
22302
|
+
short: z2.number().positive().max(1e9).optional(),
|
|
22303
|
+
long: z2.number().positive().max(1e9).optional()
|
|
22304
|
+
}).strict();
|
|
22305
|
+
var fallbackModel = z2.object({ provider: harnessProviderIdSchema, model: safeId, cost }).strict();
|
|
22287
22306
|
var compat = z2.object({
|
|
22288
22307
|
supportsStore: z2.boolean().optional(),
|
|
22289
22308
|
supportsDeveloperRole: z2.boolean().optional(),
|
|
@@ -22296,7 +22315,6 @@ var compat = z2.object({
|
|
|
22296
22315
|
supportsStrictMode: z2.boolean().optional(),
|
|
22297
22316
|
supportsTemperature: z2.boolean().optional(),
|
|
22298
22317
|
supportsStrictTools: z2.boolean().optional(),
|
|
22299
|
-
supportsToolReferences: z2.boolean().optional(),
|
|
22300
22318
|
supportsEagerToolInputStreaming: z2.boolean().optional(),
|
|
22301
22319
|
supportsCacheControlOnTools: z2.boolean().optional(),
|
|
22302
22320
|
forceAdaptiveThinking: z2.boolean().optional(),
|
|
@@ -22314,7 +22332,16 @@ var compat = z2.object({
|
|
|
22314
22332
|
"qwen-chat-template",
|
|
22315
22333
|
"string-thinking",
|
|
22316
22334
|
"ant-ling"
|
|
22317
|
-
]).optional()
|
|
22335
|
+
]).optional(),
|
|
22336
|
+
supportsFinishReason: z2.boolean().optional(),
|
|
22337
|
+
supportsMaxOutputTokens: z2.boolean().optional(),
|
|
22338
|
+
supportsMidConvoEffort: z2.boolean().optional(),
|
|
22339
|
+
vllmPriority: z2.number().min(-1e9).max(1e9).optional(),
|
|
22340
|
+
allowedFallbackModels: z2.array(fallbackModel).max(3).optional(),
|
|
22341
|
+
supportsToolReferences: z2.boolean().optional(),
|
|
22342
|
+
supportsToolSearch: z2.boolean().optional(),
|
|
22343
|
+
supportsAdditionalTools: z2.boolean().optional(),
|
|
22344
|
+
deferredToolsMode: z2.enum(["kimi"]).optional()
|
|
22318
22345
|
}).strict();
|
|
22319
22346
|
var thinkingLevelMap = z2.object({
|
|
22320
22347
|
off: safeName.nullable().optional(),
|
|
@@ -22331,6 +22358,8 @@ var capabilities = {
|
|
|
22331
22358
|
input: z2.array(z2.enum(["text", "image"])).min(1).max(2).optional(),
|
|
22332
22359
|
contextWindow: z2.number().int().positive().max(1e9).optional(),
|
|
22333
22360
|
maxTokens: z2.number().int().positive().max(1e9).optional(),
|
|
22361
|
+
inputLimits: inputLimits.optional(),
|
|
22362
|
+
promptCache: promptCache.optional(),
|
|
22334
22363
|
thinkingLevelMap: thinkingLevelMap.optional(),
|
|
22335
22364
|
compat: compat.optional()
|
|
22336
22365
|
};
|
|
@@ -22385,6 +22414,48 @@ function parseHarnessModelConfig(value) {
|
|
|
22385
22414
|
return;
|
|
22386
22415
|
}
|
|
22387
22416
|
}
|
|
22417
|
+
var SHOWN_FIELD = /^[a-z][A-Za-z]{0,47}$/;
|
|
22418
|
+
function fieldPath(path, secrets) {
|
|
22419
|
+
const known = secrets.filter((secret) => secret !== "");
|
|
22420
|
+
let label = "";
|
|
22421
|
+
path.forEach((segment, index) => {
|
|
22422
|
+
if (typeof segment === "number") {
|
|
22423
|
+
label += `[${String(segment)}]`;
|
|
22424
|
+
return;
|
|
22425
|
+
}
|
|
22426
|
+
const name = String(segment);
|
|
22427
|
+
const shown = SHOWN_FIELD.test(name) && !known.some((secret) => name.includes(secret) || secret.includes(name));
|
|
22428
|
+
const part = path[index - 1] === "modelOverrides" ? "<model id>" : shown ? name : "<withheld>";
|
|
22429
|
+
label += label === "" ? part : `.${part}`;
|
|
22430
|
+
});
|
|
22431
|
+
return label === "" ? "(root)" : label;
|
|
22432
|
+
}
|
|
22433
|
+
function describeHarnessConfigRefusal(value, secrets = []) {
|
|
22434
|
+
let text;
|
|
22435
|
+
try {
|
|
22436
|
+
text = JSON.stringify(value, (key, member) => {
|
|
22437
|
+
if (key === "prototype" || Object.hasOwn(Object.prototype, key))
|
|
22438
|
+
throw new Error("Unsafe configuration field");
|
|
22439
|
+
return member;
|
|
22440
|
+
});
|
|
22441
|
+
} catch {
|
|
22442
|
+
return "unsupported models.json field name (__proto__, constructor or prototype); remove it";
|
|
22443
|
+
}
|
|
22444
|
+
if (text !== undefined && Buffer.byteLength(text, "utf8") > HARNESS_CONFIG_MAX_BYTES) {
|
|
22445
|
+
return "unsupported models.json configuration: larger than 64 KiB; declare fewer models or overrides";
|
|
22446
|
+
}
|
|
22447
|
+
const parsed = harnessModelConfigSchema.safeParse(value);
|
|
22448
|
+
if (parsed.success)
|
|
22449
|
+
return;
|
|
22450
|
+
for (const issue of parsed.error.issues) {
|
|
22451
|
+
if (issue.code !== "unrecognized_keys")
|
|
22452
|
+
continue;
|
|
22453
|
+
const field = fieldPath([...issue.path, issue.keys[0] ?? ""], secrets);
|
|
22454
|
+
return `unsupported models.json field "${field}": not a pi 0.84.2 or 1.0.0 setting this transport ` + "carries (headers, companion credentials and nested endpoints never are); fix the spelling or remove it";
|
|
22455
|
+
}
|
|
22456
|
+
const field = fieldPath(parsed.error.issues[0]?.path ?? [], secrets);
|
|
22457
|
+
return `unsupported models.json value at "${field}": wrong type, out of bounds, or a duplicate or ` + "invalid id; correct it against the pi models.json schema";
|
|
22458
|
+
}
|
|
22388
22459
|
|
|
22389
22460
|
// src/lib/harness-providers.ts
|
|
22390
22461
|
var HARNESS_PROVIDER_METADATA_KEY = "harnessProvider";
|
|
@@ -22592,7 +22663,7 @@ function readLocalProviderStore(agentDir) {
|
|
|
22592
22663
|
const { apiKey: _key, baseUrl: _url, ...native } = raw;
|
|
22593
22664
|
const harnessConfig = parseHarnessModelConfig(native);
|
|
22594
22665
|
const builtin = HARNESS_CATALOG_IDS.includes(name) || Object.hasOwn(HARNESS_CUSTOM_ENDPOINTS, name);
|
|
22595
|
-
let unsupported = harnessConfig === undefined ?
|
|
22666
|
+
let unsupported = harnessConfig === undefined ? describeHarnessConfigRefusal(native, [...secrets]) : undefined;
|
|
22596
22667
|
if (baseUrl) {
|
|
22597
22668
|
try {
|
|
22598
22669
|
const url = new URL(baseUrl);
|
|
@@ -29969,8 +30040,8 @@ function registerModelsCommand(helix) {
|
|
|
29969
30040
|
Examples:
|
|
29970
30041
|
${chalk31.dim("$")} mutagent helix models
|
|
29971
30042
|
${chalk31.dim("$")} mutagent helix models --json
|
|
29972
|
-
${chalk31.dim("$")} mutagent helix models default zai-coding-cn/glm-5.
|
|
29973
|
-
${chalk31.dim("$")} mutagent helix models default zai-coding-cn/glm-5.
|
|
30043
|
+
${chalk31.dim("$")} mutagent helix models default zai-coding-cn/glm-5.3
|
|
30044
|
+
${chalk31.dim("$")} mutagent helix models default zai-coding-cn/glm-5.3 openai/gpt-5.6-sol
|
|
29974
30045
|
|
|
29975
30046
|
Lists the models your workspace's active LLM providers ('mutagent providers') give
|
|
29976
30047
|
Helix in the cloud. Each id is provider/model: pass it as --model to 'mutagent helix'
|
|
@@ -29999,8 +30070,8 @@ AI Agent Directive:
|
|
|
29999
30070
|
});
|
|
30000
30071
|
models.command("default").description("Set the workspace default model for Helix in the cloud, and its fallbacks").argument("[models...]", "Model ids from 'mutagent helix models'; the first is the default").option("--clear", "Remove the default model and every fallback").addHelpText("after", `
|
|
30001
30072
|
Examples:
|
|
30002
|
-
${chalk31.dim("$")} mutagent helix models default zai-coding-cn/glm-5.
|
|
30003
|
-
${chalk31.dim("$")} mutagent helix models default zai-coding-cn/glm-5.
|
|
30073
|
+
${chalk31.dim("$")} mutagent helix models default zai-coding-cn/glm-5.3
|
|
30074
|
+
${chalk31.dim("$")} mutagent helix models default zai-coding-cn/glm-5.3 openai/gpt-5.6-sol
|
|
30004
30075
|
${chalk31.dim("$")} mutagent helix models default --clear
|
|
30005
30076
|
|
|
30006
30077
|
Replaces the list. The first id is the default; later ids are used in order when
|
|
@@ -37515,8 +37586,8 @@ function rescopeProviderApiKeyFlag(rawArgs) {
|
|
|
37515
37586
|
}
|
|
37516
37587
|
// src/commands/helix/helix-surface.json
|
|
37517
37588
|
var helix_surface_default = {
|
|
37518
|
-
helixVersion: "0.
|
|
37519
|
-
harnessVersion: "0.
|
|
37589
|
+
helixVersion: "0.3.0",
|
|
37590
|
+
harnessVersion: "1.0.0",
|
|
37520
37591
|
launcher: {
|
|
37521
37592
|
commands: [
|
|
37522
37593
|
"agent",
|
|
@@ -38029,4 +38100,4 @@ if (process.env.CLI_VERSION) {
|
|
|
38029
38100
|
}
|
|
38030
38101
|
runCli(process.argv.slice(2), cliVersion);
|
|
38031
38102
|
|
|
38032
|
-
//# debugId=
|
|
38103
|
+
//# debugId=B38C807312D3A9DA64756E2164756E21
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mutagent/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.33",
|
|
4
4
|
"description": "Bun-native CLI for the MutagenT AI platform - auth, provider config, and lifecycle-tool installer for AI-native workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@inquirer/prompts": "^8.7.2",
|
|
48
|
-
"@mutagent/sdk": "0.8.
|
|
48
|
+
"@mutagent/sdk": "0.8.17",
|
|
49
49
|
"@sinclair/typebox": "^0.34.0",
|
|
50
50
|
"chalk": "^5.3.0",
|
|
51
51
|
"commander": "^12.1.0",
|