@goondocks/myco 0.6.5 → 0.10.0

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 (297) hide show
  1. package/.claude-plugin/marketplace.json +1 -5
  2. package/.claude-plugin/plugin.json +3 -3
  3. package/CONTRIBUTING.md +37 -30
  4. package/README.md +81 -28
  5. package/bin/myco-run +2 -0
  6. package/dist/agent-run-CGXF5PPC.js +34 -0
  7. package/dist/agent-run-CGXF5PPC.js.map +1 -0
  8. package/dist/agent-tasks-T7NVI3R7.js +180 -0
  9. package/dist/agent-tasks-T7NVI3R7.js.map +1 -0
  10. package/dist/chunk-5LPERML5.js +486 -0
  11. package/dist/chunk-5LPERML5.js.map +1 -0
  12. package/dist/chunk-5PEUFJ6U.js +92 -0
  13. package/dist/chunk-5PEUFJ6U.js.map +1 -0
  14. package/dist/chunk-5QERXFH7.js +26 -0
  15. package/dist/chunk-5QERXFH7.js.map +1 -0
  16. package/dist/{chunk-4DYD4HHG.js → chunk-5SDH75YC.js} +2 -2
  17. package/dist/chunk-76ZO5RGT.js +150 -0
  18. package/dist/chunk-76ZO5RGT.js.map +1 -0
  19. package/dist/chunk-AEJS57ZK.js +26 -0
  20. package/dist/chunk-AEJS57ZK.js.map +1 -0
  21. package/dist/chunk-C3AEZ3BZ.js +22 -0
  22. package/dist/chunk-C3AEZ3BZ.js.map +1 -0
  23. package/dist/chunk-CUDM5YJY.js +294 -0
  24. package/dist/chunk-CUDM5YJY.js.map +1 -0
  25. package/dist/chunk-D6DXYAFK.js +93 -0
  26. package/dist/chunk-D6DXYAFK.js.map +1 -0
  27. package/dist/chunk-D7TYRPRM.js +7312 -0
  28. package/dist/chunk-D7TYRPRM.js.map +1 -0
  29. package/dist/chunk-E4VLWIJC.js +2 -0
  30. package/dist/chunk-ENWBFX7F.js +50 -0
  31. package/dist/chunk-ENWBFX7F.js.map +1 -0
  32. package/dist/chunk-FFQES5MC.js +904 -0
  33. package/dist/chunk-FFQES5MC.js.map +1 -0
  34. package/dist/chunk-FMIWFRAM.js +41 -0
  35. package/dist/chunk-FMIWFRAM.js.map +1 -0
  36. package/dist/chunk-FPMEIN2W.js +66 -0
  37. package/dist/chunk-FPMEIN2W.js.map +1 -0
  38. package/dist/chunk-G2LQBFE3.js +35 -0
  39. package/dist/chunk-G2LQBFE3.js.map +1 -0
  40. package/dist/chunk-IB76KGBY.js +2 -0
  41. package/dist/{chunk-AHZN4Z34.js → chunk-J4RVYUH4.js} +2 -2
  42. package/dist/{chunk-N33KUCFP.js → chunk-JTYZRPX5.js} +1 -9
  43. package/dist/chunk-JTYZRPX5.js.map +1 -0
  44. package/dist/{chunk-ERG2IEWX.js → chunk-KH64DHOY.js} +3 -7413
  45. package/dist/chunk-KH64DHOY.js.map +1 -0
  46. package/dist/chunk-LPUQPDC2.js +19 -0
  47. package/dist/chunk-LPUQPDC2.js.map +1 -0
  48. package/dist/chunk-M5XWW7UI.js +97 -0
  49. package/dist/chunk-M5XWW7UI.js.map +1 -0
  50. package/dist/chunk-MAZOVVDU.js +305 -0
  51. package/dist/chunk-MAZOVVDU.js.map +1 -0
  52. package/dist/{chunk-54WVLTKD.js → chunk-MKKXCCQ5.js} +33 -17
  53. package/dist/chunk-MKKXCCQ5.js.map +1 -0
  54. package/dist/chunk-MSXYUXZR.js +187 -0
  55. package/dist/chunk-MSXYUXZR.js.map +1 -0
  56. package/dist/chunk-MYX5NCRH.js +45 -0
  57. package/dist/chunk-MYX5NCRH.js.map +1 -0
  58. package/dist/chunk-RJMXDUMA.js +40 -0
  59. package/dist/chunk-RJMXDUMA.js.map +1 -0
  60. package/dist/chunk-S6I62FAH.js +92 -0
  61. package/dist/chunk-S6I62FAH.js.map +1 -0
  62. package/dist/chunk-U7UUJ4FD.js +180 -0
  63. package/dist/chunk-U7UUJ4FD.js.map +1 -0
  64. package/dist/{chunk-HIN3UVOG.js → chunk-V7XG6V6C.js} +20 -11
  65. package/dist/chunk-V7XG6V6C.js.map +1 -0
  66. package/dist/chunk-W6HI4CCS.js +162 -0
  67. package/dist/chunk-W6HI4CCS.js.map +1 -0
  68. package/dist/{chunk-F7GAYVWF.js → chunk-WXSJKESH.js} +96 -9
  69. package/dist/chunk-WXSJKESH.js.map +1 -0
  70. package/dist/chunk-WZZH3YXJ.js +601 -0
  71. package/dist/chunk-WZZH3YXJ.js.map +1 -0
  72. package/dist/chunk-XLY3REL3.js +165 -0
  73. package/dist/chunk-XLY3REL3.js.map +1 -0
  74. package/dist/{chunk-4B5RO2YV.js → chunk-YZMNEIFI.js} +33 -43
  75. package/dist/chunk-YZMNEIFI.js.map +1 -0
  76. package/dist/chunk-ZESTWGJT.js +116 -0
  77. package/dist/chunk-ZESTWGJT.js.map +1 -0
  78. package/dist/chunk-ZMW6KQX2.js +103 -0
  79. package/dist/chunk-ZMW6KQX2.js.map +1 -0
  80. package/dist/cli-6CPFJGRZ.js +139 -0
  81. package/dist/cli-6CPFJGRZ.js.map +1 -0
  82. package/dist/client-B27SN5QG.js +15 -0
  83. package/dist/client-EYOTW3JU.js +19 -0
  84. package/dist/{config-IBS6KOLQ.js → config-G3CSGI7P.js} +21 -34
  85. package/dist/config-G3CSGI7P.js.map +1 -0
  86. package/dist/detect-H5OPI7GD.js +17 -0
  87. package/dist/detect-H5OPI7GD.js.map +1 -0
  88. package/dist/detect-providers-AZ6DEQU7.js +26 -0
  89. package/dist/detect-providers-AZ6DEQU7.js.map +1 -0
  90. package/dist/doctor-RHHWJTMB.js +258 -0
  91. package/dist/doctor-RHHWJTMB.js.map +1 -0
  92. package/dist/executor-A5C5KDLP.js +1454 -0
  93. package/dist/executor-A5C5KDLP.js.map +1 -0
  94. package/dist/init-ARJROOWV.js +198 -0
  95. package/dist/init-ARJROOWV.js.map +1 -0
  96. package/dist/init-wizard-XNFOZCEB.js +294 -0
  97. package/dist/init-wizard-XNFOZCEB.js.map +1 -0
  98. package/dist/llm-XJFHRFHB.js +17 -0
  99. package/dist/llm-XJFHRFHB.js.map +1 -0
  100. package/dist/loader-GKXR5ONU.js +28 -0
  101. package/dist/loader-GKXR5ONU.js.map +1 -0
  102. package/dist/loader-PZ7ZRSA4.js +22 -0
  103. package/dist/loader-PZ7ZRSA4.js.map +1 -0
  104. package/dist/{chunk-F7PGDD2X.js → logs-LXHPDKUA.js} +74 -5
  105. package/dist/logs-LXHPDKUA.js.map +1 -0
  106. package/dist/machine-id-RCM7TXPJ.js +13 -0
  107. package/dist/machine-id-RCM7TXPJ.js.map +1 -0
  108. package/dist/main-PVX6R3I6.js +5065 -0
  109. package/dist/main-PVX6R3I6.js.map +1 -0
  110. package/dist/openai-embeddings-ST3B6GW7.js +14 -0
  111. package/dist/openai-embeddings-ST3B6GW7.js.map +1 -0
  112. package/dist/openrouter-HJHOO3EO.js +14 -0
  113. package/dist/openrouter-HJHOO3EO.js.map +1 -0
  114. package/dist/post-compact-LR3DSGT3.js +26 -0
  115. package/dist/post-compact-LR3DSGT3.js.map +1 -0
  116. package/dist/post-tool-use-SOFVNFU3.js +56 -0
  117. package/dist/post-tool-use-SOFVNFU3.js.map +1 -0
  118. package/dist/post-tool-use-failure-2CZZZASB.js +28 -0
  119. package/dist/post-tool-use-failure-2CZZZASB.js.map +1 -0
  120. package/dist/pre-compact-3E3D6565.js +25 -0
  121. package/dist/pre-compact-3E3D6565.js.map +1 -0
  122. package/dist/provider-check-SOTDYLJE.js +12 -0
  123. package/dist/provider-check-SOTDYLJE.js.map +1 -0
  124. package/dist/registry-WVZG6R2R.js +25 -0
  125. package/dist/registry-WVZG6R2R.js.map +1 -0
  126. package/dist/resolution-events-UPHJJLDQ.js +15 -0
  127. package/dist/resolution-events-UPHJJLDQ.js.map +1 -0
  128. package/dist/resolve-3FEUV462.js +9 -0
  129. package/dist/resolve-3FEUV462.js.map +1 -0
  130. package/dist/{restart-UIP7US4U.js → restart-XIUFVS33.js} +10 -6
  131. package/dist/{restart-UIP7US4U.js.map → restart-XIUFVS33.js.map} +1 -1
  132. package/dist/search-VB6Z2ZXV.js +91 -0
  133. package/dist/search-VB6Z2ZXV.js.map +1 -0
  134. package/dist/{server-43KSJ65Q.js → server-AKPBRP6Z.js} +267 -524
  135. package/dist/server-AKPBRP6Z.js.map +1 -0
  136. package/dist/session-UVZS6CY5.js +69 -0
  137. package/dist/session-UVZS6CY5.js.map +1 -0
  138. package/dist/session-end-YMQ44U6Z.js +38 -0
  139. package/dist/session-end-YMQ44U6Z.js.map +1 -0
  140. package/dist/session-start-3754HF3N.js +170 -0
  141. package/dist/session-start-3754HF3N.js.map +1 -0
  142. package/dist/setup-digest-4KDSXAIV.js +15 -0
  143. package/dist/setup-digest-4KDSXAIV.js.map +1 -0
  144. package/dist/setup-llm-NWHOPJUV.js +81 -0
  145. package/dist/setup-llm-NWHOPJUV.js.map +1 -0
  146. package/dist/src/agent/definitions/agent.yaml +35 -0
  147. package/dist/src/agent/definitions/tasks/digest-only.yaml +84 -0
  148. package/dist/src/agent/definitions/tasks/extract-only.yaml +87 -0
  149. package/dist/src/agent/definitions/tasks/full-intelligence.yaml +472 -0
  150. package/dist/src/agent/definitions/tasks/graph-maintenance.yaml +92 -0
  151. package/dist/src/agent/definitions/tasks/review-session.yaml +132 -0
  152. package/dist/src/agent/definitions/tasks/supersession-sweep.yaml +86 -0
  153. package/dist/src/agent/definitions/tasks/title-summary.yaml +88 -0
  154. package/dist/src/agent/prompts/agent.md +121 -0
  155. package/dist/src/agent/prompts/orchestrator.md +91 -0
  156. package/dist/src/cli.js +1 -8
  157. package/dist/src/cli.js.map +1 -1
  158. package/dist/src/daemon/main.js +1 -8
  159. package/dist/src/daemon/main.js.map +1 -1
  160. package/dist/src/hooks/post-tool-use.js +3 -50
  161. package/dist/src/hooks/post-tool-use.js.map +1 -1
  162. package/dist/src/hooks/session-end.js +3 -32
  163. package/dist/src/hooks/session-end.js.map +1 -1
  164. package/dist/src/hooks/session-start.js +2 -8
  165. package/dist/src/hooks/session-start.js.map +1 -1
  166. package/dist/src/hooks/stop.js +3 -42
  167. package/dist/src/hooks/stop.js.map +1 -1
  168. package/dist/src/hooks/user-prompt-submit.js +3 -53
  169. package/dist/src/hooks/user-prompt-submit.js.map +1 -1
  170. package/dist/src/mcp/server.js +1 -8
  171. package/dist/src/mcp/server.js.map +1 -1
  172. package/dist/src/prompts/digest-system.md +1 -1
  173. package/dist/src/symbionts/manifests/claude-code.yaml +16 -0
  174. package/dist/src/symbionts/manifests/cursor.yaml +14 -0
  175. package/dist/stats-CDQXOTEC.js +94 -0
  176. package/dist/stats-CDQXOTEC.js.map +1 -0
  177. package/dist/stop-WSFGRPXZ.js +42 -0
  178. package/dist/stop-WSFGRPXZ.js.map +1 -0
  179. package/dist/stop-failure-4FR7574F.js +26 -0
  180. package/dist/stop-failure-4FR7574F.js.map +1 -0
  181. package/dist/subagent-start-7SGBXJYP.js +26 -0
  182. package/dist/subagent-start-7SGBXJYP.js.map +1 -0
  183. package/dist/subagent-stop-MRVTNX3V.js +28 -0
  184. package/dist/subagent-stop-MRVTNX3V.js.map +1 -0
  185. package/dist/task-completed-XXPYPSRV.js +27 -0
  186. package/dist/task-completed-XXPYPSRV.js.map +1 -0
  187. package/dist/team-XMHYCKFF.js +251 -0
  188. package/dist/team-XMHYCKFF.js.map +1 -0
  189. package/dist/ui/assets/index-BGbil7f1.css +1 -0
  190. package/dist/ui/assets/index-CPA_uq_j.js +794 -0
  191. package/dist/ui/favicon.svg +7 -7
  192. package/dist/ui/fonts/Inter-Variable.woff2 +0 -0
  193. package/dist/ui/fonts/JetBrainsMono-Variable.woff2 +0 -0
  194. package/dist/ui/fonts/Newsreader-Italic-Variable.woff2 +0 -0
  195. package/dist/ui/fonts/Newsreader-Variable.woff2 +0 -0
  196. package/dist/ui/index.html +2 -2
  197. package/dist/update-W3UFZU4G.js +79 -0
  198. package/dist/update-W3UFZU4G.js.map +1 -0
  199. package/dist/user-prompt-submit-LSWCYUW3.js +59 -0
  200. package/dist/user-prompt-submit-LSWCYUW3.js.map +1 -0
  201. package/dist/{verify-X272WGBD.js → verify-O7TQ5DDY.js} +17 -22
  202. package/dist/verify-O7TQ5DDY.js.map +1 -0
  203. package/dist/{version-XE4GYTBV.js → version-VWWY7SPQ.js} +3 -4
  204. package/dist/version-VWWY7SPQ.js.map +1 -0
  205. package/hooks/hooks.json +82 -5
  206. package/package.json +6 -3
  207. package/skills/myco/SKILL.md +10 -10
  208. package/skills/myco/references/cli-usage.md +15 -13
  209. package/skills/myco/references/vault-status.md +3 -3
  210. package/skills/myco/references/wisdom.md +4 -4
  211. package/skills/myco-curate/SKILL.md +86 -0
  212. package/dist/chunk-4B5RO2YV.js.map +0 -1
  213. package/dist/chunk-4RMSHZE4.js +0 -107
  214. package/dist/chunk-4RMSHZE4.js.map +0 -1
  215. package/dist/chunk-54WVLTKD.js.map +0 -1
  216. package/dist/chunk-5LMRZDH3.js +0 -65
  217. package/dist/chunk-5LMRZDH3.js.map +0 -1
  218. package/dist/chunk-6FQISQNA.js +0 -61
  219. package/dist/chunk-6FQISQNA.js.map +0 -1
  220. package/dist/chunk-DYDBF5W6.js +0 -147
  221. package/dist/chunk-DYDBF5W6.js.map +0 -1
  222. package/dist/chunk-ERG2IEWX.js.map +0 -1
  223. package/dist/chunk-F7GAYVWF.js.map +0 -1
  224. package/dist/chunk-F7PGDD2X.js.map +0 -1
  225. package/dist/chunk-GENQ5QGP.js +0 -37
  226. package/dist/chunk-GENQ5QGP.js.map +0 -1
  227. package/dist/chunk-HIN3UVOG.js.map +0 -1
  228. package/dist/chunk-HYVT345Y.js +0 -159
  229. package/dist/chunk-HYVT345Y.js.map +0 -1
  230. package/dist/chunk-LEK6DEAE.js +0 -113
  231. package/dist/chunk-LEK6DEAE.js.map +0 -1
  232. package/dist/chunk-MDLSAFPP.js +0 -99
  233. package/dist/chunk-MDLSAFPP.js.map +0 -1
  234. package/dist/chunk-N33KUCFP.js.map +0 -1
  235. package/dist/chunk-O6TBHGVO.js +0 -168
  236. package/dist/chunk-O6TBHGVO.js.map +0 -1
  237. package/dist/chunk-OEGZ5YTJ.js +0 -56
  238. package/dist/chunk-OEGZ5YTJ.js.map +0 -1
  239. package/dist/chunk-P723N2LP.js +0 -147
  240. package/dist/chunk-P723N2LP.js.map +0 -1
  241. package/dist/chunk-RGVBGTD6.js +0 -21
  242. package/dist/chunk-RGVBGTD6.js.map +0 -1
  243. package/dist/chunk-TK7A4RX7.js +0 -1085
  244. package/dist/chunk-TK7A4RX7.js.map +0 -1
  245. package/dist/chunk-TWSTAVLO.js +0 -132
  246. package/dist/chunk-TWSTAVLO.js.map +0 -1
  247. package/dist/chunk-V6BJVYNH.js +0 -4423
  248. package/dist/chunk-V6BJVYNH.js.map +0 -1
  249. package/dist/chunk-XH34FX4C.js +0 -43
  250. package/dist/chunk-XH34FX4C.js.map +0 -1
  251. package/dist/chunk-YRIIBPJD.js +0 -86
  252. package/dist/chunk-YRIIBPJD.js.map +0 -1
  253. package/dist/cli-OJYHLO4Y.js +0 -97
  254. package/dist/cli-OJYHLO4Y.js.map +0 -1
  255. package/dist/client-SS3C5MF6.js +0 -12
  256. package/dist/config-IBS6KOLQ.js.map +0 -1
  257. package/dist/curate-4CKEMOPV.js +0 -78
  258. package/dist/curate-4CKEMOPV.js.map +0 -1
  259. package/dist/detect-providers-LFIVJYQO.js +0 -35
  260. package/dist/detect-providers-LFIVJYQO.js.map +0 -1
  261. package/dist/digest-ZLARHLLY.js +0 -85
  262. package/dist/digest-ZLARHLLY.js.map +0 -1
  263. package/dist/init-3LVKVQ4L.js +0 -109
  264. package/dist/init-3LVKVQ4L.js.map +0 -1
  265. package/dist/logs-6CWVP574.js +0 -84
  266. package/dist/logs-6CWVP574.js.map +0 -1
  267. package/dist/main-RB727YRP.js +0 -5836
  268. package/dist/main-RB727YRP.js.map +0 -1
  269. package/dist/rebuild-QWVVCBCZ.js +0 -64
  270. package/dist/rebuild-QWVVCBCZ.js.map +0 -1
  271. package/dist/reprocess-YG3WLUI2.js +0 -79
  272. package/dist/reprocess-YG3WLUI2.js.map +0 -1
  273. package/dist/search-BQLBW5CS.js +0 -120
  274. package/dist/search-BQLBW5CS.js.map +0 -1
  275. package/dist/server-43KSJ65Q.js.map +0 -1
  276. package/dist/session-F326AWCH.js +0 -44
  277. package/dist/session-F326AWCH.js.map +0 -1
  278. package/dist/session-start-6SHGT2AW.js +0 -192
  279. package/dist/session-start-6SHGT2AW.js.map +0 -1
  280. package/dist/setup-digest-X735EZSD.js +0 -15
  281. package/dist/setup-llm-QBSTQO7N.js +0 -15
  282. package/dist/src/prompts/classification.md +0 -43
  283. package/dist/stats-QBLIEFWL.js +0 -58
  284. package/dist/stats-QBLIEFWL.js.map +0 -1
  285. package/dist/templates-XPRBOWCE.js +0 -38
  286. package/dist/templates-XPRBOWCE.js.map +0 -1
  287. package/dist/ui/assets/index-CjWGVHhF.css +0 -1
  288. package/dist/ui/assets/index-Cq-H7wgE.js +0 -369
  289. package/dist/verify-X272WGBD.js.map +0 -1
  290. package/skills/setup/SKILL.md +0 -174
  291. package/skills/setup/references/model-recommendations.md +0 -83
  292. /package/dist/{chunk-4DYD4HHG.js.map → chunk-5SDH75YC.js.map} +0 -0
  293. /package/dist/{client-SS3C5MF6.js.map → chunk-E4VLWIJC.js.map} +0 -0
  294. /package/dist/{setup-digest-X735EZSD.js.map → chunk-IB76KGBY.js.map} +0 -0
  295. /package/dist/{chunk-AHZN4Z34.js.map → chunk-J4RVYUH4.js.map} +0 -0
  296. /package/dist/{setup-llm-QBSTQO7N.js.map → client-B27SN5QG.js.map} +0 -0
  297. /package/dist/{version-XE4GYTBV.js.map → client-EYOTW3JU.js.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 160 160" fill="none">
2
- <rect width="160" height="160" rx="32" fill="#0d1f17"/>
2
+ <rect width="160" height="160" rx="32" fill="#111111"/>
3
3
  <g stroke-linecap="round" stroke-linejoin="round">
4
- <path d="M35,120 L35,45 L80,82 L125,45 L125,120" stroke="#22c55e" stroke-width="16" opacity="0.85"/>
5
- <circle cx="35" cy="120" r="13" fill="#22c55e" opacity="0.9"/>
6
- <circle cx="35" cy="45" r="13" fill="#4ade80" opacity="0.85"/>
7
- <circle cx="80" cy="82" r="14" fill="#22c55e" opacity="0.95"/>
8
- <circle cx="125" cy="45" r="13" fill="#4ade80" opacity="0.85"/>
9
- <circle cx="125" cy="120" r="13" fill="#22c55e" opacity="0.9"/>
4
+ <path d="M35,120 L35,45 L80,82 L125,45 L125,120" stroke="#abcfb8" stroke-width="16" opacity="0.85"/>
5
+ <circle cx="35" cy="120" r="13" fill="#abcfb8" opacity="0.9"/>
6
+ <circle cx="35" cy="45" r="13" fill="#edbf7f" opacity="0.85"/>
7
+ <circle cx="80" cy="82" r="14" fill="#abcfb8" opacity="0.95"/>
8
+ <circle cx="125" cy="45" r="13" fill="#edbf7f" opacity="0.85"/>
9
+ <circle cx="125" cy="120" r="13" fill="#abcfb8" opacity="0.9"/>
10
10
  </g>
11
11
  </svg>
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Myco</title>
8
- <script type="module" crossorigin src="/assets/index-Cq-H7wgE.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-CjWGVHhF.css">
8
+ <script type="module" crossorigin src="/assets/index-CPA_uq_j.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-BGbil7f1.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
@@ -0,0 +1,79 @@
1
+ import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
+ import {
3
+ VAULT_GITIGNORE
4
+ } from "./chunk-WXSJKESH.js";
5
+ import "./chunk-SAKJMNSR.js";
6
+ import {
7
+ detectSymbionts
8
+ } from "./chunk-5PEUFJ6U.js";
9
+ import "./chunk-5SDH75YC.js";
10
+ import "./chunk-D7TYRPRM.js";
11
+ import "./chunk-E4VLWIJC.js";
12
+ import "./chunk-KH64DHOY.js";
13
+ import "./chunk-MYX5NCRH.js";
14
+ import "./chunk-YZMNEIFI.js";
15
+ import "./chunk-76ZO5RGT.js";
16
+ import "./chunk-S6I62FAH.js";
17
+ import "./chunk-G2LQBFE3.js";
18
+ import "./chunk-LPUQPDC2.js";
19
+ import {
20
+ resolveVaultDir
21
+ } from "./chunk-JTYZRPX5.js";
22
+ import "./chunk-PZUWP5VK.js";
23
+
24
+ // src/cli/update.ts
25
+ import { execFileSync } from "child_process";
26
+ import fs from "fs";
27
+ import path from "path";
28
+ async function run(args) {
29
+ const vaultDir = resolveVaultDir();
30
+ if (!fs.existsSync(path.join(vaultDir, "myco.yaml"))) {
31
+ console.error(`No myco.yaml found in ${vaultDir}. Run 'myco init' first.`);
32
+ process.exit(1);
33
+ }
34
+ console.log(`Updating Myco vault at ${vaultDir}
35
+ `);
36
+ let updatedCount = 0;
37
+ const gitignorePath = path.join(vaultDir, ".gitignore");
38
+ const currentGitignore = fs.existsSync(gitignorePath) ? fs.readFileSync(gitignorePath, "utf-8") : "";
39
+ if (currentGitignore !== VAULT_GITIGNORE) {
40
+ fs.writeFileSync(gitignorePath, VAULT_GITIGNORE, "utf-8");
41
+ console.log(" \u2713 Updated .gitignore");
42
+ updatedCount++;
43
+ } else {
44
+ console.log(" \u2013 .gitignore is current");
45
+ }
46
+ const projectRoot = path.dirname(vaultDir);
47
+ const detected = detectSymbionts(projectRoot);
48
+ if (detected.length > 0) {
49
+ for (const d of detected) {
50
+ try {
51
+ if (d.manifest.pluginInstallCommands.length > 0) {
52
+ for (const cmd of d.manifest.pluginInstallCommands) {
53
+ const [bin, ...cmdArgs] = cmd.split(" ");
54
+ execFileSync(bin, cmdArgs, { stdio: "inherit" });
55
+ }
56
+ console.log(` \u2713 Updated ${d.manifest.displayName} plugin`);
57
+ updatedCount++;
58
+ } else {
59
+ console.log(` \u2013 ${d.manifest.displayName}: no automated update available`);
60
+ }
61
+ } catch (err) {
62
+ console.error(` \u2717 Failed to update ${d.manifest.displayName}: ${err.message}`);
63
+ }
64
+ }
65
+ } else {
66
+ console.log(" \u2013 No agents detected");
67
+ }
68
+ console.log("");
69
+ if (updatedCount > 0) {
70
+ console.log(`Updated ${updatedCount} item${updatedCount > 1 ? "s" : ""}.`);
71
+ } else {
72
+ console.log("Everything is up to date.");
73
+ }
74
+ console.log("Run `myco doctor` to verify setup health.");
75
+ }
76
+ export {
77
+ run
78
+ };
79
+ //# sourceMappingURL=update-W3UFZU4G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/update.ts"],"sourcesContent":["import { resolveVaultDir } from '../vault/resolve.js';\nimport { VAULT_GITIGNORE } from './shared.js';\nimport { detectSymbionts } from '../symbionts/detect.js';\nimport { execFileSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function run(args: string[]): Promise<void> {\n const vaultDir = resolveVaultDir();\n if (!fs.existsSync(path.join(vaultDir, 'myco.yaml'))) {\n console.error(`No myco.yaml found in ${vaultDir}. Run 'myco init' first.`);\n process.exit(1);\n }\n\n console.log(`Updating Myco vault at ${vaultDir}\\n`);\n\n let updatedCount = 0;\n\n // --- Update .gitignore to match current template ---\n\n const gitignorePath = path.join(vaultDir, '.gitignore');\n const currentGitignore = fs.existsSync(gitignorePath)\n ? fs.readFileSync(gitignorePath, 'utf-8')\n : '';\n\n if (currentGitignore !== VAULT_GITIGNORE) {\n fs.writeFileSync(gitignorePath, VAULT_GITIGNORE, 'utf-8');\n console.log(' \\u2713 Updated .gitignore');\n updatedCount++;\n } else {\n console.log(' \\u2013 .gitignore is current');\n }\n\n // --- Update symbiont plugins ---\n\n const projectRoot = path.dirname(vaultDir);\n const detected = detectSymbionts(projectRoot);\n\n if (detected.length > 0) {\n for (const d of detected) {\n try {\n if (d.manifest.pluginInstallCommands.length > 0) {\n for (const cmd of d.manifest.pluginInstallCommands) {\n const [bin, ...cmdArgs] = cmd.split(' ');\n execFileSync(bin, cmdArgs, { stdio: 'inherit' });\n }\n console.log(` \\u2713 Updated ${d.manifest.displayName} plugin`);\n updatedCount++;\n } else {\n console.log(` \\u2013 ${d.manifest.displayName}: no automated update available`);\n }\n } catch (err) {\n console.error(` \\u2717 Failed to update ${d.manifest.displayName}: ${(err as Error).message}`);\n }\n }\n } else {\n console.log(' \\u2013 No agents detected');\n }\n\n // --- Summary ---\n\n console.log('');\n if (updatedCount > 0) {\n console.log(`Updated ${updatedCount} item${updatedCount > 1 ? 's' : ''}.`);\n } else {\n console.log('Everything is up to date.');\n }\n console.log('Run `myco doctor` to verify setup health.');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA,SAAS,oBAAoB;AAC7B,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,eAAsB,IAAI,MAA+B;AACvD,QAAM,WAAW,gBAAgB;AACjC,MAAI,CAAC,GAAG,WAAW,KAAK,KAAK,UAAU,WAAW,CAAC,GAAG;AACpD,YAAQ,MAAM,yBAAyB,QAAQ,0BAA0B;AACzE,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,UAAQ,IAAI,0BAA0B,QAAQ;AAAA,CAAI;AAElD,MAAI,eAAe;AAInB,QAAM,gBAAgB,KAAK,KAAK,UAAU,YAAY;AACtD,QAAM,mBAAmB,GAAG,WAAW,aAAa,IAChD,GAAG,aAAa,eAAe,OAAO,IACtC;AAEJ,MAAI,qBAAqB,iBAAiB;AACxC,OAAG,cAAc,eAAe,iBAAiB,OAAO;AACxD,YAAQ,IAAI,6BAA6B;AACzC;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,gCAAgC;AAAA,EAC9C;AAIA,QAAM,cAAc,KAAK,QAAQ,QAAQ;AACzC,QAAM,WAAW,gBAAgB,WAAW;AAE5C,MAAI,SAAS,SAAS,GAAG;AACvB,eAAW,KAAK,UAAU;AACxB,UAAI;AACF,YAAI,EAAE,SAAS,sBAAsB,SAAS,GAAG;AAC/C,qBAAW,OAAO,EAAE,SAAS,uBAAuB;AAClD,kBAAM,CAAC,KAAK,GAAG,OAAO,IAAI,IAAI,MAAM,GAAG;AACvC,yBAAa,KAAK,SAAS,EAAE,OAAO,UAAU,CAAC;AAAA,UACjD;AACA,kBAAQ,IAAI,oBAAoB,EAAE,SAAS,WAAW,SAAS;AAC/D;AAAA,QACF,OAAO;AACL,kBAAQ,IAAI,YAAY,EAAE,SAAS,WAAW,iCAAiC;AAAA,QACjF;AAAA,MACF,SAAS,KAAK;AACZ,gBAAQ,MAAM,6BAA6B,EAAE,SAAS,WAAW,KAAM,IAAc,OAAO,EAAE;AAAA,MAChG;AAAA,IACF;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,6BAA6B;AAAA,EAC3C;AAIA,UAAQ,IAAI,EAAE;AACd,MAAI,eAAe,GAAG;AACpB,YAAQ,IAAI,WAAW,YAAY,QAAQ,eAAe,IAAI,MAAM,EAAE,GAAG;AAAA,EAC3E,OAAO;AACL,YAAQ,IAAI,2BAA2B;AAAA,EACzC;AACA,UAAQ,IAAI,2CAA2C;AACzD;","names":[]}
@@ -0,0 +1,59 @@
1
+ import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
+ import {
3
+ EventBuffer
4
+ } from "./chunk-V7XG6V6C.js";
5
+ import {
6
+ readStdin
7
+ } from "./chunk-J4RVYUH4.js";
8
+ import {
9
+ DaemonClient
10
+ } from "./chunk-YZMNEIFI.js";
11
+ import "./chunk-76ZO5RGT.js";
12
+ import "./chunk-S6I62FAH.js";
13
+ import "./chunk-G2LQBFE3.js";
14
+ import "./chunk-LPUQPDC2.js";
15
+ import {
16
+ resolveVaultDir
17
+ } from "./chunk-JTYZRPX5.js";
18
+ import "./chunk-PZUWP5VK.js";
19
+
20
+ // src/hooks/user-prompt-submit.ts
21
+ import fs from "fs";
22
+ import path from "path";
23
+ async function main() {
24
+ const VAULT_DIR = resolveVaultDir();
25
+ if (!fs.existsSync(path.join(VAULT_DIR, "myco.yaml"))) return;
26
+ try {
27
+ const input = JSON.parse(await readStdin());
28
+ const prompt = input.prompt ?? "";
29
+ const sessionId = input.session_id ?? `s-${Date.now()}`;
30
+ const client = new DaemonClient(VAULT_DIR);
31
+ if (!await client.isHealthy()) {
32
+ client.spawnDaemon();
33
+ }
34
+ const eventResult = await client.post("/events", {
35
+ type: "user_prompt",
36
+ prompt,
37
+ session_id: sessionId
38
+ });
39
+ if (!eventResult.ok) {
40
+ const buffer = new EventBuffer(path.join(VAULT_DIR, "buffer"), sessionId);
41
+ buffer.append({ type: "user_prompt", prompt });
42
+ }
43
+ const contextResult = await client.post("/context/prompt", {
44
+ prompt,
45
+ session_id: sessionId
46
+ });
47
+ const sessionLine = `Session:: \`${sessionId}\``;
48
+ const contextText = contextResult.ok && contextResult.data?.text ? `${contextResult.data.text}
49
+ ${sessionLine}` : sessionLine;
50
+ process.stdout.write(contextText);
51
+ } catch (error) {
52
+ process.stderr.write(`[myco] user-prompt-submit error: ${error.message}
53
+ `);
54
+ }
55
+ }
56
+ export {
57
+ main
58
+ };
59
+ //# sourceMappingURL=user-prompt-submit-LSWCYUW3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/user-prompt-submit.ts"],"sourcesContent":["import { DaemonClient } from './client.js';\nimport { readStdin } from './read-stdin.js';\nimport { EventBuffer } from '../capture/buffer.js';\nimport { resolveVaultDir } from '../vault/resolve.js';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function main() {\n const VAULT_DIR = resolveVaultDir();\n if (!fs.existsSync(path.join(VAULT_DIR, 'myco.yaml'))) return;\n\n try {\n const input = JSON.parse(await readStdin());\n const prompt = input.prompt ?? '';\n const sessionId = input.session_id ?? `s-${Date.now()}`;\n\n const client = new DaemonClient(VAULT_DIR);\n // Spawn daemon if needed but don't block on full health check backoff.\n // The event POST will fail fast if daemon isn't ready — buffer absorbs it.\n if (!(await client.isHealthy())) {\n client.spawnDaemon();\n }\n\n // Forward prompt as event for capture\n const eventResult = await client.post('/events', {\n type: 'user_prompt', prompt, session_id: sessionId,\n });\n\n if (!eventResult.ok) {\n // Daemon still unreachable — write directly to buffer for later processing\n const buffer = new EventBuffer(path.join(VAULT_DIR, 'buffer'), sessionId);\n buffer.append({ type: 'user_prompt', prompt });\n }\n\n // Search for relevant spores to inject as context for this prompt.\n // The daemon does a vector search against the prompt text and returns\n // any high-relevance spores. This is fast (~20ms) — no LLM call.\n const contextResult = await client.post('/context/prompt', {\n prompt,\n session_id: sessionId,\n });\n\n // Always include the session ID so the agent can pass it to myco_remember.\n // Uses Session:: format consistent with daemon context injection (Branch::, Session::).\n const sessionLine = `Session:: \\`${sessionId}\\``;\n const contextText = contextResult.ok && contextResult.data?.text\n ? `${contextResult.data.text}\\n${sessionLine}`\n : sessionLine;\n\n process.stdout.write(contextText);\n } catch (error) {\n process.stderr.write(`[myco] user-prompt-submit error: ${(error as Error).message}\\n`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,eAAsB,OAAO;AAC3B,QAAM,YAAY,gBAAgB;AAClC,MAAI,CAAC,GAAG,WAAW,KAAK,KAAK,WAAW,WAAW,CAAC,EAAG;AAEvD,MAAI;AACF,UAAM,QAAQ,KAAK,MAAM,MAAM,UAAU,CAAC;AAC1C,UAAM,SAAS,MAAM,UAAU;AAC/B,UAAM,YAAY,MAAM,cAAc,KAAK,KAAK,IAAI,CAAC;AAErD,UAAM,SAAS,IAAI,aAAa,SAAS;AAGzC,QAAI,CAAE,MAAM,OAAO,UAAU,GAAI;AAC/B,aAAO,YAAY;AAAA,IACrB;AAGA,UAAM,cAAc,MAAM,OAAO,KAAK,WAAW;AAAA,MAC/C,MAAM;AAAA,MAAe;AAAA,MAAQ,YAAY;AAAA,IAC3C,CAAC;AAED,QAAI,CAAC,YAAY,IAAI;AAEnB,YAAM,SAAS,IAAI,YAAY,KAAK,KAAK,WAAW,QAAQ,GAAG,SAAS;AACxE,aAAO,OAAO,EAAE,MAAM,eAAe,OAAO,CAAC;AAAA,IAC/C;AAKA,UAAM,gBAAgB,MAAM,OAAO,KAAK,mBAAmB;AAAA,MACzD;AAAA,MACA,YAAY;AAAA,IACd,CAAC;AAID,UAAM,cAAc,eAAe,SAAS;AAC5C,UAAM,cAAc,cAAc,MAAM,cAAc,MAAM,OACxD,GAAG,cAAc,KAAK,IAAI;AAAA,EAAK,WAAW,KAC1C;AAEJ,YAAQ,OAAO,MAAM,WAAW;AAAA,EAClC,SAAS,OAAO;AACd,YAAQ,OAAO,MAAM,oCAAqC,MAAgB,OAAO;AAAA,CAAI;AAAA,EACvF;AACF;","names":[]}
@@ -1,50 +1,45 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
- createEmbeddingProvider,
4
- createLlmProvider
5
- } from "./chunk-54WVLTKD.js";
6
- import "./chunk-4DYD4HHG.js";
3
+ createEmbeddingProvider
4
+ } from "./chunk-MKKXCCQ5.js";
5
+ import "./chunk-AEJS57ZK.js";
6
+ import "./chunk-5QERXFH7.js";
7
+ import "./chunk-FPMEIN2W.js";
8
+ import "./chunk-5SDH75YC.js";
7
9
  import {
8
10
  loadConfig
9
- } from "./chunk-HYVT345Y.js";
10
- import "./chunk-ERG2IEWX.js";
11
- import "./chunk-DYDBF5W6.js";
11
+ } from "./chunk-MAZOVVDU.js";
12
+ import "./chunk-D7TYRPRM.js";
13
+ import "./chunk-E4VLWIJC.js";
14
+ import "./chunk-KH64DHOY.js";
15
+ import "./chunk-76ZO5RGT.js";
16
+ import "./chunk-S6I62FAH.js";
12
17
  import "./chunk-PZUWP5VK.js";
