@autohq/cli 0.1.613 → 0.1.615

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.
@@ -33865,25 +33865,39 @@ var AgentBridgeCodexReasoningEffortSchema = external_exports.enum([
33865
33865
  "low",
33866
33866
  "medium",
33867
33867
  "high",
33868
- "xhigh"
33868
+ "xhigh",
33869
+ "max"
33869
33870
  ]);
33870
33871
  var AgentBridgeClaudeConfigSchema = AgentBridgeHarnessBaseConfigSchema.extend({
33871
33872
  model: AgentBridgeModelSelectionSchema.optional(),
33872
33873
  reasoningEffort: AgentBridgeClaudeReasoningEffortSchema.optional()
33873
33874
  });
33874
33875
  var AgentBridgeApprovalsSchema = external_exports.enum(["bypass", "prompt"]);
33875
- var AgentBridgeCodexConfigSchema = AgentBridgeHarnessBaseConfigSchema.extend({
33876
+ var AgentBridgeCodexConfigBaseSchema = AgentBridgeHarnessBaseConfigSchema.extend({
33876
33877
  model: AgentBridgeModelSelectionSchema.optional(),
33877
33878
  reasoningEffort: AgentBridgeCodexReasoningEffortSchema.optional(),
33878
33879
  approvals: AgentBridgeApprovalsSchema.optional()
33879
33880
  });
33881
+ function validateAgentBridgeCodexReasoningEffort(config2, context) {
33882
+ if (config2.reasoningEffort !== "max" || config2.model?.provider === "openai" && config2.model.id === "gpt-5.6-luna") {
33883
+ return;
33884
+ }
33885
+ context.addIssue({
33886
+ code: "custom",
33887
+ path: ["reasoningEffort"],
33888
+ message: 'codex does not support reasoning effort "max" for the selected model'
33889
+ });
33890
+ }
33891
+ var AgentBridgeCodexConfigSchema = AgentBridgeCodexConfigBaseSchema.superRefine(
33892
+ validateAgentBridgeCodexReasoningEffort
33893
+ );
33880
33894
  var AgentBridgeHarnessConfigSchema = external_exports.discriminatedUnion("kind", [
33881
33895
  AgentBridgeClaudeConfigSchema.extend({
33882
33896
  kind: external_exports.literal("claude-code")
33883
33897
  }),
33884
- AgentBridgeCodexConfigSchema.extend({
33898
+ AgentBridgeCodexConfigBaseSchema.extend({
33885
33899
  kind: external_exports.literal("codex")
33886
- })
33900
+ }).superRefine(validateAgentBridgeCodexReasoningEffort)
33887
33901
  ]);
33888
33902
  var RuntimeBridgeBootstrapPlaintextSchema = external_exports.object({
33889
33903
  version: external_exports.literal(1),
@@ -37751,7 +37765,7 @@ Object.assign(lookup, {
37751
37765
  // package.json
37752
37766
  var package_default = {
37753
37767
  name: "@autohq/cli",
37754
- version: "0.1.613",
37768
+ version: "0.1.615",
37755
37769
  license: "SEE LICENSE IN README.md",
37756
37770
  publishConfig: {
37757
37771
  access: "public"
@@ -41095,7 +41109,7 @@ var HARNESS_MODEL_RULES = {
41095
41109
  providers: ["openai", "openrouter"],
41096
41110
  defaultModel: "gpt-5.6-sol",
41097
41111
  curatedModels: {
41098
- openai: ["gpt-5.6-sol", "gpt-5.5", "gpt-5.3-codex"]
41112
+ openai: ["gpt-5.6-sol", "gpt-5.6-luna", "gpt-5.5", "gpt-5.3-codex"]
41099
41113
  },
41100
41114
  openProviderPatterns: {
41101
41115
  openrouter: OPENROUTER_MODEL_SLUG_PATTERN
@@ -41108,6 +41122,10 @@ var HARNESS_MODEL_RULES = {
41108
41122
  defaultEffort: "medium",
41109
41123
  efforts: CODEX_REASONING_EFFORTS
41110
41124
  },
41125
+ "gpt-5.6-luna": {
41126
+ defaultEffort: "medium",
41127
+ efforts: [...CODEX_REASONING_EFFORTS, "max"]
41128
+ },
41111
41129
  "gpt-5.5": {
41112
41130
  defaultEffort: "medium",
41113
41131
  efforts: CODEX_REASONING_EFFORTS
@@ -42831,6 +42849,8 @@ var PROJECT_MEMBER_CAPABILITY_LEVELS = ["none", "read"];
42831
42849
  var ProjectMemberCapabilityLevelSchema = external_exports.enum(
42832
42850
  PROJECT_MEMBER_CAPABILITY_LEVELS
42833
42851
  );
42852
+ var RUNTIME_CAPABILITY_LEVELS = ["none", "read", "write"];
42853
+ var RuntimeCapabilityLevelSchema = external_exports.enum(RUNTIME_CAPABILITY_LEVELS);
42834
42854
  var TASK_CAPABILITY_LEVELS = ["none", "read", "write"];
42835
42855
  var TaskCapabilityLevelSchema = external_exports.enum(TASK_CAPABILITY_LEVELS);
42836
42856
  var TASK_MANAGEMENT_CAPABILITY_LEVELS = ["none", "write"];
@@ -42874,6 +42894,10 @@ var ProjectMemberCapabilitySchema = attenuatedCapabilitySchema({
42874
42894
  levelSchema: ProjectMemberCapabilityLevelSchema,
42875
42895
  levels: PROJECT_MEMBER_CAPABILITY_LEVELS
42876
42896
  });
42897
+ var RuntimeCapabilitySchema = attenuatedCapabilitySchema({
42898
+ levelSchema: RuntimeCapabilityLevelSchema,
42899
+ levels: RUNTIME_CAPABILITY_LEVELS
42900
+ });
42877
42901
  var TaskCapabilitySchema = attenuatedCapabilitySchema({
42878
42902
  levelSchema: TaskCapabilityLevelSchema,
42879
42903
  levels: TASK_CAPABILITY_LEVELS
@@ -42893,6 +42917,7 @@ var WebhookCapabilitySchema = attenuatedCapabilitySchema({
42893
42917
  var LocalAutoToolCapabilitiesSchema = external_exports.object({
42894
42918
  billing: BillingCapabilitySchema.default("none"),
42895
42919
  projectMembers: ProjectMemberCapabilitySchema.default("none"),
42920
+ runtimes: RuntimeCapabilitySchema.default("none"),
42896
42921
  tasks: TaskCapabilitySchema.default("none"),
42897
42922
  // Project-wide coordination is an explicit session-snapshot grant, not a
42898
42923
  // requester-attenuated form of ordinary Task access. Keeping it optional
@@ -42901,7 +42926,12 @@ var LocalAutoToolCapabilitiesSchema = external_exports.object({
42901
42926
  connections: ConnectionCapabilitySchema.optional(),
42902
42927
  secrets: SecretCapabilitySchema.optional(),
42903
42928
  webhooks: WebhookCapabilitySchema.optional()
42904
- }).strict().default({ billing: "none", projectMembers: "none", tasks: "none" });
42929
+ }).strict().default({
42930
+ billing: "none",
42931
+ projectMembers: "none",
42932
+ runtimes: "none",
42933
+ tasks: "none"
42934
+ });
42905
42935
  var SecretReferenceSchema = external_exports.object({
42906
42936
  $secret: ResourceNameSchema
42907
42937
  });
@@ -47179,6 +47209,9 @@ var SessionTurnRecordSchema = external_exports.object({
47179
47209
  acceptedAt: external_exports.string().datetime().nullable(),
47180
47210
  startedAt: external_exports.string().datetime().nullable(),
47181
47211
  lastProgressAt: external_exports.string().datetime().nullable(),
47212
+ // Database receive time of the last runtime output durably applied to this
47213
+ // turn. Missing on rows read from before the settle clock was introduced.
47214
+ outputSettledAt: external_exports.string().datetime().nullable().default(null),
47182
47215
  // Last runtime liveness beat that vouched for this open turn (null before
47183
47216
  // the first beat, and always null on runtimes that predate liveness).
47184
47217
  // Distinct from lastProgressAt: pipeline liveness, not durable progress.
@@ -47571,8 +47604,8 @@ var TEAM_TEMPLATES = [
47571
47604
  id: "accelerator",
47572
47605
  name: "The Accelerator",
47573
47606
  template: "@auto/agent-fleet",
47574
- tagline: "You set the goal. It shepherds every PR through review\u2014and gets better over time.",
47575
- pitch: "The minimum viable agentic team \u2014 a working factory you build on. The Chief of Staff acts as your line manager: hand it work in chat and it dispatches an engineer per task, tracks every workstream, unblocks stalls, and escalates only when a decision needs you. Tiered engineers put a frontier model on complex changes and a cheap model on mechanical ones, and every PR gets an independent review. A preinstalled self-improvement agent tunes the team from its own sessions and your feedback \u2014 and it's all plain files in your repo, yours to extend.",
47607
+ tagline: "Your chief runs the line. You steer when it counts.",
47608
+ pitch: "The kernel of an effective software factory \u2014 a Chief of Staff that dispatches and shepherds vastly more parallel workstreams than you could run yourself, each owned through CI to a review-ready pull request. It coordinates the line publicly in Slack, keeps the roster visible, and notifies you only when your steer or input is needed. Tiered engineers put a frontier model on complex changes and a cheap model on mechanical ones, and every PR gets an independent review. A preinstalled self-improvement agent tunes the team from its own sessions and your feedback \u2014 and it's all plain files in your repo, yours to extend.",
47576
47609
  backdrop: "accelerator.mp4",
47577
47610
  frontOfHouse: "chief-of-staff",
47578
47611
  frontOfHouseOnboardingSubpath: "agents/chief-of-staff-onboarding.yaml",
@@ -84260,7 +84293,7 @@ var AskUserServer = class {
84260
84293
  const server = this.createMcpServer();
84261
84294
  const transport = new StreamableHTTPServerTransport({
84262
84295
  sessionIdGenerator: void 0,
84263
- // Codex 0.145.0 requires ordinary initialize/list responses as JSON. A
84296
+ // Codex 0.146.0 requires ordinary initialize/list responses as JSON. A
84264
84297
  // parked tool call keeps SSE enabled so progress notifications can flow
84265
84298
  // over the held response without extending the hard client deadline.
84266
84299
  enableJsonResponse: body.method !== "tools/call"
@@ -94372,9 +94405,10 @@ var CODEX_EXECUTABLE_PATH = "codex";
94372
94405
  var CODEX_DEFAULT_MODEL = "gpt-5.6-sol";
94373
94406
  var CODEX_HTTP_PROVIDER_ID = "openai-responses-http";
94374
94407
  var CODEX_OPENROUTER_PROVIDER_ID = "openrouter-responses-http";
94375
- var CODEX_REASONING_SUMMARY = "auto";
94408
+ var CODEX_REASONING_SUMMARY = "detailed";
94376
94409
  var CODEX_REASONING_SUMMARY_MODEL_IDS = /* @__PURE__ */ new Set([
94377
94410
  CODEX_DEFAULT_MODEL,
94411
+ "gpt-5.6-luna",
94378
94412
  "gpt-5.5",
94379
94413
  "gpt-5.3-codex"
94380
94414
  ]);
@@ -94776,7 +94810,7 @@ function runStep(input, step, action) {
94776
94810
  `agent_bridge_codex_edit_capability status=failed step=${step} error=${detail}`
94777
94811
  );
94778
94812
  throw new Error(
94779
- `Codex edit capability unavailable at ${step}: ${detail}. Codex 0.145.0's Auto custom-provider path declares no apply_patch tool; without the codex-path alias, exec invocations the interceptor does not recognize fail with command-not-found (codex-runtime-tool-loss-diagnostics).`
94813
+ `Codex edit capability unavailable at ${step}: ${detail}. Codex 0.146.0's Auto custom-provider path declares no apply_patch tool; without the codex-path alias, exec invocations the interceptor does not recognize fail with command-not-found (codex-runtime-tool-loss-diagnostics).`
94780
94814
  );
94781
94815
  }
94782
94816
  }
@@ -96037,7 +96071,13 @@ var CodexCommandHandler = class {
96037
96071
  if (sameCodexConfigSelection(this.codexConfig, next)) {
96038
96072
  return;
96039
96073
  }
96040
- this.codexConfig = next;
96074
+ const parsed = AgentBridgeCodexConfigSchema.safeParse(next);
96075
+ if (!parsed.success) {
96076
+ throw new Error(
96077
+ parsed.error.issues[0]?.message ?? "Invalid Codex model selection"
96078
+ );
96079
+ }
96080
+ this.codexConfig = parsed.data;
96041
96081
  this.skipResumeForNextSession = true;
96042
96082
  this.session?.close();
96043
96083
  this.session = null;
package/dist/index.js CHANGED
@@ -17971,7 +17971,7 @@ var init_model_selection = __esm({
17971
17971
  providers: ["openai", "openrouter"],
17972
17972
  defaultModel: "gpt-5.6-sol",
17973
17973
  curatedModels: {
17974
- openai: ["gpt-5.6-sol", "gpt-5.5", "gpt-5.3-codex"]
17974
+ openai: ["gpt-5.6-sol", "gpt-5.6-luna", "gpt-5.5", "gpt-5.3-codex"]
17975
17975
  },
17976
17976
  openProviderPatterns: {
17977
17977
  openrouter: OPENROUTER_MODEL_SLUG_PATTERN
@@ -17984,6 +17984,10 @@ var init_model_selection = __esm({
17984
17984
  defaultEffort: "medium",
17985
17985
  efforts: CODEX_REASONING_EFFORTS
17986
17986
  },
17987
+ "gpt-5.6-luna": {
17988
+ defaultEffort: "medium",
17989
+ efforts: [...CODEX_REASONING_EFFORTS, "max"]
17990
+ },
17987
17991
  "gpt-5.5": {
17988
17992
  defaultEffort: "medium",
17989
17993
  efforts: CODEX_REASONING_EFFORTS
@@ -19678,7 +19682,7 @@ function remoteMcpToolSchema(input) {
19678
19682
  ]).default({ kind: "none" })
19679
19683
  });
19680
19684
  }
19681
- var REMOTE_MCP_TRANSPORTS, LOCAL_TOOL_IMPLEMENTATIONS, BILLING_CAPABILITY_LEVELS, BillingCapabilityLevelSchema, PROJECT_MEMBER_CAPABILITY_LEVELS, ProjectMemberCapabilityLevelSchema, TASK_CAPABILITY_LEVELS, TaskCapabilityLevelSchema, TASK_MANAGEMENT_CAPABILITY_LEVELS, TaskManagementCapabilityLevelSchema, CONNECTION_CAPABILITY_LEVELS, ConnectionCapabilityLevelSchema, SECRET_CAPABILITY_LEVELS, SecretCapabilityLevelSchema, WEBHOOK_CAPABILITY_LEVELS, WebhookCapabilityLevelSchema, BillingCapabilitySchema, ProjectMemberCapabilitySchema, TaskCapabilitySchema, ConnectionCapabilitySchema, SecretCapabilitySchema, WebhookCapabilitySchema, LocalAutoToolCapabilitiesSchema, SecretReferenceSchema, NoToolAuthSchema, OptionalConnectionField, McpOAuthToolAuthSchema, ConnectionToolAuthSchema, ConnectionsToolAuthSchema, ConnectionBackedToolSchema, ToolAliasSchema, RemoteMcpToolSchema, LocalAutoToolSchema, LocalPingToolSchema, LocalChatToolSchema, LocalToolSchema, GithubToolSchema, ToolSpecSchema, AgentToolConnectRequestSchema, AgentToolConnectResponseSchema, AgentToolConnectCompleteResponseSchema, InlineAgentToolSchema, AgentToolRefSchema, AgentToolsSchema;
19685
+ var REMOTE_MCP_TRANSPORTS, LOCAL_TOOL_IMPLEMENTATIONS, BILLING_CAPABILITY_LEVELS, BillingCapabilityLevelSchema, PROJECT_MEMBER_CAPABILITY_LEVELS, ProjectMemberCapabilityLevelSchema, RUNTIME_CAPABILITY_LEVELS, RuntimeCapabilityLevelSchema, TASK_CAPABILITY_LEVELS, TaskCapabilityLevelSchema, TASK_MANAGEMENT_CAPABILITY_LEVELS, TaskManagementCapabilityLevelSchema, CONNECTION_CAPABILITY_LEVELS, ConnectionCapabilityLevelSchema, SECRET_CAPABILITY_LEVELS, SecretCapabilityLevelSchema, WEBHOOK_CAPABILITY_LEVELS, WebhookCapabilityLevelSchema, BillingCapabilitySchema, ProjectMemberCapabilitySchema, RuntimeCapabilitySchema, TaskCapabilitySchema, ConnectionCapabilitySchema, SecretCapabilitySchema, WebhookCapabilitySchema, LocalAutoToolCapabilitiesSchema, SecretReferenceSchema, NoToolAuthSchema, OptionalConnectionField, McpOAuthToolAuthSchema, ConnectionToolAuthSchema, ConnectionsToolAuthSchema, ConnectionBackedToolSchema, ToolAliasSchema, RemoteMcpToolSchema, LocalAutoToolSchema, LocalPingToolSchema, LocalChatToolSchema, LocalToolSchema, GithubToolSchema, ToolSpecSchema, AgentToolConnectRequestSchema, AgentToolConnectResponseSchema, AgentToolConnectCompleteResponseSchema, InlineAgentToolSchema, AgentToolRefSchema, AgentToolsSchema;
19682
19686
  var init_tools = __esm({
19683
19687
  "../../packages/schemas/src/tools.ts"() {
19684
19688
  "use strict";
@@ -19696,6 +19700,8 @@ var init_tools = __esm({
19696
19700
  ProjectMemberCapabilityLevelSchema = external_exports.enum(
19697
19701
  PROJECT_MEMBER_CAPABILITY_LEVELS
19698
19702
  );
19703
+ RUNTIME_CAPABILITY_LEVELS = ["none", "read", "write"];
19704
+ RuntimeCapabilityLevelSchema = external_exports.enum(RUNTIME_CAPABILITY_LEVELS);
19699
19705
  TASK_CAPABILITY_LEVELS = ["none", "read", "write"];
19700
19706
  TaskCapabilityLevelSchema = external_exports.enum(TASK_CAPABILITY_LEVELS);
19701
19707
  TASK_MANAGEMENT_CAPABILITY_LEVELS = ["none", "write"];
@@ -19718,6 +19724,10 @@ var init_tools = __esm({
19718
19724
  levelSchema: ProjectMemberCapabilityLevelSchema,
19719
19725
  levels: PROJECT_MEMBER_CAPABILITY_LEVELS
19720
19726
  });
19727
+ RuntimeCapabilitySchema = attenuatedCapabilitySchema({
19728
+ levelSchema: RuntimeCapabilityLevelSchema,
19729
+ levels: RUNTIME_CAPABILITY_LEVELS
19730
+ });
19721
19731
  TaskCapabilitySchema = attenuatedCapabilitySchema({
19722
19732
  levelSchema: TaskCapabilityLevelSchema,
19723
19733
  levels: TASK_CAPABILITY_LEVELS
@@ -19737,6 +19747,7 @@ var init_tools = __esm({
19737
19747
  LocalAutoToolCapabilitiesSchema = external_exports.object({
19738
19748
  billing: BillingCapabilitySchema.default("none"),
19739
19749
  projectMembers: ProjectMemberCapabilitySchema.default("none"),
19750
+ runtimes: RuntimeCapabilitySchema.default("none"),
19740
19751
  tasks: TaskCapabilitySchema.default("none"),
19741
19752
  // Project-wide coordination is an explicit session-snapshot grant, not a
19742
19753
  // requester-attenuated form of ordinary Task access. Keeping it optional
@@ -19745,7 +19756,12 @@ var init_tools = __esm({
19745
19756
  connections: ConnectionCapabilitySchema.optional(),
19746
19757
  secrets: SecretCapabilitySchema.optional(),
19747
19758
  webhooks: WebhookCapabilitySchema.optional()
19748
- }).strict().default({ billing: "none", projectMembers: "none", tasks: "none" });
19759
+ }).strict().default({
19760
+ billing: "none",
19761
+ projectMembers: "none",
19762
+ runtimes: "none",
19763
+ tasks: "none"
19764
+ });
19749
19765
  SecretReferenceSchema = external_exports.object({
19750
19766
  $secret: ResourceNameSchema
19751
19767
  });
@@ -24508,6 +24524,9 @@ var init_session_turns = __esm({
24508
24524
  acceptedAt: external_exports.string().datetime().nullable(),
24509
24525
  startedAt: external_exports.string().datetime().nullable(),
24510
24526
  lastProgressAt: external_exports.string().datetime().nullable(),
24527
+ // Database receive time of the last runtime output durably applied to this
24528
+ // turn. Missing on rows read from before the settle clock was introduced.
24529
+ outputSettledAt: external_exports.string().datetime().nullable().default(null),
24511
24530
  // Last runtime liveness beat that vouched for this open turn (null before
24512
24531
  // the first beat, and always null on runtimes that predate liveness).
24513
24532
  // Distinct from lastProgressAt: pipeline liveness, not durable progress.
@@ -90084,8 +90103,8 @@ var init_catalog = __esm({
90084
90103
  id: "accelerator",
90085
90104
  name: "The Accelerator",
90086
90105
  template: "@auto/agent-fleet",
90087
- tagline: "You set the goal. It shepherds every PR through review\u2014and gets better over time.",
90088
- pitch: "The minimum viable agentic team \u2014 a working factory you build on. The Chief of Staff acts as your line manager: hand it work in chat and it dispatches an engineer per task, tracks every workstream, unblocks stalls, and escalates only when a decision needs you. Tiered engineers put a frontier model on complex changes and a cheap model on mechanical ones, and every PR gets an independent review. A preinstalled self-improvement agent tunes the team from its own sessions and your feedback \u2014 and it's all plain files in your repo, yours to extend.",
90106
+ tagline: "Your chief runs the line. You steer when it counts.",
90107
+ pitch: "The kernel of an effective software factory \u2014 a Chief of Staff that dispatches and shepherds vastly more parallel workstreams than you could run yourself, each owned through CI to a review-ready pull request. It coordinates the line publicly in Slack, keeps the roster visible, and notifies you only when your steer or input is needed. Tiered engineers put a frontier model on complex changes and a cheap model on mechanical ones, and every PR gets an independent review. A preinstalled self-improvement agent tunes the team from its own sessions and your feedback \u2014 and it's all plain files in your repo, yours to extend.",
90089
90108
  backdrop: "accelerator.mp4",
90090
90109
  frontOfHouse: "chief-of-staff",
90091
90110
  frontOfHouseOnboardingSubpath: "agents/chief-of-staff-onboarding.yaml",
@@ -93209,7 +93228,7 @@ var init_package = __esm({
93209
93228
  "package.json"() {
93210
93229
  package_default = {
93211
93230
  name: "@autohq/cli",
93212
- version: "0.1.613",
93231
+ version: "0.1.615",
93213
93232
  license: "SEE LICENSE IN README.md",
93214
93233
  publishConfig: {
93215
93234
  access: "public"
@@ -104198,25 +104217,39 @@ var AgentBridgeCodexReasoningEffortSchema = external_exports.enum([
104198
104217
  "low",
104199
104218
  "medium",
104200
104219
  "high",
104201
- "xhigh"
104220
+ "xhigh",
104221
+ "max"
104202
104222
  ]);
104203
104223
  var AgentBridgeClaudeConfigSchema = AgentBridgeHarnessBaseConfigSchema.extend({
104204
104224
  model: AgentBridgeModelSelectionSchema.optional(),
104205
104225
  reasoningEffort: AgentBridgeClaudeReasoningEffortSchema.optional()
104206
104226
  });
104207
104227
  var AgentBridgeApprovalsSchema = external_exports.enum(["bypass", "prompt"]);
104208
- var AgentBridgeCodexConfigSchema = AgentBridgeHarnessBaseConfigSchema.extend({
104228
+ var AgentBridgeCodexConfigBaseSchema = AgentBridgeHarnessBaseConfigSchema.extend({
104209
104229
  model: AgentBridgeModelSelectionSchema.optional(),
104210
104230
  reasoningEffort: AgentBridgeCodexReasoningEffortSchema.optional(),
104211
104231
  approvals: AgentBridgeApprovalsSchema.optional()
104212
104232
  });
104233
+ function validateAgentBridgeCodexReasoningEffort(config2, context) {
104234
+ if (config2.reasoningEffort !== "max" || config2.model?.provider === "openai" && config2.model.id === "gpt-5.6-luna") {
104235
+ return;
104236
+ }
104237
+ context.addIssue({
104238
+ code: "custom",
104239
+ path: ["reasoningEffort"],
104240
+ message: 'codex does not support reasoning effort "max" for the selected model'
104241
+ });
104242
+ }
104243
+ var AgentBridgeCodexConfigSchema = AgentBridgeCodexConfigBaseSchema.superRefine(
104244
+ validateAgentBridgeCodexReasoningEffort
104245
+ );
104213
104246
  var AgentBridgeHarnessConfigSchema = external_exports.discriminatedUnion("kind", [
104214
104247
  AgentBridgeClaudeConfigSchema.extend({
104215
104248
  kind: external_exports.literal("claude-code")
104216
104249
  }),
104217
- AgentBridgeCodexConfigSchema.extend({
104250
+ AgentBridgeCodexConfigBaseSchema.extend({
104218
104251
  kind: external_exports.literal("codex")
104219
- })
104252
+ }).superRefine(validateAgentBridgeCodexReasoningEffort)
104220
104253
  ]);
104221
104254
  var RuntimeBridgeBootstrapPlaintextSchema = external_exports.object({
104222
104255
  version: external_exports.literal(1),
@@ -106443,7 +106476,7 @@ var AskUserServer = class {
106443
106476
  const server = this.createMcpServer();
106444
106477
  const transport = new StreamableHTTPServerTransport({
106445
106478
  sessionIdGenerator: void 0,
106446
- // Codex 0.145.0 requires ordinary initialize/list responses as JSON. A
106479
+ // Codex 0.146.0 requires ordinary initialize/list responses as JSON. A
106447
106480
  // parked tool call keeps SSE enabled so progress notifications can flow
106448
106481
  // over the held response without extending the hard client deadline.
106449
106482
  enableJsonResponse: body.method !== "tools/call"
@@ -112244,9 +112277,10 @@ var CODEX_EXECUTABLE_PATH = "codex";
112244
112277
  var CODEX_DEFAULT_MODEL = "gpt-5.6-sol";
112245
112278
  var CODEX_HTTP_PROVIDER_ID = "openai-responses-http";
112246
112279
  var CODEX_OPENROUTER_PROVIDER_ID = "openrouter-responses-http";
112247
- var CODEX_REASONING_SUMMARY = "auto";
112280
+ var CODEX_REASONING_SUMMARY = "detailed";
112248
112281
  var CODEX_REASONING_SUMMARY_MODEL_IDS = /* @__PURE__ */ new Set([
112249
112282
  CODEX_DEFAULT_MODEL,
112283
+ "gpt-5.6-luna",
112250
112284
  "gpt-5.5",
112251
112285
  "gpt-5.3-codex"
112252
112286
  ]);
@@ -112648,7 +112682,7 @@ function runStep(input, step, action) {
112648
112682
  `agent_bridge_codex_edit_capability status=failed step=${step} error=${detail}`
112649
112683
  );
112650
112684
  throw new Error(
112651
- `Codex edit capability unavailable at ${step}: ${detail}. Codex 0.145.0's Auto custom-provider path declares no apply_patch tool; without the codex-path alias, exec invocations the interceptor does not recognize fail with command-not-found (codex-runtime-tool-loss-diagnostics).`
112685
+ `Codex edit capability unavailable at ${step}: ${detail}. Codex 0.146.0's Auto custom-provider path declares no apply_patch tool; without the codex-path alias, exec invocations the interceptor does not recognize fail with command-not-found (codex-runtime-tool-loss-diagnostics).`
112652
112686
  );
112653
112687
  }
112654
112688
  }
@@ -113909,7 +113943,13 @@ var CodexCommandHandler = class {
113909
113943
  if (sameCodexConfigSelection(this.codexConfig, next)) {
113910
113944
  return;
113911
113945
  }
113912
- this.codexConfig = next;
113946
+ const parsed = AgentBridgeCodexConfigSchema.safeParse(next);
113947
+ if (!parsed.success) {
113948
+ throw new Error(
113949
+ parsed.error.issues[0]?.message ?? "Invalid Codex model selection"
113950
+ );
113951
+ }
113952
+ this.codexConfig = parsed.data;
113913
113953
  this.skipResumeForNextSession = true;
113914
113954
  this.session?.close();
113915
113955
  this.session = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autohq/cli",
3
- "version": "0.1.613",
3
+ "version": "0.1.615",
4
4
  "license": "SEE LICENSE IN README.md",
5
5
  "publishConfig": {
6
6
  "access": "public"