holycodex 0.12.2 → 0.12.3

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 +151 -138
  2. package/package.json +2 -2
package/dist/cli.js CHANGED
@@ -4391,7 +4391,7 @@ function superRefine(fn, params) {
4391
4391
  }
4392
4392
  //#endregion
4393
4393
  //#region packages/cli/src/catalog.ts
4394
- var VERSION = "0.12.2";
4394
+ var VERSION = "0.12.3";
4395
4395
  var SKILLS = [
4396
4396
  "ast-grep",
4397
4397
  "babysit-ci",
@@ -4459,14 +4459,16 @@ var WORKFLOW_STAGES = [
4459
4459
  var WorkflowStageSchema = _enum(WORKFLOW_STAGES);
4460
4460
  var WorkflowLimitsSchema = strictObject({
4461
4461
  concurrency: number().int().positive(),
4462
- totalCalls: number().int().positive(),
4462
+ targetCalls: number().int().positive(),
4463
+ maxCalls: number().int().positive(),
4463
4464
  workflowDepth: number().int().positive(),
4464
4465
  retries: number().int().nonnegative(),
4465
4466
  loopIterations: number().int().positive(),
4466
- fanOut: number().int().positive(),
4467
- maxConcurrency: number().int().positive(),
4468
- maxCalls: number().int().positive(),
4469
- maxRetries: number().int().nonnegative()
4467
+ fanOut: number().int().positive()
4468
+ });
4469
+ var ProjectedUsageRangeSchema = strictObject({
4470
+ minimum: number().positive(),
4471
+ maximum: number().positive()
4470
4472
  });
4471
4473
  var WorkflowPolicySchema = strictObject({
4472
4474
  permittedRoutes: strictObject({
@@ -4478,8 +4480,8 @@ var WorkflowPolicySchema = strictObject({
4478
4480
  serviceTiers: tuple([literal("default"), literal("fast")]),
4479
4481
  limits: WorkflowLimitsSchema,
4480
4482
  projectedUsage: strictObject({
4481
- standard: number().positive(),
4482
- fast: number().positive()
4483
+ standard: ProjectedUsageRangeSchema,
4484
+ fast: ProjectedUsageRangeSchema
4483
4485
  }),
4484
4486
  softSizeGuidance: strictObject({
4485
4487
  maxInputTokens: number().int().positive(),
@@ -4503,20 +4505,18 @@ var ModelRoutingPlansSchema = strictObject({
4503
4505
  "pro-5x": RoutingPresetSchema,
4504
4506
  "pro-20x": RoutingPresetSchema
4505
4507
  });
4506
- function workflowFor(agents, limits, projectedUsage, maxInputTokens) {
4508
+ function workflowFor(permittedRoutes, limits, projectedUsage, maxInputTokens) {
4507
4509
  return {
4508
- permittedRoutes: Object.fromEntries(AGENTS.map((agent) => [agent, Object.fromEntries(WORKFLOW_STAGES.map((stage) => [stage, [agents[agent]]]))])),
4510
+ permittedRoutes,
4509
4511
  verbosity: "low",
4510
4512
  serviceTiers: ["default", "fast"],
4511
- limits: {
4512
- ...limits,
4513
- maxConcurrency: limits.concurrency,
4514
- maxCalls: limits.totalCalls,
4515
- maxRetries: limits.retries
4516
- },
4513
+ limits,
4517
4514
  projectedUsage: {
4518
4515
  standard: projectedUsage,
4519
- fast: projectedUsage * 2
4516
+ fast: {
4517
+ minimum: projectedUsage.minimum * 2,
4518
+ maximum: projectedUsage.maximum * 2
4519
+ }
4520
4520
  },
4521
4521
  softSizeGuidance: {
4522
4522
  maxInputTokens,
@@ -4524,48 +4524,46 @@ function workflowFor(agents, limits, projectedUsage, maxInputTokens) {
4524
4524
  }
4525
4525
  };
4526
4526
  }
4527
- var DEFAULT_PLAN = "plus";
4527
+ var DEFAULT_PLAN = "plus-low";
4528
+ var LUNA_HIGH = {
4529
+ model: "gpt-5.6-luna",
4530
+ reasoningEffort: "high"
4531
+ };
4532
+ var LUNA_XHIGH = {
4533
+ model: "gpt-5.6-luna",
4534
+ reasoningEffort: "xhigh"
4535
+ };
4536
+ var LUNA_MAX = {
4537
+ model: "gpt-5.6-luna",
4538
+ reasoningEffort: "max"
4539
+ };
4540
+ function uniformStageRoutes(...routes) {
4541
+ return Object.fromEntries(WORKFLOW_STAGES.map((stage) => [stage, [...routes]]));
4542
+ }
4528
4543
  var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4529
4544
  go: {
4530
- root: {
4531
- model: "gpt-5.6-luna",
4532
- reasoningEffort: "high"
4533
- },
4545
+ root: LUNA_HIGH,
4534
4546
  agents: {
4535
- explorer: {
4536
- model: "gpt-5.6-luna",
4537
- reasoningEffort: "high"
4538
- },
4539
- librarian: {
4540
- model: "gpt-5.6-luna",
4541
- reasoningEffort: "high"
4542
- },
4543
- worker: {
4544
- model: "gpt-5.6-luna",
4545
- reasoningEffort: "high"
4546
- }
4547
+ explorer: LUNA_HIGH,
4548
+ librarian: LUNA_HIGH,
4549
+ worker: LUNA_HIGH
4547
4550
  },
4548
4551
  workflow: workflowFor({
4549
- explorer: {
4550
- model: "gpt-5.6-luna",
4551
- reasoningEffort: "high"
4552
- },
4553
- librarian: {
4554
- model: "gpt-5.6-luna",
4555
- reasoningEffort: "high"
4556
- },
4557
- worker: {
4558
- model: "gpt-5.6-luna",
4559
- reasoningEffort: "high"
4560
- }
4552
+ explorer: uniformStageRoutes(LUNA_HIGH),
4553
+ librarian: uniformStageRoutes(LUNA_HIGH),
4554
+ worker: uniformStageRoutes(LUNA_HIGH)
4561
4555
  }, {
4562
4556
  concurrency: 1,
4563
- totalCalls: 4,
4557
+ targetCalls: 2,
4558
+ maxCalls: 4,
4564
4559
  workflowDepth: 2,
4565
4560
  retries: 0,
4566
4561
  loopIterations: 1,
4567
4562
  fanOut: 1
4568
- }, 4, 2e4)
4563
+ }, {
4564
+ minimum: .2,
4565
+ maximum: .35
4566
+ }, 2e4)
4569
4567
  },
4570
4568
  "plus-low": {
4571
4569
  root: {
@@ -4587,26 +4585,21 @@ var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4587
4585
  }
4588
4586
  },
4589
4587
  workflow: workflowFor({
4590
- explorer: {
4591
- model: "gpt-5.6-luna",
4592
- reasoningEffort: "high"
4593
- },
4594
- librarian: {
4595
- model: "gpt-5.6-luna",
4596
- reasoningEffort: "high"
4597
- },
4598
- worker: {
4599
- model: "gpt-5.6-luna",
4600
- reasoningEffort: "high"
4601
- }
4588
+ explorer: uniformStageRoutes(LUNA_HIGH),
4589
+ librarian: uniformStageRoutes(LUNA_HIGH),
4590
+ worker: uniformStageRoutes(LUNA_HIGH)
4602
4591
  }, {
4603
4592
  concurrency: 3,
4604
- totalCalls: 12,
4593
+ targetCalls: 4,
4594
+ maxCalls: 12,
4605
4595
  workflowDepth: 3,
4606
4596
  retries: 1,
4607
4597
  loopIterations: 2,
4608
4598
  fanOut: 3
4609
- }, 12, 3e4)
4599
+ }, {
4600
+ minimum: 1,
4601
+ maximum: 1
4602
+ }, 3e4)
4610
4603
  },
4611
4604
  plus: {
4612
4605
  root: {
@@ -4628,31 +4621,31 @@ var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4628
4621
  }
4629
4622
  },
4630
4623
  workflow: workflowFor({
4631
- explorer: {
4632
- model: "gpt-5.6-luna",
4633
- reasoningEffort: "high"
4634
- },
4635
- librarian: {
4636
- model: "gpt-5.6-luna",
4637
- reasoningEffort: "high"
4638
- },
4624
+ explorer: uniformStageRoutes(LUNA_HIGH),
4625
+ librarian: uniformStageRoutes(LUNA_HIGH),
4639
4626
  worker: {
4640
- model: "gpt-5.6-luna",
4641
- reasoningEffort: "high"
4627
+ analysis: [LUNA_HIGH, LUNA_XHIGH],
4628
+ research: [LUNA_HIGH],
4629
+ implementation: [LUNA_HIGH, LUNA_XHIGH],
4630
+ verification: [LUNA_XHIGH]
4642
4631
  }
4643
4632
  }, {
4644
4633
  concurrency: 3,
4645
- totalCalls: 16,
4634
+ targetCalls: 6,
4635
+ maxCalls: 16,
4646
4636
  workflowDepth: 4,
4647
4637
  retries: 2,
4648
4638
  loopIterations: 3,
4649
4639
  fanOut: 3
4650
- }, 16, 5e4)
4640
+ }, {
4641
+ minimum: 1.4,
4642
+ maximum: 1.7
4643
+ }, 5e4)
4651
4644
  },
4652
4645
  "plus-high": {
4653
4646
  root: {
4654
4647
  model: "gpt-5.6-sol",
4655
- reasoningEffort: "medium"
4648
+ reasoningEffort: "high"
4656
4649
  },
4657
4650
  agents: {
4658
4651
  explorer: {
@@ -4669,26 +4662,26 @@ var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4669
4662
  }
4670
4663
  },
4671
4664
  workflow: workflowFor({
4672
- explorer: {
4673
- model: "gpt-5.6-luna",
4674
- reasoningEffort: "high"
4675
- },
4676
- librarian: {
4677
- model: "gpt-5.6-luna",
4678
- reasoningEffort: "high"
4679
- },
4665
+ explorer: uniformStageRoutes(LUNA_HIGH, LUNA_XHIGH),
4666
+ librarian: uniformStageRoutes(LUNA_HIGH, LUNA_XHIGH),
4680
4667
  worker: {
4681
- model: "gpt-5.6-luna",
4682
- reasoningEffort: "xhigh"
4668
+ analysis: [LUNA_XHIGH],
4669
+ research: [LUNA_XHIGH],
4670
+ implementation: [LUNA_XHIGH, LUNA_MAX],
4671
+ verification: [LUNA_MAX]
4683
4672
  }
4684
4673
  }, {
4685
4674
  concurrency: 4,
4686
- totalCalls: 24,
4675
+ targetCalls: 8,
4676
+ maxCalls: 24,
4687
4677
  workflowDepth: 5,
4688
4678
  retries: 3,
4689
4679
  loopIterations: 4,
4690
4680
  fanOut: 4
4691
- }, 24, 7e4)
4681
+ }, {
4682
+ minimum: 2.4,
4683
+ maximum: 3.1
4684
+ }, 7e4)
4692
4685
  },
4693
4686
  "pro-5x": {
4694
4687
  root: {
@@ -4698,11 +4691,11 @@ var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4698
4691
  agents: {
4699
4692
  explorer: {
4700
4693
  model: "gpt-5.6-luna",
4701
- reasoningEffort: "high"
4694
+ reasoningEffort: "xhigh"
4702
4695
  },
4703
4696
  librarian: {
4704
4697
  model: "gpt-5.6-luna",
4705
- reasoningEffort: "high"
4698
+ reasoningEffort: "xhigh"
4706
4699
  },
4707
4700
  worker: {
4708
4701
  model: "gpt-5.6-luna",
@@ -4710,26 +4703,26 @@ var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4710
4703
  }
4711
4704
  },
4712
4705
  workflow: workflowFor({
4713
- explorer: {
4714
- model: "gpt-5.6-luna",
4715
- reasoningEffort: "high"
4716
- },
4717
- librarian: {
4718
- model: "gpt-5.6-luna",
4719
- reasoningEffort: "high"
4720
- },
4706
+ explorer: uniformStageRoutes(LUNA_XHIGH),
4707
+ librarian: uniformStageRoutes(LUNA_XHIGH),
4721
4708
  worker: {
4722
- model: "gpt-5.6-luna",
4723
- reasoningEffort: "xhigh"
4709
+ analysis: [LUNA_XHIGH, LUNA_MAX],
4710
+ research: [LUNA_XHIGH],
4711
+ implementation: [LUNA_MAX],
4712
+ verification: [LUNA_MAX]
4724
4713
  }
4725
4714
  }, {
4726
4715
  concurrency: 6,
4727
- totalCalls: 40,
4716
+ targetCalls: 12,
4717
+ maxCalls: 40,
4728
4718
  workflowDepth: 6,
4729
4719
  retries: 3,
4730
4720
  loopIterations: 5,
4731
4721
  fanOut: 5
4732
- }, 40, 1e5)
4722
+ }, {
4723
+ minimum: 4,
4724
+ maximum: 5
4725
+ }, 1e5)
4733
4726
  },
4734
4727
  "pro-20x": {
4735
4728
  root: {
@@ -4739,11 +4732,11 @@ var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4739
4732
  agents: {
4740
4733
  explorer: {
4741
4734
  model: "gpt-5.6-luna",
4742
- reasoningEffort: "high"
4735
+ reasoningEffort: "xhigh"
4743
4736
  },
4744
4737
  librarian: {
4745
4738
  model: "gpt-5.6-luna",
4746
- reasoningEffort: "high"
4739
+ reasoningEffort: "xhigh"
4747
4740
  },
4748
4741
  worker: {
4749
4742
  model: "gpt-5.6-luna",
@@ -4751,26 +4744,21 @@ var MODEL_ROUTING_PLANS = ModelRoutingPlansSchema.parse({
4751
4744
  }
4752
4745
  },
4753
4746
  workflow: workflowFor({
4754
- explorer: {
4755
- model: "gpt-5.6-luna",
4756
- reasoningEffort: "high"
4757
- },
4758
- librarian: {
4759
- model: "gpt-5.6-luna",
4760
- reasoningEffort: "high"
4761
- },
4762
- worker: {
4763
- model: "gpt-5.6-luna",
4764
- reasoningEffort: "max"
4765
- }
4747
+ explorer: uniformStageRoutes(LUNA_XHIGH, LUNA_MAX),
4748
+ librarian: uniformStageRoutes(LUNA_XHIGH, LUNA_MAX),
4749
+ worker: uniformStageRoutes(LUNA_MAX)
4766
4750
  }, {
4767
4751
  concurrency: 8,
4768
- totalCalls: 80,
4752
+ targetCalls: 20,
4753
+ maxCalls: 80,
4769
4754
  workflowDepth: 8,
4770
4755
  retries: 4,
4771
4756
  loopIterations: 8,
4772
4757
  fanOut: 8
4773
- }, 80, 15e4)
4758
+ }, {
4759
+ minimum: 8,
4760
+ maximum: 12
4761
+ }, 15e4)
4774
4762
  }
4775
4763
  });