13
18
 
14
19
  // src/cli/verify.ts
15
- var VERIFY_LLM_PROMPT = "Respond with OK";
16
20
  var VERIFY_EMBEDDING_INPUT = "test";
17
21
  async function run(_args, vaultDir) {
18
22
  const config = loadConfig(vaultDir);
19
- const { llm: llmConfig, embedding: embeddingConfig } = config.intelligence;
20
- let llmOk = false;
23
+ const embeddingConfig = config.embedding;
21
24
  let embeddingOk = false;
22
25
  let embeddingDimensions = 0;
23
- try {
24
- const llm = createLlmProvider(llmConfig);
25
- const response = await llm.summarize(VERIFY_LLM_PROMPT);
26
- llmOk = response.text.length > 0;
27
- } catch (err) {
28
- llmOk = false;
29
- }
30
- const llmLabel = `LLM (${llmConfig.provider} / ${llmConfig.model}):`;
31
- console.log(`${llmLabel.padEnd(40)} ${llmOk ? "OK" : "FAIL"}`);
32
26
  try {
33
27
  const emb = createEmbeddingProvider(embeddingConfig);
34
28
  const response = await emb.embed(VERIFY_EMBEDDING_INPUT);
35
29
  embeddingDimensions = response.dimensions;
36
30
  embeddingOk = embeddingDimensions > 0;
37
- } catch (err) {
31
+ } catch {
38
32
  embeddingOk = false;
39
33
  }
40
34
  const embLabel = `Embedding (${embeddingConfig.provider} / ${embeddingConfig.model}):`;
41
35
  const embStatus = embeddingOk ? `OK (${embeddingDimensions} dimensions)` : "FAIL";
42
36
  console.log(`${embLabel.padEnd(40)} ${embStatus}`);
43
- if (!llmOk || !embeddingOk) {
37
+ console.log("\nNote: LLM configuration is managed by the Myco agent (Claude Agent SDK).");
38
+ if (!embeddingOk) {
44
39
  process.exit(1);
45
40
  }
46
41
  }
47
42
  export {
48
43
  run
49
44
  };
50
- //# sourceMappingURL=verify-X272WGBD.js.map
45
+ //# sourceMappingURL=verify-O7TQ5DDY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/verify.ts"],"sourcesContent":["import { loadConfig } from '../config/loader.js';\nimport { createEmbeddingProvider } from '../intelligence/llm.js';\n\nconst VERIFY_EMBEDDING_INPUT = 'test';\n\nexport async function run(_args: string[], vaultDir: string): Promise<void> {\n const config = loadConfig(vaultDir);\n const embeddingConfig = config.embedding;\n\n let embeddingOk = false;\n let embeddingDimensions = 0;\n\n // Test embedding\n try {\n const emb = createEmbeddingProvider(embeddingConfig);\n const response = await emb.embed(VERIFY_EMBEDDING_INPUT);\n embeddingDimensions = response.dimensions;\n embeddingOk = embeddingDimensions > 0;\n } catch {\n embeddingOk = false;\n }\n\n const embLabel = `Embedding (${embeddingConfig.provider} / ${embeddingConfig.model}):`;\n const embStatus = embeddingOk ? `OK (${embeddingDimensions} dimensions)` : 'FAIL';\n console.log(`${embLabel.padEnd(40)} ${embStatus}`);\n\n console.log('\\nNote: LLM configuration is managed by the Myco agent (Claude Agent SDK).');\n\n if (!embeddingOk) {\n process.exit(1);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA,IAAM,yBAAyB;AAE/B,eAAsB,IAAI,OAAiB,UAAiC;AAC1E,QAAM,SAAS,WAAW,QAAQ;AAClC,QAAM,kBAAkB,OAAO;AAE/B,MAAI,cAAc;AAClB,MAAI,sBAAsB;AAG1B,MAAI;AACF,UAAM,MAAM,wBAAwB,eAAe;AACnD,UAAM,WAAW,MAAM,IAAI,MAAM,sBAAsB;AACvD,0BAAsB,SAAS;AAC/B,kBAAc,sBAAsB;AAAA,EACtC,QAAQ;AACN,kBAAc;AAAA,EAChB;AAEA,QAAM,WAAW,cAAc,gBAAgB,QAAQ,MAAM,gBAAgB,KAAK;AAClF,QAAM,YAAY,cAAc,OAAO,mBAAmB,iBAAiB;AAC3E,UAAQ,IAAI,GAAG,SAAS,OAAO,EAAE,CAAC,IAAI,SAAS,EAAE;AAEjD,UAAQ,IAAI,4EAA4E;AAExF,MAAI,CAAC,aAAa;AAChB,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}
@@ -1,11 +1,10 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  getPluginVersion
4
- } from "./chunk-XH34FX4C.js";
5
- import "./chunk-F7GAYVWF.js";
6
- import "./chunk-DYDBF5W6.js";
4
+ } from "./chunk-G2LQBFE3.js";
5
+ import "./chunk-LPUQPDC2.js";
7
6
  import "./chunk-PZUWP5VK.js";
