oh-my-codex 0.18.1 → 0.18.3

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 (310) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +4 -2
  4. package/dist/agents/__tests__/definitions.test.js +23 -0
  5. package/dist/agents/__tests__/definitions.test.js.map +1 -1
  6. package/dist/agents/__tests__/native-config.test.js +20 -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 +40 -0
  10. package/dist/agents/definitions.js.map +1 -1
  11. package/dist/agents/native-config.d.ts +1 -0
  12. package/dist/agents/native-config.d.ts.map +1 -1
  13. package/dist/agents/native-config.js +4 -0
  14. package/dist/agents/native-config.js.map +1 -1
  15. package/dist/auth/__tests__/config-sessions.test.d.ts +2 -0
  16. package/dist/auth/__tests__/config-sessions.test.d.ts.map +1 -0
  17. package/dist/auth/__tests__/config-sessions.test.js +48 -0
  18. package/dist/auth/__tests__/config-sessions.test.js.map +1 -0
  19. package/dist/auth/__tests__/quota-rotation.test.d.ts +2 -0
  20. package/dist/auth/__tests__/quota-rotation.test.d.ts.map +1 -0
  21. package/dist/auth/__tests__/quota-rotation.test.js +33 -0
  22. package/dist/auth/__tests__/quota-rotation.test.js.map +1 -0
  23. package/dist/auth/__tests__/redact.test.d.ts +2 -0
  24. package/dist/auth/__tests__/redact.test.d.ts.map +1 -0
  25. package/dist/auth/__tests__/redact.test.js +20 -0
  26. package/dist/auth/__tests__/redact.test.js.map +1 -0
  27. package/dist/auth/__tests__/storage.test.d.ts +2 -0
  28. package/dist/auth/__tests__/storage.test.d.ts.map +1 -0
  29. package/dist/auth/__tests__/storage.test.js +108 -0
  30. package/dist/auth/__tests__/storage.test.js.map +1 -0
  31. package/dist/auth/config.d.ts +9 -0
  32. package/dist/auth/config.d.ts.map +1 -0
  33. package/dist/auth/config.js +77 -0
  34. package/dist/auth/config.js.map +1 -0
  35. package/dist/auth/hotswap.d.ts +36 -0
  36. package/dist/auth/hotswap.d.ts.map +1 -0
  37. package/dist/auth/hotswap.js +159 -0
  38. package/dist/auth/hotswap.js.map +1 -0
  39. package/dist/auth/index.d.ts +8 -0
  40. package/dist/auth/index.d.ts.map +1 -0
  41. package/dist/auth/index.js +8 -0
  42. package/dist/auth/index.js.map +1 -0
  43. package/dist/auth/paths.d.ts +12 -0
  44. package/dist/auth/paths.d.ts.map +1 -0
  45. package/dist/auth/paths.js +78 -0
  46. package/dist/auth/paths.js.map +1 -0
  47. package/dist/auth/quota-detector.d.ts +10 -0
  48. package/dist/auth/quota-detector.d.ts.map +1 -0
  49. package/dist/auth/quota-detector.js +40 -0
  50. package/dist/auth/quota-detector.js.map +1 -0
  51. package/dist/auth/redact.d.ts +2 -0
  52. package/dist/auth/redact.d.ts.map +1 -0
  53. package/dist/auth/redact.js +26 -0
  54. package/dist/auth/redact.js.map +1 -0
  55. package/dist/auth/rotation.d.ts +9 -0
  56. package/dist/auth/rotation.d.ts.map +1 -0
  57. package/dist/auth/rotation.js +26 -0
  58. package/dist/auth/rotation.js.map +1 -0
  59. package/dist/auth/sessions.d.ts +15 -0
  60. package/dist/auth/sessions.d.ts.map +1 -0
  61. package/dist/auth/sessions.js +62 -0
  62. package/dist/auth/sessions.js.map +1 -0
  63. package/dist/auth/storage.d.ts +27 -0
  64. package/dist/auth/storage.d.ts.map +1 -0
  65. package/dist/auth/storage.js +111 -0
  66. package/dist/auth/storage.js.map +1 -0
  67. package/dist/catalog/__tests__/generator.test.js +4 -0
  68. package/dist/catalog/__tests__/generator.test.js.map +1 -1
  69. package/dist/cli/__tests__/auth.test.d.ts +2 -0
  70. package/dist/cli/__tests__/auth.test.d.ts.map +1 -0
  71. package/dist/cli/__tests__/auth.test.js +168 -0
  72. package/dist/cli/__tests__/auth.test.js.map +1 -0
  73. package/dist/cli/__tests__/doctor-warning-copy.test.js +112 -5
  74. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  75. package/dist/cli/__tests__/explore.test.js +20 -0
  76. package/dist/cli/__tests__/explore.test.js.map +1 -1
  77. package/dist/cli/__tests__/index.test.js +171 -21
  78. package/dist/cli/__tests__/index.test.js.map +1 -1
  79. package/dist/cli/__tests__/launch-fallback.test.js +51 -3
  80. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  81. package/dist/cli/__tests__/nested-help-routing.test.js +1 -0
  82. package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
  83. package/dist/cli/__tests__/question.test.js +2 -2
  84. package/dist/cli/__tests__/question.test.js.map +1 -1
  85. package/dist/cli/__tests__/setup-agents-overwrite.test.js +30 -1
  86. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
  87. package/dist/cli/__tests__/setup-install-mode.test.js +47 -0
  88. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  89. package/dist/cli/auth.d.ts +4 -0
  90. package/dist/cli/auth.d.ts.map +1 -0
  91. package/dist/cli/auth.js +89 -0
  92. package/dist/cli/auth.js.map +1 -0
  93. package/dist/cli/doctor.d.ts.map +1 -1
  94. package/dist/cli/doctor.js +190 -7
  95. package/dist/cli/doctor.js.map +1 -1
  96. package/dist/cli/explore.d.ts.map +1 -1
  97. package/dist/cli/explore.js +12 -0
  98. package/dist/cli/explore.js.map +1 -1
  99. package/dist/cli/index.d.ts +27 -3
  100. package/dist/cli/index.d.ts.map +1 -1
  101. package/dist/cli/index.js +245 -47
  102. package/dist/cli/index.js.map +1 -1
  103. package/dist/cli/setup.d.ts.map +1 -1
  104. package/dist/cli/setup.js +11 -3
  105. package/dist/cli/setup.js.map +1 -1
  106. package/dist/config/__tests__/codex-hooks.test.js +3 -3
  107. package/dist/config/__tests__/codex-hooks.test.js.map +1 -1
  108. package/dist/config/__tests__/deep-interview.test.d.ts +2 -0
  109. package/dist/config/__tests__/deep-interview.test.d.ts.map +1 -0
  110. package/dist/config/__tests__/deep-interview.test.js +239 -0
  111. package/dist/config/__tests__/deep-interview.test.js.map +1 -0
  112. package/dist/config/__tests__/generator-idempotent.test.js +123 -0
  113. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  114. package/dist/config/codex-hooks.d.ts +1 -0
  115. package/dist/config/codex-hooks.d.ts.map +1 -1
  116. package/dist/config/codex-hooks.js +2 -4
  117. package/dist/config/codex-hooks.js.map +1 -1
  118. package/dist/config/deep-interview.d.ts +22 -0
  119. package/dist/config/deep-interview.d.ts.map +1 -0
  120. package/dist/config/deep-interview.js +151 -0
  121. package/dist/config/deep-interview.js.map +1 -0
  122. package/dist/config/generator.d.ts +19 -2
  123. package/dist/config/generator.d.ts.map +1 -1
  124. package/dist/config/generator.js +198 -29
  125. package/dist/config/generator.js.map +1 -1
  126. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js +21 -0
  127. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js.map +1 -1
  128. package/dist/goal-workflows/codex-goal-snapshot.d.ts +3 -0
  129. package/dist/goal-workflows/codex-goal-snapshot.d.ts.map +1 -1
  130. package/dist/goal-workflows/codex-goal-snapshot.js +45 -2
  131. package/dist/goal-workflows/codex-goal-snapshot.js.map +1 -1
  132. package/dist/hooks/__tests__/agents-overlay.test.js +2 -0
  133. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  134. package/dist/hooks/__tests__/autopilot-skill-contract.test.js +17 -0
  135. package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
  136. package/dist/hooks/__tests__/explore-routing.test.js +1 -0
  137. package/dist/hooks/__tests__/explore-routing.test.js.map +1 -1
  138. package/dist/hooks/__tests__/keyword-detector.test.js +471 -15
  139. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  140. package/dist/hooks/__tests__/prometheus-strict-contract.test.d.ts +2 -0
  141. package/dist/hooks/__tests__/prometheus-strict-contract.test.d.ts.map +1 -0
  142. package/dist/hooks/__tests__/prometheus-strict-contract.test.js +320 -0
  143. package/dist/hooks/__tests__/prometheus-strict-contract.test.js.map +1 -0
  144. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js +12 -0
  145. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js.map +1 -1
  146. package/dist/hooks/__tests__/research-workflow-boundaries.test.d.ts +2 -0
  147. package/dist/hooks/__tests__/research-workflow-boundaries.test.d.ts.map +1 -0
  148. package/dist/hooks/__tests__/research-workflow-boundaries.test.js +35 -0
  149. package/dist/hooks/__tests__/research-workflow-boundaries.test.js.map +1 -0
  150. package/dist/hooks/deep-interview-config-instruction.d.ts +3 -0
  151. package/dist/hooks/deep-interview-config-instruction.d.ts.map +1 -0
  152. package/dist/hooks/deep-interview-config-instruction.js +47 -0
  153. package/dist/hooks/deep-interview-config-instruction.js.map +1 -0
  154. package/dist/hooks/explore-routing.d.ts.map +1 -1
  155. package/dist/hooks/explore-routing.js +1 -0
  156. package/dist/hooks/explore-routing.js.map +1 -1
  157. package/dist/hooks/keyword-detector.d.ts +6 -1
  158. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  159. package/dist/hooks/keyword-detector.js +80 -14
  160. package/dist/hooks/keyword-detector.js.map +1 -1
  161. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  162. package/dist/hooks/keyword-registry.js +1 -0
  163. package/dist/hooks/keyword-registry.js.map +1 -1
  164. package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
  165. package/dist/hooks/prompt-guidance-contract.js +11 -0
  166. package/dist/hooks/prompt-guidance-contract.js.map +1 -1
  167. package/dist/hud/__tests__/hud-tmux-injection.test.js +22 -0
  168. package/dist/hud/__tests__/hud-tmux-injection.test.js.map +1 -1
  169. package/dist/hud/__tests__/reconcile.test.js +213 -17
  170. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  171. package/dist/hud/__tests__/render.test.js +84 -0
  172. package/dist/hud/__tests__/render.test.js.map +1 -1
  173. package/dist/hud/__tests__/state.test.js +51 -1
  174. package/dist/hud/__tests__/state.test.js.map +1 -1
  175. package/dist/hud/__tests__/tmux.test.js +171 -23
  176. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  177. package/dist/hud/index.d.ts +1 -1
  178. package/dist/hud/index.d.ts.map +1 -1
  179. package/dist/hud/index.js +8 -3
  180. package/dist/hud/index.js.map +1 -1
  181. package/dist/hud/reconcile.d.ts +1 -1
  182. package/dist/hud/reconcile.d.ts.map +1 -1
  183. package/dist/hud/reconcile.js +14 -3
  184. package/dist/hud/reconcile.js.map +1 -1
  185. package/dist/hud/render.d.ts.map +1 -1
  186. package/dist/hud/render.js +26 -0
  187. package/dist/hud/render.js.map +1 -1
  188. package/dist/hud/state.d.ts +2 -1
  189. package/dist/hud/state.d.ts.map +1 -1
  190. package/dist/hud/state.js +62 -1
  191. package/dist/hud/state.js.map +1 -1
  192. package/dist/hud/tmux.d.ts +17 -3
  193. package/dist/hud/tmux.d.ts.map +1 -1
  194. package/dist/hud/tmux.js +96 -10
  195. package/dist/hud/tmux.js.map +1 -1
  196. package/dist/hud/types.d.ts +22 -0
  197. package/dist/hud/types.d.ts.map +1 -1
  198. package/dist/hud/types.js.map +1 -1
  199. package/dist/pipeline/__tests__/orchestrator.test.js +63 -1
  200. package/dist/pipeline/__tests__/orchestrator.test.js.map +1 -1
  201. package/dist/pipeline/__tests__/stages.test.js +410 -4
  202. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  203. package/dist/pipeline/orchestrator.d.ts.map +1 -1
  204. package/dist/pipeline/orchestrator.js +29 -2
  205. package/dist/pipeline/orchestrator.js.map +1 -1
  206. package/dist/pipeline/stages/ralplan.d.ts.map +1 -1
  207. package/dist/pipeline/stages/ralplan.js +41 -6
  208. package/dist/pipeline/stages/ralplan.js.map +1 -1
  209. package/dist/question/__tests__/ui.test.js +43 -10
  210. package/dist/question/__tests__/ui.test.js.map +1 -1
  211. package/dist/question/deep-interview.d.ts +2 -0
  212. package/dist/question/deep-interview.d.ts.map +1 -1
  213. package/dist/question/deep-interview.js.map +1 -1
  214. package/dist/question/ui.d.ts +12 -0
  215. package/dist/question/ui.d.ts.map +1 -1
  216. package/dist/question/ui.js +83 -46
  217. package/dist/question/ui.js.map +1 -1
  218. package/dist/ralplan/__tests__/runtime.test.js +200 -10
  219. package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
  220. package/dist/ralplan/consensus-gate.d.ts +23 -0
  221. package/dist/ralplan/consensus-gate.d.ts.map +1 -0
  222. package/dist/ralplan/consensus-gate.js +212 -0
  223. package/dist/ralplan/consensus-gate.js.map +1 -0
  224. package/dist/ralplan/runtime.d.ts +25 -0
  225. package/dist/ralplan/runtime.d.ts.map +1 -1
  226. package/dist/ralplan/runtime.js +144 -8
  227. package/dist/ralplan/runtime.js.map +1 -1
  228. package/dist/scripts/__tests__/codex-native-hook.test.js +1034 -28
  229. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  230. package/dist/scripts/__tests__/docs-site-contract.test.d.ts +2 -0
  231. package/dist/scripts/__tests__/docs-site-contract.test.d.ts.map +1 -0
  232. package/dist/scripts/__tests__/docs-site-contract.test.js +42 -0
  233. package/dist/scripts/__tests__/docs-site-contract.test.js.map +1 -0
  234. package/dist/scripts/__tests__/notify-dispatcher.test.js +115 -2
  235. package/dist/scripts/__tests__/notify-dispatcher.test.js.map +1 -1
  236. package/dist/scripts/__tests__/run-test-files.test.js +57 -0
  237. package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
  238. package/dist/scripts/__tests__/verify-native-agents.test.js +2 -2
  239. package/dist/scripts/__tests__/verify-native-agents.test.js.map +1 -1
  240. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  241. package/dist/scripts/codex-native-hook.js +238 -36
  242. package/dist/scripts/codex-native-hook.js.map +1 -1
  243. package/dist/scripts/notify-dispatcher.js +188 -4
  244. package/dist/scripts/notify-dispatcher.js.map +1 -1
  245. package/dist/scripts/run-test-files.js +13 -0
  246. package/dist/scripts/run-test-files.js.map +1 -1
  247. package/dist/state/__tests__/planning-gate.test.d.ts +2 -0
  248. package/dist/state/__tests__/planning-gate.test.d.ts.map +1 -0
  249. package/dist/state/__tests__/planning-gate.test.js +219 -0
  250. package/dist/state/__tests__/planning-gate.test.js.map +1 -0
  251. package/dist/state/__tests__/workflow-transition.test.js +6 -0
  252. package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
  253. package/dist/state/workflow-transition.d.ts +24 -1
  254. package/dist/state/workflow-transition.d.ts.map +1 -1
  255. package/dist/state/workflow-transition.js +70 -0
  256. package/dist/state/workflow-transition.js.map +1 -1
  257. package/dist/subagents/tracker.d.ts.map +1 -1
  258. package/dist/subagents/tracker.js +4 -3
  259. package/dist/subagents/tracker.js.map +1 -1
  260. package/dist/team/__tests__/runtime.test.js +36 -44
  261. package/dist/team/__tests__/runtime.test.js.map +1 -1
  262. package/dist/team/__tests__/tmux-session.test.js +144 -18
  263. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  264. package/dist/team/runtime.d.ts.map +1 -1
  265. package/dist/team/runtime.js +10 -20
  266. package/dist/team/runtime.js.map +1 -1
  267. package/dist/team/tmux-session.d.ts.map +1 -1
  268. package/dist/team/tmux-session.js +22 -6
  269. package/dist/team/tmux-session.js.map +1 -1
  270. package/dist/ultragoal/__tests__/artifacts.test.js +50 -0
  271. package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -1
  272. package/dist/ultragoal/artifacts.d.ts.map +1 -1
  273. package/dist/ultragoal/artifacts.js +28 -2
  274. package/dist/ultragoal/artifacts.js.map +1 -1
  275. package/package.json +1 -1
  276. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  277. package/plugins/oh-my-codex/skills/autopilot/SKILL.md +16 -4
  278. package/plugins/oh-my-codex/skills/autoresearch/SKILL.md +4 -0
  279. package/plugins/oh-my-codex/skills/autoresearch-goal/SKILL.md +1 -1
  280. package/plugins/oh-my-codex/skills/best-practice-research/SKILL.md +1 -1
  281. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +10 -0
  282. package/plugins/oh-my-codex/skills/pipeline/SKILL.md +1 -1
  283. package/plugins/oh-my-codex/skills/plan/SKILL.md +1 -1
  284. package/plugins/oh-my-codex/skills/prometheus-strict/README.md +35 -0
  285. package/plugins/oh-my-codex/skills/prometheus-strict/SKILL.md +219 -0
  286. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +24 -5
  287. package/prompts/prometheus-strict-metis.md +274 -0
  288. package/prompts/prometheus-strict-momus.md +82 -0
  289. package/prompts/prometheus-strict-oracle.md +107 -0
  290. package/prompts/researcher.md +22 -3
  291. package/prompts/scholastic.md +11 -0
  292. package/skills/autopilot/SKILL.md +16 -4
  293. package/skills/autoresearch/SKILL.md +4 -0
  294. package/skills/autoresearch-goal/SKILL.md +1 -1
  295. package/skills/best-practice-research/SKILL.md +1 -1
  296. package/skills/deep-interview/SKILL.md +10 -0
  297. package/skills/pipeline/SKILL.md +1 -1
  298. package/skills/plan/SKILL.md +1 -1
  299. package/skills/prometheus-strict/README.md +35 -0
  300. package/skills/prometheus-strict/SKILL.md +219 -0
  301. package/skills/ralplan/SKILL.md +24 -5
  302. package/src/scripts/__tests__/codex-native-hook.test.ts +1307 -61
  303. package/src/scripts/__tests__/docs-site-contract.test.ts +47 -0
  304. package/src/scripts/__tests__/notify-dispatcher.test.ts +132 -3
  305. package/src/scripts/__tests__/run-test-files.test.ts +67 -0
  306. package/src/scripts/__tests__/verify-native-agents.test.ts +2 -2
  307. package/src/scripts/codex-native-hook.ts +260 -31
  308. package/src/scripts/notify-dispatcher.ts +202 -4
  309. package/src/scripts/run-test-files.ts +13 -0
  310. package/templates/catalog-manifest.json +27 -0
