oh-my-claudecode 0.1.4 → 0.2.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 (405) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +303 -135
  3. package/bin/yith-mcp.js +5 -0
  4. package/commands/cthulhu.md +2 -0
  5. package/dist/agents/cthulhu.d.ts.map +1 -1
  6. package/dist/agents/cthulhu.js +7 -0
  7. package/dist/agents/cthulhu.js.map +1 -1
  8. package/dist/cli/doctor.d.ts +7 -0
  9. package/dist/cli/doctor.d.ts.map +1 -1
  10. package/dist/cli/doctor.js +120 -0
  11. package/dist/cli/doctor.js.map +1 -1
  12. package/dist/cli/index.js +7 -2
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/cli/install.d.ts.map +1 -1
  15. package/dist/cli/install.js +173 -0
  16. package/dist/cli/install.js.map +1 -1
  17. package/dist/config/schema.d.ts +4 -4
  18. package/dist/config/schema.d.ts.map +1 -1
  19. package/dist/config/schema.js +1 -0
  20. package/dist/config/schema.js.map +1 -1
  21. package/dist/features/block-summarizer/index.d.ts +51 -0
  22. package/dist/features/block-summarizer/index.d.ts.map +1 -0
  23. package/dist/features/block-summarizer/index.js +136 -0
  24. package/dist/features/block-summarizer/index.js.map +1 -0
  25. package/dist/features/yith-archive/config.d.ts +20 -0
  26. package/dist/features/yith-archive/config.d.ts.map +1 -0
  27. package/dist/features/yith-archive/config.js +194 -0
  28. package/dist/features/yith-archive/config.js.map +1 -0
  29. package/dist/features/yith-archive/eval/metrics-store.d.ts +12 -0
  30. package/dist/features/yith-archive/eval/metrics-store.d.ts.map +1 -0
  31. package/dist/features/yith-archive/eval/metrics-store.js +56 -0
  32. package/dist/features/yith-archive/eval/metrics-store.js.map +1 -0
  33. package/dist/features/yith-archive/eval/quality.d.ts +17 -0
  34. package/dist/features/yith-archive/eval/quality.d.ts.map +1 -0
  35. package/dist/features/yith-archive/eval/quality.js +54 -0
  36. package/dist/features/yith-archive/eval/quality.js.map +1 -0
  37. package/dist/features/yith-archive/eval/schemas.d.ts +225 -0
  38. package/dist/features/yith-archive/eval/schemas.d.ts.map +1 -0
  39. package/dist/features/yith-archive/eval/schemas.js +111 -0
  40. package/dist/features/yith-archive/eval/schemas.js.map +1 -0
  41. package/dist/features/yith-archive/eval/self-correct.d.ts +9 -0
  42. package/dist/features/yith-archive/eval/self-correct.d.ts.map +1 -0
  43. package/dist/features/yith-archive/eval/self-correct.js +17 -0
  44. package/dist/features/yith-archive/eval/self-correct.js.map +1 -0
  45. package/dist/features/yith-archive/eval/validator.d.ts +17 -0
  46. package/dist/features/yith-archive/eval/validator.d.ts.map +1 -0
  47. package/dist/features/yith-archive/eval/validator.js +20 -0
  48. package/dist/features/yith-archive/eval/validator.js.map +1 -0
  49. package/dist/features/yith-archive/functions/actions.d.ts +4 -0
  50. package/dist/features/yith-archive/functions/actions.d.ts.map +1 -0
  51. package/dist/features/yith-archive/functions/actions.js +198 -0
  52. package/dist/features/yith-archive/functions/actions.js.map +1 -0
  53. package/dist/features/yith-archive/functions/audit.d.ts +10 -0
  54. package/dist/features/yith-archive/functions/audit.d.ts.map +1 -0
  55. package/dist/features/yith-archive/functions/audit.js +38 -0
  56. package/dist/features/yith-archive/functions/audit.js.map +1 -0
  57. package/dist/features/yith-archive/functions/auto-forget.d.ts +4 -0
  58. package/dist/features/yith-archive/functions/auto-forget.d.ts.map +1 -0
  59. package/dist/features/yith-archive/functions/auto-forget.js +130 -0
  60. package/dist/features/yith-archive/functions/auto-forget.js.map +1 -0
  61. package/dist/features/yith-archive/functions/cascade.d.ts +4 -0
  62. package/dist/features/yith-archive/functions/cascade.d.ts.map +1 -0
  63. package/dist/features/yith-archive/functions/cascade.js +66 -0
  64. package/dist/features/yith-archive/functions/cascade.js.map +1 -0
  65. package/dist/features/yith-archive/functions/checkpoints.d.ts +4 -0
  66. package/dist/features/yith-archive/functions/checkpoints.d.ts.map +1 -0
  67. package/dist/features/yith-archive/functions/checkpoints.js +146 -0
  68. package/dist/features/yith-archive/functions/checkpoints.js.map +1 -0
  69. package/dist/features/yith-archive/functions/compress.d.ts +13 -0
  70. package/dist/features/yith-archive/functions/compress.d.ts.map +1 -0
  71. package/dist/features/yith-archive/functions/compress.js +260 -0
  72. package/dist/features/yith-archive/functions/compress.js.map +1 -0
  73. package/dist/features/yith-archive/functions/consolidate.d.ts +16 -0
  74. package/dist/features/yith-archive/functions/consolidate.d.ts.map +1 -0
  75. package/dist/features/yith-archive/functions/consolidate.js +378 -0
  76. package/dist/features/yith-archive/functions/consolidate.js.map +1 -0
  77. package/dist/features/yith-archive/functions/consolidation-pipeline.d.ts +26 -0
  78. package/dist/features/yith-archive/functions/consolidation-pipeline.d.ts.map +1 -0
  79. package/dist/features/yith-archive/functions/consolidation-pipeline.js +730 -0
  80. package/dist/features/yith-archive/functions/consolidation-pipeline.js.map +1 -0
  81. package/dist/features/yith-archive/functions/context.d.ts +4 -0
  82. package/dist/features/yith-archive/functions/context.d.ts.map +1 -0
  83. package/dist/features/yith-archive/functions/context.js +121 -0
  84. package/dist/features/yith-archive/functions/context.js.map +1 -0
  85. package/dist/features/yith-archive/functions/crystallize.d.ts +25 -0
  86. package/dist/features/yith-archive/functions/crystallize.d.ts.map +1 -0
  87. package/dist/features/yith-archive/functions/crystallize.js +341 -0
  88. package/dist/features/yith-archive/functions/crystallize.js.map +1 -0
  89. package/dist/features/yith-archive/functions/dedup.d.ts +12 -0
  90. package/dist/features/yith-archive/functions/dedup.d.ts.map +1 -0
  91. package/dist/features/yith-archive/functions/dedup.js +45 -0
  92. package/dist/features/yith-archive/functions/dedup.js.map +1 -0
  93. package/dist/features/yith-archive/functions/diagnostics.d.ts +4 -0
  94. package/dist/features/yith-archive/functions/diagnostics.d.ts.map +1 -0
  95. package/dist/features/yith-archive/functions/diagnostics.js +619 -0
  96. package/dist/features/yith-archive/functions/diagnostics.js.map +1 -0
  97. package/dist/features/yith-archive/functions/enrich.d.ts +4 -0
  98. package/dist/features/yith-archive/functions/enrich.d.ts.map +1 -0
  99. package/dist/features/yith-archive/functions/enrich.js +85 -0
  100. package/dist/features/yith-archive/functions/enrich.js.map +1 -0
  101. package/dist/features/yith-archive/functions/evict.d.ts +4 -0
  102. package/dist/features/yith-archive/functions/evict.d.ts.map +1 -0
  103. package/dist/features/yith-archive/functions/evict.js +116 -0
  104. package/dist/features/yith-archive/functions/evict.js.map +1 -0
  105. package/dist/features/yith-archive/functions/export-import.d.ts +4 -0
  106. package/dist/features/yith-archive/functions/export-import.d.ts.map +1 -0
  107. package/dist/features/yith-archive/functions/export-import.js +497 -0
  108. package/dist/features/yith-archive/functions/export-import.js.map +1 -0
  109. package/dist/features/yith-archive/functions/facets.d.ts +4 -0
  110. package/dist/features/yith-archive/functions/facets.d.ts.map +1 -0
  111. package/dist/features/yith-archive/functions/facets.js +175 -0
  112. package/dist/features/yith-archive/functions/facets.js.map +1 -0
  113. package/dist/features/yith-archive/functions/file-index.d.ts +4 -0
  114. package/dist/features/yith-archive/functions/file-index.d.ts.map +1 -0
  115. package/dist/features/yith-archive/functions/file-index.js +68 -0
  116. package/dist/features/yith-archive/functions/file-index.js.map +1 -0
  117. package/dist/features/yith-archive/functions/flow-compress.d.ts +7 -0
  118. package/dist/features/yith-archive/functions/flow-compress.d.ts.map +1 -0
  119. package/dist/features/yith-archive/functions/flow-compress.js +300 -0
  120. package/dist/features/yith-archive/functions/flow-compress.js.map +1 -0
  121. package/dist/features/yith-archive/functions/frontier.d.ts +11 -0
  122. package/dist/features/yith-archive/functions/frontier.d.ts.map +1 -0
  123. package/dist/features/yith-archive/functions/frontier.js +131 -0
  124. package/dist/features/yith-archive/functions/frontier.js.map +1 -0
  125. package/dist/features/yith-archive/functions/graph-retrieval.d.ts +23 -0
  126. package/dist/features/yith-archive/functions/graph-retrieval.d.ts.map +1 -0
  127. package/dist/features/yith-archive/functions/graph-retrieval.js +197 -0
  128. package/dist/features/yith-archive/functions/graph-retrieval.js.map +1 -0
  129. package/dist/features/yith-archive/functions/graph.d.ts +7 -0
  130. package/dist/features/yith-archive/functions/graph.d.ts.map +1 -0
  131. package/dist/features/yith-archive/functions/graph.js +312 -0
  132. package/dist/features/yith-archive/functions/graph.js.map +1 -0
  133. package/dist/features/yith-archive/functions/leases.d.ts +4 -0
  134. package/dist/features/yith-archive/functions/leases.d.ts.map +1 -0
  135. package/dist/features/yith-archive/functions/leases.js +157 -0
  136. package/dist/features/yith-archive/functions/leases.js.map +1 -0
  137. package/dist/features/yith-archive/functions/lessons.d.ts +4 -0
  138. package/dist/features/yith-archive/functions/lessons.d.ts.map +1 -0
  139. package/dist/features/yith-archive/functions/lessons.js +174 -0
  140. package/dist/features/yith-archive/functions/lessons.js.map +1 -0
  141. package/dist/features/yith-archive/functions/migrate.d.ts +4 -0
  142. package/dist/features/yith-archive/functions/migrate.d.ts.map +1 -0
  143. package/dist/features/yith-archive/functions/migrate.js +144 -0
  144. package/dist/features/yith-archive/functions/migrate.js.map +1 -0
  145. package/dist/features/yith-archive/functions/observe.d.ts +5 -0
  146. package/dist/features/yith-archive/functions/observe.d.ts.map +1 -0
  147. package/dist/features/yith-archive/functions/observe.js +108 -0
  148. package/dist/features/yith-archive/functions/observe.js.map +1 -0
  149. package/dist/features/yith-archive/functions/patterns.d.ts +4 -0
  150. package/dist/features/yith-archive/functions/patterns.d.ts.map +1 -0
  151. package/dist/features/yith-archive/functions/patterns.js +93 -0
  152. package/dist/features/yith-archive/functions/patterns.js.map +1 -0
  153. package/dist/features/yith-archive/functions/privacy.d.ts +4 -0
  154. package/dist/features/yith-archive/functions/privacy.d.ts.map +1 -0
  155. package/dist/features/yith-archive/functions/privacy.js +32 -0
  156. package/dist/features/yith-archive/functions/privacy.js.map +1 -0
  157. package/dist/features/yith-archive/functions/profile.d.ts +4 -0
  158. package/dist/features/yith-archive/functions/profile.d.ts.map +1 -0
  159. package/dist/features/yith-archive/functions/profile.js +107 -0
  160. package/dist/features/yith-archive/functions/profile.js.map +1 -0
  161. package/dist/features/yith-archive/functions/query-expansion.d.ts +7 -0
  162. package/dist/features/yith-archive/functions/query-expansion.d.ts.map +1 -0
  163. package/dist/features/yith-archive/functions/query-expansion.js +238 -0
  164. package/dist/features/yith-archive/functions/query-expansion.js.map +1 -0
  165. package/dist/features/yith-archive/functions/reflect.d.ts +11 -0
  166. package/dist/features/yith-archive/functions/reflect.d.ts.map +1 -0
  167. package/dist/features/yith-archive/functions/reflect.js +576 -0
  168. package/dist/features/yith-archive/functions/reflect.js.map +1 -0
  169. package/dist/features/yith-archive/functions/relations.d.ts +4 -0
  170. package/dist/features/yith-archive/functions/relations.d.ts.map +1 -0
  171. package/dist/features/yith-archive/functions/relations.js +169 -0
  172. package/dist/features/yith-archive/functions/relations.js.map +1 -0
  173. package/dist/features/yith-archive/functions/remember.d.ts +4 -0
  174. package/dist/features/yith-archive/functions/remember.d.ts.map +1 -0
  175. package/dist/features/yith-archive/functions/remember.js +119 -0
  176. package/dist/features/yith-archive/functions/remember.js.map +1 -0
  177. package/dist/features/yith-archive/functions/retention.d.ts +4 -0
  178. package/dist/features/yith-archive/functions/retention.d.ts.map +1 -0
  179. package/dist/features/yith-archive/functions/retention.js +152 -0
  180. package/dist/features/yith-archive/functions/retention.js.map +1 -0
  181. package/dist/features/yith-archive/functions/search.d.ts +59 -0
  182. package/dist/features/yith-archive/functions/search.d.ts.map +1 -0
  183. package/dist/features/yith-archive/functions/search.js +336 -0
  184. package/dist/features/yith-archive/functions/search.js.map +1 -0
  185. package/dist/features/yith-archive/functions/signals.d.ts +4 -0
  186. package/dist/features/yith-archive/functions/signals.d.ts.map +1 -0
  187. package/dist/features/yith-archive/functions/signals.js +128 -0
  188. package/dist/features/yith-archive/functions/signals.js.map +1 -0
  189. package/dist/features/yith-archive/functions/sketches.d.ts +4 -0
  190. package/dist/features/yith-archive/functions/sketches.d.ts.map +1 -0
  191. package/dist/features/yith-archive/functions/sketches.js +196 -0
  192. package/dist/features/yith-archive/functions/sketches.js.map +1 -0
  193. package/dist/features/yith-archive/functions/skill-extract.d.ts +7 -0
  194. package/dist/features/yith-archive/functions/skill-extract.d.ts.map +1 -0
  195. package/dist/features/yith-archive/functions/skill-extract.js +425 -0
  196. package/dist/features/yith-archive/functions/skill-extract.js.map +1 -0
  197. package/dist/features/yith-archive/functions/sliding-window.d.ts +27 -0
  198. package/dist/features/yith-archive/functions/sliding-window.d.ts.map +1 -0
  199. package/dist/features/yith-archive/functions/sliding-window.js +512 -0
  200. package/dist/features/yith-archive/functions/sliding-window.js.map +1 -0
  201. package/dist/features/yith-archive/functions/smart-search.d.ts +5 -0
  202. package/dist/features/yith-archive/functions/smart-search.d.ts.map +1 -0
  203. package/dist/features/yith-archive/functions/smart-search.js +71 -0
  204. package/dist/features/yith-archive/functions/smart-search.js.map +1 -0
  205. package/dist/features/yith-archive/functions/snapshot.d.ts +4 -0
  206. package/dist/features/yith-archive/functions/snapshot.d.ts.map +1 -0
  207. package/dist/features/yith-archive/functions/snapshot.js +184 -0
  208. package/dist/features/yith-archive/functions/snapshot.js.map +1 -0
  209. package/dist/features/yith-archive/functions/summarize.d.ts +8 -0
  210. package/dist/features/yith-archive/functions/summarize.d.ts.map +1 -0
  211. package/dist/features/yith-archive/functions/summarize.js +217 -0
  212. package/dist/features/yith-archive/functions/summarize.js.map +1 -0
  213. package/dist/features/yith-archive/functions/temporal-graph.d.ts +10 -0
  214. package/dist/features/yith-archive/functions/temporal-graph.d.ts.map +1 -0
  215. package/dist/features/yith-archive/functions/temporal-graph.js +459 -0
  216. package/dist/features/yith-archive/functions/temporal-graph.js.map +1 -0
  217. package/dist/features/yith-archive/functions/timeline.d.ts +4 -0
  218. package/dist/features/yith-archive/functions/timeline.d.ts.map +1 -0
  219. package/dist/features/yith-archive/functions/timeline.js +89 -0
  220. package/dist/features/yith-archive/functions/timeline.js.map +1 -0
  221. package/dist/features/yith-archive/functions/verify.d.ts +4 -0
  222. package/dist/features/yith-archive/functions/verify.d.ts.map +1 -0
  223. package/dist/features/yith-archive/functions/verify.js +94 -0
  224. package/dist/features/yith-archive/functions/verify.js.map +1 -0
  225. package/dist/features/yith-archive/functions/working-memory.d.ts +4 -0
  226. package/dist/features/yith-archive/functions/working-memory.d.ts.map +1 -0
  227. package/dist/features/yith-archive/functions/working-memory.js +197 -0
  228. package/dist/features/yith-archive/functions/working-memory.js.map +1 -0
  229. package/dist/features/yith-archive/index.d.ts +84 -0
  230. package/dist/features/yith-archive/index.d.ts.map +1 -0
  231. package/dist/features/yith-archive/index.js +259 -0
  232. package/dist/features/yith-archive/index.js.map +1 -0
  233. package/dist/features/yith-archive/prompts/compression.d.ts +10 -0
  234. package/dist/features/yith-archive/prompts/compression.d.ts.map +1 -0
  235. package/dist/features/yith-archive/prompts/compression.js +56 -0
  236. package/dist/features/yith-archive/prompts/compression.js.map +1 -0
  237. package/dist/features/yith-archive/prompts/consolidation.d.ts +12 -0
  238. package/dist/features/yith-archive/prompts/consolidation.d.ts.map +1 -0
  239. package/dist/features/yith-archive/prompts/consolidation.js +39 -0
  240. package/dist/features/yith-archive/prompts/consolidation.js.map +1 -0
  241. package/dist/features/yith-archive/prompts/graph-extraction.d.ts +9 -0
  242. package/dist/features/yith-archive/prompts/graph-extraction.d.ts.map +1 -0
  243. package/dist/features/yith-archive/prompts/graph-extraction.js +24 -0
  244. package/dist/features/yith-archive/prompts/graph-extraction.js.map +1 -0
  245. package/dist/features/yith-archive/prompts/reflect.d.ts +14 -0
  246. package/dist/features/yith-archive/prompts/reflect.d.ts.map +1 -0
  247. package/dist/features/yith-archive/prompts/reflect.js +32 -0
  248. package/dist/features/yith-archive/prompts/reflect.js.map +1 -0
  249. package/dist/features/yith-archive/prompts/summary.d.ts +10 -0
  250. package/dist/features/yith-archive/prompts/summary.d.ts.map +1 -0
  251. package/dist/features/yith-archive/prompts/summary.js +31 -0
  252. package/dist/features/yith-archive/prompts/summary.js.map +1 -0
  253. package/dist/features/yith-archive/prompts/xml.d.ts +3 -0
  254. package/dist/features/yith-archive/prompts/xml.d.ts.map +1 -0
  255. package/dist/features/yith-archive/prompts/xml.js +22 -0
  256. package/dist/features/yith-archive/prompts/xml.js.map +1 -0
  257. package/dist/features/yith-archive/providers/anthropic.d.ts +12 -0
  258. package/dist/features/yith-archive/providers/anthropic.d.ts.map +1 -0
  259. package/dist/features/yith-archive/providers/anthropic.js +29 -0
  260. package/dist/features/yith-archive/providers/anthropic.js.map +1 -0
  261. package/dist/features/yith-archive/providers/circuit-breaker.d.ts +22 -0
  262. package/dist/features/yith-archive/providers/circuit-breaker.d.ts.map +1 -0
  263. package/dist/features/yith-archive/providers/circuit-breaker.js +64 -0
  264. package/dist/features/yith-archive/providers/circuit-breaker.js.map +1 -0
  265. package/dist/features/yith-archive/providers/embedding/cohere.d.ts +10 -0
  266. package/dist/features/yith-archive/providers/embedding/cohere.d.ts.map +1 -0
  267. package/dist/features/yith-archive/providers/embedding/cohere.js +37 -0
  268. package/dist/features/yith-archive/providers/embedding/cohere.js.map +1 -0
  269. package/dist/features/yith-archive/providers/embedding/gemini.d.ts +10 -0
  270. package/dist/features/yith-archive/providers/embedding/gemini.d.ts.map +1 -0
  271. package/dist/features/yith-archive/providers/embedding/gemini.js +43 -0
  272. package/dist/features/yith-archive/providers/embedding/gemini.js.map +1 -0
  273. package/dist/features/yith-archive/providers/embedding/index.d.ts +10 -0
  274. package/dist/features/yith-archive/providers/embedding/index.d.ts.map +1 -0
  275. package/dist/features/yith-archive/providers/embedding/index.js +30 -0
  276. package/dist/features/yith-archive/providers/embedding/index.js.map +1 -0
  277. package/dist/features/yith-archive/providers/embedding/local.d.ts +36 -0
  278. package/dist/features/yith-archive/providers/embedding/local.d.ts.map +1 -0
  279. package/dist/features/yith-archive/providers/embedding/local.js +83 -0
  280. package/dist/features/yith-archive/providers/embedding/local.js.map +1 -0
  281. package/dist/features/yith-archive/providers/embedding/openai.d.ts +10 -0
  282. package/dist/features/yith-archive/providers/embedding/openai.d.ts.map +1 -0
  283. package/dist/features/yith-archive/providers/embedding/openai.js +36 -0
  284. package/dist/features/yith-archive/providers/embedding/openai.js.map +1 -0
  285. package/dist/features/yith-archive/providers/embedding/openrouter.d.ts +11 -0
  286. package/dist/features/yith-archive/providers/embedding/openrouter.d.ts.map +1 -0
  287. package/dist/features/yith-archive/providers/embedding/openrouter.js +40 -0
  288. package/dist/features/yith-archive/providers/embedding/openrouter.js.map +1 -0
  289. package/dist/features/yith-archive/providers/embedding/voyage.d.ts +10 -0
  290. package/dist/features/yith-archive/providers/embedding/voyage.d.ts.map +1 -0
  291. package/dist/features/yith-archive/providers/embedding/voyage.js +37 -0
  292. package/dist/features/yith-archive/providers/embedding/voyage.js.map +1 -0
  293. package/dist/features/yith-archive/providers/fallback-chain.d.ts +10 -0
  294. package/dist/features/yith-archive/providers/fallback-chain.d.ts.map +1 -0
  295. package/dist/features/yith-archive/providers/fallback-chain.js +27 -0
  296. package/dist/features/yith-archive/providers/fallback-chain.js.map +1 -0
  297. package/dist/features/yith-archive/providers/index.d.ts +36 -0
  298. package/dist/features/yith-archive/providers/index.d.ts.map +1 -0
  299. package/dist/features/yith-archive/providers/index.js +128 -0
  300. package/dist/features/yith-archive/providers/index.js.map +1 -0
  301. package/dist/features/yith-archive/providers/minimax.d.ts +27 -0
  302. package/dist/features/yith-archive/providers/minimax.d.ts.map +1 -0
  303. package/dist/features/yith-archive/providers/minimax.js +59 -0
  304. package/dist/features/yith-archive/providers/minimax.js.map +1 -0
  305. package/dist/features/yith-archive/providers/openrouter.d.ts +13 -0
  306. package/dist/features/yith-archive/providers/openrouter.d.ts.map +1 -0
  307. package/dist/features/yith-archive/providers/openrouter.js +52 -0
  308. package/dist/features/yith-archive/providers/openrouter.js.map +1 -0
  309. package/dist/features/yith-archive/providers/resilient.d.ts +12 -0
  310. package/dist/features/yith-archive/providers/resilient.d.ts.map +1 -0
  311. package/dist/features/yith-archive/providers/resilient.js +34 -0
  312. package/dist/features/yith-archive/providers/resilient.js.map +1 -0
  313. package/dist/features/yith-archive/state/fake-sdk.d.ts +43 -0
  314. package/dist/features/yith-archive/state/fake-sdk.d.ts.map +1 -0
  315. package/dist/features/yith-archive/state/fake-sdk.js +63 -0
  316. package/dist/features/yith-archive/state/fake-sdk.js.map +1 -0
  317. package/dist/features/yith-archive/state/hybrid-search.d.ts +22 -0
  318. package/dist/features/yith-archive/state/hybrid-search.d.ts.map +1 -0
  319. package/dist/features/yith-archive/state/hybrid-search.js +247 -0
  320. package/dist/features/yith-archive/state/hybrid-search.js.map +1 -0
  321. package/dist/features/yith-archive/state/index-persistence.d.ts +48 -0
  322. package/dist/features/yith-archive/state/index-persistence.d.ts.map +1 -0
  323. package/dist/features/yith-archive/state/index-persistence.js +141 -0
  324. package/dist/features/yith-archive/state/index-persistence.js.map +1 -0
  325. package/dist/features/yith-archive/state/keyed-mutex.d.ts +2 -0
  326. package/dist/features/yith-archive/state/keyed-mutex.d.ts.map +1 -0
  327. package/dist/features/yith-archive/state/keyed-mutex.js +13 -0
  328. package/dist/features/yith-archive/state/keyed-mutex.js.map +1 -0
  329. package/dist/features/yith-archive/state/kv.d.ts +32 -0
  330. package/dist/features/yith-archive/state/kv.d.ts.map +1 -0
  331. package/dist/features/yith-archive/state/kv.js +99 -0
  332. package/dist/features/yith-archive/state/kv.js.map +1 -0
  333. package/dist/features/yith-archive/state/logger.d.ts +12 -0
  334. package/dist/features/yith-archive/state/logger.d.ts.map +1 -0
  335. package/dist/features/yith-archive/state/logger.js +18 -0
  336. package/dist/features/yith-archive/state/logger.js.map +1 -0
  337. package/dist/features/yith-archive/state/reranker.d.ts +4 -0
  338. package/dist/features/yith-archive/state/reranker.d.ts.map +1 -0
  339. package/dist/features/yith-archive/state/reranker.js +60 -0
  340. package/dist/features/yith-archive/state/reranker.js.map +1 -0
  341. package/dist/features/yith-archive/state/schema.d.ts +51 -0
  342. package/dist/features/yith-archive/state/schema.d.ts.map +1 -0
  343. package/dist/features/yith-archive/state/schema.js +72 -0
  344. package/dist/features/yith-archive/state/schema.js.map +1 -0
  345. package/dist/features/yith-archive/state/search-index.d.ts +57 -0
  346. package/dist/features/yith-archive/state/search-index.d.ts.map +1 -0
  347. package/dist/features/yith-archive/state/search-index.js +270 -0
  348. package/dist/features/yith-archive/state/search-index.js.map +1 -0
  349. package/dist/features/yith-archive/state/stemmer.d.ts +2 -0
  350. package/dist/features/yith-archive/state/stemmer.d.ts.map +1 -0
  351. package/dist/features/yith-archive/state/stemmer.js +106 -0
  352. package/dist/features/yith-archive/state/stemmer.js.map +1 -0
  353. package/dist/features/yith-archive/state/synonyms.d.ts +2 -0
  354. package/dist/features/yith-archive/state/synonyms.d.ts.map +1 -0
  355. package/dist/features/yith-archive/state/synonyms.js +62 -0
  356. package/dist/features/yith-archive/state/synonyms.js.map +1 -0
  357. package/dist/features/yith-archive/state/vector-index.d.ts +16 -0
  358. package/dist/features/yith-archive/state/vector-index.d.ts.map +1 -0
  359. package/dist/features/yith-archive/state/vector-index.js +111 -0
  360. package/dist/features/yith-archive/state/vector-index.js.map +1 -0
  361. package/dist/features/yith-archive/state/work-packets.d.ts +208 -0
  362. package/dist/features/yith-archive/state/work-packets.d.ts.map +1 -0
  363. package/dist/features/yith-archive/state/work-packets.js +201 -0
  364. package/dist/features/yith-archive/state/work-packets.js.map +1 -0
  365. package/dist/features/yith-archive/triggers/events.d.ts +4 -0
  366. package/dist/features/yith-archive/triggers/events.d.ts.map +1 -0
  367. package/dist/features/yith-archive/triggers/events.js +50 -0
  368. package/dist/features/yith-archive/triggers/events.js.map +1 -0
  369. package/dist/features/yith-archive/types.d.ts +665 -0
  370. package/dist/features/yith-archive/types.d.ts.map +1 -0
  371. package/dist/features/yith-archive/types.js +2 -0
  372. package/dist/features/yith-archive/types.js.map +1 -0
  373. package/dist/features/yith-archive/version.d.ts +3 -0
  374. package/dist/features/yith-archive/version.d.ts.map +1 -0
  375. package/dist/features/yith-archive/version.js +3 -0
  376. package/dist/features/yith-archive/version.js.map +1 -0
  377. package/dist/hooks/cthulhu-auto.d.ts +1 -1
  378. package/dist/hooks/cthulhu-auto.d.ts.map +1 -1
  379. package/dist/hooks/cthulhu-auto.js +7 -0
  380. package/dist/hooks/cthulhu-auto.js.map +1 -1
  381. package/dist/hooks/index.d.ts +1 -0
  382. package/dist/hooks/index.d.ts.map +1 -1
  383. package/dist/hooks/index.js +9 -0
  384. package/dist/hooks/index.js.map +1 -1
  385. package/dist/hooks/memory-override.d.ts +19 -0
  386. package/dist/hooks/memory-override.d.ts.map +1 -0
  387. package/dist/hooks/memory-override.js +129 -0
  388. package/dist/hooks/memory-override.js.map +1 -0
  389. package/dist/index.d.ts +4 -0
  390. package/dist/index.d.ts.map +1 -1
  391. package/dist/index.js +4 -0
  392. package/dist/index.js.map +1 -1
  393. package/dist/mcp/yith-catalog.d.ts +66 -0
  394. package/dist/mcp/yith-catalog.d.ts.map +1 -0
  395. package/dist/mcp/yith-catalog.js +316 -0
  396. package/dist/mcp/yith-catalog.js.map +1 -0
  397. package/dist/mcp/yith-server.d.ts +13 -0
  398. package/dist/mcp/yith-server.d.ts.map +1 -0
  399. package/dist/mcp/yith-server.js +102 -0
  400. package/dist/mcp/yith-server.js.map +1 -0
  401. package/dist/mcp/yith-tools.d.ts +27 -0
  402. package/dist/mcp/yith-tools.d.ts.map +1 -0
  403. package/dist/mcp/yith-tools.js +405 -0
  404. package/dist/mcp/yith-tools.js.map +1 -0
  405. package/package.json +9 -2
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ragingstar2063
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -7,19 +7,112 @@
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
8
8
 