8
7
  export {
9
8
  getPluginVersion
10
9
  };
11
- //# sourceMappingURL=version-XE4GYTBV.js.map
10
+ //# sourceMappingURL=version-VWWY7SPQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/hooks/hooks.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "hooks": [
7
7
  {
8
8
  "type": "command",
9
- "command": "node ${CLAUDE_PLUGIN_ROOT}/dist/src/hooks/session-start.js",
9
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook session-start",
10
10
  "timeout": 10
11
11
  }
12
12
  ]
@@ -17,7 +17,7 @@
17
17
  "hooks": [
18
18
  {
19
19
  "type": "command",
20
- "command": "node ${CLAUDE_PLUGIN_ROOT}/dist/src/hooks/user-prompt-submit.js",
20
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook user-prompt-submit",
21
21
  "timeout": 5
22
22
  }
23
23
  ]
@@ -28,7 +28,7 @@
28
28
  "hooks": [
29
29
  {
30
30
  "type": "command",
31
- "command": "node ${CLAUDE_PLUGIN_ROOT}/dist/src/hooks/post-tool-use.js",
31
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook post-tool-use",
32
32
  "timeout": 5
33
33
  }
34
34
  ]
@@ -39,7 +39,7 @@
39
39
  "hooks": [
40
40
  {
41
41
  "type": "command",
42
- "command": "node ${CLAUDE_PLUGIN_ROOT}/dist/src/hooks/stop.js",
42
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook stop",
43
43
  "timeout": 30
44
44
  }
45
45
  ]