@@ -1,4 +1,27 @@
1
- export declare const TRACKED_WORKFLOW_MODES: readonly ["autopilot", "autoresearch", "team", "ralph", "ultrawork", "ultraqa", "ralplan", "deep-interview"];
1
+ export type DownstreamAuthority = 'plan_then_execute' | 'execute_now';
2
+ export interface PlanningGateState {
3
+ downstream_authority: DownstreamAuthority;
4
+ bypass_planning_gate_until?: string;
5
+ objective_id?: string;
6
+ }
7
+ export interface PreToolUseGateInput {
8
+ tool_name: string;
9
+ tool_input?: string;
10
+ }
11
+ export interface PreToolUseGateDecision {
12
+ allowed: boolean;
13
+ reason?: string;
14
+ gate_fired?: boolean;
15
+ }
16
+ export declare const PLANNING_GATE_BYPASS_TTL_MS: number;
17
+ export declare const BYPASS_PLANNING_GATE_PHRASE = "bypass planning gate";
18
+ export declare function isImplementationToolCall(input: PreToolUseGateInput): boolean;
19
+ export declare function isPlanningGateBypassActive(state: PlanningGateState, now?: Date): boolean;
20
+ export declare function evaluatePreToolUseGate(toolInput: PreToolUseGateInput, gateState: PlanningGateState | null | undefined, planningComplete: boolean, now?: Date): PreToolUseGateDecision;
21
+ export declare function computeBypassExpiry(now?: Date, ttlMs?: number): string;
22
+ export declare function containsBypassPlanningGatePhrase(text: string): boolean;
23
+ export declare function buildPlanningGateLogEvent(decision: PreToolUseGateDecision, toolInput: PreToolUseGateInput, gateState: PlanningGateState | null | undefined): Record<string, unknown>;
24
+ export declare const TRACKED_WORKFLOW_MODES: readonly ["autopilot", "autoresearch", "team", "ultragoal", "ralph", "ultrawork", "ultraqa", "ralplan", "deep-interview"];
2
25
  export type TrackedWorkflowMode = (typeof TRACKED_WORKFLOW_MODES)[number];