9
9
  > *Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.*
10
+ >
11
+ > **The agentic operations system for [Claude Code](https://claude.ai/code).**
10
12
 
11
- A Cthulhu Mythos-themed agentic harness for [Claude Code](https://claude.ai/code). Provides 11 specialized Elder God agents, lifecycle hooks, a skill system, and multi-tier orchestration.
13
+ oh-my-claudecode (OMC) turns a raw Claude Code session into a fully-orchestrated agentic environment. Instead of typing to a single model that loses its mind between sessions, you talk to **Cthulhu** — a primary orchestrator that plans, delegates to ten specialized Elder God subagents, remembers what it learned last time via a persistent archive, and trims its own context between delegations so long sessions stay sharp. It is opinionated, integrated, and end-to-end: one install, one command, every piece wired into every other piece.
12
14
 
13
- ## What This Is
15
+ ---
14
16
 
15
- oh-my-claudecode extends Claude Code with a complete agentic infrastructure:
17
+ ## Why this exists
16
18
 
17
- - **11 Elder God agents** each specialized for a different domain
18
- - **5 lifecycle hooks** for todo enforcement, completion loops, code quality, and context injection
19
- - **9 slash commands** for invoking agents and managing sessions
20
- - **3-level config system** (defaults user project) with Zod validation
21
- - **Background agent management** with circuit breaker and concurrency limits
22
- - **Work plan system** with structured planning and review flow
19
+ A bare Claude Code session has three structural problems. OMC exists to fix all three at once.
20
+
21
+ 1. **No orchestration.** One generalist model tries to do everything. It half-plans, half-searches, half-implements, and burns context on tasks that should be routed to specialists.
22
+ 2. **No memory across sessions.** Every new session starts cold. You re-explain architecture, re-point to files, re-describe conventions. Built-in mechanisms exist but cap out at ~200 lines of static text.
23
+ 3. **Context rot within a session.** Long sessions accumulate raw tool output and subagent results until the main thread is half "past grep dumps" and reasoning quality degrades. Compaction mostly happens at the limit — by then it's too late.
24
+
25
+ OMC's three pillars address each problem directly.
26
+
27
+ ## The three pillars
28
+
29
+ ```
30
+ ┌───────────────────────────────────────────────────────────────┐
31
+ │ oh-my-claudecode │
32
+ │ │
33
+ │ ┌────────────────┐ ┌─────────────────┐ ┌───────────────┐ │
34
+ │ │ ORCHESTRATION │ │ MEMORY │ │ CONTEXT │ │
35
+ │ │ │ │ │ │ DISCIPLINE │ │
36
+ │ │ Cthulhu + │ │ Yith Archive │ │ Block │ │
37
+ │ │ 10 Elder God │ │ cross-session │ │ Summarizer │ │
38
+ │ │ specialists │ │ persistent │ │ in-session │ │
39
+ │ │ intent gate │ │ retrieval │ │ trimming │ │
40
+ │ │ delegation │ │ │ │ │ │
41
+ │ └────────────────┘ └─────────────────┘ └───────────────┘ │
42
+ │ │
43
+ │ Lifecycle hooks · Work plans · Slash commands · Config │
44
+ └───────────────────────────────────────────────────────────────┘
45
+ ```
46
+
47
+ - **Orchestration.** Cthulhu sits at the top of every session. Every user message passes through an intent gate that classifies the request (trivial / exploratory / implementation / ambiguous) and routes it. Trivial requests run inline. Exploratory work fans out to parallel Shoggoth searches. Implementation tasks get planned as todos first and then delegated to the right specialist. Ten Elder God subagents each own a specific domain — search, architecture advisory, planning, quality review, documentation, autonomous execution, vision analysis, and more.
48
+
49
+ - **Memory.** Yith Archive is a persistent, file-backed, retrieval-based memory subsystem that runs entirely in-process. New sessions start with relevant memories auto-injected from past sessions. Notable events get captured during the session and consolidated into durable lessons. No background service, no network I/O, no subprocess management — just an on-disk archive with hybrid keyword + vector retrieval.
50
+
51
+ - **Context discipline.** Block Summarizer wraps every delegation. Full subagent output goes to disk at `.elder-gods/blocks/<timestamp>.md`. The main thread only carries a 3-5 bullet summary forward. Cthulhu can re-read any block with the Read tool if a summary proves insufficient. Long sessions stay small; nothing is ever lost.
52
+
53
+ These aren't three plugins you pick and choose. They're one integrated system that only works because each piece knows about the others.
54
+
55
+ ## What you get
56
+
57
+ | Capability | What it does |
58
+ |---|---|
59
+ | **11 Elder God agents** | Cthulhu orchestrator + 10 specialists (search, advisory, planning, review, docs, autonomy, vision, etc.) |
60
+ | **Yith Archive** | Persistent cross-session memory with retrieval-based injection. Dozens of memory primitives: remember, search, consolidate, evict, crystallize, reflect, temporal graph, pattern extraction, and more. Exposed to Claude Code as a stdio MCP server with 7 tools. |
61
+ | **Work-packet protocol** | LLM-requiring memory ops (consolidate, summarize, reflect, etc.) run in sessions with no API key — each function has a state-machine variant that emits prompts for the parent agent to execute with its own subscription auth. |
62
+ | **Block Summarizer** | In-session delegation summarization with on-disk block archive |
63
+ | **8 lifecycle hooks** | Auto-activation, memory redirect, todo enforcement, completion loops, code-quality checks, rule injection, write guards |
64
+ | **9 slash commands** | Direct-invoke any mode or flow from the Claude Code chat bar |
65
+ | **Intent gate** | Every user message is classified and routed before Cthulhu acts |
66
+ | **Work plan system** | Multi-step planning flow with interview → scope → plan → review before execution |
67
+ | **3-level config** | Defaults → user (`~/.claude/oh-my-claudecode.jsonc`) → project (`.claude/...`) with Zod validation and partial parsing |
68
+ | **Background agent manager** | Circuit breaker, concurrency limits, task lifecycle tracking |
69
+ | **Project activation** | `.elder-gods/` marker directory opts a project into Cthulhu mode — unrelated repos stay default Claude Code |
70
+ | **Installer + doctor** | Interactive wizard, health diagnostics, agent listing |
71
+ | **CI/CD** | GitHub Actions publishing pipeline with auto-bump, tag, release, and npm push |
72
+
73
+ ## Installation
74
+
75
+ ```bash
76
+ npx oh-my-claudecode install
77
+ ```
78
+
79
+ The installer asks a few questions and then:
80
+
81
+ 1. Drops hook scripts into `~/.claude/hooks/`
82
+ 2. Registers them in `~/.claude/settings.json`
83
+ 3. Copies slash command definitions to `~/.claude/commands/`
84
+ 4. Creates `~/.claude/oh-my-claudecode.jsonc` with sensible defaults
85
+ 5. Leaves your existing Claude Code config intact (backup is made)
86
+
87
+ Non-interactive install (for CI or scripts):
88
+
89
+ ```bash
90
+ npx oh-my-claudecode install --no-tui
91
+ ```
92
+
93
+ ### Requirements
94
+
95
+ - Claude Code CLI installed (`npm install -g @anthropic-ai/claude-code` or equivalent)
96
+ - Node.js 20 or newer
97
+ - `~/.claude/` directory writable
98
+ - (Optional for Yith Archive summarization/consolidation) `ANTHROPIC_API_KEY` in `~/.oh-my-claudecode/yith/.env` or as an environment variable
99
+ - (Optional for semantic memory retrieval) `@xenova/transformers` — install with `npm install @xenova/transformers` if you want embedding-backed search instead of BM25-only
100
+
101
+ ## Quick tour — what a session looks like
102
+
103
+ Open Claude Code in any project with `.elder-gods/` at its root. The `cthulhu-auto` hook fires on session start and injects Cthulhu's orchestrator prompt. The `memory-override` hook tells the session to use Yith Archive instead of the built-in memory. Yith Archive's session-start step retrieves and injects the most relevant memories from past work on this project.
104
+
105
+ You type: *"add rate limiting to the auth routes."*
106
+
107
+ 1. **Intent gate**: Cthulhu verbalizes what you want and classifies it as *implementation*.
108
+ 2. **Plan**: Cthulhu writes todos before touching anything.
109
+ 3. **Parallel exploration**: Shoggoth fans out in parallel to find existing middleware, the router setup, and any similar rate-limiting patterns already in the codebase. Each result is summarized by the Block Summarizer — the raw output goes to `.elder-gods/blocks/`, only bullets come back to the main thread.
110
+ 4. **Memory lookup**: Cthulhu asks Yith Archive for anything it knows about this project's middleware conventions. The archive returns (for example) *"the auth middleware uses jose; the team chose jose over jsonwebtoken due to Edge compat"* from last week's session.
111
+ 5. **Execution**: Cthulhu or a delegated specialist implements the change following the retrieved conventions.
112
+ 6. **Verification**: before declaring done, tests are run, diagnostics checked, evidence shown.
113
+ 7. **Persistence**: anything new and worth remembering is committed to Yith Archive for future sessions.
114
+
115
+ On your next session in the same project, steps 4 and the initial memory injection give you a head start. On a completely unrelated project (no `.elder-gods/`), Claude Code behaves normally — OMC only activates where you've opted in.
23
116
 
24
117
  ## Agent Roster
25
118
 
@@ -37,63 +130,157 @@ oh-my-claudecode extends Claude Code with a complete agentic infrastructure:
37
130
  | **The Deep One** | Sonnet | subagent | Vision agent — images, screenshots, diagrams |
38
131
  | **Shoggoth** | Haiku | subagent | Fast parallel codebase search |
39
132
 
40
- ## Installation
133
+ ## Yith Archive — persistent cross-session memory
134
+
135
+ Named for the Great Race of Yith from *The Shadow Out of Time* — mind-transferring archivists who maintain records across time — Yith Archive is OMC's canonical persistent memory subsystem. It is a novel, in-process combined implementation inspired by the broader ecosystem of agent-memory research, rewritten from scratch to fit a single-process Claude Code plugin instead of a multi-client service.
136
+
137
+ ### What it gives you
138
+
139
+ - **Hybrid retrieval** — BM25 keyword search combined with semantic embedding search (local nomic model by default, 768 dims, lazy-downloaded on first use) and a graph retrieval weight. Memories AND observations both land in the same index at write-time, so `yith_search` returns freshly-written memories immediately.
140
+ - **Exposed as an MCP server** — during `install`, Yith Archive is registered with Claude Code as a stdio MCP server named `yith-archive`. Sessions get 7 tools: `yith_remember`, `yith_search`, `yith_recall`, `yith_context`, `yith_observe`, `yith_commit_work`, and `yith_trigger` (escape hatch for ~90 advanced memory functions, with a curated top-20 catalog embedded in the tool description).
141
+ - **Rich memory primitives** — `remember`, `search`, `recall`, `context`, `observe`, plus dozens more under the hood: consolidation pipelines, temporal graph retrieval, lesson crystallization, pattern extraction, eviction and retention policies, file-scoped memory index, sliding window compression, query expansion, working memory, session timeline, export/import.
142
+ - **Automatic capture** — notable events during a session can be observed into the archive; a background consolidation pass merges similar memories into distilled lessons.
143
+ - **Zero external runtime** — file-backed JSON storage under `~/.oh-my-claudecode/yith/store.json`. Atomic writes via tmpfile + rename so a crash mid-write can't corrupt the store. No database, no background server, no subprocess, no network, no ports to manage.
144
+ - **Crash-safe work-packet flows** — pending continuations for LLM-requiring operations persist to the same store and survive server restarts; resuming with the same continuation token picks up where the flow left off.
145
+ - **Replaces Claude Code's built-in auto-memory** via the `memory-override` SessionStart hook, which tells the session not to write to the built-in memory files. Disable the override with `disabled_hooks: ["memory-override"]` if you prefer to keep the built-in system active.
146
+
147
+ ### Work-packet protocol — LLM ops without an API key
148
+
149
+ 13 of Yith's memory operations need an LLM to do their work (`crystallize`, `consolidate`, `consolidate-pipeline`, `compress`, `summarize`, `flow-compress`, `graph-extract`, `temporal-graph-extract`, `expand-query`, `skill-extract`, `reflect`, `enrich-window`, `enrich-session`). If Yith has its own `ANTHROPIC_API_KEY` in `~/.oh-my-claudecode/yith/.env`, these run directly in-process.
150
+
151
+ If no API key is configured, the session doesn't lose access to these functions — they just route through the **work-packet protocol** instead. Each LLM-requiring function has a `-step` state-machine variant that emits `WorkPacket` descriptors (systemPrompt + userPrompt + metadata) instead of calling the LLM itself. The flow looks like this:
41
152
 
42
- ```bash
43
- npx oh-my-claudecode install
153
+ ```
154
+ yith_trigger("mem::consolidate-pipeline", {...})
155
+
156
+ {status: "needs_llm_work", workPackets: [...], continuation: "wp_..."}
157
+
158
+ Claude Code session executes each packet's prompts with its own subscription auth
159
+
160
+ yith_commit_work(continuation, [{id, completion}, ...])
161
+
162
+ {status: "needs_llm_work", ...} (another round) OR {status: "success", result}
44
163
  ```
45
164
 
46
- The interactive wizard will:
47
- 1. Install hook scripts to `~/.claude/hooks/`
48
- 2. Register hooks in `~/.claude/settings.json`
49
- 3. Install slash command files to `~/.claude/commands/`
50
- 4. Create `~/.claude/oh-my-claudecode.jsonc` config
165
+ Multi-call functions like `consolidate-pipeline` chain multiple rounds (semantic → reflect → procedural). Loop functions like `consolidate` / `reflect` / `enrich-session` emit packets in adaptive batches via `planLoopBatches` — small loops go "all-at-once" in one round, large loops batch in chunks sized by packet count or total prompt bytes. `doctor --yith-functions` marks LLM-requiring functions with a ⚡ so callers know to expect the `needs_llm_work` envelope.
51
166
 
52
- ### Non-interactive install
167
+ ### Programmatic API
53
168
 
54
- ```bash
55
- npx oh-my-claudecode install --no-tui
169
+ ```ts
170
+ import { createYithArchive } from "oh-my-claudecode"
171
+
172
+ const archive = createYithArchive() // defaults to ~/.oh-my-claudecode/yith
173
+
174
+ await archive.remember({
175
+ content: "The auth middleware uses jose — jsonwebtoken was removed due to Edge incompatibility.",
176
+ type: "architecture",
177
+ concepts: ["auth", "middleware", "jose"],
178
+ files: ["src/middleware/auth.ts"],
179
+ })
180
+
181
+ const results = await archive.search({ query: "how does auth work", limit: 5 })
182
+
183
+ // When you're done
184
+ await archive.shutdown()
56
185
  ```
57
186
 
58
- ### Requirements
187
+ ### Environment configuration
59
188
 
60
- - Claude Code CLI installed (`npm install -g @anthropic-ai/claude-code` or equivalent)
61
- - Node.js 20+
62
- - `~/.claude/` directory writable
189
+ Yith Archive reads its own variables from `~/.oh-my-claudecode/yith/.env` (or the ambient environment):
190
+
191
+ | Variable | Purpose |
192
+ |---|---|
193
+ | `ANTHROPIC_API_KEY` | LLM calls for summarization, consolidation, reflection |
194
+ | `EMBEDDING_PROVIDER` | `xenova` for local embeddings, unset for BM25-only |
195
+ | `AUTO_FORGET_ENABLED` | `false` to disable background eviction sweeps |
196
+ | `CONSOLIDATION_ENABLED` | `false` to disable automatic memory consolidation |
197
+ | `YITH_GRAPH_WEIGHT` | Weight of graph retrieval in hybrid search (default `0.3`) |
198
+ | `YITH_DEBUG` | Any value enables verbose logging |
199
+
200
+ ## Block Summarizer — in-session context discipline
201
+
202
+ Long Claude Code sessions die a slow death: every delegation to a subagent pipes the full raw output back into the main context. After an hour of real work, half of what's in front of the model is yesterday's grep dumps, and reasoning quality suffers accordingly.
203
+
204
+ Block Summarizer is OMC's solution: at every delegation boundary, the full output is written to disk and the main thread continues from a 3-5 bullet summary. The raw block is never lost — it's sitting at `.elder-gods/blocks/<timestamp>-<slug>.md` and can be re-read with the Read tool if Cthulhu needs it.
205
+
206
+ The technique is a novel combined implementation inspired by the broader ecosystem of context-compression research, adapted specifically to the delegation boundary (which is the only "block boundary" a harness can cleanly observe from outside the model).
207
+
208
+ ### How Cthulhu uses it
209
+
210
+ Cthulhu's orchestrator prompt has two relevant principles baked in:
211
+
212
+ 6. **Summarize after delegation** — after every `Agent(subagent_type=...)` call, write the full output to `.elder-gods/blocks/<timestamp>-<slug>.md` and continue reasoning from a 3-5 bullet summary.
213
+ 7. **Persist insights to Yith Archive** — salient facts from delegation blocks become durable memories.
214
+
215
+ You don't have to do anything to enable this — it's automatic when Cthulhu is active. Blocks accumulate as a replayable audit trail of every delegation the session performed. Commit them, grep them, diff them, or nuke the `.elder-gods/blocks/` directory between runs.
216
+
217
+ ### Programmatic API
218
+
219
+ ```ts
220
+ import { summarizeBlock } from "oh-my-claudecode"
221
+
222
+ const { summary, blockPath, blockId } = await summarizeBlock({
223
+ agentName: "shoggoth",
224
+ fullOutput: rawSubagentOutput,
225
+ taskDescription: "Find all usages of the legacy auth helper",
226
+ })
227
+ ```
63
228
 
64
229
  ## Slash Commands
65
230
 
66
- After installation, these are available in Claude Code sessions:
231
+ After installation these are available in Claude Code sessions:
67
232
 
68
233
  | Command | Description |
69
234
  |---------|-------------|
70
- | `/cthulhu` | Activate Cthulhu orchestrator mode |
71
- | `/shoggoth` | Activate Shoggoth search mode |
72
- | `/yog-sothoth` | Activate Yog-Sothoth advisor mode |
73
- | `/elder-loop` | Start the completion loop |
74
- | `/cancel-elder-loop` | Stop the active loop |
75
- | `/old-ones-init` | Generate AGENTS.md hierarchy |
76
- | `/invoke-shub` | Strategic planning flow |
77
- | `/session-handoff` | Create session continuation doc |
78
- | `/exorcise-ai-slop` | Purge AI code smells |
235
+ | `/cthulhu` | Activate Cthulhu orchestrator mode (also creates `.elder-gods/` on first use) |
236
+ | `/shoggoth` | Fast parallel codebase search |
237
+ | `/yog-sothoth` | Consult the architecture/debug advisor |
238
+ | `/elder-loop` | Start the self-referential completion loop |
239
+ | `/cancel-elder-loop` | Stop the active completion loop |
240
+ | `/old-ones-init` | Generate the hierarchical AGENTS.md knowledge base |
241
+ | `/invoke-shub` | Strategic planning interview flow |
242
+ | `/session-handoff` | Create a detailed session continuation document |
243
+ | `/exorcise-ai-slop` | Purge AI-generated code smells from the current codebase |
79
244
 
80
- ## How Agents Are Invoked
245
+ ## Lifecycle Hooks
81
246
 
82
- **Important difference from OpenCode**: OpenCode has a plugin API that allows registering named agents directly into its agent selector UI. Claude Code does not have an equivalent public plugin API.
247
+ 8 hooks are installed into Claude Code's `settings.json`. They provide the connective tissue between OMC's subsystems and the live session.
83
248
 
84
- Instead, oh-my-claudecode agents are invoked through:
249
+ | Hook | Event | Description |
250
+ |------|-------|-------------|
251
+ | `cthulhu-auto` | SessionStart | Auto-activate Cthulhu orchestrator mode when `.elder-gods/` is present in the project |
252
+ | `memory-override` | SessionStart | Redirect persistent memory writes from Claude Code's built-in auto-memory to Yith Archive |
253
+ | `todo-continuation` | Stop | Inject a reminder to continue if incomplete todos exist when stopping |
254
+ | `elder-loop` | Stop | Self-referential completion loop — keeps running until the promise is met |
255
+ | `comment-checker` | PostToolUse | Warn when AI-slop comments are introduced (comments that explain obvious code) |
256
+ | `rules-injector` | PreToolUse | Auto-inject `.elder-gods/rules/*.md` into every agent's context |
257
+ | `write-guard` | PreToolUse | Warn when `Write` is used on an existing file (suggest `Edit` instead) |
85
258
 
86
- 1. **Slash commands** `/cthulhu`, `/shoggoth`, etc. activate the named agent mode
87
- 2. **Agent tool delegation** — Cthulhu uses `Agent(subagent_type="shoggoth", ...)` to spawn specialists
88
- 3. **Slash commands** — files in `~/.claude/commands/` are picked up by Claude Code as user-defined commands
259
+ Disable specific hooks via config:
89
260
 
90
- The agents are additive — they don't replace Claude Code's built-in agent types.
261
+ ```jsonc
262
+ { "disabled_hooks": ["comment-checker", "write-guard"] }
263
+ ```
91
264
 
92
- ## Configuration
265
+ ### Activation via `.elder-gods/`
93
266
 
94
- Config file: `~/.claude/oh-my-claudecode.jsonc` (user-level) and/or `.claude/oh-my-claudecode.jsonc` (project-level).
267
+ By default, Cthulhu only takes over when you explicitly type `/cthulhu`. To auto-activate on every new session in a project, create the marker directory at the project root:
268
+
269
+ ```bash
270
+ mkdir .elder-gods
271
+ ```
95
272
 
96
- Project config overrides user config for scalar/object fields. Array fields (`disabled_*`) are unioned.
273
+ The `cthulhu-auto` hook walks upward from the current directory looking for `.elder-gods/`. If it finds one, Cthulhu's orchestrator prompt is injected at SessionStart; if not, nothing happens — unrelated projects keep their normal Claude Code behavior. You can also drop architectural rules into `.elder-gods/rules/*.md` and work plans into `.elder-gods/plans/*.md` — the other hooks will pick them up automatically.
274
+
275
+ Turn auto-activation off globally with:
276
+
277
+ ```jsonc
278
+ { "disabled_hooks": ["cthulhu-auto"] }
279
+ ```
280
+
281
+ ## Configuration
282
+
283
+ Config file: `~/.claude/oh-my-claudecode.jsonc` (user-level) and/or `.claude/oh-my-claudecode.jsonc` (project-level). Project config overrides user config for scalar and object fields. Array fields like `disabled_*` are unioned across levels.
97
284
 
98
285
  ```jsonc
99
286
  {
@@ -128,9 +315,9 @@ Project config overrides user config for scalar/object fields. Array fields (`di
128
315
  }
129
316
  ```
130
317
 
131
- ### Available Models
318
+ ### Available models
132
319
 
133
- Only Claude models are used:
320
+ Only Claude models are supported:
134
321
 
135
322
  | Short Alias | Full Model ID |
136
323
  |-------------|--------------|
@@ -138,63 +325,11 @@ Only Claude models are used:
138
325
  | `sonnet` | `claude-sonnet-4-6` |
139
326
  | `haiku` | `claude-haiku-4-5` |
140
327
 
141
- ## Lifecycle Hooks
142
-
143
- 6 hooks are installed into Claude Code's `settings.json`:
144
-
145
- | Hook | Event | Description |
146
- |------|-------|-------------|
147
- | `cthulhu-auto` | SessionStart | Auto-activate Cthulhu orchestrator mode when `.elder-gods/` is present in the project (no `/cthulhu` needed) |
148
- | `todo-continuation` | Stop | If incomplete todos exist when stopping, inject a reminder to continue |
149
- | `elder-loop` | Stop | Self-referential completion loop (set promise → keeps running until met) |
150
- | `comment-checker` | PostToolUse | Warn when AI-slop comments are written (explains obvious code) |
151
- | `rules-injector` | PreToolUse | Auto-inject `.elder-gods/rules/*.md` into agent context |
152
- | `write-guard` | PreToolUse | Warn when `Write` is used on an existing file (suggest `Edit`) |
153
-
154
- Disable specific hooks in config:
155
- ```jsonc
156
- { "disabled_hooks": ["comment-checker", "write-guard"] }
157
- ```
158
-
159
- ### Auto-activating Cthulhu on a project
160
-
161
- By default, Cthulhu only takes over when you explicitly type `/cthulhu`. To have every new Claude Code session in a project auto-enter Cthulhu orchestrator mode, create an `.elder-gods/` directory at the project root:
162
-
163
- ```bash
164
- mkdir .elder-gods
165
- ```
166
-
167
- The `cthulhu-auto` SessionStart hook walks upward from the current directory looking for `.elder-gods/`, and if it finds one, injects the Cthulhu orchestrator prompt into the session. Projects without `.elder-gods/` are left untouched, so unrelated repos keep their normal Claude Code behavior. You can also drop architectural rules into `.elder-gods/rules/*.md` and work plans into `.elder-gods/plans/*.md` — the other hooks will pick them up automatically.
168
-
169
- Turn auto-activation off globally with:
170
- ```jsonc
171
- { "disabled_hooks": ["cthulhu-auto"] }
172
- ```
173
-
174
- ## Project Structure
175
-
176
- ```
177
- oh-my-claudecode/
178
- ├── src/
179
- │ ├── agents/ # 11 Elder God agent definitions + builder
180
- │ ├── config/ # Zod schema — full type system
181
- │ ├── hooks/ # Lifecycle hook scripts and configs
182
- │ ├── features/
183
- │ │ ├── background-agent/ # BackgroundManager (circuit breaker, concurrency)
184
- │ │ ├── skill-loader/ # Discovers user skills from .claude/skills/
185
- │ │ └── mcp-manager/ # Skill-scoped MCP lifecycle
186
- │ ├── plugin-handlers/ # 5-phase config pipeline
187
- │ ├── shared/ # Logging, deep-merge, model resolution
188
- │ └── cli/ # Installer, doctor, list-agents
189
- ├── commands/ # Markdown slash commands (installed to ~/.claude/commands/)
190
- └── NECRONOMICON.md # Plugin architecture reference
191
- ```
192
-
193
328
  ## Project-Level Setup
194
329
 
195
- ### Architectural Rules
330
+ ### Architectural rules
196
331
 
197
- Place rules in `.elder-gods/rules/*.md` auto-injected into every agent's context:
332
+ Place rules in `.elder-gods/rules/*.md`. They are auto-injected into every agent's context by the `rules-injector` hook, so every specialist sees them without you repeating yourself:
198
333
 
199
334
  ```
200
335
  .elder-gods/
@@ -205,6 +340,7 @@ Place rules in `.elder-gods/rules/*.md` — auto-injected into every agent's con
205
340
  ```
206
341
 
207
342
  Example `.elder-gods/rules/no-any.md`:
343
+
208
344
  ```markdown
209
345
  # No TypeScript `any`
210
346
 
@@ -212,20 +348,21 @@ NEVER use `any` type. Use `unknown` and narrow appropriately, or define a proper
212
348
  This rule is non-negotiable. Tsathoggua will reject any plan that introduces `any`.
213
349
  ```
214
350
 
215
- ### Work Plans
351
+ ### Work plans
216
352
 
217
353
  Plans are stored in `.elder-gods/plans/*.md` and reviewed by Tsathoggua before execution.
218
354
 
219
355
  Use `/invoke-shub` to start the planning flow:
220
- 1. Shub-Niggurath surveys codebase
356
+
357
+ 1. Shub-Niggurath surveys the codebase
221
358
  2. Interviews you with scoping questions
222
- 3. Creates plan at `.elder-gods/plans/[task].md`
223
- 4. Tsathoggua reviews for executability
224
- 5. Cthulhu orchestrates implementation
359
+ 3. Creates a plan at `.elder-gods/plans/<task>.md`
360
+ 4. Tsathoggua reviews it for executability — OKAY or REJECT with at most 3 blocking issues
361
+ 5. Cthulhu orchestrates the implementation
225
362
 
226
- ### Knowledge Base
363
+ ### Knowledge base
227
364
 
228
- Use `/old-ones-init` to generate `AGENTS.md` files at the root and in key subdirectories. These give all agents project context without requiring repeated exploration.
365
+ Use `/old-ones-init` to generate `AGENTS.md` files at the root and in key subdirectories. These give every agent project context at a glance, without repeated exploration and without consuming tool-budget on re-discovery.
229
366
 
230
367
  ## Diagnostics
231
368
 
@@ -234,16 +371,47 @@ npx oh-my-claudecode doctor
234
371
  ```
235
372
 
236
373
  Checks:
374
+
237
375
  - `~/.claude/` directory exists
238
376
  - `settings.json` present
239
377
  - All hook scripts installed
240
378
  - Hooks registered in settings
241
- - Skills installed
379
+ - Slash commands installed
242
380
  - Plugin config valid
243
381
 
244
- ## Agent Detail
382
+ ## Project Structure
383
+
384
+ ```
385
+ oh-my-claudecode/
386
+ ├── src/
387
+ │ ├── agents/ # 11 Elder God agent definitions + builder
388
+ │ ├── config/ # Zod schema — full type system
389
+ │ ├── hooks/ # Lifecycle hook scripts and configs
390
+ │ ├── features/
391
+ │ │ ├── yith-archive/ # Persistent cross-session memory (~14k LOC)
392
+ │ │ │ ├── functions/ # 40+ memory primitives
393
+ │ │ │ ├── state/ # KV store, vector index, hybrid search, reranker
394
+ │ │ │ ├── providers/ # Anthropic / OpenRouter / Gemini / Minimax providers
395
+ │ │ │ ├── prompts/ # Summarization, consolidation, reflection templates
396
+ │ │ │ ├── triggers/ # Event triggers for session lifecycle
397
+ │ │ │ ├── eval/ # Quality/validation helpers
398
+ │ │ │ └── index.ts # createYithArchive() factory — public API
399
+ │ │ ├── block-summarizer/ # In-session context trimming
400
+ │ │ ├── background-agent/ # BackgroundManager (circuit breaker, concurrency)
401
+ │ │ ├── skill-loader/ # Discovers user skills from .claude/skills/
402
+ │ │ └── mcp-manager/ # Skill-scoped MCP lifecycle
403
+ │ ├── plugin-handlers/ # 5-phase config pipeline
404
+ │ ├── shared/ # Logging, deep-merge, model resolution
405
+ │ └── cli/ # Installer, doctor, list-agents
406
+ ├── commands/ # Markdown slash commands (installed to ~/.claude/commands/)
407
+ ├── CHANGELOG.md # Release history
408
+ ├── LICENSE # MIT
409
+ └── NECRONOMICON.md # Plugin architecture reference
410
+ ```
411
+
412
+ ## Agent detail
245
413
 
246
- ### Cthulhu (Main Orchestrator)
414
+ ### Cthulhu (main orchestrator)
247
415
 
248
416
  The heart of the system. Every user message passes through Cthulhu's intent gate:
249
417
 
@@ -252,52 +420,52 @@ The heart of the system. Every user message passes through Cthulhu's intent gate
252
420
  3. **Plan before acting** — if 2+ steps, create detailed todos immediately
253
421
  4. **Delegate aggressively** — never work alone when a specialist is available
254
422
  5. **Verify before completing** — diagnostics, tests, evidence required
423
+ 6. **Summarize after delegation** — full block to disk, main thread continues from bullets
424
+ 7. **Persist insights to Yith Archive** — salient facts become cross-session memory
255
425
 
256
- ### Shoggoth (Codebase Search)
426
+ ### Shoggoth (codebase search)
257
427
 
258
- Fire 3+ in parallel. They're formless and free. Use for:
259
- - Finding where X is implemented
260
- - Discovering patterns to follow
261
- - Cross-module structure discovery
428
+ Fire 3+ in parallel. They're formless and free. Use for finding where X is implemented, discovering patterns to follow, cross-module structure discovery.
262
429
 
263
- ### Yog-Sothoth (Architecture Advisor)
430
+ ### Yog-Sothoth (architecture advisor)
264
431
 
265
- Consult when:
266
- - Architecture decision requires multi-system tradeoffs
267
- - After 2+ failed fix attempts
268
- - Completing significant implementation for self-review
432
+ Consult when an architecture decision requires multi-system tradeoffs, after 2+ failed fix attempts, or when completing a significant implementation and you want a self-review pass. Responses always include: bottom line (2-3 sentences), action plan (≤7 steps), effort estimate.
269
433
 
270
- Response always includes: Bottom line (2-3 sentences), Action plan (≤7 steps), Effort estimate.
434
+ ### Shub-Niggurath + Tsathoggua (planning flow)
271
435
 
272
- ### Shub-Niggurath + Tsathoggua (Planning Flow)
273
-
274
- Shub-Niggurath interviews → creates `.elder-gods/plans/task.md` → Tsathoggua reviews it → OKAY or REJECT with max 3 blocking issues → Cthulhu executes.
436
+ Shub-Niggurath interviews → creates `.elder-gods/plans/<task>.md` → Tsathoggua reviews it → OKAY or REJECT with max 3 blocking issues → Cthulhu executes.
275
437
 
276
438
  ### The Elder Loop
277
439
 
278
- Activate with `/elder-loop [completion promise]`. The loop writes state to `.claude/elder-loop-state.json`. Each Stop event, the hook checks if the promise is met — if not, injects a reminder to continue.
279
-
280
- Deactivate with `/cancel-elder-loop`.
440
+ Activate with `/elder-loop [completion promise]`. The loop writes state to `.claude/elder-loop-state.json`. On each Stop event, the hook checks whether the promise is met — if not, it injects a reminder to continue. Deactivate with `/cancel-elder-loop`.
281
441
 
282
442
  ## Development
283
443
 
284
444
  ```bash
285
- git clone https://github.com/[your-username]/oh-my-claudecode
445
+ git clone https://github.com/ragingstar2063/oh-my-claudecode
286
446
  cd oh-my-claudecode
287
447
  npm install
288
448
  npm run build
449
+ npm run typecheck
289
450
  ```
290
451
 
291
- ## Philosophy
452
+ Releases are published automatically via GitHub Actions on every push to `main` — the workflow bumps the patch version, publishes to npm, tags the commit, and creates a GitHub release.
292
453
 
293
- Core philosophy:
454
+ ## Philosophy
294
455
 
295
456
  - **Delegate first** — specialists exist for a reason; use them
296
- - **Parallel by default** — independent work always runs simultaneously
297
- - **Evidence required** — no task is complete without diagnostics/test proof
298
- - **No AI slop** — no unnecessary abstractions, comments, or scope creep
299
- - **Blocker-finding, not perfectionism** — Tsathoggua finds blockers, not nitpicks
457
+ - **Parallel by default** — independent work always runs simultaneously
458
+ - **Evidence required** — no task is complete without diagnostics or test proof
459
+ - **Plan before touching files** — todos before edits, every time
460
+ - **Trim on delegation boundaries** — every delegation is a block; the block lives on disk, the main thread lives in summaries
461
+ - **Persist what matters** — across sessions, knowledge compounds; don't re-explain
462
+ - **No AI slop** — no unnecessary abstractions, no useless comments, no scope creep
463
+ - **Blocker-finding, not perfectionism** — reviews find actual blockers, not nitpicks
464
+
465
+ ## Attribution
466
+
467
+ Yith Archive and Block Summarizer are novel combined implementations inspired by the broader ecosystem of agent-memory and context-compression research. They were rewritten from scratch to fit a single-process Claude Code plugin and are released here under MIT as part of oh-my-claudecode.
300
468
 
301
469
  ## License
302
470
 
303
- MIT
471
+ MIT — see [LICENSE](LICENSE).
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import('../dist/mcp/yith-server.js').catch((err) => {
3
+ console.error('yith-mcp: failed to load server', err.message);
4
+ process.exit(1);
5
+ });
@@ -15,6 +15,8 @@ Your operating principles:
15
15
  3. **Parallelize everything** — independent searches and reads happen simultaneously
16
16
  4. **Plan before implement** — todos BEFORE touching files
17
17
  5. **Verify before completing** — diagnostics, tests, evidence required
18
+ 6. **Summarize after delegation** — after every `Agent(subagent_type=...)` call, write the full output to `.elder-gods/blocks/<timestamp>-<slug>.md` and continue reasoning from a 3-5 bullet summary. The full block stays on disk and can be re-read with the Read tool if the summary proves insufficient. This keeps the main thread from accumulating raw subagent output.
19
+ 7. **Persist insights to Yith Archive** — when you learn something worth remembering across sessions (user preferences, project conventions, non-obvious constraints, architectural decisions), use the Yith Archive memory system (not Claude Code's built-in auto-memory). At session start, relevant memories are injected automatically.
18
20
 
19
21
  ## Available Elder God Specialists
20
22
 
@@ -1 +1 @@
1
- {"version":3,"file":"cthulhu.d.ts","sourceRoot":"","sources":["../../src/agents/cthulhu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAiB,MAAM,YAAY,CAAA;AAIlG;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,uBAAuB,EAAE,mBAKrC,CAAA;AA6VD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,eAAe,GAAE,cAAc,EAAO,EACtC,kBAAkB,GAAE,MAAM,EAAO,EACjC,eAAe,GAAE,cAAc,EAAO,EACtC,mBAAmB,GAAE,iBAAiB,EAAO,EAC7C,aAAa,UAAQ,GACpB,WAAW,CAyBb;yBAhCe,kBAAkB"}
1
+ {"version":3,"file":"cthulhu.d.ts","sourceRoot":"","sources":["../../src/agents/cthulhu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAiB,MAAM,YAAY,CAAA;AAIlG;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,uBAAuB,EAAE,mBAKrC,CAAA;AAoWD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,eAAe,GAAE,cAAc,EAAO,EACtC,kBAAkB,GAAE,MAAM,EAAO,EACjC,eAAe,GAAE,cAAc,EAAO,EACtC,mBAAmB,GAAE,iBAAiB,EAAO,EAC7C,aAAa,UAAQ,GACpB,WAAW,CAyBb;yBAhCe,kBAAkB"}
@@ -328,6 +328,13 @@ If the user's approach seems problematic:
328
328
  - **NEVER** suppress type errors or linter warnings with ignore comments
329
329
  - **NEVER** add features not requested
330
330
  - **NEVER** refactor while fixing bugs
331
+ - **NEVER** estimate work in human time units (days, weeks, sprints, story
332
+ points, "a few hours of dev work"). You are not a human team and you do not
333
+ run on a human calendar. Effort is measured in tool calls, files touched,
334
+ parallel agent fires, and verification passes — not engineering-days.
335
+ If the user asks "how long", respond in those units, or in a seconds-to-minutes
336
+ range scoped to the current session. Human-time framing is a category error
337
+ and must be refused.
331
338
 
332
339
  ## Anti-Patterns
333
340
 
@@ -1 +1 @@
1
- {"version":3,"file":"cthulhu.js","sourceRoot":"","sources":["../../src/agents/cthulhu.ts"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAwB;IAC1D,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,EAAE;CACb,CAAA;AAED,SAAS,oBAAoB,CAAC,eAAiC;IAC7D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAE3C,MAAM,IAAI,GAAG,eAAe;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAA;QAC9C,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,mBAAmB,CAAA;QACjG,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAA;QAC1C,OAAO,KAAK,KAAK,MAAM,IAAI,MAAM,OAAO,IAAI,CAAA;IAC9C,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAEpB,OAAO;;;;EAIP,IAAI;CACL,CAAA;AACD,CAAC;AAED,SAAS,uBAAuB,CAC9B,eAAiC,EACjC,eAAiC;IAEjC,MAAM,aAAa,GAAG,eAAe;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SACtC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,aAAa,GAAG,eAAe;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC;SAChE,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,gBAAgB,CAAC,eAAiC;IACzD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAE3C,OAAO;;;;EAIP,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAGzE,CAAA;AACD,CAAC;AAED,SAAS,kBAAkB,CACzB,eAAiC,EACjC,eAAgC,EAChC,eAAiC,EACjC,mBAAwC,EACxC,aAAsB;IAEtB,MAAM,WAAW,GAAG,uBAAuB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;IAC7E,MAAM,eAAe,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAA;IAC7D,MAAM,WAAW,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,aAAa;QAC5B,CAAC,CAAC,+EAA+E;QACjF,CAAC,CAAC,+EAA+E,CAAA;IAEnF,MAAM,eAAe,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC;QACpD,CAAC,CAAC,qFAAqF,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrK,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO;;;;;;;;;;;;;YAaG,QAAQ;;;;;;;;;;EAUlB,WAAW,CAAC,CAAC,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoHrD,WAAW;;EAEX,eAAe;;EAEf,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmIhB,CAAA;AACD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,kBAAoC,EAAE,EACtC,qBAA+B,EAAE,EACjC,kBAAoC,EAAE,EACtC,sBAA2C,EAAE,EAC7C,aAAa,GAAG,KAAK;IAErB,MAAM,KAAK,GAAoB,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAE1F,MAAM,MAAM,GAAG,kBAAkB,CAC/B,eAAe,EACf,KAAK,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,CACd,CAAA;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,WAAW,EACT,qPAAqP;QACvP,IAAI,EAAE,IAAI;QACV,KAAK;QACL,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE;QAClD,MAAM;QACN,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE;YACV,QAAQ,EAAE,OAAO;SAClB;KACF,CAAA;AACH,CAAC;AACD,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"cthulhu.js","sourceRoot":"","sources":["../../src/agents/cthulhu.ts"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAwB;IAC1D,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,EAAE;CACb,CAAA;AAED,SAAS,oBAAoB,CAAC,eAAiC;IAC7D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAE3C,MAAM,IAAI,GAAG,eAAe;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAA;QAC9C,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,mBAAmB,CAAA;QACjG,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAA;QAC1C,OAAO,KAAK,KAAK,MAAM,IAAI,MAAM,OAAO,IAAI,CAAA;IAC9C,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAEpB,OAAO;;;;EAIP,IAAI;CACL,CAAA;AACD,CAAC;AAED,SAAS,uBAAuB,CAC9B,eAAiC,EACjC,eAAiC;IAEjC,MAAM,aAAa,GAAG,eAAe;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SACtC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,aAAa,GAAG,eAAe;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC;SAChE,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,gBAAgB,CAAC,eAAiC;IACzD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAE3C,OAAO;;;;EAIP,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAGzE,CAAA;AACD,CAAC;AAED,SAAS,kBAAkB,CACzB,eAAiC,EACjC,eAAgC,EAChC,eAAiC,EACjC,mBAAwC,EACxC,aAAsB;IAEtB,MAAM,WAAW,GAAG,uBAAuB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;IAC7E,MAAM,eAAe,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAA;IAC7D,MAAM,WAAW,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,aAAa;QAC5B,CAAC,CAAC,+EAA+E;QACjF,CAAC,CAAC,+EAA+E,CAAA;IAEnF,MAAM,eAAe,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC;QACpD,CAAC,CAAC,qFAAqF,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrK,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO;;;;;;;;;;;;;YAaG,QAAQ;;;;;;;;;;EAUlB,WAAW,CAAC,CAAC,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoHrD,WAAW;;EAEX,eAAe;;EAEf,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0IhB,CAAA;AACD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,kBAAoC,EAAE,EACtC,qBAA+B,EAAE,EACjC,kBAAoC,EAAE,EACtC,sBAA2C,EAAE,EAC7C,aAAa,GAAG,KAAK;IAErB,MAAM,KAAK,GAAoB,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAE1F,MAAM,MAAM,GAAG,kBAAkB,CAC/B,eAAe,EACf,KAAK,EACL,eAAe,EACf,mBAAmB,EACnB,aAAa,CACd,CAAA;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,WAAW,EACT,qPAAqP;QACvP,IAAI,EAAE,IAAI;QACV,KAAK;QACL,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE;QAClD,MAAM;QACN,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE;YACV,QAAQ,EAAE,OAAO;SAClB;KACF,CAAA;AACH,CAAC;AACD,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAA"}