@autohq/cli 0.1.357 → 0.1.358
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/agent-bridge.js +63 -2
- package/dist/index.js +64 -3
- package/package.json +1 -1
package/dist/agent-bridge.js
CHANGED
|
@@ -23492,7 +23492,7 @@ Object.assign(lookup, {
|
|
|
23492
23492
|
// package.json
|
|
23493
23493
|
var package_default = {
|
|
23494
23494
|
name: "@autohq/cli",
|
|
23495
|
-
version: "0.1.
|
|
23495
|
+
version: "0.1.358",
|
|
23496
23496
|
license: "SEE LICENSE IN README.md",
|
|
23497
23497
|
publishConfig: {
|
|
23498
23498
|
access: "public"
|
|
@@ -25385,13 +25385,35 @@ var AgentReasoningEffortSchema = external_exports.enum([
|
|
|
25385
25385
|
"max"
|
|
25386
25386
|
]);
|
|
25387
25387
|
var OPENROUTER_MODEL_SLUG_PATTERN = /^[A-Za-z0-9][A-Za-z0-9_.-]*(?:\/[A-Za-z0-9][A-Za-z0-9_.:-]*)+$/;
|
|
25388
|
+
var AgentModelOpenRouterProviderPrefsSchema = external_exports.object({
|
|
25389
|
+
allowFallbacks: external_exports.boolean().optional(),
|
|
25390
|
+
order: external_exports.array(external_exports.string().trim().min(1)).min(1).optional(),
|
|
25391
|
+
sort: external_exports.enum(["price", "throughput", "latency"]).optional(),
|
|
25392
|
+
only: external_exports.array(external_exports.string().trim().min(1)).min(1).optional(),
|
|
25393
|
+
ignore: external_exports.array(external_exports.string().trim().min(1)).min(1).optional()
|
|
25394
|
+
}).strict();
|
|
25395
|
+
var AgentModelOpenRouterSchema = external_exports.object({
|
|
25396
|
+
// Fallback chain; the primary id is implicit and prepended at the gateway,
|
|
25397
|
+
// so each entry must be distinct and exclude the primary.
|
|
25398
|
+
models: external_exports.array(external_exports.string().trim().min(1).regex(OPENROUTER_MODEL_SLUG_PATTERN)).min(1).max(3),
|
|
25399
|
+
provider: AgentModelOpenRouterProviderPrefsSchema.optional()
|
|
25400
|
+
}).strict();
|
|
25388
25401
|
var AgentModelSelectionSchema = external_exports.object({
|
|
25389
25402
|
provider: ModelApiTokenProviderSchema.optional(),
|
|
25390
|
-
id: external_exports.string().trim().min(1).max(256)
|
|
25403
|
+
id: external_exports.string().trim().min(1).max(256),
|
|
25404
|
+
openrouter: AgentModelOpenRouterSchema.optional()
|
|
25391
25405
|
}).strict();
|
|
25392
25406
|
var ResolvedAgentModelSelectionSchema = AgentModelSelectionSchema.extend({
|
|
25393
25407
|
provider: ModelApiTokenProviderSchema
|
|
25394
25408
|
});
|
|
25409
|
+
var ModelRoutingOpenRouterSchema = external_exports.object({
|
|
25410
|
+
models: external_exports.array(external_exports.string().min(1)).min(1).max(3),
|
|
25411
|
+
provider: AgentModelOpenRouterProviderPrefsSchema.optional()
|
|
25412
|
+
}).strict();
|
|
25413
|
+
var ModelRoutingConfigSchema = external_exports.object({
|
|
25414
|
+
primaryModelId: external_exports.string().min(1),
|
|
25415
|
+
openrouter: ModelRoutingOpenRouterSchema.optional()
|
|
25416
|
+
}).strict();
|
|
25395
25417
|
var InvalidModelSelectionError = class extends Error {
|
|
25396
25418
|
constructor(message) {
|
|
25397
25419
|
super(message);
|
|
@@ -25495,6 +25517,41 @@ function validateReasoningEffortForHarness(input) {
|
|
|
25495
25517
|
);
|
|
25496
25518
|
}
|
|
25497
25519
|
}
|
|
25520
|
+
function validateAgentModelOpenRouterForHarness(spec, context) {
|
|
25521
|
+
const openrouter = spec.model?.openrouter;
|
|
25522
|
+
if (!openrouter) {
|
|
25523
|
+
return;
|
|
25524
|
+
}
|
|
25525
|
+
if (spec.resolvedModel?.provider !== "openrouter") {
|
|
25526
|
+
context.addIssue({
|
|
25527
|
+
code: external_exports.ZodIssueCode.custom,
|
|
25528
|
+
path: ["model", "openrouter"],
|
|
25529
|
+
message: `model.openrouter is only valid when the resolved provider is openrouter (got ${spec.resolvedModel?.provider ?? "none"})`
|
|
25530
|
+
});
|
|
25531
|
+
return;
|
|
25532
|
+
}
|
|
25533
|
+
const primaryId = spec.resolvedModel.id;
|
|
25534
|
+
const seen = /* @__PURE__ */ new Set();
|
|
25535
|
+
for (const [index, id] of openrouter.models.entries()) {
|
|
25536
|
+
if (id === primaryId) {
|
|
25537
|
+
context.addIssue({
|
|
25538
|
+
code: external_exports.ZodIssueCode.custom,
|
|
25539
|
+
path: ["model", "openrouter", "models", index],
|
|
25540
|
+
message: "model.openrouter.models must not include the primary model id (it is prepended automatically)"
|
|
25541
|
+
});
|
|
25542
|
+
return;
|
|
25543
|
+
}
|
|
25544
|
+
if (seen.has(id)) {
|
|
25545
|
+
context.addIssue({
|
|
25546
|
+
code: external_exports.ZodIssueCode.custom,
|
|
25547
|
+
path: ["model", "openrouter", "models", index],
|
|
25548
|
+
message: "model.openrouter.models must not contain duplicate entries"
|
|
25549
|
+
});
|
|
25550
|
+
return;
|
|
25551
|
+
}
|
|
25552
|
+
seen.add(id);
|
|
25553
|
+
}
|
|
25554
|
+
}
|
|
25498
25555
|
function validateAgentModelFieldsForHarness(spec, context) {
|
|
25499
25556
|
const harness = spec.harness;
|
|
25500
25557
|
if (harness !== "claude-code" && harness !== "codex") {
|
|
@@ -25525,6 +25582,10 @@ function validateAgentModelFieldsForHarness(spec, context) {
|
|
|
25525
25582
|
message: error51 instanceof Error ? error51.message : String(error51)
|
|
25526
25583
|
});
|
|
25527
25584
|
}
|
|
25585
|
+
validateAgentModelOpenRouterForHarness(
|
|
25586
|
+
{ harness, model: spec.model, resolvedModel },
|
|
25587
|
+
context
|
|
25588
|
+
);
|
|
25528
25589
|
}
|
|
25529
25590
|
function validateModelProviderForHarness(harness, provider) {
|
|
25530
25591
|
const rules = modelRulesForHarness(harness);
|
package/dist/index.js
CHANGED
|
@@ -16756,6 +16756,41 @@ function validateReasoningEffortForHarness(input) {
|
|
|
16756
16756
|
);
|
|
16757
16757
|
}
|
|
16758
16758
|
}
|
|
16759
|
+
function validateAgentModelOpenRouterForHarness(spec, context) {
|
|
16760
|
+
const openrouter = spec.model?.openrouter;
|
|
16761
|
+
if (!openrouter) {
|
|
16762
|
+
return;
|
|
16763
|
+
}
|
|
16764
|
+
if (spec.resolvedModel?.provider !== "openrouter") {
|
|
16765
|
+
context.addIssue({
|
|
16766
|
+
code: external_exports.ZodIssueCode.custom,
|
|
16767
|
+
path: ["model", "openrouter"],
|
|
16768
|
+
message: `model.openrouter is only valid when the resolved provider is openrouter (got ${spec.resolvedModel?.provider ?? "none"})`
|
|
16769
|
+
});
|
|
16770
|
+
return;
|
|
16771
|
+
}
|
|
16772
|
+
const primaryId = spec.resolvedModel.id;
|
|
16773
|
+
const seen = /* @__PURE__ */ new Set();
|
|
16774
|
+
for (const [index, id] of openrouter.models.entries()) {
|
|
16775
|
+
if (id === primaryId) {
|
|
16776
|
+
context.addIssue({
|
|
16777
|
+
code: external_exports.ZodIssueCode.custom,
|
|
16778
|
+
path: ["model", "openrouter", "models", index],
|
|
16779
|
+
message: "model.openrouter.models must not include the primary model id (it is prepended automatically)"
|
|
16780
|
+
});
|
|
16781
|
+
return;
|
|
16782
|
+
}
|
|
16783
|
+
if (seen.has(id)) {
|
|
16784
|
+
context.addIssue({
|
|
16785
|
+
code: external_exports.ZodIssueCode.custom,
|
|
16786
|
+
path: ["model", "openrouter", "models", index],
|
|
16787
|
+
message: "model.openrouter.models must not contain duplicate entries"
|
|
16788
|
+
});
|
|
16789
|
+
return;
|
|
16790
|
+
}
|
|
16791
|
+
seen.add(id);
|
|
16792
|
+
}
|
|
16793
|
+
}
|
|
16759
16794
|
function validateAgentModelFieldsForHarness(spec, context) {
|
|
16760
16795
|
const harness = spec.harness;
|
|
16761
16796
|
if (harness !== "claude-code" && harness !== "codex") {
|
|
@@ -16786,6 +16821,10 @@ function validateAgentModelFieldsForHarness(spec, context) {
|
|
|
16786
16821
|
message: error51 instanceof Error ? error51.message : String(error51)
|
|
16787
16822
|
});
|
|
16788
16823
|
}
|
|
16824
|
+
validateAgentModelOpenRouterForHarness(
|
|
16825
|
+
{ harness, model: spec.model, resolvedModel },
|
|
16826
|
+
context
|
|
16827
|
+
);
|
|
16789
16828
|
}
|
|
16790
16829
|
function validateModelProviderForHarness(harness, provider) {
|
|
16791
16830
|
const rules = modelRulesForHarness(harness);
|
|
@@ -16814,7 +16853,7 @@ function validateModelIdForProvider(input) {
|
|
|
16814
16853
|
`${input.provider} model ids are not open for ${input.harness}`
|
|
16815
16854
|
);
|
|
16816
16855
|
}
|
|
16817
|
-
var MODEL_API_TOKEN_PROVIDERS, ModelApiTokenProviderSchema, CLAUDE_CODE_REASONING_EFFORTS, CODEX_REASONING_EFFORTS, ClaudeCodeReasoningEffortSchema, CodexReasoningEffortSchema, AgentReasoningEffortSchema, OPENROUTER_MODEL_SLUG_PATTERN, AgentModelSelectionSchema, ResolvedAgentModelSelectionSchema, InvalidModelSelectionError, HARNESS_MODEL_RULES;
|
|
16856
|
+
var MODEL_API_TOKEN_PROVIDERS, ModelApiTokenProviderSchema, CLAUDE_CODE_REASONING_EFFORTS, CODEX_REASONING_EFFORTS, ClaudeCodeReasoningEffortSchema, CodexReasoningEffortSchema, AgentReasoningEffortSchema, OPENROUTER_MODEL_SLUG_PATTERN, AgentModelOpenRouterProviderPrefsSchema, AgentModelOpenRouterSchema, AgentModelSelectionSchema, ResolvedAgentModelSelectionSchema, ModelRoutingOpenRouterSchema, ModelRoutingConfigSchema, InvalidModelSelectionError, HARNESS_MODEL_RULES;
|
|
16818
16857
|
var init_model_selection = __esm({
|
|
16819
16858
|
"../../packages/schemas/src/model-selection.ts"() {
|
|
16820
16859
|
"use strict";
|
|
@@ -16852,13 +16891,35 @@ var init_model_selection = __esm({
|
|
|
16852
16891
|
"max"
|
|
16853
16892
|
]);
|
|
16854
16893
|
OPENROUTER_MODEL_SLUG_PATTERN = /^[A-Za-z0-9][A-Za-z0-9_.-]*(?:\/[A-Za-z0-9][A-Za-z0-9_.:-]*)+$/;
|
|
16894
|
+
AgentModelOpenRouterProviderPrefsSchema = external_exports.object({
|
|
16895
|
+
allowFallbacks: external_exports.boolean().optional(),
|
|
16896
|
+
order: external_exports.array(external_exports.string().trim().min(1)).min(1).optional(),
|
|
16897
|
+
sort: external_exports.enum(["price", "throughput", "latency"]).optional(),
|
|
16898
|
+
only: external_exports.array(external_exports.string().trim().min(1)).min(1).optional(),
|
|
16899
|
+
ignore: external_exports.array(external_exports.string().trim().min(1)).min(1).optional()
|
|
16900
|
+
}).strict();
|
|
16901
|
+
AgentModelOpenRouterSchema = external_exports.object({
|
|
16902
|
+
// Fallback chain; the primary id is implicit and prepended at the gateway,
|
|
16903
|
+
// so each entry must be distinct and exclude the primary.
|
|
16904
|
+
models: external_exports.array(external_exports.string().trim().min(1).regex(OPENROUTER_MODEL_SLUG_PATTERN)).min(1).max(3),
|
|
16905
|
+
provider: AgentModelOpenRouterProviderPrefsSchema.optional()
|
|
16906
|
+
}).strict();
|
|
16855
16907
|
AgentModelSelectionSchema = external_exports.object({
|
|
16856
16908
|
provider: ModelApiTokenProviderSchema.optional(),
|
|
16857
|
-
id: external_exports.string().trim().min(1).max(256)
|
|
16909
|
+
id: external_exports.string().trim().min(1).max(256),
|
|
16910
|
+
openrouter: AgentModelOpenRouterSchema.optional()
|
|
16858
16911
|
}).strict();
|
|
16859
16912
|
ResolvedAgentModelSelectionSchema = AgentModelSelectionSchema.extend({
|
|
16860
16913
|
provider: ModelApiTokenProviderSchema
|
|
16861
16914
|
});
|
|
16915
|
+
ModelRoutingOpenRouterSchema = external_exports.object({
|
|
16916
|
+
models: external_exports.array(external_exports.string().min(1)).min(1).max(3),
|
|
16917
|
+
provider: AgentModelOpenRouterProviderPrefsSchema.optional()
|
|
16918
|
+
}).strict();
|
|
16919
|
+
ModelRoutingConfigSchema = external_exports.object({
|
|
16920
|
+
primaryModelId: external_exports.string().min(1),
|
|
16921
|
+
openrouter: ModelRoutingOpenRouterSchema.optional()
|
|
16922
|
+
}).strict();
|
|
16862
16923
|
InvalidModelSelectionError = class extends Error {
|
|
16863
16924
|
constructor(message) {
|
|
16864
16925
|
super(message);
|
|
@@ -31068,7 +31129,7 @@ var init_package = __esm({
|
|
|
31068
31129
|
"package.json"() {
|
|
31069
31130
|
package_default = {
|
|
31070
31131
|
name: "@autohq/cli",
|
|
31071
|
-
version: "0.1.
|
|
31132
|
+
version: "0.1.358",
|
|
31072
31133
|
license: "SEE LICENSE IN README.md",
|
|
31073
31134
|
publishConfig: {
|
|
31074
31135
|
access: "public"
|