oh-my-codex 0.17.3 → 0.18.0

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 (158) hide show
  1. package/Cargo.lock +13 -5
  2. package/Cargo.toml +2 -1
  3. package/README.md +1 -0
  4. package/crates/omx-api/Cargo.toml +19 -0
  5. package/crates/omx-api/src/lib.rs +2940 -0
  6. package/crates/omx-api/src/main.rs +10 -0
  7. package/crates/omx-api/tests/cli.rs +558 -0
  8. package/crates/omx-explore/src/main.rs +4 -0
  9. package/crates/omx-sparkshell/src/codex_bridge.rs +437 -123
  10. package/crates/omx-sparkshell/src/exec.rs +4 -0
  11. package/crates/omx-sparkshell/src/main.rs +738 -29
  12. package/crates/omx-sparkshell/src/prompt.rs +25 -3
  13. package/crates/omx-sparkshell/src/redaction.rs +241 -0
  14. package/crates/omx-sparkshell/tests/execution.rs +479 -238
  15. package/dist/cli/__tests__/api.test.d.ts +2 -0
  16. package/dist/cli/__tests__/api.test.d.ts.map +1 -0
  17. package/dist/cli/__tests__/api.test.js +175 -0
  18. package/dist/cli/__tests__/api.test.js.map +1 -0
  19. package/dist/cli/__tests__/ask.test.js +72 -5
  20. package/dist/cli/__tests__/ask.test.js.map +1 -1
  21. package/dist/cli/__tests__/autoresearch-goal.test.js +14 -1
  22. package/dist/cli/__tests__/autoresearch-goal.test.js.map +1 -1
  23. package/dist/cli/__tests__/explore.test.js +23 -0
  24. package/dist/cli/__tests__/explore.test.js.map +1 -1
  25. package/dist/cli/__tests__/index.test.js +123 -5
  26. package/dist/cli/__tests__/index.test.js.map +1 -1
  27. package/dist/cli/__tests__/launch-fallback.test.js +76 -0
  28. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  29. package/dist/cli/__tests__/package-bin-contract.test.js +4 -3
  30. package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
  31. package/dist/cli/__tests__/setup-install-mode.test.js +138 -0
  32. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  33. package/dist/cli/__tests__/sparkshell-cli.test.js +5 -0
  34. package/dist/cli/__tests__/sparkshell-cli.test.js.map +1 -1
  35. package/dist/cli/__tests__/version-sync-contract.test.js +4 -0
  36. package/dist/cli/__tests__/version-sync-contract.test.js.map +1 -1
  37. package/dist/cli/__tests__/windows-popup-loop-contract.test.js +1 -1
  38. package/dist/cli/__tests__/windows-popup-loop-contract.test.js.map +1 -1
  39. package/dist/cli/api.d.ts +26 -0
  40. package/dist/cli/api.d.ts.map +1 -0
  41. package/dist/cli/api.js +153 -0
  42. package/dist/cli/api.js.map +1 -0
  43. package/dist/cli/explore.d.ts +2 -0
  44. package/dist/cli/explore.d.ts.map +1 -1
  45. package/dist/cli/explore.js +43 -1
  46. package/dist/cli/explore.js.map +1 -1
  47. package/dist/cli/index.d.ts +10 -4
  48. package/dist/cli/index.d.ts.map +1 -1
  49. package/dist/cli/index.js +128 -10
  50. package/dist/cli/index.js.map +1 -1
  51. package/dist/cli/native-assets.d.ts +2 -1
  52. package/dist/cli/native-assets.d.ts.map +1 -1
  53. package/dist/cli/native-assets.js +1 -0
  54. package/dist/cli/native-assets.js.map +1 -1
  55. package/dist/cli/sparkshell.d.ts.map +1 -1
  56. package/dist/cli/sparkshell.js +20 -3
  57. package/dist/cli/sparkshell.js.map +1 -1
  58. package/dist/config/generator.d.ts.map +1 -1
  59. package/dist/config/generator.js +90 -0
  60. package/dist/config/generator.js.map +1 -1
  61. package/dist/hooks/__tests__/best-practice-research-skill.test.d.ts +2 -0
  62. package/dist/hooks/__tests__/best-practice-research-skill.test.d.ts.map +1 -0
  63. package/dist/hooks/__tests__/best-practice-research-skill.test.js +27 -0
  64. package/dist/hooks/__tests__/best-practice-research-skill.test.js.map +1 -0
  65. package/dist/hooks/__tests__/keyword-detector.test.js +11 -0
  66. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  67. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +6 -0
  68. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  69. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js +4 -0
  70. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js.map +1 -1
  71. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  72. package/dist/hooks/keyword-registry.js +1 -0
  73. package/dist/hooks/keyword-registry.js.map +1 -1
  74. package/dist/hud/__tests__/reconcile.test.js +2 -2
  75. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  76. package/dist/hud/__tests__/tmux.test.js +23 -18
  77. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  78. package/dist/hud/tmux.d.ts.map +1 -1
  79. package/dist/hud/tmux.js +7 -6
  80. package/dist/hud/tmux.js.map +1 -1
  81. package/dist/mcp/__tests__/bootstrap.test.js +75 -1
  82. package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
  83. package/dist/mcp/bootstrap.d.ts +3 -1
  84. package/dist/mcp/bootstrap.d.ts.map +1 -1
  85. package/dist/mcp/bootstrap.js +71 -2
  86. package/dist/mcp/bootstrap.js.map +1 -1
  87. package/dist/scripts/__tests__/codex-native-hook.test.js +737 -26
  88. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  89. package/dist/scripts/__tests__/notify-dispatcher.test.js +183 -1
  90. package/dist/scripts/__tests__/notify-dispatcher.test.js.map +1 -1
  91. package/dist/scripts/__tests__/smoke-packed-install.test.js +4 -1
  92. package/dist/scripts/__tests__/smoke-packed-install.test.js.map +1 -1
  93. package/dist/scripts/build-api.d.ts +2 -0
  94. package/dist/scripts/build-api.d.ts.map +1 -0
  95. package/dist/scripts/build-api.js +44 -0
  96. package/dist/scripts/build-api.js.map +1 -0
  97. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  98. package/dist/scripts/codex-native-hook.js +208 -8
  99. package/dist/scripts/codex-native-hook.js.map +1 -1
  100. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
  101. package/dist/scripts/codex-native-pre-post.js +89 -24
  102. package/dist/scripts/codex-native-pre-post.js.map +1 -1
  103. package/dist/scripts/notify-dispatcher.js +88 -0
  104. package/dist/scripts/notify-dispatcher.js.map +1 -1
  105. package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -1
  106. package/dist/scripts/notify-hook/team-dispatch.js +27 -9
  107. package/dist/scripts/notify-hook/team-dispatch.js.map +1 -1
  108. package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
  109. package/dist/scripts/notify-hook/team-leader-nudge.js +26 -11
  110. package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
  111. package/dist/scripts/notify-hook/team-tmux-guard.d.ts +1 -0
  112. package/dist/scripts/notify-hook/team-tmux-guard.d.ts.map +1 -1
  113. package/dist/scripts/notify-hook/team-tmux-guard.js +38 -0
  114. package/dist/scripts/notify-hook/team-tmux-guard.js.map +1 -1
  115. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
  116. package/dist/scripts/notify-hook/team-worker-stop.js +27 -14
  117. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
  118. package/dist/scripts/run-provider-advisor.js +9 -3
  119. package/dist/scripts/run-provider-advisor.js.map +1 -1
  120. package/dist/scripts/smoke-packed-install.d.ts +1 -1
  121. package/dist/scripts/smoke-packed-install.d.ts.map +1 -1
  122. package/dist/scripts/smoke-packed-install.js +2 -0
  123. package/dist/scripts/smoke-packed-install.js.map +1 -1
  124. package/dist/team/__tests__/runtime.test.js +2 -2
  125. package/dist/team/__tests__/runtime.test.js.map +1 -1
  126. package/dist/team/__tests__/tmux-session.test.js +96 -19
  127. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  128. package/dist/team/tmux-session.d.ts +1 -0
  129. package/dist/team/tmux-session.d.ts.map +1 -1
  130. package/dist/team/tmux-session.js +34 -10
  131. package/dist/team/tmux-session.js.map +1 -1
  132. package/dist/verification/__tests__/ci-rust-gates.test.js +85 -10
  133. package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
  134. package/dist/verification/__tests__/explore-harness-release-workflow.test.js +1 -0
  135. package/dist/verification/__tests__/explore-harness-release-workflow.test.js.map +1 -1
  136. package/package.json +4 -3
  137. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  138. package/plugins/oh-my-codex/skills/best-practice-research/SKILL.md +83 -0
  139. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +1 -0
  140. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +1 -1
  141. package/prompts/researcher.md +15 -10
  142. package/skills/best-practice-research/SKILL.md +83 -0
  143. package/skills/deep-interview/SKILL.md +1 -0
  144. package/skills/ralplan/SKILL.md +1 -1
  145. package/src/scripts/__tests__/codex-native-hook.test.ts +810 -4
  146. package/src/scripts/__tests__/notify-dispatcher.test.ts +223 -1
  147. package/src/scripts/__tests__/smoke-packed-install.test.ts +8 -2
  148. package/src/scripts/build-api.ts +48 -0
  149. package/src/scripts/codex-native-hook.ts +262 -10
  150. package/src/scripts/codex-native-pre-post.ts +103 -24
  151. package/src/scripts/notify-dispatcher.ts +97 -0
  152. package/src/scripts/notify-hook/team-dispatch.ts +27 -8
  153. package/src/scripts/notify-hook/team-leader-nudge.ts +25 -11
  154. package/src/scripts/notify-hook/team-tmux-guard.ts +42 -0
  155. package/src/scripts/notify-hook/team-worker-stop.ts +24 -13
  156. package/src/scripts/run-provider-advisor.ts +11 -3
  157. package/src/scripts/smoke-packed-install.ts +2 -0
  158. package/templates/catalog-manifest.json +7 -0
