@autohq/cli 0.1.615 → 0.1.617
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 +79 -13
- package/dist/index.js +580 -14
- package/package.json +1 -1
package/dist/agent-bridge.js
CHANGED
|
@@ -33878,8 +33878,13 @@ var AgentBridgeCodexConfigBaseSchema = AgentBridgeHarnessBaseConfigSchema.extend
|
|
|
33878
33878
|
reasoningEffort: AgentBridgeCodexReasoningEffortSchema.optional(),
|
|
33879
33879
|
approvals: AgentBridgeApprovalsSchema.optional()
|
|
33880
33880
|
});
|
|
33881
|
+
var AGENT_BRIDGE_CODEX_MAX_REASONING_MODEL_IDS = /* @__PURE__ */ new Set([
|
|
33882
|
+
"gpt-5.6-sol",
|
|
33883
|
+
"gpt-5.6-terra",
|
|
33884
|
+
"gpt-5.6-luna"
|
|
33885
|
+
]);
|
|
33881
33886
|
function validateAgentBridgeCodexReasoningEffort(config2, context) {
|
|
33882
|
-
if (config2.reasoningEffort !== "max" || config2.model?.provider === "openai" && config2.model.id
|
|
33887
|
+
if (config2.reasoningEffort !== "max" || config2.model?.provider === "openai" && AGENT_BRIDGE_CODEX_MAX_REASONING_MODEL_IDS.has(config2.model.id)) {
|
|
33883
33888
|
return;
|
|
33884
33889
|
}
|
|
33885
33890
|
context.addIssue({
|
|
@@ -37765,7 +37770,7 @@ Object.assign(lookup, {
|
|
|
37765
37770
|
// package.json
|
|
37766
37771
|
var package_default = {
|
|
37767
37772
|
name: "@autohq/cli",
|
|
37768
|
-
version: "0.1.
|
|
37773
|
+
version: "0.1.617",
|
|
37769
37774
|
license: "SEE LICENSE IN README.md",
|
|
37770
37775
|
publishConfig: {
|
|
37771
37776
|
access: "public"
|
|
@@ -41021,6 +41026,10 @@ var CODEX_REASONING_EFFORTS = [
|
|
|
41021
41026
|
"high",
|
|
41022
41027
|
"xhigh"
|
|
41023
41028
|
];
|
|
41029
|
+
var CODEX_MAX_REASONING_EFFORTS = [
|
|
41030
|
+
...CODEX_REASONING_EFFORTS,
|
|
41031
|
+
"max"
|
|
41032
|
+
];
|
|
41024
41033
|
var ClaudeCodeReasoningEffortSchema = external_exports.enum(
|
|
41025
41034
|
CLAUDE_CODE_REASONING_EFFORTS
|
|
41026
41035
|
);
|
|
@@ -41109,7 +41118,13 @@ var HARNESS_MODEL_RULES = {
|
|
|
41109
41118
|
providers: ["openai", "openrouter"],
|
|
41110
41119
|
defaultModel: "gpt-5.6-sol",
|
|
41111
41120
|
curatedModels: {
|
|
41112
|
-
openai: [
|
|
41121
|
+
openai: [
|
|
41122
|
+
"gpt-5.6-sol",
|
|
41123
|
+
"gpt-5.6-terra",
|
|
41124
|
+
"gpt-5.6-luna",
|
|
41125
|
+
"gpt-5.5",
|
|
41126
|
+
"gpt-5.3-codex"
|
|
41127
|
+
]
|
|
41113
41128
|
},
|
|
41114
41129
|
openProviderPatterns: {
|
|
41115
41130
|
openrouter: OPENROUTER_MODEL_SLUG_PATTERN
|
|
@@ -41120,11 +41135,15 @@ var HARNESS_MODEL_RULES = {
|
|
|
41120
41135
|
openai: {
|
|
41121
41136
|
"gpt-5.6-sol": {
|
|
41122
41137
|
defaultEffort: "medium",
|
|
41123
|
-
efforts:
|
|
41138
|
+
efforts: CODEX_MAX_REASONING_EFFORTS
|
|
41139
|
+
},
|
|
41140
|
+
"gpt-5.6-terra": {
|
|
41141
|
+
defaultEffort: "medium",
|
|
41142
|
+
efforts: CODEX_MAX_REASONING_EFFORTS
|
|
41124
41143
|
},
|
|
41125
41144
|
"gpt-5.6-luna": {
|
|
41126
41145
|
defaultEffort: "medium",
|
|
41127
|
-
efforts:
|
|
41146
|
+
efforts: CODEX_MAX_REASONING_EFFORTS
|
|
41128
41147
|
},
|
|
41129
41148
|
"gpt-5.5": {
|
|
41130
41149
|
defaultEffort: "medium",
|
|
@@ -45123,6 +45142,14 @@ var SessionUiMessageRecordSchema = external_exports.object({
|
|
|
45123
45142
|
// transcript renders the bundle as distinct trigger entries.
|
|
45124
45143
|
bundle: SessionMessageBundleSchema.nullable().default(null),
|
|
45125
45144
|
streamCursor: external_exports.number().int().positive().nullable().default(null),
|
|
45145
|
+
// Cursor of the first durable snapshot boundary recorded for each UI part,
|
|
45146
|
+
// aligned with message.parts. Null entries/field preserve legacy rows that
|
|
45147
|
+
// predate part-level cursor capture.
|
|
45148
|
+
partStreamCursors: external_exports.array(external_exports.number().int().positive().nullable()).nullable().default(null),
|
|
45149
|
+
// First durable snapshot timestamp for each UI part, aligned with
|
|
45150
|
+
// message.parts. This remains available on rows that predate part-level
|
|
45151
|
+
// cursor capture and lets read projections preserve their chronology.
|
|
45152
|
+
partCreatedAts: external_exports.array(external_exports.string().datetime()).nullable().default(null),
|
|
45126
45153
|
createdAt: external_exports.string().datetime(),
|
|
45127
45154
|
updatedAt: external_exports.string().datetime(),
|
|
45128
45155
|
completedAt: external_exports.string().datetime().nullable()
|
|
@@ -94408,6 +94435,7 @@ var CODEX_OPENROUTER_PROVIDER_ID = "openrouter-responses-http";
|
|
|
94408
94435
|
var CODEX_REASONING_SUMMARY = "detailed";
|
|
94409
94436
|
var CODEX_REASONING_SUMMARY_MODEL_IDS = /* @__PURE__ */ new Set([
|
|
94410
94437
|
CODEX_DEFAULT_MODEL,
|
|
94438
|
+
"gpt-5.6-terra",
|
|
94411
94439
|
"gpt-5.6-luna",
|
|
94412
94440
|
"gpt-5.5",
|
|
94413
94441
|
"gpt-5.3-codex"
|
|
@@ -95745,6 +95773,13 @@ var CodexCommandHandler = class {
|
|
|
95745
95773
|
autoMcpShim;
|
|
95746
95774
|
askUserServer;
|
|
95747
95775
|
injectedCommands = /* @__PURE__ */ new Set();
|
|
95776
|
+
// Message commands whose injection has started but not settled. A blocked
|
|
95777
|
+
// output drain or a slow codex warm can outlast the bridge's command-ack
|
|
95778
|
+
// window, so a redelivery may arrive while the first attempt is still in
|
|
95779
|
+
// flight; acking it "duplicate" then would let the worker accept a command
|
|
95780
|
+
// whose injection later fails, silently losing the turn (FRA-3458). The
|
|
95781
|
+
// duplicate branch awaits the in-flight outcome here and relays it instead.
|
|
95782
|
+
inFlightMessageCommands = /* @__PURE__ */ new Map();
|
|
95748
95783
|
// itemId -> JSON-RPC request id of the parked approval request, so an `answer`
|
|
95749
95784
|
// command keyed by toolCallId (= itemId) can resolve the right server request.
|
|
95750
95785
|
pendingApprovals = /* @__PURE__ */ new Map();
|
|
@@ -95808,6 +95843,16 @@ var CodexCommandHandler = class {
|
|
|
95808
95843
|
return commandAck({ delivery, socketId, status: "stale_lease" });
|
|
95809
95844
|
}
|
|
95810
95845
|
if (this.injectedCommands.has(delivery.commandId)) {
|
|
95846
|
+
const inFlight = this.inFlightMessageCommands.get(delivery.commandId);
|
|
95847
|
+
const outcome2 = inFlight ? await inFlight : { status: "injected" };
|
|
95848
|
+
if (outcome2.status === "failed") {
|
|
95849
|
+
return commandAck({
|
|
95850
|
+
delivery,
|
|
95851
|
+
socketId,
|
|
95852
|
+
status: "failed",
|
|
95853
|
+
error: outcome2.error
|
|
95854
|
+
});
|
|
95855
|
+
}
|
|
95811
95856
|
return commandAck({ delivery, socketId, status: "duplicate" });
|
|
95812
95857
|
}
|
|
95813
95858
|
if (delivery.kind === "answer") {
|
|
@@ -95842,6 +95887,33 @@ var CodexCommandHandler = class {
|
|
|
95842
95887
|
});
|
|
95843
95888
|
}
|
|
95844
95889
|
this.injectedCommands.add(delivery.commandId);
|
|
95890
|
+
const injection = this.injectMessageCommand(
|
|
95891
|
+
activeContext,
|
|
95892
|
+
delivery,
|
|
95893
|
+
message
|
|
95894
|
+
);
|
|
95895
|
+
this.inFlightMessageCommands.set(delivery.commandId, injection);
|
|
95896
|
+
let outcome;
|
|
95897
|
+
try {
|
|
95898
|
+
outcome = await injection;
|
|
95899
|
+
} finally {
|
|
95900
|
+
this.inFlightMessageCommands.delete(delivery.commandId);
|
|
95901
|
+
}
|
|
95902
|
+
if (outcome.status === "failed") {
|
|
95903
|
+
this.injectedCommands.delete(delivery.commandId);
|
|
95904
|
+
return commandAck({
|
|
95905
|
+
delivery,
|
|
95906
|
+
socketId,
|
|
95907
|
+
status: "failed",
|
|
95908
|
+
error: outcome.error
|
|
95909
|
+
});
|
|
95910
|
+
}
|
|
95911
|
+
return commandAck({ delivery, socketId, status: "injected" });
|
|
95912
|
+
}
|
|
95913
|
+
// Runs one message command's injection to a terminal outcome. Never rejects:
|
|
95914
|
+
// the returned promise is stored in the in-flight map and awaited by both the
|
|
95915
|
+
// original delivery and any redeliveries, so failures travel as values.
|
|
95916
|
+
async injectMessageCommand(activeContext, delivery, message) {
|
|
95845
95917
|
try {
|
|
95846
95918
|
this.applySelectionForMessage(delivery);
|
|
95847
95919
|
await this.emitUserMessageEntry(
|
|
@@ -95859,15 +95931,9 @@ var CodexCommandHandler = class {
|
|
|
95859
95931
|
commandId: delivery.commandId
|
|
95860
95932
|
});
|
|
95861
95933
|
} catch (error51) {
|
|
95862
|
-
|
|
95863
|
-
return commandAck({
|
|
95864
|
-
delivery,
|
|
95865
|
-
socketId,
|
|
95866
|
-
status: "failed",
|
|
95867
|
-
error: errorMessage4(error51)
|
|
95868
|
-
});
|
|
95934
|
+
return { status: "failed", error: errorMessage4(error51) };
|
|
95869
95935
|
}
|
|
95870
|
-
return
|
|
95936
|
+
return { status: "injected" };
|
|
95871
95937
|
}
|
|
95872
95938
|
// ---------------------------------------------------------------------------
|
|
95873
95939
|
// Answering parked approvals
|