oh-my-codex 0.18.8 → 0.18.9

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 (88) hide show
  1. package/Cargo.lock +12 -12
  2. package/Cargo.toml +1 -1
  3. package/dist/autopilot/__tests__/fsm.test.js +3 -0
  4. package/dist/autopilot/__tests__/fsm.test.js.map +1 -1
  5. package/dist/autopilot/fsm.js +2 -2
  6. package/dist/autopilot/fsm.js.map +1 -1
  7. package/dist/cli/__tests__/auth.test.js +4 -2
  8. package/dist/cli/__tests__/auth.test.js.map +1 -1
  9. package/dist/cli/__tests__/codex-plugin-layout.test.js +1 -1
  10. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
  11. package/dist/cli/__tests__/index.test.js +38 -2
  12. package/dist/cli/__tests__/index.test.js.map +1 -1
  13. package/dist/cli/__tests__/package-bin-contract.test.js +20 -4
  14. package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
  15. package/dist/cli/__tests__/question.test.js +26 -9
  16. package/dist/cli/__tests__/question.test.js.map +1 -1
  17. package/dist/cli/__tests__/resume.test.js +50 -1
  18. package/dist/cli/__tests__/resume.test.js.map +1 -1
  19. package/dist/cli/__tests__/update.test.js +214 -17
  20. package/dist/cli/__tests__/update.test.js.map +1 -1
  21. package/dist/cli/__tests__/windows-popup-loop-contract.test.js +1 -1
  22. package/dist/cli/index.d.ts +11 -3
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +35 -13
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/update.d.ts +20 -3
  27. package/dist/cli/update.d.ts.map +1 -1
  28. package/dist/cli/update.js +265 -23
  29. package/dist/cli/update.js.map +1 -1
  30. package/dist/cli/version.d.ts.map +1 -1
  31. package/dist/cli/version.js +5 -9
  32. package/dist/cli/version.js.map +1 -1
  33. package/dist/compat/__tests__/doctor-contract.test.js +12 -1
  34. package/dist/compat/__tests__/doctor-contract.test.js.map +1 -1
  35. package/dist/hooks/__tests__/code-review-skill-contract.test.js +7 -3
  36. package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
  37. package/dist/hooks/__tests__/deep-interview-contract.test.js +30 -1
  38. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
  39. package/dist/hud/__tests__/reconcile.test.js +121 -0
  40. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  41. package/dist/hud/__tests__/state.test.js +28 -0
  42. package/dist/hud/__tests__/state.test.js.map +1 -1
  43. package/dist/hud/state.d.ts.map +1 -1
  44. package/dist/hud/state.js +4 -18
  45. package/dist/hud/state.js.map +1 -1
  46. package/dist/question/__tests__/renderer.test.js +566 -1
  47. package/dist/question/__tests__/renderer.test.js.map +1 -1
  48. package/dist/question/renderer.d.ts +9 -1
  49. package/dist/question/renderer.d.ts.map +1 -1
  50. package/dist/question/renderer.js +246 -70
  51. package/dist/question/renderer.js.map +1 -1
  52. package/dist/scripts/__tests__/codex-native-hook.test.js +154 -0
  53. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  54. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  55. package/dist/scripts/codex-native-hook.js +20 -9
  56. package/dist/scripts/codex-native-hook.js.map +1 -1
  57. package/dist/utils/__tests__/platform-command.test.js +16 -1
  58. package/dist/utils/__tests__/platform-command.test.js.map +1 -1
  59. package/dist/utils/__tests__/version.test.d.ts +2 -0
  60. package/dist/utils/__tests__/version.test.d.ts.map +1 -0
  61. package/dist/utils/__tests__/version.test.js +51 -0
  62. package/dist/utils/__tests__/version.test.js.map +1 -0
  63. package/dist/utils/paths.d.ts +8 -1
  64. package/dist/utils/paths.d.ts.map +1 -1
  65. package/dist/utils/paths.js +16 -4
  66. package/dist/utils/paths.js.map +1 -1
  67. package/dist/utils/platform-command.d.ts +9 -0
  68. package/dist/utils/platform-command.d.ts.map +1 -1
  69. package/dist/utils/platform-command.js +15 -0
  70. package/dist/utils/platform-command.js.map +1 -1
  71. package/dist/utils/version.d.ts +7 -0
  72. package/dist/utils/version.d.ts.map +1 -0
  73. package/dist/utils/version.js +67 -0
  74. package/dist/utils/version.js.map +1 -0
  75. package/dist/verification/__tests__/ci-rust-gates.test.js +8 -0
  76. package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
  77. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +16 -2
  78. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -1
  79. package/package.json +4 -3
  80. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  81. package/plugins/oh-my-codex/skills/code-review/SKILL.md +2 -2
  82. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +51 -11
  83. package/skills/code-review/SKILL.md +2 -2
  84. package/skills/deep-interview/SKILL.md +51 -11
  85. package/src/scripts/__tests__/codex-native-hook.test.ts +175 -0
  86. package/src/scripts/codex-native-hook.ts +19 -7
  87. package/src/scripts/prepare-build.js +83 -0
  88. package/src/scripts/postinstall-bootstrap.js +0 -23