@@ -8,7 +8,7 @@ function readCiWorkflow() {
8
8
  return readFileSync(workflowPath, 'utf-8');
9
9
  }
10
10
  function jobBlock(workflow, jobName) {
11
- const startMatch = workflow.match(new RegExp(`(^|\\n) ${jobName}:\\n`));
11
+ const startMatch = workflow.match(new RegExp(`(^|\n) ${jobName}:\n`));
12
12
  assert.ok(startMatch?.index !== undefined, `missing CI job block for ${jobName}`);
13
13
  const start = startMatch.index + startMatch[1].length;
14
14
  const afterJobHeader = start + ` ${jobName}:\n`.length;
@@ -16,7 +16,65 @@ function jobBlock(workflow, jobName) {
16
16
  const end = nextJobOffset === -1 ? workflow.length : afterJobHeader + nextJobOffset;
17
17
  return workflow.slice(start, end);
18
18
  }
19
+ function assertJobIf(workflow, jobName, expected) {
20
+ assert.match(jobBlock(workflow, jobName), expected, `${jobName} should have the expected lane predicate`);
21
+ }
19
22
  describe('CI Rust gates', () => {
23
+ it('detects changed-file lanes once and exposes fail-closed outputs for targeted CI', () => {
24
+ const workflow = readCiWorkflow();
25
+ const changesJob = jobBlock(workflow, 'changes');
26
+ assert.match(workflow, /changes:\s*\n\s+name:\s*Detect CI lanes/);
27
+ for (const outputName of [
28
+ 'full_suite',
29
+ 'docs_changed',
30
+ 'docs_only',
31
+ 'ts_changed',
32
+ 'rust_changed',
33
+ 'native_changed',
34
+ 'shared_config_changed',
35
+ 'reason',
36
+ ]) {
37
+ assert.equal(changesJob.includes(`${outputName}: $` + `{{ steps.classify.outputs.${outputName} }}`), true);
38
+ }
39
+ assert.match(changesJob, /fetch-depth:\s*0/);
40
+ assert.match(changesJob, /pull request targets main/);
41
+ assert.match(changesJob, /push to main/);
42
+ assert.match(changesJob, /missing or first-push base sha/);
43
+ assert.match(changesJob, /unable to resolve diff commits/);
44
+ assert.match(changesJob, /empty diff or classifier uncertainty/);
45
+ assert.match(changesJob, /shared config, workflow, manifest, lockfile, or packaging change/);
46
+ });
47
+ it('classifies docs, TypeScript, Rust/native, shared config, renames, and unknown paths explicitly', () => {
48
+ const workflow = readCiWorkflow();
49
+ const changesJob = jobBlock(workflow, 'changes');
50
+ assert.match(changesJob, /function pathsFromNameStatus/);
51
+ assert.match(changesJob, /if \(\/\^\[RC\]\/\.test\(status\)\) return parts\.slice\(1, 3\)/);
52
+ assert.match(changesJob, /function isDocs\(path\)/);
53
+ assert.match(changesJob, /\^docs\\\//);
54
+ assert.match(changesJob, /README\|CHANGELOG\|CONTRIBUTING\|COVERAGE\|DEMO\|RELEASE_BODY\|RELEASE_PROTOCOL/);
55
+ assert.match(changesJob, /function isTs\(path\)/);
56
+ assert.match(changesJob, /\^src\\\/\.\*\\\.\(ts\|tsx\|mts\|cts\)\$/);
57
+ assert.match(changesJob, /function isRust\(path\)/);
58
+ assert.match(changesJob, /Cargo\.lock/);
59
+ assert.match(changesJob, /function isNative\(path\)/);
60
+ assert.match(changesJob, /dist-workspace\.toml/);
61
+ assert.match(changesJob, /function isSharedConfig\(path\)/);
62
+ assert.match(changesJob, /\^\\\.github\\\//);
63
+ assert.match(changesJob, /package\(-lock\)\?\\\.json/);
64
+ assert.match(changesJob, /const unknown = paths\.filter/);
65
+ });
66
+ it('gates expensive jobs by lane while preserving full-suite fail-closed behavior', () => {
67
+ const workflow = readCiWorkflow();
68
+ assertJobIf(workflow, 'docs-check', /full_suite == 'true'.*docs_changed == 'true'/s);
69
+ for (const jobName of ['rustfmt', 'clippy', 'rust-tests']) {
70
+ assertJobIf(workflow, jobName, /full_suite == 'true'.*rust_changed == 'true'.*native_changed == 'true'/s);
71
+ }
72
+ for (const jobName of ['lint', 'typecheck', 'test', 'coverage-team-critical', 'ralph-persistence-gate']) {
73
+ assertJobIf(workflow, jobName, /full_suite == 'true'.*ts_changed == 'true'.*shared_config_changed == 'true'/s);
74
+ }
75
+ assertJobIf(workflow, 'build-dist', /full_suite == 'true'.*ts_changed == 'true'.*rust_changed == 'true'.*native_changed == 'true'.*shared_config_changed == 'true'/s);
76
+ assertJobIf(workflow, 'build', /full_suite == 'true'.*rust_changed == 'true'.*native_changed == 'true'.*shared_config_changed == 'true'/s);
77
+ });
20
78
  it('requires rustfmt, clippy, and Rust test coverage gates plus an explicit Rust toolchain setup for the final native build lane', () => {
21
79
  const workflow = readCiWorkflow();
22
80
  const rustTestsJob = jobBlock(workflow, 'rust-tests');
@@ -36,16 +94,18 @@ describe('CI Rust gates', () => {
36
94
  assert.doesNotMatch(rustTestsJob, /--lcov|output-path|Upload Rust coverage artifact/);
37
95
  assert.match(workflow, /build:\s*\n(?:.*\n)*?\s+- name: Setup Rust\s*\n\s+uses: dtolnay\/rust-toolchain@v1\s*\n\s+with:\s*\n\s+toolchain: stable(?:.*\n)*?\s+- name: Download prebuilt dist artifact\s*\n\s+uses: actions\/download-artifact@v8(?:.*\n)*?\s+- run: npm run build:explore:release(?:.*\n)*?\s+- run: npm run build:sparkshell/m);
38
96
  });
39
- it('reuses a prebuilt dist artifact only on the gated lanes that can overlap prerequisite work', () => {
97
+ it('reuses a prebuilt dist artifact on every compiled lane and also builds it for Rust/native changes', () => {
40
98
  const workflow = readCiWorkflow();
41
99
  const testJob = jobBlock(workflow, 'test');
42
100
  assert.match(workflow, /build-dist:/);
43
101
  assert.match(workflow, /name:\s*Build dist artifact/);
44
102
  assert.match(workflow, /name:\s*Upload prebuilt dist artifact/);
45
103
  assert.match(workflow, /name:\s*ci-dist-node20/);
46
- assert.match(workflow, /^ coverage-team-critical:\s*\n(?:.*\n)*?^\s+needs:\s*\[build-dist\]/m);
47
- assert.match(workflow, /^ ralph-persistence-gate:\s*\n(?:.*\n)*?^\s+needs:\s*\[build-dist\]/m);
48
- assert.match(workflow, /^ build:\s*\n(?:.*\n)*?^\s+needs:\s*\[build-dist\]/m);
104
+ assert.match(jobBlock(workflow, 'build-dist'), /rust_changed == 'true'/);
105
+ assert.match(jobBlock(workflow, 'build-dist'), /native_changed == 'true'/);
106
+ assert.match(workflow, /^ coverage-team-critical:\s*\n(?:.*\n)*?^\s+needs:\s*\[changes, build-dist\]/m);
107
+ assert.match(workflow, /^ ralph-persistence-gate:\s*\n(?:.*\n)*?^\s+needs:\s*\[changes, build-dist\]/m);
108
+ assert.match(workflow, /^ build:\s*\n(?:.*\n)*?^\s+needs:\s*\[changes, build-dist\]/m);
49
109
  for (const jobName of ['test', 'coverage-team-critical', 'ralph-persistence-gate', 'build']) {
50
110
  assert.match(workflow, new RegExp(`^ ${jobName}:\\s*\\n(?:.*\\n)*?^\\s+- name:\\s*Download prebuilt dist artifact\\s*\\n\\s+uses:\\s*actions/download-artifact@v8`, 'm'));
51
111
  }
@@ -67,7 +127,7 @@ describe('CI Rust gates', () => {
67
127
  for (const jobName of ['clippy', 'rust-tests', 'build']) {
68
128
  assert.match(jobBlock(workflow, jobName), /uses:\s*Swatinem\/rust-cache@v2/);
69
129
  }
70
- assert.match(workflow, /needs:\s*\[rustfmt, clippy, rust-tests, lint, typecheck, test, coverage-team-critical, ralph-persistence-gate, build\]/);
130
+ assert.match(workflow, /needs:\s*\[changes, docs-check, rustfmt, clippy, rust-tests, lint, typecheck, build-dist, test, coverage-team-critical, ralph-persistence-gate, build\]/);
71
131
  });
72
132
  it('avoids path-filtered CI triggers so required checks cannot be skipped into a pending state', () => {
73
133
  const workflow = readCiWorkflow();
@@ -75,25 +135,38 @@ describe('CI Rust gates', () => {
75
135
  assert.doesNotMatch(workflow, /^\s+paths:\s*/m);
76
136
  assert.doesNotMatch(workflow, /^\s+paths-ignore:\s*/m);
77
137
  });
78
- it('marks every required CI lane as required and reported in the CI status gate', () => {
138
+ it('marks every active CI lane as required and reported in the CI status gate while accepting inactive skipped lanes', () => {
79
139
  const workflow = readCiWorkflow();
80
140
  const ciStatusJob = jobBlock(workflow, 'ci-status');
81
141
  const requiredJobs = [
142
+ 'changes',
143
+ 'docs-check',
82
144
  'rustfmt',
83
145
  'clippy',
84
146
  'rust-tests',
85
147
  'lint',
86
148
  'typecheck',
149
+ 'build-dist',
87
150
  'test',
88
151
  'coverage-team-critical',
89
152
  'ralph-persistence-gate',
90
153
  'build',
91
154
  ];
92
- assert.match(ciStatusJob, /needs:\s*\[rustfmt, clippy, rust-tests, lint, typecheck, test, coverage-team-critical, ralph-persistence-gate, build\]/);
155
+ assert.match(ciStatusJob, /needs:\s*\[changes, docs-check, rustfmt, clippy, rust-tests, lint, typecheck, build-dist, test, coverage-team-critical, ralph-persistence-gate, build\]/);
93
156
  for (const jobName of requiredJobs) {
94
- assert.match(ciStatusJob, new RegExp(`needs\\.${jobName}\\.result`), `${jobName} result should be checked`);
95
- assert.match(ciStatusJob, new RegExp(`echo \" ${jobName}: \\$\\{\\{ needs\\.${jobName}\\.result \\}\\}\"`), `${jobName} result should be reported`);
157
+ const envName = jobName.toUpperCase().replaceAll('-', '_');
158
+ assert.equal(ciStatusJob.includes(`${envName}_RESULT: $` + `{{ needs.${jobName}.result }}`), true, `${jobName} result should be captured`);
159
+ assert.match(ciStatusJob, new RegExp(`echo " ${jobName}: \\$${envName}_RESULT"`), `${jobName} result should be reported`);
96
160
  }
161
+ assert.match(ciStatusJob, /check_job\(\) \{/);
162
+ assert.match(ciStatusJob, /must succeed when active/);
163
+ assert.match(ciStatusJob, /inactive lane should be success or skipped/);
164
+ assert.match(ciStatusJob, /docs_active=false/);
165
+ assert.match(ciStatusJob, /rust_active=false/);
166
+ assert.match(ciStatusJob, /ts_active=false/);
167
+ assert.match(ciStatusJob, /dist_active=false/);
168
+ assert.match(ciStatusJob, /build_active=false/);
169
+ assert.match(ciStatusJob, /All required CI checks passed for active lanes/);
97
170
  });
98
171
  it('keeps expensive report-only coverage out of the required CI path', () => {
99
172
  const workflow = readCiWorkflow();
@@ -111,6 +184,8 @@ describe('CI Rust gates', () => {
111
184
  it('adds timeout-minutes to every CI job so stalled Actions runs fail instead of hanging indefinitely', () => {
112
185
  const workflow = readCiWorkflow();
113
186
  for (const jobName of [
187
+ 'changes',
188
+ 'docs-check',
114
189
  'rustfmt',
115
190
  'clippy',
116
191
  'rust-tests',
@@ -1 +1 @@
1
- {"version":3,"file":"ci-rust-gates.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/ci-rust-gates.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ci-rust-gates.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/ci-rust-gates.test.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ describe('native release workflow', () => {
30
30
  assert.match(workflow, /actions\/download-artifact@v8/);
31
31
  assert.match(workflow, /softprops\/action-gh-release@v3/);
32
32
  assert.match(workflow, /generate-release-body\.js/);
33
+ assert.match(workflow, /omx-api/);
33
34
  assert.match(workflow, /omx-explore-harness/);
34
35
  assert.match(workflow, /omx-sparkshell/);
35
36
  assert.match(workflow, /native-release-manifest\.json/);
@@ -1 +1 @@
1
- {"version":3,"file":"explore-harness-release-workflow.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/explore-harness-release-workflow.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explore-harness-release-workflow.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/explore-harness-release-workflow.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-codex",
3
- "version": "0.17.3",
3
+ "version": "0.18.0",
4
4
  "description": "Multi-agent orchestration layer for OpenAI Codex CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -10,7 +10,7 @@
10
10
  "scripts": {
11
11
  "build": "node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true});\" && tsc && node -e \"require('fs').chmodSync('dist/cli/omx.js', 0o755)\"",
12
12
  "build:explore": "cargo build -p omx-explore-harness",
13
- "build:full": "npm run build && npm run build:explore:release && npm run build:sparkshell",
13
+ "build:full": "npm run build && npm run build:explore:release && npm run build:sparkshell && npm run build:api",
14
14
  "build:explore:release": "node dist/scripts/build-explore-harness.js",
15
15
  "check:no-unused": "tsc -p tsconfig.no-unused.json",
16
16
  "clean:native-package-assets": "node dist/scripts/cleanup-explore-harness.js",
@@ -54,7 +54,8 @@
54
54
  "sync:plugin:check": "node dist/scripts/sync-plugin-mirror.js --check",
55
55
  "verify:plugin-bundle": "node dist/scripts/sync-plugin-mirror.js --check",
56
56
  "verify:native-agents": "node dist/scripts/verify-native-agents.js",
57
- "prompt:inventory": "node dist/scripts/prompt-inventory.js"
57
+ "prompt:inventory": "node dist/scripts/prompt-inventory.js",
58
+ "build:api": "node dist/scripts/build-api.js"
58
59
  },
59
60
  "engines": {
60
61
  "node": ">=20"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-codex",
3
- "version": "0.17.3",
3
+ "version": "0.18.0",
4
4
  "description": "Multi-agent orchestration layer for OpenAI Codex CLI",
5
5
  "author": {
6
6
  "name": "Yeachan Heo",
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: best-practice-research
3
+ description: "[OMX] Bounded best-practice research wrapper using official/upstream evidence first"
4
+ argument-hint: "<technology|decision|practice question>"
5
+ ---
6
+
7
+ # Best-Practice Research
8
+
9
+ Use this skill when a task depends on current external best practices, version-aware guidance, standards, official recommendations, or upstream behavior. This is a workflow wrapper: it routes evidence gathering and synthesis; it is not a new research authority and it does not replace `researcher`.
10
+
11
+ ## Purpose
12
+
13
+ Produce a cited, reusable best-practice answer or handoff that separates current external evidence from repo-local facts and dependency-selection decisions.
14
+
15
+ ## Activate When
16
+
17
+ - The user asks for best practices, recommended approach, current guidance, official recommendations, standards, or version-aware external behavior.
18
+ - `$ralplan`, `$deep-interview`, `$team`, or another workflow needs current external evidence before planning or execution can be correct.
19
+ - The task involves an already chosen technology and needs authoritative usage guidance, migration notes, API behavior, lifecycle rules, or current safety guidance.
20
+
21
+ ## Do Not Activate When
22
+
23
+ - The answer is fully repo-local; use `explore` for codebase facts.
24
+ - The main question is whether to adopt, replace, upgrade, or compare dependencies; use `dependency-expert`.
25
+ - The user only needs implementation against already-grounded requirements; use `executor`, `$ralph`, or `$team` as appropriate.
26
+ - The task can be answered from stable local project conventions without current external lookup.
27
+
28
+ ## Specialist Routing
29
+
30
+ 1. Use `explore` first for brownfield facts: current code usage, local constraints, versions, config, and integration points.
31
+ 2. Use `researcher` for official/upstream docs, release notes, standards, migration guides, source-backed examples, and current best-practice evidence for an already chosen technology.
32
+ 3. Use `dependency-expert` only for adoption/upgrade/replacement/comparison decisions.
33
+ 4. Return to the caller with explicit evidence, uncertainty, and any implementation handoff constraints.
34
+
35
+ ## Source-Quality Rules
36
+
37
+ - Prefer official documentation, upstream source, release notes, changelogs, standards, and maintainer guidance.
38
+ - Include source URLs for material claims.
39
+ - State date/version context for current best-practice claims.
40
+ - Label third-party summaries as supplemental; do not use them before official/upstream sources.
41
+ - Flag stale, conflicting, undocumented, or version-mismatched evidence.
42
+ - Do not over-fetch: gather the smallest evidence set that can support the decision.
43
+
44
+ ## Workflow
45
+
46
+ 1. Classify the question: conceptual best practice, implementation guidance, migration/version guidance, standards/compliance guidance, or mixed local + external guidance.
47
+ 2. Gather repo-local facts with `explore` when local usage or constraints affect the answer.
48
+ 3. Gather external evidence with `researcher` when current or version-aware practice affects correctness.
49
+ 4. Synthesize a concise answer with source quality, version/date context, caveats, and an implementation or planning handoff.
50
+ 5. Stop when the answer is grounded enough for the caller; otherwise report the exact blocker or specialist handoff needed.
51
+
52
+ ## Output Contract
53
+
54
+ ```md
55
+ ## Best-Practice Research: <question>
56
+
57
+ ### Direct Recommendation
58
+ <actionable guidance or decision support>
59
+
60
+ ### Evidence Used
61
+ - Official/upstream: <source URL> — <what it establishes>
62
+ - Supplemental, if any: <source URL> — <why it is secondary>
63
+
64
+ ### Version / Date Context
65
+ <versions, dates, release channels, or unknowns>
66
+
67
+ ### Repo-Local Context
68
+ <facts from explore, or "not needed">
69
+
70
+ ### Boundaries / Non-goals
71
+ <what this research does not decide>
72
+
73
+ ### Handoff
74
+ <planning/execution/test implications>
75
+ ```
76
+
77
+ ## Stop Rules
78
+
79
+ - Stop after a source-backed recommendation is reusable by the caller.
80
+ - Stop and route upward if the task becomes dependency comparison, broad architecture, or implementation.
81
+ - Do not continue researching when remaining work would only polish wording rather than change the recommendation.
82
+
83
+ Task: {{ARGUMENTS}}
@@ -56,6 +56,7 @@ If no flag is provided, use **Standard**.
56
56
  - Reduce user effort: ask only the highest-leverage unresolved question, and never ask the user for codebase facts that can be discovered directly
57
57
  - For brownfield work, prefer evidence-backed confirmation questions such as "I found X in Y. Should this change follow that pattern?"
58
58
  - Route facts before judgment in the Ouroboros style: before presenting a user-facing interview round, classify whether the needed information is a discoverable fact, a fact needing confirmation, or a human decision. The interview is with the human for judgment, not for facts the agent can inspect.
59
+ - When unresolved ambiguity depends on current external best practices, official/upstream guidance, standards, or version-aware behavior, use `$best-practice-research` as the bounded evidence wrapper before crystallizing requirements or handing off to planning/execution.
59
60
  - Use these transcript/spec labels only; never use them as `omx question` `source` values, and never replace the runtime `source: "deep-interview"` contract for user-facing deep-interview questions:
60
61
  - `[from-code][auto-confirmed]` — exact, high-confidence codebase facts from manifests/configs or direct source evidence, with no prescription attached.
61
62
  - `[from-code]` — codebase findings that are useful but inferred, pattern-based, or low/medium confidence and therefore need a confirmation-style user-facing round before being treated as settled.
@@ -86,7 +86,7 @@ Before consensus planning or execution handoff, ensure a grounded context snapsh
86
86
  - unknowns/open questions
87
87
  - likely codebase touchpoints
88
88
  4. If ambiguity remains high, gather brownfield facts first. When session guidance enables `USE_OMX_EXPLORE_CMD`, prefer `omx explore` for simple read-only repository lookups with narrow, concrete prompts; otherwise use the richer normal explore path. Then run `$deep-interview --quick <task>` before continuing.
89
- 5. If the plan depends on official docs, version-aware framework guidance, best practices, or external dependency behavior, auto-delegate `researcher` before finalizing the planning handoff so execution does not start from repo-local recall alone.
89
+ 5. If the plan depends on official docs, version-aware framework guidance, best practices, or external dependency behavior, use `$best-practice-research` as the bounded evidence wrapper and auto-delegate `researcher` for the official/upstream lookup before finalizing the planning handoff so execution does not start from repo-local recall alone.
90
90
 
91
91
  Do not hand off to execution modes until this intake is complete; if urgency forces progress, explicitly document the risk tradeoffs.
92
92
 
@@ -7,15 +7,16 @@ You are Researcher (Librarian). Produce docs-first, version-aware external techn
7
7
  </identity>
8
8
 
9
9
  <goal>
10
- Identify the authoritative documentation set, establish version/date context, gather the smallest reliable evidence set, and return guidance the caller can reuse. You own external truth for an already chosen technology; you do not inspect repo usage, implement code, decide architecture, or compare dependencies.
10
+ Identify the authoritative documentation set, establish version/date context, gather the smallest reliable evidence set, and return guidance the caller can reuse. You own external truth and current best-practice evidence for an already chosen technology; you do not inspect repo usage, implement code, decide architecture, or compare dependencies.
11
11
  </goal>
12
12
 
13
13
  <constraints>
14
14
  <scope_guard>
15
- - Prefer official documentation, API references, release notes, changelogs, and upstream source material over third-party summaries.
15
+ - Prefer official documentation, API references, release notes, changelogs, standards, maintainer guidance, and upstream source material over third-party summaries.
16
16
  - Always include source URLs for important claims.
17
+ - For current best-practice claims, state the relevant date, version, release channel, or uncertainty.
17
18
  - Flag stale, undocumented, conflicting, or version-mismatched information.
18
- - Separate official docs evidence from source-reference evidence.
19
+ - Separate official docs evidence from source-reference evidence and supplemental third-party evidence.
19
20
  - Route dependency adoption/upgrade/replacement decisions to `dependency-expert`; route repo-local usage and migration-surface mapping to `explore`.
20
21
  </scope_guard>
21
22
 
@@ -31,7 +32,8 @@ Classify the request before searching:
31
32
  - Conceptual docs question: concepts, guarantees, lifecycle, configuration, official guidance.
32
33
  - Implementation reference lookup: APIs, options, signatures, examples, limits, migration steps.
33
34
  - Context/history lookup: release notes, changelog entries, deprecations, behavior changes.
34
- - Comprehensive research: combined docs, reference, and history answer.
35
+ - Current best-practice research: official/upstream recommendations, standards, maintainer guidance, and dated/versioned practice for an already chosen technology.
36
+ - Comprehensive research: combined docs, reference, history, and best-practice answer.
35
37
  </request_classification>
36
38
 
37
39
  <execution_loop>
@@ -47,15 +49,15 @@ Classify the request before searching:
47
49
 
48
50
  <success_criteria>
49
51
  - Request type and search path are explicit.
50
- - Official docs are primary where available.
51
- - Version certainty/uncertainty is stated.
52
+ - Official docs/upstream sources are primary where available.
53
+ - Version/date certainty or uncertainty is stated, especially for current best-practice claims.
52
54
  - Examples remain secondary to docs.
53
- - Docs evidence and source-reference evidence are separated.
55
+ - Docs evidence, source-reference evidence, and supplemental third-party evidence are separated.
54
56
  - The answer is reusable without extra lookup.
55
57
  </success_criteria>
56
58
 
57
59
  <tools>
58
- Use web search/fetch for official docs, versioned references, release notes, migration guides, and upstream source. Use local reads only to sharpen the external research question.
60
+ Use web search/fetch for official docs, versioned references, release notes, migration guides, standards, maintainer guidance, and upstream source. Use local reads only to sharpen the external research question.
59
61
  </tools>
60
62
 
61
63
  <style>
@@ -63,7 +65,7 @@ Use web search/fetch for official docs, versioned references, release notes, mig
63
65
  ## Research: [Query]
64
66
 
65
67
  ### Request Type
66
- [Conceptual docs question | Implementation reference lookup | Context/history lookup | Comprehensive research]
68
+ [Conceptual docs question | Implementation reference lookup | Context/history lookup | Current best-practice research | Comprehensive research]
67
69
 
68
70
  ### Direct Answer
69
71
  [Actionable answer]
@@ -80,6 +82,9 @@ Use web search/fetch for official docs, versioned references, release notes, mig
80
82
  ### Source-Reference Evidence
81
83
  - Only if docs were insufficient; explain why
82
84
 
85
+ ### Supplemental Evidence
86
+ - Third-party summaries, examples, or community material only when useful after official/upstream evidence; label limitations
87
+
83
88
  ### Caveats / Ambiguity Flags
84
89
  - Unresolved uncertainty or likely version drift
85
90
 
@@ -88,7 +93,7 @@ Use web search/fetch for official docs, versioned references, release notes, mig
88
93
  </output_contract>
89
94
 
90
95
  <scenario_handling>
91
- - If the user says `continue`, keep validating against official docs, version details, and source-reference evidence before finalizing.
96
+ - If the user says `continue`, keep validating against official docs, version/date details, upstream references, and source-reference evidence before finalizing.
92
97
  - If only the output format changes, preserve the research goal and source requirements.
93
98
  </scenario_handling>
94
99
 
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: best-practice-research
3
+ description: "[OMX] Bounded best-practice research wrapper using official/upstream evidence first"
4
+ argument-hint: "<technology|decision|practice question>"
5
+ ---
6
+
7
+ # Best-Practice Research
8
+
9
+ Use this skill when a task depends on current external best practices, version-aware guidance, standards, official recommendations, or upstream behavior. This is a workflow wrapper: it routes evidence gathering and synthesis; it is not a new research authority and it does not replace `researcher`.
10
+
11
+ ## Purpose
12
+
13
+ Produce a cited, reusable best-practice answer or handoff that separates current external evidence from repo-local facts and dependency-selection decisions.
14
+
15
+ ## Activate When
16
+
17
+ - The user asks for best practices, recommended approach, current guidance, official recommendations, standards, or version-aware external behavior.
18
+ - `$ralplan`, `$deep-interview`, `$team`, or another workflow needs current external evidence before planning or execution can be correct.
19
+ - The task involves an already chosen technology and needs authoritative usage guidance, migration notes, API behavior, lifecycle rules, or current safety guidance.
20
+
21
+ ## Do Not Activate When
22
+
23
+ - The answer is fully repo-local; use `explore` for codebase facts.
24
+ - The main question is whether to adopt, replace, upgrade, or compare dependencies; use `dependency-expert`.
25
+ - The user only needs implementation against already-grounded requirements; use `executor`, `$ralph`, or `$team` as appropriate.
26
+ - The task can be answered from stable local project conventions without current external lookup.
27
+
28
+ ## Specialist Routing
29
+
30
+ 1. Use `explore` first for brownfield facts: current code usage, local constraints, versions, config, and integration points.
31
+ 2. Use `researcher` for official/upstream docs, release notes, standards, migration guides, source-backed examples, and current best-practice evidence for an already chosen technology.
32
+ 3. Use `dependency-expert` only for adoption/upgrade/replacement/comparison decisions.
33
+ 4. Return to the caller with explicit evidence, uncertainty, and any implementation handoff constraints.
34
+
35
+ ## Source-Quality Rules
36
+
37
+ - Prefer official documentation, upstream source, release notes, changelogs, standards, and maintainer guidance.
38
+ - Include source URLs for material claims.
39
+ - State date/version context for current best-practice claims.
40
+ - Label third-party summaries as supplemental; do not use them before official/upstream sources.
41
+ - Flag stale, conflicting, undocumented, or version-mismatched evidence.
42
+ - Do not over-fetch: gather the smallest evidence set that can support the decision.
43
+
44
+ ## Workflow
45
+
46
+ 1. Classify the question: conceptual best practice, implementation guidance, migration/version guidance, standards/compliance guidance, or mixed local + external guidance.
47
+ 2. Gather repo-local facts with `explore` when local usage or constraints affect the answer.
48
+ 3. Gather external evidence with `researcher` when current or version-aware practice affects correctness.
49
+ 4. Synthesize a concise answer with source quality, version/date context, caveats, and an implementation or planning handoff.
50
+ 5. Stop when the answer is grounded enough for the caller; otherwise report the exact blocker or specialist handoff needed.
51
+
52
+ ## Output Contract
53
+
54
+ ```md
55
+ ## Best-Practice Research: <question>
56
+
57
+ ### Direct Recommendation
58
+ <actionable guidance or decision support>
59
+
60
+ ### Evidence Used
61
+ - Official/upstream: <source URL> — <what it establishes>
62
+ - Supplemental, if any: <source URL> — <why it is secondary>
63
+
64
+ ### Version / Date Context
65
+ <versions, dates, release channels, or unknowns>
66
+
67
+ ### Repo-Local Context
68
+ <facts from explore, or "not needed">
69
+
70
+ ### Boundaries / Non-goals
71
+ <what this research does not decide>
72
+
73
+ ### Handoff
74
+ <planning/execution/test implications>
75
+ ```
76
+
77
+ ## Stop Rules
78
+
79
+ - Stop after a source-backed recommendation is reusable by the caller.
80
+ - Stop and route upward if the task becomes dependency comparison, broad architecture, or implementation.
81
+ - Do not continue researching when remaining work would only polish wording rather than change the recommendation.
82
+
83
+ Task: {{ARGUMENTS}}
@@ -56,6 +56,7 @@ If no flag is provided, use **Standard**.
56
56
  - Reduce user effort: ask only the highest-leverage unresolved question, and never ask the user for codebase facts that can be discovered directly
57
57
  - For brownfield work, prefer evidence-backed confirmation questions such as "I found X in Y. Should this change follow that pattern?"
58
58
  - Route facts before judgment in the Ouroboros style: before presenting a user-facing interview round, classify whether the needed information is a discoverable fact, a fact needing confirmation, or a human decision. The interview is with the human for judgment, not for facts the agent can inspect.
59
+ - When unresolved ambiguity depends on current external best practices, official/upstream guidance, standards, or version-aware behavior, use `$best-practice-research` as the bounded evidence wrapper before crystallizing requirements or handing off to planning/execution.
59
60
  - Use these transcript/spec labels only; never use them as `omx question` `source` values, and never replace the runtime `source: "deep-interview"` contract for user-facing deep-interview questions:
60
61
  - `[from-code][auto-confirmed]` — exact, high-confidence codebase facts from manifests/configs or direct source evidence, with no prescription attached.
61
62
  - `[from-code]` — codebase findings that are useful but inferred, pattern-based, or low/medium confidence and therefore need a confirmation-style user-facing round before being treated as settled.
@@ -86,7 +86,7 @@ Before consensus planning or execution handoff, ensure a grounded context snapsh
86
86
  - unknowns/open questions
87
87
  - likely codebase touchpoints
88
88
  4. If ambiguity remains high, gather brownfield facts first. When session guidance enables `USE_OMX_EXPLORE_CMD`, prefer `omx explore` for simple read-only repository lookups with narrow, concrete prompts; otherwise use the richer normal explore path. Then run `$deep-interview --quick <task>` before continuing.
89
- 5. If the plan depends on official docs, version-aware framework guidance, best practices, or external dependency behavior, auto-delegate `researcher` before finalizing the planning handoff so execution does not start from repo-local recall alone.
89
+ 5. If the plan depends on official docs, version-aware framework guidance, best practices, or external dependency behavior, use `$best-practice-research` as the bounded evidence wrapper and auto-delegate `researcher` for the official/upstream lookup before finalizing the planning handoff so execution does not start from repo-local recall alone.
90
90
 
91
91
  Do not hand off to execution modes until this intake is complete; if urgency forces progress, explicitly document the risk tradeoffs.
92
92