4776
4764
  Object.fromEntries(PLAN_NAMES.map((plan) => [plan, MODEL_ROUTING_PLANS[plan].workflow]));
@@ -4891,6 +4879,10 @@ var LEGACY_MANAGED_AGENT_MODEL_HISTORY = {
4891
4879
  },
4892
4880
  "pro-5x": {
4893
4881
  explorer: [
4882
+ {
4883
+ model: "gpt-5.6-luna",
4884
+ reasoningEffort: "high"
4885
+ },
4894
4886
  {
4895
4887
  model: "gpt-5.6-luna",
4896
4888
  reasoningEffort: "xhigh"
@@ -4904,13 +4896,20 @@ var LEGACY_MANAGED_AGENT_MODEL_HISTORY = {
4904
4896
  reasoningEffort: "high"
4905
4897
  }
4906
4898
  ],
4907
- librarian: [{
4908
- model: "gpt-5.6-luna",
4909
- reasoningEffort: "xhigh"
4910
- }, {
4911
- model: "gpt-5.6-terra",
4912
- reasoningEffort: "high"
4913
- }],
4899
+ librarian: [
4900
+ {
4901
+ model: "gpt-5.6-luna",
4902
+ reasoningEffort: "high"
4903
+ },
4904
+ {
4905
+ model: "gpt-5.6-luna",
4906
+ reasoningEffort: "xhigh"
4907
+ },
4908
+ {
4909
+ model: "gpt-5.6-terra",
4910
+ reasoningEffort: "high"
4911
+ }
4912
+ ],
4914
4913
  worker: [
4915
4914
  {
4916
4915
  model: "gpt-5.6-luna",
@@ -4927,14 +4926,25 @@ var LEGACY_MANAGED_AGENT_MODEL_HISTORY = {
4927
4926
  ]
4928
4927
  },
4929
4928
  "pro-20x": {
4930
- explorer: [{
4931
- model: "gpt-5.6-luna",
4932
- reasoningEffort: "max"
4933
- }, {
4934
- model: "gpt-5.6-sol",
4935
- reasoningEffort: "medium"
4936
- }],
4929
+ explorer: [
4930
+ {
4931
+ model: "gpt-5.6-luna",
4932
+ reasoningEffort: "high"
4933
+ },
4934
+ {
4935
+ model: "gpt-5.6-luna",
4936
+ reasoningEffort: "max"
4937
+ },
4938
+ {
4939
+ model: "gpt-5.6-sol",
4940
+ reasoningEffort: "medium"
4941
+ }
4942
+ ],
4937
4943
  librarian: [
4944
+ {
4945
+ model: "gpt-5.6-luna",
4946
+ reasoningEffort: "high"
4947
+ },
4938
4948
  {
4939
4949
  model: "gpt-5.6-luna",
4940
4950
  reasoningEffort: "max"
@@ -5008,7 +5018,10 @@ var LEGACY_MANAGED_ROOT_MODEL_HISTORY = {
5008
5018
  ],
5009
5019
  "plus-low": [],
5010
5020
  plus: [],
5011
- "plus-high": [],
5021
+ "plus-high": [{
5022
+ model: "gpt-5.6-sol",
5023
+ reasoningEffort: "medium"
5024
+ }],
5012
5025
  "pro-5x": [{
5013
5026
  model: "gpt-5.6-sol",
5014
5027
  reasoningEffort: "medium"
@@ -5117,7 +5130,7 @@ function parseCliArguments(args) {
5117
5130
  "--no-fast"
5118
5131
  ].filter((flag) => values.has(flag));
5119
5132
  if (fastFlags.length > 1) throw new Error(`Conflicting Fast flags: ${fastFlags.join(", ")}`);
5120
- const planValue = values.get("--plan") ?? "plus";
5133
+ const planValue = values.get("--plan") ?? "plus-low";
5121
5134
  const plan = PlanNameSchema.safeParse(planValue);
5122
5135
  if (!plan.success) throw new Error(`Unknown plan: ${String(planValue)}. Valid plans: ${PLAN_NAMES.join(", ")}.`);
5123
5136
  const maxValue = values.get("--max-subagents");
@@ -6086,7 +6099,7 @@ async function doctor(home = process.env.CODEX_HOME ?? join(homedir(), ".codex")
6086
6099
  limits: MODEL_ROUTING_PLANS[plan].workflow.limits,
6087
6100
  projectedUsage: MODEL_ROUTING_PLANS[plan].workflow.projectedUsage,
6088
6101
  softSizeGuidance: MODEL_ROUTING_PLANS[plan].workflow.softSizeGuidance
6089
- }) ? check("workflow", "ok", "workflow-settings-ready", `${plan} workflow limits, projected usage, and size guidance match the catalog.`) : check("workflow", "error", "workflow-settings-drift", `${plan} workflow settings do not match the authoritative catalog.`, "Reinstall HolyCodex."));
6102
+ }) ? check("workflow", "ok", "workflow-settings-ready", `${plan} workflow target and maximum limits, projected usage, and size guidance match the catalog.`) : check("workflow", "error", "workflow-settings-drift", `${plan} workflow settings do not match the authoritative catalog.`, "Reinstall HolyCodex."));
6090
6103
  checks.push(missing.includes("runtime/workflow.js") ? check("workflow-runtime", "error", "workflow-runtime-missing", "The isolated workflow runtime is missing.", "Reinstall HolyCodex.") : check("workflow-runtime", "ok", "workflow-runtime-ready", "The isolated workflow runtime is present."));
6091
6104
  const manifest = await readFile(join(pluginRoot, ".codex-plugin", "plugin.json"), "utf8").catch(() => "");
6092
6105
  const mcpManifest = await access(join(pluginRoot, ".mcp.json")).then(() => true).catch(() => false);
@@ -6847,7 +6860,7 @@ async function install(options, runtime = defaultRuntime) {
6847
6860
  notify(options, "prerequisites", "Checking prerequisites", "running");
6848
6861
  assertGitBashReady(runtime.platform, runtime.gitBash());
6849
6862
  notify(options, "prerequisites", "Checking prerequisites", "complete");
6850
- const plan = options.plan ?? "plus";
6863
+ const plan = options.plan ?? "plus-low";
6851
6864
  const target = paths();
6852
6865
  const root = backupRoot();
6853
6866
  notify(options, "backup", "Backing up existing installation", "running");
@@ -6976,7 +6989,7 @@ async function restoreTarget(target, source) {
6976
6989
  }
6977
6990
  async function removeObsoleteVersionCaches(cacheRoot) {
6978
6991
  if (!await exists(cacheRoot)) return;
6979
- for (const entry of await readdir(cacheRoot)) if (entry !== "0.12.2") await rm(join(cacheRoot, entry), {
6992
+ for (const entry of await readdir(cacheRoot)) if (entry !== "0.12.3") await rm(join(cacheRoot, entry), {
6980
6993
  recursive: true,
6981
6994
  force: true
6982
6995
  });
@@ -7007,8 +7020,8 @@ async function readAgentPreferences(root, previousPlan) {
7007
7020
  const managed = (previousPlan === void 0 ? MANAGED_AGENT_MODEL_HISTORY[agent] : MANAGED_AGENT_MODEL_HISTORY_BY_PLAN[previousPlan][agent]).some((item) => item.model === model && item.reasoningEffort === reasoningEffort);
7008
7021
  const custom = extractCustomAgentSettings(source);
7009
7022
  if (!managed || custom !== void 0) preferences[agent] = {
7010
- ...model === void 0 ? {} : { model },
7011
- ...reasoningEffort === void 0 ? {} : { reasoningEffort },
7023
+ ...managed || model === void 0 ? {} : { model },
7024
+ ...managed || reasoningEffort === void 0 ? {} : { reasoningEffort },
7012
7025
  ...custom === void 0 ? {} : { custom }
7013
7026
  };
7014
7027
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "holycodex",
3
- "version": "0.12.2",
3
+ "version": "0.12.3",
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.12.2",
42
+ "@holycodex/plugin": "0.12.3",
43
43
  "zod": "^4.4.3"
44
44
  },
45
45
  "devDependencies": {