@goondocks/myco 0.6.4 → 0.9.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 (288) hide show
  1. package/.claude-plugin/marketplace.json +2 -3
  2. package/.claude-plugin/plugin.json +3 -3
  3. package/CONTRIBUTING.md +37 -30
  4. package/README.md +64 -28
  5. package/bin/myco-run +2 -0
  6. package/dist/agent-run-EFICNTAU.js +34 -0
  7. package/dist/agent-run-EFICNTAU.js.map +1 -0
  8. package/dist/agent-tasks-RXJ7Z5NG.js +180 -0
  9. package/dist/agent-tasks-RXJ7Z5NG.js.map +1 -0
  10. package/dist/chunk-2T7RPVPP.js +116 -0
  11. package/dist/chunk-2T7RPVPP.js.map +1 -0
  12. package/dist/chunk-3K5WGSJ4.js +165 -0
  13. package/dist/chunk-3K5WGSJ4.js.map +1 -0
  14. package/dist/chunk-46PWOKSI.js +26 -0
  15. package/dist/chunk-46PWOKSI.js.map +1 -0
  16. package/dist/chunk-4LPQ26CK.js +277 -0
  17. package/dist/chunk-4LPQ26CK.js.map +1 -0
  18. package/dist/chunk-5PEUFJ6U.js +92 -0
  19. package/dist/chunk-5PEUFJ6U.js.map +1 -0
  20. package/dist/chunk-5VZ52A4T.js +136 -0
  21. package/dist/chunk-5VZ52A4T.js.map +1 -0
  22. package/dist/chunk-BUSP3OJB.js +103 -0
  23. package/dist/chunk-BUSP3OJB.js.map +1 -0
  24. package/dist/chunk-D7TYRPRM.js +7312 -0
  25. package/dist/chunk-D7TYRPRM.js.map +1 -0
  26. package/dist/chunk-DCXRSSBP.js +22 -0
  27. package/dist/chunk-DCXRSSBP.js.map +1 -0
  28. package/dist/chunk-E4VLWIJC.js +2 -0
  29. package/dist/chunk-FFAYUQ5N.js +39 -0
  30. package/dist/chunk-FFAYUQ5N.js.map +1 -0
  31. package/dist/chunk-IB76KGBY.js +2 -0
  32. package/dist/chunk-JMJJEQ3P.js +486 -0
  33. package/dist/chunk-JMJJEQ3P.js.map +1 -0
  34. package/dist/{chunk-N33KUCFP.js → chunk-JTYZRPX5.js} +1 -9
  35. package/dist/chunk-JTYZRPX5.js.map +1 -0
  36. package/dist/{chunk-NLUE6CYG.js → chunk-JYOOJCPQ.js} +33 -17
  37. package/dist/chunk-JYOOJCPQ.js.map +1 -0
  38. package/dist/{chunk-Z74SDEKE.js → chunk-KB4DGYIY.js} +91 -9
  39. package/dist/chunk-KB4DGYIY.js.map +1 -0
  40. package/dist/{chunk-ERG2IEWX.js → chunk-KH64DHOY.js} +3 -7413
  41. package/dist/chunk-KH64DHOY.js.map +1 -0
  42. package/dist/chunk-KV4OC4H3.js +498 -0
  43. package/dist/chunk-KV4OC4H3.js.map +1 -0
  44. package/dist/chunk-KYLDNM7H.js +66 -0
  45. package/dist/chunk-KYLDNM7H.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-MHSCMET3.js +275 -0
  51. package/dist/chunk-MHSCMET3.js.map +1 -0
  52. package/dist/chunk-MYX5NCRH.js +45 -0
  53. package/dist/chunk-MYX5NCRH.js.map +1 -0
  54. package/dist/chunk-OXZSXYAT.js +877 -0
  55. package/dist/chunk-OXZSXYAT.js.map +1 -0
  56. package/dist/chunk-PB6TOLRQ.js +35 -0
  57. package/dist/chunk-PB6TOLRQ.js.map +1 -0
  58. package/dist/chunk-PT5IC642.js +162 -0
  59. package/dist/chunk-PT5IC642.js.map +1 -0
  60. package/dist/chunk-QIK2XSDQ.js +187 -0
  61. package/dist/chunk-QIK2XSDQ.js.map +1 -0
  62. package/dist/chunk-RJ6ZQKG5.js +26 -0
  63. package/dist/chunk-RJ6ZQKG5.js.map +1 -0
  64. package/dist/{chunk-YIQLYIHW.js → chunk-TRUJLI6K.js} +29 -43
  65. package/dist/chunk-TRUJLI6K.js.map +1 -0
  66. package/dist/chunk-U3IBO3O3.js +41 -0
  67. package/dist/chunk-U3IBO3O3.js.map +1 -0
  68. package/dist/{chunk-7WHF2OIZ.js → chunk-UBZPD4HN.js} +25 -7
  69. package/dist/chunk-UBZPD4HN.js.map +1 -0
  70. package/dist/{chunk-HIN3UVOG.js → chunk-V7XG6V6C.js} +20 -11
  71. package/dist/chunk-V7XG6V6C.js.map +1 -0
  72. package/dist/chunk-WGTCA2NU.js +84 -0
  73. package/dist/chunk-WGTCA2NU.js.map +1 -0
  74. package/dist/{chunk-O6PERU7U.js → chunk-XNOCTDHF.js} +2 -2
  75. package/dist/chunk-YDN4OM33.js +80 -0
  76. package/dist/chunk-YDN4OM33.js.map +1 -0
  77. package/dist/cli-ODLFRIYS.js +128 -0
  78. package/dist/cli-ODLFRIYS.js.map +1 -0
  79. package/dist/client-EYOTW3JU.js +19 -0
  80. package/dist/client-MXRNQ5FI.js +13 -0
  81. package/dist/{config-IBS6KOLQ.js → config-UR5BSGVX.js} +21 -34
  82. package/dist/config-UR5BSGVX.js.map +1 -0
  83. package/dist/detect-H5OPI7GD.js +17 -0
  84. package/dist/detect-H5OPI7GD.js.map +1 -0
  85. package/dist/detect-providers-Q42OD4OS.js +26 -0
  86. package/dist/detect-providers-Q42OD4OS.js.map +1 -0
  87. package/dist/doctor-JLKTXDEH.js +258 -0
  88. package/dist/doctor-JLKTXDEH.js.map +1 -0
  89. package/dist/executor-ONSDHPGX.js +1441 -0
  90. package/dist/executor-ONSDHPGX.js.map +1 -0
  91. package/dist/init-6GWY345B.js +198 -0
  92. package/dist/init-6GWY345B.js.map +1 -0
  93. package/dist/init-wizard-UONLDYLI.js +294 -0
  94. package/dist/init-wizard-UONLDYLI.js.map +1 -0
  95. package/dist/llm-BV3QNVRD.js +17 -0
  96. package/dist/llm-BV3QNVRD.js.map +1 -0
  97. package/dist/loader-SH67XD54.js +28 -0
  98. package/dist/loader-SH67XD54.js.map +1 -0
  99. package/dist/loader-XVXKZZDH.js +18 -0
  100. package/dist/loader-XVXKZZDH.js.map +1 -0
  101. package/dist/{chunk-H7PRCVGQ.js → logs-QZVYF6FP.js} +74 -5
  102. package/dist/logs-QZVYF6FP.js.map +1 -0
  103. package/dist/main-BMCL7CPO.js +4393 -0
  104. package/dist/main-BMCL7CPO.js.map +1 -0
  105. package/dist/openai-embeddings-C265WRNK.js +14 -0
  106. package/dist/openai-embeddings-C265WRNK.js.map +1 -0
  107. package/dist/openrouter-U6VFCRX2.js +14 -0
  108. package/dist/openrouter-U6VFCRX2.js.map +1 -0
  109. package/dist/post-compact-OWFSOITU.js +26 -0
  110. package/dist/post-compact-OWFSOITU.js.map +1 -0
  111. package/dist/post-tool-use-DOUM7CGQ.js +56 -0
  112. package/dist/post-tool-use-DOUM7CGQ.js.map +1 -0
  113. package/dist/post-tool-use-failure-SG3C7PE6.js +28 -0
  114. package/dist/post-tool-use-failure-SG3C7PE6.js.map +1 -0
  115. package/dist/pre-compact-3J33CHXQ.js +25 -0
  116. package/dist/pre-compact-3J33CHXQ.js.map +1 -0
  117. package/dist/provider-check-3WBPZADE.js +12 -0
  118. package/dist/provider-check-3WBPZADE.js.map +1 -0
  119. package/dist/registry-J4XTWARS.js +25 -0
  120. package/dist/registry-J4XTWARS.js.map +1 -0
  121. package/dist/resolution-events-TFEQPVKS.js +12 -0
  122. package/dist/resolution-events-TFEQPVKS.js.map +1 -0
  123. package/dist/resolve-3FEUV462.js +9 -0
  124. package/dist/resolve-3FEUV462.js.map +1 -0
  125. package/dist/{restart-XCMILOL5.js → restart-2VM33WOB.js} +10 -6
  126. package/dist/{restart-XCMILOL5.js.map → restart-2VM33WOB.js.map} +1 -1
  127. package/dist/search-ZGQR5MDE.js +91 -0
  128. package/dist/search-ZGQR5MDE.js.map +1 -0
  129. package/dist/{server-6UDN35QN.js → server-6KMBJCHZ.js} +308 -517
  130. package/dist/server-6KMBJCHZ.js.map +1 -0
  131. package/dist/session-Z2FXDDG6.js +68 -0
  132. package/dist/session-Z2FXDDG6.js.map +1 -0
  133. package/dist/session-end-FLVX32LE.js +38 -0
  134. package/dist/session-end-FLVX32LE.js.map +1 -0
  135. package/dist/session-start-UCLK7PXE.js +169 -0
  136. package/dist/session-start-UCLK7PXE.js.map +1 -0
  137. package/dist/setup-digest-4KDSXAIV.js +15 -0
  138. package/dist/setup-digest-4KDSXAIV.js.map +1 -0
  139. package/dist/setup-llm-GKMCHURK.js +81 -0
  140. package/dist/setup-llm-GKMCHURK.js.map +1 -0
  141. package/dist/src/agent/definitions/agent.yaml +35 -0
  142. package/dist/src/agent/definitions/tasks/digest-only.yaml +84 -0
  143. package/dist/src/agent/definitions/tasks/extract-only.yaml +87 -0
  144. package/dist/src/agent/definitions/tasks/full-intelligence.yaml +472 -0
  145. package/dist/src/agent/definitions/tasks/graph-maintenance.yaml +92 -0
  146. package/dist/src/agent/definitions/tasks/review-session.yaml +132 -0
  147. package/dist/src/agent/definitions/tasks/supersession-sweep.yaml +86 -0
  148. package/dist/src/agent/definitions/tasks/title-summary.yaml +88 -0
  149. package/dist/src/agent/prompts/agent.md +121 -0
  150. package/dist/src/agent/prompts/orchestrator.md +91 -0
  151. package/dist/src/cli.js +1 -8
  152. package/dist/src/cli.js.map +1 -1
  153. package/dist/src/daemon/main.js +1 -8
  154. package/dist/src/daemon/main.js.map +1 -1
  155. package/dist/src/hooks/post-tool-use.js +3 -50
  156. package/dist/src/hooks/post-tool-use.js.map +1 -1
  157. package/dist/src/hooks/session-end.js +3 -32
  158. package/dist/src/hooks/session-end.js.map +1 -1
  159. package/dist/src/hooks/session-start.js +2 -8
  160. package/dist/src/hooks/session-start.js.map +1 -1
  161. package/dist/src/hooks/stop.js +3 -42
  162. package/dist/src/hooks/stop.js.map +1 -1
  163. package/dist/src/hooks/user-prompt-submit.js +3 -53
  164. package/dist/src/hooks/user-prompt-submit.js.map +1 -1
  165. package/dist/src/mcp/server.js +1 -8
  166. package/dist/src/mcp/server.js.map +1 -1
  167. package/dist/src/prompts/digest-system.md +1 -1
  168. package/dist/src/symbionts/manifests/claude-code.yaml +16 -0
  169. package/dist/src/symbionts/manifests/cursor.yaml +14 -0
  170. package/dist/stats-IUJPZSVZ.js +94 -0
  171. package/dist/stats-IUJPZSVZ.js.map +1 -0
  172. package/dist/stop-XRQLLXST.js +42 -0
  173. package/dist/stop-XRQLLXST.js.map +1 -0
  174. package/dist/stop-failure-2CAJJKRG.js +26 -0
  175. package/dist/stop-failure-2CAJJKRG.js.map +1 -0
  176. package/dist/subagent-start-MWWQTZMQ.js +26 -0
  177. package/dist/subagent-start-MWWQTZMQ.js.map +1 -0
  178. package/dist/subagent-stop-PJXYGRXB.js +28 -0
  179. package/dist/subagent-stop-PJXYGRXB.js.map +1 -0
  180. package/dist/task-completed-4LFRJVGI.js +27 -0
  181. package/dist/task-completed-4LFRJVGI.js.map +1 -0
  182. package/dist/ui/assets/index-DZrElonz.js +744 -0
  183. package/dist/ui/assets/index-TkeiYbZB.css +1 -0
  184. package/dist/ui/favicon.svg +7 -7
  185. package/dist/ui/fonts/Inter-Variable.woff2 +0 -0
  186. package/dist/ui/fonts/JetBrainsMono-Variable.woff2 +0 -0
  187. package/dist/ui/fonts/Newsreader-Italic-Variable.woff2 +0 -0
  188. package/dist/ui/fonts/Newsreader-Variable.woff2 +0 -0
  189. package/dist/ui/index.html +2 -2
  190. package/dist/user-prompt-submit-KSM3AR6P.js +59 -0
  191. package/dist/user-prompt-submit-KSM3AR6P.js.map +1 -0
  192. package/dist/{verify-TOWQHPBX.js → verify-UDAYVX37.js} +17 -22
  193. package/dist/verify-UDAYVX37.js.map +1 -0
  194. package/dist/{version-36RVCQA6.js → version-KLBN4HZT.js} +3 -4
  195. package/dist/version-KLBN4HZT.js.map +1 -0
  196. package/hooks/hooks.json +82 -5
  197. package/package.json +6 -3
  198. package/skills/myco/SKILL.md +10 -10
  199. package/skills/myco/references/cli-usage.md +15 -13
  200. package/skills/myco/references/vault-status.md +3 -3
  201. package/skills/myco/references/wisdom.md +4 -4
  202. package/skills/myco-curate/SKILL.md +86 -0
  203. package/dist/chunk-2ZIBCEYO.js +0 -113
  204. package/dist/chunk-2ZIBCEYO.js.map +0 -1
  205. package/dist/chunk-4RMSHZE4.js +0 -107
  206. package/dist/chunk-4RMSHZE4.js.map +0 -1
  207. package/dist/chunk-4XVKZ3WA.js +0 -1078
  208. package/dist/chunk-4XVKZ3WA.js.map +0 -1
  209. package/dist/chunk-6FQISQNA.js +0 -61
  210. package/dist/chunk-6FQISQNA.js.map +0 -1
  211. package/dist/chunk-7WHF2OIZ.js.map +0 -1
  212. package/dist/chunk-ERG2IEWX.js.map +0 -1
  213. package/dist/chunk-FPRXMJLT.js +0 -56
  214. package/dist/chunk-FPRXMJLT.js.map +0 -1
  215. package/dist/chunk-GENQ5QGP.js +0 -37
  216. package/dist/chunk-GENQ5QGP.js.map +0 -1
  217. package/dist/chunk-H7PRCVGQ.js.map +0 -1
  218. package/dist/chunk-HIN3UVOG.js.map +0 -1
  219. package/dist/chunk-HYVT345Y.js +0 -159
  220. package/dist/chunk-HYVT345Y.js.map +0 -1
  221. package/dist/chunk-J4D4CROB.js +0 -143
  222. package/dist/chunk-J4D4CROB.js.map +0 -1
  223. package/dist/chunk-MDLSAFPP.js +0 -99
  224. package/dist/chunk-MDLSAFPP.js.map +0 -1
  225. package/dist/chunk-N33KUCFP.js.map +0 -1
  226. package/dist/chunk-NL6WQO56.js +0 -65
  227. package/dist/chunk-NL6WQO56.js.map +0 -1
  228. package/dist/chunk-NLUE6CYG.js.map +0 -1
  229. package/dist/chunk-P723N2LP.js +0 -147
  230. package/dist/chunk-P723N2LP.js.map +0 -1
  231. package/dist/chunk-QLUE3BUL.js +0 -161
  232. package/dist/chunk-QLUE3BUL.js.map +0 -1
  233. package/dist/chunk-QN4W3JUA.js +0 -43
  234. package/dist/chunk-QN4W3JUA.js.map +0 -1
  235. package/dist/chunk-RGVBGTD6.js +0 -21
  236. package/dist/chunk-RGVBGTD6.js.map +0 -1
  237. package/dist/chunk-TWSTAVLO.js +0 -132
  238. package/dist/chunk-TWSTAVLO.js.map +0 -1
  239. package/dist/chunk-UP4P4OAA.js +0 -4423
  240. package/dist/chunk-UP4P4OAA.js.map +0 -1
  241. package/dist/chunk-YIQLYIHW.js.map +0 -1
  242. package/dist/chunk-YTFXA4RX.js +0 -86
  243. package/dist/chunk-YTFXA4RX.js.map +0 -1
  244. package/dist/chunk-Z74SDEKE.js.map +0 -1
  245. package/dist/cli-IHILSS6N.js +0 -97
  246. package/dist/cli-IHILSS6N.js.map +0 -1
  247. package/dist/client-AGFNR2S4.js +0 -12
  248. package/dist/config-IBS6KOLQ.js.map +0 -1
  249. package/dist/curate-3D4GHKJH.js +0 -78
  250. package/dist/curate-3D4GHKJH.js.map +0 -1
  251. package/dist/detect-providers-XEP4QA3R.js +0 -35
  252. package/dist/detect-providers-XEP4QA3R.js.map +0 -1
  253. package/dist/digest-7HLJXL77.js +0 -85
  254. package/dist/digest-7HLJXL77.js.map +0 -1
  255. package/dist/init-ARQ53JOR.js +0 -109
  256. package/dist/init-ARQ53JOR.js.map +0 -1
  257. package/dist/logs-IENORIYR.js +0 -84
  258. package/dist/logs-IENORIYR.js.map +0 -1
  259. package/dist/main-6AGPIMH2.js +0 -5715
  260. package/dist/main-6AGPIMH2.js.map +0 -1
  261. package/dist/rebuild-Q2ACEB6F.js +0 -64
  262. package/dist/rebuild-Q2ACEB6F.js.map +0 -1
  263. package/dist/reprocess-CDEFGQOV.js +0 -79
  264. package/dist/reprocess-CDEFGQOV.js.map +0 -1
  265. package/dist/search-7W25SKCB.js +0 -120
  266. package/dist/search-7W25SKCB.js.map +0 -1
  267. package/dist/server-6UDN35QN.js.map +0 -1
  268. package/dist/session-F326AWCH.js +0 -44
  269. package/dist/session-F326AWCH.js.map +0 -1
  270. package/dist/session-start-K6IGAC7H.js +0 -192
  271. package/dist/session-start-K6IGAC7H.js.map +0 -1
  272. package/dist/setup-digest-X5PN27F4.js +0 -15
  273. package/dist/setup-llm-S5OHQJXK.js +0 -15
  274. package/dist/src/prompts/classification.md +0 -43
  275. package/dist/stats-TTSDXGJV.js +0 -58
  276. package/dist/stats-TTSDXGJV.js.map +0 -1
  277. package/dist/templates-XPRBOWCE.js +0 -38
  278. package/dist/templates-XPRBOWCE.js.map +0 -1
  279. package/dist/ui/assets/index-08wKT7wS.css +0 -1
  280. package/dist/ui/assets/index-CMSMi4Jb.js +0 -369
  281. package/dist/verify-TOWQHPBX.js.map +0 -1
  282. package/skills/setup/SKILL.md +0 -174
  283. package/skills/setup/references/model-recommendations.md +0 -83
  284. /package/dist/{client-AGFNR2S4.js.map → chunk-E4VLWIJC.js.map} +0 -0
  285. /package/dist/{setup-digest-X5PN27F4.js.map → chunk-IB76KGBY.js.map} +0 -0
  286. /package/dist/{chunk-O6PERU7U.js.map → chunk-XNOCTDHF.js.map} +0 -0
  287. /package/dist/{setup-llm-S5OHQJXK.js.map → client-EYOTW3JU.js.map} +0 -0
  288. /package/dist/{version-36RVCQA6.js.map → client-MXRNQ5FI.js.map} +0 -0