@@ -50,11 +50,88 @@
50
50
  "hooks": [
51
51
  {
52
52
  "type": "command",
53
- "command": "node ${CLAUDE_PLUGIN_ROOT}/dist/src/hooks/session-end.js",
53
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook session-end",
54
54
  "timeout": 10
55
55
  }
56
56
  ]
57
57
  }
58
+ ],
59
+ "PostToolUseFailure": [
60
+ {
61
+ "hooks": [
62
+ {
63
+ "type": "command",
64
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook post-tool-use-failure",
65
+ "timeout": 5
66
+ }
67
+ ]
68
+ }
69
+ ],
70
+ "SubagentStart": [
71
+ {
72
+ "hooks": [
73
+ {
74
+ "type": "command",
75
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook subagent-start",
76
+ "timeout": 5
77
+ }
78
+ ]
79
+ }
80
+ ],
81
+ "SubagentStop": [
82
+ {
83
+ "hooks": [
84
+ {
85
+ "type": "command",
86
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook subagent-stop",
87
+ "timeout": 10
88
+ }
89
+ ]
90
+ }
91
+ ],
92
+ "StopFailure": [
93
+ {
94
+ "hooks": [
95
+ {
96
+ "type": "command",
97
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook stop-failure",
98
+ "timeout": 10
99
+ }
100
+ ]
101
+ }
102
+ ],
103
+ "TaskCompleted": [
104
+ {
105
+ "hooks": [
106
+ {
107
+ "type": "command",
108
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook task-completed",
109
+ "timeout": 5
110
+ }
111
+ ]
112
+ }
113
+ ],
114
+ "PreCompact": [
115
+ {
116
+ "hooks": [
117
+ {
118
+ "type": "command",
119
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook pre-compact",
120
+ "timeout": 5
121
+ }
122
+ ]
123
+ }
124
+ ],
125
+ "PostCompact": [
126
+ {
127
+ "hooks": [
128
+ {
129
+ "type": "command",
130
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/myco-run hook post-compact",
131
+ "timeout": 5
132
+ }
133
+ ]
134
+ }
58
135
  ]
