oh-my-codex-pennix 0.18.13

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 (3061) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/Cargo.lock +185 -0
  3. package/Cargo.toml +24 -0
  4. package/README.md +445 -0
  5. package/crates/omx-api/Cargo.toml +19 -0
  6. package/crates/omx-api/src/lib.rs +2997 -0
  7. package/crates/omx-api/src/main.rs +10 -0
  8. package/crates/omx-api/tests/cli.rs +558 -0
  9. package/crates/omx-explore/Cargo.toml +14 -0
  10. package/crates/omx-explore/src/main.rs +2972 -0
  11. package/crates/omx-mux/Cargo.toml +11 -0
  12. package/crates/omx-mux/src/lib.rs +91 -0
  13. package/crates/omx-mux/src/tmux.rs +282 -0
  14. package/crates/omx-mux/src/types.rs +306 -0
  15. package/crates/omx-runtime/Cargo.toml +13 -0
  16. package/crates/omx-runtime/src/main.rs +125 -0
  17. package/crates/omx-runtime/tests/execution.rs +212 -0
  18. package/crates/omx-runtime-core/Cargo.toml +13 -0
  19. package/crates/omx-runtime-core/src/authority.rs +239 -0
  20. package/crates/omx-runtime-core/src/dispatch.rs +330 -0
  21. package/crates/omx-runtime-core/src/engine.rs +853 -0
  22. package/crates/omx-runtime-core/src/lib.rs +653 -0
  23. package/crates/omx-runtime-core/src/mailbox.rs +261 -0
  24. package/crates/omx-runtime-core/src/replay.rs +104 -0
  25. package/crates/omx-sparkshell/Cargo.lock +7 -0
  26. package/crates/omx-sparkshell/Cargo.toml +14 -0
  27. package/crates/omx-sparkshell/src/codex_bridge.rs +768 -0
  28. package/crates/omx-sparkshell/src/error.rs +45 -0
  29. package/crates/omx-sparkshell/src/exec.rs +241 -0
  30. package/crates/omx-sparkshell/src/main.rs +1133 -0
  31. package/crates/omx-sparkshell/src/prompt.rs +364 -0
  32. package/crates/omx-sparkshell/src/redaction.rs +241 -0
  33. package/crates/omx-sparkshell/src/registry/c_cpp.rs +9 -0
  34. package/crates/omx-sparkshell/src/registry/csharp.rs +10 -0
  35. package/crates/omx-sparkshell/src/registry/generic_shell.rs +11 -0
  36. package/crates/omx-sparkshell/src/registry/git.rs +10 -0
  37. package/crates/omx-sparkshell/src/registry/go.rs +9 -0
  38. package/crates/omx-sparkshell/src/registry/java_kotlin.rs +9 -0
  39. package/crates/omx-sparkshell/src/registry/mod.rs +85 -0
  40. package/crates/omx-sparkshell/src/registry/node_js.rs +9 -0
  41. package/crates/omx-sparkshell/src/registry/python.rs +9 -0
  42. package/crates/omx-sparkshell/src/registry/ruby.rs +9 -0
  43. package/crates/omx-sparkshell/src/registry/rust.rs +9 -0
  44. package/crates/omx-sparkshell/src/registry/swift.rs +10 -0
  45. package/crates/omx-sparkshell/src/test_support.rs +10 -0
  46. package/crates/omx-sparkshell/src/threshold.rs +75 -0
  47. package/crates/omx-sparkshell/tests/execution.rs +986 -0
  48. package/crates/omx-sparkshell/tests/registry.rs +99 -0
  49. package/dist/adapt/__tests__/foundation.test.d.ts +2 -0
  50. package/dist/adapt/__tests__/foundation.test.d.ts.map +1 -0
  51. package/dist/adapt/__tests__/foundation.test.js +171 -0
  52. package/dist/adapt/__tests__/foundation.test.js.map +1 -0
  53. package/dist/adapt/__tests__/hermes.test.d.ts +2 -0
  54. package/dist/adapt/__tests__/hermes.test.d.ts.map +1 -0
  55. package/dist/adapt/__tests__/hermes.test.js +137 -0
  56. package/dist/adapt/__tests__/hermes.test.js.map +1 -0
  57. package/dist/adapt/contracts.d.ts +157 -0
  58. package/dist/adapt/contracts.d.ts.map +1 -0
  59. package/dist/adapt/contracts.js +10 -0
  60. package/dist/adapt/contracts.js.map +1 -0
  61. package/dist/adapt/hermes.d.ts +83 -0
  62. package/dist/adapt/hermes.d.ts.map +1 -0
  63. package/dist/adapt/hermes.js +371 -0
  64. package/dist/adapt/hermes.js.map +1 -0
  65. package/dist/adapt/index.d.ts +14 -0
  66. package/dist/adapt/index.d.ts.map +1 -0
  67. package/dist/adapt/index.js +293 -0
  68. package/dist/adapt/index.js.map +1 -0
  69. package/dist/adapt/openclaw.d.ts +7 -0
  70. package/dist/adapt/openclaw.d.ts.map +1 -0
  71. package/dist/adapt/openclaw.js +299 -0
  72. package/dist/adapt/openclaw.js.map +1 -0
  73. package/dist/adapt/paths.d.ts +3 -0
  74. package/dist/adapt/paths.d.ts.map +1 -0
  75. package/dist/adapt/paths.js +15 -0
  76. package/dist/adapt/paths.js.map +1 -0
  77. package/dist/adapt/registry.d.ts +4 -0
  78. package/dist/adapt/registry.d.ts.map +1 -0
  79. package/dist/adapt/registry.js +48 -0
  80. package/dist/adapt/registry.js.map +1 -0
  81. package/dist/agents/__tests__/definitions.test.d.ts +2 -0
  82. package/dist/agents/__tests__/definitions.test.d.ts.map +1 -0
  83. package/dist/agents/__tests__/definitions.test.js +96 -0
  84. package/dist/agents/__tests__/definitions.test.js.map +1 -0
  85. package/dist/agents/__tests__/native-config.test.d.ts +2 -0
  86. package/dist/agents/__tests__/native-config.test.d.ts.map +1 -0
  87. package/dist/agents/__tests__/native-config.test.js +398 -0
  88. package/dist/agents/__tests__/native-config.test.js.map +1 -0
  89. package/dist/agents/definitions.d.ts +35 -0
  90. package/dist/agents/definitions.d.ts.map +1 -0
  91. package/dist/agents/definitions.js +371 -0
  92. package/dist/agents/definitions.js.map +1 -0
  93. package/dist/agents/native-config.d.ts +56 -0
  94. package/dist/agents/native-config.d.ts.map +1 -0
  95. package/dist/agents/native-config.js +285 -0
  96. package/dist/agents/native-config.js.map +1 -0
  97. package/dist/agents/policy.d.ts +10 -0
  98. package/dist/agents/policy.d.ts.map +1 -0
  99. package/dist/agents/policy.js +61 -0
  100. package/dist/agents/policy.js.map +1 -0
  101. package/dist/auth/__tests__/config-sessions.test.d.ts +2 -0
  102. package/dist/auth/__tests__/config-sessions.test.d.ts.map +1 -0
  103. package/dist/auth/__tests__/config-sessions.test.js +48 -0
  104. package/dist/auth/__tests__/config-sessions.test.js.map +1 -0
  105. package/dist/auth/__tests__/quota-rotation.test.d.ts +2 -0
  106. package/dist/auth/__tests__/quota-rotation.test.d.ts.map +1 -0
  107. package/dist/auth/__tests__/quota-rotation.test.js +33 -0
  108. package/dist/auth/__tests__/quota-rotation.test.js.map +1 -0
  109. package/dist/auth/__tests__/redact.test.d.ts +2 -0
  110. package/dist/auth/__tests__/redact.test.d.ts.map +1 -0
  111. package/dist/auth/__tests__/redact.test.js +20 -0
  112. package/dist/auth/__tests__/redact.test.js.map +1 -0
  113. package/dist/auth/__tests__/storage.test.d.ts +2 -0
  114. package/dist/auth/__tests__/storage.test.d.ts.map +1 -0
  115. package/dist/auth/__tests__/storage.test.js +108 -0
  116. package/dist/auth/__tests__/storage.test.js.map +1 -0
  117. package/dist/auth/config.d.ts +9 -0
  118. package/dist/auth/config.d.ts.map +1 -0
  119. package/dist/auth/config.js +77 -0
  120. package/dist/auth/config.js.map +1 -0
  121. package/dist/auth/hotswap.d.ts +36 -0
  122. package/dist/auth/hotswap.d.ts.map +1 -0
  123. package/dist/auth/hotswap.js +159 -0
  124. package/dist/auth/hotswap.js.map +1 -0
  125. package/dist/auth/index.d.ts +8 -0
  126. package/dist/auth/index.d.ts.map +1 -0
  127. package/dist/auth/index.js +8 -0
  128. package/dist/auth/index.js.map +1 -0
  129. package/dist/auth/paths.d.ts +12 -0
  130. package/dist/auth/paths.d.ts.map +1 -0
  131. package/dist/auth/paths.js +78 -0
  132. package/dist/auth/paths.js.map +1 -0
  133. package/dist/auth/quota-detector.d.ts +10 -0
  134. package/dist/auth/quota-detector.d.ts.map +1 -0
  135. package/dist/auth/quota-detector.js +40 -0
  136. package/dist/auth/quota-detector.js.map +1 -0
  137. package/dist/auth/redact.d.ts +2 -0
  138. package/dist/auth/redact.d.ts.map +1 -0
  139. package/dist/auth/redact.js +26 -0
  140. package/dist/auth/redact.js.map +1 -0
  141. package/dist/auth/rotation.d.ts +9 -0
  142. package/dist/auth/rotation.d.ts.map +1 -0
  143. package/dist/auth/rotation.js +26 -0
  144. package/dist/auth/rotation.js.map +1 -0
  145. package/dist/auth/sessions.d.ts +15 -0
  146. package/dist/auth/sessions.d.ts.map +1 -0
  147. package/dist/auth/sessions.js +62 -0
  148. package/dist/auth/sessions.js.map +1 -0
  149. package/dist/auth/storage.d.ts +27 -0
  150. package/dist/auth/storage.d.ts.map +1 -0
  151. package/dist/auth/storage.js +111 -0
  152. package/dist/auth/storage.js.map +1 -0
  153. package/dist/autopilot/__tests__/deep-interview-gate.test.d.ts +2 -0
  154. package/dist/autopilot/__tests__/deep-interview-gate.test.d.ts.map +1 -0
  155. package/dist/autopilot/__tests__/deep-interview-gate.test.js +215 -0
  156. package/dist/autopilot/__tests__/deep-interview-gate.test.js.map +1 -0
  157. package/dist/autopilot/__tests__/fsm.test.d.ts +2 -0
  158. package/dist/autopilot/__tests__/fsm.test.d.ts.map +1 -0
  159. package/dist/autopilot/__tests__/fsm.test.js +78 -0
  160. package/dist/autopilot/__tests__/fsm.test.js.map +1 -0
  161. package/dist/autopilot/__tests__/ralplan-gate.test.d.ts +2 -0
  162. package/dist/autopilot/__tests__/ralplan-gate.test.d.ts.map +1 -0
  163. package/dist/autopilot/__tests__/ralplan-gate.test.js +274 -0
  164. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -0
  165. package/dist/autopilot/completion-gate.d.ts +10 -0
  166. package/dist/autopilot/completion-gate.d.ts.map +1 -0
  167. package/dist/autopilot/completion-gate.js +154 -0
  168. package/dist/autopilot/completion-gate.js.map +1 -0
  169. package/dist/autopilot/deep-interview-gate.d.ts +18 -0
  170. package/dist/autopilot/deep-interview-gate.d.ts.map +1 -0
  171. package/dist/autopilot/deep-interview-gate.js +396 -0
  172. package/dist/autopilot/deep-interview-gate.js.map +1 -0
  173. package/dist/autopilot/fsm.d.ts +13 -0
  174. package/dist/autopilot/fsm.d.ts.map +1 -0
  175. package/dist/autopilot/fsm.js +70 -0
  176. package/dist/autopilot/fsm.js.map +1 -0
  177. package/dist/autopilot/ralplan-gate.d.ts +17 -0
  178. package/dist/autopilot/ralplan-gate.d.ts.map +1 -0
  179. package/dist/autopilot/ralplan-gate.js +68 -0
  180. package/dist/autopilot/ralplan-gate.js.map +1 -0
  181. package/dist/autoresearch/__tests__/contracts.test.d.ts +2 -0
  182. package/dist/autoresearch/__tests__/contracts.test.d.ts.map +1 -0
  183. package/dist/autoresearch/__tests__/contracts.test.js +127 -0
  184. package/dist/autoresearch/__tests__/contracts.test.js.map +1 -0
  185. package/dist/autoresearch/__tests__/runtime-parity-extra.test.d.ts +2 -0
  186. package/dist/autoresearch/__tests__/runtime-parity-extra.test.d.ts.map +1 -0
  187. package/dist/autoresearch/__tests__/runtime-parity-extra.test.js +349 -0
  188. package/dist/autoresearch/__tests__/runtime-parity-extra.test.js.map +1 -0
  189. package/dist/autoresearch/__tests__/runtime.test.d.ts +2 -0
  190. package/dist/autoresearch/__tests__/runtime.test.d.ts.map +1 -0
  191. package/dist/autoresearch/__tests__/runtime.test.js +211 -0
  192. package/dist/autoresearch/__tests__/runtime.test.js.map +1 -0
  193. package/dist/autoresearch/__tests__/skill-validation.test.d.ts +2 -0
  194. package/dist/autoresearch/__tests__/skill-validation.test.d.ts.map +1 -0
  195. package/dist/autoresearch/__tests__/skill-validation.test.js +91 -0
  196. package/dist/autoresearch/__tests__/skill-validation.test.js.map +1 -0
  197. package/dist/autoresearch/contracts.d.ts +31 -0
  198. package/dist/autoresearch/contracts.d.ts.map +1 -0
  199. package/dist/autoresearch/contracts.js +197 -0
  200. package/dist/autoresearch/contracts.js.map +1 -0
  201. package/dist/autoresearch/goal.d.ts +90 -0
  202. package/dist/autoresearch/goal.d.ts.map +1 -0
  203. package/dist/autoresearch/goal.js +237 -0
  204. package/dist/autoresearch/goal.js.map +1 -0
  205. package/dist/autoresearch/runtime.d.ts +132 -0
  206. package/dist/autoresearch/runtime.d.ts.map +1 -0
  207. package/dist/autoresearch/runtime.js +1022 -0
  208. package/dist/autoresearch/runtime.js.map +1 -0
  209. package/dist/autoresearch/skill-validation.d.ts +14 -0
  210. package/dist/autoresearch/skill-validation.d.ts.map +1 -0
  211. package/dist/autoresearch/skill-validation.js +172 -0
  212. package/dist/autoresearch/skill-validation.js.map +1 -0
  213. package/dist/catalog/__tests__/generator.test.d.ts +2 -0
  214. package/dist/catalog/__tests__/generator.test.d.ts.map +1 -0
  215. package/dist/catalog/__tests__/generator.test.js +60 -0
  216. package/dist/catalog/__tests__/generator.test.js.map +1 -0
  217. package/dist/catalog/__tests__/plugin-bundle-ssot.test.d.ts +2 -0
  218. package/dist/catalog/__tests__/plugin-bundle-ssot.test.d.ts.map +1 -0
  219. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js +108 -0
  220. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js.map +1 -0
  221. package/dist/catalog/__tests__/schema.test.d.ts +2 -0
  222. package/dist/catalog/__tests__/schema.test.d.ts.map +1 -0
  223. package/dist/catalog/__tests__/schema.test.js +84 -0
  224. package/dist/catalog/__tests__/schema.test.js.map +1 -0
  225. package/dist/catalog/installable.d.ts +5 -0
  226. package/dist/catalog/installable.d.ts.map +1 -0
  227. package/dist/catalog/installable.js +13 -0
  228. package/dist/catalog/installable.js.map +1 -0
  229. package/dist/catalog/reader.d.ts +19 -0
  230. package/dist/catalog/reader.d.ts.map +1 -0
  231. package/dist/catalog/reader.js +63 -0
  232. package/dist/catalog/reader.js.map +1 -0
  233. package/dist/catalog/schema.d.ts +32 -0
  234. package/dist/catalog/schema.d.ts.map +1 -0
  235. package/dist/catalog/schema.js +107 -0
  236. package/dist/catalog/schema.js.map +1 -0
  237. package/dist/catalog/skill-mirror.d.ts +20 -0
  238. package/dist/catalog/skill-mirror.d.ts.map +1 -0
  239. package/dist/catalog/skill-mirror.js +104 -0
  240. package/dist/catalog/skill-mirror.js.map +1 -0
  241. package/dist/cli/__tests__/adapt-help.test.d.ts +2 -0
  242. package/dist/cli/__tests__/adapt-help.test.d.ts.map +1 -0
  243. package/dist/cli/__tests__/adapt-help.test.js +39 -0
  244. package/dist/cli/__tests__/adapt-help.test.js.map +1 -0
  245. package/dist/cli/__tests__/adapt.test.d.ts +2 -0
  246. package/dist/cli/__tests__/adapt.test.d.ts.map +1 -0
  247. package/dist/cli/__tests__/adapt.test.js +62 -0
  248. package/dist/cli/__tests__/adapt.test.js.map +1 -0
  249. package/dist/cli/__tests__/agents-init.test.d.ts +2 -0
  250. package/dist/cli/__tests__/agents-init.test.d.ts.map +1 -0
  251. package/dist/cli/__tests__/agents-init.test.js +184 -0
  252. package/dist/cli/__tests__/agents-init.test.js.map +1 -0
  253. package/dist/cli/__tests__/agents.test.d.ts +2 -0
  254. package/dist/cli/__tests__/agents.test.d.ts.map +1 -0
  255. package/dist/cli/__tests__/agents.test.js +137 -0
  256. package/dist/cli/__tests__/agents.test.js.map +1 -0
  257. package/dist/cli/__tests__/api.test.d.ts +2 -0
  258. package/dist/cli/__tests__/api.test.d.ts.map +1 -0
  259. package/dist/cli/__tests__/api.test.js +175 -0
  260. package/dist/cli/__tests__/api.test.js.map +1 -0
  261. package/dist/cli/__tests__/ask.test.d.ts +2 -0
  262. package/dist/cli/__tests__/ask.test.d.ts.map +1 -0
  263. package/dist/cli/__tests__/ask.test.js +332 -0
  264. package/dist/cli/__tests__/ask.test.js.map +1 -0
  265. package/dist/cli/__tests__/auth.test.d.ts +2 -0
  266. package/dist/cli/__tests__/auth.test.d.ts.map +1 -0
  267. package/dist/cli/__tests__/auth.test.js +203 -0
  268. package/dist/cli/__tests__/auth.test.js.map +1 -0
  269. package/dist/cli/__tests__/autoresearch-goal.test.d.ts +2 -0
  270. package/dist/cli/__tests__/autoresearch-goal.test.d.ts.map +1 -0
  271. package/dist/cli/__tests__/autoresearch-goal.test.js +207 -0
  272. package/dist/cli/__tests__/autoresearch-goal.test.js.map +1 -0
  273. package/dist/cli/__tests__/autoresearch-guided.test.d.ts +2 -0
  274. package/dist/cli/__tests__/autoresearch-guided.test.d.ts.map +1 -0
  275. package/dist/cli/__tests__/autoresearch-guided.test.js +365 -0
  276. package/dist/cli/__tests__/autoresearch-guided.test.js.map +1 -0
  277. package/dist/cli/__tests__/autoresearch.test.d.ts +2 -0
  278. package/dist/cli/__tests__/autoresearch.test.d.ts.map +1 -0
  279. package/dist/cli/__tests__/autoresearch.test.js +155 -0
  280. package/dist/cli/__tests__/autoresearch.test.js.map +1 -0
  281. package/dist/cli/__tests__/catalog-contract.test.d.ts +2 -0
  282. package/dist/cli/__tests__/catalog-contract.test.d.ts.map +1 -0
  283. package/dist/cli/__tests__/catalog-contract.test.js +18 -0
  284. package/dist/cli/__tests__/catalog-contract.test.js.map +1 -0
  285. package/dist/cli/__tests__/cleanup.test.d.ts +2 -0
  286. package/dist/cli/__tests__/cleanup.test.d.ts.map +1 -0
  287. package/dist/cli/__tests__/cleanup.test.js +527 -0
  288. package/dist/cli/__tests__/cleanup.test.js.map +1 -0
  289. package/dist/cli/__tests__/codex-feature-probe.test.d.ts +2 -0
  290. package/dist/cli/__tests__/codex-feature-probe.test.d.ts.map +1 -0
  291. package/dist/cli/__tests__/codex-feature-probe.test.js +46 -0
  292. package/dist/cli/__tests__/codex-feature-probe.test.js.map +1 -0
  293. package/dist/cli/__tests__/codex-plugin-layout.test.d.ts +2 -0
  294. package/dist/cli/__tests__/codex-plugin-layout.test.d.ts.map +1 -0
  295. package/dist/cli/__tests__/codex-plugin-layout.test.js +778 -0
  296. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -0
  297. package/dist/cli/__tests__/doctor-context-window-warning.test.d.ts +2 -0
  298. package/dist/cli/__tests__/doctor-context-window-warning.test.d.ts.map +1 -0
  299. package/dist/cli/__tests__/doctor-context-window-warning.test.js +122 -0
  300. package/dist/cli/__tests__/doctor-context-window-warning.test.js.map +1 -0
  301. package/dist/cli/__tests__/doctor-invalid-config.test.d.ts +2 -0
  302. package/dist/cli/__tests__/doctor-invalid-config.test.d.ts.map +1 -0
  303. package/dist/cli/__tests__/doctor-invalid-config.test.js +52 -0
  304. package/dist/cli/__tests__/doctor-invalid-config.test.js.map +1 -0
  305. package/dist/cli/__tests__/doctor-spark-routing.test.d.ts +2 -0
  306. package/dist/cli/__tests__/doctor-spark-routing.test.d.ts.map +1 -0
  307. package/dist/cli/__tests__/doctor-spark-routing.test.js +79 -0
  308. package/dist/cli/__tests__/doctor-spark-routing.test.js.map +1 -0
  309. package/dist/cli/__tests__/doctor-team.test.d.ts +2 -0
  310. package/dist/cli/__tests__/doctor-team.test.d.ts.map +1 -0
  311. package/dist/cli/__tests__/doctor-team.test.js +299 -0
  312. package/dist/cli/__tests__/doctor-team.test.js.map +1 -0
  313. package/dist/cli/__tests__/doctor-warning-copy.test.d.ts +2 -0
  314. package/dist/cli/__tests__/doctor-warning-copy.test.d.ts.map +1 -0
  315. package/dist/cli/__tests__/doctor-warning-copy.test.js +1312 -0
  316. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -0
  317. package/dist/cli/__tests__/error-handling-warnings.test.d.ts +2 -0
  318. package/dist/cli/__tests__/error-handling-warnings.test.d.ts.map +1 -0
  319. package/dist/cli/__tests__/error-handling-warnings.test.js +52 -0
  320. package/dist/cli/__tests__/error-handling-warnings.test.js.map +1 -0
  321. package/dist/cli/__tests__/exec.test.d.ts +2 -0
  322. package/dist/cli/__tests__/exec.test.d.ts.map +1 -0
  323. package/dist/cli/__tests__/exec.test.js +213 -0
  324. package/dist/cli/__tests__/exec.test.js.map +1 -0
  325. package/dist/cli/__tests__/explore-windows-diagnostics.test.d.ts +2 -0
  326. package/dist/cli/__tests__/explore-windows-diagnostics.test.d.ts.map +1 -0
  327. package/dist/cli/__tests__/explore-windows-diagnostics.test.js +17 -0
  328. package/dist/cli/__tests__/explore-windows-diagnostics.test.js.map +1 -0
  329. package/dist/cli/__tests__/explore.test.d.ts +2 -0
  330. package/dist/cli/__tests__/explore.test.d.ts.map +1 -0
  331. package/dist/cli/__tests__/explore.test.js +104 -0
  332. package/dist/cli/__tests__/explore.test.js.map +1 -0
  333. package/dist/cli/__tests__/hooks.test.d.ts +2 -0
  334. package/dist/cli/__tests__/hooks.test.d.ts.map +1 -0
  335. package/dist/cli/__tests__/hooks.test.js +55 -0
  336. package/dist/cli/__tests__/hooks.test.js.map +1 -0
  337. package/dist/cli/__tests__/imagegen-continuation.test.d.ts +2 -0
  338. package/dist/cli/__tests__/imagegen-continuation.test.d.ts.map +1 -0
  339. package/dist/cli/__tests__/imagegen-continuation.test.js +135 -0
  340. package/dist/cli/__tests__/imagegen-continuation.test.js.map +1 -0
  341. package/dist/cli/__tests__/index.test.d.ts +2 -0
  342. package/dist/cli/__tests__/index.test.d.ts.map +1 -0
  343. package/dist/cli/__tests__/index.test.js +3619 -0
  344. package/dist/cli/__tests__/index.test.js.map +1 -0
  345. package/dist/cli/__tests__/install-docs-contract.test.d.ts +2 -0
  346. package/dist/cli/__tests__/install-docs-contract.test.d.ts.map +1 -0
  347. package/dist/cli/__tests__/install-docs-contract.test.js +55 -0
  348. package/dist/cli/__tests__/install-docs-contract.test.js.map +1 -0
  349. package/dist/cli/__tests__/launch-fallback.test.d.ts +2 -0
  350. package/dist/cli/__tests__/launch-fallback.test.d.ts.map +1 -0
  351. package/dist/cli/__tests__/launch-fallback.test.js +1285 -0
  352. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -0
  353. package/dist/cli/__tests__/lifecycle-notifications.test.d.ts +2 -0
  354. package/dist/cli/__tests__/lifecycle-notifications.test.d.ts.map +1 -0
  355. package/dist/cli/__tests__/lifecycle-notifications.test.js +48 -0
  356. package/dist/cli/__tests__/lifecycle-notifications.test.js.map +1 -0
  357. package/dist/cli/__tests__/list.test.d.ts +2 -0
  358. package/dist/cli/__tests__/list.test.d.ts.map +1 -0
  359. package/dist/cli/__tests__/list.test.js +38 -0
  360. package/dist/cli/__tests__/list.test.js.map +1 -0
  361. package/dist/cli/__tests__/mcp-parity.test.d.ts +2 -0
  362. package/dist/cli/__tests__/mcp-parity.test.d.ts.map +1 -0
  363. package/dist/cli/__tests__/mcp-parity.test.js +228 -0
  364. package/dist/cli/__tests__/mcp-parity.test.js.map +1 -0
  365. package/dist/cli/__tests__/mcp-serve.test.d.ts +2 -0
  366. package/dist/cli/__tests__/mcp-serve.test.d.ts.map +1 -0
  367. package/dist/cli/__tests__/mcp-serve.test.js +68 -0
  368. package/dist/cli/__tests__/mcp-serve.test.js.map +1 -0
  369. package/dist/cli/__tests__/native-assets.test.d.ts +2 -0
  370. package/dist/cli/__tests__/native-assets.test.d.ts.map +1 -0
  371. package/dist/cli/__tests__/native-assets.test.js +296 -0
  372. package/dist/cli/__tests__/native-assets.test.js.map +1 -0
  373. package/dist/cli/__tests__/native-hook-dispatch-contract.test.d.ts +2 -0
  374. package/dist/cli/__tests__/native-hook-dispatch-contract.test.d.ts.map +1 -0
  375. package/dist/cli/__tests__/native-hook-dispatch-contract.test.js +11 -0
  376. package/dist/cli/__tests__/native-hook-dispatch-contract.test.js.map +1 -0
  377. package/dist/cli/__tests__/nested-help-routing.test.d.ts +2 -0
  378. package/dist/cli/__tests__/nested-help-routing.test.d.ts.map +1 -0
  379. package/dist/cli/__tests__/nested-help-routing.test.js +63 -0
  380. package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -0
  381. package/dist/cli/__tests__/package-bin-contract.test.d.ts +2 -0
  382. package/dist/cli/__tests__/package-bin-contract.test.d.ts.map +1 -0
  383. package/dist/cli/__tests__/package-bin-contract.test.js +190 -0
  384. package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -0
  385. package/dist/cli/__tests__/packaged-explore-harness-lock.d.ts +3 -0
  386. package/dist/cli/__tests__/packaged-explore-harness-lock.d.ts.map +1 -0
  387. package/dist/cli/__tests__/packaged-explore-harness-lock.js +67 -0
  388. package/dist/cli/__tests__/packaged-explore-harness-lock.js.map +1 -0
  389. package/dist/cli/__tests__/packaged-script-resolution.test.d.ts +2 -0
  390. package/dist/cli/__tests__/packaged-script-resolution.test.d.ts.map +1 -0
  391. package/dist/cli/__tests__/packaged-script-resolution.test.js +19 -0
  392. package/dist/cli/__tests__/packaged-script-resolution.test.js.map +1 -0
  393. package/dist/cli/__tests__/performance-goal.test.d.ts +2 -0
  394. package/dist/cli/__tests__/performance-goal.test.d.ts.map +1 -0
  395. package/dist/cli/__tests__/performance-goal.test.js +144 -0
  396. package/dist/cli/__tests__/performance-goal.test.js.map +1 -0
  397. package/dist/cli/__tests__/prompt-skill-sanitization.test.d.ts +2 -0
  398. package/dist/cli/__tests__/prompt-skill-sanitization.test.d.ts.map +1 -0
  399. package/dist/cli/__tests__/prompt-skill-sanitization.test.js +48 -0
  400. package/dist/cli/__tests__/prompt-skill-sanitization.test.js.map +1 -0
  401. package/dist/cli/__tests__/question.test.d.ts +2 -0
  402. package/dist/cli/__tests__/question.test.d.ts.map +1 -0
  403. package/dist/cli/__tests__/question.test.js +850 -0
  404. package/dist/cli/__tests__/question.test.js.map +1 -0
  405. package/dist/cli/__tests__/ralph-deslop-contract.test.d.ts +2 -0
  406. package/dist/cli/__tests__/ralph-deslop-contract.test.d.ts.map +1 -0
  407. package/dist/cli/__tests__/ralph-deslop-contract.test.js +28 -0
  408. package/dist/cli/__tests__/ralph-deslop-contract.test.js.map +1 -0
  409. package/dist/cli/__tests__/ralph-goal-mode-contract.test.d.ts +2 -0
  410. package/dist/cli/__tests__/ralph-goal-mode-contract.test.d.ts.map +1 -0
  411. package/dist/cli/__tests__/ralph-goal-mode-contract.test.js +49 -0
  412. package/dist/cli/__tests__/ralph-goal-mode-contract.test.js.map +1 -0
  413. package/dist/cli/__tests__/ralph-prd-deep-interview.test.d.ts +2 -0
  414. package/dist/cli/__tests__/ralph-prd-deep-interview.test.d.ts.map +1 -0
  415. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js +25 -0
  416. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js.map +1 -0
  417. package/dist/cli/__tests__/ralph-prd-smoke.test.d.ts +2 -0
  418. package/dist/cli/__tests__/ralph-prd-smoke.test.d.ts.map +1 -0
  419. package/dist/cli/__tests__/ralph-prd-smoke.test.js +174 -0
  420. package/dist/cli/__tests__/ralph-prd-smoke.test.js.map +1 -0
  421. package/dist/cli/__tests__/ralph.test.d.ts +2 -0
  422. package/dist/cli/__tests__/ralph.test.d.ts.map +1 -0
  423. package/dist/cli/__tests__/ralph.test.js +256 -0
  424. package/dist/cli/__tests__/ralph.test.js.map +1 -0
  425. package/dist/cli/__tests__/resume.test.d.ts +2 -0
  426. package/dist/cli/__tests__/resume.test.d.ts.map +1 -0
  427. package/dist/cli/__tests__/resume.test.js +133 -0
  428. package/dist/cli/__tests__/resume.test.js.map +1 -0
  429. package/dist/cli/__tests__/session-scoped-runtime.test.d.ts +2 -0
  430. package/dist/cli/__tests__/session-scoped-runtime.test.d.ts.map +1 -0
  431. package/dist/cli/__tests__/session-scoped-runtime.test.js +247 -0
  432. package/dist/cli/__tests__/session-scoped-runtime.test.js.map +1 -0
  433. package/dist/cli/__tests__/session-search-help.test.d.ts +2 -0
  434. package/dist/cli/__tests__/session-search-help.test.d.ts.map +1 -0
  435. package/dist/cli/__tests__/session-search-help.test.js +37 -0
  436. package/dist/cli/__tests__/session-search-help.test.js.map +1 -0
  437. package/dist/cli/__tests__/session-search.test.d.ts +2 -0
  438. package/dist/cli/__tests__/session-search.test.d.ts.map +1 -0
  439. package/dist/cli/__tests__/session-search.test.js +77 -0
  440. package/dist/cli/__tests__/session-search.test.js.map +1 -0
  441. package/dist/cli/__tests__/setup-agents-overwrite.test.d.ts +2 -0
  442. package/dist/cli/__tests__/setup-agents-overwrite.test.d.ts.map +1 -0
  443. package/dist/cli/__tests__/setup-agents-overwrite.test.js +776 -0
  444. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -0
  445. package/dist/cli/__tests__/setup-gh-star.test.d.ts +2 -0
  446. package/dist/cli/__tests__/setup-gh-star.test.d.ts.map +1 -0
  447. package/dist/cli/__tests__/setup-gh-star.test.js +67 -0
  448. package/dist/cli/__tests__/setup-gh-star.test.js.map +1 -0
  449. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.d.ts +2 -0
  450. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.d.ts.map +1 -0
  451. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js +202 -0
  452. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js.map +1 -0
  453. package/dist/cli/__tests__/setup-install-mode.test.d.ts +2 -0
  454. package/dist/cli/__tests__/setup-install-mode.test.d.ts.map +1 -0
  455. package/dist/cli/__tests__/setup-install-mode.test.js +2103 -0
  456. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -0
  457. package/dist/cli/__tests__/setup-prompts-overwrite.test.d.ts +2 -0
  458. package/dist/cli/__tests__/setup-prompts-overwrite.test.d.ts.map +1 -0
  459. package/dist/cli/__tests__/setup-prompts-overwrite.test.js +191 -0
  460. package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +1 -0
  461. package/dist/cli/__tests__/setup-refresh.test.d.ts +2 -0
  462. package/dist/cli/__tests__/setup-refresh.test.d.ts.map +1 -0
  463. package/dist/cli/__tests__/setup-refresh.test.js +779 -0
  464. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -0
  465. package/dist/cli/__tests__/setup-scope.test.d.ts +2 -0
  466. package/dist/cli/__tests__/setup-scope.test.d.ts.map +1 -0
  467. package/dist/cli/__tests__/setup-scope.test.js +367 -0
  468. package/dist/cli/__tests__/setup-scope.test.js.map +1 -0
  469. package/dist/cli/__tests__/setup-skill-validation.test.d.ts +2 -0
  470. package/dist/cli/__tests__/setup-skill-validation.test.d.ts.map +1 -0
  471. package/dist/cli/__tests__/setup-skill-validation.test.js +44 -0
  472. package/dist/cli/__tests__/setup-skill-validation.test.js.map +1 -0
  473. package/dist/cli/__tests__/setup-skills-overwrite.test.d.ts +2 -0
  474. package/dist/cli/__tests__/setup-skills-overwrite.test.d.ts.map +1 -0
  475. package/dist/cli/__tests__/setup-skills-overwrite.test.js +292 -0
  476. package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -0
  477. package/dist/cli/__tests__/sidecar.test.d.ts +2 -0
  478. package/dist/cli/__tests__/sidecar.test.d.ts.map +1 -0
  479. package/dist/cli/__tests__/sidecar.test.js +24 -0
  480. package/dist/cli/__tests__/sidecar.test.js.map +1 -0
  481. package/dist/cli/__tests__/sparkshell-cli.test.d.ts +2 -0
  482. package/dist/cli/__tests__/sparkshell-cli.test.d.ts.map +1 -0
  483. package/dist/cli/__tests__/sparkshell-cli.test.js +471 -0
  484. package/dist/cli/__tests__/sparkshell-cli.test.js.map +1 -0
  485. package/dist/cli/__tests__/sparkshell-packaging.test.d.ts +2 -0
  486. package/dist/cli/__tests__/sparkshell-packaging.test.d.ts.map +1 -0
  487. package/dist/cli/__tests__/sparkshell-packaging.test.js +105 -0
  488. package/dist/cli/__tests__/sparkshell-packaging.test.js.map +1 -0
  489. package/dist/cli/__tests__/star-prompt.test.d.ts +2 -0
  490. package/dist/cli/__tests__/star-prompt.test.d.ts.map +1 -0
  491. package/dist/cli/__tests__/star-prompt.test.js +172 -0
  492. package/dist/cli/__tests__/star-prompt.test.js.map +1 -0
  493. package/dist/cli/__tests__/state.test.d.ts +2 -0
  494. package/dist/cli/__tests__/state.test.d.ts.map +1 -0
  495. package/dist/cli/__tests__/state.test.js +160 -0
  496. package/dist/cli/__tests__/state.test.js.map +1 -0
  497. package/dist/cli/__tests__/team-decompose.test.d.ts +2 -0
  498. package/dist/cli/__tests__/team-decompose.test.d.ts.map +1 -0
  499. package/dist/cli/__tests__/team-decompose.test.js +138 -0
  500. package/dist/cli/__tests__/team-decompose.test.js.map +1 -0
  501. package/dist/cli/__tests__/team.test.d.ts +2 -0
  502. package/dist/cli/__tests__/team.test.d.ts.map +1 -0
  503. package/dist/cli/__tests__/team.test.js +2897 -0
  504. package/dist/cli/__tests__/team.test.js.map +1 -0
  505. package/dist/cli/__tests__/ultragoal.test.d.ts +2 -0
  506. package/dist/cli/__tests__/ultragoal.test.d.ts.map +1 -0
  507. package/dist/cli/__tests__/ultragoal.test.js +599 -0
  508. package/dist/cli/__tests__/ultragoal.test.js.map +1 -0
  509. package/dist/cli/__tests__/uninstall.test.d.ts +2 -0
  510. package/dist/cli/__tests__/uninstall.test.d.ts.map +1 -0
  511. package/dist/cli/__tests__/uninstall.test.js +865 -0
  512. package/dist/cli/__tests__/uninstall.test.js.map +1 -0
  513. package/dist/cli/__tests__/update.test.d.ts +2 -0
  514. package/dist/cli/__tests__/update.test.d.ts.map +1 -0
  515. package/dist/cli/__tests__/update.test.js +1182 -0
  516. package/dist/cli/__tests__/update.test.js.map +1 -0
  517. package/dist/cli/__tests__/version-sync-contract.test.d.ts +2 -0
  518. package/dist/cli/__tests__/version-sync-contract.test.d.ts.map +1 -0
  519. package/dist/cli/__tests__/version-sync-contract.test.js +47 -0
  520. package/dist/cli/__tests__/version-sync-contract.test.js.map +1 -0
  521. package/dist/cli/__tests__/version.test.d.ts +2 -0
  522. package/dist/cli/__tests__/version.test.d.ts.map +1 -0
  523. package/dist/cli/__tests__/version.test.js +21 -0
  524. package/dist/cli/__tests__/version.test.js.map +1 -0
  525. package/dist/cli/__tests__/windows-popup-loop-contract.test.d.ts +2 -0
  526. package/dist/cli/__tests__/windows-popup-loop-contract.test.d.ts.map +1 -0
  527. package/dist/cli/__tests__/windows-popup-loop-contract.test.js +31 -0
  528. package/dist/cli/__tests__/windows-popup-loop-contract.test.js.map +1 -0
  529. package/dist/cli/adapt.d.ts +6 -0
  530. package/dist/cli/adapt.d.ts.map +1 -0
  531. package/dist/cli/adapt.js +135 -0
  532. package/dist/cli/adapt.js.map +1 -0
  533. package/dist/cli/agents-init.d.ts +14 -0
  534. package/dist/cli/agents-init.d.ts.map +1 -0
  535. package/dist/cli/agents-init.js +274 -0
  536. package/dist/cli/agents-init.js.map +1 -0
  537. package/dist/cli/agents.d.ts +14 -0
  538. package/dist/cli/agents.d.ts.map +1 -0
  539. package/dist/cli/agents.js +267 -0
  540. package/dist/cli/agents.js.map +1 -0
  541. package/dist/cli/api.d.ts +26 -0
  542. package/dist/cli/api.d.ts.map +1 -0
  543. package/dist/cli/api.js +153 -0
  544. package/dist/cli/api.js.map +1 -0
  545. package/dist/cli/ask.d.ts +13 -0
  546. package/dist/cli/ask.d.ts.map +1 -0
  547. package/dist/cli/ask.js +178 -0
  548. package/dist/cli/ask.js.map +1 -0
  549. package/dist/cli/auth.d.ts +4 -0
  550. package/dist/cli/auth.d.ts.map +1 -0
  551. package/dist/cli/auth.js +113 -0
  552. package/dist/cli/auth.js.map +1 -0
  553. package/dist/cli/autoresearch-goal.d.ts +3 -0
  554. package/dist/cli/autoresearch-goal.d.ts.map +1 -0
  555. package/dist/cli/autoresearch-goal.js +175 -0
  556. package/dist/cli/autoresearch-goal.js.map +1 -0
  557. package/dist/cli/autoresearch-guided.d.ts +43 -0
  558. package/dist/cli/autoresearch-guided.d.ts.map +1 -0
  559. package/dist/cli/autoresearch-guided.js +282 -0
  560. package/dist/cli/autoresearch-guided.js.map +1 -0
  561. package/dist/cli/autoresearch-intake.d.ts +62 -0
  562. package/dist/cli/autoresearch-intake.d.ts.map +1 -0
  563. package/dist/cli/autoresearch-intake.js +336 -0
  564. package/dist/cli/autoresearch-intake.js.map +1 -0
  565. package/dist/cli/autoresearch.d.ts +16 -0
  566. package/dist/cli/autoresearch.d.ts.map +1 -0
  567. package/dist/cli/autoresearch.js +91 -0
  568. package/dist/cli/autoresearch.js.map +1 -0
  569. package/dist/cli/catalog-contract.d.ts +10 -0
  570. package/dist/cli/catalog-contract.d.ts.map +1 -0
  571. package/dist/cli/catalog-contract.js +34 -0
  572. package/dist/cli/catalog-contract.js.map +1 -0
  573. package/dist/cli/cleanup.d.ts +58 -0
  574. package/dist/cli/cleanup.d.ts.map +1 -0
  575. package/dist/cli/cleanup.js +444 -0
  576. package/dist/cli/cleanup.js.map +1 -0
  577. package/dist/cli/codex-feature-probe.d.ts +17 -0
  578. package/dist/cli/codex-feature-probe.d.ts.map +1 -0
  579. package/dist/cli/codex-feature-probe.js +50 -0
  580. package/dist/cli/codex-feature-probe.js.map +1 -0
  581. package/dist/cli/codex-home.d.ts +7 -0
  582. package/dist/cli/codex-home.d.ts.map +1 -0
  583. package/dist/cli/codex-home.js +26 -0
  584. package/dist/cli/codex-home.js.map +1 -0
  585. package/dist/cli/constants.d.ts +11 -0
  586. package/dist/cli/constants.d.ts.map +1 -0
  587. package/dist/cli/constants.js +11 -0
  588. package/dist/cli/constants.js.map +1 -0
  589. package/dist/cli/doctor.d.ts +43 -0
  590. package/dist/cli/doctor.d.ts.map +1 -0
  591. package/dist/cli/doctor.js +1956 -0
  592. package/dist/cli/doctor.js.map +1 -0
  593. package/dist/cli/explore.d.ts +14 -0
  594. package/dist/cli/explore.d.ts.map +1 -0
  595. package/dist/cli/explore.js +72 -0
  596. package/dist/cli/explore.js.map +1 -0
  597. package/dist/cli/hooks.d.ts +4 -0
  598. package/dist/cli/hooks.d.ts.map +1 -0
  599. package/dist/cli/hooks.js +201 -0
  600. package/dist/cli/hooks.js.map +1 -0
  601. package/dist/cli/index.d.ts +247 -0
  602. package/dist/cli/index.d.ts.map +1 -0
  603. package/dist/cli/index.js +4590 -0
  604. package/dist/cli/index.js.map +1 -0
  605. package/dist/cli/list.d.ts +2 -0
  606. package/dist/cli/list.d.ts.map +1 -0
  607. package/dist/cli/list.js +40 -0
  608. package/dist/cli/list.js.map +1 -0
  609. package/dist/cli/mcp-parity.d.ts +22 -0
  610. package/dist/cli/mcp-parity.d.ts.map +1 -0
  611. package/dist/cli/mcp-parity.js +251 -0
  612. package/dist/cli/mcp-parity.js.map +1 -0
  613. package/dist/cli/mcp-serve.d.ts +13 -0
  614. package/dist/cli/mcp-serve.d.ts.map +1 -0
  615. package/dist/cli/mcp-serve.js +75 -0
  616. package/dist/cli/mcp-serve.js.map +1 -0
  617. package/dist/cli/native-assets.d.ts +52 -0
  618. package/dist/cli/native-assets.d.ts.map +1 -0
  619. package/dist/cli/native-assets.js +302 -0
  620. package/dist/cli/native-assets.js.map +1 -0
  621. package/dist/cli/omx.d.ts +3 -0
  622. package/dist/cli/omx.d.ts.map +1 -0
  623. package/dist/cli/omx.js +25 -0
  624. package/dist/cli/omx.js.map +1 -0
  625. package/dist/cli/performance-goal.d.ts +3 -0
  626. package/dist/cli/performance-goal.d.ts.map +1 -0
  627. package/dist/cli/performance-goal.js +186 -0
  628. package/dist/cli/performance-goal.js.map +1 -0
  629. package/dist/cli/plugin-marketplace.d.ts +54 -0
  630. package/dist/cli/plugin-marketplace.d.ts.map +1 -0
  631. package/dist/cli/plugin-marketplace.js +369 -0
  632. package/dist/cli/plugin-marketplace.js.map +1 -0
  633. package/dist/cli/question.d.ts +3 -0
  634. package/dist/cli/question.d.ts.map +1 -0
  635. package/dist/cli/question.js +376 -0
  636. package/dist/cli/question.js.map +1 -0
  637. package/dist/cli/ralph.d.ts +17 -0
  638. package/dist/cli/ralph.d.ts.map +1 -0
  639. package/dist/cli/ralph.js +330 -0
  640. package/dist/cli/ralph.js.map +1 -0
  641. package/dist/cli/session-search.d.ts +8 -0
  642. package/dist/cli/session-search.d.ts.map +1 -0
  643. package/dist/cli/session-search.js +133 -0
  644. package/dist/cli/session-search.js.map +1 -0
  645. package/dist/cli/setup-preferences.d.ts +26 -0
  646. package/dist/cli/setup-preferences.d.ts.map +1 -0
  647. package/dist/cli/setup-preferences.js +82 -0
  648. package/dist/cli/setup-preferences.js.map +1 -0
  649. package/dist/cli/setup.d.ts +60 -0
  650. package/dist/cli/setup.d.ts.map +1 -0
  651. package/dist/cli/setup.js +2748 -0
  652. package/dist/cli/setup.js.map +1 -0
  653. package/dist/cli/sparkshell.d.ts +39 -0
  654. package/dist/cli/sparkshell.d.ts.map +1 -0
  655. package/dist/cli/sparkshell.js +299 -0
  656. package/dist/cli/sparkshell.js.map +1 -0
  657. package/dist/cli/star-prompt.d.ts +31 -0
  658. package/dist/cli/star-prompt.d.ts.map +1 -0
  659. package/dist/cli/star-prompt.js +97 -0
  660. package/dist/cli/star-prompt.js.map +1 -0
  661. package/dist/cli/state.d.ts +8 -0
  662. package/dist/cli/state.d.ts.map +1 -0
  663. package/dist/cli/state.js +149 -0
  664. package/dist/cli/state.js.map +1 -0
  665. package/dist/cli/team.d.ts +49 -0
  666. package/dist/cli/team.d.ts.map +1 -0
  667. package/dist/cli/team.js +1453 -0
  668. package/dist/cli/team.js.map +1 -0
  669. package/dist/cli/tmux-hook.d.ts +3 -0
  670. package/dist/cli/tmux-hook.d.ts.map +1 -0
  671. package/dist/cli/tmux-hook.js +403 -0
  672. package/dist/cli/tmux-hook.js.map +1 -0
  673. package/dist/cli/ultragoal.d.ts +3 -0
  674. package/dist/cli/ultragoal.d.ts.map +1 -0
  675. package/dist/cli/ultragoal.js +494 -0
  676. package/dist/cli/ultragoal.js.map +1 -0
  677. package/dist/cli/uninstall.d.ts +15 -0
  678. package/dist/cli/uninstall.d.ts.map +1 -0
  679. package/dist/cli/uninstall.js +476 -0
  680. package/dist/cli/uninstall.js.map +1 -0
  681. package/dist/cli/update.d.ts +86 -0
  682. package/dist/cli/update.d.ts.map +1 -0
  683. package/dist/cli/update.js +754 -0
  684. package/dist/cli/update.js.map +1 -0
  685. package/dist/cli/version.d.ts +2 -0
  686. package/dist/cli/version.d.ts.map +1 -0
  687. package/dist/cli/version.js +13 -0
  688. package/dist/cli/version.js.map +1 -0
  689. package/dist/compat/__tests__/doctor-contract.test.d.ts +2 -0
  690. package/dist/compat/__tests__/doctor-contract.test.d.ts.map +1 -0
  691. package/dist/compat/__tests__/doctor-contract.test.js +122 -0
  692. package/dist/compat/__tests__/doctor-contract.test.js.map +1 -0
  693. package/dist/compat/__tests__/rust-runtime-compat.test.d.ts +2 -0
  694. package/dist/compat/__tests__/rust-runtime-compat.test.d.ts.map +1 -0
  695. package/dist/compat/__tests__/rust-runtime-compat.test.js +218 -0
  696. package/dist/compat/__tests__/rust-runtime-compat.test.js.map +1 -0
  697. package/dist/config/__tests__/codex-feature-flags.test.d.ts +2 -0
  698. package/dist/config/__tests__/codex-feature-flags.test.d.ts.map +1 -0
  699. package/dist/config/__tests__/codex-feature-flags.test.js +45 -0
  700. package/dist/config/__tests__/codex-feature-flags.test.js.map +1 -0
  701. package/dist/config/__tests__/codex-hooks.test.d.ts +2 -0
  702. package/dist/config/__tests__/codex-hooks.test.d.ts.map +1 -0
  703. package/dist/config/__tests__/codex-hooks.test.js +524 -0
  704. package/dist/config/__tests__/codex-hooks.test.js.map +1 -0
  705. package/dist/config/__tests__/commit-lore-guard.test.d.ts +2 -0
  706. package/dist/config/__tests__/commit-lore-guard.test.d.ts.map +1 -0
  707. package/dist/config/__tests__/commit-lore-guard.test.js +20 -0
  708. package/dist/config/__tests__/commit-lore-guard.test.js.map +1 -0
  709. package/dist/config/__tests__/deep-interview.test.d.ts +2 -0
  710. package/dist/config/__tests__/deep-interview.test.d.ts.map +1 -0
  711. package/dist/config/__tests__/deep-interview.test.js +240 -0
  712. package/dist/config/__tests__/deep-interview.test.js.map +1 -0
  713. package/dist/config/__tests__/generator-idempotent.test.d.ts +2 -0
  714. package/dist/config/__tests__/generator-idempotent.test.d.ts.map +1 -0
  715. package/dist/config/__tests__/generator-idempotent.test.js +1150 -0
  716. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -0
  717. package/dist/config/__tests__/generator-notify.test.d.ts +2 -0
  718. package/dist/config/__tests__/generator-notify.test.d.ts.map +1 -0
  719. package/dist/config/__tests__/generator-notify.test.js +512 -0
  720. package/dist/config/__tests__/generator-notify.test.js.map +1 -0
  721. package/dist/config/__tests__/generator-status-line-presets.test.d.ts +2 -0
  722. package/dist/config/__tests__/generator-status-line-presets.test.d.ts.map +1 -0
  723. package/dist/config/__tests__/generator-status-line-presets.test.js +203 -0
  724. package/dist/config/__tests__/generator-status-line-presets.test.js.map +1 -0
  725. package/dist/config/__tests__/mcp-registry.test.d.ts +2 -0
  726. package/dist/config/__tests__/mcp-registry.test.d.ts.map +1 -0
  727. package/dist/config/__tests__/mcp-registry.test.js +190 -0
  728. package/dist/config/__tests__/mcp-registry.test.js.map +1 -0
  729. package/dist/config/__tests__/models.test.d.ts +2 -0
  730. package/dist/config/__tests__/models.test.d.ts.map +1 -0
  731. package/dist/config/__tests__/models.test.js +241 -0
  732. package/dist/config/__tests__/models.test.js.map +1 -0
  733. package/dist/config/__tests__/wiki-config-contract.test.d.ts +2 -0
  734. package/dist/config/__tests__/wiki-config-contract.test.d.ts.map +1 -0
  735. package/dist/config/__tests__/wiki-config-contract.test.js +23 -0
  736. package/dist/config/__tests__/wiki-config-contract.test.js.map +1 -0
  737. package/dist/config/codex-feature-flags.d.ts +25 -0
  738. package/dist/config/codex-feature-flags.d.ts.map +1 -0
  739. package/dist/config/codex-feature-flags.js +60 -0
  740. package/dist/config/codex-feature-flags.js.map +1 -0
  741. package/dist/config/codex-hooks.d.ts +79 -0
  742. package/dist/config/codex-hooks.d.ts.map +1 -0
  743. package/dist/config/codex-hooks.js +578 -0
  744. package/dist/config/codex-hooks.js.map +1 -0
  745. package/dist/config/commit-lore-guard.d.ts +4 -0
  746. package/dist/config/commit-lore-guard.d.ts.map +1 -0
  747. package/dist/config/commit-lore-guard.js +35 -0
  748. package/dist/config/commit-lore-guard.js.map +1 -0
  749. package/dist/config/deep-interview.d.ts +22 -0
  750. package/dist/config/deep-interview.d.ts.map +1 -0
  751. package/dist/config/deep-interview.js +161 -0
  752. package/dist/config/deep-interview.js.map +1 -0
  753. package/dist/config/generator.d.ts +141 -0
  754. package/dist/config/generator.d.ts.map +1 -0
  755. package/dist/config/generator.js +1845 -0
  756. package/dist/config/generator.js.map +1 -0
  757. package/dist/config/mcp-registry.d.ts +35 -0
  758. package/dist/config/mcp-registry.d.ts.map +1 -0
  759. package/dist/config/mcp-registry.js +159 -0
  760. package/dist/config/mcp-registry.js.map +1 -0
  761. package/dist/config/models.d.ts +80 -0
  762. package/dist/config/models.d.ts.map +1 -0
  763. package/dist/config/models.js +251 -0
  764. package/dist/config/models.js.map +1 -0
  765. package/dist/config/omx-first-party-mcp.d.ts +21 -0
  766. package/dist/config/omx-first-party-mcp.d.ts.map +1 -0
  767. package/dist/config/omx-first-party-mcp.js +86 -0
  768. package/dist/config/omx-first-party-mcp.js.map +1 -0
  769. package/dist/config/team-mode.d.ts +12 -0
  770. package/dist/config/team-mode.d.ts.map +1 -0
  771. package/dist/config/team-mode.js +91 -0
  772. package/dist/config/team-mode.js.map +1 -0
  773. package/dist/document-refresh/__tests__/enforcer.test.d.ts +2 -0
  774. package/dist/document-refresh/__tests__/enforcer.test.d.ts.map +1 -0
  775. package/dist/document-refresh/__tests__/enforcer.test.js +128 -0
  776. package/dist/document-refresh/__tests__/enforcer.test.js.map +1 -0
  777. package/dist/document-refresh/config.d.ts +9 -0
  778. package/dist/document-refresh/config.d.ts.map +1 -0
  779. package/dist/document-refresh/config.js +70 -0
  780. package/dist/document-refresh/config.js.map +1 -0
  781. package/dist/document-refresh/enforcer.d.ts +43 -0
  782. package/dist/document-refresh/enforcer.d.ts.map +1 -0
  783. package/dist/document-refresh/enforcer.js +329 -0
  784. package/dist/document-refresh/enforcer.js.map +1 -0
  785. package/dist/exec/followup.d.ts +45 -0
  786. package/dist/exec/followup.d.ts.map +1 -0
  787. package/dist/exec/followup.js +355 -0
  788. package/dist/exec/followup.js.map +1 -0
  789. package/dist/goal-workflows/__tests__/artifacts.test.d.ts +2 -0
  790. package/dist/goal-workflows/__tests__/artifacts.test.d.ts.map +1 -0
  791. package/dist/goal-workflows/__tests__/artifacts.test.js +96 -0
  792. package/dist/goal-workflows/__tests__/artifacts.test.js.map +1 -0
  793. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.d.ts +2 -0
  794. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.d.ts.map +1 -0
  795. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js +75 -0
  796. package/dist/goal-workflows/__tests__/codex-goal-snapshot.test.js.map +1 -0
  797. package/dist/goal-workflows/artifacts.d.ts +62 -0
  798. package/dist/goal-workflows/artifacts.d.ts.map +1 -0
  799. package/dist/goal-workflows/artifacts.js +132 -0
  800. package/dist/goal-workflows/artifacts.js.map +1 -0
  801. package/dist/goal-workflows/codex-goal-snapshot.d.ts +32 -0
  802. package/dist/goal-workflows/codex-goal-snapshot.d.ts.map +1 -0
  803. package/dist/goal-workflows/codex-goal-snapshot.js +157 -0
  804. package/dist/goal-workflows/codex-goal-snapshot.js.map +1 -0
  805. package/dist/goal-workflows/handoff.d.ts +10 -0
  806. package/dist/goal-workflows/handoff.d.ts.map +1 -0
  807. package/dist/goal-workflows/handoff.js +31 -0
  808. package/dist/goal-workflows/handoff.js.map +1 -0
  809. package/dist/goal-workflows/validation.d.ts +13 -0
  810. package/dist/goal-workflows/validation.d.ts.map +1 -0
  811. package/dist/goal-workflows/validation.js +36 -0
  812. package/dist/goal-workflows/validation.js.map +1 -0
  813. package/dist/hooks/__tests__/agents-overlay.test.d.ts +8 -0
  814. package/dist/hooks/__tests__/agents-overlay.test.d.ts.map +1 -0
  815. package/dist/hooks/__tests__/agents-overlay.test.js +761 -0
  816. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -0
  817. package/dist/hooks/__tests__/analyze-routing-contract.test.d.ts +2 -0
  818. package/dist/hooks/__tests__/analyze-routing-contract.test.d.ts.map +1 -0
  819. package/dist/hooks/__tests__/analyze-routing-contract.test.js +45 -0
  820. package/dist/hooks/__tests__/analyze-routing-contract.test.js.map +1 -0
  821. package/dist/hooks/__tests__/analyze-skill-contract.test.d.ts +2 -0
  822. package/dist/hooks/__tests__/analyze-skill-contract.test.d.ts.map +1 -0
  823. package/dist/hooks/__tests__/analyze-skill-contract.test.js +48 -0
  824. package/dist/hooks/__tests__/analyze-skill-contract.test.js.map +1 -0
  825. package/dist/hooks/__tests__/anti-slop-workflow.test.d.ts +2 -0
  826. package/dist/hooks/__tests__/anti-slop-workflow.test.d.ts.map +1 -0
  827. package/dist/hooks/__tests__/anti-slop-workflow.test.js +165 -0
  828. package/dist/hooks/__tests__/anti-slop-workflow.test.js.map +1 -0
  829. package/dist/hooks/__tests__/autopilot-skill-contract.test.d.ts +2 -0
  830. package/dist/hooks/__tests__/autopilot-skill-contract.test.d.ts.map +1 -0
  831. package/dist/hooks/__tests__/autopilot-skill-contract.test.js +90 -0
  832. package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -0
  833. package/dist/hooks/__tests__/best-practice-research-skill.test.d.ts +2 -0
  834. package/dist/hooks/__tests__/best-practice-research-skill.test.d.ts.map +1 -0
  835. package/dist/hooks/__tests__/best-practice-research-skill.test.js +39 -0
  836. package/dist/hooks/__tests__/best-practice-research-skill.test.js.map +1 -0
  837. package/dist/hooks/__tests__/clawhip-event-contract.test.d.ts +2 -0
  838. package/dist/hooks/__tests__/clawhip-event-contract.test.d.ts.map +1 -0
  839. package/dist/hooks/__tests__/clawhip-event-contract.test.js +37 -0
  840. package/dist/hooks/__tests__/clawhip-event-contract.test.js.map +1 -0
  841. package/dist/hooks/__tests__/code-review-skill-contract.test.d.ts +2 -0
  842. package/dist/hooks/__tests__/code-review-skill-contract.test.d.ts.map +1 -0
  843. package/dist/hooks/__tests__/code-review-skill-contract.test.js +77 -0
  844. package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -0
  845. package/dist/hooks/__tests__/codebase-map.test.d.ts +8 -0
  846. package/dist/hooks/__tests__/codebase-map.test.d.ts.map +1 -0
  847. package/dist/hooks/__tests__/codebase-map.test.js +218 -0
  848. package/dist/hooks/__tests__/codebase-map.test.js.map +1 -0
  849. package/dist/hooks/__tests__/consensus-execution-handoff.test.d.ts +18 -0
  850. package/dist/hooks/__tests__/consensus-execution-handoff.test.d.ts.map +1 -0
  851. package/dist/hooks/__tests__/consensus-execution-handoff.test.js +266 -0
  852. package/dist/hooks/__tests__/consensus-execution-handoff.test.js.map +1 -0
  853. package/dist/hooks/__tests__/debugger-log-recency-contract.test.d.ts +2 -0
  854. package/dist/hooks/__tests__/debugger-log-recency-contract.test.d.ts.map +1 -0
  855. package/dist/hooks/__tests__/debugger-log-recency-contract.test.js +20 -0
  856. package/dist/hooks/__tests__/debugger-log-recency-contract.test.js.map +1 -0
  857. package/dist/hooks/__tests__/deep-interview-contract.test.d.ts +2 -0
  858. package/dist/hooks/__tests__/deep-interview-contract.test.d.ts.map +1 -0
  859. package/dist/hooks/__tests__/deep-interview-contract.test.js +309 -0
  860. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -0
  861. package/dist/hooks/__tests__/design-skill.test.d.ts +2 -0
  862. package/dist/hooks/__tests__/design-skill.test.d.ts.map +1 -0
  863. package/dist/hooks/__tests__/design-skill.test.js +55 -0
  864. package/dist/hooks/__tests__/design-skill.test.js.map +1 -0
  865. package/dist/hooks/__tests__/explicit-terminal-stop-docs-contract.test.d.ts +2 -0
  866. package/dist/hooks/__tests__/explicit-terminal-stop-docs-contract.test.d.ts.map +1 -0
  867. package/dist/hooks/__tests__/explicit-terminal-stop-docs-contract.test.js +43 -0
  868. package/dist/hooks/__tests__/explicit-terminal-stop-docs-contract.test.js.map +1 -0
  869. package/dist/hooks/__tests__/explicit-terminal-stop-model-docs-contract.test.d.ts +2 -0
  870. package/dist/hooks/__tests__/explicit-terminal-stop-model-docs-contract.test.d.ts.map +1 -0
  871. package/dist/hooks/__tests__/explicit-terminal-stop-model-docs-contract.test.js +38 -0
  872. package/dist/hooks/__tests__/explicit-terminal-stop-model-docs-contract.test.js.map +1 -0
  873. package/dist/hooks/__tests__/explore-routing.test.d.ts +2 -0
  874. package/dist/hooks/__tests__/explore-routing.test.d.ts.map +1 -0
  875. package/dist/hooks/__tests__/explore-routing.test.js +38 -0
  876. package/dist/hooks/__tests__/explore-routing.test.js.map +1 -0
  877. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.d.ts +2 -0
  878. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.d.ts.map +1 -0
  879. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js +67 -0
  880. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js.map +1 -0
  881. package/dist/hooks/__tests__/foreground-isolation-contract.test.d.ts +2 -0
  882. package/dist/hooks/__tests__/foreground-isolation-contract.test.d.ts.map +1 -0
  883. package/dist/hooks/__tests__/foreground-isolation-contract.test.js +28 -0
  884. package/dist/hooks/__tests__/foreground-isolation-contract.test.js.map +1 -0
  885. package/dist/hooks/__tests__/keyword-detector.test.d.ts +2 -0
  886. package/dist/hooks/__tests__/keyword-detector.test.d.ts.map +1 -0
  887. package/dist/hooks/__tests__/keyword-detector.test.js +3323 -0
  888. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -0
  889. package/dist/hooks/__tests__/notify-fallback-watcher.test.d.ts +2 -0
  890. package/dist/hooks/__tests__/notify-fallback-watcher.test.d.ts.map +1 -0
  891. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +3956 -0
  892. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -0
  893. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.d.ts +2 -0
  894. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.d.ts.map +1 -0
  895. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +786 -0
  896. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -0
  897. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.d.ts +2 -0
  898. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.d.ts.map +1 -0
  899. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +2602 -0
  900. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -0
  901. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.d.ts +2 -0
  902. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.d.ts.map +1 -0
  903. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js +161 -0
  904. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js.map +1 -0
  905. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.d.ts +2 -0
  906. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.d.ts.map +1 -0
  907. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js +1178 -0
  908. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js.map +1 -0
  909. package/dist/hooks/__tests__/notify-hook-modules.test.d.ts +9 -0
  910. package/dist/hooks/__tests__/notify-hook-modules.test.d.ts.map +1 -0
  911. package/dist/hooks/__tests__/notify-hook-modules.test.js +529 -0
  912. package/dist/hooks/__tests__/notify-hook-modules.test.js.map +1 -0
  913. package/dist/hooks/__tests__/notify-hook-native-dispatch-contract.test.d.ts +2 -0
  914. package/dist/hooks/__tests__/notify-hook-native-dispatch-contract.test.d.ts.map +1 -0
  915. package/dist/hooks/__tests__/notify-hook-native-dispatch-contract.test.js +14 -0
  916. package/dist/hooks/__tests__/notify-hook-native-dispatch-contract.test.js.map +1 -0
  917. package/dist/hooks/__tests__/notify-hook-non-omx-guard.test.d.ts +2 -0
  918. package/dist/hooks/__tests__/notify-hook-non-omx-guard.test.d.ts.map +1 -0
  919. package/dist/hooks/__tests__/notify-hook-non-omx-guard.test.js +176 -0
  920. package/dist/hooks/__tests__/notify-hook-non-omx-guard.test.js.map +1 -0
  921. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.d.ts +2 -0
  922. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.d.ts.map +1 -0
  923. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js +890 -0
  924. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js.map +1 -0
  925. package/dist/hooks/__tests__/notify-hook-regression-205.test.d.ts +9 -0
  926. package/dist/hooks/__tests__/notify-hook-regression-205.test.d.ts.map +1 -0
  927. package/dist/hooks/__tests__/notify-hook-regression-205.test.js +255 -0
  928. package/dist/hooks/__tests__/notify-hook-regression-205.test.js.map +1 -0
  929. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.d.ts +2 -0
  930. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.d.ts.map +1 -0
  931. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.js +162 -0
  932. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.js.map +1 -0
  933. package/dist/hooks/__tests__/notify-hook-session-scope.test.d.ts +2 -0
  934. package/dist/hooks/__tests__/notify-hook-session-scope.test.d.ts.map +1 -0
  935. package/dist/hooks/__tests__/notify-hook-session-scope.test.js +304 -0
  936. package/dist/hooks/__tests__/notify-hook-session-scope.test.js.map +1 -0
  937. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.d.ts +2 -0
  938. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.d.ts.map +1 -0
  939. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +1511 -0
  940. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -0
  941. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.d.ts +2 -0
  942. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.d.ts.map +1 -0
  943. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +2911 -0
  944. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -0
  945. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.d.ts +2 -0
  946. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.d.ts.map +1 -0
  947. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js +261 -0
  948. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js.map +1 -0
  949. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.d.ts +2 -0
  950. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.d.ts.map +1 -0
  951. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.js +35 -0
  952. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.js.map +1 -0
  953. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.d.ts +2 -0
  954. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.d.ts.map +1 -0
  955. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +1854 -0
  956. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -0
  957. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.d.ts +10 -0
  958. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.d.ts.map +1 -0
  959. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js +0 -0
  960. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js.map +1 -0
  961. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.d.ts +11 -0
  962. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.d.ts.map +1 -0
  963. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.js +266 -0
  964. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.js.map +1 -0
  965. package/dist/hooks/__tests__/notify-hook-worker-idle.test.d.ts +2 -0
  966. package/dist/hooks/__tests__/notify-hook-worker-idle.test.d.ts.map +1 -0
  967. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +895 -0
  968. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -0
  969. package/dist/hooks/__tests__/openclaw-setup-contract.test.d.ts +2 -0
  970. package/dist/hooks/__tests__/openclaw-setup-contract.test.d.ts.map +1 -0
  971. package/dist/hooks/__tests__/openclaw-setup-contract.test.js +61 -0
  972. package/dist/hooks/__tests__/openclaw-setup-contract.test.js.map +1 -0
  973. package/dist/hooks/__tests__/pre-context-gate-skills.test.d.ts +2 -0
  974. package/dist/hooks/__tests__/pre-context-gate-skills.test.d.ts.map +1 -0
  975. package/dist/hooks/__tests__/pre-context-gate-skills.test.js +40 -0
  976. package/dist/hooks/__tests__/pre-context-gate-skills.test.js.map +1 -0
  977. package/dist/hooks/__tests__/prometheus-strict-contract.test.d.ts +2 -0
  978. package/dist/hooks/__tests__/prometheus-strict-contract.test.d.ts.map +1 -0
  979. package/dist/hooks/__tests__/prometheus-strict-contract.test.js +320 -0
  980. package/dist/hooks/__tests__/prometheus-strict-contract.test.js.map +1 -0
  981. package/dist/hooks/__tests__/prompt-guidance-catalog.test.d.ts +2 -0
  982. package/dist/hooks/__tests__/prompt-guidance-catalog.test.d.ts.map +1 -0
  983. package/dist/hooks/__tests__/prompt-guidance-catalog.test.js +11 -0
  984. package/dist/hooks/__tests__/prompt-guidance-catalog.test.js.map +1 -0
  985. package/dist/hooks/__tests__/prompt-guidance-contract.test.d.ts +2 -0
  986. package/dist/hooks/__tests__/prompt-guidance-contract.test.d.ts.map +1 -0
  987. package/dist/hooks/__tests__/prompt-guidance-contract.test.js +38 -0
  988. package/dist/hooks/__tests__/prompt-guidance-contract.test.js.map +1 -0
  989. package/dist/hooks/__tests__/prompt-guidance-fragments.test.d.ts +2 -0
  990. package/dist/hooks/__tests__/prompt-guidance-fragments.test.d.ts.map +1 -0
  991. package/dist/hooks/__tests__/prompt-guidance-fragments.test.js +48 -0
  992. package/dist/hooks/__tests__/prompt-guidance-fragments.test.js.map +1 -0
  993. package/dist/hooks/__tests__/prompt-guidance-scenarios.test.d.ts +2 -0
  994. package/dist/hooks/__tests__/prompt-guidance-scenarios.test.d.ts.map +1 -0
  995. package/dist/hooks/__tests__/prompt-guidance-scenarios.test.js +11 -0
  996. package/dist/hooks/__tests__/prompt-guidance-scenarios.test.js.map +1 -0
  997. package/dist/hooks/__tests__/prompt-guidance-test-helpers.d.ts +5 -0
  998. package/dist/hooks/__tests__/prompt-guidance-test-helpers.d.ts.map +1 -0
  999. package/dist/hooks/__tests__/prompt-guidance-test-helpers.js +34 -0
  1000. package/dist/hooks/__tests__/prompt-guidance-test-helpers.js.map +1 -0
  1001. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.d.ts +2 -0
  1002. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.d.ts.map +1 -0
  1003. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js +81 -0
  1004. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js.map +1 -0
  1005. package/dist/hooks/__tests__/prompt-orchestration-boundary.test.d.ts +2 -0
  1006. package/dist/hooks/__tests__/prompt-orchestration-boundary.test.d.ts.map +1 -0
  1007. package/dist/hooks/__tests__/prompt-orchestration-boundary.test.js +38 -0
  1008. package/dist/hooks/__tests__/prompt-orchestration-boundary.test.js.map +1 -0
  1009. package/dist/hooks/__tests__/prompt-refactor-contract.test.d.ts +2 -0
  1010. package/dist/hooks/__tests__/prompt-refactor-contract.test.d.ts.map +1 -0
  1011. package/dist/hooks/__tests__/prompt-refactor-contract.test.js +22 -0
  1012. package/dist/hooks/__tests__/prompt-refactor-contract.test.js.map +1 -0
  1013. package/dist/hooks/__tests__/prompt-team-routing.test.d.ts +2 -0
  1014. package/dist/hooks/__tests__/prompt-team-routing.test.d.ts.map +1 -0
  1015. package/dist/hooks/__tests__/prompt-team-routing.test.js +49 -0
  1016. package/dist/hooks/__tests__/prompt-team-routing.test.js.map +1 -0
  1017. package/dist/hooks/__tests__/research-workflow-boundaries.test.d.ts +2 -0
  1018. package/dist/hooks/__tests__/research-workflow-boundaries.test.d.ts.map +1 -0
  1019. package/dist/hooks/__tests__/research-workflow-boundaries.test.js +35 -0
  1020. package/dist/hooks/__tests__/research-workflow-boundaries.test.js.map +1 -0
  1021. package/dist/hooks/__tests__/session.test.d.ts +2 -0
  1022. package/dist/hooks/__tests__/session.test.d.ts.map +1 -0
  1023. package/dist/hooks/__tests__/session.test.js +504 -0
  1024. package/dist/hooks/__tests__/session.test.js.map +1 -0
  1025. package/dist/hooks/__tests__/skill-catalog-hygiene.test.d.ts +2 -0
  1026. package/dist/hooks/__tests__/skill-catalog-hygiene.test.d.ts.map +1 -0
  1027. package/dist/hooks/__tests__/skill-catalog-hygiene.test.js +84 -0
  1028. package/dist/hooks/__tests__/skill-catalog-hygiene.test.js.map +1 -0
  1029. package/dist/hooks/__tests__/skill-guidance-contract.test.d.ts +2 -0
  1030. package/dist/hooks/__tests__/skill-guidance-contract.test.d.ts.map +1 -0
  1031. package/dist/hooks/__tests__/skill-guidance-contract.test.js +89 -0
  1032. package/dist/hooks/__tests__/skill-guidance-contract.test.js.map +1 -0
  1033. package/dist/hooks/__tests__/task-size-detector.test.d.ts +2 -0
  1034. package/dist/hooks/__tests__/task-size-detector.test.d.ts.map +1 -0
  1035. package/dist/hooks/__tests__/task-size-detector.test.js +330 -0
  1036. package/dist/hooks/__tests__/task-size-detector.test.js.map +1 -0
  1037. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.d.ts +2 -0
  1038. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.d.ts.map +1 -0
  1039. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.js +28 -0
  1040. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.js.map +1 -0
  1041. package/dist/hooks/__tests__/tmux-hook-engine-types-sync.test.d.ts +2 -0
  1042. package/dist/hooks/__tests__/tmux-hook-engine-types-sync.test.d.ts.map +1 -0
  1043. package/dist/hooks/__tests__/tmux-hook-engine-types-sync.test.js +24 -0
  1044. package/dist/hooks/__tests__/tmux-hook-engine-types-sync.test.js.map +1 -0
  1045. package/dist/hooks/__tests__/tmux-hook-engine.test.d.ts +2 -0
  1046. package/dist/hooks/__tests__/tmux-hook-engine.test.d.ts.map +1 -0
  1047. package/dist/hooks/__tests__/tmux-hook-engine.test.js +403 -0
  1048. package/dist/hooks/__tests__/tmux-hook-engine.test.js.map +1 -0
  1049. package/dist/hooks/__tests__/triage-config.test.d.ts +2 -0
  1050. package/dist/hooks/__tests__/triage-config.test.d.ts.map +1 -0
  1051. package/dist/hooks/__tests__/triage-config.test.js +211 -0
  1052. package/dist/hooks/__tests__/triage-config.test.js.map +1 -0
  1053. package/dist/hooks/__tests__/triage-heuristic.test.d.ts +2 -0
  1054. package/dist/hooks/__tests__/triage-heuristic.test.d.ts.map +1 -0
  1055. package/dist/hooks/__tests__/triage-heuristic.test.js +285 -0
  1056. package/dist/hooks/__tests__/triage-heuristic.test.js.map +1 -0
  1057. package/dist/hooks/__tests__/triage-state.test.d.ts +2 -0
  1058. package/dist/hooks/__tests__/triage-state.test.d.ts.map +1 -0
  1059. package/dist/hooks/__tests__/triage-state.test.js +426 -0
  1060. package/dist/hooks/__tests__/triage-state.test.js.map +1 -0
  1061. package/dist/hooks/__tests__/visual-ralph-skill.test.d.ts +2 -0
  1062. package/dist/hooks/__tests__/visual-ralph-skill.test.d.ts.map +1 -0
  1063. package/dist/hooks/__tests__/visual-ralph-skill.test.js +44 -0
  1064. package/dist/hooks/__tests__/visual-ralph-skill.test.js.map +1 -0
  1065. package/dist/hooks/__tests__/visual-verdict-loop.test.d.ts +2 -0
  1066. package/dist/hooks/__tests__/visual-verdict-loop.test.d.ts.map +1 -0
  1067. package/dist/hooks/__tests__/visual-verdict-loop.test.js +31 -0
  1068. package/dist/hooks/__tests__/visual-verdict-loop.test.js.map +1 -0
  1069. package/dist/hooks/__tests__/wiki-docs-contract.test.d.ts +2 -0
  1070. package/dist/hooks/__tests__/wiki-docs-contract.test.d.ts.map +1 -0
  1071. package/dist/hooks/__tests__/wiki-docs-contract.test.js +35 -0
  1072. package/dist/hooks/__tests__/wiki-docs-contract.test.js.map +1 -0
  1073. package/dist/hooks/agents-overlay.d.ts +51 -0
  1074. package/dist/hooks/agents-overlay.d.ts.map +1 -0
  1075. package/dist/hooks/agents-overlay.js +547 -0
  1076. package/dist/hooks/agents-overlay.js.map +1 -0
  1077. package/dist/hooks/code-simplifier/__tests__/index.test.d.ts +2 -0
  1078. package/dist/hooks/code-simplifier/__tests__/index.test.d.ts.map +1 -0
  1079. package/dist/hooks/code-simplifier/__tests__/index.test.js +187 -0
  1080. package/dist/hooks/code-simplifier/__tests__/index.test.js.map +1 -0
  1081. package/dist/hooks/code-simplifier/index.d.ts +80 -0
  1082. package/dist/hooks/code-simplifier/index.d.ts.map +1 -0
  1083. package/dist/hooks/code-simplifier/index.js +172 -0
  1084. package/dist/hooks/code-simplifier/index.js.map +1 -0
  1085. package/dist/hooks/codebase-map.d.ts +23 -0
  1086. package/dist/hooks/codebase-map.d.ts.map +1 -0
  1087. package/dist/hooks/codebase-map.js +234 -0
  1088. package/dist/hooks/codebase-map.js.map +1 -0
  1089. package/dist/hooks/deep-interview-config-instruction.d.ts +3 -0
  1090. package/dist/hooks/deep-interview-config-instruction.d.ts.map +1 -0
  1091. package/dist/hooks/deep-interview-config-instruction.js +47 -0
  1092. package/dist/hooks/deep-interview-config-instruction.js.map +1 -0
  1093. package/dist/hooks/explore-routing.d.ts +5 -0
  1094. package/dist/hooks/explore-routing.d.ts.map +1 -0
  1095. package/dist/hooks/explore-routing.js +37 -0
  1096. package/dist/hooks/explore-routing.js.map +1 -0
  1097. package/dist/hooks/extensibility/__tests__/dispatcher.test.d.ts +2 -0
  1098. package/dist/hooks/extensibility/__tests__/dispatcher.test.d.ts.map +1 -0
  1099. package/dist/hooks/extensibility/__tests__/dispatcher.test.js +265 -0
  1100. package/dist/hooks/extensibility/__tests__/dispatcher.test.js.map +1 -0
  1101. package/dist/hooks/extensibility/__tests__/events.test.d.ts +2 -0
  1102. package/dist/hooks/extensibility/__tests__/events.test.d.ts.map +1 -0
  1103. package/dist/hooks/extensibility/__tests__/events.test.js +125 -0
  1104. package/dist/hooks/extensibility/__tests__/events.test.js.map +1 -0
  1105. package/dist/hooks/extensibility/__tests__/example-hook-plugins.test.d.ts +2 -0
  1106. package/dist/hooks/extensibility/__tests__/example-hook-plugins.test.d.ts.map +1 -0
  1107. package/dist/hooks/extensibility/__tests__/example-hook-plugins.test.js +153 -0
  1108. package/dist/hooks/extensibility/__tests__/example-hook-plugins.test.js.map +1 -0
  1109. package/dist/hooks/extensibility/__tests__/loader.test.d.ts +2 -0
  1110. package/dist/hooks/extensibility/__tests__/loader.test.d.ts.map +1 -0
  1111. package/dist/hooks/extensibility/__tests__/loader.test.js +254 -0
  1112. package/dist/hooks/extensibility/__tests__/loader.test.js.map +1 -0
  1113. package/dist/hooks/extensibility/__tests__/logging.test.d.ts +2 -0
  1114. package/dist/hooks/extensibility/__tests__/logging.test.d.ts.map +1 -0
  1115. package/dist/hooks/extensibility/__tests__/logging.test.js +74 -0
  1116. package/dist/hooks/extensibility/__tests__/logging.test.js.map +1 -0
  1117. package/dist/hooks/extensibility/__tests__/plugin-runner.test.d.ts +2 -0
  1118. package/dist/hooks/extensibility/__tests__/plugin-runner.test.d.ts.map +1 -0
  1119. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js +344 -0
  1120. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js.map +1 -0
  1121. package/dist/hooks/extensibility/__tests__/runtime.test.d.ts +2 -0
  1122. package/dist/hooks/extensibility/__tests__/runtime.test.d.ts.map +1 -0
  1123. package/dist/hooks/extensibility/__tests__/runtime.test.js +198 -0
  1124. package/dist/hooks/extensibility/__tests__/runtime.test.js.map +1 -0
  1125. package/dist/hooks/extensibility/__tests__/sdk-public-surface.test.d.ts +2 -0
  1126. package/dist/hooks/extensibility/__tests__/sdk-public-surface.test.d.ts.map +1 -0
  1127. package/dist/hooks/extensibility/__tests__/sdk-public-surface.test.js +32 -0
  1128. package/dist/hooks/extensibility/__tests__/sdk-public-surface.test.js.map +1 -0
  1129. package/dist/hooks/extensibility/__tests__/sdk.test.d.ts +2 -0
  1130. package/dist/hooks/extensibility/__tests__/sdk.test.d.ts.map +1 -0
  1131. package/dist/hooks/extensibility/__tests__/sdk.test.js +479 -0
  1132. package/dist/hooks/extensibility/__tests__/sdk.test.js.map +1 -0
  1133. package/dist/hooks/extensibility/dispatcher.d.ts +4 -0
  1134. package/dist/hooks/extensibility/dispatcher.d.ts.map +1 -0
  1135. package/dist/hooks/extensibility/dispatcher.js +302 -0
  1136. package/dist/hooks/extensibility/dispatcher.js.map +1 -0
  1137. package/dist/hooks/extensibility/events.d.ts +18 -0
  1138. package/dist/hooks/extensibility/events.d.ts.map +1 -0
  1139. package/dist/hooks/extensibility/events.js +53 -0
  1140. package/dist/hooks/extensibility/events.js.map +1 -0
  1141. package/dist/hooks/extensibility/index.d.ts +6 -0
  1142. package/dist/hooks/extensibility/index.d.ts.map +1 -0
  1143. package/dist/hooks/extensibility/index.js +6 -0
  1144. package/dist/hooks/extensibility/index.js.map +1 -0
  1145. package/dist/hooks/extensibility/loader.d.ts +14 -0
  1146. package/dist/hooks/extensibility/loader.d.ts.map +1 -0
  1147. package/dist/hooks/extensibility/loader.js +117 -0
  1148. package/dist/hooks/extensibility/loader.js.map +1 -0
  1149. package/dist/hooks/extensibility/logging.d.ts +4 -0
  1150. package/dist/hooks/extensibility/logging.d.ts.map +1 -0
  1151. package/dist/hooks/extensibility/logging.js +22 -0
  1152. package/dist/hooks/extensibility/logging.js.map +1 -0
  1153. package/dist/hooks/extensibility/plugin-runner-stdin.d.ts +2 -0
  1154. package/dist/hooks/extensibility/plugin-runner-stdin.d.ts.map +1 -0
  1155. package/dist/hooks/extensibility/plugin-runner-stdin.js +16 -0
  1156. package/dist/hooks/extensibility/plugin-runner-stdin.js.map +1 -0
  1157. package/dist/hooks/extensibility/plugin-runner.d.ts +2 -0
  1158. package/dist/hooks/extensibility/plugin-runner.d.ts.map +1 -0
  1159. package/dist/hooks/extensibility/plugin-runner.js +63 -0
  1160. package/dist/hooks/extensibility/plugin-runner.js.map +1 -0
  1161. package/dist/hooks/extensibility/runtime.d.ts +3 -0
  1162. package/dist/hooks/extensibility/runtime.d.ts.map +1 -0
  1163. package/dist/hooks/extensibility/runtime.js +42 -0
  1164. package/dist/hooks/extensibility/runtime.js.map +1 -0
  1165. package/dist/hooks/extensibility/sdk/logging.d.ts +6 -0
  1166. package/dist/hooks/extensibility/sdk/logging.d.ts.map +1 -0
  1167. package/dist/hooks/extensibility/sdk/logging.js +32 -0
  1168. package/dist/hooks/extensibility/sdk/logging.js.map +1 -0
  1169. package/dist/hooks/extensibility/sdk/paths.d.ts +7 -0
  1170. package/dist/hooks/extensibility/sdk/paths.d.ts.map +1 -0
  1171. package/dist/hooks/extensibility/sdk/paths.js +23 -0
  1172. package/dist/hooks/extensibility/sdk/paths.js.map +1 -0
  1173. package/dist/hooks/extensibility/sdk/plugin-state.d.ts +5 -0
  1174. package/dist/hooks/extensibility/sdk/plugin-state.d.ts.map +1 -0
  1175. package/dist/hooks/extensibility/sdk/plugin-state.js +66 -0
  1176. package/dist/hooks/extensibility/sdk/plugin-state.js.map +1 -0
  1177. package/dist/hooks/extensibility/sdk/runtime-state.d.ts +3 -0
  1178. package/dist/hooks/extensibility/sdk/runtime-state.d.ts.map +1 -0
  1179. package/dist/hooks/extensibility/sdk/runtime-state.js +47 -0
  1180. package/dist/hooks/extensibility/sdk/runtime-state.js.map +1 -0
  1181. package/dist/hooks/extensibility/sdk/tmux.d.ts +10 -0
  1182. package/dist/hooks/extensibility/sdk/tmux.d.ts.map +1 -0
  1183. package/dist/hooks/extensibility/sdk/tmux.js +181 -0
  1184. package/dist/hooks/extensibility/sdk/tmux.js.map +1 -0
  1185. package/dist/hooks/extensibility/sdk.d.ts +11 -0
  1186. package/dist/hooks/extensibility/sdk.d.ts.map +1 -0
  1187. package/dist/hooks/extensibility/sdk.js +21 -0
  1188. package/dist/hooks/extensibility/sdk.js.map +1 -0
  1189. package/dist/hooks/extensibility/types.d.ts +175 -0
  1190. package/dist/hooks/extensibility/types.d.ts.map +1 -0
  1191. package/dist/hooks/extensibility/types.js +2 -0
  1192. package/dist/hooks/extensibility/types.js.map +1 -0
  1193. package/dist/hooks/keyword-detector.d.ts +170 -0
  1194. package/dist/hooks/keyword-detector.d.ts.map +1 -0
  1195. package/dist/hooks/keyword-detector.js +1363 -0
  1196. package/dist/hooks/keyword-detector.js.map +1 -0
  1197. package/dist/hooks/keyword-registry.d.ts +15 -0
  1198. package/dist/hooks/keyword-registry.d.ts.map +1 -0
  1199. package/dist/hooks/keyword-registry.js +56 -0
  1200. package/dist/hooks/keyword-registry.js.map +1 -0
  1201. package/dist/hooks/prompt-guidance-contract.d.ts +20 -0
  1202. package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -0
  1203. package/dist/hooks/prompt-guidance-contract.js +380 -0
  1204. package/dist/hooks/prompt-guidance-contract.js.map +1 -0
  1205. package/dist/hooks/session.d.ts +83 -0
  1206. package/dist/hooks/session.d.ts.map +1 -0
  1207. package/dist/hooks/session.js +412 -0
  1208. package/dist/hooks/session.js.map +1 -0
  1209. package/dist/hooks/task-size-detector.d.ts +72 -0
  1210. package/dist/hooks/task-size-detector.d.ts.map +1 -0
  1211. package/dist/hooks/task-size-detector.js +203 -0
  1212. package/dist/hooks/task-size-detector.js.map +1 -0
  1213. package/dist/hooks/triage-config.d.ts +33 -0
  1214. package/dist/hooks/triage-config.d.ts.map +1 -0
  1215. package/dist/hooks/triage-config.js +87 -0
  1216. package/dist/hooks/triage-config.js.map +1 -0
  1217. package/dist/hooks/triage-heuristic.d.ts +20 -0
  1218. package/dist/hooks/triage-heuristic.d.ts.map +1 -0
  1219. package/dist/hooks/triage-heuristic.js +287 -0
  1220. package/dist/hooks/triage-heuristic.js.map +1 -0
  1221. package/dist/hooks/triage-state.d.ts +63 -0
  1222. package/dist/hooks/triage-state.d.ts.map +1 -0
  1223. package/dist/hooks/triage-state.js +139 -0
  1224. package/dist/hooks/triage-state.js.map +1 -0
  1225. package/dist/hud/__tests__/authority.test.d.ts +2 -0
  1226. package/dist/hud/__tests__/authority.test.d.ts.map +1 -0
  1227. package/dist/hud/__tests__/authority.test.js +527 -0
  1228. package/dist/hud/__tests__/authority.test.js.map +1 -0
  1229. package/dist/hud/__tests__/colors.test.d.ts +2 -0
  1230. package/dist/hud/__tests__/colors.test.d.ts.map +1 -0
  1231. package/dist/hud/__tests__/colors.test.js +92 -0
  1232. package/dist/hud/__tests__/colors.test.js.map +1 -0
  1233. package/dist/hud/__tests__/hud-tmux-injection.test.d.ts +10 -0
  1234. package/dist/hud/__tests__/hud-tmux-injection.test.d.ts.map +1 -0
  1235. package/dist/hud/__tests__/hud-tmux-injection.test.js +185 -0
  1236. package/dist/hud/__tests__/hud-tmux-injection.test.js.map +1 -0
  1237. package/dist/hud/__tests__/index.test.d.ts +2 -0
  1238. package/dist/hud/__tests__/index.test.d.ts.map +1 -0
  1239. package/dist/hud/__tests__/index.test.js +684 -0
  1240. package/dist/hud/__tests__/index.test.js.map +1 -0
  1241. package/dist/hud/__tests__/reconcile.test.d.ts +2 -0
  1242. package/dist/hud/__tests__/reconcile.test.d.ts.map +1 -0
  1243. package/dist/hud/__tests__/reconcile.test.js +1621 -0
  1244. package/dist/hud/__tests__/reconcile.test.js.map +1 -0
  1245. package/dist/hud/__tests__/render.test.d.ts +2 -0
  1246. package/dist/hud/__tests__/render.test.d.ts.map +1 -0
  1247. package/dist/hud/__tests__/render.test.js +983 -0
  1248. package/dist/hud/__tests__/render.test.js.map +1 -0
  1249. package/dist/hud/__tests__/resource-leak-watch.test.d.ts +2 -0
  1250. package/dist/hud/__tests__/resource-leak-watch.test.d.ts.map +1 -0
  1251. package/dist/hud/__tests__/resource-leak-watch.test.js +28 -0
  1252. package/dist/hud/__tests__/resource-leak-watch.test.js.map +1 -0
  1253. package/dist/hud/__tests__/state.test.d.ts +2 -0
  1254. package/dist/hud/__tests__/state.test.d.ts.map +1 -0
  1255. package/dist/hud/__tests__/state.test.js +1212 -0
  1256. package/dist/hud/__tests__/state.test.js.map +1 -0
  1257. package/dist/hud/__tests__/tmux.test.d.ts +2 -0
  1258. package/dist/hud/__tests__/tmux.test.d.ts.map +1 -0
  1259. package/dist/hud/__tests__/tmux.test.js +679 -0
  1260. package/dist/hud/__tests__/tmux.test.js.map +1 -0
  1261. package/dist/hud/__tests__/types.test.d.ts +2 -0
  1262. package/dist/hud/__tests__/types.test.d.ts.map +1 -0
  1263. package/dist/hud/__tests__/types.test.js +79 -0
  1264. package/dist/hud/__tests__/types.test.js.map +1 -0
  1265. package/dist/hud/__tests__/watch.test.d.ts +2 -0
  1266. package/dist/hud/__tests__/watch.test.d.ts.map +1 -0
  1267. package/dist/hud/__tests__/watch.test.js +63 -0
  1268. package/dist/hud/__tests__/watch.test.js.map +1 -0
  1269. package/dist/hud/authority.d.ts +22 -0
  1270. package/dist/hud/authority.d.ts.map +1 -0
  1271. package/dist/hud/authority.js +377 -0
  1272. package/dist/hud/authority.js.map +1 -0
  1273. package/dist/hud/colors.d.ts +20 -0
  1274. package/dist/hud/colors.d.ts.map +1 -0
  1275. package/dist/hud/colors.js +60 -0
  1276. package/dist/hud/colors.js.map +1 -0
  1277. package/dist/hud/constants.d.ts +16 -0
  1278. package/dist/hud/constants.d.ts.map +1 -0
  1279. package/dist/hud/constants.js +25 -0
  1280. package/dist/hud/constants.js.map +1 -0
  1281. package/dist/hud/index.d.ts +79 -0
  1282. package/dist/hud/index.d.ts.map +1 -0
  1283. package/dist/hud/index.js +384 -0
  1284. package/dist/hud/index.js.map +1 -0
  1285. package/dist/hud/reconcile.d.ts +37 -0
  1286. package/dist/hud/reconcile.d.ts.map +1 -0
  1287. package/dist/hud/reconcile.js +326 -0
  1288. package/dist/hud/reconcile.js.map +1 -0
  1289. package/dist/hud/render.d.ts +15 -0
  1290. package/dist/hud/render.d.ts.map +1 -0
  1291. package/dist/hud/render.js +453 -0
  1292. package/dist/hud/render.js.map +1 -0
  1293. package/dist/hud/state.d.ts +27 -0
  1294. package/dist/hud/state.d.ts.map +1 -0
  1295. package/dist/hud/state.js +477 -0
  1296. package/dist/hud/state.js.map +1 -0
  1297. package/dist/hud/tmux.d.ts +87 -0
  1298. package/dist/hud/tmux.d.ts.map +1 -0
  1299. package/dist/hud/tmux.js +572 -0
  1300. package/dist/hud/tmux.js.map +1 -0
  1301. package/dist/hud/types.d.ts +165 -0
  1302. package/dist/hud/types.d.ts.map +1 -0
  1303. package/dist/hud/types.js +14 -0
  1304. package/dist/hud/types.js.map +1 -0
  1305. package/dist/imagegen/continuation.d.ts +44 -0
  1306. package/dist/imagegen/continuation.d.ts.map +1 -0
  1307. package/dist/imagegen/continuation.js +220 -0
  1308. package/dist/imagegen/continuation.js.map +1 -0
  1309. package/dist/index.d.ts +19 -0
  1310. package/dist/index.d.ts.map +1 -0
  1311. package/dist/index.js +19 -0
  1312. package/dist/index.js.map +1 -0
  1313. package/dist/mcp/__tests__/bootstrap.test.d.ts +2 -0
  1314. package/dist/mcp/__tests__/bootstrap.test.d.ts.map +1 -0
  1315. package/dist/mcp/__tests__/bootstrap.test.js +372 -0
  1316. package/dist/mcp/__tests__/bootstrap.test.js.map +1 -0
  1317. package/dist/mcp/__tests__/code-intel-server.test.d.ts +2 -0
  1318. package/dist/mcp/__tests__/code-intel-server.test.d.ts.map +1 -0
  1319. package/dist/mcp/__tests__/code-intel-server.test.js +70 -0
  1320. package/dist/mcp/__tests__/code-intel-server.test.js.map +1 -0
  1321. package/dist/mcp/__tests__/hermes-bridge.test.d.ts +2 -0
  1322. package/dist/mcp/__tests__/hermes-bridge.test.d.ts.map +1 -0
  1323. package/dist/mcp/__tests__/hermes-bridge.test.js +651 -0
  1324. package/dist/mcp/__tests__/hermes-bridge.test.js.map +1 -0
  1325. package/dist/mcp/__tests__/memory-server.test.d.ts +2 -0
  1326. package/dist/mcp/__tests__/memory-server.test.d.ts.map +1 -0
  1327. package/dist/mcp/__tests__/memory-server.test.js +36 -0
  1328. package/dist/mcp/__tests__/memory-server.test.js.map +1 -0
  1329. package/dist/mcp/__tests__/memory-validation.test.d.ts +2 -0
  1330. package/dist/mcp/__tests__/memory-validation.test.d.ts.map +1 -0
  1331. package/dist/mcp/__tests__/memory-validation.test.js +29 -0
  1332. package/dist/mcp/__tests__/memory-validation.test.js.map +1 -0
  1333. package/dist/mcp/__tests__/path-traversal.test.d.ts +2 -0
  1334. package/dist/mcp/__tests__/path-traversal.test.d.ts.map +1 -0
  1335. package/dist/mcp/__tests__/path-traversal.test.js +83 -0
  1336. package/dist/mcp/__tests__/path-traversal.test.js.map +1 -0
  1337. package/dist/mcp/__tests__/server-lifecycle.test.d.ts +2 -0
  1338. package/dist/mcp/__tests__/server-lifecycle.test.d.ts.map +1 -0
  1339. package/dist/mcp/__tests__/server-lifecycle.test.js +308 -0
  1340. package/dist/mcp/__tests__/server-lifecycle.test.js.map +1 -0
  1341. package/dist/mcp/__tests__/state-paths.test.d.ts +2 -0
  1342. package/dist/mcp/__tests__/state-paths.test.d.ts.map +1 -0
  1343. package/dist/mcp/__tests__/state-paths.test.js +477 -0
  1344. package/dist/mcp/__tests__/state-paths.test.js.map +1 -0
  1345. package/dist/mcp/__tests__/state-server-ralph-phase.test.d.ts +2 -0
  1346. package/dist/mcp/__tests__/state-server-ralph-phase.test.d.ts.map +1 -0
  1347. package/dist/mcp/__tests__/state-server-ralph-phase.test.js +109 -0
  1348. package/dist/mcp/__tests__/state-server-ralph-phase.test.js.map +1 -0
  1349. package/dist/mcp/__tests__/state-server-schema.test.d.ts +2 -0
  1350. package/dist/mcp/__tests__/state-server-schema.test.d.ts.map +1 -0
  1351. package/dist/mcp/__tests__/state-server-schema.test.js +29 -0
  1352. package/dist/mcp/__tests__/state-server-schema.test.js.map +1 -0
  1353. package/dist/mcp/__tests__/state-server-team-tools.test.d.ts +2 -0
  1354. package/dist/mcp/__tests__/state-server-team-tools.test.d.ts.map +1 -0
  1355. package/dist/mcp/__tests__/state-server-team-tools.test.js +35 -0
  1356. package/dist/mcp/__tests__/state-server-team-tools.test.js.map +1 -0
  1357. package/dist/mcp/__tests__/state-server.test.d.ts +2 -0
  1358. package/dist/mcp/__tests__/state-server.test.d.ts.map +1 -0
  1359. package/dist/mcp/__tests__/state-server.test.js +1318 -0
  1360. package/dist/mcp/__tests__/state-server.test.js.map +1 -0
  1361. package/dist/mcp/__tests__/trace-server.test.d.ts +2 -0
  1362. package/dist/mcp/__tests__/trace-server.test.d.ts.map +1 -0
  1363. package/dist/mcp/__tests__/trace-server.test.js +119 -0
  1364. package/dist/mcp/__tests__/trace-server.test.js.map +1 -0
  1365. package/dist/mcp/__tests__/wiki-server.test.d.ts +2 -0
  1366. package/dist/mcp/__tests__/wiki-server.test.d.ts.map +1 -0
  1367. package/dist/mcp/__tests__/wiki-server.test.js +126 -0
  1368. package/dist/mcp/__tests__/wiki-server.test.js.map +1 -0
  1369. package/dist/mcp/bootstrap.d.ts +44 -0
  1370. package/dist/mcp/bootstrap.d.ts.map +1 -0
  1371. package/dist/mcp/bootstrap.js +520 -0
  1372. package/dist/mcp/bootstrap.js.map +1 -0
  1373. package/dist/mcp/code-intel-server.d.ts +333 -0
  1374. package/dist/mcp/code-intel-server.d.ts.map +1 -0
  1375. package/dist/mcp/code-intel-server.js +605 -0
  1376. package/dist/mcp/code-intel-server.js.map +1 -0
  1377. package/dist/mcp/hermes-bridge.d.ts +124 -0
  1378. package/dist/mcp/hermes-bridge.d.ts.map +1 -0
  1379. package/dist/mcp/hermes-bridge.js +549 -0
  1380. package/dist/mcp/hermes-bridge.js.map +1 -0
  1381. package/dist/mcp/hermes-server.d.ts +374 -0
  1382. package/dist/mcp/hermes-server.d.ts.map +1 -0
  1383. package/dist/mcp/hermes-server.js +158 -0
  1384. package/dist/mcp/hermes-server.js.map +1 -0
  1385. package/dist/mcp/lifecycle-telemetry.d.ts +16 -0
  1386. package/dist/mcp/lifecycle-telemetry.d.ts.map +1 -0
  1387. package/dist/mcp/lifecycle-telemetry.js +95 -0
  1388. package/dist/mcp/lifecycle-telemetry.js.map +1 -0
  1389. package/dist/mcp/memory-server.d.ts +201 -0
  1390. package/dist/mcp/memory-server.d.ts.map +1 -0
  1391. package/dist/mcp/memory-server.js +441 -0
  1392. package/dist/mcp/memory-server.js.map +1 -0
  1393. package/dist/mcp/memory-validation.d.ts +9 -0
  1394. package/dist/mcp/memory-validation.d.ts.map +1 -0
  1395. package/dist/mcp/memory-validation.js +11 -0
  1396. package/dist/mcp/memory-validation.js.map +1 -0
  1397. package/dist/mcp/state-paths.d.ts +91 -0
  1398. package/dist/mcp/state-paths.d.ts.map +1 -0
  1399. package/dist/mcp/state-paths.js +473 -0
  1400. package/dist/mcp/state-paths.js.map +1 -0
  1401. package/dist/mcp/state-server.d.ts +222 -0
  1402. package/dist/mcp/state-server.d.ts.map +1 -0
  1403. package/dist/mcp/state-server.js +181 -0
  1404. package/dist/mcp/state-server.js.map +1 -0
  1405. package/dist/mcp/trace-server.d.ts +81 -0
  1406. package/dist/mcp/trace-server.d.ts.map +1 -0
  1407. package/dist/mcp/trace-server.js +271 -0
  1408. package/dist/mcp/trace-server.js.map +1 -0
  1409. package/dist/mcp/wiki-server.d.ts +181 -0
  1410. package/dist/mcp/wiki-server.d.ts.map +1 -0
  1411. package/dist/mcp/wiki-server.js +244 -0
  1412. package/dist/mcp/wiki-server.js.map +1 -0
  1413. package/dist/modes/__tests__/base-autopilot-gates.test.d.ts +2 -0
  1414. package/dist/modes/__tests__/base-autopilot-gates.test.d.ts.map +1 -0
  1415. package/dist/modes/__tests__/base-autopilot-gates.test.js +154 -0
  1416. package/dist/modes/__tests__/base-autopilot-gates.test.js.map +1 -0
  1417. package/dist/modes/__tests__/base-autoresearch-contract.test.d.ts +2 -0
  1418. package/dist/modes/__tests__/base-autoresearch-contract.test.d.ts.map +1 -0
  1419. package/dist/modes/__tests__/base-autoresearch-contract.test.js +129 -0
  1420. package/dist/modes/__tests__/base-autoresearch-contract.test.js.map +1 -0
  1421. package/dist/modes/__tests__/base-multi-state-compat.test.d.ts +2 -0
  1422. package/dist/modes/__tests__/base-multi-state-compat.test.d.ts.map +1 -0
  1423. package/dist/modes/__tests__/base-multi-state-compat.test.js +38 -0
  1424. package/dist/modes/__tests__/base-multi-state-compat.test.js.map +1 -0
  1425. package/dist/modes/__tests__/base-ralph-contract.test.d.ts +2 -0
  1426. package/dist/modes/__tests__/base-ralph-contract.test.d.ts.map +1 -0
  1427. package/dist/modes/__tests__/base-ralph-contract.test.js +64 -0
  1428. package/dist/modes/__tests__/base-ralph-contract.test.js.map +1 -0
  1429. package/dist/modes/__tests__/base-session-scope.test.d.ts +2 -0
  1430. package/dist/modes/__tests__/base-session-scope.test.d.ts.map +1 -0
  1431. package/dist/modes/__tests__/base-session-scope.test.js +146 -0
  1432. package/dist/modes/__tests__/base-session-scope.test.js.map +1 -0
  1433. package/dist/modes/__tests__/base-tmux-pane.test.d.ts +2 -0
  1434. package/dist/modes/__tests__/base-tmux-pane.test.d.ts.map +1 -0
  1435. package/dist/modes/__tests__/base-tmux-pane.test.js +100 -0
  1436. package/dist/modes/__tests__/base-tmux-pane.test.js.map +1 -0
  1437. package/dist/modes/base.d.ts +60 -0
  1438. package/dist/modes/base.d.ts.map +1 -0
  1439. package/dist/modes/base.js +346 -0
  1440. package/dist/modes/base.js.map +1 -0
  1441. package/dist/notifications/__tests__/config.test.d.ts +2 -0
  1442. package/dist/notifications/__tests__/config.test.d.ts.map +1 -0
  1443. package/dist/notifications/__tests__/config.test.js +269 -0
  1444. package/dist/notifications/__tests__/config.test.js.map +1 -0
  1445. package/dist/notifications/__tests__/custom-alias-enablement.test.d.ts +2 -0
  1446. package/dist/notifications/__tests__/custom-alias-enablement.test.d.ts.map +1 -0
  1447. package/dist/notifications/__tests__/custom-alias-enablement.test.js +84 -0
  1448. package/dist/notifications/__tests__/custom-alias-enablement.test.js.map +1 -0
  1449. package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts +5 -0
  1450. package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts.map +1 -0
  1451. package/dist/notifications/__tests__/dispatch-cooldown.test.js +100 -0
  1452. package/dist/notifications/__tests__/dispatch-cooldown.test.js.map +1 -0
  1453. package/dist/notifications/__tests__/dispatcher.test.d.ts +2 -0
  1454. package/dist/notifications/__tests__/dispatcher.test.d.ts.map +1 -0
  1455. package/dist/notifications/__tests__/dispatcher.test.js +202 -0
  1456. package/dist/notifications/__tests__/dispatcher.test.js.map +1 -0
  1457. package/dist/notifications/__tests__/formatter.test.d.ts +2 -0
  1458. package/dist/notifications/__tests__/formatter.test.d.ts.map +1 -0
  1459. package/dist/notifications/__tests__/formatter.test.js +270 -0
  1460. package/dist/notifications/__tests__/formatter.test.js.map +1 -0
  1461. package/dist/notifications/__tests__/hook-config.test.d.ts +5 -0
  1462. package/dist/notifications/__tests__/hook-config.test.d.ts.map +1 -0
  1463. package/dist/notifications/__tests__/hook-config.test.js +139 -0
  1464. package/dist/notifications/__tests__/hook-config.test.js.map +1 -0
  1465. package/dist/notifications/__tests__/http-client-resource.test.d.ts +2 -0
  1466. package/dist/notifications/__tests__/http-client-resource.test.d.ts.map +1 -0
  1467. package/dist/notifications/__tests__/http-client-resource.test.js +41 -0
  1468. package/dist/notifications/__tests__/http-client-resource.test.js.map +1 -0
  1469. package/dist/notifications/__tests__/http-client.test.d.ts +2 -0
  1470. package/dist/notifications/__tests__/http-client.test.d.ts.map +1 -0
  1471. package/dist/notifications/__tests__/http-client.test.js +90 -0
  1472. package/dist/notifications/__tests__/http-client.test.js.map +1 -0
  1473. package/dist/notifications/__tests__/idle-cooldown.test.d.ts +5 -0
  1474. package/dist/notifications/__tests__/idle-cooldown.test.d.ts.map +1 -0
  1475. package/dist/notifications/__tests__/idle-cooldown.test.js +209 -0
  1476. package/dist/notifications/__tests__/idle-cooldown.test.js.map +1 -0
  1477. package/dist/notifications/__tests__/index.test.d.ts +2 -0
  1478. package/dist/notifications/__tests__/index.test.d.ts.map +1 -0
  1479. package/dist/notifications/__tests__/index.test.js +188 -0
  1480. package/dist/notifications/__tests__/index.test.js.map +1 -0
  1481. package/dist/notifications/__tests__/lifecycle-dedupe.test.d.ts +2 -0
  1482. package/dist/notifications/__tests__/lifecycle-dedupe.test.d.ts.map +1 -0
  1483. package/dist/notifications/__tests__/lifecycle-dedupe.test.js +86 -0
  1484. package/dist/notifications/__tests__/lifecycle-dedupe.test.js.map +1 -0
  1485. package/dist/notifications/__tests__/notifier.test.d.ts +2 -0
  1486. package/dist/notifications/__tests__/notifier.test.d.ts.map +1 -0
  1487. package/dist/notifications/__tests__/notifier.test.js +201 -0
  1488. package/dist/notifications/__tests__/notifier.test.js.map +1 -0
  1489. package/dist/notifications/__tests__/profiles.test.d.ts +2 -0
  1490. package/dist/notifications/__tests__/profiles.test.d.ts.map +1 -0
  1491. package/dist/notifications/__tests__/profiles.test.js +404 -0
  1492. package/dist/notifications/__tests__/profiles.test.js.map +1 -0
  1493. package/dist/notifications/__tests__/reply-config.test.d.ts +2 -0
  1494. package/dist/notifications/__tests__/reply-config.test.d.ts.map +1 -0
  1495. package/dist/notifications/__tests__/reply-config.test.js +79 -0
  1496. package/dist/notifications/__tests__/reply-config.test.js.map +1 -0
  1497. package/dist/notifications/__tests__/reply-listener.test.d.ts +2 -0
  1498. package/dist/notifications/__tests__/reply-listener.test.d.ts.map +1 -0
  1499. package/dist/notifications/__tests__/reply-listener.test.js +723 -0
  1500. package/dist/notifications/__tests__/reply-listener.test.js.map +1 -0
  1501. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.d.ts +2 -0
  1502. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.d.ts.map +1 -0
  1503. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.js +93 -0
  1504. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.js.map +1 -0
  1505. package/dist/notifications/__tests__/session-registry.test.d.ts +2 -0
  1506. package/dist/notifications/__tests__/session-registry.test.d.ts.map +1 -0
  1507. package/dist/notifications/__tests__/session-registry.test.js +234 -0
  1508. package/dist/notifications/__tests__/session-registry.test.js.map +1 -0
  1509. package/dist/notifications/__tests__/session-status.test.d.ts +2 -0
  1510. package/dist/notifications/__tests__/session-status.test.d.ts.map +1 -0
  1511. package/dist/notifications/__tests__/session-status.test.js +249 -0
  1512. package/dist/notifications/__tests__/session-status.test.js.map +1 -0
  1513. package/dist/notifications/__tests__/temp-mode.test.d.ts +2 -0
  1514. package/dist/notifications/__tests__/temp-mode.test.d.ts.map +1 -0
  1515. package/dist/notifications/__tests__/temp-mode.test.js +172 -0
  1516. package/dist/notifications/__tests__/temp-mode.test.js.map +1 -0
  1517. package/dist/notifications/__tests__/template-engine.test.d.ts +5 -0
  1518. package/dist/notifications/__tests__/template-engine.test.d.ts.map +1 -0
  1519. package/dist/notifications/__tests__/template-engine.test.js +158 -0
  1520. package/dist/notifications/__tests__/template-engine.test.js.map +1 -0
  1521. package/dist/notifications/__tests__/tmux-detector.test.d.ts +2 -0
  1522. package/dist/notifications/__tests__/tmux-detector.test.d.ts.map +1 -0
  1523. package/dist/notifications/__tests__/tmux-detector.test.js +204 -0
  1524. package/dist/notifications/__tests__/tmux-detector.test.js.map +1 -0
  1525. package/dist/notifications/__tests__/tmux.test.d.ts +2 -0
  1526. package/dist/notifications/__tests__/tmux.test.d.ts.map +1 -0
  1527. package/dist/notifications/__tests__/tmux.test.js +285 -0
  1528. package/dist/notifications/__tests__/tmux.test.js.map +1 -0
  1529. package/dist/notifications/__tests__/verbosity.test.d.ts +2 -0
  1530. package/dist/notifications/__tests__/verbosity.test.d.ts.map +1 -0
  1531. package/dist/notifications/__tests__/verbosity.test.js +257 -0
  1532. package/dist/notifications/__tests__/verbosity.test.js.map +1 -0
  1533. package/dist/notifications/config.d.ts +65 -0
  1534. package/dist/notifications/config.d.ts.map +1 -0
  1535. package/dist/notifications/config.js +615 -0
  1536. package/dist/notifications/config.js.map +1 -0
  1537. package/dist/notifications/dispatch-cooldown.d.ts +36 -0
  1538. package/dist/notifications/dispatch-cooldown.d.ts.map +1 -0
  1539. package/dist/notifications/dispatch-cooldown.js +109 -0
  1540. package/dist/notifications/dispatch-cooldown.js.map +1 -0
  1541. package/dist/notifications/dispatcher.d.ts +15 -0
  1542. package/dist/notifications/dispatcher.d.ts.map +1 -0
  1543. package/dist/notifications/dispatcher.js +385 -0
  1544. package/dist/notifications/dispatcher.js.map +1 -0
  1545. package/dist/notifications/formatter.d.ts +30 -0
  1546. package/dist/notifications/formatter.d.ts.map +1 -0
  1547. package/dist/notifications/formatter.js +234 -0
  1548. package/dist/notifications/formatter.js.map +1 -0
  1549. package/dist/notifications/hook-config-types.d.ts +43 -0
  1550. package/dist/notifications/hook-config-types.d.ts.map +1 -0
  1551. package/dist/notifications/hook-config-types.js +8 -0
  1552. package/dist/notifications/hook-config-types.js.map +1 -0
  1553. package/dist/notifications/hook-config.d.ts +40 -0
  1554. package/dist/notifications/hook-config.d.ts.map +1 -0
  1555. package/dist/notifications/hook-config.js +127 -0
  1556. package/dist/notifications/hook-config.js.map +1 -0
  1557. package/dist/notifications/http-client.d.ts +22 -0
  1558. package/dist/notifications/http-client.d.ts.map +1 -0
  1559. package/dist/notifications/http-client.js +349 -0
  1560. package/dist/notifications/http-client.js.map +1 -0
  1561. package/dist/notifications/idle-cooldown.d.ts +61 -0
  1562. package/dist/notifications/idle-cooldown.d.ts.map +1 -0
  1563. package/dist/notifications/idle-cooldown.js +207 -0
  1564. package/dist/notifications/idle-cooldown.js.map +1 -0
  1565. package/dist/notifications/index.d.ts +40 -0
  1566. package/dist/notifications/index.d.ts.map +1 -0
  1567. package/dist/notifications/index.js +228 -0
  1568. package/dist/notifications/index.js.map +1 -0
  1569. package/dist/notifications/lifecycle-dedupe.d.ts +8 -0
  1570. package/dist/notifications/lifecycle-dedupe.d.ts.map +1 -0
  1571. package/dist/notifications/lifecycle-dedupe.js +112 -0
  1572. package/dist/notifications/lifecycle-dedupe.js.map +1 -0
  1573. package/dist/notifications/notifier.d.ts +45 -0
  1574. package/dist/notifications/notifier.d.ts.map +1 -0
  1575. package/dist/notifications/notifier.js +146 -0
  1576. package/dist/notifications/notifier.js.map +1 -0
  1577. package/dist/notifications/reply-listener.d.ts +123 -0
  1578. package/dist/notifications/reply-listener.d.ts.map +1 -0
  1579. package/dist/notifications/reply-listener.js +846 -0
  1580. package/dist/notifications/reply-listener.js.map +1 -0
  1581. package/dist/notifications/session-registry.d.ts +26 -0
  1582. package/dist/notifications/session-registry.d.ts.map +1 -0
  1583. package/dist/notifications/session-registry.js +293 -0
  1584. package/dist/notifications/session-registry.js.map +1 -0
  1585. package/dist/notifications/session-status.d.ts +25 -0
  1586. package/dist/notifications/session-status.d.ts.map +1 -0
  1587. package/dist/notifications/session-status.js +202 -0
  1588. package/dist/notifications/session-status.js.map +1 -0
  1589. package/dist/notifications/temp-contract.d.ts +22 -0
  1590. package/dist/notifications/temp-contract.d.ts.map +1 -0
  1591. package/dist/notifications/temp-contract.js +147 -0
  1592. package/dist/notifications/temp-contract.js.map +1 -0
  1593. package/dist/notifications/template-engine.d.ts +34 -0
  1594. package/dist/notifications/template-engine.d.ts.map +1 -0
  1595. package/dist/notifications/template-engine.js +249 -0
  1596. package/dist/notifications/template-engine.js.map +1 -0
  1597. package/dist/notifications/tmux-detector.d.ts +59 -0
  1598. package/dist/notifications/tmux-detector.d.ts.map +1 -0
  1599. package/dist/notifications/tmux-detector.js +126 -0
  1600. package/dist/notifications/tmux-detector.js.map +1 -0
  1601. package/dist/notifications/tmux.d.ts +44 -0
  1602. package/dist/notifications/tmux.d.ts.map +1 -0
  1603. package/dist/notifications/tmux.js +293 -0
  1604. package/dist/notifications/tmux.js.map +1 -0
  1605. package/dist/notifications/types.d.ts +226 -0
  1606. package/dist/notifications/types.d.ts.map +1 -0
  1607. package/dist/notifications/types.js +9 -0
  1608. package/dist/notifications/types.js.map +1 -0
  1609. package/dist/openclaw/__tests__/config.test.d.ts +6 -0
  1610. package/dist/openclaw/__tests__/config.test.d.ts.map +1 -0
  1611. package/dist/openclaw/__tests__/config.test.js +344 -0
  1612. package/dist/openclaw/__tests__/config.test.js.map +1 -0
  1613. package/dist/openclaw/__tests__/dispatcher.test.d.ts +5 -0
  1614. package/dist/openclaw/__tests__/dispatcher.test.d.ts.map +1 -0
  1615. package/dist/openclaw/__tests__/dispatcher.test.js +278 -0
  1616. package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -0
  1617. package/dist/openclaw/__tests__/index.test.d.ts +6 -0
  1618. package/dist/openclaw/__tests__/index.test.d.ts.map +1 -0
  1619. package/dist/openclaw/__tests__/index.test.js +382 -0
  1620. package/dist/openclaw/__tests__/index.test.js.map +1 -0
  1621. package/dist/openclaw/config.d.ts +59 -0
  1622. package/dist/openclaw/config.d.ts.map +1 -0
  1623. package/dist/openclaw/config.js +400 -0
  1624. package/dist/openclaw/config.js.map +1 -0
  1625. package/dist/openclaw/dispatcher.d.ts +75 -0
  1626. package/dist/openclaw/dispatcher.d.ts.map +1 -0
  1627. package/dist/openclaw/dispatcher.js +223 -0
  1628. package/dist/openclaw/dispatcher.js.map +1 -0
  1629. package/dist/openclaw/index.d.ts +29 -0
  1630. package/dist/openclaw/index.d.ts.map +1 -0
  1631. package/dist/openclaw/index.js +149 -0
  1632. package/dist/openclaw/index.js.map +1 -0
  1633. package/dist/openclaw/types.d.ts +123 -0
  1634. package/dist/openclaw/types.d.ts.map +1 -0
  1635. package/dist/openclaw/types.js +12 -0
  1636. package/dist/openclaw/types.js.map +1 -0
  1637. package/dist/performance-goal/artifacts.d.ts +76 -0
  1638. package/dist/performance-goal/artifacts.d.ts.map +1 -0
  1639. package/dist/performance-goal/artifacts.js +221 -0
  1640. package/dist/performance-goal/artifacts.js.map +1 -0
  1641. package/dist/pipeline/__tests__/orchestrator.test.d.ts +2 -0
  1642. package/dist/pipeline/__tests__/orchestrator.test.d.ts.map +1 -0
  1643. package/dist/pipeline/__tests__/orchestrator.test.js +645 -0
  1644. package/dist/pipeline/__tests__/orchestrator.test.js.map +1 -0
  1645. package/dist/pipeline/__tests__/stages.test.d.ts +2 -0
  1646. package/dist/pipeline/__tests__/stages.test.d.ts.map +1 -0
  1647. package/dist/pipeline/__tests__/stages.test.js +1638 -0
  1648. package/dist/pipeline/__tests__/stages.test.js.map +1 -0
  1649. package/dist/pipeline/index.d.ts +25 -0
  1650. package/dist/pipeline/index.d.ts.map +1 -0
  1651. package/dist/pipeline/index.js +17 -0
  1652. package/dist/pipeline/index.js.map +1 -0
  1653. package/dist/pipeline/orchestrator.d.ts +52 -0
  1654. package/dist/pipeline/orchestrator.d.ts.map +1 -0
  1655. package/dist/pipeline/orchestrator.js +392 -0
  1656. package/dist/pipeline/orchestrator.js.map +1 -0
  1657. package/dist/pipeline/review-verdict.d.ts +3 -0
  1658. package/dist/pipeline/review-verdict.d.ts.map +1 -0
  1659. package/dist/pipeline/review-verdict.js +14 -0
  1660. package/dist/pipeline/review-verdict.js.map +1 -0
  1661. package/dist/pipeline/stages/code-review.d.ts +35 -0
  1662. package/dist/pipeline/stages/code-review.d.ts.map +1 -0
  1663. package/dist/pipeline/stages/code-review.js +55 -0
  1664. package/dist/pipeline/stages/code-review.js.map +1 -0
  1665. package/dist/pipeline/stages/deep-interview.d.ts +15 -0
  1666. package/dist/pipeline/stages/deep-interview.d.ts.map +1 -0
  1667. package/dist/pipeline/stages/deep-interview.js +32 -0
  1668. package/dist/pipeline/stages/deep-interview.js.map +1 -0
  1669. package/dist/pipeline/stages/ralph-verify.d.ts +53 -0
  1670. package/dist/pipeline/stages/ralph-verify.d.ts.map +1 -0
  1671. package/dist/pipeline/stages/ralph-verify.js +89 -0
  1672. package/dist/pipeline/stages/ralph-verify.js.map +1 -0
  1673. package/dist/pipeline/stages/ralplan.d.ts +26 -0
  1674. package/dist/pipeline/stages/ralplan.d.ts.map +1 -0
  1675. package/dist/pipeline/stages/ralplan.js +151 -0
  1676. package/dist/pipeline/stages/ralplan.js.map +1 -0
  1677. package/dist/pipeline/stages/team-exec.d.ts +52 -0
  1678. package/dist/pipeline/stages/team-exec.d.ts.map +1 -0
  1679. package/dist/pipeline/stages/team-exec.js +266 -0
  1680. package/dist/pipeline/stages/team-exec.js.map +1 -0
  1681. package/dist/pipeline/stages/ultragoal.d.ts +19 -0
  1682. package/dist/pipeline/stages/ultragoal.d.ts.map +1 -0
  1683. package/dist/pipeline/stages/ultragoal.js +38 -0
  1684. package/dist/pipeline/stages/ultragoal.js.map +1 -0
  1685. package/dist/pipeline/stages/ultraqa.d.ts +33 -0
  1686. package/dist/pipeline/stages/ultraqa.d.ts.map +1 -0
  1687. package/dist/pipeline/stages/ultraqa.js +49 -0
  1688. package/dist/pipeline/stages/ultraqa.js.map +1 -0
  1689. package/dist/pipeline/types.d.ts +124 -0
  1690. package/dist/pipeline/types.d.ts.map +1 -0
  1691. package/dist/pipeline/types.js +8 -0
  1692. package/dist/pipeline/types.js.map +1 -0
  1693. package/dist/planning/__tests__/approved-execution-lifecycle-matrix.test.d.ts +2 -0
  1694. package/dist/planning/__tests__/approved-execution-lifecycle-matrix.test.d.ts.map +1 -0
  1695. package/dist/planning/__tests__/approved-execution-lifecycle-matrix.test.js +158 -0
  1696. package/dist/planning/__tests__/approved-execution-lifecycle-matrix.test.js.map +1 -0
  1697. package/dist/planning/__tests__/approved-launch-hint-lineage-matrix.test.d.ts +2 -0
  1698. package/dist/planning/__tests__/approved-launch-hint-lineage-matrix.test.d.ts.map +1 -0
  1699. package/dist/planning/__tests__/approved-launch-hint-lineage-matrix.test.js +440 -0
  1700. package/dist/planning/__tests__/approved-launch-hint-lineage-matrix.test.js.map +1 -0
  1701. package/dist/planning/__tests__/artifacts.test.d.ts +2 -0
  1702. package/dist/planning/__tests__/artifacts.test.d.ts.map +1 -0
  1703. package/dist/planning/__tests__/artifacts.test.js +942 -0
  1704. package/dist/planning/__tests__/artifacts.test.js.map +1 -0
  1705. package/dist/planning/__tests__/markdown-structure.test.d.ts +2 -0
  1706. package/dist/planning/__tests__/markdown-structure.test.d.ts.map +1 -0
  1707. package/dist/planning/__tests__/markdown-structure.test.js +459 -0
  1708. package/dist/planning/__tests__/markdown-structure.test.js.map +1 -0
  1709. package/dist/planning/artifact-names.d.ts +13 -0
  1710. package/dist/planning/artifact-names.d.ts.map +1 -0
  1711. package/dist/planning/artifact-names.js +108 -0
  1712. package/dist/planning/artifact-names.js.map +1 -0
  1713. package/dist/planning/artifacts.d.ts +65 -0
  1714. package/dist/planning/artifacts.d.ts.map +1 -0
  1715. package/dist/planning/artifacts.js +561 -0
  1716. package/dist/planning/artifacts.js.map +1 -0
  1717. package/dist/planning/markdown-structure.d.ts +20 -0
  1718. package/dist/planning/markdown-structure.d.ts.map +1 -0
  1719. package/dist/planning/markdown-structure.js +137 -0
  1720. package/dist/planning/markdown-structure.js.map +1 -0
  1721. package/dist/question/__tests__/client.test.d.ts +2 -0
  1722. package/dist/question/__tests__/client.test.d.ts.map +1 -0
  1723. package/dist/question/__tests__/client.test.js +90 -0
  1724. package/dist/question/__tests__/client.test.js.map +1 -0
  1725. package/dist/question/__tests__/deep-interview.test.d.ts +2 -0
  1726. package/dist/question/__tests__/deep-interview.test.d.ts.map +1 -0
  1727. package/dist/question/__tests__/deep-interview.test.js +440 -0
  1728. package/dist/question/__tests__/deep-interview.test.js.map +1 -0
  1729. package/dist/question/__tests__/policy.test.d.ts +2 -0
  1730. package/dist/question/__tests__/policy.test.d.ts.map +1 -0
  1731. package/dist/question/__tests__/policy.test.js +273 -0
  1732. package/dist/question/__tests__/policy.test.js.map +1 -0
  1733. package/dist/question/__tests__/renderer.test.d.ts +2 -0
  1734. package/dist/question/__tests__/renderer.test.d.ts.map +1 -0
  1735. package/dist/question/__tests__/renderer.test.js +1461 -0
  1736. package/dist/question/__tests__/renderer.test.js.map +1 -0
  1737. package/dist/question/__tests__/state.test.d.ts +2 -0
  1738. package/dist/question/__tests__/state.test.d.ts.map +1 -0
  1739. package/dist/question/__tests__/state.test.js +541 -0
  1740. package/dist/question/__tests__/state.test.js.map +1 -0
  1741. package/dist/question/__tests__/types.test.d.ts +2 -0
  1742. package/dist/question/__tests__/types.test.d.ts.map +1 -0
  1743. package/dist/question/__tests__/types.test.js +65 -0
  1744. package/dist/question/__tests__/types.test.js.map +1 -0
  1745. package/dist/question/__tests__/ui.test.d.ts +2 -0
  1746. package/dist/question/__tests__/ui.test.d.ts.map +1 -0
  1747. package/dist/question/__tests__/ui.test.js +483 -0
  1748. package/dist/question/__tests__/ui.test.js.map +1 -0
  1749. package/dist/question/autopilot-wait.d.ts +21 -0
  1750. package/dist/question/autopilot-wait.d.ts.map +1 -0
  1751. package/dist/question/autopilot-wait.js +251 -0
  1752. package/dist/question/autopilot-wait.js.map +1 -0
  1753. package/dist/question/client.d.ts +64 -0
  1754. package/dist/question/client.d.ts.map +1 -0
  1755. package/dist/question/client.js +77 -0
  1756. package/dist/question/client.js.map +1 -0
  1757. package/dist/question/deep-interview.d.ts +33 -0
  1758. package/dist/question/deep-interview.d.ts.map +1 -0
  1759. package/dist/question/deep-interview.js +216 -0
  1760. package/dist/question/deep-interview.js.map +1 -0
  1761. package/dist/question/events.d.ts +53 -0
  1762. package/dist/question/events.d.ts.map +1 -0
  1763. package/dist/question/events.js +201 -0
  1764. package/dist/question/events.js.map +1 -0
  1765. package/dist/question/policy.d.ts +19 -0
  1766. package/dist/question/policy.d.ts.map +1 -0
  1767. package/dist/question/policy.js +95 -0
  1768. package/dist/question/policy.js.map +1 -0
  1769. package/dist/question/renderer.d.ts +66 -0
  1770. package/dist/question/renderer.d.ts.map +1 -0
  1771. package/dist/question/renderer.js +748 -0
  1772. package/dist/question/renderer.js.map +1 -0
  1773. package/dist/question/state.d.ts +56 -0
  1774. package/dist/question/state.d.ts.map +1 -0
  1775. package/dist/question/state.js +432 -0
  1776. package/dist/question/state.js.map +1 -0
  1777. package/dist/question/types.d.ts +92 -0
  1778. package/dist/question/types.d.ts.map +1 -0
  1779. package/dist/question/types.js +117 -0
  1780. package/dist/question/types.js.map +1 -0
  1781. package/dist/question/ui.d.ts +66 -0
  1782. package/dist/question/ui.d.ts.map +1 -0
  1783. package/dist/question/ui.js +458 -0
  1784. package/dist/question/ui.js.map +1 -0
  1785. package/dist/ralph/__tests__/completion-audit.test.d.ts +2 -0
  1786. package/dist/ralph/__tests__/completion-audit.test.d.ts.map +1 -0
  1787. package/dist/ralph/__tests__/completion-audit.test.js +160 -0
  1788. package/dist/ralph/__tests__/completion-audit.test.js.map +1 -0
  1789. package/dist/ralph/__tests__/persistence.test.d.ts +2 -0
  1790. package/dist/ralph/__tests__/persistence.test.d.ts.map +1 -0
  1791. package/dist/ralph/__tests__/persistence.test.js +116 -0
  1792. package/dist/ralph/__tests__/persistence.test.js.map +1 -0
  1793. package/dist/ralph/completion-audit.d.ts +8 -0
  1794. package/dist/ralph/completion-audit.d.ts.map +1 -0
  1795. package/dist/ralph/completion-audit.js +99 -0
  1796. package/dist/ralph/completion-audit.js.map +1 -0
  1797. package/dist/ralph/contract.d.ts +17 -0
  1798. package/dist/ralph/contract.d.ts.map +1 -0
  1799. package/dist/ralph/contract.js +108 -0
  1800. package/dist/ralph/contract.js.map +1 -0
  1801. package/dist/ralph/persistence.d.ts +29 -0
  1802. package/dist/ralph/persistence.d.ts.map +1 -0
  1803. package/dist/ralph/persistence.js +273 -0
  1804. package/dist/ralph/persistence.js.map +1 -0
  1805. package/dist/ralplan/__tests__/consensus-gate.test.d.ts +2 -0
  1806. package/dist/ralplan/__tests__/consensus-gate.test.d.ts.map +1 -0
  1807. package/dist/ralplan/__tests__/consensus-gate.test.js +192 -0
  1808. package/dist/ralplan/__tests__/consensus-gate.test.js.map +1 -0
  1809. package/dist/ralplan/__tests__/runtime.test.d.ts +2 -0
  1810. package/dist/ralplan/__tests__/runtime.test.d.ts.map +1 -0
  1811. package/dist/ralplan/__tests__/runtime.test.js +548 -0
  1812. package/dist/ralplan/__tests__/runtime.test.js.map +1 -0
  1813. package/dist/ralplan/consensus-gate.d.ts +37 -0
  1814. package/dist/ralplan/consensus-gate.d.ts.map +1 -0
  1815. package/dist/ralplan/consensus-gate.js +422 -0
  1816. package/dist/ralplan/consensus-gate.js.map +1 -0
  1817. package/dist/ralplan/runtime.d.ts +86 -0
  1818. package/dist/ralplan/runtime.d.ts.map +1 -0
  1819. package/dist/ralplan/runtime.js +365 -0
  1820. package/dist/ralplan/runtime.js.map +1 -0
  1821. package/dist/runtime/__tests__/bridge.test.d.ts +2 -0
  1822. package/dist/runtime/__tests__/bridge.test.d.ts.map +1 -0
  1823. package/dist/runtime/__tests__/bridge.test.js +194 -0
  1824. package/dist/runtime/__tests__/bridge.test.js.map +1 -0
  1825. package/dist/runtime/__tests__/process-tree.test.d.ts +2 -0
  1826. package/dist/runtime/__tests__/process-tree.test.d.ts.map +1 -0
  1827. package/dist/runtime/__tests__/process-tree.test.js +107 -0
  1828. package/dist/runtime/__tests__/process-tree.test.js.map +1 -0
  1829. package/dist/runtime/__tests__/run-loop.test.d.ts +2 -0
  1830. package/dist/runtime/__tests__/run-loop.test.d.ts.map +1 -0
  1831. package/dist/runtime/__tests__/run-loop.test.js +35 -0
  1832. package/dist/runtime/__tests__/run-loop.test.js.map +1 -0
  1833. package/dist/runtime/__tests__/run-outcome.test.d.ts +2 -0
  1834. package/dist/runtime/__tests__/run-outcome.test.d.ts.map +1 -0
  1835. package/dist/runtime/__tests__/run-outcome.test.js +102 -0
  1836. package/dist/runtime/__tests__/run-outcome.test.js.map +1 -0
  1837. package/dist/runtime/__tests__/run-state.test.d.ts +2 -0
  1838. package/dist/runtime/__tests__/run-state.test.d.ts.map +1 -0
  1839. package/dist/runtime/__tests__/run-state.test.js +37 -0
  1840. package/dist/runtime/__tests__/run-state.test.js.map +1 -0
  1841. package/dist/runtime/bridge.d.ts +214 -0
  1842. package/dist/runtime/bridge.d.ts.map +1 -0
  1843. package/dist/runtime/bridge.js +223 -0
  1844. package/dist/runtime/bridge.js.map +1 -0
  1845. package/dist/runtime/process-tree.d.ts +28 -0
  1846. package/dist/runtime/process-tree.d.ts.map +1 -0
  1847. package/dist/runtime/process-tree.js +230 -0
  1848. package/dist/runtime/process-tree.js.map +1 -0
  1849. package/dist/runtime/run-loop.d.ts +45 -0
  1850. package/dist/runtime/run-loop.d.ts.map +1 -0
  1851. package/dist/runtime/run-loop.js +51 -0
  1852. package/dist/runtime/run-loop.js.map +1 -0
  1853. package/dist/runtime/run-outcome.d.ts +46 -0
  1854. package/dist/runtime/run-outcome.d.ts.map +1 -0
  1855. package/dist/runtime/run-outcome.js +285 -0
  1856. package/dist/runtime/run-outcome.js.map +1 -0
  1857. package/dist/runtime/run-state.d.ts +40 -0
  1858. package/dist/runtime/run-state.d.ts.map +1 -0
  1859. package/dist/runtime/run-state.js +120 -0
  1860. package/dist/runtime/run-state.js.map +1 -0
  1861. package/dist/runtime/terminal-lifecycle.d.ts +11 -0
  1862. package/dist/runtime/terminal-lifecycle.d.ts.map +1 -0
  1863. package/dist/runtime/terminal-lifecycle.js +52 -0
  1864. package/dist/runtime/terminal-lifecycle.js.map +1 -0
  1865. package/dist/scripts/__tests__/codex-native-hook.test.d.ts +2 -0
  1866. package/dist/scripts/__tests__/codex-native-hook.test.d.ts.map +1 -0
  1867. package/dist/scripts/__tests__/codex-native-hook.test.js +14253 -0
  1868. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -0
  1869. package/dist/scripts/__tests__/docs-site-contract.test.d.ts +2 -0
  1870. package/dist/scripts/__tests__/docs-site-contract.test.d.ts.map +1 -0
  1871. package/dist/scripts/__tests__/docs-site-contract.test.js +42 -0
  1872. package/dist/scripts/__tests__/docs-site-contract.test.js.map +1 -0
  1873. package/dist/scripts/__tests__/generate-release-body.test.d.ts +2 -0
  1874. package/dist/scripts/__tests__/generate-release-body.test.d.ts.map +1 -0
  1875. package/dist/scripts/__tests__/generate-release-body.test.js +233 -0
  1876. package/dist/scripts/__tests__/generate-release-body.test.js.map +1 -0
  1877. package/dist/scripts/__tests__/hook-derived-watcher.test.d.ts +2 -0
  1878. package/dist/scripts/__tests__/hook-derived-watcher.test.d.ts.map +1 -0
  1879. package/dist/scripts/__tests__/hook-derived-watcher.test.js +227 -0
  1880. package/dist/scripts/__tests__/hook-derived-watcher.test.js.map +1 -0
  1881. package/dist/scripts/__tests__/notify-dispatcher.test.d.ts +2 -0
  1882. package/dist/scripts/__tests__/notify-dispatcher.test.d.ts.map +1 -0
  1883. package/dist/scripts/__tests__/notify-dispatcher.test.js +421 -0
  1884. package/dist/scripts/__tests__/notify-dispatcher.test.js.map +1 -0
  1885. package/dist/scripts/__tests__/notify-state-io.test.d.ts +2 -0
  1886. package/dist/scripts/__tests__/notify-state-io.test.d.ts.map +1 -0
  1887. package/dist/scripts/__tests__/notify-state-io.test.js +111 -0
  1888. package/dist/scripts/__tests__/notify-state-io.test.js.map +1 -0
  1889. package/dist/scripts/__tests__/notify-tmux-injection.test.d.ts +2 -0
  1890. package/dist/scripts/__tests__/notify-tmux-injection.test.d.ts.map +1 -0
  1891. package/dist/scripts/__tests__/notify-tmux-injection.test.js +57 -0
  1892. package/dist/scripts/__tests__/notify-tmux-injection.test.js.map +1 -0
  1893. package/dist/scripts/__tests__/postinstall.test.d.ts +2 -0
  1894. package/dist/scripts/__tests__/postinstall.test.d.ts.map +1 -0
  1895. package/dist/scripts/__tests__/postinstall.test.js +92 -0
  1896. package/dist/scripts/__tests__/postinstall.test.js.map +1 -0
  1897. package/dist/scripts/__tests__/prompt-inventory.test.d.ts +2 -0
  1898. package/dist/scripts/__tests__/prompt-inventory.test.d.ts.map +1 -0
  1899. package/dist/scripts/__tests__/prompt-inventory.test.js +56 -0
  1900. package/dist/scripts/__tests__/prompt-inventory.test.js.map +1 -0
  1901. package/dist/scripts/__tests__/run-test-files.test.d.ts +2 -0
  1902. package/dist/scripts/__tests__/run-test-files.test.d.ts.map +1 -0
  1903. package/dist/scripts/__tests__/run-test-files.test.js +365 -0
  1904. package/dist/scripts/__tests__/run-test-files.test.js.map +1 -0
  1905. package/dist/scripts/__tests__/smoke-packed-install.test.d.ts +2 -0
  1906. package/dist/scripts/__tests__/smoke-packed-install.test.d.ts.map +1 -0
  1907. package/dist/scripts/__tests__/smoke-packed-install.test.js +160 -0
  1908. package/dist/scripts/__tests__/smoke-packed-install.test.js.map +1 -0
  1909. package/dist/scripts/__tests__/test-reply-listener-live.test.d.ts +2 -0
  1910. package/dist/scripts/__tests__/test-reply-listener-live.test.d.ts.map +1 -0
  1911. package/dist/scripts/__tests__/test-reply-listener-live.test.js +82 -0
  1912. package/dist/scripts/__tests__/test-reply-listener-live.test.js.map +1 -0
  1913. package/dist/scripts/__tests__/verify-native-agents.test.d.ts +2 -0
  1914. package/dist/scripts/__tests__/verify-native-agents.test.d.ts.map +1 -0
  1915. package/dist/scripts/__tests__/verify-native-agents.test.js +246 -0
  1916. package/dist/scripts/__tests__/verify-native-agents.test.js.map +1 -0
  1917. package/dist/scripts/build-api.d.ts +2 -0
  1918. package/dist/scripts/build-api.d.ts.map +1 -0
  1919. package/dist/scripts/build-api.js +44 -0
  1920. package/dist/scripts/build-api.js.map +1 -0
  1921. package/dist/scripts/build-explore-harness.d.ts +3 -0
  1922. package/dist/scripts/build-explore-harness.d.ts.map +1 -0
  1923. package/dist/scripts/build-explore-harness.js +50 -0
  1924. package/dist/scripts/build-explore-harness.js.map +1 -0
  1925. package/dist/scripts/build-sparkshell.d.ts +2 -0
  1926. package/dist/scripts/build-sparkshell.d.ts.map +1 -0
  1927. package/dist/scripts/build-sparkshell.js +46 -0
  1928. package/dist/scripts/build-sparkshell.js.map +1 -0
  1929. package/dist/scripts/check-runtime-syntax.d.ts +3 -0
  1930. package/dist/scripts/check-runtime-syntax.d.ts.map +1 -0
  1931. package/dist/scripts/check-runtime-syntax.js +57 -0
  1932. package/dist/scripts/check-runtime-syntax.js.map +1 -0
  1933. package/dist/scripts/check-version-sync.d.ts +3 -0
  1934. package/dist/scripts/check-version-sync.d.ts.map +1 -0
  1935. package/dist/scripts/check-version-sync.js +53 -0
  1936. package/dist/scripts/check-version-sync.js.map +1 -0
  1937. package/dist/scripts/cleanup-explore-harness.d.ts +3 -0
  1938. package/dist/scripts/cleanup-explore-harness.d.ts.map +1 -0
  1939. package/dist/scripts/cleanup-explore-harness.js +17 -0
  1940. package/dist/scripts/cleanup-explore-harness.js.map +1 -0
  1941. package/dist/scripts/codex-execution-surface.d.ts +16 -0
  1942. package/dist/scripts/codex-execution-surface.d.ts.map +1 -0
  1943. package/dist/scripts/codex-execution-surface.js +42 -0
  1944. package/dist/scripts/codex-execution-surface.js.map +1 -0
  1945. package/dist/scripts/codex-native-hook.d.ts +26 -0
  1946. package/dist/scripts/codex-native-hook.d.ts.map +1 -0
  1947. package/dist/scripts/codex-native-hook.js +3842 -0
  1948. package/dist/scripts/codex-native-hook.js.map +1 -0
  1949. package/dist/scripts/codex-native-pre-post.d.ts +46 -0
  1950. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -0
  1951. package/dist/scripts/codex-native-pre-post.js +1186 -0
  1952. package/dist/scripts/codex-native-pre-post.js.map +1 -0
  1953. package/dist/scripts/eval/eval-candidate-handoff.d.ts +2 -0
  1954. package/dist/scripts/eval/eval-candidate-handoff.d.ts.map +1 -0
  1955. package/dist/scripts/eval/eval-candidate-handoff.js +11 -0
  1956. package/dist/scripts/eval/eval-candidate-handoff.js.map +1 -0
  1957. package/dist/scripts/eval/eval-cli-discoverability.d.ts +3 -0
  1958. package/dist/scripts/eval/eval-cli-discoverability.d.ts.map +1 -0
  1959. package/dist/scripts/eval/eval-cli-discoverability.js +37 -0
  1960. package/dist/scripts/eval/eval-cli-discoverability.js.map +1 -0
  1961. package/dist/scripts/eval/eval-fresh-run-tagging.d.ts +2 -0
  1962. package/dist/scripts/eval/eval-fresh-run-tagging.d.ts.map +1 -0
  1963. package/dist/scripts/eval/eval-fresh-run-tagging.js +11 -0
  1964. package/dist/scripts/eval/eval-fresh-run-tagging.js.map +1 -0
  1965. package/dist/scripts/eval/eval-help-consistency.d.ts +2 -0
  1966. package/dist/scripts/eval/eval-help-consistency.d.ts.map +1 -0
  1967. package/dist/scripts/eval/eval-help-consistency.js +12 -0
  1968. package/dist/scripts/eval/eval-help-consistency.js.map +1 -0
  1969. package/dist/scripts/eval/eval-in-action-cat-shellout-demo.d.ts +2 -0
  1970. package/dist/scripts/eval/eval-in-action-cat-shellout-demo.d.ts.map +1 -0
  1971. package/dist/scripts/eval/eval-in-action-cat-shellout-demo.js +31 -0
  1972. package/dist/scripts/eval/eval-in-action-cat-shellout-demo.js.map +1 -0
  1973. package/dist/scripts/eval/eval-parity-smoke.d.ts +2 -0
  1974. package/dist/scripts/eval/eval-parity-smoke.d.ts.map +1 -0
  1975. package/dist/scripts/eval/eval-parity-smoke.js +23 -0
  1976. package/dist/scripts/eval/eval-parity-smoke.js.map +1 -0
  1977. package/dist/scripts/eval/eval-parity-sweep.d.ts +2 -0
  1978. package/dist/scripts/eval/eval-parity-sweep.d.ts.map +1 -0
  1979. package/dist/scripts/eval/eval-parity-sweep.js +29 -0
  1980. package/dist/scripts/eval/eval-parity-sweep.js.map +1 -0
  1981. package/dist/scripts/eval/eval-resume-dirty-guard.d.ts +2 -0
  1982. package/dist/scripts/eval/eval-resume-dirty-guard.d.ts.map +1 -0
  1983. package/dist/scripts/eval/eval-resume-dirty-guard.js +11 -0
  1984. package/dist/scripts/eval/eval-resume-dirty-guard.js.map +1 -0
  1985. package/dist/scripts/eval/eval-security-path-traversal.d.ts +3 -0
  1986. package/dist/scripts/eval/eval-security-path-traversal.d.ts.map +1 -0
  1987. package/dist/scripts/eval/eval-security-path-traversal.js +35 -0
  1988. package/dist/scripts/eval/eval-security-path-traversal.js.map +1 -0
  1989. package/dist/scripts/fixtures/ask-advisor-stub.d.ts +3 -0
  1990. package/dist/scripts/fixtures/ask-advisor-stub.d.ts.map +1 -0
  1991. package/dist/scripts/fixtures/ask-advisor-stub.js +13 -0
  1992. package/dist/scripts/fixtures/ask-advisor-stub.js.map +1 -0
  1993. package/dist/scripts/generate-catalog-docs.d.ts +3 -0
  1994. package/dist/scripts/generate-catalog-docs.d.ts.map +1 -0
  1995. package/dist/scripts/generate-catalog-docs.js +99 -0
  1996. package/dist/scripts/generate-catalog-docs.js.map +1 -0
  1997. package/dist/scripts/generate-native-release-manifest.d.ts +3 -0
  1998. package/dist/scripts/generate-native-release-manifest.d.ts.map +1 -0
  1999. package/dist/scripts/generate-native-release-manifest.js +107 -0
  2000. package/dist/scripts/generate-native-release-manifest.js.map +1 -0
  2001. package/dist/scripts/generate-release-body.d.ts +35 -0
  2002. package/dist/scripts/generate-release-body.d.ts.map +1 -0
  2003. package/dist/scripts/generate-release-body.js +278 -0
  2004. package/dist/scripts/generate-release-body.js.map +1 -0
  2005. package/dist/scripts/hook-derived-watcher.d.ts +3 -0
  2006. package/dist/scripts/hook-derived-watcher.d.ts.map +1 -0
  2007. package/dist/scripts/hook-derived-watcher.js +557 -0
  2008. package/dist/scripts/hook-derived-watcher.js.map +1 -0
  2009. package/dist/scripts/hook-payload-guard.d.ts +9 -0
  2010. package/dist/scripts/hook-payload-guard.d.ts.map +1 -0
  2011. package/dist/scripts/hook-payload-guard.js +111 -0
  2012. package/dist/scripts/hook-payload-guard.js.map +1 -0
  2013. package/dist/scripts/notify-dispatcher.d.ts +7 -0
  2014. package/dist/scripts/notify-dispatcher.d.ts.map +1 -0
  2015. package/dist/scripts/notify-dispatcher.js +359 -0
  2016. package/dist/scripts/notify-dispatcher.js.map +1 -0
  2017. package/dist/scripts/notify-fallback-watcher.d.ts +3 -0
  2018. package/dist/scripts/notify-fallback-watcher.d.ts.map +1 -0
  2019. package/dist/scripts/notify-fallback-watcher.js +1771 -0
  2020. package/dist/scripts/notify-fallback-watcher.js.map +1 -0
  2021. package/dist/scripts/notify-hook/__tests__/operational-events.test.d.ts +2 -0
  2022. package/dist/scripts/notify-hook/__tests__/operational-events.test.d.ts.map +1 -0
  2023. package/dist/scripts/notify-hook/__tests__/operational-events.test.js +24 -0
  2024. package/dist/scripts/notify-hook/__tests__/operational-events.test.js.map +1 -0
  2025. package/dist/scripts/notify-hook/__tests__/payload-guard.test.d.ts +2 -0
  2026. package/dist/scripts/notify-hook/__tests__/payload-guard.test.d.ts.map +1 -0
  2027. package/dist/scripts/notify-hook/__tests__/payload-guard.test.js +39 -0
  2028. package/dist/scripts/notify-hook/__tests__/payload-guard.test.js.map +1 -0
  2029. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.d.ts +2 -0
  2030. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.d.ts.map +1 -0
  2031. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.js +153 -0
  2032. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.js.map +1 -0
  2033. package/dist/scripts/notify-hook/active-team.d.ts +9 -0
  2034. package/dist/scripts/notify-hook/active-team.d.ts.map +1 -0
  2035. package/dist/scripts/notify-hook/active-team.js +45 -0
  2036. package/dist/scripts/notify-hook/active-team.js.map +1 -0
  2037. package/dist/scripts/notify-hook/auto-nudge.d.ts +96 -0
  2038. package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -0
  2039. package/dist/scripts/notify-hook/auto-nudge.js +698 -0
  2040. package/dist/scripts/notify-hook/auto-nudge.js.map +1 -0
  2041. package/dist/scripts/notify-hook/log.d.ts +6 -0
  2042. package/dist/scripts/notify-hook/log.d.ts.map +1 -0
  2043. package/dist/scripts/notify-hook/log.js +22 -0
  2044. package/dist/scripts/notify-hook/log.js.map +1 -0
  2045. package/dist/scripts/notify-hook/managed-tmux.d.ts +21 -0
  2046. package/dist/scripts/notify-hook/managed-tmux.d.ts.map +1 -0
  2047. package/dist/scripts/notify-hook/managed-tmux.js +541 -0
  2048. package/dist/scripts/notify-hook/managed-tmux.js.map +1 -0
  2049. package/dist/scripts/notify-hook/operational-events.d.ts +14 -0
  2050. package/dist/scripts/notify-hook/operational-events.d.ts.map +1 -0
  2051. package/dist/scripts/notify-hook/operational-events.js +255 -0
  2052. package/dist/scripts/notify-hook/operational-events.js.map +1 -0
  2053. package/dist/scripts/notify-hook/orchestration-intent.d.ts +17 -0
  2054. package/dist/scripts/notify-hook/orchestration-intent.d.ts.map +1 -0
  2055. package/dist/scripts/notify-hook/orchestration-intent.js +71 -0
  2056. package/dist/scripts/notify-hook/orchestration-intent.js.map +1 -0
  2057. package/dist/scripts/notify-hook/payload-parser.d.ts +13 -0
  2058. package/dist/scripts/notify-hook/payload-parser.d.ts.map +1 -0
  2059. package/dist/scripts/notify-hook/payload-parser.js +134 -0
  2060. package/dist/scripts/notify-hook/payload-parser.js.map +1 -0
  2061. package/dist/scripts/notify-hook/process-runner.d.ts +9 -0
  2062. package/dist/scripts/notify-hook/process-runner.d.ts.map +1 -0
  2063. package/dist/scripts/notify-hook/process-runner.js +74 -0
  2064. package/dist/scripts/notify-hook/process-runner.js.map +1 -0
  2065. package/dist/scripts/notify-hook/ralph-session-resume.d.ts +22 -0
  2066. package/dist/scripts/notify-hook/ralph-session-resume.d.ts.map +1 -0
  2067. package/dist/scripts/notify-hook/ralph-session-resume.js +381 -0
  2068. package/dist/scripts/notify-hook/ralph-session-resume.js.map +1 -0
  2069. package/dist/scripts/notify-hook/state-io.d.ts +21 -0
  2070. package/dist/scripts/notify-hook/state-io.d.ts.map +1 -0
  2071. package/dist/scripts/notify-hook/state-io.js +169 -0
  2072. package/dist/scripts/notify-hook/state-io.js.map +1 -0
  2073. package/dist/scripts/notify-hook/team-dispatch.d.ts +36 -0
  2074. package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -0
  2075. package/dist/scripts/notify-hook/team-dispatch.js +1084 -0
  2076. package/dist/scripts/notify-hook/team-dispatch.js.map +1 -0
  2077. package/dist/scripts/notify-hook/team-leader-nudge.d.ts +21 -0
  2078. package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -0
  2079. package/dist/scripts/notify-hook/team-leader-nudge.js +1029 -0
  2080. package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -0
  2081. package/dist/scripts/notify-hook/team-tmux-guard.d.ts +15 -0
  2082. package/dist/scripts/notify-hook/team-tmux-guard.d.ts.map +1 -0
  2083. package/dist/scripts/notify-hook/team-tmux-guard.js +205 -0
  2084. package/dist/scripts/notify-hook/team-tmux-guard.js.map +1 -0
  2085. package/dist/scripts/notify-hook/team-worker-posttooluse.d.ts +34 -0
  2086. package/dist/scripts/notify-hook/team-worker-posttooluse.d.ts.map +1 -0
  2087. package/dist/scripts/notify-hook/team-worker-posttooluse.js +434 -0
  2088. package/dist/scripts/notify-hook/team-worker-posttooluse.js.map +1 -0
  2089. package/dist/scripts/notify-hook/team-worker-stop.d.ts +15 -0
  2090. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -0
  2091. package/dist/scripts/notify-hook/team-worker-stop.js +418 -0
  2092. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -0
  2093. package/dist/scripts/notify-hook/team-worker.d.ts +33 -0
  2094. package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -0
  2095. package/dist/scripts/notify-hook/team-worker.js +705 -0
  2096. package/dist/scripts/notify-hook/team-worker.js.map +1 -0
  2097. package/dist/scripts/notify-hook/tmux-injection.d.ts +15 -0
  2098. package/dist/scripts/notify-hook/tmux-injection.d.ts.map +1 -0
  2099. package/dist/scripts/notify-hook/tmux-injection.js +673 -0
  2100. package/dist/scripts/notify-hook/tmux-injection.js.map +1 -0
  2101. package/dist/scripts/notify-hook/utils.d.ts +9 -0
  2102. package/dist/scripts/notify-hook/utils.d.ts.map +1 -0
  2103. package/dist/scripts/notify-hook/utils.js +36 -0
  2104. package/dist/scripts/notify-hook/utils.js.map +1 -0
  2105. package/dist/scripts/notify-hook/visual-verdict.d.ts +29 -0
  2106. package/dist/scripts/notify-hook/visual-verdict.d.ts.map +1 -0
  2107. package/dist/scripts/notify-hook/visual-verdict.js +145 -0
  2108. package/dist/scripts/notify-hook/visual-verdict.js.map +1 -0
  2109. package/dist/scripts/notify-hook.d.ts +20 -0
  2110. package/dist/scripts/notify-hook.d.ts.map +1 -0
  2111. package/dist/scripts/notify-hook.js +950 -0
  2112. package/dist/scripts/notify-hook.js.map +1 -0
  2113. package/dist/scripts/postinstall.d.ts +18 -0
  2114. package/dist/scripts/postinstall.d.ts.map +1 -0
  2115. package/dist/scripts/postinstall.js +66 -0
  2116. package/dist/scripts/postinstall.js.map +1 -0
  2117. package/dist/scripts/prompt-inventory.d.ts +29 -0
  2118. package/dist/scripts/prompt-inventory.d.ts.map +1 -0
  2119. package/dist/scripts/prompt-inventory.js +178 -0
  2120. package/dist/scripts/prompt-inventory.js.map +1 -0
  2121. package/dist/scripts/run-provider-advisor.d.ts +3 -0
  2122. package/dist/scripts/run-provider-advisor.d.ts.map +1 -0
  2123. package/dist/scripts/run-provider-advisor.js +177 -0
  2124. package/dist/scripts/run-provider-advisor.js.map +1 -0
  2125. package/dist/scripts/run-test-files.d.ts +2 -0
  2126. package/dist/scripts/run-test-files.d.ts.map +1 -0
  2127. package/dist/scripts/run-test-files.js +340 -0
  2128. package/dist/scripts/run-test-files.js.map +1 -0
  2129. package/dist/scripts/smoke-packed-install.d.ts +21 -0
  2130. package/dist/scripts/smoke-packed-install.d.ts.map +1 -0
  2131. package/dist/scripts/smoke-packed-install.js +221 -0
  2132. package/dist/scripts/smoke-packed-install.js.map +1 -0
  2133. package/dist/scripts/sync-plugin-mirror.d.ts +14 -0
  2134. package/dist/scripts/sync-plugin-mirror.d.ts.map +1 -0
  2135. package/dist/scripts/sync-plugin-mirror.js +306 -0
  2136. package/dist/scripts/sync-plugin-mirror.js.map +1 -0
  2137. package/dist/scripts/sync-prompt-guidance-fragments.d.ts +3 -0
  2138. package/dist/scripts/sync-prompt-guidance-fragments.d.ts.map +1 -0
  2139. package/dist/scripts/sync-prompt-guidance-fragments.js +50 -0
  2140. package/dist/scripts/sync-prompt-guidance-fragments.js.map +1 -0
  2141. package/dist/scripts/team-hardening-benchmark.d.ts +3 -0
  2142. package/dist/scripts/team-hardening-benchmark.d.ts.map +1 -0
  2143. package/dist/scripts/team-hardening-benchmark.js +91 -0
  2144. package/dist/scripts/team-hardening-benchmark.js.map +1 -0
  2145. package/dist/scripts/test-reply-listener-live.d.ts +24 -0
  2146. package/dist/scripts/test-reply-listener-live.d.ts.map +1 -0
  2147. package/dist/scripts/test-reply-listener-live.js +138 -0
  2148. package/dist/scripts/test-reply-listener-live.js.map +1 -0
  2149. package/dist/scripts/test-sparkshell.d.ts +2 -0
  2150. package/dist/scripts/test-sparkshell.d.ts.map +1 -0
  2151. package/dist/scripts/test-sparkshell.js +25 -0
  2152. package/dist/scripts/test-sparkshell.js.map +1 -0
  2153. package/dist/scripts/tmux-hook-engine.d.ts +45 -0
  2154. package/dist/scripts/tmux-hook-engine.d.ts.map +1 -0
  2155. package/dist/scripts/tmux-hook-engine.js +313 -0
  2156. package/dist/scripts/tmux-hook-engine.js.map +1 -0
  2157. package/dist/scripts/verify-native-agents.d.ts +16 -0
  2158. package/dist/scripts/verify-native-agents.d.ts.map +1 -0
  2159. package/dist/scripts/verify-native-agents.js +247 -0
  2160. package/dist/scripts/verify-native-agents.js.map +1 -0
  2161. package/dist/scripts/verify-native-release-assets.d.ts +3 -0
  2162. package/dist/scripts/verify-native-release-assets.d.ts.map +1 -0
  2163. package/dist/scripts/verify-native-release-assets.js +62 -0
  2164. package/dist/scripts/verify-native-release-assets.js.map +1 -0
  2165. package/dist/session-history/__tests__/search.test.d.ts +2 -0
  2166. package/dist/session-history/__tests__/search.test.d.ts.map +1 -0
  2167. package/dist/session-history/__tests__/search.test.js +150 -0
  2168. package/dist/session-history/__tests__/search.test.js.map +1 -0
  2169. package/dist/session-history/search.d.ts +31 -0
  2170. package/dist/session-history/search.d.ts.map +1 -0
  2171. package/dist/session-history/search.js +331 -0
  2172. package/dist/session-history/search.js.map +1 -0
  2173. package/dist/sidecar/__tests__/boundary.test.d.ts +2 -0
  2174. package/dist/sidecar/__tests__/boundary.test.d.ts.map +1 -0
  2175. package/dist/sidecar/__tests__/boundary.test.js +48 -0
  2176. package/dist/sidecar/__tests__/boundary.test.js.map +1 -0
  2177. package/dist/sidecar/__tests__/collector.test.d.ts +2 -0
  2178. package/dist/sidecar/__tests__/collector.test.d.ts.map +1 -0
  2179. package/dist/sidecar/__tests__/collector.test.js +162 -0
  2180. package/dist/sidecar/__tests__/collector.test.js.map +1 -0
  2181. package/dist/sidecar/__tests__/render.test.d.ts +2 -0
  2182. package/dist/sidecar/__tests__/render.test.d.ts.map +1 -0
  2183. package/dist/sidecar/__tests__/render.test.js +67 -0
  2184. package/dist/sidecar/__tests__/render.test.js.map +1 -0
  2185. package/dist/sidecar/__tests__/resource-leak-watch.test.d.ts +2 -0
  2186. package/dist/sidecar/__tests__/resource-leak-watch.test.d.ts.map +1 -0
  2187. package/dist/sidecar/__tests__/resource-leak-watch.test.js +38 -0
  2188. package/dist/sidecar/__tests__/resource-leak-watch.test.js.map +1 -0
  2189. package/dist/sidecar/__tests__/tmux.test.d.ts +2 -0
  2190. package/dist/sidecar/__tests__/tmux.test.d.ts.map +1 -0
  2191. package/dist/sidecar/__tests__/tmux.test.js +30 -0
  2192. package/dist/sidecar/__tests__/tmux.test.js.map +1 -0
  2193. package/dist/sidecar/__tests__/watch.test.d.ts +2 -0
  2194. package/dist/sidecar/__tests__/watch.test.d.ts.map +1 -0
  2195. package/dist/sidecar/__tests__/watch.test.js +42 -0
  2196. package/dist/sidecar/__tests__/watch.test.js.map +1 -0
  2197. package/dist/sidecar/collector.d.ts +4 -0
  2198. package/dist/sidecar/collector.d.ts.map +1 -0
  2199. package/dist/sidecar/collector.js +377 -0
  2200. package/dist/sidecar/collector.js.map +1 -0
  2201. package/dist/sidecar/index.d.ts +25 -0
  2202. package/dist/sidecar/index.d.ts.map +1 -0
  2203. package/dist/sidecar/index.js +182 -0
  2204. package/dist/sidecar/index.js.map +1 -0
  2205. package/dist/sidecar/render.d.ts +3 -0
  2206. package/dist/sidecar/render.d.ts.map +1 -0
  2207. package/dist/sidecar/render.js +72 -0
  2208. package/dist/sidecar/render.js.map +1 -0
  2209. package/dist/sidecar/tmux.d.ts +13 -0
  2210. package/dist/sidecar/tmux.d.ts.map +1 -0
  2211. package/dist/sidecar/tmux.js +44 -0
  2212. package/dist/sidecar/tmux.js.map +1 -0
  2213. package/dist/sidecar/types.d.ts +125 -0
  2214. package/dist/sidecar/types.d.ts.map +1 -0
  2215. package/dist/sidecar/types.js +2 -0
  2216. package/dist/sidecar/types.js.map +1 -0
  2217. package/dist/state/__tests__/mode-state-context.test.d.ts +2 -0
  2218. package/dist/state/__tests__/mode-state-context.test.d.ts.map +1 -0
  2219. package/dist/state/__tests__/mode-state-context.test.js +35 -0
  2220. package/dist/state/__tests__/mode-state-context.test.js.map +1 -0
  2221. package/dist/state/__tests__/operations-ralph-phase.test.d.ts +2 -0
  2222. package/dist/state/__tests__/operations-ralph-phase.test.d.ts.map +1 -0
  2223. package/dist/state/__tests__/operations-ralph-phase.test.js +190 -0
  2224. package/dist/state/__tests__/operations-ralph-phase.test.js.map +1 -0
  2225. package/dist/state/__tests__/operations.test.d.ts +2 -0
  2226. package/dist/state/__tests__/operations.test.d.ts.map +1 -0
  2227. package/dist/state/__tests__/operations.test.js +2753 -0
  2228. package/dist/state/__tests__/operations.test.js.map +1 -0
  2229. package/dist/state/__tests__/path-traversal.test.d.ts +2 -0
  2230. package/dist/state/__tests__/path-traversal.test.d.ts.map +1 -0
  2231. package/dist/state/__tests__/path-traversal.test.js +49 -0
  2232. package/dist/state/__tests__/path-traversal.test.js.map +1 -0
  2233. package/dist/state/__tests__/planning-gate.test.d.ts +2 -0
  2234. package/dist/state/__tests__/planning-gate.test.d.ts.map +1 -0
  2235. package/dist/state/__tests__/planning-gate.test.js +219 -0
  2236. package/dist/state/__tests__/planning-gate.test.js.map +1 -0
  2237. package/dist/state/__tests__/skill-active.test.d.ts +2 -0
  2238. package/dist/state/__tests__/skill-active.test.d.ts.map +1 -0
  2239. package/dist/state/__tests__/skill-active.test.js +314 -0
  2240. package/dist/state/__tests__/skill-active.test.js.map +1 -0
  2241. package/dist/state/__tests__/workflow-transition.test.d.ts +2 -0
  2242. package/dist/state/__tests__/workflow-transition.test.d.ts.map +1 -0
  2243. package/dist/state/__tests__/workflow-transition.test.js +293 -0
  2244. package/dist/state/__tests__/workflow-transition.test.js.map +1 -0
  2245. package/dist/state/mode-state-context.d.ts +14 -0
  2246. package/dist/state/mode-state-context.d.ts.map +1 -0
  2247. package/dist/state/mode-state-context.js +49 -0
  2248. package/dist/state/mode-state-context.js.map +1 -0
  2249. package/dist/state/operations.d.ts +13 -0
  2250. package/dist/state/operations.d.ts.map +1 -0
  2251. package/dist/state/operations.js +544 -0
  2252. package/dist/state/operations.js.map +1 -0
  2253. package/dist/state/paths.d.ts +3 -0
  2254. package/dist/state/paths.d.ts.map +1 -0
  2255. package/dist/state/paths.js +2 -0
  2256. package/dist/state/paths.js.map +1 -0
  2257. package/dist/state/skill-active.d.ts +64 -0
  2258. package/dist/state/skill-active.d.ts.map +1 -0
  2259. package/dist/state/skill-active.js +375 -0
  2260. package/dist/state/skill-active.js.map +1 -0
  2261. package/dist/state/workflow-transition-reconcile.d.ts +22 -0
  2262. package/dist/state/workflow-transition-reconcile.d.ts.map +1 -0
  2263. package/dist/state/workflow-transition-reconcile.js +144 -0
  2264. package/dist/state/workflow-transition-reconcile.js.map +1 -0
  2265. package/dist/state/workflow-transition.d.ts +45 -0
  2266. package/dist/state/workflow-transition.d.ts.map +1 -0
  2267. package/dist/state/workflow-transition.js +268 -0
  2268. package/dist/state/workflow-transition.js.map +1 -0
  2269. package/dist/subagents/__tests__/tracker.test.d.ts +2 -0
  2270. package/dist/subagents/__tests__/tracker.test.d.ts.map +1 -0
  2271. package/dist/subagents/__tests__/tracker.test.js +255 -0
  2272. package/dist/subagents/__tests__/tracker.test.js.map +1 -0
  2273. package/dist/subagents/tracker.d.ts +60 -0
  2274. package/dist/subagents/tracker.d.ts.map +1 -0
  2275. package/dist/subagents/tracker.js +229 -0
  2276. package/dist/subagents/tracker.js.map +1 -0
  2277. package/dist/team/__tests__/allocation-policy.test.d.ts +2 -0
  2278. package/dist/team/__tests__/allocation-policy.test.d.ts.map +1 -0
  2279. package/dist/team/__tests__/allocation-policy.test.js +111 -0
  2280. package/dist/team/__tests__/allocation-policy.test.js.map +1 -0
  2281. package/dist/team/__tests__/api-interop.test.d.ts +2 -0
  2282. package/dist/team/__tests__/api-interop.test.d.ts.map +1 -0
  2283. package/dist/team/__tests__/api-interop.test.js +2321 -0
  2284. package/dist/team/__tests__/api-interop.test.js.map +1 -0
  2285. package/dist/team/__tests__/approved-execution.test.d.ts +2 -0
  2286. package/dist/team/__tests__/approved-execution.test.d.ts.map +1 -0
  2287. package/dist/team/__tests__/approved-execution.test.js +304 -0
  2288. package/dist/team/__tests__/approved-execution.test.js.map +1 -0
  2289. package/dist/team/__tests__/commit-hygiene.test.d.ts +2 -0
  2290. package/dist/team/__tests__/commit-hygiene.test.d.ts.map +1 -0
  2291. package/dist/team/__tests__/commit-hygiene.test.js +93 -0
  2292. package/dist/team/__tests__/commit-hygiene.test.js.map +1 -0
  2293. package/dist/team/__tests__/coordination-protocol.test.d.ts +2 -0
  2294. package/dist/team/__tests__/coordination-protocol.test.d.ts.map +1 -0
  2295. package/dist/team/__tests__/coordination-protocol.test.js +173 -0
  2296. package/dist/team/__tests__/coordination-protocol.test.js.map +1 -0
  2297. package/dist/team/__tests__/cross-rebase-smoke.test.d.ts +2 -0
  2298. package/dist/team/__tests__/cross-rebase-smoke.test.d.ts.map +1 -0
  2299. package/dist/team/__tests__/cross-rebase-smoke.test.js +161 -0
  2300. package/dist/team/__tests__/cross-rebase-smoke.test.js.map +1 -0
  2301. package/dist/team/__tests__/current-task-baseline.test.d.ts +2 -0
  2302. package/dist/team/__tests__/current-task-baseline.test.d.ts.map +1 -0
  2303. package/dist/team/__tests__/current-task-baseline.test.js +87 -0
  2304. package/dist/team/__tests__/current-task-baseline.test.js.map +1 -0
  2305. package/dist/team/__tests__/delegation-policy.test.d.ts +2 -0
  2306. package/dist/team/__tests__/delegation-policy.test.d.ts.map +1 -0
  2307. package/dist/team/__tests__/delegation-policy.test.js +69 -0
  2308. package/dist/team/__tests__/delegation-policy.test.js.map +1 -0
  2309. package/dist/team/__tests__/delivery-e2e-smoke.test.d.ts +2 -0
  2310. package/dist/team/__tests__/delivery-e2e-smoke.test.d.ts.map +1 -0
  2311. package/dist/team/__tests__/delivery-e2e-smoke.test.js +677 -0
  2312. package/dist/team/__tests__/delivery-e2e-smoke.test.js.map +1 -0
  2313. package/dist/team/__tests__/delivery-log.test.d.ts +2 -0
  2314. package/dist/team/__tests__/delivery-log.test.d.ts.map +1 -0
  2315. package/dist/team/__tests__/delivery-log.test.js +62 -0
  2316. package/dist/team/__tests__/delivery-log.test.js.map +1 -0
  2317. package/dist/team/__tests__/events.test.d.ts +2 -0
  2318. package/dist/team/__tests__/events.test.d.ts.map +1 -0
  2319. package/dist/team/__tests__/events.test.js +313 -0
  2320. package/dist/team/__tests__/events.test.js.map +1 -0
  2321. package/dist/team/__tests__/followup-planner.test.d.ts +2 -0
  2322. package/dist/team/__tests__/followup-planner.test.d.ts.map +1 -0
  2323. package/dist/team/__tests__/followup-planner.test.js +100 -0
  2324. package/dist/team/__tests__/followup-planner.test.js.map +1 -0
  2325. package/dist/team/__tests__/hardening-e2e.test.d.ts +2 -0
  2326. package/dist/team/__tests__/hardening-e2e.test.d.ts.map +1 -0
  2327. package/dist/team/__tests__/hardening-e2e.test.js +98 -0
  2328. package/dist/team/__tests__/hardening-e2e.test.js.map +1 -0
  2329. package/dist/team/__tests__/hook-primary-e2e-contract.test.d.ts +2 -0
  2330. package/dist/team/__tests__/hook-primary-e2e-contract.test.d.ts.map +1 -0
  2331. package/dist/team/__tests__/hook-primary-e2e-contract.test.js +78 -0
  2332. package/dist/team/__tests__/hook-primary-e2e-contract.test.js.map +1 -0
  2333. package/dist/team/__tests__/idle-nudge.test.d.ts +2 -0
  2334. package/dist/team/__tests__/idle-nudge.test.d.ts.map +1 -0
  2335. package/dist/team/__tests__/idle-nudge.test.js +230 -0
  2336. package/dist/team/__tests__/idle-nudge.test.js.map +1 -0
  2337. package/dist/team/__tests__/leader-activity.test.d.ts +2 -0
  2338. package/dist/team/__tests__/leader-activity.test.d.ts.map +1 -0
  2339. package/dist/team/__tests__/leader-activity.test.js +261 -0
  2340. package/dist/team/__tests__/leader-activity.test.js.map +1 -0
  2341. package/dist/team/__tests__/mcp-comm.test.d.ts +2 -0
  2342. package/dist/team/__tests__/mcp-comm.test.d.ts.map +1 -0
  2343. package/dist/team/__tests__/mcp-comm.test.js +289 -0
  2344. package/dist/team/__tests__/mcp-comm.test.js.map +1 -0
  2345. package/dist/team/__tests__/model-contract.test.d.ts +2 -0
  2346. package/dist/team/__tests__/model-contract.test.d.ts.map +1 -0
  2347. package/dist/team/__tests__/model-contract.test.js +187 -0
  2348. package/dist/team/__tests__/model-contract.test.js.map +1 -0
  2349. package/dist/team/__tests__/orchestrator.test.d.ts +2 -0
  2350. package/dist/team/__tests__/orchestrator.test.d.ts.map +1 -0
  2351. package/dist/team/__tests__/orchestrator.test.js +111 -0
  2352. package/dist/team/__tests__/orchestrator.test.js.map +1 -0
  2353. package/dist/team/__tests__/phase-controller.test.d.ts +2 -0
  2354. package/dist/team/__tests__/phase-controller.test.d.ts.map +1 -0
  2355. package/dist/team/__tests__/phase-controller.test.js +50 -0
  2356. package/dist/team/__tests__/phase-controller.test.js.map +1 -0
  2357. package/dist/team/__tests__/rebalance-policy.test.d.ts +2 -0
  2358. package/dist/team/__tests__/rebalance-policy.test.d.ts.map +1 -0
  2359. package/dist/team/__tests__/rebalance-policy.test.js +168 -0
  2360. package/dist/team/__tests__/rebalance-policy.test.js.map +1 -0
  2361. package/dist/team/__tests__/repo-aware-decomposition.test.d.ts +2 -0
  2362. package/dist/team/__tests__/repo-aware-decomposition.test.d.ts.map +1 -0
  2363. package/dist/team/__tests__/repo-aware-decomposition.test.js +156 -0
  2364. package/dist/team/__tests__/repo-aware-decomposition.test.js.map +1 -0
  2365. package/dist/team/__tests__/role-router.test.d.ts +2 -0
  2366. package/dist/team/__tests__/role-router.test.d.ts.map +1 -0
  2367. package/dist/team/__tests__/role-router.test.js +263 -0
  2368. package/dist/team/__tests__/role-router.test.js.map +1 -0
  2369. package/dist/team/__tests__/runtime-boxed-state.test.d.ts +2 -0
  2370. package/dist/team/__tests__/runtime-boxed-state.test.d.ts.map +1 -0
  2371. package/dist/team/__tests__/runtime-boxed-state.test.js +39 -0
  2372. package/dist/team/__tests__/runtime-boxed-state.test.js.map +1 -0
  2373. package/dist/team/__tests__/runtime-cli.test.d.ts +2 -0
  2374. package/dist/team/__tests__/runtime-cli.test.d.ts.map +1 -0
  2375. package/dist/team/__tests__/runtime-cli.test.js +320 -0
  2376. package/dist/team/__tests__/runtime-cli.test.js.map +1 -0
  2377. package/dist/team/__tests__/runtime.test.d.ts +2 -0
  2378. package/dist/team/__tests__/runtime.test.d.ts.map +1 -0
  2379. package/dist/team/__tests__/runtime.test.js +6464 -0
  2380. package/dist/team/__tests__/runtime.test.js.map +1 -0
  2381. package/dist/team/__tests__/scaling.test.d.ts +2 -0
  2382. package/dist/team/__tests__/scaling.test.d.ts.map +1 -0
  2383. package/dist/team/__tests__/scaling.test.js +1664 -0
  2384. package/dist/team/__tests__/scaling.test.js.map +1 -0
  2385. package/dist/team/__tests__/shutdown-fallback.test.d.ts +2 -0
  2386. package/dist/team/__tests__/shutdown-fallback.test.d.ts.map +1 -0
  2387. package/dist/team/__tests__/shutdown-fallback.test.js +125 -0
  2388. package/dist/team/__tests__/shutdown-fallback.test.js.map +1 -0
  2389. package/dist/team/__tests__/state-root.test.d.ts +2 -0
  2390. package/dist/team/__tests__/state-root.test.d.ts.map +1 -0
  2391. package/dist/team/__tests__/state-root.test.js +208 -0
  2392. package/dist/team/__tests__/state-root.test.js.map +1 -0
  2393. package/dist/team/__tests__/state.test.d.ts +2 -0
  2394. package/dist/team/__tests__/state.test.d.ts.map +1 -0
  2395. package/dist/team/__tests__/state.test.js +1942 -0
  2396. package/dist/team/__tests__/state.test.js.map +1 -0
  2397. package/dist/team/__tests__/team-identity.test.d.ts +2 -0
  2398. package/dist/team/__tests__/team-identity.test.d.ts.map +1 -0
  2399. package/dist/team/__tests__/team-identity.test.js +166 -0
  2400. package/dist/team/__tests__/team-identity.test.js.map +1 -0
  2401. package/dist/team/__tests__/team-ops-contract.test.d.ts +2 -0
  2402. package/dist/team/__tests__/team-ops-contract.test.d.ts.map +1 -0
  2403. package/dist/team/__tests__/team-ops-contract.test.js +96 -0
  2404. package/dist/team/__tests__/team-ops-contract.test.js.map +1 -0
  2405. package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts +2 -0
  2406. package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts.map +1 -0
  2407. package/dist/team/__tests__/tmux-claude-workers-demo.test.js +191 -0
  2408. package/dist/team/__tests__/tmux-claude-workers-demo.test.js.map +1 -0
  2409. package/dist/team/__tests__/tmux-session.test.d.ts +2 -0
  2410. package/dist/team/__tests__/tmux-session.test.d.ts.map +1 -0
  2411. package/dist/team/__tests__/tmux-session.test.js +4546 -0
  2412. package/dist/team/__tests__/tmux-session.test.js.map +1 -0
  2413. package/dist/team/__tests__/tmux-test-fixture.d.ts +20 -0
  2414. package/dist/team/__tests__/tmux-test-fixture.d.ts.map +1 -0
  2415. package/dist/team/__tests__/tmux-test-fixture.js +148 -0
  2416. package/dist/team/__tests__/tmux-test-fixture.js.map +1 -0
  2417. package/dist/team/__tests__/tmux-test-fixture.test.d.ts +2 -0
  2418. package/dist/team/__tests__/tmux-test-fixture.test.d.ts.map +1 -0
  2419. package/dist/team/__tests__/tmux-test-fixture.test.js +114 -0
  2420. package/dist/team/__tests__/tmux-test-fixture.test.js.map +1 -0
  2421. package/dist/team/__tests__/worker-bootstrap.test.d.ts +2 -0
  2422. package/dist/team/__tests__/worker-bootstrap.test.d.ts.map +1 -0
  2423. package/dist/team/__tests__/worker-bootstrap.test.js +1122 -0
  2424. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -0
  2425. package/dist/team/__tests__/worker-runtime-identity.test.d.ts +2 -0
  2426. package/dist/team/__tests__/worker-runtime-identity.test.d.ts.map +1 -0
  2427. package/dist/team/__tests__/worker-runtime-identity.test.js +258 -0
  2428. package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -0
  2429. package/dist/team/__tests__/worktree.test.d.ts +2 -0
  2430. package/dist/team/__tests__/worktree.test.d.ts.map +1 -0
  2431. package/dist/team/__tests__/worktree.test.js +317 -0
  2432. package/dist/team/__tests__/worktree.test.js.map +1 -0
  2433. package/dist/team/allocation-policy.d.ts +29 -0
  2434. package/dist/team/allocation-policy.d.ts.map +1 -0
  2435. package/dist/team/allocation-policy.js +153 -0
  2436. package/dist/team/allocation-policy.js.map +1 -0
  2437. package/dist/team/api-interop.d.ts +20 -0
  2438. package/dist/team/api-interop.d.ts.map +1 -0
  2439. package/dist/team/api-interop.js +1084 -0
  2440. package/dist/team/api-interop.js.map +1 -0
  2441. package/dist/team/approved-execution.d.ts +64 -0
  2442. package/dist/team/approved-execution.d.ts.map +1 -0
  2443. package/dist/team/approved-execution.js +242 -0
  2444. package/dist/team/approved-execution.js.map +1 -0
  2445. package/dist/team/commit-hygiene.d.ts +79 -0
  2446. package/dist/team/commit-hygiene.d.ts.map +1 -0
  2447. package/dist/team/commit-hygiene.js +364 -0
  2448. package/dist/team/commit-hygiene.js.map +1 -0
  2449. package/dist/team/contracts.d.ts +26 -0
  2450. package/dist/team/contracts.d.ts.map +1 -0
  2451. package/dist/team/contracts.js +103 -0
  2452. package/dist/team/contracts.js.map +1 -0
  2453. package/dist/team/coordination-protocol.d.ts +14 -0
  2454. package/dist/team/coordination-protocol.d.ts.map +1 -0
  2455. package/dist/team/coordination-protocol.js +244 -0
  2456. package/dist/team/coordination-protocol.js.map +1 -0
  2457. package/dist/team/current-task-baseline.d.ts +32 -0
  2458. package/dist/team/current-task-baseline.d.ts.map +1 -0
  2459. package/dist/team/current-task-baseline.js +85 -0
  2460. package/dist/team/current-task-baseline.js.map +1 -0
  2461. package/dist/team/dag-schema.d.ts +38 -0
  2462. package/dist/team/dag-schema.d.ts.map +1 -0
  2463. package/dist/team/dag-schema.js +221 -0
  2464. package/dist/team/dag-schema.js.map +1 -0
  2465. package/dist/team/delegation-policy.d.ts +3 -0
  2466. package/dist/team/delegation-policy.d.ts.map +1 -0
  2467. package/dist/team/delegation-policy.js +82 -0
  2468. package/dist/team/delegation-policy.js.map +1 -0
  2469. package/dist/team/delivery-log.d.ts +14 -0
  2470. package/dist/team/delivery-log.d.ts.map +1 -0
  2471. package/dist/team/delivery-log.js +43 -0
  2472. package/dist/team/delivery-log.js.map +1 -0
  2473. package/dist/team/followup-planner.d.ts +45 -0
  2474. package/dist/team/followup-planner.d.ts.map +1 -0
  2475. package/dist/team/followup-planner.js +200 -0
  2476. package/dist/team/followup-planner.js.map +1 -0
  2477. package/dist/team/goal-workflow.d.ts +20 -0
  2478. package/dist/team/goal-workflow.d.ts.map +1 -0
  2479. package/dist/team/goal-workflow.js +57 -0
  2480. package/dist/team/goal-workflow.js.map +1 -0
  2481. package/dist/team/idle-nudge.d.ts +53 -0
  2482. package/dist/team/idle-nudge.d.ts.map +1 -0
  2483. package/dist/team/idle-nudge.js +141 -0
  2484. package/dist/team/idle-nudge.js.map +1 -0
  2485. package/dist/team/leader-activity.d.ts +15 -0
  2486. package/dist/team/leader-activity.d.ts.map +1 -0
  2487. package/dist/team/leader-activity.js +224 -0
  2488. package/dist/team/leader-activity.js.map +1 -0
  2489. package/dist/team/mcp-comm.d.ts +73 -0
  2490. package/dist/team/mcp-comm.d.ts.map +1 -0
  2491. package/dist/team/mcp-comm.js +314 -0
  2492. package/dist/team/mcp-comm.js.map +1 -0
  2493. package/dist/team/model-contract.d.ts +26 -0
  2494. package/dist/team/model-contract.d.ts.map +1 -0
  2495. package/dist/team/model-contract.js +205 -0
  2496. package/dist/team/model-contract.js.map +1 -0
  2497. package/dist/team/orchestrator.d.ts +47 -0
  2498. package/dist/team/orchestrator.d.ts.map +1 -0
  2499. package/dist/team/orchestrator.js +131 -0
  2500. package/dist/team/orchestrator.js.map +1 -0
  2501. package/dist/team/pane-status.d.ts +149 -0
  2502. package/dist/team/pane-status.d.ts.map +1 -0
  2503. package/dist/team/pane-status.js +558 -0
  2504. package/dist/team/pane-status.js.map +1 -0
  2505. package/dist/team/phase-controller.d.ts +12 -0
  2506. package/dist/team/phase-controller.d.ts.map +1 -0
  2507. package/dist/team/phase-controller.js +142 -0
  2508. package/dist/team/phase-controller.js.map +1 -0
  2509. package/dist/team/progress-evidence.d.ts +2 -0
  2510. package/dist/team/progress-evidence.d.ts.map +1 -0
  2511. package/dist/team/progress-evidence.js +77 -0
  2512. package/dist/team/progress-evidence.js.map +1 -0
  2513. package/dist/team/rebalance-policy.d.ts +19 -0
  2514. package/dist/team/rebalance-policy.d.ts.map +1 -0
  2515. package/dist/team/rebalance-policy.js +48 -0
  2516. package/dist/team/rebalance-policy.js.map +1 -0
  2517. package/dist/team/reminder-intents.d.ts +11 -0
  2518. package/dist/team/reminder-intents.d.ts.map +1 -0
  2519. package/dist/team/reminder-intents.js +40 -0
  2520. package/dist/team/reminder-intents.js.map +1 -0
  2521. package/dist/team/repo-aware-decomposition.d.ts +68 -0
  2522. package/dist/team/repo-aware-decomposition.d.ts.map +1 -0
  2523. package/dist/team/repo-aware-decomposition.js +235 -0
  2524. package/dist/team/repo-aware-decomposition.js.map +1 -0
  2525. package/dist/team/role-router.d.ts +32 -0
  2526. package/dist/team/role-router.d.ts.map +1 -0
  2527. package/dist/team/role-router.js +298 -0
  2528. package/dist/team/role-router.js.map +1 -0
  2529. package/dist/team/runtime-cli.d.ts +78 -0
  2530. package/dist/team/runtime-cli.d.ts.map +1 -0
  2531. package/dist/team/runtime-cli.js +376 -0
  2532. package/dist/team/runtime-cli.js.map +1 -0
  2533. package/dist/team/runtime.d.ts +162 -0
  2534. package/dist/team/runtime.d.ts.map +1 -0
  2535. package/dist/team/runtime.js +4160 -0
  2536. package/dist/team/runtime.js.map +1 -0
  2537. package/dist/team/scaling.d.ts +59 -0
  2538. package/dist/team/scaling.d.ts.map +1 -0
  2539. package/dist/team/scaling.js +650 -0
  2540. package/dist/team/scaling.js.map +1 -0
  2541. package/dist/team/state/approvals.d.ts +25 -0
  2542. package/dist/team/state/approvals.d.ts.map +1 -0
  2543. package/dist/team/state/approvals.js +31 -0
  2544. package/dist/team/state/approvals.js.map +1 -0
  2545. package/dist/team/state/config.d.ts +2 -0
  2546. package/dist/team/state/config.d.ts.map +1 -0
  2547. package/dist/team/state/config.js +2 -0
  2548. package/dist/team/state/config.js.map +1 -0
  2549. package/dist/team/state/dispatch-lock.d.ts +3 -0
  2550. package/dist/team/state/dispatch-lock.d.ts.map +1 -0
  2551. package/dist/team/state/dispatch-lock.js +81 -0
  2552. package/dist/team/state/dispatch-lock.js.map +1 -0
  2553. package/dist/team/state/dispatch.d.ts +67 -0
  2554. package/dist/team/state/dispatch.d.ts.map +1 -0
  2555. package/dist/team/state/dispatch.js +302 -0
  2556. package/dist/team/state/dispatch.js.map +1 -0
  2557. package/dist/team/state/events.d.ts +26 -0
  2558. package/dist/team/state/events.d.ts.map +1 -0
  2559. package/dist/team/state/events.js +145 -0
  2560. package/dist/team/state/events.js.map +1 -0
  2561. package/dist/team/state/index.d.ts +11 -0
  2562. package/dist/team/state/index.d.ts.map +1 -0
  2563. package/dist/team/state/index.js +11 -0
  2564. package/dist/team/state/index.js.map +1 -0
  2565. package/dist/team/state/io.d.ts +2 -0
  2566. package/dist/team/state/io.d.ts.map +1 -0
  2567. package/dist/team/state/io.js +2 -0
  2568. package/dist/team/state/io.js.map +1 -0
  2569. package/dist/team/state/locks.d.ts +16 -0
  2570. package/dist/team/state/locks.d.ts.map +1 -0
  2571. package/dist/team/state/locks.js +201 -0
  2572. package/dist/team/state/locks.js.map +1 -0
  2573. package/dist/team/state/mailbox.d.ts +43 -0
  2574. package/dist/team/state/mailbox.d.ts.map +1 -0
  2575. package/dist/team/state/mailbox.js +222 -0
  2576. package/dist/team/state/mailbox.js.map +1 -0
  2577. package/dist/team/state/monitor.d.ts +108 -0
  2578. package/dist/team/state/monitor.d.ts.map +1 -0
  2579. package/dist/team/state/monitor.js +193 -0
  2580. package/dist/team/state/monitor.js.map +1 -0
  2581. package/dist/team/state/shutdown.d.ts +2 -0
  2582. package/dist/team/state/shutdown.d.ts.map +1 -0
  2583. package/dist/team/state/shutdown.js +2 -0
  2584. package/dist/team/state/shutdown.js.map +1 -0
  2585. package/dist/team/state/summary.d.ts +2 -0
  2586. package/dist/team/state/summary.d.ts.map +1 -0
  2587. package/dist/team/state/summary.js +2 -0
  2588. package/dist/team/state/summary.js.map +1 -0
  2589. package/dist/team/state/tasks.d.ts +53 -0
  2590. package/dist/team/state/tasks.d.ts.map +1 -0
  2591. package/dist/team/state/tasks.js +284 -0
  2592. package/dist/team/state/tasks.js.map +1 -0
  2593. package/dist/team/state/types.d.ts +356 -0
  2594. package/dist/team/state/types.d.ts.map +1 -0
  2595. package/dist/team/state/types.js +3 -0
  2596. package/dist/team/state/types.js.map +1 -0
  2597. package/dist/team/state/workers.d.ts +2 -0
  2598. package/dist/team/state/workers.d.ts.map +1 -0
  2599. package/dist/team/state/workers.js +2 -0
  2600. package/dist/team/state/workers.js.map +1 -0
  2601. package/dist/team/state-root.d.ts +40 -0
  2602. package/dist/team/state-root.d.ts.map +1 -0
  2603. package/dist/team/state-root.js +297 -0
  2604. package/dist/team/state-root.js.map +1 -0
  2605. package/dist/team/state.d.ts +471 -0
  2606. package/dist/team/state.d.ts.map +1 -0
  2607. package/dist/team/state.js +1418 -0
  2608. package/dist/team/state.js.map +1 -0
  2609. package/dist/team/team-identity.d.ts +26 -0
  2610. package/dist/team/team-identity.d.ts.map +1 -0
  2611. package/dist/team/team-identity.js +169 -0
  2612. package/dist/team/team-identity.js.map +1 -0
  2613. package/dist/team/team-ops.d.ts +66 -0
  2614. package/dist/team/team-ops.d.ts.map +1 -0
  2615. package/dist/team/team-ops.js +79 -0
  2616. package/dist/team/team-ops.js.map +1 -0
  2617. package/dist/team/tmux-session.d.ts +190 -0
  2618. package/dist/team/tmux-session.d.ts.map +1 -0
  2619. package/dist/team/tmux-session.js +2071 -0
  2620. package/dist/team/tmux-session.js.map +1 -0
  2621. package/dist/team/ultragoal-context.d.ts +47 -0
  2622. package/dist/team/ultragoal-context.d.ts.map +1 -0
  2623. package/dist/team/ultragoal-context.js +215 -0
  2624. package/dist/team/ultragoal-context.js.map +1 -0
  2625. package/dist/team/worker-bootstrap.d.ts +92 -0
  2626. package/dist/team/worker-bootstrap.d.ts.map +1 -0
  2627. package/dist/team/worker-bootstrap.js +860 -0
  2628. package/dist/team/worker-bootstrap.js.map +1 -0
  2629. package/dist/team/worktree.d.ts +69 -0
  2630. package/dist/team/worktree.d.ts.map +1 -0
  2631. package/dist/team/worktree.js +437 -0
  2632. package/dist/team/worktree.js.map +1 -0
  2633. package/dist/ultragoal/__tests__/artifacts.test.d.ts +2 -0
  2634. package/dist/ultragoal/__tests__/artifacts.test.d.ts.map +1 -0
  2635. package/dist/ultragoal/__tests__/artifacts.test.js +1423 -0
  2636. package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -0
  2637. package/dist/ultragoal/__tests__/docs-contract.test.d.ts +2 -0
  2638. package/dist/ultragoal/__tests__/docs-contract.test.d.ts.map +1 -0
  2639. package/dist/ultragoal/__tests__/docs-contract.test.js +132 -0
  2640. package/dist/ultragoal/__tests__/docs-contract.test.js.map +1 -0
  2641. package/dist/ultragoal/__tests__/steering-fixtures.d.ts +68 -0
  2642. package/dist/ultragoal/__tests__/steering-fixtures.d.ts.map +1 -0
  2643. package/dist/ultragoal/__tests__/steering-fixtures.js +259 -0
  2644. package/dist/ultragoal/__tests__/steering-fixtures.js.map +1 -0
  2645. package/dist/ultragoal/__tests__/steering-fixtures.test.d.ts +2 -0
  2646. package/dist/ultragoal/__tests__/steering-fixtures.test.d.ts.map +1 -0
  2647. package/dist/ultragoal/__tests__/steering-fixtures.test.js +65 -0
  2648. package/dist/ultragoal/__tests__/steering-fixtures.test.js.map +1 -0
  2649. package/dist/ultragoal/artifacts.d.ts +249 -0
  2650. package/dist/ultragoal/artifacts.d.ts.map +1 -0
  2651. package/dist/ultragoal/artifacts.js +1349 -0
  2652. package/dist/ultragoal/artifacts.js.map +1 -0
  2653. package/dist/utils/__tests__/agents-md.test.d.ts +2 -0
  2654. package/dist/utils/__tests__/agents-md.test.d.ts.map +1 -0
  2655. package/dist/utils/__tests__/agents-md.test.js +96 -0
  2656. package/dist/utils/__tests__/agents-md.test.js.map +1 -0
  2657. package/dist/utils/__tests__/agents-model-table.test.d.ts +2 -0
  2658. package/dist/utils/__tests__/agents-model-table.test.d.ts.map +1 -0
  2659. package/dist/utils/__tests__/agents-model-table.test.js +108 -0
  2660. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -0
  2661. package/dist/utils/__tests__/dep-versions.test.d.ts +2 -0
  2662. package/dist/utils/__tests__/dep-versions.test.d.ts.map +1 -0
  2663. package/dist/utils/__tests__/dep-versions.test.js +46 -0
  2664. package/dist/utils/__tests__/dep-versions.test.js.map +1 -0
  2665. package/dist/utils/__tests__/package.test.d.ts +2 -0
  2666. package/dist/utils/__tests__/package.test.d.ts.map +1 -0
  2667. package/dist/utils/__tests__/package.test.js +21 -0
  2668. package/dist/utils/__tests__/package.test.js.map +1 -0
  2669. package/dist/utils/__tests__/paths.test.d.ts +2 -0
  2670. package/dist/utils/__tests__/paths.test.d.ts.map +1 -0
  2671. package/dist/utils/__tests__/paths.test.js +647 -0
  2672. package/dist/utils/__tests__/paths.test.js.map +1 -0
  2673. package/dist/utils/__tests__/platform-command.test.d.ts +2 -0
  2674. package/dist/utils/__tests__/platform-command.test.d.ts.map +1 -0
  2675. package/dist/utils/__tests__/platform-command.test.js +399 -0
  2676. package/dist/utils/__tests__/platform-command.test.js.map +1 -0
  2677. package/dist/utils/__tests__/repo-deps.test.d.ts +2 -0
  2678. package/dist/utils/__tests__/repo-deps.test.d.ts.map +1 -0
  2679. package/dist/utils/__tests__/repo-deps.test.js +71 -0
  2680. package/dist/utils/__tests__/repo-deps.test.js.map +1 -0
  2681. package/dist/utils/__tests__/sleep-resource.test.d.ts +2 -0
  2682. package/dist/utils/__tests__/sleep-resource.test.d.ts.map +1 -0
  2683. package/dist/utils/__tests__/sleep-resource.test.js +39 -0
  2684. package/dist/utils/__tests__/sleep-resource.test.js.map +1 -0
  2685. package/dist/utils/__tests__/version.test.d.ts +2 -0
  2686. package/dist/utils/__tests__/version.test.d.ts.map +1 -0
  2687. package/dist/utils/__tests__/version.test.js +78 -0
  2688. package/dist/utils/__tests__/version.test.js.map +1 -0
  2689. package/dist/utils/agents-md.d.ts +10 -0
  2690. package/dist/utils/agents-md.d.ts.map +1 -0
  2691. package/dist/utils/agents-md.js +76 -0
  2692. package/dist/utils/agents-md.js.map +1 -0
  2693. package/dist/utils/agents-model-table.d.ts +16 -0
  2694. package/dist/utils/agents-model-table.d.ts.map +1 -0
  2695. package/dist/utils/agents-model-table.js +102 -0
  2696. package/dist/utils/agents-model-table.js.map +1 -0
  2697. package/dist/utils/git-layout.d.ts +8 -0
  2698. package/dist/utils/git-layout.d.ts.map +1 -0
  2699. package/dist/utils/git-layout.js +58 -0
  2700. package/dist/utils/git-layout.js.map +1 -0
  2701. package/dist/utils/package.d.ts +9 -0
  2702. package/dist/utils/package.d.ts.map +1 -0
  2703. package/dist/utils/package.js +31 -0
  2704. package/dist/utils/package.js.map +1 -0
  2705. package/dist/utils/paths.d.ts +101 -0
  2706. package/dist/utils/paths.d.ts.map +1 -0
  2707. package/dist/utils/paths.js +314 -0
  2708. package/dist/utils/paths.js.map +1 -0
  2709. package/dist/utils/platform-command.d.ts +29 -0
  2710. package/dist/utils/platform-command.d.ts.map +1 -0
  2711. package/dist/utils/platform-command.js +239 -0
  2712. package/dist/utils/platform-command.js.map +1 -0
  2713. package/dist/utils/repo-deps.d.ts +20 -0
  2714. package/dist/utils/repo-deps.d.ts.map +1 -0
  2715. package/dist/utils/repo-deps.js +78 -0
  2716. package/dist/utils/repo-deps.js.map +1 -0
  2717. package/dist/utils/safe-json.d.ts +3 -0
  2718. package/dist/utils/safe-json.d.ts.map +1 -0
  2719. package/dist/utils/safe-json.js +19 -0
  2720. package/dist/utils/safe-json.js.map +1 -0
  2721. package/dist/utils/sleep.d.ts +3 -0
  2722. package/dist/utils/sleep.d.ts.map +1 -0
  2723. package/dist/utils/sleep.js +35 -0
  2724. package/dist/utils/sleep.js.map +1 -0
  2725. package/dist/utils/toml.d.ts +4 -0
  2726. package/dist/utils/toml.d.ts.map +1 -0
  2727. package/dist/utils/toml.js +75 -0
  2728. package/dist/utils/toml.js.map +1 -0
  2729. package/dist/utils/version.d.ts +7 -0
  2730. package/dist/utils/version.d.ts.map +1 -0
  2731. package/dist/utils/version.js +72 -0
  2732. package/dist/utils/version.js.map +1 -0
  2733. package/dist/verification/__tests__/ci-rust-gates.test.d.ts +2 -0
  2734. package/dist/verification/__tests__/ci-rust-gates.test.d.ts.map +1 -0
  2735. package/dist/verification/__tests__/ci-rust-gates.test.js +293 -0
  2736. package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -0
  2737. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.d.ts +2 -0
  2738. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.d.ts.map +1 -0
  2739. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +68 -0
  2740. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -0
  2741. package/dist/verification/__tests__/explore-harness-release-workflow.test.d.ts +2 -0
  2742. package/dist/verification/__tests__/explore-harness-release-workflow.test.d.ts.map +1 -0
  2743. package/dist/verification/__tests__/explore-harness-release-workflow.test.js +74 -0
  2744. package/dist/verification/__tests__/explore-harness-release-workflow.test.js.map +1 -0
  2745. package/dist/verification/__tests__/native-release-manifest.test.d.ts +2 -0
  2746. package/dist/verification/__tests__/native-release-manifest.test.d.ts.map +1 -0
  2747. package/dist/verification/__tests__/native-release-manifest.test.js +80 -0
  2748. package/dist/verification/__tests__/native-release-manifest.test.js.map +1 -0
  2749. package/dist/verification/__tests__/pr-check-workflow.test.d.ts +2 -0
  2750. package/dist/verification/__tests__/pr-check-workflow.test.d.ts.map +1 -0
  2751. package/dist/verification/__tests__/pr-check-workflow.test.js +27 -0
  2752. package/dist/verification/__tests__/pr-check-workflow.test.js.map +1 -0
  2753. package/dist/verification/__tests__/ralph-persistence-gate.test.d.ts +2 -0
  2754. package/dist/verification/__tests__/ralph-persistence-gate.test.d.ts.map +1 -0
  2755. package/dist/verification/__tests__/ralph-persistence-gate.test.js +55 -0
  2756. package/dist/verification/__tests__/ralph-persistence-gate.test.js.map +1 -0
  2757. package/dist/verification/__tests__/rust-runtime-thin-adapter-gate.test.d.ts +2 -0
  2758. package/dist/verification/__tests__/rust-runtime-thin-adapter-gate.test.d.ts.map +1 -0
  2759. package/dist/verification/__tests__/rust-runtime-thin-adapter-gate.test.js +32 -0
  2760. package/dist/verification/__tests__/rust-runtime-thin-adapter-gate.test.js.map +1 -0
  2761. package/dist/verification/__tests__/verifier.test.d.ts +2 -0
  2762. package/dist/verification/__tests__/verifier.test.d.ts.map +1 -0
  2763. package/dist/verification/__tests__/verifier.test.js +113 -0
  2764. package/dist/verification/__tests__/verifier.test.js.map +1 -0
  2765. package/dist/verification/verifier.d.ts +37 -0
  2766. package/dist/verification/verifier.d.ts.map +1 -0
  2767. package/dist/verification/verifier.js +100 -0
  2768. package/dist/verification/verifier.js.map +1 -0
  2769. package/dist/visual/__tests__/verdict.test.d.ts +2 -0
  2770. package/dist/visual/__tests__/verdict.test.d.ts.map +1 -0
  2771. package/dist/visual/__tests__/verdict.test.js +81 -0
  2772. package/dist/visual/__tests__/verdict.test.js.map +1 -0
  2773. package/dist/visual/constants.d.ts +4 -0
  2774. package/dist/visual/constants.d.ts.map +1 -0
  2775. package/dist/visual/constants.js +3 -0
  2776. package/dist/visual/constants.js.map +1 -0
  2777. package/dist/visual/verdict.d.ts +17 -0
  2778. package/dist/visual/verdict.d.ts.map +1 -0
  2779. package/dist/visual/verdict.js +61 -0
  2780. package/dist/visual/verdict.js.map +1 -0
  2781. package/dist/wiki/__tests__/cjk-tokenize.test.d.ts +12 -0
  2782. package/dist/wiki/__tests__/cjk-tokenize.test.d.ts.map +1 -0
  2783. package/dist/wiki/__tests__/cjk-tokenize.test.js +139 -0
  2784. package/dist/wiki/__tests__/cjk-tokenize.test.js.map +1 -0
  2785. package/dist/wiki/__tests__/crlf-parse.test.d.ts +2 -0
  2786. package/dist/wiki/__tests__/crlf-parse.test.d.ts.map +1 -0
  2787. package/dist/wiki/__tests__/crlf-parse.test.js +24 -0
  2788. package/dist/wiki/__tests__/crlf-parse.test.js.map +1 -0
  2789. package/dist/wiki/__tests__/escape-newline.test.d.ts +2 -0
  2790. package/dist/wiki/__tests__/escape-newline.test.d.ts.map +1 -0
  2791. package/dist/wiki/__tests__/escape-newline.test.js +45 -0
  2792. package/dist/wiki/__tests__/escape-newline.test.js.map +1 -0
  2793. package/dist/wiki/__tests__/ingest.test.d.ts +5 -0
  2794. package/dist/wiki/__tests__/ingest.test.d.ts.map +1 -0
  2795. package/dist/wiki/__tests__/ingest.test.js +215 -0
  2796. package/dist/wiki/__tests__/ingest.test.js.map +1 -0
  2797. package/dist/wiki/__tests__/lint.test.d.ts +5 -0
  2798. package/dist/wiki/__tests__/lint.test.d.ts.map +1 -0
  2799. package/dist/wiki/__tests__/lint.test.js +176 -0
  2800. package/dist/wiki/__tests__/lint.test.js.map +1 -0
  2801. package/dist/wiki/__tests__/query.test.d.ts +5 -0
  2802. package/dist/wiki/__tests__/query.test.d.ts.map +1 -0
  2803. package/dist/wiki/__tests__/query.test.js +166 -0
  2804. package/dist/wiki/__tests__/query.test.js.map +1 -0
  2805. package/dist/wiki/__tests__/reserved-file-guard.test.d.ts +2 -0
  2806. package/dist/wiki/__tests__/reserved-file-guard.test.d.ts.map +1 -0
  2807. package/dist/wiki/__tests__/reserved-file-guard.test.js +44 -0
  2808. package/dist/wiki/__tests__/reserved-file-guard.test.js.map +1 -0
  2809. package/dist/wiki/__tests__/session-hooks.test.d.ts +5 -0
  2810. package/dist/wiki/__tests__/session-hooks.test.d.ts.map +1 -0
  2811. package/dist/wiki/__tests__/session-hooks.test.js +64 -0
  2812. package/dist/wiki/__tests__/session-hooks.test.js.map +1 -0
  2813. package/dist/wiki/__tests__/slug-nonascii.test.d.ts +2 -0
  2814. package/dist/wiki/__tests__/slug-nonascii.test.d.ts.map +1 -0
  2815. package/dist/wiki/__tests__/slug-nonascii.test.js +30 -0
  2816. package/dist/wiki/__tests__/slug-nonascii.test.js.map +1 -0
  2817. package/dist/wiki/__tests__/storage.test.d.ts +5 -0
  2818. package/dist/wiki/__tests__/storage.test.d.ts.map +1 -0
  2819. package/dist/wiki/__tests__/storage.test.js +318 -0
  2820. package/dist/wiki/__tests__/storage.test.js.map +1 -0
  2821. package/dist/wiki/__tests__/test-helpers.d.ts +31 -0
  2822. package/dist/wiki/__tests__/test-helpers.d.ts.map +1 -0
  2823. package/dist/wiki/__tests__/test-helpers.js +108 -0
  2824. package/dist/wiki/__tests__/test-helpers.js.map +1 -0
  2825. package/dist/wiki/index.d.ts +14 -0
  2826. package/dist/wiki/index.d.ts.map +1 -0
  2827. package/dist/wiki/index.js +17 -0
  2828. package/dist/wiki/index.js.map +1 -0
  2829. package/dist/wiki/ingest.d.ts +20 -0
  2830. package/dist/wiki/ingest.d.ts.map +1 -0
  2831. package/dist/wiki/ingest.js +115 -0
  2832. package/dist/wiki/ingest.js.map +1 -0
  2833. package/dist/wiki/lifecycle.d.ts +25 -0
  2834. package/dist/wiki/lifecycle.d.ts.map +1 -0
  2835. package/dist/wiki/lifecycle.js +239 -0
  2836. package/dist/wiki/lifecycle.js.map +1 -0
  2837. package/dist/wiki/lint.d.ts +25 -0
  2838. package/dist/wiki/lint.d.ts.map +1 -0
  2839. package/dist/wiki/lint.js +170 -0
  2840. package/dist/wiki/lint.js.map +1 -0
  2841. package/dist/wiki/query.d.ts +36 -0
  2842. package/dist/wiki/query.d.ts.map +1 -0
  2843. package/dist/wiki/query.js +139 -0
  2844. package/dist/wiki/query.js.map +1 -0
  2845. package/dist/wiki/storage.d.ts +37 -0
  2846. package/dist/wiki/storage.d.ts.map +1 -0
  2847. package/dist/wiki/storage.js +358 -0
  2848. package/dist/wiki/storage.js.map +1 -0
  2849. package/dist/wiki/types.d.ts +83 -0
  2850. package/dist/wiki/types.d.ts.map +1 -0
  2851. package/dist/wiki/types.js +15 -0
  2852. package/dist/wiki/types.js.map +1 -0
  2853. package/package.json +110 -0
  2854. package/plugins/oh-my-codex/.app.json +3 -0
  2855. package/plugins/oh-my-codex/.codex-plugin/plugin.json +31 -0
  2856. package/plugins/oh-my-codex/.mcp.json +52 -0
  2857. package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +420 -0
  2858. package/plugins/oh-my-codex/hooks/hooks.json +76 -0
  2859. package/plugins/oh-my-codex/skills/ai-slop-cleaner/SKILL.md +148 -0
  2860. package/plugins/oh-my-codex/skills/analyze/SKILL.md +146 -0
  2861. package/plugins/oh-my-codex/skills/ask/SKILL.md +58 -0
  2862. package/plugins/oh-my-codex/skills/autopilot/SKILL.md +215 -0
  2863. package/plugins/oh-my-codex/skills/autoresearch/SKILL.md +72 -0
  2864. package/plugins/oh-my-codex/skills/autoresearch-goal/SKILL.md +36 -0
  2865. package/plugins/oh-my-codex/skills/best-practice-research/SKILL.md +88 -0
  2866. package/plugins/oh-my-codex/skills/cancel/SKILL.md +399 -0
  2867. package/plugins/oh-my-codex/skills/code-review/SKILL.md +292 -0
  2868. package/plugins/oh-my-codex/skills/configure-notifications/SKILL.md +287 -0
  2869. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +579 -0
  2870. package/plugins/oh-my-codex/skills/design/SKILL.md +180 -0
  2871. package/plugins/oh-my-codex/skills/doctor/SKILL.md +239 -0
  2872. package/plugins/oh-my-codex/skills/hud/SKILL.md +98 -0
  2873. package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +135 -0
  2874. package/plugins/oh-my-codex/skills/performance-goal/SKILL.md +65 -0
  2875. package/plugins/oh-my-codex/skills/pipeline/SKILL.md +97 -0
  2876. package/plugins/oh-my-codex/skills/plan/SKILL.md +277 -0
  2877. package/plugins/oh-my-codex/skills/prometheus-strict/README.md +35 -0
  2878. package/plugins/oh-my-codex/skills/prometheus-strict/SKILL.md +219 -0
  2879. package/plugins/oh-my-codex/skills/ralph/SKILL.md +294 -0
  2880. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +203 -0
  2881. package/plugins/oh-my-codex/skills/skill/SKILL.md +836 -0
  2882. package/plugins/oh-my-codex/skills/team/SKILL.md +536 -0
  2883. package/plugins/oh-my-codex/skills/ultragoal/SKILL.md +139 -0
  2884. package/plugins/oh-my-codex/skills/ultraqa/SKILL.md +263 -0
  2885. package/plugins/oh-my-codex/skills/ultrawork/SKILL.md +190 -0
  2886. package/plugins/oh-my-codex/skills/visual-ralph/SKILL.md +161 -0
  2887. package/plugins/oh-my-codex/skills/wiki/SKILL.md +57 -0
  2888. package/plugins/oh-my-codex/skills/worker/SKILL.md +120 -0
  2889. package/prompts/analyst.md +135 -0
  2890. package/prompts/api-reviewer.md +113 -0
  2891. package/prompts/architect.md +111 -0
  2892. package/prompts/build-fixer.md +115 -0
  2893. package/prompts/code-reviewer.md +139 -0
  2894. package/prompts/code-simplifier.md +134 -0
  2895. package/prompts/critic.md +80 -0
  2896. package/prompts/debugger.md +117 -0
  2897. package/prompts/dependency-expert.md +129 -0
  2898. package/prompts/designer.md +126 -0
  2899. package/prompts/executor.md +108 -0
  2900. package/prompts/explore-harness.md +64 -0
  2901. package/prompts/explore.md +85 -0
  2902. package/prompts/git-master.md +114 -0
  2903. package/prompts/information-architect.md +226 -0
  2904. package/prompts/performance-reviewer.md +109 -0
  2905. package/prompts/planner.md +110 -0
  2906. package/prompts/product-analyst.md +304 -0
  2907. package/prompts/product-manager.md +245 -0
  2908. package/prompts/prometheus-strict-metis.md +274 -0
  2909. package/prompts/prometheus-strict-momus.md +82 -0
  2910. package/prompts/prometheus-strict-oracle.md +107 -0
  2911. package/prompts/qa-tester.md +124 -0
  2912. package/prompts/quality-reviewer.md +123 -0
  2913. package/prompts/quality-strategist.md +274 -0
  2914. package/prompts/researcher.md +122 -0
  2915. package/prompts/scholastic.md +11 -0
  2916. package/prompts/security-reviewer.md +143 -0
  2917. package/prompts/sisyphus-lite.md +111 -0
  2918. package/prompts/style-reviewer.md +102 -0
  2919. package/prompts/team-executor.md +57 -0
  2920. package/prompts/team-orchestrator.md +8 -0
  2921. package/prompts/test-engineer.md +130 -0
  2922. package/prompts/ux-researcher.md +327 -0
  2923. package/prompts/verifier.md +85 -0
  2924. package/prompts/vision.md +98 -0
  2925. package/prompts/writer.md +109 -0
  2926. package/skills/ai-slop-cleaner/SKILL.md +148 -0
  2927. package/skills/analyze/SKILL.md +146 -0
  2928. package/skills/ask/SKILL.md +58 -0
  2929. package/skills/ask-claude/SKILL.md +12 -0
  2930. package/skills/ask-gemini/SKILL.md +12 -0
  2931. package/skills/autopilot/SKILL.md +215 -0
  2932. package/skills/autoresearch/SKILL.md +72 -0
  2933. package/skills/autoresearch-goal/SKILL.md +36 -0
  2934. package/skills/best-practice-research/SKILL.md +88 -0
  2935. package/skills/build-fix/SKILL.md +10 -0
  2936. package/skills/cancel/SKILL.md +399 -0
  2937. package/skills/code-review/SKILL.md +292 -0
  2938. package/skills/configure-notifications/SKILL.md +287 -0
  2939. package/skills/deep-interview/SKILL.md +579 -0
  2940. package/skills/deepsearch/SKILL.md +10 -0
  2941. package/skills/design/SKILL.md +180 -0
  2942. package/skills/doctor/SKILL.md +239 -0
  2943. package/skills/ecomode/SKILL.md +114 -0
  2944. package/skills/frontend-ui-ux/SKILL.md +16 -0
  2945. package/skills/git-master/SKILL.md +27 -0
  2946. package/skills/help/SKILL.md +10 -0
  2947. package/skills/hud/SKILL.md +98 -0
  2948. package/skills/note/SKILL.md +10 -0
  2949. package/skills/omx-setup/SKILL.md +135 -0
  2950. package/skills/performance-goal/SKILL.md +65 -0
  2951. package/skills/pipeline/SKILL.md +97 -0
  2952. package/skills/plan/SKILL.md +277 -0
  2953. package/skills/prometheus-strict/README.md +35 -0
  2954. package/skills/prometheus-strict/SKILL.md +219 -0
  2955. package/skills/ralph/SKILL.md +294 -0
  2956. package/skills/ralph-init/SKILL.md +10 -0
  2957. package/skills/ralplan/SKILL.md +203 -0
  2958. package/skills/review/SKILL.md +10 -0
  2959. package/skills/security-review/SKILL.md +10 -0
  2960. package/skills/skill/SKILL.md +836 -0
  2961. package/skills/swarm/SKILL.md +12 -0
  2962. package/skills/tdd/SKILL.md +104 -0
  2963. package/skills/team/SKILL.md +536 -0
  2964. package/skills/trace/SKILL.md +10 -0
  2965. package/skills/ultragoal/SKILL.md +139 -0
  2966. package/skills/ultraqa/SKILL.md +263 -0
  2967. package/skills/ultrawork/SKILL.md +190 -0
  2968. package/skills/visual-ralph/SKILL.md +161 -0
  2969. package/skills/visual-verdict/SKILL.md +10 -0
  2970. package/skills/web-clone/SKILL.md +357 -0
  2971. package/skills/wiki/SKILL.md +57 -0
  2972. package/skills/worker/SKILL.md +120 -0
  2973. package/src/scripts/__tests__/codex-native-hook.test.ts +17173 -0
  2974. package/src/scripts/__tests__/docs-site-contract.test.ts +47 -0
  2975. package/src/scripts/__tests__/generate-release-body.test.ts +275 -0
  2976. package/src/scripts/__tests__/hook-derived-watcher.test.ts +285 -0
  2977. package/src/scripts/__tests__/notify-dispatcher.test.ts +504 -0
  2978. package/src/scripts/__tests__/notify-state-io.test.ts +168 -0
  2979. package/src/scripts/__tests__/notify-tmux-injection.test.ts +82 -0
  2980. package/src/scripts/__tests__/postinstall.test.ts +113 -0
  2981. package/src/scripts/__tests__/prompt-inventory.test.ts +64 -0
  2982. package/src/scripts/__tests__/run-test-files.test.ts +455 -0
  2983. package/src/scripts/__tests__/smoke-packed-install.test.ts +192 -0
  2984. package/src/scripts/__tests__/test-reply-listener-live.test.ts +101 -0
  2985. package/src/scripts/__tests__/verify-native-agents.test.ts +299 -0
  2986. package/src/scripts/ask-claude.sh +17 -0
  2987. package/src/scripts/ask-gemini.sh +14 -0
  2988. package/src/scripts/build-api.ts +48 -0
  2989. package/src/scripts/build-explore-harness.ts +54 -0
  2990. package/src/scripts/build-sparkshell.ts +52 -0
  2991. package/src/scripts/check-runtime-syntax.ts +63 -0
  2992. package/src/scripts/check-version-sync.ts +54 -0
  2993. package/src/scripts/cleanup-explore-harness.ts +18 -0
  2994. package/src/scripts/codex-execution-surface.ts +75 -0
  2995. package/src/scripts/codex-native-hook.ts +4877 -0
  2996. package/src/scripts/codex-native-pre-post.ts +1360 -0
  2997. package/src/scripts/demo-claude-workers.sh +241 -0
  2998. package/src/scripts/demo-team-e2e.sh +184 -0
  2999. package/src/scripts/eval/eval-adaptive-sort-optimization.py +24 -0
  3000. package/src/scripts/eval/eval-candidate-handoff.ts +8 -0
  3001. package/src/scripts/eval/eval-cli-discoverability.ts +40 -0
  3002. package/src/scripts/eval/eval-fresh-run-tagging.ts +8 -0
  3003. package/src/scripts/eval/eval-help-consistency.ts +11 -0
  3004. package/src/scripts/eval/eval-in-action-cat-shellout-demo.ts +31 -0
  3005. package/src/scripts/eval/eval-ml-kaggle-model-optimization.py +29 -0
  3006. package/src/scripts/eval/eval-noisy-bayesopt-highdim.py +44 -0
  3007. package/src/scripts/eval/eval-noisy-latent-subspace-discovery.py +44 -0
  3008. package/src/scripts/eval/eval-parity-smoke.ts +20 -0
  3009. package/src/scripts/eval/eval-parity-sweep.ts +26 -0
  3010. package/src/scripts/eval/eval-resume-dirty-guard.ts +8 -0
  3011. package/src/scripts/eval/eval-security-path-traversal.ts +38 -0
  3012. package/src/scripts/fixtures/ask-advisor-stub.ts +12 -0
  3013. package/src/scripts/generate-catalog-docs.ts +112 -0
  3014. package/src/scripts/generate-native-release-manifest.ts +147 -0
  3015. package/src/scripts/generate-release-body.ts +327 -0
  3016. package/src/scripts/hook-derived-watcher.ts +649 -0
  3017. package/src/scripts/hook-payload-guard.ts +113 -0
  3018. package/src/scripts/notify-dispatcher.ts +408 -0
  3019. package/src/scripts/notify-fallback-watcher.ts +2022 -0
  3020. package/src/scripts/notify-hook/__tests__/operational-events.test.ts +24 -0
  3021. package/src/scripts/notify-hook/__tests__/payload-guard.test.ts +41 -0
  3022. package/src/scripts/notify-hook/__tests__/team-worker-posttooluse.test.ts +180 -0
  3023. package/src/scripts/notify-hook/active-team.ts +55 -0
  3024. package/src/scripts/notify-hook/auto-nudge.ts +758 -0
  3025. package/src/scripts/notify-hook/log.ts +30 -0
  3026. package/src/scripts/notify-hook/managed-tmux.ts +568 -0
  3027. package/src/scripts/notify-hook/operational-events.ts +282 -0
  3028. package/src/scripts/notify-hook/orchestration-intent.ts +80 -0
  3029. package/src/scripts/notify-hook/payload-parser.ts +143 -0
  3030. package/src/scripts/notify-hook/process-runner.ts +75 -0
  3031. package/src/scripts/notify-hook/ralph-session-resume.ts +465 -0
  3032. package/src/scripts/notify-hook/state-io.ts +220 -0
  3033. package/src/scripts/notify-hook/team-dispatch.ts +1162 -0
  3034. package/src/scripts/notify-hook/team-leader-nudge.ts +1068 -0
  3035. package/src/scripts/notify-hook/team-tmux-guard.ts +236 -0
  3036. package/src/scripts/notify-hook/team-worker-posttooluse.ts +536 -0
  3037. package/src/scripts/notify-hook/team-worker-stop.ts +438 -0
  3038. package/src/scripts/notify-hook/team-worker.ts +709 -0
  3039. package/src/scripts/notify-hook/tmux-injection.ts +740 -0
  3040. package/src/scripts/notify-hook/utils.ts +31 -0
  3041. package/src/scripts/notify-hook/visual-verdict.ts +158 -0
  3042. package/src/scripts/notify-hook.ts +1033 -0
  3043. package/src/scripts/postinstall.ts +107 -0
  3044. package/src/scripts/prepare-build.js +83 -0
  3045. package/src/scripts/prompt-inventory.ts +218 -0
  3046. package/src/scripts/run-autoresearch-showcase.sh +75 -0
  3047. package/src/scripts/run-provider-advisor.ts +213 -0
  3048. package/src/scripts/run-test-files.ts +379 -0
  3049. package/src/scripts/smoke-packed-install.ts +268 -0
  3050. package/src/scripts/sync-plugin-mirror.ts +458 -0
  3051. package/src/scripts/sync-prompt-guidance-fragments.ts +55 -0
  3052. package/src/scripts/team-hardening-benchmark.ts +90 -0
  3053. package/src/scripts/test-reply-listener-live.ts +188 -0
  3054. package/src/scripts/test-sparkshell.ts +29 -0
  3055. package/src/scripts/tmux-hook-engine.ts +349 -0
  3056. package/src/scripts/verify-native-agents.ts +311 -0
  3057. package/src/scripts/verify-native-release-assets.ts +68 -0
  3058. package/templates/AGENTS.md +187 -0
  3059. package/templates/catalog-manifest.json +547 -0
  3060. package/templates/model-instructions/explore-lightweight-AGENTS.md +11 -0
  3061. package/templates/model-instructions/sparkshell-lightweight-AGENTS.md +10 -0
@@ -0,0 +1,2748 @@
1
+ /**
2
+ * omx setup - Automated installation of oh-my-codex
3
+ * Installs skills, prompts, MCP servers config, and AGENTS.md
4
+ */
5
+ import { mkdir, cp, copyFile, readdir, readFile, rename, writeFile, stat, lstat, rm, } from "fs/promises";
6
+ import { join, dirname, relative, basename } from "path";
7
+ import { existsSync } from "fs";
8
+ import { spawnSync } from "child_process";
9
+ import { createInterface } from "readline/promises";
10
+ import { homedir } from "os";
11
+ import TOML from "@iarna/toml";
12
+ import { codexHome, codexConfigPath, codexPromptsDir, codexAgentsDir, userSkillsDir, omxStateDir, detectLegacySkillRootOverlap, omxPlansDir, omxLogsDir, } from "../utils/paths.js";
13
+ import { buildMergedConfig, getRootModelName, getRootTomlArray, hasLegacyOmxTeamRunTable, isOmxManagedNotifyCommand, sanitizePreviousNotifyCommand, stripExistingOmxBlocks, stripExistingSharedMcpRegistryBlock, mergeSharedMcpRegistryBlock, stripOmxEnvSettings, stripOmxFeatureFlags, stripOmxSeededBehavioralDefaults, upsertPluginModeRuntimeFeatureFlags, upsertManagedCodexHookTrustState, stripManagedCodexHookTrustState, OMX_DEVELOPER_INSTRUCTIONS, OMX_PLUGIN_DEVELOPER_INSTRUCTIONS, hasFirstPartyOmxMcpRegistrations, extractFirstPartyOmxMcpSections, stripFirstPartyOmxMcpSections, } from "../config/generator.js";
14
+ import { buildManagedCodexHookTrustState, buildManagedCodexNativeHookWindowsShimContent, buildManagedCodexNativeHookWindowsShimPath, mergeManagedCodexHooksConfig, removeManagedCodexHooks, } from "../config/codex-hooks.js";
15
+ import { getLegacyUnifiedMcpRegistryCandidate, getUnifiedMcpRegistryCandidates, loadUnifiedMcpRegistry, planClaudeCodeMcpSettingsSync, } from "../config/mcp-registry.js";
16
+ import { generateAgentToml } from "../agents/native-config.js";
17
+ import { AGENT_DEFINITIONS } from "../agents/definitions.js";
18
+ import { getCatalogAgentStatusByName, getInstallableNativeAgentNames, isNativeAgentInstallableStatus, isSetupPromptAssetName, } from "../agents/policy.js";
19
+ import { getPackageRoot } from "../utils/package.js";
20
+ import { readSessionState, isSessionStale } from "../hooks/session.js";
21
+ import { getCatalogHeadlineCounts } from "./catalog-contract.js";
22
+ import { tryReadCatalogManifest } from "../catalog/reader.js";
23
+ import { DEFAULT_FRONTIER_MODEL } from "../config/models.js";
24
+ import { teamModeEnabled, } from "../config/team-mode.js";
25
+ import { addGeneratedAgentsMarker, hasOmxAgentsContract, hasOmxManagedAgentsSections, isOmxGeneratedAgentsMd, upsertManagedAgentsBlock, } from "../utils/agents-md.js";
26
+ import { DEFAULT_HUD_CONFIG } from "../hud/types.js";
27
+ import { SETUP_INSTALL_MODES, SETUP_MCP_MODES, SETUP_SCOPES, getSetupScopeFilePath, readPersistedSetupPreferences, } from "./setup-preferences.js";
28
+ import { OMX_LOCAL_MARKETPLACE_NAME, OMX_PLUGIN_NAME, materializePackagedOmxPluginCache, resolvePackagedOmxMarketplace, upsertLocalOmxMarketplaceRegistration, upsertLocalOmxPluginEnablement, upsertLocalOmxPluginMcpServerEnablement, hasLocalOmxPluginMcpServerRegistrations, pluginHookCacheMatchesPackaged, } from "./plugin-marketplace.js";
29
+ import { resolveCodexHookFeatureSupportForCli } from "./codex-feature-probe.js";
30
+ async function resolveStatusLinePresetForSetup(projectRoot, options) {
31
+ if (options.force) {
32
+ return DEFAULT_HUD_CONFIG.statusLine.preset;
33
+ }
34
+ const path = join(projectRoot, ".omx", "hud-config.json");
35
+ if (!existsSync(path))
36
+ return undefined;
37
+ try {
38
+ const raw = JSON.parse(await readFile(path, "utf-8"));
39
+ const preset = raw?.statusLine?.preset;
40
+ if (preset === "minimal" || preset === "focused" || preset === "full") {
41
+ return preset;
42
+ }
43
+ }
44
+ catch {
45
+ // Malformed hud-config.json — fall through to default.
46
+ }
47
+ return undefined;
48
+ }
49
+ import { resolveAgentsModelTableContext, upsertAgentsModelTable, } from "../utils/agents-model-table.js";
50
+ export { SETUP_INSTALL_MODES, SETUP_MCP_MODES, SETUP_SCOPES };
51
+ export { SETUP_TEAM_MODES } from "../config/team-mode.js";
52
+ const PROJECT_GITIGNORE_ENTRIES = [
53
+ ".omx/",
54
+ ".codex/*",
55
+ "!.codex/agents/",
56
+ "!.codex/agents/**",
57
+ "!.codex/skills/",
58
+ "!.codex/skills/**",
59
+ ".codex/skills/.system/**",
60
+ "!.codex/prompts/",
61
+ "!.codex/prompts/**",
62
+ ];
63
+ const LEGACY_PROJECT_GITIGNORE_ENTRIES = [".codex/"];
64
+ const SETUP_ONLY_INSTALLABLE_SKILLS = new Set(["wiki"]);
65
+ const DEFAULT_SETUP_MCP_MODE = "none";
66
+ const HARD_DEPRECATED_SKILL_NAMES = new Set(["web-clone"]);
67
+ const TEAM_MODE_SKILL_NAMES = new Set(["team", "worker"]);
68
+ const TEAM_MODE_PROMPT_NAMES = new Set(["team-executor"]);
69
+ const TEAM_MODE_NATIVE_AGENT_NAMES = new Set(["team-executor"]);
70
+ function isCatalogInstallableStatus(status) {
71
+ return status === "active" || status === "internal";
72
+ }
73
+ function getSetupInstallableSkillNames(manifest = tryReadCatalogManifest()) {
74
+ return new Set([
75
+ ...(manifest?.skills ?? [])
76
+ .filter((skill) => typeof skill.name === "string" &&
77
+ isCatalogInstallableStatus(skill.status))
78
+ .map((skill) => skill.name),
79
+ ...SETUP_ONLY_INSTALLABLE_SKILLS,
80
+ ]);
81
+ }
82
+ function applyScopePathRewritesToAgentsTemplate(content, scope) {
83
+ if (scope !== "project")
84
+ return content;
85
+ return content.replaceAll("~/.codex", "./.codex");
86
+ }
87
+ function applyPluginModeWordingToAgentsTemplate(content, scope) {
88
+ const scopedContent = applyScopePathRewritesToAgentsTemplate(content, scope);
89
+ const userSkillPath = scope === "project"
90
+ ? "`./.codex/skills` for project scope, or `~/.codex/skills` for user-installed skills"
91
+ : "`~/.codex/skills`";
92
+ return scopedContent.replace(/Role prompts under `prompts\/\*\.md` are narrower execution surfaces\. They must follow this file, not override it\.\nWhen OMX is installed, load the installed prompt\/skill\/agent surfaces from [^\n]+active\)\./, `Registered Codex plugin marketplace surfaces supply OMX workflows and plugin-scoped companion resources when the plugin is installed. Native agent roles are installed as setup-owned Codex agent TOML files in plugin mode so agent_type routing works. They must follow this file, not override it.\nUser-installed skills may still live under ${userSkillPath}.`);
93
+ }
94
+ function stripNamedXmlSection(content, sectionName) {
95
+ return content.replace(new RegExp(`\\n?<${sectionName}>[\\s\\S]*?<\\/${sectionName}>\\n?`, "g"), "\n");
96
+ }
97
+ function applyTeamModeToAgentsTemplate(content, teamMode) {
98
+ if (teamModeEnabled(teamMode))
99
+ return content;
100
+ let next = content;
101
+ for (const section of ["team_compositions", "team_pipeline", "team_model_resolution"]) {
102
+ next = stripNamedXmlSection(next, section);
103
+ }
104
+ return next
105
+ .replace(/\(\+ \$team if needed\)/g, "")
106
+ .replace(/- `\$team` when[^\n]*\n/g, "")
107
+ .replace(/,?\s*`team`,?/g, "")
108
+ .replace(/\s*\|\s*`\$team ".*?"`\s*\|.*\|\n/g, "\n")
109
+ .replace(/,?\s*`\$team`/g, "")
110
+ .replace(/`\$team`,?\s*/g, "")
111
+ .replace(/\/?\s*`team`\/`swarm`/g, "`swarm`")
112
+ .split("\n")
113
+ .filter((line) => {
114
+ const normalized = line.toLowerCase();
115
+ if (normalized.includes("team mode"))
116
+ return false;
117
+ if (normalized.includes("team runtime"))
118
+ return false;
119
+ if (normalized.includes("team orchestration"))
120
+ return false;
121
+ if (normalized.includes("team/swarm"))
122
+ return false;
123
+ if (normalized.includes("team pipeline"))
124
+ return false;
125
+ if (normalized.includes("runtime/team"))
126
+ return false;
127
+ if (normalized.includes("team overlays"))
128
+ return false;
129
+ if (normalized.includes("team pane"))
130
+ return false;
131
+ if (normalized.startsWith("- teams may "))
132
+ return false;
133
+ if (normalized.includes("outside active `team`"))
134
+ return false;
135
+ if (normalized.includes("reserve `worker`"))
136
+ return false;
137
+ if (normalized.includes("worker` is a team-runtime"))
138
+ return false;
139
+ if (normalized.includes("team-plan"))
140
+ return false;
141
+ if (normalized.includes("omx team"))
142
+ return false;
143
+ return true;
144
+ })
145
+ .join("\n")
146
+ .replace(/\n{3,}/g, "\n\n");
147
+ }
148
+ function getAgentsModelTableDefinitionsForTeamMode(teamMode) {
149
+ if (teamModeEnabled(teamMode))
150
+ return AGENT_DEFINITIONS;
151
+ return Object.fromEntries(Object.entries(AGENT_DEFINITIONS).filter(([name]) => !TEAM_MODE_NATIVE_AGENT_NAMES.has(name)));
152
+ }
153
+ const REQUIRED_TEAM_CLI_API_MARKERS = [
154
+ "if (subcommand === 'api')",
155
+ "executeTeamApiOperation",
156
+ "TEAM_API_OPERATIONS",
157
+ ];
158
+ const DEFAULT_SETUP_SCOPE = "user";
159
+ const DEFAULT_SETUP_INSTALL_MODE = "legacy";
160
+ const LEGACY_SETUP_MODEL = "gpt-5.3-codex";
161
+ const DEFAULT_SETUP_MODEL = DEFAULT_FRONTIER_MODEL;
162
+ const OBSOLETE_NATIVE_AGENT_FIELD = ["skill", "ref"].join("_");
163
+ const GITHUB_AUTH_STATUS_TIMEOUT_MS = 2_000;
164
+ let cachedGitHubCliConfigured;
165
+ function createEmptyCategorySummary() {
166
+ return {
167
+ updated: 0,
168
+ unchanged: 0,
169
+ backedUp: 0,
170
+ skipped: 0,
171
+ removed: 0,
172
+ };
173
+ }
174
+ function createEmptyRunSummary() {
175
+ return {
176
+ prompts: createEmptyCategorySummary(),
177
+ skills: createEmptyCategorySummary(),
178
+ nativeAgents: createEmptyCategorySummary(),
179
+ agentsMd: createEmptyCategorySummary(),
180
+ config: createEmptyCategorySummary(),
181
+ };
182
+ }
183
+ function getBackupContext(scope, projectRoot) {
184
+ const timestamp = new Date().toISOString().replace(/[:]/g, "-");
185
+ if (scope === "project") {
186
+ return {
187
+ backupRoot: join(projectRoot, ".omx", "backups", "setup", timestamp),
188
+ baseRoot: projectRoot,
189
+ };
190
+ }
191
+ return {
192
+ backupRoot: join(homedir(), ".omx", "backups", "setup", timestamp),
193
+ baseRoot: homedir(),
194
+ };
195
+ }
196
+ async function ensureBackup(destinationPath, contentChanged, backupContext, options) {
197
+ if (!contentChanged || !existsSync(destinationPath))
198
+ return false;
199
+ const relativePath = relative(backupContext.baseRoot, destinationPath);
200
+ const safeRelativePath = relativePath.startsWith("..") || relativePath === ""
201
+ ? destinationPath.replace(/^[/]+/, "")
202
+ : relativePath;
203
+ const backupPath = join(backupContext.backupRoot, safeRelativePath);
204
+ if (!options.dryRun) {
205
+ await mkdir(dirname(backupPath), { recursive: true });
206
+ await copyFile(destinationPath, backupPath);
207
+ }
208
+ if (options.verbose) {
209
+ console.log(` backup ${destinationPath} -> ${backupPath}`);
210
+ }
211
+ return true;
212
+ }
213
+ async function moveExistingAgentsToDeterministicBackup(destinationPath, options) {
214
+ if (!existsSync(destinationPath))
215
+ return null;
216
+ const backupBaseName = `.${basename(destinationPath)}.bkup`;
217
+ let backupPath = join(dirname(destinationPath), backupBaseName);
218
+ let suffix = 1;
219
+ while (existsSync(backupPath)) {
220
+ backupPath = join(dirname(destinationPath), `${backupBaseName}${suffix}`);
221
+ suffix += 1;
222
+ }
223
+ if (!options.dryRun) {
224
+ await rename(destinationPath, backupPath);
225
+ }
226
+ console.log(` Backed up existing AGENTS.md to ${backupPath}.`);
227
+ return backupPath;
228
+ }
229
+ async function filesDiffer(src, dst) {
230
+ if (!existsSync(dst))
231
+ return true;
232
+ const [srcContent, dstContent] = await Promise.all([
233
+ readFile(src, "utf-8"),
234
+ readFile(dst, "utf-8"),
235
+ ]);
236
+ return srcContent !== dstContent;
237
+ }
238
+ function containsTomlKey(content, key) {
239
+ const escapedKey = key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
240
+ return new RegExp(`^\\s*${escapedKey}\\s*=`, "m").test(content);
241
+ }
242
+ function parseSkillFrontmatterScalar(value, key, filePath) {
243
+ const trimmed = value.trim();
244
+ if (!trimmed) {
245
+ throw new Error(`${filePath} frontmatter "${key}" must not be empty`);
246
+ }
247
+ if (trimmed === "|" || trimmed === ">") {
248
+ throw new Error(`${filePath} frontmatter "${key}" must be a single-line string`);
249
+ }
250
+ const quote = trimmed[0];
251
+ if (quote === '"' || quote === "'") {
252
+ if (trimmed.length < 2 || trimmed.at(-1) !== quote) {
253
+ throw new Error(`${filePath} frontmatter "${key}" has an unterminated quoted string`);
254
+ }
255
+ const unquoted = trimmed.slice(1, -1).trim();
256
+ if (!unquoted) {
257
+ throw new Error(`${filePath} frontmatter "${key}" must not be empty`);
258
+ }
259
+ return unquoted;
260
+ }
261
+ const unquoted = trimmed.replace(/\s+#.*$/, "").trim();
262
+ if (!unquoted) {
263
+ throw new Error(`${filePath} frontmatter "${key}" must not be empty`);
264
+ }
265
+ return unquoted;
266
+ }
267
+ export function parseSkillFrontmatter(content, filePath = "SKILL.md") {
268
+ const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/);
269
+ if (!frontmatterMatch) {
270
+ throw new Error(`${filePath} must start with YAML frontmatter containing non-empty name and description fields`);
271
+ }
272
+ let name;
273
+ let description;
274
+ const lines = frontmatterMatch[1].split(/\r?\n/);
275
+ for (const [index, rawLine] of lines.entries()) {
276
+ const line = rawLine.trimEnd();
277
+ const trimmed = line.trim();
278
+ if (!trimmed || trimmed.startsWith("#"))
279
+ continue;
280
+ if (/^\s/.test(rawLine))
281
+ continue;
282
+ const match = line.match(/^([A-Za-z0-9_-]+):(.*)$/);
283
+ if (!match) {
284
+ throw new Error(`${filePath} has invalid YAML frontmatter on line ${index + 2}: ${trimmed}`);
285
+ }
286
+ const [, key, rawValue] = match;
287
+ if (!rawValue.trim())
288
+ continue;
289
+ const parsedValue = parseSkillFrontmatterScalar(rawValue, key, filePath);
290
+ if (key === "name")
291
+ name = parsedValue;
292
+ if (key === "description")
293
+ description = parsedValue;
294
+ }
295
+ if (!name) {
296
+ throw new Error(`${filePath} is missing a non-empty frontmatter "name"`);
297
+ }
298
+ if (!description) {
299
+ throw new Error(`${filePath} is missing a non-empty frontmatter "description"`);
300
+ }
301
+ return { name, description };
302
+ }
303
+ export async function validateSkillFile(skillMdPath) {
304
+ const content = await readFile(skillMdPath, "utf-8");
305
+ parseSkillFrontmatter(content, skillMdPath);
306
+ }
307
+ function rewriteInstalledSkillDescriptionBadge(content, filePath = "SKILL.md") {
308
+ const metadata = parseSkillFrontmatter(content, filePath);
309
+ const badgePrefix = "[OMX] ";
310
+ const displayDescription = metadata.description.startsWith(badgePrefix)
311
+ ? metadata.description
312
+ : `${badgePrefix}${metadata.description}`;
313
+ return content.replace(/^---\r?\n([\s\S]*?)\r?\n---/, (frontmatterBlock, body) => {
314
+ const rewrittenBody = body.replace(/^([ \t]*)description:(.*)$/m, (_line, indent) => `${indent}description: ${JSON.stringify(displayDescription)}`);
315
+ return frontmatterBlock.replace(body, rewrittenBody);
316
+ });
317
+ }
318
+ async function buildLegacySkillOverlapNotice(scope) {
319
+ if (scope !== "user") {
320
+ return { shouldWarn: false, message: "" };
321
+ }
322
+ const overlap = await detectLegacySkillRootOverlap();
323
+ if (!overlap.legacyExists) {
324
+ return { shouldWarn: false, message: "" };
325
+ }
326
+ if (overlap.overlappingSkillNames.length === 0) {
327
+ return {
328
+ shouldWarn: true,
329
+ message: `Legacy ~/.agents/skills still exists (${overlap.legacySkillCount} skills) alongside canonical ${overlap.canonicalDir}. Codex may still discover both roots; archive or remove ~/.agents/skills if Enable/Disable Skills shows duplicates.`,
330
+ };
331
+ }
332
+ const mismatchSuffix = overlap.mismatchedSkillNames.length > 0
333
+ ? ` ${overlap.mismatchedSkillNames.length} overlapping skills have different SKILL.md content.`
334
+ : "";
335
+ return {
336
+ shouldWarn: true,
337
+ message: `Detected ${overlap.overlappingSkillNames.length} overlapping skill names between canonical ${overlap.canonicalDir} and legacy ${overlap.legacyDir}.${mismatchSuffix} Remove or archive ~/.agents/skills after confirming ${overlap.canonicalDir} is the version you want Codex to load.`,
338
+ };
339
+ }
340
+ export function resolveScopeDirectories(scope, projectRoot) {
341
+ if (scope === "project") {
342
+ const codexHomeDir = join(projectRoot, ".codex");
343
+ return {
344
+ codexConfigFile: join(codexHomeDir, "config.toml"),
345
+ codexHomeDir,
346
+ codexHooksFile: join(codexHomeDir, "hooks.json"),
347
+ nativeAgentsDir: join(codexHomeDir, "agents"),
348
+ promptsDir: join(codexHomeDir, "prompts"),
349
+ skillsDir: join(codexHomeDir, "skills"),
350
+ };
351
+ }
352
+ return {
353
+ codexConfigFile: codexConfigPath(),
354
+ codexHomeDir: codexHome(),
355
+ codexHooksFile: join(codexHome(), "hooks.json"),
356
+ nativeAgentsDir: codexAgentsDir(),
357
+ promptsDir: codexPromptsDir(),
358
+ skillsDir: userSkillsDir(),
359
+ };
360
+ }
361
+ function logCategorySummary(name, summary) {
362
+ console.log(` ${name}: updated=${summary.updated}, unchanged=${summary.unchanged}, ` +
363
+ `backed_up=${summary.backedUp}, skipped=${summary.skipped}, removed=${summary.removed}`);
364
+ }
365
+ async function promptForSetupScope(defaultScope) {
366
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
367
+ return defaultScope;
368
+ }
369
+ const rl = createInterface({
370
+ input: process.stdin,
371
+ output: process.stdout,
372
+ });
373
+ try {
374
+ const userDefaultMarker = defaultScope === "user" ? " (default)" : "";
375
+ const projectDefaultMarker = defaultScope === "project" ? " (default)" : "";
376
+ const defaultChoice = defaultScope === "project" ? "2" : "1";
377
+ console.log("Select setup scope:");
378
+ console.log(` 1) user${userDefaultMarker} — installs to ${codexHome()} (skills default to ${userSkillsDir()})`);
379
+ console.log(` 2) project${projectDefaultMarker} — installs to ./.codex (local to project)`);
380
+ const answer = (await rl.question(`Scope [1-2] (default: ${defaultChoice}): `))
381
+ .trim()
382
+ .toLowerCase();
383
+ if (answer === "2" || answer === "project")
384
+ return "project";
385
+ if (answer === "1" || answer === "user")
386
+ return "user";
387
+ return defaultScope;
388
+ }
389
+ finally {
390
+ rl.close();
391
+ }
392
+ }
393
+ async function promptForSetupInstallMode(defaultMode) {
394
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
395
+ return defaultMode;
396
+ }
397
+ const rl = createInterface({
398
+ input: process.stdin,
399
+ output: process.stdout,
400
+ });
401
+ try {
402
+ console.log("Select user-scope skill delivery mode:");
403
+ console.log(` 1) legacy${defaultMode === "legacy" ? " (default)" : ""} — install/update OMX skills in the resolved user skill root`);
404
+ console.log(` 2) plugin${defaultMode === "plugin" ? " (default)" : ""} — rely on Codex plugin discovery and clean up matching legacy OMX-managed setup artifacts`);
405
+ const defaultChoice = defaultMode === "plugin" ? "2" : "1";
406
+ const answer = (await rl.question(`Install mode [1-2] (default: ${defaultChoice}): `))
407
+ .trim()
408
+ .toLowerCase();
409
+ if (answer === "2" || answer === "plugin")
410
+ return "plugin";
411
+ if (answer === "1" || answer === "legacy")
412
+ return "legacy";
413
+ return defaultMode;
414
+ }
415
+ finally {
416
+ rl.close();
417
+ }
418
+ }
419
+ async function promptForFirstPartyMcpRemoval(configPath, registrationKinds) {
420
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
421
+ return false;
422
+ }
423
+ const rl = createInterface({
424
+ input: process.stdin,
425
+ output: process.stdout,
426
+ });
427
+ try {
428
+ console.log("Deprecated first-party OMX MCP registration detected:");
429
+ console.log(` ${configPath}`);
430
+ console.log(` ${registrationKinds.join(", ")}`);
431
+ console.log(" OMX is CLI-first by default now; first-party MCP compatibility is legacy/explicit.");
432
+ const answer = (await rl.question("Remove first-party OMX MCP registrations now? [y/N]: "))
433
+ .trim()
434
+ .toLowerCase();
435
+ return answer === "y" || answer === "yes";
436
+ }
437
+ finally {
438
+ rl.close();
439
+ }
440
+ }
441
+ function hasPersistedSetupPreferences(preferences) {
442
+ return Boolean(preferences?.scope || preferences?.installMode || preferences?.teamMode);
443
+ }
444
+ function formatPersistedSetupPreferenceSummary(preferences) {
445
+ const summary = [
446
+ `scope=${preferences.scope ?? "not recorded"}`,
447
+ `installMode=${preferences.installMode ?? "not recorded"}`,
448
+ `mcpMode=${preferences.mcpMode ?? "not recorded"}`,
449
+ ];
450
+ if (preferences.teamMode)
451
+ summary.push(`teamMode=${preferences.teamMode}`);
452
+ return summary.join(", ");
453
+ }
454
+ async function promptForPersistedSetupReview(preferences) {
455
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
456
+ return "keep";
457
+ }
458
+ const rl = createInterface({
459
+ input: process.stdin,
460
+ output: process.stdout,
461
+ });
462
+ try {
463
+ console.log("Existing OMX setup preferences detected:");
464
+ console.log(` ${formatPersistedSetupPreferenceSummary(preferences)}`);
465
+ console.log(" 1) keep — reuse these choices for this setup run");
466
+ console.log(" 2) review — review/change choices, using these values as defaults");
467
+ console.log(" 3) reset — ignore saved choices and run setup as if fresh");
468
+ const answer = (await rl.question("Setup preferences [1-3] (default: 1 keep): "))
469
+ .trim()
470
+ .toLowerCase();
471
+ if (answer === "2" || answer === "review" || answer === "change") {
472
+ return "review";
473
+ }
474
+ if (answer === "3" || answer === "reset" || answer === "fresh") {
475
+ return "reset";
476
+ }
477
+ return "keep";
478
+ }
479
+ finally {
480
+ rl.close();
481
+ }
482
+ }
483
+ async function promptForModelUpgrade(currentModel, targetModel) {
484
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
485
+ return false;
486
+ }
487
+ const rl = createInterface({
488
+ input: process.stdin,
489
+ output: process.stdout,
490
+ });
491
+ try {
492
+ const answer = (await rl.question(`Detected model "${currentModel}". Update to "${targetModel}"? [Y/n]: `))
493
+ .trim()
494
+ .toLowerCase();
495
+ return answer === "" || answer === "y" || answer === "yes";
496
+ }
497
+ finally {
498
+ rl.close();
499
+ }
500
+ }
501
+ async function promptForAgentsOverwrite(destinationPath) {
502
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
503
+ return false;
504
+ }
505
+ const rl = createInterface({
506
+ input: process.stdin,
507
+ output: process.stdout,
508
+ });
509
+ try {
510
+ const answer = (await rl.question(`Overwrite existing AGENTS.md at "${destinationPath}"? [y/N]: `))
511
+ .trim()
512
+ .toLowerCase();
513
+ return answer === "y" || answer === "yes";
514
+ }
515
+ finally {
516
+ rl.close();
517
+ }
518
+ }
519
+ async function promptForPluginAgentsMdDefault(destinationPath) {
520
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
521
+ return !existsSync(destinationPath);
522
+ }
523
+ const rl = createInterface({
524
+ input: process.stdin,
525
+ output: process.stdout,
526
+ });
527
+ try {
528
+ const answer = (await rl.question(`Plugin mode: install/update OMX AGENTS.md defaults at "${destinationPath}"? [Y/n]: `))
529
+ .trim()
530
+ .toLowerCase();
531
+ return answer === "" || answer === "y" || answer === "yes";
532
+ }
533
+ finally {
534
+ rl.close();
535
+ }
536
+ }
537
+ const LEGACY_PLUGIN_DEVELOPER_INSTRUCTIONS = "You have oh-my-codex installed through Codex plugin mode. AGENTS.md is the orchestration brain and main control surface. Follow AGENTS.md for skill/keyword routing and $name workflow invocation. When spawning native subagents, set `agent_type` to an installed role and never omit it for OMX work. Registered Codex plugin marketplace surfaces supply OMX workflows and plugin-scoped companion resources when the plugin is installed; native agent roles are installed as setup-owned Codex agent TOML files in plugin mode so agent_type routing works. User-installed skills may still live under ~/.codex/skills. Use outcome-first, concise progress updates: state the target result, constraints, validation evidence, and stop condition before adding process detail.";
538
+ function normalizeDeveloperInstructionsText(value) {
539
+ return value.replace(/\r\n/g, "\n").trim();
540
+ }
541
+ function classifyPluginDeveloperInstructions(value) {
542
+ if (typeof value !== "string")
543
+ return "custom";
544
+ const normalized = normalizeDeveloperInstructionsText(value);
545
+ if (normalized ===
546
+ normalizeDeveloperInstructionsText(OMX_PLUGIN_DEVELOPER_INSTRUCTIONS)) {
547
+ return "current";
548
+ }
549
+ if (normalized ===
550
+ normalizeDeveloperInstructionsText(LEGACY_PLUGIN_DEVELOPER_INSTRUCTIONS)) {
551
+ return "current";
552
+ }
553
+ if (normalized === normalizeDeveloperInstructionsText(OMX_DEVELOPER_INSTRUCTIONS)) {
554
+ return "historical";
555
+ }
556
+ return "custom";
557
+ }
558
+ function readRootDeveloperInstructions(config) {
559
+ if (!rootHasTomlKey(config, "developer_instructions"))
560
+ return undefined;
561
+ try {
562
+ const parsed = TOML.parse(config);
563
+ return parsed.developer_instructions;
564
+ }
565
+ catch {
566
+ return Symbol.for("omx.invalid-developer-instructions");
567
+ }
568
+ }
569
+ async function askYesNoDefaultYes(question) {
570
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
571
+ return false;
572
+ }
573
+ const rl = createInterface({
574
+ input: process.stdin,
575
+ output: process.stdout,
576
+ });
577
+ try {
578
+ const answer = (await rl.question(question)).trim().toLowerCase();
579
+ return answer === "" || answer === "y" || answer === "yes";
580
+ }
581
+ finally {
582
+ rl.close();
583
+ }
584
+ }
585
+ function legacyPluginDeveloperInstructionsDecision(choice, state = "missing") {
586
+ if (choice === "refresh" || (choice === true && state === "historical")) {
587
+ return {
588
+ action: "update",
589
+ state: "historical",
590
+ reason: choice === "refresh"
591
+ ? "legacy explicit refresh policy"
592
+ : "legacy boolean approval refreshed historical developer_instructions",
593
+ };
594
+ }
595
+ if (choice === true || choice === "preserve-or-add") {
596
+ return {
597
+ action: "add",
598
+ state: "missing",
599
+ reason: "legacy explicit add-if-missing policy",
600
+ };
601
+ }
602
+ return {
603
+ action: "preserve",
604
+ state,
605
+ reason: "legacy explicit skip policy",
606
+ };
607
+ }
608
+ async function resolvePluginDeveloperInstructionsDecision(configPath, options) {
609
+ const existing = existsSync(configPath)
610
+ ? await readFile(configPath, "utf-8")
611
+ : "";
612
+ const value = readRootDeveloperInstructions(existing);
613
+ if (value === undefined) {
614
+ if (options.pluginDeveloperInstructionsPrompt) {
615
+ return legacyPluginDeveloperInstructionsDecision(await options.pluginDeveloperInstructionsPrompt(configPath), "missing");
616
+ }
617
+ const install = await askYesNoDefaultYes(`Plugin mode: add OMX developer_instructions bootstrap to "${configPath}"? [Y/n]: `);
618
+ return install
619
+ ? {
620
+ action: "add",
621
+ state: "missing",
622
+ reason: "missing developer_instructions",
623
+ }
624
+ : {
625
+ action: "preserve",
626
+ state: "missing",
627
+ reason: "missing developer_instructions skipped",
628
+ };
629
+ }
630
+ const state = classifyPluginDeveloperInstructions(value);
631
+ if (state === "current") {
632
+ return {
633
+ action: "preserve",
634
+ state,
635
+ reason: "current OMX developer_instructions already installed",
636
+ };
637
+ }
638
+ if (state === "historical") {
639
+ const updateDecision = options.pluginDeveloperInstructionsPrompt
640
+ ? legacyPluginDeveloperInstructionsDecision(await options.pluginDeveloperInstructionsPrompt(configPath), state)
641
+ : await askYesNoDefaultYes(`Plugin mode: update OMX developer_instructions bootstrap at "${configPath}"? [Y/n]: `)
642
+ ? {
643
+ action: "update",
644
+ state,
645
+ reason: "recognized historical OMX developer_instructions",
646
+ }
647
+ : {
648
+ action: "preserve",
649
+ state,
650
+ reason: "historical OMX developer_instructions preserved",
651
+ };
652
+ const update = updateDecision.action === "update";
653
+ return update
654
+ ? {
655
+ action: "update",
656
+ state,
657
+ reason: "recognized historical OMX developer_instructions",
658
+ }
659
+ : {
660
+ action: "preserve",
661
+ state,
662
+ reason: "historical OMX developer_instructions preserved",
663
+ };
664
+ }
665
+ return {
666
+ action: "preserve",
667
+ state: "custom",
668
+ reason: "custom or unknown developer_instructions preserved",
669
+ };
670
+ }
671
+ async function resolveSetupScope(projectRoot, requestedScope, persistedReviewDecision = "keep", persistedPreferences, setupScopePrompt) {
672
+ if (requestedScope) {
673
+ return { scope: requestedScope, source: "cli" };
674
+ }
675
+ const persisted = persistedPreferences ?? (await readPersistedSetupPreferences(projectRoot));
676
+ if (persisted?.scope && persistedReviewDecision === "keep") {
677
+ return { scope: persisted.scope, source: "persisted" };
678
+ }
679
+ if (typeof setupScopePrompt === "function" ||
680
+ (process.stdin.isTTY && process.stdout.isTTY)) {
681
+ const defaultScope = persistedReviewDecision === "review" && persisted?.scope
682
+ ? persisted.scope
683
+ : DEFAULT_SETUP_SCOPE;
684
+ const scope = setupScopePrompt
685
+ ? await setupScopePrompt(defaultScope)
686
+ : await promptForSetupScope(defaultScope);
687
+ return { scope, source: "prompt" };
688
+ }
689
+ return { scope: DEFAULT_SETUP_SCOPE, source: "default" };
690
+ }
691
+ async function readPluginManifestName(manifestPath) {
692
+ try {
693
+ const parsed = JSON.parse(await readFile(manifestPath, "utf-8"));
694
+ return typeof parsed === "object" &&
695
+ parsed !== null &&
696
+ "name" in parsed &&
697
+ typeof parsed.name === "string"
698
+ ? parsed.name
699
+ : null;
700
+ }
701
+ catch {
702
+ return null;
703
+ }
704
+ }
705
+ async function readPluginManifestSummary(manifestPath) {
706
+ try {
707
+ const parsed = JSON.parse(await readFile(manifestPath, "utf-8"));
708
+ if (typeof parsed !== "object" || parsed === null)
709
+ return null;
710
+ const manifest = parsed;
711
+ return {
712
+ name: typeof manifest.name === "string" ? manifest.name : null,
713
+ version: typeof manifest.version === "string" ? manifest.version : null,
714
+ skills: typeof manifest.skills === "string" ? manifest.skills : null,
715
+ hooks: typeof manifest.hooks === "string" ? manifest.hooks : null,
716
+ };
717
+ }
718
+ catch {
719
+ return null;
720
+ }
721
+ }
722
+ async function listChildDirectoryNames(dir) {
723
+ try {
724
+ const entries = await readdir(dir, { withFileTypes: true });
725
+ return entries
726
+ .filter((entry) => entry.isDirectory())
727
+ .map((entry) => entry.name)
728
+ .sort();
729
+ }
730
+ catch {
731
+ return null;
732
+ }
733
+ }
734
+ async function discoverOmxPluginCacheDirs(cacheRoot = join(codexHome(), "plugins", "cache")) {
735
+ if (!existsSync(cacheRoot))
736
+ return [];
737
+ const queue = [
738
+ { path: cacheRoot, depth: 0 },
739
+ ];
740
+ const maxDepth = 5;
741
+ const matches = [];
742
+ while (queue.length > 0) {
743
+ const current = queue.shift();
744
+ if (!current)
745
+ break;
746
+ const manifestPath = join(current.path, ".codex-plugin", "plugin.json");
747
+ if (existsSync(manifestPath)) {
748
+ const name = await readPluginManifestName(manifestPath);
749
+ if (name === "oh-my-codex") {
750
+ matches.push(current.path);
751
+ continue;
752
+ }
753
+ }
754
+ if (current.depth >= maxDepth)
755
+ continue;
756
+ let entries;
757
+ try {
758
+ entries = await readdir(current.path, { withFileTypes: true });
759
+ }
760
+ catch {
761
+ continue;
762
+ }
763
+ for (const entry of entries) {
764
+ if (!entry.isDirectory())
765
+ continue;
766
+ if (entry.name === ".git" || entry.name === "node_modules")
767
+ continue;
768
+ queue.push({
769
+ path: join(current.path, entry.name),
770
+ depth: current.depth + 1,
771
+ });
772
+ }
773
+ }
774
+ return matches.sort();
775
+ }
776
+ async function discoverOmxPluginCacheDir(cacheRoot = join(codexHome(), "plugins", "cache")) {
777
+ return (await discoverOmxPluginCacheDirs(cacheRoot))[0] ?? null;
778
+ }
779
+ async function refreshOmxPluginDiscoveryCache(pkgRoot, options, codexHomeDir = codexHome()) {
780
+ const packagedMarketplace = await resolvePackagedOmxMarketplace(pkgRoot);
781
+ if (!packagedMarketplace) {
782
+ return { status: "unavailable", staleDirs: [] };
783
+ }
784
+ const [pkg, expectedSkillNames, cachedDirs] = await Promise.all([
785
+ readFile(join(pkgRoot, "package.json"), "utf-8").then((raw) => JSON.parse(raw)),
786
+ listChildDirectoryNames(join(packagedMarketplace.pluginRoot, "skills")),
787
+ discoverOmxPluginCacheDirs(join(codexHomeDir, "plugins", "cache")),
788
+ ]);
789
+ const expectedVersion = typeof pkg.version === "string" ? pkg.version : null;
790
+ const staleDirs = [];
791
+ for (const cacheDir of cachedDirs) {
792
+ const manifest = await readPluginManifestSummary(join(cacheDir, ".codex-plugin", "plugin.json"));
793
+ if (manifest?.name !== "oh-my-codex")
794
+ continue;
795
+ const cachedSkillNames = await listChildDirectoryNames(join(cacheDir, "skills"));
796
+ const versionChanged = expectedVersion !== null && manifest.version !== expectedVersion;
797
+ const skillsPointerChanged = manifest.skills !== "./skills/";
798
+ const hooksPointerChanged = manifest.hooks !== "./hooks/hooks.json";
799
+ const hookFilesMissing = !existsSync(join(cacheDir, "hooks", "hooks.json"))
800
+ || !existsSync(join(cacheDir, "hooks", "codex-native-hook.mjs"))
801
+ || !existsSync(join(cacheDir, "hooks", "omx-command.json"));
802
+ const hookFilesChanged = !hookFilesMissing
803
+ && !(await pluginHookCacheMatchesPackaged(cacheDir, packagedMarketplace));
804
+ const skillListChanged = expectedSkillNames !== null &&
805
+ cachedSkillNames !== null &&
806
+ JSON.stringify(cachedSkillNames) !== JSON.stringify(expectedSkillNames);
807
+ if (!versionChanged &&
808
+ !skillsPointerChanged &&
809
+ !hooksPointerChanged &&
810
+ !hookFilesMissing &&
811
+ !hookFilesChanged &&
812
+ !skillListChanged)
813
+ continue;
814
+ staleDirs.push(cacheDir);
815
+ if (!options.dryRun) {
816
+ await rm(cacheDir, { recursive: true, force: true });
817
+ }
818
+ if (options.verbose) {
819
+ const reasons = [
820
+ versionChanged
821
+ ? `version ${manifest.version ?? "unknown"} -> ${expectedVersion}`
822
+ : null,
823
+ skillsPointerChanged
824
+ ? `skills pointer ${manifest.skills ?? "missing"} -> ./skills/`
825
+ : null,
826
+ hooksPointerChanged
827
+ ? `hooks pointer ${manifest.hooks ?? "missing"} -> ./hooks/hooks.json`
828
+ : null,
829
+ hookFilesMissing ? "plugin hook files missing" : null,
830
+ hookFilesChanged ? "plugin hook files changed" : null,
831
+ skillListChanged ? "skill directory list changed" : null,
832
+ ].filter(Boolean);
833
+ console.log(` ${options.dryRun ? "would invalidate" : "invalidated"} Codex plugin discovery cache ${cacheDir} (${reasons.join(", ")})`);
834
+ }
835
+ }
836
+ return {
837
+ status: staleDirs.length > 0 ? "refreshed" : "unchanged",
838
+ staleDirs,
839
+ };
840
+ }
841
+ function resolveSetupMcpMode(scope, requestedMcpMode, persistedReviewDecision, persistedPreferences) {
842
+ if (requestedMcpMode) {
843
+ return { mcpMode: requestedMcpMode, source: "cli" };
844
+ }
845
+ if (persistedPreferences?.mcpMode &&
846
+ persistedReviewDecision === "keep" &&
847
+ persistedPreferences.scope === scope) {
848
+ return { mcpMode: persistedPreferences.mcpMode, source: "persisted" };
849
+ }
850
+ return { mcpMode: DEFAULT_SETUP_MCP_MODE, source: "default" };
851
+ }
852
+ async function resolveSetupInstallMode(projectRoot, scope, requestedInstallMode, installModePrompt, persistedReviewDecision = "keep", persistedPreferences) {
853
+ if (requestedInstallMode) {
854
+ return { installMode: requestedInstallMode, source: "cli" };
855
+ }
856
+ const persisted = persistedPreferences ?? (await readPersistedSetupPreferences(projectRoot));
857
+ if (persisted?.installMode &&
858
+ persistedReviewDecision === "keep" &&
859
+ persisted.scope === scope) {
860
+ return { installMode: persisted.installMode, source: "persisted" };
861
+ }
862
+ if (scope !== "user")
863
+ return null;
864
+ const discoveredPluginCacheDir = await discoverOmxPluginCacheDir();
865
+ const defaultMode = persistedReviewDecision === "review" && persisted?.installMode
866
+ ? persisted.installMode
867
+ : discoveredPluginCacheDir
868
+ ? "plugin"
869
+ : DEFAULT_SETUP_INSTALL_MODE;
870
+ if (typeof installModePrompt === "function" ||
871
+ (process.stdin.isTTY && process.stdout.isTTY)) {
872
+ if (discoveredPluginCacheDir) {
873
+ console.log(`Detected installed oh-my-codex Codex plugin cache at ${discoveredPluginCacheDir}.`);
874
+ }
875
+ const installMode = installModePrompt
876
+ ? await installModePrompt(defaultMode)
877
+ : await promptForSetupInstallMode(defaultMode);
878
+ return { installMode, source: "prompt" };
879
+ }
880
+ return { installMode: defaultMode, source: "default" };
881
+ }
882
+ function hasGitignoreEntry(content, entry) {
883
+ return content
884
+ .split(/\r?\n/)
885
+ .map((line) => line.trim())
886
+ .some((line) => line === entry);
887
+ }
888
+ function isProjectPathIgnoredByGit(projectRoot, path) {
889
+ const result = spawnSync("git", ["check-ignore", "--no-index", "-q", path], {
890
+ cwd: projectRoot,
891
+ stdio: "ignore",
892
+ windowsHide: true,
893
+ });
894
+ return result.status === 0;
895
+ }
896
+ function shouldAddProjectGitignoreEntry(projectRoot, content, entry) {
897
+ if (hasGitignoreEntry(content, entry))
898
+ return false;
899
+ if (entry === ".omx/" && isProjectPathIgnoredByGit(projectRoot, entry)) {
900
+ return false;
901
+ }
902
+ return true;
903
+ }
904
+ function stripLegacyGitignoreEntries(content, legacyEntries) {
905
+ const legacyEntrySet = new Set(legacyEntries);
906
+ const lines = content.split(/\r?\n/);
907
+ const filteredLines = lines.filter((line) => !legacyEntrySet.has(line.trim()));
908
+ const removed = filteredLines.length !== lines.length;
909
+ return {
910
+ content: filteredLines.join("\n").replace(/\n+$/, "\n"),
911
+ removed,
912
+ };
913
+ }
914
+ async function ensureProjectGitignore(projectRoot, backupContext, options) {
915
+ const gitignorePath = join(projectRoot, ".gitignore");
916
+ const destinationExists = existsSync(gitignorePath);
917
+ const existing = destinationExists
918
+ ? await readFile(gitignorePath, "utf-8")
919
+ : "";
920
+ const normalized = stripLegacyGitignoreEntries(existing, LEGACY_PROJECT_GITIGNORE_ENTRIES);
921
+ const missingEntries = PROJECT_GITIGNORE_ENTRIES.filter((entry) => shouldAddProjectGitignoreEntry(projectRoot, normalized.content, entry));
922
+ if (missingEntries.length === 0 && !normalized.removed) {
923
+ return "unchanged";
924
+ }
925
+ const nextContent = destinationExists
926
+ ? `${normalized.content}${normalized.content.endsWith("\n") || normalized.content.length === 0 ? "" : "\n"}${missingEntries.join("\n")}${missingEntries.length > 0 ? "\n" : ""}`
927
+ : `${missingEntries.join("\n")}\n`;
928
+ if (await ensureBackup(gitignorePath, destinationExists, backupContext, options)) {
929
+ // backup created when refreshing a pre-existing .gitignore
930
+ }
931
+ if (!options.dryRun) {
932
+ await writeFile(gitignorePath, nextContent);
933
+ }
934
+ if (options.verbose) {
935
+ const changedDetails = [
936
+ normalized.removed ? "removed legacy .codex/" : "",
937
+ missingEntries.length > 0 ? missingEntries.join(", ") : "",
938
+ ]
939
+ .filter(Boolean)
940
+ .join("; ");
941
+ console.log(` ${options.dryRun ? "would update" : destinationExists ? "updated" : "created"} .gitignore${changedDetails ? ` (${changedDetails})` : ""}`);
942
+ }
943
+ return destinationExists ? "updated" : "created";
944
+ }
945
+ async function persistSetupPreferences(projectRoot, preferences, options) {
946
+ const scopePath = getSetupScopeFilePath(projectRoot);
947
+ if (options.dryRun) {
948
+ if (options.verbose)
949
+ console.log(` dry-run: skip persisting ${scopePath}`);
950
+ return;
951
+ }
952
+ await mkdir(dirname(scopePath), { recursive: true });
953
+ await writeFile(scopePath, JSON.stringify(preferences, null, 2) + "\n");
954
+ if (options.verbose)
955
+ console.log(` Wrote ${scopePath}`);
956
+ }
957
+ async function removeEmptyDirectoryIfPresent(dirPath, options) {
958
+ if (options.dryRun || !existsSync(dirPath))
959
+ return;
960
+ try {
961
+ const remaining = await readdir(dirPath);
962
+ if (remaining.length === 0) {
963
+ await rm(dirPath, { recursive: true, force: true });
964
+ if (options.verbose)
965
+ console.log(` removed empty directory ${dirPath}`);
966
+ }
967
+ }
968
+ catch {
969
+ // Best-effort cleanup only.
970
+ }
971
+ }
972
+ async function cleanupPluginModeLegacyPrompts(srcDir, dstDir, backupContext, options) {
973
+ const summary = createEmptyCategorySummary();
974
+ if (!existsSync(srcDir) || !existsSync(dstDir))
975
+ return summary;
976
+ const manifest = tryReadCatalogManifest();
977
+ for (const file of await readdir(srcDir)) {
978
+ if (!file.endsWith(".md"))
979
+ continue;
980
+ const promptName = file.slice(0, -3);
981
+ if (manifest && !isSetupPromptAssetName(promptName, manifest))
982
+ continue;
983
+ const dst = join(dstDir, file);
984
+ if (!existsSync(dst))
985
+ continue;
986
+ if (await ensureBackup(dst, true, backupContext, options)) {
987
+ summary.backedUp += 1;
988
+ }
989
+ if (!options.dryRun) {
990
+ await rm(dst, { force: true });
991
+ }
992
+ summary.removed += 1;
993
+ if (options.verbose) {
994
+ console.log(` ${options.dryRun ? "would archive and remove" : "archived and removed"} legacy prompt ${file}`);
995
+ }
996
+ }
997
+ await removeEmptyDirectoryIfPresent(dstDir, options);
998
+ return summary;
999
+ }
1000
+ function removeRootTomlKey(config, key) {
1001
+ const range = findRootTomlKeyRange(config, key);
1002
+ if (!range)
1003
+ return config;
1004
+ const before = config.slice(0, range.start);
1005
+ const after = config.slice(range.end).replace(/^\r?\n?/, "\n");
1006
+ return `${before}${after}`;
1007
+ }
1008
+ function stripPluginModeLegacyRootDefaults(config, developerInstructionsDecision) {
1009
+ const lines = config.split(/\r?\n/);
1010
+ const firstTableIndex = lines.findIndex((line) => /^\s*\[/.test(line));
1011
+ const boundary = firstTableIndex >= 0 ? firstTableIndex : lines.length;
1012
+ const result = [];
1013
+ for (let index = 0; index < lines.length; index += 1) {
1014
+ const line = lines[index];
1015
+ if (index < boundary &&
1016
+ line.trim() ===
1017
+ "# oh-my-codex top-level settings (must be before any [table])") {
1018
+ continue;
1019
+ }
1020
+ if (index < boundary &&
1021
+ /^\s*notify\s*=\s*\["node",\s*".*notify-hook\.js"\]\s*$/.test(line)) {
1022
+ continue;
1023
+ }
1024
+ if (index < boundary &&
1025
+ /^\s*model_reasoning_effort\s*=\s*"medium"\s*$/.test(line)) {
1026
+ continue;
1027
+ }
1028
+ result.push(line);
1029
+ }
1030
+ let nextConfig = result.join("\n").replace(/\n{3,}/g, "\n\n");
1031
+ if (developerInstructionsDecision.action === "update" &&
1032
+ developerInstructionsDecision.state === "historical" &&
1033
+ classifyPluginDeveloperInstructions(readRootDeveloperInstructions(nextConfig)) === "historical") {
1034
+ nextConfig = removeRootTomlKey(nextConfig, "developer_instructions");
1035
+ }
1036
+ return nextConfig;
1037
+ }
1038
+ function rootHasTomlKey(config, key) {
1039
+ const lines = config.split(/\r?\n/);
1040
+ const firstTableIndex = lines.findIndex((line) => /^\s*\[/.test(line));
1041
+ const boundary = firstTableIndex >= 0 ? firstTableIndex : lines.length;
1042
+ const escapedKey = key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1043
+ const pattern = new RegExp(`^\\s*${escapedKey}\\s*=`);
1044
+ return lines.slice(0, boundary).some((line) => pattern.test(line));
1045
+ }
1046
+ function replaceRootTomlKey(config, key, line) {
1047
+ const range = findRootTomlKeyRange(config, key);
1048
+ if (!range)
1049
+ return insertRootTomlKey(config, line);
1050
+ const before = config.slice(0, range.start);
1051
+ const after = config.slice(range.end).replace(/^\r?\n?/, "\n");
1052
+ return `${before}${line}${after}`.replace(/\n?$/, "\n");
1053
+ }
1054
+ function findRootTomlKeyRange(config, key) {
1055
+ const escapedKey = key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1056
+ const keyPattern = new RegExp(`^\\s*${escapedKey}\\s*=`);
1057
+ const nextRootKeyPattern = /^\s*[A-Za-z0-9_-]+\s*=/;
1058
+ const tablePattern = /^\s*\[/;
1059
+ const linePattern = /.*(?:\r?\n|$)/g;
1060
+ let match;
1061
+ let found = null;
1062
+ let inMultiline = false;
1063
+ let multilineDelimiter = null;
1064
+ while ((match = linePattern.exec(config)) && match[0] !== "") {
1065
+ const line = match[0];
1066
+ const lineStart = match.index;
1067
+ const lineEnd = lineStart + line.length;
1068
+ const trimmedLine = line.replace(/\r?\n$/, "");
1069
+ if (!found) {
1070
+ if (tablePattern.test(trimmedLine))
1071
+ return null;
1072
+ if (keyPattern.test(trimmedLine)) {
1073
+ found = { start: lineStart, end: lineEnd };
1074
+ const valuePart = trimmedLine.slice(trimmedLine.indexOf("=") + 1);
1075
+ const delimiter = valuePart.includes('"""')
1076
+ ? '"""'
1077
+ : valuePart.includes("'''")
1078
+ ? "'''"
1079
+ : null;
1080
+ if (delimiter && valuePart.split(delimiter).length - 1 === 1) {
1081
+ inMultiline = true;
1082
+ multilineDelimiter = delimiter;
1083
+ }
1084
+ else {
1085
+ return found;
1086
+ }
1087
+ }
1088
+ continue;
1089
+ }
1090
+ found.end = lineEnd;
1091
+ if (inMultiline && multilineDelimiter) {
1092
+ if (trimmedLine.includes(multilineDelimiter)) {
1093
+ return found;
1094
+ }
1095
+ continue;
1096
+ }
1097
+ if (tablePattern.test(trimmedLine) || nextRootKeyPattern.test(trimmedLine)) {
1098
+ found.end = lineStart;
1099
+ return found;
1100
+ }
1101
+ }
1102
+ return found;
1103
+ }
1104
+ function insertRootTomlKey(config, line) {
1105
+ const lines = config.trimEnd().split(/\r?\n/);
1106
+ if (lines.length === 1 && lines[0] === "")
1107
+ return `${line}\n`;
1108
+ const firstTableIndex = lines.findIndex((entry) => /^\s*\[/.test(entry));
1109
+ if (firstTableIndex < 0)
1110
+ return `${lines.join("\n")}\n${line}\n`;
1111
+ const before = lines
1112
+ .slice(0, firstTableIndex)
1113
+ .filter((entry) => entry.trim() !== "");
1114
+ const after = lines.slice(firstTableIndex);
1115
+ return [...before, line, "", ...after].join("\n") + "\n";
1116
+ }
1117
+ async function ensurePluginMarketplaceRegistration(configPath, pkgRoot, mcpMode, removeFirstPartyMcp, backupContext, summary, options) {
1118
+ const packagedMarketplace = await resolvePackagedOmxMarketplace(pkgRoot);
1119
+ if (!packagedMarketplace) {
1120
+ summary.skipped += 1;
1121
+ return "unavailable";
1122
+ }
1123
+ const existingConfig = existsSync(configPath)
1124
+ ? await readFile(configPath, "utf-8")
1125
+ : "";
1126
+ const nextConfig = upsertLocalOmxMarketplaceRegistration(upsertLocalOmxPluginMcpServerEnablement(upsertLocalOmxPluginEnablement(existingConfig), mcpMode === "compat", { removeWhenDisabled: removeFirstPartyMcp }), pkgRoot);
1127
+ const destinationExists = existsSync(configPath);
1128
+ if (nextConfig === existingConfig) {
1129
+ summary.unchanged += 1;
1130
+ return "unchanged";
1131
+ }
1132
+ if (await ensureBackup(configPath, destinationExists, backupContext, options)) {
1133
+ summary.backedUp += 1;
1134
+ }
1135
+ if (!options.dryRun) {
1136
+ await mkdir(dirname(configPath), { recursive: true });
1137
+ await writeFile(configPath, nextConfig);
1138
+ }
1139
+ summary.updated += 1;
1140
+ if (options.verbose) {
1141
+ console.log(` ${options.dryRun ? "would register" : "registered"} local Codex plugin marketplace ${OMX_LOCAL_MARKETPLACE_NAME} from ${pkgRoot}`);
1142
+ }
1143
+ return "updated";
1144
+ }
1145
+ async function cleanupPluginModeManagedHooksJson(existingHooksContent, hooksPath, backupContext, summary, options) {
1146
+ if (existingHooksContent === null) {
1147
+ summary.unchanged += 1;
1148
+ return;
1149
+ }
1150
+ const removed = removeManagedCodexHooks(existingHooksContent);
1151
+ if (removed.removedCount === 0) {
1152
+ summary.unchanged += 1;
1153
+ return;
1154
+ }
1155
+ if (await ensureBackup(hooksPath, true, backupContext, options)) {
1156
+ summary.backedUp += 1;
1157
+ }
1158
+ if (!options.dryRun) {
1159
+ if (removed.nextContent === null) {
1160
+ await rm(hooksPath, { force: true });
1161
+ }
1162
+ else {
1163
+ await writeFile(hooksPath, removed.nextContent);
1164
+ }
1165
+ }
1166
+ summary.removed += removed.removedCount;
1167
+ if (options.verbose) {
1168
+ console.log(` ${options.dryRun ? "would remove" : "removed"} ${removed.removedCount} legacy setup-managed hook wrapper(s) from ${hooksPath}`);
1169
+ }
1170
+ }
1171
+ async function applyPluginModeHooksConfig(configPath, hooksPath, pkgRoot, codexHomeDir, backupContext, summary, options) {
1172
+ const existingConfig = existsSync(configPath)
1173
+ ? await readFile(configPath, "utf-8")
1174
+ : "";
1175
+ const managedTrustState = buildManagedCodexHookTrustState(hooksPath, pkgRoot, { platform: process.platform, codexHomeDir });
1176
+ const nextConfigBase = upsertPluginModeRuntimeFeatureFlags(stripManagedCodexHookTrustState(existingConfig, { managedTrustState }), options.codexHookFeatureFlag, { pluginScopedHooks: options.pluginScopedHooks });
1177
+ const nextConfig = options.pluginScopedHooks
1178
+ ? nextConfigBase
1179
+ : upsertManagedCodexHookTrustState(nextConfigBase, pkgRoot, hooksPath, { platform: process.platform, codexHomeDir });
1180
+ if (nextConfig !== existingConfig) {
1181
+ if (await ensureBackup(configPath, existsSync(configPath), backupContext, options)) {
1182
+ summary.backedUp += 1;
1183
+ }
1184
+ if (!options.dryRun) {
1185
+ await mkdir(dirname(configPath), { recursive: true });
1186
+ await writeFile(configPath, nextConfig);
1187
+ }
1188
+ summary.updated += 1;
1189
+ }
1190
+ else {
1191
+ summary.unchanged += 1;
1192
+ }
1193
+ const existingHooksContent = existsSync(hooksPath)
1194
+ ? await readFile(hooksPath, "utf-8")
1195
+ : null;
1196
+ if (options.pluginScopedHooks) {
1197
+ await cleanupPluginModeManagedHooksJson(existingHooksContent, hooksPath, backupContext, summary, options);
1198
+ }
1199
+ else {
1200
+ const hooksConfig = mergeManagedCodexHooksConfig(existingHooksContent, pkgRoot, hooksPath, { platform: process.platform, codexHomeDir });
1201
+ await syncManagedContent(hooksConfig, hooksPath, summary, backupContext, options, `native hooks ${hooksPath}`);
1202
+ await syncManagedWindowsNativeHookShim(codexHomeDir, pkgRoot, summary, backupContext, options);
1203
+ }
1204
+ if (options.verbose) {
1205
+ const surface = options.pluginScopedHooks
1206
+ ? "official plugin-scoped hooks"
1207
+ : `legacy native hooks at ${hooksPath}`;
1208
+ console.log(` ${options.dryRun ? "would configure" : "configured"} plugin-mode ${surface} and runtime feature flags`);
1209
+ }
1210
+ }
1211
+ async function applyPluginDeveloperInstructionsDefault(configPath, backupContext, summary, options) {
1212
+ const existing = existsSync(configPath)
1213
+ ? await readFile(configPath, "utf-8")
1214
+ : "";
1215
+ if (options.decision.action === "preserve") {
1216
+ summary.skipped += 1;
1217
+ if (options.verbose) {
1218
+ console.log(` preserved plugin developer_instructions default: ${options.decision.reason}`);
1219
+ }
1220
+ return options.decision.state === "missing" ? "skipped" : "exists";
1221
+ }
1222
+ const line = `developer_instructions = ${JSON.stringify(OMX_PLUGIN_DEVELOPER_INSTRUCTIONS)}`;
1223
+ const hasExistingDeveloperInstructions = rootHasTomlKey(existing, "developer_instructions");
1224
+ if (hasExistingDeveloperInstructions && options.decision.action === "add") {
1225
+ summary.skipped += 1;
1226
+ if (options.verbose) {
1227
+ console.log(" skipped plugin developer_instructions default: root developer_instructions already exists");
1228
+ }
1229
+ return "exists";
1230
+ }
1231
+ const nextConfig = hasExistingDeveloperInstructions
1232
+ ? replaceRootTomlKey(existing, "developer_instructions", line)
1233
+ : insertRootTomlKey(existing, line);
1234
+ const destinationExists = existsSync(configPath);
1235
+ if (await ensureBackup(configPath, destinationExists, backupContext, options)) {
1236
+ summary.backedUp += 1;
1237
+ }
1238
+ if (!options.dryRun) {
1239
+ await mkdir(dirname(configPath), { recursive: true });
1240
+ await writeFile(configPath, nextConfig);
1241
+ }
1242
+ summary.updated += 1;
1243
+ if (options.verbose) {
1244
+ console.log(` ${options.dryRun ? "would add" : "added"} plugin developer_instructions default to ${configPath}`);
1245
+ }
1246
+ return "updated";
1247
+ }
1248
+ async function cleanupPluginModeLegacyConfig(configPath, backupContext, options) {
1249
+ if (!existsSync(configPath))
1250
+ return false;
1251
+ const original = await readFile(configPath, "utf-8");
1252
+ const preservedFirstPartyMcp = options.preserveFirstPartyMcp
1253
+ ? extractFirstPartyOmxMcpSections(original)
1254
+ : "";
1255
+ let config = original;
1256
+ config = stripFirstPartyOmxMcpSections(config);
1257
+ config = stripExistingOmxBlocks(config).cleaned;
1258
+ config = stripExistingSharedMcpRegistryBlock(config).cleaned;
1259
+ config = stripPluginModeLegacyRootDefaults(config, options.developerInstructionsDecision);
1260
+ config = stripOmxSeededBehavioralDefaults(config);
1261
+ config = stripOmxFeatureFlags(config);
1262
+ config = stripManagedCodexHookTrustState(config);
1263
+ config = stripOmxEnvSettings(config);
1264
+ if (preservedFirstPartyMcp) {
1265
+ config = `${config.trimEnd()}\n\n${preservedFirstPartyMcp}\n`;
1266
+ }
1267
+ config = config.trim();
1268
+ const nextConfig = config.length > 0 ? `${config}\n` : "";
1269
+ if (nextConfig === original)
1270
+ return false;
1271
+ if (await ensureBackup(configPath, true, backupContext, options)) {
1272
+ // backup created for pre-existing config
1273
+ }
1274
+ if (!options.dryRun) {
1275
+ if (nextConfig.length === 0) {
1276
+ await rm(configPath, { force: true });
1277
+ }
1278
+ else {
1279
+ await writeFile(configPath, nextConfig);
1280
+ }
1281
+ }
1282
+ if (options.verbose) {
1283
+ console.log(` ${options.dryRun ? "would clean" : nextConfig.length === 0 ? "removed" : "cleaned"} legacy OMX config ${basename(configPath)}`);
1284
+ }
1285
+ return true;
1286
+ }
1287
+ export async function setup(options = {}) {
1288
+ const { force = false, dryRun = false, installMode: requestedInstallMode, mcpMode: requestedMcpMode, teamMode: requestedTeamMode, scope: requestedScope, verbose = false, setupScopePrompt, persistedSetupReviewPrompt, installModePrompt, modelUpgradePrompt, pluginAgentsMdPrompt, pluginDeveloperInstructionsPrompt, firstPartyMcpRemovalPrompt, } = options;
1289
+ const pkgRoot = getPackageRoot();
1290
+ const projectRoot = process.cwd();
1291
+ const persistedPreferences = await readPersistedSetupPreferences(projectRoot, { warnOnLegacyScope: true });
1292
+ let persistedReviewDecision = "keep";
1293
+ const effectiveScopeForInstallMode = requestedScope ?? persistedPreferences?.scope ?? DEFAULT_SETUP_SCOPE;
1294
+ const wouldUsePersistedScope = !requestedScope && Boolean(persistedPreferences?.scope);
1295
+ const wouldUsePersistedInstallMode = !requestedInstallMode &&
1296
+ Boolean(persistedPreferences?.installMode) &&
1297
+ (!persistedPreferences?.scope ||
1298
+ persistedPreferences.scope === effectiveScopeForInstallMode);
1299
+ const wouldUsePersistedMcpMode = !requestedMcpMode &&
1300
+ Boolean(persistedPreferences?.mcpMode) &&
1301
+ (!persistedPreferences?.scope ||
1302
+ persistedPreferences.scope === effectiveScopeForInstallMode);
1303
+ const wouldUsePersistedTeamMode = !requestedTeamMode &&
1304
+ Boolean(persistedPreferences?.teamMode) &&
1305
+ (!persistedPreferences?.scope ||
1306
+ persistedPreferences.scope === effectiveScopeForInstallMode);
1307
+ const shouldReviewPersistedSetup = hasPersistedSetupPreferences(persistedPreferences) &&
1308
+ (wouldUsePersistedScope || wouldUsePersistedInstallMode || wouldUsePersistedMcpMode || wouldUsePersistedTeamMode) &&
1309
+ (typeof persistedSetupReviewPrompt === "function" ||
1310
+ (process.stdin.isTTY && process.stdout.isTTY));
1311
+ if (shouldReviewPersistedSetup) {
1312
+ persistedReviewDecision = persistedSetupReviewPrompt
1313
+ ? await persistedSetupReviewPrompt(persistedPreferences)
1314
+ : await promptForPersistedSetupReview(persistedPreferences);
1315
+ console.log(`Setup preference review: ${persistedReviewDecision} (${formatPersistedSetupPreferenceSummary(persistedPreferences)})\n`);
1316
+ }
1317
+ const resolvedScope = await resolveSetupScope(projectRoot, requestedScope, persistedReviewDecision, persistedPreferences, setupScopePrompt);
1318
+ const resolvedInstallMode = await resolveSetupInstallMode(projectRoot, resolvedScope.scope, requestedInstallMode, installModePrompt, persistedReviewDecision, persistedPreferences);
1319
+ const resolvedMcpMode = resolveSetupMcpMode(resolvedScope.scope, requestedMcpMode, persistedReviewDecision, persistedPreferences);
1320
+ const resolvedTeamMode = requestedTeamMode
1321
+ ?? (persistedReviewDecision !== "reset" &&
1322
+ (!persistedPreferences?.scope || persistedPreferences.scope === resolvedScope.scope)
1323
+ ? persistedPreferences?.teamMode
1324
+ : undefined)
1325
+ ?? "enabled";
1326
+ const isTeamModeEnabled = teamModeEnabled(resolvedTeamMode);
1327
+ const scopeDirs = resolveScopeDirectories(resolvedScope.scope, projectRoot);
1328
+ const existingConfigForMcpMigration = existsSync(scopeDirs.codexConfigFile)
1329
+ ? await readFile(scopeDirs.codexConfigFile, "utf-8")
1330
+ : "";
1331
+ const firstPartyMcpRegistrationKinds = [
1332
+ hasFirstPartyOmxMcpRegistrations(existingConfigForMcpMigration)
1333
+ ? "config.toml [mcp_servers.omx_*]"
1334
+ : null,
1335
+ hasLocalOmxPluginMcpServerRegistrations(existingConfigForMcpMigration)
1336
+ ? "plugin mcp_servers overrides"
1337
+ : null,
1338
+ ].filter((kind) => typeof kind === "string");
1339
+ let removeFirstPartyMcpRegistrations = false;
1340
+ const shouldOfferFirstPartyMcpRemoval = resolvedMcpMode.mcpMode !== "compat" &&
1341
+ firstPartyMcpRegistrationKinds.length > 0;
1342
+ if (shouldOfferFirstPartyMcpRemoval) {
1343
+ const canPrompt = typeof firstPartyMcpRemovalPrompt === "function" ||
1344
+ (process.stdin.isTTY && process.stdout.isTTY);
1345
+ if (canPrompt) {
1346
+ removeFirstPartyMcpRegistrations = firstPartyMcpRemovalPrompt
1347
+ ? await firstPartyMcpRemovalPrompt(scopeDirs.codexConfigFile, firstPartyMcpRegistrationKinds)
1348
+ : await promptForFirstPartyMcpRemoval(scopeDirs.codexConfigFile, firstPartyMcpRegistrationKinds);
1349
+ }
1350
+ }
1351
+ const scopeSourceMessage = resolvedScope.source === "persisted" ? " (from .omx/setup-scope.json)" : "";
1352
+ const backupContext = getBackupContext(resolvedScope.scope, projectRoot);
1353
+ const isPluginInstallMode = resolvedInstallMode?.installMode === "plugin";
1354
+ const pluginAgentsMdDst = resolvedScope.scope === "project"
1355
+ ? join(projectRoot, "AGENTS.md")
1356
+ : join(scopeDirs.codexHomeDir, "AGENTS.md");
1357
+ const pluginDeveloperInstructionsDecision = isPluginInstallMode
1358
+ ? await resolvePluginDeveloperInstructionsDecision(scopeDirs.codexConfigFile, { pluginDeveloperInstructionsPrompt })
1359
+ : {
1360
+ action: "preserve",
1361
+ state: "custom",
1362
+ reason: "non-plugin setup mode",
1363
+ };
1364
+ let pluginAgentsMdPathExists = false;
1365
+ let pluginAgentsMdIsSymlink = false;
1366
+ try {
1367
+ const pluginAgentsMdStat = await lstat(pluginAgentsMdDst);
1368
+ pluginAgentsMdPathExists = true;
1369
+ pluginAgentsMdIsSymlink = pluginAgentsMdStat.isSymbolicLink();
1370
+ }
1371
+ catch {
1372
+ pluginAgentsMdPathExists = false;
1373
+ pluginAgentsMdIsSymlink = false;
1374
+ }
1375
+ const usePluginAgentsMdDefault = isPluginInstallMode
1376
+ ? options.mergeAgents || pluginAgentsMdIsSymlink
1377
+ ? false
1378
+ : force
1379
+ ? true
1380
+ : pluginAgentsMdPrompt
1381
+ ? await pluginAgentsMdPrompt(pluginAgentsMdDst)
1382
+ : await promptForPluginAgentsMdDefault(pluginAgentsMdDst)
1383
+ : false;
1384
+ console.log("oh-my-codex setup");
1385
+ console.log("=================\n");
1386
+ console.log(`Using setup scope: ${resolvedScope.scope}${scopeSourceMessage}\n`);
1387
+ if (resolvedInstallMode) {
1388
+ const installModeSourceMessage = resolvedInstallMode.source === "persisted"
1389
+ ? " (from .omx/setup-scope.json)"
1390
+ : "";
1391
+ console.log(`Using setup install mode: ${resolvedInstallMode.installMode}${installModeSourceMessage}\n`);
1392
+ }
1393
+ const mcpModeSourceMessage = resolvedMcpMode.source === "persisted"
1394
+ ? " (from .omx/setup-scope.json)"
1395
+ : "";
1396
+ console.log(`Using setup MCP mode: ${resolvedMcpMode.mcpMode}${mcpModeSourceMessage}\n`);
1397
+ console.log(`Using setup Team mode: ${resolvedTeamMode}\n`);
1398
+ if (shouldOfferFirstPartyMcpRemoval) {
1399
+ if (removeFirstPartyMcpRegistrations) {
1400
+ console.log("Deprecated first-party OMX MCP registrations will be removed from config.toml during this setup run.\n");
1401
+ }
1402
+ else {
1403
+ console.log("warning: deprecated first-party OMX MCP registrations were detected but preserved. OMX supports CLI-first setup by default; rerun interactively and answer yes to remove them, or use --mcp compat only when explicit MCP compatibility is required.\n");
1404
+ }
1405
+ }
1406
+ // Step 1: Ensure directories exist
1407
+ console.log("[1/8] Creating directories...");
1408
+ const dirs = isPluginInstallMode
1409
+ ? [
1410
+ scopeDirs.codexHomeDir,
1411
+ scopeDirs.nativeAgentsDir,
1412
+ omxStateDir(projectRoot),
1413
+ omxPlansDir(projectRoot),
1414
+ omxLogsDir(projectRoot),
1415
+ ]
1416
+ : [
1417
+ scopeDirs.codexHomeDir,
1418
+ scopeDirs.promptsDir,
1419
+ scopeDirs.skillsDir,
1420
+ scopeDirs.nativeAgentsDir,
1421
+ omxStateDir(projectRoot),
1422
+ omxPlansDir(projectRoot),
1423
+ omxLogsDir(projectRoot),
1424
+ ];
1425
+ for (const dir of dirs) {
1426
+ if (!dryRun) {
1427
+ await mkdir(dir, { recursive: true });
1428
+ }
1429
+ if (verbose)
1430
+ console.log(` mkdir ${dir}`);
1431
+ }
1432
+ const setupPreferencesToPersist = {
1433
+ scope: resolvedScope.scope,
1434
+ mcpMode: resolvedMcpMode.mcpMode,
1435
+ ...(requestedTeamMode || persistedPreferences?.teamMode || resolvedTeamMode === "disabled"
1436
+ ? { teamMode: resolvedTeamMode }
1437
+ : {}),
1438
+ ...(resolvedInstallMode &&
1439
+ (resolvedScope.scope === "user" ||
1440
+ resolvedInstallMode.installMode === "plugin")
1441
+ ? { installMode: resolvedInstallMode.installMode }
1442
+ : {}),
1443
+ };
1444
+ await persistSetupPreferences(projectRoot, setupPreferencesToPersist, {
1445
+ dryRun,
1446
+ verbose,
1447
+ });
1448
+ console.log(" Done.\n");
1449
+ if (resolvedScope.scope === "project") {
1450
+ const gitignoreResult = await ensureProjectGitignore(projectRoot, backupContext, { dryRun, verbose });
1451
+ if (gitignoreResult === "created") {
1452
+ console.log(" Created .gitignore with OMX project ignore rules so local runtime state stays out of source control while .codex agents, skills, and prompts remain trackable.\n");
1453
+ }
1454
+ else if (gitignoreResult === "updated") {
1455
+ console.log(" Updated .gitignore with OMX project ignore rules so local runtime state stays out of source control while .codex agents, skills, and prompts remain trackable.\n");
1456
+ }
1457
+ }
1458
+ const catalogCounts = getCatalogHeadlineCounts();
1459
+ const summary = createEmptyRunSummary();
1460
+ // Step 2: Install agent prompts
1461
+ console.log("[2/8] Installing agent prompts...");
1462
+ {
1463
+ const promptsSrc = join(pkgRoot, "prompts");
1464
+ const promptsDst = scopeDirs.promptsDir;
1465
+ if (isPluginInstallMode) {
1466
+ summary.prompts = await cleanupPluginModeLegacyPrompts(promptsSrc, promptsDst, backupContext, { dryRun, verbose });
1467
+ console.log(summary.prompts.removed > 0
1468
+ ? ` ${dryRun ? "Would archive and remove" : "Archived and removed"} ${summary.prompts.removed} legacy OMX-managed prompt file(s).\n`
1469
+ : " Prompt refresh skipped; no legacy OMX-managed prompt files found.\n");
1470
+ }
1471
+ else {
1472
+ summary.prompts = await installPrompts(promptsSrc, promptsDst, backupContext, { force, dryRun, verbose, teamMode: resolvedTeamMode });
1473
+ const cleanedLegacyPromptShims = await cleanupLegacySkillPromptShims(promptsSrc, promptsDst, {
1474
+ dryRun,
1475
+ verbose,
1476
+ });
1477
+ summary.prompts.removed += cleanedLegacyPromptShims;
1478
+ if (cleanedLegacyPromptShims > 0) {
1479
+ if (dryRun) {
1480
+ console.log(` Would remove ${cleanedLegacyPromptShims} legacy skill prompt shim file(s).`);
1481
+ }
1482
+ else {
1483
+ console.log(` Removed ${cleanedLegacyPromptShims} legacy skill prompt shim file(s).`);
1484
+ }
1485
+ }
1486
+ if (catalogCounts) {
1487
+ console.log(` Prompt refresh complete (catalog baseline: ${catalogCounts.prompts}).\n`);
1488
+ }
1489
+ else {
1490
+ console.log(" Prompt refresh complete.\n");
1491
+ }
1492
+ }
1493
+ }
1494
+ // Step 3: Install skills
1495
+ console.log("[3/8] Installing skills...");
1496
+ {
1497
+ const skillsSrc = join(pkgRoot, "skills");
1498
+ const skillsDst = scopeDirs.skillsDir;
1499
+ if (isPluginInstallMode) {
1500
+ summary.skills = createEmptyCategorySummary();
1501
+ const cleanup = await cleanupLegacyManagedSkills(skillsSrc, skillsDst, backupContext, { dryRun, verbose });
1502
+ summary.skills.backedUp += cleanup.backedUp;
1503
+ summary.skills.removed += cleanup.removedSkillNames.length;
1504
+ summary.skills.skipped += cleanup.skippedSkillNames.length;
1505
+ for (const warning of cleanup.warnings) {
1506
+ console.log(` warning: ${warning}`);
1507
+ }
1508
+ if (cleanup.removedSkillNames.length > 0) {
1509
+ console.log(` ${dryRun ? "Would remove" : "Removed"} ${cleanup.removedSkillNames.length} legacy OMX-managed skill director${cleanup.removedSkillNames.length === 1 ? "y" : "ies"}.`);
1510
+ }
1511
+ else {
1512
+ console.log(" Skill refresh skipped; no removable legacy OMX-managed skill directories found.");
1513
+ }
1514
+ }
1515
+ else {
1516
+ summary.skills = await installSkills(skillsSrc, skillsDst, backupContext, {
1517
+ force,
1518
+ dryRun,
1519
+ verbose,
1520
+ teamMode: resolvedTeamMode,
1521
+ });
1522
+ }
1523
+ if (catalogCounts) {
1524
+ console.log(` Skill refresh complete (catalog baseline: ${catalogCounts.skills}).\n`);
1525
+ }
1526
+ else {
1527
+ console.log(" Skill refresh complete.\n");
1528
+ }
1529
+ }
1530
+ // Step 4: Install native agent configs
1531
+ console.log("[4/8] Installing native agent configs...");
1532
+ if (isPluginInstallMode) {
1533
+ summary.nativeAgents = await refreshNativeAgentConfigs(pkgRoot, scopeDirs.nativeAgentsDir, backupContext, {
1534
+ force,
1535
+ dryRun,
1536
+ verbose,
1537
+ preserveUnmanagedObsoleteNativeAgents: true,
1538
+ teamMode: resolvedTeamMode,
1539
+ });
1540
+ console.log(` Native agent role refresh complete (${scopeDirs.nativeAgentsDir}); plugin mode still installs role TOML so agent_type routing works.\n`);
1541
+ }
1542
+ else {
1543
+ summary.nativeAgents = await refreshNativeAgentConfigs(pkgRoot, scopeDirs.nativeAgentsDir, backupContext, {
1544
+ force,
1545
+ dryRun,
1546
+ verbose,
1547
+ teamMode: resolvedTeamMode,
1548
+ });
1549
+ console.log(` Native agent refresh complete (${scopeDirs.nativeAgentsDir}).\n`);
1550
+ }
1551
+ // Step 5: Update config.toml
1552
+ console.log("[5/8] Updating config.toml...");
1553
+ let resolvedConfig = "";
1554
+ let omxManagesTui = false;
1555
+ const codexHookFeatureSupport = resolveCodexHookFeatureSupportForCli({
1556
+ codexFeaturesProbe: options.codexFeaturesProbe,
1557
+ codexVersionProbe: options.codexVersionProbe,
1558
+ });
1559
+ const codexHookFeatureFlag = codexHookFeatureSupport.hookFeatureFlag;
1560
+ const pluginScopedHooksSupported = codexHookFeatureSupport.pluginScopedHooks;
1561
+ if (verbose) {
1562
+ console.log(` Native Codex hook feature flag: [features].${codexHookFeatureFlag}`);
1563
+ console.log(` Plugin-scoped Codex hooks: ${pluginScopedHooksSupported ? "supported" : "not reported; using legacy setup fallback"}`);
1564
+ }
1565
+ const shouldSyncSharedMcpRegistry = resolvedMcpMode.mcpMode === "compat";
1566
+ const registryCandidates = getUnifiedMcpRegistryCandidates();
1567
+ const defaultRegistryCandidates = registryCandidates.slice(0, 1);
1568
+ const sharedMcpRegistry = shouldSyncSharedMcpRegistry
1569
+ ? await loadUnifiedMcpRegistry({
1570
+ candidates: options.mcpRegistryCandidates ?? defaultRegistryCandidates,
1571
+ })
1572
+ : { servers: [], warnings: [] };
1573
+ const legacyRegistryCandidate = getLegacyUnifiedMcpRegistryCandidate();
1574
+ if (shouldSyncSharedMcpRegistry &&
1575
+ !options.mcpRegistryCandidates &&
1576
+ !sharedMcpRegistry.sourcePath &&
1577
+ existsSync(legacyRegistryCandidate) &&
1578
+ !existsSync(defaultRegistryCandidates[0])) {
1579
+ console.log(` warning: legacy shared MCP registry detected at ${legacyRegistryCandidate} but ignored by default; move or copy it to ${defaultRegistryCandidates[0]} and rerun setup with --mcp compat if you still want setup to sync those servers`);
1580
+ }
1581
+ if (verbose && sharedMcpRegistry.sourcePath) {
1582
+ console.log(` shared MCP registry: ${sharedMcpRegistry.sourcePath} (${sharedMcpRegistry.servers.length} servers)`);
1583
+ }
1584
+ for (const warning of sharedMcpRegistry.warnings) {
1585
+ console.log(` warning: ${warning}`);
1586
+ }
1587
+ if (isPluginInstallMode) {
1588
+ const configCleaned = await cleanupPluginModeLegacyConfig(scopeDirs.codexConfigFile, backupContext, {
1589
+ dryRun,
1590
+ verbose,
1591
+ preserveFirstPartyMcp: shouldOfferFirstPartyMcpRemoval &&
1592
+ !removeFirstPartyMcpRegistrations,
1593
+ developerInstructionsDecision: pluginDeveloperInstructionsDecision,
1594
+ });
1595
+ if (configCleaned)
1596
+ summary.config.removed += 1;
1597
+ console.log(configCleaned
1598
+ ? ` ${dryRun ? "Would clean" : "Cleaned"} legacy OMX config entries for plugin mode.\n`
1599
+ : " Config refresh skipped; no legacy OMX config entries found.\n");
1600
+ await applyPluginModeHooksConfig(scopeDirs.codexConfigFile, scopeDirs.codexHooksFile, pkgRoot, scopeDirs.codexHomeDir, backupContext, summary.config, {
1601
+ dryRun,
1602
+ verbose,
1603
+ codexHookFeatureFlag,
1604
+ pluginScopedHooks: pluginScopedHooksSupported,
1605
+ });
1606
+ const pluginMarketplaceResult = await ensurePluginMarketplaceRegistration(scopeDirs.codexConfigFile, pkgRoot, resolvedMcpMode.mcpMode, removeFirstPartyMcpRegistrations, backupContext, summary.config, { dryRun, verbose });
1607
+ if (pluginMarketplaceResult === "unavailable") {
1608
+ console.log(` warning: packaged ${OMX_LOCAL_MARKETPLACE_NAME} Codex plugin marketplace metadata not found; /skills plugin discovery was not registered.`);
1609
+ }
1610
+ else if (pluginMarketplaceResult === "updated") {
1611
+ console.log(` ${dryRun ? "Would register" : "Registered"} local Codex plugin marketplace ${OMX_LOCAL_MARKETPLACE_NAME} (${pkgRoot}).`);
1612
+ }
1613
+ else {
1614
+ console.log(` Local Codex plugin marketplace ${OMX_LOCAL_MARKETPLACE_NAME} already registered (${pkgRoot}).`);
1615
+ }
1616
+ const packagedMarketplace = await resolvePackagedOmxMarketplace(pkgRoot);
1617
+ const pluginCacheRefresh = await refreshOmxPluginDiscoveryCache(pkgRoot, {
1618
+ dryRun,
1619
+ verbose,
1620
+ }, scopeDirs.codexHomeDir);
1621
+ if (pluginCacheRefresh.status === "refreshed") {
1622
+ console.log(` ${dryRun ? "Would invalidate" : "Invalidated"} ${pluginCacheRefresh.staleDirs.length} stale Codex plugin discovery cache entr${pluginCacheRefresh.staleDirs.length === 1 ? "y" : "ies"} so plugin skills refresh from the packaged manifest.`);
1623
+ }
1624
+ else if (pluginCacheRefresh.status === "unchanged") {
1625
+ console.log(" Codex plugin discovery cache already matches packaged plugin metadata.");
1626
+ }
1627
+ const pluginCacheMaterialize = await materializePackagedOmxPluginCache(scopeDirs.codexHomeDir, packagedMarketplace, { dryRun, teamMode: resolvedTeamMode });
1628
+ if (pluginCacheMaterialize.status === "materialized") {
1629
+ console.log(` ${dryRun ? "Would install" : "Installed"} local Codex plugin cache for ${OMX_LOCAL_MARKETPLACE_NAME}/${OMX_PLUGIN_NAME} at ${pluginCacheMaterialize.cacheDir}.`);
1630
+ }
1631
+ else if (pluginCacheMaterialize.status === "unchanged") {
1632
+ console.log(" Local Codex plugin cache already exposes packaged OMX skills.");
1633
+ }
1634
+ if (shouldSyncSharedMcpRegistry) {
1635
+ resolvedConfig = await syncSharedMcpRegistryIntoConfig(scopeDirs.codexConfigFile, sharedMcpRegistry, summary.config, backupContext, { dryRun, verbose });
1636
+ if (resolvedScope.scope === "user") {
1637
+ await syncClaudeCodeMcpSettings(sharedMcpRegistry, summary.config, backupContext, { dryRun, verbose });
1638
+ }
1639
+ }
1640
+ resolvedConfig = existsSync(scopeDirs.codexConfigFile)
1641
+ ? await readFile(scopeDirs.codexConfigFile, "utf-8")
1642
+ : "";
1643
+ console.log(pluginScopedHooksSupported
1644
+ ? " Plugin-scoped Codex hooks and runtime feature flags refresh complete (plugin_hooks, goals).\n"
1645
+ : ` Native Codex hooks fallback and runtime feature flags refresh complete (${scopeDirs.codexHooksFile}; hooks, goals).\n`);
1646
+ if (pluginDeveloperInstructionsDecision.action !== "preserve") {
1647
+ const developerInstructionsResult = await applyPluginDeveloperInstructionsDefault(scopeDirs.codexConfigFile, backupContext, summary.config, {
1648
+ dryRun,
1649
+ verbose,
1650
+ decision: pluginDeveloperInstructionsDecision,
1651
+ });
1652
+ if (developerInstructionsResult === "updated") {
1653
+ resolvedConfig = existsSync(scopeDirs.codexConfigFile)
1654
+ ? await readFile(scopeDirs.codexConfigFile, "utf-8")
1655
+ : "";
1656
+ console.log(` ${dryRun ? "Would add" : "Added"} plugin-mode developer_instructions default (${scopeDirs.codexConfigFile}).\n`);
1657
+ }
1658
+ else {
1659
+ console.log(` Preserved existing developer_instructions in ${scopeDirs.codexConfigFile}.\n`);
1660
+ }
1661
+ }
1662
+ else {
1663
+ console.log(` Plugin-mode developer_instructions default preserved (${pluginDeveloperInstructionsDecision.reason}).\n`);
1664
+ }
1665
+ }
1666
+ else {
1667
+ const statusLinePreset = await resolveStatusLinePresetForSetup(projectRoot, { force });
1668
+ const managedConfig = await updateManagedConfig(scopeDirs.codexConfigFile, scopeDirs.codexHooksFile, pkgRoot, sharedMcpRegistry, resolvedMcpMode.mcpMode, shouldOfferFirstPartyMcpRemoval && !removeFirstPartyMcpRegistrations, resolvedScope.scope, scopeDirs.codexHomeDir, summary.config, backupContext, {
1669
+ dryRun,
1670
+ modelUpgradePrompt,
1671
+ verbose,
1672
+ statusLinePreset,
1673
+ forceStatusLinePreset: force,
1674
+ codexHookFeatureFlag,
1675
+ });
1676
+ resolvedConfig = managedConfig.finalConfig;
1677
+ omxManagesTui = managedConfig.omxManagesTui;
1678
+ if (managedConfig.repairedLegacyTeamRunTable) {
1679
+ console.log(" Removed retired [mcp_servers.omx_team_run] config during refresh.");
1680
+ }
1681
+ if (shouldSyncSharedMcpRegistry && resolvedScope.scope === "user") {
1682
+ await syncClaudeCodeMcpSettings(sharedMcpRegistry, summary.config, backupContext, { dryRun, verbose });
1683
+ }
1684
+ console.log(` Config refresh complete (${scopeDirs.codexConfigFile}).\n`);
1685
+ const existingHooksContent = existsSync(scopeDirs.codexHooksFile)
1686
+ ? await readFile(scopeDirs.codexHooksFile, "utf-8")
1687
+ : null;
1688
+ const hooksConfig = mergeManagedCodexHooksConfig(existingHooksContent, pkgRoot, scopeDirs.codexHooksFile, { platform: process.platform, codexHomeDir: scopeDirs.codexHomeDir });
1689
+ await syncManagedContent(hooksConfig, scopeDirs.codexHooksFile, summary.config, backupContext, { dryRun, verbose }, `native hooks ${scopeDirs.codexHooksFile}`);
1690
+ await syncManagedWindowsNativeHookShim(scopeDirs.codexHomeDir, pkgRoot, summary.config, backupContext, { dryRun, verbose });
1691
+ console.log(` Native Codex hooks refresh complete (${scopeDirs.codexHooksFile}).\n`);
1692
+ }
1693
+ // Step 5.5: Verify team CLI interop surface is available when Team is enabled.
1694
+ console.log("[5.5/8] Verifying Team CLI API interop...");
1695
+ if (isTeamModeEnabled) {
1696
+ const teamToolsCheck = await verifyTeamCliApiInterop(pkgRoot);
1697
+ if (teamToolsCheck.ok) {
1698
+ console.log(" omx team api command detected (CLI-first interop ready)");
1699
+ }
1700
+ else {
1701
+ console.log(` WARNING: ${teamToolsCheck.message}`);
1702
+ console.log(" Run `npm run build` and then re-run `omx setup`.");
1703
+ }
1704
+ }
1705
+ else {
1706
+ console.log(" Skipped because Team mode is disabled for this setup.");
1707
+ }
1708
+ console.log();
1709
+ // Step 6: Generate AGENTS.md
1710
+ console.log("[6/8] Generating AGENTS.md...");
1711
+ const activeSession = resolvedScope.scope === "project"
1712
+ ? await readSessionState(projectRoot)
1713
+ : null;
1714
+ const sessionIsActive = activeSession && !isSessionStale(activeSession);
1715
+ if (isPluginInstallMode) {
1716
+ const agentsMdSrc = join(pkgRoot, "templates", "AGENTS.md");
1717
+ const pluginAgentsMdExists = pluginAgentsMdPathExists;
1718
+ if (existsSync(agentsMdSrc)) {
1719
+ const content = await readFile(agentsMdSrc, "utf-8");
1720
+ const modelTableContext = resolveAgentsModelTableContext(resolvedConfig, {
1721
+ codexHomeOverride: scopeDirs.codexHomeDir,
1722
+ });
1723
+ const modelTableDefinitions = getAgentsModelTableDefinitionsForTeamMode(resolvedTeamMode);
1724
+ const rewritten = upsertAgentsModelTable(addGeneratedAgentsMarker(applyTeamModeToAgentsTemplate(applyPluginModeWordingToAgentsTemplate(content, resolvedScope.scope), resolvedTeamMode)), modelTableContext, modelTableDefinitions);
1725
+ if (options.mergeAgents && pluginAgentsMdExists) {
1726
+ if (pluginAgentsMdIsSymlink) {
1727
+ summary.agentsMd.skipped += 1;
1728
+ console.log(` Skipped plugin-mode AGENTS.md merge for symlinked ${pluginAgentsMdDst}; existing AGENTS.md left untouched.`);
1729
+ }
1730
+ else {
1731
+ const existing = await readFile(pluginAgentsMdDst, "utf-8");
1732
+ const mergedAgentsContent = upsertManagedAgentsBlock(existing, rewritten);
1733
+ const canApplyManagedAgentsMerge = mergedAgentsContent !== existing;
1734
+ if (resolvedScope.scope === "project" &&
1735
+ sessionIsActive &&
1736
+ canApplyManagedAgentsMerge) {
1737
+ summary.agentsMd.skipped += 1;
1738
+ console.log(" WARNING: Active omx session detected (pid " +
1739
+ activeSession?.pid +
1740
+ ").");
1741
+ console.log(" Skipping AGENTS.md overwrite to avoid corrupting runtime overlay.");
1742
+ console.log(" Stop the active session first, then re-run setup.");
1743
+ }
1744
+ else if (!canApplyManagedAgentsMerge) {
1745
+ summary.agentsMd.unchanged += 1;
1746
+ console.log(resolvedScope.scope === "project"
1747
+ ? " Plugin-mode AGENTS.md already up to date in project root."
1748
+ : ` Plugin-mode AGENTS.md already up to date in ${scopeDirs.codexHomeDir}.`);
1749
+ }
1750
+ else {
1751
+ await syncManagedContent(mergedAgentsContent, pluginAgentsMdDst, summary.agentsMd, backupContext, { dryRun, verbose }, `plugin AGENTS merge ${pluginAgentsMdDst}`);
1752
+ console.log(resolvedScope.scope === "project"
1753
+ ? " Merged plugin-mode OMX-managed AGENTS.md sections into project root."
1754
+ : ` Merged plugin-mode OMX-managed AGENTS.md sections into ${scopeDirs.codexHomeDir}.`);
1755
+ }
1756
+ }
1757
+ }
1758
+ else if (usePluginAgentsMdDefault) {
1759
+ const defaultWouldChange = pluginAgentsMdExists
1760
+ ? (await readFile(pluginAgentsMdDst, "utf-8")) !== rewritten
1761
+ : true;
1762
+ if (resolvedScope.scope === "project" &&
1763
+ sessionIsActive &&
1764
+ defaultWouldChange) {
1765
+ summary.agentsMd.skipped += 1;
1766
+ console.log(" WARNING: Active omx session detected (pid " +
1767
+ activeSession?.pid +
1768
+ ").");
1769
+ console.log(" Skipping AGENTS.md overwrite to avoid corrupting runtime overlay.");
1770
+ console.log(" Stop the active session first, then re-run setup.");
1771
+ }
1772
+ else {
1773
+ const result = await syncManagedAgentsContent(rewritten, pluginAgentsMdDst, summary.agentsMd, backupContext, {
1774
+ agentsOverwritePrompt: options.agentsOverwritePrompt,
1775
+ dryRun,
1776
+ force,
1777
+ verbose,
1778
+ });
1779
+ if (result === "updated") {
1780
+ console.log(resolvedScope.scope === "project"
1781
+ ? " Generated plugin-mode AGENTS.md defaults in project root."
1782
+ : ` Generated plugin-mode AGENTS.md defaults in ${scopeDirs.codexHomeDir}.`);
1783
+ }
1784
+ else if (result === "unchanged") {
1785
+ console.log(resolvedScope.scope === "project"
1786
+ ? " Plugin-mode AGENTS.md defaults already up to date in project root."
1787
+ : ` Plugin-mode AGENTS.md defaults already up to date in ${scopeDirs.codexHomeDir}.`);
1788
+ }
1789
+ else {
1790
+ console.log(` Skipped plugin-mode AGENTS.md defaults for ${pluginAgentsMdDst}.`);
1791
+ }
1792
+ }
1793
+ }
1794
+ else {
1795
+ summary.agentsMd.skipped += 1;
1796
+ console.log(pluginAgentsMdExists
1797
+ ? " Plugin-mode AGENTS.md defaults not selected; existing AGENTS.md left untouched.\n"
1798
+ : " Plugin-mode AGENTS.md defaults not selected; no AGENTS.md was generated.\n");
1799
+ }
1800
+ }
1801
+ else {
1802
+ summary.agentsMd.skipped += 1;
1803
+ console.log(" AGENTS.md template not found, skipping.");
1804
+ }
1805
+ }
1806
+ else {
1807
+ const agentsMdSrc = join(pkgRoot, "templates", "AGENTS.md");
1808
+ const agentsMdDst = resolvedScope.scope === "project"
1809
+ ? join(projectRoot, "AGENTS.md")
1810
+ : join(scopeDirs.codexHomeDir, "AGENTS.md");
1811
+ const agentsMdExists = existsSync(agentsMdDst);
1812
+ // Guard: refuse to overwrite project-root AGENTS.md during active session
1813
+ if (existsSync(agentsMdSrc)) {
1814
+ const content = await readFile(agentsMdSrc, "utf-8");
1815
+ const modelTableContext = resolveAgentsModelTableContext(resolvedConfig, {
1816
+ codexHomeOverride: scopeDirs.codexHomeDir,
1817
+ });
1818
+ const modelTableDefinitions = getAgentsModelTableDefinitionsForTeamMode(resolvedTeamMode);
1819
+ const rewritten = upsertAgentsModelTable(addGeneratedAgentsMarker(applyTeamModeToAgentsTemplate(applyScopePathRewritesToAgentsTemplate(content, resolvedScope.scope), resolvedTeamMode)), modelTableContext, modelTableDefinitions);
1820
+ let changed = true;
1821
+ let canApplyManagedModelRefresh = false;
1822
+ let canApplyManagedRefreshDuringActiveSession = false;
1823
+ let managedRefreshContent = "";
1824
+ let canApplyManagedAgentsMerge = false;
1825
+ let mergedAgentsContent = "";
1826
+ if (agentsMdExists) {
1827
+ const existing = await readFile(agentsMdDst, "utf-8");
1828
+ changed = existing !== rewritten;
1829
+ if (!hasOmxAgentsContract(existing)) {
1830
+ const scopeFlag = resolvedScope.scope === "project" ? "--scope project" : "--scope user";
1831
+ console.log(` WARNING: Existing AGENTS.md at ${agentsMdDst} lacks OMX contract markers; it may have been overwritten by another tool.`);
1832
+ console.log(` Repair safely with "omx setup ${scopeFlag} --merge-agents" to preserve local guidance, or "omx setup ${scopeFlag} --force" to replace it after backup.`);
1833
+ }
1834
+ if (options.mergeAgents) {
1835
+ mergedAgentsContent = upsertManagedAgentsBlock(existing, rewritten);
1836
+ canApplyManagedAgentsMerge = mergedAgentsContent !== existing;
1837
+ }
1838
+ else {
1839
+ if (hasOmxManagedAgentsSections(existing)) {
1840
+ const existingIsGeneratedAgentsMd = isOmxGeneratedAgentsMd(existing);
1841
+ managedRefreshContent = teamModeEnabled(resolvedTeamMode)
1842
+ ? upsertAgentsModelTable(existing, modelTableContext, modelTableDefinitions)
1843
+ : existingIsGeneratedAgentsMd
1844
+ ? rewritten
1845
+ : upsertManagedAgentsBlock(existing, rewritten);
1846
+ canApplyManagedModelRefresh = managedRefreshContent !== existing;
1847
+ canApplyManagedRefreshDuringActiveSession =
1848
+ canApplyManagedModelRefresh &&
1849
+ !teamModeEnabled(resolvedTeamMode) &&
1850
+ existingIsGeneratedAgentsMd;
1851
+ }
1852
+ }
1853
+ }
1854
+ if (resolvedScope.scope === "project" &&
1855
+ sessionIsActive &&
1856
+ agentsMdExists &&
1857
+ (changed || canApplyManagedAgentsMerge || canApplyManagedModelRefresh) &&
1858
+ !canApplyManagedRefreshDuringActiveSession) {
1859
+ summary.agentsMd.skipped += 1;
1860
+ console.log(" WARNING: Active omx session detected (pid " +
1861
+ activeSession?.pid +
1862
+ ").");
1863
+ console.log(" Skipping AGENTS.md overwrite to avoid corrupting runtime overlay.");
1864
+ console.log(" Stop the active session first, then re-run setup.");
1865
+ }
1866
+ else if (options.mergeAgents &&
1867
+ agentsMdExists &&
1868
+ !canApplyManagedAgentsMerge) {
1869
+ summary.agentsMd.unchanged += 1;
1870
+ console.log(resolvedScope.scope === "project"
1871
+ ? " AGENTS.md already up to date in project root."
1872
+ : ` AGENTS.md already up to date in ${scopeDirs.codexHomeDir}.`);
1873
+ }
1874
+ else if (canApplyManagedAgentsMerge) {
1875
+ await syncManagedContent(mergedAgentsContent, agentsMdDst, summary.agentsMd, backupContext, { dryRun, verbose }, `merged AGENTS ${agentsMdDst}`);
1876
+ console.log(resolvedScope.scope === "project"
1877
+ ? " Merged OMX-managed AGENTS.md sections into project root."
1878
+ : ` Merged OMX-managed AGENTS.md sections into ${scopeDirs.codexHomeDir}.`);
1879
+ }
1880
+ else if (canApplyManagedModelRefresh) {
1881
+ await syncManagedContent(managedRefreshContent, agentsMdDst, summary.agentsMd, backupContext, { dryRun, verbose }, `AGENTS model table ${agentsMdDst}`);
1882
+ console.log(resolvedScope.scope === "project"
1883
+ ? " Refreshed AGENTS.md model capability table in project root."
1884
+ : ` Refreshed AGENTS.md model capability table in ${scopeDirs.codexHomeDir}.`);
1885
+ }
1886
+ else {
1887
+ const result = await syncManagedAgentsContent(rewritten, agentsMdDst, summary.agentsMd, backupContext, {
1888
+ agentsOverwritePrompt: options.agentsOverwritePrompt,
1889
+ dryRun,
1890
+ force,
1891
+ verbose,
1892
+ });
1893
+ if (result === "updated") {
1894
+ console.log(resolvedScope.scope === "project"
1895
+ ? " Generated AGENTS.md in project root."
1896
+ : ` Generated AGENTS.md in ${scopeDirs.codexHomeDir}.`);
1897
+ }
1898
+ else if (result === "unchanged") {
1899
+ console.log(resolvedScope.scope === "project"
1900
+ ? " AGENTS.md already up to date in project root."
1901
+ : ` AGENTS.md already up to date in ${scopeDirs.codexHomeDir}.`);
1902
+ }
1903
+ else if (agentsMdExists) {
1904
+ console.log(` Skipped AGENTS.md overwrite for ${agentsMdDst}. Re-run interactively to confirm or use --force.`);
1905
+ }
1906
+ }
1907
+ if (resolvedScope.scope === "user") {
1908
+ console.log(" User scope leaves project AGENTS.md unchanged.");
1909
+ }
1910
+ }
1911
+ else {
1912
+ summary.agentsMd.skipped += 1;
1913
+ console.log(" AGENTS.md template not found, skipping.");
1914
+ }
1915
+ console.log();
1916
+ }
1917
+ // Step 7: Set up notify hook
1918
+ console.log("[7/8] Configuring notification hook...");
1919
+ if (isPluginInstallMode) {
1920
+ console.log(" Skipped for plugin skill delivery mode.\n");
1921
+ }
1922
+ else {
1923
+ await setupNotifyHook(pkgRoot, { dryRun, verbose });
1924
+ console.log(" Done.\n");
1925
+ }
1926
+ // Step 8: Configure HUD
1927
+ console.log("[8/8] Configuring HUD...");
1928
+ const hudConfigPath = join(projectRoot, ".omx", "hud-config.json");
1929
+ if (force || !existsSync(hudConfigPath)) {
1930
+ if (!dryRun) {
1931
+ const defaultHudConfig = { preset: "focused" };
1932
+ await writeFile(hudConfigPath, JSON.stringify(defaultHudConfig, null, 2));
1933
+ }
1934
+ if (verbose)
1935
+ console.log(" Wrote .omx/hud-config.json");
1936
+ console.log(" HUD config created (preset: focused).");
1937
+ }
1938
+ else {
1939
+ console.log(" HUD config already exists (use --force to overwrite).");
1940
+ }
1941
+ if (omxManagesTui) {
1942
+ console.log(" StatusLine configured in config.toml via [tui] section.");
1943
+ }
1944
+ console.log();
1945
+ console.log("Setup refresh summary:");
1946
+ logCategorySummary("prompts", summary.prompts);
1947
+ logCategorySummary("skills", summary.skills);
1948
+ logCategorySummary("native_agents", summary.nativeAgents);
1949
+ logCategorySummary("agents_md", summary.agentsMd);
1950
+ logCategorySummary("config", summary.config);
1951
+ console.log();
1952
+ const legacySkillOverlapNotice = await buildLegacySkillOverlapNotice(resolvedScope.scope);
1953
+ if (legacySkillOverlapNotice.shouldWarn) {
1954
+ console.log(`Migration hint: ${legacySkillOverlapNotice.message}`);
1955
+ console.log();
1956
+ }
1957
+ if (force) {
1958
+ console.log("Force mode: enabled additional destructive maintenance (for example stale deprecated skill cleanup).");
1959
+ console.log();
1960
+ }
1961
+ console.log('Setup complete! Run "omx doctor" to verify installation.');
1962
+ console.log("\nNext steps:");
1963
+ console.log(" 1. Start Codex CLI in your project directory");
1964
+ if (isPluginInstallMode) {
1965
+ console.log(` 2. Registered Codex marketplace ${OMX_LOCAL_MARKETPLACE_NAME} supplies OMX skills and workflow surfaces`);
1966
+ console.log(" 3. Browse plugin-provided skills with /skills");
1967
+ console.log(" 4. Plugin-mode AGENTS.md defaults provide persistent orchestration guidance; developer_instructions is an optional bootstrap");
1968
+ console.log(" 5. Native agent role TOML files written to .codex/agents/ for agent_type routing");
1969
+ }
1970
+ else {
1971
+ console.log(" 2. Use role/workflow keywords like $architect, $executor, and $plan in Codex");
1972
+ console.log(" 3. Browse skills with /skills; AGENTS keyword routing can also activate them implicitly");
1973
+ console.log(" 4. The AGENTS.md orchestration brain is loaded automatically");
1974
+ console.log(" 5. Native agent defaults configured in config.toml [agents] and TOML files written to .codex/agents/");
1975
+ }
1976
+ console.log(' 6. "omx explore" and "omx sparkshell" can hydrate native release binaries on first use; source installs still allow repo-local fallbacks and OMX_EXPLORE_BIN / OMX_SPARKSHELL_BIN overrides');
1977
+ if (isGitHubCliConfigured()) {
1978
+ console.log("\nSupport the project: gh repo star Yeachan-Heo/oh-my-codex");
1979
+ }
1980
+ }
1981
+ function isLegacySkillPromptShim(content) {
1982
+ const marker = /Read and follow the full skill instructions at\s+.*\/skills\/[^/\s]+\/SKILL\.md/i;
1983
+ return marker.test(content);
1984
+ }
1985
+ async function cleanupLegacySkillPromptShims(promptsSrcDir, promptsDstDir, options) {
1986
+ if (!existsSync(promptsSrcDir) || !existsSync(promptsDstDir))
1987
+ return 0;
1988
+ const sourceFiles = new Set((await readdir(promptsSrcDir)).filter((name) => name.endsWith(".md")));
1989
+ const installedFiles = await readdir(promptsDstDir);
1990
+ let removed = 0;
1991
+ for (const file of installedFiles) {
1992
+ if (!file.endsWith(".md"))
1993
+ continue;
1994
+ if (sourceFiles.has(file))
1995
+ continue;
1996
+ const fullPath = join(promptsDstDir, file);
1997
+ let content = "";
1998
+ try {
1999
+ content = await readFile(fullPath, "utf-8");
2000
+ }
2001
+ catch {
2002
+ continue;
2003
+ }
2004
+ if (!isLegacySkillPromptShim(content))
2005
+ continue;
2006
+ if (!options.dryRun) {
2007
+ await rm(fullPath, { force: true });
2008
+ }
2009
+ if (options.verbose)
2010
+ console.log(` removed legacy prompt shim ${file}`);
2011
+ removed++;
2012
+ }
2013
+ return removed;
2014
+ }
2015
+ function isGitHubCliConfigured() {
2016
+ if (cachedGitHubCliConfigured !== undefined) {
2017
+ return cachedGitHubCliConfigured;
2018
+ }
2019
+ const result = spawnSync("gh", ["auth", "status"], {
2020
+ killSignal: "SIGKILL",
2021
+ stdio: "ignore",
2022
+ timeout: GITHUB_AUTH_STATUS_TIMEOUT_MS,
2023
+ windowsHide: true,
2024
+ });
2025
+ cachedGitHubCliConfigured = result.status === 0;
2026
+ return cachedGitHubCliConfigured;
2027
+ }
2028
+ async function syncManagedFileFromDisk(srcPath, dstPath, summary, backupContext, options, verboseLabel) {
2029
+ const destinationExists = existsSync(dstPath);
2030
+ const changed = !destinationExists || (await filesDiffer(srcPath, dstPath));
2031
+ if (!changed) {
2032
+ summary.unchanged += 1;
2033
+ return;
2034
+ }
2035
+ if (await ensureBackup(dstPath, destinationExists, backupContext, options)) {
2036
+ summary.backedUp += 1;
2037
+ }
2038
+ if (!options.dryRun) {
2039
+ await mkdir(dirname(dstPath), { recursive: true });
2040
+ await copyFile(srcPath, dstPath);
2041
+ }
2042
+ summary.updated += 1;
2043
+ if (options.verbose) {
2044
+ console.log(` ${options.dryRun ? "would update" : "updated"} ${verboseLabel}`);
2045
+ }
2046
+ }
2047
+ async function syncManagedContent(content, dstPath, summary, backupContext, options, verboseLabel) {
2048
+ const destinationExists = existsSync(dstPath);
2049
+ let changed = true;
2050
+ if (destinationExists) {
2051
+ const existing = await readFile(dstPath, "utf-8");
2052
+ changed = existing !== content;
2053
+ }
2054
+ if (!changed) {
2055
+ summary.unchanged += 1;
2056
+ return;
2057
+ }
2058
+ if (await ensureBackup(dstPath, destinationExists, backupContext, options)) {
2059
+ summary.backedUp += 1;
2060
+ }
2061
+ if (!options.dryRun) {
2062
+ await mkdir(dirname(dstPath), { recursive: true });
2063
+ await writeFile(dstPath, content);
2064
+ }
2065
+ summary.updated += 1;
2066
+ if (options.verbose) {
2067
+ console.log(` ${options.dryRun ? "would update" : "updated"} ${verboseLabel}`);
2068
+ }
2069
+ }
2070
+ async function syncManagedWindowsNativeHookShim(codexHomeDir, pkgRoot, summary, backupContext, options) {
2071
+ if (process.platform !== "win32")
2072
+ return;
2073
+ const shimPath = buildManagedCodexNativeHookWindowsShimPath(codexHomeDir);
2074
+ const shimContent = buildManagedCodexNativeHookWindowsShimContent(pkgRoot);
2075
+ await syncManagedContent(shimContent, shimPath, summary, backupContext, options, `native hook Windows shim ${shimPath}`);
2076
+ }
2077
+ async function syncManagedAgentsContent(content, dstPath, summary, backupContext, options) {
2078
+ const destinationExists = existsSync(dstPath);
2079
+ let existing = "";
2080
+ let changed = true;
2081
+ let acceptedInteractiveOverwrite = false;
2082
+ if (destinationExists) {
2083
+ existing = await readFile(dstPath, "utf-8");
2084
+ changed = existing !== content;
2085
+ }
2086
+ if (!changed) {
2087
+ summary.unchanged += 1;
2088
+ return "unchanged";
2089
+ }
2090
+ if (destinationExists && !options.force) {
2091
+ if (options.dryRun) {
2092
+ summary.skipped += 1;
2093
+ if (options.verbose) {
2094
+ console.log(` would prompt before overwriting ${dstPath}`);
2095
+ }
2096
+ return "skipped";
2097
+ }
2098
+ const shouldOverwrite = options.agentsOverwritePrompt
2099
+ ? await options.agentsOverwritePrompt(dstPath)
2100
+ : await promptForAgentsOverwrite(dstPath);
2101
+ if (!shouldOverwrite) {
2102
+ summary.skipped += 1;
2103
+ if (options.verbose) {
2104
+ const managedLabel = isOmxGeneratedAgentsMd(existing)
2105
+ ? "managed"
2106
+ : "unmanaged";
2107
+ console.log(` skipped ${managedLabel} AGENTS.md at ${dstPath}`);
2108
+ }
2109
+ return "skipped";
2110
+ }
2111
+ acceptedInteractiveOverwrite = true;
2112
+ }
2113
+ if (acceptedInteractiveOverwrite &&
2114
+ (await moveExistingAgentsToDeterministicBackup(dstPath, options))) {
2115
+ summary.backedUp += 1;
2116
+ }
2117
+ else if (await ensureBackup(dstPath, destinationExists, backupContext, options)) {
2118
+ summary.backedUp += 1;
2119
+ }
2120
+ if (!options.dryRun) {
2121
+ await mkdir(dirname(dstPath), { recursive: true });
2122
+ await writeFile(dstPath, content);
2123
+ }
2124
+ summary.updated += 1;
2125
+ if (options.verbose) {
2126
+ console.log(` ${options.dryRun ? "would update" : "updated"} AGENTS ${dstPath}`);
2127
+ }
2128
+ return "updated";
2129
+ }
2130
+ async function installPrompts(srcDir, dstDir, backupContext, options) {
2131
+ const summary = createEmptyCategorySummary();
2132
+ if (!existsSync(srcDir))
2133
+ return summary;
2134
+ const manifest = tryReadCatalogManifest();
2135
+ const agentStatusByName = manifest
2136
+ ? getCatalogAgentStatusByName(manifest)
2137
+ : null;
2138
+ const files = await readdir(srcDir);
2139
+ for (const file of files) {
2140
+ if (!file.endsWith(".md"))
2141
+ continue;
2142
+ const promptName = file.slice(0, -3);
2143
+ if (!teamModeEnabled(options.teamMode) && TEAM_MODE_PROMPT_NAMES.has(promptName)) {
2144
+ summary.skipped += 1;
2145
+ if (options.verbose) {
2146
+ console.log(` skipped ${file} (Team mode disabled)`);
2147
+ }
2148
+ continue;
2149
+ }
2150
+ const status = agentStatusByName?.get(promptName);
2151
+ if (manifest && !isSetupPromptAssetName(promptName, manifest)) {
2152
+ summary.skipped += 1;
2153
+ if (options.verbose) {
2154
+ const label = status ?? "unclassified";
2155
+ console.log(` skipped ${file} (status: ${label})`);
2156
+ }
2157
+ continue;
2158
+ }
2159
+ const src = join(srcDir, file);
2160
+ const dst = join(dstDir, file);
2161
+ const srcStat = await stat(src);
2162
+ if (!srcStat.isFile())
2163
+ continue;
2164
+ await syncManagedFileFromDisk(src, dst, summary, backupContext, options, `prompt ${file}`);
2165
+ }
2166
+ if (manifest && existsSync(dstDir)) {
2167
+ const installedFiles = await readdir(dstDir);
2168
+ for (const file of installedFiles) {
2169
+ if (!file.endsWith(".md"))
2170
+ continue;
2171
+ const promptName = file.slice(0, -3);
2172
+ const status = agentStatusByName?.get(promptName);
2173
+ const disabledTeamPrompt = !teamModeEnabled(options.teamMode) && TEAM_MODE_PROMPT_NAMES.has(promptName);
2174
+ if (isSetupPromptAssetName(promptName, manifest) && !disabledTeamPrompt)
2175
+ continue;
2176
+ if (!options.force && !disabledTeamPrompt)
2177
+ continue;
2178
+ const stalePromptPath = join(dstDir, file);
2179
+ if (!existsSync(stalePromptPath))
2180
+ continue;
2181
+ if (await ensureBackup(stalePromptPath, true, backupContext, options)) {
2182
+ summary.backedUp += 1;
2183
+ }
2184
+ if (!options.dryRun) {
2185
+ await rm(stalePromptPath, { force: true });
2186
+ }
2187
+ summary.removed += 1;
2188
+ if (options.verbose) {
2189
+ const prefix = options.dryRun
2190
+ ? "would remove stale prompt"
2191
+ : "removed stale prompt";
2192
+ const label = status ?? "unlisted";
2193
+ const reason = disabledTeamPrompt ? ", Team mode disabled" : "";
2194
+ console.log(` ${prefix} ${file} (status: ${label}${reason})`);
2195
+ }
2196
+ }
2197
+ }
2198
+ return summary;
2199
+ }
2200
+ function isGeneratedOmxNativeAgentToml(content, agentName) {
2201
+ const firstLine = content.split(/\r?\n/, 1)[0]?.trim();
2202
+ return firstLine === `# oh-my-codex agent: ${agentName}`;
2203
+ }
2204
+ async function cleanupGeneratedNonInstallableNativeAgents(agentsDir, manifest, backupContext, options) {
2205
+ const summary = createEmptyCategorySummary();
2206
+ if (!existsSync(agentsDir))
2207
+ return summary;
2208
+ const agentStatusByName = getCatalogAgentStatusByName(manifest);
2209
+ const installedFiles = await readdir(agentsDir);
2210
+ for (const file of installedFiles) {
2211
+ if (!file.endsWith(".toml"))
2212
+ continue;
2213
+ const agentName = file.slice(0, -5);
2214
+ const agentStatus = agentStatusByName.get(agentName);
2215
+ if (agentStatus === undefined ||
2216
+ isNativeAgentInstallableStatus(agentStatus)) {
2217
+ continue;
2218
+ }
2219
+ const staleAgentPath = join(agentsDir, file);
2220
+ let content = "";
2221
+ try {
2222
+ content = await readFile(staleAgentPath, "utf-8");
2223
+ }
2224
+ catch {
2225
+ continue;
2226
+ }
2227
+ if (!isGeneratedOmxNativeAgentToml(content, agentName)) {
2228
+ if (options.verbose) {
2229
+ console.log(` skipped stale native agent ${file}: not an OMX-generated native agent`);
2230
+ }
2231
+ continue;
2232
+ }
2233
+ if (await ensureBackup(staleAgentPath, true, backupContext, options)) {
2234
+ summary.backedUp += 1;
2235
+ }
2236
+ if (!options.dryRun) {
2237
+ await rm(staleAgentPath, { force: true });
2238
+ }
2239
+ summary.removed += 1;
2240
+ if (options.verbose) {
2241
+ const prefix = options.dryRun
2242
+ ? "would remove stale generated native agent"
2243
+ : "removed stale generated native agent";
2244
+ console.log(` ${prefix} ${file} (status: ${agentStatus})`);
2245
+ }
2246
+ }
2247
+ return summary;
2248
+ }
2249
+ async function refreshNativeAgentConfigs(pkgRoot, agentsDir, backupContext, options) {
2250
+ const summary = createEmptyCategorySummary();
2251
+ if (!options.dryRun) {
2252
+ await mkdir(agentsDir, { recursive: true });
2253
+ }
2254
+ const manifest = tryReadCatalogManifest();
2255
+ const agentStatusByName = manifest
2256
+ ? getCatalogAgentStatusByName(manifest)
2257
+ : null;
2258
+ const staleCandidateNativeAgentNames = new Set(manifest?.agents.map((agent) => agent.name) ?? []);
2259
+ const nativeAgentNames = manifest
2260
+ ? [...getInstallableNativeAgentNames(manifest)].sort()
2261
+ : Object.keys(AGENT_DEFINITIONS).sort();
2262
+ for (const name of nativeAgentNames) {
2263
+ staleCandidateNativeAgentNames.add(name);
2264
+ if (!teamModeEnabled(options.teamMode) && TEAM_MODE_NATIVE_AGENT_NAMES.has(name)) {
2265
+ summary.skipped += 1;
2266
+ if (options.verbose) {
2267
+ console.log(` skipped native agent ${name}.toml (Team mode disabled)`);
2268
+ }
2269
+ continue;
2270
+ }
2271
+ const agent = AGENT_DEFINITIONS[name];
2272
+ if (!agent) {
2273
+ if (options.verbose) {
2274
+ console.log(` skipped native agent ${name}.toml (missing definition)`);
2275
+ }
2276
+ summary.skipped += 1;
2277
+ continue;
2278
+ }
2279
+ const promptPath = join(pkgRoot, "prompts", `${name}.md`);
2280
+ if (!existsSync(promptPath)) {
2281
+ continue;
2282
+ }
2283
+ const promptContent = await readFile(promptPath, "utf-8");
2284
+ const toml = generateAgentToml(agent, promptContent, {
2285
+ codexHomeOverride: join(agentsDir, ".."),
2286
+ });
2287
+ const dst = join(agentsDir, `${name}.toml`);
2288
+ await syncManagedContent(toml, dst, summary, backupContext, options, `native agent ${name}.toml`);
2289
+ }
2290
+ summary.removed += await cleanupObsoleteNativeAgents(agentsDir, backupContext, options);
2291
+ if (manifest) {
2292
+ const generatedCleanup = await cleanupGeneratedNonInstallableNativeAgents(agentsDir, manifest, backupContext, options);
2293
+ summary.backedUp += generatedCleanup.backedUp;
2294
+ summary.removed += generatedCleanup.removed;
2295
+ }
2296
+ if (manifest && existsSync(agentsDir)) {
2297
+ const installedFiles = await readdir(agentsDir);
2298
+ for (const file of installedFiles) {
2299
+ if (!file.endsWith(".toml"))
2300
+ continue;
2301
+ const agentName = file.slice(0, -5);
2302
+ const agentStatus = agentStatusByName?.get(agentName);
2303
+ const disabledTeamAgent = !teamModeEnabled(options.teamMode) && TEAM_MODE_NATIVE_AGENT_NAMES.has(agentName);
2304
+ if (isNativeAgentInstallableStatus(agentStatus) && !disabledTeamAgent)
2305
+ continue;
2306
+ if (!options.force && !disabledTeamAgent)
2307
+ continue;
2308
+ if (!staleCandidateNativeAgentNames.has(agentName) &&
2309
+ agentStatus === undefined)
2310
+ continue;
2311
+ const staleAgentPath = join(agentsDir, file);
2312
+ if (!existsSync(staleAgentPath))
2313
+ continue;
2314
+ if (await ensureBackup(staleAgentPath, true, backupContext, options)) {
2315
+ summary.backedUp += 1;
2316
+ }
2317
+ if (!options.dryRun) {
2318
+ await rm(staleAgentPath, { force: true });
2319
+ }
2320
+ summary.removed += 1;
2321
+ if (options.verbose) {
2322
+ const prefix = options.dryRun
2323
+ ? "would remove stale native agent"
2324
+ : "removed stale native agent";
2325
+ const label = agentStatus ?? "unlisted";
2326
+ const reason = disabledTeamAgent ? ", Team mode disabled" : "";
2327
+ console.log(` ${prefix} ${file} (status: ${label}${reason})`);
2328
+ }
2329
+ }
2330
+ }
2331
+ return summary;
2332
+ }
2333
+ async function cleanupObsoleteNativeAgents(agentsDir, backupContext, options) {
2334
+ if (!existsSync(agentsDir))
2335
+ return 0;
2336
+ const installedFiles = await readdir(agentsDir);
2337
+ let removed = 0;
2338
+ for (const file of installedFiles) {
2339
+ if (!file.endsWith(".toml"))
2340
+ continue;
2341
+ const fullPath = join(agentsDir, file);
2342
+ let content = "";
2343
+ try {
2344
+ content = await readFile(fullPath, "utf-8");
2345
+ }
2346
+ catch {
2347
+ continue;
2348
+ }
2349
+ if (!containsTomlKey(content, OBSOLETE_NATIVE_AGENT_FIELD))
2350
+ continue;
2351
+ const agentName = file.slice(0, -5);
2352
+ if (options.preserveUnmanagedObsoleteNativeAgents &&
2353
+ !isGeneratedOmxNativeAgentToml(content, agentName)) {
2354
+ if (options.verbose) {
2355
+ console.log(` skipped stale obsolete native agent ${file}: not an OMX-generated native agent`);
2356
+ }
2357
+ continue;
2358
+ }
2359
+ if (await ensureBackup(fullPath, true, backupContext, options)) {
2360
+ // backup created for pre-existing obsolete native agent config
2361
+ }
2362
+ if (!options.dryRun) {
2363
+ await rm(fullPath, { force: true });
2364
+ }
2365
+ if (options.verbose) {
2366
+ const prefix = options.dryRun
2367
+ ? "would remove stale obsolete native agent"
2368
+ : "removed stale obsolete native agent";
2369
+ console.log(` ${prefix} ${file}`);
2370
+ }
2371
+ removed += 1;
2372
+ }
2373
+ return removed;
2374
+ }
2375
+ export async function installSkills(srcDir, dstDir, backupContext, options) {
2376
+ const summary = createEmptyCategorySummary();
2377
+ if (!existsSync(srcDir))
2378
+ return summary;
2379
+ const installableSkillNames = getSetupInstallableSkillNames();
2380
+ const installableSkills = [];
2381
+ const manifest = tryReadCatalogManifest();
2382
+ const skillStatusByName = manifest
2383
+ ? new Map(manifest.skills.map((skill) => [skill.name, skill.status]))
2384
+ : null;
2385
+ const isSetupInstallableSkill = (skillName, status) => isCatalogInstallableStatus(status) || installableSkillNames.has(skillName);
2386
+ const entries = await readdir(srcDir, { withFileTypes: true });
2387
+ const staleCandidateSkillNames = new Set(manifest?.skills.map((skill) => skill.name) ?? []);
2388
+ for (const entry of entries) {
2389
+ if (!entry.isDirectory())
2390
+ continue;
2391
+ staleCandidateSkillNames.add(entry.name);
2392
+ if (!teamModeEnabled(options.teamMode) && TEAM_MODE_SKILL_NAMES.has(entry.name)) {
2393
+ summary.skipped += 1;
2394
+ if (options.verbose) {
2395
+ console.log(` skipped ${entry.name}/ (Team mode disabled)`);
2396
+ }
2397
+ continue;
2398
+ }
2399
+ const status = skillStatusByName?.get(entry.name);
2400
+ if (skillStatusByName && !isSetupInstallableSkill(entry.name, status)) {
2401
+ summary.skipped += 1;
2402
+ if (options.verbose) {
2403
+ const label = status ?? "unlisted";
2404
+ console.log(` skipped ${entry.name}/ (status: ${label})`);
2405
+ }
2406
+ continue;
2407
+ }
2408
+ const skillSrc = join(srcDir, entry.name);
2409
+ const skillDst = join(dstDir, entry.name);
2410
+ const skillMd = join(skillSrc, "SKILL.md");
2411
+ if (!existsSync(skillMd))
2412
+ continue;
2413
+ installableSkills.push({
2414
+ name: entry.name,
2415
+ sourceDir: skillSrc,
2416
+ destinationDir: skillDst,
2417
+ });
2418
+ }
2419
+ for (const skill of installableSkills) {
2420
+ await validateSkillFile(join(skill.sourceDir, "SKILL.md"));
2421
+ }
2422
+ for (const skill of installableSkills) {
2423
+ const skillName = skill.name;
2424
+ const skillSrc = skill.sourceDir;
2425
+ const skillDst = skill.destinationDir;
2426
+ if (!options.dryRun) {
2427
+ await mkdir(skillDst, { recursive: true });
2428
+ }
2429
+ const skillFiles = await readdir(skillSrc);
2430
+ for (const sf of skillFiles) {
2431
+ const sfPath = join(skillSrc, sf);
2432
+ const sfStat = await stat(sfPath);
2433
+ if (!sfStat.isFile())
2434
+ continue;
2435
+ const dstPath = join(skillDst, sf);
2436
+ if (sf === "SKILL.md") {
2437
+ await syncManagedContent(rewriteInstalledSkillDescriptionBadge(await readFile(sfPath, "utf-8"), sfPath), dstPath, summary, backupContext, options, `skill ${skillName}/${sf}`);
2438
+ continue;
2439
+ }
2440
+ await syncManagedFileFromDisk(sfPath, dstPath, summary, backupContext, options, `skill ${skillName}/${sf}`);
2441
+ }
2442
+ }
2443
+ if (manifest && existsSync(dstDir)) {
2444
+ for (const staleSkill of staleCandidateSkillNames) {
2445
+ const status = skillStatusByName?.get(staleSkill);
2446
+ const disabledTeamSkill = !teamModeEnabled(options.teamMode) && TEAM_MODE_SKILL_NAMES.has(staleSkill);
2447
+ if (isSetupInstallableSkill(staleSkill, status) && !disabledTeamSkill)
2448
+ continue;
2449
+ const hardDeprecated = HARD_DEPRECATED_SKILL_NAMES.has(staleSkill);
2450
+ if (!options.force && !hardDeprecated && !disabledTeamSkill)
2451
+ continue;
2452
+ const staleSkillDir = join(dstDir, staleSkill);
2453
+ if (!existsSync(staleSkillDir))
2454
+ continue;
2455
+ if (!options.dryRun) {
2456
+ await rm(staleSkillDir, { recursive: true, force: true });
2457
+ }
2458
+ summary.removed += 1;
2459
+ if (options.verbose) {
2460
+ const prefix = options.dryRun
2461
+ ? "would remove stale skill"
2462
+ : "removed stale skill";
2463
+ const label = status ?? "unlisted";
2464
+ const reason = disabledTeamSkill
2465
+ ? ", Team mode disabled"
2466
+ : hardDeprecated ? ", hard-deprecated" : "";
2467
+ console.log(` ${prefix} ${staleSkill}/ (status: ${label}${reason})`);
2468
+ }
2469
+ }
2470
+ }
2471
+ return summary;
2472
+ }
2473
+ async function removeDirectoryCopyAware(sourceDir, backupContext, options) {
2474
+ const destinationExists = existsSync(sourceDir);
2475
+ if (!destinationExists)
2476
+ return false;
2477
+ const relativePath = relative(backupContext.baseRoot, sourceDir);
2478
+ const safeRelativePath = relativePath.startsWith("..") || relativePath === ""
2479
+ ? sourceDir.replace(/^[/]+/, "")
2480
+ : relativePath;
2481
+ const backupPath = join(backupContext.backupRoot, safeRelativePath);
2482
+ if (!options.dryRun) {
2483
+ await mkdir(dirname(backupPath), { recursive: true });
2484
+ await cp(sourceDir, backupPath, { recursive: true });
2485
+ }
2486
+ if (options.verbose) {
2487
+ console.log(` backup ${sourceDir} -> ${backupPath}`);
2488
+ }
2489
+ if (!options.dryRun) {
2490
+ await rm(sourceDir, { recursive: true, force: true });
2491
+ }
2492
+ return true;
2493
+ }
2494
+ async function cleanupLegacyManagedSkills(srcDir, dstDir, backupContext, options) {
2495
+ const result = {
2496
+ backedUp: 0,
2497
+ removedSkillNames: [],
2498
+ skippedSkillNames: [],
2499
+ warnings: [],
2500
+ };
2501
+ if (!existsSync(dstDir) || !existsSync(srcDir)) {
2502
+ return result;
2503
+ }
2504
+ const manifest = tryReadCatalogManifest();
2505
+ const installableSkillNames = getSetupInstallableSkillNames(manifest);
2506
+ for (const skillName of installableSkillNames) {
2507
+ const shippedSkillDir = join(srcDir, skillName);
2508
+ const installedSkillDir = join(dstDir, skillName);
2509
+ const shippedSkillMd = join(shippedSkillDir, "SKILL.md");
2510
+ const installedSkillMd = join(installedSkillDir, "SKILL.md");
2511
+ if (!existsSync(shippedSkillMd) || !existsSync(installedSkillMd))
2512
+ continue;
2513
+ const [shippedSkillContent, installedSkillContent] = await Promise.all([
2514
+ readFile(shippedSkillMd, "utf-8"),
2515
+ readFile(installedSkillMd, "utf-8"),
2516
+ ]);
2517
+ const expectedInstalledContent = rewriteInstalledSkillDescriptionBadge(shippedSkillContent, shippedSkillMd);
2518
+ if (installedSkillContent !== expectedInstalledContent) {
2519
+ const warning = `Skipping legacy skill cleanup for ${skillName}: installed SKILL.md differs from OMX-managed content.`;
2520
+ result.skippedSkillNames.push(skillName);
2521
+ result.warnings.push(warning);
2522
+ continue;
2523
+ }
2524
+ const removed = await removeDirectoryCopyAware(installedSkillDir, backupContext, options);
2525
+ if (removed) {
2526
+ result.backedUp += 1;
2527
+ result.removedSkillNames.push(skillName);
2528
+ }
2529
+ }
2530
+ return result;
2531
+ }
2532
+ function getNotifyMetadataPath(codexHomeDir) {
2533
+ return join(codexHomeDir, ".omx", "notify-dispatch.json");
2534
+ }
2535
+ async function buildNotifyMergePlan(existingConfig, pkgRoot, codexHomeDir, scope) {
2536
+ if (scope === "project") {
2537
+ return { notifyCommand: false };
2538
+ }
2539
+ const omxNotify = ["node", join(pkgRoot, "dist", "scripts", "notify-hook.js")];
2540
+ const metadataPath = getNotifyMetadataPath(codexHomeDir);
2541
+ const dispatcherNotify = [
2542
+ "node",
2543
+ join(pkgRoot, "dist", "scripts", "notify-dispatcher.js"),
2544
+ "--metadata",
2545
+ metadataPath,
2546
+ ];
2547
+ const existingNotify = getRootTomlArray(existingConfig, "notify");
2548
+ if (!existingNotify) {
2549
+ return { notifyCommand: omxNotify };
2550
+ }
2551
+ if (isOmxManagedNotifyCommand(existingNotify, pkgRoot)) {
2552
+ if (!existingNotify.some((part) => /(?:^|[\\/])notify-dispatcher\.js$/.test(part))) {
2553
+ return { notifyCommand: omxNotify };
2554
+ }
2555
+ try {
2556
+ const metadata = JSON.parse(await readFile(metadataPath, "utf-8"));
2557
+ const previousNotify = metadata.previousNotify;
2558
+ if (Array.isArray(previousNotify) &&
2559
+ previousNotify.every((item) => typeof item === "string")) {
2560
+ const sanitizedPreviousNotify = sanitizePreviousNotifyCommand(previousNotify, pkgRoot);
2561
+ if (!sanitizedPreviousNotify) {
2562
+ return { notifyCommand: omxNotify };
2563
+ }
2564
+ return {
2565
+ notifyCommand: dispatcherNotify,
2566
+ metadataPath,
2567
+ metadata: {
2568
+ managedBy: "oh-my-codex",
2569
+ version: 1,
2570
+ previousNotify: sanitizedPreviousNotify,
2571
+ omxNotify,
2572
+ dispatcherNotify,
2573
+ },
2574
+ };
2575
+ }
2576
+ }
2577
+ catch {
2578
+ // Missing dispatcher metadata: fall back to plain OMX notify instead of nesting.
2579
+ }
2580
+ return { notifyCommand: omxNotify };
2581
+ }
2582
+ return {
2583
+ notifyCommand: dispatcherNotify,
2584
+ metadataPath,
2585
+ metadata: {
2586
+ managedBy: "oh-my-codex",
2587
+ version: 1,
2588
+ previousNotify: sanitizePreviousNotifyCommand(existingNotify, pkgRoot),
2589
+ omxNotify,
2590
+ dispatcherNotify,
2591
+ },
2592
+ };
2593
+ }
2594
+ async function updateManagedConfig(configPath, hooksPath, pkgRoot, sharedMcpRegistry, mcpMode, preserveExistingFirstPartyMcp, scope, codexHomeDir, summary, backupContext, options) {
2595
+ const existing = existsSync(configPath)
2596
+ ? await readFile(configPath, "utf-8")
2597
+ : "";
2598
+ const hadLegacyTeamRunTable = hasLegacyOmxTeamRunTable(existing);
2599
+ const currentModel = getRootModelName(existing);
2600
+ let modelOverride;
2601
+ const omxManagesTui = true;
2602
+ if (currentModel === LEGACY_SETUP_MODEL) {
2603
+ const shouldPrompt = typeof options.modelUpgradePrompt === "function" ||
2604
+ (process.stdin.isTTY && process.stdout.isTTY);
2605
+ if (shouldPrompt) {
2606
+ const shouldUpgrade = options.modelUpgradePrompt
2607
+ ? await options.modelUpgradePrompt(currentModel, DEFAULT_SETUP_MODEL)
2608
+ : await promptForModelUpgrade(currentModel, DEFAULT_SETUP_MODEL);
2609
+ if (shouldUpgrade) {
2610
+ modelOverride = DEFAULT_SETUP_MODEL;
2611
+ }
2612
+ }
2613
+ }
2614
+ const notifyPlan = await buildNotifyMergePlan(existing, pkgRoot, codexHomeDir, scope);
2615
+ const finalConfig = buildMergedConfig(existing, pkgRoot, {
2616
+ includeTui: omxManagesTui,
2617
+ codexHooksFile: hooksPath,
2618
+ codexHomeDir,
2619
+ hookCommandPlatform: process.platform,
2620
+ codexHookFeatureFlag: options.codexHookFeatureFlag,
2621
+ modelOverride,
2622
+ sharedMcpServers: sharedMcpRegistry.servers,
2623
+ sharedMcpRegistrySource: sharedMcpRegistry.sourcePath,
2624
+ verbose: options.verbose,
2625
+ statusLinePreset: options.statusLinePreset,
2626
+ forceStatusLinePreset: options.forceStatusLinePreset,
2627
+ notifyCommand: notifyPlan.notifyCommand,
2628
+ includeFirstPartyMcp: mcpMode === "compat",
2629
+ preserveExistingFirstPartyMcp,
2630
+ });
2631
+ const changed = existing !== finalConfig;
2632
+ if (!changed) {
2633
+ summary.unchanged += 1;
2634
+ return {
2635
+ finalConfig,
2636
+ omxManagesTui,
2637
+ repairedLegacyTeamRunTable: false,
2638
+ };
2639
+ }
2640
+ if (await ensureBackup(configPath, existsSync(configPath), backupContext, options)) {
2641
+ summary.backedUp += 1;
2642
+ }
2643
+ if (!options.dryRun) {
2644
+ await writeFile(configPath, finalConfig);
2645
+ if (notifyPlan.metadataPath && notifyPlan.metadata) {
2646
+ await mkdir(dirname(notifyPlan.metadataPath), { recursive: true });
2647
+ await writeFile(notifyPlan.metadataPath, JSON.stringify(notifyPlan.metadata, null, 2) + "\n");
2648
+ }
2649
+ }
2650
+ if (options.verbose &&
2651
+ modelOverride &&
2652
+ currentModel &&
2653
+ currentModel !== modelOverride) {
2654
+ console.log(` ${options.dryRun ? "would update" : "updated"} root model from ${currentModel} to ${modelOverride}`);
2655
+ }
2656
+ summary.updated += 1;
2657
+ if (options.verbose) {
2658
+ console.log(` ${options.dryRun ? "would update" : "updated"} config ${configPath}`);
2659
+ }
2660
+ return {
2661
+ finalConfig,
2662
+ omxManagesTui,
2663
+ repairedLegacyTeamRunTable: hadLegacyTeamRunTable && !hasLegacyOmxTeamRunTable(finalConfig),
2664
+ };
2665
+ }
2666
+ async function syncSharedMcpRegistryIntoConfig(configPath, sharedMcpRegistry, summary, backupContext, options) {
2667
+ if (sharedMcpRegistry.servers.length === 0) {
2668
+ return existsSync(configPath) ? await readFile(configPath, "utf-8") : "";
2669
+ }
2670
+ const existing = existsSync(configPath)
2671
+ ? await readFile(configPath, "utf-8")
2672
+ : "";
2673
+ const finalConfig = mergeSharedMcpRegistryBlock(existing, sharedMcpRegistry.servers, sharedMcpRegistry.sourcePath);
2674
+ if (existing === finalConfig) {
2675
+ summary.unchanged += 1;
2676
+ return finalConfig;
2677
+ }
2678
+ if (await ensureBackup(configPath, existsSync(configPath), backupContext, options)) {
2679
+ summary.backedUp += 1;
2680
+ }
2681
+ if (!options.dryRun) {
2682
+ await writeFile(configPath, finalConfig);
2683
+ }
2684
+ summary.updated += 1;
2685
+ if (options.verbose) {
2686
+ console.log(` ${options.dryRun ? "would sync" : "synced"} shared MCP registry servers into ${configPath}`);
2687
+ }
2688
+ return finalConfig;
2689
+ }
2690
+ function getClaudeCodeSettingsPath(homeDir = homedir()) {
2691
+ return join(homeDir, ".claude", "settings.json");
2692
+ }
2693
+ async function syncClaudeCodeMcpSettings(sharedMcpRegistry, summary, backupContext, options) {
2694
+ if (sharedMcpRegistry.servers.length === 0)
2695
+ return;
2696
+ const settingsPath = getClaudeCodeSettingsPath();
2697
+ const existing = existsSync(settingsPath)
2698
+ ? await readFile(settingsPath, "utf-8")
2699
+ : "";
2700
+ const syncPlan = planClaudeCodeMcpSettingsSync(existing, sharedMcpRegistry.servers);
2701
+ for (const warning of syncPlan.warnings) {
2702
+ console.log(` warning: ${warning}`);
2703
+ }
2704
+ if (syncPlan.warnings.length > 0) {
2705
+ summary.skipped += 1;
2706
+ return;
2707
+ }
2708
+ if (!syncPlan.content) {
2709
+ summary.unchanged += 1;
2710
+ if (options.verbose && syncPlan.unchanged.length > 0) {
2711
+ console.log(` shared MCP servers already present in Claude Code settings (${settingsPath})`);
2712
+ }
2713
+ return;
2714
+ }
2715
+ await syncManagedContent(syncPlan.content, settingsPath, summary, backupContext, options, `Claude Code MCP settings ${settingsPath} (+${syncPlan.added.join(", ")})`);
2716
+ }
2717
+ async function setupNotifyHook(pkgRoot, options) {
2718
+ const hookScript = join(pkgRoot, "dist", "scripts", "notify-hook.js");
2719
+ if (!existsSync(hookScript)) {
2720
+ if (options.verbose)
2721
+ console.log(" Notify hook script not found, skipping.");
2722
+ return;
2723
+ }
2724
+ // The notify hook is configured in config.toml via mergeConfig
2725
+ if (options.verbose)
2726
+ console.log(` Notify hook: ${hookScript}`);
2727
+ }
2728
+ async function verifyTeamCliApiInterop(pkgRoot) {
2729
+ const teamCliPath = join(pkgRoot, "dist", "cli", "team.js");
2730
+ if (!existsSync(teamCliPath)) {
2731
+ return { ok: false, message: `missing ${teamCliPath}` };
2732
+ }
2733
+ try {
2734
+ const content = await readFile(teamCliPath, "utf-8");
2735
+ const missing = REQUIRED_TEAM_CLI_API_MARKERS.filter((marker) => !content.includes(marker));
2736
+ if (missing.length > 0) {
2737
+ return {
2738
+ ok: false,
2739
+ message: `team CLI interop markers missing: ${missing.join(", ")}`,
2740
+ };
2741
+ }
2742
+ return { ok: true };
2743
+ }
2744
+ catch {
2745
+ return { ok: false, message: `cannot read ${teamCliPath}` };
2746
+ }
2747
+ }
2748
+ //# sourceMappingURL=setup.js.map