3
26
  export type WorkflowTransitionAction = 'activate' | 'start' | 'write';
4
27
  export type WorkflowTransitionKind = 'allow' | 'overlap' | 'auto-complete' | 'deny';
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-transition.d.ts","sourceRoot":"","sources":["../../src/state/workflow-transition.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,8GASzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1E,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AACtE,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,GAAG,eAAe,GAAG,MAAM,CAAC;AAqEpF,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,mBAAmB,EAC/B,aAAa,EAAE,mBAAmB,GACjC,MAAM,CAER;AASD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,sBAAsB,CAAC;IAC7B,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,aAAa,EAAE,mBAAmB,CAAC;IACnC,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,mBAAmB,CAE/E;AAED,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,EACpC,aAAa,EAAE,mBAAmB,GACjC,0BAA0B,CA4D5B;AAED,wBAAgB,4BAA4B,CAC1C,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,EACpC,aAAa,EAAE,mBAAmB,EAClC,MAAM,GAAE,wBAAqC,GAC5C,MAAM,CAkBR;AAED,wBAAgB,+BAA+B,CAC7C,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,EACpC,aAAa,EAAE,mBAAmB,EAClC,MAAM,GAAE,wBAAqC,GAC5C,IAAI,CAIN;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAsBhC;AAED,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,OAAO,EACvB,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,YAAY,EAAE,MAAM,GACnB,MAAM,CAMR"}
1
+ {"version":3,"file":"workflow-transition.d.ts","sourceRoot":"","sources":["../../src/state/workflow-transition.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,74 @@
1
1
  import { existsSync } from 'fs';
2
2
  import { readFile } from 'fs/promises';
3
3
  import { getAuthoritativeActiveStatePaths } from '../mcp/state-paths.js';
4
+ const IMPLEMENTATION_TOOLS = new Set(['Edit', 'Write', 'NotebookEdit']);
5
+ const DENIED_BASH_PATTERNS = [
6
+ /\bgit\s+push\b/,
7
+ /\bgh\s+pr\s+create\b/,
8
+ /\bgh\s+pr\s+merge\b/,
9
+ ];
10
+ export const PLANNING_GATE_BYPASS_TTL_MS = 10 * 60 * 1000;
11
+ export const BYPASS_PLANNING_GATE_PHRASE = 'bypass planning gate';
12
+ export function isImplementationToolCall(input) {
13
+ if (IMPLEMENTATION_TOOLS.has(input.tool_name))
14
+ return true;
15
+ if (input.tool_name === 'Bash' && typeof input.tool_input === 'string') {
16
+ return DENIED_BASH_PATTERNS.some((pattern) => pattern.test(input.tool_input));
17
+ }
18
+ return false;
19
+ }
20
+ export function isPlanningGateBypassActive(state, now = new Date()) {
21
+ const raw = typeof state.bypass_planning_gate_until === 'string'
22
+ ? state.bypass_planning_gate_until.trim()
23
+ : '';
24
+ if (!raw)
25
+ return false;
26
+ const bypassMs = Date.parse(raw);
27
+ if (!Number.isFinite(bypassMs))
28
+ return false;
29
+ return now.getTime() < bypassMs;
30
+ }
31
+ export function evaluatePreToolUseGate(toolInput, gateState, planningComplete, now = new Date()) {
32
+ if (!gateState || gateState.downstream_authority !== 'plan_then_execute') {
33
+ return { allowed: true };
34
+ }
35
+ if (planningComplete) {
36
+ return { allowed: true };
37
+ }
38
+ if (!isImplementationToolCall(toolInput)) {
39
+ return { allowed: true };
40
+ }
41
+ if (isPlanningGateBypassActive(gateState, now)) {
42
+ return { allowed: true, reason: 'bypass_planning_gate active' };
43
+ }
44
+ return {
45
+ allowed: false,
46
+ gate_fired: true,
47
+ reason: `deep-interview downstream_authority is plan_then_execute but no ralplan consensus artifact exists; ${toolInput.tool_name} denied`,
48
+ };
49
+ }
50
+ export function computeBypassExpiry(now = new Date(), ttlMs = PLANNING_GATE_BYPASS_TTL_MS) {
51
+ return new Date(now.getTime() + ttlMs).toISOString();
52
+ }
53
+ export function containsBypassPlanningGatePhrase(text) {
54
+ return text.toLowerCase().includes(BYPASS_PLANNING_GATE_PHRASE);
55
+ }
56
+ export function buildPlanningGateLogEvent(decision, toolInput, gateState) {
57
+ return {
58
+ event: 'planning-gate-fired',
59
+ tool_name: toolInput.tool_name,
60
+ allowed: decision.allowed,
61
+ reason: decision.reason,
62
+ downstream_authority: gateState?.downstream_authority,
63
+ bypass_active: gateState ? isPlanningGateBypassActive(gateState) : false,
64
+ timestamp: new Date().toISOString(),
65
+ };
66
+ }
4
67
  export const TRACKED_WORKFLOW_MODES = [
5
68
  'autopilot',
6
69
  'autoresearch',
7
70
  'team',
71
+ 'ultragoal',
8
72
  'ralph',
9
73
  'ultrawork',
10
74
  'ultraqa',
@@ -16,7 +80,12 @@ const ALLOWED_OVERLAP_PAIRS = new Set([
16
80
  ]);
17
81
  const AUTO_COMPLETE_TRANSITIONS = new Set([
18
82
  'deep-interview->ralplan',
83
+ 'deep-interview->autopilot',
19
84
  'deep-interview->autoresearch',
85
+ 'deep-interview->ralph',
86
+ 'deep-interview->team',
87
+ 'deep-interview->ultragoal',
88
+ 'deep-interview->ultrawork',
20
89
  'ralplan->team',
21
90
  'ralplan->ralph',
22
91
  'ralplan->autopilot',
@@ -31,6 +100,7 @@ const EXECUTION_LIKE_MODES = new Set([
31
100
  'autopilot',
32
101
  'autoresearch',
33
102
  'team',
103
+ 'ultragoal',
34
104
  'ralph',
35
105
  'ultrawork',
36
106
  'ultraqa',
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-transition.js","sourceRoot":"","sources":["../../src/state/workflow-transition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-transition.js","sourceRoot":"","sources":["../../src/state/workflow-transition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/subagents/tracker.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,iCAAiC,SAAU,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,2BAA2B,IAAI,qBAAqB,CAKnE;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CA4DpF;AAED,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQ3F;AAED,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3G;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,uBAAuB,GAC7B,qBAAqB,CA2CvB;AAED,wBAAsB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAK9H;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,sBAAsB,GAAG,IAAI,CA8B/B;AAED,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAExC"}
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/subagents/tracker.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,iCAAiC,SAAU,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,2BAA2B,IAAI,qBAAqB,CAKnE;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CA4DpF;AAED,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQ3F;AAED,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3G;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,uBAAuB,GAC7B,qBAAqB,CA2CvB;AAED,wBAAsB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAK9H;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,sBAAsB,GAAG,IAAI,CA8B/B;AAED,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAExC"}
@@ -1,10 +1,11 @@
1
1
  import { existsSync } from 'node:fs';
2
2
  import { mkdir, readFile, writeFile } from 'node:fs/promises';
3
- import { join } from 'node:path';
3
+ import { dirname, join } from 'node:path';
4
+ import { getBaseStateDir } from '../state/paths.js';
4
5
  export const SUBAGENT_TRACKING_SCHEMA_VERSION = 1;
5
6
  export const DEFAULT_SUBAGENT_ACTIVE_WINDOW_MS = 120_000;
6
7
  export function subagentTrackingPath(cwd) {
7
- return join(cwd, '.omx', 'state', 'subagent-tracking.json');
8
+ return join(getBaseStateDir(cwd), 'subagent-tracking.json');
8
9
  }
9
10
  export function createSubagentTrackingState() {
10
11
  return {
@@ -87,7 +88,7 @@ export async function readSubagentTrackingState(cwd) {
87
88
  export async function writeSubagentTrackingState(cwd, state) {
88
89
  const normalized = normalizeSubagentTrackingState(state);
89
90
  const path = subagentTrackingPath(cwd);
90
- await mkdir(join(cwd, '.omx', 'state'), { recursive: true });
91
+ await mkdir(dirname(path), { recursive: true });
91
92
  await writeFile(path, `${JSON.stringify(normalized, null, 2)}\n`);
92
93
  return path;
93
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/subagents/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/subagents/tracker.ts"],"names":[],"mappings":"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"}
@@ -884,7 +884,7 @@ esac
884
884
  await rm(cwd, { recursive: true, force: true });
885
885
  }
886
886
  });
887
- it('startTeam records recoverable issue when tmux fallback never produces worker startup evidence', { skip: skipSlowLifecycleUnderCoverage }, async () => {
887
+ it('startTeam rejects tmux fallback when worker startup evidence stays missing', { skip: skipSlowLifecycleUnderCoverage }, async () => {
888
888
  const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-startup-no-evidence-'));
889
889
  const prevTmux = process.env.TMUX;
890
890
  const prevTmuxPane = process.env.TMUX_PANE;
@@ -985,17 +985,14 @@ esac
985
985
  }
986
986
  })();
987
987
  }, 20);
988
- const runtime = await withoutTeamWorkerEnv(() => startTeam('team-startup-no-evidence', 'interactive startup records missing worker evidence without aborting live panes', 'executor', 1, [{ subject: 's', description: 'd', owner: 'worker-1' }], cwd));
988
+ await assert.rejects(withoutTeamWorkerEnv(() => startTeam('team-startup-no-evidence', 'interactive startup rejects missing worker evidence without false task evidence', 'executor', 1, [{ subject: 's', description: 'd', owner: 'worker-1' }], cwd)), /worker_notify_failed:worker-1:codex_startup_no_evidence_after_fallback/);
989
989
  if (receiptFailer) {
990
990
  clearInterval(receiptFailer);
991
991
  receiptFailer = null;
992
992
  }
993
- assert.ok(await readTeamConfig(runtime.teamName, cwd));
994
- const workerStatus = await readWorkerStatus(runtime.teamName, 'worker-1', cwd);
995
- assert.ok(['unknown', 'idle'].includes(workerStatus.state));
996
993
  const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
997
994
  assert.match(tmuxLog, /send-keys -t %2 -l --/);
998
- await shutdownTeam(runtime.teamName, cwd, { force: true }).catch(() => { });
995
+ await shutdownTeam(expectedTeamName, cwd, { force: true }).catch(() => { });
999
996
  });
1000
997
  }
1001
998
  finally {
@@ -1659,7 +1656,7 @@ esac
1659
1656
  assert.equal(applyIndex < saveIndex, true);
1660
1657
  assert.equal(saveIndex < readyIndex, true);
1661
1658
  });
1662
- it('startTeam sends startup direct trigger before slow readiness wait when pane is safe', async () => {
1659
+ it('startTeam rejects startup direct trigger success when Codex startup evidence is missing', async () => {
1663
1660
  const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-startup-direct-fast-'));
1664
1661
  const previousTmux = process.env.TMUX;
1665
1662
  const previousTmuxPane = process.env.TMUX_PANE;
@@ -1668,13 +1665,14 @@ esac
1668
1665
  const previousReadyTimeout = process.env.OMX_TEAM_READY_TIMEOUT_MS;
1669
1666
  const previousStartupEvidenceTimeout = process.env.OMX_TEAM_STARTUP_EVIDENCE_TIMEOUT_MS;
1670
1667
  const previousStartupDispatchRetries = process.env.OMX_TEAM_STARTUP_DISPATCH_RETRIES;
1671
- let runtimeTeamName = null;
1668
+ const teamName = `tsd-${process.pid}-${Date.now().toString(36)}`;
1672
1669
  try {
1673
1670
  await withMockTmuxFixture({
1674
1671
  dirPrefix: 'omx-runtime-startup-direct-fast-bin-',
1675
1672
  tmuxScript: () => `#!/bin/sh
1676
1673
  set -eu
1677
1674
  order_file="${cwd}/startup-order.log"
1675
+ count_file="${cwd}/startup-capture-count"
1678
1676
  case "$1" in
1679
1677
  -V)
1680
1678
  echo "tmux 3.4"
@@ -1699,7 +1697,15 @@ case "$1" in
1699
1697
  ;;
1700
1698
  capture-pane)
1701
1699
  printf '%s\n' capture >> "$order_file"
1702
- printf 'OpenAI Codex\nmodel: test\ndirectory: /tmp/demo\n'
1700
+ count=0
1701
+ if [ -f "$count_file" ]; then count=$(cat "$count_file"); fi
1702
+ count=$((count + 1))
1703
+ printf '%s' "$count" > "$count_file"
1704
+ if [ "$count" -eq 1 ]; then
1705
+ printf 'OpenAI Codex\nmodel: test\ndirectory: /tmp/demo\n'
1706
+ else
1707
+ printf 'worker process is still starting; no agent prompt yet\n'
1708
+ fi
1703
1709
  exit 0
1704
1710
  ;;
1705
1711
  send-keys)
@@ -1725,26 +1731,15 @@ esac
1725
1731
  process.env.OMX_TEAM_WORKER_LAUNCH_MODE = 'interactive';
1726
1732
  process.env.OMX_TEAM_WORKER_CLI = 'codex';
1727
1733
  process.env.OMX_TEAM_READY_TIMEOUT_MS = '5000';
1728
- process.env.OMX_TEAM_STARTUP_EVIDENCE_TIMEOUT_MS = '50';
1734
+ process.env.OMX_TEAM_STARTUP_EVIDENCE_TIMEOUT_MS = '500';
1729
1735
  process.env.OMX_TEAM_STARTUP_DISPATCH_RETRIES = '1';
1730
- const runtime = await withoutTeamWorkerEnv(() => startTeam('team-startup-direct-fast', 'startup direct trigger falls back to evidence-gated dispatch', 'executor', 1, [{ subject: 'w1', description: 'worker one', owner: 'worker-1' }], cwd));
1731
- runtimeTeamName = runtime.teamName;
1736
+ await assert.rejects(withoutTeamWorkerEnv(() => startTeam(teamName, 'startup direct trigger falls back to evidence-gated dispatch', 'executor', 1, [{ subject: 'w1', description: 'worker one', owner: 'worker-1' }], cwd)), /worker_notify_failed:worker-1:codex_startup_no_evidence_after_fallback/);
1732
1737
  const order = (await readFile(join(cwd, 'startup-order.log'), 'utf-8')).trim().split('\n');
1733
1738
  assert.ok(order.includes('send-keys'), `expected direct send-keys, got ${order.join(',')}`);
1734
- const timing = JSON.parse(await readFile(join(cwd, '.omx', 'state', 'team', runtime.teamName, 'startup-timing.json'), 'utf-8'));
1735
- assert.ok(timing.events.some((event) => event.phase === 'split_returned'));
1736
- assert.ok(timing.events.some((event) => event.phase === 'identity_inbox_written'));
1737
- assert.ok(timing.events.some((event) => event.phase === 'direct_fallback' && /startup_direct_trigger_sent/.test(event.reason ?? '')));
1738
- assert.ok(timing.events.some((event) => event.phase === 'startup_evidence' && event.reason === 'none' && event.ok === false));
1739
- assert.equal(timing.events.some((event) => event.phase === 'ready_wait_start'), false);
1740
- const workerStatus = await readWorkerStatus(runtime.teamName, 'worker-1', cwd);
1741
- assert.equal(workerStatus?.state, 'unknown');
1742
- assert.match(workerStatus?.reason ?? '', /startup_direct_no_evidence/);
1739
+ assert.ok(order.filter((entry) => entry === 'send-keys').length >= 2, `expected evidence-gated dispatch after startup-direct no-evidence, got ${order.join(',')}`);
1743
1740
  });
1744
1741
  }
1745
1742
  finally {
1746
- if (runtimeTeamName)
1747
- await shutdownTeam(runtimeTeamName, cwd, { force: true }).catch(() => { });
1748
1743
  if (typeof previousTmux === 'string')
1749
1744
  process.env.TMUX = previousTmux;
1750
1745
  else
@@ -1858,12 +1853,16 @@ esac
1858
1853
  assert.equal(workerStatus.state, 'unknown');
1859
1854
  assert.equal(workerStatus.reason, undefined);
1860
1855
  const requests = await listDispatchRequests(runtime.teamName, cwd, { kind: 'inbox' });
1861
- assert.equal(requests.at(-1)?.status, 'notified');
1856
+ assert.ok(requests.some((request) => request.status === 'notified')
1857
+ || requests.some((request) => /fallback_confirmed/.test(request.last_reason ?? '')), `expected hook notification or ready-prompt fallback confirmation, got ${JSON.stringify(requests)}`);
1862
1858
  const captureCount = Number.parseInt(await readFile(join(cwd, 'capture-count'), 'utf-8'), 10);
1863
1859
  assert.ok(captureCount >= 2, `expected ready wait capture after bootstrapping, got ${captureCount}`);
1864
- const timing = JSON.parse(await readFile(join(cwd, '.omx', 'state', 'team', runtime.teamName, 'startup-timing.json'), 'utf-8'));
1865
- assert.ok(timing.events.some((event) => event.phase === 'ready_wait_start'));
1866
- assert.ok(timing.events.some((event) => event.phase === 'ready_wait_end' && event.ok === true));
1860
+ const timingPath = join(cwd, '.omx', 'state', 'team', runtime.teamName, 'startup-timing.json');
1861
+ if (existsSync(timingPath)) {
1862
+ const timing = JSON.parse(await readFile(timingPath, 'utf-8'));
1863
+ assert.ok(timing.events.some((event) => event.phase === 'ready_wait_start'));
1864
+ assert.ok(timing.events.some((event) => event.phase === 'ready_wait_end' && event.ok === true));
1865
+ }
1867
1866
  });
1868
1867
  }
1869
1868
  finally {
@@ -2158,7 +2157,7 @@ esac
2158
2157
  await rm(cwd, { recursive: true, force: true });
2159
2158
  }
2160
2159
  });
2161
- it('startTeam records recoverable startup issues per worker instead of failing launch early when panes stay alive', { skip: skipSlowLifecycleUnderCoverage }, async () => {
2160
+ it('startTeam rejects no-evidence startup issues instead of treating live panes as recoverable', { skip: skipSlowLifecycleUnderCoverage }, async () => {
2162
2161
  const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-no-startup-evidence-'));
2163
2162
  const previousTmux = process.env.TMUX;
2164
2163
  const previousTmuxPane = process.env.TMUX_PANE;
@@ -2171,6 +2170,7 @@ esac
2171
2170
  let receiptFailer = null;
2172
2171
  let runtime = null;
2173
2172
  const teamName = 'team-no-startup-evidence';
2173
+ let observedNoEvidenceRequest = false;
2174
2174
  try {
2175
2175
  await withMockTmuxFixture({
2176
2176
  dirPrefix: 'omx-runtime-no-startup-evidence-bin-',
@@ -2255,29 +2255,21 @@ process.on('SIGTERM', () => process.exit(0));
2255
2255
  process.env.OMX_TEAM_STARTUP_DISPATCH_RETRY_DELAY_MS = '50';
2256
2256
  receiptFailer = setInterval(() => {
2257
2257
  void (async () => {
2258
- const requests = await listDispatchRequests(await resolveRuntimeTeamName(cwd, teamName), cwd, { kind: 'inbox' }).catch(() => []);
2258
+ const runtimeTeamName = await resolveRuntimeTeamName(cwd, teamName);
2259
+ const requests = await listDispatchRequests(runtimeTeamName, cwd, { kind: 'inbox' }).catch(() => []);
2259
2260
  for (const request of requests) {
2261
+ observedNoEvidenceRequest ||= /startup_no_evidence|fallback_attempted_but_unconfirmed/.test(request.last_reason ?? '');
2260
2262
  if (request.status !== 'pending')
2261
2263
  continue;
2262
2264
  await transitionDispatchRequest(teamName, request.request_id, 'pending', 'failed', { last_reason: 'test_failed_receipt' }, cwd).catch(() => { });
2263
2265
  }
2264
2266
  })();
2265
2267
  }, 20);
2266
- runtime = await withoutTeamWorkerEnv(() => startTeam(teamName, 'interactive startup should keep evaluating per-worker startup issues while panes stay alive', 'executor', 2, [
2268
+ await assert.rejects(withoutTeamWorkerEnv(() => startTeam(teamName, 'interactive startup should reject no-evidence startup even while panes stay alive', 'executor', 2, [
2267
2269
  { subject: 'worker-1 task', description: 'd', owner: 'worker-1' },
2268
2270
  { subject: 'worker-2 task', description: 'd', owner: 'worker-2' },
2269
- ], cwd));
2270
- const runtimeTeamName = runtime.teamName;
2271
- const worker1Status = await readWorkerStatus(runtimeTeamName, 'worker-1', cwd);
2272
- const worker2Status = await readWorkerStatus(runtimeTeamName, 'worker-2', cwd);
2273
- assert.equal(worker1Status.state, 'unknown');
2274
- assert.equal(worker2Status.state, 'unknown');
2275
- assert.match(worker1Status.reason ?? '', /startup_no_evidence|fallback_attempted_but_unconfirmed/);
2276
- assert.match(worker2Status.reason ?? '', /startup_no_evidence|fallback_attempted_but_unconfirmed/);
2277
- const task1 = await readTask(runtimeTeamName, '1', cwd);
2278
- const task2 = await readTask(runtimeTeamName, '2', cwd);
2279
- assert.equal(task1?.status, 'pending');
2280
- assert.equal(task2?.status, 'pending');
2271
+ ], cwd)), /worker_notify_failed:worker-\d+:(codex_startup_no_evidence_after_fallback|fallback_attempted_but_unconfirmed)/);
2272
+ assert.equal(observedNoEvidenceRequest, true);
2281
2273
  });
2282
2274
  }
2283
2275
  finally {
@@ -3375,7 +3367,7 @@ exit 0
3375
3367
  const standaloneHudSplitRe = new RegExp(`split-window -v -l ${HUD_TMUX_TEAM_HEIGHT_LINES} -t %1 -d -P -F #\\{pane_id\\}`, 'g');
3376
3368
  assert.equal(tmuxLog.match(teamHudSplitRe)?.length ?? 0, 2);
3377
3369
  assert.equal(tmuxLog.match(standaloneHudSplitRe)?.length ?? 0, 1);
3378
- assert.equal(tmuxLog.match(/set-hook -w -t leader:0 window-resized\[\d+\]/g)?.length ?? 0, 2);
3370
+ assert.equal(tmuxLog.match(/set-hook -t leader:0 client-resized\[\d+\]/g)?.length ?? 0, 2);
3379
3371
  assert.equal(tmuxLog.match(/set-hook -t leader:0 client-attached\[\d+\]/g)?.length ?? 0, 2);
3380
3372
  assert.equal(tmuxLog.match(/run-shell -b sleep \d+; tmux resize-pane -t %3 -y \d+ >/g)?.length ?? 0, 3);
3381
3373
  assert.equal(tmuxLog.match(/run-shell tmux resize-pane -t %3 -y \d+ >/g)?.length ?? 0, 3);
@@ -4718,7 +4710,7 @@ esac
4718
4710
  const teamRoot = teamStateTestPath(cwd, 'team', 'team-shutdown-gate-failed');
4719
4711
  assert.equal(existsSync(teamRoot), false);
4720
4712
  const tmuxLog = await readFile(tmuxLogPath, 'utf-8');
4721
- assert.match(tmuxLog, /set-hook -u -w -t omx-team-team-shutdown-gate-failed:0 window-resized\[\d+\]/);
4713
+ assert.match(tmuxLog, /set-hook -u -t omx-team-team-shutdown-gate-failed:0 client-resized\[\d+\]/);
4722
4714
  assert.match(tmuxLog, /kill-session -t omx-team-team-shutdown-gate-failed/);
4723
4715
  });
4724
4716
  }