@goondocks/myco 0.20.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/{agent-run-4HUXVRHW.js → agent-run-PQXC246Y.js} +5 -5
  2. package/dist/{agent-tasks-JF45ELB6.js → agent-tasks-323BZEBX.js} +5 -5
  3. package/dist/{chunk-P3DN5EWW.js → chunk-22JALAXN.js} +4 -4
  4. package/dist/chunk-22JALAXN.js.map +1 -0
  5. package/dist/{chunk-UOQQENDW.js → chunk-3WWJOTYG.js} +2 -2
  6. package/dist/{chunk-POR75WM6.js → chunk-63ZGP4Q2.js} +2 -2
  7. package/dist/{chunk-ACQ2AIEM.js → chunk-AIYFHQRX.js} +2 -2
  8. package/dist/{chunk-L6XFAJIF.js → chunk-FGY7J6EZ.js} +4 -4
  9. package/dist/chunk-FGY7J6EZ.js.map +1 -0
  10. package/dist/{chunk-4LCIKVDM.js → chunk-LZP4IJB3.js} +3 -3
  11. package/dist/chunk-LZP4IJB3.js.map +1 -0
  12. package/dist/{chunk-YSNIAJ5D.js → chunk-UEWMSIL3.js} +3 -3
  13. package/dist/{cli-AHTINAHY.js → cli-UWBAOHLL.js} +34 -34
  14. package/dist/{client-LHENCAV3.js → client-SLDDMSKN.js} +3 -3
  15. package/dist/{doctor-XPCF5HV5.js → doctor-UUUOVDZS.js} +7 -7
  16. package/dist/doctor-UUUOVDZS.js.map +1 -0
  17. package/dist/{executor-ACDHGTRH.js → executor-J4IBXSBY.js} +7 -7
  18. package/dist/{init-V3KCC36O.js → init-UDH3ZBDD.js} +11 -15
  19. package/dist/init-UDH3ZBDD.js.map +1 -0
  20. package/dist/{installer-ZNK4JSQA.js → installer-I6KRGJOO.js} +2 -2
  21. package/dist/{main-5S4MDCIO.js → main-E7HU4QYR.js} +222 -108
  22. package/dist/main-E7HU4QYR.js.map +1 -0
  23. package/dist/{open-AB5ULZIB.js → open-4UGDPBKN.js} +5 -5
  24. package/dist/{post-compact-P2B7C7FE.js → post-compact-BFU3WZSV.js} +4 -4
  25. package/dist/{post-tool-use-LXL6NXDS.js → post-tool-use-RYHXLCTC.js} +3 -3
  26. package/dist/{post-tool-use-failure-WAYVVKGR.js → post-tool-use-failure-DCVHK2P3.js} +4 -4
  27. package/dist/{pre-compact-BCXUCF4V.js → pre-compact-EZZCJ6AG.js} +4 -4
  28. package/dist/{remove-KAPX5NT2.js → remove-GBBQG3SJ.js} +5 -5
  29. package/dist/{restart-HQO36FTG.js → restart-RMIGKMA6.js} +6 -6
  30. package/dist/{search-YOMOKAAI.js → search-2A5AJVNG.js} +5 -5
  31. package/dist/{server-2N23P6F2.js → server-TSYZMFFK.js} +3 -3
  32. package/dist/{session-WW2JLHPX.js → session-NKREOTEO.js} +5 -5
  33. package/dist/{session-end-4WRTIBVQ.js → session-end-DQELLTGJ.js} +3 -3
  34. package/dist/{session-start-HRWTZXQR.js → session-start-5SUTR5GP.js} +5 -5
  35. package/dist/{session-start-HRWTZXQR.js.map → session-start-5SUTR5GP.js.map} +1 -1
  36. package/dist/{setup-llm-HFWSBUAF.js → setup-llm-SLX5764H.js} +5 -5
  37. package/dist/src/cli.js +1 -1
  38. package/dist/src/daemon/main.js +1 -1
  39. package/dist/src/hooks/post-tool-use.js +1 -1
  40. package/dist/src/hooks/session-end.js +1 -1
  41. package/dist/src/hooks/session-start.js +1 -1
  42. package/dist/src/hooks/stop.js +1 -1
  43. package/dist/src/hooks/user-prompt-submit.js +1 -1
  44. package/dist/src/mcp/server.js +1 -1
  45. package/dist/{stats-7A4CJ4MS.js → stats-ARBLNEE3.js} +6 -6
  46. package/dist/{stop-R2GDHMRA.js → stop-5AJXBKEE.js} +3 -3
  47. package/dist/{stop-failure-773KR4VZ.js → stop-failure-XGKTZPLR.js} +4 -4
  48. package/dist/{subagent-start-IDECNBHW.js → subagent-start-2JLIPGJN.js} +4 -4
  49. package/dist/{subagent-stop-3JH7DR2S.js → subagent-stop-FV4EOKWZ.js} +4 -4
  50. package/dist/{task-completed-AYVHPHDR.js → task-completed-XJKT366I.js} +4 -4
  51. package/dist/{update-YWYW55JM.js → update-XVSAMN4O.js} +5 -5
  52. package/dist/{user-prompt-submit-YELSR6XI.js → user-prompt-submit-TTBTHBBH.js} +3 -3
  53. package/dist/{verify-JS44DVKJ.js → verify-LMHNEYIP.js} +3 -3
  54. package/dist/verify-LMHNEYIP.js.map +1 -0
  55. package/dist/{version-K5NETYIL.js → version-HRVSEMUR.js} +2 -2
  56. package/package.json +1 -1
  57. package/dist/chunk-4LCIKVDM.js.map +0 -1
  58. package/dist/chunk-L6XFAJIF.js.map +0 -1
  59. package/dist/chunk-P3DN5EWW.js.map +0 -1
  60. package/dist/doctor-XPCF5HV5.js.map +0 -1
  61. package/dist/init-V3KCC36O.js.map +0 -1
  62. package/dist/main-5S4MDCIO.js.map +0 -1
  63. package/dist/verify-JS44DVKJ.js.map +0 -1
  64. /package/dist/{agent-run-4HUXVRHW.js.map → agent-run-PQXC246Y.js.map} +0 -0
  65. /package/dist/{agent-tasks-JF45ELB6.js.map → agent-tasks-323BZEBX.js.map} +0 -0
  66. /package/dist/{chunk-UOQQENDW.js.map → chunk-3WWJOTYG.js.map} +0 -0
  67. /package/dist/{chunk-POR75WM6.js.map → chunk-63ZGP4Q2.js.map} +0 -0
  68. /package/dist/{chunk-ACQ2AIEM.js.map → chunk-AIYFHQRX.js.map} +0 -0
  69. /package/dist/{chunk-YSNIAJ5D.js.map → chunk-UEWMSIL3.js.map} +0 -0
  70. /package/dist/{cli-AHTINAHY.js.map → cli-UWBAOHLL.js.map} +0 -0
  71. /package/dist/{client-LHENCAV3.js.map → client-SLDDMSKN.js.map} +0 -0
  72. /package/dist/{executor-ACDHGTRH.js.map → executor-J4IBXSBY.js.map} +0 -0
  73. /package/dist/{installer-ZNK4JSQA.js.map → installer-I6KRGJOO.js.map} +0 -0
  74. /package/dist/{open-AB5ULZIB.js.map → open-4UGDPBKN.js.map} +0 -0
  75. /package/dist/{post-compact-P2B7C7FE.js.map → post-compact-BFU3WZSV.js.map} +0 -0
  76. /package/dist/{post-tool-use-LXL6NXDS.js.map → post-tool-use-RYHXLCTC.js.map} +0 -0
  77. /package/dist/{post-tool-use-failure-WAYVVKGR.js.map → post-tool-use-failure-DCVHK2P3.js.map} +0 -0
  78. /package/dist/{pre-compact-BCXUCF4V.js.map → pre-compact-EZZCJ6AG.js.map} +0 -0
  79. /package/dist/{remove-KAPX5NT2.js.map → remove-GBBQG3SJ.js.map} +0 -0
  80. /package/dist/{restart-HQO36FTG.js.map → restart-RMIGKMA6.js.map} +0 -0
  81. /package/dist/{search-YOMOKAAI.js.map → search-2A5AJVNG.js.map} +0 -0
  82. /package/dist/{server-2N23P6F2.js.map → server-TSYZMFFK.js.map} +0 -0
  83. /package/dist/{session-WW2JLHPX.js.map → session-NKREOTEO.js.map} +0 -0
  84. /package/dist/{session-end-4WRTIBVQ.js.map → session-end-DQELLTGJ.js.map} +0 -0
  85. /package/dist/{setup-llm-HFWSBUAF.js.map → setup-llm-SLX5764H.js.map} +0 -0
  86. /package/dist/{stats-7A4CJ4MS.js.map → stats-ARBLNEE3.js.map} +0 -0
  87. /package/dist/{stop-R2GDHMRA.js.map → stop-5AJXBKEE.js.map} +0 -0
  88. /package/dist/{stop-failure-773KR4VZ.js.map → stop-failure-XGKTZPLR.js.map} +0 -0
  89. /package/dist/{subagent-start-IDECNBHW.js.map → subagent-start-2JLIPGJN.js.map} +0 -0
  90. /package/dist/{subagent-stop-3JH7DR2S.js.map → subagent-stop-FV4EOKWZ.js.map} +0 -0
  91. /package/dist/{task-completed-AYVHPHDR.js.map → task-completed-XJKT366I.js.map} +0 -0
  92. /package/dist/{update-YWYW55JM.js.map → update-XVSAMN4O.js.map} +0 -0
  93. /package/dist/{user-prompt-submit-YELSR6XI.js.map → user-prompt-submit-TTBTHBBH.js.map} +0 -0
  94. /package/dist/{version-K5NETYIL.js.map → version-HRVSEMUR.js.map} +0 -0
