@goondocks/myco 0.12.10 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +6 -0
  2. package/dist/{agent-run-GUHXRNZB.js → agent-run-3WLMSLMJ.js} +8 -7
  3. package/dist/{agent-run-GUHXRNZB.js.map → agent-run-3WLMSLMJ.js.map} +1 -1
  4. package/dist/{agent-tasks-GWZI5WSB.js → agent-tasks-BQE2GEVS.js} +8 -7
  5. package/dist/{agent-tasks-GWZI5WSB.js.map → agent-tasks-BQE2GEVS.js.map} +1 -1
  6. package/dist/{chunk-PW5QVY44.js → chunk-4VF6KQ2Z.js} +371 -6
  7. package/dist/chunk-4VF6KQ2Z.js.map +1 -0
  8. package/dist/{chunk-QL2RBFIC.js → chunk-5YQ6VOFZ.js} +2 -2
  9. package/dist/{chunk-MCARJFBA.js → chunk-745SWTQX.js} +4 -4
  10. package/dist/{chunk-D4M2AV65.js → chunk-DTE3SHYK.js} +46 -3
  11. package/dist/chunk-DTE3SHYK.js.map +1 -0
  12. package/dist/{chunk-HLGPGHT7.js → chunk-EVPG26CR.js} +3 -3
  13. package/dist/{chunk-YRUJ5KGV.js → chunk-GDCSPMH4.js} +3 -3
  14. package/dist/{chunk-LUQBT2Y4.js → chunk-HHZ3RTEI.js} +2 -2
  15. package/dist/{chunk-TCGOSLW6.js → chunk-JJXVDCEX.js} +613 -98
  16. package/dist/chunk-JJXVDCEX.js.map +1 -0
  17. package/dist/{chunk-D4ESHOOJ.js → chunk-KNTJOMWY.js} +3 -3
  18. package/dist/{chunk-JHLALJPB.js → chunk-LD6U3L6O.js} +8 -8
  19. package/dist/{chunk-7NBDELZB.js → chunk-NVCGF2DS.js} +26 -8
  20. package/dist/{chunk-7NBDELZB.js.map → chunk-NVCGF2DS.js.map} +1 -1
  21. package/dist/{chunk-SW62AX75.js → chunk-OKCSSDFC.js} +2 -2
  22. package/dist/{chunk-RR75ZKEV.js → chunk-OQVKLTQY.js} +4 -4
  23. package/dist/{chunk-OAGY5APE.js → chunk-PSYLKCWQ.js} +83 -7
  24. package/dist/chunk-PSYLKCWQ.js.map +1 -0
  25. package/dist/{chunk-Q2AYS2QE.js → chunk-PX5KIOKY.js} +5 -7
  26. package/dist/chunk-PX5KIOKY.js.map +1 -0
  27. package/dist/chunk-QLCD77AN.js +93 -0
  28. package/dist/chunk-QLCD77AN.js.map +1 -0
  29. package/dist/{chunk-J3L2RTYK.js → chunk-RBFECYNA.js} +2 -2
  30. package/dist/{chunk-4VSNNMEU.js → chunk-S66YG6QK.js} +26 -3
  31. package/dist/{chunk-4VSNNMEU.js.map → chunk-S66YG6QK.js.map} +1 -1
  32. package/dist/chunk-SBVDG5JP.js +112 -0
  33. package/dist/chunk-SBVDG5JP.js.map +1 -0
  34. package/dist/{chunk-M5XWW7UI.js → chunk-SODRR3HE.js} +8 -1
  35. package/dist/chunk-SODRR3HE.js.map +1 -0
  36. package/dist/{chunk-SFC4GXEN.js → chunk-TNCBMGWB.js} +39 -104
  37. package/dist/chunk-TNCBMGWB.js.map +1 -0
  38. package/dist/{chunk-PIRWYDOH.js → chunk-TRA3R4EC.js} +7 -1
  39. package/dist/chunk-TRA3R4EC.js.map +1 -0
  40. package/dist/{chunk-LGPBVBFY.js → chunk-TVV6PZOC.js} +5 -7
  41. package/dist/chunk-TVV6PZOC.js.map +1 -0
  42. package/dist/{chunk-SVQAPEYH.js → chunk-UWXJCLCK.js} +22 -5
  43. package/dist/chunk-UWXJCLCK.js.map +1 -0
  44. package/dist/{chunk-JROOQQH6.js → chunk-X34OFKYU.js} +12 -7
  45. package/dist/chunk-X34OFKYU.js.map +1 -0
  46. package/dist/{chunk-FYGFMIS6.js → chunk-ZKXW46HZ.js} +2 -2
  47. package/dist/{cli-CFOIDXOY.js → cli-SKCINMJI.js} +41 -40
  48. package/dist/{cli-CFOIDXOY.js.map → cli-SKCINMJI.js.map} +1 -1
  49. package/dist/{client-ZBCGODTS.js → client-KZGZHHXT.js} +5 -5
  50. package/dist/{config-6RQ7FAEV.js → config-H657SF6B.js} +5 -3
  51. package/dist/{config-6RQ7FAEV.js.map → config-H657SF6B.js.map} +1 -1
  52. package/dist/{detect-providers-JFE3QLJI.js → detect-providers-PAVE2X6O.js} +4 -4
  53. package/dist/{doctor-W3I7RVU4.js → doctor-6FKSHJRU.js} +13 -11
  54. package/dist/{doctor-W3I7RVU4.js.map → doctor-6FKSHJRU.js.map} +1 -1
  55. package/dist/{executor-LKDWMGC7.js → executor-W5MKZH7B.js} +407 -46
  56. package/dist/executor-W5MKZH7B.js.map +1 -0
  57. package/dist/{init-M3HYJGHE.js → init-5QHCXBLF.js} +16 -15
  58. package/dist/{init-M3HYJGHE.js.map → init-5QHCXBLF.js.map} +1 -1
  59. package/dist/{init-wizard-C4WQA47U.js → init-wizard-HEY4HMG3.js} +12 -12
  60. package/dist/installer-25TSX4SR.js +13 -0
  61. package/dist/{llm-O46QYWEM.js → llm-T3QVHC3Y.js} +7 -7
  62. package/dist/{loader-4FMGOVWF.js → loader-JQLO6K44.js} +4 -2
  63. package/dist/{loader-BQ4X4K3F.js → loader-WQKVWL5D.js} +4 -4
  64. package/dist/{main-CMWNMCW2.js → main-IZ277SHB.js} +689 -124
  65. package/dist/main-IZ277SHB.js.map +1 -0
  66. package/dist/{open-4N7T37XV.js → open-S7YUWON4.js} +8 -7
  67. package/dist/{open-4N7T37XV.js.map → open-S7YUWON4.js.map} +1 -1
  68. package/dist/{openai-embeddings-HWAKOGUM.js → openai-embeddings-5T5ZP7LO.js} +4 -4
  69. package/dist/{openrouter-GXZK7JXR.js → openrouter-RD2COFC7.js} +4 -4
  70. package/dist/{post-compact-BPICHUPV.js → post-compact-EFKFT7TM.js} +7 -7
  71. package/dist/{post-tool-use-OHJ2EH7I.js → post-tool-use-624YC6ZH.js} +7 -7
  72. package/dist/{post-tool-use-failure-CBPY2TSN.js → post-tool-use-failure-QCHZAWQH.js} +7 -7
  73. package/dist/{pre-compact-ULAA4XIB.js → pre-compact-7DWH2EM3.js} +7 -7
  74. package/dist/{provider-check-CKZW3GQX.js → provider-check-QN7OGXZA.js} +4 -4
  75. package/dist/{registry-ZHUVXGPO.js → registry-2XQMCPA6.js} +5 -5
  76. package/dist/{remove-52PTVOCJ.js → remove-ESVIET5C.js} +10 -8
  77. package/dist/{remove-52PTVOCJ.js.map → remove-ESVIET5C.js.map} +1 -1
  78. package/dist/{resolution-events-WZHPQQMN.js → resolution-events-5EVUEWHS.js} +4 -4
  79. package/dist/{restart-O37BUPLH.js → restart-AZHV6OKM.js} +9 -8
  80. package/dist/{restart-O37BUPLH.js.map → restart-AZHV6OKM.js.map} +1 -1
  81. package/dist/{search-52YK2ZWU.js → search-JS4HXYGS.js} +9 -8
  82. package/dist/{search-52YK2ZWU.js.map → search-JS4HXYGS.js.map} +1 -1
  83. package/dist/{server-7OKRAJCM.js → server-KT5GW333.js} +115 -14
  84. package/dist/server-KT5GW333.js.map +1 -0
  85. package/dist/{session-57IAZYRK.js → session-JSI67FEM.js} +10 -9
  86. package/dist/{session-57IAZYRK.js.map → session-JSI67FEM.js.map} +1 -1
  87. package/dist/{session-end-WRKDJEWM.js → session-end-4CM462MC.js} +6 -6
  88. package/dist/{session-start-7VWGEVOX.js → session-start-ZGF7F6DE.js} +12 -12
  89. package/dist/{setup-llm-IDQPX22O.js → setup-llm-S2UYJYIS.js} +10 -9
  90. package/dist/{setup-llm-IDQPX22O.js.map → setup-llm-S2UYJYIS.js.map} +1 -1
  91. package/dist/src/agent/definitions/agent.yaml +2 -0
  92. package/dist/src/agent/definitions/tasks/digest-only.yaml +1 -0
  93. package/dist/src/agent/definitions/tasks/extract-only.yaml +1 -0
  94. package/dist/src/agent/definitions/tasks/full-intelligence.yaml +8 -0
  95. package/dist/src/agent/definitions/tasks/graph-maintenance.yaml +1 -0
  96. package/dist/src/agent/definitions/tasks/review-session.yaml +1 -0
  97. package/dist/src/agent/definitions/tasks/skill-evolve.yaml +155 -0
  98. package/dist/src/agent/definitions/tasks/skill-generate.yaml +210 -0
  99. package/dist/src/agent/definitions/tasks/skill-survey.yaml +149 -0
  100. package/dist/src/agent/definitions/tasks/supersession-sweep.yaml +1 -0
  101. package/dist/src/agent/definitions/tasks/title-summary.yaml +1 -0
  102. package/dist/src/agent/prompts/agent.md +29 -0
  103. package/dist/src/cli.js +1 -1
  104. package/dist/src/daemon/main.js +1 -1
  105. package/dist/src/hooks/post-tool-use.js +1 -1
  106. package/dist/src/hooks/session-end.js +1 -1
  107. package/dist/src/hooks/session-start.js +1 -1
  108. package/dist/src/hooks/stop.js +1 -1
  109. package/dist/src/hooks/user-prompt-submit.js +1 -1
  110. package/dist/src/mcp/server.js +1 -1
  111. package/dist/src/worker/src/index.ts +3 -0
  112. package/dist/src/worker/src/schema.ts +56 -0
  113. package/dist/{stats-D7U5HQ3L.js → stats-D2FM6ZXO.js} +10 -9
  114. package/dist/{stats-D7U5HQ3L.js.map → stats-D2FM6ZXO.js.map} +1 -1
  115. package/dist/{stop-VJU4AAOQ.js → stop-DQEKVNST.js} +6 -6
  116. package/dist/{stop-failure-ILPHO26U.js → stop-failure-EHH7AN5E.js} +7 -7
  117. package/dist/{subagent-start-77MY4UMP.js → subagent-start-6R52PAFA.js} +7 -7
  118. package/dist/{subagent-stop-DABERMXZ.js → subagent-stop-CLDFJKYQ.js} +7 -7
  119. package/dist/{task-completed-TBWBOAJ6.js → task-completed-V47JA3OV.js} +7 -7
  120. package/dist/{team-K6H4B3ZD.js → team-SJPDXELY.js} +45 -19
  121. package/dist/team-SJPDXELY.js.map +1 -0
  122. package/dist/turns-3ZQAF6HF.js +16 -0
  123. package/dist/turns-3ZQAF6HF.js.map +1 -0
  124. package/dist/ui/assets/index-BmsHIwjl.css +1 -0
  125. package/dist/ui/assets/index-Cn6cQwJy.js +842 -0
  126. package/dist/ui/index.html +2 -2
  127. package/dist/{update-GW774ZMW.js → update-ZNIYDQHJ.js} +8 -7
  128. package/dist/{update-GW774ZMW.js.map → update-ZNIYDQHJ.js.map} +1 -1
  129. package/dist/{user-prompt-submit-C47Y5Y5I.js → user-prompt-submit-6TX6VECI.js} +6 -6
  130. package/dist/{verify-MQAANTUR.js → verify-JHIMXTY5.js} +8 -8
  131. package/dist/{version-42DQW43N.js → version-UMEN7OJU.js} +2 -2
  132. package/dist/version-UMEN7OJU.js.map +1 -0
  133. package/package.json +6 -6
  134. package/dist/chunk-D4M2AV65.js.map +0 -1
  135. package/dist/chunk-JROOQQH6.js.map +0 -1
  136. package/dist/chunk-LGPBVBFY.js.map +0 -1
  137. package/dist/chunk-M5XWW7UI.js.map +0 -1
  138. package/dist/chunk-OAGY5APE.js.map +0 -1
  139. package/dist/chunk-PIRWYDOH.js.map +0 -1
  140. package/dist/chunk-PW5QVY44.js.map +0 -1
  141. package/dist/chunk-Q2AYS2QE.js.map +0 -1
  142. package/dist/chunk-SFC4GXEN.js.map +0 -1
  143. package/dist/chunk-SVQAPEYH.js.map +0 -1
  144. package/dist/chunk-TCGOSLW6.js.map +0 -1
  145. package/dist/executor-LKDWMGC7.js.map +0 -1
  146. package/dist/main-CMWNMCW2.js.map +0 -1
  147. package/dist/server-7OKRAJCM.js.map +0 -1
  148. package/dist/team-K6H4B3ZD.js.map +0 -1
  149. package/dist/ui/assets/index-BGbil7f1.css +0 -1
  150. package/dist/ui/assets/index-ZSGlKT25.js +0 -804
  151. /package/dist/{chunk-QL2RBFIC.js.map → chunk-5YQ6VOFZ.js.map} +0 -0
  152. /package/dist/{chunk-MCARJFBA.js.map → chunk-745SWTQX.js.map} +0 -0
  153. /package/dist/{chunk-HLGPGHT7.js.map → chunk-EVPG26CR.js.map} +0 -0
  154. /package/dist/{chunk-YRUJ5KGV.js.map → chunk-GDCSPMH4.js.map} +0 -0
  155. /package/dist/{chunk-LUQBT2Y4.js.map → chunk-HHZ3RTEI.js.map} +0 -0
  156. /package/dist/{chunk-D4ESHOOJ.js.map → chunk-KNTJOMWY.js.map} +0 -0
  157. /package/dist/{chunk-JHLALJPB.js.map → chunk-LD6U3L6O.js.map} +0 -0
  158. /package/dist/{chunk-SW62AX75.js.map → chunk-OKCSSDFC.js.map} +0 -0
  159. /package/dist/{chunk-RR75ZKEV.js.map → chunk-OQVKLTQY.js.map} +0 -0
  160. /package/dist/{chunk-J3L2RTYK.js.map → chunk-RBFECYNA.js.map} +0 -0
  161. /package/dist/{chunk-FYGFMIS6.js.map → chunk-ZKXW46HZ.js.map} +0 -0
  162. /package/dist/{client-ZBCGODTS.js.map → client-KZGZHHXT.js.map} +0 -0
  163. /package/dist/{detect-providers-JFE3QLJI.js.map → detect-providers-PAVE2X6O.js.map} +0 -0
  164. /package/dist/{init-wizard-C4WQA47U.js.map → init-wizard-HEY4HMG3.js.map} +0 -0
  165. /package/dist/{llm-O46QYWEM.js.map → installer-25TSX4SR.js.map} +0 -0
  166. /package/dist/{loader-4FMGOVWF.js.map → llm-T3QVHC3Y.js.map} +0 -0
  167. /package/dist/{loader-BQ4X4K3F.js.map → loader-JQLO6K44.js.map} +0 -0
  168. /package/dist/{openai-embeddings-HWAKOGUM.js.map → loader-WQKVWL5D.js.map} +0 -0
  169. /package/dist/{openrouter-GXZK7JXR.js.map → openai-embeddings-5T5ZP7LO.js.map} +0 -0
  170. /package/dist/{provider-check-CKZW3GQX.js.map → openrouter-RD2COFC7.js.map} +0 -0
  171. /package/dist/{post-compact-BPICHUPV.js.map → post-compact-EFKFT7TM.js.map} +0 -0
  172. /package/dist/{post-tool-use-OHJ2EH7I.js.map → post-tool-use-624YC6ZH.js.map} +0 -0
  173. /package/dist/{post-tool-use-failure-CBPY2TSN.js.map → post-tool-use-failure-QCHZAWQH.js.map} +0 -0
  174. /package/dist/{pre-compact-ULAA4XIB.js.map → pre-compact-7DWH2EM3.js.map} +0 -0
  175. /package/dist/{registry-ZHUVXGPO.js.map → provider-check-QN7OGXZA.js.map} +0 -0
  176. /package/dist/{resolution-events-WZHPQQMN.js.map → registry-2XQMCPA6.js.map} +0 -0
  177. /package/dist/{version-42DQW43N.js.map → resolution-events-5EVUEWHS.js.map} +0 -0
  178. /package/dist/{session-end-WRKDJEWM.js.map → session-end-4CM462MC.js.map} +0 -0
  179. /package/dist/{session-start-7VWGEVOX.js.map → session-start-ZGF7F6DE.js.map} +0 -0
  180. /package/dist/{stop-VJU4AAOQ.js.map → stop-DQEKVNST.js.map} +0 -0
  181. /package/dist/{stop-failure-ILPHO26U.js.map → stop-failure-EHH7AN5E.js.map} +0 -0
  182. /package/dist/{subagent-start-77MY4UMP.js.map → subagent-start-6R52PAFA.js.map} +0 -0
  183. /package/dist/{subagent-stop-DABERMXZ.js.map → subagent-stop-CLDFJKYQ.js.map} +0 -0
  184. /package/dist/{task-completed-TBWBOAJ6.js.map → task-completed-V47JA3OV.js.map} +0 -0
  185. /package/dist/{user-prompt-submit-C47Y5Y5I.js.map → user-prompt-submit-6TX6VECI.js.map} +0 -0
  186. /package/dist/{verify-MQAANTUR.js.map → verify-JHIMXTY5.js.map} +0 -0
