@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.
- package/.claude-plugin/marketplace.json +1 -5
- package/.claude-plugin/plugin.json +3 -3
- package/CONTRIBUTING.md +37 -30
- package/README.md +81 -28
- package/bin/myco-run +2 -0
- package/dist/agent-run-CGXF5PPC.js +34 -0
- package/dist/agent-run-CGXF5PPC.js.map +1 -0
- package/dist/agent-tasks-T7NVI3R7.js +180 -0
- package/dist/agent-tasks-T7NVI3R7.js.map +1 -0
- package/dist/chunk-5LPERML5.js +486 -0
- package/dist/chunk-5LPERML5.js.map +1 -0
- package/dist/chunk-5PEUFJ6U.js +92 -0
- package/dist/chunk-5PEUFJ6U.js.map +1 -0
- package/dist/chunk-5QERXFH7.js +26 -0
- package/dist/chunk-5QERXFH7.js.map +1 -0
- package/dist/{chunk-4DYD4HHG.js → chunk-5SDH75YC.js} +2 -2
- package/dist/chunk-76ZO5RGT.js +150 -0
- package/dist/chunk-76ZO5RGT.js.map +1 -0
- package/dist/chunk-AEJS57ZK.js +26 -0
- package/dist/chunk-AEJS57ZK.js.map +1 -0
- package/dist/chunk-C3AEZ3BZ.js +22 -0
- package/dist/chunk-C3AEZ3BZ.js.map +1 -0
- package/dist/chunk-CUDM5YJY.js +294 -0
- package/dist/chunk-CUDM5YJY.js.map +1 -0
- package/dist/chunk-D6DXYAFK.js +93 -0
- package/dist/chunk-D6DXYAFK.js.map +1 -0
- package/dist/chunk-D7TYRPRM.js +7312 -0
- package/dist/chunk-D7TYRPRM.js.map +1 -0
- package/dist/chunk-E4VLWIJC.js +2 -0
- package/dist/chunk-ENWBFX7F.js +50 -0
- package/dist/chunk-ENWBFX7F.js.map +1 -0
- package/dist/chunk-FFQES5MC.js +904 -0
- package/dist/chunk-FFQES5MC.js.map +1 -0
- package/dist/chunk-FMIWFRAM.js +41 -0
- package/dist/chunk-FMIWFRAM.js.map +1 -0
- package/dist/chunk-FPMEIN2W.js +66 -0
- package/dist/chunk-FPMEIN2W.js.map +1 -0
- package/dist/chunk-G2LQBFE3.js +35 -0
- package/dist/chunk-G2LQBFE3.js.map +1 -0
- package/dist/chunk-IB76KGBY.js +2 -0
- package/dist/{chunk-AHZN4Z34.js → chunk-J4RVYUH4.js} +2 -2
- package/dist/{chunk-N33KUCFP.js → chunk-JTYZRPX5.js} +1 -9
- package/dist/chunk-JTYZRPX5.js.map +1 -0
- package/dist/{chunk-ERG2IEWX.js → chunk-KH64DHOY.js} +3 -7413
- package/dist/chunk-KH64DHOY.js.map +1 -0
- package/dist/chunk-LPUQPDC2.js +19 -0
- package/dist/chunk-LPUQPDC2.js.map +1 -0
- package/dist/chunk-M5XWW7UI.js +97 -0
- package/dist/chunk-M5XWW7UI.js.map +1 -0
- package/dist/chunk-MAZOVVDU.js +305 -0
- package/dist/chunk-MAZOVVDU.js.map +1 -0
- package/dist/{chunk-54WVLTKD.js → chunk-MKKXCCQ5.js} +33 -17
- package/dist/chunk-MKKXCCQ5.js.map +1 -0
- package/dist/chunk-MSXYUXZR.js +187 -0
- package/dist/chunk-MSXYUXZR.js.map +1 -0
- package/dist/chunk-MYX5NCRH.js +45 -0
- package/dist/chunk-MYX5NCRH.js.map +1 -0
- package/dist/chunk-RJMXDUMA.js +40 -0
- package/dist/chunk-RJMXDUMA.js.map +1 -0
- package/dist/chunk-S6I62FAH.js +92 -0
- package/dist/chunk-S6I62FAH.js.map +1 -0
- package/dist/chunk-U7UUJ4FD.js +180 -0
- package/dist/chunk-U7UUJ4FD.js.map +1 -0
- package/dist/{chunk-HIN3UVOG.js → chunk-V7XG6V6C.js} +20 -11
- package/dist/chunk-V7XG6V6C.js.map +1 -0
- package/dist/chunk-W6HI4CCS.js +162 -0
- package/dist/chunk-W6HI4CCS.js.map +1 -0
- package/dist/{chunk-F7GAYVWF.js → chunk-WXSJKESH.js} +96 -9
- package/dist/chunk-WXSJKESH.js.map +1 -0
- package/dist/chunk-WZZH3YXJ.js +601 -0
- package/dist/chunk-WZZH3YXJ.js.map +1 -0
- package/dist/chunk-XLY3REL3.js +165 -0
- package/dist/chunk-XLY3REL3.js.map +1 -0
- package/dist/{chunk-4B5RO2YV.js → chunk-YZMNEIFI.js} +33 -43
- package/dist/chunk-YZMNEIFI.js.map +1 -0
- package/dist/chunk-ZESTWGJT.js +116 -0
- package/dist/chunk-ZESTWGJT.js.map +1 -0
- package/dist/chunk-ZMW6KQX2.js +103 -0
- package/dist/chunk-ZMW6KQX2.js.map +1 -0
- package/dist/cli-6CPFJGRZ.js +139 -0
- package/dist/cli-6CPFJGRZ.js.map +1 -0
- package/dist/client-B27SN5QG.js +15 -0
- package/dist/client-EYOTW3JU.js +19 -0
- package/dist/{config-IBS6KOLQ.js → config-G3CSGI7P.js} +21 -34
- package/dist/config-G3CSGI7P.js.map +1 -0
- package/dist/detect-H5OPI7GD.js +17 -0
- package/dist/detect-H5OPI7GD.js.map +1 -0
- package/dist/detect-providers-AZ6DEQU7.js +26 -0
- package/dist/detect-providers-AZ6DEQU7.js.map +1 -0
- package/dist/doctor-RHHWJTMB.js +258 -0
- package/dist/doctor-RHHWJTMB.js.map +1 -0
- package/dist/executor-A5C5KDLP.js +1454 -0
- package/dist/executor-A5C5KDLP.js.map +1 -0
- package/dist/init-ARJROOWV.js +198 -0
- package/dist/init-ARJROOWV.js.map +1 -0
- package/dist/init-wizard-XNFOZCEB.js +294 -0
- package/dist/init-wizard-XNFOZCEB.js.map +1 -0
- package/dist/llm-XJFHRFHB.js +17 -0
- package/dist/llm-XJFHRFHB.js.map +1 -0
- package/dist/loader-GKXR5ONU.js +28 -0
- package/dist/loader-GKXR5ONU.js.map +1 -0
- package/dist/loader-PZ7ZRSA4.js +22 -0
- package/dist/loader-PZ7ZRSA4.js.map +1 -0
- package/dist/{chunk-F7PGDD2X.js → logs-LXHPDKUA.js} +74 -5
- package/dist/logs-LXHPDKUA.js.map +1 -0
- package/dist/machine-id-RCM7TXPJ.js +13 -0
- package/dist/machine-id-RCM7TXPJ.js.map +1 -0
- package/dist/main-PVX6R3I6.js +5065 -0
- package/dist/main-PVX6R3I6.js.map +1 -0
- package/dist/openai-embeddings-ST3B6GW7.js +14 -0
- package/dist/openai-embeddings-ST3B6GW7.js.map +1 -0
- package/dist/openrouter-HJHOO3EO.js +14 -0
- package/dist/openrouter-HJHOO3EO.js.map +1 -0
- package/dist/post-compact-LR3DSGT3.js +26 -0
- package/dist/post-compact-LR3DSGT3.js.map +1 -0
- package/dist/post-tool-use-SOFVNFU3.js +56 -0
- package/dist/post-tool-use-SOFVNFU3.js.map +1 -0
- package/dist/post-tool-use-failure-2CZZZASB.js +28 -0
- package/dist/post-tool-use-failure-2CZZZASB.js.map +1 -0
- package/dist/pre-compact-3E3D6565.js +25 -0
- package/dist/pre-compact-3E3D6565.js.map +1 -0
- package/dist/provider-check-SOTDYLJE.js +12 -0
- package/dist/provider-check-SOTDYLJE.js.map +1 -0
- package/dist/registry-WVZG6R2R.js +25 -0
- package/dist/registry-WVZG6R2R.js.map +1 -0
- package/dist/resolution-events-UPHJJLDQ.js +15 -0
- package/dist/resolution-events-UPHJJLDQ.js.map +1 -0
- package/dist/resolve-3FEUV462.js +9 -0
- package/dist/resolve-3FEUV462.js.map +1 -0
- package/dist/{restart-UIP7US4U.js → restart-XIUFVS33.js} +10 -6
- package/dist/{restart-UIP7US4U.js.map → restart-XIUFVS33.js.map} +1 -1
- package/dist/search-VB6Z2ZXV.js +91 -0
- package/dist/search-VB6Z2ZXV.js.map +1 -0
- package/dist/{server-43KSJ65Q.js → server-AKPBRP6Z.js} +267 -524
- package/dist/server-AKPBRP6Z.js.map +1 -0
- package/dist/session-UVZS6CY5.js +69 -0
- package/dist/session-UVZS6CY5.js.map +1 -0
- package/dist/session-end-YMQ44U6Z.js +38 -0
- package/dist/session-end-YMQ44U6Z.js.map +1 -0
- package/dist/session-start-3754HF3N.js +170 -0
- package/dist/session-start-3754HF3N.js.map +1 -0
- package/dist/setup-digest-4KDSXAIV.js +15 -0
- package/dist/setup-digest-4KDSXAIV.js.map +1 -0
- package/dist/setup-llm-NWHOPJUV.js +81 -0
- package/dist/setup-llm-NWHOPJUV.js.map +1 -0
- package/dist/src/agent/definitions/agent.yaml +35 -0
- package/dist/src/agent/definitions/tasks/digest-only.yaml +84 -0
- package/dist/src/agent/definitions/tasks/extract-only.yaml +87 -0
- package/dist/src/agent/definitions/tasks/full-intelligence.yaml +472 -0
- package/dist/src/agent/definitions/tasks/graph-maintenance.yaml +92 -0
- package/dist/src/agent/definitions/tasks/review-session.yaml +132 -0
- package/dist/src/agent/definitions/tasks/supersession-sweep.yaml +86 -0
- package/dist/src/agent/definitions/tasks/title-summary.yaml +88 -0
- package/dist/src/agent/prompts/agent.md +121 -0
- package/dist/src/agent/prompts/orchestrator.md +91 -0
- package/dist/src/cli.js +1 -8
- package/dist/src/cli.js.map +1 -1
- package/dist/src/daemon/main.js +1 -8
- package/dist/src/daemon/main.js.map +1 -1
- package/dist/src/hooks/post-tool-use.js +3 -50
- package/dist/src/hooks/post-tool-use.js.map +1 -1
- package/dist/src/hooks/session-end.js +3 -32
- package/dist/src/hooks/session-end.js.map +1 -1
- package/dist/src/hooks/session-start.js +2 -8
- package/dist/src/hooks/session-start.js.map +1 -1
- package/dist/src/hooks/stop.js +3 -42
- package/dist/src/hooks/stop.js.map +1 -1
- package/dist/src/hooks/user-prompt-submit.js +3 -53
- package/dist/src/hooks/user-prompt-submit.js.map +1 -1
- package/dist/src/mcp/server.js +1 -8
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/prompts/digest-system.md +1 -1
- package/dist/src/symbionts/manifests/claude-code.yaml +16 -0
- package/dist/src/symbionts/manifests/cursor.yaml +14 -0
- package/dist/stats-CDQXOTEC.js +94 -0
- package/dist/stats-CDQXOTEC.js.map +1 -0
- package/dist/stop-WSFGRPXZ.js +42 -0
- package/dist/stop-WSFGRPXZ.js.map +1 -0
- package/dist/stop-failure-4FR7574F.js +26 -0
- package/dist/stop-failure-4FR7574F.js.map +1 -0
- package/dist/subagent-start-7SGBXJYP.js +26 -0
- package/dist/subagent-start-7SGBXJYP.js.map +1 -0
- package/dist/subagent-stop-MRVTNX3V.js +28 -0
- package/dist/subagent-stop-MRVTNX3V.js.map +1 -0
- package/dist/task-completed-XXPYPSRV.js +27 -0
- package/dist/task-completed-XXPYPSRV.js.map +1 -0
- package/dist/team-XMHYCKFF.js +251 -0
- package/dist/team-XMHYCKFF.js.map +1 -0
- package/dist/ui/assets/index-BGbil7f1.css +1 -0
- package/dist/ui/assets/index-CPA_uq_j.js +794 -0
- package/dist/ui/favicon.svg +7 -7
- package/dist/ui/fonts/Inter-Variable.woff2 +0 -0
- package/dist/ui/fonts/JetBrainsMono-Variable.woff2 +0 -0
- package/dist/ui/fonts/Newsreader-Italic-Variable.woff2 +0 -0
- package/dist/ui/fonts/Newsreader-Variable.woff2 +0 -0
- package/dist/ui/index.html +2 -2
- package/dist/update-W3UFZU4G.js +79 -0
- package/dist/update-W3UFZU4G.js.map +1 -0
- package/dist/user-prompt-submit-LSWCYUW3.js +59 -0
- package/dist/user-prompt-submit-LSWCYUW3.js.map +1 -0
- package/dist/{verify-X272WGBD.js → verify-O7TQ5DDY.js} +17 -22
- package/dist/verify-O7TQ5DDY.js.map +1 -0
- package/dist/{version-XE4GYTBV.js → version-VWWY7SPQ.js} +3 -4
- package/dist/version-VWWY7SPQ.js.map +1 -0
- package/hooks/hooks.json +82 -5
- package/package.json +6 -3
- package/skills/myco/SKILL.md +10 -10
- package/skills/myco/references/cli-usage.md +15 -13
- package/skills/myco/references/vault-status.md +3 -3
- package/skills/myco/references/wisdom.md +4 -4
- package/skills/myco-curate/SKILL.md +86 -0
- package/dist/chunk-4B5RO2YV.js.map +0 -1
- package/dist/chunk-4RMSHZE4.js +0 -107
- package/dist/chunk-4RMSHZE4.js.map +0 -1
- package/dist/chunk-54WVLTKD.js.map +0 -1
- package/dist/chunk-5LMRZDH3.js +0 -65
- package/dist/chunk-5LMRZDH3.js.map +0 -1
- package/dist/chunk-6FQISQNA.js +0 -61
- package/dist/chunk-6FQISQNA.js.map +0 -1
- package/dist/chunk-DYDBF5W6.js +0 -147
- package/dist/chunk-DYDBF5W6.js.map +0 -1
- package/dist/chunk-ERG2IEWX.js.map +0 -1
- package/dist/chunk-F7GAYVWF.js.map +0 -1
- package/dist/chunk-F7PGDD2X.js.map +0 -1
- package/dist/chunk-GENQ5QGP.js +0 -37
- package/dist/chunk-GENQ5QGP.js.map +0 -1
- package/dist/chunk-HIN3UVOG.js.map +0 -1
- package/dist/chunk-HYVT345Y.js +0 -159
- package/dist/chunk-HYVT345Y.js.map +0 -1
- package/dist/chunk-LEK6DEAE.js +0 -113
- package/dist/chunk-LEK6DEAE.js.map +0 -1
- package/dist/chunk-MDLSAFPP.js +0 -99
- package/dist/chunk-MDLSAFPP.js.map +0 -1
- package/dist/chunk-N33KUCFP.js.map +0 -1
- package/dist/chunk-O6TBHGVO.js +0 -168
- package/dist/chunk-O6TBHGVO.js.map +0 -1
- package/dist/chunk-OEGZ5YTJ.js +0 -56
- package/dist/chunk-OEGZ5YTJ.js.map +0 -1
- package/dist/chunk-P723N2LP.js +0 -147
- package/dist/chunk-P723N2LP.js.map +0 -1
- package/dist/chunk-RGVBGTD6.js +0 -21
- package/dist/chunk-RGVBGTD6.js.map +0 -1
- package/dist/chunk-TK7A4RX7.js +0 -1085
- package/dist/chunk-TK7A4RX7.js.map +0 -1
- package/dist/chunk-TWSTAVLO.js +0 -132
- package/dist/chunk-TWSTAVLO.js.map +0 -1
- package/dist/chunk-V6BJVYNH.js +0 -4423
- package/dist/chunk-V6BJVYNH.js.map +0 -1
- package/dist/chunk-XH34FX4C.js +0 -43
- package/dist/chunk-XH34FX4C.js.map +0 -1
- package/dist/chunk-YRIIBPJD.js +0 -86
- package/dist/chunk-YRIIBPJD.js.map +0 -1
- package/dist/cli-OJYHLO4Y.js +0 -97
- package/dist/cli-OJYHLO4Y.js.map +0 -1
- package/dist/client-SS3C5MF6.js +0 -12
- package/dist/config-IBS6KOLQ.js.map +0 -1
- package/dist/curate-4CKEMOPV.js +0 -78
- package/dist/curate-4CKEMOPV.js.map +0 -1
- package/dist/detect-providers-LFIVJYQO.js +0 -35
- package/dist/detect-providers-LFIVJYQO.js.map +0 -1
- package/dist/digest-ZLARHLLY.js +0 -85
- package/dist/digest-ZLARHLLY.js.map +0 -1
- package/dist/init-3LVKVQ4L.js +0 -109
- package/dist/init-3LVKVQ4L.js.map +0 -1
- package/dist/logs-6CWVP574.js +0 -84
- package/dist/logs-6CWVP574.js.map +0 -1
- package/dist/main-RB727YRP.js +0 -5836
- package/dist/main-RB727YRP.js.map +0 -1
- package/dist/rebuild-QWVVCBCZ.js +0 -64
- package/dist/rebuild-QWVVCBCZ.js.map +0 -1
- package/dist/reprocess-YG3WLUI2.js +0 -79
- package/dist/reprocess-YG3WLUI2.js.map +0 -1
- package/dist/search-BQLBW5CS.js +0 -120
- package/dist/search-BQLBW5CS.js.map +0 -1
- package/dist/server-43KSJ65Q.js.map +0 -1
- package/dist/session-F326AWCH.js +0 -44
- package/dist/session-F326AWCH.js.map +0 -1
- package/dist/session-start-6SHGT2AW.js +0 -192
- package/dist/session-start-6SHGT2AW.js.map +0 -1
- package/dist/setup-digest-X735EZSD.js +0 -15
- package/dist/setup-llm-QBSTQO7N.js +0 -15
- package/dist/src/prompts/classification.md +0 -43
- package/dist/stats-QBLIEFWL.js +0 -58
- package/dist/stats-QBLIEFWL.js.map +0 -1
- package/dist/templates-XPRBOWCE.js +0 -38
- package/dist/templates-XPRBOWCE.js.map +0 -1
- package/dist/ui/assets/index-CjWGVHhF.css +0 -1
- package/dist/ui/assets/index-Cq-H7wgE.js +0 -369
- package/dist/verify-X272WGBD.js.map +0 -1
- package/skills/setup/SKILL.md +0 -174
- package/skills/setup/references/model-recommendations.md +0 -83
- /package/dist/{chunk-4DYD4HHG.js.map → chunk-5SDH75YC.js.map} +0 -0
- /package/dist/{client-SS3C5MF6.js.map → chunk-E4VLWIJC.js.map} +0 -0
- /package/dist/{setup-digest-X735EZSD.js.map → chunk-IB76KGBY.js.map} +0 -0
- /package/dist/{chunk-AHZN4Z34.js.map → chunk-J4RVYUH4.js.map} +0 -0
- /package/dist/{setup-llm-QBSTQO7N.js.map → client-B27SN5QG.js.map} +0 -0
- /package/dist/{version-XE4GYTBV.js.map → client-EYOTW3JU.js.map} +0 -0
package/dist/ui/favicon.svg
CHANGED
|
@@ -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="#
|
|
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="#
|
|
5
|
-
<circle cx="35" cy="120" r="13" fill="#
|
|
6
|
-
<circle cx="35" cy="45" r="13" fill="#
|
|
7
|
-
<circle cx="80" cy="82" r="14" fill="#
|
|
8
|
-
<circle cx="125" cy="45" r="13" fill="#
|
|
9
|
-
<circle cx="125" cy="120" r="13" fill="#
|
|
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>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/ui/index.html
CHANGED
|
@@ -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-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
import "./chunk-
|
|
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-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
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
|
|
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
|
|
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
|
-
|
|
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-
|
|
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-
|
|
5
|
-
import "./chunk-
|
|
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-
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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.
|
|
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.
|
|
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.
|
|
45
|
+
"sqlite-vec": "^0.1.7",
|
|
43
46
|
"yaml": "^2.4.0",
|
|
44
47
|
"zod": "^4.3.6"
|
|
45
48
|
},
|
package/skills/myco/SKILL.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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`, `
|
|
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
|
|
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
|
|
254
|
-
node <plugin-root>/dist/src/cli.js
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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", "
|
|
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
|
|
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
|
|
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
|
|
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
|
-
### `
|
|
316
|
+
### `agent` — Run the intelligence agent
|
|
317
317
|
|
|
318
|
-
|
|
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
|
-
#
|
|
328
|
-
node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js
|
|
329
|
+
# Run the default intelligence task
|
|
330
|
+
node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js agent
|
|
329
331
|
|
|
330
|
-
# Preview what would be
|
|
331
|
-
node ${CLAUDE_PLUGIN_ROOT}/dist/src/cli.js
|
|
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
|
|
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
|
|
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
|
|
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
|
|
224
|
+
| Config version < 2 | Run `myco init` to migrate the vault configuration |
|