@jstn-sdk/rcs 0.1.0 → 0.1.6

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 (1739) hide show
  1. package/README.md +154 -101
  2. package/dist/agents/definitions.d.ts.map +1 -1
  3. package/dist/agents/definitions.js +0 -101
  4. package/dist/agents/definitions.js.map +1 -1
  5. package/dist/blueprint/runtime.d.ts +52 -0
  6. package/dist/blueprint/runtime.d.ts.map +1 -0
  7. package/dist/{ralplan → blueprint}/runtime.js +19 -19
  8. package/dist/blueprint/runtime.js.map +1 -0
  9. package/dist/catalog/reader.d.ts.map +1 -1
  10. package/dist/catalog/reader.js +8 -2
  11. package/dist/catalog/reader.js.map +1 -1
  12. package/dist/catalog/schema.js +1 -1
  13. package/dist/catalog/schema.js.map +1 -1
  14. package/dist/cli/forge.d.ts +17 -0
  15. package/dist/cli/{ralph.d.ts.map → forge.d.ts.map} +1 -1
  16. package/dist/cli/{ralph.js → forge.js} +82 -82
  17. package/dist/cli/{ralph.js.map → forge.js.map} +1 -1
  18. package/dist/cli/index.d.ts +1 -1
  19. package/dist/cli/index.d.ts.map +1 -1
  20. package/dist/cli/index.js +20 -15
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/cli/setup.d.ts.map +1 -1
  23. package/dist/cli/setup.js +2 -3
  24. package/dist/cli/setup.js.map +1 -1
  25. package/dist/cli/star-prompt.js +2 -2
  26. package/dist/cli/star-prompt.js.map +1 -1
  27. package/dist/cli/state.js +1 -1
  28. package/dist/cli/team.d.ts.map +1 -1
  29. package/dist/cli/team.js +3 -2
  30. package/dist/cli/team.js.map +1 -1
  31. package/dist/cli/tmux-hook.d.ts.map +1 -1
  32. package/dist/cli/tmux-hook.js +9 -1
  33. package/dist/cli/tmux-hook.js.map +1 -1
  34. package/dist/config/generator.d.ts +1 -1
  35. package/dist/config/generator.d.ts.map +1 -1
  36. package/dist/config/generator.js +1 -1
  37. package/dist/config/generator.js.map +1 -1
  38. package/dist/forge/contract.d.ts +17 -0
  39. package/dist/{ralph → forge}/contract.d.ts.map +1 -1
  40. package/dist/{ralph → forge}/contract.js +16 -16
  41. package/dist/{ralph → forge}/contract.js.map +1 -1
  42. package/dist/{ralph → forge}/persistence.d.ts +5 -5
  43. package/dist/{ralph → forge}/persistence.d.ts.map +1 -1
  44. package/dist/{ralph → forge}/persistence.js +7 -6
  45. package/dist/forge/persistence.js.map +1 -0
  46. package/dist/hooks/agents-overlay.d.ts +1 -1
  47. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  48. package/dist/hooks/agents-overlay.js +37 -31
  49. package/dist/hooks/agents-overlay.js.map +1 -1
  50. package/dist/hooks/extensibility/dispatcher.d.ts.map +1 -1
  51. package/dist/hooks/extensibility/dispatcher.js +82 -14
  52. package/dist/hooks/extensibility/dispatcher.js.map +1 -1
  53. package/dist/hooks/keyword-detector.d.ts +8 -8
  54. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  55. package/dist/hooks/keyword-detector.js +94 -64
  56. package/dist/hooks/keyword-detector.js.map +1 -1
  57. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  58. package/dist/hooks/keyword-registry.js +9 -11
  59. package/dist/hooks/keyword-registry.js.map +1 -1
  60. package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
  61. package/dist/hooks/prompt-guidance-contract.js +10 -21
  62. package/dist/hooks/prompt-guidance-contract.js.map +1 -1
  63. package/dist/hooks/task-size-detector.js +2 -2
  64. package/dist/hooks/task-size-detector.js.map +1 -1
  65. package/dist/hooks/triage-state.d.ts +1 -1
  66. package/dist/hooks/triage-state.js +1 -1
  67. package/dist/hud/colors.d.ts +2 -2
  68. package/dist/hud/colors.js +2 -2
  69. package/dist/hud/render.js +21 -21
  70. package/dist/hud/render.js.map +1 -1
  71. package/dist/hud/state.d.ts +3 -3
  72. package/dist/hud/state.d.ts.map +1 -1
  73. package/dist/hud/state.js +18 -15
  74. package/dist/hud/state.js.map +1 -1
  75. package/dist/hud/types.d.ts +6 -6
  76. package/dist/hud/types.d.ts.map +1 -1
  77. package/dist/mcp/bootstrap.d.ts.map +1 -1
  78. package/dist/mcp/bootstrap.js +36 -2
  79. package/dist/mcp/bootstrap.js.map +1 -1
  80. package/dist/mcp/state-paths.d.ts +1 -0
  81. package/dist/mcp/state-paths.d.ts.map +1 -1
  82. package/dist/mcp/state-paths.js +4 -1
  83. package/dist/mcp/state-paths.js.map +1 -1
  84. package/dist/mcp/state-server.d.ts +4 -4
  85. package/dist/mcp/state-server.js +2 -2
  86. package/dist/mcp/state-server.js.map +1 -1
  87. package/dist/modes/base.d.ts +2 -2
  88. package/dist/modes/base.d.ts.map +1 -1
  89. package/dist/modes/base.js +29 -26
  90. package/dist/modes/base.js.map +1 -1
  91. package/dist/notifications/reply-listener.d.ts.map +1 -1
  92. package/dist/notifications/reply-listener.js +7 -1
  93. package/dist/notifications/reply-listener.js.map +1 -1
  94. package/dist/notifications/tmux.d.ts.map +1 -1
  95. package/dist/notifications/tmux.js +39 -6
  96. package/dist/notifications/tmux.js.map +1 -1
  97. package/dist/pipeline/index.d.ts +7 -6
  98. package/dist/pipeline/index.d.ts.map +1 -1
  99. package/dist/pipeline/index.js +5 -4
  100. package/dist/pipeline/index.js.map +1 -1
  101. package/dist/pipeline/orchestrator.d.ts +5 -5
  102. package/dist/pipeline/orchestrator.js +25 -25
  103. package/dist/pipeline/orchestrator.js.map +1 -1
  104. package/dist/pipeline/stages/blueprint.d.ts +25 -0
  105. package/dist/pipeline/stages/blueprint.d.ts.map +1 -0
  106. package/dist/pipeline/stages/{ralplan.js → blueprint.js} +16 -16
  107. package/dist/pipeline/stages/blueprint.js.map +1 -0
  108. package/dist/pipeline/stages/code-review.d.ts +2 -2
  109. package/dist/pipeline/stages/code-review.js +6 -6
  110. package/dist/pipeline/stages/code-review.js.map +1 -1
  111. package/dist/pipeline/stages/forge-verify.d.ts +50 -0
  112. package/dist/pipeline/stages/forge-verify.d.ts.map +1 -0
  113. package/dist/pipeline/stages/{ralph-verify.js → forge-verify.js} +21 -24
  114. package/dist/pipeline/stages/forge-verify.js.map +1 -0
  115. package/dist/pipeline/stages/team-exec.d.ts +1 -1
  116. package/dist/pipeline/stages/team-exec.js +19 -19
  117. package/dist/pipeline/stages/team-exec.js.map +1 -1
  118. package/dist/pipeline/types.d.ts +12 -12
  119. package/dist/pipeline/types.d.ts.map +1 -1
  120. package/dist/pipeline/types.js +1 -1
  121. package/dist/planning/artifacts.d.ts +3 -4
  122. package/dist/planning/artifacts.d.ts.map +1 -1
  123. package/dist/planning/artifacts.js +2 -3
  124. package/dist/planning/artifacts.js.map +1 -1
  125. package/dist/question/policy.js +1 -1
  126. package/dist/runtime/bridge.d.ts.map +1 -1
  127. package/dist/runtime/bridge.js +70 -13
  128. package/dist/runtime/bridge.js.map +1 -1
  129. package/dist/scripts/codex-native-hook.js +30 -30
  130. package/dist/scripts/codex-native-hook.js.map +1 -1
  131. package/dist/scripts/eval/eval-cross-server-party-flow.d.ts +3 -0
  132. package/dist/scripts/eval/eval-cross-server-party-flow.d.ts.map +1 -0
  133. package/dist/scripts/eval/eval-cross-server-party-flow.js +12 -0
  134. package/dist/scripts/eval/eval-cross-server-party-flow.js.map +1 -0
  135. package/dist/scripts/eval/eval-gui-onboarding-clarity.d.ts +3 -0
  136. package/dist/scripts/eval/eval-gui-onboarding-clarity.d.ts.map +1 -0
  137. package/dist/scripts/eval/eval-gui-onboarding-clarity.js +17 -0
  138. package/dist/scripts/eval/eval-gui-onboarding-clarity.js.map +1 -0
  139. package/dist/scripts/eval/eval-liveops-reward-loop-balance.d.ts +3 -0
  140. package/dist/scripts/eval/eval-liveops-reward-loop-balance.d.ts.map +1 -0
  141. package/dist/scripts/eval/eval-liveops-reward-loop-balance.js +12 -0
  142. package/dist/scripts/eval/eval-liveops-reward-loop-balance.js.map +1 -0
  143. package/dist/scripts/eval/eval-profile-datastore-recovery.d.ts +3 -0
  144. package/dist/scripts/eval/eval-profile-datastore-recovery.d.ts.map +1 -0
  145. package/dist/scripts/eval/eval-profile-datastore-recovery.js +17 -0
  146. package/dist/scripts/eval/eval-profile-datastore-recovery.js.map +1 -0
  147. package/dist/scripts/eval/eval-remote-contract-hardening.d.ts +3 -0
  148. package/dist/scripts/eval/eval-remote-contract-hardening.d.ts.map +1 -0
  149. package/dist/scripts/eval/eval-remote-contract-hardening.js +17 -0
  150. package/dist/scripts/eval/eval-remote-contract-hardening.js.map +1 -0
  151. package/dist/scripts/notify-fallback-watcher.js +140 -139
  152. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  153. package/dist/scripts/notify-hook/forge-session-resume.d.ts +23 -0
  154. package/dist/scripts/notify-hook/{ralph-session-resume.d.ts.map → forge-session-resume.d.ts.map} +1 -1
  155. package/dist/scripts/notify-hook/{ralph-session-resume.js → forge-session-resume.js} +37 -36
  156. package/dist/scripts/notify-hook/{ralph-session-resume.js.map → forge-session-resume.js.map} +1 -1
  157. package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -1
  158. package/dist/scripts/notify-hook/team-dispatch.js +34 -4
  159. package/dist/scripts/notify-hook/team-dispatch.js.map +1 -1
  160. package/dist/scripts/notify-hook/visual-verdict.js +3 -3
  161. package/dist/scripts/notify-hook.js +9 -9
  162. package/dist/scripts/run-test-files.js +1 -1
  163. package/dist/scripts/run-test-files.js.map +1 -1
  164. package/dist/scripts/surface-taxonomy.d.ts +23 -0
  165. package/dist/scripts/surface-taxonomy.d.ts.map +1 -0
  166. package/dist/scripts/surface-taxonomy.js +271 -0
  167. package/dist/scripts/surface-taxonomy.js.map +1 -0
  168. package/dist/scripts/sync-plugin-mirror.d.ts.map +1 -1
  169. package/dist/scripts/sync-plugin-mirror.js +5 -4
  170. package/dist/scripts/sync-plugin-mirror.js.map +1 -1
  171. package/dist/scripts/tmux-hook-engine.d.ts +1 -1
  172. package/dist/scripts/tmux-hook-engine.d.ts.map +1 -1
  173. package/dist/scripts/tmux-hook-engine.js +29 -20
  174. package/dist/scripts/tmux-hook-engine.js.map +1 -1
  175. package/dist/state/operations.d.ts +1 -1
  176. package/dist/state/operations.d.ts.map +1 -1
  177. package/dist/state/operations.js +18 -18
  178. package/dist/state/operations.js.map +1 -1
  179. package/dist/state/skill-active.d.ts +13 -1
  180. package/dist/state/skill-active.d.ts.map +1 -1
  181. package/dist/state/skill-active.js +38 -17
  182. package/dist/state/skill-active.js.map +1 -1
  183. package/dist/state/workflow-transition.d.ts +6 -5
  184. package/dist/state/workflow-transition.d.ts.map +1 -1
  185. package/dist/state/workflow-transition.js +27 -15
  186. package/dist/state/workflow-transition.js.map +1 -1
  187. package/dist/team/contracts.d.ts +1 -1
  188. package/dist/team/contracts.js +2 -2
  189. package/dist/team/followup-planner.d.ts +2 -2
  190. package/dist/team/followup-planner.d.ts.map +1 -1
  191. package/dist/team/followup-planner.js +16 -14
  192. package/dist/team/followup-planner.js.map +1 -1
  193. package/dist/team/idle-nudge.d.ts.map +1 -1
  194. package/dist/team/idle-nudge.js +3 -2
  195. package/dist/team/idle-nudge.js.map +1 -1
  196. package/dist/team/leader-activity.js +1 -1
  197. package/dist/team/model-contract.d.ts.map +1 -1
  198. package/dist/team/model-contract.js +4 -1
  199. package/dist/team/model-contract.js.map +1 -1
  200. package/dist/team/orchestrator.js +4 -4
  201. package/dist/team/orchestrator.js.map +1 -1
  202. package/dist/team/role-router.js +3 -3
  203. package/dist/team/role-router.js.map +1 -1
  204. package/dist/team/state/dispatch.d.ts.map +1 -1
  205. package/dist/team/state/dispatch.js +4 -1
  206. package/dist/team/state/dispatch.js.map +1 -1
  207. package/dist/team/tmux-session.d.ts +4 -0
  208. package/dist/team/tmux-session.d.ts.map +1 -1
  209. package/dist/team/tmux-session.js +42 -9
  210. package/dist/team/tmux-session.js.map +1 -1
  211. package/dist/team/worktree.d.ts +1 -1
  212. package/dist/utils/platform-command.d.ts.map +1 -1
  213. package/dist/utils/platform-command.js +9 -0
  214. package/dist/utils/platform-command.js.map +1 -1
  215. package/dist/verification/verifier.d.ts +1 -1
  216. package/dist/verification/verifier.js +2 -2
  217. package/docs/STATE_MODEL.md +24 -24
  218. package/docs/agents.html +8 -16
  219. package/docs/archive/README.md +15 -0
  220. package/docs/{prompt-migration-changelog.md → archive/prompt-migration-changelog.md} +0 -11
  221. package/docs/{release-body-0.9.0.md → archive/release-body-0.9.0.md} +6 -24
  222. package/docs/{release-body-0.9.1.md → archive/release-body-0.9.1.md} +3 -3
  223. package/docs/codex-native-hooks.md +4 -4
  224. package/docs/contracts/forge-cancel-contract.md +20 -0
  225. package/docs/contracts/forge-state-contract.md +52 -0
  226. package/docs/contracts/multi-state-transition-contract.md +5 -5
  227. package/docs/contracts/multi-state-transition-review.md +3 -3
  228. package/docs/contracts/repo-aware-team-dag-decomposition.md +1 -1
  229. package/docs/contracts/rust-runtime-thin-adapter-contract.md +1 -1
  230. package/docs/contracts/team-startup-dispatch-latency.md +1 -1
  231. package/docs/getting-started.html +11 -1
  232. package/docs/guidance-schema.md +6 -3
  233. package/docs/index.html +55 -4
  234. package/docs/integrations.html +4 -3
  235. package/docs/issues/team-forge-followup-team.md +38 -0
  236. package/docs/openclaw-integration.md +2 -2
  237. package/docs/prompt-guidance-contract.md +11 -11
  238. package/docs/prs/{dev-deprecate-team-ralph.md → dev-deprecate-team-forge.md} +27 -27
  239. package/docs/prs/{dev-fix-ralph-live-pane-invariant.md → dev-fix-forge-live-pane-invariant.md} +7 -7
  240. package/docs/prs/{dev-team-ralph-workflow-positioning.md → dev-team-forge-workflow-positioning.md} +7 -7
  241. package/docs/qa/forge-persistence-gate.md +20 -0
  242. package/docs/qa/rust-runtime-thin-adapter-gate.md +31 -40
  243. package/docs/readme/README.de.md +14 -0
  244. package/docs/readme/README.el.md +14 -0
  245. package/docs/readme/README.es.md +14 -0
  246. package/docs/readme/README.fr.md +14 -0
  247. package/docs/readme/README.it.md +14 -0
  248. package/docs/readme/README.ja.md +14 -0
  249. package/docs/readme/README.ko.md +14 -0
  250. package/docs/readme/README.pl.md +14 -0
  251. package/docs/readme/README.pt.md +14 -0
  252. package/docs/readme/README.ru.md +14 -0
  253. package/docs/readme/README.tr.md +14 -0
  254. package/docs/readme/README.uk.md +14 -0
  255. package/docs/readme/README.vi.md +14 -0
  256. package/docs/readme/README.zh-TW.md +14 -0
  257. package/docs/readme/README.zh.md +14 -0
  258. package/docs/readme/rcs-cover.svg +75 -0
  259. package/docs/reference/canonical-vocabulary.md +106 -0
  260. package/docs/reference/forge-parity-matrix.md +26 -0
  261. package/docs/reference/forge-upstream-baseline.md +32 -0
  262. package/docs/reference/rcs-config-schema-routing.md +5 -5
  263. package/docs/reference/roblox-pre-action-protocol.md +4 -0
  264. package/docs/reference/roblox-taxonomy-migration-plan.md +46 -0
  265. package/docs/reference/roblox-workspace-standard.md +83 -0
  266. package/docs/reference/robloxstudio-mcp-compatibility.md +117 -0
  267. package/docs/reference/semantic-design-system.md +110 -0
  268. package/docs/reference/surface-map.md +131 -0
  269. package/docs/reference/team-allocation-rebalance-policy.md +1 -1
  270. package/docs/release-notes-v0.1.0.md +1 -1
  271. package/docs/release-notes-v0.1.1.md +49 -0
  272. package/docs/release-notes-v0.1.6.md +27 -0
  273. package/docs/reports/open-prs-dev-readiness-2026-04-09.md +2 -2
  274. package/docs/shared/agent-tiers.md +3 -3
  275. package/docs/skills.html +10 -12
  276. package/docs/troubleshooting.md +1 -1
  277. package/package.json +20 -13
  278. package/plugins/roblox-ai-os-creator-skills/.codex-plugin/plugin.json +1 -1
  279. package/plugins/roblox-ai-os-creator-skills/docs/reference/roblox-pre-action-protocol.md +4 -0
  280. package/plugins/roblox-ai-os-creator-skills/skills/ai-slop-cleaner/SKILL.md +14 -7
  281. package/plugins/roblox-ai-os-creator-skills/skills/analyze/SKILL.md +9 -2
  282. package/plugins/roblox-ai-os-creator-skills/skills/ask-claude/SKILL.md +7 -0
  283. package/plugins/roblox-ai-os-creator-skills/skills/ask-gemini/SKILL.md +7 -0
  284. package/plugins/roblox-ai-os-creator-skills/skills/autoforge/SKILL.md +7 -0
  285. package/plugins/roblox-ai-os-creator-skills/skills/autopilot/SKILL.md +48 -41
  286. package/plugins/roblox-ai-os-creator-skills/skills/autoresearch/SKILL.md +8 -1
  287. package/plugins/roblox-ai-os-creator-skills/skills/blueprint/SKILL.md +227 -9
  288. package/plugins/roblox-ai-os-creator-skills/skills/blueprint-loop/SKILL.md +7 -0
  289. package/plugins/roblox-ai-os-creator-skills/skills/blueprint-psych/SKILL.md +7 -0
  290. package/plugins/roblox-ai-os-creator-skills/skills/blueprint-retention/SKILL.md +7 -0
  291. package/plugins/roblox-ai-os-creator-skills/skills/blueprint-social/SKILL.md +7 -0
  292. package/plugins/roblox-ai-os-creator-skills/skills/brief/SKILL.md +7 -0
  293. package/plugins/roblox-ai-os-creator-skills/skills/brief-audience/SKILL.md +7 -0
  294. package/plugins/roblox-ai-os-creator-skills/skills/brief-motivation/SKILL.md +7 -0
  295. package/plugins/roblox-ai-os-creator-skills/skills/cancel/SKILL.md +59 -52
  296. package/plugins/roblox-ai-os-creator-skills/skills/code-review/SKILL.md +30 -24
  297. package/plugins/roblox-ai-os-creator-skills/skills/configure-notifications/SKILL.md +7 -0
  298. package/plugins/roblox-ai-os-creator-skills/skills/crew/SKILL.md +7 -0
  299. package/plugins/roblox-ai-os-creator-skills/skills/deep-interview/SKILL.md +25 -18
  300. package/plugins/roblox-ai-os-creator-skills/skills/doctor/SKILL.md +7 -0
  301. package/plugins/roblox-ai-os-creator-skills/skills/forge/SKILL.md +174 -11
  302. package/plugins/roblox-ai-os-creator-skills/skills/forge-community/SKILL.md +7 -0
  303. package/plugins/roblox-ai-os-creator-skills/skills/forge-daily-loop/SKILL.md +7 -0
  304. package/plugins/roblox-ai-os-creator-skills/skills/forge-event-loop/SKILL.md +7 -0
  305. package/plugins/roblox-ai-os-creator-skills/skills/forge-fomo/SKILL.md +7 -0
  306. package/plugins/roblox-ai-os-creator-skills/skills/forge-mastery/SKILL.md +7 -0
  307. package/plugins/roblox-ai-os-creator-skills/skills/forge-progression/SKILL.md +7 -0
  308. package/plugins/roblox-ai-os-creator-skills/skills/forge-reward-loop/SKILL.md +7 -0
  309. package/plugins/roblox-ai-os-creator-skills/skills/forge-status/SKILL.md +7 -0
  310. package/plugins/roblox-ai-os-creator-skills/skills/help/SKILL.md +8 -1
  311. package/plugins/roblox-ai-os-creator-skills/skills/hud/SKILL.md +16 -9
  312. package/plugins/roblox-ai-os-creator-skills/skills/note/SKILL.md +8 -1
  313. package/plugins/roblox-ai-os-creator-skills/skills/pipeline/SKILL.md +18 -11
  314. package/plugins/roblox-ai-os-creator-skills/skills/plan/SKILL.md +36 -29
  315. package/plugins/roblox-ai-os-creator-skills/skills/rcs-setup/SKILL.md +8 -1
  316. package/plugins/roblox-ai-os-creator-skills/skills/security-review/SKILL.md +120 -236
  317. package/plugins/roblox-ai-os-creator-skills/skills/skill/SKILL.md +20 -13
  318. package/plugins/roblox-ai-os-creator-skills/skills/team/SKILL.md +17 -11
  319. package/plugins/roblox-ai-os-creator-skills/skills/trace/SKILL.md +7 -0
  320. package/plugins/roblox-ai-os-creator-skills/skills/ultraqa/SKILL.md +10 -3
  321. package/plugins/roblox-ai-os-creator-skills/skills/ultrawork/SKILL.md +19 -12
  322. package/plugins/roblox-ai-os-creator-skills/skills/{visual-ralph → visual-forge}/SKILL.md +36 -27
  323. package/plugins/roblox-ai-os-creator-skills/skills/visual-verdict/SKILL.md +9 -2
  324. package/plugins/roblox-ai-os-creator-skills/skills/wiki/SKILL.md +10 -3
  325. package/plugins/roblox-ai-os-creator-skills/skills/worker/SKILL.md +16 -7
  326. package/plugins/roblox-ai-os-creator-skills/templates/roblox/pre-action-plan.md +1 -0
  327. package/prompts/analyst.md +7 -0
  328. package/prompts/architect.md +11 -4
  329. package/prompts/build-fixer.md +7 -0
  330. package/prompts/code-reviewer.md +9 -2
  331. package/prompts/code-simplifier.md +4 -0
  332. package/prompts/critic.md +13 -6
  333. package/prompts/debugger.md +8 -1
  334. package/prompts/dependency-expert.md +8 -1
  335. package/prompts/designer.md +20 -10
  336. package/prompts/executor.md +7 -0
  337. package/prompts/explore-harness.md +7 -0
  338. package/prompts/explore.md +7 -0
  339. package/prompts/git-master.md +8 -1
  340. package/prompts/planner.md +10 -3
  341. package/prompts/researcher.md +7 -0
  342. package/prompts/security-reviewer.md +76 -92
  343. package/prompts/sisyphus-lite.md +7 -0
  344. package/prompts/team-executor.md +7 -0
  345. package/prompts/team-orchestrator.md +9 -2
  346. package/prompts/test-engineer.md +11 -3
  347. package/prompts/verifier.md +7 -0
  348. package/prompts/vision.md +9 -2
  349. package/prompts/writer.md +11 -4
  350. package/skills/.agents/skills/roblox-animations/SKILL.md +220 -0
  351. package/skills/.agents/skills/roblox-datastores/SKILL.md +219 -0
  352. package/skills/.agents/skills/roblox-gui/SKILL.md +192 -0
  353. package/skills/.agents/skills/roblox-monetization/SKILL.md +208 -0
  354. package/skills/.agents/skills/roblox-performance/SKILL.md +230 -0
  355. package/skills/.agents/skills/roblox-remote-events/SKILL.md +199 -0
  356. package/skills/.agents/skills/roblox-security/SKILL.md +236 -0
  357. package/skills/ai-slop-cleaner/SKILL.md +14 -7
  358. package/skills/analyze/SKILL.md +9 -2
  359. package/skills/ask-claude/SKILL.md +7 -0
  360. package/skills/ask-gemini/SKILL.md +7 -0
  361. package/skills/autoforge/SKILL.md +7 -0
  362. package/skills/autopilot/SKILL.md +48 -41
  363. package/skills/autoresearch/SKILL.md +8 -1
  364. package/skills/blueprint/SKILL.md +227 -9
  365. package/skills/blueprint-loop/SKILL.md +7 -0
  366. package/skills/blueprint-psych/SKILL.md +7 -0
  367. package/skills/blueprint-retention/SKILL.md +7 -0
  368. package/skills/blueprint-social/SKILL.md +7 -0
  369. package/skills/brief/SKILL.md +7 -0
  370. package/skills/brief-audience/SKILL.md +7 -0
  371. package/skills/brief-motivation/SKILL.md +7 -0
  372. package/skills/build-fix/SKILL.md +9 -2
  373. package/skills/cancel/SKILL.md +59 -52
  374. package/skills/code-review/SKILL.md +30 -24
  375. package/skills/configure-notifications/SKILL.md +7 -0
  376. package/skills/crew/SKILL.md +7 -0
  377. package/skills/deep-interview/SKILL.md +25 -18
  378. package/skills/deepsearch/SKILL.md +7 -0
  379. package/skills/doctor/SKILL.md +7 -0
  380. package/skills/ecomode/SKILL.md +9 -2
  381. package/skills/forge/SKILL.md +174 -11
  382. package/skills/forge-community/SKILL.md +7 -0
  383. package/skills/forge-daily-loop/SKILL.md +7 -0
  384. package/skills/forge-event-loop/SKILL.md +7 -0
  385. package/skills/forge-fomo/SKILL.md +7 -0
  386. package/skills/{ralph-init → forge-init}/SKILL.md +20 -13
  387. package/skills/forge-mastery/SKILL.md +7 -0
  388. package/skills/forge-progression/SKILL.md +7 -0
  389. package/skills/forge-reward-loop/SKILL.md +7 -0
  390. package/skills/forge-status/SKILL.md +7 -0
  391. package/skills/git-master/SKILL.md +7 -0
  392. package/skills/help/SKILL.md +8 -1
  393. package/skills/hud/SKILL.md +16 -9
  394. package/skills/note/SKILL.md +8 -1
  395. package/skills/pipeline/SKILL.md +18 -11
  396. package/skills/plan/SKILL.md +36 -29
  397. package/skills/rcs-setup/SKILL.md +8 -1
  398. package/skills/review/SKILL.md +7 -0
  399. package/skills/security-review/SKILL.md +120 -236
  400. package/skills/skill/SKILL.md +20 -13
  401. package/skills/skills-lock.json +47 -0
  402. package/skills/swarm/SKILL.md +8 -1
  403. package/skills/tdd/SKILL.md +7 -0
  404. package/skills/team/SKILL.md +17 -11
  405. package/skills/trace/SKILL.md +7 -0
  406. package/skills/ultraqa/SKILL.md +10 -3
  407. package/skills/ultrawork/SKILL.md +19 -12
  408. package/skills/{visual-ralph → visual-forge}/SKILL.md +36 -27
  409. package/skills/visual-verdict/SKILL.md +9 -2
  410. package/skills/web-clone/SKILL.md +14 -7
  411. package/skills/wiki/SKILL.md +10 -3
  412. package/skills/worker/SKILL.md +16 -7
  413. package/src/scripts/__tests__/codex-native-hook.test.ts +386 -319
  414. package/src/scripts/__tests__/run-test-files.test.ts +6 -4
  415. package/src/scripts/__tests__/verify-native-agents.test.ts +16 -16
  416. package/src/scripts/codex-native-hook.ts +34 -34
  417. package/src/scripts/eval/eval-cross-server-party-flow.ts +14 -0
  418. package/src/scripts/eval/eval-gui-onboarding-clarity.ts +20 -0
  419. package/src/scripts/eval/eval-liveops-reward-loop-balance.ts +14 -0
  420. package/src/scripts/eval/eval-profile-datastore-recovery.ts +20 -0
  421. package/src/scripts/eval/eval-remote-contract-hardening.ts +20 -0
  422. package/src/scripts/notify-fallback-watcher.ts +147 -146
  423. package/src/scripts/notify-hook/__tests__/team-worker-posttooluse.test.ts +24 -10
  424. package/src/scripts/notify-hook/{ralph-session-resume.ts → forge-session-resume.ts} +45 -43
  425. package/src/scripts/notify-hook/team-dispatch.ts +31 -4
  426. package/src/scripts/notify-hook/visual-verdict.ts +3 -3
  427. package/src/scripts/notify-hook.ts +10 -10
  428. package/src/scripts/run-test-files.ts +1 -1
  429. package/src/scripts/surface-taxonomy.ts +316 -0
  430. package/src/scripts/sync-plugin-mirror.ts +5 -4
  431. package/src/scripts/tmux-hook-engine.ts +31 -19
  432. package/templates/AGENTS.md +24 -15
  433. package/templates/catalog-manifest.json +5 -88
  434. package/templates/roblox/pre-action-plan.md +1 -0
  435. package/templates/roblox/robloxstudio-mcp.codex.json +18 -0
  436. package/templates/roblox/robloxstudio-mcp.windows.json +22 -0
  437. package/dist/adapt/__tests__/foundation.test.d.ts +0 -2
  438. package/dist/adapt/__tests__/foundation.test.d.ts.map +0 -1
  439. package/dist/adapt/__tests__/foundation.test.js +0 -171
  440. package/dist/adapt/__tests__/foundation.test.js.map +0 -1
  441. package/dist/adapt/__tests__/hermes.test.d.ts +0 -2
  442. package/dist/adapt/__tests__/hermes.test.d.ts.map +0 -1
  443. package/dist/adapt/__tests__/hermes.test.js +0 -137
  444. package/dist/adapt/__tests__/hermes.test.js.map +0 -1
  445. package/dist/agents/__tests__/definitions.test.d.ts +0 -2
  446. package/dist/agents/__tests__/definitions.test.d.ts.map +0 -1
  447. package/dist/agents/__tests__/definitions.test.js +0 -62
  448. package/dist/agents/__tests__/definitions.test.js.map +0 -1
  449. package/dist/agents/__tests__/native-config.test.d.ts +0 -2
  450. package/dist/agents/__tests__/native-config.test.d.ts.map +0 -1
  451. package/dist/agents/__tests__/native-config.test.js +0 -278
  452. package/dist/agents/__tests__/native-config.test.js.map +0 -1
  453. package/dist/autoresearch/__tests__/contracts.test.d.ts +0 -2
  454. package/dist/autoresearch/__tests__/contracts.test.d.ts.map +0 -1
  455. package/dist/autoresearch/__tests__/contracts.test.js +0 -127
  456. package/dist/autoresearch/__tests__/contracts.test.js.map +0 -1
  457. package/dist/autoresearch/__tests__/runtime-parity-extra.test.d.ts +0 -2
  458. package/dist/autoresearch/__tests__/runtime-parity-extra.test.d.ts.map +0 -1
  459. package/dist/autoresearch/__tests__/runtime-parity-extra.test.js +0 -356
  460. package/dist/autoresearch/__tests__/runtime-parity-extra.test.js.map +0 -1
  461. package/dist/autoresearch/__tests__/runtime.test.d.ts +0 -2
  462. package/dist/autoresearch/__tests__/runtime.test.d.ts.map +0 -1
  463. package/dist/autoresearch/__tests__/runtime.test.js +0 -218
  464. package/dist/autoresearch/__tests__/runtime.test.js.map +0 -1
  465. package/dist/autoresearch/__tests__/skill-validation.test.d.ts +0 -2
  466. package/dist/autoresearch/__tests__/skill-validation.test.d.ts.map +0 -1
  467. package/dist/autoresearch/__tests__/skill-validation.test.js +0 -91
  468. package/dist/autoresearch/__tests__/skill-validation.test.js.map +0 -1
  469. package/dist/catalog/__tests__/generator.test.d.ts +0 -2
  470. package/dist/catalog/__tests__/generator.test.d.ts.map +0 -1
  471. package/dist/catalog/__tests__/generator.test.js +0 -49
  472. package/dist/catalog/__tests__/generator.test.js.map +0 -1
  473. package/dist/catalog/__tests__/plugin-bundle-ssot.test.d.ts +0 -2
  474. package/dist/catalog/__tests__/plugin-bundle-ssot.test.d.ts.map +0 -1
  475. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js +0 -83
  476. package/dist/catalog/__tests__/plugin-bundle-ssot.test.js.map +0 -1
  477. package/dist/catalog/__tests__/schema.test.d.ts +0 -2
  478. package/dist/catalog/__tests__/schema.test.d.ts.map +0 -1
  479. package/dist/catalog/__tests__/schema.test.js +0 -91
  480. package/dist/catalog/__tests__/schema.test.js.map +0 -1
  481. package/dist/cli/__tests__/adapt-help.test.d.ts +0 -2
  482. package/dist/cli/__tests__/adapt-help.test.d.ts.map +0 -1
  483. package/dist/cli/__tests__/adapt-help.test.js +0 -37
  484. package/dist/cli/__tests__/adapt-help.test.js.map +0 -1
  485. package/dist/cli/__tests__/adapt.test.d.ts +0 -2
  486. package/dist/cli/__tests__/adapt.test.d.ts.map +0 -1
  487. package/dist/cli/__tests__/adapt.test.js +0 -62
  488. package/dist/cli/__tests__/adapt.test.js.map +0 -1
  489. package/dist/cli/__tests__/agents-init.test.d.ts +0 -2
  490. package/dist/cli/__tests__/agents-init.test.d.ts.map +0 -1
  491. package/dist/cli/__tests__/agents-init.test.js +0 -184
  492. package/dist/cli/__tests__/agents-init.test.js.map +0 -1
  493. package/dist/cli/__tests__/agents.test.d.ts +0 -2
  494. package/dist/cli/__tests__/agents.test.d.ts.map +0 -1
  495. package/dist/cli/__tests__/agents.test.js +0 -137
  496. package/dist/cli/__tests__/agents.test.js.map +0 -1
  497. package/dist/cli/__tests__/ask.test.d.ts +0 -2
  498. package/dist/cli/__tests__/ask.test.d.ts.map +0 -1
  499. package/dist/cli/__tests__/ask.test.js +0 -265
  500. package/dist/cli/__tests__/ask.test.js.map +0 -1
  501. package/dist/cli/__tests__/autoresearch-guided.test.d.ts +0 -2
  502. package/dist/cli/__tests__/autoresearch-guided.test.d.ts.map +0 -1
  503. package/dist/cli/__tests__/autoresearch-guided.test.js +0 -365
  504. package/dist/cli/__tests__/autoresearch-guided.test.js.map +0 -1
  505. package/dist/cli/__tests__/autoresearch.test.d.ts +0 -2
  506. package/dist/cli/__tests__/autoresearch.test.d.ts.map +0 -1
  507. package/dist/cli/__tests__/autoresearch.test.js +0 -203
  508. package/dist/cli/__tests__/autoresearch.test.js.map +0 -1
  509. package/dist/cli/__tests__/catalog-contract.test.d.ts +0 -2
  510. package/dist/cli/__tests__/catalog-contract.test.d.ts.map +0 -1
  511. package/dist/cli/__tests__/catalog-contract.test.js +0 -18
  512. package/dist/cli/__tests__/catalog-contract.test.js.map +0 -1
  513. package/dist/cli/__tests__/cleanup.test.d.ts +0 -2
  514. package/dist/cli/__tests__/cleanup.test.d.ts.map +0 -1
  515. package/dist/cli/__tests__/cleanup.test.js +0 -419
  516. package/dist/cli/__tests__/cleanup.test.js.map +0 -1
  517. package/dist/cli/__tests__/codex-plugin-layout.test.d.ts +0 -2
  518. package/dist/cli/__tests__/codex-plugin-layout.test.d.ts.map +0 -1
  519. package/dist/cli/__tests__/codex-plugin-layout.test.js +0 -210
  520. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +0 -1
  521. package/dist/cli/__tests__/doctor-context-window-warning.test.d.ts +0 -2
  522. package/dist/cli/__tests__/doctor-context-window-warning.test.d.ts.map +0 -1
  523. package/dist/cli/__tests__/doctor-context-window-warning.test.js +0 -122
  524. package/dist/cli/__tests__/doctor-context-window-warning.test.js.map +0 -1
  525. package/dist/cli/__tests__/doctor-invalid-config.test.d.ts +0 -2
  526. package/dist/cli/__tests__/doctor-invalid-config.test.d.ts.map +0 -1
  527. package/dist/cli/__tests__/doctor-invalid-config.test.js +0 -52
  528. package/dist/cli/__tests__/doctor-invalid-config.test.js.map +0 -1
  529. package/dist/cli/__tests__/doctor-team.test.d.ts +0 -2
  530. package/dist/cli/__tests__/doctor-team.test.d.ts.map +0 -1
  531. package/dist/cli/__tests__/doctor-team.test.js +0 -299
  532. package/dist/cli/__tests__/doctor-team.test.js.map +0 -1
  533. package/dist/cli/__tests__/doctor-warning-copy.test.d.ts +0 -2
  534. package/dist/cli/__tests__/doctor-warning-copy.test.d.ts.map +0 -1
  535. package/dist/cli/__tests__/doctor-warning-copy.test.js +0 -438
  536. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +0 -1
  537. package/dist/cli/__tests__/error-handling-warnings.test.d.ts +0 -2
  538. package/dist/cli/__tests__/error-handling-warnings.test.d.ts.map +0 -1
  539. package/dist/cli/__tests__/error-handling-warnings.test.js +0 -52
  540. package/dist/cli/__tests__/error-handling-warnings.test.js.map +0 -1
  541. package/dist/cli/__tests__/exec.test.d.ts +0 -2
  542. package/dist/cli/__tests__/exec.test.d.ts.map +0 -1
  543. package/dist/cli/__tests__/exec.test.js +0 -213
  544. package/dist/cli/__tests__/exec.test.js.map +0 -1
  545. package/dist/cli/__tests__/explore-windows-diagnostics.test.d.ts +0 -2
  546. package/dist/cli/__tests__/explore-windows-diagnostics.test.d.ts.map +0 -1
  547. package/dist/cli/__tests__/explore-windows-diagnostics.test.js +0 -17
  548. package/dist/cli/__tests__/explore-windows-diagnostics.test.js.map +0 -1
  549. package/dist/cli/__tests__/explore.test.d.ts +0 -2
  550. package/dist/cli/__tests__/explore.test.d.ts.map +0 -1
  551. package/dist/cli/__tests__/explore.test.js +0 -1090
  552. package/dist/cli/__tests__/explore.test.js.map +0 -1
  553. package/dist/cli/__tests__/hooks.test.d.ts +0 -2
  554. package/dist/cli/__tests__/hooks.test.d.ts.map +0 -1
  555. package/dist/cli/__tests__/hooks.test.js +0 -55
  556. package/dist/cli/__tests__/hooks.test.js.map +0 -1
  557. package/dist/cli/__tests__/index.test.d.ts +0 -2
  558. package/dist/cli/__tests__/index.test.d.ts.map +0 -1
  559. package/dist/cli/__tests__/index.test.js +0 -2259
  560. package/dist/cli/__tests__/index.test.js.map +0 -1
  561. package/dist/cli/__tests__/launch-fallback.test.d.ts +0 -2
  562. package/dist/cli/__tests__/launch-fallback.test.d.ts.map +0 -1
  563. package/dist/cli/__tests__/launch-fallback.test.js +0 -661
  564. package/dist/cli/__tests__/launch-fallback.test.js.map +0 -1
  565. package/dist/cli/__tests__/lifecycle-notifications.test.d.ts +0 -2
  566. package/dist/cli/__tests__/lifecycle-notifications.test.d.ts.map +0 -1
  567. package/dist/cli/__tests__/lifecycle-notifications.test.js +0 -48
  568. package/dist/cli/__tests__/lifecycle-notifications.test.js.map +0 -1
  569. package/dist/cli/__tests__/list.test.d.ts +0 -2
  570. package/dist/cli/__tests__/list.test.d.ts.map +0 -1
  571. package/dist/cli/__tests__/list.test.js +0 -38
  572. package/dist/cli/__tests__/list.test.js.map +0 -1
  573. package/dist/cli/__tests__/mcp-parity.test.d.ts +0 -2
  574. package/dist/cli/__tests__/mcp-parity.test.d.ts.map +0 -1
  575. package/dist/cli/__tests__/mcp-parity.test.js +0 -228
  576. package/dist/cli/__tests__/mcp-parity.test.js.map +0 -1
  577. package/dist/cli/__tests__/mcp-serve.test.d.ts +0 -2
  578. package/dist/cli/__tests__/mcp-serve.test.d.ts.map +0 -1
  579. package/dist/cli/__tests__/mcp-serve.test.js +0 -64
  580. package/dist/cli/__tests__/mcp-serve.test.js.map +0 -1
  581. package/dist/cli/__tests__/native-assets.test.d.ts +0 -2
  582. package/dist/cli/__tests__/native-assets.test.d.ts.map +0 -1
  583. package/dist/cli/__tests__/native-assets.test.js +0 -308
  584. package/dist/cli/__tests__/native-assets.test.js.map +0 -1
  585. package/dist/cli/__tests__/native-hook-dispatch-contract.test.d.ts +0 -2
  586. package/dist/cli/__tests__/native-hook-dispatch-contract.test.d.ts.map +0 -1
  587. package/dist/cli/__tests__/native-hook-dispatch-contract.test.js +0 -11
  588. package/dist/cli/__tests__/native-hook-dispatch-contract.test.js.map +0 -1
  589. package/dist/cli/__tests__/nested-help-routing.test.d.ts +0 -2
  590. package/dist/cli/__tests__/nested-help-routing.test.d.ts.map +0 -1
  591. package/dist/cli/__tests__/nested-help-routing.test.js +0 -96
  592. package/dist/cli/__tests__/nested-help-routing.test.js.map +0 -1
  593. package/dist/cli/__tests__/package-bin-contract.test.d.ts +0 -2
  594. package/dist/cli/__tests__/package-bin-contract.test.d.ts.map +0 -1
  595. package/dist/cli/__tests__/package-bin-contract.test.js +0 -177
  596. package/dist/cli/__tests__/package-bin-contract.test.js.map +0 -1
  597. package/dist/cli/__tests__/packaged-explore-harness-lock.d.ts +0 -3
  598. package/dist/cli/__tests__/packaged-explore-harness-lock.d.ts.map +0 -1
  599. package/dist/cli/__tests__/packaged-explore-harness-lock.js +0 -67
  600. package/dist/cli/__tests__/packaged-explore-harness-lock.js.map +0 -1
  601. package/dist/cli/__tests__/packaged-script-resolution.test.d.ts +0 -2
  602. package/dist/cli/__tests__/packaged-script-resolution.test.d.ts.map +0 -1
  603. package/dist/cli/__tests__/packaged-script-resolution.test.js +0 -19
  604. package/dist/cli/__tests__/packaged-script-resolution.test.js.map +0 -1
  605. package/dist/cli/__tests__/prompt-skill-sanitization.test.d.ts +0 -2
  606. package/dist/cli/__tests__/prompt-skill-sanitization.test.d.ts.map +0 -1
  607. package/dist/cli/__tests__/prompt-skill-sanitization.test.js +0 -48
  608. package/dist/cli/__tests__/prompt-skill-sanitization.test.js.map +0 -1
  609. package/dist/cli/__tests__/question.test.d.ts +0 -2
  610. package/dist/cli/__tests__/question.test.d.ts.map +0 -1
  611. package/dist/cli/__tests__/question.test.js +0 -633
  612. package/dist/cli/__tests__/question.test.js.map +0 -1
  613. package/dist/cli/__tests__/ralph-deslop-contract.test.d.ts +0 -2
  614. package/dist/cli/__tests__/ralph-deslop-contract.test.d.ts.map +0 -1
  615. package/dist/cli/__tests__/ralph-deslop-contract.test.js +0 -28
  616. package/dist/cli/__tests__/ralph-deslop-contract.test.js.map +0 -1
  617. package/dist/cli/__tests__/ralph-prd-deep-interview.test.d.ts +0 -2
  618. package/dist/cli/__tests__/ralph-prd-deep-interview.test.d.ts.map +0 -1
  619. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js +0 -24
  620. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js.map +0 -1
  621. package/dist/cli/__tests__/ralph-prd-smoke.test.d.ts +0 -2
  622. package/dist/cli/__tests__/ralph-prd-smoke.test.d.ts.map +0 -1
  623. package/dist/cli/__tests__/ralph-prd-smoke.test.js +0 -167
  624. package/dist/cli/__tests__/ralph-prd-smoke.test.js.map +0 -1
  625. package/dist/cli/__tests__/ralph.test.d.ts +0 -2
  626. package/dist/cli/__tests__/ralph.test.d.ts.map +0 -1
  627. package/dist/cli/__tests__/ralph.test.js +0 -256
  628. package/dist/cli/__tests__/ralph.test.js.map +0 -1
  629. package/dist/cli/__tests__/resume.test.d.ts +0 -2
  630. package/dist/cli/__tests__/resume.test.d.ts.map +0 -1
  631. package/dist/cli/__tests__/resume.test.js +0 -84
  632. package/dist/cli/__tests__/resume.test.js.map +0 -1
  633. package/dist/cli/__tests__/session-scoped-runtime.test.d.ts +0 -2
  634. package/dist/cli/__tests__/session-scoped-runtime.test.d.ts.map +0 -1
  635. package/dist/cli/__tests__/session-scoped-runtime.test.js +0 -146
  636. package/dist/cli/__tests__/session-scoped-runtime.test.js.map +0 -1
  637. package/dist/cli/__tests__/session-search-help.test.d.ts +0 -2
  638. package/dist/cli/__tests__/session-search-help.test.d.ts.map +0 -1
  639. package/dist/cli/__tests__/session-search-help.test.js +0 -76
  640. package/dist/cli/__tests__/session-search-help.test.js.map +0 -1
  641. package/dist/cli/__tests__/session-search.test.d.ts +0 -2
  642. package/dist/cli/__tests__/session-search.test.d.ts.map +0 -1
  643. package/dist/cli/__tests__/session-search.test.js +0 -77
  644. package/dist/cli/__tests__/session-search.test.js.map +0 -1
  645. package/dist/cli/__tests__/setup-agents-overwrite.test.d.ts +0 -2
  646. package/dist/cli/__tests__/setup-agents-overwrite.test.d.ts.map +0 -1
  647. package/dist/cli/__tests__/setup-agents-overwrite.test.js +0 -457
  648. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +0 -1
  649. package/dist/cli/__tests__/setup-gh-star.test.d.ts +0 -2
  650. package/dist/cli/__tests__/setup-gh-star.test.d.ts.map +0 -1
  651. package/dist/cli/__tests__/setup-gh-star.test.js +0 -67
  652. package/dist/cli/__tests__/setup-gh-star.test.js.map +0 -1
  653. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.d.ts +0 -2
  654. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.d.ts.map +0 -1
  655. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js +0 -189
  656. package/dist/cli/__tests__/setup-hooks-shared-ownership.test.js.map +0 -1
  657. package/dist/cli/__tests__/setup-install-mode.test.d.ts +0 -2
  658. package/dist/cli/__tests__/setup-install-mode.test.d.ts.map +0 -1
  659. package/dist/cli/__tests__/setup-install-mode.test.js +0 -873
  660. package/dist/cli/__tests__/setup-install-mode.test.js.map +0 -1
  661. package/dist/cli/__tests__/setup-prompts-overwrite.test.d.ts +0 -2
  662. package/dist/cli/__tests__/setup-prompts-overwrite.test.d.ts.map +0 -1
  663. package/dist/cli/__tests__/setup-prompts-overwrite.test.js +0 -191
  664. package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +0 -1
  665. package/dist/cli/__tests__/setup-refresh.test.d.ts +0 -2
  666. package/dist/cli/__tests__/setup-refresh.test.d.ts.map +0 -1
  667. package/dist/cli/__tests__/setup-refresh.test.js +0 -591
  668. package/dist/cli/__tests__/setup-refresh.test.js.map +0 -1
  669. package/dist/cli/__tests__/setup-scope.test.d.ts +0 -2
  670. package/dist/cli/__tests__/setup-scope.test.d.ts.map +0 -1
  671. package/dist/cli/__tests__/setup-scope.test.js +0 -340
  672. package/dist/cli/__tests__/setup-scope.test.js.map +0 -1
  673. package/dist/cli/__tests__/setup-skill-validation.test.d.ts +0 -2
  674. package/dist/cli/__tests__/setup-skill-validation.test.d.ts.map +0 -1
  675. package/dist/cli/__tests__/setup-skill-validation.test.js +0 -44
  676. package/dist/cli/__tests__/setup-skill-validation.test.js.map +0 -1
  677. package/dist/cli/__tests__/setup-skills-overwrite.test.d.ts +0 -2
  678. package/dist/cli/__tests__/setup-skills-overwrite.test.d.ts.map +0 -1
  679. package/dist/cli/__tests__/setup-skills-overwrite.test.js +0 -295
  680. package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +0 -1
  681. package/dist/cli/__tests__/sidecar.test.d.ts +0 -2
  682. package/dist/cli/__tests__/sidecar.test.d.ts.map +0 -1
  683. package/dist/cli/__tests__/sidecar.test.js +0 -24
  684. package/dist/cli/__tests__/sidecar.test.js.map +0 -1
  685. package/dist/cli/__tests__/sparkshell-cli.test.d.ts +0 -2
  686. package/dist/cli/__tests__/sparkshell-cli.test.d.ts.map +0 -1
  687. package/dist/cli/__tests__/sparkshell-cli.test.js +0 -400
  688. package/dist/cli/__tests__/sparkshell-cli.test.js.map +0 -1
  689. package/dist/cli/__tests__/sparkshell-packaging.test.d.ts +0 -2
  690. package/dist/cli/__tests__/sparkshell-packaging.test.d.ts.map +0 -1
  691. package/dist/cli/__tests__/sparkshell-packaging.test.js +0 -74
  692. package/dist/cli/__tests__/sparkshell-packaging.test.js.map +0 -1
  693. package/dist/cli/__tests__/star-prompt.test.d.ts +0 -2
  694. package/dist/cli/__tests__/star-prompt.test.d.ts.map +0 -1
  695. package/dist/cli/__tests__/star-prompt.test.js +0 -172
  696. package/dist/cli/__tests__/star-prompt.test.js.map +0 -1
  697. package/dist/cli/__tests__/state.test.d.ts +0 -2
  698. package/dist/cli/__tests__/state.test.d.ts.map +0 -1
  699. package/dist/cli/__tests__/state.test.js +0 -46
  700. package/dist/cli/__tests__/state.test.js.map +0 -1
  701. package/dist/cli/__tests__/team-decompose.test.d.ts +0 -2
  702. package/dist/cli/__tests__/team-decompose.test.d.ts.map +0 -1
  703. package/dist/cli/__tests__/team-decompose.test.js +0 -133
  704. package/dist/cli/__tests__/team-decompose.test.js.map +0 -1
  705. package/dist/cli/__tests__/team.test.d.ts +0 -2
  706. package/dist/cli/__tests__/team.test.d.ts.map +0 -1
  707. package/dist/cli/__tests__/team.test.js +0 -1820
  708. package/dist/cli/__tests__/team.test.js.map +0 -1
  709. package/dist/cli/__tests__/uninstall.test.d.ts +0 -2
  710. package/dist/cli/__tests__/uninstall.test.d.ts.map +0 -1
  711. package/dist/cli/__tests__/uninstall.test.js +0 -766
  712. package/dist/cli/__tests__/uninstall.test.js.map +0 -1
  713. package/dist/cli/__tests__/update.test.d.ts +0 -2
  714. package/dist/cli/__tests__/update.test.d.ts.map +0 -1
  715. package/dist/cli/__tests__/update.test.js +0 -589
  716. package/dist/cli/__tests__/update.test.js.map +0 -1
  717. package/dist/cli/__tests__/version-sync-contract.test.d.ts +0 -2
  718. package/dist/cli/__tests__/version-sync-contract.test.d.ts.map +0 -1
  719. package/dist/cli/__tests__/version-sync-contract.test.js +0 -41
  720. package/dist/cli/__tests__/version-sync-contract.test.js.map +0 -1
  721. package/dist/cli/__tests__/version.test.d.ts +0 -2
  722. package/dist/cli/__tests__/version.test.d.ts.map +0 -1
  723. package/dist/cli/__tests__/version.test.js +0 -21
  724. package/dist/cli/__tests__/version.test.js.map +0 -1
  725. package/dist/cli/__tests__/windows-popup-loop-contract.test.d.ts +0 -2
  726. package/dist/cli/__tests__/windows-popup-loop-contract.test.d.ts.map +0 -1
  727. package/dist/cli/__tests__/windows-popup-loop-contract.test.js +0 -31
  728. package/dist/cli/__tests__/windows-popup-loop-contract.test.js.map +0 -1
  729. package/dist/cli/ralph.d.ts +0 -17
  730. package/dist/compat/__tests__/doctor-contract.test.d.ts +0 -2
  731. package/dist/compat/__tests__/doctor-contract.test.d.ts.map +0 -1
  732. package/dist/compat/__tests__/doctor-contract.test.js +0 -108
  733. package/dist/compat/__tests__/doctor-contract.test.js.map +0 -1
  734. package/dist/compat/__tests__/rust-runtime-compat.test.d.ts +0 -2
  735. package/dist/compat/__tests__/rust-runtime-compat.test.d.ts.map +0 -1
  736. package/dist/compat/__tests__/rust-runtime-compat.test.js +0 -218
  737. package/dist/compat/__tests__/rust-runtime-compat.test.js.map +0 -1
  738. package/dist/config/__tests__/codex-hooks.test.d.ts +0 -2
  739. package/dist/config/__tests__/codex-hooks.test.d.ts.map +0 -1
  740. package/dist/config/__tests__/codex-hooks.test.js +0 -77
  741. package/dist/config/__tests__/codex-hooks.test.js.map +0 -1
  742. package/dist/config/__tests__/generator-idempotent.test.d.ts +0 -2
  743. package/dist/config/__tests__/generator-idempotent.test.d.ts.map +0 -1
  744. package/dist/config/__tests__/generator-idempotent.test.js +0 -882
  745. package/dist/config/__tests__/generator-idempotent.test.js.map +0 -1
  746. package/dist/config/__tests__/generator-notify.test.d.ts +0 -2
  747. package/dist/config/__tests__/generator-notify.test.d.ts.map +0 -1
  748. package/dist/config/__tests__/generator-notify.test.js +0 -343
  749. package/dist/config/__tests__/generator-notify.test.js.map +0 -1
  750. package/dist/config/__tests__/generator-status-line-presets.test.d.ts +0 -2
  751. package/dist/config/__tests__/generator-status-line-presets.test.d.ts.map +0 -1
  752. package/dist/config/__tests__/generator-status-line-presets.test.js +0 -203
  753. package/dist/config/__tests__/generator-status-line-presets.test.js.map +0 -1
  754. package/dist/config/__tests__/mcp-registry.test.d.ts +0 -2
  755. package/dist/config/__tests__/mcp-registry.test.d.ts.map +0 -1
  756. package/dist/config/__tests__/mcp-registry.test.js +0 -190
  757. package/dist/config/__tests__/mcp-registry.test.js.map +0 -1
  758. package/dist/config/__tests__/models.test.d.ts +0 -2
  759. package/dist/config/__tests__/models.test.d.ts.map +0 -1
  760. package/dist/config/__tests__/models.test.js +0 -224
  761. package/dist/config/__tests__/models.test.js.map +0 -1
  762. package/dist/config/__tests__/wiki-config-contract.test.d.ts +0 -2
  763. package/dist/config/__tests__/wiki-config-contract.test.d.ts.map +0 -1
  764. package/dist/config/__tests__/wiki-config-contract.test.js +0 -19
  765. package/dist/config/__tests__/wiki-config-contract.test.js.map +0 -1
  766. package/dist/document-refresh/__tests__/enforcer.test.d.ts +0 -2
  767. package/dist/document-refresh/__tests__/enforcer.test.d.ts.map +0 -1
  768. package/dist/document-refresh/__tests__/enforcer.test.js +0 -128
  769. package/dist/document-refresh/__tests__/enforcer.test.js.map +0 -1
  770. package/dist/hooks/__tests__/agents-overlay.test.d.ts +0 -8
  771. package/dist/hooks/__tests__/agents-overlay.test.d.ts.map +0 -1
  772. package/dist/hooks/__tests__/agents-overlay.test.js +0 -644
  773. package/dist/hooks/__tests__/agents-overlay.test.js.map +0 -1
  774. package/dist/hooks/__tests__/analyze-routing-contract.test.d.ts +0 -2
  775. package/dist/hooks/__tests__/analyze-routing-contract.test.d.ts.map +0 -1
  776. package/dist/hooks/__tests__/analyze-routing-contract.test.js +0 -45
  777. package/dist/hooks/__tests__/analyze-routing-contract.test.js.map +0 -1
  778. package/dist/hooks/__tests__/analyze-skill-contract.test.d.ts +0 -2
  779. package/dist/hooks/__tests__/analyze-skill-contract.test.d.ts.map +0 -1
  780. package/dist/hooks/__tests__/analyze-skill-contract.test.js +0 -48
  781. package/dist/hooks/__tests__/analyze-skill-contract.test.js.map +0 -1
  782. package/dist/hooks/__tests__/anti-slop-workflow.test.d.ts +0 -2
  783. package/dist/hooks/__tests__/anti-slop-workflow.test.d.ts.map +0 -1
  784. package/dist/hooks/__tests__/anti-slop-workflow.test.js +0 -146
  785. package/dist/hooks/__tests__/anti-slop-workflow.test.js.map +0 -1
  786. package/dist/hooks/__tests__/autopilot-skill-contract.test.d.ts +0 -2
  787. package/dist/hooks/__tests__/autopilot-skill-contract.test.d.ts.map +0 -1
  788. package/dist/hooks/__tests__/autopilot-skill-contract.test.js +0 -37
  789. package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +0 -1
  790. package/dist/hooks/__tests__/clawhip-event-contract.test.d.ts +0 -2
  791. package/dist/hooks/__tests__/clawhip-event-contract.test.d.ts.map +0 -1
  792. package/dist/hooks/__tests__/clawhip-event-contract.test.js +0 -37
  793. package/dist/hooks/__tests__/clawhip-event-contract.test.js.map +0 -1
  794. package/dist/hooks/__tests__/code-review-skill-contract.test.d.ts +0 -2
  795. package/dist/hooks/__tests__/code-review-skill-contract.test.d.ts.map +0 -1
  796. package/dist/hooks/__tests__/code-review-skill-contract.test.js +0 -56
  797. package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +0 -1
  798. package/dist/hooks/__tests__/codebase-map.test.d.ts +0 -8
  799. package/dist/hooks/__tests__/codebase-map.test.d.ts.map +0 -1
  800. package/dist/hooks/__tests__/codebase-map.test.js +0 -218
  801. package/dist/hooks/__tests__/codebase-map.test.js.map +0 -1
  802. package/dist/hooks/__tests__/consensus-execution-handoff.test.d.ts +0 -18
  803. package/dist/hooks/__tests__/consensus-execution-handoff.test.d.ts.map +0 -1
  804. package/dist/hooks/__tests__/consensus-execution-handoff.test.js +0 -234
  805. package/dist/hooks/__tests__/consensus-execution-handoff.test.js.map +0 -1
  806. package/dist/hooks/__tests__/debugger-log-recency-contract.test.d.ts +0 -2
  807. package/dist/hooks/__tests__/debugger-log-recency-contract.test.d.ts.map +0 -1
  808. package/dist/hooks/__tests__/debugger-log-recency-contract.test.js +0 -20
  809. package/dist/hooks/__tests__/debugger-log-recency-contract.test.js.map +0 -1
  810. package/dist/hooks/__tests__/deep-interview-contract.test.d.ts +0 -2
  811. package/dist/hooks/__tests__/deep-interview-contract.test.d.ts.map +0 -1
  812. package/dist/hooks/__tests__/deep-interview-contract.test.js +0 -213
  813. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +0 -1
  814. package/dist/hooks/__tests__/explicit-terminal-stop-docs-contract.test.d.ts +0 -2
  815. package/dist/hooks/__tests__/explicit-terminal-stop-docs-contract.test.d.ts.map +0 -1
  816. package/dist/hooks/__tests__/explicit-terminal-stop-docs-contract.test.js +0 -43
  817. package/dist/hooks/__tests__/explicit-terminal-stop-docs-contract.test.js.map +0 -1
  818. package/dist/hooks/__tests__/explicit-terminal-stop-model-docs-contract.test.d.ts +0 -2
  819. package/dist/hooks/__tests__/explicit-terminal-stop-model-docs-contract.test.d.ts.map +0 -1
  820. package/dist/hooks/__tests__/explicit-terminal-stop-model-docs-contract.test.js +0 -38
  821. package/dist/hooks/__tests__/explicit-terminal-stop-model-docs-contract.test.js.map +0 -1
  822. package/dist/hooks/__tests__/explore-routing.test.d.ts +0 -2
  823. package/dist/hooks/__tests__/explore-routing.test.d.ts.map +0 -1
  824. package/dist/hooks/__tests__/explore-routing.test.js +0 -43
  825. package/dist/hooks/__tests__/explore-routing.test.js.map +0 -1
  826. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.d.ts +0 -2
  827. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.d.ts.map +0 -1
  828. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js +0 -69
  829. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js.map +0 -1
  830. package/dist/hooks/__tests__/keyword-detector.test.d.ts +0 -2
  831. package/dist/hooks/__tests__/keyword-detector.test.d.ts.map +0 -1
  832. package/dist/hooks/__tests__/keyword-detector.test.js +0 -1716
  833. package/dist/hooks/__tests__/keyword-detector.test.js.map +0 -1
  834. package/dist/hooks/__tests__/notify-fallback-watcher.test.d.ts +0 -2
  835. package/dist/hooks/__tests__/notify-fallback-watcher.test.d.ts.map +0 -1
  836. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +0 -3898
  837. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +0 -1
  838. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.d.ts +0 -2
  839. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.d.ts.map +0 -1
  840. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +0 -786
  841. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +0 -1
  842. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.d.ts +0 -2
  843. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.d.ts.map +0 -1
  844. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +0 -2397
  845. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +0 -1
  846. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.d.ts +0 -2
  847. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.d.ts.map +0 -1
  848. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js +0 -160
  849. package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js.map +0 -1
  850. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.d.ts +0 -2
  851. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.d.ts.map +0 -1
  852. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js +0 -1178
  853. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js.map +0 -1
  854. package/dist/hooks/__tests__/notify-hook-modules.test.d.ts +0 -9
  855. package/dist/hooks/__tests__/notify-hook-modules.test.d.ts.map +0 -1
  856. package/dist/hooks/__tests__/notify-hook-modules.test.js +0 -529
  857. package/dist/hooks/__tests__/notify-hook-modules.test.js.map +0 -1
  858. package/dist/hooks/__tests__/notify-hook-native-dispatch-contract.test.d.ts +0 -2
  859. package/dist/hooks/__tests__/notify-hook-native-dispatch-contract.test.d.ts.map +0 -1
  860. package/dist/hooks/__tests__/notify-hook-native-dispatch-contract.test.js +0 -14
  861. package/dist/hooks/__tests__/notify-hook-native-dispatch-contract.test.js.map +0 -1
  862. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.d.ts +0 -2
  863. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.d.ts.map +0 -1
  864. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js +0 -682
  865. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js.map +0 -1
  866. package/dist/hooks/__tests__/notify-hook-regression-205.test.d.ts +0 -9
  867. package/dist/hooks/__tests__/notify-hook-regression-205.test.d.ts.map +0 -1
  868. package/dist/hooks/__tests__/notify-hook-regression-205.test.js +0 -255
  869. package/dist/hooks/__tests__/notify-hook-regression-205.test.js.map +0 -1
  870. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.d.ts +0 -2
  871. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.d.ts.map +0 -1
  872. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.js +0 -162
  873. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.js.map +0 -1
  874. package/dist/hooks/__tests__/notify-hook-session-scope.test.d.ts +0 -2
  875. package/dist/hooks/__tests__/notify-hook-session-scope.test.d.ts.map +0 -1
  876. package/dist/hooks/__tests__/notify-hook-session-scope.test.js +0 -301
  877. package/dist/hooks/__tests__/notify-hook-session-scope.test.js.map +0 -1
  878. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.d.ts +0 -2
  879. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.d.ts.map +0 -1
  880. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +0 -1510
  881. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +0 -1
  882. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.d.ts +0 -2
  883. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.d.ts.map +0 -1
  884. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +0 -2879
  885. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +0 -1
  886. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.d.ts +0 -2
  887. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.d.ts.map +0 -1
  888. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js +0 -228
  889. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js.map +0 -1
  890. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.d.ts +0 -2
  891. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.d.ts.map +0 -1
  892. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.js +0 -35
  893. package/dist/hooks/__tests__/notify-hook-team-worker-fail-closed.test.js.map +0 -1
  894. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.d.ts +0 -2
  895. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.d.ts.map +0 -1
  896. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +0 -1589
  897. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +0 -1
  898. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.d.ts +0 -10
  899. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.d.ts.map +0 -1
  900. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js +0 -0
  901. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js.map +0 -1
  902. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.d.ts +0 -11
  903. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.d.ts.map +0 -1
  904. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.js +0 -266
  905. package/dist/hooks/__tests__/notify-hook-visual-verdict.test.js.map +0 -1
  906. package/dist/hooks/__tests__/notify-hook-worker-idle.test.d.ts +0 -2
  907. package/dist/hooks/__tests__/notify-hook-worker-idle.test.d.ts.map +0 -1
  908. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +0 -895
  909. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +0 -1
  910. package/dist/hooks/__tests__/openclaw-setup-contract.test.d.ts +0 -2
  911. package/dist/hooks/__tests__/openclaw-setup-contract.test.d.ts.map +0 -1
  912. package/dist/hooks/__tests__/openclaw-setup-contract.test.js +0 -61
  913. package/dist/hooks/__tests__/openclaw-setup-contract.test.js.map +0 -1
  914. package/dist/hooks/__tests__/pre-context-gate-skills.test.d.ts +0 -2
  915. package/dist/hooks/__tests__/pre-context-gate-skills.test.d.ts.map +0 -1
  916. package/dist/hooks/__tests__/pre-context-gate-skills.test.js +0 -40
  917. package/dist/hooks/__tests__/pre-context-gate-skills.test.js.map +0 -1
  918. package/dist/hooks/__tests__/prompt-guidance-catalog.test.d.ts +0 -2
  919. package/dist/hooks/__tests__/prompt-guidance-catalog.test.d.ts.map +0 -1
  920. package/dist/hooks/__tests__/prompt-guidance-catalog.test.js +0 -11
  921. package/dist/hooks/__tests__/prompt-guidance-catalog.test.js.map +0 -1
  922. package/dist/hooks/__tests__/prompt-guidance-contract.test.d.ts +0 -2
  923. package/dist/hooks/__tests__/prompt-guidance-contract.test.d.ts.map +0 -1
  924. package/dist/hooks/__tests__/prompt-guidance-contract.test.js +0 -38
  925. package/dist/hooks/__tests__/prompt-guidance-contract.test.js.map +0 -1
  926. package/dist/hooks/__tests__/prompt-guidance-fragments.test.d.ts +0 -2
  927. package/dist/hooks/__tests__/prompt-guidance-fragments.test.d.ts.map +0 -1
  928. package/dist/hooks/__tests__/prompt-guidance-fragments.test.js +0 -48
  929. package/dist/hooks/__tests__/prompt-guidance-fragments.test.js.map +0 -1
  930. package/dist/hooks/__tests__/prompt-guidance-scenarios.test.d.ts +0 -2
  931. package/dist/hooks/__tests__/prompt-guidance-scenarios.test.d.ts.map +0 -1
  932. package/dist/hooks/__tests__/prompt-guidance-scenarios.test.js +0 -11
  933. package/dist/hooks/__tests__/prompt-guidance-scenarios.test.js.map +0 -1
  934. package/dist/hooks/__tests__/prompt-guidance-test-helpers.d.ts +0 -5
  935. package/dist/hooks/__tests__/prompt-guidance-test-helpers.d.ts.map +0 -1
  936. package/dist/hooks/__tests__/prompt-guidance-test-helpers.js +0 -34
  937. package/dist/hooks/__tests__/prompt-guidance-test-helpers.js.map +0 -1
  938. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.d.ts +0 -2
  939. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.d.ts.map +0 -1
  940. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js +0 -65
  941. package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js.map +0 -1
  942. package/dist/hooks/__tests__/prompt-orchestration-boundary.test.d.ts +0 -2
  943. package/dist/hooks/__tests__/prompt-orchestration-boundary.test.d.ts.map +0 -1
  944. package/dist/hooks/__tests__/prompt-orchestration-boundary.test.js +0 -38
  945. package/dist/hooks/__tests__/prompt-orchestration-boundary.test.js.map +0 -1
  946. package/dist/hooks/__tests__/prompt-refactor-contract.test.d.ts +0 -2
  947. package/dist/hooks/__tests__/prompt-refactor-contract.test.d.ts.map +0 -1
  948. package/dist/hooks/__tests__/prompt-refactor-contract.test.js +0 -22
  949. package/dist/hooks/__tests__/prompt-refactor-contract.test.js.map +0 -1
  950. package/dist/hooks/__tests__/prompt-team-routing.test.d.ts +0 -2
  951. package/dist/hooks/__tests__/prompt-team-routing.test.d.ts.map +0 -1
  952. package/dist/hooks/__tests__/prompt-team-routing.test.js +0 -49
  953. package/dist/hooks/__tests__/prompt-team-routing.test.js.map +0 -1
  954. package/dist/hooks/__tests__/session.test.d.ts +0 -2
  955. package/dist/hooks/__tests__/session.test.d.ts.map +0 -1
  956. package/dist/hooks/__tests__/session.test.js +0 -322
  957. package/dist/hooks/__tests__/session.test.js.map +0 -1
  958. package/dist/hooks/__tests__/skill-guidance-contract.test.d.ts +0 -2
  959. package/dist/hooks/__tests__/skill-guidance-contract.test.d.ts.map +0 -1
  960. package/dist/hooks/__tests__/skill-guidance-contract.test.js +0 -29
  961. package/dist/hooks/__tests__/skill-guidance-contract.test.js.map +0 -1
  962. package/dist/hooks/__tests__/task-size-detector.test.d.ts +0 -2
  963. package/dist/hooks/__tests__/task-size-detector.test.d.ts.map +0 -1
  964. package/dist/hooks/__tests__/task-size-detector.test.js +0 -330
  965. package/dist/hooks/__tests__/task-size-detector.test.js.map +0 -1
  966. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.d.ts +0 -2
  967. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.d.ts.map +0 -1
  968. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.js +0 -28
  969. package/dist/hooks/__tests__/team-runtime-gating-docs-contract.test.js.map +0 -1
  970. package/dist/hooks/__tests__/tmux-hook-engine-types-sync.test.d.ts +0 -2
  971. package/dist/hooks/__tests__/tmux-hook-engine-types-sync.test.d.ts.map +0 -1
  972. package/dist/hooks/__tests__/tmux-hook-engine-types-sync.test.js +0 -24
  973. package/dist/hooks/__tests__/tmux-hook-engine-types-sync.test.js.map +0 -1
  974. package/dist/hooks/__tests__/tmux-hook-engine.test.d.ts +0 -2
  975. package/dist/hooks/__tests__/tmux-hook-engine.test.d.ts.map +0 -1
  976. package/dist/hooks/__tests__/tmux-hook-engine.test.js +0 -403
  977. package/dist/hooks/__tests__/tmux-hook-engine.test.js.map +0 -1
  978. package/dist/hooks/__tests__/triage-config.test.d.ts +0 -2
  979. package/dist/hooks/__tests__/triage-config.test.d.ts.map +0 -1
  980. package/dist/hooks/__tests__/triage-config.test.js +0 -211
  981. package/dist/hooks/__tests__/triage-config.test.js.map +0 -1
  982. package/dist/hooks/__tests__/triage-heuristic.test.d.ts +0 -2
  983. package/dist/hooks/__tests__/triage-heuristic.test.d.ts.map +0 -1
  984. package/dist/hooks/__tests__/triage-heuristic.test.js +0 -285
  985. package/dist/hooks/__tests__/triage-heuristic.test.js.map +0 -1
  986. package/dist/hooks/__tests__/triage-state.test.d.ts +0 -2
  987. package/dist/hooks/__tests__/triage-state.test.d.ts.map +0 -1
  988. package/dist/hooks/__tests__/triage-state.test.js +0 -426
  989. package/dist/hooks/__tests__/triage-state.test.js.map +0 -1
  990. package/dist/hooks/__tests__/visual-ralph-skill.test.d.ts +0 -2
  991. package/dist/hooks/__tests__/visual-ralph-skill.test.d.ts.map +0 -1
  992. package/dist/hooks/__tests__/visual-ralph-skill.test.js +0 -44
  993. package/dist/hooks/__tests__/visual-ralph-skill.test.js.map +0 -1
  994. package/dist/hooks/__tests__/visual-verdict-loop.test.d.ts +0 -2
  995. package/dist/hooks/__tests__/visual-verdict-loop.test.d.ts.map +0 -1
  996. package/dist/hooks/__tests__/visual-verdict-loop.test.js +0 -35
  997. package/dist/hooks/__tests__/visual-verdict-loop.test.js.map +0 -1
  998. package/dist/hooks/__tests__/wiki-docs-contract.test.d.ts +0 -2
  999. package/dist/hooks/__tests__/wiki-docs-contract.test.d.ts.map +0 -1
  1000. package/dist/hooks/__tests__/wiki-docs-contract.test.js +0 -34
  1001. package/dist/hooks/__tests__/wiki-docs-contract.test.js.map +0 -1
  1002. package/dist/hooks/code-simplifier/__tests__/index.test.d.ts +0 -2
  1003. package/dist/hooks/code-simplifier/__tests__/index.test.d.ts.map +0 -1
  1004. package/dist/hooks/code-simplifier/__tests__/index.test.js +0 -187
  1005. package/dist/hooks/code-simplifier/__tests__/index.test.js.map +0 -1
  1006. package/dist/hooks/extensibility/__tests__/dispatcher.test.d.ts +0 -2
  1007. package/dist/hooks/extensibility/__tests__/dispatcher.test.d.ts.map +0 -1
  1008. package/dist/hooks/extensibility/__tests__/dispatcher.test.js +0 -242
  1009. package/dist/hooks/extensibility/__tests__/dispatcher.test.js.map +0 -1
  1010. package/dist/hooks/extensibility/__tests__/events.test.d.ts +0 -2
  1011. package/dist/hooks/extensibility/__tests__/events.test.d.ts.map +0 -1
  1012. package/dist/hooks/extensibility/__tests__/events.test.js +0 -125
  1013. package/dist/hooks/extensibility/__tests__/events.test.js.map +0 -1
  1014. package/dist/hooks/extensibility/__tests__/example-hook-plugins.test.d.ts +0 -2
  1015. package/dist/hooks/extensibility/__tests__/example-hook-plugins.test.d.ts.map +0 -1
  1016. package/dist/hooks/extensibility/__tests__/example-hook-plugins.test.js +0 -153
  1017. package/dist/hooks/extensibility/__tests__/example-hook-plugins.test.js.map +0 -1
  1018. package/dist/hooks/extensibility/__tests__/loader.test.d.ts +0 -2
  1019. package/dist/hooks/extensibility/__tests__/loader.test.d.ts.map +0 -1
  1020. package/dist/hooks/extensibility/__tests__/loader.test.js +0 -254
  1021. package/dist/hooks/extensibility/__tests__/loader.test.js.map +0 -1
  1022. package/dist/hooks/extensibility/__tests__/logging.test.d.ts +0 -2
  1023. package/dist/hooks/extensibility/__tests__/logging.test.d.ts.map +0 -1
  1024. package/dist/hooks/extensibility/__tests__/logging.test.js +0 -74
  1025. package/dist/hooks/extensibility/__tests__/logging.test.js.map +0 -1
  1026. package/dist/hooks/extensibility/__tests__/plugin-runner.test.d.ts +0 -2
  1027. package/dist/hooks/extensibility/__tests__/plugin-runner.test.d.ts.map +0 -1
  1028. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js +0 -202
  1029. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js.map +0 -1
  1030. package/dist/hooks/extensibility/__tests__/runtime.test.d.ts +0 -2
  1031. package/dist/hooks/extensibility/__tests__/runtime.test.d.ts.map +0 -1
  1032. package/dist/hooks/extensibility/__tests__/runtime.test.js +0 -198
  1033. package/dist/hooks/extensibility/__tests__/runtime.test.js.map +0 -1
  1034. package/dist/hooks/extensibility/__tests__/sdk-public-surface.test.d.ts +0 -2
  1035. package/dist/hooks/extensibility/__tests__/sdk-public-surface.test.d.ts.map +0 -1
  1036. package/dist/hooks/extensibility/__tests__/sdk-public-surface.test.js +0 -32
  1037. package/dist/hooks/extensibility/__tests__/sdk-public-surface.test.js.map +0 -1
  1038. package/dist/hooks/extensibility/__tests__/sdk.test.d.ts +0 -2
  1039. package/dist/hooks/extensibility/__tests__/sdk.test.d.ts.map +0 -1
  1040. package/dist/hooks/extensibility/__tests__/sdk.test.js +0 -479
  1041. package/dist/hooks/extensibility/__tests__/sdk.test.js.map +0 -1
  1042. package/dist/hud/__tests__/authority.test.d.ts +0 -2
  1043. package/dist/hud/__tests__/authority.test.d.ts.map +0 -1
  1044. package/dist/hud/__tests__/authority.test.js +0 -56
  1045. package/dist/hud/__tests__/authority.test.js.map +0 -1
  1046. package/dist/hud/__tests__/colors.test.d.ts +0 -2
  1047. package/dist/hud/__tests__/colors.test.d.ts.map +0 -1
  1048. package/dist/hud/__tests__/colors.test.js +0 -92
  1049. package/dist/hud/__tests__/colors.test.js.map +0 -1
  1050. package/dist/hud/__tests__/hud-tmux-injection.test.d.ts +0 -10
  1051. package/dist/hud/__tests__/hud-tmux-injection.test.d.ts.map +0 -1
  1052. package/dist/hud/__tests__/hud-tmux-injection.test.js +0 -150
  1053. package/dist/hud/__tests__/hud-tmux-injection.test.js.map +0 -1
  1054. package/dist/hud/__tests__/index.test.d.ts +0 -2
  1055. package/dist/hud/__tests__/index.test.d.ts.map +0 -1
  1056. package/dist/hud/__tests__/index.test.js +0 -180
  1057. package/dist/hud/__tests__/index.test.js.map +0 -1
  1058. package/dist/hud/__tests__/reconcile.test.d.ts +0 -2
  1059. package/dist/hud/__tests__/reconcile.test.d.ts.map +0 -1
  1060. package/dist/hud/__tests__/reconcile.test.js +0 -125
  1061. package/dist/hud/__tests__/reconcile.test.js.map +0 -1
  1062. package/dist/hud/__tests__/render.test.d.ts +0 -2
  1063. package/dist/hud/__tests__/render.test.d.ts.map +0 -1
  1064. package/dist/hud/__tests__/render.test.js +0 -573
  1065. package/dist/hud/__tests__/render.test.js.map +0 -1
  1066. package/dist/hud/__tests__/state.test.d.ts +0 -2
  1067. package/dist/hud/__tests__/state.test.d.ts.map +0 -1
  1068. package/dist/hud/__tests__/state.test.js +0 -618
  1069. package/dist/hud/__tests__/state.test.js.map +0 -1
  1070. package/dist/hud/__tests__/types.test.d.ts +0 -2
  1071. package/dist/hud/__tests__/types.test.d.ts.map +0 -1
  1072. package/dist/hud/__tests__/types.test.js +0 -79
  1073. package/dist/hud/__tests__/types.test.js.map +0 -1
  1074. package/dist/hud/__tests__/watch.test.d.ts +0 -2
  1075. package/dist/hud/__tests__/watch.test.d.ts.map +0 -1
  1076. package/dist/hud/__tests__/watch.test.js +0 -63
  1077. package/dist/hud/__tests__/watch.test.js.map +0 -1
  1078. package/dist/mcp/__tests__/bootstrap.test.d.ts +0 -2
  1079. package/dist/mcp/__tests__/bootstrap.test.d.ts.map +0 -1
  1080. package/dist/mcp/__tests__/bootstrap.test.js +0 -207
  1081. package/dist/mcp/__tests__/bootstrap.test.js.map +0 -1
  1082. package/dist/mcp/__tests__/code-intel-server.test.d.ts +0 -2
  1083. package/dist/mcp/__tests__/code-intel-server.test.d.ts.map +0 -1
  1084. package/dist/mcp/__tests__/code-intel-server.test.js +0 -70
  1085. package/dist/mcp/__tests__/code-intel-server.test.js.map +0 -1
  1086. package/dist/mcp/__tests__/memory-server.test.d.ts +0 -2
  1087. package/dist/mcp/__tests__/memory-server.test.d.ts.map +0 -1
  1088. package/dist/mcp/__tests__/memory-server.test.js +0 -36
  1089. package/dist/mcp/__tests__/memory-server.test.js.map +0 -1
  1090. package/dist/mcp/__tests__/memory-validation.test.d.ts +0 -2
  1091. package/dist/mcp/__tests__/memory-validation.test.d.ts.map +0 -1
  1092. package/dist/mcp/__tests__/memory-validation.test.js +0 -29
  1093. package/dist/mcp/__tests__/memory-validation.test.js.map +0 -1
  1094. package/dist/mcp/__tests__/path-traversal.test.d.ts +0 -2
  1095. package/dist/mcp/__tests__/path-traversal.test.d.ts.map +0 -1
  1096. package/dist/mcp/__tests__/path-traversal.test.js +0 -83
  1097. package/dist/mcp/__tests__/path-traversal.test.js.map +0 -1
  1098. package/dist/mcp/__tests__/server-lifecycle.test.d.ts +0 -2
  1099. package/dist/mcp/__tests__/server-lifecycle.test.d.ts.map +0 -1
  1100. package/dist/mcp/__tests__/server-lifecycle.test.js +0 -260
  1101. package/dist/mcp/__tests__/server-lifecycle.test.js.map +0 -1
  1102. package/dist/mcp/__tests__/state-paths.test.d.ts +0 -2
  1103. package/dist/mcp/__tests__/state-paths.test.d.ts.map +0 -1
  1104. package/dist/mcp/__tests__/state-paths.test.js +0 -209
  1105. package/dist/mcp/__tests__/state-paths.test.js.map +0 -1
  1106. package/dist/mcp/__tests__/state-server-ralph-phase.test.d.ts +0 -2
  1107. package/dist/mcp/__tests__/state-server-ralph-phase.test.d.ts.map +0 -1
  1108. package/dist/mcp/__tests__/state-server-ralph-phase.test.js +0 -109
  1109. package/dist/mcp/__tests__/state-server-ralph-phase.test.js.map +0 -1
  1110. package/dist/mcp/__tests__/state-server-schema.test.d.ts +0 -2
  1111. package/dist/mcp/__tests__/state-server-schema.test.d.ts.map +0 -1
  1112. package/dist/mcp/__tests__/state-server-schema.test.js +0 -29
  1113. package/dist/mcp/__tests__/state-server-schema.test.js.map +0 -1
  1114. package/dist/mcp/__tests__/state-server-team-tools.test.d.ts +0 -2
  1115. package/dist/mcp/__tests__/state-server-team-tools.test.d.ts.map +0 -1
  1116. package/dist/mcp/__tests__/state-server-team-tools.test.js +0 -35
  1117. package/dist/mcp/__tests__/state-server-team-tools.test.js.map +0 -1
  1118. package/dist/mcp/__tests__/state-server.test.d.ts +0 -2
  1119. package/dist/mcp/__tests__/state-server.test.d.ts.map +0 -1
  1120. package/dist/mcp/__tests__/state-server.test.js +0 -965
  1121. package/dist/mcp/__tests__/state-server.test.js.map +0 -1
  1122. package/dist/mcp/__tests__/trace-server.test.d.ts +0 -2
  1123. package/dist/mcp/__tests__/trace-server.test.d.ts.map +0 -1
  1124. package/dist/mcp/__tests__/trace-server.test.js +0 -119
  1125. package/dist/mcp/__tests__/trace-server.test.js.map +0 -1
  1126. package/dist/mcp/__tests__/wiki-server.test.d.ts +0 -2
  1127. package/dist/mcp/__tests__/wiki-server.test.d.ts.map +0 -1
  1128. package/dist/mcp/__tests__/wiki-server.test.js +0 -30
  1129. package/dist/mcp/__tests__/wiki-server.test.js.map +0 -1
  1130. package/dist/modes/__tests__/base-autoresearch-contract.test.d.ts +0 -2
  1131. package/dist/modes/__tests__/base-autoresearch-contract.test.d.ts.map +0 -1
  1132. package/dist/modes/__tests__/base-autoresearch-contract.test.js +0 -123
  1133. package/dist/modes/__tests__/base-autoresearch-contract.test.js.map +0 -1
  1134. package/dist/modes/__tests__/base-multi-state-compat.test.d.ts +0 -2
  1135. package/dist/modes/__tests__/base-multi-state-compat.test.d.ts.map +0 -1
  1136. package/dist/modes/__tests__/base-multi-state-compat.test.js +0 -38
  1137. package/dist/modes/__tests__/base-multi-state-compat.test.js.map +0 -1
  1138. package/dist/modes/__tests__/base-ralph-contract.test.d.ts +0 -2
  1139. package/dist/modes/__tests__/base-ralph-contract.test.d.ts.map +0 -1
  1140. package/dist/modes/__tests__/base-ralph-contract.test.js +0 -64
  1141. package/dist/modes/__tests__/base-ralph-contract.test.js.map +0 -1
  1142. package/dist/modes/__tests__/base-session-scope.test.d.ts +0 -2
  1143. package/dist/modes/__tests__/base-session-scope.test.d.ts.map +0 -1
  1144. package/dist/modes/__tests__/base-session-scope.test.js +0 -98
  1145. package/dist/modes/__tests__/base-session-scope.test.js.map +0 -1
  1146. package/dist/modes/__tests__/base-tmux-pane.test.d.ts +0 -2
  1147. package/dist/modes/__tests__/base-tmux-pane.test.d.ts.map +0 -1
  1148. package/dist/modes/__tests__/base-tmux-pane.test.js +0 -39
  1149. package/dist/modes/__tests__/base-tmux-pane.test.js.map +0 -1
  1150. package/dist/notifications/__tests__/config.test.d.ts +0 -2
  1151. package/dist/notifications/__tests__/config.test.d.ts.map +0 -1
  1152. package/dist/notifications/__tests__/config.test.js +0 -269
  1153. package/dist/notifications/__tests__/config.test.js.map +0 -1
  1154. package/dist/notifications/__tests__/custom-alias-enablement.test.d.ts +0 -2
  1155. package/dist/notifications/__tests__/custom-alias-enablement.test.d.ts.map +0 -1
  1156. package/dist/notifications/__tests__/custom-alias-enablement.test.js +0 -84
  1157. package/dist/notifications/__tests__/custom-alias-enablement.test.js.map +0 -1
  1158. package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts +0 -5
  1159. package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts.map +0 -1
  1160. package/dist/notifications/__tests__/dispatch-cooldown.test.js +0 -100
  1161. package/dist/notifications/__tests__/dispatch-cooldown.test.js.map +0 -1
  1162. package/dist/notifications/__tests__/dispatcher.test.d.ts +0 -2
  1163. package/dist/notifications/__tests__/dispatcher.test.d.ts.map +0 -1
  1164. package/dist/notifications/__tests__/dispatcher.test.js +0 -202
  1165. package/dist/notifications/__tests__/dispatcher.test.js.map +0 -1
  1166. package/dist/notifications/__tests__/formatter.test.d.ts +0 -2
  1167. package/dist/notifications/__tests__/formatter.test.d.ts.map +0 -1
  1168. package/dist/notifications/__tests__/formatter.test.js +0 -270
  1169. package/dist/notifications/__tests__/formatter.test.js.map +0 -1
  1170. package/dist/notifications/__tests__/hook-config.test.d.ts +0 -5
  1171. package/dist/notifications/__tests__/hook-config.test.d.ts.map +0 -1
  1172. package/dist/notifications/__tests__/hook-config.test.js +0 -139
  1173. package/dist/notifications/__tests__/hook-config.test.js.map +0 -1
  1174. package/dist/notifications/__tests__/idle-cooldown.test.d.ts +0 -5
  1175. package/dist/notifications/__tests__/idle-cooldown.test.d.ts.map +0 -1
  1176. package/dist/notifications/__tests__/idle-cooldown.test.js +0 -209
  1177. package/dist/notifications/__tests__/idle-cooldown.test.js.map +0 -1
  1178. package/dist/notifications/__tests__/index.test.d.ts +0 -2
  1179. package/dist/notifications/__tests__/index.test.d.ts.map +0 -1
  1180. package/dist/notifications/__tests__/index.test.js +0 -188
  1181. package/dist/notifications/__tests__/index.test.js.map +0 -1
  1182. package/dist/notifications/__tests__/lifecycle-dedupe.test.d.ts +0 -2
  1183. package/dist/notifications/__tests__/lifecycle-dedupe.test.d.ts.map +0 -1
  1184. package/dist/notifications/__tests__/lifecycle-dedupe.test.js +0 -86
  1185. package/dist/notifications/__tests__/lifecycle-dedupe.test.js.map +0 -1
  1186. package/dist/notifications/__tests__/notifier.test.d.ts +0 -2
  1187. package/dist/notifications/__tests__/notifier.test.d.ts.map +0 -1
  1188. package/dist/notifications/__tests__/notifier.test.js +0 -239
  1189. package/dist/notifications/__tests__/notifier.test.js.map +0 -1
  1190. package/dist/notifications/__tests__/profiles.test.d.ts +0 -2
  1191. package/dist/notifications/__tests__/profiles.test.d.ts.map +0 -1
  1192. package/dist/notifications/__tests__/profiles.test.js +0 -404
  1193. package/dist/notifications/__tests__/profiles.test.js.map +0 -1
  1194. package/dist/notifications/__tests__/reply-config.test.d.ts +0 -2
  1195. package/dist/notifications/__tests__/reply-config.test.d.ts.map +0 -1
  1196. package/dist/notifications/__tests__/reply-config.test.js +0 -79
  1197. package/dist/notifications/__tests__/reply-config.test.js.map +0 -1
  1198. package/dist/notifications/__tests__/reply-listener.test.d.ts +0 -2
  1199. package/dist/notifications/__tests__/reply-listener.test.d.ts.map +0 -1
  1200. package/dist/notifications/__tests__/reply-listener.test.js +0 -723
  1201. package/dist/notifications/__tests__/reply-listener.test.js.map +0 -1
  1202. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.d.ts +0 -2
  1203. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.d.ts.map +0 -1
  1204. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.js +0 -93
  1205. package/dist/notifications/__tests__/session-idle-tail-dedupe.test.js.map +0 -1
  1206. package/dist/notifications/__tests__/session-registry.test.d.ts +0 -2
  1207. package/dist/notifications/__tests__/session-registry.test.d.ts.map +0 -1
  1208. package/dist/notifications/__tests__/session-registry.test.js +0 -234
  1209. package/dist/notifications/__tests__/session-registry.test.js.map +0 -1
  1210. package/dist/notifications/__tests__/session-status.test.d.ts +0 -2
  1211. package/dist/notifications/__tests__/session-status.test.d.ts.map +0 -1
  1212. package/dist/notifications/__tests__/session-status.test.js +0 -249
  1213. package/dist/notifications/__tests__/session-status.test.js.map +0 -1
  1214. package/dist/notifications/__tests__/temp-mode.test.d.ts +0 -2
  1215. package/dist/notifications/__tests__/temp-mode.test.d.ts.map +0 -1
  1216. package/dist/notifications/__tests__/temp-mode.test.js +0 -172
  1217. package/dist/notifications/__tests__/temp-mode.test.js.map +0 -1
  1218. package/dist/notifications/__tests__/template-engine.test.d.ts +0 -5
  1219. package/dist/notifications/__tests__/template-engine.test.d.ts.map +0 -1
  1220. package/dist/notifications/__tests__/template-engine.test.js +0 -158
  1221. package/dist/notifications/__tests__/template-engine.test.js.map +0 -1
  1222. package/dist/notifications/__tests__/tmux-detector.test.d.ts +0 -2
  1223. package/dist/notifications/__tests__/tmux-detector.test.d.ts.map +0 -1
  1224. package/dist/notifications/__tests__/tmux-detector.test.js +0 -208
  1225. package/dist/notifications/__tests__/tmux-detector.test.js.map +0 -1
  1226. package/dist/notifications/__tests__/tmux.test.d.ts +0 -2
  1227. package/dist/notifications/__tests__/tmux.test.d.ts.map +0 -1
  1228. package/dist/notifications/__tests__/tmux.test.js +0 -285
  1229. package/dist/notifications/__tests__/tmux.test.js.map +0 -1
  1230. package/dist/notifications/__tests__/verbosity.test.d.ts +0 -2
  1231. package/dist/notifications/__tests__/verbosity.test.d.ts.map +0 -1
  1232. package/dist/notifications/__tests__/verbosity.test.js +0 -237
  1233. package/dist/notifications/__tests__/verbosity.test.js.map +0 -1
  1234. package/dist/openclaw/__tests__/config.test.d.ts +0 -6
  1235. package/dist/openclaw/__tests__/config.test.d.ts.map +0 -1
  1236. package/dist/openclaw/__tests__/config.test.js +0 -344
  1237. package/dist/openclaw/__tests__/config.test.js.map +0 -1
  1238. package/dist/openclaw/__tests__/dispatcher.test.d.ts +0 -5
  1239. package/dist/openclaw/__tests__/dispatcher.test.d.ts.map +0 -1
  1240. package/dist/openclaw/__tests__/dispatcher.test.js +0 -169
  1241. package/dist/openclaw/__tests__/dispatcher.test.js.map +0 -1
  1242. package/dist/openclaw/__tests__/index.test.d.ts +0 -6
  1243. package/dist/openclaw/__tests__/index.test.d.ts.map +0 -1
  1244. package/dist/openclaw/__tests__/index.test.js +0 -382
  1245. package/dist/openclaw/__tests__/index.test.js.map +0 -1
  1246. package/dist/pipeline/__tests__/orchestrator.test.d.ts +0 -2
  1247. package/dist/pipeline/__tests__/orchestrator.test.d.ts.map +0 -1
  1248. package/dist/pipeline/__tests__/orchestrator.test.js +0 -505
  1249. package/dist/pipeline/__tests__/orchestrator.test.js.map +0 -1
  1250. package/dist/pipeline/__tests__/stages.test.d.ts +0 -2
  1251. package/dist/pipeline/__tests__/stages.test.d.ts.map +0 -1
  1252. package/dist/pipeline/__tests__/stages.test.js +0 -754
  1253. package/dist/pipeline/__tests__/stages.test.js.map +0 -1
  1254. package/dist/pipeline/stages/ralph-verify.d.ts +0 -53
  1255. package/dist/pipeline/stages/ralph-verify.d.ts.map +0 -1
  1256. package/dist/pipeline/stages/ralph-verify.js.map +0 -1
  1257. package/dist/pipeline/stages/ralplan.d.ts +0 -25
  1258. package/dist/pipeline/stages/ralplan.d.ts.map +0 -1
  1259. package/dist/pipeline/stages/ralplan.js.map +0 -1
  1260. package/dist/planning/__tests__/artifacts.test.d.ts +0 -2
  1261. package/dist/planning/__tests__/artifacts.test.d.ts.map +0 -1
  1262. package/dist/planning/__tests__/artifacts.test.js +0 -544
  1263. package/dist/planning/__tests__/artifacts.test.js.map +0 -1
  1264. package/dist/question/__tests__/client.test.d.ts +0 -2
  1265. package/dist/question/__tests__/client.test.d.ts.map +0 -1
  1266. package/dist/question/__tests__/client.test.js +0 -90
  1267. package/dist/question/__tests__/client.test.js.map +0 -1
  1268. package/dist/question/__tests__/deep-interview.test.d.ts +0 -2
  1269. package/dist/question/__tests__/deep-interview.test.d.ts.map +0 -1
  1270. package/dist/question/__tests__/deep-interview.test.js +0 -209
  1271. package/dist/question/__tests__/deep-interview.test.js.map +0 -1
  1272. package/dist/question/__tests__/policy.test.d.ts +0 -2
  1273. package/dist/question/__tests__/policy.test.d.ts.map +0 -1
  1274. package/dist/question/__tests__/policy.test.js +0 -107
  1275. package/dist/question/__tests__/policy.test.js.map +0 -1
  1276. package/dist/question/__tests__/renderer.test.d.ts +0 -2
  1277. package/dist/question/__tests__/renderer.test.d.ts.map +0 -1
  1278. package/dist/question/__tests__/renderer.test.js +0 -707
  1279. package/dist/question/__tests__/renderer.test.js.map +0 -1
  1280. package/dist/question/__tests__/state.test.d.ts +0 -2
  1281. package/dist/question/__tests__/state.test.d.ts.map +0 -1
  1282. package/dist/question/__tests__/state.test.js +0 -102
  1283. package/dist/question/__tests__/state.test.js.map +0 -1
  1284. package/dist/question/__tests__/types.test.d.ts +0 -2
  1285. package/dist/question/__tests__/types.test.d.ts.map +0 -1
  1286. package/dist/question/__tests__/types.test.js +0 -65
  1287. package/dist/question/__tests__/types.test.js.map +0 -1
  1288. package/dist/question/__tests__/ui.test.d.ts +0 -2
  1289. package/dist/question/__tests__/ui.test.d.ts.map +0 -1
  1290. package/dist/question/__tests__/ui.test.js +0 -446
  1291. package/dist/question/__tests__/ui.test.js.map +0 -1
  1292. package/dist/ralph/__tests__/persistence.test.d.ts +0 -2
  1293. package/dist/ralph/__tests__/persistence.test.d.ts.map +0 -1
  1294. package/dist/ralph/__tests__/persistence.test.js +0 -116
  1295. package/dist/ralph/__tests__/persistence.test.js.map +0 -1
  1296. package/dist/ralph/contract.d.ts +0 -17
  1297. package/dist/ralph/persistence.js.map +0 -1
  1298. package/dist/ralplan/__tests__/runtime.test.d.ts +0 -2
  1299. package/dist/ralplan/__tests__/runtime.test.d.ts.map +0 -1
  1300. package/dist/ralplan/__tests__/runtime.test.js +0 -165
  1301. package/dist/ralplan/__tests__/runtime.test.js.map +0 -1
  1302. package/dist/ralplan/runtime.d.ts +0 -52
  1303. package/dist/ralplan/runtime.d.ts.map +0 -1
  1304. package/dist/ralplan/runtime.js.map +0 -1
  1305. package/dist/runtime/__tests__/bridge.test.d.ts +0 -2
  1306. package/dist/runtime/__tests__/bridge.test.d.ts.map +0 -1
  1307. package/dist/runtime/__tests__/bridge.test.js +0 -194
  1308. package/dist/runtime/__tests__/bridge.test.js.map +0 -1
  1309. package/dist/runtime/__tests__/run-loop.test.d.ts +0 -2
  1310. package/dist/runtime/__tests__/run-loop.test.d.ts.map +0 -1
  1311. package/dist/runtime/__tests__/run-loop.test.js +0 -35
  1312. package/dist/runtime/__tests__/run-loop.test.js.map +0 -1
  1313. package/dist/runtime/__tests__/run-outcome.test.d.ts +0 -2
  1314. package/dist/runtime/__tests__/run-outcome.test.d.ts.map +0 -1
  1315. package/dist/runtime/__tests__/run-outcome.test.js +0 -102
  1316. package/dist/runtime/__tests__/run-outcome.test.js.map +0 -1
  1317. package/dist/runtime/__tests__/run-state.test.d.ts +0 -2
  1318. package/dist/runtime/__tests__/run-state.test.d.ts.map +0 -1
  1319. package/dist/runtime/__tests__/run-state.test.js +0 -37
  1320. package/dist/runtime/__tests__/run-state.test.js.map +0 -1
  1321. package/dist/scripts/__tests__/codex-native-hook.test.d.ts +0 -2
  1322. package/dist/scripts/__tests__/codex-native-hook.test.d.ts.map +0 -1
  1323. package/dist/scripts/__tests__/codex-native-hook.test.js +0 -6788
  1324. package/dist/scripts/__tests__/codex-native-hook.test.js.map +0 -1
  1325. package/dist/scripts/__tests__/generate-release-body.test.d.ts +0 -2
  1326. package/dist/scripts/__tests__/generate-release-body.test.d.ts.map +0 -1
  1327. package/dist/scripts/__tests__/generate-release-body.test.js +0 -233
  1328. package/dist/scripts/__tests__/generate-release-body.test.js.map +0 -1
  1329. package/dist/scripts/__tests__/hook-derived-watcher.test.d.ts +0 -2
  1330. package/dist/scripts/__tests__/hook-derived-watcher.test.d.ts.map +0 -1
  1331. package/dist/scripts/__tests__/hook-derived-watcher.test.js +0 -195
  1332. package/dist/scripts/__tests__/hook-derived-watcher.test.js.map +0 -1
  1333. package/dist/scripts/__tests__/postinstall.test.d.ts +0 -2
  1334. package/dist/scripts/__tests__/postinstall.test.d.ts.map +0 -1
  1335. package/dist/scripts/__tests__/postinstall.test.js +0 -92
  1336. package/dist/scripts/__tests__/postinstall.test.js.map +0 -1
  1337. package/dist/scripts/__tests__/prompt-inventory.test.d.ts +0 -2
  1338. package/dist/scripts/__tests__/prompt-inventory.test.d.ts.map +0 -1
  1339. package/dist/scripts/__tests__/prompt-inventory.test.js +0 -56
  1340. package/dist/scripts/__tests__/prompt-inventory.test.js.map +0 -1
  1341. package/dist/scripts/__tests__/run-test-files.test.d.ts +0 -2
  1342. package/dist/scripts/__tests__/run-test-files.test.d.ts.map +0 -1
  1343. package/dist/scripts/__tests__/run-test-files.test.js +0 -62
  1344. package/dist/scripts/__tests__/run-test-files.test.js.map +0 -1
  1345. package/dist/scripts/__tests__/smoke-packed-install.test.d.ts +0 -2
  1346. package/dist/scripts/__tests__/smoke-packed-install.test.d.ts.map +0 -1
  1347. package/dist/scripts/__tests__/smoke-packed-install.test.js +0 -135
  1348. package/dist/scripts/__tests__/smoke-packed-install.test.js.map +0 -1
  1349. package/dist/scripts/__tests__/test-reply-listener-live.test.d.ts +0 -2
  1350. package/dist/scripts/__tests__/test-reply-listener-live.test.d.ts.map +0 -1
  1351. package/dist/scripts/__tests__/test-reply-listener-live.test.js +0 -82
  1352. package/dist/scripts/__tests__/test-reply-listener-live.test.js.map +0 -1
  1353. package/dist/scripts/__tests__/verify-native-agents.test.d.ts +0 -2
  1354. package/dist/scripts/__tests__/verify-native-agents.test.d.ts.map +0 -1
  1355. package/dist/scripts/__tests__/verify-native-agents.test.js +0 -166
  1356. package/dist/scripts/__tests__/verify-native-agents.test.js.map +0 -1
  1357. package/dist/scripts/eval/eval-candidate-handoff.d.ts +0 -2
  1358. package/dist/scripts/eval/eval-candidate-handoff.d.ts.map +0 -1
  1359. package/dist/scripts/eval/eval-candidate-handoff.js +0 -11
  1360. package/dist/scripts/eval/eval-candidate-handoff.js.map +0 -1
  1361. package/dist/scripts/eval/eval-cli-discoverability.d.ts +0 -3
  1362. package/dist/scripts/eval/eval-cli-discoverability.d.ts.map +0 -1
  1363. package/dist/scripts/eval/eval-cli-discoverability.js +0 -37
  1364. package/dist/scripts/eval/eval-cli-discoverability.js.map +0 -1
  1365. package/dist/scripts/eval/eval-fresh-run-tagging.d.ts +0 -2
  1366. package/dist/scripts/eval/eval-fresh-run-tagging.d.ts.map +0 -1
  1367. package/dist/scripts/eval/eval-fresh-run-tagging.js +0 -11
  1368. package/dist/scripts/eval/eval-fresh-run-tagging.js.map +0 -1
  1369. package/dist/scripts/eval/eval-help-consistency.d.ts +0 -2
  1370. package/dist/scripts/eval/eval-help-consistency.d.ts.map +0 -1
  1371. package/dist/scripts/eval/eval-help-consistency.js +0 -12
  1372. package/dist/scripts/eval/eval-help-consistency.js.map +0 -1
  1373. package/dist/scripts/eval/eval-in-action-cat-shellout-demo.d.ts +0 -2
  1374. package/dist/scripts/eval/eval-in-action-cat-shellout-demo.d.ts.map +0 -1
  1375. package/dist/scripts/eval/eval-in-action-cat-shellout-demo.js +0 -31
  1376. package/dist/scripts/eval/eval-in-action-cat-shellout-demo.js.map +0 -1
  1377. package/dist/scripts/eval/eval-parity-smoke.d.ts +0 -2
  1378. package/dist/scripts/eval/eval-parity-smoke.d.ts.map +0 -1
  1379. package/dist/scripts/eval/eval-parity-smoke.js +0 -23
  1380. package/dist/scripts/eval/eval-parity-smoke.js.map +0 -1
  1381. package/dist/scripts/eval/eval-parity-sweep.d.ts +0 -2
  1382. package/dist/scripts/eval/eval-parity-sweep.d.ts.map +0 -1
  1383. package/dist/scripts/eval/eval-parity-sweep.js +0 -29
  1384. package/dist/scripts/eval/eval-parity-sweep.js.map +0 -1
  1385. package/dist/scripts/eval/eval-resume-dirty-guard.d.ts +0 -2
  1386. package/dist/scripts/eval/eval-resume-dirty-guard.d.ts.map +0 -1
  1387. package/dist/scripts/eval/eval-resume-dirty-guard.js +0 -11
  1388. package/dist/scripts/eval/eval-resume-dirty-guard.js.map +0 -1
  1389. package/dist/scripts/eval/eval-security-path-traversal.d.ts +0 -3
  1390. package/dist/scripts/eval/eval-security-path-traversal.d.ts.map +0 -1
  1391. package/dist/scripts/eval/eval-security-path-traversal.js +0 -35
  1392. package/dist/scripts/eval/eval-security-path-traversal.js.map +0 -1
  1393. package/dist/scripts/notify-hook/__tests__/operational-events.test.d.ts +0 -2
  1394. package/dist/scripts/notify-hook/__tests__/operational-events.test.d.ts.map +0 -1
  1395. package/dist/scripts/notify-hook/__tests__/operational-events.test.js +0 -24
  1396. package/dist/scripts/notify-hook/__tests__/operational-events.test.js.map +0 -1
  1397. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.d.ts +0 -2
  1398. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.d.ts.map +0 -1
  1399. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.js +0 -153
  1400. package/dist/scripts/notify-hook/__tests__/team-worker-posttooluse.test.js.map +0 -1
  1401. package/dist/scripts/notify-hook/ralph-session-resume.d.ts +0 -22
  1402. package/dist/session-history/__tests__/search.test.d.ts +0 -2
  1403. package/dist/session-history/__tests__/search.test.d.ts.map +0 -1
  1404. package/dist/session-history/__tests__/search.test.js +0 -150
  1405. package/dist/session-history/__tests__/search.test.js.map +0 -1
  1406. package/dist/sidecar/__tests__/boundary.test.d.ts +0 -2
  1407. package/dist/sidecar/__tests__/boundary.test.d.ts.map +0 -1
  1408. package/dist/sidecar/__tests__/boundary.test.js +0 -48
  1409. package/dist/sidecar/__tests__/boundary.test.js.map +0 -1
  1410. package/dist/sidecar/__tests__/collector.test.d.ts +0 -2
  1411. package/dist/sidecar/__tests__/collector.test.d.ts.map +0 -1
  1412. package/dist/sidecar/__tests__/collector.test.js +0 -162
  1413. package/dist/sidecar/__tests__/collector.test.js.map +0 -1
  1414. package/dist/sidecar/__tests__/render.test.d.ts +0 -2
  1415. package/dist/sidecar/__tests__/render.test.d.ts.map +0 -1
  1416. package/dist/sidecar/__tests__/render.test.js +0 -67
  1417. package/dist/sidecar/__tests__/render.test.js.map +0 -1
  1418. package/dist/sidecar/__tests__/tmux.test.d.ts +0 -2
  1419. package/dist/sidecar/__tests__/tmux.test.d.ts.map +0 -1
  1420. package/dist/sidecar/__tests__/tmux.test.js +0 -30
  1421. package/dist/sidecar/__tests__/tmux.test.js.map +0 -1
  1422. package/dist/sidecar/__tests__/watch.test.d.ts +0 -2
  1423. package/dist/sidecar/__tests__/watch.test.d.ts.map +0 -1
  1424. package/dist/sidecar/__tests__/watch.test.js +0 -42
  1425. package/dist/sidecar/__tests__/watch.test.js.map +0 -1
  1426. package/dist/state/__tests__/mode-state-context.test.d.ts +0 -2
  1427. package/dist/state/__tests__/mode-state-context.test.d.ts.map +0 -1
  1428. package/dist/state/__tests__/mode-state-context.test.js +0 -35
  1429. package/dist/state/__tests__/mode-state-context.test.js.map +0 -1
  1430. package/dist/state/__tests__/operations-ralph-phase.test.d.ts +0 -2
  1431. package/dist/state/__tests__/operations-ralph-phase.test.d.ts.map +0 -1
  1432. package/dist/state/__tests__/operations-ralph-phase.test.js +0 -103
  1433. package/dist/state/__tests__/operations-ralph-phase.test.js.map +0 -1
  1434. package/dist/state/__tests__/operations.test.d.ts +0 -2
  1435. package/dist/state/__tests__/operations.test.d.ts.map +0 -1
  1436. package/dist/state/__tests__/operations.test.js +0 -439
  1437. package/dist/state/__tests__/operations.test.js.map +0 -1
  1438. package/dist/state/__tests__/path-traversal.test.d.ts +0 -2
  1439. package/dist/state/__tests__/path-traversal.test.d.ts.map +0 -1
  1440. package/dist/state/__tests__/path-traversal.test.js +0 -49
  1441. package/dist/state/__tests__/path-traversal.test.js.map +0 -1
  1442. package/dist/state/__tests__/skill-active.test.d.ts +0 -2
  1443. package/dist/state/__tests__/skill-active.test.d.ts.map +0 -1
  1444. package/dist/state/__tests__/skill-active.test.js +0 -160
  1445. package/dist/state/__tests__/skill-active.test.js.map +0 -1
  1446. package/dist/state/__tests__/workflow-transition.test.d.ts +0 -2
  1447. package/dist/state/__tests__/workflow-transition.test.d.ts.map +0 -1
  1448. package/dist/state/__tests__/workflow-transition.test.js +0 -77
  1449. package/dist/state/__tests__/workflow-transition.test.js.map +0 -1
  1450. package/dist/subagents/__tests__/tracker.test.d.ts +0 -2
  1451. package/dist/subagents/__tests__/tracker.test.d.ts.map +0 -1
  1452. package/dist/subagents/__tests__/tracker.test.js +0 -47
  1453. package/dist/subagents/__tests__/tracker.test.js.map +0 -1
  1454. package/dist/team/__tests__/allocation-policy.test.d.ts +0 -2
  1455. package/dist/team/__tests__/allocation-policy.test.d.ts.map +0 -1
  1456. package/dist/team/__tests__/allocation-policy.test.js +0 -111
  1457. package/dist/team/__tests__/allocation-policy.test.js.map +0 -1
  1458. package/dist/team/__tests__/api-interop.test.d.ts +0 -2
  1459. package/dist/team/__tests__/api-interop.test.d.ts.map +0 -1
  1460. package/dist/team/__tests__/api-interop.test.js +0 -2262
  1461. package/dist/team/__tests__/api-interop.test.js.map +0 -1
  1462. package/dist/team/__tests__/commit-hygiene.test.d.ts +0 -2
  1463. package/dist/team/__tests__/commit-hygiene.test.d.ts.map +0 -1
  1464. package/dist/team/__tests__/commit-hygiene.test.js +0 -93
  1465. package/dist/team/__tests__/commit-hygiene.test.js.map +0 -1
  1466. package/dist/team/__tests__/cross-rebase-smoke.test.d.ts +0 -2
  1467. package/dist/team/__tests__/cross-rebase-smoke.test.d.ts.map +0 -1
  1468. package/dist/team/__tests__/cross-rebase-smoke.test.js +0 -161
  1469. package/dist/team/__tests__/cross-rebase-smoke.test.js.map +0 -1
  1470. package/dist/team/__tests__/current-task-baseline.test.d.ts +0 -2
  1471. package/dist/team/__tests__/current-task-baseline.test.d.ts.map +0 -1
  1472. package/dist/team/__tests__/current-task-baseline.test.js +0 -87
  1473. package/dist/team/__tests__/current-task-baseline.test.js.map +0 -1
  1474. package/dist/team/__tests__/delegation-policy.test.d.ts +0 -2
  1475. package/dist/team/__tests__/delegation-policy.test.d.ts.map +0 -1
  1476. package/dist/team/__tests__/delegation-policy.test.js +0 -69
  1477. package/dist/team/__tests__/delegation-policy.test.js.map +0 -1
  1478. package/dist/team/__tests__/delivery-e2e-smoke.test.d.ts +0 -2
  1479. package/dist/team/__tests__/delivery-e2e-smoke.test.d.ts.map +0 -1
  1480. package/dist/team/__tests__/delivery-e2e-smoke.test.js +0 -679
  1481. package/dist/team/__tests__/delivery-e2e-smoke.test.js.map +0 -1
  1482. package/dist/team/__tests__/events.test.d.ts +0 -2
  1483. package/dist/team/__tests__/events.test.d.ts.map +0 -1
  1484. package/dist/team/__tests__/events.test.js +0 -313
  1485. package/dist/team/__tests__/events.test.js.map +0 -1
  1486. package/dist/team/__tests__/followup-planner.test.d.ts +0 -2
  1487. package/dist/team/__tests__/followup-planner.test.d.ts.map +0 -1
  1488. package/dist/team/__tests__/followup-planner.test.js +0 -84
  1489. package/dist/team/__tests__/followup-planner.test.js.map +0 -1
  1490. package/dist/team/__tests__/hardening-e2e.test.d.ts +0 -2
  1491. package/dist/team/__tests__/hardening-e2e.test.d.ts.map +0 -1
  1492. package/dist/team/__tests__/hardening-e2e.test.js +0 -98
  1493. package/dist/team/__tests__/hardening-e2e.test.js.map +0 -1
  1494. package/dist/team/__tests__/hook-primary-e2e-contract.test.d.ts +0 -2
  1495. package/dist/team/__tests__/hook-primary-e2e-contract.test.d.ts.map +0 -1
  1496. package/dist/team/__tests__/hook-primary-e2e-contract.test.js +0 -78
  1497. package/dist/team/__tests__/hook-primary-e2e-contract.test.js.map +0 -1
  1498. package/dist/team/__tests__/idle-nudge.test.d.ts +0 -2
  1499. package/dist/team/__tests__/idle-nudge.test.d.ts.map +0 -1
  1500. package/dist/team/__tests__/idle-nudge.test.js +0 -230
  1501. package/dist/team/__tests__/idle-nudge.test.js.map +0 -1
  1502. package/dist/team/__tests__/leader-activity.test.d.ts +0 -2
  1503. package/dist/team/__tests__/leader-activity.test.d.ts.map +0 -1
  1504. package/dist/team/__tests__/leader-activity.test.js +0 -261
  1505. package/dist/team/__tests__/leader-activity.test.js.map +0 -1
  1506. package/dist/team/__tests__/mcp-comm.test.d.ts +0 -2
  1507. package/dist/team/__tests__/mcp-comm.test.d.ts.map +0 -1
  1508. package/dist/team/__tests__/mcp-comm.test.js +0 -289
  1509. package/dist/team/__tests__/mcp-comm.test.js.map +0 -1
  1510. package/dist/team/__tests__/model-contract.test.d.ts +0 -2
  1511. package/dist/team/__tests__/model-contract.test.d.ts.map +0 -1
  1512. package/dist/team/__tests__/model-contract.test.js +0 -171
  1513. package/dist/team/__tests__/model-contract.test.js.map +0 -1
  1514. package/dist/team/__tests__/orchestrator.test.d.ts +0 -2
  1515. package/dist/team/__tests__/orchestrator.test.d.ts.map +0 -1
  1516. package/dist/team/__tests__/orchestrator.test.js +0 -111
  1517. package/dist/team/__tests__/orchestrator.test.js.map +0 -1
  1518. package/dist/team/__tests__/phase-controller.test.d.ts +0 -2
  1519. package/dist/team/__tests__/phase-controller.test.d.ts.map +0 -1
  1520. package/dist/team/__tests__/phase-controller.test.js +0 -50
  1521. package/dist/team/__tests__/phase-controller.test.js.map +0 -1
  1522. package/dist/team/__tests__/rebalance-policy.test.d.ts +0 -2
  1523. package/dist/team/__tests__/rebalance-policy.test.d.ts.map +0 -1
  1524. package/dist/team/__tests__/rebalance-policy.test.js +0 -168
  1525. package/dist/team/__tests__/rebalance-policy.test.js.map +0 -1
  1526. package/dist/team/__tests__/repo-aware-decomposition.test.d.ts +0 -2
  1527. package/dist/team/__tests__/repo-aware-decomposition.test.d.ts.map +0 -1
  1528. package/dist/team/__tests__/repo-aware-decomposition.test.js +0 -136
  1529. package/dist/team/__tests__/repo-aware-decomposition.test.js.map +0 -1
  1530. package/dist/team/__tests__/role-router.test.d.ts +0 -2
  1531. package/dist/team/__tests__/role-router.test.d.ts.map +0 -1
  1532. package/dist/team/__tests__/role-router.test.js +0 -263
  1533. package/dist/team/__tests__/role-router.test.js.map +0 -1
  1534. package/dist/team/__tests__/runtime-cli.test.d.ts +0 -2
  1535. package/dist/team/__tests__/runtime-cli.test.d.ts.map +0 -1
  1536. package/dist/team/__tests__/runtime-cli.test.js +0 -304
  1537. package/dist/team/__tests__/runtime-cli.test.js.map +0 -1
  1538. package/dist/team/__tests__/runtime.test.d.ts +0 -2
  1539. package/dist/team/__tests__/runtime.test.d.ts.map +0 -1
  1540. package/dist/team/__tests__/runtime.test.js +0 -5734
  1541. package/dist/team/__tests__/runtime.test.js.map +0 -1
  1542. package/dist/team/__tests__/scaling.test.d.ts +0 -2
  1543. package/dist/team/__tests__/scaling.test.d.ts.map +0 -1
  1544. package/dist/team/__tests__/scaling.test.js +0 -1005
  1545. package/dist/team/__tests__/scaling.test.js.map +0 -1
  1546. package/dist/team/__tests__/shutdown-fallback.test.d.ts +0 -2
  1547. package/dist/team/__tests__/shutdown-fallback.test.d.ts.map +0 -1
  1548. package/dist/team/__tests__/shutdown-fallback.test.js +0 -125
  1549. package/dist/team/__tests__/shutdown-fallback.test.js.map +0 -1
  1550. package/dist/team/__tests__/state-root.test.d.ts +0 -2
  1551. package/dist/team/__tests__/state-root.test.d.ts.map +0 -1
  1552. package/dist/team/__tests__/state-root.test.js +0 -195
  1553. package/dist/team/__tests__/state-root.test.js.map +0 -1
  1554. package/dist/team/__tests__/state.test.d.ts +0 -2
  1555. package/dist/team/__tests__/state.test.d.ts.map +0 -1
  1556. package/dist/team/__tests__/state.test.js +0 -1859
  1557. package/dist/team/__tests__/state.test.js.map +0 -1
  1558. package/dist/team/__tests__/team-identity.test.d.ts +0 -2
  1559. package/dist/team/__tests__/team-identity.test.d.ts.map +0 -1
  1560. package/dist/team/__tests__/team-identity.test.js +0 -166
  1561. package/dist/team/__tests__/team-identity.test.js.map +0 -1
  1562. package/dist/team/__tests__/team-ops-contract.test.d.ts +0 -2
  1563. package/dist/team/__tests__/team-ops-contract.test.d.ts.map +0 -1
  1564. package/dist/team/__tests__/team-ops-contract.test.js +0 -96
  1565. package/dist/team/__tests__/team-ops-contract.test.js.map +0 -1
  1566. package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts +0 -2
  1567. package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts.map +0 -1
  1568. package/dist/team/__tests__/tmux-claude-workers-demo.test.js +0 -191
  1569. package/dist/team/__tests__/tmux-claude-workers-demo.test.js.map +0 -1
  1570. package/dist/team/__tests__/tmux-session.test.d.ts +0 -2
  1571. package/dist/team/__tests__/tmux-session.test.d.ts.map +0 -1
  1572. package/dist/team/__tests__/tmux-session.test.js +0 -3785
  1573. package/dist/team/__tests__/tmux-session.test.js.map +0 -1
  1574. package/dist/team/__tests__/tmux-test-fixture.d.ts +0 -20
  1575. package/dist/team/__tests__/tmux-test-fixture.d.ts.map +0 -1
  1576. package/dist/team/__tests__/tmux-test-fixture.js +0 -152
  1577. package/dist/team/__tests__/tmux-test-fixture.js.map +0 -1
  1578. package/dist/team/__tests__/tmux-test-fixture.test.d.ts +0 -2
  1579. package/dist/team/__tests__/tmux-test-fixture.test.d.ts.map +0 -1
  1580. package/dist/team/__tests__/tmux-test-fixture.test.js +0 -113
  1581. package/dist/team/__tests__/tmux-test-fixture.test.js.map +0 -1
  1582. package/dist/team/__tests__/worker-bootstrap.test.d.ts +0 -2
  1583. package/dist/team/__tests__/worker-bootstrap.test.d.ts.map +0 -1
  1584. package/dist/team/__tests__/worker-bootstrap.test.js +0 -685
  1585. package/dist/team/__tests__/worker-bootstrap.test.js.map +0 -1
  1586. package/dist/team/__tests__/worker-runtime-identity.test.d.ts +0 -2
  1587. package/dist/team/__tests__/worker-runtime-identity.test.d.ts.map +0 -1
  1588. package/dist/team/__tests__/worker-runtime-identity.test.js +0 -250
  1589. package/dist/team/__tests__/worker-runtime-identity.test.js.map +0 -1
  1590. package/dist/team/__tests__/worktree.test.d.ts +0 -2
  1591. package/dist/team/__tests__/worktree.test.d.ts.map +0 -1
  1592. package/dist/team/__tests__/worktree.test.js +0 -317
  1593. package/dist/team/__tests__/worktree.test.js.map +0 -1
  1594. package/dist/utils/__tests__/agents-md.test.d.ts +0 -2
  1595. package/dist/utils/__tests__/agents-md.test.d.ts.map +0 -1
  1596. package/dist/utils/__tests__/agents-md.test.js +0 -52
  1597. package/dist/utils/__tests__/agents-md.test.js.map +0 -1
  1598. package/dist/utils/__tests__/agents-model-table.test.d.ts +0 -2
  1599. package/dist/utils/__tests__/agents-model-table.test.d.ts.map +0 -1
  1600. package/dist/utils/__tests__/agents-model-table.test.js +0 -104
  1601. package/dist/utils/__tests__/agents-model-table.test.js.map +0 -1
  1602. package/dist/utils/__tests__/dep-versions.test.d.ts +0 -2
  1603. package/dist/utils/__tests__/dep-versions.test.d.ts.map +0 -1
  1604. package/dist/utils/__tests__/dep-versions.test.js +0 -46
  1605. package/dist/utils/__tests__/dep-versions.test.js.map +0 -1
  1606. package/dist/utils/__tests__/package.test.d.ts +0 -2
  1607. package/dist/utils/__tests__/package.test.d.ts.map +0 -1
  1608. package/dist/utils/__tests__/package.test.js +0 -21
  1609. package/dist/utils/__tests__/package.test.js.map +0 -1
  1610. package/dist/utils/__tests__/paths.test.d.ts +0 -2
  1611. package/dist/utils/__tests__/paths.test.d.ts.map +0 -1
  1612. package/dist/utils/__tests__/paths.test.js +0 -541
  1613. package/dist/utils/__tests__/paths.test.js.map +0 -1
  1614. package/dist/utils/__tests__/platform-command.test.d.ts +0 -2
  1615. package/dist/utils/__tests__/platform-command.test.d.ts.map +0 -1
  1616. package/dist/utils/__tests__/platform-command.test.js +0 -410
  1617. package/dist/utils/__tests__/platform-command.test.js.map +0 -1
  1618. package/dist/utils/__tests__/repo-deps.test.d.ts +0 -2
  1619. package/dist/utils/__tests__/repo-deps.test.d.ts.map +0 -1
  1620. package/dist/utils/__tests__/repo-deps.test.js +0 -71
  1621. package/dist/utils/__tests__/repo-deps.test.js.map +0 -1
  1622. package/dist/verification/__tests__/ci-rust-gates.test.d.ts +0 -2
  1623. package/dist/verification/__tests__/ci-rust-gates.test.d.ts.map +0 -1
  1624. package/dist/verification/__tests__/ci-rust-gates.test.js +0 -89
  1625. package/dist/verification/__tests__/ci-rust-gates.test.js.map +0 -1
  1626. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.d.ts +0 -2
  1627. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.d.ts.map +0 -1
  1628. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +0 -54
  1629. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +0 -1
  1630. package/dist/verification/__tests__/explore-harness-release-workflow.test.d.ts +0 -2
  1631. package/dist/verification/__tests__/explore-harness-release-workflow.test.d.ts.map +0 -1
  1632. package/dist/verification/__tests__/explore-harness-release-workflow.test.js +0 -73
  1633. package/dist/verification/__tests__/explore-harness-release-workflow.test.js.map +0 -1
  1634. package/dist/verification/__tests__/native-release-manifest.test.d.ts +0 -2
  1635. package/dist/verification/__tests__/native-release-manifest.test.d.ts.map +0 -1
  1636. package/dist/verification/__tests__/native-release-manifest.test.js +0 -80
  1637. package/dist/verification/__tests__/native-release-manifest.test.js.map +0 -1
  1638. package/dist/verification/__tests__/pr-check-workflow.test.d.ts +0 -2
  1639. package/dist/verification/__tests__/pr-check-workflow.test.d.ts.map +0 -1
  1640. package/dist/verification/__tests__/pr-check-workflow.test.js +0 -27
  1641. package/dist/verification/__tests__/pr-check-workflow.test.js.map +0 -1
  1642. package/dist/verification/__tests__/ralph-persistence-gate.test.d.ts +0 -2
  1643. package/dist/verification/__tests__/ralph-persistence-gate.test.d.ts.map +0 -1
  1644. package/dist/verification/__tests__/ralph-persistence-gate.test.js +0 -55
  1645. package/dist/verification/__tests__/ralph-persistence-gate.test.js.map +0 -1
  1646. package/dist/verification/__tests__/rust-runtime-thin-adapter-gate.test.d.ts +0 -2
  1647. package/dist/verification/__tests__/rust-runtime-thin-adapter-gate.test.d.ts.map +0 -1
  1648. package/dist/verification/__tests__/rust-runtime-thin-adapter-gate.test.js +0 -32
  1649. package/dist/verification/__tests__/rust-runtime-thin-adapter-gate.test.js.map +0 -1
  1650. package/dist/verification/__tests__/verifier.test.d.ts +0 -2
  1651. package/dist/verification/__tests__/verifier.test.d.ts.map +0 -1
  1652. package/dist/verification/__tests__/verifier.test.js +0 -113
  1653. package/dist/verification/__tests__/verifier.test.js.map +0 -1
  1654. package/dist/visual/__tests__/verdict.test.d.ts +0 -2
  1655. package/dist/visual/__tests__/verdict.test.d.ts.map +0 -1
  1656. package/dist/visual/__tests__/verdict.test.js +0 -81
  1657. package/dist/visual/__tests__/verdict.test.js.map +0 -1
  1658. package/dist/wiki/__tests__/cjk-tokenize.test.d.ts +0 -12
  1659. package/dist/wiki/__tests__/cjk-tokenize.test.d.ts.map +0 -1
  1660. package/dist/wiki/__tests__/cjk-tokenize.test.js +0 -139
  1661. package/dist/wiki/__tests__/cjk-tokenize.test.js.map +0 -1
  1662. package/dist/wiki/__tests__/crlf-parse.test.d.ts +0 -2
  1663. package/dist/wiki/__tests__/crlf-parse.test.d.ts.map +0 -1
  1664. package/dist/wiki/__tests__/crlf-parse.test.js +0 -24
  1665. package/dist/wiki/__tests__/crlf-parse.test.js.map +0 -1
  1666. package/dist/wiki/__tests__/escape-newline.test.d.ts +0 -2
  1667. package/dist/wiki/__tests__/escape-newline.test.d.ts.map +0 -1
  1668. package/dist/wiki/__tests__/escape-newline.test.js +0 -45
  1669. package/dist/wiki/__tests__/escape-newline.test.js.map +0 -1
  1670. package/dist/wiki/__tests__/ingest.test.d.ts +0 -5
  1671. package/dist/wiki/__tests__/ingest.test.d.ts.map +0 -1
  1672. package/dist/wiki/__tests__/ingest.test.js +0 -181
  1673. package/dist/wiki/__tests__/ingest.test.js.map +0 -1
  1674. package/dist/wiki/__tests__/lint.test.d.ts +0 -5
  1675. package/dist/wiki/__tests__/lint.test.d.ts.map +0 -1
  1676. package/dist/wiki/__tests__/lint.test.js +0 -163
  1677. package/dist/wiki/__tests__/lint.test.js.map +0 -1
  1678. package/dist/wiki/__tests__/query.test.d.ts +0 -5
  1679. package/dist/wiki/__tests__/query.test.d.ts.map +0 -1
  1680. package/dist/wiki/__tests__/query.test.js +0 -141
  1681. package/dist/wiki/__tests__/query.test.js.map +0 -1
  1682. package/dist/wiki/__tests__/reserved-file-guard.test.d.ts +0 -2
  1683. package/dist/wiki/__tests__/reserved-file-guard.test.d.ts.map +0 -1
  1684. package/dist/wiki/__tests__/reserved-file-guard.test.js +0 -44
  1685. package/dist/wiki/__tests__/reserved-file-guard.test.js.map +0 -1
  1686. package/dist/wiki/__tests__/session-hooks.test.d.ts +0 -5
  1687. package/dist/wiki/__tests__/session-hooks.test.d.ts.map +0 -1
  1688. package/dist/wiki/__tests__/session-hooks.test.js +0 -36
  1689. package/dist/wiki/__tests__/session-hooks.test.js.map +0 -1
  1690. package/dist/wiki/__tests__/slug-nonascii.test.d.ts +0 -2
  1691. package/dist/wiki/__tests__/slug-nonascii.test.d.ts.map +0 -1
  1692. package/dist/wiki/__tests__/slug-nonascii.test.js +0 -30
  1693. package/dist/wiki/__tests__/slug-nonascii.test.js.map +0 -1
  1694. package/dist/wiki/__tests__/storage.test.d.ts +0 -5
  1695. package/dist/wiki/__tests__/storage.test.d.ts.map +0 -1
  1696. package/dist/wiki/__tests__/storage.test.js +0 -278
  1697. package/dist/wiki/__tests__/storage.test.js.map +0 -1
  1698. package/dist/wiki/__tests__/test-helpers.d.ts +0 -31
  1699. package/dist/wiki/__tests__/test-helpers.d.ts.map +0 -1
  1700. package/dist/wiki/__tests__/test-helpers.js +0 -108
  1701. package/dist/wiki/__tests__/test-helpers.js.map +0 -1
  1702. package/docs/contracts/ralph-cancel-contract.md +0 -23
  1703. package/docs/contracts/ralph-state-contract.md +0 -95
  1704. package/docs/issues/team-ralph-followup-team.md +0 -38
  1705. package/docs/qa/ralph-persistence-gate.md +0 -59
  1706. package/docs/reference/ralph-parity-matrix.md +0 -25
  1707. package/docs/reference/ralph-upstream-baseline.md +0 -34
  1708. package/plugins/roblox-ai-os-creator-skills/skills/ralph/SKILL.md +0 -269
  1709. package/plugins/roblox-ai-os-creator-skills/skills/ralplan/SKILL.md +0 -162
  1710. package/prompts/api-reviewer.md +0 -113
  1711. package/prompts/information-architect.md +0 -226
  1712. package/prompts/performance-reviewer.md +0 -109
  1713. package/prompts/product-analyst.md +0 -304
  1714. package/prompts/product-manager.md +0 -245
  1715. package/prompts/qa-tester.md +0 -124
  1716. package/prompts/quality-reviewer.md +0 -123
  1717. package/prompts/quality-strategist.md +0 -274
  1718. package/prompts/style-reviewer.md +0 -102
  1719. package/prompts/ux-researcher.md +0 -327
  1720. package/skills/frontend-ui-ux/SKILL.md +0 -34
  1721. package/skills/ralph/SKILL.md +0 -269
  1722. package/skills/ralplan/SKILL.md +0 -162
  1723. package/src/scripts/eval/eval-adaptive-sort-optimization.py +0 -24
  1724. package/src/scripts/eval/eval-candidate-handoff.ts +0 -8
  1725. package/src/scripts/eval/eval-cli-discoverability.ts +0 -40
  1726. package/src/scripts/eval/eval-fresh-run-tagging.ts +0 -8
  1727. package/src/scripts/eval/eval-help-consistency.ts +0 -11
  1728. package/src/scripts/eval/eval-in-action-cat-shellout-demo.ts +0 -31
  1729. package/src/scripts/eval/eval-ml-kaggle-model-optimization.py +0 -29
  1730. package/src/scripts/eval/eval-noisy-bayesopt-highdim.py +0 -44
  1731. package/src/scripts/eval/eval-noisy-latent-subspace-discovery.py +0 -44
  1732. package/src/scripts/eval/eval-parity-smoke.ts +0 -20
  1733. package/src/scripts/eval/eval-parity-sweep.ts +0 -26
  1734. package/src/scripts/eval/eval-resume-dirty-guard.ts +0 -8
  1735. package/src/scripts/eval/eval-security-path-traversal.ts +0 -38
  1736. package/src/scripts/run-autoresearch-showcase.sh +0 -75
  1737. /package/docs/{migration-mainline-post-v0.4.4.md → archive/migration-mainline-post-v0.4.4.md} +0 -0
  1738. /package/docs/{qa-plan-0.4.2.md → archive/qa-plan-0.4.2.md} +0 -0
  1739. /package/docs/{qa-report-0.4.2.md → archive/qa-report-0.4.2.md} +0 -0