@@ -1,15 +1,16 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  connectToDaemon
4
- } from "./chunk-SFC4GXEN.js";
4
+ } from "./chunk-SBVDG5JP.js";
5
5
  import "./chunk-SAKJMNSR.js";
6
- import "./chunk-LUQBT2Y4.js";
6
+ import "./chunk-TNCBMGWB.js";
7
+ import "./chunk-HHZ3RTEI.js";
7
8
  import "./chunk-MYX5NCRH.js";
8
- import "./chunk-SVQAPEYH.js";
9
- import "./chunk-PIRWYDOH.js";
10
- import "./chunk-S6I62FAH.js";
11
- import "./chunk-FYGFMIS6.js";
9
+ import "./chunk-UWXJCLCK.js";
10
+ import "./chunk-ZKXW46HZ.js";
12
11
  import "./chunk-LPUQPDC2.js";
12
+ import "./chunk-TRA3R4EC.js";
13
+ import "./chunk-S6I62FAH.js";
13
14
  import "./chunk-PZUWP5VK.js";
14
15
 
15
16
  // src/cli/open.ts
@@ -35,4 +36,4 @@ async function run(_args, vaultDir) {
35
36
  export {
36
37
  run
37
38
  };
38
- //# sourceMappingURL=open-4N7T37XV.js.map
39
+ //# sourceMappingURL=open-S7YUWON4.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/open.ts"],"sourcesContent":["import { connectToDaemon } from './shared.js';\nimport { exec } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function run(_args: string[], vaultDir: string): Promise<void> {\n await connectToDaemon(vaultDir);\n\n const daemonPath = path.join(vaultDir, 'daemon.json');\n let port: number;\n try {\n const info = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n port = info.port;\n } catch {\n console.error('Could not read daemon.json. Try: myco restart');\n process.exit(1);\n }\n\n const url = `http://localhost:${port}/`;\n\n // `start` on Windows is a cmd.exe builtin, not an executable — must use exec, not execFile\n const cmd = process.platform === 'darwin' ? `open ${url}`\n : process.platform === 'win32' ? `start ${url}`\n : `xdg-open ${url}`;\n\n exec(cmd);\n console.log(`Opened ${url}`);\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA,SAAS,YAAY;AACrB,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,eAAsB,IAAI,OAAiB,UAAiC;AAC1E,QAAM,gBAAgB,QAAQ;AAE9B,QAAM,aAAa,KAAK,KAAK,UAAU,aAAa;AACpD,MAAI;AACJ,MAAI;AACF,UAAM,OAAO,KAAK,MAAM,GAAG,aAAa,YAAY,OAAO,CAAC;AAC5D,WAAO,KAAK;AAAA,EACd,QAAQ;AACN,YAAQ,MAAM,+CAA+C;AAC7D,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,MAAM,oBAAoB,IAAI;AAGpC,QAAM,MAAM,QAAQ,aAAa,WAAW,QAAQ,GAAG,KACnD,QAAQ,aAAa,UAAU,SAAS,GAAG,KAC3C,YAAY,GAAG;AAEnB,OAAK,GAAG;AACR,UAAQ,IAAI,UAAU,GAAG,EAAE;AAC7B;","names":[]}
1
+ {"version":3,"sources":["../src/cli/open.ts"],"sourcesContent":["import { connectToDaemon } from './shared.js';\nimport { exec } from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function run(_args: string[], vaultDir: string): Promise<void> {\n await connectToDaemon(vaultDir);\n\n const daemonPath = path.join(vaultDir, 'daemon.json');\n let port: number;\n try {\n const info = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n port = info.port;\n } catch {\n console.error('Could not read daemon.json. Try: myco restart');\n process.exit(1);\n }\n\n const url = `http://localhost:${port}/`;\n\n // `start` on Windows is a cmd.exe builtin, not an executable — must use exec, not execFile\n const cmd = process.platform === 'darwin' ? `open ${url}`\n : process.platform === 'win32' ? `start ${url}`\n : `xdg-open ${url}`;\n\n exec(cmd);\n console.log(`Opened ${url}`);\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA,SAAS,YAAY;AACrB,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,eAAsB,IAAI,OAAiB,UAAiC;AAC1E,QAAM,gBAAgB,QAAQ;AAE9B,QAAM,aAAa,KAAK,KAAK,UAAU,aAAa;AACpD,MAAI;AACJ,MAAI;AACF,UAAM,OAAO,KAAK,MAAM,GAAG,aAAa,YAAY,OAAO,CAAC;AAC5D,WAAO,KAAK;AAAA,EACd,QAAQ;AACN,YAAQ,MAAM,+CAA+C;AAC7D,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,MAAM,oBAAoB,IAAI;AAGpC,QAAM,MAAM,QAAQ,aAAa,WAAW,QAAQ,GAAG,KACnD,QAAQ,aAAa,UAAU,SAAS,GAAG,KAC3C,YAAY,GAAG;AAEnB,OAAK,GAAG;AACR,UAAQ,IAAI,UAAU,GAAG,EAAE;AAC7B;","names":[]}
@@ -2,13 +2,13 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import {
3
3
  OPENAI_API_KEY_ENV,
4
4
  OpenAIEmbeddingProvider
5
- } from "./chunk-SW62AX75.js";
6
- import "./chunk-QL2RBFIC.js";
7
- import "./chunk-PIRWYDOH.js";
5
+ } from "./chunk-OKCSSDFC.js";
6
+ import "./chunk-5YQ6VOFZ.js";
7
+ import "./chunk-TRA3R4EC.js";
8
8
  import "./chunk-S6I62FAH.js";
9
9
  import "./chunk-PZUWP5VK.js";
10
10
  export {
11
11
  OPENAI_API_KEY_ENV,
12
12
  OpenAIEmbeddingProvider
13
13
  };
14
- //# sourceMappingURL=openai-embeddings-HWAKOGUM.js.map
14
+ //# sourceMappingURL=openai-embeddings-5T5ZP7LO.js.map
@@ -2,13 +2,13 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import {
3
3
  OPENROUTER_API_KEY_ENV,
4
4
  OpenRouterEmbeddingProvider
5
- } from "./chunk-J3L2RTYK.js";
6
- import "./chunk-QL2RBFIC.js";
7
- import "./chunk-PIRWYDOH.js";
5
+ } from "./chunk-RBFECYNA.js";
6
+ import "./chunk-5YQ6VOFZ.js";
7
+ import "./chunk-TRA3R4EC.js";
8
8
  import "./chunk-S6I62FAH.js";
