@iamdevlinph/codex-kit 1.0.2 → 1.0.4

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/README.md CHANGED
@@ -27,13 +27,23 @@ For one-off use without a global installation, prefix a command with
27
27
  `global install` copies reusable agents to `${CODEX_HOME:-~/.codex}` and
28
28
  maintains a marked routing section in the global `AGENTS.md`.
29
29
 
30
+ The Sol root agent plans, coordinates, and validates. All project-file changes,
31
+ including small one-file edits, are delegated to a Luna `quick-implementer` or
32
+ `implementer`; the selected implementation agent edits directly without further
33
+ delegation.
34
+
30
35
  `global configure` sets these defaults while preserving unrelated settings:
31
36
 
32
37
  ```toml
33
38
  model = "gpt-5.6-sol"
34
39
  model_reasoning_effort = "high"
40
+ plan_mode_reasoning_effort = "high"
35
41
  ```
36
42
 
43
+ Before changing these keys, codex-kit creates a timestamped `config.toml`
44
+ backup and records their previous values. `global uninstall` restores those
45
+ values without replacing unrelated configuration changed afterward.
46
+
37
47
  Use a different Codex home when needed:
38
48
 
39
49
  ```sh
@@ -49,8 +59,9 @@ Inspect the installed setup:
49
59
  pnpm dlx @iamdevlinph/codex-kit@latest global list
50
60
  ```
51
61
 
52
- The summary shows the Codex home, orchestrator, reasoning effort, routing
53
- status, and installed custom agents without dumping unrelated configuration.
62
+ The summary shows the Codex home, orchestrator, normal and Plan-mode reasoning
63
+ effort, routing status, and installed custom agents without dumping unrelated
64
+ configuration.
54
65
 
55
66
  Uninstall package-managed global files:
56
67
 
@@ -1,18 +1,24 @@
1
1
  # Subagent Routing
2
2
 
3
- Keep focused, tightly coupled work in the parent task. Delegate only bounded,
4
- independent work when it materially reduces parent-context growth, latency, or
5
- cost. The user does not need to request subagents explicitly.
3
+ The root parent is the Sol planner and orchestrator. It must delegate all
4
+ file-changing implementation to a Luna implementation agent. The user does not
5
+ need to request subagents explicitly.
6
6
 
7
7
  The parent owns requirements, architecture, integration, and final validation.
8
8
  Never delegate the overall objective. Avoid parallel write-heavy work and never
9
9
  assign overlapping files to multiple agents.
10
10
 
11
- Do not delegate trivial conversation, known-target edits limited to one or two
12
- files, or straightforward commands. A slow command alone is not a reason to
13
- delegate.
11
+ For any task that creates, edits, or deletes project files, delegate the work to
12
+ exactly one of `quick-implementer` or `implementer`. Include bookkeeping commands
13
+ that write project state in that assignment. The parent may perform read-only
14
+ inspection and final validation, but must not make the project-file changes itself.
14
15
 
15
- When delegation is worthwhile:
16
+ These routing rules apply to the root parent. An implementation subagent performs
17
+ its assigned edits directly and must not delegate them again. Do not delegate
18
+ trivial conversation or straightforward read-only commands. A slow command alone
19
+ is not a reason to delegate.
20
+
21
+ For delegated work:
16
22
 
17
23
  - Prefer one subagent. Add more only for independent, non-overlapping work.
18
24
  - Give each agent a bounded task and request a concise, decision-ready report.
@@ -27,9 +33,9 @@ Select custom agents by exact name:
27
33
  - Multi-file behavior change, debugging, or substantial tests: `implementer`
28
34
  - Independent review of high-risk or difficult-to-validate changes: `code-reviewer`
29
35
 
30
- Use either `quick-implementer` or `implementer` for a change, not both. Use the
31
- lowest reasoning effort that reliably fits the work. Do not substitute a generic
32
- agent when a matching custom role is available.
36
+ Use either `quick-implementer` or `implementer` for a change, not both. Both roles
37
+ run Luna; use the lowest reasoning effort that reliably fits the work. Do not
38
+ substitute a generic agent when a matching custom role is available.
33
39
 
34
40
  There is no commit-pusher role. Never delegate Git publishing. Do not stage,
35
41
  commit, or push unless the user explicitly requests that operation in the current
package/bin/codex-kit.js CHANGED
@@ -71,7 +71,7 @@ function topLevelConfigEntries(contents) {
71
71
  }
72
72
  if (inTable)
73
73
  continue;
74
- const match = /^(\s*)(model|model_reasoning_effort)\s*=\s*(.*?)\s*$/.exec(line);
74
+ const match = /^(\s*)(model|model_reasoning_effort|plan_mode_reasoning_effort)\s*=\s*(.*?)\s*$/.exec(line);
75
75
  const key = match?.[2];
76
76
  const value = match?.[3];
77
77
  if (key && value !== undefined && !entries.has(key))
