@liangjie559567/ultrapower 5.5.13 → 5.5.14

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 (1160) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/LICENSE +21 -21
  4. package/bridge/gyoshu_bridge.py +846 -846
  5. package/dist/hooks/bridge-normalize.d.ts.map +1 -1
  6. package/dist/hooks/bridge-normalize.js +2 -0
  7. package/dist/hooks/bridge-normalize.js.map +1 -1
  8. package/dist/lib/path-validator.d.ts.map +1 -1
  9. package/dist/lib/path-validator.js +7 -0
  10. package/dist/lib/path-validator.js.map +1 -1
  11. package/docs/CLAUDE.md +1 -1
  12. package/docs/guides/v5.5.13-new-features.md +234 -0
  13. package/hooks/run-hook.cmd +0 -0
  14. package/hooks/session-start +0 -0
  15. package/package.json +1 -1
  16. package/scripts/persistent-mode.cjs +605 -605
  17. package/skills/systematic-debugging/find-polluter.sh +0 -0
  18. package/skills/writing-skills/graphviz-conventions.dot +171 -171
  19. package/skills/writing-skills/render-graphs.js +0 -0
  20. package/templates/axiom/scripts/Check-Memory.ps1 +68 -68
  21. package/templates/axiom/scripts/Poll-Memory.ps1 +36 -36
  22. package/templates/axiom/scripts/Watch-Memory.ps1 +149 -149
  23. package/templates/axiom/scripts/agent-runner.ps1 +101 -101
  24. package/templates/axiom/scripts/start-reviews.ps1 +19 -19
  25. package/dist/__tests__/agent-registry.test.d.ts +0 -2
  26. package/dist/__tests__/agent-registry.test.d.ts.map +0 -1
  27. package/dist/__tests__/agent-registry.test.js +0 -45
  28. package/dist/__tests__/agent-registry.test.js.map +0 -1
  29. package/dist/__tests__/analytics/backfill-dedup.test.d.ts +0 -2
  30. package/dist/__tests__/analytics/backfill-dedup.test.d.ts.map +0 -1
  31. package/dist/__tests__/analytics/backfill-dedup.test.js +0 -179
  32. package/dist/__tests__/analytics/backfill-dedup.test.js.map +0 -1
  33. package/dist/__tests__/analytics/backfill-engine.test.d.ts +0 -2
  34. package/dist/__tests__/analytics/backfill-engine.test.d.ts.map +0 -1
  35. package/dist/__tests__/analytics/backfill-engine.test.js +0 -362
  36. package/dist/__tests__/analytics/backfill-engine.test.js.map +0 -1
  37. package/dist/__tests__/analytics/output-estimator.test.d.ts +0 -2
  38. package/dist/__tests__/analytics/output-estimator.test.d.ts.map +0 -1
  39. package/dist/__tests__/analytics/output-estimator.test.js +0 -124
  40. package/dist/__tests__/analytics/output-estimator.test.js.map +0 -1
  41. package/dist/__tests__/analytics/token-extractor.test.d.ts +0 -2
  42. package/dist/__tests__/analytics/token-extractor.test.d.ts.map +0 -1
  43. package/dist/__tests__/analytics/token-extractor.test.js +0 -165
  44. package/dist/__tests__/analytics/token-extractor.test.js.map +0 -1
  45. package/dist/__tests__/analytics/token-tracker.test.d.ts +0 -2
  46. package/dist/__tests__/analytics/token-tracker.test.d.ts.map +0 -1
  47. package/dist/__tests__/analytics/token-tracker.test.js +0 -189
  48. package/dist/__tests__/analytics/token-tracker.test.js.map +0 -1
  49. package/dist/__tests__/analytics/tokscale-adapter.test.d.ts +0 -2
  50. package/dist/__tests__/analytics/tokscale-adapter.test.d.ts.map +0 -1
  51. package/dist/__tests__/analytics/tokscale-adapter.test.js +0 -79
  52. package/dist/__tests__/analytics/tokscale-adapter.test.js.map +0 -1
  53. package/dist/__tests__/analytics/transcript-parser.test.d.ts +0 -2
  54. package/dist/__tests__/analytics/transcript-parser.test.d.ts.map +0 -1
  55. package/dist/__tests__/analytics/transcript-parser.test.js +0 -289
  56. package/dist/__tests__/analytics/transcript-parser.test.js.map +0 -1
  57. package/dist/__tests__/analytics/transcript-scanner.test.d.ts +0 -2
  58. package/dist/__tests__/analytics/transcript-scanner.test.d.ts.map +0 -1
  59. package/dist/__tests__/analytics/transcript-scanner.test.js +0 -443
  60. package/dist/__tests__/analytics/transcript-scanner.test.js.map +0 -1
  61. package/dist/__tests__/analytics/transcript-token-extractor.test.d.ts +0 -2
  62. package/dist/__tests__/analytics/transcript-token-extractor.test.d.ts.map +0 -1
  63. package/dist/__tests__/analytics/transcript-token-extractor.test.js +0 -177
  64. package/dist/__tests__/analytics/transcript-token-extractor.test.js.map +0 -1
  65. package/dist/__tests__/auto-update.test.d.ts +0 -2
  66. package/dist/__tests__/auto-update.test.d.ts.map +0 -1
  67. package/dist/__tests__/auto-update.test.js +0 -451
  68. package/dist/__tests__/auto-update.test.js.map +0 -1
  69. package/dist/__tests__/auto-upgrade-prompt.test.d.ts +0 -2
  70. package/dist/__tests__/auto-upgrade-prompt.test.d.ts.map +0 -1
  71. package/dist/__tests__/auto-upgrade-prompt.test.js +0 -81
  72. package/dist/__tests__/auto-upgrade-prompt.test.js.map +0 -1
  73. package/dist/__tests__/bash-history.test.d.ts +0 -5
  74. package/dist/__tests__/bash-history.test.d.ts.map +0 -1
  75. package/dist/__tests__/bash-history.test.js +0 -78
  76. package/dist/__tests__/bash-history.test.js.map +0 -1
  77. package/dist/__tests__/cli-config-stop-callback.test.d.ts +0 -2
  78. package/dist/__tests__/cli-config-stop-callback.test.d.ts.map +0 -1
  79. package/dist/__tests__/cli-config-stop-callback.test.js +0 -102
  80. package/dist/__tests__/cli-config-stop-callback.test.js.map +0 -1
  81. package/dist/__tests__/cli-notify-profile.test.d.ts +0 -2
  82. package/dist/__tests__/cli-notify-profile.test.d.ts.map +0 -1
  83. package/dist/__tests__/cli-notify-profile.test.js +0 -213
  84. package/dist/__tests__/cli-notify-profile.test.js.map +0 -1
  85. package/dist/__tests__/codex-backoff.test.d.ts +0 -2
  86. package/dist/__tests__/codex-backoff.test.d.ts.map +0 -1
  87. package/dist/__tests__/codex-backoff.test.js +0 -143
  88. package/dist/__tests__/codex-backoff.test.js.map +0 -1
  89. package/dist/__tests__/compatibility-security.test.d.ts +0 -13
  90. package/dist/__tests__/compatibility-security.test.d.ts.map +0 -1
  91. package/dist/__tests__/compatibility-security.test.js +0 -403
  92. package/dist/__tests__/compatibility-security.test.js.map +0 -1
  93. package/dist/__tests__/compatibility.test.d.ts +0 -7
  94. package/dist/__tests__/compatibility.test.d.ts.map +0 -1
  95. package/dist/__tests__/compatibility.test.js +0 -484
  96. package/dist/__tests__/compatibility.test.js.map +0 -1
  97. package/dist/__tests__/consensus-execution-handoff.test.d.ts +0 -14
  98. package/dist/__tests__/consensus-execution-handoff.test.d.ts.map +0 -1
  99. package/dist/__tests__/consensus-execution-handoff.test.js +0 -178
  100. package/dist/__tests__/consensus-execution-handoff.test.js.map +0 -1
  101. package/dist/__tests__/delegation-enforcement-levels.test.d.ts +0 -9
  102. package/dist/__tests__/delegation-enforcement-levels.test.d.ts.map +0 -1
  103. package/dist/__tests__/delegation-enforcement-levels.test.js +0 -583
  104. package/dist/__tests__/delegation-enforcement-levels.test.js.map +0 -1
  105. package/dist/__tests__/delegation-enforcer-integration.test.d.ts +0 -6
  106. package/dist/__tests__/delegation-enforcer-integration.test.d.ts.map +0 -1
  107. package/dist/__tests__/delegation-enforcer-integration.test.js +0 -136
  108. package/dist/__tests__/delegation-enforcer-integration.test.js.map +0 -1
  109. package/dist/__tests__/delegation-enforcer.test.d.ts +0 -5
  110. package/dist/__tests__/delegation-enforcer.test.d.ts.map +0 -1
  111. package/dist/__tests__/delegation-enforcer.test.js +0 -209
  112. package/dist/__tests__/delegation-enforcer.test.js.map +0 -1
  113. package/dist/__tests__/directory-context-injector.test.d.ts +0 -2
  114. package/dist/__tests__/directory-context-injector.test.d.ts.map +0 -1
  115. package/dist/__tests__/directory-context-injector.test.js +0 -186
  116. package/dist/__tests__/directory-context-injector.test.js.map +0 -1
  117. package/dist/__tests__/disable-tools.test.d.ts +0 -8
  118. package/dist/__tests__/disable-tools.test.d.ts.map +0 -1
  119. package/dist/__tests__/disable-tools.test.js +0 -182
  120. package/dist/__tests__/disable-tools.test.js.map +0 -1
  121. package/dist/__tests__/doctor-conflicts.test.d.ts +0 -8
  122. package/dist/__tests__/doctor-conflicts.test.d.ts.map +0 -1
  123. package/dist/__tests__/doctor-conflicts.test.js +0 -230
  124. package/dist/__tests__/doctor-conflicts.test.js.map +0 -1
  125. package/dist/__tests__/example.test.d.ts +0 -2
  126. package/dist/__tests__/example.test.d.ts.map +0 -1
  127. package/dist/__tests__/example.test.js +0 -20
  128. package/dist/__tests__/example.test.js.map +0 -1
  129. package/dist/__tests__/helpers/prompt-test-helpers.d.ts +0 -4
  130. package/dist/__tests__/helpers/prompt-test-helpers.d.ts.map +0 -1
  131. package/dist/__tests__/helpers/prompt-test-helpers.js +0 -9
  132. package/dist/__tests__/helpers/prompt-test-helpers.js.map +0 -1
  133. package/dist/__tests__/hooks/learner/bridge.test.d.ts +0 -11
  134. package/dist/__tests__/hooks/learner/bridge.test.d.ts.map +0 -1
  135. package/dist/__tests__/hooks/learner/bridge.test.js +0 -217
  136. package/dist/__tests__/hooks/learner/bridge.test.js.map +0 -1
  137. package/dist/__tests__/hooks/learner/parser.test.d.ts +0 -5
  138. package/dist/__tests__/hooks/learner/parser.test.d.ts.map +0 -1
  139. package/dist/__tests__/hooks/learner/parser.test.js +0 -219
  140. package/dist/__tests__/hooks/learner/parser.test.js.map +0 -1
  141. package/dist/__tests__/hooks-json-paths.test.d.ts +0 -9
  142. package/dist/__tests__/hooks-json-paths.test.d.ts.map +0 -1
  143. package/dist/__tests__/hooks-json-paths.test.js +0 -91
  144. package/dist/__tests__/hooks-json-paths.test.js.map +0 -1
  145. package/dist/__tests__/hooks.test.d.ts +0 -2
  146. package/dist/__tests__/hooks.test.d.ts.map +0 -1
  147. package/dist/__tests__/hooks.test.js +0 -1273
  148. package/dist/__tests__/hooks.test.js.map +0 -1
  149. package/dist/__tests__/hud/analytics-display.test.d.ts +0 -2
  150. package/dist/__tests__/hud/analytics-display.test.d.ts.map +0 -1
  151. package/dist/__tests__/hud/analytics-display.test.js +0 -236
  152. package/dist/__tests__/hud/analytics-display.test.js.map +0 -1
  153. package/dist/__tests__/hud/call-counts.test.d.ts +0 -2
  154. package/dist/__tests__/hud/call-counts.test.d.ts.map +0 -1
  155. package/dist/__tests__/hud/call-counts.test.js +0 -90
  156. package/dist/__tests__/hud/call-counts.test.js.map +0 -1
  157. package/dist/__tests__/hud/context-warning.test.d.ts +0 -2
  158. package/dist/__tests__/hud/context-warning.test.d.ts.map +0 -1
  159. package/dist/__tests__/hud/context-warning.test.js +0 -84
  160. package/dist/__tests__/hud/context-warning.test.js.map +0 -1
  161. package/dist/__tests__/hud/cwd.test.d.ts +0 -2
  162. package/dist/__tests__/hud/cwd.test.d.ts.map +0 -1
  163. package/dist/__tests__/hud/cwd.test.js +0 -62
  164. package/dist/__tests__/hud/cwd.test.js.map +0 -1
  165. package/dist/__tests__/hud/defaults.test.d.ts +0 -2
  166. package/dist/__tests__/hud/defaults.test.d.ts.map +0 -1
  167. package/dist/__tests__/hud/defaults.test.js +0 -55
  168. package/dist/__tests__/hud/defaults.test.js.map +0 -1
  169. package/dist/__tests__/hud/git.test.d.ts +0 -2
  170. package/dist/__tests__/hud/git.test.d.ts.map +0 -1
  171. package/dist/__tests__/hud/git.test.js +0 -110
  172. package/dist/__tests__/hud/git.test.js.map +0 -1
  173. package/dist/__tests__/hud/model.test.d.ts +0 -2
  174. package/dist/__tests__/hud/model.test.d.ts.map +0 -1
  175. package/dist/__tests__/hud/model.test.js +0 -63
  176. package/dist/__tests__/hud/model.test.js.map +0 -1
  177. package/dist/__tests__/hud/render.test.d.ts +0 -2
  178. package/dist/__tests__/hud/render.test.d.ts.map +0 -1
  179. package/dist/__tests__/hud/render.test.js +0 -141
  180. package/dist/__tests__/hud/render.test.js.map +0 -1
  181. package/dist/__tests__/hud/sanitize.test.d.ts +0 -10
  182. package/dist/__tests__/hud/sanitize.test.d.ts.map +0 -1
  183. package/dist/__tests__/hud/sanitize.test.js +0 -138
  184. package/dist/__tests__/hud/sanitize.test.js.map +0 -1
  185. package/dist/__tests__/hud/skills.test.d.ts +0 -2
  186. package/dist/__tests__/hud/skills.test.d.ts.map +0 -1
  187. package/dist/__tests__/hud/skills.test.js +0 -143
  188. package/dist/__tests__/hud/skills.test.js.map +0 -1
  189. package/dist/__tests__/hud/state.test.d.ts +0 -2
  190. package/dist/__tests__/hud/state.test.d.ts.map +0 -1
  191. package/dist/__tests__/hud/state.test.js +0 -162
  192. package/dist/__tests__/hud/state.test.js.map +0 -1
  193. package/dist/__tests__/hud/thinking.test.d.ts +0 -2
  194. package/dist/__tests__/hud/thinking.test.d.ts.map +0 -1
  195. package/dist/__tests__/hud/thinking.test.js +0 -32
  196. package/dist/__tests__/hud/thinking.test.js.map +0 -1
  197. package/dist/__tests__/hud/top-agents.test.d.ts +0 -8
  198. package/dist/__tests__/hud/top-agents.test.d.ts.map +0 -1
  199. package/dist/__tests__/hud/top-agents.test.js +0 -158
  200. package/dist/__tests__/hud/top-agents.test.js.map +0 -1
  201. package/dist/__tests__/hud/usage-api.test.d.ts +0 -5
  202. package/dist/__tests__/hud/usage-api.test.d.ts.map +0 -1
  203. package/dist/__tests__/hud/usage-api.test.js +0 -201
  204. package/dist/__tests__/hud/usage-api.test.js.map +0 -1
  205. package/dist/__tests__/hud/version-display.test.d.ts +0 -2
  206. package/dist/__tests__/hud/version-display.test.d.ts.map +0 -1
  207. package/dist/__tests__/hud/version-display.test.js +0 -107
  208. package/dist/__tests__/hud/version-display.test.js.map +0 -1
  209. package/dist/__tests__/hud/windows-platform.test.d.ts +0 -2
  210. package/dist/__tests__/hud/windows-platform.test.d.ts.map +0 -1
  211. package/dist/__tests__/hud/windows-platform.test.js +0 -193
  212. package/dist/__tests__/hud/windows-platform.test.js.map +0 -1
  213. package/dist/__tests__/hud-agents.test.d.ts +0 -7
  214. package/dist/__tests__/hud-agents.test.d.ts.map +0 -1
  215. package/dist/__tests__/hud-agents.test.js +0 -392
  216. package/dist/__tests__/hud-agents.test.js.map +0 -1
  217. package/dist/__tests__/hud-axiom.test.d.ts +0 -5
  218. package/dist/__tests__/hud-axiom.test.d.ts.map +0 -1
  219. package/dist/__tests__/hud-axiom.test.js +0 -287
  220. package/dist/__tests__/hud-axiom.test.js.map +0 -1
  221. package/dist/__tests__/hud-suggestions.test.d.ts +0 -5
  222. package/dist/__tests__/hud-suggestions.test.d.ts.map +0 -1
  223. package/dist/__tests__/hud-suggestions.test.js +0 -244
  224. package/dist/__tests__/hud-suggestions.test.js.map +0 -1
  225. package/dist/__tests__/hud-windows.test.d.ts +0 -2
  226. package/dist/__tests__/hud-windows.test.d.ts.map +0 -1
  227. package/dist/__tests__/hud-windows.test.js +0 -154
  228. package/dist/__tests__/hud-windows.test.js.map +0 -1
  229. package/dist/__tests__/inline-prompt-integration.test.d.ts +0 -2
  230. package/dist/__tests__/inline-prompt-integration.test.d.ts.map +0 -1
  231. package/dist/__tests__/inline-prompt-integration.test.js +0 -411
  232. package/dist/__tests__/inline-prompt-integration.test.js.map +0 -1
  233. package/dist/__tests__/inline-success-shape.test.d.ts +0 -2
  234. package/dist/__tests__/inline-success-shape.test.d.ts.map +0 -1
  235. package/dist/__tests__/inline-success-shape.test.js +0 -130
  236. package/dist/__tests__/inline-success-shape.test.js.map +0 -1
  237. package/dist/__tests__/installer-hooks-merge.test.d.ts +0 -13
  238. package/dist/__tests__/installer-hooks-merge.test.d.ts.map +0 -1
  239. package/dist/__tests__/installer-hooks-merge.test.js +0 -250
  240. package/dist/__tests__/installer-hooks-merge.test.js.map +0 -1
  241. package/dist/__tests__/installer-hud-skip.test.d.ts +0 -2
  242. package/dist/__tests__/installer-hud-skip.test.d.ts.map +0 -1
  243. package/dist/__tests__/installer-hud-skip.test.js +0 -102
  244. package/dist/__tests__/installer-hud-skip.test.js.map +0 -1
  245. package/dist/__tests__/installer.test.d.ts +0 -2
  246. package/dist/__tests__/installer.test.d.ts.map +0 -1
  247. package/dist/__tests__/installer.test.js +0 -474
  248. package/dist/__tests__/installer.test.js.map +0 -1
  249. package/dist/__tests__/job-management-sqlite.test.d.ts +0 -2
  250. package/dist/__tests__/job-management-sqlite.test.d.ts.map +0 -1
  251. package/dist/__tests__/job-management-sqlite.test.js +0 -284
  252. package/dist/__tests__/job-management-sqlite.test.js.map +0 -1
  253. package/dist/__tests__/job-management.test.d.ts +0 -2
  254. package/dist/__tests__/job-management.test.d.ts.map +0 -1
  255. package/dist/__tests__/job-management.test.js +0 -411
  256. package/dist/__tests__/job-management.test.js.map +0 -1
  257. package/dist/__tests__/job-state-db.test.d.ts +0 -2
  258. package/dist/__tests__/job-state-db.test.d.ts.map +0 -1
  259. package/dist/__tests__/job-state-db.test.js +0 -611
  260. package/dist/__tests__/job-state-db.test.js.map +0 -1
  261. package/dist/__tests__/learner/auto-learner.test.d.ts +0 -7
  262. package/dist/__tests__/learner/auto-learner.test.d.ts.map +0 -1
  263. package/dist/__tests__/learner/auto-learner.test.js +0 -507
  264. package/dist/__tests__/learner/auto-learner.test.js.map +0 -1
  265. package/dist/__tests__/learner/matcher.test.d.ts +0 -2
  266. package/dist/__tests__/learner/matcher.test.d.ts.map +0 -1
  267. package/dist/__tests__/learner/matcher.test.js +0 -330
  268. package/dist/__tests__/learner/matcher.test.js.map +0 -1
  269. package/dist/__tests__/live-data.test.d.ts +0 -2
  270. package/dist/__tests__/live-data.test.d.ts.map +0 -1
  271. package/dist/__tests__/live-data.test.js +0 -331
  272. package/dist/__tests__/live-data.test.js.map +0 -1
  273. package/dist/__tests__/load-agent-prompt.test.d.ts +0 -2
  274. package/dist/__tests__/load-agent-prompt.test.d.ts.map +0 -1
  275. package/dist/__tests__/load-agent-prompt.test.js +0 -91
  276. package/dist/__tests__/load-agent-prompt.test.js.map +0 -1
  277. package/dist/__tests__/lsp-servers.test.d.ts +0 -2
  278. package/dist/__tests__/lsp-servers.test.d.ts.map +0 -1
  279. package/dist/__tests__/lsp-servers.test.js +0 -121
  280. package/dist/__tests__/lsp-servers.test.js.map +0 -1
  281. package/dist/__tests__/mcp-fallback-429.test.d.ts +0 -2
  282. package/dist/__tests__/mcp-fallback-429.test.d.ts.map +0 -1
  283. package/dist/__tests__/mcp-fallback-429.test.js +0 -164
  284. package/dist/__tests__/mcp-fallback-429.test.js.map +0 -1
  285. package/dist/__tests__/mcp-server-workflows.test.d.ts +0 -2
  286. package/dist/__tests__/mcp-server-workflows.test.d.ts.map +0 -1
  287. package/dist/__tests__/mcp-server-workflows.test.js +0 -301
  288. package/dist/__tests__/mcp-server-workflows.test.js.map +0 -1
  289. package/dist/__tests__/mnemosyne/config.test.d.ts +0 -2
  290. package/dist/__tests__/mnemosyne/config.test.d.ts.map +0 -1
  291. package/dist/__tests__/mnemosyne/config.test.js +0 -37
  292. package/dist/__tests__/mnemosyne/config.test.js.map +0 -1
  293. package/dist/__tests__/mnemosyne/detector.test.d.ts +0 -2
  294. package/dist/__tests__/mnemosyne/detector.test.d.ts.map +0 -1
  295. package/dist/__tests__/mnemosyne/detector.test.js +0 -99
  296. package/dist/__tests__/mnemosyne/detector.test.js.map +0 -1
  297. package/dist/__tests__/mnemosyne/finder.test.d.ts +0 -2
  298. package/dist/__tests__/mnemosyne/finder.test.d.ts.map +0 -1
  299. package/dist/__tests__/mnemosyne/finder.test.js +0 -105
  300. package/dist/__tests__/mnemosyne/finder.test.js.map +0 -1
  301. package/dist/__tests__/mnemosyne/loader.test.d.ts +0 -2
  302. package/dist/__tests__/mnemosyne/loader.test.d.ts.map +0 -1
  303. package/dist/__tests__/mnemosyne/loader.test.js +0 -73
  304. package/dist/__tests__/mnemosyne/loader.test.js.map +0 -1
  305. package/dist/__tests__/mnemosyne/parser.test.d.ts +0 -2
  306. package/dist/__tests__/mnemosyne/parser.test.d.ts.map +0 -1
  307. package/dist/__tests__/mnemosyne/parser.test.js +0 -81
  308. package/dist/__tests__/mnemosyne/parser.test.js.map +0 -1
  309. package/dist/__tests__/mnemosyne/validator.test.d.ts +0 -2
  310. package/dist/__tests__/mnemosyne/validator.test.d.ts.map +0 -1
  311. package/dist/__tests__/mnemosyne/validator.test.js +0 -85
  312. package/dist/__tests__/mnemosyne/validator.test.js.map +0 -1
  313. package/dist/__tests__/model-routing.test.d.ts +0 -2
  314. package/dist/__tests__/model-routing.test.d.ts.map +0 -1
  315. package/dist/__tests__/model-routing.test.js +0 -794
  316. package/dist/__tests__/model-routing.test.js.map +0 -1
  317. package/dist/__tests__/multi-model-mcp-integration.test.d.ts +0 -2
  318. package/dist/__tests__/multi-model-mcp-integration.test.d.ts.map +0 -1
  319. package/dist/__tests__/multi-model-mcp-integration.test.js +0 -69
  320. package/dist/__tests__/multi-model-mcp-integration.test.js.map +0 -1
  321. package/dist/__tests__/multi-model-mcp.test.d.ts +0 -2
  322. package/dist/__tests__/multi-model-mcp.test.d.ts.map +0 -1
  323. package/dist/__tests__/multi-model-mcp.test.js +0 -145
  324. package/dist/__tests__/multi-model-mcp.test.js.map +0 -1
  325. package/dist/__tests__/notepad.test.d.ts +0 -2
  326. package/dist/__tests__/notepad.test.d.ts.map +0 -1
  327. package/dist/__tests__/notepad.test.js +0 -374
  328. package/dist/__tests__/notepad.test.js.map +0 -1
  329. package/dist/__tests__/omc-tools-contract.test.d.ts +0 -11
  330. package/dist/__tests__/omc-tools-contract.test.d.ts.map +0 -1
  331. package/dist/__tests__/omc-tools-contract.test.js +0 -172
  332. package/dist/__tests__/omc-tools-contract.test.js.map +0 -1
  333. package/dist/__tests__/omc-tools-server.test.d.ts +0 -2
  334. package/dist/__tests__/omc-tools-server.test.d.ts.map +0 -1
  335. package/dist/__tests__/omc-tools-server.test.js +0 -61
  336. package/dist/__tests__/omc-tools-server.test.js.map +0 -1
  337. package/dist/__tests__/permission-enforcement.test.d.ts +0 -2
  338. package/dist/__tests__/permission-enforcement.test.d.ts.map +0 -1
  339. package/dist/__tests__/permission-enforcement.test.js +0 -194
  340. package/dist/__tests__/permission-enforcement.test.js.map +0 -1
  341. package/dist/__tests__/plugin-registry.test.d.ts +0 -2
  342. package/dist/__tests__/plugin-registry.test.d.ts.map +0 -1
  343. package/dist/__tests__/plugin-registry.test.js +0 -233
  344. package/dist/__tests__/plugin-registry.test.js.map +0 -1
  345. package/dist/__tests__/prompt-file-only.test.d.ts +0 -2
  346. package/dist/__tests__/prompt-file-only.test.d.ts.map +0 -1
  347. package/dist/__tests__/prompt-file-only.test.js +0 -263
  348. package/dist/__tests__/prompt-file-only.test.js.map +0 -1
  349. package/dist/__tests__/prompt-injection.test.d.ts +0 -2
  350. package/dist/__tests__/prompt-injection.test.d.ts.map +0 -1
  351. package/dist/__tests__/prompt-injection.test.js +0 -242
  352. package/dist/__tests__/prompt-injection.test.js.map +0 -1
  353. package/dist/__tests__/providers/azure-devops.test.d.ts +0 -2
  354. package/dist/__tests__/providers/azure-devops.test.d.ts.map +0 -1
  355. package/dist/__tests__/providers/azure-devops.test.js +0 -158
  356. package/dist/__tests__/providers/azure-devops.test.js.map +0 -1
  357. package/dist/__tests__/providers/bitbucket.test.d.ts +0 -2
  358. package/dist/__tests__/providers/bitbucket.test.d.ts.map +0 -1
  359. package/dist/__tests__/providers/bitbucket.test.js +0 -170
  360. package/dist/__tests__/providers/bitbucket.test.js.map +0 -1
  361. package/dist/__tests__/providers/detection.test.d.ts +0 -2
  362. package/dist/__tests__/providers/detection.test.d.ts.map +0 -1
  363. package/dist/__tests__/providers/detection.test.js +0 -181
  364. package/dist/__tests__/providers/detection.test.js.map +0 -1
  365. package/dist/__tests__/providers/gitea.test.d.ts +0 -2
  366. package/dist/__tests__/providers/gitea.test.d.ts.map +0 -1
  367. package/dist/__tests__/providers/gitea.test.js +0 -212
  368. package/dist/__tests__/providers/gitea.test.js.map +0 -1
  369. package/dist/__tests__/providers/github.test.d.ts +0 -2
  370. package/dist/__tests__/providers/github.test.d.ts.map +0 -1
  371. package/dist/__tests__/providers/github.test.js +0 -146
  372. package/dist/__tests__/providers/github.test.js.map +0 -1
  373. package/dist/__tests__/providers/gitlab.test.d.ts +0 -2
  374. package/dist/__tests__/providers/gitlab.test.d.ts.map +0 -1
  375. package/dist/__tests__/providers/gitlab.test.js +0 -149
  376. package/dist/__tests__/providers/gitlab.test.js.map +0 -1
  377. package/dist/__tests__/ralph-prd.test.d.ts +0 -2
  378. package/dist/__tests__/ralph-prd.test.d.ts.map +0 -1
  379. package/dist/__tests__/ralph-prd.test.js +0 -308
  380. package/dist/__tests__/ralph-prd.test.js.map +0 -1
  381. package/dist/__tests__/ralph-progress.test.d.ts +0 -2
  382. package/dist/__tests__/ralph-progress.test.d.ts.map +0 -1
  383. package/dist/__tests__/ralph-progress.test.js +0 -312
  384. package/dist/__tests__/ralph-progress.test.js.map +0 -1
  385. package/dist/__tests__/rate-limit-wait/daemon.test.d.ts +0 -5
  386. package/dist/__tests__/rate-limit-wait/daemon.test.d.ts.map +0 -1
  387. package/dist/__tests__/rate-limit-wait/daemon.test.js +0 -321
  388. package/dist/__tests__/rate-limit-wait/daemon.test.js.map +0 -1
  389. package/dist/__tests__/rate-limit-wait/integration.test.d.ts +0 -8
  390. package/dist/__tests__/rate-limit-wait/integration.test.d.ts.map +0 -1
  391. package/dist/__tests__/rate-limit-wait/integration.test.js +0 -341
  392. package/dist/__tests__/rate-limit-wait/integration.test.js.map +0 -1
  393. package/dist/__tests__/rate-limit-wait/rate-limit-monitor.test.d.ts +0 -5
  394. package/dist/__tests__/rate-limit-wait/rate-limit-monitor.test.d.ts.map +0 -1
  395. package/dist/__tests__/rate-limit-wait/rate-limit-monitor.test.js +0 -183
  396. package/dist/__tests__/rate-limit-wait/rate-limit-monitor.test.js.map +0 -1
  397. package/dist/__tests__/rate-limit-wait/tmux-detector.test.d.ts +0 -5
  398. package/dist/__tests__/rate-limit-wait/tmux-detector.test.d.ts.map +0 -1
  399. package/dist/__tests__/rate-limit-wait/tmux-detector.test.js +0 -312
  400. package/dist/__tests__/rate-limit-wait/tmux-detector.test.js.map +0 -1
  401. package/dist/__tests__/release-local.test.d.ts +0 -2
  402. package/dist/__tests__/release-local.test.d.ts.map +0 -1
  403. package/dist/__tests__/release-local.test.js +0 -19
  404. package/dist/__tests__/release-local.test.js.map +0 -1
  405. package/dist/__tests__/release-steps.test.d.ts +0 -2
  406. package/dist/__tests__/release-steps.test.d.ts.map +0 -1
  407. package/dist/__tests__/release-steps.test.js +0 -82
  408. package/dist/__tests__/release-steps.test.js.map +0 -1
  409. package/dist/__tests__/session-catalog.test.d.ts +0 -2
  410. package/dist/__tests__/session-catalog.test.d.ts.map +0 -1
  411. package/dist/__tests__/session-catalog.test.js +0 -195
  412. package/dist/__tests__/session-catalog.test.js.map +0 -1
  413. package/dist/__tests__/session-migration.test.d.ts +0 -2
  414. package/dist/__tests__/session-migration.test.d.ts.map +0 -1
  415. package/dist/__tests__/session-migration.test.js +0 -155
  416. package/dist/__tests__/session-migration.test.js.map +0 -1
  417. package/dist/__tests__/skills.test.d.ts +0 -2
  418. package/dist/__tests__/skills.test.d.ts.map +0 -1
  419. package/dist/__tests__/skills.test.js +0 -207
  420. package/dist/__tests__/skills.test.js.map +0 -1
  421. package/dist/__tests__/standalone-server.test.d.ts +0 -2
  422. package/dist/__tests__/standalone-server.test.d.ts.map +0 -1
  423. package/dist/__tests__/standalone-server.test.js +0 -53
  424. package/dist/__tests__/standalone-server.test.js.map +0 -1
  425. package/dist/__tests__/task-continuation.test.d.ts +0 -2
  426. package/dist/__tests__/task-continuation.test.d.ts.map +0 -1
  427. package/dist/__tests__/task-continuation.test.js +0 -743
  428. package/dist/__tests__/task-continuation.test.js.map +0 -1
  429. package/dist/__tests__/tools/skills-tools.test.d.ts +0 -2
  430. package/dist/__tests__/tools/skills-tools.test.d.ts.map +0 -1
  431. package/dist/__tests__/tools/skills-tools.test.js +0 -63
  432. package/dist/__tests__/tools/skills-tools.test.js.map +0 -1
  433. package/dist/__tests__/tools/trace-tools.test.d.ts +0 -2
  434. package/dist/__tests__/tools/trace-tools.test.d.ts.map +0 -1
  435. package/dist/__tests__/tools/trace-tools.test.js +0 -237
  436. package/dist/__tests__/tools/trace-tools.test.js.map +0 -1
  437. package/dist/__tests__/types.test.d.ts +0 -2
  438. package/dist/__tests__/types.test.d.ts.map +0 -1
  439. package/dist/__tests__/types.test.js +0 -78
  440. package/dist/__tests__/types.test.js.map +0 -1
  441. package/dist/__tests__/validate-and-read-file.test.d.ts +0 -2
  442. package/dist/__tests__/validate-and-read-file.test.d.ts.map +0 -1
  443. package/dist/__tests__/validate-and-read-file.test.js +0 -84
  444. package/dist/__tests__/validate-and-read-file.test.js.map +0 -1
  445. package/dist/__tests__/validateMode.test.d.ts +0 -2
  446. package/dist/__tests__/validateMode.test.d.ts.map +0 -1
  447. package/dist/__tests__/validateMode.test.js +0 -100
  448. package/dist/__tests__/validateMode.test.js.map +0 -1
  449. package/dist/__tests__/version-helper.test.d.ts +0 -2
  450. package/dist/__tests__/version-helper.test.d.ts.map +0 -1
  451. package/dist/__tests__/version-helper.test.js +0 -37
  452. package/dist/__tests__/version-helper.test.js.map +0 -1
  453. package/dist/agents/__tests__/agent-wrapper.test.d.ts +0 -2
  454. package/dist/agents/__tests__/agent-wrapper.test.d.ts.map +0 -1
  455. package/dist/agents/__tests__/agent-wrapper.test.js +0 -37
  456. package/dist/agents/__tests__/agent-wrapper.test.js.map +0 -1
  457. package/dist/agents/__tests__/timeout-config.test.d.ts +0 -2
  458. package/dist/agents/__tests__/timeout-config.test.d.ts.map +0 -1
  459. package/dist/agents/__tests__/timeout-config.test.js +0 -35
  460. package/dist/agents/__tests__/timeout-config.test.js.map +0 -1
  461. package/dist/agents/__tests__/timeout-manager.test.d.ts +0 -2
  462. package/dist/agents/__tests__/timeout-manager.test.d.ts.map +0 -1
  463. package/dist/agents/__tests__/timeout-manager.test.js +0 -37
  464. package/dist/agents/__tests__/timeout-manager.test.js.map +0 -1
  465. package/dist/agents/coordinator-deprecated.d.ts +0 -18
  466. package/dist/agents/coordinator-deprecated.d.ts.map +0 -1
  467. package/dist/agents/coordinator-deprecated.js +0 -38
  468. package/dist/agents/coordinator-deprecated.js.map +0 -1
  469. package/dist/cli/commands/__tests__/cleanup.test.d.ts +0 -2
  470. package/dist/cli/commands/__tests__/cleanup.test.d.ts.map +0 -1
  471. package/dist/cli/commands/__tests__/cleanup.test.js +0 -37
  472. package/dist/cli/commands/__tests__/cleanup.test.js.map +0 -1
  473. package/dist/features/delegation-routing/__tests__/resolver.test.d.ts +0 -2
  474. package/dist/features/delegation-routing/__tests__/resolver.test.d.ts.map +0 -1
  475. package/dist/features/delegation-routing/__tests__/resolver.test.js +0 -419
  476. package/dist/features/delegation-routing/__tests__/resolver.test.js.map +0 -1
  477. package/dist/features/model-routing/__tests__/external-model-policy.test.d.ts +0 -2
  478. package/dist/features/model-routing/__tests__/external-model-policy.test.d.ts.map +0 -1
  479. package/dist/features/model-routing/__tests__/external-model-policy.test.js +0 -475
  480. package/dist/features/model-routing/__tests__/external-model-policy.test.js.map +0 -1
  481. package/dist/features/state-manager/__tests__/cache.test.d.ts +0 -2
  482. package/dist/features/state-manager/__tests__/cache.test.d.ts.map +0 -1
  483. package/dist/features/state-manager/__tests__/cache.test.js +0 -204
  484. package/dist/features/state-manager/__tests__/cache.test.js.map +0 -1
  485. package/dist/features/state-manager/__tests__/encryption-performance.test.d.ts +0 -2
  486. package/dist/features/state-manager/__tests__/encryption-performance.test.d.ts.map +0 -1
  487. package/dist/features/state-manager/__tests__/encryption-performance.test.js +0 -42
  488. package/dist/features/state-manager/__tests__/encryption-performance.test.js.map +0 -1
  489. package/dist/features/state-manager/__tests__/encryption.test.d.ts +0 -2
  490. package/dist/features/state-manager/__tests__/encryption.test.d.ts.map +0 -1
  491. package/dist/features/state-manager/__tests__/encryption.test.js +0 -68
  492. package/dist/features/state-manager/__tests__/encryption.test.js.map +0 -1
  493. package/dist/features/wizard/__tests__/engine.test.d.ts +0 -2
  494. package/dist/features/wizard/__tests__/engine.test.d.ts.map +0 -1
  495. package/dist/features/wizard/__tests__/engine.test.js +0 -78
  496. package/dist/features/wizard/__tests__/engine.test.js.map +0 -1
  497. package/dist/features/wizard/__tests__/recommendation-engine.test.d.ts +0 -2
  498. package/dist/features/wizard/__tests__/recommendation-engine.test.d.ts.map +0 -1
  499. package/dist/features/wizard/__tests__/recommendation-engine.test.js +0 -43
  500. package/dist/features/wizard/__tests__/recommendation-engine.test.js.map +0 -1
  501. package/dist/hooks/__tests__/askuserquestion-lifecycle.test.d.ts +0 -9
  502. package/dist/hooks/__tests__/askuserquestion-lifecycle.test.d.ts.map +0 -1
  503. package/dist/hooks/__tests__/askuserquestion-lifecycle.test.js +0 -110
  504. package/dist/hooks/__tests__/askuserquestion-lifecycle.test.js.map +0 -1
  505. package/dist/hooks/__tests__/background-process-guard.test.d.ts +0 -2
  506. package/dist/hooks/__tests__/background-process-guard.test.d.ts.map +0 -1
  507. package/dist/hooks/__tests__/background-process-guard.test.js +0 -233
  508. package/dist/hooks/__tests__/background-process-guard.test.js.map +0 -1
  509. package/dist/hooks/__tests__/bridge-normalize.test.d.ts +0 -2
  510. package/dist/hooks/__tests__/bridge-normalize.test.d.ts.map +0 -1
  511. package/dist/hooks/__tests__/bridge-normalize.test.js +0 -90
  512. package/dist/hooks/__tests__/bridge-normalize.test.js.map +0 -1
  513. package/dist/hooks/__tests__/bridge-pkill.test.d.ts +0 -8
  514. package/dist/hooks/__tests__/bridge-pkill.test.d.ts.map +0 -1
  515. package/dist/hooks/__tests__/bridge-pkill.test.js +0 -188
  516. package/dist/hooks/__tests__/bridge-pkill.test.js.map +0 -1
  517. package/dist/hooks/__tests__/bridge-routing.test.d.ts +0 -9
  518. package/dist/hooks/__tests__/bridge-routing.test.d.ts.map +0 -1
  519. package/dist/hooks/__tests__/bridge-routing.test.js +0 -516
  520. package/dist/hooks/__tests__/bridge-routing.test.js.map +0 -1
  521. package/dist/hooks/__tests__/bridge-security.test.d.ts +0 -11
  522. package/dist/hooks/__tests__/bridge-security.test.d.ts.map +0 -1
  523. package/dist/hooks/__tests__/bridge-security.test.js +0 -498
  524. package/dist/hooks/__tests__/bridge-security.test.js.map +0 -1
  525. package/dist/hooks/__tests__/bridge.test.d.ts +0 -2
  526. package/dist/hooks/__tests__/bridge.test.d.ts.map +0 -1
  527. package/dist/hooks/__tests__/bridge.test.js +0 -199
  528. package/dist/hooks/__tests__/bridge.test.js.map +0 -1
  529. package/dist/hooks/__tests__/compaction-concurrency.test.d.ts +0 -10
  530. package/dist/hooks/__tests__/compaction-concurrency.test.d.ts.map +0 -1
  531. package/dist/hooks/__tests__/compaction-concurrency.test.js +0 -313
  532. package/dist/hooks/__tests__/compaction-concurrency.test.js.map +0 -1
  533. package/dist/hooks/auto-slash-command/__tests__/detector.test.d.ts +0 -2
  534. package/dist/hooks/auto-slash-command/__tests__/detector.test.d.ts.map +0 -1
  535. package/dist/hooks/auto-slash-command/__tests__/detector.test.js +0 -70
  536. package/dist/hooks/auto-slash-command/__tests__/detector.test.js.map +0 -1
  537. package/dist/hooks/auto-slash-command/__tests__/executor.test.d.ts +0 -2
  538. package/dist/hooks/auto-slash-command/__tests__/executor.test.d.ts.map +0 -1
  539. package/dist/hooks/auto-slash-command/__tests__/executor.test.js +0 -55
  540. package/dist/hooks/auto-slash-command/__tests__/executor.test.js.map +0 -1
  541. package/dist/hooks/auto-slash-command/__tests__/index.test.d.ts +0 -2
  542. package/dist/hooks/auto-slash-command/__tests__/index.test.d.ts.map +0 -1
  543. package/dist/hooks/auto-slash-command/__tests__/index.test.js +0 -50
  544. package/dist/hooks/auto-slash-command/__tests__/index.test.js.map +0 -1
  545. package/dist/hooks/autopilot/__tests__/cancel.test.d.ts +0 -2
  546. package/dist/hooks/autopilot/__tests__/cancel.test.d.ts.map +0 -1
  547. package/dist/hooks/autopilot/__tests__/cancel.test.js +0 -606
  548. package/dist/hooks/autopilot/__tests__/cancel.test.js.map +0 -1
  549. package/dist/hooks/autopilot/__tests__/prompts.test.d.ts +0 -2
  550. package/dist/hooks/autopilot/__tests__/prompts.test.d.ts.map +0 -1
  551. package/dist/hooks/autopilot/__tests__/prompts.test.js +0 -92
  552. package/dist/hooks/autopilot/__tests__/prompts.test.js.map +0 -1
  553. package/dist/hooks/autopilot/__tests__/state.test.d.ts +0 -2
  554. package/dist/hooks/autopilot/__tests__/state.test.d.ts.map +0 -1
  555. package/dist/hooks/autopilot/__tests__/state.test.js +0 -76
  556. package/dist/hooks/autopilot/__tests__/state.test.js.map +0 -1
  557. package/dist/hooks/autopilot/__tests__/summary.test.d.ts +0 -2
  558. package/dist/hooks/autopilot/__tests__/summary.test.d.ts.map +0 -1
  559. package/dist/hooks/autopilot/__tests__/summary.test.js +0 -324
  560. package/dist/hooks/autopilot/__tests__/summary.test.js.map +0 -1
  561. package/dist/hooks/autopilot/__tests__/transition.test.d.ts +0 -2
  562. package/dist/hooks/autopilot/__tests__/transition.test.d.ts.map +0 -1
  563. package/dist/hooks/autopilot/__tests__/transition.test.js +0 -58
  564. package/dist/hooks/autopilot/__tests__/transition.test.js.map +0 -1
  565. package/dist/hooks/autopilot/__tests__/transitions.test.d.ts +0 -12
  566. package/dist/hooks/autopilot/__tests__/transitions.test.d.ts.map +0 -1
  567. package/dist/hooks/autopilot/__tests__/transitions.test.js +0 -303
  568. package/dist/hooks/autopilot/__tests__/transitions.test.js.map +0 -1
  569. package/dist/hooks/autopilot/__tests__/validation.test.d.ts +0 -2
  570. package/dist/hooks/autopilot/__tests__/validation.test.d.ts.map +0 -1
  571. package/dist/hooks/autopilot/__tests__/validation.test.js +0 -450
  572. package/dist/hooks/autopilot/__tests__/validation.test.js.map +0 -1
  573. package/dist/hooks/beads-context/__tests__/index.test.d.ts +0 -2
  574. package/dist/hooks/beads-context/__tests__/index.test.d.ts.map +0 -1
  575. package/dist/hooks/beads-context/__tests__/index.test.js +0 -150
  576. package/dist/hooks/beads-context/__tests__/index.test.js.map +0 -1
  577. package/dist/hooks/empty-message-sanitizer/__tests__/index.test.d.ts +0 -2
  578. package/dist/hooks/empty-message-sanitizer/__tests__/index.test.d.ts.map +0 -1
  579. package/dist/hooks/empty-message-sanitizer/__tests__/index.test.js +0 -416
  580. package/dist/hooks/empty-message-sanitizer/__tests__/index.test.js.map +0 -1
  581. package/dist/hooks/keyword-detector/__tests__/index.test.d.ts +0 -2
  582. package/dist/hooks/keyword-detector/__tests__/index.test.d.ts.map +0 -1
  583. package/dist/hooks/keyword-detector/__tests__/index.test.js +0 -868
  584. package/dist/hooks/keyword-detector/__tests__/index.test.js.map +0 -1
  585. package/dist/hooks/learner/__tests__/confidence.test.d.ts +0 -2
  586. package/dist/hooks/learner/__tests__/confidence.test.d.ts.map +0 -1
  587. package/dist/hooks/learner/__tests__/confidence.test.js +0 -42
  588. package/dist/hooks/learner/__tests__/confidence.test.js.map +0 -1
  589. package/dist/hooks/learner/__tests__/detector.test.d.ts +0 -2
  590. package/dist/hooks/learner/__tests__/detector.test.d.ts.map +0 -1
  591. package/dist/hooks/learner/__tests__/detector.test.js +0 -170
  592. package/dist/hooks/learner/__tests__/detector.test.js.map +0 -1
  593. package/dist/hooks/learner/__tests__/index-manager-filter.test.d.ts +0 -14
  594. package/dist/hooks/learner/__tests__/index-manager-filter.test.d.ts.map +0 -1
  595. package/dist/hooks/learner/__tests__/index-manager-filter.test.js +0 -147
  596. package/dist/hooks/learner/__tests__/index-manager-filter.test.js.map +0 -1
  597. package/dist/hooks/learner/__tests__/index-manager-import.test.d.ts +0 -2
  598. package/dist/hooks/learner/__tests__/index-manager-import.test.d.ts.map +0 -1
  599. package/dist/hooks/learner/__tests__/index-manager-import.test.js +0 -43
  600. package/dist/hooks/learner/__tests__/index-manager-import.test.js.map +0 -1
  601. package/dist/hooks/learner/__tests__/index.test.d.ts +0 -2
  602. package/dist/hooks/learner/__tests__/index.test.d.ts.map +0 -1
  603. package/dist/hooks/learner/__tests__/index.test.js +0 -48
  604. package/dist/hooks/learner/__tests__/index.test.js.map +0 -1
  605. package/dist/hooks/learner/__tests__/learning-queue-parser.test.d.ts +0 -10
  606. package/dist/hooks/learner/__tests__/learning-queue-parser.test.d.ts.map +0 -1
  607. package/dist/hooks/learner/__tests__/learning-queue-parser.test.js +0 -131
  608. package/dist/hooks/learner/__tests__/learning-queue-parser.test.js.map +0 -1
  609. package/dist/hooks/learner/__tests__/matcher.test.d.ts +0 -2
  610. package/dist/hooks/learner/__tests__/matcher.test.d.ts.map +0 -1
  611. package/dist/hooks/learner/__tests__/matcher.test.js +0 -114
  612. package/dist/hooks/learner/__tests__/matcher.test.js.map +0 -1
  613. package/dist/hooks/learner/__tests__/promotion.test.d.ts +0 -2
  614. package/dist/hooks/learner/__tests__/promotion.test.d.ts.map +0 -1
  615. package/dist/hooks/learner/__tests__/promotion.test.js +0 -146
  616. package/dist/hooks/learner/__tests__/promotion.test.js.map +0 -1
  617. package/dist/hooks/learner/__tests__/queue-archiver.test.d.ts +0 -13
  618. package/dist/hooks/learner/__tests__/queue-archiver.test.d.ts.map +0 -1
  619. package/dist/hooks/learner/__tests__/queue-archiver.test.js +0 -162
  620. package/dist/hooks/learner/__tests__/queue-archiver.test.js.map +0 -1
  621. package/dist/hooks/learner/__tests__/reflection-archiver.test.d.ts +0 -14
  622. package/dist/hooks/learner/__tests__/reflection-archiver.test.d.ts.map +0 -1
  623. package/dist/hooks/learner/__tests__/reflection-archiver.test.js +0 -159
  624. package/dist/hooks/learner/__tests__/reflection-archiver.test.js.map +0 -1
  625. package/dist/hooks/learner/__tests__/reflection-parser.test.d.ts +0 -14
  626. package/dist/hooks/learner/__tests__/reflection-parser.test.d.ts.map +0 -1
  627. package/dist/hooks/learner/__tests__/reflection-parser.test.js +0 -201
  628. package/dist/hooks/learner/__tests__/reflection-parser.test.js.map +0 -1
  629. package/dist/hooks/learner/__tests__/validator.test.d.ts +0 -2
  630. package/dist/hooks/learner/__tests__/validator.test.d.ts.map +0 -1
  631. package/dist/hooks/learner/__tests__/validator.test.js +0 -123
  632. package/dist/hooks/learner/__tests__/validator.test.js.map +0 -1
  633. package/dist/hooks/learner/__tests__/writer.test.d.ts +0 -2
  634. package/dist/hooks/learner/__tests__/writer.test.d.ts.map +0 -1
  635. package/dist/hooks/learner/__tests__/writer.test.js +0 -141
  636. package/dist/hooks/learner/__tests__/writer.test.js.map +0 -1
  637. package/dist/hooks/mode-registry/__tests__/session-isolation.test.d.ts +0 -2
  638. package/dist/hooks/mode-registry/__tests__/session-isolation.test.d.ts.map +0 -1
  639. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js +0 -236
  640. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js.map +0 -1
  641. package/dist/hooks/nexus/__tests__/config.test.d.ts +0 -2
  642. package/dist/hooks/nexus/__tests__/config.test.d.ts.map +0 -1
  643. package/dist/hooks/nexus/__tests__/config.test.js +0 -38
  644. package/dist/hooks/nexus/__tests__/config.test.js.map +0 -1
  645. package/dist/hooks/nexus/__tests__/consciousness-sync.test.d.ts +0 -2
  646. package/dist/hooks/nexus/__tests__/consciousness-sync.test.d.ts.map +0 -1
  647. package/dist/hooks/nexus/__tests__/consciousness-sync.test.js +0 -28
  648. package/dist/hooks/nexus/__tests__/consciousness-sync.test.js.map +0 -1
  649. package/dist/hooks/nexus/__tests__/data-collector.test.d.ts +0 -2
  650. package/dist/hooks/nexus/__tests__/data-collector.test.d.ts.map +0 -1
  651. package/dist/hooks/nexus/__tests__/data-collector.test.js +0 -61
  652. package/dist/hooks/nexus/__tests__/data-collector.test.js.map +0 -1
  653. package/dist/hooks/nexus/__tests__/improvement-puller.test.d.ts +0 -2
  654. package/dist/hooks/nexus/__tests__/improvement-puller.test.d.ts.map +0 -1
  655. package/dist/hooks/nexus/__tests__/improvement-puller.test.js +0 -49
  656. package/dist/hooks/nexus/__tests__/improvement-puller.test.js.map +0 -1
  657. package/dist/hooks/nexus/__tests__/session-end-hook.test.d.ts +0 -2
  658. package/dist/hooks/nexus/__tests__/session-end-hook.test.d.ts.map +0 -1
  659. package/dist/hooks/nexus/__tests__/session-end-hook.test.js +0 -39
  660. package/dist/hooks/nexus/__tests__/session-end-hook.test.js.map +0 -1
  661. package/dist/hooks/observability/__tests__/observability.test.d.ts +0 -2
  662. package/dist/hooks/observability/__tests__/observability.test.d.ts.map +0 -1
  663. package/dist/hooks/observability/__tests__/observability.test.js +0 -176
  664. package/dist/hooks/observability/__tests__/observability.test.js.map +0 -1
  665. package/dist/hooks/permission-handler/__tests__/index.test.d.ts +0 -2
  666. package/dist/hooks/permission-handler/__tests__/index.test.d.ts.map +0 -1
  667. package/dist/hooks/permission-handler/__tests__/index.test.js +0 -417
  668. package/dist/hooks/permission-handler/__tests__/index.test.js.map +0 -1
  669. package/dist/hooks/persistent-mode/__tests__/error-handling.test.d.ts +0 -6
  670. package/dist/hooks/persistent-mode/__tests__/error-handling.test.d.ts.map +0 -1
  671. package/dist/hooks/persistent-mode/__tests__/error-handling.test.js +0 -71
  672. package/dist/hooks/persistent-mode/__tests__/error-handling.test.js.map +0 -1
  673. package/dist/hooks/persistent-mode/__tests__/ralph-max-iteration.test.d.ts +0 -2
  674. package/dist/hooks/persistent-mode/__tests__/ralph-max-iteration.test.d.ts.map +0 -1
  675. package/dist/hooks/persistent-mode/__tests__/ralph-max-iteration.test.js +0 -38
  676. package/dist/hooks/persistent-mode/__tests__/ralph-max-iteration.test.js.map +0 -1
  677. package/dist/hooks/persistent-mode/__tests__/tool-error.test.d.ts +0 -6
  678. package/dist/hooks/persistent-mode/__tests__/tool-error.test.d.ts.map +0 -1
  679. package/dist/hooks/persistent-mode/__tests__/tool-error.test.js +0 -335
  680. package/dist/hooks/persistent-mode/__tests__/tool-error.test.js.map +0 -1
  681. package/dist/hooks/persistent-mode/session-isolation.test.d.ts +0 -2
  682. package/dist/hooks/persistent-mode/session-isolation.test.d.ts.map +0 -1
  683. package/dist/hooks/persistent-mode/session-isolation.test.js +0 -491
  684. package/dist/hooks/persistent-mode/session-isolation.test.js.map +0 -1
  685. package/dist/hooks/project-memory/__tests__/detector.test.d.ts +0 -5
  686. package/dist/hooks/project-memory/__tests__/detector.test.d.ts.map +0 -1
  687. package/dist/hooks/project-memory/__tests__/detector.test.js +0 -165
  688. package/dist/hooks/project-memory/__tests__/detector.test.js.map +0 -1
  689. package/dist/hooks/project-memory/__tests__/formatter.test.d.ts +0 -5
  690. package/dist/hooks/project-memory/__tests__/formatter.test.d.ts.map +0 -1
  691. package/dist/hooks/project-memory/__tests__/formatter.test.js +0 -262
  692. package/dist/hooks/project-memory/__tests__/formatter.test.js.map +0 -1
  693. package/dist/hooks/project-memory/__tests__/integration.test.d.ts +0 -5
  694. package/dist/hooks/project-memory/__tests__/integration.test.d.ts.map +0 -1
  695. package/dist/hooks/project-memory/__tests__/integration.test.js +0 -154
  696. package/dist/hooks/project-memory/__tests__/integration.test.js.map +0 -1
  697. package/dist/hooks/project-memory/__tests__/learner.test.d.ts +0 -5
  698. package/dist/hooks/project-memory/__tests__/learner.test.d.ts.map +0 -1
  699. package/dist/hooks/project-memory/__tests__/learner.test.js +0 -159
  700. package/dist/hooks/project-memory/__tests__/learner.test.js.map +0 -1
  701. package/dist/hooks/project-memory/__tests__/storage.test.d.ts +0 -5
  702. package/dist/hooks/project-memory/__tests__/storage.test.d.ts.map +0 -1
  703. package/dist/hooks/project-memory/__tests__/storage.test.js +0 -207
  704. package/dist/hooks/project-memory/__tests__/storage.test.js.map +0 -1
  705. package/dist/hooks/ralph/__tests__/loop.test.d.ts +0 -2
  706. package/dist/hooks/ralph/__tests__/loop.test.d.ts.map +0 -1
  707. package/dist/hooks/ralph/__tests__/loop.test.js +0 -268
  708. package/dist/hooks/ralph/__tests__/loop.test.js.map +0 -1
  709. package/dist/hooks/ralph/__tests__/prd.test.d.ts +0 -2
  710. package/dist/hooks/ralph/__tests__/prd.test.d.ts.map +0 -1
  711. package/dist/hooks/ralph/__tests__/prd.test.js +0 -197
  712. package/dist/hooks/ralph/__tests__/prd.test.js.map +0 -1
  713. package/dist/hooks/ralph/__tests__/progress.test.d.ts +0 -2
  714. package/dist/hooks/ralph/__tests__/progress.test.d.ts.map +0 -1
  715. package/dist/hooks/ralph/__tests__/progress.test.js +0 -120
  716. package/dist/hooks/ralph/__tests__/progress.test.js.map +0 -1
  717. package/dist/hooks/ralph/__tests__/verifier.test.d.ts +0 -2
  718. package/dist/hooks/ralph/__tests__/verifier.test.d.ts.map +0 -1
  719. package/dist/hooks/ralph/__tests__/verifier.test.js +0 -75
  720. package/dist/hooks/ralph/__tests__/verifier.test.js.map +0 -1
  721. package/dist/hooks/recovery/__tests__/context-window.test.d.ts +0 -2
  722. package/dist/hooks/recovery/__tests__/context-window.test.d.ts.map +0 -1
  723. package/dist/hooks/recovery/__tests__/context-window.test.js +0 -131
  724. package/dist/hooks/recovery/__tests__/context-window.test.js.map +0 -1
  725. package/dist/hooks/recovery/__tests__/edit-error.test.d.ts +0 -2
  726. package/dist/hooks/recovery/__tests__/edit-error.test.d.ts.map +0 -1
  727. package/dist/hooks/recovery/__tests__/edit-error.test.js +0 -88
  728. package/dist/hooks/recovery/__tests__/edit-error.test.js.map +0 -1
  729. package/dist/hooks/recovery/__tests__/index.test.d.ts +0 -2
  730. package/dist/hooks/recovery/__tests__/index.test.d.ts.map +0 -1
  731. package/dist/hooks/recovery/__tests__/index.test.js +0 -270
  732. package/dist/hooks/recovery/__tests__/index.test.js.map +0 -1
  733. package/dist/hooks/recovery/__tests__/session-recovery.test.d.ts +0 -2
  734. package/dist/hooks/recovery/__tests__/session-recovery.test.d.ts.map +0 -1
  735. package/dist/hooks/recovery/__tests__/session-recovery.test.js +0 -129
  736. package/dist/hooks/recovery/__tests__/session-recovery.test.js.map +0 -1
  737. package/dist/hooks/recovery/__tests__/storage.test.d.ts +0 -2
  738. package/dist/hooks/recovery/__tests__/storage.test.d.ts.map +0 -1
  739. package/dist/hooks/recovery/__tests__/storage.test.js +0 -549
  740. package/dist/hooks/recovery/__tests__/storage.test.js.map +0 -1
  741. package/dist/hooks/rules-injector/__tests__/finder.test.d.ts +0 -2
  742. package/dist/hooks/rules-injector/__tests__/finder.test.d.ts.map +0 -1
  743. package/dist/hooks/rules-injector/__tests__/finder.test.js +0 -68
  744. package/dist/hooks/rules-injector/__tests__/finder.test.js.map +0 -1
  745. package/dist/hooks/rules-injector/__tests__/index.test.d.ts +0 -2
  746. package/dist/hooks/rules-injector/__tests__/index.test.d.ts.map +0 -1
  747. package/dist/hooks/rules-injector/__tests__/index.test.js +0 -58
  748. package/dist/hooks/rules-injector/__tests__/index.test.js.map +0 -1
  749. package/dist/hooks/rules-injector/__tests__/matcher.test.d.ts +0 -2
  750. package/dist/hooks/rules-injector/__tests__/matcher.test.d.ts.map +0 -1
  751. package/dist/hooks/rules-injector/__tests__/matcher.test.js +0 -86
  752. package/dist/hooks/rules-injector/__tests__/matcher.test.js.map +0 -1
  753. package/dist/hooks/rules-injector/__tests__/parser.test.d.ts +0 -2
  754. package/dist/hooks/rules-injector/__tests__/parser.test.d.ts.map +0 -1
  755. package/dist/hooks/rules-injector/__tests__/parser.test.js +0 -86
  756. package/dist/hooks/rules-injector/__tests__/parser.test.js.map +0 -1
  757. package/dist/hooks/session-end/__tests__/callbacks.test.d.ts +0 -2
  758. package/dist/hooks/session-end/__tests__/callbacks.test.d.ts.map +0 -1
  759. package/dist/hooks/session-end/__tests__/callbacks.test.js +0 -382
  760. package/dist/hooks/session-end/__tests__/callbacks.test.js.map +0 -1
  761. package/dist/hooks/session-end/__tests__/index.test.d.ts +0 -2
  762. package/dist/hooks/session-end/__tests__/index.test.d.ts.map +0 -1
  763. package/dist/hooks/session-end/__tests__/index.test.js +0 -77
  764. package/dist/hooks/session-end/__tests__/index.test.js.map +0 -1
  765. package/dist/hooks/session-end/__tests__/nexus-integration.test.d.ts +0 -2
  766. package/dist/hooks/session-end/__tests__/nexus-integration.test.d.ts.map +0 -1
  767. package/dist/hooks/session-end/__tests__/nexus-integration.test.js +0 -30
  768. package/dist/hooks/session-end/__tests__/nexus-integration.test.js.map +0 -1
  769. package/dist/hooks/session-end/__tests__/python-repl-cleanup.test.d.ts +0 -2
  770. package/dist/hooks/session-end/__tests__/python-repl-cleanup.test.d.ts.map +0 -1
  771. package/dist/hooks/session-end/__tests__/python-repl-cleanup.test.js +0 -46
  772. package/dist/hooks/session-end/__tests__/python-repl-cleanup.test.js.map +0 -1
  773. package/dist/hooks/session-end/__tests__/session-duration.test.d.ts +0 -2
  774. package/dist/hooks/session-end/__tests__/session-duration.test.d.ts.map +0 -1
  775. package/dist/hooks/session-end/__tests__/session-duration.test.js +0 -236
  776. package/dist/hooks/session-end/__tests__/session-duration.test.js.map +0 -1
  777. package/dist/hooks/session-end/__tests__/session-end-bridge-cleanup.test.d.ts +0 -2
  778. package/dist/hooks/session-end/__tests__/session-end-bridge-cleanup.test.d.ts.map +0 -1
  779. package/dist/hooks/session-end/__tests__/session-end-bridge-cleanup.test.js +0 -58
  780. package/dist/hooks/session-end/__tests__/session-end-bridge-cleanup.test.js.map +0 -1
  781. package/dist/hooks/setup/__tests__/index.test.d.ts +0 -2
  782. package/dist/hooks/setup/__tests__/index.test.d.ts.map +0 -1
  783. package/dist/hooks/setup/__tests__/index.test.js +0 -68
  784. package/dist/hooks/setup/__tests__/index.test.js.map +0 -1
  785. package/dist/hooks/setup/__tests__/prune.test.d.ts +0 -2
  786. package/dist/hooks/setup/__tests__/prune.test.d.ts.map +0 -1
  787. package/dist/hooks/setup/__tests__/prune.test.js +0 -94
  788. package/dist/hooks/setup/__tests__/prune.test.js.map +0 -1
  789. package/dist/hooks/subagent-tracker/__tests__/flow-tracer.test.d.ts +0 -2
  790. package/dist/hooks/subagent-tracker/__tests__/flow-tracer.test.d.ts.map +0 -1
  791. package/dist/hooks/subagent-tracker/__tests__/flow-tracer.test.js +0 -107
  792. package/dist/hooks/subagent-tracker/__tests__/flow-tracer.test.js.map +0 -1
  793. package/dist/hooks/subagent-tracker/__tests__/flush-race.test.d.ts +0 -2
  794. package/dist/hooks/subagent-tracker/__tests__/flush-race.test.d.ts.map +0 -1
  795. package/dist/hooks/subagent-tracker/__tests__/flush-race.test.js +0 -376
  796. package/dist/hooks/subagent-tracker/__tests__/flush-race.test.js.map +0 -1
  797. package/dist/hooks/subagent-tracker/__tests__/index.test.d.ts +0 -2
  798. package/dist/hooks/subagent-tracker/__tests__/index.test.d.ts.map +0 -1
  799. package/dist/hooks/subagent-tracker/__tests__/index.test.js +0 -818
  800. package/dist/hooks/subagent-tracker/__tests__/index.test.js.map +0 -1
  801. package/dist/hooks/subagent-tracker/__tests__/session-replay.test.d.ts +0 -2
  802. package/dist/hooks/subagent-tracker/__tests__/session-replay.test.d.ts.map +0 -1
  803. package/dist/hooks/subagent-tracker/__tests__/session-replay.test.js +0 -139
  804. package/dist/hooks/subagent-tracker/__tests__/session-replay.test.js.map +0 -1
  805. package/dist/hooks/subagent-tracker/__tests__/syncSleep.test.d.ts +0 -10
  806. package/dist/hooks/subagent-tracker/__tests__/syncSleep.test.d.ts.map +0 -1
  807. package/dist/hooks/subagent-tracker/__tests__/syncSleep.test.js +0 -112
  808. package/dist/hooks/subagent-tracker/__tests__/syncSleep.test.js.map +0 -1
  809. package/dist/hooks/team-pipeline/__tests__/state.test.d.ts +0 -2
  810. package/dist/hooks/team-pipeline/__tests__/state.test.d.ts.map +0 -1
  811. package/dist/hooks/team-pipeline/__tests__/state.test.js +0 -94
  812. package/dist/hooks/team-pipeline/__tests__/state.test.js.map +0 -1
  813. package/dist/hooks/team-pipeline/__tests__/transitions.test.d.ts +0 -2
  814. package/dist/hooks/team-pipeline/__tests__/transitions.test.d.ts.map +0 -1
  815. package/dist/hooks/team-pipeline/__tests__/transitions.test.js +0 -156
  816. package/dist/hooks/team-pipeline/__tests__/transitions.test.js.map +0 -1
  817. package/dist/hooks/think-mode/__tests__/index.test.d.ts +0 -2
  818. package/dist/hooks/think-mode/__tests__/index.test.d.ts.map +0 -1
  819. package/dist/hooks/think-mode/__tests__/index.test.js +0 -556
  820. package/dist/hooks/think-mode/__tests__/index.test.js.map +0 -1
  821. package/dist/hooks/todo-continuation/__tests__/isUserAbort.test.d.ts +0 -2
  822. package/dist/hooks/todo-continuation/__tests__/isUserAbort.test.d.ts.map +0 -1
  823. package/dist/hooks/todo-continuation/__tests__/isUserAbort.test.js +0 -119
  824. package/dist/hooks/todo-continuation/__tests__/isUserAbort.test.js.map +0 -1
  825. package/dist/hooks/ultrawork/session-isolation.test.d.ts +0 -2
  826. package/dist/hooks/ultrawork/session-isolation.test.d.ts.map +0 -1
  827. package/dist/hooks/ultrawork/session-isolation.test.js +0 -333
  828. package/dist/hooks/ultrawork/session-isolation.test.js.map +0 -1
  829. package/dist/installer/__tests__/claude-md-merge.test.d.ts +0 -6
  830. package/dist/installer/__tests__/claude-md-merge.test.d.ts.map +0 -1
  831. package/dist/installer/__tests__/claude-md-merge.test.js +0 -220
  832. package/dist/installer/__tests__/claude-md-merge.test.js.map +0 -1
  833. package/dist/installer/__tests__/hooks.test.d.ts +0 -6
  834. package/dist/installer/__tests__/hooks.test.d.ts.map +0 -1
  835. package/dist/installer/__tests__/hooks.test.js +0 -121
  836. package/dist/installer/__tests__/hooks.test.js.map +0 -1
  837. package/dist/installer/__tests__/safe-installer.test.d.ts +0 -6
  838. package/dist/installer/__tests__/safe-installer.test.d.ts.map +0 -1
  839. package/dist/installer/__tests__/safe-installer.test.js +0 -185
  840. package/dist/installer/__tests__/safe-installer.test.js.map +0 -1
  841. package/dist/lib/__tests__/atomic-write.test.d.ts +0 -2
  842. package/dist/lib/__tests__/atomic-write.test.d.ts.map +0 -1
  843. package/dist/lib/__tests__/atomic-write.test.js +0 -196
  844. package/dist/lib/__tests__/atomic-write.test.js.map +0 -1
  845. package/dist/lib/__tests__/file-lock.test.d.ts +0 -13
  846. package/dist/lib/__tests__/file-lock.test.d.ts.map +0 -1
  847. package/dist/lib/__tests__/file-lock.test.js +0 -122
  848. package/dist/lib/__tests__/file-lock.test.js.map +0 -1
  849. package/dist/lib/__tests__/plugin-deps.test.d.ts +0 -2
  850. package/dist/lib/__tests__/plugin-deps.test.d.ts.map +0 -1
  851. package/dist/lib/__tests__/plugin-deps.test.js +0 -58
  852. package/dist/lib/__tests__/plugin-deps.test.js.map +0 -1
  853. package/dist/lib/__tests__/plugin-marketplace.test.d.ts +0 -2
  854. package/dist/lib/__tests__/plugin-marketplace.test.d.ts.map +0 -1
  855. package/dist/lib/__tests__/plugin-marketplace.test.js +0 -52
  856. package/dist/lib/__tests__/plugin-marketplace.test.js.map +0 -1
  857. package/dist/lib/__tests__/plugin-registry.test.d.ts +0 -2
  858. package/dist/lib/__tests__/plugin-registry.test.d.ts.map +0 -1
  859. package/dist/lib/__tests__/plugin-registry.test.js +0 -241
  860. package/dist/lib/__tests__/plugin-registry.test.js.map +0 -1
  861. package/dist/lib/__tests__/plugin-rollback.test.d.ts +0 -2
  862. package/dist/lib/__tests__/plugin-rollback.test.d.ts.map +0 -1
  863. package/dist/lib/__tests__/plugin-rollback.test.js +0 -60
  864. package/dist/lib/__tests__/plugin-rollback.test.js.map +0 -1
  865. package/dist/lib/__tests__/plugin-security.test.d.ts +0 -2
  866. package/dist/lib/__tests__/plugin-security.test.d.ts.map +0 -1
  867. package/dist/lib/__tests__/plugin-security.test.js +0 -70
  868. package/dist/lib/__tests__/plugin-security.test.js.map +0 -1
  869. package/dist/lib/__tests__/validateMode.test.d.ts +0 -2
  870. package/dist/lib/__tests__/validateMode.test.d.ts.map +0 -1
  871. package/dist/lib/__tests__/validateMode.test.js +0 -61
  872. package/dist/lib/__tests__/validateMode.test.js.map +0 -1
  873. package/dist/lib/__tests__/version.test.d.ts +0 -6
  874. package/dist/lib/__tests__/version.test.d.ts.map +0 -1
  875. package/dist/lib/__tests__/version.test.js +0 -37
  876. package/dist/lib/__tests__/version.test.js.map +0 -1
  877. package/dist/lib/__tests__/worktree-paths.test.d.ts +0 -2
  878. package/dist/lib/__tests__/worktree-paths.test.d.ts.map +0 -1
  879. package/dist/lib/__tests__/worktree-paths.test.js +0 -225
  880. package/dist/lib/__tests__/worktree-paths.test.js.map +0 -1
  881. package/dist/mcp/__tests__/cli-detection.test.d.ts +0 -2
  882. package/dist/mcp/__tests__/cli-detection.test.d.ts.map +0 -1
  883. package/dist/mcp/__tests__/cli-detection.test.js +0 -50
  884. package/dist/mcp/__tests__/cli-detection.test.js.map +0 -1
  885. package/dist/mcp/__tests__/codex-core.test.d.ts +0 -2
  886. package/dist/mcp/__tests__/codex-core.test.d.ts.map +0 -1
  887. package/dist/mcp/__tests__/codex-core.test.js +0 -143
  888. package/dist/mcp/__tests__/codex-core.test.js.map +0 -1
  889. package/dist/mcp/__tests__/codex-integration.test.d.ts +0 -2
  890. package/dist/mcp/__tests__/codex-integration.test.d.ts.map +0 -1
  891. package/dist/mcp/__tests__/codex-integration.test.js +0 -59
  892. package/dist/mcp/__tests__/codex-integration.test.js.map +0 -1
  893. package/dist/mcp/__tests__/codex-reasoning-effort.test.d.ts +0 -2
  894. package/dist/mcp/__tests__/codex-reasoning-effort.test.d.ts.map +0 -1
  895. package/dist/mcp/__tests__/codex-reasoning-effort.test.js +0 -141
  896. package/dist/mcp/__tests__/codex-reasoning-effort.test.js.map +0 -1
  897. package/dist/mcp/__tests__/gemini-core.test.d.ts +0 -2
  898. package/dist/mcp/__tests__/gemini-core.test.d.ts.map +0 -1
  899. package/dist/mcp/__tests__/gemini-core.test.js +0 -53
  900. package/dist/mcp/__tests__/gemini-core.test.js.map +0 -1
  901. package/dist/mcp/__tests__/gemini-integration.test.d.ts +0 -2
  902. package/dist/mcp/__tests__/gemini-integration.test.d.ts.map +0 -1
  903. package/dist/mcp/__tests__/gemini-integration.test.js +0 -50
  904. package/dist/mcp/__tests__/gemini-integration.test.js.map +0 -1
  905. package/dist/mcp/__tests__/gemini-yolo-env.test.d.ts +0 -2
  906. package/dist/mcp/__tests__/gemini-yolo-env.test.d.ts.map +0 -1
  907. package/dist/mcp/__tests__/gemini-yolo-env.test.js +0 -274
  908. package/dist/mcp/__tests__/gemini-yolo-env.test.js.map +0 -1
  909. package/dist/mcp/__tests__/job-state-db-deprecation.test.d.ts +0 -2
  910. package/dist/mcp/__tests__/job-state-db-deprecation.test.d.ts.map +0 -1
  911. package/dist/mcp/__tests__/job-state-db-deprecation.test.js +0 -166
  912. package/dist/mcp/__tests__/job-state-db-deprecation.test.js.map +0 -1
  913. package/dist/mcp/__tests__/omc-tools-server.test.d.ts +0 -2
  914. package/dist/mcp/__tests__/omc-tools-server.test.d.ts.map +0 -1
  915. package/dist/mcp/__tests__/omc-tools-server.test.js +0 -108
  916. package/dist/mcp/__tests__/omc-tools-server.test.js.map +0 -1
  917. package/dist/mcp/__tests__/prompt-injection.test.d.ts +0 -2
  918. package/dist/mcp/__tests__/prompt-injection.test.d.ts.map +0 -1
  919. package/dist/mcp/__tests__/prompt-injection.test.js +0 -86
  920. package/dist/mcp/__tests__/prompt-injection.test.js.map +0 -1
  921. package/dist/mcp/__tests__/shared-exec.test.d.ts +0 -2
  922. package/dist/mcp/__tests__/shared-exec.test.d.ts.map +0 -1
  923. package/dist/mcp/__tests__/shared-exec.test.js +0 -151
  924. package/dist/mcp/__tests__/shared-exec.test.js.map +0 -1
  925. package/dist/notifications/__tests__/config-merge.test.d.ts +0 -2
  926. package/dist/notifications/__tests__/config-merge.test.d.ts.map +0 -1
  927. package/dist/notifications/__tests__/config-merge.test.js +0 -242
  928. package/dist/notifications/__tests__/config-merge.test.js.map +0 -1
  929. package/dist/notifications/__tests__/config.test.d.ts +0 -2
  930. package/dist/notifications/__tests__/config.test.d.ts.map +0 -1
  931. package/dist/notifications/__tests__/config.test.js +0 -227
  932. package/dist/notifications/__tests__/config.test.js.map +0 -1
  933. package/dist/notifications/__tests__/dispatcher.test.d.ts +0 -2
  934. package/dist/notifications/__tests__/dispatcher.test.d.ts.map +0 -1
  935. package/dist/notifications/__tests__/dispatcher.test.js +0 -898
  936. package/dist/notifications/__tests__/dispatcher.test.js.map +0 -1
  937. package/dist/notifications/__tests__/formatter.test.d.ts +0 -2
  938. package/dist/notifications/__tests__/formatter.test.d.ts.map +0 -1
  939. package/dist/notifications/__tests__/formatter.test.js +0 -72
  940. package/dist/notifications/__tests__/formatter.test.js.map +0 -1
  941. package/dist/notifications/__tests__/notify-registry-integration.test.d.ts +0 -2
  942. package/dist/notifications/__tests__/notify-registry-integration.test.d.ts.map +0 -1
  943. package/dist/notifications/__tests__/notify-registry-integration.test.js +0 -349
  944. package/dist/notifications/__tests__/notify-registry-integration.test.js.map +0 -1
  945. package/dist/notifications/__tests__/profiles.test.d.ts +0 -2
  946. package/dist/notifications/__tests__/profiles.test.d.ts.map +0 -1
  947. package/dist/notifications/__tests__/profiles.test.js +0 -253
  948. package/dist/notifications/__tests__/profiles.test.js.map +0 -1
  949. package/dist/notifications/__tests__/reply-config.test.d.ts +0 -2
  950. package/dist/notifications/__tests__/reply-config.test.d.ts.map +0 -1
  951. package/dist/notifications/__tests__/reply-config.test.js +0 -213
  952. package/dist/notifications/__tests__/reply-config.test.js.map +0 -1
  953. package/dist/notifications/__tests__/reply-listener.test.d.ts +0 -2
  954. package/dist/notifications/__tests__/reply-listener.test.d.ts.map +0 -1
  955. package/dist/notifications/__tests__/reply-listener.test.js +0 -431
  956. package/dist/notifications/__tests__/reply-listener.test.js.map +0 -1
  957. package/dist/notifications/__tests__/session-registry.test.d.ts +0 -2
  958. package/dist/notifications/__tests__/session-registry.test.d.ts.map +0 -1
  959. package/dist/notifications/__tests__/session-registry.test.js +0 -465
  960. package/dist/notifications/__tests__/session-registry.test.js.map +0 -1
  961. package/dist/notifications/__tests__/sleepMs.test.d.ts +0 -10
  962. package/dist/notifications/__tests__/sleepMs.test.d.ts.map +0 -1
  963. package/dist/notifications/__tests__/sleepMs.test.js +0 -117
  964. package/dist/notifications/__tests__/sleepMs.test.js.map +0 -1
  965. package/dist/notifications/__tests__/tmux.test.d.ts +0 -2
  966. package/dist/notifications/__tests__/tmux.test.d.ts.map +0 -1
  967. package/dist/notifications/__tests__/tmux.test.js +0 -137
  968. package/dist/notifications/__tests__/tmux.test.js.map +0 -1
  969. package/dist/skills/__tests__/ax-context-init.test.d.ts +0 -2
  970. package/dist/skills/__tests__/ax-context-init.test.d.ts.map +0 -1
  971. package/dist/skills/__tests__/ax-context-init.test.js +0 -36
  972. package/dist/skills/__tests__/ax-context-init.test.js.map +0 -1
  973. package/dist/skills/__tests__/mingw-escape.test.d.ts +0 -9
  974. package/dist/skills/__tests__/mingw-escape.test.d.ts.map +0 -1
  975. package/dist/skills/__tests__/mingw-escape.test.js +0 -105
  976. package/dist/skills/__tests__/mingw-escape.test.js.map +0 -1
  977. package/dist/team/__tests__/activity-log.test.d.ts +0 -2
  978. package/dist/team/__tests__/activity-log.test.d.ts.map +0 -1
  979. package/dist/team/__tests__/activity-log.test.js +0 -141
  980. package/dist/team/__tests__/activity-log.test.js.map +0 -1
  981. package/dist/team/__tests__/audit-log.test.d.ts +0 -2
  982. package/dist/team/__tests__/audit-log.test.d.ts.map +0 -1
  983. package/dist/team/__tests__/audit-log.test.js +0 -305
  984. package/dist/team/__tests__/audit-log.test.js.map +0 -1
  985. package/dist/team/__tests__/bridge-entry.test.d.ts +0 -2
  986. package/dist/team/__tests__/bridge-entry.test.d.ts.map +0 -1
  987. package/dist/team/__tests__/bridge-entry.test.js +0 -152
  988. package/dist/team/__tests__/bridge-entry.test.js.map +0 -1
  989. package/dist/team/__tests__/bridge-integration.test.d.ts +0 -2
  990. package/dist/team/__tests__/bridge-integration.test.d.ts.map +0 -1
  991. package/dist/team/__tests__/bridge-integration.test.js +0 -328
  992. package/dist/team/__tests__/bridge-integration.test.js.map +0 -1
  993. package/dist/team/__tests__/capabilities.test.d.ts +0 -2
  994. package/dist/team/__tests__/capabilities.test.d.ts.map +0 -1
  995. package/dist/team/__tests__/capabilities.test.js +0 -97
  996. package/dist/team/__tests__/capabilities.test.js.map +0 -1
  997. package/dist/team/__tests__/deadlock-detector.test.d.ts +0 -2
  998. package/dist/team/__tests__/deadlock-detector.test.d.ts.map +0 -1
  999. package/dist/team/__tests__/deadlock-detector.test.js +0 -50
  1000. package/dist/team/__tests__/deadlock-detector.test.js.map +0 -1
  1001. package/dist/team/__tests__/dependency-graph.test.d.ts +0 -2
  1002. package/dist/team/__tests__/dependency-graph.test.d.ts.map +0 -1
  1003. package/dist/team/__tests__/dependency-graph.test.js +0 -29
  1004. package/dist/team/__tests__/dependency-graph.test.js.map +0 -1
  1005. package/dist/team/__tests__/edge-cases.test.d.ts +0 -16
  1006. package/dist/team/__tests__/edge-cases.test.d.ts.map +0 -1
  1007. package/dist/team/__tests__/edge-cases.test.js +0 -737
  1008. package/dist/team/__tests__/edge-cases.test.js.map +0 -1
  1009. package/dist/team/__tests__/fs-utils.test.d.ts +0 -2
  1010. package/dist/team/__tests__/fs-utils.test.d.ts.map +0 -1
  1011. package/dist/team/__tests__/fs-utils.test.js +0 -74
  1012. package/dist/team/__tests__/fs-utils.test.js.map +0 -1
  1013. package/dist/team/__tests__/git-worktree.test.d.ts +0 -2
  1014. package/dist/team/__tests__/git-worktree.test.d.ts.map +0 -1
  1015. package/dist/team/__tests__/git-worktree.test.js +0 -90
  1016. package/dist/team/__tests__/git-worktree.test.js.map +0 -1
  1017. package/dist/team/__tests__/heartbeat.test.d.ts +0 -2
  1018. package/dist/team/__tests__/heartbeat.test.d.ts.map +0 -1
  1019. package/dist/team/__tests__/heartbeat.test.js +0 -93
  1020. package/dist/team/__tests__/heartbeat.test.js.map +0 -1
  1021. package/dist/team/__tests__/inbox-outbox.test.d.ts +0 -2
  1022. package/dist/team/__tests__/inbox-outbox.test.d.ts.map +0 -1
  1023. package/dist/team/__tests__/inbox-outbox.test.js +0 -220
  1024. package/dist/team/__tests__/inbox-outbox.test.js.map +0 -1
  1025. package/dist/team/__tests__/mcp-team-bridge.test.d.ts +0 -2
  1026. package/dist/team/__tests__/mcp-team-bridge.test.d.ts.map +0 -1
  1027. package/dist/team/__tests__/mcp-team-bridge.test.js +0 -458
  1028. package/dist/team/__tests__/mcp-team-bridge.test.js.map +0 -1
  1029. package/dist/team/__tests__/merge-coordinator.test.d.ts +0 -2
  1030. package/dist/team/__tests__/merge-coordinator.test.d.ts.map +0 -1
  1031. package/dist/team/__tests__/merge-coordinator.test.js +0 -128
  1032. package/dist/team/__tests__/merge-coordinator.test.js.map +0 -1
  1033. package/dist/team/__tests__/message-router.test.d.ts +0 -2
  1034. package/dist/team/__tests__/message-router.test.d.ts.map +0 -1
  1035. package/dist/team/__tests__/message-router.test.js +0 -78
  1036. package/dist/team/__tests__/message-router.test.js.map +0 -1
  1037. package/dist/team/__tests__/outbox-reader.test.d.ts +0 -2
  1038. package/dist/team/__tests__/outbox-reader.test.d.ts.map +0 -1
  1039. package/dist/team/__tests__/outbox-reader.test.js +0 -134
  1040. package/dist/team/__tests__/outbox-reader.test.js.map +0 -1
  1041. package/dist/team/__tests__/permissions.test.d.ts +0 -2
  1042. package/dist/team/__tests__/permissions.test.d.ts.map +0 -1
  1043. package/dist/team/__tests__/permissions.test.js +0 -255
  1044. package/dist/team/__tests__/permissions.test.js.map +0 -1
  1045. package/dist/team/__tests__/prompt-sanitization.test.d.ts +0 -2
  1046. package/dist/team/__tests__/prompt-sanitization.test.d.ts.map +0 -1
  1047. package/dist/team/__tests__/prompt-sanitization.test.js +0 -150
  1048. package/dist/team/__tests__/prompt-sanitization.test.js.map +0 -1
  1049. package/dist/team/__tests__/summary-report.test.d.ts +0 -2
  1050. package/dist/team/__tests__/summary-report.test.d.ts.map +0 -1
  1051. package/dist/team/__tests__/summary-report.test.js +0 -196
  1052. package/dist/team/__tests__/summary-report.test.js.map +0 -1
  1053. package/dist/team/__tests__/task-file-ops.test.d.ts +0 -2
  1054. package/dist/team/__tests__/task-file-ops.test.d.ts.map +0 -1
  1055. package/dist/team/__tests__/task-file-ops.test.js +0 -392
  1056. package/dist/team/__tests__/task-file-ops.test.js.map +0 -1
  1057. package/dist/team/__tests__/task-router.test.d.ts +0 -2
  1058. package/dist/team/__tests__/task-router.test.d.ts.map +0 -1
  1059. package/dist/team/__tests__/task-router.test.js +0 -118
  1060. package/dist/team/__tests__/task-router.test.js.map +0 -1
  1061. package/dist/team/__tests__/team-registration.test.d.ts +0 -2
  1062. package/dist/team/__tests__/team-registration.test.d.ts.map +0 -1
  1063. package/dist/team/__tests__/team-registration.test.js +0 -90
  1064. package/dist/team/__tests__/team-registration.test.js.map +0 -1
  1065. package/dist/team/__tests__/team-status.test.d.ts +0 -2
  1066. package/dist/team/__tests__/team-status.test.d.ts.map +0 -1
  1067. package/dist/team/__tests__/team-status.test.js +0 -146
  1068. package/dist/team/__tests__/team-status.test.js.map +0 -1
  1069. package/dist/team/__tests__/tmux-session.test.d.ts +0 -2
  1070. package/dist/team/__tests__/tmux-session.test.d.ts.map +0 -1
  1071. package/dist/team/__tests__/tmux-session.test.js +0 -60
  1072. package/dist/team/__tests__/tmux-session.test.js.map +0 -1
  1073. package/dist/team/__tests__/unified-team.test.d.ts +0 -2
  1074. package/dist/team/__tests__/unified-team.test.d.ts.map +0 -1
  1075. package/dist/team/__tests__/unified-team.test.js +0 -77
  1076. package/dist/team/__tests__/unified-team.test.js.map +0 -1
  1077. package/dist/team/__tests__/usage-tracker.test.d.ts +0 -2
  1078. package/dist/team/__tests__/usage-tracker.test.d.ts.map +0 -1
  1079. package/dist/team/__tests__/usage-tracker.test.js +0 -106
  1080. package/dist/team/__tests__/usage-tracker.test.js.map +0 -1
  1081. package/dist/team/__tests__/worker-health.test.d.ts +0 -2
  1082. package/dist/team/__tests__/worker-health.test.d.ts.map +0 -1
  1083. package/dist/team/__tests__/worker-health.test.js +0 -129
  1084. package/dist/team/__tests__/worker-health.test.js.map +0 -1
  1085. package/dist/team/__tests__/worker-restart.test.d.ts +0 -2
  1086. package/dist/team/__tests__/worker-restart.test.d.ts.map +0 -1
  1087. package/dist/team/__tests__/worker-restart.test.js +0 -122
  1088. package/dist/team/__tests__/worker-restart.test.js.map +0 -1
  1089. package/dist/tools/__tests__/ast-tools.test.d.ts +0 -2
  1090. package/dist/tools/__tests__/ast-tools.test.d.ts.map +0 -1
  1091. package/dist/tools/__tests__/ast-tools.test.js +0 -178
  1092. package/dist/tools/__tests__/ast-tools.test.js.map +0 -1
  1093. package/dist/tools/__tests__/lsp-tools.test.d.ts +0 -2
  1094. package/dist/tools/__tests__/lsp-tools.test.d.ts.map +0 -1
  1095. package/dist/tools/__tests__/lsp-tools.test.js +0 -252
  1096. package/dist/tools/__tests__/lsp-tools.test.js.map +0 -1
  1097. package/dist/tools/__tests__/schema-conversion.test.d.ts +0 -11
  1098. package/dist/tools/__tests__/schema-conversion.test.d.ts.map +0 -1
  1099. package/dist/tools/__tests__/schema-conversion.test.js +0 -270
  1100. package/dist/tools/__tests__/schema-conversion.test.js.map +0 -1
  1101. package/dist/tools/__tests__/state-tools.test.d.ts +0 -2
  1102. package/dist/tools/__tests__/state-tools.test.d.ts.map +0 -1
  1103. package/dist/tools/__tests__/state-tools.test.js +0 -444
  1104. package/dist/tools/__tests__/state-tools.test.js.map +0 -1
  1105. package/dist/tools/diagnostics/__tests__/index.test.d.ts +0 -2
  1106. package/dist/tools/diagnostics/__tests__/index.test.d.ts.map +0 -1
  1107. package/dist/tools/diagnostics/__tests__/index.test.js +0 -111
  1108. package/dist/tools/diagnostics/__tests__/index.test.js.map +0 -1
  1109. package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.d.ts +0 -2
  1110. package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.d.ts.map +0 -1
  1111. package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.js +0 -120
  1112. package/dist/tools/diagnostics/__tests__/lsp-aggregator.test.js.map +0 -1
  1113. package/dist/tools/diagnostics/__tests__/tsc-runner.test.d.ts +0 -2
  1114. package/dist/tools/diagnostics/__tests__/tsc-runner.test.d.ts.map +0 -1
  1115. package/dist/tools/diagnostics/__tests__/tsc-runner.test.js +0 -86
  1116. package/dist/tools/diagnostics/__tests__/tsc-runner.test.js.map +0 -1
  1117. package/dist/tools/lsp/__tests__/client-eviction.test.d.ts +0 -2
  1118. package/dist/tools/lsp/__tests__/client-eviction.test.d.ts.map +0 -1
  1119. package/dist/tools/lsp/__tests__/client-eviction.test.js +0 -343
  1120. package/dist/tools/lsp/__tests__/client-eviction.test.js.map +0 -1
  1121. package/dist/tools/lsp/__tests__/client-timer-buffer.test.d.ts +0 -11
  1122. package/dist/tools/lsp/__tests__/client-timer-buffer.test.d.ts.map +0 -1
  1123. package/dist/tools/lsp/__tests__/client-timer-buffer.test.js +0 -222
  1124. package/dist/tools/lsp/__tests__/client-timer-buffer.test.js.map +0 -1
  1125. package/dist/tools/lsp/__tests__/client-win32-spawn.test.d.ts +0 -2
  1126. package/dist/tools/lsp/__tests__/client-win32-spawn.test.d.ts.map +0 -1
  1127. package/dist/tools/lsp/__tests__/client-win32-spawn.test.js +0 -84
  1128. package/dist/tools/lsp/__tests__/client-win32-spawn.test.js.map +0 -1
  1129. package/dist/tools/lsp/__tests__/command-exists.test.d.ts +0 -2
  1130. package/dist/tools/lsp/__tests__/command-exists.test.d.ts.map +0 -1
  1131. package/dist/tools/lsp/__tests__/command-exists.test.js +0 -104
  1132. package/dist/tools/lsp/__tests__/command-exists.test.js.map +0 -1
  1133. package/dist/tools/lsp/__tests__/utils.test.d.ts +0 -2
  1134. package/dist/tools/lsp/__tests__/utils.test.d.ts.map +0 -1
  1135. package/dist/tools/lsp/__tests__/utils.test.js +0 -338
  1136. package/dist/tools/lsp/__tests__/utils.test.js.map +0 -1
  1137. package/dist/tools/python-repl/__tests__/bridge-manager-cleanup.test.d.ts +0 -2
  1138. package/dist/tools/python-repl/__tests__/bridge-manager-cleanup.test.d.ts.map +0 -1
  1139. package/dist/tools/python-repl/__tests__/bridge-manager-cleanup.test.js +0 -76
  1140. package/dist/tools/python-repl/__tests__/bridge-manager-cleanup.test.js.map +0 -1
  1141. package/dist/tools/python-repl/__tests__/bridge-manager.test.d.ts +0 -2
  1142. package/dist/tools/python-repl/__tests__/bridge-manager.test.d.ts.map +0 -1
  1143. package/dist/tools/python-repl/__tests__/bridge-manager.test.js +0 -338
  1144. package/dist/tools/python-repl/__tests__/bridge-manager.test.js.map +0 -1
  1145. package/dist/tools/python-repl/__tests__/socket-client.test.d.ts +0 -2
  1146. package/dist/tools/python-repl/__tests__/socket-client.test.d.ts.map +0 -1
  1147. package/dist/tools/python-repl/__tests__/socket-client.test.js +0 -155
  1148. package/dist/tools/python-repl/__tests__/socket-client.test.js.map +0 -1
  1149. package/dist/utils/__tests__/paths.test.d.ts +0 -2
  1150. package/dist/utils/__tests__/paths.test.d.ts.map +0 -1
  1151. package/dist/utils/__tests__/paths.test.js +0 -88
  1152. package/dist/utils/__tests__/paths.test.js.map +0 -1
  1153. package/dist/utils/__tests__/string-width.test.d.ts +0 -6
  1154. package/dist/utils/__tests__/string-width.test.d.ts.map +0 -1
  1155. package/dist/utils/__tests__/string-width.test.js +0 -173
  1156. package/dist/utils/__tests__/string-width.test.js.map +0 -1
  1157. package/dist/verification/tier-selector.test.d.ts +0 -2
  1158. package/dist/verification/tier-selector.test.d.ts.map +0 -1
  1159. package/dist/verification/tier-selector.test.js +0 -282
  1160. package/dist/verification/tier-selector.test.js.map +0 -1
