oh-my-copilot 5.5.0 → 5.6.2

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 (444) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +1 -0
  4. package/bridge/__pycache__/gyoshu_bridge.cpython-312.pyc +0 -0
  5. package/bridge/claude-md-coordinator.cjs +2 -2
  6. package/bridge/cli.cjs +6290 -3436
  7. package/bridge/mcp-server.cjs +637 -503
  8. package/bridge/runtime-cli.cjs +516 -213
  9. package/bridge/team-bridge.cjs +141 -135
  10. package/bridge/team-mcp.cjs +201 -129
  11. package/bridge/team.js +473 -237
  12. package/copilot/hooks.json +43 -0
  13. package/dist/__tests__/chain-enqueuer-registration.test.d.ts +11 -0
  14. package/dist/__tests__/chain-enqueuer-registration.test.d.ts.map +1 -0
  15. package/dist/__tests__/chain-enqueuer-registration.test.js +122 -0
  16. package/dist/__tests__/chain-enqueuer-registration.test.js.map +1 -0
  17. package/dist/__tests__/copilot-hooks-manifest.test.js +3 -1
  18. package/dist/__tests__/copilot-hooks-manifest.test.js.map +1 -1
  19. package/dist/__tests__/directory-context-injector.test.js +41 -1
  20. package/dist/__tests__/directory-context-injector.test.js.map +1 -1
  21. package/dist/__tests__/hook-bridge-main-module.test.d.ts +2 -0
  22. package/dist/__tests__/hook-bridge-main-module.test.d.ts.map +1 -0
  23. package/dist/__tests__/hook-bridge-main-module.test.js +48 -0
  24. package/dist/__tests__/hook-bridge-main-module.test.js.map +1 -0
  25. package/dist/__tests__/ralph-prd-stale.test.js +12 -1
  26. package/dist/__tests__/ralph-prd-stale.test.js.map +1 -1
  27. package/dist/__tests__/ralph-prd.test.js +56 -0
  28. package/dist/__tests__/ralph-prd.test.js.map +1 -1
  29. package/dist/__tests__/run-cjs-graceful-fallback.test.js +2 -0
  30. package/dist/__tests__/run-cjs-graceful-fallback.test.js.map +1 -1
  31. package/dist/__tests__/session-end-forwarder-fallback.test.d.ts +2 -0
  32. package/dist/__tests__/session-end-forwarder-fallback.test.d.ts.map +1 -0
  33. package/dist/__tests__/session-end-forwarder-fallback.test.js +138 -0
  34. package/dist/__tests__/session-end-forwarder-fallback.test.js.map +1 -0
  35. package/dist/cli/__tests__/autoresearch-setup-session.test.js +67 -3
  36. package/dist/cli/__tests__/autoresearch-setup-session.test.js.map +1 -1
  37. package/dist/cli/__tests__/launch.test.js +73 -11
  38. package/dist/cli/__tests__/launch.test.js.map +1 -1
  39. package/dist/cli/__tests__/plugin-dir-capture.test.js +45 -0
  40. package/dist/cli/__tests__/plugin-dir-capture.test.js.map +1 -1
  41. package/dist/cli/__tests__/ralph-afk.test.d.ts +2 -0
  42. package/dist/cli/__tests__/ralph-afk.test.d.ts.map +1 -0
  43. package/dist/cli/__tests__/ralph-afk.test.js +312 -0
  44. package/dist/cli/__tests__/ralph-afk.test.js.map +1 -0
  45. package/dist/cli/__tests__/team.test.js +170 -0
  46. package/dist/cli/__tests__/team.test.js.map +1 -1
  47. package/dist/cli/__tests__/tmux-utils.test.js +132 -16
  48. package/dist/cli/__tests__/tmux-utils.test.js.map +1 -1
  49. package/dist/cli/autoresearch-setup-session.d.ts.map +1 -1
  50. package/dist/cli/autoresearch-setup-session.js +29 -9
  51. package/dist/cli/autoresearch-setup-session.js.map +1 -1
  52. package/dist/cli/commands/__tests__/factory-init.test.d.ts +2 -0
  53. package/dist/cli/commands/__tests__/factory-init.test.d.ts.map +1 -0
  54. package/dist/cli/commands/__tests__/factory-init.test.js +90 -0
  55. package/dist/cli/commands/__tests__/factory-init.test.js.map +1 -0
  56. package/dist/cli/commands/__tests__/intake-headless-flag.test.d.ts +2 -0
  57. package/dist/cli/commands/__tests__/intake-headless-flag.test.d.ts.map +1 -0
  58. package/dist/cli/commands/__tests__/intake-headless-flag.test.js +30 -0
  59. package/dist/cli/commands/__tests__/intake-headless-flag.test.js.map +1 -0
  60. package/dist/cli/commands/__tests__/intake.test.d.ts +2 -0
  61. package/dist/cli/commands/__tests__/intake.test.d.ts.map +1 -0
  62. package/dist/cli/commands/__tests__/intake.test.js +257 -0
  63. package/dist/cli/commands/__tests__/intake.test.js.map +1 -0
  64. package/dist/cli/commands/factory.d.ts +61 -0
  65. package/dist/cli/commands/factory.d.ts.map +1 -0
  66. package/dist/cli/commands/factory.js +190 -0
  67. package/dist/cli/commands/factory.js.map +1 -0
  68. package/dist/cli/commands/intake.d.ts +94 -0
  69. package/dist/cli/commands/intake.d.ts.map +1 -0
  70. package/dist/cli/commands/intake.js +311 -0
  71. package/dist/cli/commands/intake.js.map +1 -0
  72. package/dist/cli/commands/ralph.d.ts +88 -0
  73. package/dist/cli/commands/ralph.d.ts.map +1 -0
  74. package/dist/cli/commands/ralph.js +456 -0
  75. package/dist/cli/commands/ralph.js.map +1 -0
  76. package/dist/cli/commands/team.d.ts.map +1 -1
  77. package/dist/cli/commands/team.js +25 -5
  78. package/dist/cli/commands/team.js.map +1 -1
  79. package/dist/cli/index.d.ts.map +1 -1
  80. package/dist/cli/index.js +7 -0
  81. package/dist/cli/index.js.map +1 -1
  82. package/dist/cli/launch.d.ts.map +1 -1
  83. package/dist/cli/launch.js +32 -7
  84. package/dist/cli/launch.js.map +1 -1
  85. package/dist/cli/team.d.ts.map +1 -1
  86. package/dist/cli/team.js +61 -7
  87. package/dist/cli/team.js.map +1 -1
  88. package/dist/cli/tmux-utils.d.ts +26 -0
  89. package/dist/cli/tmux-utils.d.ts.map +1 -1
  90. package/dist/cli/tmux-utils.js +61 -9
  91. package/dist/cli/tmux-utils.js.map +1 -1
  92. package/dist/config/__tests__/loader.test.js +138 -0
  93. package/dist/config/__tests__/loader.test.js.map +1 -1
  94. package/dist/config/loader.d.ts.map +1 -1
  95. package/dist/config/loader.js +17 -0
  96. package/dist/config/loader.js.map +1 -1
  97. package/dist/factory/__tests__/check-run.test.d.ts +2 -0
  98. package/dist/factory/__tests__/check-run.test.d.ts.map +1 -0
  99. package/dist/factory/__tests__/check-run.test.js +213 -0
  100. package/dist/factory/__tests__/check-run.test.js.map +1 -0
  101. package/dist/factory/__tests__/listener.test.d.ts +2 -0
  102. package/dist/factory/__tests__/listener.test.d.ts.map +1 -0
  103. package/dist/factory/__tests__/listener.test.js +312 -0
  104. package/dist/factory/__tests__/listener.test.js.map +1 -0
  105. package/dist/factory/__tests__/map-frontier.test.d.ts +2 -0
  106. package/dist/factory/__tests__/map-frontier.test.d.ts.map +1 -0
  107. package/dist/factory/__tests__/map-frontier.test.js +128 -0
  108. package/dist/factory/__tests__/map-frontier.test.js.map +1 -0
  109. package/dist/factory/__tests__/map-ingest.test.d.ts +2 -0
  110. package/dist/factory/__tests__/map-ingest.test.d.ts.map +1 -0
  111. package/dist/factory/__tests__/map-ingest.test.js +166 -0
  112. package/dist/factory/__tests__/map-ingest.test.js.map +1 -0
  113. package/dist/factory/__tests__/map-run.test.d.ts +2 -0
  114. package/dist/factory/__tests__/map-run.test.d.ts.map +1 -0
  115. package/dist/factory/__tests__/map-run.test.js +148 -0
  116. package/dist/factory/__tests__/map-run.test.js.map +1 -0
  117. package/dist/factory/__tests__/status.test.d.ts +2 -0
  118. package/dist/factory/__tests__/status.test.d.ts.map +1 -0
  119. package/dist/factory/__tests__/status.test.js +77 -0
  120. package/dist/factory/__tests__/status.test.js.map +1 -0
  121. package/dist/factory/listener.d.ts +98 -0
  122. package/dist/factory/listener.d.ts.map +1 -0
  123. package/dist/factory/listener.js +315 -0
  124. package/dist/factory/listener.js.map +1 -0
  125. package/dist/factory/map-frontier.d.ts +73 -0
  126. package/dist/factory/map-frontier.d.ts.map +1 -0
  127. package/dist/factory/map-frontier.js +147 -0
  128. package/dist/factory/map-frontier.js.map +1 -0
  129. package/dist/factory/map-ingest.d.ts +79 -0
  130. package/dist/factory/map-ingest.d.ts.map +1 -0
  131. package/dist/factory/map-ingest.js +232 -0
  132. package/dist/factory/map-ingest.js.map +1 -0
  133. package/dist/factory/map-run.d.ts +74 -0
  134. package/dist/factory/map-run.d.ts.map +1 -0
  135. package/dist/factory/map-run.js +229 -0
  136. package/dist/factory/map-run.js.map +1 -0
  137. package/dist/factory/status.d.ts +33 -0
  138. package/dist/factory/status.d.ts.map +1 -0
  139. package/dist/factory/status.js +93 -0
  140. package/dist/factory/status.js.map +1 -0
  141. package/dist/factory/watchdog.d.ts +46 -0
  142. package/dist/factory/watchdog.d.ts.map +1 -0
  143. package/dist/factory/watchdog.js +130 -0
  144. package/dist/factory/watchdog.js.map +1 -0
  145. package/dist/factory/watchdog.test.d.ts +2 -0
  146. package/dist/factory/watchdog.test.d.ts.map +1 -0
  147. package/dist/factory/watchdog.test.js +111 -0
  148. package/dist/factory/watchdog.test.js.map +1 -0
  149. package/dist/graph/runtime/native-contained-fs.js +1 -1
  150. package/dist/graph/runtime/native-contained-fs.js.map +1 -1
  151. package/dist/hooks/__tests__/compaction-concurrency.test.js +20 -20
  152. package/dist/hooks/__tests__/compaction-concurrency.test.js.map +1 -1
  153. package/dist/hooks/__tests__/workflow-drift-guard-script.test.js +27 -0
  154. package/dist/hooks/__tests__/workflow-drift-guard-script.test.js.map +1 -1
  155. package/dist/hooks/bridge.d.ts +8 -0
  156. package/dist/hooks/bridge.d.ts.map +1 -1
  157. package/dist/hooks/bridge.js +38 -9
  158. package/dist/hooks/bridge.js.map +1 -1
  159. package/dist/hooks/code-simplifier/__tests__/global-config-path.test.d.ts +2 -0
  160. package/dist/hooks/code-simplifier/__tests__/global-config-path.test.d.ts.map +1 -0
  161. package/dist/hooks/code-simplifier/__tests__/global-config-path.test.js +89 -0
  162. package/dist/hooks/code-simplifier/__tests__/global-config-path.test.js.map +1 -0
  163. package/dist/hooks/code-simplifier/index.d.ts +1 -1
  164. package/dist/hooks/code-simplifier/index.js +1 -1
  165. package/dist/hooks/code-simplifier/jev-shadow.d.ts +5 -4
  166. package/dist/hooks/code-simplifier/jev-shadow.d.ts.map +1 -1
  167. package/dist/hooks/code-simplifier/jev-shadow.js +9 -4
  168. package/dist/hooks/code-simplifier/jev-shadow.js.map +1 -1
  169. package/dist/hooks/directory-readme-injector/index.d.ts.map +1 -1
  170. package/dist/hooks/directory-readme-injector/index.js +11 -2
  171. package/dist/hooks/directory-readme-injector/index.js.map +1 -1
  172. package/dist/hooks/jev/__tests__/active-mode.test.d.ts +9 -0
  173. package/dist/hooks/jev/__tests__/active-mode.test.d.ts.map +1 -0
  174. package/dist/hooks/jev/__tests__/active-mode.test.js +252 -0
  175. package/dist/hooks/jev/__tests__/active-mode.test.js.map +1 -0
  176. package/dist/hooks/jev/points.d.ts +3 -1
  177. package/dist/hooks/jev/points.d.ts.map +1 -1
  178. package/dist/hooks/jev/points.js +1 -0
  179. package/dist/hooks/jev/points.js.map +1 -1
  180. package/dist/hooks/jev/resolver.d.ts.map +1 -1
  181. package/dist/hooks/jev/resolver.js +17 -1
  182. package/dist/hooks/jev/resolver.js.map +1 -1
  183. package/dist/hooks/keyword-detector/index.d.ts +2 -0
  184. package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
  185. package/dist/hooks/keyword-detector/index.js +3 -3
  186. package/dist/hooks/keyword-detector/index.js.map +1 -1
  187. package/dist/hooks/keyword-detector/jev-shadow.d.ts +6 -4
  188. package/dist/hooks/keyword-detector/jev-shadow.d.ts.map +1 -1
  189. package/dist/hooks/keyword-detector/jev-shadow.js +18 -4
  190. package/dist/hooks/keyword-detector/jev-shadow.js.map +1 -1
  191. package/dist/hooks/learner/jev-shadow.d.ts +4 -3
  192. package/dist/hooks/learner/jev-shadow.d.ts.map +1 -1
  193. package/dist/hooks/learner/jev-shadow.js +14 -3
  194. package/dist/hooks/learner/jev-shadow.js.map +1 -1
  195. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  196. package/dist/hooks/persistent-mode/index.js +22 -6
  197. package/dist/hooks/persistent-mode/index.js.map +1 -1
  198. package/dist/hooks/persistent-mode/jev-shadow.d.ts +7 -5
  199. package/dist/hooks/persistent-mode/jev-shadow.d.ts.map +1 -1
  200. package/dist/hooks/persistent-mode/jev-shadow.js +28 -6
  201. package/dist/hooks/persistent-mode/jev-shadow.js.map +1 -1
  202. package/dist/hooks/preemptive-compaction/__tests__/jev-shadow.test.js +3 -3
  203. package/dist/hooks/preemptive-compaction/__tests__/jev-shadow.test.js.map +1 -1
  204. package/dist/hooks/preemptive-compaction/index.d.ts +5 -1
  205. package/dist/hooks/preemptive-compaction/index.d.ts.map +1 -1
  206. package/dist/hooks/preemptive-compaction/index.js +13 -8
  207. package/dist/hooks/preemptive-compaction/index.js.map +1 -1
  208. package/dist/hooks/preemptive-compaction/jev-shadow.d.ts +6 -5
  209. package/dist/hooks/preemptive-compaction/jev-shadow.d.ts.map +1 -1
  210. package/dist/hooks/preemptive-compaction/jev-shadow.js +18 -5
  211. package/dist/hooks/preemptive-compaction/jev-shadow.js.map +1 -1
  212. package/dist/hooks/ralph/__tests__/feedback-baseline.test.d.ts +2 -0
  213. package/dist/hooks/ralph/__tests__/feedback-baseline.test.d.ts.map +1 -0
  214. package/dist/hooks/ralph/__tests__/feedback-baseline.test.js +250 -0
  215. package/dist/hooks/ralph/__tests__/feedback-baseline.test.js.map +1 -0
  216. package/dist/hooks/ralph/feedback-baseline.d.ts +58 -0
  217. package/dist/hooks/ralph/feedback-baseline.d.ts.map +1 -0
  218. package/dist/hooks/ralph/feedback-baseline.js +141 -0
  219. package/dist/hooks/ralph/feedback-baseline.js.map +1 -0
  220. package/dist/hooks/ralph/index.d.ts +1 -1
  221. package/dist/hooks/ralph/index.d.ts.map +1 -1
  222. package/dist/hooks/ralph/index.js +1 -1
  223. package/dist/hooks/ralph/index.js.map +1 -1
  224. package/dist/hooks/ralph/jev-shadow.d.ts +4 -3
  225. package/dist/hooks/ralph/jev-shadow.d.ts.map +1 -1
  226. package/dist/hooks/ralph/jev-shadow.js +14 -4
  227. package/dist/hooks/ralph/jev-shadow.js.map +1 -1
  228. package/dist/hooks/ralph/loop.d.ts +7 -0
  229. package/dist/hooks/ralph/loop.d.ts.map +1 -1
  230. package/dist/hooks/ralph/loop.js +21 -0
  231. package/dist/hooks/ralph/loop.js.map +1 -1
  232. package/dist/hooks/ralph/prd.d.ts +17 -0
  233. package/dist/hooks/ralph/prd.d.ts.map +1 -1
  234. package/dist/hooks/ralph/prd.js +26 -1
  235. package/dist/hooks/ralph/prd.js.map +1 -1
  236. package/dist/hooks/registry/__tests__/registry.test.js +12 -4
  237. package/dist/hooks/registry/__tests__/registry.test.js.map +1 -1
  238. package/dist/hooks/rules-injector/matcher.d.ts.map +1 -1
  239. package/dist/hooks/rules-injector/matcher.js +35 -7
  240. package/dist/hooks/rules-injector/matcher.js.map +1 -1
  241. package/dist/hooks/rules-injector/matcher.test.d.ts +2 -0
  242. package/dist/hooks/rules-injector/matcher.test.d.ts.map +1 -0
  243. package/dist/hooks/rules-injector/matcher.test.js +58 -0
  244. package/dist/hooks/rules-injector/matcher.test.js.map +1 -0
  245. package/dist/hooks/session-end/__tests__/action-runner.test.js +51 -0
  246. package/dist/hooks/session-end/__tests__/action-runner.test.js.map +1 -1
  247. package/dist/hooks/session-end/__tests__/chain-enqueuer.test.d.ts +2 -0
  248. package/dist/hooks/session-end/__tests__/chain-enqueuer.test.d.ts.map +1 -0
  249. package/dist/hooks/session-end/__tests__/chain-enqueuer.test.js +274 -0
  250. package/dist/hooks/session-end/__tests__/chain-enqueuer.test.js.map +1 -0
  251. package/dist/hooks/session-end/__tests__/check-evidence.test.d.ts +2 -0
  252. package/dist/hooks/session-end/__tests__/check-evidence.test.d.ts.map +1 -0
  253. package/dist/hooks/session-end/__tests__/check-evidence.test.js +171 -0
  254. package/dist/hooks/session-end/__tests__/check-evidence.test.js.map +1 -0
  255. package/dist/hooks/session-end/__tests__/cleanup-manifest.test.js +21 -0
  256. package/dist/hooks/session-end/__tests__/cleanup-manifest.test.js.map +1 -1
  257. package/dist/hooks/session-end/__tests__/foreground-bootstrap.test.d.ts +10 -0
  258. package/dist/hooks/session-end/__tests__/foreground-bootstrap.test.d.ts.map +1 -0
  259. package/dist/hooks/session-end/__tests__/foreground-bootstrap.test.js +123 -0
  260. package/dist/hooks/session-end/__tests__/foreground-bootstrap.test.js.map +1 -0
  261. package/dist/hooks/session-end/__tests__/guardrails.test.d.ts +2 -0
  262. package/dist/hooks/session-end/__tests__/guardrails.test.d.ts.map +1 -0
  263. package/dist/hooks/session-end/__tests__/guardrails.test.js +184 -0
  264. package/dist/hooks/session-end/__tests__/guardrails.test.js.map +1 -0
  265. package/dist/hooks/session-end/__tests__/process-session-end-worker-spawn.test.d.ts +9 -0
  266. package/dist/hooks/session-end/__tests__/process-session-end-worker-spawn.test.d.ts.map +1 -0
  267. package/dist/hooks/session-end/__tests__/process-session-end-worker-spawn.test.js +96 -0
  268. package/dist/hooks/session-end/__tests__/process-session-end-worker-spawn.test.js.map +1 -0
  269. package/dist/hooks/session-end/__tests__/routing.test.d.ts +2 -0
  270. package/dist/hooks/session-end/__tests__/routing.test.d.ts.map +1 -0
  271. package/dist/hooks/session-end/__tests__/routing.test.js +135 -0
  272. package/dist/hooks/session-end/__tests__/routing.test.js.map +1 -0
  273. package/dist/hooks/session-end/__tests__/spawn-next.test.d.ts +2 -0
  274. package/dist/hooks/session-end/__tests__/spawn-next.test.d.ts.map +1 -0
  275. package/dist/hooks/session-end/__tests__/spawn-next.test.js +501 -0
  276. package/dist/hooks/session-end/__tests__/spawn-next.test.js.map +1 -0
  277. package/dist/hooks/session-end/__tests__/worker.test.js +102 -0
  278. package/dist/hooks/session-end/__tests__/worker.test.js.map +1 -1
  279. package/dist/hooks/session-end/action-runner.d.ts.map +1 -1
  280. package/dist/hooks/session-end/action-runner.js +24 -2
  281. package/dist/hooks/session-end/action-runner.js.map +1 -1
  282. package/dist/hooks/session-end/chain-enqueuer.d.ts +45 -0
  283. package/dist/hooks/session-end/chain-enqueuer.d.ts.map +1 -0
  284. package/dist/hooks/session-end/chain-enqueuer.js +191 -0
  285. package/dist/hooks/session-end/chain-enqueuer.js.map +1 -0
  286. package/dist/hooks/session-end/check-evidence.d.ts +29 -0
  287. package/dist/hooks/session-end/check-evidence.d.ts.map +1 -0
  288. package/dist/hooks/session-end/check-evidence.js +52 -0
  289. package/dist/hooks/session-end/check-evidence.js.map +1 -0
  290. package/dist/hooks/session-end/cleanup-manifest.d.ts +1 -1
  291. package/dist/hooks/session-end/cleanup-manifest.d.ts.map +1 -1
  292. package/dist/hooks/session-end/cleanup-manifest.js +22 -2
  293. package/dist/hooks/session-end/cleanup-manifest.js.map +1 -1
  294. package/dist/hooks/session-end/foreground-bootstrap.d.ts.map +1 -1
  295. package/dist/hooks/session-end/foreground-bootstrap.js +30 -4
  296. package/dist/hooks/session-end/foreground-bootstrap.js.map +1 -1
  297. package/dist/hooks/session-end/guardrails.d.ts +67 -0
  298. package/dist/hooks/session-end/guardrails.d.ts.map +1 -0
  299. package/dist/hooks/session-end/guardrails.js +149 -0
  300. package/dist/hooks/session-end/guardrails.js.map +1 -0
  301. package/dist/hooks/session-end/index.d.ts.map +1 -1
  302. package/dist/hooks/session-end/index.js +14 -6
  303. package/dist/hooks/session-end/index.js.map +1 -1
  304. package/dist/hooks/session-end/routing.d.ts +53 -0
  305. package/dist/hooks/session-end/routing.d.ts.map +1 -0
  306. package/dist/hooks/session-end/routing.js +75 -0
  307. package/dist/hooks/session-end/routing.js.map +1 -0
  308. package/dist/hooks/session-end/spawn-next.d.ts +117 -0
  309. package/dist/hooks/session-end/spawn-next.d.ts.map +1 -0
  310. package/dist/hooks/session-end/spawn-next.js +292 -0
  311. package/dist/hooks/session-end/spawn-next.js.map +1 -0
  312. package/dist/hooks/session-end/worker.d.ts.map +1 -1
  313. package/dist/hooks/session-end/worker.js +45 -5
  314. package/dist/hooks/session-end/worker.js.map +1 -1
  315. package/dist/hooks/task-size-detector/jev-shadow.d.ts +2 -1
  316. package/dist/hooks/task-size-detector/jev-shadow.d.ts.map +1 -1
  317. package/dist/hooks/task-size-detector/jev-shadow.js +19 -1
  318. package/dist/hooks/task-size-detector/jev-shadow.js.map +1 -1
  319. package/dist/installer/__tests__/hook-command-portability.test.js +57 -1
  320. package/dist/installer/__tests__/hook-command-portability.test.js.map +1 -1
  321. package/dist/installer/__tests__/mcp-registry.test.js +98 -0
  322. package/dist/installer/__tests__/mcp-registry.test.js.map +1 -1
  323. package/dist/installer/hooks.d.ts +7 -0
  324. package/dist/installer/hooks.d.ts.map +1 -1
  325. package/dist/installer/hooks.js +15 -0
  326. package/dist/installer/hooks.js.map +1 -1
  327. package/dist/installer/index.d.ts +12 -0
  328. package/dist/installer/index.d.ts.map +1 -1
  329. package/dist/installer/index.js +3 -1
  330. package/dist/installer/index.js.map +1 -1
  331. package/dist/installer/mcp-registry.d.ts.map +1 -1
  332. package/dist/installer/mcp-registry.js +56 -6
  333. package/dist/installer/mcp-registry.js.map +1 -1
  334. package/dist/lib/__tests__/host-load-gate.test.d.ts +2 -0
  335. package/dist/lib/__tests__/host-load-gate.test.d.ts.map +1 -0
  336. package/dist/lib/__tests__/host-load-gate.test.js +377 -0
  337. package/dist/lib/__tests__/host-load-gate.test.js.map +1 -0
  338. package/dist/lib/__tests__/runs-ledger.test.d.ts +2 -0
  339. package/dist/lib/__tests__/runs-ledger.test.d.ts.map +1 -0
  340. package/dist/lib/__tests__/runs-ledger.test.js +99 -0
  341. package/dist/lib/__tests__/runs-ledger.test.js.map +1 -0
  342. package/dist/lib/atomic-write.d.ts +16 -0
  343. package/dist/lib/atomic-write.d.ts.map +1 -1
  344. package/dist/lib/atomic-write.js +27 -4
  345. package/dist/lib/atomic-write.js.map +1 -1
  346. package/dist/lib/host-load-gate.d.ts +110 -0
  347. package/dist/lib/host-load-gate.d.ts.map +1 -0
  348. package/dist/lib/host-load-gate.js +228 -0
  349. package/dist/lib/host-load-gate.js.map +1 -0
  350. package/dist/lib/mode-state-io.d.ts.map +1 -1
  351. package/dist/lib/mode-state-io.js +55 -18
  352. package/dist/lib/mode-state-io.js.map +1 -1
  353. package/dist/lib/runs-ledger.d.ts +45 -0
  354. package/dist/lib/runs-ledger.d.ts.map +1 -0
  355. package/dist/lib/runs-ledger.js +141 -0
  356. package/dist/lib/runs-ledger.js.map +1 -0
  357. package/dist/platform/executable-resolution.d.ts +13 -0
  358. package/dist/platform/executable-resolution.d.ts.map +1 -1
  359. package/dist/platform/executable-resolution.js +16 -0
  360. package/dist/platform/executable-resolution.js.map +1 -1
  361. package/dist/shared/types.d.ts +3 -0
  362. package/dist/shared/types.d.ts.map +1 -1
  363. package/dist/team/__tests__/model-contract.test.js +63 -1
  364. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  365. package/dist/team/__tests__/stage-router.test.js +22 -0
  366. package/dist/team/__tests__/stage-router.test.js.map +1 -1
  367. package/dist/team/__tests__/team-owner-epoch.test.js +33 -0
  368. package/dist/team/__tests__/team-owner-epoch.test.js.map +1 -1
  369. package/dist/team/__tests__/tmux-session.create-team.test.js +60 -2
  370. package/dist/team/__tests__/tmux-session.create-team.test.js.map +1 -1
  371. package/dist/team/__tests__/tmux-session.psmux.test.js +12 -0
  372. package/dist/team/__tests__/tmux-session.psmux.test.js.map +1 -1
  373. package/dist/team/__tests__/tmux-session.test.js +230 -7
  374. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  375. package/dist/team/__tests__/worker-launch-ack.test.js +62 -0
  376. package/dist/team/__tests__/worker-launch-ack.test.js.map +1 -1
  377. package/dist/team/model-contract.d.ts +3 -2
  378. package/dist/team/model-contract.d.ts.map +1 -1
  379. package/dist/team/model-contract.js +35 -10
  380. package/dist/team/model-contract.js.map +1 -1
  381. package/dist/team/runtime-v2.d.ts +13 -0
  382. package/dist/team/runtime-v2.d.ts.map +1 -1
  383. package/dist/team/runtime-v2.js +112 -7
  384. package/dist/team/runtime-v2.js.map +1 -1
  385. package/dist/team/scaling.d.ts.map +1 -1
  386. package/dist/team/scaling.js +4 -1
  387. package/dist/team/scaling.js.map +1 -1
  388. package/dist/team/stage-router.d.ts.map +1 -1
  389. package/dist/team/stage-router.js +3 -1
  390. package/dist/team/stage-router.js.map +1 -1
  391. package/dist/team/team-owner-epoch.d.ts.map +1 -1
  392. package/dist/team/team-owner-epoch.js +4 -7
  393. package/dist/team/team-owner-epoch.js.map +1 -1
  394. package/dist/team/tmux-session.d.ts +8 -1
  395. package/dist/team/tmux-session.d.ts.map +1 -1
  396. package/dist/team/tmux-session.js +71 -19
  397. package/dist/team/tmux-session.js.map +1 -1
  398. package/dist/team/worker-launch-ack.d.ts +1 -1
  399. package/dist/team/worker-launch-ack.d.ts.map +1 -1
  400. package/dist/team/worker-launch-ack.js +28 -1
  401. package/dist/team/worker-launch-ack.js.map +1 -1
  402. package/dist/tools/lsp/__tests__/client-handle-data.test.js +83 -0
  403. package/dist/tools/lsp/__tests__/client-handle-data.test.js.map +1 -1
  404. package/dist/tools/lsp/client.d.ts.map +1 -1
  405. package/dist/tools/lsp/client.js +41 -11
  406. package/dist/tools/lsp/client.js.map +1 -1
  407. package/docs/CLAUDE.md +1 -1
  408. package/docs/HOOKS.md +235 -0
  409. package/docs/MIGRATION.md +132 -0
  410. package/docs/REFERENCE.md +26 -1
  411. package/docs/adr/03672-env-activated-active-mode.md +18 -1
  412. package/docs/design/FACTORY-FINAL-DESIGN.md +114 -0
  413. package/docs/design/P2-RUN-LEDGER-AND-INTAKE-PLAN.md +83 -0
  414. package/docs/factory/t6-acceptance/acceptance-comment.md +36 -0
  415. package/hooks/hooks.json +22 -1
  416. package/package.json +6 -2
  417. package/plugin.json +1 -1
  418. package/scripts/build-contained-fs.mjs +24 -2
  419. package/scripts/ci/check-multirepo-paths.mjs +3 -0
  420. package/scripts/code-simplifier.mjs +24 -2
  421. package/scripts/dev/repro-state-lock.mjs +67 -0
  422. package/scripts/git-guardrails.mjs +581 -0
  423. package/scripts/keyword-detector.mjs +21 -4
  424. package/scripts/lib/atomic-write.mjs +31 -8
  425. package/scripts/lib/jev-shadow.mjs +68 -29
  426. package/scripts/lib/run-reaper.mjs +114 -0
  427. package/scripts/lib/state-lock.mjs +22 -13
  428. package/scripts/post-tool-verifier.mjs +8 -2
  429. package/scripts/postinstall-contained-fs.mjs +56 -0
  430. package/scripts/pre-tool-enforcer.mjs +25 -8
  431. package/scripts/run.cjs +18 -0
  432. package/scripts/runs-reconciler.mjs +103 -0
  433. package/scripts/stale-run-reporter.mjs +73 -0
  434. package/scripts/workflow-drift-guard.mjs +6 -1
  435. package/skills/autopilot/SKILL.md +10 -2
  436. package/skills/harbor/SKILL.md +8 -0
  437. package/skills/omc-setup/phases/04-welcome.md +1 -1
  438. package/skills/ralph/SKILL.md +32 -15
  439. package/skills/refit/SKILL.md +8 -0
  440. package/skills/team/SKILL.md +2 -0
  441. package/templates/hooks/code-simplifier.mjs +24 -2
  442. package/templates/hooks/lib/atomic-write.mjs +31 -8
  443. package/templates/hooks/session-end.mjs +99 -0
  444. package/templates/hooks/workflow-drift-guard.mjs +6 -1
