oh-my-codex 0.7.6 → 0.8.1

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 (376) hide show
  1. package/README.de.md +315 -0
  2. package/README.es.md +296 -17
  3. package/README.fr.md +315 -0
  4. package/README.it.md +315 -0
  5. package/README.ja.md +297 -18
  6. package/README.ko.md +296 -17
  7. package/README.md +110 -13
  8. package/README.pt.md +296 -17
  9. package/README.ru.md +296 -17
  10. package/README.tr.md +315 -0
  11. package/README.vi.md +297 -18
  12. package/README.zh-TW.md +362 -0
  13. package/README.zh.md +293 -17
  14. package/dist/catalog/__tests__/generator.test.js +2 -0
  15. package/dist/catalog/__tests__/generator.test.js.map +1 -1
  16. package/dist/catalog/__tests__/schema.test.js +7 -0
  17. package/dist/catalog/__tests__/schema.test.js.map +1 -1
  18. package/dist/cli/__tests__/ask.test.d.ts +2 -0
  19. package/dist/cli/__tests__/ask.test.d.ts.map +1 -0
  20. package/dist/cli/__tests__/ask.test.js +236 -0
  21. package/dist/cli/__tests__/ask.test.js.map +1 -0
  22. package/dist/cli/__tests__/doctor-warning-copy.test.d.ts +2 -0
  23. package/dist/cli/__tests__/doctor-warning-copy.test.d.ts.map +1 -0
  24. package/dist/cli/__tests__/doctor-warning-copy.test.js +45 -0
  25. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -0
  26. package/dist/cli/__tests__/index.test.js +85 -2
  27. package/dist/cli/__tests__/index.test.js.map +1 -1
  28. package/dist/cli/__tests__/ralph-prd-deep-interview.test.d.ts +2 -0
  29. package/dist/cli/__tests__/ralph-prd-deep-interview.test.d.ts.map +1 -0
  30. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js +15 -0
  31. package/dist/cli/__tests__/ralph-prd-deep-interview.test.js.map +1 -0
  32. package/dist/cli/__tests__/ralph.test.js +19 -43
  33. package/dist/cli/__tests__/ralph.test.js.map +1 -1
  34. package/dist/cli/__tests__/setup-scope.test.js +2 -0
  35. package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
  36. package/dist/cli/__tests__/team.test.js +219 -1
  37. package/dist/cli/__tests__/team.test.js.map +1 -1
  38. package/dist/cli/__tests__/version.test.d.ts +2 -0
  39. package/dist/cli/__tests__/version.test.d.ts.map +1 -0
  40. package/dist/cli/__tests__/version.test.js +21 -0
  41. package/dist/cli/__tests__/version.test.js.map +1 -0
  42. package/dist/cli/ask.d.ts +13 -0
  43. package/dist/cli/ask.d.ts.map +1 -0
  44. package/dist/cli/ask.js +174 -0
  45. package/dist/cli/ask.js.map +1 -0
  46. package/dist/cli/constants.d.ts +10 -0
  47. package/dist/cli/constants.d.ts.map +1 -0
  48. package/dist/cli/constants.js +10 -0
  49. package/dist/cli/constants.js.map +1 -0
  50. package/dist/cli/doctor.js +16 -5
  51. package/dist/cli/doctor.js.map +1 -1
  52. package/dist/cli/index.d.ts +8 -2
  53. package/dist/cli/index.d.ts.map +1 -1
  54. package/dist/cli/index.js +150 -52
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/cli/ralph.d.ts +3 -11
  57. package/dist/cli/ralph.d.ts.map +1 -1
  58. package/dist/cli/ralph.js +64 -45
  59. package/dist/cli/ralph.js.map +1 -1
  60. package/dist/cli/setup.d.ts.map +1 -1
  61. package/dist/cli/setup.js +17 -18
  62. package/dist/cli/setup.js.map +1 -1
  63. package/dist/cli/team.d.ts.map +1 -1
  64. package/dist/cli/team.js +257 -0
  65. package/dist/cli/team.js.map +1 -1
  66. package/dist/hooks/__tests__/deep-interview-contract.test.d.ts +2 -0
  67. package/dist/hooks/__tests__/deep-interview-contract.test.d.ts.map +1 -0
  68. package/dist/hooks/__tests__/deep-interview-contract.test.js +55 -0
  69. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -0
  70. package/dist/hooks/__tests__/emulator.test.js +6 -0
  71. package/dist/hooks/__tests__/emulator.test.js.map +1 -1
  72. package/dist/hooks/__tests__/keyword-detector.test.js +44 -22
  73. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  74. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +23 -7
  75. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
  76. package/dist/hooks/__tests__/notify-hook-session-scope.test.js +59 -0
  77. package/dist/hooks/__tests__/notify-hook-session-scope.test.js.map +1 -1
  78. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +264 -1
  79. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
  80. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +61 -1
  81. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  82. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +17 -7
  83. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
  84. package/dist/hooks/__tests__/openclaw-setup-contract.test.d.ts +2 -0
  85. package/dist/hooks/__tests__/openclaw-setup-contract.test.d.ts.map +1 -0
  86. package/dist/hooks/__tests__/openclaw-setup-contract.test.js +61 -0
  87. package/dist/hooks/__tests__/openclaw-setup-contract.test.js.map +1 -0
  88. package/dist/hooks/__tests__/pre-context-gate-skills.test.d.ts +2 -0
  89. package/dist/hooks/__tests__/pre-context-gate-skills.test.d.ts.map +1 -0
  90. package/dist/hooks/__tests__/pre-context-gate-skills.test.js +34 -0
  91. package/dist/hooks/__tests__/pre-context-gate-skills.test.js.map +1 -0
  92. package/dist/hooks/__tests__/visual-verdict-loop.test.d.ts +2 -0
  93. package/dist/hooks/__tests__/visual-verdict-loop.test.d.ts.map +1 -0
  94. package/dist/hooks/__tests__/visual-verdict-loop.test.js +35 -0
  95. package/dist/hooks/__tests__/visual-verdict-loop.test.js.map +1 -0
  96. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  97. package/dist/hooks/agents-overlay.js +18 -16
  98. package/dist/hooks/agents-overlay.js.map +1 -1
  99. package/dist/hooks/codebase-map.d.ts.map +1 -1
  100. package/dist/hooks/codebase-map.js +6 -2
  101. package/dist/hooks/codebase-map.js.map +1 -1
  102. package/dist/hooks/emulator.d.ts.map +1 -1
  103. package/dist/hooks/emulator.js +2 -0
  104. package/dist/hooks/emulator.js.map +1 -1
  105. package/dist/hooks/extensibility/sdk.d.ts.map +1 -1
  106. package/dist/hooks/extensibility/sdk.js +2 -1
  107. package/dist/hooks/extensibility/sdk.js.map +1 -1
  108. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  109. package/dist/hooks/keyword-registry.js +6 -0
  110. package/dist/hooks/keyword-registry.js.map +1 -1
  111. package/dist/hud/index.d.ts.map +1 -1
  112. package/dist/hud/index.js +2 -24
  113. package/dist/hud/index.js.map +1 -1
  114. package/dist/mcp/__tests__/path-traversal.test.js +9 -227
  115. package/dist/mcp/__tests__/path-traversal.test.js.map +1 -1
  116. package/dist/mcp/__tests__/state-server-schema.test.js +16 -20
  117. package/dist/mcp/__tests__/state-server-schema.test.js.map +1 -1
  118. package/dist/mcp/__tests__/state-server-team-tools.test.js +30 -487
  119. package/dist/mcp/__tests__/state-server-team-tools.test.js.map +1 -1
  120. package/dist/mcp/code-intel-server.d.ts.map +1 -1
  121. package/dist/mcp/code-intel-server.js +18 -8
  122. package/dist/mcp/code-intel-server.js.map +1 -1
  123. package/dist/mcp/memory-server.js +72 -11
  124. package/dist/mcp/memory-server.js.map +1 -1
  125. package/dist/mcp/state-paths.d.ts.map +1 -1
  126. package/dist/mcp/state-paths.js +4 -1
  127. package/dist/mcp/state-paths.js.map +1 -1
  128. package/dist/mcp/state-server.d.ts +179 -0
  129. package/dist/mcp/state-server.d.ts.map +1 -1
  130. package/dist/mcp/state-server.js +221 -1111
  131. package/dist/mcp/state-server.js.map +1 -1
  132. package/dist/mcp/team-server.d.ts.map +1 -1
  133. package/dist/mcp/team-server.js +9 -3
  134. package/dist/mcp/team-server.js.map +1 -1
  135. package/dist/mcp/trace-server.d.ts.map +1 -1
  136. package/dist/mcp/trace-server.js +8 -3
  137. package/dist/mcp/trace-server.js.map +1 -1
  138. package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts +5 -0
  139. package/dist/notifications/__tests__/dispatch-cooldown.test.d.ts.map +1 -0
  140. package/dist/notifications/__tests__/dispatch-cooldown.test.js +100 -0
  141. package/dist/notifications/__tests__/dispatch-cooldown.test.js.map +1 -0
  142. package/dist/notifications/__tests__/temp-mode.test.d.ts +2 -0
  143. package/dist/notifications/__tests__/temp-mode.test.d.ts.map +1 -0
  144. package/dist/notifications/__tests__/temp-mode.test.js +172 -0
  145. package/dist/notifications/__tests__/temp-mode.test.js.map +1 -0
  146. package/dist/notifications/config.d.ts.map +1 -1
  147. package/dist/notifications/config.js +67 -7
  148. package/dist/notifications/config.js.map +1 -1
  149. package/dist/notifications/dispatch-cooldown.d.ts +36 -0
  150. package/dist/notifications/dispatch-cooldown.d.ts.map +1 -0
  151. package/dist/notifications/dispatch-cooldown.js +109 -0
  152. package/dist/notifications/dispatch-cooldown.js.map +1 -0
  153. package/dist/notifications/dispatcher.d.ts.map +1 -1
  154. package/dist/notifications/dispatcher.js +4 -4
  155. package/dist/notifications/dispatcher.js.map +1 -1
  156. package/dist/notifications/index.d.ts +5 -0
  157. package/dist/notifications/index.d.ts.map +1 -1
  158. package/dist/notifications/index.js +39 -8
  159. package/dist/notifications/index.js.map +1 -1
  160. package/dist/notifications/reply-listener.d.ts.map +1 -1
  161. package/dist/notifications/reply-listener.js +6 -2
  162. package/dist/notifications/reply-listener.js.map +1 -1
  163. package/dist/notifications/session-registry.d.ts.map +1 -1
  164. package/dist/notifications/session-registry.js +2 -2
  165. package/dist/notifications/session-registry.js.map +1 -1
  166. package/dist/notifications/temp-contract.d.ts +22 -0
  167. package/dist/notifications/temp-contract.d.ts.map +1 -0
  168. package/dist/notifications/temp-contract.js +147 -0
  169. package/dist/notifications/temp-contract.js.map +1 -0
  170. package/dist/notifications/tmux.js +2 -2
  171. package/dist/notifications/tmux.js.map +1 -1
  172. package/dist/notifications/types.d.ts +18 -0
  173. package/dist/notifications/types.d.ts.map +1 -1
  174. package/dist/openclaw/__tests__/config.test.js +81 -0
  175. package/dist/openclaw/__tests__/config.test.js.map +1 -1
  176. package/dist/openclaw/__tests__/dispatcher.test.js +40 -1
  177. package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -1
  178. package/dist/openclaw/config.d.ts +4 -0
  179. package/dist/openclaw/config.d.ts.map +1 -1
  180. package/dist/openclaw/config.js +110 -16
  181. package/dist/openclaw/config.js.map +1 -1
  182. package/dist/openclaw/dispatcher.d.ts +9 -3
  183. package/dist/openclaw/dispatcher.d.ts.map +1 -1
  184. package/dist/openclaw/dispatcher.js +42 -9
  185. package/dist/openclaw/dispatcher.js.map +1 -1
  186. package/dist/openclaw/types.d.ts +5 -1
  187. package/dist/openclaw/types.d.ts.map +1 -1
  188. package/dist/ralph/__tests__/persistence.test.js +28 -1
  189. package/dist/ralph/__tests__/persistence.test.js.map +1 -1
  190. package/dist/ralph/persistence.d.ts +21 -0
  191. package/dist/ralph/persistence.d.ts.map +1 -1
  192. package/dist/ralph/persistence.js +85 -2
  193. package/dist/ralph/persistence.js.map +1 -1
  194. package/dist/state/paths.d.ts +3 -0
  195. package/dist/state/paths.d.ts.map +1 -0
  196. package/dist/state/paths.js +2 -0
  197. package/dist/state/paths.js.map +1 -0
  198. package/dist/team/__tests__/api-interop.test.d.ts +2 -0
  199. package/dist/team/__tests__/api-interop.test.d.ts.map +1 -0
  200. package/dist/team/__tests__/api-interop.test.js +1052 -0
  201. package/dist/team/__tests__/api-interop.test.js.map +1 -0
  202. package/dist/team/__tests__/idle-nudge.test.d.ts +2 -0
  203. package/dist/team/__tests__/idle-nudge.test.d.ts.map +1 -0
  204. package/dist/team/__tests__/idle-nudge.test.js +225 -0
  205. package/dist/team/__tests__/idle-nudge.test.js.map +1 -0
  206. package/dist/team/__tests__/mcp-comm.test.js +30 -0
  207. package/dist/team/__tests__/mcp-comm.test.js.map +1 -1
  208. package/dist/team/__tests__/runtime.test.js +33 -26
  209. package/dist/team/__tests__/runtime.test.js.map +1 -1
  210. package/dist/team/__tests__/state-root.test.d.ts +2 -0
  211. package/dist/team/__tests__/state-root.test.d.ts.map +1 -0
  212. package/dist/team/__tests__/state-root.test.js +9 -0
  213. package/dist/team/__tests__/state-root.test.js.map +1 -0
  214. package/dist/team/__tests__/state.test.js +52 -17
  215. package/dist/team/__tests__/state.test.js.map +1 -1
  216. package/dist/team/__tests__/team-ops-contract.test.d.ts +2 -0
  217. package/dist/team/__tests__/team-ops-contract.test.d.ts.map +1 -0
  218. package/dist/team/__tests__/team-ops-contract.test.js +90 -0
  219. package/dist/team/__tests__/team-ops-contract.test.js.map +1 -0
  220. package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts +2 -0
  221. package/dist/team/__tests__/tmux-claude-workers-demo.test.d.ts.map +1 -0
  222. package/dist/team/__tests__/tmux-claude-workers-demo.test.js +176 -0
  223. package/dist/team/__tests__/tmux-claude-workers-demo.test.js.map +1 -0
  224. package/dist/team/__tests__/tmux-session.test.js +8 -0
  225. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  226. package/dist/team/__tests__/worker-bootstrap.test.js +29 -0
  227. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  228. package/dist/team/__tests__/worktree.test.js +54 -1
  229. package/dist/team/__tests__/worktree.test.js.map +1 -1
  230. package/dist/team/api-interop.d.ts +19 -0
  231. package/dist/team/api-interop.d.ts.map +1 -0
  232. package/dist/team/api-interop.js +578 -0
  233. package/dist/team/api-interop.js.map +1 -0
  234. package/dist/team/mcp-comm.d.ts.map +1 -1
  235. package/dist/team/mcp-comm.js +32 -2
  236. package/dist/team/mcp-comm.js.map +1 -1
  237. package/dist/team/orchestrator.d.ts +1 -10
  238. package/dist/team/orchestrator.d.ts.map +1 -1
  239. package/dist/team/orchestrator.js +8 -0
  240. package/dist/team/orchestrator.js.map +1 -1
  241. package/dist/team/runtime-cli.js +14 -8
  242. package/dist/team/runtime-cli.js.map +1 -1
  243. package/dist/team/runtime.d.ts +2 -1
  244. package/dist/team/runtime.d.ts.map +1 -1
  245. package/dist/team/runtime.js +103 -30
  246. package/dist/team/runtime.js.map +1 -1
  247. package/dist/team/scaling.d.ts.map +1 -1
  248. package/dist/team/scaling.js +33 -12
  249. package/dist/team/scaling.js.map +1 -1
  250. package/dist/team/state/approvals.d.ts +25 -0
  251. package/dist/team/state/approvals.d.ts.map +1 -0
  252. package/dist/team/state/approvals.js +31 -0
  253. package/dist/team/state/approvals.js.map +1 -0
  254. package/dist/team/state/config.d.ts +2 -0
  255. package/dist/team/state/config.d.ts.map +1 -0
  256. package/dist/team/state/config.js +2 -0
  257. package/dist/team/state/config.js.map +1 -0
  258. package/dist/team/state/dispatch-lock.d.ts +3 -0
  259. package/dist/team/state/dispatch-lock.d.ts.map +1 -0
  260. package/dist/team/state/dispatch-lock.js +81 -0
  261. package/dist/team/state/dispatch-lock.js.map +1 -0
  262. package/dist/team/state/dispatch.d.ts +61 -0
  263. package/dist/team/state/dispatch.d.ts.map +1 -0
  264. package/dist/team/state/dispatch.js +158 -0
  265. package/dist/team/state/dispatch.js.map +1 -0
  266. package/dist/team/state/events.d.ts +2 -0
  267. package/dist/team/state/events.d.ts.map +1 -0
  268. package/dist/team/state/events.js +2 -0
  269. package/dist/team/state/events.js.map +1 -0
  270. package/dist/team/state/index.d.ts +11 -0
  271. package/dist/team/state/index.d.ts.map +1 -0
  272. package/dist/team/state/index.js +11 -0
  273. package/dist/team/state/index.js.map +1 -0
  274. package/dist/team/state/io.d.ts +2 -0
  275. package/dist/team/state/io.d.ts.map +1 -0
  276. package/dist/team/state/io.js +2 -0
  277. package/dist/team/state/io.js.map +1 -0
  278. package/dist/team/state/locks.d.ts +16 -0
  279. package/dist/team/state/locks.d.ts.map +1 -0
  280. package/dist/team/state/locks.js +201 -0
  281. package/dist/team/state/locks.js.map +1 -0
  282. package/dist/team/state/mailbox.d.ts +39 -0
  283. package/dist/team/state/mailbox.d.ts.map +1 -0
  284. package/dist/team/state/mailbox.js +58 -0
  285. package/dist/team/state/mailbox.js.map +1 -0
  286. package/dist/team/state/monitor.d.ts +96 -0
  287. package/dist/team/state/monitor.d.ts.map +1 -0
  288. package/dist/team/state/monitor.js +163 -0
  289. package/dist/team/state/monitor.js.map +1 -0
  290. package/dist/team/state/shutdown.d.ts +2 -0
  291. package/dist/team/state/shutdown.d.ts.map +1 -0
  292. package/dist/team/state/shutdown.js +2 -0
  293. package/dist/team/state/shutdown.js.map +1 -0
  294. package/dist/team/state/summary.d.ts +2 -0
  295. package/dist/team/state/summary.d.ts.map +1 -0
  296. package/dist/team/state/summary.js +2 -0
  297. package/dist/team/state/summary.js.map +1 -0
  298. package/dist/team/state/tasks.d.ts +49 -0
  299. package/dist/team/state/tasks.d.ts.map +1 -0
  300. package/dist/team/state/tasks.js +182 -0
  301. package/dist/team/state/tasks.js.map +1 -0
  302. package/dist/team/state/types.d.ts +281 -0
  303. package/dist/team/state/types.d.ts.map +1 -0
  304. package/dist/team/state/types.js +3 -0
  305. package/dist/team/state/types.js.map +1 -0
  306. package/dist/team/state/workers.d.ts +2 -0
  307. package/dist/team/state/workers.d.ts.map +1 -0
  308. package/dist/team/state/workers.js +2 -0
  309. package/dist/team/state/workers.js.map +1 -0
  310. package/dist/team/state-root.d.ts +5 -0
  311. package/dist/team/state-root.d.ts.map +1 -0
  312. package/dist/team/state-root.js +8 -0
  313. package/dist/team/state-root.js.map +1 -0
  314. package/dist/team/state.d.ts +4 -1
  315. package/dist/team/state.d.ts.map +1 -1
  316. package/dist/team/state.js +200 -881
  317. package/dist/team/state.js.map +1 -1
  318. package/dist/team/tmux-session.d.ts.map +1 -1
  319. package/dist/team/tmux-session.js +11 -10
  320. package/dist/team/tmux-session.js.map +1 -1
  321. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  322. package/dist/team/worker-bootstrap.js +58 -26
  323. package/dist/team/worker-bootstrap.js.map +1 -1
  324. package/dist/team/worktree.d.ts.map +1 -1
  325. package/dist/team/worktree.js +43 -1
  326. package/dist/team/worktree.js.map +1 -1
  327. package/dist/utils/safe-json.d.ts +3 -0
  328. package/dist/utils/safe-json.d.ts.map +1 -0
  329. package/dist/utils/safe-json.js +19 -0
  330. package/dist/utils/safe-json.js.map +1 -0
  331. package/dist/utils/sleep.d.ts +3 -0
  332. package/dist/utils/sleep.d.ts.map +1 -0
  333. package/dist/utils/sleep.js +15 -0
  334. package/dist/utils/sleep.js.map +1 -0
  335. package/dist/visual/__tests__/verdict.test.d.ts +2 -0
  336. package/dist/visual/__tests__/verdict.test.d.ts.map +1 -0
  337. package/dist/visual/__tests__/verdict.test.js +81 -0
  338. package/dist/visual/__tests__/verdict.test.js.map +1 -0
  339. package/dist/visual/constants.d.ts +4 -0
  340. package/dist/visual/constants.d.ts.map +1 -0
  341. package/dist/visual/constants.js +3 -0
  342. package/dist/visual/constants.js.map +1 -0
  343. package/dist/visual/verdict.d.ts +17 -0
  344. package/dist/visual/verdict.d.ts.map +1 -0
  345. package/dist/visual/verdict.js +61 -0
  346. package/dist/visual/verdict.js.map +1 -0
  347. package/package.json +10 -3
  348. package/scripts/ask-claude.sh +17 -0
  349. package/scripts/ask-gemini.sh +14 -0
  350. package/scripts/demo-claude-workers.sh +241 -0
  351. package/scripts/demo-team-e2e.sh +179 -0
  352. package/scripts/fixtures/ask-advisor-stub.js +12 -0
  353. package/scripts/notify-hook/team-dispatch.js +234 -12
  354. package/scripts/notify-hook/team-leader-nudge.js +42 -2
  355. package/scripts/notify-hook/team-worker.js +63 -4
  356. package/scripts/notify-hook/visual-verdict.js +50 -1
  357. package/scripts/notify-hook.js +1 -0
  358. package/scripts/run-provider-advisor.js +179 -0
  359. package/skills/ask-claude/SKILL.md +61 -0
  360. package/skills/ask-gemini/SKILL.md +61 -0
  361. package/skills/autopilot/SKILL.md +32 -2
  362. package/skills/configure-notifications/SKILL.md +188 -186
  363. package/skills/deep-interview/SKILL.md +247 -0
  364. package/skills/omx-setup/SKILL.md +1 -1
  365. package/skills/ralph/SKILL.md +42 -11
  366. package/skills/ralplan/SKILL.md +17 -0
  367. package/skills/team/SKILL.md +64 -5
  368. package/skills/visual-verdict/SKILL.md +76 -0
  369. package/skills/web-clone/SKILL.md +366 -0
  370. package/skills/worker/SKILL.md +42 -11
  371. package/templates/AGENTS.md +9 -0
  372. package/templates/catalog-manifest.json +39 -18
  373. package/skills/configure-discord/SKILL.md +0 -256
  374. package/skills/configure-openclaw/SKILL.md +0 -267
  375. package/skills/configure-slack/SKILL.md +0 -226
  376. package/skills/configure-telegram/SKILL.md +0 -232