9
9
  import "./chunk-PZUWP5VK.js";
10
10
  export {
11
11
  OPENROUTER_API_KEY_ENV,
12
12
  OpenRouterEmbeddingProvider
13
13
  };
14
- //# sourceMappingURL=openrouter-GXZK7JXR.js.map
14
+ //# sourceMappingURL=openrouter-RD2COFC7.js.map
@@ -1,15 +1,15 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  sendEvent
4
- } from "./chunk-HLGPGHT7.js";
4
+ } from "./chunk-EVPG26CR.js";
5
5
  import "./chunk-V7XG6V6C.js";
6
- import "./chunk-RR75ZKEV.js";
7
- import "./chunk-SVQAPEYH.js";
8
- import "./chunk-PIRWYDOH.js";
9
- import "./chunk-S6I62FAH.js";
10
- import "./chunk-FYGFMIS6.js";
6
+ import "./chunk-OQVKLTQY.js";
7
+ import "./chunk-UWXJCLCK.js";
8
+ import "./chunk-ZKXW46HZ.js";
11
9
  import "./chunk-QFMBZ72S.js";
12
10
  import "./chunk-LPUQPDC2.js";
11
+ import "./chunk-TRA3R4EC.js";
12
+ import "./chunk-S6I62FAH.js";
13
13
  import "./chunk-D7TYRPRM.js";
14
14
  import "./chunk-E4VLWIJC.js";
15
15
  import "./chunk-KH64DHOY.js";
@@ -27,4 +27,4 @@ async function main() {
27
27
  export {
28
28
  main
29
29
  };
30
- //# sourceMappingURL=post-compact-BPICHUPV.js.map
30
+ //# sourceMappingURL=post-compact-EFKFT7TM.js.map
@@ -5,17 +5,17 @@ import {
5
5
  import {
6
6
  normalizeHookInput,
7
7
  readStdin
8
- } from "./chunk-RR75ZKEV.js";
8
+ } from "./chunk-OQVKLTQY.js";
9
9
  import {
10
10
  DaemonClient
11
- } from "./chunk-SVQAPEYH.js";
11
+ } from "./chunk-UWXJCLCK.js";
12
+ import "./chunk-ZKXW46HZ.js";
13
+ import "./chunk-QFMBZ72S.js";
14
+ import "./chunk-LPUQPDC2.js";
12
15
  import {
13
16
  TOOL_OUTPUT_PREVIEW_CHARS
14
- } from "./chunk-PIRWYDOH.js";
17
+ } from "./chunk-TRA3R4EC.js";
15
18
  import "./chunk-S6I62FAH.js";
16
- import "./chunk-FYGFMIS6.js";
17
- import "./chunk-QFMBZ72S.js";
18
- import "./chunk-LPUQPDC2.js";
19
19
  import "./chunk-D7TYRPRM.js";
20
20
  import "./chunk-E4VLWIJC.js";
21
21
  import "./chunk-KH64DHOY.js";
@@ -60,4 +60,4 @@ async function main() {
60
60
  export {
61
61
  main
62
62
  };
63
- //# sourceMappingURL=post-tool-use-OHJ2EH7I.js.map
63
+ //# sourceMappingURL=post-tool-use-624YC6ZH.js.map
@@ -1,15 +1,15 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  sendEvent
4
- } from "./chunk-HLGPGHT7.js";
4
+ } from "./chunk-EVPG26CR.js";
5
5
  import "./chunk-V7XG6V6C.js";
6
- import "./chunk-RR75ZKEV.js";
7
- import "./chunk-SVQAPEYH.js";
8
- import "./chunk-PIRWYDOH.js";
9
- import "./chunk-S6I62FAH.js";
10
- import "./chunk-FYGFMIS6.js";
6
+ import "./chunk-OQVKLTQY.js";
7
+ import "./chunk-UWXJCLCK.js";
8
+ import "./chunk-ZKXW46HZ.js";
11
9
  import "./chunk-QFMBZ72S.js";
12
10
  import "./chunk-LPUQPDC2.js";
11
+ import "./chunk-TRA3R4EC.js";
12
+ import "./chunk-S6I62FAH.js";
13
13
  import "./chunk-D7TYRPRM.js";
14
14
  import "./chunk-E4VLWIJC.js";
15
15
  import "./chunk-KH64DHOY.js";
@@ -29,4 +29,4 @@ async function main() {
29
29
  export {
30
30
  main
31
31
  };
32
- //# sourceMappingURL=post-tool-use-failure-CBPY2TSN.js.map
32
+ //# sourceMappingURL=post-tool-use-failure-QCHZAWQH.js.map
@@ -1,15 +1,15 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  sendEvent
4
- } from "./chunk-HLGPGHT7.js";
4
+ } from "./chunk-EVPG26CR.js";
5
5
  import "./chunk-V7XG6V6C.js";
6
- import "./chunk-RR75ZKEV.js";
7
- import "./chunk-SVQAPEYH.js";
8
- import "./chunk-PIRWYDOH.js";
9
- import "./chunk-S6I62FAH.js";
10
- import "./chunk-FYGFMIS6.js";
6
+ import "./chunk-OQVKLTQY.js";
7
+ import "./chunk-UWXJCLCK.js";
8
+ import "./chunk-ZKXW46HZ.js";
11
9
  import "./chunk-QFMBZ72S.js";
12
10
  import "./chunk-LPUQPDC2.js";
11
+ import "./chunk-TRA3R4EC.js";
12
+ import "./chunk-S6I62FAH.js";
13
13
  import "./chunk-D7TYRPRM.js";
14
14
  import "./chunk-E4VLWIJC.js";
15
15
  import "./chunk-KH64DHOY.js";
@@ -26,4 +26,4 @@ async function main() {
26
26
  export {
27
27
  main
28
28
  };
29
- //# sourceMappingURL=pre-compact-ULAA4XIB.js.map
29
+ //# sourceMappingURL=pre-compact-7DWH2EM3.js.map
@@ -1,12 +1,12 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  checkLocalProvider
4
- } from "./chunk-YRUJ5KGV.js";
5
- import "./chunk-LUQBT2Y4.js";
6
- import "./chunk-PIRWYDOH.js";
4
+ } from "./chunk-GDCSPMH4.js";
5
+ import "./chunk-HHZ3RTEI.js";
6
+ import "./chunk-TRA3R4EC.js";
7
7
  import "./chunk-S6I62FAH.js";
8
8
  import "./chunk-PZUWP5VK.js";
9
9
  export {
10
10
  checkLocalProvider
11
11
  };