59
136
  }
60
137
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goondocks/myco",
3
- "version": "0.6.5",
3
+ "version": "0.10.0",
4
4
  "description": "Collective agent intelligence — Claude Code plugin",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -9,6 +9,7 @@
9
9
  "myco": "dist/src/cli.js"
10
10
  },
11
11
  "files": [
12
+ "bin/",
12
13
  "dist/",
13
14
  "commands/",
14
15
  "skills/",
@@ -34,12 +35,14 @@
34
35
  "url": "https://github.com/goondocks-co/myco.git"
35
36
  },
36
37
  "dependencies": {
37
- "@anthropic-ai/sdk": "^0.78.0",
38
+ "@anthropic-ai/claude-agent-sdk": "^0.2.81",
39
+ "@anthropic-ai/sdk": "^0.80.0",
40
+ "@inquirer/prompts": "^8.3.2",
38
41
  "@modelcontextprotocol/sdk": "^1.12.0",
39
42
  "better-sqlite3": "^12.8.0",
40
43
  "chokidar": "^5.0.0",
41
44
  "gray-matter": "^4.0.3",
42
- "sqlite-vec": "^0.1.0",
45
+ "sqlite-vec": "^0.1.7",
43
46
  "yaml": "^2.4.0",
44
47
  "zod": "^4.3.6"
45
48
  },