@@ -0,0 +1,292 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { randomUUID } from 'crypto';
4
+ import { spawn } from 'child_process';
5
+ import { decideNextStage, VERIFY_COMMAND_PATTERN, MAX_VERIFY_COMMAND_LENGTH, MAX_VERIFY_COMMANDS } from './routing.js';
6
+ import { getOmcRoot, validateSessionId } from '../../lib/worktree-paths.js';
7
+ import { buildHostBinarySpawn } from '../../cli/tmux-utils.js';
8
+ import { getHostCliBinary, getHostCliType } from '../../utils/host-detection.js';
9
+ /**
10
+ * AFK allowlist for factory-spawned sessions: gh read/comment, file read/write,
11
+ * and github.com-only WebFetch. Everything else is denied in -p mode and must
12
+ * fall back to HITL (the session's issue-comment contract), never silent failure.
13
+ */
14
+ export const AFK_ALLOWED_TOOLS = [
15
+ 'Bash(gh issue view:*)',
16
+ 'Bash(gh issue comment:*)',
17
+ 'Bash(gh issue edit:*)',
18
+ 'Bash(gh pr view:*)',
19
+ 'Bash(gh pr list:*)',
20
+ 'Bash(gh label list:*)',
21
+ 'Read',
22
+ 'Glob',
23
+ 'Grep',
24
+ 'Write',
25
+ 'Edit',
26
+ 'WebFetch(domain:github.com)',
27
+ ].join(',');
28
+ export const AFK_SPAWN_FLAGS = [
29
+ '--permission-mode', 'acceptEdits',
30
+ '--allowedTools', AFK_ALLOWED_TOOLS,
31
+ // Isolation: AFK links run with project+local settings only — user-level
32
+ // hooks/settings must never fire in a headless chain link.
33
+ '--setting-sources', 'project,local',
34
+ ];
35
+ /**
36
+ * Copilot CLI translation of AFK_SPAWN_FLAGS: the same gh/file-write/
37
+ * github.com-WebFetch surface as `--allow-tool` / `--allow-url` rules
38
+ * (Copilot's reads need no rule), with `--no-ask-user` so a headless link never
39
+ * blocks on a question. Copilot has no `--setting-sources` equivalent, so the
40
+ * user-level settings isolation of a Claude link does not carry over.
41
+ */
42
+ export const COPILOT_AFK_SPAWN_FLAGS = [
43
+ '--no-ask-user',
44
+ '--allow-tool=shell(gh issue view)',
45
+ '--allow-tool=shell(gh issue comment)',
46
+ '--allow-tool=shell(gh issue edit)',
47
+ '--allow-tool=shell(gh pr view)',
48
+ '--allow-tool=shell(gh pr list)',
49
+ '--allow-tool=shell(gh label list)',
50
+ '--allow-tool=write',
51
+ '--allow-url=github.com',
52
+ // Deny beats allow (even --allow-all-tools). A relative write(path) matches
53
+ // by trailing path components, so these cover the names in any directory:
54
+ // no git plumbing edits, and no package.json rewrite that would turn an
55
+ // allowed `npm test`/`npm run x` verify rule into arbitrary shell.
56
+ '--deny-tool=write(.git)',
57
+ '--deny-tool=write(package.json)',
58
+ '--deny-tool=shell(git push)',
59
+ ];
60
+ /**
61
+ * Interpreters whose `--allow-tool=shell(<name> -<flag>)` rule would admit
62
+ * inline code (`node -e`, `python -c`, `bash -c`, `pwsh -Command`, ...).
63
+ */
64
+ const COPILOT_INTERPRETERS = new Set([
65
+ 'node', 'python', 'python3', 'py', 'bash', 'sh', 'zsh', 'npx', 'pnpx', 'bunx', 'bun', 'deno',
66
+ 'pwsh', 'powershell', 'cmd', 'ruby', 'perl', 'env', 'uv', 'uvx',
67
+ ]);
68
+ /**
69
+ * Copilot matches a shell rule on the command stem, so a single-token rule
70
+ * (`shell(node)`) admits that program with any arguments. A Copilot verify
71
+ * rule must therefore name a subcommand or script, and an interpreter's second
72
+ * token must not be a flag. `%` is refused on win32 because the rule rides
73
+ * cmd.exe argv when copilot is a .cmd shim.
74
+ */
75
+ export function isCopilotVerifyCommandAllowed(command) {
76
+ const tokens = command.trim().split(/\s+/);
77
+ if (tokens.length < 2)
78
+ return false;
79
+ if (COPILOT_INTERPRETERS.has(tokens[0].toLowerCase()) && tokens[1].startsWith('-'))
80
+ return false;
81
+ return !(process.platform === 'win32' && command.includes('%'));
82
+ }
83
+ /** Host CLI binary that runs factory links: `copilot` on a Copilot host, `claude` under Claude Code. */
84
+ export function factoryLinkCommand() {
85
+ return getHostCliBinary();
86
+ }
87
+ /**
88
+ * Args (command excluded) for one factory chain link: intent prompt + AFK
89
+ * permission profile. A stage's declared `verify` commands extend the profile
90
+ * with exactly those `Bash(...)` entries — the argv is a trust boundary, so
91
+ * they are re-checked against the routing pattern here rather than trusted from
92
+ * whatever route table produced the directive.
93
+ *
94
+ * On a Copilot host the profile is COPILOT_AFK_SPAWN_FLAGS plus one
95
+ * `--allow-tool=shell(<command>)` per extra command. Copilot cannot pin a
96
+ * session id at launch, so `sessionId` is not passed to it.
97
+ */
98
+ export function factoryLinkArgv(prompt, sessionId, verifyCommands = [], fixedBashCommands = []) {
99
+ const isValid = (command) => command.length <= MAX_VERIFY_COMMAND_LENGTH && VERIFY_COMMAND_PATTERN.test(command);
100
+ if (getHostCliType() === 'copilot') {
101
+ const isCopilotValid = (command) => isValid(command) && isCopilotVerifyCommandAllowed(command);
102
+ const extra = [
103
+ ...fixedBashCommands.filter(isCopilotValid),
104
+ ...verifyCommands.filter(isCopilotValid).slice(0, MAX_VERIFY_COMMANDS),
105
+ ].map((command) => `--allow-tool=shell(${command})`);
106
+ return ['-p', prompt, ...COPILOT_AFK_SPAWN_FLAGS, ...extra];
107
+ }
108
+ if (verifyCommands.length === 0 && fixedBashCommands.length === 0) {
109
+ return ['-p', prompt, '--session-id', sessionId, ...AFK_SPAWN_FLAGS];
110
+ }
111
+ // fixedBashCommands are caller-owned constants (e.g. ralph's read-only git
112
+ // set); only the user/route-declared verify list counts against the cap.
113
+ const allowedTools = [
114
+ AFK_ALLOWED_TOOLS,
115
+ ...fixedBashCommands.filter(isValid).map((command) => `Bash(${command})`),
116
+ ...verifyCommands
117
+ .filter(isValid)
118
+ .slice(0, MAX_VERIFY_COMMANDS)
119
+ .map((command) => `Bash(${command})`),
120
+ ].join(',');
121
+ const flags = [...AFK_SPAWN_FLAGS];
122
+ flags[flags.indexOf('--allowedTools') + 1] = allowedTools;
123
+ return ['-p', prompt, '--session-id', sessionId, ...flags];
124
+ }
125
+ const REPO_PATTERN = /^[\w.-]+\/[\w.-]+$/;
126
+ /** Shared label charset (stage/skill/labels): safe for paths and argv. */
127
+ export const LABEL_PATTERN = /^[\w.-]+$/;
128
+ /**
129
+ * The chain rides a detached manifest job: every field that lands in a
130
+ * spawned argv or a filesystem path is validated here. An invalid chain is a
131
+ * hard reject (manifest failure), not a partial spawn.
132
+ */
133
+ export function validateChainFields(chain) {
134
+ validateSessionId(chain.sessionId);
135
+ const tracker = chain.tracker;
136
+ if (tracker) {
137
+ if (!REPO_PATTERN.test(tracker.repo))
138
+ throw new Error(`invalid tracker repo: ${tracker.repo}`);
139
+ if (!LABEL_PATTERN.test(tracker.nextLabel) || !LABEL_PATTERN.test(tracker.failedLabel)) {
140
+ throw new Error(`invalid tracker label: ${tracker.nextLabel}/${tracker.failedLabel}`);
141
+ }
142
+ }
143
+ if (chain.visits) {
144
+ for (const [stage, count] of Object.entries(chain.visits)) {
145
+ if (!LABEL_PATTERN.test(stage) || !Number.isInteger(count) || count < 0 || count > 99) {
146
+ throw new Error(`invalid visits entry: ${stage}=${count}`);
147
+ }
148
+ }
149
+ }
150
+ }
151
+ export function spawnNextAlertComment(chain) {
152
+ return `链已停住:会话结束状态 ${chain.outcome}:${chain.reason} 触发下一环启动失败,需人工修复(v1 无自动重试)。`;
153
+ }
154
+ export function planSpawnNext(chain, omcRoot) {
155
+ validateChainFields(chain);
156
+ const directive = decideNextStage(chain.outcome, chain.reason, chain.routeTable);
157
+ if (!directive)
158
+ return null;
159
+ const handoffPath = path.join(omcRoot, 'handoffs', `${chain.sessionId}-${directive.stage}.json`);
160
+ const trackerCommands = chain.tracker
161
+ ? [
162
+ ['gh', 'issue', 'edit', String(chain.tracker.issue), '--repo', chain.tracker.repo, '--add-label', chain.tracker.nextLabel],
163
+ ['gh', 'issue', 'comment', String(chain.tracker.issue), '--repo', chain.tracker.repo, '--body', `链已推进到 ${directive.stage},交接上下文:${path.basename(handoffPath)}`],
164
+ ]
165
+ : [];
166
+ const nextSessionId = randomUUID();
167
+ return {
168
+ directive,
169
+ handoffPath,
170
+ spawnArgv: [factoryLinkCommand(), ...factoryLinkArgv(`/${directive.skill} 继续 ${directive.stage} 环;交接上下文:${path.basename(handoffPath)}`, nextSessionId, directive.verify)],
171
+ nextSessionId,
172
+ trackerCommands,
173
+ };
174
+ }
175
+ /** IO orchestration only: the routing decision comes from the T1 pure function via planSpawnNext. */
176
+ export function executeSpawnNext(chain, directory, spawnFn = defaultSpawnFn) {
177
+ const omcRoot = getOmcRoot(directory);
178
+ const plan = planSpawnNext(chain, omcRoot);
179
+ if (!plan)
180
+ return;
181
+ fs.mkdirSync(path.dirname(plan.handoffPath), { recursive: true });
182
+ fs.writeFileSync(plan.handoffPath, JSON.stringify({
183
+ sessionId: chain.sessionId,
184
+ from: { outcome: chain.outcome, reason: chain.reason },
185
+ next: plan.directive,
186
+ context: chain.handoffContext ?? '',
187
+ }, null, 2), 'utf8');
188
+ const factoryDir = path.join(omcRoot, 'state', 'factory');
189
+ const ledgerPath = path.join(factoryDir, `chain-${plan.nextSessionId}.json`);
190
+ try {
191
+ // The next link's ledger must exist before it ends its session, so the
192
+ // SessionEnd enqueuer finds it; written under the same failure alerts.
193
+ fs.mkdirSync(factoryDir, { recursive: true });
194
+ fs.writeFileSync(ledgerPath, JSON.stringify({
195
+ intentId: chain.intentId ?? `chain-${chain.sessionId}`,
196
+ stage: plan.directive.stage,
197
+ routeTable: chain.routeTable,
198
+ tracker: chain.tracker,
199
+ visits: { ...(chain.visits ?? {}), [plan.directive.stage]: (chain.visits?.[plan.directive.stage] ?? 0) + 1 },
200
+ }, null, 2), 'utf8');
201
+ spawnFn(plan.spawnArgv[0], plan.spawnArgv.slice(1), { cwd: directory });
202
+ }
203
+ catch (error) {
204
+ // Don't leave a dead ledger pointing at a session that never started.
205
+ try {
206
+ fs.unlinkSync(ledgerPath);
207
+ }
208
+ catch { /* never written */ }
209
+ if (chain.tracker) {
210
+ spawnFn('gh', ['issue', 'comment', String(chain.tracker.issue), '--repo', chain.tracker.repo, '--body', spawnNextAlertComment(chain)]);
211
+ spawnFn('gh', ['issue', 'edit', String(chain.tracker.issue), '--repo', chain.tracker.repo, '--add-label', chain.tracker.failedLabel]);
212
+ }
213
+ throw error;
214
+ }
215
+ for (const argv of plan.trackerCommands) {
216
+ spawnFn(argv[0], argv.slice(1));
217
+ }
218
+ }
219
+ /**
220
+ * `claude`, `copilot` and `gh` may be .cmd shims on Windows, which
221
+ * CreateProcess cannot exec directly; those route through cmd.exe, native
222
+ * .exe installs spawn directly. The -p prompt and the gh --body go through
223
+ * stdin on Windows: cmd.exe's ANSI codepage mangles non-ASCII argv (dogfood:
224
+ * Chinese intent prompts and issue bodies mojibake'd), while the stdin pipe
225
+ * stays UTF-8 end to end. It also keeps free text away from cmd.exe, whose
226
+ * quote parity disagrees with CRT argv parsing (`\"` splits argv) and which
227
+ * expands %VAR% inside quotes. The remaining fixed argv is quoted by
228
+ * quoteForCmd (CRT-correct, rejects `%` and CR/LF).
229
+ *
230
+ * The .cmd-shim constraint is a Windows PLATFORM fact, not a shell fact: gate
231
+ * on process.platform, never on shell detection. Gating on the shell made
232
+ * Git Bash (MSYSTEM set) skip the cmd.exe route and spawn the .cmd shim
233
+ * directly, which CreateProcess cannot exec — the child died instantly and
234
+ * silently (stdio ignored), so `omg ralph afk` under Git Bash launched
235
+ * nothing. Factory chain links escaped this only by accident: the detached
236
+ * worker's env is an allowlist that drops MSYSTEM. The long-running factory
237
+ * listener (src/factory/listener.ts), which spawns links from its own
238
+ * inherited environment, had the same broken route under Git Bash.
239
+ *
240
+ * detached:true is win32-hostile here (dogfood bisect: cmd.exe children
241
+ * spawned detached exit 1 before writing a transcript), so it is only
242
+ * applied off-win32. Orphaning still holds: Windows children survive
243
+ * parent exit without the detached flag.
244
+ */
245
+ export function defaultSpawnFn(command, args, ctx) {
246
+ const baseOpts = process.platform === 'win32'
247
+ ? { windowsHide: true, cwd: ctx?.cwd }
248
+ : { detached: true, windowsHide: true, cwd: ctx?.cwd };
249
+ // A launcher-level COPILOT_ALLOW_ALL would override the AFK allowlist of
250
+ // every copilot link, so the child always gets the documented off value.
251
+ if (command === 'copilot')
252
+ baseOpts.env = { ...process.env, COPILOT_ALLOW_ALL: 'false' };
253
+ if (process.platform === 'win32' && (command === 'claude' || command === 'copilot' || command === 'gh')) {
254
+ // Free text never rides argv: the -p prompt goes to stdin (claude keeps
255
+ // `-p`; copilot reads a piped prompt without it, verified on 1.0.91) and a
256
+ // gh --body becomes `--body-file -`. A native .exe is then spawned
257
+ // directly; only a .cmd shim goes through cmd.exe (buildHostBinarySpawn).
258
+ let argv = args;
259
+ let stdinText;
260
+ if (command === 'gh') {
261
+ const bodyIdx = args.indexOf('--body');
262
+ if (bodyIdx !== -1 && bodyIdx + 1 < args.length) {
263
+ stdinText = args[bodyIdx + 1];
264
+ argv = [...args.slice(0, bodyIdx), '--body-file', '-', ...args.slice(bodyIdx + 2)];
265
+ }
266
+ }
267
+ else {
268
+ const pIdx = args.indexOf('-p');
269
+ const inlinePrompt = pIdx !== -1 && pIdx + 1 < args.length ? args[pIdx + 1] : undefined;
270
+ if (inlinePrompt !== undefined && !inlinePrompt.startsWith('--')) {
271
+ stdinText = inlinePrompt;
272
+ argv = [...args.slice(0, command === 'claude' ? pIdx + 1 : pIdx), ...args.slice(pIdx + 2)];
273
+ }
274
+ }
275
+ const launch = buildHostBinarySpawn(command, argv, 'cmd.exe');
276
+ const child = spawn(launch.command, launch.args, {
277
+ ...baseOpts,
278
+ stdio: stdinText === undefined ? 'ignore' : ['pipe', 'ignore', 'ignore'],
279
+ windowsVerbatimArguments: launch.windowsVerbatimArguments,
280
+ });
281
+ if (stdinText !== undefined) {
282
+ child.stdin?.write(stdinText, 'utf8');
283
+ child.stdin?.end();
284
+ }
285
+ child.unref();
286
+ return child;
287
+ }
288
+ const child = spawn(command, args, { ...baseOpts, stdio: 'ignore' });
289
+ child.unref();
290
+ return child;
291
+ }
292
+ //# sourceMappingURL=spawn-next.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn-next.js","sourceRoot":"","sources":["../../../src/hooks/session-end/spawn-next.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/hooks/session-end/worker.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+V,KAAK,oBAAoB,EAAiC,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAO9d,MAAM,WAAW,uBAAuB;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;CAAE;AAElF,oHAAoH;AACpH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,UAAU,CAGrD;AACD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAE/E;AACD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BpL;AAyBD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D7F;AACD,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAM/F"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/hooks/session-end/worker.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+V,KAAK,oBAAoB,EAAiC,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAO9d,MAAM,WAAW,uBAAuB;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;CAAE;AAKlF,oHAAoH;AACpH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,UAAU,CAarD;AACD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAM/E;AACD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CpL;AAiCD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D7F;AACD,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAM/F"}
@@ -7,10 +7,22 @@ import { armSessionEndActionWatchdog } from './action-watchdog.js';
7
7
  import { getProcessStartIdentity, isProcessIdentityLive } from '../../platform/process-utils.js';