12
- //# sourceMappingURL=provider-check-CKZW3GQX.js.map
12
+ //# sourceMappingURL=provider-check-QN7OGXZA.js.map
@@ -5,13 +5,13 @@ import {
5
5
  loadAllTasks,
6
6
  validateTaskName,
7
7
  writeUserTask
8
- } from "./chunk-D4ESHOOJ.js";
9
- import "./chunk-7NBDELZB.js";
8
+ } from "./chunk-KNTJOMWY.js";
9
+ import "./chunk-NVCGF2DS.js";
10
10
  import "./chunk-IB76KGBY.js";
11
11
  import "./chunk-MYX5NCRH.js";
12
- import "./chunk-PIRWYDOH.js";
13
- import "./chunk-S6I62FAH.js";
14
12
  import "./chunk-LPUQPDC2.js";
13
+ import "./chunk-TRA3R4EC.js";
14
+ import "./chunk-S6I62FAH.js";
15
15
  import "./chunk-D7TYRPRM.js";
16
16
  import "./chunk-KH64DHOY.js";
17
17
  import "./chunk-PZUWP5VK.js";
@@ -22,4 +22,4 @@ export {
22
22
  validateTaskName,
23
23
  writeUserTask
24
24
  };
25
- //# sourceMappingURL=registry-ZHUVXGPO.js.map
25
+ //# sourceMappingURL=registry-2XQMCPA6.js.map
@@ -1,20 +1,22 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
- SymbiontInstaller,
4
3
  isProcessAlive
5
- } from "./chunk-SFC4GXEN.js";
4
+ } from "./chunk-SBVDG5JP.js";
6
5
  import "./chunk-SAKJMNSR.js";
7
- import "./chunk-LUQBT2Y4.js";
6
+ import {
7
+ SymbiontInstaller
8
+ } from "./chunk-TNCBMGWB.js";
9
+ import "./chunk-HHZ3RTEI.js";
8
10
  import "./chunk-MYX5NCRH.js";
9
- import "./chunk-SVQAPEYH.js";
10
- import "./chunk-PIRWYDOH.js";
11
- import "./chunk-S6I62FAH.js";
12
- import "./chunk-FYGFMIS6.js";
11
+ import "./chunk-UWXJCLCK.js";
12
+ import "./chunk-ZKXW46HZ.js";
13
13
  import {
14
14
  loadManifests,
15
15
  resolvePackageRoot
16
16
  } from "./chunk-QFMBZ72S.js";
17
17
  import "./chunk-LPUQPDC2.js";
18
+ import "./chunk-TRA3R4EC.js";
19
+ import "./chunk-S6I62FAH.js";
18
20
  import "./chunk-D7TYRPRM.js";
19
21
  import "./chunk-E4VLWIJC.js";
20
22
  import "./chunk-KH64DHOY.js";
@@ -89,4 +91,4 @@ async function run(args) {
89
91
  export {
90
92
  run
91
93
  };
92
- //# sourceMappingURL=remove-52PTVOCJ.js.map
94
+ //# sourceMappingURL=remove-ESVIET5C.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/remove.ts"],"sourcesContent":["import { resolveVaultDir } from '../vault/resolve.js';\nimport { isProcessAlive } from './shared.js';\nimport { loadManifests, resolvePackageRoot } from '../symbionts/detect.js';\nimport { SymbiontInstaller } from '../symbionts/installer.js';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function run(args: string[]): Promise<void> {\n const vaultDir = resolveVaultDir();\n if (!fs.existsSync(path.join(vaultDir, 'myco.yaml'))) {\n console.error(`No myco.yaml found in ${vaultDir}. Nothing to remove.`);\n process.exit(1);\n }\n\n const projectRoot = path.dirname(vaultDir);\n const allManifests = loadManifests();\n const pkgRoot = resolvePackageRoot();\n const removeVault = args.includes('--remove-vault');\n\n console.log(`Removing Myco from ${projectRoot}\\n`);\n\n // --- Stop daemon ---\n\n const daemonPath = path.join(vaultDir, 'daemon.json');\n try {\n const daemon = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n if (isProcessAlive(daemon.pid)) {\n process.kill(daemon.pid, 'SIGTERM');\n console.log(` \\u2713 Stopped daemon (pid ${daemon.pid})`);\n }\n fs.unlinkSync(daemonPath);\n } catch { /* no daemon running */ }\n\n // --- Unregister from all configured agents ---\n\n const configured = allManifests.filter((m) =>\n fs.existsSync(path.join(projectRoot, m.configDir)),\n );\n\n for (const manifest of configured) {\n try {\n const installer = new SymbiontInstaller(manifest, projectRoot, pkgRoot);\n const result = installer.uninstall();\n\n const removed = [\n result.hooks && 'hooks',\n result.mcp && 'MCP server',\n result.skills && 'skills',\n result.settings && 'settings',\n result.instructions && 'instructions',\n ].filter(Boolean);\n\n if (removed.length > 0) {\n console.log(` \\u2713 Removed from ${manifest.displayName}: ${removed.join(', ')}`);\n }\n } catch (err) {\n console.error(` \\u2717 Failed to clean ${manifest.displayName}: ${(err as Error).message}`);\n }\n }\n\n // --- Remove .mcp.json if it's now empty ---\n\n const mcpJsonPath = path.join(projectRoot, '.mcp.json');\n try {\n const config = JSON.parse(fs.readFileSync(mcpJsonPath, 'utf-8'));\n if (!config.mcpServers || Object.keys(config.mcpServers).length === 0) {\n fs.unlinkSync(mcpJsonPath);\n console.log(' \\u2713 Removed empty .mcp.json');\n }\n } catch { /* doesn't exist or already clean */ }\n\n // --- Remove vault (unless --keep-vault) ---\n\n if (removeVault) {\n fs.rmSync(vaultDir, { recursive: true, force: true });\n console.log(` \\u2713 Removed vault at ${vaultDir}`);\n } else {\n console.log(` \\u2013 Vault preserved at ${vaultDir} (use --remove-vault to delete)`);\n }\n\n console.log('\\nMyco has been removed from this project.');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,eAAsB,IAAI,MAA+B;AACvD,QAAM,WAAW,gBAAgB;AACjC,MAAI,CAAC,GAAG,WAAW,KAAK,KAAK,UAAU,WAAW,CAAC,GAAG;AACpD,YAAQ,MAAM,yBAAyB,QAAQ,sBAAsB;AACrE,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,cAAc,KAAK,QAAQ,QAAQ;AACzC,QAAM,eAAe,cAAc;AACnC,QAAM,UAAU,mBAAmB;AACnC,QAAM,cAAc,KAAK,SAAS,gBAAgB;AAElD,UAAQ,IAAI,sBAAsB,WAAW;AAAA,CAAI;AAIjD,QAAM,aAAa,KAAK,KAAK,UAAU,aAAa;AACpD,MAAI;AACF,UAAM,SAAS,KAAK,MAAM,GAAG,aAAa,YAAY,OAAO,CAAC;AAC9D,QAAI,eAAe,OAAO,GAAG,GAAG;AAC9B,cAAQ,KAAK,OAAO,KAAK,SAAS;AAClC,cAAQ,IAAI,gCAAgC,OAAO,GAAG,GAAG;AAAA,IAC3D;AACA,OAAG,WAAW,UAAU;AAAA,EAC1B,QAAQ;AAAA,EAA0B;AAIlC,QAAM,aAAa,aAAa;AAAA,IAAO,CAAC,MACtC,GAAG,WAAW,KAAK,KAAK,aAAa,EAAE,SAAS,CAAC;AAAA,EACnD;AAEA,aAAW,YAAY,YAAY;AACjC,QAAI;AACF,YAAM,YAAY,IAAI,kBAAkB,UAAU,aAAa,OAAO;AACtE,YAAM,SAAS,UAAU,UAAU;AAEnC,YAAM,UAAU;AAAA,QACd,OAAO,SAAS;AAAA,QAChB,OAAO,OAAO;AAAA,QACd,OAAO,UAAU;AAAA,QACjB,OAAO,YAAY;AAAA,QACnB,OAAO,gBAAgB;AAAA,MACzB,EAAE,OAAO,OAAO;AAEhB,UAAI,QAAQ,SAAS,GAAG;AACtB,gBAAQ,IAAI,yBAAyB,SAAS,WAAW,KAAK,QAAQ,KAAK,IAAI,CAAC,EAAE;AAAA,MACpF;AAAA,IACF,SAAS,KAAK;AACZ,cAAQ,MAAM,4BAA4B,SAAS,WAAW,KAAM,IAAc,OAAO,EAAE;AAAA,IAC7F;AAAA,EACF;AAIA,QAAM,cAAc,KAAK,KAAK,aAAa,WAAW;AACtD,MAAI;AACF,UAAM,SAAS,KAAK,MAAM,GAAG,aAAa,aAAa,OAAO,CAAC;AAC/D,QAAI,CAAC,OAAO,cAAc,OAAO,KAAK,OAAO,UAAU,EAAE,WAAW,GAAG;AACrE,SAAG,WAAW,WAAW;AACzB,cAAQ,IAAI,kCAAkC;AAAA,IAChD;AAAA,EACF,QAAQ;AAAA,EAAuC;AAI/C,MAAI,aAAa;AACf,OAAG,OAAO,UAAU,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AACpD,YAAQ,IAAI,6BAA6B,QAAQ,EAAE;AAAA,EACrD,OAAO;AACL,YAAQ,IAAI,+BAA+B,QAAQ,iCAAiC;AAAA,EACtF;AAEA,UAAQ,IAAI,4CAA4C;AAC1D;","names":[]}
1
+ {"version":3,"sources":["../src/cli/remove.ts"],"sourcesContent":["import { resolveVaultDir } from '../vault/resolve.js';\nimport { isProcessAlive } from './shared.js';\nimport { loadManifests, resolvePackageRoot } from '../symbionts/detect.js';\nimport { SymbiontInstaller } from '../symbionts/installer.js';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function run(args: string[]): Promise<void> {\n const vaultDir = resolveVaultDir();\n if (!fs.existsSync(path.join(vaultDir, 'myco.yaml'))) {\n console.error(`No myco.yaml found in ${vaultDir}. Nothing to remove.`);\n process.exit(1);\n }\n\n const projectRoot = path.dirname(vaultDir);\n const allManifests = loadManifests();\n const pkgRoot = resolvePackageRoot();\n const removeVault = args.includes('--remove-vault');\n\n console.log(`Removing Myco from ${projectRoot}\\n`);\n\n // --- Stop daemon ---\n\n const daemonPath = path.join(vaultDir, 'daemon.json');\n try {\n const daemon = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n if (isProcessAlive(daemon.pid)) {\n process.kill(daemon.pid, 'SIGTERM');\n console.log(` \\u2713 Stopped daemon (pid ${daemon.pid})`);\n }\n fs.unlinkSync(daemonPath);\n } catch { /* no daemon running */ }\n\n // --- Unregister from all configured agents ---\n\n const configured = allManifests.filter((m) =>\n fs.existsSync(path.join(projectRoot, m.configDir)),\n );\n\n for (const manifest of configured) {\n try {\n const installer = new SymbiontInstaller(manifest, projectRoot, pkgRoot);\n const result = installer.uninstall();\n\n const removed = [\n result.hooks && 'hooks',\n result.mcp && 'MCP server',\n result.skills && 'skills',\n result.settings && 'settings',\n result.instructions && 'instructions',\n ].filter(Boolean);\n\n if (removed.length > 0) {\n console.log(` \\u2713 Removed from ${manifest.displayName}: ${removed.join(', ')}`);\n }\n } catch (err) {\n console.error(` \\u2717 Failed to clean ${manifest.displayName}: ${(err as Error).message}`);\n }\n }\n\n // --- Remove .mcp.json if it's now empty ---\n\n const mcpJsonPath = path.join(projectRoot, '.mcp.json');\n try {\n const config = JSON.parse(fs.readFileSync(mcpJsonPath, 'utf-8'));\n if (!config.mcpServers || Object.keys(config.mcpServers).length === 0) {\n fs.unlinkSync(mcpJsonPath);\n console.log(' \\u2713 Removed empty .mcp.json');\n }\n } catch { /* doesn't exist or already clean */ }\n\n // --- Remove vault (unless --keep-vault) ---\n\n if (removeVault) {\n fs.rmSync(vaultDir, { recursive: true, force: true });\n console.log(` \\u2713 Removed vault at ${vaultDir}`);\n } else {\n console.log(` \\u2013 Vault preserved at ${vaultDir} (use --remove-vault to delete)`);\n }\n\n console.log('\\nMyco has been removed from this project.');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,eAAsB,IAAI,MAA+B;AACvD,QAAM,WAAW,gBAAgB;AACjC,MAAI,CAAC,GAAG,WAAW,KAAK,KAAK,UAAU,WAAW,CAAC,GAAG;AACpD,YAAQ,MAAM,yBAAyB,QAAQ,sBAAsB;AACrE,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,cAAc,KAAK,QAAQ,QAAQ;AACzC,QAAM,eAAe,cAAc;AACnC,QAAM,UAAU,mBAAmB;AACnC,QAAM,cAAc,KAAK,SAAS,gBAAgB;AAElD,UAAQ,IAAI,sBAAsB,WAAW;AAAA,CAAI;AAIjD,QAAM,aAAa,KAAK,KAAK,UAAU,aAAa;AACpD,MAAI;AACF,UAAM,SAAS,KAAK,MAAM,GAAG,aAAa,YAAY,OAAO,CAAC;AAC9D,QAAI,eAAe,OAAO,GAAG,GAAG;AAC9B,cAAQ,KAAK,OAAO,KAAK,SAAS;AAClC,cAAQ,IAAI,gCAAgC,OAAO,GAAG,GAAG;AAAA,IAC3D;AACA,OAAG,WAAW,UAAU;AAAA,EAC1B,QAAQ;AAAA,EAA0B;AAIlC,QAAM,aAAa,aAAa;AAAA,IAAO,CAAC,MACtC,GAAG,WAAW,KAAK,KAAK,aAAa,EAAE,SAAS,CAAC;AAAA,EACnD;AAEA,aAAW,YAAY,YAAY;AACjC,QAAI;AACF,YAAM,YAAY,IAAI,kBAAkB,UAAU,aAAa,OAAO;AACtE,YAAM,SAAS,UAAU,UAAU;AAEnC,YAAM,UAAU;AAAA,QACd,OAAO,SAAS;AAAA,QAChB,OAAO,OAAO;AAAA,QACd,OAAO,UAAU;AAAA,QACjB,OAAO,YAAY;AAAA,QACnB,OAAO,gBAAgB;AAAA,MACzB,EAAE,OAAO,OAAO;AAEhB,UAAI,QAAQ,SAAS,GAAG;AACtB,gBAAQ,IAAI,yBAAyB,SAAS,WAAW,KAAK,QAAQ,KAAK,IAAI,CAAC,EAAE;AAAA,MACpF;AAAA,IACF,SAAS,KAAK;AACZ,cAAQ,MAAM,4BAA4B,SAAS,WAAW,KAAM,IAAc,OAAO,EAAE;AAAA,IAC7F;AAAA,EACF;AAIA,QAAM,cAAc,KAAK,KAAK,aAAa,WAAW;AACtD,MAAI;AACF,UAAM,SAAS,KAAK,MAAM,GAAG,aAAa,aAAa,OAAO,CAAC;AAC/D,QAAI,CAAC,OAAO,cAAc,OAAO,KAAK,OAAO,UAAU,EAAE,WAAW,GAAG;AACrE,SAAG,WAAW,WAAW;AACzB,cAAQ,IAAI,kCAAkC;AAAA,IAChD;AAAA,EACF,QAAQ;AAAA,EAAuC;AAI/C,MAAI,aAAa;AACf,OAAG,OAAO,UAAU,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AACpD,YAAQ,IAAI,6BAA6B,QAAQ,EAAE;AAAA,EACrD,OAAO;AACL,YAAQ,IAAI,+BAA+B,QAAQ,iCAAiC;AAAA,EACtF;AAEA,UAAQ,IAAI,4CAA4C;AAC1D;","names":[]}
@@ -2,14 +2,14 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import {
3
3
  insertResolutionEvent,
4
4
  listResolutionEvents
5
- } from "./chunk-LGPBVBFY.js";
6
- import "./chunk-4VSNNMEU.js";
5
+ } from "./chunk-TVV6PZOC.js";
6
+ import "./chunk-S66YG6QK.js";
7
7
  import "./chunk-MYX5NCRH.js";
8
- import "./chunk-PIRWYDOH.js";
8
+ import "./chunk-TRA3R4EC.js";
9
9
  import "./chunk-S6I62FAH.js";
10
10
  import "./chunk-PZUWP5VK.js";
11
11
  export {
12
12
  insertResolutionEvent,
13
13
  listResolutionEvents
14
14
  };
15
- //# sourceMappingURL=resolution-events-WZHPQQMN.js.map
15
+ //# sourceMappingURL=resolution-events-5EVUEWHS.js.map
@@ -1,15 +1,16 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  isProcessAlive
4
- } from "./chunk-SFC4GXEN.js";
4
+ } from "./chunk-SBVDG5JP.js";
5
5
  import "./chunk-SAKJMNSR.js";
