@goondocks/myco 0.6.5 → 0.10.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 (297) hide show
  1. package/.claude-plugin/marketplace.json +1 -5
  2. package/.claude-plugin/plugin.json +3 -3
  3. package/CONTRIBUTING.md +37 -30
  4. package/README.md +81 -28
  5. package/bin/myco-run +2 -0
  6. package/dist/agent-run-CGXF5PPC.js +34 -0
  7. package/dist/agent-run-CGXF5PPC.js.map +1 -0
  8. package/dist/agent-tasks-T7NVI3R7.js +180 -0
  9. package/dist/agent-tasks-T7NVI3R7.js.map +1 -0
  10. package/dist/chunk-5LPERML5.js +486 -0
  11. package/dist/chunk-5LPERML5.js.map +1 -0
  12. package/dist/chunk-5PEUFJ6U.js +92 -0
  13. package/dist/chunk-5PEUFJ6U.js.map +1 -0
  14. package/dist/chunk-5QERXFH7.js +26 -0
  15. package/dist/chunk-5QERXFH7.js.map +1 -0
  16. package/dist/{chunk-4DYD4HHG.js → chunk-5SDH75YC.js} +2 -2
  17. package/dist/chunk-76ZO5RGT.js +150 -0
  18. package/dist/chunk-76ZO5RGT.js.map +1 -0
  19. package/dist/chunk-AEJS57ZK.js +26 -0
  20. package/dist/chunk-AEJS57ZK.js.map +1 -0
  21. package/dist/chunk-C3AEZ3BZ.js +22 -0
  22. package/dist/chunk-C3AEZ3BZ.js.map +1 -0
  23. package/dist/chunk-CUDM5YJY.js +294 -0
  24. package/dist/chunk-CUDM5YJY.js.map +1 -0
  25. package/dist/chunk-D6DXYAFK.js +93 -0
  26. package/dist/chunk-D6DXYAFK.js.map +1 -0
  27. package/dist/chunk-D7TYRPRM.js +7312 -0
  28. package/dist/chunk-D7TYRPRM.js.map +1 -0
  29. package/dist/chunk-E4VLWIJC.js +2 -0
  30. package/dist/chunk-ENWBFX7F.js +50 -0
  31. package/dist/chunk-ENWBFX7F.js.map +1 -0
  32. package/dist/chunk-FFQES5MC.js +904 -0
  33. package/dist/chunk-FFQES5MC.js.map +1 -0
  34. package/dist/chunk-FMIWFRAM.js +41 -0
  35. package/dist/chunk-FMIWFRAM.js.map +1 -0
  36. package/dist/chunk-FPMEIN2W.js +66 -0
  37. package/dist/chunk-FPMEIN2W.js.map +1 -0
  38. package/dist/chunk-G2LQBFE3.js +35 -0
  39. package/dist/chunk-G2LQBFE3.js.map +1 -0
  40. package/dist/chunk-IB76KGBY.js +2 -0
  41. package/dist/{chunk-AHZN4Z34.js → chunk-J4RVYUH4.js} +2 -2
  42. package/dist/{chunk-N33KUCFP.js → chunk-JTYZRPX5.js} +1 -9
  43. package/dist/chunk-JTYZRPX5.js.map +1 -0
  44. package/dist/{chunk-ERG2IEWX.js → chunk-KH64DHOY.js} +3 -7413
  45. package/dist/chunk-KH64DHOY.js.map +1 -0
  46. package/dist/chunk-LPUQPDC2.js +19 -0
  47. package/dist/chunk-LPUQPDC2.js.map +1 -0
  48. package/dist/chunk-M5XWW7UI.js +97 -0
  49. package/dist/chunk-M5XWW7UI.js.map +1 -0
  50. package/dist/chunk-MAZOVVDU.js +305 -0
  51. package/dist/chunk-MAZOVVDU.js.map +1 -0
  52. package/dist/{chunk-54WVLTKD.js → chunk-MKKXCCQ5.js} +33 -17
  53. package/dist/chunk-MKKXCCQ5.js.map +1 -0
  54. package/dist/chunk-MSXYUXZR.js +187 -0
  55. package/dist/chunk-MSXYUXZR.js.map +1 -0
  56. package/dist/chunk-MYX5NCRH.js +45 -0
  57. package/dist/chunk-MYX5NCRH.js.map +1 -0
  58. package/dist/chunk-RJMXDUMA.js +40 -0
  59. package/dist/chunk-RJMXDUMA.js.map +1 -0
  60. package/dist/chunk-S6I62FAH.js +92 -0
  61. package/dist/chunk-S6I62FAH.js.map +1 -0
  62. package/dist/chunk-U7UUJ4FD.js +180 -0
  63. package/dist/chunk-U7UUJ4FD.js.map +1 -0
  64. package/dist/{chunk-HIN3UVOG.js → chunk-V7XG6V6C.js} +20 -11
  65. package/dist/chunk-V7XG6V6C.js.map +1 -0
  66. package/dist/chunk-W6HI4CCS.js +162 -0
  67. package/dist/chunk-W6HI4CCS.js.map +1 -0
  68. package/dist/{chunk-F7GAYVWF.js → chunk-WXSJKESH.js} +96 -9
  69. package/dist/chunk-WXSJKESH.js.map +1 -0
  70. package/dist/chunk-WZZH3YXJ.js +601 -0
  71. package/dist/chunk-WZZH3YXJ.js.map +1 -0
  72. package/dist/chunk-XLY3REL3.js +165 -0
  73. package/dist/chunk-XLY3REL3.js.map +1 -0
  74. package/dist/{chunk-4B5RO2YV.js → chunk-YZMNEIFI.js} +33 -43
  75. package/dist/chunk-YZMNEIFI.js.map +1 -0
  76. package/dist/chunk-ZESTWGJT.js +116 -0
  77. package/dist/chunk-ZESTWGJT.js.map +1 -0
  78. package/dist/chunk-ZMW6KQX2.js +103 -0
  79. package/dist/chunk-ZMW6KQX2.js.map +1 -0
  80. package/dist/cli-6CPFJGRZ.js +139 -0
  81. package/dist/cli-6CPFJGRZ.js.map +1 -0
  82. package/dist/client-B27SN5QG.js +15 -0
  83. package/dist/client-EYOTW3JU.js +19 -0
  84. package/dist/{config-IBS6KOLQ.js → config-G3CSGI7P.js} +21 -34
  85. package/dist/config-G3CSGI7P.js.map +1 -0
  86. package/dist/detect-H5OPI7GD.js +17 -0
  87. package/dist/detect-H5OPI7GD.js.map +1 -0
  88. package/dist/detect-providers-AZ6DEQU7.js +26 -0
  89. package/dist/detect-providers-AZ6DEQU7.js.map +1 -0
  90. package/dist/doctor-RHHWJTMB.js +258 -0
  91. package/dist/doctor-RHHWJTMB.js.map +1 -0
  92. package/dist/executor-A5C5KDLP.js +1454 -0
  93. package/dist/executor-A5C5KDLP.js.map +1 -0
  94. package/dist/init-ARJROOWV.js +198 -0
  95. package/dist/init-ARJROOWV.js.map +1 -0
  96. package/dist/init-wizard-XNFOZCEB.js +294 -0
  97. package/dist/init-wizard-XNFOZCEB.js.map +1 -0
  98. package/dist/llm-XJFHRFHB.js +17 -0
  99. package/dist/llm-XJFHRFHB.js.map +1 -0
  100. package/dist/loader-GKXR5ONU.js +28 -0
  101. package/dist/loader-GKXR5ONU.js.map +1 -0
  102. package/dist/loader-PZ7ZRSA4.js +22 -0
  103. package/dist/loader-PZ7ZRSA4.js.map +1 -0
  104. package/dist/{chunk-F7PGDD2X.js → logs-LXHPDKUA.js} +74 -5
  105. package/dist/logs-LXHPDKUA.js.map +1 -0
  106. package/dist/machine-id-RCM7TXPJ.js +13 -0
  107. package/dist/machine-id-RCM7TXPJ.js.map +1 -0
  108. package/dist/main-PVX6R3I6.js +5065 -0
  109. package/dist/main-PVX6R3I6.js.map +1 -0
  110. package/dist/openai-embeddings-ST3B6GW7.js +14 -0
  111. package/dist/openai-embeddings-ST3B6GW7.js.map +1 -0
  112. package/dist/openrouter-HJHOO3EO.js +14 -0
  113. package/dist/openrouter-HJHOO3EO.js.map +1 -0
  114. package/dist/post-compact-LR3DSGT3.js +26 -0
  115. package/dist/post-compact-LR3DSGT3.js.map +1 -0
  116. package/dist/post-tool-use-SOFVNFU3.js +56 -0
  117. package/dist/post-tool-use-SOFVNFU3.js.map +1 -0
  118. package/dist/post-tool-use-failure-2CZZZASB.js +28 -0
  119. package/dist/post-tool-use-failure-2CZZZASB.js.map +1 -0
  120. package/dist/pre-compact-3E3D6565.js +25 -0
  121. package/dist/pre-compact-3E3D6565.js.map +1 -0
  122. package/dist/provider-check-SOTDYLJE.js +12 -0
  123. package/dist/provider-check-SOTDYLJE.js.map +1 -0
  124. package/dist/registry-WVZG6R2R.js +25 -0
  125. package/dist/registry-WVZG6R2R.js.map +1 -0
  126. package/dist/resolution-events-UPHJJLDQ.js +15 -0
  127. package/dist/resolution-events-UPHJJLDQ.js.map +1 -0
  128. package/dist/resolve-3FEUV462.js +9 -0
  129. package/dist/resolve-3FEUV462.js.map +1 -0
  130. package/dist/{restart-UIP7US4U.js → restart-XIUFVS33.js} +10 -6
  131. package/dist/{restart-UIP7US4U.js.map → restart-XIUFVS33.js.map} +1 -1
  132. package/dist/search-VB6Z2ZXV.js +91 -0
  133. package/dist/search-VB6Z2ZXV.js.map +1 -0
  134. package/dist/{server-43KSJ65Q.js → server-AKPBRP6Z.js} +267 -524
  135. package/dist/server-AKPBRP6Z.js.map +1 -0
  136. package/dist/session-UVZS6CY5.js +69 -0
  137. package/dist/session-UVZS6CY5.js.map +1 -0
  138. package/dist/session-end-YMQ44U6Z.js +38 -0
  139. package/dist/session-end-YMQ44U6Z.js.map +1 -0
  140. package/dist/session-start-3754HF3N.js +170 -0
  141. package/dist/session-start-3754HF3N.js.map +1 -0
  142. package/dist/setup-digest-4KDSXAIV.js +15 -0
  143. package/dist/setup-digest-4KDSXAIV.js.map +1 -0
  144. package/dist/setup-llm-NWHOPJUV.js +81 -0
  145. package/dist/setup-llm-NWHOPJUV.js.map +1 -0
  146. package/dist/src/agent/definitions/agent.yaml +35 -0
  147. package/dist/src/agent/definitions/tasks/digest-only.yaml +84 -0
  148. package/dist/src/agent/definitions/tasks/extract-only.yaml +87 -0
  149. package/dist/src/agent/definitions/tasks/full-intelligence.yaml +472 -0
  150. package/dist/src/agent/definitions/tasks/graph-maintenance.yaml +92 -0
  151. package/dist/src/agent/definitions/tasks/review-session.yaml +132 -0
  152. package/dist/src/agent/definitions/tasks/supersession-sweep.yaml +86 -0
  153. package/dist/src/agent/definitions/tasks/title-summary.yaml +88 -0
  154. package/dist/src/agent/prompts/agent.md +121 -0
  155. package/dist/src/agent/prompts/orchestrator.md +91 -0
  156. package/dist/src/cli.js +1 -8
  157. package/dist/src/cli.js.map +1 -1
  158. package/dist/src/daemon/main.js +1 -8
  159. package/dist/src/daemon/main.js.map +1 -1
  160. package/dist/src/hooks/post-tool-use.js +3 -50
  161. package/dist/src/hooks/post-tool-use.js.map +1 -1
  162. package/dist/src/hooks/session-end.js +3 -32
  163. package/dist/src/hooks/session-end.js.map +1 -1
  164. package/dist/src/hooks/session-start.js +2 -8
  165. package/dist/src/hooks/session-start.js.map +1 -1
  166. package/dist/src/hooks/stop.js +3 -42
  167. package/dist/src/hooks/stop.js.map +1 -1
  168. package/dist/src/hooks/user-prompt-submit.js +3 -53
  169. package/dist/src/hooks/user-prompt-submit.js.map +1 -1
  170. package/dist/src/mcp/server.js +1 -8
  171. package/dist/src/mcp/server.js.map +1 -1
  172. package/dist/src/prompts/digest-system.md +1 -1
  173. package/dist/src/symbionts/manifests/claude-code.yaml +16 -0
  174. package/dist/src/symbionts/manifests/cursor.yaml +14 -0
  175. package/dist/stats-CDQXOTEC.js +94 -0
  176. package/dist/stats-CDQXOTEC.js.map +1 -0
  177. package/dist/stop-WSFGRPXZ.js +42 -0
  178. package/dist/stop-WSFGRPXZ.js.map +1 -0
  179. package/dist/stop-failure-4FR7574F.js +26 -0
  180. package/dist/stop-failure-4FR7574F.js.map +1 -0
  181. package/dist/subagent-start-7SGBXJYP.js +26 -0
  182. package/dist/subagent-start-7SGBXJYP.js.map +1 -0
  183. package/dist/subagent-stop-MRVTNX3V.js +28 -0
  184. package/dist/subagent-stop-MRVTNX3V.js.map +1 -0
  185. package/dist/task-completed-XXPYPSRV.js +27 -0
  186. package/dist/task-completed-XXPYPSRV.js.map +1 -0
  187. package/dist/team-XMHYCKFF.js +251 -0
  188. package/dist/team-XMHYCKFF.js.map +1 -0
  189. package/dist/ui/assets/index-BGbil7f1.css +1 -0
  190. package/dist/ui/assets/index-CPA_uq_j.js +794 -0
  191. package/dist/ui/favicon.svg +7 -7
  192. package/dist/ui/fonts/Inter-Variable.woff2 +0 -0
  193. package/dist/ui/fonts/JetBrainsMono-Variable.woff2 +0 -0
  194. package/dist/ui/fonts/Newsreader-Italic-Variable.woff2 +0 -0
  195. package/dist/ui/fonts/Newsreader-Variable.woff2 +0 -0
  196. package/dist/ui/index.html +2 -2
  197. package/dist/update-W3UFZU4G.js +79 -0
  198. package/dist/update-W3UFZU4G.js.map +1 -0
  199. package/dist/user-prompt-submit-LSWCYUW3.js +59 -0
  200. package/dist/user-prompt-submit-LSWCYUW3.js.map +1 -0
  201. package/dist/{verify-X272WGBD.js → verify-O7TQ5DDY.js} +17 -22
  202. package/dist/verify-O7TQ5DDY.js.map +1 -0
  203. package/dist/{version-XE4GYTBV.js → version-VWWY7SPQ.js} +3 -4
  204. package/dist/version-VWWY7SPQ.js.map +1 -0
  205. package/hooks/hooks.json +82 -5
  206. package/package.json +6 -3
  207. package/skills/myco/SKILL.md +10 -10
  208. package/skills/myco/references/cli-usage.md +15 -13
  209. package/skills/myco/references/vault-status.md +3 -3
  210. package/skills/myco/references/wisdom.md +4 -4
  211. package/skills/myco-curate/SKILL.md +86 -0
  212. package/dist/chunk-4B5RO2YV.js.map +0 -1
  213. package/dist/chunk-4RMSHZE4.js +0 -107
  214. package/dist/chunk-4RMSHZE4.js.map +0 -1
  215. package/dist/chunk-54WVLTKD.js.map +0 -1
  216. package/dist/chunk-5LMRZDH3.js +0 -65
  217. package/dist/chunk-5LMRZDH3.js.map +0 -1
  218. package/dist/chunk-6FQISQNA.js +0 -61
  219. package/dist/chunk-6FQISQNA.js.map +0 -1
  220. package/dist/chunk-DYDBF5W6.js +0 -147
  221. package/dist/chunk-DYDBF5W6.js.map +0 -1
  222. package/dist/chunk-ERG2IEWX.js.map +0 -1
  223. package/dist/chunk-F7GAYVWF.js.map +0 -1
  224. package/dist/chunk-F7PGDD2X.js.map +0 -1
  225. package/dist/chunk-GENQ5QGP.js +0 -37
  226. package/dist/chunk-GENQ5QGP.js.map +0 -1
  227. package/dist/chunk-HIN3UVOG.js.map +0 -1
  228. package/dist/chunk-HYVT345Y.js +0 -159
  229. package/dist/chunk-HYVT345Y.js.map +0 -1
  230. package/dist/chunk-LEK6DEAE.js +0 -113
  231. package/dist/chunk-LEK6DEAE.js.map +0 -1
  232. package/dist/chunk-MDLSAFPP.js +0 -99
  233. package/dist/chunk-MDLSAFPP.js.map +0 -1
  234. package/dist/chunk-N33KUCFP.js.map +0 -1
  235. package/dist/chunk-O6TBHGVO.js +0 -168
  236. package/dist/chunk-O6TBHGVO.js.map +0 -1
  237. package/dist/chunk-OEGZ5YTJ.js +0 -56
  238. package/dist/chunk-OEGZ5YTJ.js.map +0 -1
  239. package/dist/chunk-P723N2LP.js +0 -147
  240. package/dist/chunk-P723N2LP.js.map +0 -1
  241. package/dist/chunk-RGVBGTD6.js +0 -21
  242. package/dist/chunk-RGVBGTD6.js.map +0 -1
  243. package/dist/chunk-TK7A4RX7.js +0 -1085
  244. package/dist/chunk-TK7A4RX7.js.map +0 -1
  245. package/dist/chunk-TWSTAVLO.js +0 -132
  246. package/dist/chunk-TWSTAVLO.js.map +0 -1
  247. package/dist/chunk-V6BJVYNH.js +0 -4423
  248. package/dist/chunk-V6BJVYNH.js.map +0 -1
  249. package/dist/chunk-XH34FX4C.js +0 -43
  250. package/dist/chunk-XH34FX4C.js.map +0 -1
  251. package/dist/chunk-YRIIBPJD.js +0 -86
  252. package/dist/chunk-YRIIBPJD.js.map +0 -1
  253. package/dist/cli-OJYHLO4Y.js +0 -97
  254. package/dist/cli-OJYHLO4Y.js.map +0 -1
  255. package/dist/client-SS3C5MF6.js +0 -12
  256. package/dist/config-IBS6KOLQ.js.map +0 -1
  257. package/dist/curate-4CKEMOPV.js +0 -78
  258. package/dist/curate-4CKEMOPV.js.map +0 -1
  259. package/dist/detect-providers-LFIVJYQO.js +0 -35
  260. package/dist/detect-providers-LFIVJYQO.js.map +0 -1
  261. package/dist/digest-ZLARHLLY.js +0 -85
  262. package/dist/digest-ZLARHLLY.js.map +0 -1
  263. package/dist/init-3LVKVQ4L.js +0 -109
  264. package/dist/init-3LVKVQ4L.js.map +0 -1
  265. package/dist/logs-6CWVP574.js +0 -84
  266. package/dist/logs-6CWVP574.js.map +0 -1
  267. package/dist/main-RB727YRP.js +0 -5836
  268. package/dist/main-RB727YRP.js.map +0 -1
  269. package/dist/rebuild-QWVVCBCZ.js +0 -64
  270. package/dist/rebuild-QWVVCBCZ.js.map +0 -1
  271. package/dist/reprocess-YG3WLUI2.js +0 -79
  272. package/dist/reprocess-YG3WLUI2.js.map +0 -1
  273. package/dist/search-BQLBW5CS.js +0 -120
  274. package/dist/search-BQLBW5CS.js.map +0 -1
  275. package/dist/server-43KSJ65Q.js.map +0 -1
  276. package/dist/session-F326AWCH.js +0 -44
  277. package/dist/session-F326AWCH.js.map +0 -1
  278. package/dist/session-start-6SHGT2AW.js +0 -192
  279. package/dist/session-start-6SHGT2AW.js.map +0 -1
  280. package/dist/setup-digest-X735EZSD.js +0 -15
  281. package/dist/setup-llm-QBSTQO7N.js +0 -15
  282. package/dist/src/prompts/classification.md +0 -43
  283. package/dist/stats-QBLIEFWL.js +0 -58
  284. package/dist/stats-QBLIEFWL.js.map +0 -1
  285. package/dist/templates-XPRBOWCE.js +0 -38
  286. package/dist/templates-XPRBOWCE.js.map +0 -1
  287. package/dist/ui/assets/index-CjWGVHhF.css +0 -1
  288. package/dist/ui/assets/index-Cq-H7wgE.js +0 -369
  289. package/dist/verify-X272WGBD.js.map +0 -1
  290. package/skills/setup/SKILL.md +0 -174
  291. package/skills/setup/references/model-recommendations.md +0 -83
  292. /package/dist/{chunk-4DYD4HHG.js.map → chunk-5SDH75YC.js.map} +0 -0
  293. /package/dist/{client-SS3C5MF6.js.map → chunk-E4VLWIJC.js.map} +0 -0
  294. /package/dist/{setup-digest-X735EZSD.js.map → chunk-IB76KGBY.js.map} +0 -0
  295. /package/dist/{chunk-AHZN4Z34.js.map → chunk-J4RVYUH4.js.map} +0 -0
  296. /package/dist/{setup-llm-QBSTQO7N.js.map → client-B27SN5QG.js.map} +0 -0
  297. /package/dist/{version-XE4GYTBV.js.map → client-EYOTW3JU.js.map} +0 -0
