oh-my-codex 0.18.2 → 0.18.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 (233) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +1 -0
  4. package/dist/agents/__tests__/definitions.test.js +9 -0
  5. package/dist/agents/__tests__/definitions.test.js.map +1 -1
  6. package/dist/agents/__tests__/native-config.test.js +1 -0
  7. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  8. package/dist/agents/definitions.d.ts.map +1 -1
  9. package/dist/agents/definitions.js +10 -0
  10. package/dist/agents/definitions.js.map +1 -1
  11. package/dist/auth/__tests__/config-sessions.test.d.ts +2 -0
  12. package/dist/auth/__tests__/config-sessions.test.d.ts.map +1 -0
  13. package/dist/auth/__tests__/config-sessions.test.js +48 -0
  14. package/dist/auth/__tests__/config-sessions.test.js.map +1 -0
  15. package/dist/auth/__tests__/quota-rotation.test.d.ts +2 -0
  16. package/dist/auth/__tests__/quota-rotation.test.d.ts.map +1 -0
  17. package/dist/auth/__tests__/quota-rotation.test.js +33 -0
  18. package/dist/auth/__tests__/quota-rotation.test.js.map +1 -0
  19. package/dist/auth/__tests__/redact.test.d.ts +2 -0
  20. package/dist/auth/__tests__/redact.test.d.ts.map +1 -0
  21. package/dist/auth/__tests__/redact.test.js +20 -0
  22. package/dist/auth/__tests__/redact.test.js.map +1 -0
  23. package/dist/auth/__tests__/storage.test.d.ts +2 -0
  24. package/dist/auth/__tests__/storage.test.d.ts.map +1 -0
  25. package/dist/auth/__tests__/storage.test.js +108 -0
  26. package/dist/auth/__tests__/storage.test.js.map +1 -0
  27. package/dist/auth/config.d.ts +9 -0
  28. package/dist/auth/config.d.ts.map +1 -0
  29. package/dist/auth/config.js +77 -0
  30. package/dist/auth/config.js.map +1 -0
  31. package/dist/auth/hotswap.d.ts +36 -0
  32. package/dist/auth/hotswap.d.ts.map +1 -0
  33. package/dist/auth/hotswap.js +159 -0
  34. package/dist/auth/hotswap.js.map +1 -0
  35. package/dist/auth/index.d.ts +8 -0
  36. package/dist/auth/index.d.ts.map +1 -0
  37. package/dist/auth/index.js +8 -0
  38. package/dist/auth/index.js.map +1 -0
  39. package/dist/auth/paths.d.ts +12 -0
  40. package/dist/auth/paths.d.ts.map +1 -0
  41. package/dist/auth/paths.js +78 -0
  42. package/dist/auth/paths.js.map +1 -0
  43. package/dist/auth/quota-detector.d.ts +10 -0
  44. package/dist/auth/quota-detector.d.ts.map +1 -0
  45. package/dist/auth/quota-detector.js +40 -0
  46. package/dist/auth/quota-detector.js.map +1 -0
  47. package/dist/auth/redact.d.ts +2 -0
  48. package/dist/auth/redact.d.ts.map +1 -0
  49. package/dist/auth/redact.js +26 -0
  50. package/dist/auth/redact.js.map +1 -0
  51. package/dist/auth/rotation.d.ts +9 -0
  52. package/dist/auth/rotation.d.ts.map +1 -0
  53. package/dist/auth/rotation.js +26 -0
  54. package/dist/auth/rotation.js.map +1 -0
  55. package/dist/auth/sessions.d.ts +15 -0
  56. package/dist/auth/sessions.d.ts.map +1 -0
  57. package/dist/auth/sessions.js +62 -0
  58. package/dist/auth/sessions.js.map +1 -0
  59. package/dist/auth/storage.d.ts +27 -0
  60. package/dist/auth/storage.d.ts.map +1 -0
  61. package/dist/auth/storage.js +111 -0
  62. package/dist/auth/storage.js.map +1 -0
  63. package/dist/cli/__tests__/auth.test.d.ts +2 -0
  64. package/dist/cli/__tests__/auth.test.d.ts.map +1 -0
  65. package/dist/cli/__tests__/auth.test.js +168 -0
  66. package/dist/cli/__tests__/auth.test.js.map +1 -0
  67. package/dist/cli/__tests__/doctor-warning-copy.test.js +88 -3
  68. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  69. package/dist/cli/__tests__/explore.test.js +28 -7
  70. package/dist/cli/__tests__/explore.test.js.map +1 -1
  71. package/dist/cli/__tests__/index.test.js +70 -2
  72. package/dist/cli/__tests__/index.test.js.map +1 -1
  73. package/dist/cli/__tests__/nested-help-routing.test.js +1 -0
  74. package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
  75. package/dist/cli/__tests__/setup-agents-overwrite.test.js +30 -1
  76. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
  77. package/dist/cli/__tests__/setup-install-mode.test.js +103 -17
  78. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  79. package/dist/cli/__tests__/setup-scope.test.js +1 -1
  80. package/dist/cli/__tests__/sparkshell-cli.test.js +2 -2
  81. package/dist/cli/__tests__/sparkshell-cli.test.js.map +1 -1
  82. package/dist/cli/auth.d.ts +4 -0
  83. package/dist/cli/auth.d.ts.map +1 -0
  84. package/dist/cli/auth.js +89 -0
  85. package/dist/cli/auth.js.map +1 -0
  86. package/dist/cli/doctor.d.ts.map +1 -1
  87. package/dist/cli/doctor.js +128 -19
  88. package/dist/cli/doctor.js.map +1 -1
  89. package/dist/cli/explore.d.ts +1 -0
  90. package/dist/cli/explore.d.ts.map +1 -1
  91. package/dist/cli/explore.js +18 -0
  92. package/dist/cli/explore.js.map +1 -1
  93. package/dist/cli/index.d.ts +20 -2
  94. package/dist/cli/index.d.ts.map +1 -1
  95. package/dist/cli/index.js +114 -10
  96. package/dist/cli/index.js.map +1 -1
  97. package/dist/cli/question.d.ts.map +1 -1
  98. package/dist/cli/question.js +5 -1
  99. package/dist/cli/question.js.map +1 -1
  100. package/dist/cli/setup.d.ts.map +1 -1
  101. package/dist/cli/setup.js +29 -57
  102. package/dist/cli/setup.js.map +1 -1
  103. package/dist/config/__tests__/deep-interview.test.d.ts +2 -0
  104. package/dist/config/__tests__/deep-interview.test.d.ts.map +1 -0
  105. package/dist/config/__tests__/deep-interview.test.js +239 -0
  106. package/dist/config/__tests__/deep-interview.test.js.map +1 -0
  107. package/dist/config/__tests__/generator-idempotent.test.js +128 -5
  108. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  109. package/dist/config/deep-interview.d.ts +22 -0
  110. package/dist/config/deep-interview.d.ts.map +1 -0
  111. package/dist/config/deep-interview.js +151 -0
  112. package/dist/config/deep-interview.js.map +1 -0
  113. package/dist/config/generator.d.ts +13 -4
  114. package/dist/config/generator.d.ts.map +1 -1
  115. package/dist/config/generator.js +154 -40
  116. package/dist/config/generator.js.map +1 -1
  117. package/dist/hooks/__tests__/agents-overlay.test.js +9 -7
  118. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  119. package/dist/hooks/__tests__/autopilot-skill-contract.test.js +10 -1
  120. package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
  121. package/dist/hooks/__tests__/consensus-execution-handoff.test.js +13 -0
  122. package/dist/hooks/__tests__/consensus-execution-handoff.test.js.map +1 -1
  123. package/dist/hooks/__tests__/explore-routing.test.js +10 -12
  124. package/dist/hooks/__tests__/explore-routing.test.js.map +1 -1
  125. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js +13 -15
  126. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js.map +1 -1
  127. package/dist/hooks/__tests__/keyword-detector.test.js +301 -0
  128. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  129. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +33 -0
  130. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  131. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js +60 -0
  132. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js.map +1 -1
  133. package/dist/hooks/deep-interview-config-instruction.d.ts +3 -0
  134. package/dist/hooks/deep-interview-config-instruction.d.ts.map +1 -0
  135. package/dist/hooks/deep-interview-config-instruction.js +47 -0
  136. package/dist/hooks/deep-interview-config-instruction.js.map +1 -0
  137. package/dist/hooks/explore-routing.d.ts.map +1 -1
  138. package/dist/hooks/explore-routing.js +8 -13
  139. package/dist/hooks/explore-routing.js.map +1 -1
  140. package/dist/hooks/keyword-detector.d.ts +5 -0
  141. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  142. package/dist/hooks/keyword-detector.js +52 -8
  143. package/dist/hooks/keyword-detector.js.map +1 -1
  144. package/dist/hud/__tests__/hud-tmux-injection.test.js +19 -14
  145. package/dist/hud/__tests__/hud-tmux-injection.test.js.map +1 -1
  146. package/dist/hud/__tests__/reconcile.test.js +117 -9
  147. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  148. package/dist/hud/__tests__/tmux.test.js +103 -1
  149. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  150. package/dist/hud/index.d.ts +1 -1
  151. package/dist/hud/index.d.ts.map +1 -1
  152. package/dist/hud/index.js +24 -2
  153. package/dist/hud/index.js.map +1 -1
  154. package/dist/hud/reconcile.d.ts +1 -1
  155. package/dist/hud/reconcile.d.ts.map +1 -1
  156. package/dist/hud/reconcile.js +23 -0
  157. package/dist/hud/reconcile.js.map +1 -1
  158. package/dist/hud/tmux.d.ts +7 -0
  159. package/dist/hud/tmux.d.ts.map +1 -1
  160. package/dist/hud/tmux.js +46 -9
  161. package/dist/hud/tmux.js.map +1 -1
  162. package/dist/question/__tests__/deep-interview.test.js +80 -7
  163. package/dist/question/__tests__/deep-interview.test.js.map +1 -1
  164. package/dist/question/__tests__/policy.test.js +83 -9
  165. package/dist/question/__tests__/policy.test.js.map +1 -1
  166. package/dist/question/autopilot-wait.d.ts +10 -0
  167. package/dist/question/autopilot-wait.d.ts.map +1 -0
  168. package/dist/question/autopilot-wait.js +134 -0
  169. package/dist/question/autopilot-wait.js.map +1 -0
  170. package/dist/question/deep-interview.d.ts +2 -0
  171. package/dist/question/deep-interview.d.ts.map +1 -1
  172. package/dist/question/deep-interview.js +4 -0
  173. package/dist/question/deep-interview.js.map +1 -1
  174. package/dist/question/policy.d.ts +1 -0
  175. package/dist/question/policy.d.ts.map +1 -1
  176. package/dist/question/policy.js +19 -0
  177. package/dist/question/policy.js.map +1 -1
  178. package/dist/scripts/__tests__/codex-native-hook.test.js +718 -0
  179. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  180. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  181. package/dist/scripts/codex-native-hook.js +69 -5
  182. package/dist/scripts/codex-native-hook.js.map +1 -1
  183. package/dist/scripts/notify-hook.js +13 -0
  184. package/dist/scripts/notify-hook.js.map +1 -1
  185. package/dist/state/__tests__/planning-gate.test.d.ts +2 -0
  186. package/dist/state/__tests__/planning-gate.test.d.ts.map +1 -0
  187. package/dist/state/__tests__/planning-gate.test.js +219 -0
  188. package/dist/state/__tests__/planning-gate.test.js.map +1 -0
  189. package/dist/state/workflow-transition.d.ts +23 -0
  190. package/dist/state/workflow-transition.d.ts.map +1 -1
  191. package/dist/state/workflow-transition.js +63 -0
  192. package/dist/state/workflow-transition.js.map +1 -1
  193. package/dist/subagents/__tests__/tracker.test.js +69 -0
  194. package/dist/subagents/__tests__/tracker.test.js.map +1 -1
  195. package/dist/subagents/tracker.d.ts +5 -0
  196. package/dist/subagents/tracker.d.ts.map +1 -1
  197. package/dist/subagents/tracker.js +16 -0
  198. package/dist/subagents/tracker.js.map +1 -1
  199. package/dist/team/__tests__/tmux-session.test.js +86 -0
  200. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  201. package/dist/team/tmux-session.d.ts.map +1 -1
  202. package/dist/team/tmux-session.js +7 -0
  203. package/dist/team/tmux-session.js.map +1 -1
  204. package/dist/ultragoal/__tests__/artifacts.test.js +126 -0
  205. package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -1
  206. package/dist/ultragoal/artifacts.d.ts.map +1 -1
  207. package/dist/ultragoal/artifacts.js +126 -8
  208. package/dist/ultragoal/artifacts.js.map +1 -1
  209. package/package.json +1 -1
  210. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  211. package/plugins/oh-my-codex/skills/autopilot/SKILL.md +2 -2
  212. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +11 -1
  213. package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +4 -4
  214. package/plugins/oh-my-codex/skills/plan/SKILL.md +5 -5
  215. package/plugins/oh-my-codex/skills/ralph/SKILL.md +1 -1
  216. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +10 -6
  217. package/prompts/executor.md +1 -1
  218. package/prompts/explore-harness.md +2 -2
  219. package/prompts/explore.md +1 -1
  220. package/prompts/planner.md +1 -1
  221. package/prompts/scholastic.md +11 -0
  222. package/prompts/sisyphus-lite.md +1 -1
  223. package/skills/autopilot/SKILL.md +2 -2
  224. package/skills/deep-interview/SKILL.md +11 -1
  225. package/skills/omx-setup/SKILL.md +4 -4
  226. package/skills/plan/SKILL.md +5 -5
  227. package/skills/ralph/SKILL.md +1 -1
  228. package/skills/ralplan/SKILL.md +10 -6
  229. package/src/scripts/__tests__/codex-native-hook.test.ts +853 -0
  230. package/src/scripts/codex-native-hook.ts +73 -3
  231. package/src/scripts/notify-hook.ts +15 -0
  232. package/templates/AGENTS.md +3 -3
  233. package/templates/catalog-manifest.json +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"consensus-execution-handoff.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/consensus-execution-handoff.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consensus-execution-handoff.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/consensus-execution-handoff.test.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import { describe, it } from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