@@ -97,7 +97,7 @@ function setTopLevelConfig(contents, desired) {
97
97
  const line = lines[index];
98
98
  if (line === undefined)
99
99
  continue;
100
- const match = /^(\s*)(model|model_reasoning_effort)\s*=\s*(.*?)\s*$/.exec(line);
100
+ const match = /^(\s*)(model|model_reasoning_effort|plan_mode_reasoning_effort)\s*=\s*(.*?)\s*$/.exec(line);
101
101
  const key = match?.[2];
102
102
  if (!match || !key || seen.has(key))
103
103
  continue;
@@ -128,7 +128,7 @@ function restoreTopLevelConfig(contents, config) {
128
128
  const line = lines[index];
129
129
  if (line === undefined)
130
130
  continue;
131
- const match = /^(\s*)(model|model_reasoning_effort)\s*=\s*(.*?)\s*$/.exec(line);
131
+ const match = /^(\s*)(model|model_reasoning_effort|plan_mode_reasoning_effort)\s*=\s*(.*?)\s*$/.exec(line);
132
132
  const key = match?.[2];
133
133
  if (!match || !key || restored.has(key))
134
134
  continue;
@@ -286,6 +286,7 @@ function configureGlobal(options) {
286
286
  const desired = {
287
287
  model: options.orchestrator,
288
288
  model_reasoning_effort: options.reasoningEffort,
289
+ plan_mode_reasoning_effort: options.reasoningEffort,
289
290
  };
290
291
  const priorState = loadState(home);
291
292
  const original = existsSync(configFile) ? readText(configFile) : "";
@@ -327,6 +328,7 @@ function configureGlobal(options) {
327
328
  saveState(home, priorState);
328
329
  console.log(`Orchestrator: ${desired.model}`);
329
330
  console.log(`Reasoning effort: ${desired.model_reasoning_effort}`);
331
+ console.log(`Plan mode reasoning effort: ${desired.plan_mode_reasoning_effort}`);
330
332
  }
331
333
  function listGlobal(options) {
332
334
  const home = options.codexHome;
@@ -353,6 +355,7 @@ function listGlobal(options) {
353
355
  console.log(`Config: ${configFile}${existsSync(configFile) ? "" : " (missing)"}`);
354
356
  console.log(`Orchestrator: ${value("model")}`);
355
357
  console.log(`Reasoning effort: ${value("model_reasoning_effort")}`);
358
+ console.log(`Plan mode reasoning effort: ${value("plan_mode_reasoning_effort")}`);
356
359
  console.log(`Kit state: ${existsSync(stateFile) ? state.version : "not installed"}`);
357
360
  const hasRoutingBlock = existsSync(globalAgents) && readText(globalAgents).includes(GLOBAL_BEGIN);
358
361
  console.log(`Global routing: ${hasRoutingBlock ? "installed" : "not installed"}`);
@@ -644,22 +647,30 @@ function help() {
644
647
  console.log(`codex-kit ${PACKAGE.version}
645
648
 
646
649
  Usage:
647
- codex-kit global install [--codex-home PATH] [--force]
648
- codex-kit global configure [--orchestrator MODEL] [--reasoning-effort LEVEL]
649
- codex-kit global list [--codex-home PATH]
650
- codex-kit global uninstall [--codex-home PATH]
651
- codex-kit project init [--cwd PATH]
652
- codex-kit project sync [--cwd PATH]
653
- codex-kit project status [--cwd PATH]
654
- codex-kit project mark-applied [--cwd PATH]
655
- codex-kit version check
656
- codex-kit --help
657
- codex-kit --version
650
+ codex-kit <command> [options]
658
651
 
659
- Global configure defaults to gpt-5.6-sol with high reasoning and edits only
660
- the top-level model settings in CODEX_HOME/config.toml.
661
- Global install manages custom agents and a marked routing block under CODEX_HOME.
662
- Project sync refreshes TEMPLATE_AGENTS.md and never merges it into AGENTS.md.`);
652
+ Commands:
653
+ global install Install or update package-owned agents and routing guidance.
654
+ global configure Set the orchestrator and normal/Plan reasoning defaults.
655
+ global list Show model settings, routing status, and custom agents.
656
+ global uninstall Restore managed config values and remove package-owned files.
657
+ project init Initialize AGENTS.md, TEMPLATE_AGENTS.md, and project state.
658
+ project sync Refresh TEMPLATE_AGENTS.md without editing AGENTS.md.
659
+ project status Show whether template changes still need reconciliation.
660
+ project mark-applied Record the current template as reconciled with AGENTS.md.
661
+ version check Compare the installed version with the latest npm release.
662
+ --help Show this help.
663
+ --version Print the installed version.
664
+
665
+ Options:
666
+ --codex-home PATH Use a Codex home other than CODEX_HOME or ~/.codex.
667
+ --cwd PATH Use a project directory other than the current directory.
668
+ --force Replace modified files or config managed by codex-kit.
669
+ --orchestrator MODEL Set the root/orchestrator model (default: gpt-5.6-sol).
670
+ --model MODEL Alias for --orchestrator.
671
+ --reasoning-effort LEVEL Set normal and Plan-mode effort (default: high).
672
+
673
+ Run a command with only its applicable options.`);
663
674
  }
664
675
  export function main(argv = process.argv.slice(2)) {
665
676
  const options = parse(argv);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamdevlinph/codex-kit",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Portable Codex subagents and project AGENTS.md defaults.",
5
5
  "type": "module",
6
6
  "bin": {