@@ -4,14 +4,14 @@ import {
4
4
  } from "./chunk-5NFJTZ64.js";
5
5
  import {
6
6
  connectToDaemon
7
- } from "./chunk-YSNIAJ5D.js";
7
+ } from "./chunk-UEWMSIL3.js";
8
8
  import "./chunk-SAKJMNSR.js";
9
- import "./chunk-4LCIKVDM.js";
9
+ import "./chunk-LZP4IJB3.js";
10
10
  import "./chunk-FMRZ26U5.js";
11
11
  import "./chunk-SRXTSI25.js";
12
12
  import "./chunk-MYX5NCRH.js";
13
- import "./chunk-UOQQENDW.js";
14
- import "./chunk-ACQ2AIEM.js";
13
+ import "./chunk-3WWJOTYG.js";
14
+ import "./chunk-AIYFHQRX.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-AB5ULZIB.js.map
44
+ //# sourceMappingURL=open-4UGDPBKN.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-POR75WM6.js";
4
+ } from "./chunk-63ZGP4Q2.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-UOQQENDW.js";
10
- import "./chunk-ACQ2AIEM.js";
9
+ import "./chunk-3WWJOTYG.js";
10
+ import "./chunk-AIYFHQRX.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-P2B7C7FE.js.map
31
+ //# sourceMappingURL=post-compact-BFU3WZSV.js.map
@@ -12,8 +12,8 @@ import {
12
12
  } from "./chunk-CUDIZJY7.js";
