oh-my-codex 0.10.2 → 0.10.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.
Files changed (293) hide show
  1. package/Cargo.lock +2 -2
  2. package/Cargo.toml +1 -1
  3. package/README.de.md +4 -4
  4. package/README.es.md +4 -4
  5. package/README.fr.md +4 -4
  6. package/README.it.md +4 -4
  7. package/README.ja.md +4 -4
  8. package/README.ko.md +4 -4
  9. package/README.md +13 -7
  10. package/README.pt.md +4 -4
  11. package/README.ru.md +4 -4
  12. package/README.tr.md +4 -4
  13. package/README.vi.md +4 -4
  14. package/README.zh-TW.md +4 -4
  15. package/README.zh.md +4 -4
  16. package/dist/agents/__tests__/native-config.test.js +37 -33
  17. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  18. package/dist/agents/native-config.d.ts +18 -6
  19. package/dist/agents/native-config.d.ts.map +1 -1
  20. package/dist/agents/native-config.js +109 -92
  21. package/dist/agents/native-config.js.map +1 -1
  22. package/dist/autoresearch/__tests__/contracts.test.js +37 -1
  23. package/dist/autoresearch/__tests__/contracts.test.js.map +1 -1
  24. package/dist/autoresearch/__tests__/runtime-parity-extra.test.js +10 -10
  25. package/dist/autoresearch/__tests__/runtime-parity-extra.test.js.map +1 -1
  26. package/dist/autoresearch/__tests__/runtime.test.js +2 -2
  27. package/dist/autoresearch/__tests__/runtime.test.js.map +1 -1
  28. package/dist/autoresearch/contracts.d.ts.map +1 -1
  29. package/dist/autoresearch/contracts.js +17 -10
  30. package/dist/autoresearch/contracts.js.map +1 -1
  31. package/dist/autoresearch/runtime.d.ts.map +1 -1
  32. package/dist/autoresearch/runtime.js +84 -96
  33. package/dist/autoresearch/runtime.js.map +1 -1
  34. package/dist/cli/__tests__/agents-init.test.js +2 -0
  35. package/dist/cli/__tests__/agents-init.test.js.map +1 -1
  36. package/dist/cli/__tests__/agents.test.d.ts +2 -0
  37. package/dist/cli/__tests__/agents.test.d.ts.map +1 -0
  38. package/dist/cli/__tests__/agents.test.js +114 -0
  39. package/dist/cli/__tests__/agents.test.js.map +1 -0
  40. package/dist/cli/__tests__/autoresearch-guided.test.js +156 -1
  41. package/dist/cli/__tests__/autoresearch-guided.test.js.map +1 -1
  42. package/dist/cli/__tests__/autoresearch.test.js +483 -25
  43. package/dist/cli/__tests__/autoresearch.test.js.map +1 -1
  44. package/dist/cli/__tests__/cleanup.test.d.ts +2 -0
  45. package/dist/cli/__tests__/cleanup.test.d.ts.map +1 -0
  46. package/dist/cli/__tests__/cleanup.test.js +213 -0
  47. package/dist/cli/__tests__/cleanup.test.js.map +1 -0
  48. package/dist/cli/__tests__/error-handling-warnings.test.js +1 -1
  49. package/dist/cli/__tests__/error-handling-warnings.test.js.map +1 -1
  50. package/dist/cli/__tests__/explore.test.js +3 -3
  51. package/dist/cli/__tests__/explore.test.js.map +1 -1
  52. package/dist/cli/__tests__/index.test.js +530 -401
  53. package/dist/cli/__tests__/index.test.js.map +1 -1
  54. package/dist/cli/__tests__/native-assets.test.js +72 -9
  55. package/dist/cli/__tests__/native-assets.test.js.map +1 -1
  56. package/dist/cli/__tests__/ralph-deslop-contract.test.d.ts +2 -0
  57. package/dist/cli/__tests__/ralph-deslop-contract.test.d.ts.map +1 -0
  58. package/dist/cli/__tests__/ralph-deslop-contract.test.js +28 -0
  59. package/dist/cli/__tests__/ralph-deslop-contract.test.js.map +1 -0
  60. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js +4 -0
  61. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js.map +1 -1
  62. package/dist/cli/__tests__/ralphthon.test.d.ts +2 -0
  63. package/dist/cli/__tests__/ralphthon.test.d.ts.map +1 -0
  64. package/dist/cli/__tests__/ralphthon.test.js +28 -0
  65. package/dist/cli/__tests__/ralphthon.test.js.map +1 -0
  66. package/dist/cli/__tests__/setup-agents-overwrite.test.js +36 -1
  67. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
  68. package/dist/cli/__tests__/setup-prompts-overwrite.test.js +35 -5
  69. package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +1 -1
  70. package/dist/cli/__tests__/setup-refresh.test.js +2 -2
  71. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  72. package/dist/cli/__tests__/setup-scope.test.js +131 -161
  73. package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
  74. package/dist/cli/__tests__/setup-skills-overwrite.test.js +10 -10
  75. package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
  76. package/dist/cli/__tests__/sparkshell-cli.test.js +28 -2
  77. package/dist/cli/__tests__/sparkshell-cli.test.js.map +1 -1
  78. package/dist/cli/__tests__/team.test.js +1 -112
  79. package/dist/cli/__tests__/team.test.js.map +1 -1
  80. package/dist/cli/__tests__/uninstall.test.js +7 -20
  81. package/dist/cli/__tests__/uninstall.test.js.map +1 -1
  82. package/dist/cli/agents-init.d.ts.map +1 -1
  83. package/dist/cli/agents-init.js +99 -95
  84. package/dist/cli/agents-init.js.map +1 -1
  85. package/dist/cli/agents.d.ts +14 -0
  86. package/dist/cli/agents.d.ts.map +1 -0
  87. package/dist/cli/agents.js +261 -0
  88. package/dist/cli/agents.js.map +1 -0
  89. package/dist/cli/autoresearch-guided.d.ts +8 -0
  90. package/dist/cli/autoresearch-guided.d.ts.map +1 -1
  91. package/dist/cli/autoresearch-guided.js +104 -37
  92. package/dist/cli/autoresearch-guided.js.map +1 -1
  93. package/dist/cli/autoresearch-intake.d.ts +62 -0
  94. package/dist/cli/autoresearch-intake.d.ts.map +1 -0
  95. package/dist/cli/autoresearch-intake.js +336 -0
  96. package/dist/cli/autoresearch-intake.js.map +1 -0
  97. package/dist/cli/autoresearch.d.ts +4 -1
  98. package/dist/cli/autoresearch.d.ts.map +1 -1
  99. package/dist/cli/autoresearch.js +181 -32
  100. package/dist/cli/autoresearch.js.map +1 -1
  101. package/dist/cli/cleanup.d.ts +52 -0
  102. package/dist/cli/cleanup.d.ts.map +1 -0
  103. package/dist/cli/cleanup.js +302 -0
  104. package/dist/cli/cleanup.js.map +1 -0
  105. package/dist/cli/doctor.d.ts.map +1 -1
  106. package/dist/cli/doctor.js +9 -37
  107. package/dist/cli/doctor.js.map +1 -1
  108. package/dist/cli/explore.d.ts.map +1 -1
  109. package/dist/cli/explore.js +5 -4
  110. package/dist/cli/explore.js.map +1 -1
  111. package/dist/cli/index.d.ts +5 -7
  112. package/dist/cli/index.d.ts.map +1 -1
  113. package/dist/cli/index.js +623 -451
  114. package/dist/cli/index.js.map +1 -1
  115. package/dist/cli/native-assets.d.ts +15 -1
  116. package/dist/cli/native-assets.d.ts.map +1 -1
  117. package/dist/cli/native-assets.js +134 -32
  118. package/dist/cli/native-assets.js.map +1 -1
  119. package/dist/cli/ralph.d.ts.map +1 -1
  120. package/dist/cli/ralph.js +38 -1
  121. package/dist/cli/ralph.js.map +1 -1
  122. package/dist/cli/ralphthon.d.ts +14 -0
  123. package/dist/cli/ralphthon.d.ts.map +1 -0
  124. package/dist/cli/ralphthon.js +234 -0
  125. package/dist/cli/ralphthon.js.map +1 -0
  126. package/dist/cli/setup.d.ts +1 -4
  127. package/dist/cli/setup.d.ts.map +1 -1
  128. package/dist/cli/setup.js +111 -76
  129. package/dist/cli/setup.js.map +1 -1
  130. package/dist/cli/sparkshell.d.ts +3 -1
  131. package/dist/cli/sparkshell.d.ts.map +1 -1
  132. package/dist/cli/sparkshell.js +35 -16
  133. package/dist/cli/sparkshell.js.map +1 -1
  134. package/dist/cli/team.d.ts.map +1 -1
  135. package/dist/cli/team.js +1 -0
  136. package/dist/cli/team.js.map +1 -1
  137. package/dist/cli/uninstall.d.ts +1 -1
  138. package/dist/cli/uninstall.d.ts.map +1 -1
  139. package/dist/cli/uninstall.js +82 -64
  140. package/dist/cli/uninstall.js.map +1 -1
  141. package/dist/config/__tests__/generator-idempotent.test.js +10 -10
  142. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  143. package/dist/config/__tests__/generator-notify.test.js +15 -0
  144. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  145. package/dist/config/generator.d.ts +0 -1
  146. package/dist/config/generator.d.ts.map +1 -1
  147. package/dist/config/generator.js +53 -42
  148. package/dist/config/generator.js.map +1 -1
  149. package/dist/hooks/__tests__/agents-overlay.test.js +295 -230
  150. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  151. package/dist/hooks/__tests__/anti-slop-workflow.test.js +3 -0
  152. package/dist/hooks/__tests__/anti-slop-workflow.test.js.map +1 -1
  153. package/dist/hooks/__tests__/deep-interview-contract.test.js +49 -24
  154. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
  155. package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.d.ts +2 -0
  156. package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.d.ts.map +1 -0
  157. package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.js +193 -0
  158. package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.js.map +1 -0
  159. package/dist/hooks/agents-overlay.d.ts +1 -1
  160. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  161. package/dist/hooks/agents-overlay.js +109 -106
  162. package/dist/hooks/agents-overlay.js.map +1 -1
  163. package/dist/hud/constants.d.ts +1 -1
  164. package/dist/hud/constants.js +1 -1
  165. package/dist/modes/base.d.ts +1 -1
  166. package/dist/modes/base.d.ts.map +1 -1
  167. package/dist/modes/base.js +1 -1
  168. package/dist/modes/base.js.map +1 -1
  169. package/dist/notifications/__tests__/formatter.test.js +36 -2
  170. package/dist/notifications/__tests__/formatter.test.js.map +1 -1
  171. package/dist/notifications/formatter.d.ts +3 -2
  172. package/dist/notifications/formatter.d.ts.map +1 -1
  173. package/dist/notifications/formatter.js +33 -9
  174. package/dist/notifications/formatter.js.map +1 -1
  175. package/dist/ralphthon/__tests__/bootstrap.test.d.ts +2 -0
  176. package/dist/ralphthon/__tests__/bootstrap.test.d.ts.map +1 -0
  177. package/dist/ralphthon/__tests__/bootstrap.test.js +23 -0
  178. package/dist/ralphthon/__tests__/bootstrap.test.js.map +1 -0
  179. package/dist/ralphthon/__tests__/orchestrator.test.d.ts +2 -0
  180. package/dist/ralphthon/__tests__/orchestrator.test.d.ts.map +1 -0
  181. package/dist/ralphthon/__tests__/orchestrator.test.js +309 -0
  182. package/dist/ralphthon/__tests__/orchestrator.test.js.map +1 -0
  183. package/dist/ralphthon/__tests__/prd.test.d.ts +2 -0
  184. package/dist/ralphthon/__tests__/prd.test.d.ts.map +1 -0
  185. package/dist/ralphthon/__tests__/prd.test.js +133 -0
  186. package/dist/ralphthon/__tests__/prd.test.js.map +1 -0
  187. package/dist/ralphthon/bootstrap.d.ts +3 -0
  188. package/dist/ralphthon/bootstrap.d.ts.map +1 -0
  189. package/dist/ralphthon/bootstrap.js +84 -0
  190. package/dist/ralphthon/bootstrap.js.map +1 -0
  191. package/dist/ralphthon/orchestrator.d.ts +50 -0
  192. package/dist/ralphthon/orchestrator.d.ts.map +1 -0
  193. package/dist/ralphthon/orchestrator.js +362 -0
  194. package/dist/ralphthon/orchestrator.js.map +1 -0
  195. package/dist/ralphthon/prd.d.ts +191 -0
  196. package/dist/ralphthon/prd.d.ts.map +1 -0
  197. package/dist/ralphthon/prd.js +359 -0
  198. package/dist/ralphthon/prd.js.map +1 -0
  199. package/dist/ralphthon/runtime.d.ts +31 -0
  200. package/dist/ralphthon/runtime.d.ts.map +1 -0
  201. package/dist/ralphthon/runtime.js +108 -0
  202. package/dist/ralphthon/runtime.js.map +1 -0
  203. package/dist/ralphthon/tmux.d.ts +3 -0
  204. package/dist/ralphthon/tmux.d.ts.map +1 -0
  205. package/dist/ralphthon/tmux.js +39 -0
  206. package/dist/ralphthon/tmux.js.map +1 -0
  207. package/dist/subagents/__tests__/tracker.test.d.ts +2 -0
  208. package/dist/subagents/__tests__/tracker.test.d.ts.map +1 -0
  209. package/dist/subagents/__tests__/tracker.test.js +47 -0
  210. package/dist/subagents/__tests__/tracker.test.js.map +1 -0
  211. package/dist/subagents/tracker.d.ts +52 -0
  212. package/dist/subagents/tracker.d.ts.map +1 -0
  213. package/dist/subagents/tracker.js +175 -0
  214. package/dist/subagents/tracker.js.map +1 -0
  215. package/dist/team/__tests__/runtime.test.js +2 -2
  216. package/dist/team/__tests__/runtime.test.js.map +1 -1
  217. package/dist/team/__tests__/tmux-session.test.js +34 -0
  218. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  219. package/dist/team/__tests__/worker-bootstrap.test.js +189 -163
  220. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  221. package/dist/team/__tests__/worktree.test.js +1 -1
  222. package/dist/team/__tests__/worktree.test.js.map +1 -1
  223. package/dist/team/tmux-session.d.ts +4 -4
  224. package/dist/team/tmux-session.d.ts.map +1 -1
  225. package/dist/team/tmux-session.js +48 -15
  226. package/dist/team/tmux-session.js.map +1 -1
  227. package/dist/team/worker-bootstrap.d.ts +1 -1
  228. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  229. package/dist/team/worker-bootstrap.js +58 -63
  230. package/dist/team/worker-bootstrap.js.map +1 -1
  231. package/dist/team/worktree.js +1 -1
  232. package/dist/team/worktree.js.map +1 -1
  233. package/dist/utils/__tests__/agents-md.test.d.ts +2 -0
  234. package/dist/utils/__tests__/agents-md.test.d.ts.map +1 -0
  235. package/dist/utils/__tests__/agents-md.test.js +32 -0
  236. package/dist/utils/__tests__/agents-md.test.js.map +1 -0
  237. package/dist/utils/__tests__/agents-model-table.test.d.ts +2 -0
  238. package/dist/utils/__tests__/agents-model-table.test.d.ts.map +1 -0
  239. package/dist/utils/__tests__/agents-model-table.test.js +84 -0
  240. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -0
  241. package/dist/utils/__tests__/paths.test.js +78 -83
  242. package/dist/utils/__tests__/paths.test.js.map +1 -1
  243. package/dist/utils/agents-md.d.ts.map +1 -1
  244. package/dist/utils/agents-md.js +10 -0
  245. package/dist/utils/agents-md.js.map +1 -1
  246. package/dist/utils/agents-model-table.d.ts +16 -0
  247. package/dist/utils/agents-model-table.d.ts.map +1 -0
  248. package/dist/utils/agents-model-table.js +83 -0
  249. package/dist/utils/agents-model-table.js.map +1 -0
  250. package/dist/utils/paths.d.ts +6 -6
  251. package/dist/utils/paths.d.ts.map +1 -1
  252. package/dist/utils/paths.js +31 -31
  253. package/dist/utils/paths.js.map +1 -1
  254. package/dist/verification/__tests__/explore-harness-release-workflow.test.js +21 -3
  255. package/dist/verification/__tests__/explore-harness-release-workflow.test.js.map +1 -1
  256. package/dist/verification/__tests__/native-release-manifest.test.d.ts +2 -0
  257. package/dist/verification/__tests__/native-release-manifest.test.d.ts.map +1 -0
  258. package/dist/verification/__tests__/native-release-manifest.test.js +80 -0
  259. package/dist/verification/__tests__/native-release-manifest.test.js.map +1 -0
  260. package/package.json +1 -1
  261. package/prompts/executor.md +15 -0
  262. package/scripts/__tests__/smoke-packed-install.test.mjs +137 -8
  263. package/scripts/eval-adaptive-sort-optimization.py +24 -0
  264. package/scripts/eval-in-action-cat-shellout-demo.js +31 -0
  265. package/scripts/eval-ml-kaggle-model-optimization.py +29 -0
  266. package/scripts/eval-noisy-bayesopt-highdim.py +44 -0
  267. package/scripts/eval-noisy-latent-subspace-discovery.py +44 -0
  268. package/scripts/generate-native-release-manifest.mjs +14 -3
  269. package/scripts/notify-fallback-watcher.js +308 -6
  270. package/scripts/notify-hook.js +20 -0
  271. package/scripts/run-autoresearch-showcase.sh +75 -0
  272. package/scripts/smoke-packed-install.mjs +142 -10
  273. package/skills/ai-slop-cleaner/SKILL.md +7 -0
  274. package/skills/deep-interview/SKILL.md +30 -1
  275. package/skills/omx-setup/SKILL.md +2 -2
  276. package/skills/ralph/SKILL.md +15 -0
  277. package/skills/skill/SKILL.md +32 -32
  278. package/skills/team/SKILL.md +6 -0
  279. package/skills/worker/SKILL.md +2 -2
  280. package/templates/AGENTS.md +97 -16
  281. package/dist/cli/__tests__/runtime-native-resolution.test.d.ts +0 -2
  282. package/dist/cli/__tests__/runtime-native-resolution.test.d.ts.map +0 -1
  283. package/dist/cli/__tests__/runtime-native-resolution.test.js.map +0 -1
  284. package/dist/cli/__tests__/runtime-native.test.d.ts +0 -2
  285. package/dist/cli/__tests__/runtime-native.test.d.ts.map +0 -1
  286. package/dist/cli/__tests__/runtime-native.test.js.map +0 -1
  287. package/dist/cli/runtime-native.d.ts +0 -23
  288. package/dist/cli/runtime-native.d.ts.map +0 -1
  289. package/dist/cli/runtime-native.js +0 -86
  290. package/dist/cli/runtime-native.js.map +0 -1
  291. package/dist/mcp/__tests__/runtime-run-native-cutover.test.d.ts +0 -2
  292. package/dist/mcp/__tests__/runtime-run-native-cutover.test.d.ts.map +0 -1
  293. package/dist/mcp/__tests__/runtime-run-native-cutover.test.js.map +0 -1
