holycodex 0.7.4-dev.29653870432.1 → 0.7.4-dev.29657943197.1

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.
Files changed (2) hide show
  1. package/dist/cli.js +257 -34
  2. package/package.json +2 -2
package/dist/cli.js CHANGED
@@ -3925,7 +3925,7 @@ function superRefine(fn, params) {
3925
3925
  }
3926
3926
  //#endregion
3927
3927
  //#region packages/cli/src/catalog.ts
3928
- var VERSION = "0.7.4-dev.29653870432.1";
3928
+ var VERSION = "0.7.4-dev.29657943197.1";
3929
3929
  var SKILLS = [
3930
3930
  "ast-grep",
3931
3931
  "caveman",
@@ -3951,7 +3951,9 @@ var AGENTS = _enum([
3951
3951
  ]).options;
3952
3952
  var PlanNameSchema = _enum([
3953
3953
  "go",
3954
+ "plus-low",
3954
3955
  "plus",
3956
+ "plus-high",
3955
3957
  "pro-5x",
3956
3958
  "pro-20x"
3957
3959
  ]);
@@ -3965,7 +3967,11 @@ _enum([
3965
3967
  var ModelRouteSchema = discriminatedUnion("model", [
3966
3968
  strictObject({
3967
3969
  model: literal("gpt-5.6-luna"),
3968
- reasoningEffort: _enum(["low", "medium"])
3970
+ reasoningEffort: _enum([
3971
+ "low",
3972
+ "medium",
3973
+ "high"
3974
+ ])
3969
3975
  }),
3970
3976
  strictObject({
3971
3977
  model: literal("gpt-5.6-terra"),
@@ -3978,6 +3984,7 @@ var ModelRouteSchema = discriminatedUnion("model", [
3978
3984
  strictObject({
3979
3985
  model: literal("gpt-5.6-sol"),
3980
3986
  reasoningEffort: _enum([
3987
+ "low",
3981
3988
  "medium",
3982
3989
  "high",
3983
3990
  "xhigh"
@@ -3990,11 +3997,17 @@ var RoutingPresetSchema = strictObject({
3990
3997
  explorer: ModelRouteSchema,
3991
3998
  librarian: ModelRouteSchema,
3992
3999
  worker: ModelRouteSchema
4000
+ }),
4001
+ usage: strictObject({
4002
+ maxThreads: union([literal(1), literal(2)]),
4003
+ maxDepth: literal(1)
3993
4004
  })
3994
4005
  });
3995
4006
  var ModelRoutingPlansSchema = strictObject({
3996
4007
  go: RoutingPresetSchema,
4008
+ "plus-low": RoutingPresetSchema,
3997
4009
  plus: RoutingPresetSchema,
4010
+ "plus-high": RoutingPresetSchema,
3998
4011
  "pro-5x": RoutingPresetSchema,
3999
4012
  "pro-20x": RoutingPresetSchema
4000
4013
  });
@@ -4002,22 +4015,50 @@ var DEFAULT_PLAN = "plus";
4002
4015
  var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4003
4016
  go: {
4004
4017
  root: {
4005
- model: "gpt-5.6-terra",
4006
- reasoningEffort: "medium"
4018
+ model: "gpt-5.6-sol",
4019
+ reasoningEffort: "low"
4007
4020
  },
4008
4021
  agents: {
4009
4022
  explorer: {
4010
- model: "gpt-5.6-terra",
4023
+ model: "gpt-5.6-luna",
4011
4024
  reasoningEffort: "low"
4012
4025
  },
4013
4026
  librarian: {
4027
+ model: "gpt-5.6-luna",
4028
+ reasoningEffort: "low"
4029
+ },
4030
+ worker: {
4014
4031
  model: "gpt-5.6-terra",
4015
4032
  reasoningEffort: "low"
4033
+ }
4034
+ },
4035
+ usage: {
4036
+ maxThreads: 1,
4037
+ maxDepth: 1
4038
+ }
4039
+ },
4040
+ "plus-low": {
4041
+ root: {
4042
+ model: "gpt-5.6-sol",
4043
+ reasoningEffort: "low"
4044
+ },
4045
+ agents: {
4046
+ explorer: {
4047
+ model: "gpt-5.6-luna",
4048
+ reasoningEffort: "low"
4049
+ },
4050
+ librarian: {
4051
+ model: "gpt-5.6-luna",
4052
+ reasoningEffort: "medium"
4016
4053
  },
4017
4054
  worker: {
4018
4055
  model: "gpt-5.6-terra",
4019
4056
  reasoningEffort: "medium"
4020
4057
  }
4058
+ },
4059
+ usage: {
4060
+ maxThreads: 1,
4061
+ maxDepth: 1
4021
4062
  }
4022
4063
  },
4023
4064
  plus: {
@@ -4028,16 +4069,44 @@ var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4028
4069
  agents: {
4029
4070
  explorer: {
4030
4071
  model: "gpt-5.6-luna",
4031
- reasoningEffort: "low"
4072
+ reasoningEffort: "medium"
4032
4073
  },
4033
4074
  librarian: {
4034
- model: "gpt-5.6-luna",
4075
+ model: "gpt-5.6-terra",
4035
4076
  reasoningEffort: "low"
4036
4077
  },
4037
4078
  worker: {
4038
4079
  model: "gpt-5.6-terra",
4039
4080
  reasoningEffort: "high"
4040
4081
  }
4082
+ },
4083
+ usage: {
4084
+ maxThreads: 2,
4085
+ maxDepth: 1
4086
+ }
4087
+ },
4088
+ "plus-high": {
4089
+ root: {
4090
+ model: "gpt-5.6-sol",
4091
+ reasoningEffort: "medium"
4092
+ },
4093
+ agents: {
4094
+ explorer: {
4095
+ model: "gpt-5.6-terra",
4096
+ reasoningEffort: "medium"
4097
+ },
4098
+ librarian: {
4099
+ model: "gpt-5.6-terra",
4100
+ reasoningEffort: "medium"
4101
+ },
4102
+ worker: {
4103
+ model: "gpt-5.6-sol",
4104
+ reasoningEffort: "medium"
4105
+ }
4106
+ },
4107
+ usage: {
4108
+ maxThreads: 2,
4109
+ maxDepth: 1
4041
4110
  }
4042
4111
  },
4043
4112
  "pro-5x": {
@@ -4048,7 +4117,7 @@ var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4048
4117
  agents: {
4049
4118
  explorer: {
4050
4119
  model: "gpt-5.6-terra",
4051
- reasoningEffort: "high"
4120
+ reasoningEffort: "medium"
4052
4121
  },
4053
4122
  librarian: {
4054
4123
  model: "gpt-5.6-terra",
@@ -4058,43 +4127,164 @@ var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4058
4127
  model: "gpt-5.6-sol",
4059
4128
  reasoningEffort: "medium"
4060
4129
  }
4130
+ },
4131
+ usage: {
4132
+ maxThreads: 2,
4133
+ maxDepth: 1
4061
4134
  }
4062
4135
  },
4063
4136
  "pro-20x": {
4064
4137
  root: {
4065
4138
  model: "gpt-5.6-sol",
4066
- reasoningEffort: "xhigh"
4139
+ reasoningEffort: "high"
4067
4140
  },
4068
4141
  agents: {
4069
4142
  explorer: {
4070
- model: "gpt-5.6-sol",
4071
- reasoningEffort: "medium"
4143
+ model: "gpt-5.6-luna",
4144
+ reasoningEffort: "high"
4072
4145
  },
4073
4146
  librarian: {
4074
- model: "gpt-5.6-sol",
4075
- reasoningEffort: "medium"
4147
+ model: "gpt-5.6-terra",
4148
+ reasoningEffort: "high"
4076
4149
  },
4077
4150
  worker: {
4078
4151
  model: "gpt-5.6-sol",
4079
4152
  reasoningEffort: "high"
4080
4153
  }
4154
+ },
4155
+ usage: {
4156
+ maxThreads: 2,
4157
+ maxDepth: 1
4081
4158
  }
4082
4159
  }
4083
4160
  });
4084
4161
  MODEL_ROUTING_PLANS[DEFAULT_PLAN].root;
4085
4162
  MODEL_ROUTING_PLANS[DEFAULT_PLAN].agents;
4163
+ var LEGACY_MANAGED_AGENT_MODEL_HISTORY = {
4164
+ go: {
4165
+ explorer: [{
4166
+ model: "gpt-5.6-terra",
4167
+ reasoningEffort: "low"
4168
+ }],
4169
+ librarian: [{
4170
+ model: "gpt-5.6-terra",
4171
+ reasoningEffort: "low"
4172
+ }],
4173
+ worker: [{
4174
+ model: "gpt-5.6-terra",
4175
+ reasoningEffort: "medium"
4176
+ }]
4177
+ },
4178
+ "plus-low": {
4179
+ explorer: [],
4180
+ librarian: [],
4181
+ worker: []
4182
+ },
4183
+ plus: {
4184
+ explorer: [{
4185
+ model: "gpt-5.6-luna",
4186
+ reasoningEffort: "low"
4187
+ }],
4188
+ librarian: [{
4189
+ model: "gpt-5.6-luna",
4190
+ reasoningEffort: "low"
4191
+ }],
4192
+ worker: [{
4193
+ model: "gpt-5.6-terra",
4194
+ reasoningEffort: "high"
4195
+ }]
4196
+ },
4197
+ "plus-high": {
4198
+ explorer: [],
4199
+ librarian: [],
4200
+ worker: []
4201
+ },
4202
+ "pro-5x": {
4203
+ explorer: [{
4204
+ model: "gpt-5.6-terra",
4205
+ reasoningEffort: "high"
4206
+ }],
4207
+ librarian: [{
4208
+ model: "gpt-5.6-terra",
4209
+ reasoningEffort: "high"
4210
+ }],
4211
+ worker: [{
4212
+ model: "gpt-5.6-sol",
4213
+ reasoningEffort: "medium"
4214
+ }]
4215
+ },
4216
+ "pro-20x": {
4217
+ explorer: [{
4218
+ model: "gpt-5.6-sol",
4219
+ reasoningEffort: "medium"
4220
+ }],
4221
+ librarian: [{
4222
+ model: "gpt-5.6-sol",
4223
+ reasoningEffort: "medium"
4224
+ }],
4225
+ worker: [{
4226
+ model: "gpt-5.6-sol",
4227
+ reasoningEffort: "high"
4228
+ }, {
4229
+ model: "gpt-5.6-luna",
4230
+ reasoningEffort: "medium"
4231
+ }]
4232
+ }
4233
+ };
4234
+ function managedPlanAgentModels(plan) {
4235
+ return {
4236
+ explorer: [MODEL_ROUTING_PLANS[plan].agents.explorer, ...LEGACY_MANAGED_AGENT_MODEL_HISTORY[plan].explorer],
4237
+ librarian: [MODEL_ROUTING_PLANS[plan].agents.librarian, ...LEGACY_MANAGED_AGENT_MODEL_HISTORY[plan].librarian],
4238
+ worker: [MODEL_ROUTING_PLANS[plan].agents.worker, ...LEGACY_MANAGED_AGENT_MODEL_HISTORY[plan].worker]
4239
+ };
4240
+ }
4241
+ var MANAGED_AGENT_MODEL_HISTORY_BY_PLAN = {
4242
+ go: managedPlanAgentModels("go"),
4243
+ "plus-low": managedPlanAgentModels("plus-low"),
4244
+ plus: managedPlanAgentModels("plus"),
4245
+ "plus-high": managedPlanAgentModels("plus-high"),
4246
+ "pro-5x": managedPlanAgentModels("pro-5x"),
4247
+ "pro-20x": managedPlanAgentModels("pro-20x")
4248
+ };
4086
4249
  function managedAgentModels(agent) {
4087
- const routes = PLAN_NAMES.map((plan) => MODEL_ROUTING_PLANS[plan].agents[agent]);
4088
- return agent === "worker" ? [...routes, {
4089
- model: "gpt-5.6-luna",
4090
- reasoningEffort: "medium"
4091
- }] : routes;
4250
+ return PLAN_NAMES.flatMap((plan) => MANAGED_AGENT_MODEL_HISTORY_BY_PLAN[plan][agent]);
4092
4251
  }
4093
4252
  var MANAGED_AGENT_MODEL_HISTORY = {
4094
4253
  explorer: managedAgentModels("explorer"),
4095
4254
  librarian: managedAgentModels("librarian"),
4096
4255
  worker: managedAgentModels("worker")
4097
4256
  };
4257
+ var LEGACY_MANAGED_ROOT_MODEL_HISTORY = {
4258
+ go: [{
4259
+ model: "gpt-5.6-terra",
4260
+ reasoningEffort: "medium"
4261
+ }],
4262
+ "plus-low": [],
4263
+ plus: [{
4264
+ model: "gpt-5.6-sol",
4265
+ reasoningEffort: "medium"
4266
+ }],
4267
+ "plus-high": [],
4268
+ "pro-5x": [{
4269
+ model: "gpt-5.6-sol",
4270
+ reasoningEffort: "high"
4271
+ }],
4272
+ "pro-20x": [{
4273
+ model: "gpt-5.6-sol",
4274
+ reasoningEffort: "xhigh"
4275
+ }]
4276
+ };
4277
+ function managedPlanRootModels(plan) {
4278
+ return [MODEL_ROUTING_PLANS[plan].root, ...LEGACY_MANAGED_ROOT_MODEL_HISTORY[plan]];
4279
+ }
4280
+ var MANAGED_ROOT_MODEL_HISTORY_BY_PLAN = {
4281
+ go: managedPlanRootModels("go"),
4282
+ "plus-low": managedPlanRootModels("plus-low"),
4283
+ plus: managedPlanRootModels("plus"),
4284
+ "plus-high": managedPlanRootModels("plus-high"),
4285
+ "pro-5x": managedPlanRootModels("pro-5x"),
4286
+ "pro-20x": managedPlanRootModels("pro-20x")
4287
+ };
4098
4288
  var GENERATED_RUNTIMES = [
4099
4289
  "bootstrap.js",
4100
4290
  "core-instructions.js",
@@ -4499,33 +4689,55 @@ function rootValue(input, key) {
4499
4689
  function removeRootValue(input, value) {
4500
4690
  return value === void 0 ? input : input.replace(value, "");
4501
4691
  }
4502
- function rootPreferences(plan) {
4503
- const root = MODEL_ROUTING_PLANS[plan].root;
4504
- return [
4505
- ["model", `model = "${root.model}"`],
4506
- ["model_reasoning_effort", `model_reasoning_effort = "${root.reasoningEffort}"`],
4507
- ["model_verbosity", "model_verbosity = \"low\""]
4508
- ];
4509
- }
4510
4692
  /** Reads the explicitly recorded model routing plan from managed configuration. */
4511
4693
  function readManagedPlan(input) {
4512
4694
  const value = new RegExp(`^${PLAN_PREFIX}(.+)$`, "m").exec(input)?.[1]?.trim();
4513
4695
  return PLAN_NAMES.find((plan) => plan === value);
4514
4696
  }
4697
+ /** Identifies explicit Root route overrides preserved from active managed configuration. */
4698
+ function readPreservedRootOverrides(input) {
4699
+ const managedRoot = new RegExp(`^${START}\\r?\\n([\\s\\S]*?)^${END}\\r?$`, "m").exec(input)?.[1];
4700
+ if (managedRoot === void 0) return {
4701
+ model: false,
4702
+ reasoningEffort: false
4703
+ };
4704
+ const plan = readManagedPlan(managedRoot);
4705
+ const model = rootTomlString(managedRoot, "model");
4706
+ const reasoningEffort = rootTomlString(managedRoot, "model_reasoning_effort");
4707
+ if (plan === void 0 || model === void 0 || reasoningEffort === void 0) return {
4708
+ model: false,
4709
+ reasoningEffort: false
4710
+ };
4711
+ if (MANAGED_ROOT_MODEL_HISTORY_BY_PLAN[plan].some((route) => route.model === model && route.reasoningEffort === reasoningEffort)) return {
4712
+ model: false,
4713
+ reasoningEffort: false
4714
+ };
4715
+ const preset = MODEL_ROUTING_PLANS[plan].root;
4716
+ return {
4717
+ model: model !== preset.model,
4718
+ reasoningEffort: reasoningEffort !== preset.reasoningEffort
4719
+ };
4720
+ }
4515
4721
  function preserveManagedRootPreferences(input, base) {
4516
4722
  const managedRoot = new RegExp(`^${START}\\r?\\n([\\s\\S]*?)^${END}\\r?$`, "m").exec(input)?.[1];
4517
4723
  if (managedRoot === void 0) return base;
4518
- const previousPlan = readManagedPlan(managedRoot) ?? "plus";
4519
4724
  const firstTable = base.search(/^\s*\[/m);
4520
4725
  const root = firstTable < 0 ? base : base.slice(0, firstTable);
4521
4726
  const tables = firstTable < 0 ? "" : base.slice(firstTable);
4522
4727
  let updatedRoot = root.trim();
4523
- for (const [key, fallback] of rootPreferences(previousPlan)) {
4728
+ const overrides = readPreservedRootOverrides(input);
4729
+ for (const [key, preserve] of [["model", overrides.model], ["model_reasoning_effort", overrides.reasoningEffort]]) {
4524
4730
  const live = rootValue(managedRoot, key)?.trim();
4525
- if (live === void 0 || live === (rootValue(root, key)?.trim() ?? fallback)) continue;
4731
+ if (!preserve || live === void 0) continue;
4732
+ if (rootValue(root, key)?.trim() === live) continue;
4526
4733
  updatedRoot = removeRootValue(updatedRoot, rootValue(updatedRoot, key)).trim();
4527
4734
  updatedRoot = `${updatedRoot}${updatedRoot ? "\n" : ""}${live}`;
4528
4735
  }
4736
+ const verbosity = rootValue(managedRoot, "model_verbosity")?.trim();
4737
+ if (verbosity !== void 0 && verbosity !== (rootValue(root, "model_verbosity")?.trim() ?? "model_verbosity = \"low\"")) {
4738
+ updatedRoot = removeRootValue(updatedRoot, rootValue(updatedRoot, "model_verbosity")).trim();
4739
+ updatedRoot = `${updatedRoot}${updatedRoot ? "\n" : ""}${verbosity}`;
4740
+ }
4529
4741
  if (updatedRoot === root.trim()) return base;
4530
4742
  return `${updatedRoot}${tables ? `\n${tables.trimStart()}` : ""}`;
4531
4743
  }
@@ -4561,8 +4773,9 @@ function installConfig(input, mode, _platform, plan = DEFAULT_PLAN) {
4561
4773
  let configured = `${`${START}\n${PLAN_PREFIX}${plan}\n${originalRoot ? `${ORIGINAL_ROOT}${Buffer.from(originalRoot).toString("base64")}\n` : ""}${model}${effort}${verbosity}${preservedRoot ? `${preservedRoot}\n` : ""}approval_policy = "${approval}"\nsandbox_mode = "${sandbox}"\nstatus_line = ${mergedStatusLine(controlled[3])}\n${END}`}${tables ? `\n\n${tables}` : ""}`;
4562
4774
  configured = injectTableKey(configured, "features", "default_mode_request_user_input", "true");
4563
4775
  configured = injectTableKey(configured, "features", "multi_agent", "true");
4564
- configured = injectTableKey(configured, "agents", "max_threads", "2");
4565
- configured = injectTableKey(configured, "agents", "max_depth", "1");
4776
+ const usage = MODEL_ROUTING_PLANS[plan].usage;
4777
+ configured = injectTableKey(configured, "agents", "max_threads", String(usage.maxThreads));
4778
+ configured = injectTableKey(configured, "agents", "max_depth", String(usage.maxDepth));
4566
4779
  if (mode !== "dangerous") configured = injectTableKey(configured, "sandbox_workspace_write", "network_access", "true");
4567
4780
  for (const agent of AGENTS) configured = injectTableKey(configured, `agents.${agent}`, "config_file", `"holycodex/agents/${agent}.toml"`);
4568
4781
  const plugin = `${START}\n[marketplaces.holycodex]\nsource = "https://github.com/davidbasilefilho/holycodex.git"\n\n[plugins."holycodex@holycodex"]\nenabled = true\n${END}`;
@@ -4651,6 +4864,11 @@ function tableBoolean(config, table, key) {
4651
4864
  const value = body === void 0 ? void 0 : new RegExp(`^\\s*${key}\\s*=\\s*(true|false)`, "m").exec(body)?.[1];
4652
4865
  return value === void 0 ? void 0 : value === "true";
4653
4866
  }
4867
+ function tableInteger(config, table, key) {
4868
+ const body = new RegExp(`^\\s*\\[${table.replaceAll(".", "\\.")}]\\s*$([\\s\\S]*?)(?=^\\s*\\[|(?![\\s\\S]))`, "m").exec(config)?.[1];
4869
+ const value = body === void 0 ? void 0 : new RegExp(`^\\s*${key}\\s*=\\s*(\\d+)`, "m").exec(body)?.[1];
4870
+ return value === void 0 ? void 0 : Number(value);
4871
+ }
4654
4872
  function autonomy(config) {
4655
4873
  const approval = rootTomlString(config, "approval_policy");
4656
4874
  const sandbox = rootTomlString(config, "sandbox_mode");
@@ -4729,6 +4947,10 @@ async function doctor(home = process.env.CODEX_HOME ?? join(homedir(), ".codex")
4729
4947
  const mode = autonomy(config);
4730
4948
  const plan = readManagedPlan(config);
4731
4949
  checks.push(plan === void 0 ? check("routing-plan", "error", "routing-plan-missing", "No managed model routing plan is recorded.", "Rerun holycodex install.") : check("routing-plan", "ok", "routing-plan-ready", `Model routing plan ${plan} is active.`));
4950
+ const preset = plan === void 0 ? void 0 : MODEL_ROUTING_PLANS[plan];
4951
+ const rootOverrides = readPreservedRootOverrides(config);
4952
+ checks.push(preset !== void 0 && rootTomlString(config, "model") === preset.root.model && rootTomlString(config, "model_reasoning_effort") === preset.root.reasoningEffort ? check("root-model", "ok", "root-model-ready", "Root model matches the selected routing plan.") : rootOverrides.model || rootOverrides.reasoningEffort ? check("root-model", "ok", "root-model-override", "Root model uses an intentionally preserved explicit override.") : check("root-model", "error", "root-model-stale", "Root model configuration does not match the selected routing plan.", "Reinstall HolyCodex."));
4953
+ checks.push(preset === void 0 || tableInteger(config, "agents", "max_threads") !== preset.usage.maxThreads || tableInteger(config, "agents", "max_depth") !== preset.usage.maxDepth ? check("agent-usage", "error", "agent-usage-stale", "Agent concurrency configuration does not match the selected routing plan.", "Reinstall HolyCodex.") : check("agent-usage", "ok", "agent-usage-ready", "Agent concurrency matches the selected routing plan."));
4732
4954
  checks.push(mode === "unknown" ? check("autonomy", "error", "invalid-autonomy-config", "Approval, sandbox, and network settings do not match a supported mode.", "Rerun install with the intended autonomy flag.") : mode === "dangerous" ? check("autonomy", "warning", "dangerous-autonomy", "Explicit dangerous autonomy is active; workspace containment is removed.") : check("autonomy", "ok", `${mode}-ready`, mode === "safe-workspace" ? "Safe workspace autonomy is active." : "Approval-free workspace autonomy is active."));
4733
4955
  checks.push(tableBoolean(config, "features", "default_mode_request_user_input") === true ? check("user-input", "ok", "user-input-ready", "default_mode_request_user_input is enabled.") : check("user-input", "error", "user-input-disabled", "default_mode_request_user_input is not enabled.", "Rerun holycodex install."));
4734
4956
  checks.push(rootTomlStringArray(config, "status_line")?.includes("context-remaining") === true ? check("context-visibility", "warning", "context-visible-support-unverified", "status_line includes context-remaining. Current official Codex config documents this item, but publishes no minimum compatible Codex version.") : check("context-visibility", "error", "context-hidden", "status_line does not include context-remaining.", "Rerun holycodex install."));
@@ -4880,7 +5102,7 @@ async function readAgentPreferences(root, previousPlan) {
4880
5102
  const model = rootTomlString(source, "model");
4881
5103
  const reasoningEffort = rootTomlString(source, "model_reasoning_effort");
4882
5104
  if (model === void 0 && reasoningEffort === void 0) return;
4883
- if (!(previousPlan === void 0 ? MANAGED_AGENT_MODEL_HISTORY[agent] : [MODEL_ROUTING_PLANS[previousPlan].agents[agent]]).some((item) => item.model === model && item.reasoningEffort === reasoningEffort)) preferences[agent] = {
5105
+ if (!(previousPlan === void 0 ? MANAGED_AGENT_MODEL_HISTORY[agent] : MANAGED_AGENT_MODEL_HISTORY_BY_PLAN[previousPlan][agent]).some((item) => item.model === model && item.reasoningEffort === reasoningEffort)) preferences[agent] = {
4884
5106
  ...model === void 0 ? {} : { model },
4885
5107
  ...reasoningEffort === void 0 ? {} : { reasoningEffort }
4886
5108
  };
@@ -4957,6 +5179,7 @@ async function cleanup(_options) {
4957
5179
  }
4958
5180
  //#endregion
4959
5181
  //#region packages/cli/src/presentation.ts
5182
+ var PLAN_HELP = `${PLAN_NAMES.slice(0, -1).join(", ")}, or ${PLAN_NAMES.at(-1)}`;
4960
5183
  var RESET = "\x1B[0m";
4961
5184
  var BOLD = "\x1B[1m";
4962
5185
  var CYAN = "\x1B[36m";
@@ -4981,13 +5204,13 @@ function renderHelp(version, color) {
4981
5204
  const title = paint(color, `${BOLD}${CYAN}`, `HOLYCODEX ${version}`);
4982
5205
  const section = (text) => paint(color, BOLD, text);
4983
5206
  const muted = (text) => paint(color, DIM, text);
4984
- return `${title}\n${muted("Lean Codex toolkit installer and doctor")}\n\n${section("USAGE")}\n holycodex <command> [options]\n\n${section("COMMANDS")}\n install Install or update HolyCodex\n cleanup Remove HolyCodex-owned state\n doctor Diagnose installation and runtime\n\n${section("OPTIONS")}\n --plan <plan> Model routing plan for install: ${PLAN_NAMES.join(", ")}\n Default: ${DEFAULT_PLAN}\n -h, --help Show help\n -v, --version Show version\n --no-tui Accepted; commands remain noninteractive\n --codex-autonomous Never ask; keep workspace sandbox\n --no-codex-autonomous Safe interactive defaults\n --dangerous-codex-autonomous Never ask; disable filesystem sandbox\n --json Print machine-readable output\n`;
5207
+ return `${title}\n${muted("Lean Codex toolkit installer and doctor")}\n\n${section("USAGE")}\n holycodex <command> [options]\n\n${section("COMMANDS")}\n install Install or update HolyCodex\n cleanup Remove HolyCodex-owned state\n doctor Diagnose installation and runtime\n\n${section("OPTIONS")}\n --plan <plan> Model routing plan for install: ${PLAN_HELP}\n Default: ${DEFAULT_PLAN}\n -h, --help Show help\n -v, --version Show version\n --no-tui Accepted; commands remain noninteractive\n --codex-autonomous Never ask; keep workspace sandbox\n --no-codex-autonomous Safe interactive defaults\n --dangerous-codex-autonomous Never ask; disable filesystem sandbox\n --json Print machine-readable output\n`;
4985
5208
  }
4986
5209
  /** Renders install-specific model plan and option help. */
4987
5210
  function renderInstallHelp(version, color) {
4988
5211
  const title = paint(color, `${BOLD}${CYAN}`, `HOLYCODEX ${version}`);
4989
5212
  const section = (text) => paint(color, BOLD, text);
4990
- return `${title}\n\n${section("Usage:")}\n holycodex install [options]\n\n${section("Options:")}\n --plan <plan> Model routing plan: go, plus, pro-5x, or pro-20x\n Default: plus\n --json Print machine-readable output\n --no-tui Accepted; install remains noninteractive\n --codex-autonomous Never ask; keep workspace sandbox\n --no-codex-autonomous Safe interactive defaults\n --dangerous-codex-autonomous Never ask; disable filesystem sandbox\n -h, --help Show help\n\nPlans optimize model routing for the corresponding ChatGPT subscription allowance.\n\n${section("Examples:")}\n bunx holycodex install\n bunx holycodex install --plan go\n bunx holycodex install --plan pro-5x\n bunx holycodex install --plan pro-20x\n`;
5213
+ return `${title}\n\n${section("Usage:")}\n holycodex install [options]\n\n${section("Options:")}\n --plan <plan> Model routing plan: ${PLAN_HELP}\n Default: ${DEFAULT_PLAN}\n --json Print machine-readable output\n --no-tui Accepted; install remains noninteractive\n --codex-autonomous Never ask; keep workspace sandbox\n --no-codex-autonomous Safe interactive defaults\n --dangerous-codex-autonomous Never ask; disable filesystem sandbox\n -h, --help Show help\n\nPlans provide increasing expected model usage and capability.\n\n${section("Examples:")}\n bunx holycodex install\n bunx holycodex install --plan go\n bunx holycodex install --plan plus-low\n bunx holycodex install --plan plus-high\n bunx holycodex install --plan pro-5x\n bunx holycodex install --plan pro-20x\n`;
4991
5214
  }
4992
5215
  /** Renders error. */
4993
5216
  function renderError(message, color) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "holycodex",
3
- "version": "0.7.4-dev.29653870432.1",
3
+ "version": "0.7.4-dev.29657943197.1",
4
4
  "description": "Lean Codex-only agent toolkit installer and doctor",
5
5
  "keywords": [
6
6
  "agents",
@@ -39,7 +39,7 @@
39
39
  "prepack": "vp run --workspace-root build"
40
40
  },
41
41
  "dependencies": {
42
- "@holycodex/plugin": "0.7.4-dev.29653870432.1",
42
+ "@holycodex/plugin": "0.7.4-dev.29657943197.1",
43
43
  "zod": "^4.4.3"
44
44
  },
45
45
  "engines": {