8
8
  const WORKER_ARG = '--omc-session-end-worker';
9
9
  const MAX_WORKER_MS = 10_000;
10
+ /** Copilot permission switches excluded from the COPILOT_* passthrough (mirrors action-runner.ts). */
11
+ const COPILOT_PERMISSION_ENV = new Set(['COPILOT_ALLOW_ALL']);
10
12
  /** Durable OpenClaw routing is supplied from the manifest to the action runner, never from worker ambient state. */
11
13
  export function workerEnvironment() {
12
- const keys = ['PATH', 'HOME', 'USERPROFILE', 'TMPDIR', 'TEMP', 'TMP', 'SystemRoot', 'COMSPEC', 'LANG', 'LC_ALL', 'NODE_ENV', 'COPILOT_HOME', 'OMC_STATE_DIR', 'OMC_HOOK_CONFIG', 'OMC_CONFIG_PATH', 'OMC_NOTIFY', 'OMC_NOTIFY_PROFILE', 'OMC_TELEGRAM', 'OMC_DISCORD', 'OMC_SLACK', 'OMC_WEBHOOK', 'OMC_DISCORD_MENTION', 'OMC_DISCORD_NOTIFIER_BOT_TOKEN', 'OMC_DISCORD_NOTIFIER_CHANNEL', 'OMC_DISCORD_WEBHOOK_URL', 'OMC_TELEGRAM_BOT_TOKEN', 'OMC_TELEGRAM_NOTIFIER_BOT_TOKEN', 'OMC_TELEGRAM_CHAT_ID', 'OMC_TELEGRAM_NOTIFIER_CHAT_ID', 'OMC_TELEGRAM_NOTIFIER_UID', 'OMC_SLACK_WEBHOOK_URL', 'OMC_SLACK_MENTION', 'OMC_SLACK_BOT_TOKEN', 'OMC_SLACK_APP_TOKEN', 'OMC_SLACK_BOT_CHANNEL', 'OMC_MICROSOFT_TEAMS_WEBHOOK_URL', 'HTTP_PROXY', 'HTTPS_PROXY', 'ALL_PROXY', 'NO_PROXY', 'http_proxy', 'https_proxy', 'all_proxy', 'no_proxy', 'NODE_EXTRA_CA_CERTS', 'SSL_CERT_FILE', 'SSL_CERT_DIR', 'REQUESTS_CA_BUNDLE', 'CURL_CA_BUNDLE', ...(process.env.NODE_ENV === 'test' ? ['OMC_SESSION_END_TEST_PRODUCER_GRACE_MS'] : [])];
13
- return Object.fromEntries(keys.flatMap((key) => process.env[key] === undefined ? [] : [[key, process.env[key]]]));
14
+ // APPDATA/LOCALAPPDATA are required for gh keyring-free auth lookup on Windows
15
+ // (hosts.yml lives in %AppData%\GitHub CLI); without them every
16
+ // worker-spawned session sees gh as unauthenticated.
17
+ const keys = ['PATH', 'HOME', 'USERPROFILE', ...(process.platform === 'win32' ? ['APPDATA', 'LOCALAPPDATA'] : []), 'TMPDIR', 'TEMP', 'TMP', 'SystemRoot', 'COMSPEC', 'LANG', 'LC_ALL', 'NODE_ENV', 'COPILOT_HOME', 'OMC_STATE_DIR', 'OMC_HOOK_CONFIG', 'OMC_CONFIG_PATH', 'OMC_NOTIFY', 'OMC_NOTIFY_PROFILE', 'OMC_TELEGRAM', 'OMC_DISCORD', 'OMC_SLACK', 'OMC_WEBHOOK', 'OMC_DISCORD_MENTION', 'OMC_DISCORD_NOTIFIER_BOT_TOKEN', 'OMC_DISCORD_NOTIFIER_CHANNEL', 'OMC_DISCORD_WEBHOOK_URL', 'OMC_TELEGRAM_BOT_TOKEN', 'OMC_TELEGRAM_NOTIFIER_BOT_TOKEN', 'OMC_TELEGRAM_CHAT_ID', 'OMC_TELEGRAM_NOTIFIER_CHAT_ID', 'OMC_TELEGRAM_NOTIFIER_UID', 'OMC_SLACK_WEBHOOK_URL', 'OMC_SLACK_MENTION', 'OMC_SLACK_BOT_TOKEN', 'OMC_SLACK_APP_TOKEN', 'OMC_SLACK_BOT_CHANNEL', 'OMC_MICROSOFT_TEAMS_WEBHOOK_URL', 'HTTP_PROXY', 'HTTPS_PROXY', 'ALL_PROXY', 'NO_PROXY', 'http_proxy', 'https_proxy', 'all_proxy', 'no_proxy', 'NODE_EXTRA_CA_CERTS', 'SSL_CERT_FILE', 'SSL_CERT_DIR', 'REQUESTS_CA_BUNDLE', 'CURL_CA_BUNDLE', 'OMC_HOOK_BRIDGE', ...(process.env.NODE_ENV === 'test' ? ['OMC_SESSION_END_TEST_PRODUCER_GRACE_MS'] : [])];
18
+ // ANTHROPIC_* (Claude host) and COPILOT_* / GH_TOKEN / GITHUB_TOKEN / GH_HOST
19
+ // (Copilot host) carry model provider auth/routing; without them
20
+ // worker-spawned sessions exit "Not logged in" immediately.
21
+ // Mirrors isModelProviderAuthKey in action-runner.ts (inlined: tests mock that module).
22
+ // COPILOT_ALLOW_ALL is a permission switch, not auth: forwarding it would
23
+ // auto-approve every tool in the AFK links this worker's runners spawn.
24
+ const authPassthrough = Object.entries(process.env).filter(([key]) => (key.startsWith('ANTHROPIC_') || key.startsWith('COPILOT_') || key === 'GH_TOKEN' || key === 'GITHUB_TOKEN' || key === 'GH_HOST') && !COPILOT_PERMISSION_ENV.has(key));
25
+ return Object.fromEntries([...keys.flatMap((key) => process.env[key] === undefined ? [] : [[key, process.env[key]]]), ...authPassthrough]);
14
26
  }