6
- import "./chunk-LUQBT2Y4.js";
6
+ import "./chunk-TNCBMGWB.js";
7
+ import "./chunk-HHZ3RTEI.js";
7
8
  import "./chunk-MYX5NCRH.js";
8
- import "./chunk-SVQAPEYH.js";
9
- import "./chunk-PIRWYDOH.js";
10
- import "./chunk-S6I62FAH.js";
11
- import "./chunk-FYGFMIS6.js";
9
+ import "./chunk-UWXJCLCK.js";
10
+ import "./chunk-ZKXW46HZ.js";
12
11
  import "./chunk-LPUQPDC2.js";
12
+ import "./chunk-TRA3R4EC.js";
13
+ import "./chunk-S6I62FAH.js";
13
14
  import "./chunk-PZUWP5VK.js";
14
15
 
15
16
  // src/cli/restart.ts
@@ -33,7 +34,7 @@ async function run(_args, vaultDir) {
33
34
  } catch {
34
35
  }
35
36
  }
36
- const { DaemonClient } = await import("./client-ZBCGODTS.js");
37
+ const { DaemonClient } = await import("./client-KZGZHHXT.js");
37
38
  const client = new DaemonClient(vaultDir);
38
39
  console.log("Waiting for health check...");
39
40
  const healthy = await client.ensureRunning();