@@ -1,64 +0,0 @@
1
- import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
- import {
3
- runRebuild
4
- } from "./chunk-4XVKZ3WA.js";
5
- import {
6
- VectorIndex
7
- } from "./chunk-4RMSHZE4.js";
8
- import "./chunk-UP4P4OAA.js";
9
- import "./chunk-RGVBGTD6.js";
10
- import {
11
- createEmbeddingProvider
12
- } from "./chunk-NLUE6CYG.js";
13
- import "./chunk-GENQ5QGP.js";
14
- import "./chunk-6FQISQNA.js";
15
- import {
16
- MycoIndex
17
- } from "./chunk-TWSTAVLO.js";
18
- import "./chunk-7WHF2OIZ.js";
19
- import {
20
- loadConfig
21
- } from "./chunk-HYVT345Y.js";
22
- import "./chunk-ERG2IEWX.js";
23
- import "./chunk-J4D4CROB.js";
24
- import "./chunk-PZUWP5VK.js";
25
-
26
- // src/cli/rebuild.ts
27
- import path from "path";
28
- async function run(_args, vaultDir) {
29
- console.log(`Rebuilding index for ${vaultDir}...`);
30
- const config = loadConfig(vaultDir);
31
- const index = new MycoIndex(path.join(vaultDir, "index.db"));
32
- let vectorIndex;
33
- let embeddingProvider;
34
- try {
35
- embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);
36
- const testEmbed = await embeddingProvider.embed("test");
37
- vectorIndex = new VectorIndex(path.join(vaultDir, "vectors.db"), testEmbed.dimensions);
38
- } catch (e) {
39
- console.log(`Vector rebuild skipped: ${e.message}`);
40
- }
41
- try {
42
- const result = await runRebuild(
43
- { vaultDir, config, index, vectorIndex },
44
- embeddingProvider,
45
- (done, total) => process.stdout.write(`\rEmbedded ${done}/${total}`)
46
- );
47
- console.log(`Indexed ${result.ftsCount} notes (FTS)`);
48
- if (vectorIndex) {
49
- console.log(`
50
- Embedded ${result.embeddedCount} notes (vectors)`);
51
- if (result.failedCount > 0) {
52
- console.log(`Failed: ${result.failedCount}`);
53
- }
54
- console.log(`Skipped ${result.skippedCount} superseded/archived`);
55
- }
56
- } finally {
57
- vectorIndex?.close();
58
- index.close();
59
- }
60
- }
61
- export {
62
- run
63
- };
64
- //# sourceMappingURL=rebuild-Q2ACEB6F.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/rebuild.ts"],"sourcesContent":["import { MycoIndex } from '../index/sqlite.js';\nimport { VectorIndex } from '../index/vectors.js';\nimport { loadConfig } from '../config/loader.js';\nimport { createEmbeddingProvider } from '../intelligence/llm.js';\nimport { runRebuild } from '../services/vault-ops.js';\nimport path from 'node:path';\n\nexport async function run(_args: string[], vaultDir: string): Promise<void> {\n console.log(`Rebuilding index for ${vaultDir}...`);\n const config = loadConfig(vaultDir);\n const index = new MycoIndex(path.join(vaultDir, 'index.db'));\n\n let vectorIndex: VectorIndex | undefined;\n let embeddingProvider;\n try {\n embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);\n const testEmbed = await embeddingProvider.embed('test');\n vectorIndex = new VectorIndex(path.join(vaultDir, 'vectors.db'), testEmbed.dimensions);\n } catch (e) {\n console.log(`Vector rebuild skipped: ${(e as Error).message}`);\n }\n\n try {\n const result = await runRebuild(\n { vaultDir, config, index, vectorIndex },\n embeddingProvider!,\n (done, total) => process.stdout.write(`\\rEmbedded ${done}/${total}`),\n );\n\n console.log(`Indexed ${result.ftsCount} notes (FTS)`);\n if (vectorIndex) {\n console.log(`\\nEmbedded ${result.embeddedCount} notes (vectors)`);\n if (result.failedCount > 0) {\n console.log(`Failed: ${result.failedCount}`);\n }\n console.log(`Skipped ${result.skippedCount} superseded/archived`);\n }\n } finally {\n vectorIndex?.close();\n index.close();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,OAAO,UAAU;AAEjB,eAAsB,IAAI,OAAiB,UAAiC;AAC1E,UAAQ,IAAI,wBAAwB,QAAQ,KAAK;AACjD,QAAM,SAAS,WAAW,QAAQ;AAClC,QAAM,QAAQ,IAAI,UAAU,KAAK,KAAK,UAAU,UAAU,CAAC;AAE3D,MAAI;AACJ,MAAI;AACJ,MAAI;AACF,wBAAoB,wBAAwB,OAAO,aAAa,SAAS;AACzE,UAAM,YAAY,MAAM,kBAAkB,MAAM,MAAM;AACtD,kBAAc,IAAI,YAAY,KAAK,KAAK,UAAU,YAAY,GAAG,UAAU,UAAU;AAAA,EACvF,SAAS,GAAG;AACV,YAAQ,IAAI,2BAA4B,EAAY,OAAO,EAAE;AAAA,EAC/D;AAEA,MAAI;AACF,UAAM,SAAS,MAAM;AAAA,MACnB,EAAE,UAAU,QAAQ,OAAO,YAAY;AAAA,MACvC;AAAA,MACA,CAAC,MAAM,UAAU,QAAQ,OAAO,MAAM,cAAc,IAAI,IAAI,KAAK,EAAE;AAAA,IACrE;AAEA,YAAQ,IAAI,WAAW,OAAO,QAAQ,cAAc;AACpD,QAAI,aAAa;AACf,cAAQ,IAAI;AAAA,WAAc,OAAO,aAAa,kBAAkB;AAChE,UAAI,OAAO,cAAc,GAAG;AAC1B,gBAAQ,IAAI,WAAW,OAAO,WAAW,EAAE;AAAA,MAC7C;AACA,cAAQ,IAAI,WAAW,OAAO,YAAY,sBAAsB;AAAA,IAClE;AAAA,EACF,UAAE;AACA,iBAAa,MAAM;AACnB,UAAM,MAAM;AAAA,EACd;AACF;","names":[]}
@@ -1,79 +0,0 @@
1
- import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
- import {
3
- runReprocess
4
- } from "./chunk-4XVKZ3WA.js";
5
- import {
6
- VectorIndex
7
- } from "./chunk-4RMSHZE4.js";
8
- import "./chunk-UP4P4OAA.js";
9
- import "./chunk-RGVBGTD6.js";
10
- import {
11
- createEmbeddingProvider,
12
- createLlmProvider
13
- } from "./chunk-NLUE6CYG.js";
14
- import "./chunk-GENQ5QGP.js";
15
- import {
16
- initFts
17
- } from "./chunk-6FQISQNA.js";
18
- import {
19
- MycoIndex
20
- } from "./chunk-TWSTAVLO.js";
21
- import "./chunk-YTFXA4RX.js";
22
- import {
23
- parseStringFlag
24
- } from "./chunk-SAKJMNSR.js";
25
- import "./chunk-7WHF2OIZ.js";
26
- import {
27
- loadConfig
28
- } from "./chunk-HYVT345Y.js";
29
- import "./chunk-ERG2IEWX.js";
30
- import "./chunk-Z74SDEKE.js";
31
- import "./chunk-J4D4CROB.js";
32
- import "./chunk-PZUWP5VK.js";
33
-
34
- // src/cli/reprocess.ts
35
- import path from "path";
36
- async function run(args, vaultDir) {
37
- const sessionFilter = parseStringFlag(args, "--session");
38
- const dateFilter = parseStringFlag(args, "--date");
39
- const failedOnly = args.includes("--failed");
40
- const skipLlm = args.includes("--index-only");
41
- const config = loadConfig(vaultDir);
42
- const index = new MycoIndex(path.join(vaultDir, "index.db"));
43
- initFts(index);
44
- const llmProvider = skipLlm ? null : createLlmProvider(config.intelligence.llm);
45
- const embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);
46
- let vectorIndex = null;
47
- try {
48
- const testEmbed = await embeddingProvider.embed("test");
49
- vectorIndex = new VectorIndex(path.join(vaultDir, "vectors.db"), testEmbed.dimensions);
50
- } catch (e) {
51
- console.log(`Vector index unavailable: ${e.message}`);
52
- }
53
- try {
54
- const result = await runReprocess(
55
- { vaultDir, config, index, vectorIndex: vectorIndex ?? void 0, log: (level, msg) => console.log(`[${level}] ${msg}`) },
56
- llmProvider,
57
- embeddingProvider,
58
- { session: sessionFilter, date: dateFilter, failed: failedOnly, indexOnly: skipLlm },
59
- (phase, done, total) => {
60
- process.stdout.write(`\r ${phase}: ${done}/${total}`);
61
- if (done === total) process.stdout.write("\n");
62
- }
63
- );
64
- if (result.sessionsProcessed === 0) {
65
- const filters = [sessionFilter && `session="${sessionFilter}"`, dateFilter && `date="${dateFilter}"`, failedOnly && "failed"].filter(Boolean);
66
- console.log(filters.length ? `No sessions matching ${filters.join(", ")} found.` : "No sessions found.");
67
- } else {
68
- console.log(`
69
- Done: ${result.sessionsProcessed} sessions reprocessed, ${result.observationsExtracted} observations extracted, ${result.summariesRegenerated} summaries regenerated.`);
70
- }
71
- } finally {
72
- index.close();
73
- vectorIndex?.close();
74
- }
75
- }
76
- export {
77
- run
78
- };
79
- //# sourceMappingURL=reprocess-CDEFGQOV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/reprocess.ts"],"sourcesContent":["/**\n * myco reprocess — re-run the observation extraction and summarization pipeline\n * for existing sessions. Useful after bugs or when the LLM backend changes.\n *\n * Reads transcripts (the source of truth), re-extracts observations, regenerates\n * summaries/titles, and re-indexes everything. Existing spore files from those\n * sessions are preserved — new observations are additive.\n *\n * Flags:\n * --session <id> Filter to sessions matching this substring\n * --date <YYYY-MM-DD> Filter to sessions from a specific date\n * --failed Only reprocess sessions with failed summaries\n * --index-only Skip all LLM calls (re-index only)\n */\nimport path from 'node:path';\nimport { MycoIndex } from '../index/sqlite.js';\nimport { VectorIndex } from '../index/vectors.js';\nimport { initFts } from '../index/fts.js';\nimport { loadConfig } from '../config/loader.js';\nimport { createLlmProvider, createEmbeddingProvider } from '../intelligence/llm.js';\nimport { runReprocess } from '../services/vault-ops.js';\nimport { parseStringFlag } from './shared.js';\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n const sessionFilter = parseStringFlag(args, '--session');\n const dateFilter = parseStringFlag(args, '--date');\n const failedOnly = args.includes('--failed');\n const skipLlm = args.includes('--index-only');\n\n const config = loadConfig(vaultDir);\n const index = new MycoIndex(path.join(vaultDir, 'index.db'));\n initFts(index);\n\n const llmProvider = skipLlm ? null : createLlmProvider(config.intelligence.llm);\n const embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);\n\n let vectorIndex: VectorIndex | null = null;\n try {\n const testEmbed = await embeddingProvider.embed('test');\n vectorIndex = new VectorIndex(path.join(vaultDir, 'vectors.db'), testEmbed.dimensions);\n } catch (e) {\n console.log(`Vector index unavailable: ${(e as Error).message}`);\n }\n\n try {\n const result = await runReprocess(\n { vaultDir, config, index, vectorIndex: vectorIndex ?? undefined, log: (level, msg) => console.log(`[${level}] ${msg}`) },\n llmProvider,\n embeddingProvider,\n { session: sessionFilter, date: dateFilter, failed: failedOnly, indexOnly: skipLlm },\n (phase, done, total) => {\n process.stdout.write(`\\r ${phase}: ${done}/${total}`);\n if (done === total) process.stdout.write('\\n');\n },\n );\n\n if (result.sessionsProcessed === 0) {\n const filters = [sessionFilter && `session=\"${sessionFilter}\"`, dateFilter && `date=\"${dateFilter}\"`, failedOnly && 'failed'].filter(Boolean);\n console.log(filters.length ? `No sessions matching ${filters.join(', ')} found.` : 'No sessions found.');\n } else {\n console.log(`\\nDone: ${result.sessionsProcessed} sessions reprocessed, ${result.observationsExtracted} observations extracted, ${result.summariesRegenerated} summaries regenerated.`);\n }\n } finally {\n index.close();\n vectorIndex?.close();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,OAAO,UAAU;AASjB,eAAsB,IAAI,MAAgB,UAAiC;AACzE,QAAM,gBAAgB,gBAAgB,MAAM,WAAW;AACvD,QAAM,aAAa,gBAAgB,MAAM,QAAQ;AACjD,QAAM,aAAa,KAAK,SAAS,UAAU;AAC3C,QAAM,UAAU,KAAK,SAAS,cAAc;AAE5C,QAAM,SAAS,WAAW,QAAQ;AAClC,QAAM,QAAQ,IAAI,UAAU,KAAK,KAAK,UAAU,UAAU,CAAC;AAC3D,UAAQ,KAAK;AAEb,QAAM,cAAc,UAAU,OAAO,kBAAkB,OAAO,aAAa,GAAG;AAC9E,QAAM,oBAAoB,wBAAwB,OAAO,aAAa,SAAS;AAE/E,MAAI,cAAkC;AACtC,MAAI;AACF,UAAM,YAAY,MAAM,kBAAkB,MAAM,MAAM;AACtD,kBAAc,IAAI,YAAY,KAAK,KAAK,UAAU,YAAY,GAAG,UAAU,UAAU;AAAA,EACvF,SAAS,GAAG;AACV,YAAQ,IAAI,6BAA8B,EAAY,OAAO,EAAE;AAAA,EACjE;AAEA,MAAI;AACF,UAAM,SAAS,MAAM;AAAA,MACnB,EAAE,UAAU,QAAQ,OAAO,aAAa,eAAe,QAAW,KAAK,CAAC,OAAO,QAAQ,QAAQ,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE;AAAA,MACxH;AAAA,MACA;AAAA,MACA,EAAE,SAAS,eAAe,MAAM,YAAY,QAAQ,YAAY,WAAW,QAAQ;AAAA,MACnF,CAAC,OAAO,MAAM,UAAU;AACtB,gBAAQ,OAAO,MAAM,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,EAAE;AACrD,YAAI,SAAS,MAAO,SAAQ,OAAO,MAAM,IAAI;AAAA,MAC/C;AAAA,IACF;AAEA,QAAI,OAAO,sBAAsB,GAAG;AAClC,YAAM,UAAU,CAAC,iBAAiB,YAAY,aAAa,KAAK,cAAc,SAAS,UAAU,KAAK,cAAc,QAAQ,EAAE,OAAO,OAAO;AAC5I,cAAQ,IAAI,QAAQ,SAAS,wBAAwB,QAAQ,KAAK,IAAI,CAAC,YAAY,oBAAoB;AAAA,IACzG,OAAO;AACL,cAAQ,IAAI;AAAA,QAAW,OAAO,iBAAiB,0BAA0B,OAAO,qBAAqB,4BAA4B,OAAO,oBAAoB,yBAAyB;AAAA,IACvL;AAAA,EACF,UAAE;AACA,UAAM,MAAM;AACZ,iBAAa,MAAM;AAAA,EACrB;AACF;","names":[]}
@@ -1,120 +0,0 @@
1
- import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
- import {
3
- VectorIndex
4
- } from "./chunk-4RMSHZE4.js";
5
- import {
6
- generateEmbedding
7
- } from "./chunk-RGVBGTD6.js";
8
- import {
9
- createEmbeddingProvider
10
- } from "./chunk-NLUE6CYG.js";
11
- import {
12
- searchFts
13
- } from "./chunk-6FQISQNA.js";
14
- import {
15
- MycoIndex
16
- } from "./chunk-TWSTAVLO.js";
17
- import "./chunk-7WHF2OIZ.js";
18
- import {
19
- loadConfig
20
- } from "./chunk-HYVT345Y.js";
21
- import "./chunk-ERG2IEWX.js";
22
- import "./chunk-J4D4CROB.js";
23
- import "./chunk-PZUWP5VK.js";
24
-
25
- // src/cli/search.ts
26
- import fs from "fs";
27
- import path from "path";
28
- async function run(args, vaultDir) {
29
- const query = args.join(" ");
30
- if (!query) {
31
- console.error("Usage: myco search <query>");
32
- process.exit(1);
33
- }
34
- const index = new MycoIndex(path.join(vaultDir, "index.db"));
35
- const vecDb = path.join(vaultDir, "vectors.db");
36
- if (fs.existsSync(vecDb)) {
37
- try {
38
- const config = loadConfig(vaultDir);
39
- const embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);
40
- const emb = await generateEmbedding(embeddingProvider, query);
41
- const vec = new VectorIndex(vecDb, emb.dimensions);
42
- console.log(`=== Semantic Search: "${query}" ===`);
43
- const results = vec.search(emb.embedding, { limit: 10 });
44
- if (results.length === 0) {
45
- console.log(" (no results)");
46
- } else {
47
- const noteMap = new Map(
48
- index.queryByIds(results.map((r) => r.id)).map((n) => [n.id, n])
49
- );
50
- for (const r of results) {
51
- const title = noteMap.get(r.id)?.title || r.id;
52
- console.log(` sim: ${r.similarity.toFixed(3)} | [${r.metadata.type}] ${title.slice(0, 60)}`);
53
- }
54
- }
55
- vec.close();
56
- } catch (e) {
57
- console.log(`Semantic search unavailable: ${e.message}`);
58
- }
59
- }
60
- console.log(`
61
- === FTS Search: "${query}" ===`);
62
- const ftsResults = searchFts(index, query, { limit: 10 });
63
- if (ftsResults.length === 0) {
64
- console.log(" (no results)");
65
- } else {
66
- for (const r of ftsResults) {
67
- console.log(` [${r.type}] ${r.title?.slice(0, 70)}`);
68
- if (r.snippet) console.log(` ${r.snippet.slice(0, 100)}`);
69
- }
70
- }
71
- index.close();
72
- }
73
- async function runVectors(args, vaultDir) {
74
- const query = args.join(" ");
75
- if (!query) {
76
- console.error("Usage: myco vectors <query>");
77
- process.exit(1);
78
- }
79
- const config = loadConfig(vaultDir);
80
- const embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);
81
- const emb = await generateEmbedding(embeddingProvider, query);
82
- const vecDb = path.join(vaultDir, "vectors.db");
83
- if (!fs.existsSync(vecDb)) {
84
- console.error("No vector index found");
85
- process.exit(1);
86
- }
87
- const vec = new VectorIndex(vecDb, emb.dimensions);
88
- const index = new MycoIndex(path.join(vaultDir, "index.db"));
89
- const results = vec.search(emb.embedding, { limit: 20, relativeThreshold: 0 });
90
- console.log(`Query: "${query}"`);
91
- console.log(`Dimensions: ${emb.dimensions}`);
92
- console.log(`Total vectors: ${vec.count()}`);
93
- console.log();
94
- if (results.length === 0) {
95
- console.log("(no results)");
96
- } else {
97
- const noteMap = new Map(
98
- index.queryByIds(results.map((r) => r.id)).map((n) => [n.id, n])
99
- );
100
- const topScore = results[0].similarity;
101
- console.log(`Top score: ${topScore.toFixed(4)}`);
102
- console.log(`Default threshold (0.5x): ${(topScore * 0.5).toFixed(4)}`);
103
- console.log();
104
- console.log(" Sim Ratio Type ID / Title");
105
- console.log(" ------ ----- --------- " + "-".repeat(50));
106
- for (const r of results) {
107
- const title = noteMap.get(r.id)?.title || r.id;
108
- const ratio = (r.similarity / topScore).toFixed(2);
109
- const pass = r.similarity >= topScore * 0.5 ? "\u2713" : " ";
110
- console.log(`${pass} ${r.similarity.toFixed(4)} ${ratio} ${r.metadata.type.padEnd(9)} ${title.slice(0, 50)}`);
111
- }
112
- }
113
- vec.close();
114
- index.close();
115
- }
116
- export {
117
- run,
118
- runVectors
119
- };
120
- //# sourceMappingURL=search-7W25SKCB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/cli/search.ts"],"sourcesContent":["import { MycoIndex } from '../index/sqlite.js';\nimport { VectorIndex } from '../index/vectors.js';\nimport { searchFts } from '../index/fts.js';\nimport { loadConfig } from '../config/loader.js';\nimport { createEmbeddingProvider } from '../intelligence/llm.js';\nimport { generateEmbedding } from '../intelligence/embeddings.js';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n const query = args.join(' ');\n if (!query) { console.error('Usage: myco search <query>'); process.exit(1); }\n\n const index = new MycoIndex(path.join(vaultDir, 'index.db'));\n\n // Semantic search is primary\n const vecDb = path.join(vaultDir, 'vectors.db');\n if (fs.existsSync(vecDb)) {\n try {\n const config = loadConfig(vaultDir);\n const embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);\n const emb = await generateEmbedding(embeddingProvider, query);\n const vec = new VectorIndex(vecDb, emb.dimensions);\n\n console.log(`=== Semantic Search: \"${query}\" ===`);\n const results = vec.search(emb.embedding, { limit: 10 });\n if (results.length === 0) {\n console.log(' (no results)');\n } else {\n const noteMap = new Map(\n index.queryByIds(results.map((r) => r.id)).map((n) => [n.id, n]),\n );\n for (const r of results) {\n const title = noteMap.get(r.id)?.title || r.id;\n console.log(` sim: ${r.similarity.toFixed(3)} | [${r.metadata.type}] ${title.slice(0, 60)}`);\n }\n }\n vec.close();\n } catch (e) {\n console.log(`Semantic search unavailable: ${(e as Error).message}`);\n }\n }\n\n // FTS as fallback / supplementary\n console.log(`\\n=== FTS Search: \"${query}\" ===`);\n const ftsResults = searchFts(index, query, { limit: 10 });\n if (ftsResults.length === 0) {\n console.log(' (no results)');\n } else {\n for (const r of ftsResults) {\n console.log(` [${r.type}] ${r.title?.slice(0, 70)}`);\n if (r.snippet) console.log(` ${r.snippet.slice(0, 100)}`);\n }\n }\n\n index.close();\n}\n\nexport async function runVectors(args: string[], vaultDir: string): Promise<void> {\n const query = args.join(' ');\n if (!query) { console.error('Usage: myco vectors <query>'); process.exit(1); }\n\n const config = loadConfig(vaultDir);\n const embeddingProvider = createEmbeddingProvider(config.intelligence.embedding);\n const emb = await generateEmbedding(embeddingProvider, query);\n\n const vecDb = path.join(vaultDir, 'vectors.db');\n if (!fs.existsSync(vecDb)) { console.error('No vector index found'); process.exit(1); }\n\n const vec = new VectorIndex(vecDb, emb.dimensions);\n const index = new MycoIndex(path.join(vaultDir, 'index.db'));\n\n // Show all results with no threshold filtering for tuning\n const results = vec.search(emb.embedding, { limit: 20, relativeThreshold: 0 });\n\n console.log(`Query: \"${query}\"`);\n console.log(`Dimensions: ${emb.dimensions}`);\n console.log(`Total vectors: ${vec.count()}`);\n console.log();\n\n if (results.length === 0) {\n console.log('(no results)');\n } else {\n const noteMap = new Map(\n index.queryByIds(results.map((r) => r.id)).map((n) => [n.id, n]),\n );\n const topScore = results[0].similarity;\n console.log(`Top score: ${topScore.toFixed(4)}`);\n console.log(`Default threshold (0.5x): ${(topScore * 0.5).toFixed(4)}`);\n console.log();\n console.log(' Sim Ratio Type ID / Title');\n console.log(' ------ ----- --------- ' + '-'.repeat(50));\n for (const r of results) {\n const title = noteMap.get(r.id)?.title || r.id;\n const ratio = (r.similarity / topScore).toFixed(2);\n const pass = r.similarity >= topScore * 0.5 ? '\\u2713' : ' ';\n console.log(`${pass} ${r.similarity.toFixed(4)} ${ratio} ${r.metadata.type.padEnd(9)} ${title.slice(0, 50)}`);\n }\n }\n\n vec.close();\n index.close();\n}\n"],"mappings":"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","names":[]}