@@ -24,14 +24,14 @@ Myco works in the background without explicit tool calls:
24
24
 
25
25
  - **Session start**: relevant context is injected based on your git branch and active plans
26
26
  - **During the session**: tool calls, prompts, and responses are buffered as events
27
- - **Session stop**: the daemon extracts observations, writes session notes, detects parent sessions, and captures artifacts
27
+ - **Session stop**: the daemon extracts spores, writes session records, detects parent sessions, and captures artifacts
28
28
  - **Lineage**: parent-child session relationships are detected automatically (clear context, same branch, semantic similarity)
29
29
 
30
30
  The MCP tools below are for going deeper than the automatic context injection provides.
31
31
 
32
32
  ## Setup
33
33
 
34
- If the vault isn't configured, run `/myco-setup` for guided first-time setup.
34
+ If the vault isn't configured, run `myco init` in the project directory for guided first-time setup.
35
35
 
36
36
  For reconfiguration, status checks, and ongoing management, use the CLI commands and MCP tools documented below. For detailed vault health checks, see `references/vault-status.md`.
37
37
 
@@ -108,7 +108,7 @@ Filter by `plan`, `branch`, `user`, or `since` (ISO timestamp). Useful for under
108
108
 
109
109
  ### myco_graph — Traverse vault connections