13
13
  import {
14
14
  DaemonClient
15
- } from "./chunk-UOQQENDW.js";
16
- import "./chunk-ACQ2AIEM.js";
15
+ } from "./chunk-3WWJOTYG.js";
16
+ import "./chunk-AIYFHQRX.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-LXL6NXDS.js.map
64
+ //# sourceMappingURL=post-tool-use-RYHXLCTC.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-POR75WM6.js";
4
+ } from "./chunk-63ZGP4Q2.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-UOQQENDW.js";
10
- import "./chunk-ACQ2AIEM.js";
9
+ import "./chunk-3WWJOTYG.js";
10
+ import "./chunk-AIYFHQRX.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-WAYVVKGR.js.map
33
+ //# sourceMappingURL=post-tool-use-failure-DCVHK2P3.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-POR75WM6.js";
4
+ } from "./chunk-63ZGP4Q2.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-UOQQENDW.js";
10
- import "./chunk-ACQ2AIEM.js";
9
+ import "./chunk-3WWJOTYG.js";
10
+ import "./chunk-AIYFHQRX.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-BCXUCF4V.js.map
30
+ //# sourceMappingURL=pre-compact-EZZCJ6AG.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
  isProcessAlive
4
- } from "./chunk-YSNIAJ5D.js";
4
+ } from "./chunk-UEWMSIL3.js";
5
5
  import {
6
6
  parseStringFlag
7
7
  } from "./chunk-SAKJMNSR.js";