@@ -1,898 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
2
- // Mock https.request for Telegram tests
3
- vi.mock("https", () => {
4
- const EventEmitter = require("events");
5
- return {
6
- request: vi.fn((_opts, callback) => {
7
- const req = new EventEmitter();
8
- req.write = vi.fn();
9
- req.end = vi.fn(() => {
10
- // Simulate successful response by default
11
- const res = new EventEmitter();
12
- res.statusCode = 200;
13
- res.resume = vi.fn();
14
- callback(res);
15
- // Emit response data with message_id
16
- setImmediate(() => {
17
- const responseBody = JSON.stringify({
18
- ok: true,
19
- result: { message_id: 12345 },
20
- });
21
- res.emit("data", Buffer.from(responseBody));
22
- res.emit("end");
23
- });
24
- });
25
- req.destroy = vi.fn();
26
- return req;
27
- }),
28
- };
29
- });
30
- import { sendDiscord, sendDiscordBot, sendTelegram, sendSlack, sendWebhook, dispatchNotifications, } from "../dispatcher.js";
31
- describe("timeout constants invariant", () => {
32
- it("DISPATCH_TIMEOUT_MS >= SEND_TIMEOUT_MS in source", async () => {
33
- const fs = await import("fs");
34
- const path = await import("path");
35
- const direct = path.join(import.meta.dirname, "..", "dispatcher.ts");
36
- const srcPath = direct.replace(/[\\/]dist[\\/]/, '/src/');
37
- const source = fs.readFileSync(fs.existsSync(direct) ? direct : srcPath, "utf-8");
38
- const sendMatch = source.match(/SEND_TIMEOUT_MS\s*=\s*([\d_]+)/);
39
- const dispatchMatch = source.match(/DISPATCH_TIMEOUT_MS\s*=\s*([\d_]+)/);
40
- expect(sendMatch).not.toBeNull();
41
- expect(dispatchMatch).not.toBeNull();
42
- const sendTimeout = Number(sendMatch[1].replace(/_/g, ""));
43
- const dispatchTimeout = Number(dispatchMatch[1].replace(/_/g, ""));
44
- expect(dispatchTimeout).toBeGreaterThanOrEqual(sendTimeout);
45
- });
46
- });
47
- const basePayload = {
48
- event: "session-end",
49
- sessionId: "test-session-123",
50
- message: "Test notification message",
51
- timestamp: new Date().toISOString(),
52
- };
53
- describe("sendDiscord", () => {
54
- beforeEach(() => {
55
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({ ok: true, status: 200 }));
56
- });
57
- afterEach(() => {
58
- vi.restoreAllMocks();
59
- });
60
- it("returns not configured when disabled", async () => {
61
- const config = {
62
- enabled: false,
63
- webhookUrl: "https://discord.com/api/webhooks/test",
64
- };
65
- const result = await sendDiscord(config, basePayload);
66
- expect(result).toEqual({
67
- platform: "discord",
68
- success: false,
69
- error: "Not configured",
70
- });
71
- });
72
- it("returns not configured when webhookUrl is empty", async () => {
73
- const config = {
74
- enabled: true,
75
- webhookUrl: "",
76
- };
77
- const result = await sendDiscord(config, basePayload);
78
- expect(result).toEqual({
79
- platform: "discord",
80
- success: false,
81
- error: "Not configured",
82
- });
83
- });
84
- it("rejects non-discord webhook URL", async () => {
85
- const config = {
86
- enabled: true,
87
- webhookUrl: "https://evil.com/webhook",
88
- };
89
- const result = await sendDiscord(config, basePayload);
90
- expect(result).toEqual({
91
- platform: "discord",
92
- success: false,
93
- error: "Invalid webhook URL",
94
- });
95
- });
96
- it("rejects HTTP (non-HTTPS) webhook URL", async () => {
97
- const config = {
98
- enabled: true,
99
- webhookUrl: "http://discord.com/api/webhooks/test",
100
- };
101
- const result = await sendDiscord(config, basePayload);
102
- expect(result).toEqual({
103
- platform: "discord",
104
- success: false,
105
- error: "Invalid webhook URL",
106
- });
107
- });
108
- it("sends successfully with valid config", async () => {
109
- const config = {
110
- enabled: true,
111
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
112
- };
113
- const result = await sendDiscord(config, basePayload);
114
- expect(result).toEqual({ platform: "discord", success: true });
115
- expect(fetch).toHaveBeenCalledOnce();
116
- });
117
- it("includes allowed_mentions with empty parse array in payload", async () => {
118
- const config = {
119
- enabled: true,
120
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
121
- };
122
- await sendDiscord(config, basePayload);
123
- const call = vi.mocked(fetch).mock.calls[0];
124
- const body = JSON.parse(call[1].body);
125
- expect(body.allowed_mentions).toBeDefined();
126
- expect(body.allowed_mentions.parse).toEqual([]);
127
- });
128
- it("includes user in allowed_mentions when mention is a user", async () => {
129
- const config = {
130
- enabled: true,
131
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
132
- mention: "<@12345678901234567>",
133
- };
134
- await sendDiscord(config, basePayload);
135
- const call = vi.mocked(fetch).mock.calls[0];
136
- const body = JSON.parse(call[1].body);
137
- expect(body.allowed_mentions.users).toEqual(["12345678901234567"]);
138
- expect(body.content).toContain("<@12345678901234567>");
139
- });
140
- it("includes role in allowed_mentions when mention is a role", async () => {
141
- const config = {
142
- enabled: true,
143
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
144
- mention: "<@&12345678901234567>",
145
- };
146
- await sendDiscord(config, basePayload);
147
- const call = vi.mocked(fetch).mock.calls[0];
148
- const body = JSON.parse(call[1].body);
149
- expect(body.allowed_mentions.roles).toEqual(["12345678901234567"]);
150
- });
151
- it("truncates message to 2000 chars when no mention", async () => {
152
- const longMessage = "A".repeat(2500);
153
- const config = {
154
- enabled: true,
155
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
156
- };
157
- await sendDiscord(config, { ...basePayload, message: longMessage });
158
- const call = vi.mocked(fetch).mock.calls[0];
159
- const body = JSON.parse(call[1].body);
160
- expect(body.content.length).toBeLessThanOrEqual(2000);
161
- expect(body.content.endsWith("\u2026")).toBe(true);
162
- });
163
- it("truncates message body to fit mention + content within 2000 chars", async () => {
164
- const mention = "<@12345678901234567>";
165
- const longMessage = "B".repeat(2500);
166
- const config = {
167
- enabled: true,
168
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
169
- mention,
170
- };
171
- await sendDiscord(config, { ...basePayload, message: longMessage });
172
- const call = vi.mocked(fetch).mock.calls[0];
173
- const body = JSON.parse(call[1].body);
174
- expect(body.content.length).toBeLessThanOrEqual(2000);
175
- expect(body.content.startsWith(mention)).toBe(true);
176
- });
177
- it("includes username when configured", async () => {
178
- const config = {
179
- enabled: true,
180
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
181
- username: "OMC Bot",
182
- };
183
- await sendDiscord(config, basePayload);
184
- const call = vi.mocked(fetch).mock.calls[0];
185
- const body = JSON.parse(call[1].body);
186
- expect(body.username).toBe("OMC Bot");
187
- });
188
- it("returns error on HTTP failure", async () => {
189
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({ ok: false, status: 403 }));
190
- const config = {
191
- enabled: true,
192
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
193
- };
194
- const result = await sendDiscord(config, basePayload);
195
- expect(result).toEqual({
196
- platform: "discord",
197
- success: false,
198
- error: "HTTP 403",
199
- });
200
- });
201
- it("returns error on fetch exception", async () => {
202
- vi.stubGlobal("fetch", vi.fn().mockRejectedValue(new Error("Network failure")));
203
- const config = {
204
- enabled: true,
205
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
206
- };
207
- const result = await sendDiscord(config, basePayload);
208
- expect(result).toEqual({
209
- platform: "discord",
210
- success: false,
211
- error: "Network failure",
212
- });
213
- });
214
- });
215
- describe("sendDiscordBot", () => {
216
- beforeEach(() => {
217
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({
218
- ok: true,
219
- status: 200,
220
- json: async () => ({ id: "1234567890" }),
221
- }));
222
- });
223
- afterEach(() => {
224
- vi.restoreAllMocks();
225
- });
226
- it("returns not enabled when disabled", async () => {
227
- const config = {
228
- enabled: false,
229
- botToken: "token",
230
- channelId: "123",
231
- };
232
- const result = await sendDiscordBot(config, basePayload);
233
- expect(result.success).toBe(false);
234
- expect(result.error).toBe("Not enabled");
235
- });
236
- it("returns error when botToken is missing", async () => {
237
- const config = {
238
- enabled: true,
239
- channelId: "123",
240
- };
241
- const result = await sendDiscordBot(config, basePayload);
242
- expect(result.success).toBe(false);
243
- expect(result.error).toBe("Missing botToken or channelId");
244
- });
245
- it("returns error when channelId is missing", async () => {
246
- const config = {
247
- enabled: true,
248
- botToken: "token",
249
- };
250
- const result = await sendDiscordBot(config, basePayload);
251
- expect(result.success).toBe(false);
252
- expect(result.error).toBe("Missing botToken or channelId");
253
- });
254
- it("sends successfully with valid config", async () => {
255
- const config = {
256
- enabled: true,
257
- botToken: "test-bot-token",
258
- channelId: "999888777",
259
- };
260
- const result = await sendDiscordBot(config, basePayload);
261
- expect(result).toEqual({
262
- platform: "discord-bot",
263
- success: true,
264
- messageId: "1234567890",
265
- });
266
- expect(fetch).toHaveBeenCalledOnce();
267
- const call = vi.mocked(fetch).mock.calls[0];
268
- expect(call[0]).toBe("https://discord.com/api/v10/channels/999888777/messages");
269
- expect(call[1].headers.Authorization).toBe("Bot test-bot-token");
270
- });
271
- it("includes allowed_mentions in bot API payload", async () => {
272
- const config = {
273
- enabled: true,
274
- botToken: "test-bot-token",
275
- channelId: "999888777",
276
- mention: "<@12345678901234567>",
277
- };
278
- await sendDiscordBot(config, basePayload);
279
- const call = vi.mocked(fetch).mock.calls[0];
280
- const body = JSON.parse(call[1].body);
281
- expect(body.allowed_mentions).toBeDefined();
282
- expect(body.allowed_mentions.parse).toEqual([]);
283
- expect(body.allowed_mentions.users).toEqual(["12345678901234567"]);
284
- });
285
- it("returns success with messageId when response JSON is valid", async () => {
286
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({
287
- ok: true,
288
- status: 200,
289
- json: async () => ({ id: "9876543210" }),
290
- }));
291
- const config = {
292
- enabled: true,
293
- botToken: "test-bot-token",
294
- channelId: "999888777",
295
- };
296
- const result = await sendDiscordBot(config, basePayload);
297
- expect(result.success).toBe(true);
298
- expect(result.messageId).toBe("9876543210");
299
- });
300
- it("returns success without messageId when response JSON parse fails", async () => {
301
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({
302
- ok: true,
303
- status: 200,
304
- json: async () => {
305
- throw new Error("Invalid JSON");
306
- },
307
- }));
308
- const config = {
309
- enabled: true,
310
- botToken: "test-bot-token",
311
- channelId: "999888777",
312
- };
313
- const result = await sendDiscordBot(config, basePayload);
314
- expect(result.success).toBe(true);
315
- expect(result.messageId).toBeUndefined();
316
- });
317
- });
318
- describe("sendTelegram", () => {
319
- afterEach(() => {
320
- vi.restoreAllMocks();
321
- });
322
- it("returns not configured when disabled", async () => {
323
- const config = {
324
- enabled: false,
325
- botToken: "123:abc",
326
- chatId: "999",
327
- };
328
- const result = await sendTelegram(config, basePayload);
329
- expect(result.success).toBe(false);
330
- expect(result.error).toBe("Not configured");
331
- });
332
- it("returns not configured when botToken is empty", async () => {
333
- const config = {
334
- enabled: true,
335
- botToken: "",
336
- chatId: "999",
337
- };
338
- const result = await sendTelegram(config, basePayload);
339
- expect(result.success).toBe(false);
340
- });
341
- it("rejects invalid bot token format", async () => {
342
- const config = {
343
- enabled: true,
344
- botToken: "invalid-token",
345
- chatId: "999",
346
- };
347
- const result = await sendTelegram(config, basePayload);
348
- expect(result).toEqual({
349
- platform: "telegram",
350
- success: false,
351
- error: "Invalid bot token format",
352
- });
353
- });
354
- it("sends successfully with valid config", async () => {
355
- const config = {
356
- enabled: true,
357
- botToken: "123456:ABCdef",
358
- chatId: "999",
359
- };
360
- const result = await sendTelegram(config, basePayload);
361
- expect(result).toEqual({
362
- platform: "telegram",
363
- success: true,
364
- messageId: "12345",
365
- });
366
- });
367
- it("uses httpsRequest with family:4 for IPv4", async () => {
368
- const { request } = await import("https");
369
- const config = {
370
- enabled: true,
371
- botToken: "123456:ABCdef",
372
- chatId: "999",
373
- };
374
- await sendTelegram(config, basePayload);
375
- expect(request).toHaveBeenCalled();
376
- const callArgs = vi.mocked(request).mock.calls[0][0];
377
- expect(callArgs).toHaveProperty("family", 4);
378
- });
379
- it("handles response parse failure gracefully", async () => {
380
- const { request } = await import("https");
381
- const EventEmitter = require("events");
382
- // Mock request to return invalid JSON
383
- vi.mocked(request).mockImplementationOnce((...args) => {
384
- const callback = args[args.length - 1];
385
- const req = new EventEmitter();
386
- req.write = vi.fn();
387
- req.end = vi.fn(() => {
388
- const res = new EventEmitter();
389
- res.statusCode = 200;
390
- callback(res);
391
- setImmediate(() => {
392
- res.emit("data", Buffer.from("invalid json"));
393
- res.emit("end");
394
- });
395
- });
396
- req.destroy = vi.fn();
397
- return req;
398
- });
399
- const config = {
400
- enabled: true,
401
- botToken: "123456:ABCdef",
402
- chatId: "999",
403
- };
404
- const result = await sendTelegram(config, basePayload);
405
- // Should still succeed, just without messageId
406
- expect(result.success).toBe(true);
407
- expect(result.messageId).toBeUndefined();
408
- });
409
- it("collects response chunks using data/end events", async () => {
410
- const { request } = await import("https");
411
- const EventEmitter = require("events");
412
- // Verify that chunk collection pattern is used (not res.resume())
413
- let dataHandlerRegistered = false;
414
- let endHandlerRegistered = false;
415
- vi.mocked(request).mockImplementationOnce((...args) => {
416
- const callback = args[args.length - 1];
417
- const req = new EventEmitter();
418
- req.write = vi.fn();
419
- req.end = vi.fn(() => {
420
- const res = new EventEmitter();
421
- res.statusCode = 200;
422
- // Override on() to detect handler registration
423
- const originalOn = res.on.bind(res);
424
- res.on = (event, handler) => {
425
- if (event === "data")
426
- dataHandlerRegistered = true;
427
- if (event === "end")
428
- endHandlerRegistered = true;
429
- return originalOn(event, handler);
430
- };
431
- callback(res);
432
- setImmediate(() => {
433
- const responseBody = JSON.stringify({
434
- ok: true,
435
- result: { message_id: 99999 },
436
- });
437
- res.emit("data", Buffer.from(responseBody));
438
- res.emit("end");
439
- });
440
- });
441
- req.destroy = vi.fn();
442
- return req;
443
- });
444
- const config = {
445
- enabled: true,
446
- botToken: "123456:ABCdef",
447
- chatId: "999",
448
- };
449
- await sendTelegram(config, basePayload);
450
- expect(dataHandlerRegistered).toBe(true);
451
- expect(endHandlerRegistered).toBe(true);
452
- });
453
- });
454
- describe("sendSlack", () => {
455
- beforeEach(() => {
456
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({ ok: true, status: 200 }));
457
- });
458
- afterEach(() => {
459
- vi.restoreAllMocks();
460
- });
461
- it("returns not configured when disabled", async () => {
462
- const config = {
463
- enabled: false,
464
- webhookUrl: "https://hooks.slack.com/services/test",
465
- };
466
- const result = await sendSlack(config, basePayload);
467
- expect(result.success).toBe(false);
468
- expect(result.error).toBe("Not configured");
469
- });
470
- it("rejects non-slack webhook URL", async () => {
471
- const config = {
472
- enabled: true,
473
- webhookUrl: "https://evil.com/webhook",
474
- };
475
- const result = await sendSlack(config, basePayload);
476
- expect(result).toEqual({
477
- platform: "slack",
478
- success: false,
479
- error: "Invalid webhook URL",
480
- });
481
- });
482
- it("sends successfully with valid config", async () => {
483
- const config = {
484
- enabled: true,
485
- webhookUrl: "https://hooks.slack.com/services/T00/B00/xxx",
486
- };
487
- const result = await sendSlack(config, basePayload);
488
- expect(result).toEqual({ platform: "slack", success: true });
489
- const call = vi.mocked(fetch).mock.calls[0];
490
- const body = JSON.parse(call[1].body);
491
- expect(body.text).toBe(basePayload.message);
492
- });
493
- it("includes channel and username when configured", async () => {
494
- const config = {
495
- enabled: true,
496
- webhookUrl: "https://hooks.slack.com/services/T00/B00/xxx",
497
- channel: "#alerts",
498
- username: "OMC",
499
- };
500
- await sendSlack(config, basePayload);
501
- const call = vi.mocked(fetch).mock.calls[0];
502
- const body = JSON.parse(call[1].body);
503
- expect(body.channel).toBe("#alerts");
504
- expect(body.username).toBe("OMC");
505
- });
506
- });
507
- describe("sendWebhook", () => {
508
- beforeEach(() => {
509
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({ ok: true, status: 200 }));
510
- });
511
- afterEach(() => {
512
- vi.restoreAllMocks();
513
- });
514
- it("returns not configured when disabled", async () => {
515
- const config = {
516
- enabled: false,
517
- url: "https://example.com/hook",
518
- };
519
- const result = await sendWebhook(config, basePayload);
520
- expect(result.success).toBe(false);
521
- });
522
- it("rejects HTTP URL (requires HTTPS)", async () => {
523
- const config = {
524
- enabled: true,
525
- url: "http://example.com/hook",
526
- };
527
- const result = await sendWebhook(config, basePayload);
528
- expect(result).toEqual({
529
- platform: "webhook",
530
- success: false,
531
- error: "Invalid URL (HTTPS required)",
532
- });
533
- });
534
- it("sends successfully with valid HTTPS URL", async () => {
535
- const config = {
536
- enabled: true,
537
- url: "https://example.com/hook",
538
- };
539
- const result = await sendWebhook(config, basePayload);
540
- expect(result).toEqual({ platform: "webhook", success: true });
541
- });
542
- it("includes custom headers", async () => {
543
- const config = {
544
- enabled: true,
545
- url: "https://example.com/hook",
546
- headers: { "X-Custom": "value" },
547
- };
548
- await sendWebhook(config, basePayload);
549
- const call = vi.mocked(fetch).mock.calls[0];
550
- expect(call[1].headers["X-Custom"]).toBe("value");
551
- });
552
- it("uses configured method", async () => {
553
- const config = {
554
- enabled: true,
555
- url: "https://example.com/hook",
556
- method: "PUT",
557
- };
558
- await sendWebhook(config, basePayload);
559
- const call = vi.mocked(fetch).mock.calls[0];
560
- expect(call[1].method).toBe("PUT");
561
- });
562
- });
563
- describe("dispatchNotifications", () => {
564
- beforeEach(() => {
565
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({ ok: true, status: 200 }));
566
- });
567
- afterEach(() => {
568
- vi.restoreAllMocks();
569
- });
570
- it("returns empty results when no platforms enabled", async () => {
571
- const config = { enabled: true };
572
- const result = await dispatchNotifications(config, "session-end", basePayload);
573
- expect(result).toEqual({
574
- event: "session-end",
575
- results: [],
576
- anySuccess: false,
577
- });
578
- });
579
- it("dispatches to single enabled platform", async () => {
580
- const config = {
581
- enabled: true,
582
- slack: {
583
- enabled: true,
584
- webhookUrl: "https://hooks.slack.com/services/T00/B00/xxx",
585
- },
586
- };
587
- const result = await dispatchNotifications(config, "session-end", basePayload);
588
- expect(result.anySuccess).toBe(true);
589
- expect(result.results).toHaveLength(1);
590
- expect(result.results[0].platform).toBe("slack");
591
- });
592
- it("dispatches to multiple enabled platforms in parallel", async () => {
593
- const config = {
594
- enabled: true,
595
- slack: {
596
- enabled: true,
597
- webhookUrl: "https://hooks.slack.com/services/T00/B00/xxx",
598
- },
599
- discord: {
600
- enabled: true,
601
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
602
- },
603
- };
604
- const result = await dispatchNotifications(config, "session-end", basePayload);
605
- expect(result.anySuccess).toBe(true);
606
- expect(result.results.length).toBeGreaterThanOrEqual(2);
607
- });
608
- it("reports anySuccess=true when at least one platform succeeds", async () => {
609
- vi.stubGlobal("fetch", vi.fn().mockImplementation((url) => {
610
- if (url.includes("slack")) {
611
- return Promise.resolve({ ok: false, status: 500 });
612
- }
613
- return Promise.resolve({ ok: true, status: 200 });
614
- }));
615
- const config = {
616
- enabled: true,
617
- slack: {
618
- enabled: true,
619
- webhookUrl: "https://hooks.slack.com/services/T00/B00/xxx",
620
- },
621
- discord: {
622
- enabled: true,
623
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
624
- },
625
- };
626
- const result = await dispatchNotifications(config, "session-end", basePayload);
627
- expect(result.anySuccess).toBe(true);
628
- });
629
- it("uses event-level platform config override", async () => {
630
- const config = {
631
- enabled: true,
632
- slack: {
633
- enabled: false,
634
- webhookUrl: "https://hooks.slack.com/services/T00/B00/xxx",
635
- },
636
- events: {
637
- "session-end": {
638
- enabled: true,
639
- slack: {
640
- enabled: true,
641
- webhookUrl: "https://hooks.slack.com/services/T00/B00/override",
642
- },
643
- },
644
- },
645
- };
646
- const result = await dispatchNotifications(config, "session-end", basePayload);
647
- expect(result.anySuccess).toBe(true);
648
- const call = vi.mocked(fetch).mock.calls[0];
649
- expect(call[0]).toBe("https://hooks.slack.com/services/T00/B00/override");
650
- });
651
- it("uses discord-bot platform config", async () => {
652
- const config = {
653
- enabled: true,
654
- "discord-bot": {
655
- enabled: true,
656
- botToken: "test-token",
657
- channelId: "123456",
658
- },
659
- };
660
- const result = await dispatchNotifications(config, "session-end", basePayload);
661
- expect(result.anySuccess).toBe(true);
662
- expect(result.results[0].platform).toBe("discord-bot");
663
- });
664
- it("completes within timeout when sends resolve quickly", async () => {
665
- const config = {
666
- enabled: true,
667
- slack: {
668
- enabled: true,
669
- webhookUrl: "https://hooks.slack.com/services/T00/B00/xxx",
670
- },
671
- };
672
- const start = Date.now();
673
- const result = await dispatchNotifications(config, "session-end", basePayload);
674
- const elapsed = Date.now() - start;
675
- expect(result.anySuccess).toBe(true);
676
- // Should complete well under the 15s dispatch timeout
677
- expect(elapsed).toBeLessThan(5000);
678
- });
679
- it("clears dispatch timer when sends complete (no leak)", async () => {
680
- const clearTimeoutSpy = vi.spyOn(globalThis, "clearTimeout");
681
- const config = {
682
- enabled: true,
683
- slack: {
684
- enabled: true,
685
- webhookUrl: "https://hooks.slack.com/services/T00/B00/xxx",
686
- },
687
- };
688
- await dispatchNotifications(config, "session-end", basePayload);
689
- // The finally block should call clearTimeout
690
- expect(clearTimeoutSpy).toHaveBeenCalled();
691
- clearTimeoutSpy.mockRestore();
692
- });
693
- });
694
- describe("sendDiscordBot mention in content", () => {
695
- beforeEach(() => {
696
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({
697
- ok: true,
698
- status: 200,
699
- json: async () => ({ id: "1234567890" }),
700
- }));
701
- });
702
- afterEach(() => {
703
- vi.restoreAllMocks();
704
- });
705
- it("prepends mention to message content", async () => {
706
- const config = {
707
- enabled: true,
708
- botToken: "test-bot-token",
709
- channelId: "999888777",
710
- mention: "<@12345678901234567>",
711
- };
712
- await sendDiscordBot(config, basePayload);
713
- const call = vi.mocked(fetch).mock.calls[0];
714
- const body = JSON.parse(call[1].body);
715
- expect(body.content).toContain("<@12345678901234567>");
716
- expect(body.content).toMatch(/^<@12345678901234567>\n/);
717
- });
718
- it("prepends role mention to message content", async () => {
719
- const config = {
720
- enabled: true,
721
- botToken: "test-bot-token",
722
- channelId: "999888777",
723
- mention: "<@&98765432109876543>",
724
- };
725
- await sendDiscordBot(config, basePayload);
726
- const call = vi.mocked(fetch).mock.calls[0];
727
- const body = JSON.parse(call[1].body);
728
- expect(body.content).toContain("<@&98765432109876543>");
729
- expect(body.allowed_mentions.roles).toEqual(["98765432109876543"]);
730
- });
731
- it("sends content without mention prefix when mention is undefined", async () => {
732
- const config = {
733
- enabled: true,
734
- botToken: "test-bot-token",
735
- channelId: "999888777",
736
- };
737
- await sendDiscordBot(config, basePayload);
738
- const call = vi.mocked(fetch).mock.calls[0];
739
- const body = JSON.parse(call[1].body);
740
- expect(body.content).toBe(basePayload.message);
741
- });
742
- it("truncates long message to fit mention within 2000 chars", async () => {
743
- const mention = "<@12345678901234567>";
744
- const longMessage = "X".repeat(2500);
745
- const config = {
746
- enabled: true,
747
- botToken: "test-bot-token",
748
- channelId: "999888777",
749
- mention,
750
- };
751
- await sendDiscordBot(config, { ...basePayload, message: longMessage });
752
- const call = vi.mocked(fetch).mock.calls[0];
753
- const body = JSON.parse(call[1].body);
754
- expect(body.content.length).toBeLessThanOrEqual(2000);
755
- expect(body.content).toMatch(/^<@12345678901234567>\n/);
756
- });
757
- });
758
- describe("getEffectivePlatformConfig event-level merge", () => {
759
- beforeEach(() => {
760
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({
761
- ok: true,
762
- status: 200,
763
- json: async () => ({ id: "1234567890" }),
764
- }));
765
- });
766
- afterEach(() => {
767
- vi.restoreAllMocks();
768
- });
769
- it("inherits mention from top-level when event-level override omits it", async () => {
770
- const config = {
771
- enabled: true,
772
- "discord-bot": {
773
- enabled: true,
774
- botToken: "test-token",
775
- channelId: "123456",
776
- mention: "<@12345678901234567>",
777
- },
778
- events: {
779
- "session-idle": {
780
- enabled: true,
781
- "discord-bot": {
782
- enabled: true,
783
- botToken: "test-token",
784
- channelId: "123456",
785
- },
786
- },
787
- },
788
- };
789
- const result = await dispatchNotifications(config, "session-idle", basePayload);
790
- expect(result.anySuccess).toBe(true);
791
- const call = vi.mocked(fetch).mock.calls[0];
792
- const body = JSON.parse(call[1].body);
793
- expect(body.content).toContain("<@12345678901234567>");
794
- });
795
- it("allows event-level to override mention", async () => {
796
- const config = {
797
- enabled: true,
798
- "discord-bot": {
799
- enabled: true,
800
- botToken: "test-token",
801
- channelId: "123456",
802
- mention: "<@11111111111111111>",
803
- },
804
- events: {
805
- "session-end": {
806
- enabled: true,
807
- "discord-bot": {
808
- enabled: true,
809
- botToken: "test-token",
810
- channelId: "123456",
811
- mention: "<@22222222222222222>",
812
- },
813
- },
814
- },
815
- };
816
- const result = await dispatchNotifications(config, "session-end", basePayload);
817
- expect(result.anySuccess).toBe(true);
818
- const call = vi.mocked(fetch).mock.calls[0];
819
- const body = JSON.parse(call[1].body);
820
- expect(body.content).toContain("<@22222222222222222>");
821
- expect(body.content).not.toContain("<@11111111111111111>");
822
- });
823
- it("inherits botToken and channelId from top-level for event override", async () => {
824
- const config = {
825
- enabled: true,
826
- "discord-bot": {
827
- enabled: false,
828
- botToken: "inherited-token",
829
- channelId: "inherited-channel",
830
- mention: "<@12345678901234567>",
831
- },
832
- events: {
833
- "session-end": {
834
- enabled: true,
835
- "discord-bot": {
836
- enabled: true,
837
- },
838
- },
839
- },
840
- };
841
- const result = await dispatchNotifications(config, "session-end", basePayload);
842
- expect(result.anySuccess).toBe(true);
843
- const call = vi.mocked(fetch).mock.calls[0];
844
- expect(call[0]).toBe("https://discord.com/api/v10/channels/inherited-channel/messages");
845
- const body = JSON.parse(call[1].body);
846
- expect(body.content).toContain("<@12345678901234567>");
847
- });
848
- });
849
- describe("dispatcher mention separation", () => {
850
- it("dispatcher does not read process.env for mention resolution", async () => {
851
- // Read the dispatcher source to verify no process.env usage for mentions
852
- const fs = await import("fs");
853
- const path = await import("path");
854
- const direct = path.join(import.meta.dirname, "..", "dispatcher.ts");
855
- const srcPath = direct.replace(/[\\/]dist[\\/]/, '/src/');
856
- const dispatcherSource = fs.readFileSync(fs.existsSync(direct) ? direct : srcPath, "utf-8");
857
- // Dispatcher should not reference process.env at all - mention resolution is in config layer
858
- expect(dispatcherSource).not.toContain("process.env");
859
- });
860
- it("sendDiscordBot uses config.mention directly without env lookup", async () => {
861
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({ ok: true, status: 200 }));
862
- // Set env var that should NOT be read by dispatcher
863
- vi.stubEnv("OMC_DISCORD_MENTION", "<@99999999999999999>");
864
- const config = {
865
- enabled: true,
866
- botToken: "test-token",
867
- channelId: "123",
868
- mention: "<@11111111111111111>",
869
- };
870
- await sendDiscordBot(config, basePayload);
871
- const call = vi.mocked(fetch).mock.calls[0];
872
- const body = JSON.parse(call[1].body);
873
- // Should use config.mention, not env var
874
- expect(body.content).toContain("<@11111111111111111>");
875
- expect(body.content).not.toContain("<@99999999999999999>");
876
- expect(body.allowed_mentions.users).toEqual(["11111111111111111"]);
877
- vi.unstubAllEnvs();
878
- vi.restoreAllMocks();
879
- });
880
- it("sendDiscord uses config.mention directly without env lookup", async () => {
881
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({ ok: true, status: 200 }));
882
- vi.stubEnv("OMC_DISCORD_MENTION", "<@99999999999999999>");
883
- const config = {
884
- enabled: true,
885
- webhookUrl: "https://discord.com/api/webhooks/123/abc",
886
- mention: "<@&22222222222222222>",
887
- };
888
- await sendDiscord(config, basePayload);
889
- const call = vi.mocked(fetch).mock.calls[0];
890
- const body = JSON.parse(call[1].body);
891
- expect(body.content).toContain("<@&22222222222222222>");
892
- expect(body.content).not.toContain("<@99999999999999999>");
893
- expect(body.allowed_mentions.roles).toEqual(["22222222222222222"]);
894
- vi.unstubAllEnvs();
895
- vi.restoreAllMocks();
896
- });
897
- });
898
- //# sourceMappingURL=dispatcher.test.js.map