@@ -52,4 +53,4 @@ async function run(_args, vaultDir) {
52
53
  export {
53
54
  run
54
55
  };
55
- //# sourceMappingURL=restart-O37BUPLH.js.map
56
+ //# sourceMappingURL=restart-AZHV6OKM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/restart.ts"],"sourcesContent":["import { isProcessAlive } from './shared.js';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function run(_args: string[], vaultDir: string): Promise<void> {\n const daemonPath = path.join(vaultDir, 'daemon.json');\n\n // Kill existing daemon if running\n if (fs.existsSync(daemonPath)) {\n try {\n const daemon = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n if (isProcessAlive(daemon.pid)) {\n process.kill(daemon.pid, 'SIGTERM');\n console.log(`Stopped daemon (pid ${daemon.pid})`);\n } else {\n console.log(`Daemon pid ${daemon.pid} was already dead`);\n }\n } catch { /* ignore */ }\n try { fs.unlinkSync(daemonPath); } catch { /* already gone */ }\n }\n\n // Spawn and wait for health using the shared client\n // (handles CLAUDE_PLUGIN_ROOT + CURSOR_PLUGIN_ROOT resolution)\n const { DaemonClient } = await import('../hooks/client.js');\n const client = new DaemonClient(vaultDir);\n\n console.log('Waiting for health check...');\n const healthy = await client.ensureRunning();\n if (healthy) {\n try {\n const info = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n console.log(`Daemon healthy on port ${info.port}`);\n console.log(`Dashboard: http://localhost:${info.port}/`);\n } catch {\n console.log('Daemon healthy');\n }\n } else {\n console.error('Daemon failed to become healthy');\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,eAAsB,IAAI,OAAiB,UAAiC;AAC1E,QAAM,aAAa,KAAK,KAAK,UAAU,aAAa;AAGpD,MAAI,GAAG,WAAW,UAAU,GAAG;AAC7B,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,GAAG,aAAa,YAAY,OAAO,CAAC;AAC9D,UAAI,eAAe,OAAO,GAAG,GAAG;AAC9B,gBAAQ,KAAK,OAAO,KAAK,SAAS;AAClC,gBAAQ,IAAI,uBAAuB,OAAO,GAAG,GAAG;AAAA,MAClD,OAAO;AACL,gBAAQ,IAAI,cAAc,OAAO,GAAG,mBAAmB;AAAA,MACzD;AAAA,IACF,QAAQ;AAAA,IAAe;AACvB,QAAI;AAAE,SAAG,WAAW,UAAU;AAAA,IAAG,QAAQ;AAAA,IAAqB;AAAA,EAChE;AAIA,QAAM,EAAE,aAAa,IAAI,MAAM,OAAO,sBAAoB;AAC1D,QAAM,SAAS,IAAI,aAAa,QAAQ;AAExC,UAAQ,IAAI,6BAA6B;AACzC,QAAM,UAAU,MAAM,OAAO,cAAc;AAC3C,MAAI,SAAS;AACX,QAAI;AACF,YAAM,OAAO,KAAK,MAAM,GAAG,aAAa,YAAY,OAAO,CAAC;AAC5D,cAAQ,IAAI,0BAA0B,KAAK,IAAI,EAAE;AACjD,cAAQ,IAAI,+BAA+B,KAAK,IAAI,GAAG;AAAA,IACzD,QAAQ;AACN,cAAQ,IAAI,gBAAgB;AAAA,IAC9B;AAAA,EACF,OAAO;AACL,YAAQ,MAAM,iCAAiC;AAAA,EACjD;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/cli/restart.ts"],"sourcesContent":["import { isProcessAlive } from './shared.js';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nexport async function run(_args: string[], vaultDir: string): Promise<void> {\n const daemonPath = path.join(vaultDir, 'daemon.json');\n\n // Kill existing daemon if running\n if (fs.existsSync(daemonPath)) {\n try {\n const daemon = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n if (isProcessAlive(daemon.pid)) {\n process.kill(daemon.pid, 'SIGTERM');\n console.log(`Stopped daemon (pid ${daemon.pid})`);\n } else {\n console.log(`Daemon pid ${daemon.pid} was already dead`);\n }\n } catch { /* ignore */ }\n try { fs.unlinkSync(daemonPath); } catch { /* already gone */ }\n }\n\n // Spawn and wait for health using the shared client\n // (handles CLAUDE_PLUGIN_ROOT + CURSOR_PLUGIN_ROOT resolution)\n const { DaemonClient } = await import('../hooks/client.js');\n const client = new DaemonClient(vaultDir);\n\n console.log('Waiting for health check...');\n const healthy = await client.ensureRunning();\n if (healthy) {\n try {\n const info = JSON.parse(fs.readFileSync(daemonPath, 'utf-8'));\n console.log(`Daemon healthy on port ${info.port}`);\n console.log(`Dashboard: http://localhost:${info.port}/`);\n } catch {\n console.log('Daemon healthy');\n }\n } else {\n console.error('Daemon failed to become healthy');\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AACA,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,eAAsB,IAAI,OAAiB,UAAiC;AAC1E,QAAM,aAAa,KAAK,KAAK,UAAU,aAAa;AAGpD,MAAI,GAAG,WAAW,UAAU,GAAG;AAC7B,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,GAAG,aAAa,YAAY,OAAO,CAAC;AAC9D,UAAI,eAAe,OAAO,GAAG,GAAG;AAC9B,gBAAQ,KAAK,OAAO,KAAK,SAAS;AAClC,gBAAQ,IAAI,uBAAuB,OAAO,GAAG,GAAG;AAAA,MAClD,OAAO;AACL,gBAAQ,IAAI,cAAc,OAAO,GAAG,mBAAmB;AAAA,MACzD;AAAA,IACF,QAAQ;AAAA,IAAe;AACvB,QAAI;AAAE,SAAG,WAAW,UAAU;AAAA,IAAG,QAAQ;AAAA,IAAqB;AAAA,EAChE;AAIA,QAAM,EAAE,aAAa,IAAI,MAAM,OAAO,sBAAoB;AAC1D,QAAM,SAAS,IAAI,aAAa,QAAQ;AAExC,UAAQ,IAAI,6BAA6B;AACzC,QAAM,UAAU,MAAM,OAAO,cAAc;AAC3C,MAAI,SAAS;AACX,QAAI;AACF,YAAM,OAAO,KAAK,MAAM,GAAG,aAAa,YAAY,OAAO,CAAC;AAC5D,cAAQ,IAAI,0BAA0B,KAAK,IAAI,EAAE;AACjD,cAAQ,IAAI,+BAA+B,KAAK,IAAI,GAAG;AAAA,IACzD,QAAQ;AACN,cAAQ,IAAI,gBAAgB;AAAA,IAC9B;AAAA,EACF,OAAO;AACL,YAAQ,MAAM,iCAAiC;AAAA,EACjD;AACF;","names":[]}
@@ -1,21 +1,22 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  fullTextSearch
4
- } from "./chunk-D4M2AV65.js";
4
+ } from "./chunk-DTE3SHYK.js";
5
5
  import {
6
6
  connectToDaemon,
7
7
  initVaultDb
8
- } from "./chunk-SFC4GXEN.js";
8
+ } from "./chunk-SBVDG5JP.js";
9
9
  import "./chunk-SAKJMNSR.js";
10
- import "./chunk-LUQBT2Y4.js";
10
+ import "./chunk-TNCBMGWB.js";
11
+ import "./chunk-HHZ3RTEI.js";
11
12
  import "./chunk-MYX5NCRH.js";
12
- import "./chunk-SVQAPEYH.js";
13
+ import "./chunk-UWXJCLCK.js";
14
+ import "./chunk-ZKXW46HZ.js";
15
+ import "./chunk-LPUQPDC2.js";
13
16
  import {
14
17
  CONTENT_SNIPPET_CHARS
15
- } from "./chunk-PIRWYDOH.js";
18
+ } from "./chunk-TRA3R4EC.js";
16
19
  import "./chunk-S6I62FAH.js";
17
- import "./chunk-FYGFMIS6.js";
18
- import "./chunk-LPUQPDC2.js";
19
20
  import "./chunk-PZUWP5VK.js";
20
21
 
21
22
  // src/cli/search.ts
@@ -88,4 +89,4 @@ export {
88
89
  run,
89
90
  runVectors
90
91
  };