@@ -1 +1 @@
1
- {"version":3,"file":"codex-native-hook.d.ts","sourceRoot":"","sources":["../../src/scripts/codex-native-hook.ts"],"names":[],"mappings":"AA2CA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AA+BtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAuClE,KAAK,kBAAkB,GACnB,cAAc,GACd,YAAY,GACZ,aAAa,GACb,kBAAkB,GAClB,YAAY,GACZ,aAAa,GACb,MAAM,CAAC;AAEX,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD,UAAU,yBAAyB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B,CAAC,EAAE,OAAO,2BAA2B,CAAC;CACpE;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC5C;AAsWD,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,kBAAkB,GAAG,IAAI,GACvC,MAAM,GAAG,IAAI,CAmBf;AAwoBD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC,GACL,MAAM,GAAG,IAAI,CAuBf;AA6+BD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMnE;AA4xDD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CA8TnC;AA6BD,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAGT;AAoMD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyC3D"}
1
+ {"version":3,"file":"codex-native-hook.d.ts","sourceRoot":"","sources":["../../src/scripts/codex-native-hook.ts"],"names":[],"mappings":"AA2CA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AA+BtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAwClE,KAAK,kBAAkB,GACnB,cAAc,GACd,YAAY,GACZ,aAAa,GACb,kBAAkB,GAClB,YAAY,GACZ,aAAa,GACb,MAAM,CAAC;AAEX,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD,UAAU,yBAAyB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B,CAAC,EAAE,OAAO,2BAA2B,CAAC;CACpE;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC5C;AAsWD,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,kBAAkB,GAAG,IAAI,GACvC,MAAM,GAAG,IAAI,CAmBf;AAwoBD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC,GACL,MAAM,GAAG,IAAI,CAuBf;AA6+BD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMnE;AAuyDD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CA8TnC;AA6BD,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAGT;AAoMD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyC3D"}
@@ -27,6 +27,7 @@ import { getNotificationConfig, getVerbosity } from "../notifications/config.js"
27
27
  import { reconcileHudForPromptSubmit } from "../hud/reconcile.js";
28
28
  import { onPreCompact as buildWikiPreCompactContext, onSessionStart as buildWikiSessionStartContext, } from "../wiki/lifecycle.js";
29
29
  import { readAutoresearchCompletionStatus, readAutoresearchModeStateForActiveDecision } from "../autoresearch/skill-validation.js";
30
+ import { normalizeAutopilotPhase } from "../autopilot/fsm.js";
30
31
  import { readRunState } from "../runtime/run-state.js";
31
32
  import { evaluateRalphCompletionAuditEvidence, isRalphCompletePhase } from "../ralph/completion-audit.js";
32
33
  import { getRunContinuationSnapshot, shouldContinueRun } from "../runtime/run-loop.js";
@@ -2125,14 +2126,11 @@ function isActiveRalplanPhase(state) {
2125
2126
  return false;
2126
2127
  return true;
2127
2128
  }
2128
- function isActiveAutopilotRalplanPhase(state) {
2129
- if (!state || state.active !== true)
2130
- return false;
2131
- const mode = safeString(state.mode).trim();
2132
- if (mode && mode !== "autopilot")
2133
- return false;
2134
- const phase = safeString(state.current_phase ?? state.currentPhase).trim().toLowerCase();
2135
- return phase === "ralplan" || phase === "replan" || phase === "autopilot:replan";
2129
+ function isAutopilotRalplanLikePhase(phase) {
2130
+ return normalizeAutopilotPhase(phase) === "ralplan";
2131
+ }
2132
+ function canAutopilotSkillMirrorSupplyRalplanPhase(phase) {
2133
+ return phase === "" || normalizeAutopilotPhase(phase) === "ralplan";
2136
2134
  }
2137
2135
  function hasExplicitExecutionHandoffSkill(state, sessionId, threadId) {
2138
2136
  return listActiveSkills(state ?? {}).some((entry) => (RALPLAN_EXECUTION_HANDOFF_SKILLS.has(entry.skill)
@@ -2242,7 +2240,10 @@ async function readActiveRalplanStateForPreToolUse(cwd, stateDir, sessionId, thr
2242
2240
  const autopilotState = sessionId
2243
2241
  ? await readStopSessionPinnedState("autopilot-state.json", cwd, sessionId, stateDir)
2244
2242
  : await readJsonIfExists(join(stateDir, "autopilot-state.json"));
2245
- if (!isActiveAutopilotRalplanPhase(autopilotState) || !autopilotState)
2243
+ if (!autopilotState || autopilotState.active !== true)
2244
+ return null;
2245
+ const autopilotMode = safeString(autopilotState.mode).trim();
2246
+ if (autopilotMode && autopilotMode !== "autopilot")
2246
2247
  return null;
2247
2248
  if (!modeStateMatchesSkillStopContext(autopilotState, cwd, sessionId))
2248
2249
  return null;
@@ -2253,6 +2254,16 @@ async function readActiveRalplanStateForPreToolUse(cwd, stateDir, sessionId, thr
2253
2254
  return null;
2254
2255
  const hasActiveAutopilotSkill = listActiveSkills(canonicalState).some((entry) => (entry.skill === "autopilot"
2255
2256
  && matchesSkillStopContext(entry, canonicalState, sessionId, threadId)));
2257
+ if (!hasActiveAutopilotSkill)
2258
+ return null;
2259
+ const autopilotStatePhase = safeString(autopilotState.current_phase ?? autopilotState.currentPhase).trim().toLowerCase();
2260
+ if (!canAutopilotSkillMirrorSupplyRalplanPhase(autopilotStatePhase))
2261
+ return null;
2262
+ const hasRalplanScopedAutopilotSkill = listActiveSkills(canonicalState).some((entry) => (entry.skill === "autopilot"
2263
+ && isAutopilotRalplanLikePhase(safeString(entry.phase).trim().toLowerCase())
2264
+ && matchesSkillStopContext(entry, canonicalState, sessionId, threadId)));
2265
+ if (!isAutopilotRalplanLikePhase(autopilotStatePhase) && !hasRalplanScopedAutopilotSkill)
2266
+ return null;
2256
2267
  return hasActiveAutopilotSkill ? autopilotState : null;
2257
2268
  }
2258
2269
  function isAllowedRalplanBashWrite(cwd, command) {