@goondocks/myco 0.6.5 → 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-54WVLTKD.js → chunk-JYOOJCPQ.js} +33 -17
- package/dist/chunk-JYOOJCPQ.js.map +1 -0
- package/dist/{chunk-F7GAYVWF.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-4B5RO2YV.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-4DYD4HHG.js → chunk-UBZPD4HN.js} +2 -2
- 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-AHZN4Z34.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-F7PGDD2X.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-UIP7US4U.js → restart-2VM33WOB.js} +10 -6
- package/dist/{restart-UIP7US4U.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-43KSJ65Q.js → server-6KMBJCHZ.js} +267 -524
- 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-X272WGBD.js → verify-UDAYVX37.js} +17 -22
- package/dist/verify-UDAYVX37.js.map +1 -0
- package/dist/{version-XE4GYTBV.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-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/{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-4DYD4HHG.js.map → chunk-UBZPD4HN.js.map} +0 -0
- /package/dist/{chunk-AHZN4Z34.js.map → chunk-XNOCTDHF.js.map} +0 -0
- /package/dist/{setup-llm-QBSTQO7N.js.map → client-EYOTW3JU.js.map} +0 -0
- /package/dist/{version-XE4GYTBV.js.map → client-MXRNQ5FI.js.map} +0 -0
package/dist/chunk-O6TBHGVO.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
-
|
|
3
|
-
// src/daemon/logger.ts
|
|
4
|
-
import fs from "fs";
|
|
5
|
-
import path from "path";
|
|
6
|
-
|
|
7
|
-
// src/daemon/log-buffer.ts
|
|
8
|
-
var LOG_RING_BUFFER_CAPACITY = 5e3;
|
|
9
|
-
var LOG_QUERY_DEFAULT_LIMIT = 100;
|
|
10
|
-
var LogRingBuffer = class {
|
|
11
|
-
buffer;
|
|
12
|
-
head = 0;
|
|
13
|
-
count = 0;
|
|
14
|
-
sequence = 0;
|
|
15
|
-
startSequence = 0;
|
|
16
|
-
capacity;
|
|
17
|
-
constructor(capacity = LOG_RING_BUFFER_CAPACITY) {
|
|
18
|
-
this.capacity = capacity;
|
|
19
|
-
this.buffer = new Array(capacity);
|
|
20
|
-
}
|
|
21
|
-
push(entry) {
|
|
22
|
-
this.buffer[this.head] = entry;
|
|
23
|
-
this.head = (this.head + 1) % this.capacity;
|
|
24
|
-
if (this.count < this.capacity) {
|
|
25
|
-
this.count++;
|
|
26
|
-
} else {
|
|
27
|
-
this.startSequence++;
|
|
28
|
-
}
|
|
29
|
-
this.sequence++;
|
|
30
|
-
}
|
|
31
|
-
since(cursor, options) {
|
|
32
|
-
const limit = options?.limit ?? LOG_QUERY_DEFAULT_LIMIT;
|
|
33
|
-
const minLevel = options?.level ? LEVEL_ORDER[options.level] : 0;
|
|
34
|
-
let startIdx = 0;
|
|
35
|
-
let cursorReset = false;
|
|
36
|
-
if (cursor !== null) {
|
|
37
|
-
const seq = parseInt(cursor, 10);
|
|
38
|
-
if (isNaN(seq) || seq < this.startSequence) {
|
|
39
|
-
cursorReset = true;
|
|
40
|
-
startIdx = 0;
|
|
41
|
-
} else {
|
|
42
|
-
startIdx = seq - this.startSequence;
|
|
43
|
-
}
|
|
44
|
-
} else {
|
|
45
|
-
startIdx = Math.max(0, this.count - limit);
|
|
46
|
-
}
|
|
47
|
-
const entries = [];
|
|
48
|
-
for (let i = startIdx; i < this.count && entries.length < limit; i++) {
|
|
49
|
-
const bufIdx = (this.head - this.count + i + this.capacity) % this.capacity;
|
|
50
|
-
const entry = this.buffer[bufIdx];
|
|
51
|
-
if (entry && LEVEL_ORDER[entry.level] >= minLevel) {
|
|
52
|
-
if (options?.component && entry.component !== options.component) continue;
|
|
53
|
-
entries.push(entry);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
const result = {
|
|
57
|
-
entries,
|
|
58
|
-
cursor: String(this.sequence)
|
|
59
|
-
};
|
|
60
|
-
if (cursorReset) result.cursor_reset = true;
|
|
61
|
-
return result;
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
// src/daemon/logger.ts
|
|
66
|
-
var LEVEL_ORDER = {
|
|
67
|
-
debug: 0,
|
|
68
|
-
info: 1,
|
|
69
|
-
warn: 2,
|
|
70
|
-
error: 3
|
|
71
|
-
};
|
|
72
|
-
var DaemonLogger = class {
|
|
73
|
-
logPath;
|
|
74
|
-
fd = null;
|
|
75
|
-
currentSize = 0;
|
|
76
|
-
level;
|
|
77
|
-
maxSize;
|
|
78
|
-
maxFiles;
|
|
79
|
-
logDir;
|
|
80
|
-
ringBuffer;
|
|
81
|
-
constructor(logDir, options = {}) {
|
|
82
|
-
this.logDir = logDir;
|
|
83
|
-
this.logPath = path.join(logDir, "daemon.log");
|
|
84
|
-
this.level = options.level ?? "info";
|
|
85
|
-
this.maxSize = options.maxSize ?? 5242880;
|
|
86
|
-
this.maxFiles = options.maxFiles ?? 3;
|
|
87
|
-
this.ringBuffer = new LogRingBuffer();
|
|
88
|
-
fs.mkdirSync(logDir, { recursive: true });
|
|
89
|
-
this.fd = fs.openSync(this.logPath, "a");
|
|
90
|
-
try {
|
|
91
|
-
this.currentSize = fs.fstatSync(this.fd).size;
|
|
92
|
-
} catch {
|
|
93
|
-
this.currentSize = 0;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
debug(component, message, data) {
|
|
97
|
-
this.write("debug", component, message, data);
|
|
98
|
-
}
|
|
99
|
-
info(component, message, data) {
|
|
100
|
-
this.write("info", component, message, data);
|
|
101
|
-
}
|
|
102
|
-
warn(component, message, data) {
|
|
103
|
-
this.write("warn", component, message, data);
|
|
104
|
-
}
|
|
105
|
-
error(component, message, data) {
|
|
106
|
-
this.write("error", component, message, data);
|
|
107
|
-
}
|
|
108
|
-
/** Dispatch a log entry by dynamic level string. */
|
|
109
|
-
log(level, component, message, data) {
|
|
110
|
-
if (level in LEVEL_ORDER) {
|
|
111
|
-
this.write(level, component, message, data);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
close() {
|
|
115
|
-
if (this.fd !== null) {
|
|
116
|
-
fs.closeSync(this.fd);
|
|
117
|
-
this.fd = null;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
getRingBuffer() {
|
|
121
|
-
return this.ringBuffer;
|
|
122
|
-
}
|
|
123
|
-
write(level, component, message, data) {
|
|
124
|
-
if (LEVEL_ORDER[level] < LEVEL_ORDER[this.level]) return;
|
|
125
|
-
const entry = {
|
|
126
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
127
|
-
level,
|
|
128
|
-
component,
|
|
129
|
-
message,
|
|
130
|
-
...data
|
|
131
|
-
};
|
|
132
|
-
this.ringBuffer.push(entry);
|
|
133
|
-
const line = JSON.stringify(entry) + "\n";
|
|
134
|
-
const bytes = Buffer.byteLength(line);
|
|
135
|
-
if (this.currentSize + bytes > this.maxSize) {
|
|
136
|
-
this.rotate();
|
|
137
|
-
}
|
|
138
|
-
if (this.fd !== null) {
|
|
139
|
-
fs.writeSync(this.fd, line);
|
|
140
|
-
this.currentSize += bytes;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
rotate() {
|
|
144
|
-
this.close();
|
|
145
|
-
for (let i = this.maxFiles - 1; i >= 1; i--) {
|
|
146
|
-
const from = path.join(this.logDir, `daemon.${i}.log`);
|
|
147
|
-
const to = path.join(this.logDir, `daemon.${i + 1}.log`);
|
|
148
|
-
if (fs.existsSync(from)) {
|
|
149
|
-
if (i + 1 > this.maxFiles) {
|
|
150
|
-
fs.unlinkSync(from);
|
|
151
|
-
} else {
|
|
152
|
-
fs.renameSync(from, to);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
if (fs.existsSync(this.logPath)) {
|
|
157
|
-
fs.renameSync(this.logPath, path.join(this.logDir, "daemon.1.log"));
|
|
158
|
-
}
|
|
159
|
-
this.fd = fs.openSync(this.logPath, "a");
|
|
160
|
-
this.currentSize = 0;
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
export {
|
|
165
|
-
LEVEL_ORDER,
|
|
166
|
-
DaemonLogger
|
|
167
|
-
};
|
|
168
|
-
//# sourceMappingURL=chunk-O6TBHGVO.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/daemon/logger.ts","../src/daemon/log-buffer.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport { LogRingBuffer } from './log-buffer.js';\n\nexport interface LogEntry {\n timestamp: string;\n level: string;\n component: string;\n message: string;\n [key: string]: unknown;\n}\n\nexport type LogLevel = 'debug' | 'info' | 'warn' | 'error';\n\nexport const LEVEL_ORDER: Record<LogLevel, number> = {\n debug: 0, info: 1, warn: 2, error: 3,\n};\n\ninterface LoggerOptions {\n level?: LogLevel;\n maxSize?: number;\n maxFiles?: number;\n}\n\nexport class DaemonLogger {\n private logPath: string;\n private fd: number | null = null;\n private currentSize = 0;\n private level: LogLevel;\n private maxSize: number;\n private maxFiles: number;\n private logDir: string;\n private ringBuffer: LogRingBuffer;\n\n constructor(logDir: string, options: LoggerOptions = {}) {\n this.logDir = logDir;\n this.logPath = path.join(logDir, 'daemon.log');\n this.level = options.level ?? 'info';\n this.maxSize = options.maxSize ?? 5_242_880;\n this.maxFiles = options.maxFiles ?? 3;\n this.ringBuffer = new LogRingBuffer();\n\n fs.mkdirSync(logDir, { recursive: true });\n this.fd = fs.openSync(this.logPath, 'a');\n try {\n this.currentSize = fs.fstatSync(this.fd).size;\n } catch {\n this.currentSize = 0;\n }\n }\n\n debug(component: string, message: string, data?: Record<string, unknown>): void {\n this.write('debug', component, message, data);\n }\n\n info(component: string, message: string, data?: Record<string, unknown>): void {\n this.write('info', component, message, data);\n }\n\n warn(component: string, message: string, data?: Record<string, unknown>): void {\n this.write('warn', component, message, data);\n }\n\n error(component: string, message: string, data?: Record<string, unknown>): void {\n this.write('error', component, message, data);\n }\n\n /** Dispatch a log entry by dynamic level string. */\n log(level: string, component: string, message: string, data?: Record<string, unknown>): void {\n if (level in LEVEL_ORDER) {\n this.write(level as LogLevel, component, message, data);\n }\n }\n\n close(): void {\n if (this.fd !== null) {\n fs.closeSync(this.fd);\n this.fd = null;\n }\n }\n\n getRingBuffer(): LogRingBuffer {\n return this.ringBuffer;\n }\n\n private write(level: LogLevel, component: string, message: string, data?: Record<string, unknown>): void {\n if (LEVEL_ORDER[level] < LEVEL_ORDER[this.level]) return;\n\n const entry: LogEntry = {\n timestamp: new Date().toISOString(),\n level,\n component,\n message,\n ...data,\n };\n\n this.ringBuffer.push(entry);\n\n const line = JSON.stringify(entry) + '\\n';\n const bytes = Buffer.byteLength(line);\n\n if (this.currentSize + bytes > this.maxSize) {\n this.rotate();\n }\n\n if (this.fd !== null) {\n fs.writeSync(this.fd, line);\n this.currentSize += bytes;\n }\n }\n\n private rotate(): void {\n this.close();\n\n for (let i = this.maxFiles - 1; i >= 1; i--) {\n const from = path.join(this.logDir, `daemon.${i}.log`);\n const to = path.join(this.logDir, `daemon.${i + 1}.log`);\n if (fs.existsSync(from)) {\n if (i + 1 > this.maxFiles) {\n fs.unlinkSync(from);\n } else {\n fs.renameSync(from, to);\n }\n }\n }\n\n if (fs.existsSync(this.logPath)) {\n fs.renameSync(this.logPath, path.join(this.logDir, 'daemon.1.log'));\n }\n\n this.fd = fs.openSync(this.logPath, 'a');\n this.currentSize = 0;\n }\n}\n","import type { LogEntry, LogLevel } from './logger.js';\nimport { LEVEL_ORDER } from './logger.js';\n\nconst LOG_RING_BUFFER_CAPACITY = 5000;\nconst LOG_QUERY_DEFAULT_LIMIT = 100;\n\ninterface LogQueryResult {\n entries: LogEntry[];\n cursor: string;\n cursor_reset?: boolean;\n}\n\ninterface LogQueryOptions {\n level?: LogLevel;\n component?: string;\n limit?: number;\n}\n\nexport class LogRingBuffer {\n private buffer: LogEntry[];\n private head = 0;\n private count = 0;\n private sequence = 0;\n private startSequence = 0;\n private readonly capacity: number;\n\n constructor(capacity = LOG_RING_BUFFER_CAPACITY) {\n this.capacity = capacity;\n this.buffer = new Array(capacity);\n }\n\n push(entry: LogEntry): void {\n this.buffer[this.head] = entry;\n this.head = (this.head + 1) % this.capacity;\n if (this.count < this.capacity) {\n this.count++;\n } else {\n this.startSequence++;\n }\n this.sequence++;\n }\n\n since(cursor: string | null, options?: LogQueryOptions): LogQueryResult {\n const limit = options?.limit ?? LOG_QUERY_DEFAULT_LIMIT;\n const minLevel = options?.level ? LEVEL_ORDER[options.level] : 0;\n\n let startIdx = 0;\n let cursorReset = false;\n\n if (cursor !== null) {\n const seq = parseInt(cursor, 10);\n if (isNaN(seq) || seq < this.startSequence) {\n cursorReset = true;\n startIdx = 0;\n } else {\n startIdx = seq - this.startSequence;\n }\n } else {\n // No cursor: return last `limit` entries\n startIdx = Math.max(0, this.count - limit);\n }\n\n const entries: LogEntry[] = [];\n for (let i = startIdx; i < this.count && entries.length < limit; i++) {\n const bufIdx = (this.head - this.count + i + this.capacity) % this.capacity;\n const entry = this.buffer[bufIdx];\n if (entry && LEVEL_ORDER[entry.level as LogLevel] >= minLevel) {\n if (options?.component && entry.component !== options.component) continue;\n entries.push(entry);\n }\n }\n\n const result: LogQueryResult = {\n entries,\n cursor: String(this.sequence),\n };\n if (cursorReset) result.cursor_reset = true;\n return result;\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/chunk-OEGZ5YTJ.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
AgentRegistry
|
|
4
|
-
} from "./chunk-F7GAYVWF.js";
|
|
5
|
-
|
|
6
|
-
// src/native-deps.ts
|
|
7
|
-
import { execFileSync } from "child_process";
|
|
8
|
-
import { createRequire } from "module";
|
|
9
|
-
import path from "path";
|
|
10
|
-
import fs from "fs";
|
|
11
|
-
var NATIVE_PACKAGES = ["better-sqlite3", "sqlite-vec"];
|
|
12
|
-
function findPluginRoot() {
|
|
13
|
-
const fromRegistry = new AgentRegistry().resolvePluginRoot();
|
|
14
|
-
if (fromRegistry) return fromRegistry;
|
|
15
|
-
let dir = path.dirname(new URL(import.meta.url).pathname);
|
|
16
|
-
for (let i = 0; i < 5; i++) {
|
|
17
|
-
if (fs.existsSync(path.join(dir, "package.json"))) return dir;
|
|
18
|
-
dir = path.dirname(dir);
|
|
19
|
-
}
|
|
20
|
-
return process.cwd();
|
|
21
|
-
}
|
|
22
|
-
function ensureNativeDeps() {
|
|
23
|
-
const pluginRoot = findPluginRoot();
|
|
24
|
-
const require2 = createRequire(path.join(pluginRoot, "node_modules", ".package.json"));
|
|
25
|
-
const missing = [];
|
|
26
|
-
for (const pkg of NATIVE_PACKAGES) {
|
|
27
|
-
try {
|
|
28
|
-
require2.resolve(pkg);
|
|
29
|
-
} catch {
|
|
30
|
-
missing.push(pkg);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
if (missing.length === 0) return;
|
|
34
|
-
const nodeModulesDir = path.join(pluginRoot, "node_modules");
|
|
35
|
-
if (!fs.existsSync(nodeModulesDir)) {
|
|
36
|
-
fs.mkdirSync(nodeModulesDir, { recursive: true });
|
|
37
|
-
}
|
|
38
|
-
try {
|
|
39
|
-
execFileSync("npm", ["install", "--no-save", "--no-package-lock", ...missing], {
|
|
40
|
-
cwd: pluginRoot,
|
|
41
|
-
stdio: "pipe",
|
|
42
|
-
timeout: 12e4
|
|
43
|
-
});
|
|
44
|
-
} catch (error) {
|
|
45
|
-
const msg = error.message;
|
|
46
|
-
process.stderr.write(`[myco] Failed to install native dependencies: ${msg}
|
|
47
|
-
`);
|
|
48
|
-
process.stderr.write(`[myco] You can install them manually: cd ${pluginRoot} && npm install ${missing.join(" ")}
|
|
49
|
-
`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export {
|
|
54
|
-
ensureNativeDeps
|
|
55
|
-
};
|
|
56
|
-
//# sourceMappingURL=chunk-OEGZ5YTJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/native-deps.ts"],"sourcesContent":["/**\n * Ensures native npm dependencies (better-sqlite3, sqlite-vec) are available.\n *\n * When the plugin is installed from a marketplace, only the bundled\n * JS files are present in the cache directory — node_modules is stripped.\n * Native modules cannot be bundled by tsup/esbuild, so we install them on\n * first use into the plugin's cache directory.\n */\nimport { execFileSync } from 'node:child_process';\nimport { createRequire } from 'node:module';\nimport path from 'node:path';\nimport fs from 'node:fs';\nimport { AgentRegistry } from './agents/registry.js';\n\nconst NATIVE_PACKAGES = ['better-sqlite3', 'sqlite-vec'] as const;\n\n/**\n * Detect the plugin root via the active agent's env var (CLAUDE_PLUGIN_ROOT,\n * CURSOR_PLUGIN_ROOT, etc.), falling back to walking up from this file.\n */\nfunction findPluginRoot(): string {\n const fromRegistry = new AgentRegistry().resolvePluginRoot();\n if (fromRegistry) return fromRegistry;\n\n // Fallback: walk up from dist/src/ to find package.json\n let dir = path.dirname(new URL(import.meta.url).pathname);\n for (let i = 0; i < 5; i++) {\n if (fs.existsSync(path.join(dir, 'package.json'))) return dir;\n dir = path.dirname(dir);\n }\n return process.cwd();\n}\n\nexport function ensureNativeDeps(): void {\n const pluginRoot = findPluginRoot();\n const require = createRequire(path.join(pluginRoot, 'node_modules', '.package.json'));\n\n const missing: string[] = [];\n for (const pkg of NATIVE_PACKAGES) {\n try {\n require.resolve(pkg);\n } catch {\n missing.push(pkg);\n }\n }\n\n if (missing.length === 0) return;\n\n const nodeModulesDir = path.join(pluginRoot, 'node_modules');\n if (!fs.existsSync(nodeModulesDir)) {\n fs.mkdirSync(nodeModulesDir, { recursive: true });\n }\n\n try {\n execFileSync('npm', ['install', '--no-save', '--no-package-lock', ...missing], {\n cwd: pluginRoot,\n stdio: 'pipe',\n timeout: 120_000,\n });\n } catch (error) {\n const msg = (error as Error).message;\n process.stderr.write(`[myco] Failed to install native dependencies: ${msg}\\n`);\n process.stderr.write(`[myco] You can install them manually: cd ${pluginRoot} && npm install ${missing.join(' ')}\\n`);\n }\n}\n"],"mappings":";;;;;;AAQA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,OAAO,UAAU;AACjB,OAAO,QAAQ;AAGf,IAAM,kBAAkB,CAAC,kBAAkB,YAAY;AAMvD,SAAS,iBAAyB;AAChC,QAAM,eAAe,IAAI,cAAc,EAAE,kBAAkB;AAC3D,MAAI,aAAc,QAAO;AAGzB,MAAI,MAAM,KAAK,QAAQ,IAAI,IAAI,YAAY,GAAG,EAAE,QAAQ;AACxD,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,QAAI,GAAG,WAAW,KAAK,KAAK,KAAK,cAAc,CAAC,EAAG,QAAO;AAC1D,UAAM,KAAK,QAAQ,GAAG;AAAA,EACxB;AACA,SAAO,QAAQ,IAAI;AACrB;AAEO,SAAS,mBAAyB;AACvC,QAAM,aAAa,eAAe;AAClC,QAAMA,WAAU,cAAc,KAAK,KAAK,YAAY,gBAAgB,eAAe,CAAC;AAEpF,QAAM,UAAoB,CAAC;AAC3B,aAAW,OAAO,iBAAiB;AACjC,QAAI;AACF,MAAAA,SAAQ,QAAQ,GAAG;AAAA,IACrB,QAAQ;AACN,cAAQ,KAAK,GAAG;AAAA,IAClB;AAAA,EACF;AAEA,MAAI,QAAQ,WAAW,EAAG;AAE1B,QAAM,iBAAiB,KAAK,KAAK,YAAY,cAAc;AAC3D,MAAI,CAAC,GAAG,WAAW,cAAc,GAAG;AAClC,OAAG,UAAU,gBAAgB,EAAE,WAAW,KAAK,CAAC;AAAA,EAClD;AAEA,MAAI;AACF,iBAAa,OAAO,CAAC,WAAW,aAAa,qBAAqB,GAAG,OAAO,GAAG;AAAA,MAC7E,KAAK;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,IACX,CAAC;AAAA,EACH,SAAS,OAAO;AACd,UAAM,MAAO,MAAgB;AAC7B,YAAQ,OAAO,MAAM,iDAAiD,GAAG;AAAA,CAAI;AAC7E,YAAQ,OAAO,MAAM,4CAA4C,UAAU,mBAAmB,QAAQ,KAAK,GAAG,CAAC;AAAA,CAAI;AAAA,EACrH;AACF;","names":["require"]}
|
package/dist/chunk-P723N2LP.js
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
parseStringFlag
|
|
4
|
-
} from "./chunk-SAKJMNSR.js";
|
|
5
|
-
import {
|
|
6
|
-
MycoConfigSchema,
|
|
7
|
-
require_dist
|
|
8
|
-
} from "./chunk-ERG2IEWX.js";
|
|
9
|
-
import {
|
|
10
|
-
__toESM
|
|
11
|
-
} from "./chunk-PZUWP5VK.js";
|
|
12
|
-
|
|
13
|
-
// src/cli/setup-digest.ts
|
|
14
|
-
var import_yaml = __toESM(require_dist(), 1);
|
|
15
|
-
import fs from "fs";
|
|
16
|
-
import path from "path";
|
|
17
|
-
var CONFIG_FILENAME = "myco.yaml";
|
|
18
|
-
var DAEMON_STATE_FILENAME = "daemon.json";
|
|
19
|
-
var USAGE = `Usage: myco setup-digest [options]
|
|
20
|
-
|
|
21
|
-
Configure digest (continuous reasoning) settings.
|
|
22
|
-
|
|
23
|
-
Options:
|
|
24
|
-
--enabled <true|false> Enable/disable digest (default: true)
|
|
25
|
-
--tiers <1500,3000,...> Comma-separated tier list
|
|
26
|
-
--inject-tier <number|null> Tier to auto-inject at session start
|
|
27
|
-
--provider <name> LLM provider for digest (null = inherit)
|
|
28
|
-
--model <name> Model for digest (null = inherit)
|
|
29
|
-
--base-url <url> Provider base URL (null = inherit)
|
|
30
|
-
--context-window <number> Context window for digest operations
|
|
31
|
-
--keep-alive <duration> Keep model loaded (Ollama, e.g. "30m")
|
|
32
|
-
--gpu-kv-cache <true|false> Offload KV cache to GPU (LM Studio)
|
|
33
|
-
--active-interval <seconds> Metabolism active interval
|
|
34
|
-
--dormancy-threshold <seconds> Time before dormancy
|
|
35
|
-
--max-notes <number> Max substrate notes per cycle
|
|
36
|
-
--extraction-tokens <number> Max tokens for spore extraction
|
|
37
|
-
--summary-tokens <number> Max tokens for session summaries
|
|
38
|
-
--title-tokens <number> Max tokens for session titles
|
|
39
|
-
--classification-tokens <number> Max tokens for artifact classification
|
|
40
|
-
--show Show current settings and exit
|
|
41
|
-
`;
|
|
42
|
-
async function run(args, vaultDir) {
|
|
43
|
-
const configPath = path.join(vaultDir, CONFIG_FILENAME);
|
|
44
|
-
const raw = fs.readFileSync(configPath, "utf-8");
|
|
45
|
-
const doc = import_yaml.default.parse(raw);
|
|
46
|
-
if (args.includes("--show")) {
|
|
47
|
-
const config = MycoConfigSchema.parse(doc);
|
|
48
|
-
console.log(JSON.stringify({
|
|
49
|
-
digest: config.digest,
|
|
50
|
-
capture: {
|
|
51
|
-
extraction_max_tokens: config.capture.extraction_max_tokens,
|
|
52
|
-
summary_max_tokens: config.capture.summary_max_tokens,
|
|
53
|
-
title_max_tokens: config.capture.title_max_tokens,
|
|
54
|
-
classification_max_tokens: config.capture.classification_max_tokens
|
|
55
|
-
}
|
|
56
|
-
}, null, 2));
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
if (args.length === 0) {
|
|
60
|
-
console.log(USAGE);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (!doc.digest || typeof doc.digest !== "object") {
|
|
64
|
-
doc.digest = {};
|
|
65
|
-
}
|
|
66
|
-
const digest = doc.digest;
|
|
67
|
-
if (!digest.intelligence || typeof digest.intelligence !== "object") {
|
|
68
|
-
digest.intelligence = {};
|
|
69
|
-
}
|
|
70
|
-
if (!digest.metabolism || typeof digest.metabolism !== "object") {
|
|
71
|
-
digest.metabolism = {};
|
|
72
|
-
}
|
|
73
|
-
if (!digest.substrate || typeof digest.substrate !== "object") {
|
|
74
|
-
digest.substrate = {};
|
|
75
|
-
}
|
|
76
|
-
if (!doc.capture || typeof doc.capture !== "object") {
|
|
77
|
-
doc.capture = {};
|
|
78
|
-
}
|
|
79
|
-
const intelligence = digest.intelligence;
|
|
80
|
-
const metabolism = digest.metabolism;
|
|
81
|
-
const substrate = digest.substrate;
|
|
82
|
-
const capture = doc.capture;
|
|
83
|
-
const enabled = parseStringFlag(args, "--enabled");
|
|
84
|
-
if (enabled !== void 0) digest.enabled = enabled === "true";
|
|
85
|
-
const tiers = parseStringFlag(args, "--tiers");
|
|
86
|
-
if (tiers !== void 0) {
|
|
87
|
-
digest.tiers = tiers.split(",").map((t) => parseInt(t.trim(), 10));
|
|
88
|
-
}
|
|
89
|
-
const injectTier = parseStringFlag(args, "--inject-tier");
|
|
90
|
-
if (injectTier !== void 0) {
|
|
91
|
-
digest.inject_tier = injectTier === "null" ? null : parseInt(injectTier, 10);
|
|
92
|
-
}
|
|
93
|
-
const provider = parseStringFlag(args, "--provider");
|
|
94
|
-
if (provider !== void 0) intelligence.provider = provider === "null" ? null : provider;
|
|
95
|
-
const model = parseStringFlag(args, "--model");
|
|
96
|
-
if (model !== void 0) intelligence.model = model === "null" ? null : model;
|
|
97
|
-
const baseUrl = parseStringFlag(args, "--base-url");
|
|
98
|
-
if (baseUrl !== void 0) intelligence.base_url = baseUrl === "null" ? null : baseUrl;
|
|
99
|
-
const contextWindow = parseStringFlag(args, "--context-window");
|
|
100
|
-
if (contextWindow !== void 0) intelligence.context_window = parseInt(contextWindow, 10);
|
|
101
|
-
const keepAlive = parseStringFlag(args, "--keep-alive");
|
|
102
|
-
if (keepAlive !== void 0) intelligence.keep_alive = keepAlive === "null" ? null : keepAlive;
|
|
103
|
-
const gpuKvCache = parseStringFlag(args, "--gpu-kv-cache");
|
|
104
|
-
if (gpuKvCache !== void 0) intelligence.gpu_kv_cache = gpuKvCache === "true";
|
|
105
|
-
const activeInterval = parseStringFlag(args, "--active-interval");
|
|
106
|
-
if (activeInterval !== void 0) metabolism.active_interval = parseInt(activeInterval, 10);
|
|
107
|
-
const dormancyThreshold = parseStringFlag(args, "--dormancy-threshold");
|
|
108
|
-
if (dormancyThreshold !== void 0) metabolism.dormancy_threshold = parseInt(dormancyThreshold, 10);
|
|
109
|
-
const maxNotes = parseStringFlag(args, "--max-notes");
|
|
110
|
-
if (maxNotes !== void 0) substrate.max_notes_per_cycle = parseInt(maxNotes, 10);
|
|
111
|
-
const extractionTokens = parseStringFlag(args, "--extraction-tokens");
|
|
112
|
-
if (extractionTokens !== void 0) capture.extraction_max_tokens = parseInt(extractionTokens, 10);
|
|
113
|
-
const summaryTokens = parseStringFlag(args, "--summary-tokens");
|
|
114
|
-
if (summaryTokens !== void 0) capture.summary_max_tokens = parseInt(summaryTokens, 10);
|
|
115
|
-
const titleTokens = parseStringFlag(args, "--title-tokens");
|
|
116
|
-
if (titleTokens !== void 0) capture.title_max_tokens = parseInt(titleTokens, 10);
|
|
117
|
-
const classificationTokens = parseStringFlag(args, "--classification-tokens");
|
|
118
|
-
if (classificationTokens !== void 0) capture.classification_max_tokens = parseInt(classificationTokens, 10);
|
|
119
|
-
const result = MycoConfigSchema.safeParse(doc);
|
|
120
|
-
if (!result.success) {
|
|
121
|
-
console.error("Validation error:");
|
|
122
|
-
for (const issue of result.error.issues) {
|
|
123
|
-
console.error(` ${issue.path.join(".")}: ${issue.message}`);
|
|
124
|
-
}
|
|
125
|
-
process.exit(1);
|
|
126
|
-
}
|
|
127
|
-
fs.writeFileSync(configPath, import_yaml.default.stringify(doc), "utf-8");
|
|
128
|
-
console.log("Digest configuration updated.");
|
|
129
|
-
const updated = MycoConfigSchema.parse(doc);
|
|
130
|
-
console.log(JSON.stringify({
|
|
131
|
-
digest: updated.digest,
|
|
132
|
-
capture: {
|
|
133
|
-
extraction_max_tokens: updated.capture.extraction_max_tokens,
|
|
134
|
-
summary_max_tokens: updated.capture.summary_max_tokens,
|
|
135
|
-
title_max_tokens: updated.capture.title_max_tokens,
|
|
136
|
-
classification_max_tokens: updated.capture.classification_max_tokens
|
|
137
|
-
}
|
|
138
|
-
}, null, 2));
|
|
139
|
-
if (fs.existsSync(path.join(vaultDir, DAEMON_STATE_FILENAME))) {
|
|
140
|
-
console.log("\nNote: restart the daemon for changes to take effect (myco restart)");
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
export {
|
|
145
|
-
run
|
|
146
|
-
};
|
|
147
|
-
//# sourceMappingURL=chunk-P723N2LP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/setup-digest.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport YAML from 'yaml';\nimport { MycoConfigSchema } from '../config/schema.js';\nimport { parseStringFlag } from './shared.js';\n\nconst CONFIG_FILENAME = 'myco.yaml';\nconst DAEMON_STATE_FILENAME = 'daemon.json';\n\nconst USAGE = `Usage: myco setup-digest [options]\n\nConfigure digest (continuous reasoning) settings.\n\nOptions:\n --enabled <true|false> Enable/disable digest (default: true)\n --tiers <1500,3000,...> Comma-separated tier list\n --inject-tier <number|null> Tier to auto-inject at session start\n --provider <name> LLM provider for digest (null = inherit)\n --model <name> Model for digest (null = inherit)\n --base-url <url> Provider base URL (null = inherit)\n --context-window <number> Context window for digest operations\n --keep-alive <duration> Keep model loaded (Ollama, e.g. \"30m\")\n --gpu-kv-cache <true|false> Offload KV cache to GPU (LM Studio)\n --active-interval <seconds> Metabolism active interval\n --dormancy-threshold <seconds> Time before dormancy\n --max-notes <number> Max substrate notes per cycle\n --extraction-tokens <number> Max tokens for spore extraction\n --summary-tokens <number> Max tokens for session summaries\n --title-tokens <number> Max tokens for session titles\n --classification-tokens <number> Max tokens for artifact classification\n --show Show current settings and exit\n`;\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n const configPath = path.join(vaultDir, CONFIG_FILENAME);\n const raw = fs.readFileSync(configPath, 'utf-8');\n const doc = YAML.parse(raw) as Record<string, unknown>;\n\n // Show current settings\n if (args.includes('--show')) {\n const config = MycoConfigSchema.parse(doc);\n console.log(JSON.stringify({\n digest: config.digest,\n capture: {\n extraction_max_tokens: config.capture.extraction_max_tokens,\n summary_max_tokens: config.capture.summary_max_tokens,\n title_max_tokens: config.capture.title_max_tokens,\n classification_max_tokens: config.capture.classification_max_tokens,\n },\n }, null, 2));\n return;\n }\n\n // No flags = show usage\n if (args.length === 0) {\n console.log(USAGE);\n return;\n }\n\n // Ensure digest section exists\n if (!doc.digest || typeof doc.digest !== 'object') {\n doc.digest = {};\n }\n const digest = doc.digest as Record<string, unknown>;\n\n // Ensure nested sections exist\n if (!digest.intelligence || typeof digest.intelligence !== 'object') {\n digest.intelligence = {};\n }\n if (!digest.metabolism || typeof digest.metabolism !== 'object') {\n digest.metabolism = {};\n }\n if (!digest.substrate || typeof digest.substrate !== 'object') {\n digest.substrate = {};\n }\n if (!doc.capture || typeof doc.capture !== 'object') {\n doc.capture = {};\n }\n\n const intelligence = digest.intelligence as Record<string, unknown>;\n const metabolism = digest.metabolism as Record<string, unknown>;\n const substrate = digest.substrate as Record<string, unknown>;\n const capture = doc.capture as Record<string, unknown>;\n\n // Parse and apply flags\n const enabled = parseStringFlag(args, '--enabled');\n if (enabled !== undefined) digest.enabled = enabled === 'true';\n\n const tiers = parseStringFlag(args, '--tiers');\n if (tiers !== undefined) {\n digest.tiers = tiers.split(',').map((t) => parseInt(t.trim(), 10));\n }\n\n const injectTier = parseStringFlag(args, '--inject-tier');\n if (injectTier !== undefined) {\n digest.inject_tier = injectTier === 'null' ? null : parseInt(injectTier, 10);\n }\n\n const provider = parseStringFlag(args, '--provider');\n if (provider !== undefined) intelligence.provider = provider === 'null' ? null : provider;\n\n const model = parseStringFlag(args, '--model');\n if (model !== undefined) intelligence.model = model === 'null' ? null : model;\n\n const baseUrl = parseStringFlag(args, '--base-url');\n if (baseUrl !== undefined) intelligence.base_url = baseUrl === 'null' ? null : baseUrl;\n\n const contextWindow = parseStringFlag(args, '--context-window');\n if (contextWindow !== undefined) intelligence.context_window = parseInt(contextWindow, 10);\n\n const keepAlive = parseStringFlag(args, '--keep-alive');\n if (keepAlive !== undefined) intelligence.keep_alive = keepAlive === 'null' ? null : keepAlive;\n\n const gpuKvCache = parseStringFlag(args, '--gpu-kv-cache');\n if (gpuKvCache !== undefined) intelligence.gpu_kv_cache = gpuKvCache === 'true';\n\n const activeInterval = parseStringFlag(args, '--active-interval');\n if (activeInterval !== undefined) metabolism.active_interval = parseInt(activeInterval, 10);\n\n const dormancyThreshold = parseStringFlag(args, '--dormancy-threshold');\n if (dormancyThreshold !== undefined) metabolism.dormancy_threshold = parseInt(dormancyThreshold, 10);\n\n const maxNotes = parseStringFlag(args, '--max-notes');\n if (maxNotes !== undefined) substrate.max_notes_per_cycle = parseInt(maxNotes, 10);\n\n const extractionTokens = parseStringFlag(args, '--extraction-tokens');\n if (extractionTokens !== undefined) capture.extraction_max_tokens = parseInt(extractionTokens, 10);\n\n const summaryTokens = parseStringFlag(args, '--summary-tokens');\n if (summaryTokens !== undefined) capture.summary_max_tokens = parseInt(summaryTokens, 10);\n\n const titleTokens = parseStringFlag(args, '--title-tokens');\n if (titleTokens !== undefined) capture.title_max_tokens = parseInt(titleTokens, 10);\n\n const classificationTokens = parseStringFlag(args, '--classification-tokens');\n if (classificationTokens !== undefined) capture.classification_max_tokens = parseInt(classificationTokens, 10);\n\n // Validate the full config\n const result = MycoConfigSchema.safeParse(doc);\n if (!result.success) {\n console.error('Validation error:');\n for (const issue of result.error.issues) {\n console.error(` ${issue.path.join('.')}: ${issue.message}`);\n }\n process.exit(1);\n }\n\n // Write back\n fs.writeFileSync(configPath, YAML.stringify(doc), 'utf-8');\n console.log('Digest configuration updated.');\n\n // Show what was set\n const updated = MycoConfigSchema.parse(doc);\n console.log(JSON.stringify({\n digest: updated.digest,\n capture: {\n extraction_max_tokens: updated.capture.extraction_max_tokens,\n summary_max_tokens: updated.capture.summary_max_tokens,\n title_max_tokens: updated.capture.title_max_tokens,\n classification_max_tokens: updated.capture.classification_max_tokens,\n },\n }, null, 2));\n\n if (fs.existsSync(path.join(vaultDir, DAEMON_STATE_FILENAME))) {\n console.log('\\nNote: restart the daemon for changes to take effect (myco restart)');\n }\n}\n"],"mappings":"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","names":["YAML"]}
|
package/dist/chunk-RGVBGTD6.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
|
-
|
|
3
|
-
// src/intelligence/embeddings.ts
|
|
4
|
-
async function generateEmbedding(backend, text) {
|
|
5
|
-
const raw = await backend.embed(text);
|
|
6
|
-
return {
|
|
7
|
-
embedding: normalize(raw.embedding),
|
|
8
|
-
model: raw.model,
|
|
9
|
-
dimensions: raw.dimensions
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
function normalize(vec) {
|
|
13
|
-
const magnitude = Math.sqrt(vec.reduce((sum, v) => sum + v * v, 0));
|
|
14
|
-
if (magnitude === 0) return vec;
|
|
15
|
-
return vec.map((v) => v / magnitude);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export {
|
|
19
|
-
generateEmbedding
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=chunk-RGVBGTD6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/intelligence/embeddings.ts"],"sourcesContent":["import type { EmbeddingProvider, EmbeddingResponse } from './llm.js';\n\nexport async function generateEmbedding(\n backend: EmbeddingProvider,\n text: string,\n): Promise<EmbeddingResponse> {\n const raw = await backend.embed(text);\n return {\n embedding: normalize(raw.embedding),\n model: raw.model,\n dimensions: raw.dimensions,\n };\n}\n\nfunction normalize(vec: number[]): number[] {\n const magnitude = Math.sqrt(vec.reduce((sum, v) => sum + v * v, 0));\n if (magnitude === 0) return vec;\n return vec.map((v) => v / magnitude);\n}\n"],"mappings":";;;AAEA,eAAsB,kBACpB,SACA,MAC4B;AAC5B,QAAM,MAAM,MAAM,QAAQ,MAAM,IAAI;AACpC,SAAO;AAAA,IACL,WAAW,UAAU,IAAI,SAAS;AAAA,IAClC,OAAO,IAAI;AAAA,IACX,YAAY,IAAI;AAAA,EAClB;AACF;AAEA,SAAS,UAAU,KAAyB;AAC1C,QAAM,YAAY,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC;AAClE,MAAI,cAAc,EAAG,QAAO;AAC5B,SAAO,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;AACrC;","names":[]}
|