91
- //# sourceMappingURL=search-52YK2ZWU.js.map
92
+ //# sourceMappingURL=search-JS4HXYGS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli/search.ts"],"sourcesContent":["/**\n * CLI: myco search — full-text search via direct SQLite reads.\n * CLI: myco vectors — semantic search via daemon API (requires vector store).\n *\n * The `search` command opens the database directly (WAL mode allows concurrent\n * reads) and does NOT require the daemon. The `vectors` command still routes\n * through the daemon because it needs the in-process vector store.\n */\n\nimport { CONTENT_SNIPPET_CHARS } from '@myco/constants.js';\nimport { fullTextSearch } from '@myco/db/queries/search.js';\nimport { connectToDaemon, initVaultDb } from './shared.js';\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/** Default result limit for CLI search. */\nconst CLI_SEARCH_LIMIT = 10;\n\n/** Default result limit for CLI vectors. */\nconst CLI_VECTORS_LIMIT = 20;\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ninterface SearchResult {\n id: string;\n type: string;\n title: string;\n preview: string;\n score: number;\n session_id?: string;\n}\n\n// ---------------------------------------------------------------------------\n// search command — direct DB read\n// ---------------------------------------------------------------------------\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n const query = args.join(' ');\n if (!query) { console.error('Usage: myco search <query>'); process.exit(1); }\n\n const cleanup = initVaultDb(vaultDir);\n try {\n const results = fullTextSearch(query, { limit: CLI_SEARCH_LIMIT });\n\n console.log(`=== Text Search: \"${query}\" ===`);\n if (results.length === 0) {\n console.log(' (no results)');\n } else {\n for (const r of results) {\n const preview = (r.preview ?? r.title ?? '').slice(0, CONTENT_SNIPPET_CHARS);\n console.log(` [${r.type}] ${preview}`);\n }\n }\n } catch (err) {\n console.error('Search failed:', (err as Error).message);\n process.exit(1);\n } finally {\n cleanup();\n }\n}\n\n// ---------------------------------------------------------------------------\n// vectors command — requires daemon for vector store\n// ---------------------------------------------------------------------------\n\nexport async function runVectors(args: string[], vaultDir: string): Promise<void> {\n const query = args.join(' ');\n if (!query) { console.error('Usage: myco vectors <query>'); process.exit(1); }\n\n const client = await connectToDaemon(vaultDir);\n\n const params = new URLSearchParams({\n q: query,\n limit: String(CLI_VECTORS_LIMIT),\n mode: 'semantic',\n });\n const result = await client.get(`/api/search?${params.toString()}`);\n\n if (!result.ok || !result.data?.results) {\n console.error('Semantic search failed — embedding provider may not be configured');\n process.exit(1);\n }\n\n const results = result.data.results as SearchResult[];\n\n console.log(`Query: \"${query}\"`);\n console.log();\n\n if (results.length === 0) {\n console.log('(no results)');\n } else {\n const topScore = results[0].score;\n const DEFAULT_RELATIVE_THRESHOLD = 0.5;\n console.log(`Top score: ${topScore.toFixed(4)}`);\n console.log(`Default threshold (${DEFAULT_RELATIVE_THRESHOLD}x): ${(topScore * DEFAULT_RELATIVE_THRESHOLD).toFixed(4)}`);\n console.log();\n console.log(' Sim Ratio Type ID');\n console.log(' ------ ----- --------- ' + '-'.repeat(50));\n for (const r of results) {\n const ratio = (r.score / topScore).toFixed(2);\n const pass = r.score >= topScore * DEFAULT_RELATIVE_THRESHOLD ? '\\u2713' : ' ';\n const type = r.type ?? 'unknown';\n console.log(`${pass} ${r.score.toFixed(4)} ${ratio} ${type.padEnd(9)} ${r.id.slice(0, 50)}`);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkBA,IAAM,mBAAmB;AAGzB,IAAM,oBAAoB;AAmB1B,eAAsB,IAAI,MAAgB,UAAiC;AACzE,QAAM,QAAQ,KAAK,KAAK,GAAG;AAC3B,MAAI,CAAC,OAAO;AAAE,YAAQ,MAAM,4BAA4B;AAAG,YAAQ,KAAK,CAAC;AAAA,EAAG;AAE5E,QAAM,UAAU,YAAY,QAAQ;AACpC,MAAI;AACF,UAAM,UAAU,eAAe,OAAO,EAAE,OAAO,iBAAiB,CAAC;AAEjE,YAAQ,IAAI,qBAAqB,KAAK,OAAO;AAC7C,QAAI,QAAQ,WAAW,GAAG;AACxB,cAAQ,IAAI,gBAAgB;AAAA,IAC9B,OAAO;AACL,iBAAW,KAAK,SAAS;AACvB,cAAM,WAAW,EAAE,WAAW,EAAE,SAAS,IAAI,MAAM,GAAG,qBAAqB;AAC3E,gBAAQ,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,EAAE;AAAA,MACxC;AAAA,IACF;AAAA,EACF,SAAS,KAAK;AACZ,YAAQ,MAAM,kBAAmB,IAAc,OAAO;AACtD,YAAQ,KAAK,CAAC;AAAA,EAChB,UAAE;AACA,YAAQ;AAAA,EACV;AACF;AAMA,eAAsB,WAAW,MAAgB,UAAiC;AAChF,QAAM,QAAQ,KAAK,KAAK,GAAG;AAC3B,MAAI,CAAC,OAAO;AAAE,YAAQ,MAAM,6BAA6B;AAAG,YAAQ,KAAK,CAAC;AAAA,EAAG;AAE7E,QAAM,SAAS,MAAM,gBAAgB,QAAQ;AAE7C,QAAM,SAAS,IAAI,gBAAgB;AAAA,IACjC,GAAG;AAAA,IACH,OAAO,OAAO,iBAAiB;AAAA,IAC/B,MAAM;AAAA,EACR,CAAC;AACD,QAAM,SAAS,MAAM,OAAO,IAAI,eAAe,OAAO,SAAS,CAAC,EAAE;AAElE,MAAI,CAAC,OAAO,MAAM,CAAC,OAAO,MAAM,SAAS;AACvC,YAAQ,MAAM,wEAAmE;AACjF,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,UAAU,OAAO,KAAK;AAE5B,UAAQ,IAAI,WAAW,KAAK,GAAG;AAC/B,UAAQ,IAAI;AAEZ,MAAI,QAAQ,WAAW,GAAG;AACxB,YAAQ,IAAI,cAAc;AAAA,EAC5B,OAAO;AACL,UAAM,WAAW,QAAQ,CAAC,EAAE;AAC5B,UAAM,6BAA6B;AACnC,YAAQ,IAAI,cAAc,SAAS,QAAQ,CAAC,CAAC,EAAE;AAC/C,YAAQ,IAAI,sBAAsB,0BAA0B,QAAQ,WAAW,4BAA4B,QAAQ,CAAC,CAAC,EAAE;AACvH,YAAQ,IAAI;AACZ,YAAQ,IAAI,gCAAgC;AAC5C,YAAQ,IAAI,iCAAiC,IAAI,OAAO,EAAE,CAAC;AAC3D,eAAW,KAAK,SAAS;AACvB,YAAM,SAAS,EAAE,QAAQ,UAAU,QAAQ,CAAC;AAC5C,YAAM,OAAO,EAAE,SAAS,WAAW,6BAA6B,WAAW;AAC3E,YAAM,OAAO,EAAE,QAAQ;AACvB,cAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC,EAAE;AAAA,IACjG;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/cli/search.ts"],"sourcesContent":["/**\n * CLI: myco search — full-text search via direct SQLite reads.\n * CLI: myco vectors — semantic search via daemon API (requires vector store).\n *\n * The `search` command opens the database directly (WAL mode allows concurrent\n * reads) and does NOT require the daemon. The `vectors` command still routes\n * through the daemon because it needs the in-process vector store.\n */\n\nimport { CONTENT_SNIPPET_CHARS } from '@myco/constants.js';\nimport { fullTextSearch } from '@myco/db/queries/search.js';\nimport { connectToDaemon, initVaultDb } from './shared.js';\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/** Default result limit for CLI search. */\nconst CLI_SEARCH_LIMIT = 10;\n\n/** Default result limit for CLI vectors. */\nconst CLI_VECTORS_LIMIT = 20;\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ninterface SearchResult {\n id: string;\n type: string;\n title: string;\n preview: string;\n score: number;\n session_id?: string;\n}\n\n// ---------------------------------------------------------------------------\n// search command — direct DB read\n// ---------------------------------------------------------------------------\n\nexport async function run(args: string[], vaultDir: string): Promise<void> {\n const query = args.join(' ');\n if (!query) { console.error('Usage: myco search <query>'); process.exit(1); }\n\n const cleanup = initVaultDb(vaultDir);\n try {\n const results = fullTextSearch(query, { limit: CLI_SEARCH_LIMIT });\n\n console.log(`=== Text Search: \"${query}\" ===`);\n if (results.length === 0) {\n console.log(' (no results)');\n } else {\n for (const r of results) {\n const preview = (r.preview ?? r.title ?? '').slice(0, CONTENT_SNIPPET_CHARS);\n console.log(` [${r.type}] ${preview}`);\n }\n }\n } catch (err) {\n console.error('Search failed:', (err as Error).message);\n process.exit(1);\n } finally {\n cleanup();\n }\n}\n\n// ---------------------------------------------------------------------------\n// vectors command — requires daemon for vector store\n// ---------------------------------------------------------------------------\n\nexport async function runVectors(args: string[], vaultDir: string): Promise<void> {\n const query = args.join(' ');\n if (!query) { console.error('Usage: myco vectors <query>'); process.exit(1); }\n\n const client = await connectToDaemon(vaultDir);\n\n const params = new URLSearchParams({\n q: query,\n limit: String(CLI_VECTORS_LIMIT),\n mode: 'semantic',\n });\n const result = await client.get(`/api/search?${params.toString()}`);\n\n if (!result.ok || !result.data?.results) {\n console.error('Semantic search failed — embedding provider may not be configured');\n process.exit(1);\n }\n\n const results = result.data.results as SearchResult[];\n\n console.log(`Query: \"${query}\"`);\n console.log();\n\n if (results.length === 0) {\n console.log('(no results)');\n } else {\n const topScore = results[0].score;\n const DEFAULT_RELATIVE_THRESHOLD = 0.5;\n console.log(`Top score: ${topScore.toFixed(4)}`);\n console.log(`Default threshold (${DEFAULT_RELATIVE_THRESHOLD}x): ${(topScore * DEFAULT_RELATIVE_THRESHOLD).toFixed(4)}`);\n console.log();\n console.log(' Sim Ratio Type ID');\n console.log(' ------ ----- --------- ' + '-'.repeat(50));\n for (const r of results) {\n const ratio = (r.score / topScore).toFixed(2);\n const pass = r.score >= topScore * DEFAULT_RELATIVE_THRESHOLD ? '\\u2713' : ' ';\n const type = r.type ?? 'unknown';\n console.log(`${pass} ${r.score.toFixed(4)} ${ratio} ${type.padEnd(9)} ${r.id.slice(0, 50)}`);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAM,mBAAmB;AAGzB,IAAM,oBAAoB;AAmB1B,eAAsB,IAAI,MAAgB,UAAiC;AACzE,QAAM,QAAQ,KAAK,KAAK,GAAG;AAC3B,MAAI,CAAC,OAAO;AAAE,YAAQ,MAAM,4BAA4B;AAAG,YAAQ,KAAK,CAAC;AAAA,EAAG;AAE5E,QAAM,UAAU,YAAY,QAAQ;AACpC,MAAI;AACF,UAAM,UAAU,eAAe,OAAO,EAAE,OAAO,iBAAiB,CAAC;AAEjE,YAAQ,IAAI,qBAAqB,KAAK,OAAO;AAC7C,QAAI,QAAQ,WAAW,GAAG;AACxB,cAAQ,IAAI,gBAAgB;AAAA,IAC9B,OAAO;AACL,iBAAW,KAAK,SAAS;AACvB,cAAM,WAAW,EAAE,WAAW,EAAE,SAAS,IAAI,MAAM,GAAG,qBAAqB;AAC3E,gBAAQ,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,EAAE;AAAA,MACxC;AAAA,IACF;AAAA,EACF,SAAS,KAAK;AACZ,YAAQ,MAAM,kBAAmB,IAAc,OAAO;AACtD,YAAQ,KAAK,CAAC;AAAA,EAChB,UAAE;AACA,YAAQ;AAAA,EACV;AACF;AAMA,eAAsB,WAAW,MAAgB,UAAiC;AAChF,QAAM,QAAQ,KAAK,KAAK,GAAG;AAC3B,MAAI,CAAC,OAAO;AAAE,YAAQ,MAAM,6BAA6B;AAAG,YAAQ,KAAK,CAAC;AAAA,EAAG;AAE7E,QAAM,SAAS,MAAM,gBAAgB,QAAQ;AAE7C,QAAM,SAAS,IAAI,gBAAgB;AAAA,IACjC,GAAG;AAAA,IACH,OAAO,OAAO,iBAAiB;AAAA,IAC/B,MAAM;AAAA,EACR,CAAC;AACD,QAAM,SAAS,MAAM,OAAO,IAAI,eAAe,OAAO,SAAS,CAAC,EAAE;AAElE,MAAI,CAAC,OAAO,MAAM,CAAC,OAAO,MAAM,SAAS;AACvC,YAAQ,MAAM,wEAAmE;AACjF,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,UAAU,OAAO,KAAK;AAE5B,UAAQ,IAAI,WAAW,KAAK,GAAG;AAC/B,UAAQ,IAAI;AAEZ,MAAI,QAAQ,WAAW,GAAG;AACxB,YAAQ,IAAI,cAAc;AAAA,EAC5B,OAAO;AACL,UAAM,WAAW,QAAQ,CAAC,EAAE;AAC5B,UAAM,6BAA6B;AACnC,YAAQ,IAAI,cAAc,SAAS,QAAQ,CAAC,CAAC,EAAE;AAC/C,YAAQ,IAAI,sBAAsB,0BAA0B,QAAQ,WAAW,4BAA4B,QAAQ,CAAC,CAAC,EAAE;AACvH,YAAQ,IAAI;AACZ,YAAQ,IAAI,gCAAgC;AAC5C,YAAQ,IAAI,iCAAiC,IAAI,OAAO,EAAE,CAAC;AAC3D,eAAW,KAAK,SAAS;AACvB,YAAM,SAAS,EAAE,QAAQ,UAAU,QAAQ,CAAC;AAC5C,YAAM,OAAO,EAAE,SAAS,WAAW,6BAA6B,WAAW;AAC3E,YAAM,OAAO,EAAE,QAAQ;AACvB,cAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC,EAAE;AAAA,IACjG;AAAA,EACF;AACF;","names":[]}
@@ -2,17 +2,18 @@ import { createRequire as __cr } from 'node:module'; const require = __cr(import
2
2
  import "./chunk-IB76KGBY.js";
3
3
  import {
4
4
  DaemonClient
5
- } from "./chunk-SVQAPEYH.js";
5
+ } from "./chunk-UWXJCLCK.js";
6
+ import {
7
+ getPluginVersion
8
+ } from "./chunk-ZKXW46HZ.js";
9
+ import "./chunk-LPUQPDC2.js";
6
10
  import {
7
11
  DAEMON_CLIENT_TIMEOUT_MS,
8
12
  MCP_SEARCH_DEFAULT_LIMIT,
9
- MCP_SESSIONS_DEFAULT_LIMIT
10
- } from "./chunk-PIRWYDOH.js";
13
+ MCP_SESSIONS_DEFAULT_LIMIT,
14
+ MCP_SKILLS_DEFAULT_LIMIT
15
+ } from "./chunk-TRA3R4EC.js";
11
16
  import "./chunk-S6I62FAH.js";