@@ -1,492 +1,35 @@
1
1
  import { describe, it } from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
- import { mkdir, mkdtemp, readFile, rm } from 'fs/promises';
4
- import { join } from 'path';
5
- import { tmpdir } from 'os';
6
- import { initTeamState } from '../../team/state.js';
7
- describe('state-server team comm tools', () => {
8
- it('team_send_message + team_mailbox_list + team_mailbox_mark_delivered', async () => {
9
- process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
10
- const { handleStateToolCall } = await import('../state-server.js');
11
- const wd = await mkdtemp(join(tmpdir(), 'omx-state-team-tools-'));
12
- try {
13
- await initTeamState('alpha-team', 'msg test', 'executor', 2, wd);
14
- const sendResp = await handleStateToolCall({
15
- params: {
16
- name: 'team_send_message',
17
- arguments: {
18
- team_name: 'alpha-team',
19
- from_worker: 'worker-1',
20
- to_worker: 'leader-fixed',
21
- body: 'ack from worker-1',
22
- workingDirectory: wd,
23
- },
24
- },
25
- });
26
- const sendJson = JSON.parse(sendResp.content[0]?.text || '{}');
27
- assert.equal(sendJson.ok, true);
28
- assert.equal(typeof sendJson.message?.message_id, 'string');
29
- const listResp = await handleStateToolCall({
30
- params: {
31
- name: 'team_mailbox_list',
32
- arguments: {
33
- team_name: 'alpha-team',
34
- worker: 'leader-fixed',
35
- include_delivered: false,
36
- workingDirectory: wd,
37
- },
38
- },
39
- });
40
- const listJson = JSON.parse(listResp.content[0]?.text || '{}');
41
- assert.equal(listJson.ok, true);
42
- assert.equal(listJson.count, 1);
43
- const msgId = listJson.messages?.[0]?.message_id;
44
- assert.ok(msgId);
45
- const notifyResp = await handleStateToolCall({
46
- params: {
47
- name: 'team_mailbox_mark_notified',
48
- arguments: {
49
- team_name: 'alpha-team',
50
- worker: 'leader-fixed',
51
- message_id: msgId,
52
- workingDirectory: wd,
53
- },
54
- },
55
- });
56
- const notifyJson = JSON.parse(notifyResp.content[0]?.text || '{}');
57
- assert.equal(notifyJson.ok, true);
58
- assert.equal(notifyJson.notified, true);
59
- const markResp = await handleStateToolCall({
60
- params: {
61
- name: 'team_mailbox_mark_delivered',
62
- arguments: {
63
- team_name: 'alpha-team',
64
- worker: 'leader-fixed',
65
- message_id: msgId,
66
- workingDirectory: wd,
67
- },
68
- },
69
- });
70
- const markJson = JSON.parse(markResp.content[0]?.text || '{}');
71
- assert.equal(markJson.ok, true);
72
- assert.equal(markJson.updated, true);
73
- const listAfterResp = await handleStateToolCall({
74
- params: {
75
- name: 'team_mailbox_list',
76
- arguments: {
77
- team_name: 'alpha-team',
78
- worker: 'leader-fixed',
79
- include_delivered: false,
80
- workingDirectory: wd,
81
- },
82
- },
83
- });
84
- const listAfterJson = JSON.parse(listAfterResp.content[0]?.text || '{}');
85
- assert.equal(listAfterJson.ok, true);
86
- assert.equal(listAfterJson.count, 0);
87
- }
88
- finally {
89
- await rm(wd, { recursive: true, force: true });
90
- }
91
- });
92
- it('team_broadcast sends to all workers except sender', async () => {
93
- process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
94
- const { handleStateToolCall } = await import('../state-server.js');
95
- const wd = await mkdtemp(join(tmpdir(), 'omx-state-team-tools-'));
96
- try {
97
- await initTeamState('beta-team', 'broadcast test', 'executor', 3, wd);
98
- const resp = await handleStateToolCall({
99
- params: {
100
- name: 'team_broadcast',
101
- arguments: {
102
- team_name: 'beta-team',
103
- from_worker: 'worker-1',
104
- body: 'hello team',
105
- workingDirectory: wd,
106
- },
107
- },
108
- });
109
- const json = JSON.parse(resp.content[0]?.text || '{}');
110
- assert.equal(json.ok, true);
111
- assert.equal(json.count, 2);
112
- const w2 = await handleStateToolCall({
113
- params: {
114
- name: 'team_mailbox_list',
115
- arguments: {
116
- team_name: 'beta-team',
117
- worker: 'worker-2',
118
- workingDirectory: wd,
119
- },
120
- },
121
- });
122
- const w3 = await handleStateToolCall({
123
- params: {
124
- name: 'team_mailbox_list',
125
- arguments: {
126
- team_name: 'beta-team',
127
- worker: 'worker-3',
128
- workingDirectory: wd,
129
- },
130
- },
131
- });
132
- const w2Json = JSON.parse(w2.content[0]?.text || '{}');
133
- const w3Json = JSON.parse(w3.content[0]?.text || '{}');
134
- assert.equal(w2Json.count, 1);
135
- assert.equal(w3Json.count, 1);
136
- }
137
- finally {
138
- await rm(wd, { recursive: true, force: true });
139
- }
140
- });
141
- it('team_read_task/team_list_tasks resolve team root from nested workingDirectory', async () => {
142
- process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
143
- const { handleStateToolCall } = await import('../state-server.js');
144
- const wd = await mkdtemp(join(tmpdir(), 'omx-state-team-tools-'));
145
- const nestedWd = join(wd, 'nested', 'deep');
146
- try {
147
- await mkdir(nestedWd, { recursive: true });
148
- await initTeamState('gamma-team', 'nested cwd test', 'executor', 1, wd);
149
- const createResp = await handleStateToolCall({
150
- params: {
151
- name: 'team_create_task',
152
- arguments: {
153
- team_name: 'gamma-team',
154
- subject: 'Task from root',
155
- description: 'Created from root wd',
156
- workingDirectory: wd,
157
- },
158
- },
159
- });
160
- const createJson = JSON.parse(createResp.content[0]?.text || '{}');
161
- assert.equal(createJson.ok, true);
162
- assert.equal(createJson.task?.id, '1');
163
- const listResp = await handleStateToolCall({
164
- params: {
165
- name: 'team_list_tasks',
166
- arguments: {
167
- team_name: 'gamma-team',
168
- workingDirectory: nestedWd,
169
- },
170
- },
171
- });
172
- const listJson = JSON.parse(listResp.content[0]?.text || '{}');
173
- assert.equal(listJson.ok, true);
174
- assert.equal(listJson.count, 1);
175
- const readResp = await handleStateToolCall({
176
- params: {
177
- name: 'team_read_task',
178
- arguments: {
179
- team_name: 'gamma-team',
180
- task_id: '1',
181
- workingDirectory: nestedWd,
182
- },
183
- },
184
- });
185
- const readJson = JSON.parse(readResp.content[0]?.text || '{}');
186
- assert.equal(readJson.ok, true);
187
- assert.equal(readJson.task?.id, '1');
188
- }
189
- finally {
190
- await rm(wd, { recursive: true, force: true });
191
- }
192
- });
193
- it('team_write_worker_identity persists workspace metadata fields', async () => {
194
- process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
195
- const { handleStateToolCall } = await import('../state-server.js');
196
- const wd = await mkdtemp(join(tmpdir(), 'omx-state-team-tools-'));
197
- try {
198
- await initTeamState('identity-team', 'identity test', 'executor', 1, wd);
199
- const identityResp = await handleStateToolCall({
200
- params: {
201
- name: 'team_write_worker_identity',
202
- arguments: {
203
- team_name: 'identity-team',
204
- worker: 'worker-1',
205
- index: 1,
206
- role: 'executor',
207
- assigned_tasks: ['1'],
208
- working_dir: '/tmp/worktree/worker-1',
209
- worktree_path: '/tmp/worktree/worker-1',
210
- worktree_branch: 'feature/worker-1',
211
- worktree_detached: false,
212
- team_state_root: '/tmp/leader/.omx/state',
213
- workingDirectory: wd,
214
- },
215
- },
216
- });
217
- const identityJson = JSON.parse(identityResp.content[0]?.text || '{}');
218
- assert.equal(identityJson.ok, true);
219
- const identityPath = join(wd, '.omx', 'state', 'team', 'identity-team', 'workers', 'worker-1', 'identity.json');
220
- const persisted = JSON.parse(await readFile(identityPath, 'utf8'));
221
- assert.equal(persisted.working_dir, '/tmp/worktree/worker-1');
222
- assert.equal(persisted.worktree_path, '/tmp/worktree/worker-1');
223
- assert.equal(persisted.worktree_branch, 'feature/worker-1');
224
- assert.equal(persisted.worktree_detached, false);
225
- assert.equal(persisted.team_state_root, '/tmp/leader/.omx/state');
226
- }
227
- finally {
228
- await rm(wd, { recursive: true, force: true });
229
- }
230
- });
231
- it('team tool resolution prefers OMX_TEAM_STATE_ROOT when workingDirectory is omitted', async () => {
232
- process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
233
- const { handleStateToolCall } = await import('../state-server.js');
234
- const wd = await mkdtemp(join(tmpdir(), 'omx-state-team-tools-'));
235
- const prevRoot = process.env.OMX_TEAM_STATE_ROOT;
236
- try {
237
- await initTeamState('env-root-team', 'env root test', 'executor', 1, wd);
238
- process.env.OMX_TEAM_STATE_ROOT = join(wd, '.omx', 'state');
239
- const createResp = await handleStateToolCall({
240
- params: {
241
- name: 'team_create_task',
242
- arguments: {
243
- team_name: 'env-root-team',
244
- subject: 'Created via env root',
245
- description: 'should resolve without workingDirectory',
246
- },
247
- },
248
- });
249
- const createJson = JSON.parse(createResp.content[0]?.text || '{}');
250
- assert.equal(createJson.ok, true);
251
- assert.equal(createJson.task?.id, '1');
252
- }
253
- finally {
254
- if (typeof prevRoot === 'string')
255
- process.env.OMX_TEAM_STATE_ROOT = prevRoot;
256
- else
257
- delete process.env.OMX_TEAM_STATE_ROOT;
258
- await rm(wd, { recursive: true, force: true });
259
- }
260
- });
261
- it('team_transition_task_status rejects non-terminal transition attempts', async () => {
262
- process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
263
- const { handleStateToolCall } = await import('../state-server.js');
264
- const wd = await mkdtemp(join(tmpdir(), 'omx-state-team-tools-'));
265
- try {
266
- await initTeamState('transition-guard-team', 'transition guard test', 'executor', 1, wd);
267
- const createResp = await handleStateToolCall({
268
- params: {
269
- name: 'team_create_task',
270
- arguments: {
271
- team_name: 'transition-guard-team',
272
- subject: 'Task for transition guard',
273
- description: 'Should only allow terminal transition',
274
- workingDirectory: wd,
275
- },
276
- },
277
- });
278
- const created = JSON.parse(createResp.content[0]?.text || '{}');
279
- assert.equal(created.ok, true);
280
- const taskId = created.task?.id;
281
- assert.ok(taskId);
282
- const claimResp = await handleStateToolCall({
283
- params: {
284
- name: 'team_claim_task',
285
- arguments: {
286
- team_name: 'transition-guard-team',
287
- task_id: taskId,
288
- worker: 'worker-1',
289
- expected_version: 1,
290
- workingDirectory: wd,
291
- },
292
- },
293
- });
294
- const claim = JSON.parse(claimResp.content[0]?.text || '{}');
295
- assert.equal(claim.ok, true);
296
- assert.equal(typeof claim.claimToken, 'string');
297
- const transitionResp = await handleStateToolCall({
298
- params: {
299
- name: 'team_transition_task_status',
300
- arguments: {
301
- team_name: 'transition-guard-team',
302
- task_id: taskId,
303
- from: 'in_progress',
304
- to: 'pending',
305
- claim_token: claim.claimToken,
306
- workingDirectory: wd,
307
- },
308
- },
309
- });
310
- const transition = JSON.parse(transitionResp.content[0]?.text || '{}');
311
- assert.equal(transition.ok, false);
312
- assert.equal(transition.error, 'invalid_transition');
313
- }
314
- finally {
315
- await rm(wd, { recursive: true, force: true });
316
- }
317
- });
318
- it('team_update_task rejects unsupported fields and invalid blocked_by entries', async () => {
319
- process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
320
- const { handleStateToolCall } = await import('../state-server.js');
321
- const wd = await mkdtemp(join(tmpdir(), 'omx-state-team-tools-'));
322
- try {
323
- await initTeamState('update-guard-team', 'update guard test', 'executor', 1, wd);
324
- const createResp = await handleStateToolCall({
325
- params: {
326
- name: 'team_create_task',
327
- arguments: {
328
- team_name: 'update-guard-team',
329
- subject: 'task',
330
- description: 'task desc',
331
- workingDirectory: wd,
332
- },
333
- },
334
- });
335
- const createJson = JSON.parse(createResp.content[0]?.text || '{}');
336
- const taskId = createJson.task?.id ?? '1';
337
- const unsupportedResp = await handleStateToolCall({
338
- params: {
339
- name: 'team_update_task',
340
- arguments: {
341
- team_name: 'update-guard-team',
342
- task_id: taskId,
343
- claim: { owner: 'worker-1' },
344
- workingDirectory: wd,
345
- },
346
- },
347
- });
348
- assert.equal(unsupportedResp.isError, true);
349
- const unsupportedJson = JSON.parse(unsupportedResp.content[0]?.text || '{}');
350
- assert.match(unsupportedJson.error ?? '', /unsupported fields/i);
351
- const invalidDepsResp = await handleStateToolCall({
352
- params: {
353
- name: 'team_update_task',
354
- arguments: {
355
- team_name: 'update-guard-team',
356
- task_id: taskId,
357
- blocked_by: ['../oops'],
358
- workingDirectory: wd,
359
- },
360
- },
361
- });
362
- assert.equal(invalidDepsResp.isError, true);
363
- const invalidDepsJson = JSON.parse(invalidDepsResp.content[0]?.text || '{}');
364
- assert.match(invalidDepsJson.error ?? '', /blocked_by contains invalid task ID/i);
365
- }
366
- finally {
367
- await rm(wd, { recursive: true, force: true });
368
- }
369
- });
370
- it('team_claim_task validates expected_version as a positive integer', async () => {
371
- process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
372
- const { handleStateToolCall } = await import('../state-server.js');
373
- const wd = await mkdtemp(join(tmpdir(), 'omx-state-team-tools-'));
374
- try {
375
- await initTeamState('claim-guard-team', 'claim guard test', 'executor', 1, wd);
376
- await handleStateToolCall({
377
- params: {
378
- name: 'team_create_task',
379
- arguments: {
380
- team_name: 'claim-guard-team',
381
- subject: 'task',
382
- description: 'task desc',
383
- workingDirectory: wd,
384
- },
385
- },
386
- });
387
- const badTypeResp = await handleStateToolCall({
388
- params: {
389
- name: 'team_claim_task',
390
- arguments: {
391
- team_name: 'claim-guard-team',
392
- task_id: '1',
393
- worker: 'worker-1',
394
- expected_version: '1',
395
- workingDirectory: wd,
396
- },
397
- },
398
- });
399
- assert.equal(badTypeResp.isError, true);
400
- const badTypeJson = JSON.parse(badTypeResp.content[0]?.text || '{}');
401
- assert.match(badTypeJson.error ?? '', /expected_version must be a positive integer/i);
402
- const badValueResp = await handleStateToolCall({
403
- params: {
404
- name: 'team_claim_task',
405
- arguments: {
406
- team_name: 'claim-guard-team',
407
- task_id: '1',
408
- worker: 'worker-1',
409
- expected_version: 0,
410
- workingDirectory: wd,
411
- },
412
- },
413
- });
414
- assert.equal(badValueResp.isError, true);
415
- const badValueJson = JSON.parse(badValueResp.content[0]?.text || '{}');
416
- assert.match(badValueJson.error ?? '', /expected_version must be a positive integer/i);
417
- }
418
- finally {
419
- await rm(wd, { recursive: true, force: true });
420
- }
421
- });
422
- it('team_append_event rejects unknown event types', async () => {
423
- process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
424
- const { handleStateToolCall } = await import('../state-server.js');
425
- const wd = await mkdtemp(join(tmpdir(), 'omx-state-team-tools-'));
426
- try {
427
- await initTeamState('event-guard-team', 'event guard test', 'executor', 1, wd);
428
- const resp = await handleStateToolCall({
429
- params: {
430
- name: 'team_append_event',
431
- arguments: {
432
- team_name: 'event-guard-team',
433
- type: 'not-a-real-event',
434
- worker: 'worker-1',
435
- workingDirectory: wd,
436
- },
437
- },
438
- });
439
- assert.equal(resp.isError, true);
440
- const json = JSON.parse(resp.content[0]?.text || '{}');
441
- assert.match(json.error ?? '', /type must be one of/i);
442
- }
443
- finally {
444
- await rm(wd, { recursive: true, force: true });
445
- }
446
- });
447
- it('team_write_task_approval validates status enum and required type', async () => {
448
- process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
449
- const { handleStateToolCall } = await import('../state-server.js');
450
- const wd = await mkdtemp(join(tmpdir(), 'omx-state-team-tools-'));
451
- try {
452
- await initTeamState('approval-guard-team', 'approval guard test', 'executor', 1, wd);
453
- const badStatusResp = await handleStateToolCall({
454
- params: {
455
- name: 'team_write_task_approval',
456
- arguments: {
457
- team_name: 'approval-guard-team',
458
- task_id: '1',
459
- status: 'accepted',
460
- reviewer: 'reviewer-1',
461
- decision_reason: 'bad status test',
462
- workingDirectory: wd,
463
- },
464
- },
465
- });
466
- assert.equal(badStatusResp.isError, true);
467
- const badStatusJson = JSON.parse(badStatusResp.content[0]?.text || '{}');
468
- assert.match(badStatusJson.error ?? '', /status must be one of/i);
469
- const badRequiredResp = await handleStateToolCall({
470
- params: {
471
- name: 'team_write_task_approval',
472
- arguments: {
473
- team_name: 'approval-guard-team',
474
- task_id: '1',
475
- status: 'approved',
476
- reviewer: 'reviewer-1',
477
- decision_reason: 'bad required type test',
478
- required: 'true',
479
- workingDirectory: wd,
480
- },
481
- },
482
- });
483
- assert.equal(badRequiredResp.isError, true);
484
- const badRequiredJson = JSON.parse(badRequiredResp.content[0]?.text || '{}');
485
- assert.match(badRequiredJson.error ?? '', /required must be a boolean/i);
486
- }
487
- finally {
488
- await rm(wd, { recursive: true, force: true });
489
- }
3
+ describe('state-server team_* MCP deprecation', () => {
4
+ it('does not expose team_* tools from ListTools output', async () => {
5
+ process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
6
+ const { buildStateServerTools } = await import('../state-server.js');
7
+ const tools = buildStateServerTools();
8
+ const teamTools = tools.filter((tool) => tool.name.startsWith('team_'));
9
+ assert.equal(teamTools.length, 0);
10
+ const stateTools = tools.filter((tool) => tool.name.startsWith('state_'));
11
+ assert.ok(stateTools.length > 0);
12
+ });
13
+ it('returns hard-deprecation error + CLI hint when team_* tool is called', async () => {
14
+ process.env.OMX_STATE_SERVER_DISABLE_AUTO_START = '1';
15
+ const { handleStateToolCall } = await import('../state-server.js');
16
+ const resp = await handleStateToolCall({
17
+ params: {
18
+ name: 'team_send_message',
19
+ arguments: {
20
+ team_name: 'alpha-team',
21
+ from_worker: 'worker-1',
22
+ to_worker: 'leader-fixed',
23
+ body: 'ack',
24
+ },
25
+ },
26
+ });
27
+ assert.equal(resp.isError, true);
28
+ const body = JSON.parse(resp.content[0]?.text ?? '{}');
29
+ assert.equal(body.code, 'deprecated_cli_only');
30
+ assert.match(body.error ?? '', /hard-deprecated/i);
31
+ assert.match(body.hint ?? '', /omx team api send-message/);
32
+ assert.match(body.hint ?? '', /--json/);
490
33
  });
491
34
  });
492
35
  //# sourceMappingURL=state-server-team-tools.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state-server-team-tools.test.js","sourceRoot":"","sources":["../../../src/mcp/__tests__/state-server-team-tools.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAEjE,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;gBACzC,MAAM,EAAE;oBACN,IAAI,EAAE,mBAAmB;oBACzB,SAAS,EAAE;wBACT,SAAS,EAAE,YAAY;wBACvB,WAAW,EAAE,UAAU;wBACvB,SAAS,EAAE,cAAc;wBACzB,IAAI,EAAE,mBAAmB;wBACzB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAwD,CAAC;YACtH,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAE5D,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;gBACzC,MAAM,EAAE;oBACN,IAAI,EAAE,mBAAmB;oBACzB,SAAS,EAAE;wBACT,SAAS,EAAE,YAAY;wBACvB,MAAM,EAAE,cAAc;wBACtB,iBAAiB,EAAE,KAAK;wBACxB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAsG,CAAC;YACpK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;YACjD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAEjB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;gBAC3C,MAAM,EAAE;oBACN,IAAI,EAAE,4BAA4B;oBAClC,SAAS,EAAE;wBACT,SAAS,EAAE,YAAY;wBACvB,MAAM,EAAE,cAAc;wBACtB,UAAU,EAAE,KAAK;wBACjB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAyC,CAAC;YAC3G,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAExC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;gBACzC,MAAM,EAAE;oBACN,IAAI,EAAE,6BAA6B;oBACnC,SAAS,EAAE;wBACT,SAAS,EAAE,YAAY;wBACvB,MAAM,EAAE,cAAc;wBACtB,UAAU,EAAE,KAAK;wBACjB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAwC,CAAC;YACtG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAErC,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC;gBAC9C,MAAM,EAAE;oBACN,IAAI,EAAE,mBAAmB;oBACzB,SAAS,EAAE;wBACT,SAAS,EAAE,YAAY;wBACvB,MAAM,EAAE,cAAc;wBACtB,iBAAiB,EAAE,KAAK;wBACxB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAqC,CAAC;YAC7G,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAEtE,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC;gBACrC,MAAM,EAAE;oBACN,IAAI,EAAE,gBAAgB;oBACtB,SAAS,EAAE;wBACT,SAAS,EAAE,WAAW;wBACtB,WAAW,EAAE,UAAU;wBACvB,IAAI,EAAE,YAAY;wBAClB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAqC,CAAC;YAC3F,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAE5B,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC;gBACnC,MAAM,EAAE;oBACN,IAAI,EAAE,mBAAmB;oBACzB,SAAS,EAAE;wBACT,SAAS,EAAE,WAAW;wBACtB,MAAM,EAAE,UAAU;wBAClB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC;gBACnC,MAAM,EAAE;oBACN,IAAI,EAAE,mBAAmB;oBACzB,SAAS,EAAE;wBACT,SAAS,EAAE,WAAW;wBACtB,MAAM,EAAE,UAAU;wBAClB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAuB,CAAC;YAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAuB,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,MAAM,aAAa,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAExE,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;gBAC3C,MAAM,EAAE;oBACN,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE;wBACT,SAAS,EAAE,YAAY;wBACvB,OAAO,EAAE,gBAAgB;wBACzB,WAAW,EAAE,sBAAsB;wBACnC,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAA6C,CAAC;YAC/G,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAEvC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;gBACzC,MAAM,EAAE;oBACN,IAAI,EAAE,iBAAiB;oBACvB,SAAS,EAAE;wBACT,SAAS,EAAE,YAAY;wBACvB,gBAAgB,EAAE,QAAQ;qBAC3B;iBACF;aACF,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAqC,CAAC;YACnG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAEhC,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;gBACzC,MAAM,EAAE;oBACN,IAAI,EAAE,gBAAgB;oBACtB,SAAS,EAAE;wBACT,SAAS,EAAE,YAAY;wBACvB,OAAO,EAAE,GAAG;wBACZ,gBAAgB,EAAE,QAAQ;qBAC3B;iBACF;aACF,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAA6C,CAAC;YAC3G,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC;gBAC7C,MAAM,EAAE;oBACN,IAAI,EAAE,4BAA4B;oBAClC,SAAS,EAAE;wBACT,SAAS,EAAE,eAAe;wBAC1B,MAAM,EAAE,UAAU;wBAClB,KAAK,EAAE,CAAC;wBACR,IAAI,EAAE,UAAU;wBAChB,cAAc,EAAE,CAAC,GAAG,CAAC;wBACrB,WAAW,EAAE,wBAAwB;wBACrC,aAAa,EAAE,wBAAwB;wBACvC,eAAe,EAAE,kBAAkB;wBACnC,iBAAiB,EAAE,KAAK;wBACxB,eAAe,EAAE,wBAAwB;wBACzC,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAqB,CAAC;YAC3F,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAEpC,MAAM,YAAY,GAAG,IAAI,CACvB,EAAE,EACF,MAAM,EACN,OAAO,EACP,MAAM,EACN,eAAe,EACf,SAAS,EACT,UAAU,EACV,eAAe,CAChB,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAMhE,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;YAC9D,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC;YAChE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;YAC5D,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC;QACpE,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAE5D,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;gBAC3C,MAAM,EAAE;oBACN,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE;wBACT,SAAS,EAAE,eAAe;wBAC1B,OAAO,EAAE,sBAAsB;wBAC/B,WAAW,EAAE,yCAAyC;qBACvD;iBACF;aACF,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAA6C,CAAC;YAC/G,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO,QAAQ,KAAK,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,QAAQ,CAAC;;gBACxE,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC5C,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAEzF,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;gBAC3C,MAAM,EAAE;oBACN,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE;wBACT,SAAS,EAAE,uBAAuB;wBAClC,OAAO,EAAE,2BAA2B;wBACpC,WAAW,EAAE,uCAAuC;wBACpD,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAA6C,CAAC;YAC5G,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAElB,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC;gBAC1C,MAAM,EAAE;oBACN,IAAI,EAAE,iBAAiB;oBACvB,SAAS,EAAE;wBACT,SAAS,EAAE,uBAAuB;wBAClC,OAAO,EAAE,MAAM;wBACf,MAAM,EAAE,UAAU;wBAClB,gBAAgB,EAAE,CAAC;wBACnB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAA0C,CAAC;YACtG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEhD,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC;gBAC/C,MAAM,EAAE;oBACN,IAAI,EAAE,6BAA6B;oBACnC,SAAS,EAAE;wBACT,SAAS,EAAE,uBAAuB;wBAClC,OAAO,EAAE,MAAM;wBACf,IAAI,EAAE,aAAa;wBACnB,EAAE,EAAE,SAAS;wBACb,WAAW,EAAE,KAAK,CAAC,UAAU;wBAC7B,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAqC,CAAC;YAC3G,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAEjF,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC;gBAC3C,MAAM,EAAE;oBACN,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE;wBACT,SAAS,EAAE,mBAAmB;wBAC9B,OAAO,EAAE,MAAM;wBACf,WAAW,EAAE,WAAW;wBACxB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAA+B,CAAC;YACjG,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,GAAG,CAAC;YAE1C,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC;gBAChD,MAAM,EAAE;oBACN,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE;wBACT,SAAS,EAAE,mBAAmB;wBAC9B,OAAO,EAAE,MAAM;wBACf,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;wBAC5B,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAuB,CAAC;YACnG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,EAAE,qBAAqB,CAAC,CAAC;YAEjE,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC;gBAChD,MAAM,EAAE;oBACN,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE;wBACT,SAAS,EAAE,mBAAmB;wBAC9B,OAAO,EAAE,MAAM;wBACf,UAAU,EAAE,CAAC,SAAS,CAAC;wBACvB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAuB,CAAC;YACnG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,EAAE,sCAAsC,CAAC,CAAC;QACpF,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAE/E,MAAM,mBAAmB,CAAC;gBACxB,MAAM,EAAE;oBACN,IAAI,EAAE,kBAAkB;oBACxB,SAAS,EAAE;wBACT,SAAS,EAAE,kBAAkB;wBAC7B,OAAO,EAAE,MAAM;wBACf,WAAW,EAAE,WAAW;wBACxB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC;gBAC5C,MAAM,EAAE;oBACN,IAAI,EAAE,iBAAiB;oBACvB,SAAS,EAAE;wBACT,SAAS,EAAE,kBAAkB;wBAC7B,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,UAAU;wBAClB,gBAAgB,EAAE,GAAG;wBACrB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAuB,CAAC;YAC3F,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,EAAE,8CAA8C,CAAC,CAAC;YAEtF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC;gBAC7C,MAAM,EAAE;oBACN,IAAI,EAAE,iBAAiB;oBACvB,SAAS,EAAE;wBACT,SAAS,EAAE,kBAAkB;wBAC7B,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,UAAU;wBAClB,gBAAgB,EAAE,CAAC;wBACnB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAuB,CAAC;YAC7F,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE,8CAA8C,CAAC,CAAC;QACzF,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/E,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC;gBACrC,MAAM,EAAE;oBACN,IAAI,EAAE,mBAAmB;oBACzB,SAAS,EAAE;wBACT,SAAS,EAAE,kBAAkB;wBAC7B,IAAI,EAAE,kBAAkB;wBACxB,MAAM,EAAE,UAAU;wBAClB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAuB,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACzD,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAErF,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC;gBAC9C,MAAM,EAAE;oBACN,IAAI,EAAE,0BAA0B;oBAChC,SAAS,EAAE;wBACT,SAAS,EAAE,qBAAqB;wBAChC,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,UAAU;wBAClB,QAAQ,EAAE,YAAY;wBACtB,eAAe,EAAE,iBAAiB;wBAClC,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAuB,CAAC;YAC/F,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAElE,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC;gBAChD,MAAM,EAAE;oBACN,IAAI,EAAE,0BAA0B;oBAChC,SAAS,EAAE;wBACT,SAAS,EAAE,qBAAqB;wBAChC,OAAO,EAAE,GAAG;wBACZ,MAAM,EAAE,UAAU;wBAClB,QAAQ,EAAE,YAAY;wBACtB,eAAe,EAAE,wBAAwB;wBACzC,QAAQ,EAAE,MAAM;wBAChB,gBAAgB,EAAE,EAAE;qBACrB;iBACF;aACF,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAuB,CAAC;YACnG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,EAAE,6BAA6B,CAAC,CAAC;QAC3E,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"state-server-team-tools.test.js","sourceRoot":"","sources":["../../../src/mcp/__tests__/state-server-team-tools.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAErE,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5F,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,GAAG,CAAC;QACtD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEnE,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC;YACrC,MAAM,EAAE;gBACN,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE;oBACT,SAAS,EAAE,YAAY;oBACvB,WAAW,EAAE,UAAU;oBACvB,SAAS,EAAE,cAAc;oBACzB,IAAI,EAAE,KAAK;iBACZ;aACF;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAqD,CAAC;QAC3G,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"code-intel-server.d.ts","sourceRoot":"","sources":["../../src/mcp/code-intel-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0LH,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,GACzB,MAAM,EAAE,CAiBV"}
1
+ {"version":3,"file":"code-intel-server.d.ts","sourceRoot":"","sources":["../../src/mcp/code-intel-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8LH,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,GACzB,MAAM,EAAE,CAiBV"}
@@ -135,14 +135,18 @@ async function findSgBinary() {
135
135
  await execFileAsync('which', [bin]);
136
136
  return bin;
137
137
  }
138
- catch { /* not found */ }
138
+ catch (err) {
139
+ process.stderr.write(`[code-intel-server] operation failed: ${err}\n`);
140
+ }
139
141
  }
140
142
  // Try npx
141
143
  try {
142
- await execFileAsync('npx', ['--yes', '@ast-grep/cli', '--version'], { timeout: 15000 });
144
+ await execFileAsync('npx', ['@ast-grep/cli', '--version'], { timeout: 15000 });
143
145
  return 'npx-ast-grep';
144
146
  }
145
- catch { /* not available */ }
147
+ catch (err) {
148
+ process.stderr.write(`[code-intel-server] operation failed: ${err}\n`);
149
+ }
146
150
  return null;
147
151
  }
148
152
  export function buildAstGrepRunArgs(pattern, language, options) {
@@ -182,7 +186,8 @@ async function runAstGrep(pattern, language, options) {
182
186
  command: `${cmd} ${args.join(' ')}`,
183
187
  };
184
188
  }
185
- catch {
189
+ catch (err) {
190
+ process.stderr.write(`[code-intel-server] operation failed: ${err}\n`);
186
191
  // Non-JSON output (rewrite mode)
187
192
  return { matches: [{ output: stdout }], command: `${cmd} ${args.join(' ')}` };
188
193
  }
@@ -221,7 +226,9 @@ async function searchWorkspaceSymbols(query, dir, maxResults = 50) {
221
226
  }
222
227
  }
223
228
  }
224
- catch { /* skip unreadable */ }
229
+ catch (err) {
230
+ process.stderr.write(`[code-intel-server] operation failed: ${err}\n`);
231
+ }
225
232
  }
226
233
  }
227
234
  }
@@ -518,7 +525,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
518
525
  references: filteredRefs.slice(0, 100),
519
526
  });
520
527
  }
521
- catch {
528
+ catch (err) {
529
+ process.stderr.write(`[code-intel-server] operation failed: ${err}\n`);
522
530
  return text({
523
531
  symbol,
524
532
  includeDeclaration: effectiveIncludeDeclaration,
@@ -535,7 +543,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
535
543
  const { stdout } = await exec('npx', ['tsc', '--version'], { timeout: 10000 });
536
544
  checks['typescript'] = { available: true, version: stdout.trim() };
537
545
  }
538
- catch {
546
+ catch (err) {
547
+ process.stderr.write(`[code-intel-server] operation failed: ${err}\n`);
539
548
  checks['typescript'] = { available: false, note: 'Install: npm i -D typescript' };
540
549
  }
541
550
  // Check ast-grep
@@ -551,7 +560,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
551
560
  await exec('grep', ['--version']);
552
561
  checks['grep'] = { available: true };
553
562
  }
554
- catch {
563
+ catch (err) {
564
+ process.stderr.write(`[code-intel-server] operation failed: ${err}\n`);
555
565
  checks['grep'] = { available: false };
556
566
  }
557
567
  return text({ servers: checks });