110
110
 
111
- Follow wikilink connections between notes — find related sessions, spores, and plans.
111
+ Follow graph connections between records — find related sessions, spores, and plans.
112
112
 
113
113
  ```json
114
114
  { "note_id": "session-abc123", "direction": "both", "depth": 2 }
@@ -118,7 +118,7 @@ Follow wikilink connections between notes — find related sessions, spores, and
118
118
 
119
119
  ### myco_orphans — Find disconnected notes
120
120
 
121
- Find vault notes with no incoming or outgoing wikilinks — potentially stale or unconnected knowledge.
121
+ Find records with no incoming or outgoing graph connections — potentially stale or unconnected knowledge.
122
122
 
123
123
  ```json
124
124
  {}
@@ -140,7 +140,7 @@ View daemon logs for debugging when sessions aren't being captured, observations
140
140
  { "level": "warn", "component": "processor", "limit": 20 }
141
141
  ```
142
142
 
143
- Components: `daemon`, `processor`, `hooks`, `lifecycle`, `embeddings`, `lineage`, `watcher`, `digest`, `curation`.
143
+ Components: `daemon`, `processor`, `hooks`, `lifecycle`, `embeddings`, `lineage`, `watcher`, `digest`, `intelligence`.
144
144
 
145
145
  ### myco_supersede — Mark a spore as replaced
146
146
 
@@ -245,13 +245,13 @@ node <plugin-root>/dist/src/cli.js digest --tier 3000 # Reprocess a specific ti
245
245
  node <plugin-root>/dist/src/cli.js digest --full # Reprocess all tiers from scratch
246
246
  ```
247
247
 
248
- ### Vault curation
248
+ ### Vault intelligence
249
249
 
250
250
  Supersession happens automatically on every spore write. For vault-wide cleanup, see `references/cli-usage.md` for full flags:
251
251
 