8
8
  import {
9
9
  SymbiontInstaller
10
- } from "./chunk-4LCIKVDM.js";
10
+ } from "./chunk-LZP4IJB3.js";
11
11
  import "./chunk-FMRZ26U5.js";
12
12
  import {
13
13
  updateConfig
@@ -16,8 +16,8 @@ import "./chunk-MYX5NCRH.js";
16
16
  import {
17
17
  resolveVaultDir
18
18
  } from "./chunk-CUDIZJY7.js";
19
- import "./chunk-UOQQENDW.js";
20
- import "./chunk-ACQ2AIEM.js";
19
+ import "./chunk-3WWJOTYG.js";
20
+ import "./chunk-AIYFHQRX.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-KAPX5NT2.js.map
126
+ //# sourceMappingURL=remove-GBBQG3SJ.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-YSNIAJ5D.js";
4
+ } from "./chunk-UEWMSIL3.js";
5
5
  import "./chunk-SAKJMNSR.js";
6
- import "./chunk-4LCIKVDM.js";
6
+ import "./chunk-LZP4IJB3.js";
7
7
  import "./chunk-FMRZ26U5.js";
8
8
  import "./chunk-SRXTSI25.js";
9
9
  import "./chunk-MYX5NCRH.js";
10
- import "./chunk-UOQQENDW.js";
11
- import "./chunk-ACQ2AIEM.js";
10
+ import "./chunk-3WWJOTYG.js";
11
+ import "./chunk-AIYFHQRX.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-LHENCAV3.js");
41
+ const { DaemonClient } = await import("./client-SLDDMSKN.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-HQO36FTG.js.map
60
+ //# sourceMappingURL=restart-RMIGKMA6.js.map
@@ -5,14 +5,14 @@ import {
5
5
  import {
6
6
  connectToDaemon,
7
7
  initVaultDb
8
- } from "./chunk-YSNIAJ5D.js";
8
+ } from "./chunk-UEWMSIL3.js";
9
9
  import "./chunk-SAKJMNSR.js";
10
- import "./chunk-4LCIKVDM.js";
10
+ import "./chunk-LZP4IJB3.js";
11
11
  import "./chunk-FMRZ26U5.js";
12
12
  import "./chunk-SRXTSI25.js";
13
13
  import "./chunk-MYX5NCRH.js";
14
- import "./chunk-UOQQENDW.js";
15
- import "./chunk-ACQ2AIEM.js";
14
+ import "./chunk-3WWJOTYG.js";
15
+ import "./chunk-AIYFHQRX.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-YOMOKAAI.js.map
96
+ //# sourceMappingURL=search-2A5AJVNG.js.map
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-CUDIZJY7.js";
6
6
  import {
7
7
  DaemonClient
8
- } from "./chunk-UOQQENDW.js";
8
+ } from "./chunk-3WWJOTYG.js";
9
9
  import {
10
10
  getPluginVersion
11
- } from "./chunk-ACQ2AIEM.js";
11
+ } from "./chunk-AIYFHQRX.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-2N23P6F2.js.map
14735
+ //# sourceMappingURL=server-TSYZMFFK.js.map
@@ -1,9 +1,9 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  initVaultDb
4
- } from "./chunk-YSNIAJ5D.js";
4
+ } from "./chunk-UEWMSIL3.js";
5
5
  import "./chunk-SAKJMNSR.js";
6
- import "./chunk-4LCIKVDM.js";
6
+ import "./chunk-LZP4IJB3.js";
7
7
  import "./chunk-FMRZ26U5.js";
8
8
  import {
9
9
  getSession,
@@ -11,8 +11,8 @@ import {
11
11
  } from "./chunk-EVDQKYCG.js";
12
12
  import "./chunk-SRXTSI25.js";
13
13
  import "./chunk-MYX5NCRH.js";
14
- import "./chunk-UOQQENDW.js";
15
- import "./chunk-ACQ2AIEM.js";
14
+ import "./chunk-3WWJOTYG.js";
15
+ import "./chunk-AIYFHQRX.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-WW2JLHPX.js.map
73
+ //# sourceMappingURL=session-NKREOTEO.js.map
@@ -9,8 +9,8 @@ import {
9
9
  } from "./chunk-CUDIZJY7.js";
10
10
  import {
11
11
  DaemonClient
12
- } from "./chunk-UOQQENDW.js";
13
- import "./chunk-ACQ2AIEM.js";
12
+ } from "./chunk-3WWJOTYG.js";
13
+ import "./chunk-AIYFHQRX.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-4WRTIBVQ.js.map
44
+ //# sourceMappingURL=session-end-DQELLTGJ.js.map
@@ -13,7 +13,7 @@ import {
13
13
  createSchema
14
14
  } from "./chunk-MYOZLMB2.js";