12
- import {
13
- getPluginVersion
14
- } from "./chunk-FYGFMIS6.js";
15
- import "./chunk-LPUQPDC2.js";
16
17
  import "./chunk-E4VLWIJC.js";
17
18
  import {
18
19
  _enum,
@@ -10762,10 +10763,9 @@ var ProgressTokenSchema = union([string(), number().int()]);
10762
10763
  var CursorSchema = string();
10763
10764
  var TaskCreationParamsSchema = looseObject({
10764
10765
  /**
10765
- * Time in milliseconds to keep task results available after completion.
10766
- * If null, the task has unlimited lifetime until manually cleaned up.
10766
+ * Requested duration in milliseconds to retain task from creation.
10767
10767
  */
10768
- ttl: union([number(), _null()]).optional(),
10768
+ ttl: number().optional(),
10769
10769
  /**
10770
10770
  * Time in milliseconds to wait between task status requests.
10771
10771
  */
@@ -11065,7 +11065,11 @@ var ClientCapabilitiesSchema = object({
11065
11065
  /**
11066
11066
  * Present if the client supports task creation.
11067
11067
  */
11068
- tasks: ClientTasksCapabilitySchema.optional()
11068
+ tasks: ClientTasksCapabilitySchema.optional(),
11069
+ /**
11070
+ * Extensions that the client supports. Keys are extension identifiers (vendor-prefix/extension-name).
11071
+ */
11072
+ extensions: record(string(), AssertObjectSchema).optional()
11069
11073
  });
11070
11074
  var InitializeRequestParamsSchema = BaseRequestParamsSchema.extend({
11071
11075
  /**
@@ -11126,7 +11130,11 @@ var ServerCapabilitiesSchema = object({
11126
11130
  /**
11127
11131
  * Present if the server supports task creation.
11128
11132
  */
11129
- tasks: ServerTasksCapabilitySchema.optional()
11133
+ tasks: ServerTasksCapabilitySchema.optional(),
11134
+ /**
11135
+ * Extensions that the server supports. Keys are extension identifiers (vendor-prefix/extension-name).
11136
+ */
11137
+ extensions: record(string(), AssertObjectSchema).optional()
11130
11138
  });
11131
11139
  var InitializeResultSchema = ResultSchema.extend({
11132
11140
  /**
@@ -11318,6 +11326,12 @@ var ResourceSchema = object({
11318
11326
  * The MIME type of this resource, if known.
11319
11327
  */
11320
11328
  mimeType: optional(string()),
11329
+ /**
11330
+ * The size of the raw resource content, in bytes (i.e., before base64 encoding or any tokenization), if known.
11331
+ *
11332
+ * This can be used by Hosts to display file sizes and estimate context window usage.
11333
+ */
11334
+ size: optional(number()),
11321
11335
  /**
11322
11336
  * Optional annotations for the client.
11323
11337
  */
@@ -12499,6 +12513,10 @@ var Protocol = class {
12499
12513
  this._progressHandlers.clear();
12500
12514
  this._taskProgressTokens.clear();
12501
12515
  this._pendingDebouncedNotifications.clear();
12516
+ for (const info of this._timeoutInfo.values()) {
12517
+ clearTimeout(info.timeoutId);
12518
+ }
12519
+ this._timeoutInfo.clear();
12502
12520
  for (const controller of this._requestHandlerAbortControllers.values()) {
12503
12521
  controller.abort();
12504
12522
  }
@@ -12629,7 +12647,9 @@ var Protocol = class {
12629
12647
  await capturedTransport?.send(errorResponse);
12630
12648
  }
12631
12649
  }).catch((error) => this._onerror(new Error(`Failed to send response: ${error}`))).finally(() => {
12632
- this._requestHandlerAbortControllers.delete(request.id);
12650
+ if (this._requestHandlerAbortControllers.get(request.id) === abortController) {
12651
+ this._requestHandlerAbortControllers.delete(request.id);
12652
+ }
12633
12653
  });
12634
12654
  }
12635
12655
  _onprogress(notification) {
@@ -14194,6 +14214,48 @@ async function handleMycoContext(input, client) {
14194
14214
  };
14195
14215
  }
14196
14216
 
14217
+ // src/mcp/tools/skills.ts
14218
+ async function handleMycoSkills(input, client) {
14219
+ if (input.id) {
14220
+ const result2 = await client.get(`/api/skill-records/${encodeURIComponent(input.id)}`);
14221
+ if (!result2.ok || !result2.data) return { error: "Skill not found" };
14222
+ return result2.data;
14223
+ }
14224
+ const endpoint = buildEndpoint("/api/skill-records", {
14225
+ status: input.status,
14226
+ limit: input.limit
14227
+ });
14228
+ const result = await client.get(endpoint);
14229
+ if (!result.ok || !result.data?.records) return [];
14230
+ return result.data.records;
14231
+ }
14232
+ async function handleMycoSkillCandidates(input, client) {
14233
+ const action = input.action ?? "list";
14234
+ if (action === "approve" || action === "dismiss") {
14235
+ if (!input.id) {
14236
+ return { error: `Action '${action}' requires an id` };
14237
+ }
14238
+ const status = action === "approve" ? "approved" : "dismissed";
14239
+ const result2 = await client.put(`/api/skill-candidates/${encodeURIComponent(input.id)}`, { status });
14240
+ if (!result2.ok || !result2.data) {
14241
+ return { error: `Failed to ${action} candidate` };
14242
+ }
14243
+ return result2.data;
14244
+ }
14245
+ if (input.id) {
14246
+ const result2 = await client.get(`/api/skill-candidates/${encodeURIComponent(input.id)}`);
14247
+ if (!result2.ok || !result2.data) return { error: "Candidate not found" };
14248
+ return result2.data;
14249
+ }
14250
+ const endpoint = buildEndpoint("/api/skill-candidates", {
14251
+ status: input.status,
14252
+ limit: input.limit
14253
+ });
14254
+ const result = await client.get(endpoint);
14255
+ if (!result.ok || !result.data?.candidates) return [];
14256
+ return result.data.candidates;
14257
+ }
14258
+
14197
14259
  // src/vault/types.ts
14198
14260
  var SessionFrontmatterSchema = external_exports.object({
14199
14261
  type: external_exports.literal("session"),
@@ -14268,6 +14330,8 @@ var TOOL_GRAPH = "myco_graph";
14268
14330
  var TOOL_SUPERSEDE = "myco_supersede";
14269
14331
  var TOOL_CONSOLIDATE = "myco_consolidate";
14270
14332
  var TOOL_CONTEXT = "myco_context";
14333
+ var TOOL_SKILLS = "myco_skills";
14334
+ var TOOL_SKILL_CANDIDATES = "myco_skill_candidates";
14271
14335
  var PROP_BRANCH = "Git branch name to find related sessions and plans";
14272
14336
  var PROP_SINCE = "ISO timestamp \u2014 entries after this date";
14273
14337
  var PROP_TAGS = "Tags for discoverability \u2014 component names, technologies, concepts";
@@ -14401,6 +14465,31 @@ var TOOL_DEFINITIONS = [
14401
14465
  }
14402
14466
  }
14403
14467
  }
14468
+ },
14469
+ {
14470
+ name: TOOL_SKILLS,
14471
+ description: "List and inspect skills generated by Myco. Use to see what skills are active, check skill details, or find skills by status.",
14472
+ inputSchema: {
14473
+ type: "object",
14474
+ properties: {
14475
+ id: { type: "string", description: "Get a specific skill by ID or name" },
14476
+ status: { type: "string", description: "Filter by status: active, stale, retired" },
14477
+ limit: { type: "number", description: `Max results (default: ${MCP_SKILLS_DEFAULT_LIMIT})` }
14478
+ }
14479
+ }
14480
+ },
14481
+ {
14482
+ name: TOOL_SKILL_CANDIDATES,
14483
+ description: "List and manage skill candidates \u2014 observations identified as potential skills. Use to see pending candidates, approve, or dismiss them.",
14484
+ inputSchema: {
14485
+ type: "object",
14486
+ properties: {
14487
+ id: { type: "string", description: "Get a specific candidate by ID" },
14488
+ action: { type: "string", enum: ["list", "approve", "dismiss"], description: "Action to perform (default: 'list')" },
14489
+ status: { type: "string", description: "Filter by status: identified, approved, generated, dismissed" },
14490
+ limit: { type: "number", description: `Max results (default: ${MCP_SKILLS_DEFAULT_LIMIT})` }
14491
+ }
14492
+ }
14404
14493
  }
14405
14494
  ];
14406
14495
 
@@ -14508,6 +14597,18 @@ function createMycoServer(vaultDir, client) {
14508
14597
  logActivity(TOOL_CONTEXT, { tier: contextInput.tier, duration_ms: Date.now() - start });
14509
14598
  return { content: [{ type: "text", text: result.content }] };
14510
14599
  }
14600
+ case TOOL_SKILLS: {
14601
+ const skillsInput = input;
14602
+ const result = await handleMycoSkills(skillsInput, client);
14603
+ logActivity(TOOL_SKILLS, { id: skillsInput.id, status: skillsInput.status, duration_ms: Date.now() - start });
14604
+ return { content: [{ type: "text", text: JSON.stringify(result) }] };
14605
+ }
14606
+ case TOOL_SKILL_CANDIDATES: {
14607
+ const candidatesInput = input;
14608
+ const result = await handleMycoSkillCandidates(candidatesInput, client);
14609
+ logActivity(TOOL_SKILL_CANDIDATES, { id: candidatesInput.id, action: candidatesInput.action, duration_ms: Date.now() - start });
14610
+ return { content: [{ type: "text", text: JSON.stringify(result) }] };
14611
+ }
14511
14612
  default:
14512
14613
  throw new Error(`Unknown tool: ${name}`);
14513
14614
  }
@@ -14533,4 +14634,4 @@ export {
14533
14634
  createMycoServer,
14534
14635
  main
14535
14636
  };
14536
- //# sourceMappingURL=server-7OKRAJCM.js.map
14637
+ //# sourceMappingURL=server-KT5GW333.js.map