252
252
  ```
253
- node <plugin-root>/dist/src/cli.js curate # Scan and supersede stale spores
254
- node <plugin-root>/dist/src/cli.js curate --dry-run # Preview without writing
253
+ node <plugin-root>/dist/src/cli.js agent # Run the intelligence agent
254
+ node <plugin-root>/dist/src/cli.js agent --dry-run # Preview without writing
255
255
  ```
256
256
 
257
257
  For patterns on when to manually supersede or consolidate, see `references/wisdom.md`.
@@ -260,9 +260,9 @@ For patterns on when to manually supersede or consolidate, see `references/wisdo
260
260
 
261
261
  ```
262
262
  node <plugin-root>/dist/src/cli.js version # Check plugin version
263
- node <plugin-root>/dist/src/cli.js rebuild # Re-index all vault notes
263
+ node <plugin-root>/dist/src/cli.js rebuild # Re-index all records
264
264
  node <plugin-root>/dist/src/cli.js stats # Check vault health
265
265
  node <plugin-root>/dist/src/cli.js verify # Test provider connectivity
266
266
  node <plugin-root>/dist/src/cli.js config get intelligence.llm.model
267
- node <plugin-root>/dist/src/cli.js config set intelligence.llm.model gpt-oss
267
+ node <plugin-root>/dist/src/cli.js config set intelligence.llm.model phi4
268
268
  ```
@@ -36,7 +36,7 @@ node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js init \
36
36
  --llm-provider ollama \
37
37
  --llm-model qwen2.5-coder:14b \
38
38
  --embedding-provider ollama \
39
- --embedding-model nomic-embed-text
39
+ --embedding-model bge-m3
40
40
  ```
41
41
 
42
42
  ---
@@ -57,7 +57,7 @@ Reconfigures intelligence backend without reinitializing the vault.
57
57
  | `--embedding-url <url>` | string | Embedding base URL |
58
58
  | `--show` | boolean | Display current settings and exit |
59
59
 
60
- Note: changing the embedding model requires running `rebuild` afterward to re-embed all vault notes with the new model.
60
+ Note: changing the embedding model requires running `rebuild` afterward to re-embed all records with the new model.
61
61
 
62
62
  **Example:**
63
63
 
@@ -145,7 +145,7 @@ Output is JSON:
145
145
 
146
146
  ```json
147
147
  {
148
- "ollama": { "available": true, "models": ["qwen2.5-coder:14b", "nomic-embed-text"] },
148
+ "ollama": { "available": true, "models": ["qwen2.5-coder:14b", "bge-m3"] },
149
149
  "lm-studio": { "available": false, "models": [] },
150
150
  "anthropic": { "available": true, "models": [] }
151
151
  }
@@ -240,7 +240,7 @@ node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js vectors "session lifecycle hooks"
240
240
 
241
241
  ---
242
242
 
243
- ### `session [id|latest]` — Display a session note
243
+ ### `session [id|latest]` — Display a session record
244
244
 
245
245
  | Argument | Description |
246
246
  |----------|-------------|
@@ -275,7 +275,7 @@ Run this after any daemon code changes to pick up new behavior.
275
275
 
276
276
  ### `rebuild` — Full FTS + vector reindex
277
277
 
278
- Re-indexes all vault notes. Superseded and archived spores are skipped.
278
+ Re-indexes all records. Superseded and archived spores are skipped.
279
279
 
280
280
  No flags.
281
281
 
@@ -296,7 +296,7 @@ Trigger a digest cycle manually. Use `--tier` to reprocess a specific tier from
296
296
  | `--tier <number>` | number | Reprocess a specific tier (clean slate) |
297
297
  | `--full` | boolean | Reprocess all tiers from scratch |
298
298
 
299
- When `--tier` or `--full` is used, the cycle reads all vault notes (ignoring the last-cycle timestamp) and skips the previous extract, producing a fresh synthesis.
299
+ When `--tier` or `--full` is used, the cycle reads all records (ignoring the last-cycle timestamp) and skips the previous extract, producing a fresh synthesis.
300
300
 
301
301
  **Examples:**
302
302
 
@@ -313,25 +313,27 @@ node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js digest --full
313
313
 
314
314
  ---
315
315
 
316
- ### `curate` — Scan vault and supersede stale spores
316
+ ### `agent` — Run the intelligence agent
317
317
 
318
- Scans all active spores, clusters them by semantic similarity within each observation type, and asks the LLM which older spores are outdated. Superseded spores are preserved with lineage metadata — never deleted.
318
+ Runs the intelligence agent to process unprocessed session data, extract observations, build the knowledge graph, and supersede stale spores.
319
319
 
320
320
  | Flag | Type | Description |
321
321
  |------|------|-------------|
322
+ | `--task <name>` | string | Which task to run (e.g., `full-intelligence`, `extract-only`) |
323
+ | `--instruction <text>` | string | Free-text instruction to guide the agent's focus |
322
324
  | `--dry-run` | boolean | Run LLM evaluation but print results without writing |
323
325
 
324
326
  **Examples:**
325
327
 
326
328
  ```sh
327
- # Scan and supersede stale spores
328
- node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js curate
329
+ # Run the default intelligence task
330
+ node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js agent
329
331
 
330
- # Preview what would be superseded
331
- node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js curate --dry-run
332
+ # Preview what would be changed
333
+ node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js agent --dry-run
332
334
  ```
333
335
 
334
- Note: `--dry-run` still runs LLM calls (to evaluate clusters) — it just skips the writes. Use it to review before running on a vault for the first time.
336
+ Note: `--dry-run` still runs LLM calls (to evaluate) — it just skips the writes. Use it to review before running on a vault for the first time.
335
337
 
336
338
  ---
337
339
 
@@ -88,7 +88,7 @@ Read the last line of `<vault>/digest/trace.jsonl`. Each line is a JSON object w
88
88
  - `cycleId` — short identifier for the cycle
89
89
  - `timestamp` — ISO timestamp of when the cycle ran
90
90
  - `tiersGenerated` — which tiers were written
91
- - `substrateCount` — number of vault notes processed as input
91
+ - `substrateCount` — number of records processed as input
92
92
  - `durationMs` — how long the cycle took
93
93
 
94
94
  **Metabolism config:**
@@ -127,7 +127,7 @@ Check for these problems when assessing vault health:
127
127
  | **Stale buffers** | `.jsonl` files in `<vault>/buffer/` older than 24 hours | Events were captured but never processed — LLM may have been unavailable |
128
128
  | **Missing index** | `<vault>/index.db` does not exist | FTS search will not work; suggest `node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js rebuild` |
129
129
  | **Missing vectors** | `<vault>/vectors.db` does not exist | Semantic search disabled; embeddings may be unconfigured |
130
- | **Old config version** | `version` in `myco.yaml` is less than `2` | Vault may need migration; suggest running `/myco-setup` |
130
+ | **Old config version** | `version` in `myco.yaml` is less than `2` | Vault may need migration; suggest running `myco init` |
131
131
 
132
132
  Report all issues found, or "None found." if the vault is clean.
133
133
 
@@ -221,4 +221,4 @@ Lineage tracks parent-child relationships between sessions. A high count of `sem
221
221
  | Stale buffers | Check if LLM provider was down during those sessions; events will process on next daemon start |
222
222
  | Missing index | Run `node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js rebuild` to regenerate FTS and vector indexes |
223
223
  | Provider unreachable | Ensure the provider is running (e.g., `ollama serve`); verify model name in `myco.yaml`; reconfigure with CLI commands |
224
- | Config version < 2 | Run `/myco-setup` to migrate the vault configuration |
224
+ | Config version < 2 | Run `myco init` to migrate the vault configuration |