3
  import { buildExploreRoutingGuidance, isExploreCommandRoutingEnabled, isSimpleExplorationPrompt, } from '../explore-routing.js';
4
4
  describe('explore-routing', () => {
5
- it('defaults USE_OMX_EXPLORE_CMD to enabled and only disables explicit opt-out values', () => {
6
- assert.equal(isExploreCommandRoutingEnabled({}), true);
5
+ it('defaults USE_OMX_EXPLORE_CMD to disabled compatibility mode and honors explicit values', () => {
6
+ assert.equal(isExploreCommandRoutingEnabled({}), false);
7
7
  assert.equal(isExploreCommandRoutingEnabled({ USE_OMX_EXPLORE_CMD: '1' }), true);
8
8
  assert.equal(isExploreCommandRoutingEnabled({ USE_OMX_EXPLORE_CMD: 'true' }), true);
9
9
  assert.equal(isExploreCommandRoutingEnabled({ USE_OMX_EXPLORE_CMD: 'yes' }), true);
@@ -26,18 +26,16 @@ describe('explore-routing', () => {
26
26
  assert.equal(isSimpleExplorationPrompt('help with the routing bug'), false);
27
27
  assert.equal(isSimpleExplorationPrompt('investigate everything in this repo'), false);
28
28
  });
29
- it('builds advisory guidance whenever routing is not explicitly disabled', () => {
29
+ it('builds deprecation guidance and never recommends explore for new work', () => {
30
30
  const guidance = buildExploreRoutingGuidance({});
31
+ assert.ok(guidance.startsWith('**Explore Command Deprecated:**'));
31
32
  assert.match(guidance, /USE_OMX_EXPLORE_CMD/);
32
- assert.match(guidance, /default-on; opt out/i);
33
- assert.match(guidance, /agents SHOULD treat `omx explore` as the default first stop/i);
34
- assert.match(guidance, /use `omx explore` FIRST before attempting full code analysis/i);
35
- assert.match(guidance, /Explore examples:/);
36
- assert.match(guidance, /SparkShell examples:/);
37
- assert.match(guidance, /--prompt-file/);
38
- assert.match(guidance, /shell-only allowlisted read-only path/i);
39
- assert.match(guidance, /gracefully fall back to the normal path/i);
40
- assert.equal(buildExploreRoutingGuidance({ USE_OMX_EXPLORE_CMD: 'off' }), '');
33
+ assert.match(guidance, /compatibility-only/i);
34
+ assert.match(guidance, /MUST NOT be recommended/i);
35
+ assert.match(guidance, /normal Codex repository inspection/i);
36
+ assert.match(guidance, /omx sparkshell -- <command>/);
37
+ assert.match(guidance, /do not route simple lookups to `omx explore`/i);
38
+ assert.match(buildExploreRoutingGuidance({ USE_OMX_EXPLORE_CMD: '1' }), /explicitly enabled.*still prefer the replacement path/is);
41
39
  });
42
40
  });
43
41
  //# sourceMappingURL=explore-routing.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"explore-routing.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/explore-routing.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explore-routing.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/explore-routing.test.ts"],"names":[],"mappings":"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"}
@@ -8,13 +8,12 @@ function expectPatterns(path, patterns) {
8
8
  }
9
9
  }
10
10
  describe('explore + sparkshell guidance contract', () => {
11
- it('keeps AGENTS root and template aligned on conditional explore routing and opt-in sparkshell guidance', () => {
11
+ it('keeps AGENTS root and template aligned on deprecated explore routing and opt-in sparkshell guidance', () => {
12
12
  const patterns = [
13
13
  /USE_OMX_EXPLORE_CMD/i,
14
- /SHOULD treat `omx explore`|strongly prefer `omx explore`/i,
15
- /--prompt/i,
16
- /shell-only, allowlisted, read-only path|shell-only allowlisted read-only path/i,
17
- /gracefully fall back to the normal path/i,
14
+ /`omx explore` is deprecated/i,
15
+ /MUST NOT be recommended|does not make `omx explore` preferred/i,
16
+ /normal Codex repository inspection/i,
18
17
  /omx sparkshell --tmux-pane/i,
19
18
  /explicit opt-?in/i,
20
19
  /When to use what/i,
@@ -25,17 +24,17 @@ describe('explore + sparkshell guidance contract', () => {
25
24
  });
26
25
  it('keeps explore surfaces explicit about richer-path fallback', () => {
27
26
  expectPatterns('prompts/explore.md', [
28
- /USE_OMX_EXPLORE_CMD/i,
29
- /preferred low-cost path/i,
30
- /continue on this richer normal path/i,
27
+ /`omx explore --prompt \.\.\.` is deprecated/i,
28
+ /compatibility-only/i,
29
+ /richer normal path/i,
31
30
  ]);
32
31
  expectPatterns('prompts/explore-harness.md', [
33
32
  /simple read-only repository lookup tasks/i,
34
- /Prefer `omx explore --prompt/i,
35
- /fall back to the richer normal path/i,
33
+ /deprecated and compatibility-only/i,
34
+ /richer normal path/i,
36
35
  ]);
37
36
  });
38
- it('keeps execution and planning surfaces conditional on explore routing', () => {
37
+ it('keeps execution and planning surfaces explicit about deprecated explore routing', () => {
39
38
  for (const surface of [
40
39
  'prompts/planner.md',
41
40
  'prompts/executor.md',
@@ -44,12 +43,11 @@ describe('explore + sparkshell guidance contract', () => {
44
43
  'skills/plan/SKILL.md',
45
44
  'skills/ralplan/SKILL.md',
46
45
  'skills/ralph/SKILL.md',
47
- 'skills/team/SKILL.md',
48
46
  ]) {
49
47
  expectPatterns(surface, [
50
- /USE_OMX_EXPLORE_CMD/i,
51
- /prefer `omx explore`|use `omx explore` FIRST/i,
52
- /fall back normally|fallback normally|graceful fallback|richer normal explore path/i,
48
+ /`omx explore` is deprecated/i,
49
+ /normal repository inspection|normal Codex repository inspection/i,
50
+ /omx sparkshell/i,
53
51
  ]);
54
52
  }
55
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"explore-sparkshell-guidance-contract.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/explore-sparkshell-guidance-contract.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAE1F,SAAS,cAAc,CAAC,IAAY,EAAE,QAAkB;IACtD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,8BAA8B,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,EAAE,CAAC,sGAAsG,EAAE,GAAG,EAAE;QAC9G,MAAM,QAAQ,GAAG;YACf,sBAAsB;YACtB,2DAA2D;YAC3D,WAAW;YACX,gFAAgF;YAChF,0CAA0C;YAC1C,6BAA6B;YAC7B,mBAAmB;YACnB,mBAAmB;SACpB,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,wBAAwB,EAAE,EAAE,CAAC;YACjD,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,cAAc,CAAC,oBAAoB,EAAE;YACnC,sBAAsB;YACtB,0BAA0B;YAC1B,sCAAsC;SACvC,CAAC,CAAC;QAEH,cAAc,CAAC,4BAA4B,EAAE;YAC3C,2CAA2C;YAC3C,+BAA+B;YAC/B,sCAAsC;SACvC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,KAAK,MAAM,OAAO,IAAI;YACpB,oBAAoB;YACpB,qBAAqB;YACrB,0BAA0B;YAC1B,gCAAgC;YAChC,sBAAsB;YACtB,yBAAyB;YACzB,uBAAuB;YACvB,sBAAsB;SACvB,EAAE,CAAC;YACF,cAAc,CAAC,OAAO,EAAE;gBACtB,sBAAsB;gBACtB,+CAA+C;gBAC/C,oFAAoF;aACrF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,cAAc,CAAC,sBAAsB,EAAE;YACrC,wBAAwB;YACxB,oDAAoD;YACpD,mBAAmB;SACpB,CAAC,CAAC;QAEH,cAAc,CAAC,sBAAsB,EAAE;YACrC,6BAA6B;YAC7B,mBAAmB;YACnB,mCAAmC;SACpC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"explore-sparkshell-guidance-contract.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/explore-sparkshell-guidance-contract.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAE1F,SAAS,cAAc,CAAC,IAAY,EAAE,QAAkB;IACtD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,8BAA8B,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACtD,EAAE,CAAC,qGAAqG,EAAE,GAAG,EAAE;QAC7G,MAAM,QAAQ,GAAG;YACf,sBAAsB;YACtB,8BAA8B;YAC9B,gEAAgE;YAChE,qCAAqC;YACrC,6BAA6B;YAC7B,mBAAmB;YACnB,mBAAmB;SACpB,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,wBAAwB,EAAE,EAAE,CAAC;YACjD,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,cAAc,CAAC,oBAAoB,EAAE;YACnC,8CAA8C;YAC9C,qBAAqB;YACrB,qBAAqB;SACtB,CAAC,CAAC;QAEH,cAAc,CAAC,4BAA4B,EAAE;YAC3C,2CAA2C;YAC3C,oCAAoC;YACpC,qBAAqB;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,KAAK,MAAM,OAAO,IAAI;YACpB,oBAAoB;YACpB,qBAAqB;YACrB,0BAA0B;YAC1B,gCAAgC;YAChC,sBAAsB;YACtB,yBAAyB;YACzB,uBAAuB;SACxB,EAAE,CAAC;YACF,cAAc,CAAC,OAAO,EAAE;gBACtB,8BAA8B;gBAC9B,kEAAkE;gBAClE,iBAAiB;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,cAAc,CAAC,sBAAsB,EAAE;YACrC,wBAAwB;YACxB,oDAAoD;YACpD,mBAAmB;SACpB,CAAC,CAAC;QAEH,cAAc,CAAC,sBAAsB,EAAE;YACrC,6BAA6B;YAC7B,mBAAmB;YACnB,mCAAmC;SACpC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -8,6 +8,21 @@ import { detectKeywords, detectPrimaryKeyword, recordSkillActivation, DEEP_INTER
8
8
  import { SKILL_ACTIVE_STATE_FILE } from '../../state/skill-active.js';
9
9
  import { isUnderspecifiedForExecution, applyRalplanGate } from '../keyword-detector.js';
10
10
  import { KEYWORD_TRIGGER_DEFINITIONS } from '../keyword-registry.js';
11
+ async function withIsolatedHome(prefix, run) {
12
+ const homeDir = await mkdtemp(join(tmpdir(), `omx-keyword-home-${prefix}-`));
13
+ const previousHome = process.env.HOME;
14
+ try {
15
+ process.env.HOME = homeDir;
16
+ return await run(homeDir);
17
+ }
18
+ finally {
19
+ if (typeof previousHome === 'string')
20
+ process.env.HOME = previousHome;
21
+ else
22
+ delete process.env.HOME;
23
+ await rm(homeDir, { recursive: true, force: true });
24
+ }
25
+ }
11
26
  describe('keyword detector team compatibility', () => {
12
27
  it('keeps explicit $skill order in detectKeywords results (left-to-right)', () => {
13
28
  const matches = detectKeywords('$analyze $ultraqa $code-review now');
@@ -1079,6 +1094,292 @@ describe('keyword detector skill-active-state lifecycle', () => {
1079
1094
  await rm(cwd, { recursive: true, force: true });
1080
1095
  }
1081
1096
  });
1097
+ it('persists repo-local deep-interview config values into activation and mode state', async () => {
1098
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-keyword-state-deep-interview-config-'));
1099
+ const stateDir = join(cwd, '.omx', 'state');
1100
+ try {
1101
+ await mkdir(join(cwd, '.omx'), { recursive: true });
1102
+ await mkdir(stateDir, { recursive: true });
1103
+ await writeFile(join(cwd, '.omx', 'config.toml'), `[omx.deepInterview]
1104
+ defaultProfile = "standard"
1105
+ standardThreshold = 0.05
1106
+ standardMaxRounds = 15
1107
+ enableChallengeModes = false
1108
+ `);
1109
+ const result = await recordSkillActivation({
1110
+ stateDir,
1111
+ sourceCwd: cwd,
1112
+ text: '$deep-interview clarify runtime config',
1113
+ sessionId: 'sess-deep-interview-config',
1114
+ nowIso: '2026-02-25T00:00:00.000Z',
1115
+ });
1116
+ assert.ok(result);
1117
+ assert.equal(result.skill, 'deep-interview');
1118
+ assert.equal(result.deep_interview_config?.profile, 'standard');
1119
+ assert.equal(result.deep_interview_config?.threshold, 0.05);
1120
+ assert.equal(result.deep_interview_config?.maxRounds, 15);
1121
+ assert.equal(result.initialized_state_path, '.omx/state/sessions/sess-deep-interview-config/deep-interview-state.json');
1122
+ const modeState = JSON.parse(await readFile(join(stateDir, 'sessions', 'sess-deep-interview-config', DEEP_INTERVIEW_STATE_FILE), 'utf-8'));
1123
+ assert.equal(modeState.profile, 'standard');
1124
+ assert.equal(modeState.threshold, 0.05);
1125
+ assert.equal(modeState.max_rounds, 15);
1126
+ assert.equal(modeState.enable_challenge_modes, false);
1127
+ assert.equal(modeState.config_source, join(cwd, '.omx', 'config.toml'));
1128
+ assert.equal(modeState.deep_interview_config?.sourcePath, join(cwd, '.omx', 'config.toml'));
1129
+ }
1130
+ finally {
1131
+ await rm(cwd, { recursive: true, force: true });
1132
+ }
1133
+ });
1134
+ it('persists deep-interview config when mixed workflow prompts defer execution modes', async () => {
1135
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-keyword-state-deep-interview-config-mixed-'));
1136
+ const stateDir = join(cwd, '.omx', 'state');
1137
+ const sessionId = 'sess-deep-interview-config-mixed';
1138
+ try {
1139
+ await mkdir(join(cwd, '.omx'), { recursive: true });
1140
+ await mkdir(stateDir, { recursive: true });
1141
+ await writeFile(join(cwd, '.omx', 'config.toml'), `[omx.deepInterview]
1142
+ defaultProfile = "deep"
1143
+ deepThreshold = 0.13
1144
+ deepMaxRounds = 21
1145
+ enableChallengeModes = false
1146
+ `);
1147
+ const result = await recordSkillActivation({
1148
+ stateDir,
1149
+ sourceCwd: cwd,
1150
+ text: '$autopilot $deep-interview prove mixed workflow config',
1151
+ sessionId,
1152
+ nowIso: '2026-02-25T00:00:00.000Z',
1153
+ });
1154
+ assert.ok(result);
1155
+ assert.equal(result.skill, 'deep-interview');
1156
+ assert.deepEqual(result.deferred_skills, ['autopilot']);
1157
+ assert.equal(result.input_lock?.active, true);
1158
+ assert.equal(result.deep_interview_config?.profile, 'deep');
1159
+ assert.equal(result.deep_interview_config?.threshold, 0.13);
1160
+ assert.equal(result.deep_interview_config?.maxRounds, 21);
1161
+ assert.equal(result.deep_interview_config?.enableChallengeModes, false);
1162
+ const modeState = JSON.parse(await readFile(join(stateDir, 'sessions', sessionId, DEEP_INTERVIEW_STATE_FILE), 'utf-8'));
1163
+ assert.equal(modeState.profile, 'deep');
1164
+ assert.equal(modeState.threshold, 0.13);
1165
+ assert.equal(modeState.max_rounds, 21);
1166
+ assert.equal(modeState.enable_challenge_modes, false);
1167
+ assert.equal(modeState.config_source, join(cwd, '.omx', 'config.toml'));
1168
+ assert.equal(modeState.deep_interview_config?.profile, 'deep');
1169
+ assert.equal(modeState.input_lock?.active, true);
1170
+ }
1171
+ finally {
1172
+ await rm(cwd, { recursive: true, force: true });
1173
+ }
1174
+ });
1175
+ it('shows before-after state change when deep-interview config is added at runtime', async () => {
1176
+ await withIsolatedHome('deep-interview-config-before-after', async () => {
1177
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-keyword-state-deep-interview-config-before-after-'));
1178
+ const stateDir = join(cwd, '.omx', 'state');
1179
+ const sessionId = 'sess-deep-interview-config-before-after';
1180
+ const statePath = join(stateDir, 'sessions', sessionId, DEEP_INTERVIEW_STATE_FILE);
1181
+ try {
1182
+ await mkdir(join(cwd, '.omx'), { recursive: true });
1183
+ await mkdir(stateDir, { recursive: true });
1184
+ const before = await recordSkillActivation({
1185
+ stateDir,
1186
+ sourceCwd: cwd,
1187
+ text: '$deep-interview prove config before state',
1188
+ sessionId,
1189
+ nowIso: '2026-02-25T00:00:00.000Z',
1190
+ });
1191
+ const beforeModeState = JSON.parse(await readFile(statePath, 'utf-8'));
1192
+ assert.ok(before);
1193
+ assert.equal(before.deep_interview_config, undefined);
1194
+ assert.equal(beforeModeState.deep_interview_config, undefined);
1195
+ assert.equal(beforeModeState.profile, undefined);
1196
+ assert.equal(beforeModeState.threshold, undefined);
1197
+ assert.equal(beforeModeState.max_rounds, undefined);
1198
+ assert.equal(beforeModeState.config_source, undefined);
1199
+ await writeFile(join(cwd, '.omx', 'config.toml'), `[omx.deepInterview]
1200
+ defaultProfile = "standard"
1201
+ standardThreshold = 0.05
1202
+ standardMaxRounds = 15
1203
+ `);
1204
+ const after = await recordSkillActivation({
1205
+ stateDir,
1206
+ sourceCwd: cwd,
1207
+ text: '$deep-interview prove config after state',
1208
+ sessionId,
1209
+ nowIso: '2026-02-25T00:00:01.000Z',
1210
+ });
1211
+ const afterModeState = JSON.parse(await readFile(statePath, 'utf-8'));
1212
+ assert.ok(after);
1213
+ assert.equal(after.deep_interview_config?.profile, 'standard');
1214
+ assert.equal(after.deep_interview_config?.threshold, 0.05);
1215
+ assert.equal(after.deep_interview_config?.maxRounds, 15);
1216
+ assert.equal(afterModeState.deep_interview_config?.profile, 'standard');
1217
+ assert.equal(afterModeState.profile, 'standard');
1218
+ assert.equal(afterModeState.threshold, 0.05);
1219
+ assert.equal(afterModeState.max_rounds, 15);
1220
+ assert.equal(afterModeState.config_source, join(cwd, '.omx', 'config.toml'));
1221
+ }
1222
+ finally {
1223
+ await rm(cwd, { recursive: true, force: true });
1224
+ }
1225
+ });
1226
+ });
1227
+ it('preserves deep-interview config values during continuation prompts', async () => {
1228
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-keyword-state-deep-interview-config-continuation-'));
1229
+ const stateDir = join(cwd, '.omx', 'state');
1230
+ const sessionId = 'sess-deep-interview-config-continuation';
1231
+ const statePath = join(stateDir, 'sessions', sessionId, DEEP_INTERVIEW_STATE_FILE);
1232
+ try {
1233
+ await mkdir(join(cwd, '.omx'), { recursive: true });
1234
+ await mkdir(stateDir, { recursive: true });
1235
+ await writeFile(join(cwd, '.omx', 'config.toml'), `[omx.deepInterview]
1236
+ defaultProfile = "standard"
1237
+ standardThreshold = 0.05
1238
+ standardMaxRounds = 15
1239
+ `);
1240
+ await recordSkillActivation({
1241
+ stateDir,
1242
+ sourceCwd: cwd,
1243
+ text: '$deep-interview prove config continuation',
1244
+ sessionId,
1245
+ nowIso: '2026-02-25T00:00:00.000Z',
1246
+ });
1247
+ const continued = await recordSkillActivation({
1248
+ stateDir,
1249
+ sourceCwd: cwd,
1250
+ text: 'continue',
1251
+ sessionId,
1252
+ nowIso: '2026-02-25T00:00:01.000Z',
1253
+ });
1254
+ const modeState = JSON.parse(await readFile(statePath, 'utf-8'));
1255
+ assert.equal(continued?.skill, 'deep-interview');
1256
+ assert.equal(continued?.deep_interview_config?.profile, 'standard');
1257
+ assert.equal(continued?.deep_interview_config?.threshold, 0.05);
1258
+ assert.equal(continued?.deep_interview_config?.maxRounds, 15);
1259
+ assert.equal(modeState.deep_interview_config?.profile, 'standard');
1260
+ assert.equal(modeState.profile, 'standard');
1261
+ assert.equal(modeState.threshold, 0.05);
1262
+ assert.equal(modeState.max_rounds, 15);
1263
+ }
1264
+ finally {
1265
+ await rm(cwd, { recursive: true, force: true });
1266
+ }
1267
+ });
1268
+ it('preserves explicit deep-interview profile flags during continuation prompts', async () => {
1269
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-keyword-state-deep-interview-config-profile-continuation-'));
1270
+ const stateDir = join(cwd, '.omx', 'state');
1271
+ const sessionId = 'sess-deep-interview-config-profile-continuation';
1272
+ const statePath = join(stateDir, 'sessions', sessionId, DEEP_INTERVIEW_STATE_FILE);
1273
+ try {
1274
+ await mkdir(join(cwd, '.omx'), { recursive: true });
1275
+ await mkdir(stateDir, { recursive: true });
1276
+ await writeFile(join(cwd, '.omx', 'config.toml'), `[omx.deepInterview]
1277
+ defaultProfile = "standard"
1278
+ standardThreshold = 0.22
1279
+ standardMaxRounds = 13
1280
+ deepThreshold = 0.13
1281
+ deepMaxRounds = 21
1282
+ `);
1283
+ const started = await recordSkillActivation({
1284
+ stateDir,
1285
+ sourceCwd: cwd,
1286
+ text: '$deep-interview --deep prove explicit profile continuation',
1287
+ sessionId,
1288
+ nowIso: '2026-02-25T00:00:00.000Z',
1289
+ });
1290
+ const continued = await recordSkillActivation({
1291
+ stateDir,
1292
+ sourceCwd: cwd,
1293
+ text: 'continue',
1294
+ sessionId,
1295
+ nowIso: '2026-02-25T00:00:01.000Z',
1296
+ });
1297
+ const modeState = JSON.parse(await readFile(statePath, 'utf-8'));
1298
+ assert.equal(started?.deep_interview_config?.profile, 'deep');
1299
+ assert.equal(continued?.deep_interview_config?.profile, 'deep');
1300
+ assert.equal(continued?.deep_interview_config?.threshold, 0.13);
1301
+ assert.equal(continued?.deep_interview_config?.maxRounds, 21);
1302
+ assert.equal(modeState.deep_interview_config?.profile, 'deep');
1303
+ assert.equal(modeState.profile, 'deep');
1304
+ assert.equal(modeState.threshold, 0.13);
1305
+ assert.equal(modeState.max_rounds, 21);
1306
+ }
1307
+ finally {
1308
+ await rm(cwd, { recursive: true, force: true });
1309
+ }
1310
+ });
1311
+ it('keeps the documented deep-interview Suggested Config executable through activation state', async () => {
1312
+ const skillDoc = await readFile(join(process.cwd(), 'skills', 'deep-interview', 'SKILL.md'), 'utf-8');
1313
+ const markerIndex = skillDoc.indexOf('## Suggested Config (optional)');
1314
+ assert.notEqual(markerIndex, -1);
1315
+ const configMatch = skillDoc.slice(markerIndex).match(/```toml\n([\s\S]*?)\n```/);
1316
+ assert.ok(configMatch);
1317
+ const documentedConfig = configMatch[1]?.trimEnd();
1318
+ assert.ok(documentedConfig);
1319
+ assert.match(documentedConfig, /standardThreshold = 0\.20/);
1320
+ assert.match(documentedConfig, /standardMaxRounds = 12/);
1321
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-keyword-state-deep-interview-doc-config-'));
1322
+ const stateDir = join(cwd, '.omx', 'state');
1323
+ const sessionId = 'sess-deep-interview-doc-config';
1324
+ const statePath = join(stateDir, 'sessions', sessionId, DEEP_INTERVIEW_STATE_FILE);
1325
+ try {
1326
+ await mkdir(join(cwd, '.omx'), { recursive: true });
1327
+ await mkdir(stateDir, { recursive: true });
1328
+ await writeFile(join(cwd, '.omx', 'config.toml'), `${documentedConfig}\n`);
1329
+ const result = await recordSkillActivation({
1330
+ stateDir,
1331
+ sourceCwd: cwd,
1332
+ text: '$deep-interview prove documented config runtime contract',
1333
+ sessionId,
1334
+ nowIso: '2026-02-25T00:00:00.000Z',
1335
+ });
1336
+ const modeState = JSON.parse(await readFile(statePath, 'utf-8'));
1337
+ assert.ok(result);
1338
+ assert.equal(result.deep_interview_config?.profile, 'standard');
1339
+ assert.equal(result.deep_interview_config?.threshold, 0.2);
1340
+ assert.equal(result.deep_interview_config?.maxRounds, 12);
1341
+ assert.equal(modeState.deep_interview_config?.profile, 'standard');
1342
+ assert.equal(modeState.profile, 'standard');
1343
+ assert.equal(modeState.threshold, 0.2);
1344
+ assert.equal(modeState.max_rounds, 12);
1345
+ assert.equal(modeState.config_source, join(cwd, '.omx', 'config.toml'));
1346
+ }
1347
+ finally {
1348
+ await rm(cwd, { recursive: true, force: true });
1349
+ }
1350
+ });
1351
+ it('keeps deep-interview activation alive when repo config TOML is malformed', async () => {
1352
+ await withIsolatedHome('deep-interview-malformed-config', async () => {
1353
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-keyword-state-deep-interview-malformed-config-'));
1354
+ const stateDir = join(cwd, '.omx', 'state');
1355
+ const originalWarn = console.warn;
1356
+ try {
1357
+ console.warn = () => { };
1358
+ await mkdir(join(cwd, '.omx'), { recursive: true });
1359
+ await mkdir(stateDir, { recursive: true });
1360
+ await writeFile(join(cwd, '.omx', 'config.toml'), '[omx.deepInterview\nstandardThreshold = 0.05\n');
1361
+ const result = await recordSkillActivation({
1362
+ stateDir,
1363
+ sourceCwd: cwd,
1364
+ text: '$deep-interview clarify despite malformed config',
1365
+ sessionId: 'sess-deep-interview-malformed-config',
1366
+ nowIso: '2026-02-25T00:00:00.000Z',
1367
+ });
1368
+ assert.ok(result);
1369
+ assert.equal(result.skill, 'deep-interview');
1370
+ assert.equal(result.active, true);
1371
+ assert.equal(result.deep_interview_config, undefined);
1372
+ const modeState = JSON.parse(await readFile(join(stateDir, 'sessions', 'sess-deep-interview-malformed-config', DEEP_INTERVIEW_STATE_FILE), 'utf-8'));
1373
+ assert.equal(modeState.mode, 'deep-interview');
1374
+ assert.equal(modeState.active, true);
1375
+ assert.equal(modeState.deep_interview_config, undefined);
1376
+ }
1377
+ finally {
1378
+ console.warn = originalWarn;
1379
+ await rm(cwd, { recursive: true, force: true });
1380
+ }
1381
+ });
1382
+ });
1082
1383
  it('creates the session-scoped deep-interview state directory before persisting mode state', async () => {
1083
1384
  const cwd = await mkdtemp(join(tmpdir(), 'omx-keyword-state-deep-interview-session-dir-'));
1084
1385
  const stateDir = join(cwd, '.omx', 'state');