@@ -0,0 +1,93 @@
1
+ import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
+ import {
3
+ syncRow
4
+ } from "./chunk-XLY3REL3.js";
5
+ import {
6
+ getDatabase
7
+ } from "./chunk-MYX5NCRH.js";
8
+ import {
9
+ DEFAULT_MACHINE_ID
10
+ } from "./chunk-76ZO5RGT.js";
11
+
12
+ // src/db/queries/resolution-events.ts
13
+ var DEFAULT_LIST_LIMIT = 100;
14
+ var EVENT_COLUMNS = [
15
+ "id",
16
+ "agent_id",
17
+ "spore_id",
18
+ "action",
19
+ "new_spore_id",
20
+ "reason",
21
+ "session_id",
22
+ "created_at",
23
+ "machine_id",
24
+ "synced_at"
25
+ ];
26
+ var SELECT_COLUMNS = EVENT_COLUMNS.join(", ");
27
+ function toResolutionEventRow(row) {
28
+ return {
29
+ id: row.id,
30
+ agent_id: row.agent_id,
31
+ spore_id: row.spore_id,
32
+ action: row.action,
33
+ new_spore_id: row.new_spore_id ?? null,
34
+ reason: row.reason ?? null,
35
+ session_id: row.session_id ?? null,
36
+ created_at: row.created_at,
37
+ machine_id: row.machine_id ?? DEFAULT_MACHINE_ID,
38
+ synced_at: row.synced_at ?? null
39
+ };
40
+ }
41
+ function insertResolutionEvent(data) {
42
+ const db = getDatabase();
43
+ db.prepare(
44
+ `INSERT INTO resolution_events (
45
+ id, agent_id, spore_id, action, new_spore_id, reason, session_id, created_at, machine_id
46
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`
47
+ ).run(
48
+ data.id,
49
+ data.agent_id,
50
+ data.spore_id,
51
+ data.action,
52
+ data.new_spore_id ?? null,
53
+ data.reason ?? null,
54
+ data.session_id ?? null,
55
+ data.created_at,
56
+ data.machine_id ?? DEFAULT_MACHINE_ID
57
+ );
58
+ const row = toResolutionEventRow(
59
+ db.prepare(`SELECT ${SELECT_COLUMNS} FROM resolution_events WHERE id = ?`).get(data.id)
60
+ );
61
+ syncRow("resolution_events", row);
62
+ return row;
63
+ }
64
+ function listResolutionEvents(options = {}) {
65
+ const db = getDatabase();
66
+ const conditions = [];
67
+ const params = [];
68
+ if (options.agent_id !== void 0) {
69
+ conditions.push(`agent_id = ?`);
70
+ params.push(options.agent_id);
71
+ }
72
+ if (options.spore_id !== void 0) {
73
+ conditions.push(`spore_id = ?`);
74
+ params.push(options.spore_id);
75
+ }
76
+ const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
77
+ const limit = options.limit ?? DEFAULT_LIST_LIMIT;
78
+ params.push(limit);
79
+ const rows = db.prepare(
80
+ `SELECT ${SELECT_COLUMNS}
81
+ FROM resolution_events
82
+ ${where}
83
+ ORDER BY created_at DESC
84
+ LIMIT ?`
85
+ ).all(...params);
86
+ return rows.map(toResolutionEventRow);
87
+ }
88
+
89
+ export {
90
+ insertResolutionEvent,
91
+ listResolutionEvents
92
+ };
93
+ //# sourceMappingURL=chunk-D6DXYAFK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/db/queries/resolution-events.ts"],"sourcesContent":["/**\n * Resolution event CRUD query helpers.\n *\n * All functions obtain the SQLite instance internally via `getDatabase()`.\n * Queries use positional `?` placeholders throughout (better-sqlite3).\n */\n\nimport { getDatabase } from '@myco/db/client.js';\nimport { DEFAULT_MACHINE_ID } from '@myco/constants.js';\nimport { syncRow } from '@myco/db/queries/team-outbox.js';\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\n/** Default number of events returned by listResolutionEvents when no limit given. */\nconst DEFAULT_LIST_LIMIT = 100;\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** Fields required (or optional) when inserting a resolution event. */\nexport interface ResolutionEventInsert {\n id: string;\n agent_id: string;\n spore_id: string;\n action: string;\n created_at: number;\n new_spore_id?: string | null;\n reason?: string | null;\n session_id?: string | null;\n machine_id?: string;\n}\n\n/** Row shape returned from resolution_events queries (all columns). */\nexport interface ResolutionEventRow {\n id: string;\n agent_id: string;\n spore_id: string;\n action: string;\n new_spore_id: string | null;\n reason: string | null;\n session_id: string | null;\n created_at: number;\n machine_id: string;\n synced_at: number | null;\n}\n\n/** Filter options for `listResolutionEvents`. */\nexport interface ListResolutionEventsOptions {\n agent_id?: string;\n spore_id?: string;\n limit?: number;\n}\n\n// ---------------------------------------------------------------------------\n// Column list\n// ---------------------------------------------------------------------------\n\nconst EVENT_COLUMNS = [\n 'id',\n 'agent_id',\n 'spore_id',\n 'action',\n 'new_spore_id',\n 'reason',\n 'session_id',\n 'created_at',\n 'machine_id',\n 'synced_at',\n] as const;\n\nconst SELECT_COLUMNS = EVENT_COLUMNS.join(', ');\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n/** Normalize a SQLite result row into a typed ResolutionEventRow. */\nfunction toResolutionEventRow(row: Record<string, unknown>): ResolutionEventRow {\n return {\n id: row.id as string,\n agent_id: row.agent_id as string,\n spore_id: row.spore_id as string,\n action: row.action as string,\n new_spore_id: (row.new_spore_id as string) ?? null,\n reason: (row.reason as string) ?? null,\n session_id: (row.session_id as string) ?? null,\n created_at: row.created_at as number,\n machine_id: (row.machine_id as string) ?? DEFAULT_MACHINE_ID,\n synced_at: (row.synced_at as number) ?? null,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Public API\n// ---------------------------------------------------------------------------\n\n/**\n * Insert a new resolution event.\n */\nexport function insertResolutionEvent(\n data: ResolutionEventInsert,\n): ResolutionEventRow {\n const db = getDatabase();\n\n db.prepare(\n `INSERT INTO resolution_events (\n id, agent_id, spore_id, action, new_spore_id, reason, session_id, created_at, machine_id\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n data.id,\n data.agent_id,\n data.spore_id,\n data.action,\n data.new_spore_id ?? null,\n data.reason ?? null,\n data.session_id ?? null,\n data.created_at,\n data.machine_id ?? DEFAULT_MACHINE_ID,\n );\n\n const row = toResolutionEventRow(\n db.prepare(`SELECT ${SELECT_COLUMNS} FROM resolution_events WHERE id = ?`).get(data.id) as Record<string, unknown>,\n );\n\n syncRow('resolution_events', row);\n\n return row;\n}\n\n/**\n * List resolution events with optional filters, ordered by created_at DESC.\n */\nexport function listResolutionEvents(\n options: ListResolutionEventsOptions = {},\n): ResolutionEventRow[] {\n const db = getDatabase();\n\n const conditions: string[] = [];\n const params: unknown[] = [];\n\n if (options.agent_id !== undefined) {\n conditions.push(`agent_id = ?`);\n params.push(options.agent_id);\n }\n\n if (options.spore_id !== undefined) {\n conditions.push(`spore_id = ?`);\n params.push(options.spore_id);\n }\n\n const where = conditions.length > 0 ? `WHERE ${conditions.join(' AND ')}` : '';\n const limit = options.limit ?? DEFAULT_LIST_LIMIT;\n\n params.push(limit);\n\n const rows = db.prepare(\n `SELECT ${SELECT_COLUMNS}\n FROM resolution_events\n ${where}\n ORDER BY created_at DESC\n LIMIT ?`,\n ).all(...params) as Record<string, unknown>[];\n\n return rows.map(toResolutionEventRow);\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,IAAM,qBAAqB;AA4C3B,IAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,iBAAiB,cAAc,KAAK,IAAI;AAO9C,SAAS,qBAAqB,KAAkD;AAC9E,SAAO;AAAA,IACL,IAAI,IAAI;AAAA,IACR,UAAU,IAAI;AAAA,IACd,UAAU,IAAI;AAAA,IACd,QAAQ,IAAI;AAAA,IACZ,cAAe,IAAI,gBAA2B;AAAA,IAC9C,QAAS,IAAI,UAAqB;AAAA,IAClC,YAAa,IAAI,cAAyB;AAAA,IAC1C,YAAY,IAAI;AAAA,IAChB,YAAa,IAAI,cAAyB;AAAA,IAC1C,WAAY,IAAI,aAAwB;AAAA,EAC1C;AACF;AASO,SAAS,sBACd,MACoB;AACpB,QAAM,KAAK,YAAY;AAEvB,KAAG;AAAA,IACD;AAAA;AAAA;AAAA,EAGF,EAAE;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,gBAAgB;AAAA,IACrB,KAAK,UAAU;AAAA,IACf,KAAK,cAAc;AAAA,IACnB,KAAK;AAAA,IACL,KAAK,cAAc;AAAA,EACrB;AAEA,QAAM,MAAM;AAAA,IACV,GAAG,QAAQ,UAAU,cAAc,sCAAsC,EAAE,IAAI,KAAK,EAAE;AAAA,EACxF;AAEA,UAAQ,qBAAqB,GAAG;AAEhC,SAAO;AACT;AAKO,SAAS,qBACd,UAAuC,CAAC,GAClB;AACtB,QAAM,KAAK,YAAY;AAEvB,QAAM,aAAuB,CAAC;AAC9B,QAAM,SAAoB,CAAC;AAE3B,MAAI,QAAQ,aAAa,QAAW;AAClC,eAAW,KAAK,cAAc;AAC9B,WAAO,KAAK,QAAQ,QAAQ;AAAA,EAC9B;AAEA,MAAI,QAAQ,aAAa,QAAW;AAClC,eAAW,KAAK,cAAc;AAC9B,WAAO,KAAK,QAAQ,QAAQ;AAAA,EAC9B;AAEA,QAAM,QAAQ,WAAW,SAAS,IAAI,SAAS,WAAW,KAAK,OAAO,CAAC,KAAK;AAC5E,QAAM,QAAQ,QAAQ,SAAS;AAE/B,SAAO,KAAK,KAAK;AAEjB,QAAM,OAAO,GAAG;AAAA,IACd,UAAU,cAAc;AAAA;AAAA,OAErB,KAAK;AAAA;AAAA;AAAA,EAGV,EAAE,IAAI,GAAG,MAAM;AAEf,SAAO,KAAK,IAAI,oBAAoB;AACtC;","names":[]}