oh-my-claude-sisyphus 3.7.0 → 3.7.3

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 (381) hide show
  1. package/README.md +24 -1
  2. package/commands/hud.md +37 -5
  3. package/commands/omc-setup.md +105 -0
  4. package/dist/__tests__/compatibility-security.test.d.ts +13 -0
  5. package/dist/__tests__/compatibility-security.test.d.ts.map +1 -0
  6. package/dist/__tests__/compatibility-security.test.js +403 -0
  7. package/dist/__tests__/compatibility-security.test.js.map +1 -0
  8. package/dist/__tests__/compatibility.test.d.ts +7 -0
  9. package/dist/__tests__/compatibility.test.d.ts.map +1 -0
  10. package/dist/__tests__/compatibility.test.js +484 -0
  11. package/dist/__tests__/compatibility.test.js.map +1 -0
  12. package/dist/__tests__/hud/analytics-display.test.js +141 -1
  13. package/dist/__tests__/hud/analytics-display.test.js.map +1 -1
  14. package/dist/__tests__/hud-windows.test.d.ts +2 -0
  15. package/dist/__tests__/hud-windows.test.d.ts.map +1 -0
  16. package/dist/__tests__/hud-windows.test.js +91 -0
  17. package/dist/__tests__/hud-windows.test.js.map +1 -0
  18. package/dist/cli/analytics.js +0 -0
  19. package/dist/cli/index.js +0 -0
  20. package/dist/compatibility/discovery.d.ts +58 -0
  21. package/dist/compatibility/discovery.d.ts.map +1 -0
  22. package/dist/compatibility/discovery.js +619 -0
  23. package/dist/compatibility/discovery.js.map +1 -0
  24. package/dist/compatibility/index.d.ts +51 -0
  25. package/dist/compatibility/index.d.ts.map +1 -0
  26. package/dist/compatibility/index.js +72 -0
  27. package/dist/compatibility/index.js.map +1 -0
  28. package/dist/compatibility/mcp-bridge.d.ts +138 -0
  29. package/dist/compatibility/mcp-bridge.d.ts.map +1 -0
  30. package/dist/compatibility/mcp-bridge.js +524 -0
  31. package/dist/compatibility/mcp-bridge.js.map +1 -0
  32. package/dist/compatibility/permission-adapter.d.ts +79 -0
  33. package/dist/compatibility/permission-adapter.d.ts.map +1 -0
  34. package/dist/compatibility/permission-adapter.js +369 -0
  35. package/dist/compatibility/permission-adapter.js.map +1 -0
  36. package/dist/compatibility/registry.d.ts +161 -0
  37. package/dist/compatibility/registry.d.ts.map +1 -0
  38. package/dist/compatibility/registry.js +389 -0
  39. package/dist/compatibility/registry.js.map +1 -0
  40. package/dist/compatibility/types.d.ts +249 -0
  41. package/dist/compatibility/types.d.ts.map +1 -0
  42. package/dist/compatibility/types.js +8 -0
  43. package/dist/compatibility/types.js.map +1 -0
  44. package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
  45. package/dist/features/rate-limit-wait/daemon.js +44 -1
  46. package/dist/features/rate-limit-wait/daemon.js.map +1 -1
  47. package/dist/features/state-manager/index.d.ts.map +1 -1
  48. package/dist/features/state-manager/index.js +4 -1
  49. package/dist/features/state-manager/index.js.map +1 -1
  50. package/dist/hooks/permission-handler/__tests__/index.test.js +47 -0
  51. package/dist/hooks/permission-handler/__tests__/index.test.js.map +1 -1
  52. package/dist/hooks/permission-handler/index.d.ts +1 -1
  53. package/dist/hooks/permission-handler/index.d.ts.map +1 -1
  54. package/dist/hooks/permission-handler/index.js +11 -15
  55. package/dist/hooks/permission-handler/index.js.map +1 -1
  56. package/dist/hooks/plugin-patterns/index.d.ts +5 -0
  57. package/dist/hooks/plugin-patterns/index.d.ts.map +1 -1
  58. package/dist/hooks/plugin-patterns/index.js +26 -1
  59. package/dist/hooks/plugin-patterns/index.js.map +1 -1
  60. package/dist/hooks/session-end/index.d.ts +0 -8
  61. package/dist/hooks/session-end/index.d.ts.map +1 -1
  62. package/dist/hooks/session-end/index.js +5 -12
  63. package/dist/hooks/session-end/index.js.map +1 -1
  64. package/dist/hooks/subagent-tracker/index.d.ts.map +1 -1
  65. package/dist/hooks/subagent-tracker/index.js +32 -17
  66. package/dist/hooks/subagent-tracker/index.js.map +1 -1
  67. package/dist/hud/analytics-display.d.ts +17 -1
  68. package/dist/hud/analytics-display.d.ts.map +1 -1
  69. package/dist/hud/analytics-display.js +55 -12
  70. package/dist/hud/analytics-display.js.map +1 -1
  71. package/dist/hud/render.d.ts.map +1 -1
  72. package/dist/hud/render.js +49 -18
  73. package/dist/hud/render.js.map +1 -1
  74. package/dist/hud/types.d.ts +2 -0
  75. package/dist/hud/types.d.ts.map +1 -1
  76. package/dist/hud/types.js +14 -0
  77. package/dist/hud/types.js.map +1 -1
  78. package/dist/installer/index.d.ts.map +1 -1
  79. package/dist/installer/index.js +3 -2
  80. package/dist/installer/index.js.map +1 -1
  81. package/docs/COMPATIBILITY.md +1051 -0
  82. package/hooks/keyword-detector.sh +4 -4
  83. package/hooks/persistent-mode.sh +10 -10
  84. package/hooks/session-start.sh +4 -4
  85. package/package.json +3 -1
  86. package/scripts/keyword-detector.mjs +4 -4
  87. package/scripts/persistent-mode.mjs +6 -6
  88. package/scripts/persistent-mode.sh +10 -10
  89. package/scripts/session-start.mjs +4 -4
  90. package/skills/hud/SKILL.md +37 -5
  91. package/skills/omc-setup/SKILL.md +162 -4
  92. package/skills/writer-memory/SKILL.md +443 -0
  93. package/skills/writer-memory/lib/character-tracker.ts +338 -0
  94. package/skills/writer-memory/lib/memory-manager.ts +804 -0
  95. package/skills/writer-memory/lib/relationship-graph.ts +400 -0
  96. package/skills/writer-memory/lib/scene-organizer.ts +544 -0
  97. package/skills/writer-memory/lib/synopsis-builder.ts +339 -0
  98. package/skills/writer-memory/templates/synopsis-template.md +46 -0
  99. package/templates/hooks/keyword-detector.sh +4 -4
  100. package/templates/hooks/persistent-mode.sh +10 -10
  101. package/templates/hooks/session-start.sh +4 -4
  102. package/dist/__tests__/analytics/analytics-summary.test.d.ts +0 -2
  103. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +0 -1
  104. package/dist/__tests__/analytics/analytics-summary.test.js +0 -267
  105. package/dist/__tests__/analytics/analytics-summary.test.js.map +0 -1
  106. package/dist/__tests__/analytics/cost-estimator.test.d.ts +0 -2
  107. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +0 -1
  108. package/dist/__tests__/analytics/cost-estimator.test.js +0 -212
  109. package/dist/__tests__/analytics/cost-estimator.test.js.map +0 -1
  110. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +0 -7
  111. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +0 -1
  112. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +0 -374
  113. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +0 -1
  114. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +0 -2
  115. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +0 -1
  116. package/dist/__tests__/hud/auto-tracking.integration.test.js +0 -12
  117. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +0 -1
  118. package/dist/__tests__/learned-skills/config.test.d.ts +0 -2
  119. package/dist/__tests__/learned-skills/config.test.d.ts.map +0 -1
  120. package/dist/__tests__/learned-skills/config.test.js +0 -37
  121. package/dist/__tests__/learned-skills/config.test.js.map +0 -1
  122. package/dist/__tests__/learned-skills/detector.test.d.ts +0 -2
  123. package/dist/__tests__/learned-skills/detector.test.d.ts.map +0 -1
  124. package/dist/__tests__/learned-skills/detector.test.js +0 -99
  125. package/dist/__tests__/learned-skills/detector.test.js.map +0 -1
  126. package/dist/__tests__/learned-skills/finder.test.d.ts +0 -2
  127. package/dist/__tests__/learned-skills/finder.test.d.ts.map +0 -1
  128. package/dist/__tests__/learned-skills/finder.test.js +0 -59
  129. package/dist/__tests__/learned-skills/finder.test.js.map +0 -1
  130. package/dist/__tests__/learned-skills/loader.test.d.ts +0 -2
  131. package/dist/__tests__/learned-skills/loader.test.d.ts.map +0 -1
  132. package/dist/__tests__/learned-skills/loader.test.js +0 -69
  133. package/dist/__tests__/learned-skills/loader.test.js.map +0 -1
  134. package/dist/__tests__/learned-skills/parser.test.d.ts +0 -2
  135. package/dist/__tests__/learned-skills/parser.test.d.ts.map +0 -1
  136. package/dist/__tests__/learned-skills/parser.test.js +0 -81
  137. package/dist/__tests__/learned-skills/parser.test.js.map +0 -1
  138. package/dist/__tests__/learned-skills/validator.test.d.ts +0 -2
  139. package/dist/__tests__/learned-skills/validator.test.d.ts.map +0 -1
  140. package/dist/__tests__/learned-skills/validator.test.js +0 -85
  141. package/dist/__tests__/learned-skills/validator.test.js.map +0 -1
  142. package/dist/agents/codex-agents.d.ts +0 -20
  143. package/dist/agents/codex-agents.d.ts.map +0 -1
  144. package/dist/agents/codex-agents.js +0 -36
  145. package/dist/agents/codex-agents.js.map +0 -1
  146. package/dist/agents/document-writer.d.ts +0 -11
  147. package/dist/agents/document-writer.d.ts.map +0 -1
  148. package/dist/agents/document-writer.js +0 -209
  149. package/dist/agents/document-writer.js.map +0 -1
  150. package/dist/agents/frontend-engineer.d.ts +0 -11
  151. package/dist/agents/frontend-engineer.d.ts.map +0 -1
  152. package/dist/agents/frontend-engineer.js +0 -115
  153. package/dist/agents/frontend-engineer.js.map +0 -1
  154. package/dist/agents/librarian.d.ts +0 -12
  155. package/dist/agents/librarian.d.ts.map +0 -1
  156. package/dist/agents/librarian.js +0 -103
  157. package/dist/agents/librarian.js.map +0 -1
  158. package/dist/agents/metis.d.ts +0 -12
  159. package/dist/agents/metis.d.ts.map +0 -1
  160. package/dist/agents/metis.js +0 -117
  161. package/dist/agents/metis.js.map +0 -1
  162. package/dist/agents/momus.d.ts +0 -12
  163. package/dist/agents/momus.d.ts.map +0 -1
  164. package/dist/agents/momus.js +0 -128
  165. package/dist/agents/momus.js.map +0 -1
  166. package/dist/agents/multimodal-looker.d.ts +0 -11
  167. package/dist/agents/multimodal-looker.d.ts.map +0 -1
  168. package/dist/agents/multimodal-looker.js +0 -70
  169. package/dist/agents/multimodal-looker.js.map +0 -1
  170. package/dist/agents/oracle.d.ts +0 -13
  171. package/dist/agents/oracle.d.ts.map +0 -1
  172. package/dist/agents/oracle.js +0 -191
  173. package/dist/agents/oracle.js.map +0 -1
  174. package/dist/agents/orchestrator-sisyphus.d.ts +0 -11
  175. package/dist/agents/orchestrator-sisyphus.d.ts.map +0 -1
  176. package/dist/agents/orchestrator-sisyphus.js +0 -115
  177. package/dist/agents/orchestrator-sisyphus.js.map +0 -1
  178. package/dist/agents/prometheus.d.ts +0 -12
  179. package/dist/agents/prometheus.d.ts.map +0 -1
  180. package/dist/agents/prometheus.js +0 -195
  181. package/dist/agents/prometheus.js.map +0 -1
  182. package/dist/agents/sisyphus-junior.d.ts +0 -12
  183. package/dist/agents/sisyphus-junior.d.ts.map +0 -1
  184. package/dist/agents/sisyphus-junior.js +0 -93
  185. package/dist/agents/sisyphus-junior.js.map +0 -1
  186. package/dist/cli/components/CostDashboard.d.ts +0 -15
  187. package/dist/cli/components/CostDashboard.d.ts.map +0 -1
  188. package/dist/cli/components/CostDashboard.js +0 -15
  189. package/dist/cli/components/CostDashboard.js.map +0 -1
  190. package/dist/cli/components/LiveStats.d.ts +0 -16
  191. package/dist/cli/components/LiveStats.d.ts.map +0 -1
  192. package/dist/cli/components/LiveStats.js +0 -16
  193. package/dist/cli/components/LiveStats.js.map +0 -1
  194. package/dist/cli/components/SessionBrowser.d.ts +0 -14
  195. package/dist/cli/components/SessionBrowser.d.ts.map +0 -1
  196. package/dist/cli/components/SessionBrowser.js +0 -14
  197. package/dist/cli/components/SessionBrowser.js.map +0 -1
  198. package/dist/cli/tui.d.ts +0 -21
  199. package/dist/cli/tui.d.ts.map +0 -1
  200. package/dist/cli/tui.js +0 -21
  201. package/dist/cli/tui.js.map +0 -1
  202. package/dist/hooks/autopilot/signals.d.ts +0 -20
  203. package/dist/hooks/autopilot/signals.d.ts.map +0 -1
  204. package/dist/hooks/autopilot/signals.js +0 -75
  205. package/dist/hooks/autopilot/signals.js.map +0 -1
  206. package/dist/hooks/autopilot/summary.d.ts +0 -27
  207. package/dist/hooks/autopilot/summary.d.ts.map +0 -1
  208. package/dist/hooks/autopilot/summary.js +0 -160
  209. package/dist/hooks/autopilot/summary.js.map +0 -1
  210. package/dist/hooks/autopilot/transition.d.ts +0 -39
  211. package/dist/hooks/autopilot/transition.d.ts.map +0 -1
  212. package/dist/hooks/autopilot/transition.js +0 -216
  213. package/dist/hooks/autopilot/transition.js.map +0 -1
  214. package/dist/hooks/context-window-limit-recovery/constants.d.ts +0 -28
  215. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +0 -1
  216. package/dist/hooks/context-window-limit-recovery/constants.js +0 -85
  217. package/dist/hooks/context-window-limit-recovery/constants.js.map +0 -1
  218. package/dist/hooks/context-window-limit-recovery/index.d.ts +0 -62
  219. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +0 -1
  220. package/dist/hooks/context-window-limit-recovery/index.js +0 -201
  221. package/dist/hooks/context-window-limit-recovery/index.js.map +0 -1
  222. package/dist/hooks/context-window-limit-recovery/parser.d.ts +0 -31
  223. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +0 -1
  224. package/dist/hooks/context-window-limit-recovery/parser.js +0 -241
  225. package/dist/hooks/context-window-limit-recovery/parser.js.map +0 -1
  226. package/dist/hooks/context-window-limit-recovery/types.d.ts +0 -84
  227. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +0 -1
  228. package/dist/hooks/context-window-limit-recovery/types.js +0 -34
  229. package/dist/hooks/context-window-limit-recovery/types.js.map +0 -1
  230. package/dist/hooks/edit-error-recovery/index.d.ts +0 -62
  231. package/dist/hooks/edit-error-recovery/index.d.ts.map +0 -1
  232. package/dist/hooks/edit-error-recovery/index.js +0 -89
  233. package/dist/hooks/edit-error-recovery/index.js.map +0 -1
  234. package/dist/hooks/learned-skills/config.d.ts +0 -53
  235. package/dist/hooks/learned-skills/config.d.ts.map +0 -1
  236. package/dist/hooks/learned-skills/config.js +0 -103
  237. package/dist/hooks/learned-skills/config.js.map +0 -1
  238. package/dist/hooks/learned-skills/constants.d.ts +0 -24
  239. package/dist/hooks/learned-skills/constants.d.ts.map +0 -1
  240. package/dist/hooks/learned-skills/constants.js +0 -26
  241. package/dist/hooks/learned-skills/constants.js.map +0 -1
  242. package/dist/hooks/learned-skills/detection-hook.d.ts +0 -39
  243. package/dist/hooks/learned-skills/detection-hook.d.ts.map +0 -1
  244. package/dist/hooks/learned-skills/detection-hook.js +0 -83
  245. package/dist/hooks/learned-skills/detection-hook.js.map +0 -1
  246. package/dist/hooks/learned-skills/detector.d.ts +0 -30
  247. package/dist/hooks/learned-skills/detector.d.ts.map +0 -1
  248. package/dist/hooks/learned-skills/detector.js +0 -150
  249. package/dist/hooks/learned-skills/detector.js.map +0 -1
  250. package/dist/hooks/learned-skills/finder.d.ts +0 -21
  251. package/dist/hooks/learned-skills/finder.d.ts.map +0 -1
  252. package/dist/hooks/learned-skills/finder.js +0 -117
  253. package/dist/hooks/learned-skills/finder.js.map +0 -1
  254. package/dist/hooks/learned-skills/index.d.ts +0 -62
  255. package/dist/hooks/learned-skills/index.d.ts.map +0 -1
  256. package/dist/hooks/learned-skills/index.js +0 -137
  257. package/dist/hooks/learned-skills/index.js.map +0 -1
  258. package/dist/hooks/learned-skills/loader.d.ts +0 -20
  259. package/dist/hooks/learned-skills/loader.d.ts.map +0 -1
  260. package/dist/hooks/learned-skills/loader.js +0 -107
  261. package/dist/hooks/learned-skills/loader.js.map +0 -1
  262. package/dist/hooks/learned-skills/parser.d.ts +0 -21
  263. package/dist/hooks/learned-skills/parser.d.ts.map +0 -1
  264. package/dist/hooks/learned-skills/parser.js +0 -190
  265. package/dist/hooks/learned-skills/parser.js.map +0 -1
  266. package/dist/hooks/learned-skills/promotion.d.ts +0 -29
  267. package/dist/hooks/learned-skills/promotion.d.ts.map +0 -1
  268. package/dist/hooks/learned-skills/promotion.js +0 -87
  269. package/dist/hooks/learned-skills/promotion.js.map +0 -1
  270. package/dist/hooks/learned-skills/types.d.ts +0 -109
  271. package/dist/hooks/learned-skills/types.d.ts.map +0 -1
  272. package/dist/hooks/learned-skills/types.js +0 -8
  273. package/dist/hooks/learned-skills/types.js.map +0 -1
  274. package/dist/hooks/learned-skills/validator.d.ts +0 -15
  275. package/dist/hooks/learned-skills/validator.d.ts.map +0 -1
  276. package/dist/hooks/learned-skills/validator.js +0 -87
  277. package/dist/hooks/learned-skills/validator.js.map +0 -1
  278. package/dist/hooks/learned-skills/writer.d.ts +0 -27
  279. package/dist/hooks/learned-skills/writer.d.ts.map +0 -1
  280. package/dist/hooks/learned-skills/writer.js +0 -126
  281. package/dist/hooks/learned-skills/writer.js.map +0 -1
  282. package/dist/hooks/mnemosyne/config.d.ts +0 -53
  283. package/dist/hooks/mnemosyne/config.d.ts.map +0 -1
  284. package/dist/hooks/mnemosyne/config.js +0 -103
  285. package/dist/hooks/mnemosyne/config.js.map +0 -1
  286. package/dist/hooks/mnemosyne/constants.d.ts +0 -24
  287. package/dist/hooks/mnemosyne/constants.d.ts.map +0 -1
  288. package/dist/hooks/mnemosyne/constants.js +0 -26
  289. package/dist/hooks/mnemosyne/constants.js.map +0 -1
  290. package/dist/hooks/mnemosyne/detection-hook.d.ts +0 -39
  291. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +0 -1
  292. package/dist/hooks/mnemosyne/detection-hook.js +0 -83
  293. package/dist/hooks/mnemosyne/detection-hook.js.map +0 -1
  294. package/dist/hooks/mnemosyne/detector.d.ts +0 -30
  295. package/dist/hooks/mnemosyne/detector.d.ts.map +0 -1
  296. package/dist/hooks/mnemosyne/detector.js +0 -150
  297. package/dist/hooks/mnemosyne/detector.js.map +0 -1
  298. package/dist/hooks/mnemosyne/finder.d.ts +0 -21
  299. package/dist/hooks/mnemosyne/finder.d.ts.map +0 -1
  300. package/dist/hooks/mnemosyne/finder.js +0 -117
  301. package/dist/hooks/mnemosyne/finder.js.map +0 -1
  302. package/dist/hooks/mnemosyne/index.d.ts +0 -62
  303. package/dist/hooks/mnemosyne/index.d.ts.map +0 -1
  304. package/dist/hooks/mnemosyne/index.js +0 -137
  305. package/dist/hooks/mnemosyne/index.js.map +0 -1
  306. package/dist/hooks/mnemosyne/loader.d.ts +0 -20
  307. package/dist/hooks/mnemosyne/loader.d.ts.map +0 -1
  308. package/dist/hooks/mnemosyne/loader.js +0 -113
  309. package/dist/hooks/mnemosyne/loader.js.map +0 -1
  310. package/dist/hooks/mnemosyne/parser.d.ts +0 -21
  311. package/dist/hooks/mnemosyne/parser.d.ts.map +0 -1
  312. package/dist/hooks/mnemosyne/parser.js +0 -190
  313. package/dist/hooks/mnemosyne/parser.js.map +0 -1
  314. package/dist/hooks/mnemosyne/promotion.d.ts +0 -29
  315. package/dist/hooks/mnemosyne/promotion.d.ts.map +0 -1
  316. package/dist/hooks/mnemosyne/promotion.js +0 -87
  317. package/dist/hooks/mnemosyne/promotion.js.map +0 -1
  318. package/dist/hooks/mnemosyne/types.d.ts +0 -109
  319. package/dist/hooks/mnemosyne/types.d.ts.map +0 -1
  320. package/dist/hooks/mnemosyne/types.js +0 -8
  321. package/dist/hooks/mnemosyne/types.js.map +0 -1
  322. package/dist/hooks/mnemosyne/validator.d.ts +0 -15
  323. package/dist/hooks/mnemosyne/validator.d.ts.map +0 -1
  324. package/dist/hooks/mnemosyne/validator.js +0 -87
  325. package/dist/hooks/mnemosyne/validator.js.map +0 -1
  326. package/dist/hooks/mnemosyne/writer.d.ts +0 -27
  327. package/dist/hooks/mnemosyne/writer.d.ts.map +0 -1
  328. package/dist/hooks/mnemosyne/writer.js +0 -126
  329. package/dist/hooks/mnemosyne/writer.js.map +0 -1
  330. package/dist/hooks/ralph-loop/index.d.ts +0 -116
  331. package/dist/hooks/ralph-loop/index.d.ts.map +0 -1
  332. package/dist/hooks/ralph-loop/index.js +0 -322
  333. package/dist/hooks/ralph-loop/index.js.map +0 -1
  334. package/dist/hooks/ralph-prd/index.d.ts +0 -130
  335. package/dist/hooks/ralph-prd/index.d.ts.map +0 -1
  336. package/dist/hooks/ralph-prd/index.js +0 -310
  337. package/dist/hooks/ralph-prd/index.js.map +0 -1
  338. package/dist/hooks/ralph-progress/index.d.ts +0 -102
  339. package/dist/hooks/ralph-progress/index.d.ts.map +0 -1
  340. package/dist/hooks/ralph-progress/index.js +0 -408
  341. package/dist/hooks/ralph-progress/index.js.map +0 -1
  342. package/dist/hooks/ralph-verifier/index.d.ts +0 -72
  343. package/dist/hooks/ralph-verifier/index.d.ts.map +0 -1
  344. package/dist/hooks/ralph-verifier/index.js +0 -223
  345. package/dist/hooks/ralph-verifier/index.js.map +0 -1
  346. package/dist/hooks/session-recovery/constants.d.ts +0 -56
  347. package/dist/hooks/session-recovery/constants.d.ts.map +0 -1
  348. package/dist/hooks/session-recovery/constants.js +0 -78
  349. package/dist/hooks/session-recovery/constants.js.map +0 -1
  350. package/dist/hooks/session-recovery/index.d.ts +0 -53
  351. package/dist/hooks/session-recovery/index.d.ts.map +0 -1
  352. package/dist/hooks/session-recovery/index.js +0 -321
  353. package/dist/hooks/session-recovery/index.js.map +0 -1
  354. package/dist/hooks/session-recovery/storage.d.ts +0 -76
  355. package/dist/hooks/session-recovery/storage.d.ts.map +0 -1
  356. package/dist/hooks/session-recovery/storage.js +0 -383
  357. package/dist/hooks/session-recovery/storage.js.map +0 -1
  358. package/dist/hooks/session-recovery/types.d.ts +0 -145
  359. package/dist/hooks/session-recovery/types.d.ts.map +0 -1
  360. package/dist/hooks/session-recovery/types.js +0 -8
  361. package/dist/hooks/session-recovery/types.js.map +0 -1
  362. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +0 -23
  363. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +0 -1
  364. package/dist/hooks/sisyphus-orchestrator/constants.js +0 -142
  365. package/dist/hooks/sisyphus-orchestrator/constants.js.map +0 -1
  366. package/dist/hooks/sisyphus-orchestrator/index.d.ts +0 -113
  367. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +0 -1
  368. package/dist/hooks/sisyphus-orchestrator/index.js +0 -309
  369. package/dist/hooks/sisyphus-orchestrator/index.js.map +0 -1
  370. package/dist/hooks/ultraqa-loop/index.d.ts +0 -94
  371. package/dist/hooks/ultraqa-loop/index.d.ts.map +0 -1
  372. package/dist/hooks/ultraqa-loop/index.js +0 -216
  373. package/dist/hooks/ultraqa-loop/index.js.map +0 -1
  374. package/dist/hooks/ultrawork-state/index.d.ts +0 -62
  375. package/dist/hooks/ultrawork-state/index.d.ts.map +0 -1
  376. package/dist/hooks/ultrawork-state/index.js +0 -208
  377. package/dist/hooks/ultrawork-state/index.js.map +0 -1
  378. package/dist/hud/sisyphus-state.d.ts +0 -31
  379. package/dist/hud/sisyphus-state.d.ts.map +0 -1
  380. package/dist/hud/sisyphus-state.js +0 -163
  381. package/dist/hud/sisyphus-state.js.map +0 -1