15
15
  import {
16
- loadConfig
16
+ loadMergedConfig
17
17
  } from "./chunk-SRXTSI25.js";
18
18
  import {
19
19
  getDatabase,
@@ -30,8 +30,8 @@ import {
30
30
  } from "./chunk-CUDIZJY7.js";
31
31
  import {
32
32
  DaemonClient
33
- } from "./chunk-UOQQENDW.js";
34
- import "./chunk-ACQ2AIEM.js";
33
+ } from "./chunk-3WWJOTYG.js";
34
+ import "./chunk-AIYFHQRX.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 = loadConfig(VAULT_DIR);
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-HRWTZXQR.js.map
189
+ //# sourceMappingURL=session-start-5SUTR5GP.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,11 +2,11 @@ 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-YSNIAJ5D.js";
5
+ import "./chunk-UEWMSIL3.js";
6
6
  import {
7
7
  parseStringFlag
8
8
  } from "./chunk-SAKJMNSR.js";
9
- import "./chunk-4LCIKVDM.js";
9
+ import "./chunk-LZP4IJB3.js";
10
10
  import "./chunk-FMRZ26U5.js";
11
11
  import {
12
12
  loadConfig,
@@ -14,8 +14,8 @@ import {
14
14
  } from "./chunk-SRXTSI25.js";
15
15
  import "./chunk-MYX5NCRH.js";
16
16
  import "./chunk-ZXZPJJN3.js";
17
- import "./chunk-UOQQENDW.js";
18
- import "./chunk-ACQ2AIEM.js";
17
+ import "./chunk-3WWJOTYG.js";
18
+ import "./chunk-AIYFHQRX.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-HFWSBUAF.js.map
83
+ //# sourceMappingURL=setup-llm-SLX5764H.js.map
package/dist/src/cli.js CHANGED
@@ -2,5 +2,5 @@
2
2
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
3
3
 
4
4
  // src/entries/cli.ts
5
- await import("../cli-AHTINAHY.js");
5
+ await import("../cli-UWBAOHLL.js");
6
6
  //# sourceMappingURL=cli.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/daemon.ts
4
- var { main } = await import("../../main-5S4MDCIO.js");
4
+ var { main } = await import("../../main-E7HU4QYR.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-LXL6NXDS.js");
4
+ var { main } = await import("../../post-tool-use-RYHXLCTC.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-4WRTIBVQ.js");
4
+ var { main } = await import("../../session-end-DQELLTGJ.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-HRWTZXQR.js");
4
+ var { main } = await import("../../session-start-5SUTR5GP.js");
5
5
  await main();
6
6
  //# sourceMappingURL=session-start.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/stop.ts
4
- var { main } = await import("../../stop-R2GDHMRA.js");
4
+ var { main } = await import("../../stop-5AJXBKEE.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-YELSR6XI.js");
4
+ var { main } = await import("../../user-prompt-submit-TTBTHBBH.js");
5
5
  await main();
6
6
  //# sourceMappingURL=user-prompt-submit.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/mcp-server.ts
4
- var { main } = await import("../../server-2N23P6F2.js");
4
+ var { main } = await import("../../server-TSYZMFFK.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-P3DN5EWW.js";
4
+ } from "./chunk-22JALAXN.js";
5
5
  import {
6
6
  initVaultDb
7
- } from "./chunk-YSNIAJ5D.js";
7
+ } from "./chunk-UEWMSIL3.js";
8
8
  import "./chunk-SAKJMNSR.js";
9
- import "./chunk-4LCIKVDM.js";
9
+ import "./chunk-LZP4IJB3.js";
10
10
  import "./chunk-FMRZ26U5.js";
11
11
  import "./chunk-SRXTSI25.js";
12
12
  import "./chunk-MYX5NCRH.js";