15
27
  export function spawnSessionEndWorker(payload) {
16
28
  try {
@@ -69,6 +81,26 @@ export async function executeSessionEndAction(name, payload, deadlineAt, authori
69
81
  return legacy.runSessionEndCallbacks(payload.directory, payload.sessionId, current?.actions.callback.idempotencyKey, true);
70
82
  if (name === 'notification')
71
83
  return legacy.runSessionEndNotifications(payload.directory, payload.sessionId, true);
84
+ if (name === 'spawn-next') {
85
+ const chain = current?.actions['spawn-next']?.payload?.chain;
86
+ if (!chain || typeof chain !== 'object')
87
+ return;
88
+ const { executeSpawnNext } = await import('./spawn-next.js');
89
+ try {
90
+ executeSpawnNext(chain, payload.directory);
91
+ }
92
+ catch (error) {
93
+ const { recordChainDecision } = await import('./chain-enqueuer.js');
94
+ recordChainDecision(payload.directory, {
95
+ decision: 'enqueued-failed',
96
+ sessionId: payload.sessionId,
97
+ intentId: chain.intentId,
98
+ error: error instanceof Error ? error.message : String(error),
99
+ });
100
+ throw error;
101
+ }
102
+ return;
103
+ }
72
104
  return legacy.runSessionEndOpenClaw(payload.directory, payload.sessionId, true);
73
105
  }
74
106
  async function reapIfProvenStale(payload, deadlineAt) {
@@ -76,7 +108,9 @@ async function reapIfProvenStale(payload, deadlineAt) {
76
108
  const owner = job?.owner;
77
109
  if (!owner || Date.now() < Date.parse(owner.leaseExpiresAt))
78
110
  return;
79
- const liveness = await isProcessIdentityLive(owner.pid, owner.processStartIdentity, Math.min(deadlineAt, Date.now() + 250));
111
+ // Windows identity probes shell out to PowerShell (~300-500ms cold); a 250ms
112
+ // budget made workers silently refuse to start / reap.
113
+ const liveness = await isProcessIdentityLive(owner.pid, owner.processStartIdentity, Math.min(deadlineAt, Date.now() + 2_500));
80
114
  if (liveness === 'dead' || liveness === 'mismatch')
81
115
  reapStaleSessionEndOwner(payload.directory, payload.sessionId, owner.nonce, owner.leaseGeneration, liveness);
82
116
  }
@@ -87,9 +121,15 @@ function reschedulePendingWorker(payload, job) {
87
121
  const producersReady = ['sealed', 'no-op'].includes(job.producers.core.state)
88
122
  && ['sealed', 'no-op'].includes(job.producers.wiki.state);
89
123
  const hasPendingAction = producersReady && Object.values(job.actions).some(action => action.status === 'pending');
124
+ // A manifest with a sealed core but an absent wiki producer (the standalone
125
+ // hook flow never registers one) must wait out the producer grace instead of
126
+ // releasing as settled — otherwise the first worker exits, nothing respawns
127
+ // it after the grace converts absent→no-op, and deferred actions (spawn-next
128
+ // chain enqueue) stall until an unrelated SessionStart reconcile.
90
129
  const awaitingProducerGrace = Date.now() < Date.parse(job.producerGraceExpiresAt)
91
130
  && (job.producers.core.state === 'prepared'
92
- || (job.producers.core.state === 'absent' && ['sealed', 'no-op'].includes(job.producers.wiki.state)));
131
+ || (job.producers.core.state === 'absent' && ['sealed', 'no-op'].includes(job.producers.wiki.state))
132
+ || job.producers.wiki.state === 'absent');
93
133
  if (!awaitingProducerGrace && retryableAttempts.length === 0 && !hasPendingAction)
94
134
  return;
95
135
  const delay = awaitingProducerGrace
@@ -102,7 +142,7 @@ function reschedulePendingWorker(payload, job) {
102
142
  export async function processSessionEndWorker(payload) {
103
143
  const deadlineAt = Date.now() + MAX_WORKER_MS;
104
144
  const nonce = randomUUID();
105
- const identity = await getProcessStartIdentity(process.pid, Math.min(deadlineAt, Date.now() + 250));
145
+ const identity = await getProcessStartIdentity(process.pid, Math.min(deadlineAt, Date.now() + 2_500));
106
146
  if (!identity)
107
147
  return;
108
148
  let claimed = claimSessionEndJob(payload.directory, payload.sessionId, nonce, identity, deadlineAt);
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/hooks/session-end/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/hooks/session-end/worker.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,8 @@ import { type TaskSizeResult } from './index.js';
20
20
  import type { ResolveResult } from '../jev/index.js';
21
21
  /**
22
22
  * Point "task-size" (ticket 09): the detector's word-count/regex
23
- * classification decides; Jev's Choice is recorded per prompt.
23
+ * classification decides in shadow/off mode; Jev's Choice is recorded per prompt.
24
+ * In active mode, Jev's answer is mapped to the TaskSizeResult type.
24
25
  */
25
26
  export declare function recordTaskSizeShadow(prompt: string, fetchFn?: typeof fetch): Promise<ResolveResult<TaskSizeResult>>;
26
27
  //# sourceMappingURL=jev-shadow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jev-shadow.d.ts","sourceRoot":"","sources":["../../../src/hooks/task-size-detector/jev-shadow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,KAAK,GACrB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAMxC"}
1
+ {"version":3,"file":"jev-shadow.d.ts","sourceRoot":"","sources":["../../../src/hooks/task-size-detector/jev-shadow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,KAAK,EAAa,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,KAAK,GACrB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAuBxC"}
@@ -20,12 +20,30 @@ import { classifyTaskSize } from './index.js';
20
20
  import { recordJudgment } from '../jev/index.js';
21
21
  /**
22
22
  * Point "task-size" (ticket 09): the detector's word-count/regex
23
- * classification decides; Jev's Choice is recorded per prompt.
23
+ * classification decides in shadow/off mode; Jev's Choice is recorded per prompt.
24
+ * In active mode, Jev's answer is mapped to the TaskSizeResult type.
24
25
  */
25
26
  export function recordTaskSizeShadow(prompt, fetchFn) {
26
27
  return recordJudgment('task-size', {
27
28
  state: { prompt, source: 'user-prompt-submit' },
28
29
  twin: () => classifyTaskSize(prompt),
30
+ mapAnswer: (answer) => {
31
+ // Jev answer is a Choice over { small, medium, large }
32
+ const choice = answer.choice?.toLowerCase();
33
+ const sizeMap = {
34
+ small: 'small',
35
+ medium: 'medium',
36
+ large: 'large',
37
+ };
38
+ const size = choice && choice in sizeMap ? sizeMap[choice] : 'medium';
39
+ return {
40
+ size,
41
+ reason: `Jev active-mode classification: ${choice}`,
42
+ wordCount: 0, // Not available from Jev answer
43
+ hasEscapeHatch: false, // Not available from Jev answer
44
+ confidence: answer.confidence,
45
+ };
46
+ },
29
47
  fetchFn,
30
48
  });
31
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"jev-shadow.js","sourceRoot":"","sources":["../../../src/hooks/task-size-detector/jev-shadow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,gBAAgB,EAAuB,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,OAAsB;IAEtB,OAAO,cAAc,CAAiB,WAAW,EAAE;QACjD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE;QAC/C,IAAI,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC;QACpC,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"jev-shadow.js","sourceRoot":"","sources":["../../../src/hooks/task-size-detector/jev-shadow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,gBAAgB,EAAuB,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,OAAsB;IAEtB,OAAO,cAAc,CAAiB,WAAW,EAAE;QACjD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE;QAC/C,IAAI,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC;QACpC,SAAS,EAAE,CAAC,MAAiB,EAAE,EAAE;YAC/B,uDAAuD;YACvD,MAAM,MAAM,GAAI,MAAM,CAAC,MAA6B,EAAE,WAAW,EAAE,CAAC;YACpE,MAAM,OAAO,GAAiD;gBAC5D,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,OAAO;aACf,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtE,OAAO;gBACL,IAAI;gBACJ,MAAM,EAAE,mCAAmC,MAAM,EAAE;gBACnD,SAAS,EAAE,CAAC,EAAE,gCAAgC;gBAC9C,cAAc,EAAE,KAAK,EAAE,gCAAgC;gBACvD,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC;QACJ,CAAC;QACD,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -12,7 +12,7 @@
12
12
  * import time based on COPILOT_HOME.
13
13
  */
14
14
  import { describe, it, expect, afterEach, vi } from 'vitest';
15
- import { existsSync, readdirSync } from 'fs';
15
+ import { existsSync, readdirSync, readFileSync } from 'fs';
16
16
  import { join, dirname } from 'path';
17
17
  import { fileURLToPath } from 'url';
18
18
  const __filename = fileURLToPath(import.meta.url);
@@ -33,6 +33,10 @@ describe('Contract 7: hook command portability (#2084, #2348)', () => {
33
33
  vi.resetModules();
34
34
  });
35
35
  it('default config: commands use ${COPILOT_HOME:-$HOME/.copilot} pattern', async () => {
36
+ // POSIX expansion is only emitted on non-Windows platforms (Windows emits
37
+ // concrete paths by design — see the Windows test below). Force a POSIX
38
+ // platform so this contract holds on Windows dev machines too.
39
+ Object.defineProperty(process, 'platform', { value: 'linux' });
36
40
  delete process.env.COPILOT_HOME;
37
41
  vi.resetModules();
38
42
  const { getHooksSettingsConfig } = await import('../../installer/hooks.js');
@@ -77,6 +81,9 @@ describe('Contract 7: hook command portability (#2084, #2348)', () => {
77
81
  }
78
82
  });
79
83
  it('no command contains a hardcoded home directory path', async () => {
84
+ // Windows emits concrete hook paths by design (see Windows test below), so
85
+ // the POSIX no-hardcoded-home contract is only asserted for POSIX builds.
86
+ Object.defineProperty(process, 'platform', { value: 'linux' });
80
87
  delete process.env.COPILOT_HOME;
81
88
  vi.resetModules();
82
89
  const { getHooksSettingsConfig } = await import('../../installer/hooks.js');
@@ -175,4 +182,53 @@ describe('Contract 8: hook commands reference existing template files', () => {
175
182
  }
176
183
  });
177
184
  });
185
+ // ── Contract 9: no cmd-style %VAR% in generated hook commands (B2 hook-template-var)
186
+ //
187
+ // Live-fire evidence (2026-09-29): a hook command using cmd-style
188
+ // `%CLAUDE_PROJECT_DIR%` fired 0/3 while the absolute-path form fired 3/3 —
189
+ // Claude Code does not variable-expand cmd-style %VAR% in hook command
190
+ // strings, so `node "%CLAUDE_PROJECT_DIR%/..."` silently fails to find the
191
+ // script. Generated commands must either use concrete paths (Windows) or
192
+ // POSIX sh-style expansion ($HOME / ${COPILOT_HOME:-...}) — never %VAR%.
193
+ describe('Contract 9: hook commands contain no cmd-style %VAR% (B2 hook-template-var)', () => {
194
+ const cmdVarPattern = /%[A-Za-z_][A-Za-z0-9_]*%/;
195
+ async function collectCommands(platform) {
196
+ Object.defineProperty(process, 'platform', { value: platform });
197
+ delete process.env.COPILOT_HOME;
198
+ vi.resetModules();
199
+ const { getHooksSettingsConfig } = await import('../../installer/hooks.js');
200
+ const config = getHooksSettingsConfig();
201
+ const commands = [];
202
+ for (const eventHooks of Object.values(config.hooks)) {
203
+ for (const hookGroup of eventHooks) {
204
+ for (const hook of hookGroup.hooks) {
205
+ commands.push(hook.command);
206
+ }
207
+ }
208
+ }
209
+ return commands;
210
+ }
211
+ function expectNoCmdStyleVars(commands, platform) {
212
+ expect(commands.length).toBeGreaterThan(0);
213
+ const violations = commands.filter((cmd) => cmdVarPattern.test(cmd));
214
+ if (violations.length > 0) {
215
+ expect.fail(`Found cmd-style %VAR% references in ${platform} hook commands:\n` +
216
+ violations.map(c => ` ${c}`).join('\n') +
217
+ `\n\nClaude Code does not expand cmd-style %VAR% in hook command strings; ` +
218
+ `they silently fail. Use concrete paths or POSIX sh-style expansion instead.`);
219
+ }
220
+ }
221
+ it('Windows default config: no command contains cmd-style %VAR%', async () => {
222
+ expectNoCmdStyleVars(await collectCommands('win32'), 'win32');
223
+ });
224
+ it('POSIX default config: no command contains cmd-style %VAR%', async () => {
225
+ expectNoCmdStyleVars(await collectCommands('linux'), 'linux');
226
+ });
227
+ it('standalone forwarder template (templates/hooks/session-end.mjs) contains no cmd-style %VAR%', () => {
228
+ const templatePath = join(REPO_ROOT, 'templates', 'hooks', 'session-end.mjs');
229
+ expect(existsSync(templatePath)).toBe(true);
230
+ const source = readFileSync(templatePath, 'utf8');
231
+ expect(source).not.toMatch(cmdVarPattern);
232
+ });
233
+ });
178
234
  //# sourceMappingURL=hook-command-portability.test.js.map