@@ -0,0 +1,524 @@
1
+ /**
2
+ * MCP Server Bridge
3
+ *
4
+ * Connects to MCP servers and exposes their tools to OMC.
5
+ * Handles:
6
+ * - Server lifecycle (spawn, connect, disconnect)
7
+ * - Tool discovery from MCP servers
8
+ * - Tool invocation routing
9
+ * - Resource access
10
+ */
11
+ import { spawn } from 'child_process';
12
+ import { EventEmitter } from 'events';
13
+ import { basename } from 'path';
14
+ import { getRegistry } from './registry.js';
15
+ /**
16
+ * Security Error for MCP bridge operations
17
+ */
18
+ export class McpSecurityError extends Error {
19
+ constructor(message) {
20
+ super(message);
21
+ this.name = 'McpSecurityError';
22
+ }
23
+ }
24
+ /**
25
+ * Allowed commands whitelist for MCP server spawning
26
+ * Only these executables can be spawned as MCP servers
27
+ */
28
+ const ALLOWED_COMMANDS = new Set([
29
+ 'node',
30
+ 'npx',
31
+ 'python',
32
+ 'python3',
33
+ 'ruby',
34
+ 'go',
35
+ 'deno',
36
+ 'bun',
37
+ 'uvx',
38
+ 'uv',
39
+ 'cargo',
40
+ 'java',
41
+ 'dotnet',
42
+ ]);
43
+ /**
44
+ * Dangerous environment variables that could be used for code injection
45
+ */
46
+ const BLOCKED_ENV_VARS = new Set([
47
+ 'LD_PRELOAD',
48
+ 'LD_LIBRARY_PATH',
49
+ 'DYLD_INSERT_LIBRARIES',
50
+ 'DYLD_LIBRARY_PATH',
51
+ 'NODE_OPTIONS',
52
+ 'NODE_DEBUG',
53
+ 'ELECTRON_RUN_AS_NODE',
54
+ 'PYTHONSTARTUP',
55
+ 'PYTHONPATH',
56
+ 'RUBYOPT',
57
+ 'PERL5OPT',
58
+ 'BASH_ENV',
59
+ 'ENV',
60
+ 'ZDOTDIR',
61
+ ]);
62
+ /**
63
+ * MCP Bridge - Manages connections to MCP servers
64
+ */
65
+ export class McpBridge extends EventEmitter {
66
+ connections = new Map();
67
+ serverConfigs = new Map();
68
+ /**
69
+ * Register a server configuration
70
+ */
71
+ registerServer(name, config) {
72
+ this.serverConfigs.set(name, config);
73
+ }
74
+ /**
75
+ * Connect to an MCP server
76
+ */
77
+ async connect(serverName) {
78
+ const config = this.serverConfigs.get(serverName);
79
+ if (!config) {
80
+ throw new Error(`Unknown MCP server: ${serverName}`);
81
+ }
82
+ // Check if already connected
83
+ if (this.connections.has(serverName)) {
84
+ const conn = this.connections.get(serverName);
85
+ return this.convertToExternalTools(serverName, conn.tools);
86
+ }
87
+ // SECURITY: Validate command is in whitelist
88
+ const commandBasename = basename(config.command);
89
+ if (!ALLOWED_COMMANDS.has(commandBasename)) {
90
+ throw new McpSecurityError(`Command not in whitelist: ${config.command}. ` +
91
+ `Allowed commands: ${[...ALLOWED_COMMANDS].join(', ')}`);
92
+ }
93
+ // SECURITY: Filter out dangerous environment variables
94
+ const safeEnv = { ...process.env };
95
+ if (config.env) {
96
+ for (const [key, value] of Object.entries(config.env)) {
97
+ if (BLOCKED_ENV_VARS.has(key.toUpperCase())) {
98
+ this.emit('security-warning', {
99
+ server: serverName,
100
+ message: `Blocked dangerous environment variable: ${key}`,
101
+ });
102
+ continue;
103
+ }
104
+ safeEnv[key] = value;
105
+ }
106
+ }
107
+ // Spawn the server process
108
+ const child = spawn(config.command, config.args || [], {
109
+ env: safeEnv,
110
+ stdio: ['pipe', 'pipe', 'pipe'],
111
+ });
112
+ const connection = {
113
+ process: child,
114
+ serverName,
115
+ requestId: 0,
116
+ pendingRequests: new Map(),
117
+ tools: [],
118
+ resources: [],
119
+ buffer: '',
120
+ };
121
+ this.connections.set(serverName, connection);
122
+ // SECURITY: Set up error handler for spawn failures
123
+ child.on('error', (error) => {
124
+ this.connections.delete(serverName);
125
+ this.emit('spawn-error', { server: serverName, error: error.message });
126
+ // Update registry with error state
127
+ const registry = getRegistry();
128
+ registry.updateMcpServer(serverName, {
129
+ connected: false,
130
+ error: `Spawn failed: ${error.message}`,
131
+ });
132
+ });
133
+ // Set up message handling
134
+ child.stdout?.on('data', (data) => {
135
+ this.handleData(serverName, data);
136
+ });
137
+ child.stderr?.on('data', (data) => {
138
+ this.emit('server-error', { server: serverName, error: data.toString() });
139
+ });
140
+ child.on('exit', (code) => {
141
+ this.connections.delete(serverName);
142
+ this.emit('server-disconnected', { server: serverName, code });
143
+ // Update registry
144
+ const registry = getRegistry();
145
+ registry.updateMcpServer(serverName, { connected: false });
146
+ });
147
+ // Wait for server to be ready
148
+ await this.waitForReady(serverName);
149
+ // Initialize the connection
150
+ await this.initialize(serverName);
151
+ // Discover tools
152
+ const tools = await this.listTools(serverName);
153
+ connection.tools = tools;
154
+ // Discover resources
155
+ try {
156
+ const resources = await this.listResources(serverName);
157
+ connection.resources = resources;
158
+ }
159
+ catch {
160
+ // Resources are optional
161
+ }
162
+ // Convert to external tools and update registry
163
+ const externalTools = this.convertToExternalTools(serverName, tools);
164
+ const registry = getRegistry();
165
+ registry.updateMcpServer(serverName, {
166
+ connected: true,
167
+ tools: externalTools,
168
+ });
169
+ this.emit('server-connected', { server: serverName, toolCount: tools.length });
170
+ return externalTools;
171
+ }
172
+ /**
173
+ * Disconnect from an MCP server
174
+ */
175
+ disconnect(serverName) {
176
+ const connection = this.connections.get(serverName);
177
+ if (!connection)
178
+ return;
179
+ try {
180
+ connection.process.kill();
181
+ }
182
+ catch {
183
+ // Ignore kill errors
184
+ }
185
+ this.connections.delete(serverName);
186
+ // Update registry
187
+ const registry = getRegistry();
188
+ registry.updateMcpServer(serverName, { connected: false, tools: [] });
189
+ }
190
+ /**
191
+ * Disconnect from all servers
192
+ */
193
+ disconnectAll() {
194
+ for (const serverName of this.connections.keys()) {
195
+ this.disconnect(serverName);
196
+ }
197
+ }
198
+ /**
199
+ * Check if connected to a server
200
+ */
201
+ isConnected(serverName) {
202
+ return this.connections.has(serverName);
203
+ }
204
+ /**
205
+ * Invoke a tool on an MCP server
206
+ */
207
+ async invokeTool(serverName, toolName, arguments_) {
208
+ const connection = this.connections.get(serverName);
209
+ if (!connection) {
210
+ return {
211
+ success: false,
212
+ error: `Not connected to MCP server: ${serverName}`,
213
+ };
214
+ }
215
+ const startTime = Date.now();
216
+ try {
217
+ const result = await this.sendRequest(serverName, 'tools/call', {
218
+ name: toolName,
219
+ arguments: arguments_,
220
+ });
221
+ return {
222
+ success: true,
223
+ data: result,
224
+ executionTime: Date.now() - startTime,
225
+ };
226
+ }
227
+ catch (error) {
228
+ return {
229
+ success: false,
230
+ error: error instanceof Error ? error.message : String(error),
231
+ executionTime: Date.now() - startTime,
232
+ };
233
+ }
234
+ }
235
+ /**
236
+ * Read a resource from an MCP server
237
+ */
238
+ async readResource(serverName, uri) {
239
+ const connection = this.connections.get(serverName);
240
+ if (!connection) {
241
+ return {
242
+ success: false,
243
+ error: `Not connected to MCP server: ${serverName}`,
244
+ };
245
+ }
246
+ try {
247
+ const result = await this.sendRequest(serverName, 'resources/read', { uri });
248
+ return {
249
+ success: true,
250
+ data: result,
251
+ };
252
+ }
253
+ catch (error) {
254
+ return {
255
+ success: false,
256
+ error: error instanceof Error ? error.message : String(error),
257
+ };
258
+ }
259
+ }
260
+ /**
261
+ * Get available tools from a connected server
262
+ */
263
+ getServerTools(serverName) {
264
+ return this.connections.get(serverName)?.tools || [];
265
+ }
266
+ /**
267
+ * Get available resources from a connected server
268
+ */
269
+ getServerResources(serverName) {
270
+ return this.connections.get(serverName)?.resources || [];
271
+ }
272
+ /**
273
+ * Wait for server to be ready
274
+ */
275
+ async waitForReady(serverName, timeout = 10000) {
276
+ const start = Date.now();
277
+ while (Date.now() - start < timeout) {
278
+ const connection = this.connections.get(serverName);
279
+ if (!connection) {
280
+ throw new Error('Server connection lost');
281
+ }
282
+ // Try to ping the server
283
+ try {
284
+ await this.sendRequest(serverName, 'ping', undefined, 1000);
285
+ return;
286
+ }
287
+ catch {
288
+ // Server not ready yet, wait and retry
289
+ await new Promise(resolve => setTimeout(resolve, 100));
290
+ }
291
+ }
292
+ throw new Error(`Timeout waiting for MCP server ${serverName} to be ready`);
293
+ }
294
+ /**
295
+ * Initialize the MCP connection
296
+ */
297
+ async initialize(serverName) {
298
+ await this.sendRequest(serverName, 'initialize', {
299
+ protocolVersion: '2024-11-05',
300
+ capabilities: {
301
+ tools: {},
302
+ resources: {},
303
+ },
304
+ clientInfo: {
305
+ name: 'oh-my-claudecode',
306
+ version: '3.7.2',
307
+ },
308
+ });
309
+ // Send initialized notification
310
+ this.sendNotification(serverName, 'initialized', {});
311
+ }
312
+ /**
313
+ * List available tools from server
314
+ */
315
+ async listTools(serverName) {
316
+ const result = await this.sendRequest(serverName, 'tools/list', {});
317
+ return result.tools || [];
318
+ }
319
+ /**
320
+ * List available resources from server
321
+ */
322
+ async listResources(serverName) {
323
+ const result = await this.sendRequest(serverName, 'resources/list', {});
324
+ return result.resources || [];
325
+ }
326
+ /**
327
+ * Send an MCP request and wait for response
328
+ */
329
+ sendRequest(serverName, method, params, timeout = 30000) {
330
+ const connection = this.connections.get(serverName);
331
+ if (!connection) {
332
+ return Promise.reject(new Error(`Not connected to server: ${serverName}`));
333
+ }
334
+ const id = ++connection.requestId;
335
+ const request = {
336
+ jsonrpc: '2.0',
337
+ id,
338
+ method,
339
+ params,
340
+ };
341
+ return new Promise((resolve, reject) => {
342
+ const timer = setTimeout(() => {
343
+ connection.pendingRequests.delete(id);
344
+ reject(new Error(`Request timeout: ${method}`));
345
+ }, timeout);
346
+ connection.pendingRequests.set(id, {
347
+ resolve: (result) => {
348
+ clearTimeout(timer);
349
+ resolve(result);
350
+ },
351
+ reject: (error) => {
352
+ clearTimeout(timer);
353
+ reject(error);
354
+ },
355
+ });
356
+ // Send the request
357
+ const message = JSON.stringify(request) + '\n';
358
+ connection.process.stdin?.write(message);
359
+ });
360
+ }
361
+ /**
362
+ * Send an MCP notification (no response expected)
363
+ */
364
+ sendNotification(serverName, method, params) {
365
+ const connection = this.connections.get(serverName);
366
+ if (!connection)
367
+ return;
368
+ const notification = {
369
+ jsonrpc: '2.0',
370
+ method,
371
+ params,
372
+ };
373
+ const message = JSON.stringify(notification) + '\n';
374
+ connection.process.stdin?.write(message);
375
+ }
376
+ /**
377
+ * Handle incoming data from server
378
+ */
379
+ handleData(serverName, data) {
380
+ const connection = this.connections.get(serverName);
381
+ if (!connection)
382
+ return;
383
+ connection.buffer += data.toString();
384
+ // Process complete messages (newline-delimited JSON)
385
+ const lines = connection.buffer.split('\n');
386
+ connection.buffer = lines.pop() || '';
387
+ for (const line of lines) {
388
+ if (!line.trim())
389
+ continue;
390
+ try {
391
+ const message = JSON.parse(line);
392
+ this.handleMessage(serverName, message);
393
+ }
394
+ catch {
395
+ this.emit('parse-error', { server: serverName, data: line });
396
+ }
397
+ }
398
+ }
399
+ /**
400
+ * Handle a parsed MCP message
401
+ */
402
+ handleMessage(serverName, message) {
403
+ const connection = this.connections.get(serverName);
404
+ if (!connection)
405
+ return;
406
+ // Check if this is a response to a pending request
407
+ if (message.id !== undefined) {
408
+ const pending = connection.pendingRequests.get(message.id);
409
+ if (pending) {
410
+ connection.pendingRequests.delete(message.id);
411
+ if (message.error) {
412
+ pending.reject(new Error(message.error.message));
413
+ }
414
+ else {
415
+ pending.resolve(message.result);
416
+ }
417
+ }
418
+ }
419
+ }
420
+ /**
421
+ * Convert MCP tools to ExternalTool format
422
+ */
423
+ convertToExternalTools(serverName, tools) {
424
+ return tools.map(tool => ({
425
+ name: `mcp__${serverName}__${tool.name}`,
426
+ type: 'mcp',
427
+ source: serverName,
428
+ description: tool.description,
429
+ capabilities: this.inferCapabilities(tool.name, tool.description),
430
+ enabled: true,
431
+ schema: tool.inputSchema,
432
+ priority: 40, // MCP tools have lower priority than built-in
433
+ }));
434
+ }
435
+ /**
436
+ * Infer capabilities from tool name and description
437
+ */
438
+ inferCapabilities(name, description) {
439
+ const capabilities = [];
440
+ const text = `${name} ${description || ''}`.toLowerCase();
441
+ if (text.includes('read') || text.includes('get') || text.includes('list') || text.includes('fetch')) {
442
+ capabilities.push('read');
443
+ }
444
+ if (text.includes('write') || text.includes('create') || text.includes('edit') || text.includes('update')) {
445
+ capabilities.push('write');
446
+ }
447
+ if (text.includes('exec') || text.includes('run') || text.includes('execute')) {
448
+ capabilities.push('execute');
449
+ }
450
+ if (text.includes('search') || text.includes('find') || text.includes('query')) {
451
+ capabilities.push('search');
452
+ }
453
+ return capabilities.length > 0 ? capabilities : ['unknown'];
454
+ }
455
+ /**
456
+ * Auto-connect to enabled servers from registry
457
+ */
458
+ async autoConnect() {
459
+ const registry = getRegistry();
460
+ const results = new Map();
461
+ for (const server of registry.getAllMcpServers()) {
462
+ if (server.config.enabled === false)
463
+ continue;
464
+ this.registerServer(server.name, server.config);
465
+ try {
466
+ const tools = await this.connect(server.name);
467
+ results.set(server.name, tools);
468
+ }
469
+ catch (error) {
470
+ registry.updateMcpServer(server.name, {
471
+ connected: false,
472
+ error: error instanceof Error ? error.message : String(error),
473
+ });
474
+ this.emit('connect-error', { server: server.name, error });
475
+ }
476
+ }
477
+ return results;
478
+ }
479
+ /**
480
+ * Get connection status for all servers
481
+ */
482
+ getConnectionStatus() {
483
+ const status = new Map();
484
+ for (const [name, config] of this.serverConfigs) {
485
+ status.set(name, this.connections.has(name));
486
+ }
487
+ return status;
488
+ }
489
+ }
490
+ /**
491
+ * Singleton bridge instance
492
+ */
493
+ let bridgeInstance = null;
494
+ /**
495
+ * Get the MCP bridge singleton
496
+ */
497
+ export function getMcpBridge() {
498
+ if (!bridgeInstance) {
499
+ bridgeInstance = new McpBridge();
500
+ }
501
+ return bridgeInstance;
502
+ }
503
+ /**
504
+ * Reset bridge instance (for testing)
505
+ */
506
+ export function resetMcpBridge() {
507
+ if (bridgeInstance) {
508
+ bridgeInstance.disconnectAll();
509
+ bridgeInstance = null;
510
+ }
511
+ }
512
+ /**
513
+ * Quick access to invoke a tool
514
+ */
515
+ export async function invokeMcpTool(serverName, toolName, arguments_) {
516
+ return getMcpBridge().invokeTool(serverName, toolName, arguments_);
517
+ }
518
+ /**
519
+ * Quick access to read a resource
520
+ */
521
+ export async function readMcpResource(serverName, uri) {
522
+ return getMcpBridge().readResource(serverName, uri);
523
+ }
524
+ //# sourceMappingURL=mcp-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-bridge.js","sourceRoot":"","sources":["../../src/compatibility/mcp-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Permission Adapter for External Tools
3
+ *
4
+ * Integrates external plugins and MCP tools with OMC's permission system.
5
+ * Provides:
6
+ * - Safe command pattern registration from plugins
7
+ * - Permission inheritance for known-safe tools
8
+ * - Delegation-aware routing to avoid conflicts
9
+ */
10
+ import type { PermissionCheckResult, SafeCommandPattern, DiscoveredPlugin } from './types.js';
11
+ /**
12
+ * Security Error for permission adapter operations
13
+ */
14
+ export declare class PermissionSecurityError extends Error {
15
+ constructor(message: string);
16
+ }
17
+ /**
18
+ * Register safe patterns from a plugin
19
+ */
20
+ export declare function registerPluginSafePatterns(plugin: DiscoveredPlugin): void;
21
+ /**
22
+ * Check if a tool/action is allowed without prompting user
23
+ */
24
+ export declare function checkPermission(toolName: string, input?: Record<string, unknown>): PermissionCheckResult;
25
+ /**
26
+ * Grant permission for a tool (cache the decision)
27
+ */
28
+ export declare function grantPermission(toolName: string, input?: Record<string, unknown>): void;
29
+ /**
30
+ * Deny permission for a tool (cache the decision)
31
+ */
32
+ export declare function denyPermission(toolName: string, input?: Record<string, unknown>): void;
33
+ /**
34
+ * Clear permission cache
35
+ */
36
+ export declare function clearPermissionCache(): void;
37
+ /**
38
+ * Get all registered safe patterns
39
+ */
40
+ export declare function getSafePatterns(): SafeCommandPattern[];
41
+ /**
42
+ * Add a custom safe pattern
43
+ */
44
+ export declare function addSafePattern(pattern: SafeCommandPattern): void;
45
+ /**
46
+ * Remove safe patterns from a specific source
47
+ */
48
+ export declare function removeSafePatternsFromSource(source: string): void;
49
+ /**
50
+ * Check if tool should be delegated (not handled directly by OMC)
51
+ */
52
+ export declare function shouldDelegate(toolName: string): boolean;
53
+ /**
54
+ * Get delegation target for a tool
55
+ */
56
+ export declare function getDelegationTarget(toolName: string): {
57
+ type: 'plugin' | 'mcp' | 'internal';
58
+ target: string;
59
+ } | null;
60
+ /**
61
+ * Integrate permission adapter with OMC's permission system
62
+ * Call this during initialization to register patterns from discovered plugins
63
+ */
64
+ export declare function integrateWithPermissionSystem(): void;
65
+ /**
66
+ * Process a permission request from hook system
67
+ * Returns hook-compatible output
68
+ */
69
+ export declare function processExternalToolPermission(toolName: string, toolInput?: Record<string, unknown>): {
70
+ continue: boolean;
71
+ hookSpecificOutput?: {
72
+ hookEventName: string;
73
+ decision: {
74
+ behavior: 'allow' | 'deny' | 'ask';
75
+ reason?: string;
76
+ };
77
+ };
78
+ };
79
+ //# sourceMappingURL=permission-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-adapter.d.ts","sourceRoot":"","sources":["../../src/compatibility/permission-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAGV,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AA+FpB;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAiBD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAuBzE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,qBAAqB,CAmEvB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAMvF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAMtF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,kBAAkB,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAwBxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACrD,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CA0BP;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAqBpD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC;IACD,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE;YACR,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;YACnC,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH,CAgCA"}