@@ -1,137 +1,132 @@
1
- import { describe, it, beforeEach, afterEach } from 'node:test';
2
- import assert from 'node:assert/strict';
3
- import { join } from 'path';
4
- import { homedir, tmpdir } from 'os';
5
- import { existsSync } from 'fs';
6
- import { mkdtemp, mkdir, rm, writeFile } from 'fs/promises';
7
- import { codexHome, codexConfigPath, codexPromptsDir, userSkillsDir, legacyUserSkillsDir, projectSkillsDir, listInstalledSkillDirectories, omxStateDir, omxProjectMemoryPath, omxNotepadPath, omxPlansDir, omxLogsDir, packageRoot, } from '../paths.js';
8
- describe('codexHome', () => {
1
+ import { describe, it, beforeEach, afterEach } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { join } from "path";
4
+ import { homedir, tmpdir } from "os";
5
+ import { existsSync } from "fs";
6
+ import { mkdtemp, mkdir, rm, writeFile } from "fs/promises";
7
+ import { codexHome, codexConfigPath, codexPromptsDir, userSkillsDir, projectSkillsDir, listInstalledSkillDirectories, omxStateDir, omxProjectMemoryPath, omxNotepadPath, omxPlansDir, omxLogsDir, packageRoot, } from "../paths.js";
8
+ describe("codexHome", () => {
9
9
  let originalCodexHome;
10
10
  beforeEach(() => {
11
11
  originalCodexHome = process.env.CODEX_HOME;
12
12
  });
13
13
  afterEach(() => {
14
- if (typeof originalCodexHome === 'string') {
14
+ if (typeof originalCodexHome === "string") {
15
15
  process.env.CODEX_HOME = originalCodexHome;
16
16
  }
17
17
  else {
18
18
  delete process.env.CODEX_HOME;
19
19
  }
20
20
  });
21
- it('returns CODEX_HOME env var when set', () => {
22
- process.env.CODEX_HOME = '/tmp/custom-codex';
23
- assert.equal(codexHome(), '/tmp/custom-codex');
21
+ it("returns CODEX_HOME env var when set", () => {
22
+ process.env.CODEX_HOME = "/tmp/custom-codex";
23
+ assert.equal(codexHome(), "/tmp/custom-codex");
24
24
  });
25
- it('defaults to ~/.codex when CODEX_HOME is not set', () => {
25
+ it("defaults to ~/.codex when CODEX_HOME is not set", () => {
26
26
  delete process.env.CODEX_HOME;
27
- assert.equal(codexHome(), join(homedir(), '.codex'));
27
+ assert.equal(codexHome(), join(homedir(), ".codex"));
28
28
  });
29
29
  });
30
- describe('codexConfigPath', () => {
30
+ describe("codexConfigPath", () => {
31
31
  let originalCodexHome;
32
32
  beforeEach(() => {
33
33
  originalCodexHome = process.env.CODEX_HOME;
34
- process.env.CODEX_HOME = '/tmp/test-codex';
34
+ process.env.CODEX_HOME = "/tmp/test-codex";
35
35
  });
36
36
  afterEach(() => {
37
- if (typeof originalCodexHome === 'string') {
37
+ if (typeof originalCodexHome === "string") {
38
38
  process.env.CODEX_HOME = originalCodexHome;
39
39
  }
40
40
  else {
41
41
  delete process.env.CODEX_HOME;
42
42
  }
43
43
  });
44
- it('returns config.toml under codex home', () => {
45
- assert.equal(codexConfigPath(), '/tmp/test-codex/config.toml');
44
+ it("returns config.toml under codex home", () => {
45
+ assert.equal(codexConfigPath(), "/tmp/test-codex/config.toml");
46
46
  });
47
47
  });
48
- describe('codexPromptsDir', () => {
48
+ describe("codexPromptsDir", () => {
49
49
  let originalCodexHome;
50
50
  beforeEach(() => {
51
51
  originalCodexHome = process.env.CODEX_HOME;
52
- process.env.CODEX_HOME = '/tmp/test-codex';
52
+ process.env.CODEX_HOME = "/tmp/test-codex";
53
53
  });
54
54
  afterEach(() => {
55
- if (typeof originalCodexHome === 'string') {
55
+ if (typeof originalCodexHome === "string") {
56
56
  process.env.CODEX_HOME = originalCodexHome;
57
57
  }
58
58
  else {
59
59
  delete process.env.CODEX_HOME;
60
60
  }
61
61
  });
62
- it('returns prompts/ under codex home', () => {
63
- assert.equal(codexPromptsDir(), '/tmp/test-codex/prompts');
62
+ it("returns prompts/ under codex home", () => {
63
+ assert.equal(codexPromptsDir(), "/tmp/test-codex/prompts");
64
64
  });
65
65
  });
66
- describe('userSkillsDir', () => {
66
+ describe("userSkillsDir", () => {
67
67
  let originalCodexHome;
68
68
  beforeEach(() => {
69
69
  originalCodexHome = process.env.CODEX_HOME;
70
- process.env.CODEX_HOME = '/tmp/test-codex';
70
+ process.env.CODEX_HOME = "/tmp/test-codex";
71
71
  });
72
72
  afterEach(() => {
73
- if (typeof originalCodexHome === 'string') {
73
+ if (typeof originalCodexHome === "string") {
74
74
  process.env.CODEX_HOME = originalCodexHome;
75
75
  }
76
76
  else {
77
77
  delete process.env.CODEX_HOME;
78
78
  }
79
79
  });
80
- it('returns CODEX_HOME/skills', () => {
81
- assert.equal(userSkillsDir(), '/tmp/test-codex/skills');
80
+ it("returns CODEX_HOME/skills", () => {
81
+ assert.equal(userSkillsDir(), "/tmp/test-codex/skills");
82
82
  });
83
83
  });
84
- describe('legacyUserSkillsDir', () => {
85
- it('returns ~/.agents/skills', () => {
86
- assert.equal(legacyUserSkillsDir(), join(homedir(), '.agents', 'skills'));
84
+ describe("projectSkillsDir", () => {
85
+ it("uses provided projectRoot", () => {
86
+ assert.equal(projectSkillsDir("/my/project"), "/my/project/.codex/skills");
87
87
  });
88
- });
89
- describe('projectSkillsDir', () => {
90
- it('uses provided projectRoot', () => {
91
- assert.equal(projectSkillsDir('/my/project'), '/my/project/.agents/skills');
92
- });
93
- it('defaults to cwd when no projectRoot given', () => {
94
- assert.equal(projectSkillsDir(), join(process.cwd(), '.agents', 'skills'));
88
+ it("defaults to cwd when no projectRoot given", () => {
89
+ assert.equal(projectSkillsDir(), join(process.cwd(), ".codex", "skills"));
95
90
  });
96
91
  });
97
- describe('listInstalledSkillDirectories', () => {
92
+ describe("listInstalledSkillDirectories", () => {
98
93
  let originalCodexHome;
99
94
  beforeEach(() => {
100
95
  originalCodexHome = process.env.CODEX_HOME;
101
96
  });
102
97
  afterEach(() => {
103
- if (typeof originalCodexHome === 'string') {
98
+ if (typeof originalCodexHome === "string") {
104
99
  process.env.CODEX_HOME = originalCodexHome;
105
100
  }
106
101
  else {
107
102
  delete process.env.CODEX_HOME;
108
103
  }
109
104
  });
110
- it('deduplicates by skill name and prefers project skills over user skills', async () => {
111
- const projectRoot = await mkdtemp(join(tmpdir(), 'omx-paths-project-'));
112
- const codexHomeRoot = await mkdtemp(join(tmpdir(), 'omx-paths-codex-'));
105
+ it("deduplicates by skill name and prefers project skills over user skills", async () => {
106
+ const projectRoot = await mkdtemp(join(tmpdir(), "omx-paths-project-"));
107
+ const codexHomeRoot = await mkdtemp(join(tmpdir(), "omx-paths-codex-"));
113
108
  process.env.CODEX_HOME = codexHomeRoot;
114
109
  try {
115
- const projectHelpDir = join(projectRoot, '.agents', 'skills', 'help');
116
- const projectOnlyDir = join(projectRoot, '.agents', 'skills', 'project-only');
117
- const userHelpDir = join(codexHomeRoot, 'skills', 'help');
118
- const userOnlyDir = join(codexHomeRoot, 'skills', 'user-only');
110
+ const projectHelpDir = join(projectRoot, ".codex", "skills", "help");
111
+ const projectOnlyDir = join(projectRoot, ".codex", "skills", "project-only");
112
+ const userHelpDir = join(codexHomeRoot, "skills", "help");
113
+ const userOnlyDir = join(codexHomeRoot, "skills", "user-only");
119
114
  await mkdir(projectHelpDir, { recursive: true });
120
115
  await mkdir(projectOnlyDir, { recursive: true });
121
116
  await mkdir(userHelpDir, { recursive: true });
122
117
  await mkdir(userOnlyDir, { recursive: true });
123
- await writeFile(join(projectHelpDir, 'SKILL.md'), '# project help\n');
124
- await writeFile(join(projectOnlyDir, 'SKILL.md'), '# project only\n');
125
- await writeFile(join(userHelpDir, 'SKILL.md'), '# user help\n');
126
- await writeFile(join(userOnlyDir, 'SKILL.md'), '# user only\n');
118
+ await writeFile(join(projectHelpDir, "SKILL.md"), "# project help\n");
119
+ await writeFile(join(projectOnlyDir, "SKILL.md"), "# project only\n");
120
+ await writeFile(join(userHelpDir, "SKILL.md"), "# user help\n");
121
+ await writeFile(join(userOnlyDir, "SKILL.md"), "# user only\n");
127
122
  const skills = await listInstalledSkillDirectories(projectRoot);
128
123
  assert.deepEqual(skills.map((skill) => ({
129
124
  name: skill.name,
130
125
  scope: skill.scope,
131
126
  })), [
132
- { name: 'help', scope: 'project' },
133
- { name: 'project-only', scope: 'project' },
134
- { name: 'user-only', scope: 'user' },
127
+ { name: "help", scope: "project" },
128
+ { name: "project-only", scope: "project" },
129
+ { name: "user-only", scope: "user" },
135
130
  ]);
136
131
  assert.equal(skills[0]?.path, projectHelpDir);
137
132
  }
@@ -141,50 +136,50 @@ describe('listInstalledSkillDirectories', () => {
141
136
  }
142
137
  });
143
138
  });
144
- describe('omxStateDir', () => {
145
- it('uses provided projectRoot', () => {
146
- assert.equal(omxStateDir('/my/project'), '/my/project/.omx/state');
139
+ describe("omxStateDir", () => {
140
+ it("uses provided projectRoot", () => {
141
+ assert.equal(omxStateDir("/my/project"), "/my/project/.omx/state");
147
142
  });
148
- it('defaults to cwd when no projectRoot given', () => {
149
- assert.equal(omxStateDir(), join(process.cwd(), '.omx', 'state'));
143
+ it("defaults to cwd when no projectRoot given", () => {
144
+ assert.equal(omxStateDir(), join(process.cwd(), ".omx", "state"));
150
145
  });
151
146
  });
152
- describe('omxProjectMemoryPath', () => {
153
- it('uses provided projectRoot', () => {
154
- assert.equal(omxProjectMemoryPath('/my/project'), '/my/project/.omx/project-memory.json');
147
+ describe("omxProjectMemoryPath", () => {
148
+ it("uses provided projectRoot", () => {
149
+ assert.equal(omxProjectMemoryPath("/my/project"), "/my/project/.omx/project-memory.json");
155
150
  });
156
- it('defaults to cwd when no projectRoot given', () => {
157
- assert.equal(omxProjectMemoryPath(), join(process.cwd(), '.omx', 'project-memory.json'));
151
+ it("defaults to cwd when no projectRoot given", () => {
152
+ assert.equal(omxProjectMemoryPath(), join(process.cwd(), ".omx", "project-memory.json"));
158
153
  });
159
154
  });
160
- describe('omxNotepadPath', () => {
161
- it('uses provided projectRoot', () => {
162
- assert.equal(omxNotepadPath('/my/project'), '/my/project/.omx/notepad.md');
155
+ describe("omxNotepadPath", () => {
156
+ it("uses provided projectRoot", () => {
157
+ assert.equal(omxNotepadPath("/my/project"), "/my/project/.omx/notepad.md");
163
158
  });
164
- it('defaults to cwd when no projectRoot given', () => {
165
- assert.equal(omxNotepadPath(), join(process.cwd(), '.omx', 'notepad.md'));
159
+ it("defaults to cwd when no projectRoot given", () => {
160
+ assert.equal(omxNotepadPath(), join(process.cwd(), ".omx", "notepad.md"));
166
161
  });
167
162
  });
168
- describe('omxPlansDir', () => {
169
- it('uses provided projectRoot', () => {
170
- assert.equal(omxPlansDir('/my/project'), '/my/project/.omx/plans');
163
+ describe("omxPlansDir", () => {
164
+ it("uses provided projectRoot", () => {
165
+ assert.equal(omxPlansDir("/my/project"), "/my/project/.omx/plans");
171
166
  });
172
- it('defaults to cwd when no projectRoot given', () => {
173
- assert.equal(omxPlansDir(), join(process.cwd(), '.omx', 'plans'));
167
+ it("defaults to cwd when no projectRoot given", () => {
168
+ assert.equal(omxPlansDir(), join(process.cwd(), ".omx", "plans"));
174
169
  });
175
170
  });
176
- describe('omxLogsDir', () => {
177
- it('uses provided projectRoot', () => {
178
- assert.equal(omxLogsDir('/my/project'), '/my/project/.omx/logs');
171
+ describe("omxLogsDir", () => {
172
+ it("uses provided projectRoot", () => {
173
+ assert.equal(omxLogsDir("/my/project"), "/my/project/.omx/logs");
179
174
  });
180
- it('defaults to cwd when no projectRoot given', () => {
181
- assert.equal(omxLogsDir(), join(process.cwd(), '.omx', 'logs'));
175
+ it("defaults to cwd when no projectRoot given", () => {
176
+ assert.equal(omxLogsDir(), join(process.cwd(), ".omx", "logs"));
182
177
  });
183
178
  });
184
- describe('packageRoot', () => {
185
- it('resolves to a directory containing package.json', () => {
179
+ describe("packageRoot", () => {
180
+ it("resolves to a directory containing package.json", () => {
186
181
  const root = packageRoot();
187
- assert.equal(existsSync(join(root, 'package.json')), true);
182
+ assert.equal(existsSync(join(root, "package.json")), true);
188
183
  });
189
184
  });
190
185
  //# sourceMappingURL=paths.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/paths.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/paths.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../src/utils/agents-md.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,qCAAqC,CAAA;AAI7E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK/D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAahE"}
1
+ {"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../src/utils/agents-md.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,qCAAqC,CAAA;AAK7E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK/D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAyBhE"}
@@ -1,5 +1,6 @@
1
1
  export const OMX_GENERATED_AGENTS_MARKER = '<!-- omx:generated:agents-md -->';
2
2
  const OMX_GENERATED_AGENTS_TITLE = '# oh-my-codex - Intelligent Multi-Agent Orchestration';
3
+ const AUTONOMY_DIRECTIVE_END_MARKER = '<!-- END AUTONOMY DIRECTIVE -->';
3
4
  export function isOmxGeneratedAgentsMd(content) {
4
5
  return (content.includes(OMX_GENERATED_AGENTS_MARKER) ||
5
6
  content.includes(OMX_GENERATED_AGENTS_TITLE));
@@ -7,6 +8,15 @@ export function isOmxGeneratedAgentsMd(content) {
7
8
  export function addGeneratedAgentsMarker(content) {
8
9
  if (content.includes(OMX_GENERATED_AGENTS_MARKER))
9
10
  return content;
11
+ const autonomyDirectiveEnd = content.indexOf(AUTONOMY_DIRECTIVE_END_MARKER);
12
+ if (autonomyDirectiveEnd >= 0) {
13
+ const insertAt = autonomyDirectiveEnd + AUTONOMY_DIRECTIVE_END_MARKER.length;
14
+ const hasImmediateNewline = content[insertAt] === '\n';
15
+ const insertionPoint = hasImmediateNewline ? insertAt + 1 : insertAt;
16
+ return (content.slice(0, insertionPoint) +
17
+ `${OMX_GENERATED_AGENTS_MARKER}\n` +
18
+ content.slice(insertionPoint));
19
+ }
10
20
  const firstNewline = content.indexOf('\n');
11
21
  if (firstNewline === -1) {
12
22
  return `${content}\n${OMX_GENERATED_AGENTS_MARKER}\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../src/utils/agents-md.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAA;AAC7E,MAAM,0BAA0B,GAC9B,uDAAuD,CAAA;AAEzD,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC7C,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAC7C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,IAAI,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAAE,OAAO,OAAO,CAAA;IAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,KAAK,2BAA2B,IAAI,CAAA;IACvD,CAAC;IAED,OAAO,CACL,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC;QAClC,GAAG,2BAA2B,IAAI;QAClC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAChC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../src/utils/agents-md.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,kCAAkC,CAAA;AAC7E,MAAM,0BAA0B,GAC9B,uDAAuD,CAAA;AACzD,MAAM,6BAA6B,GAAG,iCAAiC,CAAA;AAEvE,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC7C,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAC7C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,IAAI,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAAE,OAAO,OAAO,CAAA;IAEjE,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;IAC3E,IAAI,oBAAoB,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,oBAAoB,GAAG,6BAA6B,CAAC,MAAM,CAAA;QAC5E,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAA;QACtD,MAAM,cAAc,GAAG,mBAAmB,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QACpE,OAAO,CACL,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC;YAChC,GAAG,2BAA2B,IAAI;YAClC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAC9B,CAAA;IACH,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,KAAK,2BAA2B,IAAI,CAAA;IACvD,CAAC;IAED,OAAO,CACL,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC;QAClC,GAAG,2BAA2B,IAAI;QAClC,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAChC,CAAA;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type AgentDefinition } from '../agents/definitions.js';
2
+ export declare const OMX_MODELS_START_MARKER = "<!-- OMX:MODELS:START -->";
3
+ export declare const OMX_MODELS_END_MARKER = "<!-- OMX:MODELS:END -->";
4
+ export interface AgentsModelTableContext {
5
+ frontierModel: string;
6
+ sparkModel: string;
7
+ subagentDefaultModel: string;
8
+ }
9
+ export declare function resolveAgentsModelTableContext(configTomlContent: string, options?: {
10
+ codexHomeOverride?: string;
11
+ env?: NodeJS.ProcessEnv;
12
+ }): AgentsModelTableContext;
13
+ export declare function buildAgentsModelTable(context: AgentsModelTableContext, definitions?: Record<string, AgentDefinition>): string;
14
+ export declare function renderAgentsModelTableBlock(context: AgentsModelTableContext, definitions?: Record<string, AgentDefinition>): string;
15
+ export declare function upsertAgentsModelTable(content: string, context: AgentsModelTableContext, definitions?: Record<string, AgentDefinition>): string;
16
+ //# sourceMappingURL=agents-model-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-model-table.d.ts","sourceRoot":"","sources":["../../src/utils/agents-model-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAUnF,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AACnE,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAI/D,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAsCD,wBAAgB,8BAA8B,CAC5C,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE;IACP,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACpB,GACL,uBAAuB,CAgBzB;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,uBAAuB,EAChC,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAqB,GAC/D,MAAM,CAuCR;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,uBAAuB,EAChC,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAqB,GAC/D,MAAM,CAMR;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,uBAAuB,EAChC,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAqB,GAC/D,MAAM,CAoBR"}
@@ -0,0 +1,83 @@
1
+ import { AGENT_DEFINITIONS } from '../agents/definitions.js';
2
+ import { getRootModelName } from '../config/generator.js';
3
+ import { DEFAULT_FRONTIER_MODEL, DEFAULT_SPARK_MODEL, getEnvConfiguredSparkDefaultModel, getEnvConfiguredMainDefaultModel, getSparkDefaultModel, } from '../config/models.js';
4
+ export const OMX_MODELS_START_MARKER = '<!-- OMX:MODELS:START -->';
5
+ export const OMX_MODELS_END_MARKER = '<!-- OMX:MODELS:END -->';
6
+ const TEAM_MODEL_RESOLUTION_END = '</team_model_resolution>';
7
+ function escapeTableCell(value) {
8
+ return value.replace(/\|/g, '\\|').replace(/\r?\n/g, ' ');
9
+ }
10
+ function formatRoleLabel(role) {
11
+ return role.includes('(') ? role : `\`${role}\``;
12
+ }
13
+ function getAgentRecommendedModel(agent, context) {
14
+ switch (agent.modelClass) {
15
+ case 'fast':
16
+ return context.sparkModel;
17
+ case 'frontier':
18
+ return context.frontierModel;
19
+ case 'standard':
20
+ default:
21
+ return context.subagentDefaultModel;
22
+ }
23
+ }
24
+ function getAgentUseCase(agent) {
25
+ return `${agent.description} (${agent.posture}, ${agent.modelClass})`;
26
+ }
27
+ function buildTableRow(role, model, reasoningEffort, useCase) {
28
+ return `| ${escapeTableCell(formatRoleLabel(role))} | ${escapeTableCell(`\`${model}\``)} | ${escapeTableCell(reasoningEffort)} | ${escapeTableCell(useCase)} |`;
29
+ }
30
+ export function resolveAgentsModelTableContext(configTomlContent, options = {}) {
31
+ const { codexHomeOverride, env = process.env } = options;
32
+ const frontierModel = getRootModelName(configTomlContent) ??
33
+ getEnvConfiguredMainDefaultModel(env, codexHomeOverride) ??
34
+ DEFAULT_FRONTIER_MODEL;
35
+ const sparkModel = getEnvConfiguredSparkDefaultModel(env, codexHomeOverride) ??
36
+ getSparkDefaultModel(codexHomeOverride) ??
37
+ DEFAULT_SPARK_MODEL;
38
+ return {
39
+ frontierModel,
40
+ sparkModel,
41
+ subagentDefaultModel: frontierModel,
42
+ };
43
+ }
44
+ export function buildAgentsModelTable(context, definitions = AGENT_DEFINITIONS) {
45
+ const rows = [
46
+ buildTableRow('Frontier (leader)', context.frontierModel, 'high', 'Primary leader/orchestrator for planning, coordination, and frontier-class reasoning.'),
47
+ buildTableRow('Spark (explorer/fast)', context.sparkModel, 'low', 'Fast triage, explore, lightweight synthesis, and low-latency routing.'),
48
+ buildTableRow('Subagent default', context.subagentDefaultModel, 'medium', 'Balanced default for standard-capability executors and specialists unless a role is explicitly frontier or fast-lane.'),
49
+ ...Object.values(definitions).map((agent) => buildTableRow(agent.name, getAgentRecommendedModel(agent, context), agent.reasoningEffort, getAgentUseCase(agent))),
50
+ ];
51
+ return [
52
+ '## Model Capability Table',
53
+ '',
54
+ 'Auto-generated by `omx setup` from the current `config.toml` plus OMX model overrides.',
55
+ '',
56
+ '| Role | Model | Reasoning Effort | Use Case |',
57
+ '| --- | --- | --- | --- |',
58
+ ...rows,
59
+ ].join('\n');
60
+ }
61
+ export function renderAgentsModelTableBlock(context, definitions = AGENT_DEFINITIONS) {
62
+ return [
63
+ OMX_MODELS_START_MARKER,
64
+ buildAgentsModelTable(context, definitions),
65
+ OMX_MODELS_END_MARKER,
66
+ ].join('\n');
67
+ }
68
+ export function upsertAgentsModelTable(content, context, definitions = AGENT_DEFINITIONS) {
69
+ const block = renderAgentsModelTableBlock(context, definitions);
70
+ const startIndex = content.indexOf(OMX_MODELS_START_MARKER);
71
+ const endIndex = content.indexOf(OMX_MODELS_END_MARKER);
72
+ if (startIndex >= 0 && endIndex > startIndex) {
73
+ const replaceEnd = endIndex + OMX_MODELS_END_MARKER.length;
74
+ return `${content.slice(0, startIndex)}${block}${content.slice(replaceEnd)}`;
75
+ }
76
+ const insertionAnchor = `${TEAM_MODEL_RESOLUTION_END}\n\n---`;
77
+ if (content.includes(insertionAnchor)) {
78
+ return content.replace(insertionAnchor, `${TEAM_MODEL_RESOLUTION_END}\n\n${block}\n\n---`);
79
+ }
80
+ const trailingNewline = content.endsWith('\n') ? '' : '\n';
81
+ return `${content}${trailingNewline}\n${block}\n`;
82
+ }
83
+ //# sourceMappingURL=agents-model-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-model-table.js","sourceRoot":"","sources":["../../src/utils/agents-model-table.ts"],"names":[],"mappings":"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"}
@@ -8,13 +8,15 @@ export declare function codexHome(): string;
8
8
  export declare function codexConfigPath(): string;
9
9
  /** Codex prompts directory (~/.codex/prompts/) */
10
10
  export declare function codexPromptsDir(): string;
11
+ /** Codex native agents directory (~/.codex/agents/) */
12
+ export declare function codexAgentsDir(codexHomeDir?: string): string;
13
+ /** Project-level Codex native agents directory (.codex/agents/) */
14
+ export declare function projectCodexAgentsDir(projectRoot?: string): string;
11
15
  /** User-level skills directory ($CODEX_HOME/skills, defaults to ~/.codex/skills/) */
12
16
  export declare function userSkillsDir(): string;
13
- /** Legacy user-level skills directory (~/.agents/skills/) */
14
- export declare function legacyUserSkillsDir(): string;
15
- /** Project-level skills directory (.agents/skills/) */
17
+ /** Project-level skills directory (.codex/skills/) */
16
18
  export declare function projectSkillsDir(projectRoot?: string): string;
17
- export type InstalledSkillScope = 'project' | 'user';
19
+ export type InstalledSkillScope = "project" | "user";
18
20
  export interface InstalledSkillDirectory {
19
21
  name: string;
20
22
  path: string;
@@ -35,8 +37,6 @@ export declare function omxNotepadPath(projectRoot?: string): string;
35
37
  export declare function omxPlansDir(projectRoot?: string): string;
36
38
  /** oh-my-codex logs directory (.omx/logs/) */
37
39
  export declare function omxLogsDir(projectRoot?: string): string;
38
- /** oh-my-codex native agent config directory (~/.omx/agents/) */
39
- export declare function omxAgentsConfigDir(): string;
40
40
  /** Get the package root directory (where agents/, skills/, prompts/ live) */
41
41
  export declare function packageRoot(): string;
42
42
  //# sourceMappingURL=paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,2CAA2C;AAC3C,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,oDAAoD;AACpD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,kDAAkD;AAClD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,qFAAqF;AACrF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAoBD;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC;AAED,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,iEAAiE;AACjE,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,IAAI,MAAM,CAgBpC"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,2CAA2C;AAC3C,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,oDAAoD;AACpD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,kDAAkD;AAClD,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,qFAAqF;AACrF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAoBD;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC;AAED,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,gDAAgD;AAChD,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,IAAI,MAAM,CAgBpC"}
@@ -2,34 +2,38 @@
2
2
  * Path utilities for oh-my-codex
3
3
  * Resolves Codex CLI config, skills, prompts, and state directories
4
4
  */
5
- import { dirname, join } from 'path';
6
- import { homedir } from 'os';
7
- import { fileURLToPath } from 'url';
8
- import { existsSync } from 'fs';
9
- import { readdir } from 'fs/promises';
5
+ import { dirname, join } from "path";
6
+ import { homedir } from "os";
7
+ import { fileURLToPath } from "url";
8
+ import { existsSync } from "fs";
9
+ import { readdir } from "fs/promises";
10
10
  /** Codex CLI home directory (~/.codex/) */
11
11
  export function codexHome() {
12
- return process.env.CODEX_HOME || join(homedir(), '.codex');
12
+ return process.env.CODEX_HOME || join(homedir(), ".codex");
13
13
  }
14
14
  /** Codex config file path (~/.codex/config.toml) */
15
15
  export function codexConfigPath() {
16
- return join(codexHome(), 'config.toml');
16
+ return join(codexHome(), "config.toml");
17
17
  }
18
18
  /** Codex prompts directory (~/.codex/prompts/) */
19
19
  export function codexPromptsDir() {
20
- return join(codexHome(), 'prompts');
20
+ return join(codexHome(), "prompts");
21
+ }
22
+ /** Codex native agents directory (~/.codex/agents/) */
23
+ export function codexAgentsDir(codexHomeDir) {
24
+ return join(codexHomeDir || codexHome(), "agents");
25
+ }
26
+ /** Project-level Codex native agents directory (.codex/agents/) */
27
+ export function projectCodexAgentsDir(projectRoot) {
28
+ return join(projectRoot || process.cwd(), ".codex", "agents");
21
29
  }
22
30
  /** User-level skills directory ($CODEX_HOME/skills, defaults to ~/.codex/skills/) */
23
31
  export function userSkillsDir() {
24
- return join(codexHome(), 'skills');
32
+ return join(codexHome(), "skills");
25
33
  }
26
- /** Legacy user-level skills directory (~/.agents/skills/) */
27
- export function legacyUserSkillsDir() {
28
- return join(homedir(), '.agents', 'skills');
29
- }
30
- /** Project-level skills directory (.agents/skills/) */
34
+ /** Project-level skills directory (.codex/skills/) */
31
35
  export function projectSkillsDir(projectRoot) {
32
- return join(projectRoot || process.cwd(), '.agents', 'skills');
36
+ return join(projectRoot || process.cwd(), ".codex", "skills");
33
37
  }
34
38
  async function readInstalledSkillsFromDir(dir, scope) {
35
39
  if (!existsSync(dir))
@@ -42,7 +46,7 @@ async function readInstalledSkillsFromDir(dir, scope) {
42
46
  path: join(dir, entry.name),
43
47
  scope,
44
48
  }))
45
- .filter((entry) => existsSync(join(entry.path, 'SKILL.md')))
49
+ .filter((entry) => existsSync(join(entry.path, "SKILL.md")))
46
50
  .sort((a, b) => a.name.localeCompare(b.name));
47
51
  }
48
52
  /**
@@ -51,8 +55,8 @@ async function readInstalledSkillsFromDir(dir, scope) {
51
55
  */
52
56
  export async function listInstalledSkillDirectories(projectRoot) {
53
57
  const orderedDirs = [
54
- { dir: projectSkillsDir(projectRoot), scope: 'project' },
55
- { dir: userSkillsDir(), scope: 'user' },
58
+ { dir: projectSkillsDir(projectRoot), scope: "project" },
59
+ { dir: userSkillsDir(), scope: "user" },
56
60
  ];
57
61
  const deduped = [];
58
62
  const seenNames = new Set();
@@ -69,39 +73,35 @@ export async function listInstalledSkillDirectories(projectRoot) {
69
73
  }
70
74
  /** oh-my-codex state directory (.omx/state/) */
71
75
  export function omxStateDir(projectRoot) {
72
- return join(projectRoot || process.cwd(), '.omx', 'state');
76
+ return join(projectRoot || process.cwd(), ".omx", "state");
73
77
  }
74
78
  /** oh-my-codex project memory file (.omx/project-memory.json) */
75
79
  export function omxProjectMemoryPath(projectRoot) {
76
- return join(projectRoot || process.cwd(), '.omx', 'project-memory.json');
80
+ return join(projectRoot || process.cwd(), ".omx", "project-memory.json");
77
81
  }
78
82
  /** oh-my-codex notepad file (.omx/notepad.md) */
79
83
  export function omxNotepadPath(projectRoot) {
80
- return join(projectRoot || process.cwd(), '.omx', 'notepad.md');
84
+ return join(projectRoot || process.cwd(), ".omx", "notepad.md");
81
85
  }
82
86
  /** oh-my-codex plans directory (.omx/plans/) */
83
87
  export function omxPlansDir(projectRoot) {
84
- return join(projectRoot || process.cwd(), '.omx', 'plans');
88
+ return join(projectRoot || process.cwd(), ".omx", "plans");
85
89
  }
86
90
  /** oh-my-codex logs directory (.omx/logs/) */
87
91
  export function omxLogsDir(projectRoot) {
88
- return join(projectRoot || process.cwd(), '.omx', 'logs');
89
- }
90
- /** oh-my-codex native agent config directory (~/.omx/agents/) */
91
- export function omxAgentsConfigDir() {
92
- return join(homedir(), '.omx', 'agents');
92
+ return join(projectRoot || process.cwd(), ".omx", "logs");
93
93
  }
94
94
  /** Get the package root directory (where agents/, skills/, prompts/ live) */
95
95
  export function packageRoot() {
96
96
  try {
97
97
  const __filename = fileURLToPath(import.meta.url);
98
98
  const __dirname = dirname(__filename);
99
- const candidate = join(__dirname, '..', '..');
100
- if (existsSync(join(candidate, 'package.json'))) {
99
+ const candidate = join(__dirname, "..", "..");
100
+ if (existsSync(join(candidate, "package.json"))) {
101
101
  return candidate;
102
102
  }
103
- const candidate2 = join(__dirname, '..');
104
- if (existsSync(join(candidate2, 'package.json'))) {
103
+ const candidate2 = join(__dirname, "..");
104
+ if (existsSync(join(candidate2, "package.json"))) {
105
105
  return candidate2;
106
106
  }
107
107
  }