13
- import "./chunk-UOQQENDW.js";
14
- import "./chunk-ACQ2AIEM.js";
13
+ import "./chunk-3WWJOTYG.js";
14
+ import "./chunk-AIYFHQRX.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-7A4CJ4MS.js.map
95
+ //# sourceMappingURL=stats-ARBLNEE3.js.map
@@ -9,8 +9,8 @@ import {
9
9
  } from "./chunk-CUDIZJY7.js";
10
10
  import {
11
11
  DaemonClient
12
- } from "./chunk-UOQQENDW.js";
13
- import "./chunk-ACQ2AIEM.js";
12
+ } from "./chunk-3WWJOTYG.js";
13
+ import "./chunk-AIYFHQRX.js";
14
14
  import "./chunk-NGROSFOH.js";
15
15
  import "./chunk-LPUQPDC2.js";
16
16
  import "./chunk-FLLBJLHM.js";
@@ -46,4 +46,4 @@ async function main() {
46
46
  export {
47
47
  main
48
48
  };
49
- //# sourceMappingURL=stop-R2GDHMRA.js.map
49
+ //# sourceMappingURL=stop-5AJXBKEE.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-POR75WM6.js";
4
+ } from "./chunk-63ZGP4Q2.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-UOQQENDW.js";
10
- import "./chunk-ACQ2AIEM.js";
9
+ import "./chunk-3WWJOTYG.js";
10
+ import "./chunk-AIYFHQRX.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=stop-failure-773KR4VZ.js.map
31
+ //# sourceMappingURL=stop-failure-XGKTZPLR.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-POR75WM6.js";
4
+ } from "./chunk-63ZGP4Q2.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-UOQQENDW.js";
10
- import "./chunk-ACQ2AIEM.js";
9
+ import "./chunk-3WWJOTYG.js";
10
+ import "./chunk-AIYFHQRX.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=subagent-start-IDECNBHW.js.map
31
+ //# sourceMappingURL=subagent-start-2JLIPGJN.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-POR75WM6.js";
4
+ } from "./chunk-63ZGP4Q2.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-UOQQENDW.js";
10
- import "./chunk-ACQ2AIEM.js";
9
+ import "./chunk-3WWJOTYG.js";
10
+ import "./chunk-AIYFHQRX.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=subagent-stop-3JH7DR2S.js.map
33
+ //# sourceMappingURL=subagent-stop-FV4EOKWZ.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-POR75WM6.js";
4
+ } from "./chunk-63ZGP4Q2.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-UOQQENDW.js";
10
- import "./chunk-ACQ2AIEM.js";
9
+ import "./chunk-3WWJOTYG.js";
10
+ import "./chunk-AIYFHQRX.js";
11
11
  import "./chunk-NGROSFOH.js";
12
12
  import "./chunk-LPUQPDC2.js";
13
13
  import "./chunk-FLLBJLHM.js";
@@ -29,4 +29,4 @@ async function main() {
29
29
  export {
30
30
  main
31
31
  };
32
- //# sourceMappingURL=task-completed-AYVHPHDR.js.map
32
+ //# sourceMappingURL=task-completed-XJKT366I.js.map
@@ -2,9 +2,9 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import {
3
3
  VAULT_GITIGNORE,
4
4
  registerSymbionts
5
- } from "./chunk-YSNIAJ5D.js";
5
+ } from "./chunk-UEWMSIL3.js";
6
6
  import "./chunk-SAKJMNSR.js";
7
- import "./chunk-4LCIKVDM.js";
7
+ import "./chunk-LZP4IJB3.js";
8
8
  import "./chunk-FMRZ26U5.js";
9
9
  import {
10
10
  getEnabledSymbiontNames,
@@ -14,10 +14,10 @@ import "./chunk-MYX5NCRH.js";
14
14
  import {
15
15
  resolveVaultDir
16
16
  } from "./chunk-CUDIZJY7.js";
17
- import "./chunk-UOQQENDW.js";
17
+ import "./chunk-3WWJOTYG.js";
18
18
  import {
19
19
  getPluginVersion
20
- } from "./chunk-ACQ2AIEM.js";
20
+ } from "./chunk-AIYFHQRX.js";
21
21
  import {
22
22
  loadManifests,
23
23
  resolvePackageRoot
@@ -98,4 +98,4 @@ async function run(args) {
98
98
  export {
99
99
  run
100
100
  };
101
- //# sourceMappingURL=update-YWYW55JM.js.map
101
+ //# sourceMappingURL=update-XVSAMN4O.js.map