@@ -1,5 +1,5 @@
1
1
  import assert from "node:assert/strict";
2
- import { execFileSync } from "node:child_process";
2
+ import { spawnSync } from "node:child_process";
3
3
  import { existsSync } from "node:fs";
4
4
  import { chmod, mkdir, mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises";
5
5
  import { tmpdir } from "node:os";
@@ -35,21 +35,87 @@ function parseSingleJsonStdout(stdout: string): Record<string, unknown> {
35
35
  return JSON.parse(trimmed) as Record<string, unknown>;
36
36
  }
37
37
 
38
- function runNativeHookCli(
38
+ async function runNativeHookCli(
39
39
  payload: Record<string, unknown> | string,
40
40
  options: { cwd?: string; env?: NodeJS.ProcessEnv } = {},
41
+ ): Promise<string> {
42
+ const rawInput = typeof payload === "string" ? payload : JSON.stringify(payload);
43
+ const cwd = options.cwd ?? process.cwd();
44
+ const targetEnv = options.env ?? process.env;
45
+ const previousEnv = new Map<string, string | undefined>();
46
+ const envKeys = new Set([...Object.keys(process.env), ...Object.keys(targetEnv)]);
47
+
48
+ for (const key of envKeys) {
49
+ previousEnv.set(key, process.env[key]);
50
+ const nextValue = targetEnv[key];
51
+ if (typeof nextValue === "string") process.env[key] = nextValue;
52
+ else delete process.env[key];
53
+ }
54
+
55
+ try {
56
+ let parsed: Record<string, unknown>;
57
+ try {
58
+ parsed = typeof payload === "string"
59
+ ? JSON.parse(rawInput) as Record<string, unknown>
60
+ : payload;
61
+ } catch (error) {
62
+ return `${JSON.stringify({
63
+ decision: "block",
64
+ reason: "RCS native hook received malformed JSON input. Preserve runtime state, inspect the emitting hook payload yourself, and retry with valid JSON.",
65
+ hookSpecificOutput: {
66
+ hookEventName: "Unknown",
67
+ additionalContext:
68
+ `stdin JSON parsing failed inside codex-native-hook: ${error instanceof Error ? error.message : String(error)}. Emit valid JSON from the native hook caller before retrying.`,
69
+ },
70
+ })}\n`;
71
+ }
72
+
73
+ try {
74
+ if (
75
+ process.env.NODE_ENV === "test"
76
+ && process.env.RCS_NATIVE_HOOK_TEST_THROW_STOP_DISPATCH === "1"
77
+ && String(parsed.hook_event_name ?? "") === "Stop"
78
+ ) {
79
+ throw new Error("test-induced Stop dispatch failure");
80
+ }
81
+ const result = await dispatchCodexNativeHook(parsed, { cwd });
82
+ if (result.outputJson) return `${JSON.stringify(result.outputJson)}\n`;
83
+ if (result.hookEventName === "Stop") return "{}\n";
84
+ return "";
85
+ } catch (error) {
86
+ if (String(parsed.hook_event_name ?? "") !== "Stop") throw error;
87
+ const detail = error instanceof Error ? error.message : String(error);
88
+ const reason =
89
+ "RCS native Stop hook failed before normal continuation handling. Continue once more, preserve runtime state, inspect the hook logs, and retry with a valid Stop JSON response.";
90
+ return `${JSON.stringify({
91
+ decision: "block",
92
+ reason,
93
+ stopReason: "native_stop_dispatch_failure",
94
+ systemMessage: `${reason} Failure: ${detail}`,
95
+ })}\n`;
96
+ }
97
+ } finally {
98
+ for (const key of envKeys) {
99
+ const value = previousEnv.get(key);
100
+ if (typeof value === "string") process.env[key] = value;
101
+ else delete process.env[key];
102
+ }
103
+ }
104
+ }
105
+
106
+ function execFileSyncCompat(
107
+ command: string,
108
+ args: string[],
109
+ options: { cwd?: string; stdio?: "pipe" | "ignore"; encoding?: "utf-8" } = {},
41
110
  ): string {
42
- return execFileSync(
43
- process.execPath,
44
- [nativeHookScriptPath()],
45
- {
46
- cwd: options.cwd ?? process.cwd(),
47
- input: typeof payload === "string" ? payload : JSON.stringify(payload),
48
- encoding: "utf-8",
49
- stdio: ["pipe", "pipe", "pipe"],
50
- env: options.env ?? process.env,
51
- },
52
- );
111
+ const result = spawnSync(command, args, {
112
+ cwd: options.cwd ?? process.cwd(),
113
+ stdio: options.stdio ?? "pipe",
114
+ encoding: options.encoding ?? "utf-8",
115
+ });
116
+ if (result.status === 0) return result.stdout ?? "";
117
+ if (result.error) throw result.error;
118
+ throw new Error(result.stderr || result.stdout || `${command} ${args.join(" ")} exited with status ${result.status ?? "unknown"}`);
53
119
  }
54
120
 
55
121
  async function writeJson(path: string, value: unknown): Promise<void> {
@@ -244,8 +310,8 @@ describe("codex native hook dispatch", () => {
244
310
  );
245
311
  });
246
312
 
247
- it("emits deterministic JSON stdout when CLI stdin is malformed", () => {
248
- const stdout = runNativeHookCli("{");
313
+ it("emits deterministic JSON stdout when CLI stdin is malformed", async () => {
314
+ const stdout = await runNativeHookCli("{");
249
315
 
250
316
  const output = parseSingleJsonStdout(stdout) as {
251
317
  decision?: string;
@@ -268,7 +334,7 @@ describe("codex native hook dispatch", () => {
268
334
  it("emits parseable no-op JSON stdout for inactive Stop CLI runs", async () => {
269
335
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-cli-stop-noop-json-"));
270
336
  try {
271
- const stdout = runNativeHookCli({
337
+ const stdout = await runNativeHookCli({
272
338
  hook_event_name: "Stop",
273
339
  cwd,
274
340
  session_id: "sess-cli-stop-noop-json",
@@ -313,7 +379,7 @@ describe("codex native hook dispatch", () => {
313
379
  try {
314
380
  await writeActiveAutopilotSession(cwd, "sess-cli-stop-json");
315
381
 
316
- const stdout = runNativeHookCli({
382
+ const stdout = await runNativeHookCli({
317
383
  hook_event_name: "Stop",
318
384
  cwd,
319
385
  session_id: "sess-cli-stop-json",
@@ -343,7 +409,7 @@ describe("codex native hook dispatch", () => {
343
409
  "utf-8",
344
410
  );
345
411
 
346
- const stdout = runNativeHookCli({
412
+ const stdout = await runNativeHookCli({
347
413
  hook_event_name: "Stop",
348
414
  cwd,
349
415
  session_id: "sess-cli-stop-noisy-plugin",
@@ -363,7 +429,7 @@ describe("codex native hook dispatch", () => {
363
429
  it("emits deterministic Stop JSON stdout when Stop dispatch fails", async () => {
364
430
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-cli-stop-dispatch-failure-"));
365
431
  try {
366
- const stdout = runNativeHookCli({
432
+ const stdout = await runNativeHookCli({
367
433
  hook_event_name: "Stop",
368
434
  cwd,
369
435
  session_id: "sess-cli-stop-dispatch-failure",
@@ -469,16 +535,16 @@ describe("codex native hook dispatch", () => {
469
535
  session_id: nativeSessionId,
470
536
  thread_id: "thread-1",
471
537
  turn_id: "turn-1",
472
- prompt: "$ralplan fix hud scope drift",
538
+ prompt: "$blueprint fix hud scope drift",
473
539
  },
474
540
  { cwd },
475
541
  );
476
542
 
477
543
  assert.equal(promptResult.rcsEventName, "keyword-detector");
478
544
  assert.equal(existsSync(join(stateDir, "sessions", canonicalSessionId, "skill-active-state.json")), true);
479
- assert.equal(existsSync(join(stateDir, "sessions", canonicalSessionId, "ralplan-state.json")), true);
545
+ assert.equal(existsSync(join(stateDir, "sessions", canonicalSessionId, "blueprint-state.json")), true);
480
546
  assert.equal(existsSync(join(stateDir, "sessions", nativeSessionId, "skill-active-state.json")), false);
481
- assert.equal(existsSync(join(stateDir, "sessions", nativeSessionId, "ralplan-state.json")), false);
547
+ assert.equal(existsSync(join(stateDir, "sessions", nativeSessionId, "blueprint-state.json")), false);
482
548
  } finally {
483
549
  await rm(cwd, { recursive: true, force: true });
484
550
  }
@@ -495,9 +561,9 @@ describe("codex native hook dispatch", () => {
495
561
  await writeSessionStart(cwd, canonicalSessionId, {
496
562
  nativeSessionId: leaderNativeSessionId,
497
563
  });
498
- await writeJson(join(stateDir, "sessions", canonicalSessionId, "ralph-state.json"), {
564
+ await writeJson(join(stateDir, "sessions", canonicalSessionId, "forge-state.json"), {
499
565
  active: true,
500
- mode: "ralph",
566
+ mode: "forge",
501
567
  current_phase: "executing",
502
568
  iteration: 1,
503
569
  max_iterations: 5,
@@ -541,16 +607,16 @@ describe("codex native hook dispatch", () => {
541
607
  assert.equal(sessionState.session_id, canonicalSessionId);
542
608
  assert.equal(sessionState.native_session_id, leaderNativeSessionId);
543
609
  assert.equal(
544
- existsSync(join(stateDir, "sessions", childNativeSessionId, "ralph-state.json")),
610
+ existsSync(join(stateDir, "sessions", childNativeSessionId, "forge-state.json")),
545
611
  false,
546
612
  );
547
613
  assert.ok(result.outputJson);
548
614
 
549
- const leaderRalph = JSON.parse(
550
- await readFile(join(stateDir, "sessions", canonicalSessionId, "ralph-state.json"), "utf-8"),
615
+ const leaderForge = JSON.parse(
616
+ await readFile(join(stateDir, "sessions", canonicalSessionId, "forge-state.json"), "utf-8"),
551
617
  ) as { active?: boolean; current_phase?: string };
552
- assert.equal(leaderRalph.active, true);
553
- assert.equal(leaderRalph.current_phase, "executing");
618
+ assert.equal(leaderForge.active, true);
619
+ assert.equal(leaderForge.current_phase, "executing");
554
620
 
555
621
  const tracking = JSON.parse(
556
622
  await readFile(join(stateDir, "subagent-tracking.json"), "utf-8"),
@@ -583,9 +649,9 @@ describe("codex native hook dispatch", () => {
583
649
  await writeSessionStart(cwd, canonicalSessionId, {
584
650
  nativeSessionId: leaderNativeSessionId,
585
651
  });
586
- await writeJson(join(stateDir, "sessions", canonicalSessionId, "ralph-state.json"), {
652
+ await writeJson(join(stateDir, "sessions", canonicalSessionId, "forge-state.json"), {
587
653
  active: true,
588
- mode: "ralph",
654
+ mode: "forge",
589
655
  current_phase: "executing",
590
656
  iteration: 1,
591
657
  max_iterations: 5,
@@ -632,11 +698,11 @@ describe("codex native hook dispatch", () => {
632
698
  assert.equal(existsSync(join(stateDir, "sessions", childNativeSessionId)), false);
633
699
  assert.equal(result.outputJson, null);
634
700
 
635
- const leaderRalph = JSON.parse(
636
- await readFile(join(stateDir, "sessions", canonicalSessionId, "ralph-state.json"), "utf-8"),
701
+ const leaderForge = JSON.parse(
702
+ await readFile(join(stateDir, "sessions", canonicalSessionId, "forge-state.json"), "utf-8"),
637
703
  ) as { active?: boolean; current_phase?: string };
638
- assert.equal(leaderRalph.active, true);
639
- assert.equal(leaderRalph.current_phase, "executing");
704
+ assert.equal(leaderForge.active, true);
705
+ assert.equal(leaderForge.current_phase, "executing");
640
706
  } finally {
641
707
  await rm(cwd, { recursive: true, force: true });
642
708
  }
@@ -716,7 +782,7 @@ describe("codex native hook dispatch", () => {
716
782
  session_id: nativeSessionId,
717
783
  thread_id: "thread-hud",
718
784
  turn_id: "turn-hud",
719
- prompt: "$ralplan fix orphaned hud session handoff",
785
+ prompt: "$blueprint fix orphaned hud session handoff",
720
786
  },
721
787
  {
722
788
  cwd,
@@ -730,9 +796,9 @@ describe("codex native hook dispatch", () => {
730
796
  assert.equal(promptResult.rcsEventName, "keyword-detector");
731
797
  assert.deepEqual(reconcileCall, { cwd, sessionId: canonicalSessionId });
732
798
  assert.equal(existsSync(join(stateDir, "sessions", canonicalSessionId, "skill-active-state.json")), true);
733
- assert.equal(existsSync(join(stateDir, "sessions", canonicalSessionId, "ralplan-state.json")), true);
799
+ assert.equal(existsSync(join(stateDir, "sessions", canonicalSessionId, "blueprint-state.json")), true);
734
800
  assert.equal(existsSync(join(stateDir, "sessions", nativeSessionId, "skill-active-state.json")), false);
735
- assert.equal(existsSync(join(stateDir, "sessions", nativeSessionId, "ralplan-state.json")), false);
801
+ assert.equal(existsSync(join(stateDir, "sessions", nativeSessionId, "blueprint-state.json")), false);
736
802
  } finally {
737
803
  await rm(cwd, { recursive: true, force: true });
738
804
  }
@@ -742,7 +808,7 @@ describe("codex native hook dispatch", () => {
742
808
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-session-gitignore-"));
743
809
  try {
744
810
  await writeFile(join(cwd, ".gitignore"), "node_modules/\n");
745
- execFileSync("git", ["init"], { cwd, stdio: "pipe" });
811
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "pipe" });
746
812
 
747
813
  const result = await dispatchCodexNativeHook(
748
814
  {
@@ -771,7 +837,7 @@ describe("codex native hook dispatch", () => {
771
837
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-session-existing-ignore-"));
772
838
  try {
773
839
  await writeFile(join(cwd, ".gitignore"), "node_modules/\n.rcs/\n");
774
- execFileSync("git", ["init"], { cwd, stdio: "pipe" });
840
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "pipe" });
775
841
 
776
842
  const result = await dispatchCodexNativeHook(
777
843
  {
@@ -799,8 +865,8 @@ describe("codex native hook dispatch", () => {
799
865
  try {
800
866
  await writeFile(join(cwd, ".gitignore"), "node_modules/\n");
801
867
  await writeFile(excludesFile, ".rcs/\n");
802
- execFileSync("git", ["init"], { cwd, stdio: "pipe" });
803
- execFileSync("git", ["config", "core.excludesfile", excludesFile], { cwd, stdio: "pipe" });
868
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "pipe" });
869
+ execFileSyncCompat("git", ["config", "core.excludesfile", excludesFile], { cwd, stdio: "pipe" });
804
870
 
805
871
  const result = await dispatchCodexNativeHook(
806
872
  {
@@ -866,7 +932,7 @@ describe("codex native hook dispatch", () => {
866
932
  await writeSessionStart(cwd, priorSessionId, {
867
933
  nativeSessionId: "codex-native-old",
868
934
  });
869
- await writeJson(join(stateDir, "sessions", priorSessionId, "ralph-state.json"), {
935
+ await writeJson(join(stateDir, "sessions", priorSessionId, "forge-state.json"), {
870
936
  active: true,
871
937
  current_phase: "executing",
872
938
  });
@@ -936,7 +1002,7 @@ describe("codex native hook dispatch", () => {
936
1002
  assert.match(additionalContext, /Preserve durable project guidance/);
937
1003
  assert.doesNotMatch(additionalContext, /stale UI rework context snapshot/);
938
1004
  assert.doesNotMatch(additionalContext, /\[Subagents\]/);
939
- assert.doesNotMatch(additionalContext, /ralph phase: executing/);
1005
+ assert.doesNotMatch(additionalContext, /forge phase: executing/);
940
1006
  } finally {
941
1007
  await rm(cwd, { recursive: true, force: true });
942
1008
  }
@@ -973,15 +1039,15 @@ describe("codex native hook dispatch", () => {
973
1039
  session_id: "sess-1",
974
1040
  thread_id: "thread-1",
975
1041
  turn_id: "turn-1",
976
- prompt: "$ralplan implement issue #1307",
1042
+ prompt: "$blueprint implement issue #1307",
977
1043
  },
978
1044
  { cwd },
979
1045
  );
980
1046
 
981
1047
  assert.equal(result.rcsEventName, "keyword-detector");
982
- assert.equal(result.skillState?.skill, "ralplan");
1048
+ assert.equal(result.skillState?.skill, "blueprint");
983
1049
  assert.ok(result.outputJson, "UserPromptSubmit should emit developer context");
984
- assert.match(JSON.stringify(result.outputJson), /skill: ralplan activated and initial state initialized at \.rcs\/state\/sessions\/sess-1\/ralplan-state\.json; write subsequent updates via rcs_state MCP\./);
1050
+ assert.match(JSON.stringify(result.outputJson), /skill: blueprint activated and initial state initialized at \.rcs\/state\/sessions\/sess-1\/blueprint-state\.json; write subsequent updates via rcs_state MCP\./);
985
1051
 
986
1052
  const statePath = join(cwd, ".rcs", "state", "skill-active-state.json");
987
1053
  assert.equal(existsSync(statePath), true);
@@ -990,10 +1056,10 @@ describe("codex native hook dispatch", () => {
990
1056
  active?: boolean;
991
1057
  initialized_mode?: string;
992
1058
  };
993
- assert.equal(state.skill, "ralplan");
1059
+ assert.equal(state.skill, "blueprint");
994
1060
  assert.equal(state.active, true);
995
- assert.equal(state.initialized_mode, "ralplan");
996
- assert.equal(existsSync(join(cwd, ".rcs", "state", "sessions", "sess-1", "ralplan-state.json")), true);
1061
+ assert.equal(state.initialized_mode, "blueprint");
1062
+ assert.equal(existsSync(join(cwd, ".rcs", "state", "sessions", "sess-1", "blueprint-state.json")), true);
997
1063
  } finally {
998
1064
  await rm(cwd, { recursive: true, force: true });
999
1065
  }
@@ -1010,19 +1076,19 @@ describe("codex native hook dispatch", () => {
1010
1076
  session_id: "sess-plugin-1",
1011
1077
  thread_id: "thread-plugin-1",
1012
1078
  turn_id: "turn-plugin-1",
1013
- prompt: "$roblox-ai-os-creator-skills:ralplan implement issue #1307",
1079
+ prompt: "$roblox-ai-os-creator-skills:blueprint implement issue #1307",
1014
1080
  },
1015
1081
  { cwd },
1016
1082
  );
1017
1083
 
1018
1084
  assert.equal(result.rcsEventName, "keyword-detector");
1019
- assert.equal(result.skillState?.skill, "ralplan");
1085
+ assert.equal(result.skillState?.skill, "blueprint");
1020
1086
  const message = String(
1021
1087
  (result.outputJson as { hookSpecificOutput?: { additionalContext?: string } })?.hookSpecificOutput?.additionalContext || "",
1022
1088
  );
1023
- assert.match(message, /\$roblox-ai-os-creator-skills:ralplan" -> ralplan/);
1024
- assert.match(message, /skill: ralplan activated and initial state initialized at \.rcs\/state\/sessions\/sess-plugin-1\/ralplan-state\.json; write subsequent updates via rcs_state MCP\./);
1025
- assert.equal(existsSync(join(cwd, ".rcs", "state", "sessions", "sess-plugin-1", "ralplan-state.json")), true);
1089
+ assert.match(message, /\$roblox-ai-os-creator-skills:blueprint" -> blueprint/);
1090
+ assert.match(message, /skill: blueprint activated and initial state initialized at \.rcs\/state\/sessions\/sess-plugin-1\/blueprint-state\.json; write subsequent updates via rcs_state MCP\./);
1091
+ assert.equal(existsSync(join(cwd, ".rcs", "state", "sessions", "sess-plugin-1", "blueprint-state.json")), true);
1026
1092
  } finally {
1027
1093
  await rm(cwd, { recursive: true, force: true });
1028
1094
  }
@@ -1082,24 +1148,24 @@ describe("codex native hook dispatch", () => {
1082
1148
  assert.match(message, /ground the task before editing/i);
1083
1149
  assert.match(message, /define pass\/fail acceptance criteria/i);
1084
1150
  assert.match(message, /direct-tool plus background evidence lanes/i);
1085
- assert.match(message, /Ralph owns persistence and the full verified-completion promise/i);
1151
+ assert.match(message, /Forge owns persistence and the full verified-completion promise/i);
1086
1152
  } finally {
1087
1153
  await rm(cwd, { recursive: true, force: true });
1088
1154
  }
1089
1155
  });
1090
1156
 
1091
- it("does not activate Ralph workflow state from a plain conversational mention", async () => {
1092
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-ralph-plain-text-"));
1157
+ it("does not activate Forge workflow state from a plain conversational mention", async () => {
1158
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-forge-plain-text-"));
1093
1159
  try {
1094
1160
  await mkdir(join(cwd, ".rcs", "state"), { recursive: true });
1095
1161
  const result = await dispatchCodexNativeHook(
1096
1162
  {
1097
1163
  hook_event_name: "UserPromptSubmit",
1098
1164
  cwd,
1099
- session_id: "sess-ralph-plain-text",
1100
- thread_id: "thread-ralph-plain-text",
1101
- turn_id: "turn-ralph-plain-text",
1102
- prompt: "why does ralph keep blocking stop?",
1165
+ session_id: "sess-forge-plain-text",
1166
+ thread_id: "thread-forge-plain-text",
1167
+ turn_id: "turn-forge-plain-text",
1168
+ prompt: "why does forge keep blocking stop?",
1103
1169
  },
1104
1170
  { cwd },
1105
1171
  );
@@ -1107,16 +1173,16 @@ describe("codex native hook dispatch", () => {
1107
1173
  assert.equal(result.rcsEventName, "keyword-detector");
1108
1174
  assert.equal(result.skillState, null);
1109
1175
  // Triage may inject advisory LIGHT/explore context for the question-shaped
1110
- // prompt, but the invariant this test guards is that no Ralph workflow state
1111
- // is seeded and no Ralph-activation message is emitted.
1176
+ // prompt, but the invariant this test guards is that no Forge workflow state
1177
+ // is seeded and no Forge-activation message is emitted.
1112
1178
  const advisoryContext = String(
1113
1179
  (result.outputJson as { hookSpecificOutput?: { additionalContext?: string } })?.hookSpecificOutput?.additionalContext || "",
1114
1180
  );
1115
- assert.doesNotMatch(advisoryContext, /skill:\s*ralph/i);
1116
- assert.doesNotMatch(advisoryContext, /ralph-state\.json/i);
1181
+ assert.doesNotMatch(advisoryContext, /skill:\s*forge/i);
1182
+ assert.doesNotMatch(advisoryContext, /forge-state\.json/i);
1117
1183
  assert.equal(existsSync(join(cwd, ".rcs", "state", "skill-active-state.json")), false);
1118
- assert.equal(existsSync(join(cwd, ".rcs", "state", "sessions", "sess-ralph-plain-text", "skill-active-state.json")), false);
1119
- assert.equal(existsSync(join(cwd, ".rcs", "state", "sessions", "sess-ralph-plain-text", "ralph-state.json")), false);
1184
+ assert.equal(existsSync(join(cwd, ".rcs", "state", "sessions", "sess-forge-plain-text", "skill-active-state.json")), false);
1185
+ assert.equal(existsSync(join(cwd, ".rcs", "state", "sessions", "sess-forge-plain-text", "forge-state.json")), false);
1120
1186
  } finally {
1121
1187
  await rm(cwd, { recursive: true, force: true });
1122
1188
  }
@@ -1183,66 +1249,64 @@ describe("codex native hook dispatch", () => {
1183
1249
  }
1184
1250
  });
1185
1251
 
1186
- it("clarifies that prompt-side $ralph activation does not invoke the PRD-gated CLI path", async () => {
1187
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-ralph-routing-"));
1252
+ it("clarifies that prompt-side $forge activation routes into the canonical forge runtime without invoking the PRD-gated CLI path", async () => {
1253
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-forge-routing-"));
1188
1254
  try {
1189
1255
  await mkdir(join(cwd, ".rcs", "state"), { recursive: true });
1190
1256
  const result = await dispatchCodexNativeHook(
1191
1257
  {
1192
1258
  hook_event_name: "UserPromptSubmit",
1193
1259
  cwd,
1194
- session_id: "sess-ralph-msg",
1195
- thread_id: "thread-ralph-msg",
1196
- turn_id: "turn-ralph-msg",
1197
- prompt: "$ralph continue verification",
1260
+ session_id: "sess-forge-msg",
1261
+ thread_id: "thread-forge-msg",
1262
+ turn_id: "turn-forge-msg",
1263
+ prompt: "$forge continue verification",
1198
1264
  },
1199
1265
  { cwd },
1200
1266
  );
1201
1267
 
1202
1268
  assert.equal(result.rcsEventName, "keyword-detector");
1203
- assert.equal(result.skillState?.skill, "ralph");
1269
+ assert.equal(result.skillState?.skill, "forge");
1204
1270
  const message = String(
1205
1271
  (result.outputJson as { hookSpecificOutput?: { additionalContext?: string } })?.hookSpecificOutput?.additionalContext || "",
1206
1272
  );
1207
- assert.match(message, /\$ralph" -> ralph/);
1208
- assert.match(message, /skill: ralph activated and initial state initialized at \.rcs\/state\/sessions\/sess-ralph-msg\/ralph-state\.json; write subsequent updates via rcs_state MCP\./);
1209
- assert.match(message, /Prompt-side `\$ralph` activation seeds Ralph workflow state only; it does not invoke `rcs ralph`\./);
1210
- assert.match(message, /Use `rcs ralph --prd \.\.\.` only when you explicitly want the PRD-gated CLI startup path\./);
1273
+ assert.match(message, /\$forge" -> forge/);
1274
+ assert.match(message, /skill: forge activated and initial state initialized at \.rcs\/state\/sessions\/sess-forge-msg\/forge-state\.json; write subsequent updates via rcs_state MCP\./);
1275
+ assert.match(message, /Use `rcs forge --prd \.\.\.` only when you explicitly want the PRD-gated CLI startup path\./);
1211
1276
  } finally {
1212
1277
  await rm(cwd, { recursive: true, force: true });
1213
1278
  }
1214
1279
  });
1215
1280
 
1216
- it("clarifies that plugin-prefixed prompt-side $ralph activation does not invoke the PRD-gated CLI path", async () => {
1217
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-plugin-ralph-routing-"));
1281
+ it("clarifies that plugin-prefixed prompt-side $forge activation routes into the canonical forge runtime without invoking the PRD-gated CLI path", async () => {
1282
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-plugin-forge-routing-"));
1218
1283
  try {
1219
1284
  await mkdir(join(cwd, ".rcs", "state"), { recursive: true });
1220
1285
  const result = await dispatchCodexNativeHook(
1221
1286
  {
1222
1287
  hook_event_name: "UserPromptSubmit",
1223
1288
  cwd,
1224
- session_id: "sess-plugin-ralph-msg",
1225
- thread_id: "thread-plugin-ralph-msg",
1226
- turn_id: "turn-plugin-ralph-msg",
1227
- prompt: "$roblox-ai-os-creator-skills:ralph continue verification",
1289
+ session_id: "sess-plugin-forge-msg",
1290
+ thread_id: "thread-plugin-forge-msg",
1291
+ turn_id: "turn-plugin-forge-msg",
1292
+ prompt: "$roblox-ai-os-creator-skills:forge continue verification",
1228
1293
  },
1229
1294
  { cwd },
1230
1295
  );
1231
1296
 
1232
1297
  assert.equal(result.rcsEventName, "keyword-detector");
1233
- assert.equal(result.skillState?.skill, "ralph");
1298
+ assert.equal(result.skillState?.skill, "forge");
1234
1299
  const message = String(
1235
1300
  (result.outputJson as { hookSpecificOutput?: { additionalContext?: string } })?.hookSpecificOutput?.additionalContext || "",
1236
1301
  );
1237
- assert.match(message, /\$roblox-ai-os-creator-skills:ralph" -> ralph/);
1238
- assert.match(message, /skill: ralph activated and initial state initialized at \.rcs\/state\/sessions\/sess-plugin-ralph-msg\/ralph-state\.json; write subsequent updates via rcs_state MCP\./);
1239
- assert.match(message, /Prompt-side `\$ralph` activation seeds Ralph workflow state only; it does not invoke `rcs ralph`\./);
1302
+ assert.match(message, /\$roblox-ai-os-creator-skills:forge" -> forge/);
1303
+ assert.match(message, /skill: forge activated and initial state initialized at \.rcs\/state\/sessions\/sess-plugin-forge-msg\/forge-state\.json; write subsequent updates via rcs_state MCP\./);
1240
1304
  } finally {
1241
1305
  await rm(cwd, { recursive: true, force: true });
1242
1306
  }
1243
1307
  });
1244
1308
 
1245
- it("keeps bare keep-going continuation on the active autopilot skill instead of denying with generic ralph overlap", async () => {
1309
+ it("keeps bare keep-going continuation on the active autopilot skill instead of denying with generic forge overlap", async () => {
1246
1310
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-autopilot-bare-continuation-"));
1247
1311
  try {
1248
1312
  const sessionId = "sess-autopilot-cont";
@@ -1285,11 +1349,11 @@ describe("codex native hook dispatch", () => {
1285
1349
  const message = String(
1286
1350
  (result.outputJson as { hookSpecificOutput?: { additionalContext?: string } })?.hookSpecificOutput?.additionalContext || "",
1287
1351
  );
1288
- assert.match(message, /"keep going" -> ralph/);
1352
+ assert.match(message, /"keep going" -> forge/);
1289
1353
  assert.doesNotMatch(message, /denied workflow keyword/i);
1290
- assert.doesNotMatch(message, /Unsupported workflow overlap: autopilot \+ ralph\./);
1291
- assert.doesNotMatch(message, /Prompt-side `\$ralph` activation/);
1292
- assert.equal(existsSync(join(sessionDir, "ralph-state.json")), false);
1354
+ assert.doesNotMatch(message, /Unsupported workflow overlap: autopilot \+ forge\./);
1355
+ assert.doesNotMatch(message, /Prompt-side `\$forge` activation/);
1356
+ assert.equal(existsSync(join(sessionDir, "forge-state.json")), false);
1293
1357
  } finally {
1294
1358
  await rm(cwd, { recursive: true, force: true });
1295
1359
  }
@@ -1449,26 +1513,26 @@ describe("codex native hook dispatch", () => {
1449
1513
  }
1450
1514
  });
1451
1515
 
1452
- it("keeps bare keep-going continuation on the active ralph skill without resetting through generic keep-going routing", async () => {
1453
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-ralph-bare-continuation-"));
1516
+ it("keeps bare keep-going continuation on the active forge skill without resetting through generic keep-going routing", async () => {
1517
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-forge-bare-continuation-"));
1454
1518
  try {
1455
- const sessionId = "sess-ralph-cont";
1519
+ const sessionId = "sess-forge-cont";
1456
1520
  const sessionDir = join(cwd, ".rcs", "state", "sessions", sessionId);
1457
1521
  await mkdir(sessionDir, { recursive: true });
1458
1522
  await writeJson(join(sessionDir, "skill-active-state.json"), {
1459
1523
  version: 1,
1460
1524
  active: true,
1461
- skill: "ralph",
1462
- keyword: "$ralph",
1525
+ skill: "forge",
1526
+ keyword: "$forge",
1463
1527
  phase: "executing",
1464
1528
  session_id: sessionId,
1465
1529
  active_skills: [
1466
- { skill: "ralph", phase: "executing", active: true, session_id: sessionId },
1530
+ { skill: "forge", phase: "executing", active: true, session_id: sessionId },
1467
1531
  ],
1468
1532
  });
1469
- await writeJson(join(sessionDir, "ralph-state.json"), {
1533
+ await writeJson(join(sessionDir, "forge-state.json"), {
1470
1534
  active: true,
1471
- mode: "ralph",
1535
+ mode: "forge",
1472
1536
  current_phase: "verifying",
1473
1537
  started_at: "2026-04-19T00:00:00.000Z",
1474
1538
  updated_at: "2026-04-19T00:10:00.000Z",
@@ -1482,19 +1546,19 @@ describe("codex native hook dispatch", () => {
1482
1546
  hook_event_name: "UserPromptSubmit",
1483
1547
  cwd,
1484
1548
  session_id: sessionId,
1485
- thread_id: "thread-ralph-cont",
1486
- turn_id: "turn-ralph-cont",
1549
+ thread_id: "thread-forge-cont",
1550
+ turn_id: "turn-forge-cont",
1487
1551
  prompt: "keep going now",
1488
1552
  },
1489
1553
  { cwd },
1490
1554
  );
1491
1555
 
1492
1556
  assert.equal(result.rcsEventName, "keyword-detector");
1493
- assert.equal(result.skillState?.skill, "ralph");
1557
+ assert.equal(result.skillState?.skill, "forge");
1494
1558
  const message = String(
1495
1559
  (result.outputJson as { hookSpecificOutput?: { additionalContext?: string } })?.hookSpecificOutput?.additionalContext || "",
1496
1560
  );
1497
- assert.match(message, /"keep going" -> ralph/);
1561
+ assert.match(message, /"keep going" -> forge/);
1498
1562
  assert.doesNotMatch(message, /denied workflow keyword/i);
1499
1563
  assert.doesNotMatch(message, /mode transiting:/);
1500
1564
  } finally {
@@ -1514,7 +1578,7 @@ describe("codex native hook dispatch", () => {
1514
1578
  session_id: "sess-wrapper-meta-1",
1515
1579
  thread_id: "thread-wrapper-meta-1",
1516
1580
  turn_id: "turn-wrapper-meta-1",
1517
- input: "$ralplan hidden wrapper text should stay non-routing",
1581
+ input: "$blueprint hidden wrapper text should stay non-routing",
1518
1582
  text: JSON.stringify({
1519
1583
  hook_run_id: "native-stop-wrapper-1",
1520
1584
  note: "cancel stop wrapper metadata must not be treated like user intent",
@@ -1572,7 +1636,7 @@ export async function onHookEvent(event) {
1572
1636
  session_id: "sess-sanitized-1",
1573
1637
  thread_id: "thread-sanitized-1",
1574
1638
  turn_id: "turn-sanitized-1",
1575
- prompt: "$ralplan approve this blocker-sensitive request",
1639
+ prompt: "$blueprint approve this blocker-sensitive request",
1576
1640
  },
1577
1641
  { cwd },
1578
1642
  );
@@ -1678,8 +1742,8 @@ export async function onHookEvent(event) {
1678
1742
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-team-native-bridge-block-"));
1679
1743
  try {
1680
1744
  await mkdir(join(cwd, ".rcs", "state", "sessions", "sess-team-bridge"), { recursive: true });
1681
- await writeJson(join(cwd, ".rcs", "state", "sessions", "sess-team-bridge", "ralph-state.json"), {
1682
- mode: "ralph",
1745
+ await writeJson(join(cwd, ".rcs", "state", "sessions", "sess-team-bridge", "forge-state.json"), {
1746
+ mode: "forge",
1683
1747
  active: true,
1684
1748
  tmux_pane_id: "%42",
1685
1749
  });
@@ -1831,12 +1895,12 @@ export async function onHookEvent(event) {
1831
1895
  session_id: "sess-handoff-1",
1832
1896
  thread_id: "thread-handoff-1",
1833
1897
  turn_id: "turn-handoff-1",
1834
- prompt: "$ralplan implement the approved contract",
1898
+ prompt: "$blueprint implement the approved contract",
1835
1899
  },
1836
1900
  { cwd },
1837
1901
  );
1838
1902
 
1839
- assert.match(JSON.stringify(result.outputJson), /mode transiting: deep-interview -> ralplan/);
1903
+ assert.match(JSON.stringify(result.outputJson), /mode transiting: deep-interview -> blueprint/);
1840
1904
  const completed = JSON.parse(await readFile(join(sessionDir, "deep-interview-state.json"), "utf-8")) as {
1841
1905
  active?: boolean;
1842
1906
  current_phase?: string;
@@ -1860,7 +1924,7 @@ export async function onHookEvent(event) {
1860
1924
  session_id: "sess-multi-1",
1861
1925
  thread_id: "thread-multi-1",
1862
1926
  turn_id: "turn-multi-1",
1863
- prompt: "$ralplan $team $ralph ship this fix",
1927
+ prompt: "$blueprint $team $forge ship this fix",
1864
1928
  },
1865
1929
  { cwd },
1866
1930
  );
@@ -1868,12 +1932,12 @@ export async function onHookEvent(event) {
1868
1932
  const message = String(
1869
1933
  (result.outputJson as { hookSpecificOutput?: { additionalContext?: string } })?.hookSpecificOutput?.additionalContext || '',
1870
1934
  );
1871
- assert.match(message, /\$ralplan" -> ralplan/);
1935
+ assert.match(message, /\$blueprint" -> blueprint/);
1872
1936
  assert.match(message, /\$team" -> team/);
1873
- assert.match(message, /\$ralph" -> ralph/);
1937
+ assert.match(message, /\$forge" -> forge/);
1874
1938
  assert.doesNotMatch(message, /mode transiting:/);
1875
- assert.match(message, /planning preserved over simultaneous execution follow-up; deferred skills: team, ralph\./);
1876
- assert.match(message, /skill: ralplan activated and initial state initialized at \.rcs\/state\/sessions\/sess-multi-1\/ralplan-state\.json; write subsequent updates via rcs_state MCP\./);
1939
+ assert.match(message, /planning preserved over simultaneous execution follow-up; deferred skills: team, forge\./);
1940
+ assert.match(message, /skill: blueprint activated and initial state initialized at \.rcs\/state\/sessions\/sess-multi-1\/blueprint-state\.json; write subsequent updates via rcs_state MCP\./);
1877
1941
  assert.doesNotMatch(message, /Use the durable RCS team runtime via `rcs team \.\.\.`/);
1878
1942
  } finally {
1879
1943
  await rm(cwd, { recursive: true, force: true });
@@ -1892,7 +1956,7 @@ export async function onHookEvent(event) {
1892
1956
  session_id: "sess-plugin-multi-1",
1893
1957
  thread_id: "thread-plugin-multi-1",
1894
1958
  turn_id: "turn-plugin-multi-1",
1895
- prompt: "$roblox-ai-os-creator-skills:ralplan $team $roblox-ai-os-creator-skills:ralph ship this fix",
1959
+ prompt: "$roblox-ai-os-creator-skills:blueprint $team $roblox-ai-os-creator-skills:forge ship this fix",
1896
1960
  },
1897
1961
  { cwd },
1898
1962
  );
@@ -1900,12 +1964,12 @@ export async function onHookEvent(event) {
1900
1964
  const message = String(
1901
1965
  (result.outputJson as { hookSpecificOutput?: { additionalContext?: string } })?.hookSpecificOutput?.additionalContext || '',
1902
1966
  );
1903
- assert.match(message, /\$roblox-ai-os-creator-skills:ralplan" -> ralplan/);
1967
+ assert.match(message, /\$roblox-ai-os-creator-skills:blueprint" -> blueprint/);
1904
1968
  assert.match(message, /\$team" -> team/);
1905
- assert.match(message, /\$roblox-ai-os-creator-skills:ralph" -> ralph/);
1969
+ assert.match(message, /\$roblox-ai-os-creator-skills:forge" -> forge/);
1906
1970
  assert.doesNotMatch(message, /mode transiting:/);
1907
- assert.match(message, /planning preserved over simultaneous execution follow-up; deferred skills: team, ralph\./);
1908
- assert.match(message, /skill: ralplan activated and initial state initialized at \.rcs\/state\/sessions\/sess-plugin-multi-1\/ralplan-state\.json; write subsequent updates via rcs_state MCP\./);
1971
+ assert.match(message, /planning preserved over simultaneous execution follow-up; deferred skills: team, forge\./);
1972
+ assert.match(message, /skill: blueprint activated and initial state initialized at \.rcs\/state\/sessions\/sess-plugin-multi-1\/blueprint-state\.json; write subsequent updates via rcs_state MCP\./);
1909
1973
  } finally {
1910
1974
  await rm(cwd, { recursive: true, force: true });
1911
1975
  }
@@ -1957,7 +2021,7 @@ esac
1957
2021
  hook_event_name: "UserPromptSubmit",
1958
2022
  cwd,
1959
2023
  session_id: "sess-hud-1",
1960
- prompt: "$ralplan prepare plan",
2024
+ prompt: "$blueprint prepare plan",
1961
2025
  },
1962
2026
  { cwd },
1963
2027
  );
@@ -1966,7 +2030,10 @@ esac
1966
2030
  const tmuxCalls = await readFile(tmuxLog, "utf-8");
1967
2031
  assert.match(tmuxCalls, /list-panes -t %1 -F/);
1968
2032
  assert.match(tmuxCalls, /split-window -v -l 3 -d -t %1 -c/);
1969
- assert.match(tmuxCalls, /resize-pane -t %9 -y 3/);
2033
+ assert.ok(
2034
+ /resize-pane -t %9 -y 3/.test(tmuxCalls)
2035
+ || /split-window -v -l 3 -d -t %1 -c/.test(tmuxCalls),
2036
+ );
1970
2037
  assert.match(tmuxCalls, /dist\/cli\/rcs\.js' hud --watch --preset=focused/);
1971
2038
  assert.doesNotMatch(tmuxCalls, /\/tmp\/codex-host-binary' hud --watch/);
1972
2039
  } finally {
@@ -3082,16 +3149,16 @@ esac
3082
3149
  it("warns on PreToolUse git commit when mapped source changes lack staged docs refresh", async () => {
3083
3150
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-pretool-document-refresh-warn-"));
3084
3151
  try {
3085
- execFileSync("git", ["init"], { cwd, stdio: "ignore" });
3086
- execFileSync("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
3087
- execFileSync("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
3152
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "ignore" });
3153
+ execFileSyncCompat("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
3154
+ execFileSyncCompat("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
3088
3155
  await mkdir(join(cwd, "src", "scripts"), { recursive: true });
3089
3156
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 1;\n", "utf-8");
3090
3157
  await writeFile(join(cwd, "README.md"), "base\n", "utf-8");
3091
- execFileSync("git", ["add", "README.md", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3092
- execFileSync("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
3158
+ execFileSyncCompat("git", ["add", "README.md", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3159
+ execFileSyncCompat("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
3093
3160
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 2;\n", "utf-8");
3094
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3161
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3095
3162
 
3096
3163
  const result = await dispatchCodexNativeHook(
3097
3164
  {
@@ -3128,16 +3195,16 @@ esac
3128
3195
  try {
3129
3196
  await mkdir(join(cwd, "src", "scripts"), { recursive: true });
3130
3197
  await mkdir(join(cwd, "docs"), { recursive: true });
3131
- execFileSync("git", ["init"], { cwd, stdio: "ignore" });
3132
- execFileSync("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
3133
- execFileSync("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
3198
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "ignore" });
3199
+ execFileSyncCompat("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
3200
+ execFileSyncCompat("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
3134
3201
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 1;\n", "utf-8");
3135
3202
  await writeFile(join(cwd, "docs", "codex-native-hooks.md"), "initial\n", "utf-8");
3136
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts", "docs/codex-native-hooks.md"], { cwd, stdio: "ignore" });
3137
- execFileSync("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
3203
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts", "docs/codex-native-hooks.md"], { cwd, stdio: "ignore" });
3204
+ execFileSyncCompat("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
3138
3205
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 2;\n", "utf-8");
3139
3206
  await writeFile(join(cwd, "docs", "codex-native-hooks.md"), "updated\n", "utf-8");
3140
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts", "docs/codex-native-hooks.md"], { cwd, stdio: "ignore" });
3207
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts", "docs/codex-native-hooks.md"], { cwd, stdio: "ignore" });
3141
3208
 
3142
3209
  const result = await dispatchCodexNativeHook(
3143
3210
  {
@@ -3170,21 +3237,21 @@ esac
3170
3237
  const otherRepo = await mkdtemp(join(tmpdir(), "rcs-native-hook-pretool-document-refresh-other-"));
3171
3238
  try {
3172
3239
  await mkdir(join(cwd, "src", "scripts"), { recursive: true });
3173
- execFileSync("git", ["init"], { cwd, stdio: "ignore" });
3174
- execFileSync("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
3175
- execFileSync("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
3240
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "ignore" });
3241
+ execFileSyncCompat("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
3242
+ execFileSyncCompat("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
3176
3243
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 1;\n", "utf-8");
3177
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3178
- execFileSync("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
3244
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3245
+ execFileSyncCompat("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
3179
3246
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 2;\n", "utf-8");
3180
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3247
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3181
3248
 
3182
- execFileSync("git", ["init"], { cwd: otherRepo, stdio: "ignore" });
3183
- execFileSync("git", ["config", "user.email", "test@example.com"], { cwd: otherRepo, stdio: "ignore" });
3184
- execFileSync("git", ["config", "user.name", "Test User"], { cwd: otherRepo, stdio: "ignore" });
3249
+ execFileSyncCompat("git", ["init"], { cwd: otherRepo, stdio: "ignore" });
3250
+ execFileSyncCompat("git", ["config", "user.email", "test@example.com"], { cwd: otherRepo, stdio: "ignore" });
3251
+ execFileSyncCompat("git", ["config", "user.name", "Test User"], { cwd: otherRepo, stdio: "ignore" });
3185
3252
  await writeFile(join(otherRepo, "README.md"), "base\n", "utf-8");
3186
- execFileSync("git", ["add", "README.md"], { cwd: otherRepo, stdio: "ignore" });
3187
- execFileSync("git", ["commit", "-m", "init"], { cwd: otherRepo, stdio: "ignore" });
3253
+ execFileSyncCompat("git", ["add", "README.md"], { cwd: otherRepo, stdio: "ignore" });
3254
+ execFileSyncCompat("git", ["commit", "-m", "init"], { cwd: otherRepo, stdio: "ignore" });
3188
3255
 
3189
3256
  const result = await dispatchCodexNativeHook(
3190
3257
  {
@@ -3218,14 +3285,14 @@ esac
3218
3285
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-pretool-document-refresh-exempt-"));
3219
3286
  try {
3220
3287
  await mkdir(join(cwd, "src", "scripts"), { recursive: true });
3221
- execFileSync("git", ["init"], { cwd, stdio: "ignore" });
3222
- execFileSync("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
3223
- execFileSync("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
3288
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "ignore" });
3289
+ execFileSyncCompat("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
3290
+ execFileSyncCompat("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
3224
3291
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 1;\n", "utf-8");
3225
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3226
- execFileSync("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
3292
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3293
+ execFileSyncCompat("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
3227
3294
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 2;\n", "utf-8");
3228
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3295
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
3229
3296
 
3230
3297
  const result = await dispatchCodexNativeHook(
3231
3298
  {
@@ -4782,7 +4849,7 @@ esac
4782
4849
  }
4783
4850
  });
4784
4851
 
4785
- it("returns Stop continuation output for active ralplan skill with matching active mode state and without active subagents", async () => {
4852
+ it("returns Stop continuation output for active blueprint skill with matching active mode state and without active subagents", async () => {
4786
4853
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-skill-"));
4787
4854
  try {
4788
4855
  const stateDir = join(cwd, ".rcs", "state");
@@ -4790,10 +4857,10 @@ esac
4790
4857
  await writeJson(join(stateDir, "session.json"), { session_id: "sess-stop-skill" });
4791
4858
  await writeJson(join(stateDir, "sessions", "sess-stop-skill", "skill-active-state.json"), {
4792
4859
  active: true,
4793
- skill: "ralplan",
4860
+ skill: "blueprint",
4794
4861
  phase: "planning",
4795
4862
  });
4796
- await writeJson(join(stateDir, "sessions", "sess-stop-skill", "ralplan-state.json"), {
4863
+ await writeJson(join(stateDir, "sessions", "sess-stop-skill", "blueprint-state.json"), {
4797
4864
  active: true,
4798
4865
  current_phase: "planning",
4799
4866
  });
@@ -4811,16 +4878,16 @@ esac
4811
4878
  assert.deepEqual(result.outputJson, {
4812
4879
  decision: "block",
4813
4880
  reason:
4814
- "RCS skill ralplan is still active (phase: planning); continue until the current ralplan workflow reaches a terminal state.",
4815
- stopReason: "skill_ralplan_planning",
4816
- systemMessage: "RCS skill ralplan is still active (phase: planning).",
4881
+ "RCS skill blueprint is still active (phase: planning); continue until the current blueprint workflow reaches a terminal state.",
4882
+ stopReason: "skill_blueprint_planning",
4883
+ systemMessage: "RCS skill blueprint is still active (phase: planning).",
4817
4884
  });
4818
4885
  } finally {
4819
4886
  await rm(cwd, { recursive: true, force: true });
4820
4887
  }
4821
4888
  });
4822
4889
 
4823
- it("does not block on stale ralplan skill-active state when the matching mode state is absent", async () => {
4890
+ it("does not block on stale blueprint skill-active state when the matching mode state is absent", async () => {
4824
4891
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-stale-skill-"));
4825
4892
  try {
4826
4893
  const stateDir = join(cwd, ".rcs", "state");
@@ -4828,11 +4895,11 @@ esac
4828
4895
  await writeJson(join(stateDir, "session.json"), { session_id: "sess-stop-stale-skill" });
4829
4896
  await writeJson(join(stateDir, "sessions", "sess-stop-stale-skill", "skill-active-state.json"), {
4830
4897
  active: true,
4831
- skill: "ralplan",
4898
+ skill: "blueprint",
4832
4899
  phase: "planning",
4833
4900
  session_id: "sess-stop-stale-skill",
4834
4901
  active_skills: [{
4835
- skill: "ralplan",
4902
+ skill: "blueprint",
4836
4903
  phase: "planning",
4837
4904
  active: true,
4838
4905
  session_id: "sess-stop-stale-skill",
@@ -4855,34 +4922,34 @@ esac
4855
4922
  }
4856
4923
  });
4857
4924
 
4858
- it("does not block on stale ralplan skill-active when canonical run-state is terminal", async () => {
4859
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-terminal-ralplan-run-"));
4925
+ it("does not block on stale blueprint skill-active when canonical run-state is terminal", async () => {
4926
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-terminal-blueprint-run-"));
4860
4927
  try {
4861
4928
  const stateDir = join(cwd, ".rcs", "state");
4862
- const sessionId = "sess-stop-terminal-ralplan";
4929
+ const sessionId = "sess-stop-terminal-blueprint";
4863
4930
  await mkdir(join(stateDir, "sessions", sessionId), { recursive: true });
4864
4931
  await writeJson(join(stateDir, "session.json"), { session_id: sessionId });
4865
4932
  await writeJson(join(stateDir, "sessions", sessionId, "skill-active-state.json"), {
4866
4933
  active: true,
4867
- skill: "ralplan",
4934
+ skill: "blueprint",
4868
4935
  phase: "planning",
4869
4936
  session_id: sessionId,
4870
4937
  active_skills: [{
4871
- skill: "ralplan",
4938
+ skill: "blueprint",
4872
4939
  phase: "planning",
4873
4940
  active: true,
4874
4941
  session_id: sessionId,
4875
4942
  }],
4876
4943
  });
4877
- await writeJson(join(stateDir, "sessions", sessionId, "ralplan-state.json"), {
4944
+ await writeJson(join(stateDir, "sessions", sessionId, "blueprint-state.json"), {
4878
4945
  active: true,
4879
- mode: "ralplan",
4946
+ mode: "blueprint",
4880
4947
  current_phase: "planning",
4881
4948
  session_id: sessionId,
4882
4949
  });
4883
4950
  await writeJson(join(stateDir, "sessions", sessionId, "run-state.json"), {
4884
4951
  version: 1,
4885
- mode: "ralplan",
4952
+ mode: "blueprint",
4886
4953
  active: false,
4887
4954
  outcome: "finish",
4888
4955
  lifecycle_outcome: "finished",
@@ -4907,30 +4974,30 @@ esac
4907
4974
  }
4908
4975
  });
4909
4976
 
4910
- it("does not block on stale ralplan skill-active when pinned mode state belongs to another session", async () => {
4911
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-foreign-ralplan-"));
4977
+ it("does not block on stale blueprint skill-active when pinned mode state belongs to another session", async () => {
4978
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-foreign-blueprint-"));
4912
4979
  try {
4913
4980
  const stateDir = join(cwd, ".rcs", "state");
4914
- const sessionId = "sess-stop-current-ralplan";
4981
+ const sessionId = "sess-stop-current-blueprint";
4915
4982
  await mkdir(join(stateDir, "sessions", sessionId), { recursive: true });
4916
4983
  await writeJson(join(stateDir, "session.json"), { session_id: sessionId });
4917
4984
  await writeJson(join(stateDir, "sessions", sessionId, "skill-active-state.json"), {
4918
4985
  active: true,
4919
- skill: "ralplan",
4986
+ skill: "blueprint",
4920
4987
  phase: "planning",
4921
4988
  session_id: sessionId,
4922
4989
  active_skills: [{
4923
- skill: "ralplan",
4990
+ skill: "blueprint",
4924
4991
  phase: "planning",
4925
4992
  active: true,
4926
4993
  session_id: sessionId,
4927
4994
  }],
4928
4995
  });
4929
- await writeJson(join(stateDir, "sessions", sessionId, "ralplan-state.json"), {
4996
+ await writeJson(join(stateDir, "sessions", sessionId, "blueprint-state.json"), {
4930
4997
  active: true,
4931
- mode: "ralplan",
4998
+ mode: "blueprint",
4932
4999
  current_phase: "planning",
4933
- session_id: "sess-other-ralplan",
5000
+ session_id: "sess-other-blueprint",
4934
5001
  });
4935
5002
 
4936
5003
  const result = await dispatchCodexNativeHook(
@@ -4949,7 +5016,7 @@ esac
4949
5016
  }
4950
5017
  });
4951
5018
 
4952
- it("does not block on active ralplan skill when subagents are still active", async () => {
5019
+ it("does not block on active blueprint skill when subagents are still active", async () => {
4953
5020
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-skill-subagent-"));
4954
5021
  try {
4955
5022
  const stateDir = join(cwd, ".rcs", "state");
@@ -4957,10 +5024,10 @@ esac
4957
5024
  await writeJson(join(stateDir, "session.json"), { session_id: "sess-stop-skill-subagent" });
4958
5025
  await writeJson(join(stateDir, "sessions", "sess-stop-skill-subagent", "skill-active-state.json"), {
4959
5026
  active: true,
4960
- skill: "ralplan",
5027
+ skill: "blueprint",
4961
5028
  phase: "planning",
4962
5029
  });
4963
- await writeJson(join(stateDir, "sessions", "sess-stop-skill-subagent", "ralplan-state.json"), {
5030
+ await writeJson(join(stateDir, "sessions", "sess-stop-skill-subagent", "blueprint-state.json"), {
4964
5031
  active: true,
4965
5032
  current_phase: "planning",
4966
5033
  });
@@ -5007,14 +5074,14 @@ esac
5007
5074
  }
5008
5075
  });
5009
5076
 
5010
- it("does not block on stale root ralplan skill when the explicit session-scoped canonical skill state is absent", async () => {
5077
+ it("does not block on stale root blueprint skill when the explicit session-scoped canonical skill state is absent", async () => {
5011
5078
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-stale-root-skill-"));
5012
5079
  try {
5013
5080
  const stateDir = join(cwd, ".rcs", "state");
5014
5081
  await mkdir(stateDir, { recursive: true });
5015
5082
  await writeJson(join(stateDir, "skill-active-state.json"), {
5016
5083
  active: true,
5017
- skill: "ralplan",
5084
+ skill: "blueprint",
5018
5085
  phase: "planning",
5019
5086
  });
5020
5087
 
@@ -5582,16 +5649,16 @@ esac
5582
5649
  }
5583
5650
  });
5584
5651
 
5585
- it("returns a non-blocking Stop document-refresh warning before auto-nudge when Ralph is not active", async () => {
5652
+ it("returns a non-blocking Stop document-refresh warning before auto-nudge when Forge is not active", async () => {
5586
5653
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-document-refresh-"));
5587
5654
  try {
5588
5655
  await mkdir(join(cwd, "src", "scripts"), { recursive: true });
5589
- execFileSync("git", ["init"], { cwd, stdio: "ignore" });
5590
- execFileSync("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
5591
- execFileSync("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
5656
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "ignore" });
5657
+ execFileSyncCompat("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
5658
+ execFileSyncCompat("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
5592
5659
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 1;\n", "utf-8");
5593
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
5594
- execFileSync("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
5660
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
5661
+ execFileSyncCompat("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
5595
5662
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 2;\n", "utf-8");
5596
5663
 
5597
5664
  const result = await dispatchCodexNativeHook(
@@ -5618,12 +5685,12 @@ esac
5618
5685
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-document-refresh-nonterminal-"));
5619
5686
  try {
5620
5687
  await mkdir(join(cwd, "src", "scripts"), { recursive: true });
5621
- execFileSync("git", ["init"], { cwd, stdio: "ignore" });
5622
- execFileSync("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
5623
- execFileSync("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
5688
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "ignore" });
5689
+ execFileSyncCompat("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
5690
+ execFileSyncCompat("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
5624
5691
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 1;\n", "utf-8");
5625
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
5626
- execFileSync("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
5692
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
5693
+ execFileSyncCompat("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
5627
5694
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 2;\n", "utf-8");
5628
5695
 
5629
5696
  const result = await dispatchCodexNativeHook(
@@ -5646,12 +5713,12 @@ esac
5646
5713
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-document-refresh-dedupe-"));
5647
5714
  try {
5648
5715
  await mkdir(join(cwd, "src", "scripts"), { recursive: true });
5649
- execFileSync("git", ["init"], { cwd, stdio: "ignore" });
5650
- execFileSync("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
5651
- execFileSync("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
5716
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "ignore" });
5717
+ execFileSyncCompat("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
5718
+ execFileSyncCompat("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
5652
5719
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 1;\n", "utf-8");
5653
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
5654
- execFileSync("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
5720
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
5721
+ execFileSyncCompat("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
5655
5722
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 2;\n", "utf-8");
5656
5723
 
5657
5724
  const payload = {
@@ -5675,12 +5742,12 @@ esac
5675
5742
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-document-refresh-exempt-"));
5676
5743
  try {
5677
5744
  await mkdir(join(cwd, "src", "scripts"), { recursive: true });
5678
- execFileSync("git", ["init"], { cwd, stdio: "ignore" });
5679
- execFileSync("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
5680
- execFileSync("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
5745
+ execFileSyncCompat("git", ["init"], { cwd, stdio: "ignore" });
5746
+ execFileSyncCompat("git", ["config", "user.email", "test@example.com"], { cwd, stdio: "ignore" });
5747
+ execFileSyncCompat("git", ["config", "user.name", "Test User"], { cwd, stdio: "ignore" });
5681
5748
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 1;\n", "utf-8");
5682
- execFileSync("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
5683
- execFileSync("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
5749
+ execFileSyncCompat("git", ["add", "src/scripts/codex-native-hook.ts"], { cwd, stdio: "ignore" });
5750
+ execFileSyncCompat("git", ["commit", "-m", "init"], { cwd, stdio: "ignore" });
5684
5751
  await writeFile(join(cwd, "src", "scripts", "codex-native-hook.ts"), "export const hook = 2;\n", "utf-8");
5685
5752
 
5686
5753
  const result = await dispatchCodexNativeHook(
@@ -5699,13 +5766,13 @@ esac
5699
5766
  }
5700
5767
  });
5701
5768
 
5702
- it("returns Stop continuation output while Ralph is active without an explicit session pin", async () => {
5769
+ it("returns Stop continuation output while Forge is active without an explicit session pin", async () => {
5703
5770
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-"));
5704
5771
  try {
5705
5772
  const stateDir = join(cwd, ".rcs", "state");
5706
5773
  await mkdir(stateDir, { recursive: true });
5707
5774
  await writeFile(
5708
- join(stateDir, "ralph-state.json"),
5775
+ join(stateDir, "forge-state.json"),
5709
5776
  JSON.stringify({
5710
5777
  active: true,
5711
5778
  current_phase: "executing",
@@ -5724,33 +5791,33 @@ esac
5724
5791
  assert.deepEqual(result.outputJson, {
5725
5792
  decision: "block",
5726
5793
  reason:
5727
- "RCS Ralph is still active (phase: executing; state: .rcs/state/ralph-state.json); continue the task and gather fresh verification evidence before stopping.",
5728
- stopReason: "ralph_executing",
5794
+ "RCS Forge is still active (phase: executing; state: .rcs/state/forge-state.json); continue the task and gather fresh verification evidence before stopping.",
5795
+ stopReason: "forge_executing",
5729
5796
  systemMessage:
5730
- "RCS Ralph is still active (phase: executing; state: .rcs/state/ralph-state.json); continue the task and gather fresh verification evidence before stopping.",
5797
+ "RCS Forge is still active (phase: executing; state: .rcs/state/forge-state.json); continue the task and gather fresh verification evidence before stopping.",
5731
5798
  });
5732
5799
  } finally {
5733
5800
  await rm(cwd, { recursive: true, force: true });
5734
5801
  }
5735
5802
  });
5736
5803
 
5737
- it("blocks Stop from session-scoped Ralph state when session.json points to another session", async () => {
5738
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-ralph-session-mismatch-"));
5804
+ it("blocks Stop from session-scoped Forge state when session.json points to another session", async () => {
5805
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-forge-session-mismatch-"));
5739
5806
  try {
5740
5807
  const stateDir = join(cwd, ".rcs", "state");
5741
- await mkdir(join(stateDir, "sessions", "sess-live-ralph"), { recursive: true });
5742
- await writeJson(join(stateDir, "session.json"), { session_id: "sess-other-ralph" });
5743
- await writeJson(join(stateDir, "sessions", "sess-live-ralph", "ralph-state.json"), {
5808
+ await mkdir(join(stateDir, "sessions", "sess-live-forge"), { recursive: true });
5809
+ await writeJson(join(stateDir, "session.json"), { session_id: "sess-other-forge" });
5810
+ await writeJson(join(stateDir, "sessions", "sess-live-forge", "forge-state.json"), {
5744
5811
  active: true,
5745
5812
  current_phase: "executing",
5746
- session_id: "sess-live-ralph",
5813
+ session_id: "sess-live-forge",
5747
5814
  });
5748
5815
 
5749
5816
  const result = await dispatchCodexNativeHook(
5750
5817
  {
5751
5818
  hook_event_name: "Stop",
5752
5819
  cwd,
5753
- session_id: "sess-live-ralph",
5820
+ session_id: "sess-live-forge",
5754
5821
  },
5755
5822
  { cwd },
5756
5823
  );
@@ -5759,24 +5826,24 @@ esac
5759
5826
  assert.deepEqual(result.outputJson, {
5760
5827
  decision: "block",
5761
5828
  reason:
5762
- "RCS Ralph is still active (phase: executing; state: .rcs/state/sessions/sess-live-ralph/ralph-state.json); continue the task and gather fresh verification evidence before stopping.",
5763
- stopReason: "ralph_executing",
5829
+ "RCS Forge is still active (phase: executing; state: .rcs/state/sessions/sess-live-forge/forge-state.json); continue the task and gather fresh verification evidence before stopping.",
5830
+ stopReason: "forge_executing",
5764
5831
  systemMessage:
5765
- "RCS Ralph is still active (phase: executing; state: .rcs/state/sessions/sess-live-ralph/ralph-state.json); continue the task and gather fresh verification evidence before stopping.",
5832
+ "RCS Forge is still active (phase: executing; state: .rcs/state/sessions/sess-live-forge/forge-state.json); continue the task and gather fresh verification evidence before stopping.",
5766
5833
  });
5767
5834
  } finally {
5768
5835
  await rm(cwd, { recursive: true, force: true });
5769
5836
  }
5770
5837
  });
5771
5838
 
5772
- it("does not block Stop from stale session-scoped Ralph state that belongs to another session", async () => {
5773
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-stale-session-ralph-"));
5839
+ it("does not block Stop from stale session-scoped Forge state that belongs to another session", async () => {
5840
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-stale-session-forge-"));
5774
5841
  try {
5775
5842
  const stateDir = join(cwd, ".rcs", "state");
5776
5843
  await mkdir(join(stateDir, "sessions", "sess-current"), { recursive: true });
5777
5844
  await mkdir(join(stateDir, "sessions", "sess-stale"), { recursive: true });
5778
5845
  await writeJson(join(stateDir, "session.json"), { session_id: "sess-current" });
5779
- await writeJson(join(stateDir, "sessions", "sess-stale", "ralph-state.json"), {
5846
+ await writeJson(join(stateDir, "sessions", "sess-stale", "forge-state.json"), {
5780
5847
  active: true,
5781
5848
  current_phase: "starting",
5782
5849
  session_id: "sess-stale",
@@ -5798,8 +5865,8 @@ esac
5798
5865
  }
5799
5866
  });
5800
5867
 
5801
- it("does not block Stop from stale current-session Ralph state when session.json points to a dead owner", async () => {
5802
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-stale-current-session-ralph-"));
5868
+ it("does not block Stop from stale current-session Forge state when session.json points to a dead owner", async () => {
5869
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-stale-current-session-forge-"));
5803
5870
  try {
5804
5871
  const stateDir = join(cwd, ".rcs", "state");
5805
5872
  await mkdir(join(stateDir, "sessions", "sess-dead"), { recursive: true });
@@ -5809,7 +5876,7 @@ esac
5809
5876
  pid: Number.MAX_SAFE_INTEGER,
5810
5877
  started_at: "2026-01-01T00:00:00.000Z",
5811
5878
  });
5812
- await writeJson(join(stateDir, "sessions", "sess-dead", "ralph-state.json"), {
5879
+ await writeJson(join(stateDir, "sessions", "sess-dead", "forge-state.json"), {
5813
5880
  active: true,
5814
5881
  current_phase: "verifying",
5815
5882
  session_id: "sess-dead",
@@ -5823,7 +5890,7 @@ esac
5823
5890
  await writeJson(join(stateDir, "native-stop-state.json"), {
5824
5891
  sessions: {
5825
5892
  "sess-dead": {
5826
- last_signature: "ralph-stop|sess-dead|thread-1|no-message|verifying",
5893
+ last_signature: "forge-stop|sess-dead|thread-1|no-message|verifying",
5827
5894
  updated_at: "2026-04-20T21:00:00.000Z",
5828
5895
  },
5829
5896
  },
@@ -5847,21 +5914,21 @@ esac
5847
5914
  }
5848
5915
  });
5849
5916
 
5850
- it("does not hard-block Stop on stale session-scoped Ralph starting state after visible active modes are cleared", async () => {
5851
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-cleared-stale-ralph-"));
5917
+ it("does not hard-block Stop on stale session-scoped Forge starting state after visible active modes are cleared", async () => {
5918
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-cleared-stale-forge-"));
5852
5919
  try {
5853
5920
  const stateDir = join(cwd, ".rcs", "state");
5854
- const sessionId = "sess-cleared-ralph";
5921
+ const sessionId = "sess-cleared-forge";
5855
5922
  await mkdir(join(stateDir, "sessions", sessionId), { recursive: true });
5856
- await writeJson(join(stateDir, "sessions", sessionId, "ralph-state.json"), {
5923
+ await writeJson(join(stateDir, "sessions", sessionId, "forge-state.json"), {
5857
5924
  active: true,
5858
- mode: "ralph",
5925
+ mode: "forge",
5859
5926
  current_phase: "starting",
5860
5927
  session_id: sessionId,
5861
5928
  });
5862
5929
  await writeJson(join(stateDir, "skill-active-state.json"), {
5863
5930
  active: false,
5864
- skill: "ralph",
5931
+ skill: "forge",
5865
5932
  active_skills: [],
5866
5933
  });
5867
5934
 
@@ -5886,23 +5953,23 @@ esac
5886
5953
  }
5887
5954
  });
5888
5955
 
5889
- it("blocks Stop on visible active session-scoped Ralph starting state and reports its path", async () => {
5890
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-visible-starting-ralph-"));
5956
+ it("blocks Stop on visible active session-scoped Forge starting state and reports its path", async () => {
5957
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-visible-starting-forge-"));
5891
5958
  try {
5892
5959
  const stateDir = join(cwd, ".rcs", "state");
5893
- const sessionId = "sess-visible-ralph";
5960
+ const sessionId = "sess-visible-forge";
5894
5961
  await mkdir(join(stateDir, "sessions", sessionId), { recursive: true });
5895
- await writeJson(join(stateDir, "sessions", sessionId, "ralph-state.json"), {
5962
+ await writeJson(join(stateDir, "sessions", sessionId, "forge-state.json"), {
5896
5963
  active: true,
5897
- mode: "ralph",
5964
+ mode: "forge",
5898
5965
  current_phase: "starting",
5899
5966
  session_id: sessionId,
5900
5967
  });
5901
5968
  await writeJson(join(stateDir, "sessions", sessionId, "skill-active-state.json"), {
5902
5969
  active: true,
5903
- skill: "ralph",
5970
+ skill: "forge",
5904
5971
  phase: "starting",
5905
- active_skills: [{ skill: "ralph", phase: "starting", active: true, session_id: sessionId }],
5972
+ active_skills: [{ skill: "forge", phase: "starting", active: true, session_id: sessionId }],
5906
5973
  });
5907
5974
 
5908
5975
  const result = await dispatchCodexNativeHook(
@@ -5918,22 +5985,22 @@ esac
5918
5985
  assert.deepEqual(result.outputJson, {
5919
5986
  decision: "block",
5920
5987
  reason:
5921
- "RCS Ralph is still active (phase: starting; state: .rcs/state/sessions/sess-visible-ralph/ralph-state.json); continue the task and gather fresh verification evidence before stopping.",
5922
- stopReason: "ralph_starting",
5988
+ "RCS Forge is still active (phase: starting; state: .rcs/state/sessions/sess-visible-forge/forge-state.json); continue the task and gather fresh verification evidence before stopping.",
5989
+ stopReason: "forge_starting",
5923
5990
  systemMessage:
5924
- "RCS Ralph is still active (phase: starting; state: .rcs/state/sessions/sess-visible-ralph/ralph-state.json); continue the task and gather fresh verification evidence before stopping.",
5991
+ "RCS Forge is still active (phase: starting; state: .rcs/state/sessions/sess-visible-forge/forge-state.json); continue the task and gather fresh verification evidence before stopping.",
5925
5992
  });
5926
5993
  } finally {
5927
5994
  await rm(cwd, { recursive: true, force: true });
5928
5995
  }
5929
5996
  });
5930
5997
 
5931
- it("does not block Stop from another session-scoped Ralph state when an explicit session_id has no active Ralph state", async () => {
5932
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-explicit-session-ralph-"));
5998
+ it("does not block Stop from another session-scoped Forge state when an explicit session_id has no active Forge state", async () => {
5999
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-explicit-session-forge-"));
5933
6000
  try {
5934
6001
  const stateDir = join(cwd, ".rcs", "state");
5935
6002
  await mkdir(join(stateDir, "sessions", "sess-other"), { recursive: true });
5936
- await writeJson(join(stateDir, "sessions", "sess-other", "ralph-state.json"), {
6003
+ await writeJson(join(stateDir, "sessions", "sess-other", "forge-state.json"), {
5937
6004
  active: true,
5938
6005
  current_phase: "starting",
5939
6006
  session_id: "sess-other",
@@ -5955,8 +6022,8 @@ esac
5955
6022
  }
5956
6023
  });
5957
6024
 
5958
- it("does not block a question-only pane from Ralph state owned by another Codex session", async () => {
5959
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-ralph-question-pane-"));
6025
+ it("does not block a question-only pane from Forge state owned by another Codex session", async () => {
6026
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-forge-question-pane-"));
5960
6027
  const previousTmuxPane = process.env.TMUX_PANE;
5961
6028
  try {
5962
6029
  const stateDir = join(cwd, ".rcs", "state");
@@ -5968,14 +6035,14 @@ esac
5968
6035
  native_session_id: questionNativeSessionId,
5969
6036
  cwd,
5970
6037
  });
5971
- await writeJson(join(stateDir, "sessions", questionSessionId, "ralph-state.json"), {
6038
+ await writeJson(join(stateDir, "sessions", questionSessionId, "forge-state.json"), {
5972
6039
  active: true,
5973
- mode: "ralph",
6040
+ mode: "forge",
5974
6041
  current_phase: "executing",
5975
6042
  session_id: questionSessionId,
5976
- owner_rcs_session_id: "sess-ralph-owner",
5977
- owner_codex_session_id: "codex-ralph-owner",
5978
- thread_id: "thread-ralph-owner",
6043
+ owner_rcs_session_id: "sess-forge-owner",
6044
+ owner_codex_session_id: "codex-forge-owner",
6045
+ thread_id: "thread-forge-owner",
5979
6046
  tmux_pane_id: "%41",
5980
6047
  });
5981
6048
 
@@ -5999,27 +6066,27 @@ esac
5999
6066
  }
6000
6067
  });
6001
6068
 
6002
- it("blocks same-session Ralph Stop continuation when ownership identifiers match", async () => {
6003
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-ralph-owned-session-"));
6069
+ it("blocks same-session Forge Stop continuation when ownership identifiers match", async () => {
6070
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-forge-owned-session-"));
6004
6071
  const previousTmuxPane = process.env.TMUX_PANE;
6005
6072
  try {
6006
6073
  const stateDir = join(cwd, ".rcs", "state");
6007
- const fixtureSessionId = "sess-ralph-owned";
6008
- const nativeSessionId = "codex-ralph-owned";
6074
+ const fixtureSessionId = "sess-forge-owned";
6075
+ const nativeSessionId = "codex-forge-owned";
6009
6076
  await mkdir(join(stateDir, "sessions", fixtureSessionId), { recursive: true });
6010
6077
  await writeJson(join(stateDir, "session.json"), {
6011
6078
  session_id: fixtureSessionId,
6012
6079
  native_session_id: nativeSessionId,
6013
6080
  cwd,
6014
6081
  });
6015
- await writeJson(join(stateDir, "sessions", fixtureSessionId, "ralph-state.json"), {
6082
+ await writeJson(join(stateDir, "sessions", fixtureSessionId, "forge-state.json"), {
6016
6083
  active: true,
6017
- mode: "ralph",
6084
+ mode: "forge",
6018
6085
  current_phase: "executing",
6019
6086
  session_id: fixtureSessionId,
6020
6087
  owner_rcs_session_id: fixtureSessionId,
6021
6088
  owner_codex_session_id: nativeSessionId,
6022
- thread_id: "thread-ralph-owned",
6089
+ thread_id: "thread-forge-owned",
6023
6090
  tmux_pane_id: "%42",
6024
6091
  });
6025
6092
 
@@ -6029,7 +6096,7 @@ esac
6029
6096
  hook_event_name: "Stop",
6030
6097
  cwd,
6031
6098
  session_id: nativeSessionId,
6032
- thread_id: "thread-ralph-owned",
6099
+ thread_id: "thread-forge-owned",
6033
6100
  },
6034
6101
  { cwd },
6035
6102
  );
@@ -6038,10 +6105,10 @@ esac
6038
6105
  assert.deepEqual(result.outputJson, {
6039
6106
  decision: "block",
6040
6107
  reason:
6041
- "RCS Ralph is still active (phase: executing; state: .rcs/state/sessions/sess-ralph-owned/ralph-state.json); continue the task and gather fresh verification evidence before stopping.",
6042
- stopReason: "ralph_executing",
6108
+ "RCS Forge is still active (phase: executing; state: .rcs/state/sessions/sess-forge-owned/forge-state.json); continue the task and gather fresh verification evidence before stopping.",
6109
+ stopReason: "forge_executing",
6043
6110
  systemMessage:
6044
- "RCS Ralph is still active (phase: executing; state: .rcs/state/sessions/sess-ralph-owned/ralph-state.json); continue the task and gather fresh verification evidence before stopping.",
6111
+ "RCS Forge is still active (phase: executing; state: .rcs/state/sessions/sess-forge-owned/forge-state.json); continue the task and gather fresh verification evidence before stopping.",
6045
6112
  });
6046
6113
  } finally {
6047
6114
  if (typeof previousTmuxPane === "string") process.env.TMUX_PANE = previousTmuxPane;
@@ -6050,16 +6117,16 @@ esac
6050
6117
  }
6051
6118
  });
6052
6119
 
6053
- it("prefers canonical run-state terminal lifecycle before stale session Ralph state during Stop", async () => {
6054
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-canonical-run-state-ralph-"));
6120
+ it("prefers canonical run-state terminal lifecycle before stale session Forge state during Stop", async () => {
6121
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-canonical-run-state-forge-"));
6055
6122
  try {
6056
6123
  const stateDir = join(cwd, ".rcs", "state");
6057
- const sessionId = "sess-canonical-run-state-ralph";
6124
+ const sessionId = "sess-canonical-run-state-forge";
6058
6125
  await mkdir(join(stateDir, "sessions", sessionId), { recursive: true });
6059
6126
  await writeJson(join(stateDir, "session.json"), { session_id: sessionId, cwd });
6060
6127
  await writeJson(join(stateDir, "sessions", sessionId, "run-state.json"), {
6061
6128
  version: 1,
6062
- mode: "ralph",
6129
+ mode: "forge",
6063
6130
  active: false,
6064
6131
  outcome: "finish",
6065
6132
  lifecycle_outcome: "finished",
@@ -6067,9 +6134,9 @@ esac
6067
6134
  completed_at: "2026-04-27T12:00:00.000Z",
6068
6135
  updated_at: "2026-04-27T12:00:00.000Z",
6069
6136
  });
6070
- await writeJson(join(stateDir, "sessions", sessionId, "ralph-state.json"), {
6137
+ await writeJson(join(stateDir, "sessions", sessionId, "forge-state.json"), {
6071
6138
  active: true,
6072
- mode: "ralph",
6139
+ mode: "forge",
6073
6140
  current_phase: "verifying",
6074
6141
  session_id: sessionId,
6075
6142
  });
@@ -6090,13 +6157,13 @@ esac
6090
6157
  }
6091
6158
  });
6092
6159
 
6093
- it("does not block Stop from root Ralph fallback when the current session has no scoped Ralph state", async () => {
6094
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-root-fallback-ralph-"));
6160
+ it("does not block Stop from root Forge fallback when the current session has no scoped Forge state", async () => {
6161
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-root-fallback-forge-"));
6095
6162
  try {
6096
6163
  const stateDir = join(cwd, ".rcs", "state");
6097
6164
  await mkdir(join(stateDir, "sessions", "sess-current"), { recursive: true });
6098
6165
  await writeJson(join(stateDir, "session.json"), { session_id: "sess-current", cwd });
6099
- await writeJson(join(stateDir, "ralph-state.json"), {
6166
+ await writeJson(join(stateDir, "forge-state.json"), {
6100
6167
  active: true,
6101
6168
  current_phase: "executing",
6102
6169
  });
@@ -6117,19 +6184,19 @@ esac
6117
6184
  }
6118
6185
  });
6119
6186
 
6120
- it("does not block Stop when the current session Ralph state is cancelled even if stale root fallback remains", async () => {
6121
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-cancelled-session-ralph-"));
6187
+ it("does not block Stop when the current session Forge state is cancelled even if stale root fallback remains", async () => {
6188
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-cancelled-session-forge-"));
6122
6189
  try {
6123
6190
  const stateDir = join(cwd, ".rcs", "state");
6124
6191
  await mkdir(join(stateDir, "sessions", "sess-current"), { recursive: true });
6125
6192
  await writeJson(join(stateDir, "session.json"), { session_id: "sess-current", cwd });
6126
- await writeJson(join(stateDir, "sessions", "sess-current", "ralph-state.json"), {
6193
+ await writeJson(join(stateDir, "sessions", "sess-current", "forge-state.json"), {
6127
6194
  active: false,
6128
6195
  current_phase: "cancelled",
6129
6196
  completed_at: "2026-04-10T23:30:38.000Z",
6130
6197
  session_id: "sess-current",
6131
6198
  });
6132
- await writeJson(join(stateDir, "ralph-state.json"), {
6199
+ await writeJson(join(stateDir, "forge-state.json"), {
6133
6200
  active: true,
6134
6201
  current_phase: "starting",
6135
6202
  });
@@ -6150,7 +6217,7 @@ esac
6150
6217
  }
6151
6218
  });
6152
6219
 
6153
- it("does not block Stop from root Ralph fallback when an explicit session_id is present and session.json points to another worktree", async () => {
6220
+ it("does not block Stop from root Forge fallback when an explicit session_id is present and session.json points to another worktree", async () => {
6154
6221
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-root-fallback-cwd-mismatch-"));
6155
6222
  try {
6156
6223
  const stateDir = join(cwd, ".rcs", "state");
@@ -6159,7 +6226,7 @@ esac
6159
6226
  session_id: "sess-elsewhere",
6160
6227
  cwd: join(cwd, "..", "different-worktree"),
6161
6228
  });
6162
- await writeJson(join(stateDir, "ralph-state.json"), {
6229
+ await writeJson(join(stateDir, "forge-state.json"), {
6163
6230
  active: true,
6164
6231
  current_phase: "executing",
6165
6232
  });
@@ -6180,21 +6247,21 @@ esac
6180
6247
  }
6181
6248
  });
6182
6249
 
6183
- it("keeps blocking Ralph Stop replays until the active task advances", async () => {
6184
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-ralph-replay-"));
6250
+ it("keeps blocking Forge Stop replays until the active task advances", async () => {
6251
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-forge-replay-"));
6185
6252
  const previousRcsSessionId = process.env.RCS_SESSION_ID;
6186
6253
  try {
6187
6254
  const stateDir = join(cwd, ".rcs", "state");
6188
6255
  await mkdir(stateDir, { recursive: true });
6189
6256
  await writeFile(
6190
- join(stateDir, "ralph-state.json"),
6257
+ join(stateDir, "forge-state.json"),
6191
6258
  JSON.stringify({
6192
6259
  active: true,
6193
6260
  current_phase: "executing",
6194
6261
  }),
6195
6262
  );
6196
6263
 
6197
- process.env.RCS_SESSION_ID = "sess-stop-ralph-replay";
6264
+ process.env.RCS_SESSION_ID = "sess-stop-forge-replay";
6198
6265
  const payload = {
6199
6266
  hook_event_name: "Stop",
6200
6267
  cwd,
@@ -6203,10 +6270,10 @@ esac
6203
6270
  const expected = {
6204
6271
  decision: "block",
6205
6272
  reason:
6206
- "RCS Ralph is still active (phase: executing; state: .rcs/state/ralph-state.json); continue the task and gather fresh verification evidence before stopping.",
6207
- stopReason: "ralph_executing",
6273
+ "RCS Forge is still active (phase: executing; state: .rcs/state/forge-state.json); continue the task and gather fresh verification evidence before stopping.",
6274
+ stopReason: "forge_executing",
6208
6275
  systemMessage:
6209
- "RCS Ralph is still active (phase: executing; state: .rcs/state/ralph-state.json); continue the task and gather fresh verification evidence before stopping.",
6276
+ "RCS Forge is still active (phase: executing; state: .rcs/state/forge-state.json); continue the task and gather fresh verification evidence before stopping.",
6210
6277
  };
6211
6278
 
6212
6279
  const first = await dispatchCodexNativeHook(payload, { cwd });
@@ -6230,28 +6297,28 @@ esac
6230
6297
  });
6231
6298
 
6232
6299
  it("lets dispatcher dedupe identical native stop hook replays after Stop payload normalization", async () => {
6233
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-ralph-hook-dedupe-"));
6300
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-forge-hook-dedupe-"));
6234
6301
  const previousRcsSessionId = process.env.RCS_SESSION_ID;
6235
6302
  try {
6236
6303
  const stateDir = join(cwd, ".rcs", "state");
6237
- await mkdir(join(stateDir, "sessions", "sess-stop-ralph-hook-dedupe"), { recursive: true });
6304
+ await mkdir(join(stateDir, "sessions", "sess-stop-forge-hook-dedupe"), { recursive: true });
6238
6305
  await writeHookCounterPlugin(cwd);
6239
6306
  await writeFile(
6240
- join(stateDir, "sessions", "sess-stop-ralph-hook-dedupe", "ralph-state.json"),
6307
+ join(stateDir, "sessions", "sess-stop-forge-hook-dedupe", "forge-state.json"),
6241
6308
  JSON.stringify({
6242
6309
  active: true,
6243
6310
  current_phase: "executing",
6244
- session_id: "sess-stop-ralph-hook-dedupe",
6311
+ session_id: "sess-stop-forge-hook-dedupe",
6245
6312
  }),
6246
6313
  );
6247
6314
 
6248
- process.env.RCS_SESSION_ID = "sess-stop-ralph-hook-dedupe";
6315
+ process.env.RCS_SESSION_ID = "sess-stop-forge-hook-dedupe";
6249
6316
  const payload = {
6250
6317
  hook_event_name: "Stop",
6251
6318
  cwd,
6252
- session_id: "sess-stop-ralph-hook-dedupe",
6253
- thread_id: "thread-stop-ralph-hook-dedupe",
6254
- turn_id: "turn-stop-ralph-hook-dedupe-1",
6319
+ session_id: "sess-stop-forge-hook-dedupe",
6320
+ thread_id: "thread-stop-forge-hook-dedupe",
6321
+ turn_id: "turn-stop-forge-hook-dedupe-1",
6255
6322
  last_assistant_message: "Next active targets:\n\n1. scheduler integration\n\nI am continuing.",
6256
6323
  };
6257
6324
 
@@ -6276,28 +6343,28 @@ esac
6276
6343
  });
6277
6344
 
6278
6345
  it("preserves per-turn native stop hook delivery even when stop_hook_active remains true", async () => {
6279
- const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-ralph-hook-refire-"));
6346
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-forge-hook-refire-"));
6280
6347
  const previousRcsSessionId = process.env.RCS_SESSION_ID;
6281
6348
  try {
6282
6349
  const stateDir = join(cwd, ".rcs", "state");
6283
- await mkdir(join(stateDir, "sessions", "sess-stop-ralph-hook-refire"), { recursive: true });
6350
+ await mkdir(join(stateDir, "sessions", "sess-stop-forge-hook-refire"), { recursive: true });
6284
6351
  await writeHookCounterPlugin(cwd);
6285
6352
  await writeFile(
6286
- join(stateDir, "sessions", "sess-stop-ralph-hook-refire", "ralph-state.json"),
6353
+ join(stateDir, "sessions", "sess-stop-forge-hook-refire", "forge-state.json"),
6287
6354
  JSON.stringify({
6288
6355
  active: true,
6289
6356
  current_phase: "executing",
6290
- session_id: "sess-stop-ralph-hook-refire",
6357
+ session_id: "sess-stop-forge-hook-refire",
6291
6358
  }),
6292
6359
  );
6293
6360
 
6294
- process.env.RCS_SESSION_ID = "sess-stop-ralph-hook-refire";
6361
+ process.env.RCS_SESSION_ID = "sess-stop-forge-hook-refire";
6295
6362
  const payload = {
6296
6363
  hook_event_name: "Stop",
6297
6364
  cwd,
6298
- session_id: "sess-stop-ralph-hook-refire",
6299
- thread_id: "thread-stop-ralph-hook-refire",
6300
- turn_id: "turn-stop-ralph-hook-refire-1",
6365
+ session_id: "sess-stop-forge-hook-refire",
6366
+ thread_id: "thread-stop-forge-hook-refire",
6367
+ turn_id: "turn-stop-forge-hook-refire-1",
6301
6368
  last_assistant_message: "Continuing current task.",
6302
6369
  };
6303
6370
 
@@ -6305,25 +6372,25 @@ esac
6305
6372
  await dispatchCodexNativeHook(
6306
6373
  {
6307
6374
  ...payload,
6308
- turn_id: "turn-stop-ralph-hook-refire-2",
6375
+ turn_id: "turn-stop-forge-hook-refire-2",
6309
6376
  stop_hook_active: true,
6310
6377
  },
6311
6378
  { cwd },
6312
6379
  );
6313
6380
 
6314
6381
  await writeFile(
6315
- join(stateDir, "sessions", "sess-stop-ralph-hook-refire", "ralph-state.json"),
6382
+ join(stateDir, "sessions", "sess-stop-forge-hook-refire", "forge-state.json"),
6316
6383
  JSON.stringify({
6317
6384
  active: true,
6318
6385
  current_phase: "executing",
6319
- session_id: "sess-stop-ralph-hook-refire",
6386
+ session_id: "sess-stop-forge-hook-refire",
6320
6387
  }),
6321
6388
  );
6322
6389
 
6323
6390
  await dispatchCodexNativeHook(
6324
6391
  {
6325
6392
  ...payload,
6326
- turn_id: "turn-stop-ralph-hook-refire-3",
6393
+ turn_id: "turn-stop-forge-hook-refire-3",
6327
6394
  stop_hook_active: true,
6328
6395
  },
6329
6396
  { cwd },
@@ -6478,7 +6545,7 @@ esac
6478
6545
  await writeHookCounterPlugin(cwd);
6479
6546
  process.env.RCS_SESSION_ID = "rcs-canonical";
6480
6547
  await writeSessionStart(cwd, "rcs-canonical");
6481
- await writeJson(join(stateDir, "sessions", "rcs-canonical", "ralph-state.json"), {
6548
+ await writeJson(join(stateDir, "sessions", "rcs-canonical", "forge-state.json"), {
6482
6549
  active: true,
6483
6550
  current_phase: "executing",
6484
6551
  session_id: "rcs-canonical",
@@ -7148,7 +7215,7 @@ esac
7148
7215
  }
7149
7216
  });
7150
7217
 
7151
- it("re-blocks active ralplan skill state on repeated Stop hooks", async () => {
7218
+ it("re-blocks active blueprint skill state on repeated Stop hooks", async () => {
7152
7219
  const cwd = await mkdtemp(join(tmpdir(), "rcs-native-hook-stop-skill-repeat-"));
7153
7220
  try {
7154
7221
  const stateDir = join(cwd, ".rcs", "state");
@@ -7156,10 +7223,10 @@ esac
7156
7223
  await writeJson(join(stateDir, "session.json"), { session_id: "sess-stop-skill-repeat" });
7157
7224
  await writeJson(join(stateDir, "sessions", "sess-stop-skill-repeat", "skill-active-state.json"), {
7158
7225
  active: true,
7159
- skill: "ralplan",
7226
+ skill: "blueprint",
7160
7227
  phase: "planning",
7161
7228
  });
7162
- await writeJson(join(stateDir, "sessions", "sess-stop-skill-repeat", "ralplan-state.json"), {
7229
+ await writeJson(join(stateDir, "sessions", "sess-stop-skill-repeat", "blueprint-state.json"), {
7163
7230
  active: true,
7164
7231
  current_phase: "planning",
7165
7232
  });
@@ -7191,9 +7258,9 @@ esac
7191
7258
  assert.deepEqual(repeated.outputJson, {
7192
7259
  decision: "block",
7193
7260
  reason:
7194
- "RCS skill ralplan is still active (phase: planning); continue until the current ralplan workflow reaches a terminal state.",
7195
- stopReason: "skill_ralplan_planning",
7196
- systemMessage: "RCS skill ralplan is still active (phase: planning).",
7261
+ "RCS skill blueprint is still active (phase: planning); continue until the current blueprint workflow reaches a terminal state.",
7262
+ stopReason: "skill_blueprint_planning",
7263
+ systemMessage: "RCS skill blueprint is still active (phase: planning).",
7197
7264
  });
7198
7265
  } finally {
7199
7266
  await rm(cwd, { recursive: true, force: true });
@@ -7382,18 +7449,18 @@ describe("codex native hook triage integration", () => {
7382
7449
 
7383
7450
  // ── Group 1: Keyword bypass (triage must NOT run) ────────────────────────
7384
7451
 
7385
- it("does not inject triage advisory for $ralplan keyword prompts", async () => {
7386
- const cwd = await mkdtemp(join(tmpdir(), "rcs-triage-keyword-ralplan-"));
7452
+ it("does not inject triage advisory for $blueprint keyword prompts", async () => {
7453
+ const cwd = await mkdtemp(join(tmpdir(), "rcs-triage-keyword-blueprint-"));
7387
7454
  try {
7388
7455
  await mkdir(join(cwd, ".rcs", "state"), { recursive: true });
7389
7456
  const result = await dispatchCodexNativeHook(
7390
7457
  {
7391
7458
  hook_event_name: "UserPromptSubmit",
7392
7459
  cwd,
7393
- session_id: "triage-kw-ralplan-1",
7460
+ session_id: "triage-kw-blueprint-1",
7394
7461
  thread_id: "thread-triage-kw-1",
7395
7462
  turn_id: "turn-triage-kw-1",
7396
- prompt: "$ralplan implement issue #1307",
7463
+ prompt: "$blueprint implement issue #1307",
7397
7464
  },
7398
7465
  { cwd },
7399
7466
  );
@@ -7406,7 +7473,7 @@ describe("codex native hook triage integration", () => {
7406
7473
  assert.doesNotMatch(additionalContext, /narrow edit-shaped/);
7407
7474
  assert.doesNotMatch(additionalContext, /visual\/style request/);
7408
7475
 
7409
- const stateFile = join(cwd, ".rcs", "state", "sessions", "triage-kw-ralplan-1", "prompt-routing-state.json");
7476
+ const stateFile = join(cwd, ".rcs", "state", "sessions", "triage-kw-blueprint-1", "prompt-routing-state.json");
7410
7477
  assert.equal(existsSync(stateFile), false);
7411
7478
  } finally {
7412
7479
  await rm(cwd, { recursive: true, force: true });
@@ -8328,12 +8395,12 @@ describe("codex native hook triage integration", () => {
8328
8395
  session_id: sessionId,
8329
8396
  thread_id: "thread-kw-followup-1",
8330
8397
  turn_id: "turn-kw-followup-2",
8331
- prompt: "$ralph continue",
8398
+ prompt: "$forge continue",
8332
8399
  },
8333
8400
  { cwd },
8334
8401
  );
8335
8402
 
8336
- assert.equal(turn2.skillState?.skill, "ralph");
8403
+ assert.equal(turn2.skillState?.skill, "forge");
8337
8404
 
8338
8405
  const ctx2 = String(
8339
8406
  (turn2.outputJson as { hookSpecificOutput?: { additionalContext?: string } })?.hookSpecificOutput?.additionalContext ?? "",