@goondocks/myco 0.20.0 → 0.20.2
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/dist/{agent-run-4HUXVRHW.js → agent-run-X25Q2A6T.js} +6 -6
- package/dist/{agent-tasks-JF45ELB6.js → agent-tasks-7B6OFERB.js} +6 -6
- package/dist/{chunk-POR75WM6.js → chunk-2PDWCDKY.js} +2 -2
- package/dist/{chunk-57O67XVF.js → chunk-6X2ERTQV.js} +2 -2
- package/dist/{chunk-4M7EWPIA.js → chunk-CCRGY3QW.js} +4 -3
- package/dist/{chunk-4M7EWPIA.js.map → chunk-CCRGY3QW.js.map} +1 -1
- package/dist/{chunk-P3DN5EWW.js → chunk-JZGN33AY.js} +5 -5
- package/dist/chunk-JZGN33AY.js.map +1 -0
- package/dist/{chunk-YSNIAJ5D.js → chunk-KESLPBKV.js} +3 -3
- package/dist/{chunk-SRXTSI25.js → chunk-OD4AA7PV.js} +2 -2
- package/dist/chunk-OD4AA7PV.js.map +1 -0
- package/dist/{chunk-4LCIKVDM.js → chunk-Q36VMZST.js} +4 -4
- package/dist/chunk-Q36VMZST.js.map +1 -0
- package/dist/{chunk-L6XFAJIF.js → chunk-UYMFCYBF.js} +57 -7
- package/dist/chunk-UYMFCYBF.js.map +1 -0
- package/dist/{chunk-UOQQENDW.js → chunk-VVNL26WX.js} +2 -2
- package/dist/{chunk-QS5TWZBL.js → chunk-XATDZX7U.js} +2 -2
- package/dist/{chunk-ACQ2AIEM.js → chunk-XG5RRUYF.js} +2 -2
- package/dist/{cli-AHTINAHY.js → cli-GGPWH4UO.js} +38 -38
- package/dist/{client-LHENCAV3.js → client-YXQUTXVZ.js} +3 -3
- package/dist/{config-XPV5GDE4.js → config-OMCYHG2S.js} +2 -2
- package/dist/{doctor-XPCF5HV5.js → doctor-5JXJ36KA.js} +9 -9
- package/dist/doctor-5JXJ36KA.js.map +1 -0
- package/dist/{executor-ACDHGTRH.js → executor-HWW2QNZQ.js} +10 -10
- package/dist/{init-V3KCC36O.js → init-LMYOVZAV.js} +12 -16
- package/dist/init-LMYOVZAV.js.map +1 -0
- package/dist/{installer-ZNK4JSQA.js → installer-FS257JRZ.js} +3 -3
- package/dist/{loader-H7OFASVC.js → loader-CQYTFHEW.js} +2 -2
- package/dist/{loader-TSB5M7FD.js → loader-NOMBJUPW.js} +2 -2
- package/dist/{main-5S4MDCIO.js → main-YTBVRTBI.js} +234 -115
- package/dist/main-YTBVRTBI.js.map +1 -0
- package/dist/{open-AB5ULZIB.js → open-HG2DX6RN.js} +6 -6
- package/dist/{post-compact-P2B7C7FE.js → post-compact-JSECI44W.js} +4 -4
- package/dist/{post-tool-use-LXL6NXDS.js → post-tool-use-POGPTJBA.js} +3 -3
- package/dist/{post-tool-use-failure-WAYVVKGR.js → post-tool-use-failure-OT7BFWQW.js} +4 -4
- package/dist/{pre-compact-BCXUCF4V.js → pre-compact-OXVODKH4.js} +4 -4
- package/dist/{registry-MGJSJBAS.js → registry-U4CHXK6R.js} +3 -3
- package/dist/{remove-KAPX5NT2.js → remove-N7ZPELFU.js} +6 -6
- package/dist/{restart-HQO36FTG.js → restart-ADG5GBTB.js} +7 -7
- package/dist/{search-YOMOKAAI.js → search-AHZEUNRR.js} +6 -6
- package/dist/{server-2N23P6F2.js → server-AGVYZVP5.js} +3 -3
- package/dist/{session-WW2JLHPX.js → session-6IU4AXYP.js} +6 -6
- package/dist/{session-end-4WRTIBVQ.js → session-end-FT27DWYZ.js} +3 -3
- package/dist/{session-start-HRWTZXQR.js → session-start-LAFICHII.js} +6 -6
- package/dist/{session-start-HRWTZXQR.js.map → session-start-LAFICHII.js.map} +1 -1
- package/dist/{setup-llm-HFWSBUAF.js → setup-llm-77MP4I2G.js} +6 -6
- package/dist/src/agent/definitions/tasks/full-intelligence.yaml +1 -1
- package/dist/src/agent/definitions/tasks/skill-evolve.yaml +1 -0
- package/dist/src/agent/definitions/tasks/skill-generate.yaml +1 -0
- package/dist/src/agent/definitions/tasks/skill-survey.yaml +23 -7
- package/dist/src/cli.js +1 -1
- package/dist/src/daemon/main.js +1 -1
- package/dist/src/hooks/post-tool-use.js +1 -1
- package/dist/src/hooks/session-end.js +1 -1
- package/dist/src/hooks/session-start.js +1 -1
- package/dist/src/hooks/stop.js +1 -1
- package/dist/src/hooks/user-prompt-submit.js +1 -1
- package/dist/src/mcp/server.js +1 -1
- package/dist/{stats-7A4CJ4MS.js → stats-NVPWOYTE.js} +7 -7
- package/dist/{stop-R2GDHMRA.js → stop-ZPIKVLH4.js} +3 -3
- package/dist/{stop-failure-773KR4VZ.js → stop-failure-2PX67YJC.js} +4 -4
- package/dist/{subagent-start-IDECNBHW.js → subagent-start-UUE6EHQD.js} +4 -4
- package/dist/{subagent-stop-3JH7DR2S.js → subagent-stop-KQWWWPE6.js} +4 -4
- package/dist/{task-completed-AYVHPHDR.js → task-completed-WMHOFQ7B.js} +4 -4
- package/dist/{team-3JKF7VAD.js → team-LRZ6GTQK.js} +3 -3
- package/dist/{update-YWYW55JM.js → update-O6V4RC4W.js} +6 -6
- package/dist/{user-prompt-submit-YELSR6XI.js → user-prompt-submit-N36KUPHI.js} +3 -3
- package/dist/{verify-JS44DVKJ.js → verify-LXPV7NYG.js} +4 -4
- package/dist/verify-LXPV7NYG.js.map +1 -0
- package/dist/{version-K5NETYIL.js → version-XMPPJQHR.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-4LCIKVDM.js.map +0 -1
- package/dist/chunk-L6XFAJIF.js.map +0 -1
- package/dist/chunk-P3DN5EWW.js.map +0 -1
- package/dist/chunk-SRXTSI25.js.map +0 -1
- package/dist/doctor-XPCF5HV5.js.map +0 -1
- package/dist/init-V3KCC36O.js.map +0 -1
- package/dist/main-5S4MDCIO.js.map +0 -1
- package/dist/verify-JS44DVKJ.js.map +0 -1
- /package/dist/{agent-run-4HUXVRHW.js.map → agent-run-X25Q2A6T.js.map} +0 -0
- /package/dist/{agent-tasks-JF45ELB6.js.map → agent-tasks-7B6OFERB.js.map} +0 -0
- /package/dist/{chunk-POR75WM6.js.map → chunk-2PDWCDKY.js.map} +0 -0
- /package/dist/{chunk-57O67XVF.js.map → chunk-6X2ERTQV.js.map} +0 -0
- /package/dist/{chunk-YSNIAJ5D.js.map → chunk-KESLPBKV.js.map} +0 -0
- /package/dist/{chunk-UOQQENDW.js.map → chunk-VVNL26WX.js.map} +0 -0
- /package/dist/{chunk-QS5TWZBL.js.map → chunk-XATDZX7U.js.map} +0 -0
- /package/dist/{chunk-ACQ2AIEM.js.map → chunk-XG5RRUYF.js.map} +0 -0
- /package/dist/{cli-AHTINAHY.js.map → cli-GGPWH4UO.js.map} +0 -0
- /package/dist/{client-LHENCAV3.js.map → client-YXQUTXVZ.js.map} +0 -0
- /package/dist/{config-XPV5GDE4.js.map → config-OMCYHG2S.js.map} +0 -0
- /package/dist/{executor-ACDHGTRH.js.map → executor-HWW2QNZQ.js.map} +0 -0
- /package/dist/{installer-ZNK4JSQA.js.map → installer-FS257JRZ.js.map} +0 -0
- /package/dist/{loader-H7OFASVC.js.map → loader-CQYTFHEW.js.map} +0 -0
- /package/dist/{loader-TSB5M7FD.js.map → loader-NOMBJUPW.js.map} +0 -0
- /package/dist/{open-AB5ULZIB.js.map → open-HG2DX6RN.js.map} +0 -0
- /package/dist/{post-compact-P2B7C7FE.js.map → post-compact-JSECI44W.js.map} +0 -0
- /package/dist/{post-tool-use-LXL6NXDS.js.map → post-tool-use-POGPTJBA.js.map} +0 -0
- /package/dist/{post-tool-use-failure-WAYVVKGR.js.map → post-tool-use-failure-OT7BFWQW.js.map} +0 -0
- /package/dist/{pre-compact-BCXUCF4V.js.map → pre-compact-OXVODKH4.js.map} +0 -0
- /package/dist/{registry-MGJSJBAS.js.map → registry-U4CHXK6R.js.map} +0 -0
- /package/dist/{remove-KAPX5NT2.js.map → remove-N7ZPELFU.js.map} +0 -0
- /package/dist/{restart-HQO36FTG.js.map → restart-ADG5GBTB.js.map} +0 -0
- /package/dist/{search-YOMOKAAI.js.map → search-AHZEUNRR.js.map} +0 -0
- /package/dist/{server-2N23P6F2.js.map → server-AGVYZVP5.js.map} +0 -0
- /package/dist/{session-WW2JLHPX.js.map → session-6IU4AXYP.js.map} +0 -0
- /package/dist/{session-end-4WRTIBVQ.js.map → session-end-FT27DWYZ.js.map} +0 -0
- /package/dist/{setup-llm-HFWSBUAF.js.map → setup-llm-77MP4I2G.js.map} +0 -0
- /package/dist/{stats-7A4CJ4MS.js.map → stats-NVPWOYTE.js.map} +0 -0
- /package/dist/{stop-R2GDHMRA.js.map → stop-ZPIKVLH4.js.map} +0 -0
- /package/dist/{stop-failure-773KR4VZ.js.map → stop-failure-2PX67YJC.js.map} +0 -0
- /package/dist/{subagent-start-IDECNBHW.js.map → subagent-start-UUE6EHQD.js.map} +0 -0
- /package/dist/{subagent-stop-3JH7DR2S.js.map → subagent-stop-KQWWWPE6.js.map} +0 -0
- /package/dist/{task-completed-AYVHPHDR.js.map → task-completed-WMHOFQ7B.js.map} +0 -0
- /package/dist/{team-3JKF7VAD.js.map → team-LRZ6GTQK.js.map} +0 -0
- /package/dist/{update-YWYW55JM.js.map → update-O6V4RC4W.js.map} +0 -0
- /package/dist/{user-prompt-submit-YELSR6XI.js.map → user-prompt-submit-N36KUPHI.js.map} +0 -0
- /package/dist/{version-K5NETYIL.js.map → version-XMPPJQHR.js.map} +0 -0
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
} from "./chunk-5NFJTZ64.js";
|
|
5
5
|
import {
|
|
6
6
|
connectToDaemon
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-KESLPBKV.js";
|
|
8
8
|
import "./chunk-SAKJMNSR.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-Q36VMZST.js";
|
|
10
10
|
import "./chunk-FMRZ26U5.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-OD4AA7PV.js";
|
|
12
12
|
import "./chunk-MYX5NCRH.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-VVNL26WX.js";
|
|
14
|
+
import "./chunk-XG5RRUYF.js";
|
|
15
15
|
import "./chunk-LPUQPDC2.js";
|
|
16
16
|
import "./chunk-FLLBJLHM.js";
|
|
17
17
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -41,4 +41,4 @@ async function run(_args, vaultDir) {
|
|
|
41
41
|
export {
|
|
42
42
|
run
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=open-
|
|
44
|
+
//# sourceMappingURL=open-HG2DX6RN.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2PDWCDKY.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
6
|
import "./chunk-DCSGJ7W4.js";
|
|
7
7
|
import "./chunk-ZXZPJJN3.js";
|
|
8
8
|
import "./chunk-CUDIZJY7.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-VVNL26WX.js";
|
|
10
|
+
import "./chunk-XG5RRUYF.js";
|
|
11
11
|
import "./chunk-NGROSFOH.js";
|
|
12
12
|
import "./chunk-LPUQPDC2.js";
|
|
13
13
|
import "./chunk-FLLBJLHM.js";
|
|
@@ -28,4 +28,4 @@ async function main() {
|
|
|
28
28
|
export {
|
|
29
29
|
main
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=post-compact-
|
|
31
|
+
//# sourceMappingURL=post-compact-JSECI44W.js.map
|
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
} from "./chunk-CUDIZJY7.js";
|
|
13
13
|
import {
|
|
14
14
|
DaemonClient
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-VVNL26WX.js";
|
|
16
|
+
import "./chunk-XG5RRUYF.js";
|
|
17
17
|
import "./chunk-NGROSFOH.js";
|
|
18
18
|
import "./chunk-LPUQPDC2.js";
|
|
19
19
|
import {
|
|
@@ -61,4 +61,4 @@ async function main() {
|
|
|
61
61
|
export {
|
|
62
62
|
main
|
|
63
63
|
};
|
|
64
|
-
//# sourceMappingURL=post-tool-use-
|
|
64
|
+
//# sourceMappingURL=post-tool-use-POGPTJBA.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2PDWCDKY.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
6
|
import "./chunk-DCSGJ7W4.js";
|
|
7
7
|
import "./chunk-ZXZPJJN3.js";
|
|
8
8
|
import "./chunk-CUDIZJY7.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-VVNL26WX.js";
|
|
10
|
+
import "./chunk-XG5RRUYF.js";
|
|
11
11
|
import "./chunk-NGROSFOH.js";
|
|
12
12
|
import "./chunk-LPUQPDC2.js";
|
|
13
13
|
import "./chunk-FLLBJLHM.js";
|
|
@@ -30,4 +30,4 @@ async function main() {
|
|
|
30
30
|
export {
|
|
31
31
|
main
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=post-tool-use-failure-
|
|
33
|
+
//# sourceMappingURL=post-tool-use-failure-OT7BFWQW.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
sendEvent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2PDWCDKY.js";
|
|
5
5
|
import "./chunk-V7XG6V6C.js";
|
|
6
6
|
import "./chunk-DCSGJ7W4.js";
|
|
7
7
|
import "./chunk-ZXZPJJN3.js";
|
|
8
8
|
import "./chunk-CUDIZJY7.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-VVNL26WX.js";
|
|
10
|
+
import "./chunk-XG5RRUYF.js";
|
|
11
11
|
import "./chunk-NGROSFOH.js";
|
|
12
12
|
import "./chunk-LPUQPDC2.js";
|
|
13
13
|
import "./chunk-FLLBJLHM.js";
|
|
@@ -27,4 +27,4 @@ async function main() {
|
|
|
27
27
|
export {
|
|
28
28
|
main
|
|
29
29
|
};
|
|
30
|
-
//# sourceMappingURL=pre-compact-
|
|
30
|
+
//# sourceMappingURL=pre-compact-OXVODKH4.js.map
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
loadAllTasks,
|
|
6
6
|
validateTaskName,
|
|
7
7
|
writeUserTask
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-6X2ERTQV.js";
|
|
9
|
+
import "./chunk-CCRGY3QW.js";
|
|
10
10
|
import "./chunk-POEPHBQK.js";
|
|
11
11
|
import "./chunk-MYX5NCRH.js";
|
|
12
12
|
import "./chunk-LPUQPDC2.js";
|
|
@@ -22,4 +22,4 @@ export {
|
|
|
22
22
|
validateTaskName,
|
|
23
23
|
writeUserTask
|
|
24
24
|
};
|
|
25
|
-
//# sourceMappingURL=registry-
|
|
25
|
+
//# sourceMappingURL=registry-U4CHXK6R.js.map
|
|
@@ -1,23 +1,23 @@
|
|
|
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-KESLPBKV.js";
|
|
5
5
|
import {
|
|
6
6
|
parseStringFlag
|
|
7
7
|
} from "./chunk-SAKJMNSR.js";
|
|
8
8
|
import {
|
|
9
9
|
SymbiontInstaller
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-Q36VMZST.js";
|
|
11
11
|
import "./chunk-FMRZ26U5.js";
|
|
12
12
|
import {
|
|
13
13
|
updateConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OD4AA7PV.js";
|
|
15
15
|
import "./chunk-MYX5NCRH.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveVaultDir
|
|
18
18
|
} from "./chunk-CUDIZJY7.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-VVNL26WX.js";
|
|
20
|
+
import "./chunk-XG5RRUYF.js";
|
|
21
21
|
import {
|
|
22
22
|
loadManifests,
|
|
23
23
|
resolvePackageRoot
|
|
@@ -123,4 +123,4 @@ async function run(args) {
|
|
|
123
123
|
export {
|
|
124
124
|
run
|
|
125
125
|
};
|
|
126
|
-
//# sourceMappingURL=remove-
|
|
126
|
+
//# sourceMappingURL=remove-N7ZPELFU.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
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-KESLPBKV.js";
|
|
5
5
|
import "./chunk-SAKJMNSR.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-Q36VMZST.js";
|
|
7
7
|
import "./chunk-FMRZ26U5.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-OD4AA7PV.js";
|
|
9
9
|
import "./chunk-MYX5NCRH.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-VVNL26WX.js";
|
|
11
|
+
import "./chunk-XG5RRUYF.js";
|
|
12
12
|
import "./chunk-LPUQPDC2.js";
|
|
13
13
|
import "./chunk-FLLBJLHM.js";
|
|
14
14
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -38,7 +38,7 @@ async function run(_args, vaultDir) {
|
|
|
38
38
|
} catch {
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
const { DaemonClient } = await import("./client-
|
|
41
|
+
const { DaemonClient } = await import("./client-YXQUTXVZ.js");
|
|
42
42
|
const client = new DaemonClient(vaultDir);
|
|
43
43
|
console.log("Waiting for health check...");
|
|
44
44
|
const healthy = await client.ensureRunning();
|
|
@@ -57,4 +57,4 @@ async function run(_args, vaultDir) {
|
|
|
57
57
|
export {
|
|
58
58
|
run
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=restart-
|
|
60
|
+
//# sourceMappingURL=restart-ADG5GBTB.js.map
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
connectToDaemon,
|
|
7
7
|
initVaultDb
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KESLPBKV.js";
|
|
9
9
|
import "./chunk-SAKJMNSR.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-Q36VMZST.js";
|
|
11
11
|
import "./chunk-FMRZ26U5.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-OD4AA7PV.js";
|
|
13
13
|
import "./chunk-MYX5NCRH.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-VVNL26WX.js";
|
|
15
|
+
import "./chunk-XG5RRUYF.js";
|
|
16
16
|
import "./chunk-LPUQPDC2.js";
|
|
17
17
|
import {
|
|
18
18
|
CONTENT_SNIPPET_CHARS
|
|
@@ -93,4 +93,4 @@ export {
|
|
|
93
93
|
run,
|
|
94
94
|
runVectors
|
|
95
95
|
};
|
|
96
|
-
//# sourceMappingURL=search-
|
|
96
|
+
//# sourceMappingURL=search-AHZEUNRR.js.map
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
} from "./chunk-CUDIZJY7.js";
|
|
6
6
|
import {
|
|
7
7
|
DaemonClient
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VVNL26WX.js";
|
|
9
9
|
import {
|
|
10
10
|
getPluginVersion
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-XG5RRUYF.js";
|
|
12
12
|
import "./chunk-LPUQPDC2.js";
|
|
13
13
|
import {
|
|
14
14
|
DAEMON_CLIENT_TIMEOUT_MS,
|
|
@@ -14732,4 +14732,4 @@ export {
|
|
|
14732
14732
|
createMycoServer,
|
|
14733
14733
|
main
|
|
14734
14734
|
};
|
|
14735
|
-
//# sourceMappingURL=server-
|
|
14735
|
+
//# sourceMappingURL=server-AGVYZVP5.js.map
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
initVaultDb
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-KESLPBKV.js";
|
|
5
5
|
import "./chunk-SAKJMNSR.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-Q36VMZST.js";
|
|
7
7
|
import "./chunk-FMRZ26U5.js";
|
|
8
8
|
import {
|
|
9
9
|
getSession,
|
|
10
10
|
listSessions
|
|
11
11
|
} from "./chunk-EVDQKYCG.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-OD4AA7PV.js";
|
|
13
13
|
import "./chunk-MYX5NCRH.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-VVNL26WX.js";
|
|
15
|
+
import "./chunk-XG5RRUYF.js";
|
|
16
16
|
import "./chunk-LPUQPDC2.js";
|
|
17
17
|
import "./chunk-FLLBJLHM.js";
|
|
18
18
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -70,4 +70,4 @@ ${target.summary}`);
|
|
|
70
70
|
export {
|
|
71
71
|
run
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=session-
|
|
73
|
+
//# sourceMappingURL=session-6IU4AXYP.js.map
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
} from "./chunk-CUDIZJY7.js";
|
|
10
10
|
import {
|
|
11
11
|
DaemonClient
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-VVNL26WX.js";
|
|
13
|
+
import "./chunk-XG5RRUYF.js";
|
|
14
14
|
import "./chunk-NGROSFOH.js";
|
|
15
15
|
import "./chunk-LPUQPDC2.js";
|
|
16
16
|
import "./chunk-FLLBJLHM.js";
|
|
@@ -41,4 +41,4 @@ async function main() {
|
|
|
41
41
|
export {
|
|
42
42
|
main
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=session-end-
|
|
44
|
+
//# sourceMappingURL=session-end-FT27DWYZ.js.map
|
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
createSchema
|
|
14
14
|
} from "./chunk-MYOZLMB2.js";
|
|
15
15
|
import {
|
|
16
|
-
|
|
17
|
-
} from "./chunk-
|
|
16
|
+
loadMergedConfig
|
|
17
|
+
} from "./chunk-OD4AA7PV.js";
|
|
18
18
|
import {
|
|
19
19
|
getDatabase,
|
|
20
20
|
initDatabase,
|
|
@@ -30,8 +30,8 @@ import {
|
|
|
30
30
|
} from "./chunk-CUDIZJY7.js";
|
|
31
31
|
import {
|
|
32
32
|
DaemonClient
|
|
33
|
-
} from "./chunk-
|
|
34
|
-
import "./chunk-
|
|
33
|
+
} from "./chunk-VVNL26WX.js";
|
|
34
|
+
import "./chunk-XG5RRUYF.js";
|
|
35
35
|
import {
|
|
36
36
|
loadManifests
|
|
37
37
|
} from "./chunk-NGROSFOH.js";
|
|
@@ -149,7 +149,7 @@ async function main() {
|
|
|
149
149
|
`);
|
|
150
150
|
return;
|
|
151
151
|
}
|
|
152
|
-
const config =
|
|
152
|
+
const config = loadMergedConfig(VAULT_DIR);
|
|
153
153
|
const client = new DaemonClient(VAULT_DIR);
|
|
154
154
|
const healthy = await client.ensureRunning();
|
|
155
155
|
let branch;
|
|
@@ -186,4 +186,4 @@ async function main() {
|
|
|
186
186
|
export {
|
|
187
187
|
main
|
|
188
188
|
};
|
|
189
|
-
//# sourceMappingURL=session-start-
|
|
189
|
+
//# sourceMappingURL=session-start-LAFICHII.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/context/injector.ts","../src/hooks/session-start.ts"],"sourcesContent":["/**\n * Context injector — assembles context from SQLite for hook injection.\n *\n * Queries sessions and spores from SQLite. For prompt-submit context,\n * semantic search is deferred to Phase 2 (requires daemon vector store).\n * If no data exists (zero-config), returns empty context gracefully.\n */\n\nimport { getDatabase } from '@myco/db/client.js';\nimport { listSessions } from '@myco/db/queries/sessions.js';\nimport { listSpores } from '@myco/db/queries/spores.js';\nimport type { MycoConfig } from '@myco/config/schema.js';\nimport {\n estimateTokens,\n CONTEXT_SESSION_PREVIEW_CHARS,\n CONTEXT_SPORE_PREVIEW_CHARS,\n PROMPT_CONTEXT_MIN_LENGTH,\n EXCLUDED_SPORE_STATUSES,\n} from '@myco/constants.js';\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/** Max recent sessions to include in context. */\nconst CONTEXT_SESSION_LIMIT = 10;\n\n/** Max sessions displayed after scoring. */\nconst CONTEXT_SESSION_DISPLAY_LIMIT = 5;\n\n/** Max spores to fetch for scoring. */\nconst CONTEXT_SPORE_FETCH_LIMIT = 20;\n\n/** Max spores displayed after scoring. */\nconst CONTEXT_SPORE_DISPLAY_LIMIT = 5;\n\n/** Default token budget for sessions layer. */\nconst DEFAULT_SESSIONS_BUDGET = 500;\n\n/** Default token budget for spores layer. */\nconst DEFAULT_SPORES_BUDGET = 300;\n\n/** Default token budget for team layer. */\nconst DEFAULT_TEAM_BUDGET = 200;\n\n/** Default total context max tokens. */\nconst DEFAULT_CONTEXT_MAX_TOKENS = 1200;\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ninterface InjectionContext {\n branch?: string;\n}\n\ninterface InjectedContext {\n text: string;\n tokenEstimate: number;\n layers: {\n sessions: string;\n spores: string;\n team: string;\n };\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Build injected context from SQLite data.\n *\n * Returns empty context gracefully when no data exists (zero-config behavior).\n */\nexport async function buildInjectedContext(\n _config: MycoConfig,\n context: InjectionContext,\n): Promise<InjectedContext> {\n // Verify database is available — return empty if not\n try {\n getDatabase();\n } catch {\n return emptyContext();\n }\n\n // Fetch sessions and spores in parallel\n const [sessions, spores] = await Promise.all([\n listSessions({ limit: CONTEXT_SESSION_LIMIT }),\n listSpores({ limit: CONTEXT_SPORE_FETCH_LIMIT, status: 'active' }),\n ]);\n\n // Layer 1: Recent sessions\n const sessionsText = formatLayer(\n 'Recent Sessions',\n sessions.slice(0, CONTEXT_SESSION_DISPLAY_LIMIT).map((s) => {\n const title = s.title ?? s.id;\n const summary = (s.summary ?? '').slice(0, CONTEXT_SESSION_PREVIEW_CHARS);\n const branchLabel = s.branch === context.branch ? ' (same branch)' : '';\n return `- **${title}**: ${summary}${branchLabel}`;\n }),\n DEFAULT_SESSIONS_BUDGET,\n );\n\n // Layer 2: Relevant spores (exclude superseded/archived)\n const filteredSpores = spores.filter((s) =>\n !EXCLUDED_SPORE_STATUSES.has(s.status),\n );\n const sporesText = formatLayer(\n 'Relevant Spores',\n filteredSpores.slice(0, CONTEXT_SPORE_DISPLAY_LIMIT).map((s) =>\n `- **${s.id}** (${s.observation_type}): ${s.content.slice(0, CONTEXT_SPORE_PREVIEW_CHARS)}`,\n ),\n DEFAULT_SPORES_BUDGET,\n );\n\n // Layer 3: Team activity (placeholder — populated in Phase 2)\n const teamText = formatLayer('Team Activity', [], DEFAULT_TEAM_BUDGET);\n\n // Enforce total max_tokens budget\n const allLayers = [sessionsText, sporesText, teamText].filter(Boolean);\n const parts: string[] = [];\n let totalTokens = 0;\n\n for (const layer of allLayers) {\n const layerTokens = estimateTokens(layer);\n if (totalTokens + layerTokens > DEFAULT_CONTEXT_MAX_TOKENS) break;\n parts.push(layer);\n totalTokens += layerTokens;\n }\n\n const fullText = parts.join('\\n\\n');\n\n return {\n text: fullText,\n tokenEstimate: totalTokens,\n layers: {\n sessions: sessionsText,\n spores: sporesText,\n team: teamText,\n },\n };\n}\n\n/**\n * Build per-prompt context using semantic search on spores.\n *\n * Semantic search via the daemon's in-process vector store is deferred to\n * Phase 2. For now, returns empty context. The hook (`user-prompt-submit`)\n * routes through the daemon API at `/context/prompt`, which will implement\n * vector search when ready.\n */\nexport async function buildPromptContext(\n prompt: string,\n _config: MycoConfig,\n): Promise<InjectedContext> {\n if (prompt.length < PROMPT_CONTEXT_MIN_LENGTH) {\n return emptyContext();\n }\n\n // Per-prompt semantic search deferred to Phase 2 (requires daemon vector store)\n return emptyContext();\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction emptyContext(): InjectedContext {\n return {\n text: '',\n tokenEstimate: 0,\n layers: { sessions: '', spores: '', team: '' },\n };\n}\n\nfunction formatLayer(heading: string, items: string[], budget: number): string {\n if (items.length === 0) return '';\n\n let text = `### ${heading}\\n`;\n let currentTokens = estimateTokens(text);\n\n for (const item of items) {\n const itemTokens = estimateTokens(item);\n if (currentTokens + itemTokens > budget) break;\n text += item + '\\n';\n currentTokens += itemTokens;\n }\n\n return text.trim();\n}\n","import { DaemonClient } from './client.js';\nimport { readStdin } from './read-stdin.js';\nimport { normalizeHookInput } from './normalize.js';\nimport { evaluateSessionCaptureRules } from './capture-rules.js';\nimport { readTranscriptMeta } from './transcript-meta.js';\nimport { loadManifests } from '../symbionts/detect.js';\nimport { loadConfig } from '../config/loader.js';\nimport { buildInjectedContext } from '../context/injector.js';\nimport { initDatabase, vaultDbPath } from '../db/client.js';\nimport { createSchema } from '../db/schema.js';\nimport { resolveVaultDir } from '../vault/resolve.js';\nimport { execFileSync } from 'node:child_process';\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 rawInput = JSON.parse(await readStdin());\n const { sessionId, agent, transcriptPath } = normalizeHookInput(rawInput);\n\n // Apply session_start capture rules BEFORE registering the session.\n // For Codex ephemeral sub-invocations (title generation, etc.) this\n // structural drop prevents the phantom row from ever being created,\n // rather than creating it and cascade-deleting at user_prompt time.\n // Read the transcript's session_meta for rules that inspect it\n // (e.g., detecting sub-agent thread spawns via source.subagent).\n const transcriptMeta = transcriptPath ? readTranscriptMeta(transcriptPath) : undefined;\n const decision = evaluateSessionCaptureRules(loadManifests(), agent, {\n transcriptPath,\n transcriptMeta: transcriptMeta ?? undefined,\n });\n if (decision.action === 'drop') {\n process.stderr.write(`[myco] session-start: dropped (${decision.reason ?? 'rule'})\\n`);\n return;\n }\n\n const config = loadConfig(VAULT_DIR);\n const client = new DaemonClient(VAULT_DIR);\n const healthy = await client.ensureRunning();\n\n let branch: string | undefined;\n try {\n branch = execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], { encoding: 'utf-8' }).trim();\n } catch { /* not a git repo */ }\n\n if (healthy) {\n await client.post('/sessions/register', {\n session_id: sessionId,\n agent,\n branch,\n started_at: new Date().toISOString(),\n });\n\n const contextResult = await client.post('/context', { session_id: sessionId, branch });\n\n if (contextResult.ok && contextResult.data?.text) {\n if (contextResult.data.source === 'digest') {\n process.stderr.write(`[myco] Injecting digest extract (tier ${contextResult.data.tier})\\n`);\n }\n process.stdout.write(contextResult.data.text);\n return;\n }\n }\n\n // Degraded: local SQLite context only\n const db = initDatabase(vaultDbPath(VAULT_DIR));\n createSchema(db);\n const injected = await buildInjectedContext(config, { branch });\n if (injected.text) process.stdout.write(injected.text);\n } catch (error) {\n process.stderr.write(`[myco] session-start error: ${(error as Error).message}\\n`);\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/context/injector.ts","../src/hooks/session-start.ts"],"sourcesContent":["/**\n * Context injector — assembles context from SQLite for hook injection.\n *\n * Queries sessions and spores from SQLite. For prompt-submit context,\n * semantic search is deferred to Phase 2 (requires daemon vector store).\n * If no data exists (zero-config), returns empty context gracefully.\n */\n\nimport { getDatabase } from '@myco/db/client.js';\nimport { listSessions } from '@myco/db/queries/sessions.js';\nimport { listSpores } from '@myco/db/queries/spores.js';\nimport type { MycoConfig } from '@myco/config/schema.js';\nimport {\n estimateTokens,\n CONTEXT_SESSION_PREVIEW_CHARS,\n CONTEXT_SPORE_PREVIEW_CHARS,\n PROMPT_CONTEXT_MIN_LENGTH,\n EXCLUDED_SPORE_STATUSES,\n} from '@myco/constants.js';\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/** Max recent sessions to include in context. */\nconst CONTEXT_SESSION_LIMIT = 10;\n\n/** Max sessions displayed after scoring. */\nconst CONTEXT_SESSION_DISPLAY_LIMIT = 5;\n\n/** Max spores to fetch for scoring. */\nconst CONTEXT_SPORE_FETCH_LIMIT = 20;\n\n/** Max spores displayed after scoring. */\nconst CONTEXT_SPORE_DISPLAY_LIMIT = 5;\n\n/** Default token budget for sessions layer. */\nconst DEFAULT_SESSIONS_BUDGET = 500;\n\n/** Default token budget for spores layer. */\nconst DEFAULT_SPORES_BUDGET = 300;\n\n/** Default token budget for team layer. */\nconst DEFAULT_TEAM_BUDGET = 200;\n\n/** Default total context max tokens. */\nconst DEFAULT_CONTEXT_MAX_TOKENS = 1200;\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ninterface InjectionContext {\n branch?: string;\n}\n\ninterface InjectedContext {\n text: string;\n tokenEstimate: number;\n layers: {\n sessions: string;\n spores: string;\n team: string;\n };\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Build injected context from SQLite data.\n *\n * Returns empty context gracefully when no data exists (zero-config behavior).\n */\nexport async function buildInjectedContext(\n _config: MycoConfig,\n context: InjectionContext,\n): Promise<InjectedContext> {\n // Verify database is available — return empty if not\n try {\n getDatabase();\n } catch {\n return emptyContext();\n }\n\n // Fetch sessions and spores in parallel\n const [sessions, spores] = await Promise.all([\n listSessions({ limit: CONTEXT_SESSION_LIMIT }),\n listSpores({ limit: CONTEXT_SPORE_FETCH_LIMIT, status: 'active' }),\n ]);\n\n // Layer 1: Recent sessions\n const sessionsText = formatLayer(\n 'Recent Sessions',\n sessions.slice(0, CONTEXT_SESSION_DISPLAY_LIMIT).map((s) => {\n const title = s.title ?? s.id;\n const summary = (s.summary ?? '').slice(0, CONTEXT_SESSION_PREVIEW_CHARS);\n const branchLabel = s.branch === context.branch ? ' (same branch)' : '';\n return `- **${title}**: ${summary}${branchLabel}`;\n }),\n DEFAULT_SESSIONS_BUDGET,\n );\n\n // Layer 2: Relevant spores (exclude superseded/archived)\n const filteredSpores = spores.filter((s) =>\n !EXCLUDED_SPORE_STATUSES.has(s.status),\n );\n const sporesText = formatLayer(\n 'Relevant Spores',\n filteredSpores.slice(0, CONTEXT_SPORE_DISPLAY_LIMIT).map((s) =>\n `- **${s.id}** (${s.observation_type}): ${s.content.slice(0, CONTEXT_SPORE_PREVIEW_CHARS)}`,\n ),\n DEFAULT_SPORES_BUDGET,\n );\n\n // Layer 3: Team activity (placeholder — populated in Phase 2)\n const teamText = formatLayer('Team Activity', [], DEFAULT_TEAM_BUDGET);\n\n // Enforce total max_tokens budget\n const allLayers = [sessionsText, sporesText, teamText].filter(Boolean);\n const parts: string[] = [];\n let totalTokens = 0;\n\n for (const layer of allLayers) {\n const layerTokens = estimateTokens(layer);\n if (totalTokens + layerTokens > DEFAULT_CONTEXT_MAX_TOKENS) break;\n parts.push(layer);\n totalTokens += layerTokens;\n }\n\n const fullText = parts.join('\\n\\n');\n\n return {\n text: fullText,\n tokenEstimate: totalTokens,\n layers: {\n sessions: sessionsText,\n spores: sporesText,\n team: teamText,\n },\n };\n}\n\n/**\n * Build per-prompt context using semantic search on spores.\n *\n * Semantic search via the daemon's in-process vector store is deferred to\n * Phase 2. For now, returns empty context. The hook (`user-prompt-submit`)\n * routes through the daemon API at `/context/prompt`, which will implement\n * vector search when ready.\n */\nexport async function buildPromptContext(\n prompt: string,\n _config: MycoConfig,\n): Promise<InjectedContext> {\n if (prompt.length < PROMPT_CONTEXT_MIN_LENGTH) {\n return emptyContext();\n }\n\n // Per-prompt semantic search deferred to Phase 2 (requires daemon vector store)\n return emptyContext();\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction emptyContext(): InjectedContext {\n return {\n text: '',\n tokenEstimate: 0,\n layers: { sessions: '', spores: '', team: '' },\n };\n}\n\nfunction formatLayer(heading: string, items: string[], budget: number): string {\n if (items.length === 0) return '';\n\n let text = `### ${heading}\\n`;\n let currentTokens = estimateTokens(text);\n\n for (const item of items) {\n const itemTokens = estimateTokens(item);\n if (currentTokens + itemTokens > budget) break;\n text += item + '\\n';\n currentTokens += itemTokens;\n }\n\n return text.trim();\n}\n","import { DaemonClient } from './client.js';\nimport { readStdin } from './read-stdin.js';\nimport { normalizeHookInput } from './normalize.js';\nimport { evaluateSessionCaptureRules } from './capture-rules.js';\nimport { readTranscriptMeta } from './transcript-meta.js';\nimport { loadManifests } from '../symbionts/detect.js';\nimport { loadMergedConfig } from '../config/loader.js';\nimport { buildInjectedContext } from '../context/injector.js';\nimport { initDatabase, vaultDbPath } from '../db/client.js';\nimport { createSchema } from '../db/schema.js';\nimport { resolveVaultDir } from '../vault/resolve.js';\nimport { execFileSync } from 'node:child_process';\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 rawInput = JSON.parse(await readStdin());\n const { sessionId, agent, transcriptPath } = normalizeHookInput(rawInput);\n\n // Apply session_start capture rules BEFORE registering the session.\n // For Codex ephemeral sub-invocations (title generation, etc.) this\n // structural drop prevents the phantom row from ever being created,\n // rather than creating it and cascade-deleting at user_prompt time.\n // Read the transcript's session_meta for rules that inspect it\n // (e.g., detecting sub-agent thread spawns via source.subagent).\n const transcriptMeta = transcriptPath ? readTranscriptMeta(transcriptPath) : undefined;\n const decision = evaluateSessionCaptureRules(loadManifests(), agent, {\n transcriptPath,\n transcriptMeta: transcriptMeta ?? undefined,\n });\n if (decision.action === 'drop') {\n process.stderr.write(`[myco] session-start: dropped (${decision.reason ?? 'rule'})\\n`);\n return;\n }\n\n const config = loadMergedConfig(VAULT_DIR);\n const client = new DaemonClient(VAULT_DIR);\n const healthy = await client.ensureRunning();\n\n let branch: string | undefined;\n try {\n branch = execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], { encoding: 'utf-8' }).trim();\n } catch { /* not a git repo */ }\n\n if (healthy) {\n await client.post('/sessions/register', {\n session_id: sessionId,\n agent,\n branch,\n started_at: new Date().toISOString(),\n });\n\n const contextResult = await client.post('/context', { session_id: sessionId, branch });\n\n if (contextResult.ok && contextResult.data?.text) {\n if (contextResult.data.source === 'digest') {\n process.stderr.write(`[myco] Injecting digest extract (tier ${contextResult.data.tier})\\n`);\n }\n process.stdout.write(contextResult.data.text);\n return;\n }\n }\n\n // Degraded: local SQLite context only\n const db = initDatabase(vaultDbPath(VAULT_DIR));\n createSchema(db);\n const injected = await buildInjectedContext(config, { branch });\n if (injected.text) process.stdout.write(injected.text);\n } catch (error) {\n process.stderr.write(`[myco] session-start error: ${(error as Error).message}\\n`);\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -2,20 +2,20 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
|
|
|
2
2
|
import {
|
|
3
3
|
withEmbedding
|
|
4
4
|
} from "./chunk-US4LNCAT.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-KESLPBKV.js";
|
|
6
6
|
import {
|
|
7
7
|
parseStringFlag
|
|
8
8
|
} from "./chunk-SAKJMNSR.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-Q36VMZST.js";
|
|
10
10
|
import "./chunk-FMRZ26U5.js";
|
|
11
11
|
import {
|
|
12
12
|
loadConfig,
|
|
13
13
|
updateConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OD4AA7PV.js";
|
|
15
15
|
import "./chunk-MYX5NCRH.js";
|
|
16
16
|
import "./chunk-ZXZPJJN3.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-VVNL26WX.js";
|
|
18
|
+
import "./chunk-XG5RRUYF.js";
|
|
19
19
|
import "./chunk-LPUQPDC2.js";
|
|
20
20
|
import "./chunk-FLLBJLHM.js";
|
|
21
21
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -80,4 +80,4 @@ async function run(args, vaultDir) {
|
|
|
80
80
|
export {
|
|
81
81
|
run
|
|
82
82
|
};
|
|
83
|
-
//# sourceMappingURL=setup-llm-
|
|
83
|
+
//# sourceMappingURL=setup-llm-77MP4I2G.js.map
|
|
@@ -14,9 +14,11 @@ maxTurns: 35
|
|
|
14
14
|
timeoutSeconds: 1800
|
|
15
15
|
schedule:
|
|
16
16
|
enabled: true
|
|
17
|
-
intervalSeconds:
|
|
17
|
+
intervalSeconds: 21600
|
|
18
18
|
runIn:
|
|
19
19
|
- idle
|
|
20
|
+
- sleep
|
|
21
|
+
preCondition: has-skill-survey-evidence
|
|
20
22
|
phases:
|
|
21
23
|
- name: explore
|
|
22
24
|
prompt: |
|
|
@@ -57,6 +59,9 @@ phases:
|
|
|
57
59
|
## Process
|
|
58
60
|
|
|
59
61
|
1. Read the pre-assembled context for orientation.
|
|
62
|
+
It already excludes active-session data and only exists when
|
|
63
|
+
the vault has enough settled knowledge to support a serious
|
|
64
|
+
candidate review.
|
|
60
65
|
|
|
61
66
|
2. Use vault tools for TARGETED follow-up on promising
|
|
62
67
|
clusters. The baseline gives you direction — follow threads
|
|
@@ -77,6 +82,10 @@ phases:
|
|
|
77
82
|
note: the core theme, which procedures it covers, and
|
|
78
83
|
which source items provide evidence.
|
|
79
84
|
|
|
85
|
+
4. Reject generic engineering domains even if they are common.
|
|
86
|
+
A valid candidate must be specific to this project's named
|
|
87
|
+
components, files, commands, or conventions.
|
|
88
|
+
|
|
80
89
|
Store your domain clusters in working notes for the next phase.
|
|
81
90
|
tools:
|
|
82
91
|
- vault_spores
|
|
@@ -103,27 +112,34 @@ phases:
|
|
|
103
112
|
|
|
104
113
|
## Evaluation criteria
|
|
105
114
|
|
|
106
|
-
Each candidate must pass ALL of these at the DOMAIN level
|
|
115
|
+
Each candidate must pass ALL of these at the DOMAIN level.
|
|
116
|
+
If any required criterion fails, reject the domain and do not
|
|
117
|
+
create or update a candidate.
|
|
107
118
|
|
|
108
119
|
1. PROCEDURE TEST: Does this domain describe "how to do a
|
|
109
120
|
family of related tasks in this project"? A domain about
|
|
110
121
|
"what X is" or "X exists" is knowledge, not a skill.
|
|
111
122
|
|
|
112
|
-
2.
|
|
123
|
+
2. PROJECT-SPECIFICITY TEST: Is this domain meaningfully tied
|
|
124
|
+
to THIS repository? It must be anchored to named project
|
|
125
|
+
components, files, commands, or conventions. Generic
|
|
126
|
+
engineering topics FAIL.
|
|
127
|
+
|
|
128
|
+
3. REPEATABILITY TEST: Will developers need these procedures
|
|
113
129
|
again as the project grows? Domains covering extension
|
|
114
130
|
points (adding new X, extending Y) are strong candidates.
|
|
115
131
|
One-time fixes and bug patches are NOT skills.
|
|
116
132
|
|
|
117
|
-
|
|
133
|
+
4. BREADTH TEST: Does this domain cover 2+ distinct procedures
|
|
118
134
|
that share prerequisite knowledge? A single procedure is
|
|
119
135
|
too narrow — it should be a section within a broader domain.
|
|
120
136
|
If you can't imagine 3+ major section headings, it's not
|
|
121
137
|
broad enough.
|
|
122
138
|
|
|
123
|
-
|
|
139
|
+
5. CROSS-SESSION EVIDENCE: Knowledge from 2+ sessions and 3+
|
|
124
140
|
source items (spores, sessions, plans).
|
|
125
141
|
|
|
126
|
-
|
|
142
|
+
6. DEDUPLICATION: Check BOTH lists from step 0.
|
|
127
143
|
- If an active skill already covers this domain, skip.
|
|
128
144
|
- If the domain SUBSUMES existing narrow skills (the domain
|
|
129
145
|
is broader and the narrow skills are sections within it),
|
|
@@ -136,7 +152,7 @@ phases:
|
|
|
136
152
|
warning. If the dismissed topic is a narrow subset of
|
|
137
153
|
your broader domain, proceed.
|
|
138
154
|
|
|
139
|
-
|
|
155
|
+
7. CONFIDENCE SCORE (0.0-1.0):
|
|
140
156
|
- Domain breadth (more procedures covered = higher)
|
|
141
157
|
- Cross-session evidence (wider = higher)
|
|
142
158
|
- Wisdom spore presence (higher quality signal)
|
package/dist/src/cli.js
CHANGED
package/dist/src/daemon/main.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/daemon.ts
|
|
4
|
-
var { main } = await import("../../main-
|
|
4
|
+
var { main } = await import("../../main-YTBVRTBI.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=main.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/post-tool-use.ts
|
|
4
|
-
var { main } = await import("../../post-tool-use-
|
|
4
|
+
var { main } = await import("../../post-tool-use-POGPTJBA.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=post-tool-use.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/session-end.ts
|
|
4
|
-
var { main } = await import("../../session-end-
|
|
4
|
+
var { main } = await import("../../session-end-FT27DWYZ.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=session-end.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/session-start.ts
|
|
4
|
-
var { main } = await import("../../session-start-
|
|
4
|
+
var { main } = await import("../../session-start-LAFICHII.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=session-start.js.map
|
package/dist/src/hooks/stop.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/stop.ts
|
|
4
|
-
var { main } = await import("../../stop-
|
|
4
|
+
var { main } = await import("../../stop-ZPIKVLH4.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=stop.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/user-prompt-submit.ts
|
|
4
|
-
var { main } = await import("../../user-prompt-submit-
|
|
4
|
+
var { main } = await import("../../user-prompt-submit-N36KUPHI.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=user-prompt-submit.js.map
|
package/dist/src/mcp/server.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/entries/mcp-server.ts
|
|
4
|
-
var { main } = await import("../../server-
|
|
4
|
+
var { main } = await import("../../server-AGVYZVP5.js");
|
|
5
5
|
await main();
|
|
6
6
|
//# sourceMappingURL=server.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
gatherStats
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-JZGN33AY.js";
|
|
5
5
|
import {
|
|
6
6
|
initVaultDb
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-KESLPBKV.js";
|
|
8
8
|
import "./chunk-SAKJMNSR.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-Q36VMZST.js";
|
|
10
10
|
import "./chunk-FMRZ26U5.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-OD4AA7PV.js";
|
|
12
12
|
import "./chunk-MYX5NCRH.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-VVNL26WX.js";
|
|
14
|
+
import "./chunk-XG5RRUYF.js";
|
|
15
15
|
import "./chunk-LPUQPDC2.js";
|
|
16
16
|
import "./chunk-FLLBJLHM.js";
|
|
17
17
|
import "./chunk-UUHLLQXO.js";
|
|
@@ -92,4 +92,4 @@ function formatUptime(seconds) {
|
|
|
92
92
|
export {
|
|
93
93
|
run
|
|
94
94
|
};
|
|
95
|
-
//# sourceMappingURL=stats-
|
|
95
|
+
//# sourceMappingURL=stats-NVPWOYTE.js.map
|