@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.
- package/.claude-plugin/marketplace.json +2 -3
- package/.claude-plugin/plugin.json +3 -3
- package/CONTRIBUTING.md +37 -30
- package/README.md +64 -28
- package/bin/myco-run +2 -0
- package/dist/agent-run-EFICNTAU.js +34 -0
- package/dist/agent-run-EFICNTAU.js.map +1 -0
- package/dist/agent-tasks-RXJ7Z5NG.js +180 -0
- package/dist/agent-tasks-RXJ7Z5NG.js.map +1 -0
- package/dist/chunk-2T7RPVPP.js +116 -0
- package/dist/chunk-2T7RPVPP.js.map +1 -0
- package/dist/chunk-3K5WGSJ4.js +165 -0
- package/dist/chunk-3K5WGSJ4.js.map +1 -0
- package/dist/chunk-46PWOKSI.js +26 -0
- package/dist/chunk-46PWOKSI.js.map +1 -0
- package/dist/chunk-4LPQ26CK.js +277 -0
- package/dist/chunk-4LPQ26CK.js.map +1 -0
- package/dist/chunk-5PEUFJ6U.js +92 -0
- package/dist/chunk-5PEUFJ6U.js.map +1 -0
- package/dist/chunk-5VZ52A4T.js +136 -0
- package/dist/chunk-5VZ52A4T.js.map +1 -0
- package/dist/chunk-BUSP3OJB.js +103 -0
- package/dist/chunk-BUSP3OJB.js.map +1 -0
- package/dist/chunk-D7TYRPRM.js +7312 -0
- package/dist/chunk-D7TYRPRM.js.map +1 -0
- package/dist/chunk-DCXRSSBP.js +22 -0
- package/dist/chunk-DCXRSSBP.js.map +1 -0
- package/dist/chunk-E4VLWIJC.js +2 -0
- package/dist/chunk-FFAYUQ5N.js +39 -0
- package/dist/chunk-FFAYUQ5N.js.map +1 -0
- package/dist/chunk-IB76KGBY.js +2 -0
- package/dist/chunk-JMJJEQ3P.js +486 -0
- package/dist/chunk-JMJJEQ3P.js.map +1 -0
- package/dist/{chunk-N33KUCFP.js → chunk-JTYZRPX5.js} +1 -9
- package/dist/chunk-JTYZRPX5.js.map +1 -0
- package/dist/{chunk-NLUE6CYG.js → chunk-JYOOJCPQ.js} +33 -17
- package/dist/chunk-JYOOJCPQ.js.map +1 -0
- package/dist/{chunk-Z74SDEKE.js → chunk-KB4DGYIY.js} +91 -9
- package/dist/chunk-KB4DGYIY.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-KV4OC4H3.js +498 -0
- package/dist/chunk-KV4OC4H3.js.map +1 -0
- package/dist/chunk-KYLDNM7H.js +66 -0
- package/dist/chunk-KYLDNM7H.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-MHSCMET3.js +275 -0
- package/dist/chunk-MHSCMET3.js.map +1 -0
- package/dist/chunk-MYX5NCRH.js +45 -0
- package/dist/chunk-MYX5NCRH.js.map +1 -0
- package/dist/chunk-OXZSXYAT.js +877 -0
- package/dist/chunk-OXZSXYAT.js.map +1 -0
- package/dist/chunk-PB6TOLRQ.js +35 -0
- package/dist/chunk-PB6TOLRQ.js.map +1 -0
- package/dist/chunk-PT5IC642.js +162 -0
- package/dist/chunk-PT5IC642.js.map +1 -0
- package/dist/chunk-QIK2XSDQ.js +187 -0
- package/dist/chunk-QIK2XSDQ.js.map +1 -0
- package/dist/chunk-RJ6ZQKG5.js +26 -0
- package/dist/chunk-RJ6ZQKG5.js.map +1 -0
- package/dist/{chunk-YIQLYIHW.js → chunk-TRUJLI6K.js} +29 -43
- package/dist/chunk-TRUJLI6K.js.map +1 -0
- package/dist/chunk-U3IBO3O3.js +41 -0
- package/dist/chunk-U3IBO3O3.js.map +1 -0
- package/dist/{chunk-7WHF2OIZ.js → chunk-UBZPD4HN.js} +25 -7
- package/dist/chunk-UBZPD4HN.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-WGTCA2NU.js +84 -0
- package/dist/chunk-WGTCA2NU.js.map +1 -0
- package/dist/{chunk-O6PERU7U.js → chunk-XNOCTDHF.js} +2 -2
- package/dist/chunk-YDN4OM33.js +80 -0
- package/dist/chunk-YDN4OM33.js.map +1 -0
- package/dist/cli-ODLFRIYS.js +128 -0
- package/dist/cli-ODLFRIYS.js.map +1 -0
- package/dist/client-EYOTW3JU.js +19 -0
- package/dist/client-MXRNQ5FI.js +13 -0
- package/dist/{config-IBS6KOLQ.js → config-UR5BSGVX.js} +21 -34
- package/dist/config-UR5BSGVX.js.map +1 -0
- package/dist/detect-H5OPI7GD.js +17 -0
- package/dist/detect-H5OPI7GD.js.map +1 -0
- package/dist/detect-providers-Q42OD4OS.js +26 -0
- package/dist/detect-providers-Q42OD4OS.js.map +1 -0
- package/dist/doctor-JLKTXDEH.js +258 -0
- package/dist/doctor-JLKTXDEH.js.map +1 -0
- package/dist/executor-ONSDHPGX.js +1441 -0
- package/dist/executor-ONSDHPGX.js.map +1 -0
- package/dist/init-6GWY345B.js +198 -0
- package/dist/init-6GWY345B.js.map +1 -0
- package/dist/init-wizard-UONLDYLI.js +294 -0
- package/dist/init-wizard-UONLDYLI.js.map +1 -0
- package/dist/llm-BV3QNVRD.js +17 -0
- package/dist/llm-BV3QNVRD.js.map +1 -0
- package/dist/loader-SH67XD54.js +28 -0
- package/dist/loader-SH67XD54.js.map +1 -0
- package/dist/loader-XVXKZZDH.js +18 -0
- package/dist/loader-XVXKZZDH.js.map +1 -0
- package/dist/{chunk-H7PRCVGQ.js → logs-QZVYF6FP.js} +74 -5
- package/dist/logs-QZVYF6FP.js.map +1 -0
- package/dist/main-BMCL7CPO.js +4393 -0
- package/dist/main-BMCL7CPO.js.map +1 -0
- package/dist/openai-embeddings-C265WRNK.js +14 -0
- package/dist/openai-embeddings-C265WRNK.js.map +1 -0
- package/dist/openrouter-U6VFCRX2.js +14 -0
- package/dist/openrouter-U6VFCRX2.js.map +1 -0
- package/dist/post-compact-OWFSOITU.js +26 -0
- package/dist/post-compact-OWFSOITU.js.map +1 -0
- package/dist/post-tool-use-DOUM7CGQ.js +56 -0
- package/dist/post-tool-use-DOUM7CGQ.js.map +1 -0
- package/dist/post-tool-use-failure-SG3C7PE6.js +28 -0
- package/dist/post-tool-use-failure-SG3C7PE6.js.map +1 -0
- package/dist/pre-compact-3J33CHXQ.js +25 -0
- package/dist/pre-compact-3J33CHXQ.js.map +1 -0
- package/dist/provider-check-3WBPZADE.js +12 -0
- package/dist/provider-check-3WBPZADE.js.map +1 -0
- package/dist/registry-J4XTWARS.js +25 -0
- package/dist/registry-J4XTWARS.js.map +1 -0
- package/dist/resolution-events-TFEQPVKS.js +12 -0
- package/dist/resolution-events-TFEQPVKS.js.map +1 -0
- package/dist/resolve-3FEUV462.js +9 -0
- package/dist/resolve-3FEUV462.js.map +1 -0
- package/dist/{restart-XCMILOL5.js → restart-2VM33WOB.js} +10 -6
- package/dist/{restart-XCMILOL5.js.map → restart-2VM33WOB.js.map} +1 -1
- package/dist/search-ZGQR5MDE.js +91 -0
- package/dist/search-ZGQR5MDE.js.map +1 -0
- package/dist/{server-6UDN35QN.js → server-6KMBJCHZ.js} +308 -517
- package/dist/server-6KMBJCHZ.js.map +1 -0
- package/dist/session-Z2FXDDG6.js +68 -0
- package/dist/session-Z2FXDDG6.js.map +1 -0
- package/dist/session-end-FLVX32LE.js +38 -0
- package/dist/session-end-FLVX32LE.js.map +1 -0
- package/dist/session-start-UCLK7PXE.js +169 -0
- package/dist/session-start-UCLK7PXE.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-GKMCHURK.js +81 -0
- package/dist/setup-llm-GKMCHURK.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-IUJPZSVZ.js +94 -0
- package/dist/stats-IUJPZSVZ.js.map +1 -0
- package/dist/stop-XRQLLXST.js +42 -0
- package/dist/stop-XRQLLXST.js.map +1 -0
- package/dist/stop-failure-2CAJJKRG.js +26 -0
- package/dist/stop-failure-2CAJJKRG.js.map +1 -0
- package/dist/subagent-start-MWWQTZMQ.js +26 -0
- package/dist/subagent-start-MWWQTZMQ.js.map +1 -0
- package/dist/subagent-stop-PJXYGRXB.js +28 -0
- package/dist/subagent-stop-PJXYGRXB.js.map +1 -0
- package/dist/task-completed-4LFRJVGI.js +27 -0
- package/dist/task-completed-4LFRJVGI.js.map +1 -0
- package/dist/ui/assets/index-DZrElonz.js +744 -0
- package/dist/ui/assets/index-TkeiYbZB.css +1 -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/user-prompt-submit-KSM3AR6P.js +59 -0
- package/dist/user-prompt-submit-KSM3AR6P.js.map +1 -0
- package/dist/{verify-TOWQHPBX.js → verify-UDAYVX37.js} +17 -22
- package/dist/verify-UDAYVX37.js.map +1 -0
- package/dist/{version-36RVCQA6.js → version-KLBN4HZT.js} +3 -4
- package/dist/version-KLBN4HZT.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-2ZIBCEYO.js +0 -113
- package/dist/chunk-2ZIBCEYO.js.map +0 -1
- package/dist/chunk-4RMSHZE4.js +0 -107
- package/dist/chunk-4RMSHZE4.js.map +0 -1
- package/dist/chunk-4XVKZ3WA.js +0 -1078
- package/dist/chunk-4XVKZ3WA.js.map +0 -1
- package/dist/chunk-6FQISQNA.js +0 -61
- package/dist/chunk-6FQISQNA.js.map +0 -1
- package/dist/chunk-7WHF2OIZ.js.map +0 -1
- package/dist/chunk-ERG2IEWX.js.map +0 -1
- package/dist/chunk-FPRXMJLT.js +0 -56
- package/dist/chunk-FPRXMJLT.js.map +0 -1
- package/dist/chunk-GENQ5QGP.js +0 -37
- package/dist/chunk-GENQ5QGP.js.map +0 -1
- package/dist/chunk-H7PRCVGQ.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-J4D4CROB.js +0 -143
- package/dist/chunk-J4D4CROB.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-NL6WQO56.js +0 -65
- package/dist/chunk-NL6WQO56.js.map +0 -1
- package/dist/chunk-NLUE6CYG.js.map +0 -1
- package/dist/chunk-P723N2LP.js +0 -147
- package/dist/chunk-P723N2LP.js.map +0 -1
- package/dist/chunk-QLUE3BUL.js +0 -161
- package/dist/chunk-QLUE3BUL.js.map +0 -1
- package/dist/chunk-QN4W3JUA.js +0 -43
- package/dist/chunk-QN4W3JUA.js.map +0 -1
- package/dist/chunk-RGVBGTD6.js +0 -21
- package/dist/chunk-RGVBGTD6.js.map +0 -1
- package/dist/chunk-TWSTAVLO.js +0 -132
- package/dist/chunk-TWSTAVLO.js.map +0 -1
- package/dist/chunk-UP4P4OAA.js +0 -4423
- package/dist/chunk-UP4P4OAA.js.map +0 -1
- package/dist/chunk-YIQLYIHW.js.map +0 -1
- package/dist/chunk-YTFXA4RX.js +0 -86
- package/dist/chunk-YTFXA4RX.js.map +0 -1
- package/dist/chunk-Z74SDEKE.js.map +0 -1
- package/dist/cli-IHILSS6N.js +0 -97
- package/dist/cli-IHILSS6N.js.map +0 -1
- package/dist/client-AGFNR2S4.js +0 -12
- package/dist/config-IBS6KOLQ.js.map +0 -1
- package/dist/curate-3D4GHKJH.js +0 -78
- package/dist/curate-3D4GHKJH.js.map +0 -1
- package/dist/detect-providers-XEP4QA3R.js +0 -35
- package/dist/detect-providers-XEP4QA3R.js.map +0 -1
- package/dist/digest-7HLJXL77.js +0 -85
- package/dist/digest-7HLJXL77.js.map +0 -1
- package/dist/init-ARQ53JOR.js +0 -109
- package/dist/init-ARQ53JOR.js.map +0 -1
- package/dist/logs-IENORIYR.js +0 -84
- package/dist/logs-IENORIYR.js.map +0 -1
- package/dist/main-6AGPIMH2.js +0 -5715
- package/dist/main-6AGPIMH2.js.map +0 -1
- package/dist/rebuild-Q2ACEB6F.js +0 -64
- package/dist/rebuild-Q2ACEB6F.js.map +0 -1
- package/dist/reprocess-CDEFGQOV.js +0 -79
- package/dist/reprocess-CDEFGQOV.js.map +0 -1
- package/dist/search-7W25SKCB.js +0 -120
- package/dist/search-7W25SKCB.js.map +0 -1
- package/dist/server-6UDN35QN.js.map +0 -1
- package/dist/session-F326AWCH.js +0 -44
- package/dist/session-F326AWCH.js.map +0 -1
- package/dist/session-start-K6IGAC7H.js +0 -192
- package/dist/session-start-K6IGAC7H.js.map +0 -1
- package/dist/setup-digest-X5PN27F4.js +0 -15
- package/dist/setup-llm-S5OHQJXK.js +0 -15
- package/dist/src/prompts/classification.md +0 -43
- package/dist/stats-TTSDXGJV.js +0 -58
- package/dist/stats-TTSDXGJV.js.map +0 -1
- package/dist/templates-XPRBOWCE.js +0 -38
- package/dist/templates-XPRBOWCE.js.map +0 -1
- package/dist/ui/assets/index-08wKT7wS.css +0 -1
- package/dist/ui/assets/index-CMSMi4Jb.js +0 -369
- package/dist/verify-TOWQHPBX.js.map +0 -1
- package/skills/setup/SKILL.md +0 -174
- package/skills/setup/references/model-recommendations.md +0 -83
- /package/dist/{client-AGFNR2S4.js.map → chunk-E4VLWIJC.js.map} +0 -0
- /package/dist/{setup-digest-X5PN27F4.js.map → chunk-IB76KGBY.js.map} +0 -0
- /package/dist/{chunk-O6PERU7U.js.map → chunk-XNOCTDHF.js.map} +0 -0
- /package/dist/{setup-llm-S5OHQJXK.js.map → client-EYOTW3JU.js.map} +0 -0
- /package/dist/{version-36RVCQA6.js.map → client-MXRNQ5FI.js.map} +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
OPENAI_API_KEY_ENV,
|
|
4
|
+
OpenAIEmbeddingProvider
|
|
5
|
+
} from "./chunk-RJ6ZQKG5.js";
|
|
6
|
+
import "./chunk-KYLDNM7H.js";
|
|
7
|
+
import "./chunk-5VZ52A4T.js";
|
|
8
|
+
import "./chunk-WGTCA2NU.js";
|
|
9
|
+
import "./chunk-PZUWP5VK.js";
|
|
10
|
+
export {
|
|
11
|
+
OPENAI_API_KEY_ENV,
|
|
12
|
+
OpenAIEmbeddingProvider
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=openai-embeddings-C265WRNK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
OPENROUTER_API_KEY_ENV,
|
|
4
|
+
OpenRouterEmbeddingProvider
|
|
5
|
+
} from "./chunk-46PWOKSI.js";
|
|
6
|
+
import "./chunk-KYLDNM7H.js";
|
|
7
|
+
import "./chunk-5VZ52A4T.js";
|
|
8
|
+
import "./chunk-WGTCA2NU.js";
|
|
9
|
+
import "./chunk-PZUWP5VK.js";
|
|
10
|
+
export {
|
|
11
|
+
OPENROUTER_API_KEY_ENV,
|
|
12
|
+
OpenRouterEmbeddingProvider
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=openrouter-U6VFCRX2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
sendEvent
|
|
4
|
+
} from "./chunk-U3IBO3O3.js";
|
|
5
|
+
import "./chunk-V7XG6V6C.js";
|
|
6
|
+
import "./chunk-XNOCTDHF.js";
|
|
7
|
+
import "./chunk-TRUJLI6K.js";
|
|
8
|
+
import "./chunk-5VZ52A4T.js";
|
|
9
|
+
import "./chunk-WGTCA2NU.js";
|
|
10
|
+
import "./chunk-PB6TOLRQ.js";
|
|
11
|
+
import "./chunk-LPUQPDC2.js";
|
|
12
|
+
import "./chunk-JTYZRPX5.js";
|
|
13
|
+
import "./chunk-PZUWP5VK.js";
|
|
14
|
+
|
|
15
|
+
// src/hooks/post-compact.ts
|
|
16
|
+
async function main() {
|
|
17
|
+
await sendEvent("post-compact", (input) => ({
|
|
18
|
+
type: "post_compact",
|
|
19
|
+
trigger: input.trigger,
|
|
20
|
+
compact_summary: input.compact_summary
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
main
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=post-compact-OWFSOITU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/post-compact.ts"],"sourcesContent":["import { sendEvent } from './send-event.js';\n\nexport async function main() {\n await sendEvent('post-compact', (input) => ({\n type: 'post_compact',\n trigger: input.trigger,\n compact_summary: input.compact_summary,\n }));\n}\n"],"mappings":";;;;;;;;;;;;;;;AAEA,eAAsB,OAAO;AAC3B,QAAM,UAAU,gBAAgB,CAAC,WAAW;AAAA,IAC1C,MAAM;AAAA,IACN,SAAS,MAAM;AAAA,IACf,iBAAiB,MAAM;AAAA,EACzB,EAAE;AACJ;","names":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
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-XNOCTDHF.js";
|
|
8
|
+
import {
|
|
9
|
+
DaemonClient
|
|
10
|
+
} from "./chunk-TRUJLI6K.js";
|
|
11
|
+
import {
|
|
12
|
+
TOOL_OUTPUT_PREVIEW_CHARS
|
|
13
|
+
} from "./chunk-5VZ52A4T.js";
|
|
14
|
+
import "./chunk-WGTCA2NU.js";
|
|
15
|
+
import "./chunk-PB6TOLRQ.js";
|
|
16
|
+
import "./chunk-LPUQPDC2.js";
|
|
17
|
+
import {
|
|
18
|
+
resolveVaultDir
|
|
19
|
+
} from "./chunk-JTYZRPX5.js";
|
|
20
|
+
import "./chunk-PZUWP5VK.js";
|
|
21
|
+
|
|
22
|
+
// src/hooks/post-tool-use.ts
|
|
23
|
+
import fs from "fs";
|
|
24
|
+
import path from "path";
|
|
25
|
+
async function main() {
|
|
26
|
+
const VAULT_DIR = resolveVaultDir();
|
|
27
|
+
if (!fs.existsSync(path.join(VAULT_DIR, "myco.yaml"))) return;
|
|
28
|
+
try {
|
|
29
|
+
const input = JSON.parse(await readStdin());
|
|
30
|
+
const sessionId = input.session_id ?? process.env.MYCO_SESSION_ID ?? `s-${Date.now()}`;
|
|
31
|
+
const client = new DaemonClient(VAULT_DIR);
|
|
32
|
+
const result = await client.post("/events", {
|
|
33
|
+
type: "tool_use",
|
|
34
|
+
tool_name: input.tool_name,
|
|
35
|
+
tool_input: input.tool_input,
|
|
36
|
+
output_preview: typeof input.tool_output === "string" ? input.tool_output.slice(0, TOOL_OUTPUT_PREVIEW_CHARS) : void 0,
|
|
37
|
+
session_id: sessionId
|
|
38
|
+
});
|
|
39
|
+
if (!result.ok) {
|
|
40
|
+
const buffer = new EventBuffer(path.join(VAULT_DIR, "buffer"), sessionId);
|
|
41
|
+
buffer.append({
|
|
42
|
+
type: "tool_use",
|
|
43
|
+
tool: input.tool_name,
|
|
44
|
+
input: input.tool_input,
|
|
45
|
+
output_preview: typeof input.tool_output === "string" ? input.tool_output.slice(0, TOOL_OUTPUT_PREVIEW_CHARS) : void 0
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
} catch (error) {
|
|
49
|
+
process.stderr.write(`[myco] post-tool-use error: ${error.message}
|
|
50
|
+
`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export {
|
|
54
|
+
main
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=post-tool-use-DOUM7CGQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/post-tool-use.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 { TOOL_OUTPUT_PREVIEW_CHARS } from '../constants.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 sessionId = input.session_id ?? process.env.MYCO_SESSION_ID ?? `s-${Date.now()}`;\n\n const client = new DaemonClient(VAULT_DIR);\n\n // PostToolUse fires frequently — don't spawn the daemon here.\n // If it's down, buffer to disk. The stop or prompt hook will respawn it.\n const result = await client.post('/events', {\n type: 'tool_use',\n tool_name: input.tool_name,\n tool_input: input.tool_input,\n output_preview: typeof input.tool_output === 'string' ? input.tool_output.slice(0, TOOL_OUTPUT_PREVIEW_CHARS) : undefined,\n session_id: sessionId,\n });\n\n if (!result.ok) {\n const buffer = new EventBuffer(path.join(VAULT_DIR, 'buffer'), sessionId);\n buffer.append({\n type: 'tool_use',\n tool: input.tool_name,\n input: input.tool_input,\n output_preview: typeof input.tool_output === 'string' ? input.tool_output.slice(0, TOOL_OUTPUT_PREVIEW_CHARS) : undefined,\n });\n }\n } catch (error) {\n process.stderr.write(`[myco] post-tool-use error: ${(error as Error).message}\\n`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAKA,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,YAAY,MAAM,cAAc,QAAQ,IAAI,mBAAmB,KAAK,KAAK,IAAI,CAAC;AAEpF,UAAM,SAAS,IAAI,aAAa,SAAS;AAIzC,UAAM,SAAS,MAAM,OAAO,KAAK,WAAW;AAAA,MAC1C,MAAM;AAAA,MACN,WAAW,MAAM;AAAA,MACjB,YAAY,MAAM;AAAA,MAClB,gBAAgB,OAAO,MAAM,gBAAgB,WAAW,MAAM,YAAY,MAAM,GAAG,yBAAyB,IAAI;AAAA,MAChH,YAAY;AAAA,IACd,CAAC;AAED,QAAI,CAAC,OAAO,IAAI;AACd,YAAM,SAAS,IAAI,YAAY,KAAK,KAAK,WAAW,QAAQ,GAAG,SAAS;AACxE,aAAO,OAAO;AAAA,QACZ,MAAM;AAAA,QACN,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb,gBAAgB,OAAO,MAAM,gBAAgB,WAAW,MAAM,YAAY,MAAM,GAAG,yBAAyB,IAAI;AAAA,MAClH,CAAC;AAAA,IACH;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,OAAO,MAAM,+BAAgC,MAAgB,OAAO;AAAA,CAAI;AAAA,EAClF;AACF;","names":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
sendEvent
|
|
4
|
+
} from "./chunk-U3IBO3O3.js";
|
|
5
|
+
import "./chunk-V7XG6V6C.js";
|
|
6
|
+
import "./chunk-XNOCTDHF.js";
|
|
7
|
+
import "./chunk-TRUJLI6K.js";
|
|
8
|
+
import "./chunk-5VZ52A4T.js";
|
|
9
|
+
import "./chunk-WGTCA2NU.js";
|
|
10
|
+
import "./chunk-PB6TOLRQ.js";
|
|
11
|
+
import "./chunk-LPUQPDC2.js";
|
|
12
|
+
import "./chunk-JTYZRPX5.js";
|
|
13
|
+
import "./chunk-PZUWP5VK.js";
|
|
14
|
+
|
|
15
|
+
// src/hooks/post-tool-use-failure.ts
|
|
16
|
+
async function main() {
|
|
17
|
+
await sendEvent("post-tool-use-failure", (input) => ({
|
|
18
|
+
type: "tool_failure",
|
|
19
|
+
tool_name: input.tool_name,
|
|
20
|
+
tool_input: input.tool_input,
|
|
21
|
+
error: input.error,
|
|
22
|
+
is_interrupt: input.is_interrupt
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
main
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=post-tool-use-failure-SG3C7PE6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/post-tool-use-failure.ts"],"sourcesContent":["import { sendEvent } from './send-event.js';\n\nexport async function main() {\n await sendEvent('post-tool-use-failure', (input) => ({\n type: 'tool_failure',\n tool_name: input.tool_name,\n tool_input: input.tool_input,\n error: input.error,\n is_interrupt: input.is_interrupt,\n }));\n}\n"],"mappings":";;;;;;;;;;;;;;;AAEA,eAAsB,OAAO;AAC3B,QAAM,UAAU,yBAAyB,CAAC,WAAW;AAAA,IACnD,MAAM;AAAA,IACN,WAAW,MAAM;AAAA,IACjB,YAAY,MAAM;AAAA,IAClB,OAAO,MAAM;AAAA,IACb,cAAc,MAAM;AAAA,EACtB,EAAE;AACJ;","names":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
sendEvent
|
|
4
|
+
} from "./chunk-U3IBO3O3.js";
|
|
5
|
+
import "./chunk-V7XG6V6C.js";
|
|
6
|
+
import "./chunk-XNOCTDHF.js";
|
|
7
|
+
import "./chunk-TRUJLI6K.js";
|
|
8
|
+
import "./chunk-5VZ52A4T.js";
|
|
9
|
+
import "./chunk-WGTCA2NU.js";
|
|
10
|
+
import "./chunk-PB6TOLRQ.js";
|
|
11
|
+
import "./chunk-LPUQPDC2.js";
|
|
12
|
+
import "./chunk-JTYZRPX5.js";
|
|
13
|
+
import "./chunk-PZUWP5VK.js";
|
|
14
|
+
|
|
15
|
+
// src/hooks/pre-compact.ts
|
|
16
|
+
async function main() {
|
|
17
|
+
await sendEvent("pre-compact", (input) => ({
|
|
18
|
+
type: "pre_compact",
|
|
19
|
+
trigger: input.trigger
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
main
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=pre-compact-3J33CHXQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/pre-compact.ts"],"sourcesContent":["import { sendEvent } from './send-event.js';\n\nexport async function main() {\n await sendEvent('pre-compact', (input) => ({\n type: 'pre_compact',\n trigger: input.trigger,\n }));\n}\n"],"mappings":";;;;;;;;;;;;;;;AAEA,eAAsB,OAAO;AAC3B,QAAM,UAAU,eAAe,CAAC,WAAW;AAAA,IACzC,MAAM;AAAA,IACN,SAAS,MAAM;AAAA,EACjB,EAAE;AACJ;","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
checkLocalProvider
|
|
4
|
+
} from "./chunk-DCXRSSBP.js";
|
|
5
|
+
import "./chunk-UBZPD4HN.js";
|
|
6
|
+
import "./chunk-5VZ52A4T.js";
|
|
7
|
+
import "./chunk-WGTCA2NU.js";
|
|
8
|
+
import "./chunk-PZUWP5VK.js";
|
|
9
|
+
export {
|
|
10
|
+
checkLocalProvider
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=provider-check-3WBPZADE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
copyTaskToUser,
|
|
4
|
+
deleteUserTask,
|
|
5
|
+
loadAllTasks,
|
|
6
|
+
validateTaskName,
|
|
7
|
+
writeUserTask
|
|
8
|
+
} from "./chunk-BUSP3OJB.js";
|
|
9
|
+
import "./chunk-JMJJEQ3P.js";
|
|
10
|
+
import "./chunk-IB76KGBY.js";
|
|
11
|
+
import "./chunk-D7TYRPRM.js";
|
|
12
|
+
import "./chunk-KH64DHOY.js";
|
|
13
|
+
import "./chunk-MYX5NCRH.js";
|
|
14
|
+
import "./chunk-5VZ52A4T.js";
|
|
15
|
+
import "./chunk-WGTCA2NU.js";
|
|
16
|
+
import "./chunk-LPUQPDC2.js";
|
|
17
|
+
import "./chunk-PZUWP5VK.js";
|
|
18
|
+
export {
|
|
19
|
+
copyTaskToUser,
|
|
20
|
+
deleteUserTask,
|
|
21
|
+
loadAllTasks,
|
|
22
|
+
validateTaskName,
|
|
23
|
+
writeUserTask
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=registry-J4XTWARS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
insertResolutionEvent,
|
|
4
|
+
listResolutionEvents
|
|
5
|
+
} from "./chunk-YDN4OM33.js";
|
|
6
|
+
import "./chunk-MYX5NCRH.js";
|
|
7
|
+
import "./chunk-PZUWP5VK.js";
|
|
8
|
+
export {
|
|
9
|
+
insertResolutionEvent,
|
|
10
|
+
listResolutionEvents
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=resolution-events-TFEQPVKS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
resolveVaultDir
|
|
4
|
+
} from "./chunk-JTYZRPX5.js";
|
|
5
|
+
import "./chunk-PZUWP5VK.js";
|
|
6
|
+
export {
|
|
7
|
+
resolveVaultDir
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=resolve-3FEUV462.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
isProcessAlive
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-KB4DGYIY.js";
|
|
5
5
|
import "./chunk-SAKJMNSR.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-UBZPD4HN.js";
|
|
7
|
+
import "./chunk-MYX5NCRH.js";
|
|
8
|
+
import "./chunk-TRUJLI6K.js";
|
|
9
|
+
import "./chunk-5VZ52A4T.js";
|
|
10
|
+
import "./chunk-WGTCA2NU.js";
|
|
11
|
+
import "./chunk-PB6TOLRQ.js";
|
|
12
|
+
import "./chunk-LPUQPDC2.js";
|
|
9
13
|
import "./chunk-PZUWP5VK.js";
|
|
10
14
|
|
|
11
15
|
// src/cli/restart.ts
|
|
@@ -29,7 +33,7 @@ async function run(_args, vaultDir) {
|
|
|
29
33
|
} catch {
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
|
-
const { DaemonClient } = await import("./client-
|
|
36
|
+
const { DaemonClient } = await import("./client-MXRNQ5FI.js");
|
|
33
37
|
const client = new DaemonClient(vaultDir);
|
|
34
38
|
console.log("Waiting for health check...");
|
|
35
39
|
const healthy = await client.ensureRunning();
|
|
@@ -48,4 +52,4 @@ async function run(_args, vaultDir) {
|
|
|
48
52
|
export {
|
|
49
53
|
run
|
|
50
54
|
};
|
|
51
|
-
//# sourceMappingURL=restart-
|
|
55
|
+
//# sourceMappingURL=restart-2VM33WOB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/restart.ts"],"sourcesContent":["import { isProcessAlive } from './shared.js';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function run(_args: string[], vaultDir: string): Promise<void> {\n const daemonPath = path.join(vaultDir, 'daemon.json');\n\n // Kill existing daemon if running\n if (fs.existsSync(daemonPath)) {\n try {\n const daemon = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n if (isProcessAlive(daemon.pid)) {\n process.kill(daemon.pid, 'SIGTERM');\n console.log(`Stopped daemon (pid ${daemon.pid})`);\n } else {\n console.log(`Daemon pid ${daemon.pid} was already dead`);\n }\n } catch { /* ignore */ }\n try { fs.unlinkSync(daemonPath); } catch { /* already gone */ }\n }\n\n // Spawn and wait for health using the shared client\n // (handles CLAUDE_PLUGIN_ROOT + CURSOR_PLUGIN_ROOT resolution)\n const { DaemonClient } = await import('../hooks/client.js');\n const client = new DaemonClient(vaultDir);\n\n console.log('Waiting for health check...');\n const healthy = await client.ensureRunning();\n if (healthy) {\n try {\n const info = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n console.log(`Daemon healthy on port ${info.port}`);\n console.log(`Dashboard: http://localhost:${info.port}/`);\n } catch {\n console.log('Daemon healthy');\n }\n } else {\n console.error('Daemon failed to become healthy');\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/cli/restart.ts"],"sourcesContent":["import { isProcessAlive } from './shared.js';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function run(_args: string[], vaultDir: string): Promise<void> {\n const daemonPath = path.join(vaultDir, 'daemon.json');\n\n // Kill existing daemon if running\n if (fs.existsSync(daemonPath)) {\n try {\n const daemon = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n if (isProcessAlive(daemon.pid)) {\n process.kill(daemon.pid, 'SIGTERM');\n console.log(`Stopped daemon (pid ${daemon.pid})`);\n } else {\n console.log(`Daemon pid ${daemon.pid} was already dead`);\n }\n } catch { /* ignore */ }\n try { fs.unlinkSync(daemonPath); } catch { /* already gone */ }\n }\n\n // Spawn and wait for health using the shared client\n // (handles CLAUDE_PLUGIN_ROOT + CURSOR_PLUGIN_ROOT resolution)\n const { DaemonClient } = await import('../hooks/client.js');\n const client = new DaemonClient(vaultDir);\n\n console.log('Waiting for health check...');\n const healthy = await client.ensureRunning();\n if (healthy) {\n try {\n const info = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n console.log(`Daemon healthy on port ${info.port}`);\n console.log(`Dashboard: http://localhost:${info.port}/`);\n } catch {\n console.log('Daemon healthy');\n }\n } else {\n console.error('Daemon failed to become healthy');\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,eAAsB,IAAI,OAAiB,UAAiC;AAC1E,QAAM,aAAa,KAAK,KAAK,UAAU,aAAa;AAGpD,MAAI,GAAG,WAAW,UAAU,GAAG;AAC7B,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,GAAG,aAAa,YAAY,OAAO,CAAC;AAC9D,UAAI,eAAe,OAAO,GAAG,GAAG;AAC9B,gBAAQ,KAAK,OAAO,KAAK,SAAS;AAClC,gBAAQ,IAAI,uBAAuB,OAAO,GAAG,GAAG;AAAA,MAClD,OAAO;AACL,gBAAQ,IAAI,cAAc,OAAO,GAAG,mBAAmB;AAAA,MACzD;AAAA,IACF,QAAQ;AAAA,IAAe;AACvB,QAAI;AAAE,SAAG,WAAW,UAAU;AAAA,IAAG,QAAQ;AAAA,IAAqB;AAAA,EAChE;AAIA,QAAM,EAAE,aAAa,IAAI,MAAM,OAAO,sBAAoB;AAC1D,QAAM,SAAS,IAAI,aAAa,QAAQ;AAExC,UAAQ,IAAI,6BAA6B;AACzC,QAAM,UAAU,MAAM,OAAO,cAAc;AAC3C,MAAI,SAAS;AACX,QAAI;AACF,YAAM,OAAO,KAAK,MAAM,GAAG,aAAa,YAAY,OAAO,CAAC;AAC5D,cAAQ,IAAI,0BAA0B,KAAK,IAAI,EAAE;AACjD,cAAQ,IAAI,+BAA+B,KAAK,IAAI,GAAG;AAAA,IACzD,QAAQ;AACN,cAAQ,IAAI,gBAAgB;AAAA,IAC9B;AAAA,EACF,OAAO;AACL,YAAQ,MAAM,iCAAiC;AAAA,EACjD;AACF;","names":[]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
fullTextSearch
|
|
4
|
+
} from "./chunk-PT5IC642.js";
|
|
5
|
+
import {
|
|
6
|
+
connectToDaemon,
|
|
7
|
+
initVaultDb
|
|
8
|
+
} from "./chunk-KB4DGYIY.js";
|
|
9
|
+
import "./chunk-SAKJMNSR.js";
|
|
10
|
+
import "./chunk-UBZPD4HN.js";
|
|
11
|
+
import "./chunk-MYX5NCRH.js";
|
|
12
|
+
import "./chunk-TRUJLI6K.js";
|
|
13
|
+
import {
|
|
14
|
+
CONTENT_SNIPPET_CHARS
|
|
15
|
+
} from "./chunk-5VZ52A4T.js";
|
|
16
|
+
import "./chunk-WGTCA2NU.js";
|
|
17
|
+
import "./chunk-PB6TOLRQ.js";
|
|
18
|
+
import "./chunk-LPUQPDC2.js";
|
|
19
|
+
import "./chunk-PZUWP5VK.js";
|
|
20
|
+
|
|
21
|
+
// src/cli/search.ts
|
|
22
|
+
var CLI_SEARCH_LIMIT = 10;
|
|
23
|
+
var CLI_VECTORS_LIMIT = 20;
|
|
24
|
+
async function run(args, vaultDir) {
|
|
25
|
+
const query = args.join(" ");
|
|
26
|
+
if (!query) {
|
|
27
|
+
console.error("Usage: myco search <query>");
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
const cleanup = initVaultDb(vaultDir);
|
|
31
|
+
try {
|
|
32
|
+
const results = fullTextSearch(query, { limit: CLI_SEARCH_LIMIT });
|
|
33
|
+
console.log(`=== Text Search: "${query}" ===`);
|
|
34
|
+
if (results.length === 0) {
|
|
35
|
+
console.log(" (no results)");
|
|
36
|
+
} else {
|
|
37
|
+
for (const r of results) {
|
|
38
|
+
const preview = (r.preview ?? r.title ?? "").slice(0, CONTENT_SNIPPET_CHARS);
|
|
39
|
+
console.log(` [${r.type}] ${preview}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
} catch (err) {
|
|
43
|
+
console.error("Search failed:", err.message);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
} finally {
|
|
46
|
+
cleanup();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function runVectors(args, vaultDir) {
|
|
50
|
+
const query = args.join(" ");
|
|
51
|
+
if (!query) {
|
|
52
|
+
console.error("Usage: myco vectors <query>");
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
const client = await connectToDaemon(vaultDir);
|
|
56
|
+
const params = new URLSearchParams({
|
|
57
|
+
q: query,
|
|
58
|
+
limit: String(CLI_VECTORS_LIMIT),
|
|
59
|
+
mode: "semantic"
|
|
60
|
+
});
|
|
61
|
+
const result = await client.get(`/api/search?${params.toString()}`);
|
|
62
|
+
if (!result.ok || !result.data?.results) {
|
|
63
|
+
console.error("Semantic search failed \u2014 embedding provider may not be configured");
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
const results = result.data.results;
|
|
67
|
+
console.log(`Query: "${query}"`);
|
|
68
|
+
console.log();
|
|
69
|
+
if (results.length === 0) {
|
|
70
|
+
console.log("(no results)");
|
|
71
|
+
} else {
|
|
72
|
+
const topScore = results[0].score;
|
|
73
|
+
const DEFAULT_RELATIVE_THRESHOLD = 0.5;
|
|
74
|
+
console.log(`Top score: ${topScore.toFixed(4)}`);
|
|
75
|
+
console.log(`Default threshold (${DEFAULT_RELATIVE_THRESHOLD}x): ${(topScore * DEFAULT_RELATIVE_THRESHOLD).toFixed(4)}`);
|
|
76
|
+
console.log();
|
|
77
|
+
console.log(" Sim Ratio Type ID");
|
|
78
|
+
console.log(" ------ ----- --------- " + "-".repeat(50));
|
|
79
|
+
for (const r of results) {
|
|
80
|
+
const ratio = (r.score / topScore).toFixed(2);
|
|
81
|
+
const pass = r.score >= topScore * DEFAULT_RELATIVE_THRESHOLD ? "\u2713" : " ";
|
|
82
|
+
const type = r.type ?? "unknown";
|
|
83
|
+
console.log(`${pass} ${r.score.toFixed(4)} ${ratio} ${type.padEnd(9)} ${r.id.slice(0, 50)}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export {
|
|
88
|
+
run,
|
|
89
|
+
runVectors
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=search-ZGQR5MDE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/search.ts"],"sourcesContent":["/**\n * CLI: myco search — full-text search via direct SQLite reads.\n * CLI: myco vectors — semantic search via daemon API (requires vector store).\n *\n * The `search` command opens the database directly (WAL mode allows concurrent\n * reads) and does NOT require the daemon. The `vectors` command still routes\n * through the daemon because it needs the in-process vector store.\n */\n\nimport { CONTENT_SNIPPET_CHARS } from '@myco/constants.js';\nimport { fullTextSearch } from '@myco/db/queries/search.js';\nimport { connectToDaemon, initVaultDb } from './shared.js';\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/** Default result limit for CLI search. */\nconst CLI_SEARCH_LIMIT = 10;\n\n/** Default result limit for CLI vectors. */\nconst CLI_VECTORS_LIMIT = 20;\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ninterface SearchResult {\n id: string;\n type: string;\n title: string;\n preview: string;\n score: number;\n session_id?: string;\n}\n\n// ---------------------------------------------------------------------------\n// search command — direct DB read\n// ---------------------------------------------------------------------------\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 cleanup = initVaultDb(vaultDir);\n try {\n const results = fullTextSearch(query, { limit: CLI_SEARCH_LIMIT });\n\n console.log(`=== Text Search: \"${query}\" ===`);\n if (results.length === 0) {\n console.log(' (no results)');\n } else {\n for (const r of results) {\n const preview = (r.preview ?? r.title ?? '').slice(0, CONTENT_SNIPPET_CHARS);\n console.log(` [${r.type}] ${preview}`);\n }\n }\n } catch (err) {\n console.error('Search failed:', (err as Error).message);\n process.exit(1);\n } finally {\n cleanup();\n }\n}\n\n// ---------------------------------------------------------------------------\n// vectors command — requires daemon for vector store\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 client = await connectToDaemon(vaultDir);\n\n const params = new URLSearchParams({\n q: query,\n limit: String(CLI_VECTORS_LIMIT),\n mode: 'semantic',\n });\n const result = await client.get(`/api/search?${params.toString()}`);\n\n if (!result.ok || !result.data?.results) {\n console.error('Semantic search failed — embedding provider may not be configured');\n process.exit(1);\n }\n\n const results = result.data.results as SearchResult[];\n\n console.log(`Query: \"${query}\"`);\n console.log();\n\n if (results.length === 0) {\n console.log('(no results)');\n } else {\n const topScore = results[0].score;\n const DEFAULT_RELATIVE_THRESHOLD = 0.5;\n console.log(`Top score: ${topScore.toFixed(4)}`);\n console.log(`Default threshold (${DEFAULT_RELATIVE_THRESHOLD}x): ${(topScore * DEFAULT_RELATIVE_THRESHOLD).toFixed(4)}`);\n console.log();\n console.log(' Sim Ratio Type ID');\n console.log(' ------ ----- --------- ' + '-'.repeat(50));\n for (const r of results) {\n const ratio = (r.score / topScore).toFixed(2);\n const pass = r.score >= topScore * DEFAULT_RELATIVE_THRESHOLD ? '\\u2713' : ' ';\n const type = r.type ?? 'unknown';\n console.log(`${pass} ${r.score.toFixed(4)} ${ratio} ${type.padEnd(9)} ${r.id.slice(0, 50)}`);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkBA,IAAM,mBAAmB;AAGzB,IAAM,oBAAoB;AAmB1B,eAAsB,IAAI,MAAgB,UAAiC;AACzE,QAAM,QAAQ,KAAK,KAAK,GAAG;AAC3B,MAAI,CAAC,OAAO;AAAE,YAAQ,MAAM,4BAA4B;AAAG,YAAQ,KAAK,CAAC;AAAA,EAAG;AAE5E,QAAM,UAAU,YAAY,QAAQ;AACpC,MAAI;AACF,UAAM,UAAU,eAAe,OAAO,EAAE,OAAO,iBAAiB,CAAC;AAEjE,YAAQ,IAAI,qBAAqB,KAAK,OAAO;AAC7C,QAAI,QAAQ,WAAW,GAAG;AACxB,cAAQ,IAAI,gBAAgB;AAAA,IAC9B,OAAO;AACL,iBAAW,KAAK,SAAS;AACvB,cAAM,WAAW,EAAE,WAAW,EAAE,SAAS,IAAI,MAAM,GAAG,qBAAqB;AAC3E,gBAAQ,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,EAAE;AAAA,MACxC;AAAA,IACF;AAAA,EACF,SAAS,KAAK;AACZ,YAAQ,MAAM,kBAAmB,IAAc,OAAO;AACtD,YAAQ,KAAK,CAAC;AAAA,EAChB,UAAE;AACA,YAAQ;AAAA,EACV;AACF;AAMA,eAAsB,WAAW,MAAgB,UAAiC;AAChF,QAAM,QAAQ,KAAK,KAAK,GAAG;AAC3B,MAAI,CAAC,OAAO;AAAE,YAAQ,MAAM,6BAA6B;AAAG,YAAQ,KAAK,CAAC;AAAA,EAAG;AAE7E,QAAM,SAAS,MAAM,gBAAgB,QAAQ;AAE7C,QAAM,SAAS,IAAI,gBAAgB;AAAA,IACjC,GAAG;AAAA,IACH,OAAO,OAAO,iBAAiB;AAAA,IAC/B,MAAM;AAAA,EACR,CAAC;AACD,QAAM,SAAS,MAAM,OAAO,IAAI,eAAe,OAAO,SAAS,CAAC,EAAE;AAElE,MAAI,CAAC,OAAO,MAAM,CAAC,OAAO,MAAM,SAAS;AACvC,YAAQ,MAAM,wEAAmE;AACjF,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,UAAU,OAAO,KAAK;AAE5B,UAAQ,IAAI,WAAW,KAAK,GAAG;AAC/B,UAAQ,IAAI;AAEZ,MAAI,QAAQ,WAAW,GAAG;AACxB,YAAQ,IAAI,cAAc;AAAA,EAC5B,OAAO;AACL,UAAM,WAAW,QAAQ,CAAC,EAAE;AAC5B,UAAM,6BAA6B;AACnC,YAAQ,IAAI,cAAc,SAAS,QAAQ,CAAC,CAAC,EAAE;AAC/C,YAAQ,IAAI,sBAAsB,0BAA0B,QAAQ,WAAW,4BAA4B,QAAQ,CAAC,CAAC,EAAE;AACvH,YAAQ,IAAI;AACZ,YAAQ,IAAI,gCAAgC;AAC5C,YAAQ,IAAI,iCAAiC,IAAI,OAAO,EAAE,CAAC;AAC3D,eAAW,KAAK,SAAS;AACvB,YAAM,SAAS,EAAE,QAAQ,UAAU,QAAQ,CAAC;AAC5C,YAAM,OAAO,EAAE,SAAS,WAAW,6BAA6B,WAAW;AAC3E,YAAM,OAAO,EAAE,QAAQ;AACvB,cAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC,EAAE;AAAA,IACjG;AAAA,EACF;AACF;","names":[]}
|