@goondocks/myco 0.16.2 → 0.17.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 (166) hide show
  1. package/CONTRIBUTING.md +3 -3
  2. package/README.md +4 -3
  3. package/dist/{agent-run-MNU2QWHR.js → agent-run-ZDHXORE2.js} +7 -7
  4. package/dist/{agent-tasks-NCRKUU6E.js → agent-tasks-IPUWMMDZ.js} +7 -7
  5. package/dist/{chunk-P6C6ADBU.js → chunk-2IJ6C63F.js} +2 -2
  6. package/dist/{chunk-V2ZBYKDU.js → chunk-2WRXLYG6.js} +3 -3
  7. package/dist/{chunk-TIAYBVSI.js → chunk-4JPUC6RL.js} +170 -56
  8. package/dist/chunk-4JPUC6RL.js.map +1 -0
  9. package/dist/{chunk-34NHDRWI.js → chunk-6SDC6V3N.js} +2 -2
  10. package/dist/{chunk-34NHDRWI.js.map → chunk-6SDC6V3N.js.map} +1 -1
  11. package/dist/{chunk-6JZEAOLG.js → chunk-CPL76CYD.js} +3 -3
  12. package/dist/{chunk-VWXDSDJU.js → chunk-DKSQMH5X.js} +2 -2
  13. package/dist/{chunk-GSKXOCFG.js → chunk-EBIYONNZ.js} +21 -1
  14. package/dist/chunk-EBIYONNZ.js.map +1 -0
  15. package/dist/{chunk-XAXQ72L3.js → chunk-FEX6ALLH.js} +2 -2
  16. package/dist/{chunk-UILSK6DK.js → chunk-GBYLHPML.js} +2 -2
  17. package/dist/{chunk-DZWSHCAC.js → chunk-KGL5QSDN.js} +2 -2
  18. package/dist/{chunk-4JVHWBZF.js → chunk-KKEMVH6D.js} +2 -2
  19. package/dist/{chunk-BNAYBGPH.js → chunk-MSM775XQ.js} +6 -5
  20. package/dist/{chunk-BNAYBGPH.js.map → chunk-MSM775XQ.js.map} +1 -1
  21. package/dist/{chunk-CJ2KTRWI.js → chunk-OGNEW5CN.js} +2 -2
  22. package/dist/{chunk-2E7YGLLN.js → chunk-PFF4KB4O.js} +2 -2
  23. package/dist/{chunk-4U6X35TH.js → chunk-QBB6LX57.js} +3 -3
  24. package/dist/{chunk-C3GNF7RJ.js → chunk-QQ7CXA7Q.js} +5 -5
  25. package/dist/{chunk-I3S6L7QC.js → chunk-U3SSOSIR.js} +2 -2
  26. package/dist/{chunk-RJRRHTAA.js → chunk-U63GDHYJ.js} +3 -3
  27. package/dist/{chunk-IRSNOBGD.js → chunk-UDBCAFXS.js} +2 -2
  28. package/dist/{chunk-SGYYOTNM.js → chunk-VGVRBSLC.js} +2 -2
  29. package/dist/{chunk-W7ZOOZMK.js → chunk-VQQ57UPG.js} +3 -3
  30. package/dist/{chunk-ZMODJWI5.js → chunk-XVWJ273L.js} +4 -4
  31. package/dist/{chunk-RPILIIYT.js → chunk-Y7QCKCEJ.js} +2 -2
  32. package/dist/{chunk-D63XTGBV.js → chunk-YTOD6L6N.js} +6 -6
  33. package/dist/{chunk-D2NTFSVO.js → chunk-ZUSTCXHT.js} +3 -3
  34. package/dist/{cli-RYYABF2X.js → cli-BRDOPJW3.js} +40 -40
  35. package/dist/{client-5VXKGNN2.js → client-AQZMD3LB.js} +4 -4
  36. package/dist/{config-VHHCGE4F.js → config-K3CJEFFO.js} +3 -3
  37. package/dist/{detect-6FNYONJF.js → detect-NJ2OREDP.js} +2 -2
  38. package/dist/{detect-providers-R7QOB3H6.js → detect-providers-OE6HWW3M.js} +4 -4
  39. package/dist/{doctor-M4Q7VCDO.js → doctor-YOUCIJJY.js} +14 -13
  40. package/dist/doctor-YOUCIJJY.js.map +1 -0
  41. package/dist/{executor-ULRFWJCH.js → executor-UYNV4EOQ.js} +17 -17
  42. package/dist/{init-AEHAQFPK.js → init-MTMEFG4E.js} +17 -17
  43. package/dist/{init-wizard-SVKDS3LR.js → init-wizard-ZS3CV6CM.js} +7 -7
  44. package/dist/{installer-AARSFXI6.js → installer-CTWQB4RS.js} +2 -2
  45. package/dist/{llm-LS7U7BHC.js → llm-PGETQHZ2.js} +7 -7
  46. package/dist/{loader-QDWQTBX4.js → loader-AVWL7PNO.js} +3 -3
  47. package/dist/{loader-YQDG5GI5.js → loader-J56KP27U.js} +3 -3
  48. package/dist/{main-GAGOE6XB.js → main-ZIMYW2AB.js} +105 -60
  49. package/dist/main-ZIMYW2AB.js.map +1 -0
  50. package/dist/{open-4QMAL32X.js → open-77QXL7VY.js} +7 -7
  51. package/dist/{openai-embeddings-FUW6CSN2.js → openai-embeddings-LZKY6RV5.js} +4 -4
  52. package/dist/{openrouter-YSIUSUQL.js → openrouter-UTOZG6Z5.js} +4 -4
  53. package/dist/{post-compact-OAWEBEDK.js → post-compact-CA7O7QPL.js} +7 -7
  54. package/dist/{post-tool-use-B3KOEOIM.js → post-tool-use-JNXJIGNK.js} +6 -6
  55. package/dist/{post-tool-use-failure-2I5ELTTN.js → post-tool-use-failure-V52CZWVZ.js} +7 -7
  56. package/dist/{pre-compact-NOXNJ5EV.js → pre-compact-J2GSDQCJ.js} +7 -7
  57. package/dist/{provider-check-VEYONGNU.js → provider-check-CESRPIY5.js} +4 -4
  58. package/dist/{registry-5R3DLJQH.js → registry-SPKP2WLI.js} +4 -4
  59. package/dist/{remove-LX4G6KP7.js → remove-ODPLWK7O.js} +9 -9
  60. package/dist/{resolution-events-CHOKR35X.js → resolution-events-CLDXZF67.js} +4 -4
  61. package/dist/{restart-WSNBSALP.js → restart-6KKZODOI.js} +8 -8
  62. package/dist/{search-Q6N3SHKP.js → search-U6N2DSOI.js} +8 -8
  63. package/dist/{server-OFRKA6N7.js → server-SP4G7MY7.js} +5 -5
  64. package/dist/{server-OFRKA6N7.js.map → server-SP4G7MY7.js.map} +1 -1
  65. package/dist/{session-SKXJLJYH.js → session-6R3RNVKD.js} +9 -9
  66. package/dist/{session-end-5EIVRCPS.js → session-end-TCFCYDBL.js} +6 -6
  67. package/dist/{session-start-OL2ICLED.js → session-start-XXN2TVNI.js} +11 -11
  68. package/dist/{setup-llm-BRNQW7K2.js → setup-llm-GISFI73Z.js} +8 -8
  69. package/dist/src/cli.js +1 -1
  70. package/dist/src/daemon/main.js +1 -1
  71. package/dist/src/hooks/post-tool-use.js +1 -1
  72. package/dist/src/hooks/session-end.js +1 -1
  73. package/dist/src/hooks/session-start.js +1 -1
  74. package/dist/src/hooks/stop.js +1 -1
  75. package/dist/src/hooks/user-prompt-submit.js +1 -1
  76. package/dist/src/mcp/server.js +1 -1
  77. package/dist/src/symbionts/manifests/claude-code.yaml +4 -0
  78. package/dist/src/symbionts/manifests/opencode.yaml +26 -0
  79. package/dist/src/symbionts/templates/opencode/mcp.json +6 -0
  80. package/dist/src/symbionts/templates/opencode/package.json +5 -0
  81. package/dist/src/symbionts/templates/opencode/plugin.ts +690 -0
  82. package/dist/src/symbionts/templates/opencode/settings.json +8 -0
  83. package/dist/{stats-U5FHDIR7.js → stats-MYQD4OVD.js} +9 -9
  84. package/dist/{stop-YUZNQBRQ.js → stop-K6TDJORY.js} +6 -6
  85. package/dist/{stop-failure-6WFAKH2U.js → stop-failure-U635O5A3.js} +7 -7
  86. package/dist/{subagent-start-GWJXAAH3.js → subagent-start-LLGQBC5Q.js} +7 -7
  87. package/dist/{subagent-stop-B44SMV2R.js → subagent-stop-BO3GZWXD.js} +7 -7
  88. package/dist/{task-completed-GIUFSRTP.js → task-completed-3ZJHSI2E.js} +7 -7
  89. package/dist/{team-3YI3UWB3.js → team-OJLQCVE3.js} +5 -5
  90. package/dist/ui/assets/{index-RYHXSJv1.js → index-2UyTdjlV.js} +12 -12
  91. package/dist/ui/assets/index-Cts1wLEW.css +1 -0
  92. package/dist/ui/index.html +2 -2
  93. package/dist/{update-QPRTLGYU.js → update-HR7WMESA.js} +9 -9
  94. package/dist/{user-prompt-submit-FSYEPW7W.js → user-prompt-submit-NM73R4I3.js} +6 -6
  95. package/dist/{verify-ITBMLK67.js → verify-PSERIZPF.js} +8 -8
  96. package/dist/{version-VS2EDHBG.js → version-YCODQZSX.js} +2 -2
  97. package/package.json +1 -1
  98. package/skills/rules/SKILL.md +1 -1
  99. package/dist/chunk-GSKXOCFG.js.map +0 -1
  100. package/dist/chunk-TIAYBVSI.js.map +0 -1
  101. package/dist/doctor-M4Q7VCDO.js.map +0 -1
  102. package/dist/main-GAGOE6XB.js.map +0 -1
  103. package/dist/ui/assets/index-Bjv_ck3c.css +0 -1
  104. /package/dist/{agent-run-MNU2QWHR.js.map → agent-run-ZDHXORE2.js.map} +0 -0
  105. /package/dist/{agent-tasks-NCRKUU6E.js.map → agent-tasks-IPUWMMDZ.js.map} +0 -0
  106. /package/dist/{chunk-P6C6ADBU.js.map → chunk-2IJ6C63F.js.map} +0 -0
  107. /package/dist/{chunk-V2ZBYKDU.js.map → chunk-2WRXLYG6.js.map} +0 -0
  108. /package/dist/{chunk-6JZEAOLG.js.map → chunk-CPL76CYD.js.map} +0 -0
  109. /package/dist/{chunk-VWXDSDJU.js.map → chunk-DKSQMH5X.js.map} +0 -0
  110. /package/dist/{chunk-XAXQ72L3.js.map → chunk-FEX6ALLH.js.map} +0 -0
  111. /package/dist/{chunk-UILSK6DK.js.map → chunk-GBYLHPML.js.map} +0 -0
  112. /package/dist/{chunk-DZWSHCAC.js.map → chunk-KGL5QSDN.js.map} +0 -0
  113. /package/dist/{chunk-4JVHWBZF.js.map → chunk-KKEMVH6D.js.map} +0 -0
  114. /package/dist/{chunk-CJ2KTRWI.js.map → chunk-OGNEW5CN.js.map} +0 -0
  115. /package/dist/{chunk-2E7YGLLN.js.map → chunk-PFF4KB4O.js.map} +0 -0
  116. /package/dist/{chunk-4U6X35TH.js.map → chunk-QBB6LX57.js.map} +0 -0
  117. /package/dist/{chunk-C3GNF7RJ.js.map → chunk-QQ7CXA7Q.js.map} +0 -0
  118. /package/dist/{chunk-I3S6L7QC.js.map → chunk-U3SSOSIR.js.map} +0 -0
  119. /package/dist/{chunk-RJRRHTAA.js.map → chunk-U63GDHYJ.js.map} +0 -0
  120. /package/dist/{chunk-IRSNOBGD.js.map → chunk-UDBCAFXS.js.map} +0 -0
  121. /package/dist/{chunk-SGYYOTNM.js.map → chunk-VGVRBSLC.js.map} +0 -0
  122. /package/dist/{chunk-W7ZOOZMK.js.map → chunk-VQQ57UPG.js.map} +0 -0
  123. /package/dist/{chunk-ZMODJWI5.js.map → chunk-XVWJ273L.js.map} +0 -0
  124. /package/dist/{chunk-RPILIIYT.js.map → chunk-Y7QCKCEJ.js.map} +0 -0
  125. /package/dist/{chunk-D63XTGBV.js.map → chunk-YTOD6L6N.js.map} +0 -0
  126. /package/dist/{chunk-D2NTFSVO.js.map → chunk-ZUSTCXHT.js.map} +0 -0
  127. /package/dist/{cli-RYYABF2X.js.map → cli-BRDOPJW3.js.map} +0 -0
  128. /package/dist/{client-5VXKGNN2.js.map → client-AQZMD3LB.js.map} +0 -0
  129. /package/dist/{config-VHHCGE4F.js.map → config-K3CJEFFO.js.map} +0 -0
  130. /package/dist/{detect-6FNYONJF.js.map → detect-NJ2OREDP.js.map} +0 -0
  131. /package/dist/{detect-providers-R7QOB3H6.js.map → detect-providers-OE6HWW3M.js.map} +0 -0
  132. /package/dist/{executor-ULRFWJCH.js.map → executor-UYNV4EOQ.js.map} +0 -0
  133. /package/dist/{init-AEHAQFPK.js.map → init-MTMEFG4E.js.map} +0 -0
  134. /package/dist/{init-wizard-SVKDS3LR.js.map → init-wizard-ZS3CV6CM.js.map} +0 -0
  135. /package/dist/{installer-AARSFXI6.js.map → installer-CTWQB4RS.js.map} +0 -0
  136. /package/dist/{llm-LS7U7BHC.js.map → llm-PGETQHZ2.js.map} +0 -0
  137. /package/dist/{loader-QDWQTBX4.js.map → loader-AVWL7PNO.js.map} +0 -0
  138. /package/dist/{loader-YQDG5GI5.js.map → loader-J56KP27U.js.map} +0 -0
  139. /package/dist/{open-4QMAL32X.js.map → open-77QXL7VY.js.map} +0 -0
  140. /package/dist/{openai-embeddings-FUW6CSN2.js.map → openai-embeddings-LZKY6RV5.js.map} +0 -0
  141. /package/dist/{openrouter-YSIUSUQL.js.map → openrouter-UTOZG6Z5.js.map} +0 -0
  142. /package/dist/{post-compact-OAWEBEDK.js.map → post-compact-CA7O7QPL.js.map} +0 -0
  143. /package/dist/{post-tool-use-B3KOEOIM.js.map → post-tool-use-JNXJIGNK.js.map} +0 -0
  144. /package/dist/{post-tool-use-failure-2I5ELTTN.js.map → post-tool-use-failure-V52CZWVZ.js.map} +0 -0
  145. /package/dist/{pre-compact-NOXNJ5EV.js.map → pre-compact-J2GSDQCJ.js.map} +0 -0
  146. /package/dist/{provider-check-VEYONGNU.js.map → provider-check-CESRPIY5.js.map} +0 -0
  147. /package/dist/{registry-5R3DLJQH.js.map → registry-SPKP2WLI.js.map} +0 -0
  148. /package/dist/{remove-LX4G6KP7.js.map → remove-ODPLWK7O.js.map} +0 -0
  149. /package/dist/{resolution-events-CHOKR35X.js.map → resolution-events-CLDXZF67.js.map} +0 -0
  150. /package/dist/{restart-WSNBSALP.js.map → restart-6KKZODOI.js.map} +0 -0
  151. /package/dist/{search-Q6N3SHKP.js.map → search-U6N2DSOI.js.map} +0 -0
  152. /package/dist/{session-SKXJLJYH.js.map → session-6R3RNVKD.js.map} +0 -0
  153. /package/dist/{session-end-5EIVRCPS.js.map → session-end-TCFCYDBL.js.map} +0 -0
  154. /package/dist/{session-start-OL2ICLED.js.map → session-start-XXN2TVNI.js.map} +0 -0
  155. /package/dist/{setup-llm-BRNQW7K2.js.map → setup-llm-GISFI73Z.js.map} +0 -0
  156. /package/dist/{stats-U5FHDIR7.js.map → stats-MYQD4OVD.js.map} +0 -0
  157. /package/dist/{stop-YUZNQBRQ.js.map → stop-K6TDJORY.js.map} +0 -0
  158. /package/dist/{stop-failure-6WFAKH2U.js.map → stop-failure-U635O5A3.js.map} +0 -0
  159. /package/dist/{subagent-start-GWJXAAH3.js.map → subagent-start-LLGQBC5Q.js.map} +0 -0
  160. /package/dist/{subagent-stop-B44SMV2R.js.map → subagent-stop-BO3GZWXD.js.map} +0 -0
  161. /package/dist/{task-completed-GIUFSRTP.js.map → task-completed-3ZJHSI2E.js.map} +0 -0
  162. /package/dist/{team-3YI3UWB3.js.map → team-OJLQCVE3.js.map} +0 -0
  163. /package/dist/{update-QPRTLGYU.js.map → update-HR7WMESA.js.map} +0 -0
  164. /package/dist/{user-prompt-submit-FSYEPW7W.js.map → user-prompt-submit-NM73R4I3.js.map} +0 -0
  165. /package/dist/{verify-ITBMLK67.js.map → verify-PSERIZPF.js.map} +0 -0
  166. /package/dist/{version-VS2EDHBG.js.map → version-YCODQZSX.js.map} +0 -0
@@ -12,7 +12,7 @@ import {
12
12
  getEmbeddingQueueDepth,
13
13
  getUnembedded,
14
14
  markEmbedded
15
- } from "./chunk-ZMODJWI5.js";
15
+ } from "./chunk-XVWJ273L.js";
16
16
  import {
17
17
  buildTaskInstruction,
18
18
  closeOpenBatches,
@@ -59,11 +59,11 @@ import {
59
59
  setResponseSummary,
60
60
  updateCandidate,
61
61
  updateNotificationStatus
62
- } from "./chunk-D63XTGBV.js";
62
+ } from "./chunk-YTOD6L6N.js";
63
63
  import {
64
64
  fullTextSearch,
65
65
  hydrateSearchResults
66
- } from "./chunk-UILSK6DK.js";
66
+ } from "./chunk-GBYLHPML.js";
67
67
  import {
68
68
  cleanupStagedSkill,
69
69
  listStaleStagingDirs
@@ -76,54 +76,54 @@ import {
76
76
  } from "./chunk-ENWBFX7F.js";
77
77
  import {
78
78
  createEmbeddingProvider
79
- } from "./chunk-C3GNF7RJ.js";
79
+ } from "./chunk-QQ7CXA7Q.js";
80
80
  import {
81
81
  copyTaskToUser,
82
82
  deleteUserTask,
83
83
  loadAllTasks,
84
84
  validateTaskName,
85
85
  writeUserTask
86
- } from "./chunk-D2NTFSVO.js";
86
+ } from "./chunk-ZUSTCXHT.js";
87
87
  import {
88
88
  AgentTaskSchema,
89
89
  registerAgent,
90
90
  resolveDefinitionsDir,
91
91
  taskFromParsed
92
- } from "./chunk-W7ZOOZMK.js";
92
+ } from "./chunk-VQQ57UPG.js";
93
93
  import {
94
94
  listTurnsByRun
95
95
  } from "./chunk-QLCD77AN.js";
96
96
  import {
97
97
  checkLocalProvider
98
- } from "./chunk-6JZEAOLG.js";
98
+ } from "./chunk-CPL76CYD.js";
99
99
  import {
100
100
  EventBuffer,
101
101
  cleanStaleBuffers,
102
102
  listBufferSessionIds
103
103
  } from "./chunk-V7XG6V6C.js";
104
104
  import "./chunk-IB76KGBY.js";
105
- import "./chunk-I3S6L7QC.js";
106
- import "./chunk-RPILIIYT.js";
107
- import "./chunk-DZWSHCAC.js";
108
- import "./chunk-BNAYBGPH.js";
105
+ import "./chunk-U3SSOSIR.js";
106
+ import "./chunk-Y7QCKCEJ.js";
107
+ import "./chunk-KGL5QSDN.js";
108
+ import "./chunk-MSM775XQ.js";
109
109
  import "./chunk-SAKJMNSR.js";
110
110
  import {
111
111
  loadSecrets,
112
112
  readSecrets,
113
113
  writeSecret
114
114
  } from "./chunk-RJMXDUMA.js";
115
- import "./chunk-TIAYBVSI.js";
115
+ import "./chunk-4JPUC6RL.js";
116
116
  import {
117
117
  LmStudioBackend,
118
118
  OllamaBackend
119
- } from "./chunk-VWXDSDJU.js";
119
+ } from "./chunk-DKSQMH5X.js";
120
120
  import {
121
121
  countSpores,
122
122
  getSpore,
123
123
  insertSpore,
124
124
  listSpores,
125
125
  updateSporeStatus
126
- } from "./chunk-IRSNOBGD.js";
126
+ } from "./chunk-UDBCAFXS.js";
127
127
  import {
128
128
  closeSession,
129
129
  countSessions,
@@ -134,7 +134,7 @@ import {
134
134
  listSessions,
135
135
  updateSession,
136
136
  upsertSession
137
- } from "./chunk-SGYYOTNM.js";
137
+ } from "./chunk-VGVRBSLC.js";
138
138
  import {
139
139
  backfillUnsynced,
140
140
  countDeadLettered,
@@ -150,13 +150,13 @@ import {
150
150
  pruneOld,
151
151
  retryDeadLettered,
152
152
  syncRow
153
- } from "./chunk-4JVHWBZF.js";
153
+ } from "./chunk-KKEMVH6D.js";
154
154
  import {
155
155
  EMBEDDING_DIMENSIONS,
156
156
  REST_SETTABLE_STATUSES,
157
157
  SCHEMA_VERSION,
158
158
  createSchema
159
- } from "./chunk-CJ2KTRWI.js";
159
+ } from "./chunk-OGNEW5CN.js";
160
160
  import {
161
161
  CONFIG_FILENAME,
162
162
  MycoConfigSchema,
@@ -165,7 +165,7 @@ import {
165
165
  updateBackupConfig,
166
166
  updateConfig,
167
167
  updateTeamConfig
168
- } from "./chunk-XAXQ72L3.js";
168
+ } from "./chunk-FEX6ALLH.js";
169
169
  import {
170
170
  closeDatabase,
171
171
  getDatabase,
@@ -174,13 +174,13 @@ import {
174
174
  } from "./chunk-MYX5NCRH.js";
175
175
  import {
176
176
  resolveCliEntryPath
177
- } from "./chunk-RJRRHTAA.js";
177
+ } from "./chunk-U63GDHYJ.js";
178
178
  import {
179
179
  getPluginVersion
180
- } from "./chunk-2E7YGLLN.js";
180
+ } from "./chunk-PFF4KB4O.js";
181
181
  import {
182
182
  loadManifests
183
- } from "./chunk-GSKXOCFG.js";
183
+ } from "./chunk-EBIYONNZ.js";
184
184
  import {
185
185
  findPackageRoot
186
186
  } from "./chunk-LPUQPDC2.js";
@@ -234,7 +234,7 @@ import {
234
234
  USER_TASK_SOURCE,
235
235
  epochSeconds,
236
236
  estimateTokens
237
- } from "./chunk-34NHDRWI.js";
237
+ } from "./chunk-6SDC6V3N.js";
238
238
  import {
239
239
  LOG_KINDS,
240
240
  kindToComponent
@@ -2327,7 +2327,7 @@ function createTeamHandlers(deps) {
2327
2327
  return { body: { retried: count } };
2328
2328
  }
2329
2329
  async function handleUpgradeWorker(_req) {
2330
- const { upgradeWorker } = await import("./team-3YI3UWB3.js");
2330
+ const { upgradeWorker } = await import("./team-OJLQCVE3.js");
2331
2331
  const result = upgradeWorker(vaultDir);
2332
2332
  if (!result.success) {
2333
2333
  return { status: 500, body: { error: result.error } };
@@ -2602,7 +2602,7 @@ function createSkillRecordDeleteHandler(deps) {
2602
2602
  logger.warn(LOG_KINDS.PROCESSOR_BATCH, "Failed to remove skill directory", { name: record.name, error: String(err) });
2603
2603
  }
2604
2604
  try {
2605
- const { syncSkillSymlinks } = await import("./installer-AARSFXI6.js");
2605
+ const { syncSkillSymlinks } = await import("./installer-CTWQB4RS.js");
2606
2606
  syncSkillSymlinks(projectRoot, record.name, { remove: true });
2607
2607
  } catch (err) {
2608
2608
  logger.warn(LOG_KINDS.PROCESSOR_BATCH, "Failed to remove skill symlinks", { name: record.name, error: String(err) });
@@ -5459,7 +5459,7 @@ async function registerScheduledTasks(powerManager, deps) {
5459
5459
  logger.info(LOG_KINDS.AGENT_RUN, "Scheduled agent tasks disabled globally (agent.scheduled_tasks_enabled: false)");
5460
5460
  return;
5461
5461
  }
5462
- const { loadAllTasks: loadAllTasks2 } = await import("./registry-5R3DLJQH.js");
5462
+ const { loadAllTasks: loadAllTasks2 } = await import("./registry-SPKP2WLI.js");
5463
5463
  const allTasks = Array.from(loadAllTasks2(definitionsDir, vaultDir).values());
5464
5464
  const initialLastRuns = {};
5465
5465
  try {
@@ -5481,7 +5481,7 @@ async function registerScheduledTasks(powerManager, deps) {
5481
5481
  else runningTasks.delete(name);
5482
5482
  },
5483
5483
  runTask: async (taskName) => {
5484
- const { runAgent } = await import("./executor-ULRFWJCH.js");
5484
+ const { runAgent } = await import("./executor-UYNV4EOQ.js");
5485
5485
  const taskConfig = config.agent.tasks?.[taskName];
5486
5486
  const built = buildTaskInstruction(taskName, taskConfig?.params);
5487
5487
  if (isInstructionRequiredTask(taskName) && !built) {
@@ -5650,7 +5650,7 @@ function createMcpProxyHandlers(deps) {
5650
5650
  name: USER_AGENT_NAME,
5651
5651
  created_at: now
5652
5652
  });
5653
- const { insertResolutionEvent } = await import("./resolution-events-CHOKR35X.js");
5653
+ const { insertResolutionEvent } = await import("./resolution-events-CLDXZF67.js");
5654
5654
  const resolutionId = `res-${randomBytes(RESOLUTION_ID_RANDOM_BYTES).toString("hex")}`;
5655
5655
  insertResolutionEvent({
5656
5656
  id: resolutionId,
@@ -5766,7 +5766,7 @@ function createAgentRunHandlers(deps) {
5766
5766
  };
5767
5767
  }
5768
5768
  }
5769
- const { runAgent } = await import("./executor-ULRFWJCH.js");
5769
+ const { runAgent } = await import("./executor-UYNV4EOQ.js");
5770
5770
  const resultPromise = runAgent(vaultDir, {
5771
5771
  task,
5772
5772
  instruction,
@@ -6044,6 +6044,7 @@ function findDeadSessionIds(registeredSessionIds) {
6044
6044
  const rows = db.prepare(
6045
6045
  `SELECT id FROM sessions
6046
6046
  WHERE prompt_count <= ?
6047
+ AND status != 'active'
6047
6048
  ${excludePlaceholders}`
6048
6049
  ).all(...params);
6049
6050
  return rows.map((r) => r.id);
@@ -6176,6 +6177,15 @@ function isSystemMessage(prompt) {
6176
6177
  const trimmed = prompt.trimStart();
6177
6178
  return SYSTEM_MESSAGE_PREFIXES.some((prefix) => trimmed.startsWith(prefix));
6178
6179
  }
6180
+ function extractToolFilePath(toolInput) {
6181
+ const inputObj = toolInput;
6182
+ if (!inputObj) return null;
6183
+ const filePath = inputObj.file_path;
6184
+ if (typeof filePath === "string") return filePath;
6185
+ const camelFilePath = inputObj.filePath;
6186
+ if (typeof camelFilePath === "string") return camelFilePath;
6187
+ return null;
6188
+ }
6179
6189
  function handleUserPrompt(sessionId, prompt) {
6180
6190
  const now = epochSeconds();
6181
6191
  closeOpenBatches(sessionId, now);
@@ -6196,8 +6206,7 @@ function handleUserPrompt(sessionId, prompt) {
6196
6206
  }
6197
6207
  function handleToolUse(sessionId, toolName, toolInput, toolOutput) {
6198
6208
  const now = epochSeconds();
6199
- const inputObj = toolInput;
6200
- const filePath = typeof inputObj?.file_path === "string" ? inputObj.file_path : null;
6209
+ const filePath = extractToolFilePath(toolInput);
6201
6210
  const activity = insertActivityWithBatch({
6202
6211
  session_id: sessionId,
6203
6212
  tool_name: toolName,
@@ -6217,8 +6226,7 @@ function handleStopBatches(sessionId) {
6217
6226
  }
6218
6227
  function handleToolFailure(sessionId, toolName, toolInput, error, isInterrupt) {
6219
6228
  const now = epochSeconds();
6220
- const inputObj = toolInput;
6221
- const filePath = typeof inputObj?.file_path === "string" ? inputObj.file_path : null;
6229
+ const filePath = extractToolFilePath(toolInput);
6222
6230
  const activity = insertActivityWithBatch({
6223
6231
  session_id: sessionId,
6224
6232
  tool_name: toolName,
@@ -6398,6 +6406,41 @@ function createReconciler({ bufferDir, logger }) {
6398
6406
  // src/daemon/stop-processing.ts
6399
6407
  import fs18 from "fs";
6400
6408
 
6409
+ // src/daemon/capture-images.ts
6410
+ var SESSION_SHORT_LEN = 6;
6411
+ function captureBatchImages(input) {
6412
+ const { sessionId, promptBatchId, promptNumber, images, logger } = input;
6413
+ if (images.length === 0) return;
6414
+ const sessionShort = sessionId.slice(-SESSION_SHORT_LEN);
6415
+ for (let j = 0; j < images.length; j++) {
6416
+ const img = images[j];
6417
+ if (!img?.data || !img?.mediaType) continue;
6418
+ try {
6419
+ const ext = extensionForMimeType(img.mediaType);
6420
+ const filename = `${sessionShort}-t${promptNumber}-${j + 1}.${ext}`;
6421
+ const inserted = insertAttachment({
6422
+ id: `${sessionShort}-b${promptNumber}-${j + 1}`,
6423
+ session_id: sessionId,
6424
+ prompt_batch_id: promptBatchId ?? void 0,
6425
+ file_path: filename,
6426
+ media_type: img.mediaType,
6427
+ data: Buffer.from(img.data, "base64"),
6428
+ created_at: epochSeconds()
6429
+ });
6430
+ if (inserted) {
6431
+ logger.debug(LOG_KINDS.CAPTURE_ATTACHMENT, "Image stored in DB", {
6432
+ filename,
6433
+ batch: promptNumber
6434
+ });
6435
+ }
6436
+ } catch (err) {
6437
+ logger.warn(LOG_KINDS.CAPTURE_ATTACHMENT, "Failed to record attachment", {
6438
+ error: String(err)
6439
+ });
6440
+ }
6441
+ }
6442
+ }
6443
+
6401
6444
  // src/daemon/skill-usage.ts
6402
6445
  import crypto from "crypto";
6403
6446
  var SKILL_USAGE_DETECTION_ENABLED = false;
@@ -6474,7 +6517,7 @@ function createStopProcessor(deps) {
6474
6517
  if (config.agent.summary_batch_interval <= 0) return;
6475
6518
  if (config.agent.event_tasks_enabled === false) return;
6476
6519
  try {
6477
- const { runAgent } = await import("./executor-ULRFWJCH.js");
6520
+ const { runAgent } = await import("./executor-UYNV4EOQ.js");
6478
6521
  runAgent(vaultDir, {
6479
6522
  task: "title-summary",
6480
6523
  instruction: `Process session ${sessionId} only`,
@@ -6593,7 +6636,6 @@ function createStopProcessor(deps) {
6593
6636
  if (!hasTitle) {
6594
6637
  triggerTitleSummary(sessionId);
6595
6638
  }
6596
- const sessionShort = sessionId.slice(-6);
6597
6639
  for (let i = 0; i < allTurns.length; i++) {
6598
6640
  const turn = allTurns[i];
6599
6641
  if (!turn.images?.length) continue;
@@ -6613,28 +6655,13 @@ function createStopProcessor(deps) {
6613
6655
  } catch {
6614
6656
  }
6615
6657
  }
6616
- for (let j = 0; j < turn.images.length; j++) {
6617
- const img = turn.images[j];
6618
- const ext = extensionForMimeType(img.mediaType);
6619
- const filename = `${sessionShort}-t${resolvedPromptNumber}-${j + 1}.${ext}`;
6620
- const imageBuffer = Buffer.from(img.data, "base64");
6621
- try {
6622
- const inserted = insertAttachment({
6623
- id: `${sessionShort}-b${resolvedPromptNumber}-${j + 1}`,
6624
- session_id: sessionId,
6625
- prompt_batch_id: resolvedBatchId ?? void 0,
6626
- file_path: filename,
6627
- media_type: img.mediaType,
6628
- data: imageBuffer,
6629
- created_at: epochSeconds()
6630
- });
6631
- if (inserted) {
6632
- logger.debug(LOG_KINDS.CAPTURE_ATTACHMENT, "Image stored in DB", { filename, batch: resolvedPromptNumber });
6633
- }
6634
- } catch (err) {
6635
- logger.warn(LOG_KINDS.CAPTURE_ATTACHMENT, "Failed to record attachment", { error: String(err) });
6636
- }
6637
- }
6658
+ captureBatchImages({
6659
+ sessionId,
6660
+ promptBatchId: resolvedBatchId,
6661
+ promptNumber: resolvedPromptNumber,
6662
+ images: turn.images,
6663
+ logger
6664
+ });
6638
6665
  }
6639
6666
  logger.info(LOG_KINDS.PROCESSOR_SESSION, "Session captured", {
6640
6667
  session_id: sessionId,
@@ -6687,7 +6714,15 @@ import path19 from "path";
6687
6714
  import { createHash as createHash4 } from "crypto";
6688
6715
  import os7 from "os";
6689
6716
  import path18 from "path";
6690
- var FILE_WRITE_TOOLS = /* @__PURE__ */ new Set(["Write", "Edit", "Create"]);
6717
+ var FILE_WRITE_TOOLS = /* @__PURE__ */ new Set([
6718
+ "Write",
6719
+ "Edit",
6720
+ "Create",
6721
+ "write",
6722
+ "edit",
6723
+ "patch",
6724
+ "create"
6725
+ ]);
6691
6726
  var HEADING_REGEX = /^#\s+(.+)$/m;
6692
6727
  var PLAN_ID_HASH_LENGTH = 16;
6693
6728
  function isInPlanDirectory(filePath, watchDirs, projectRoot) {
@@ -6701,7 +6736,7 @@ function isInPlanDirectory(filePath, watchDirs, projectRoot) {
6701
6736
  }
6702
6737
  function isPlanWriteEvent(toolName, toolInput, config) {
6703
6738
  if (!FILE_WRITE_TOOLS.has(toolName)) return null;
6704
- const filePath = toolInput?.file_path ?? toolInput?.path;
6739
+ const filePath = toolInput?.file_path ?? toolInput?.path ?? toolInput?.filePath;
6705
6740
  if (typeof filePath !== "string") return null;
6706
6741
  if (!isInPlanDirectory(filePath, config.watchDirs, config.projectRoot)) return null;
6707
6742
  if (config.extensions?.length) {
@@ -6794,6 +6829,16 @@ function createEventDispatcher(deps) {
6794
6829
  try {
6795
6830
  const { batchId, promptNumber } = handleUserPrompt(event.session_id, promptText || void 0);
6796
6831
  logger.debug(LOG_KINDS.CAPTURE_BATCH, "Batch opened", { session_id: event.session_id, batch_id: batchId, prompt_number: promptNumber });
6832
+ const eventImages = event.images;
6833
+ if (Array.isArray(eventImages) && eventImages.length > 0) {
6834
+ captureBatchImages({
6835
+ sessionId: event.session_id,
6836
+ promptBatchId: batchId,
6837
+ promptNumber,
6838
+ images: eventImages,
6839
+ logger
6840
+ });
6841
+ }
6797
6842
  const batchCount = promptNumber;
6798
6843
  const summaryInterval = config.agent.summary_batch_interval;
6799
6844
  if (summaryInterval > 0 && batchCount > 0 && batchCount % summaryInterval === 0) {
@@ -7048,7 +7093,7 @@ async function main() {
7048
7093
  const databaseManager = new DatabaseMaintenanceManager(vaultDbPath(vaultDir), vaultDir, logger);
7049
7094
  let definitionsDir;
7050
7095
  try {
7051
- const { registerBuiltInAgentsAndTasks, resolveDefinitionsDir: resolveDefinitionsDir2 } = await import("./loader-YQDG5GI5.js");
7096
+ const { registerBuiltInAgentsAndTasks, resolveDefinitionsDir: resolveDefinitionsDir2 } = await import("./loader-J56KP27U.js");
7052
7097
  definitionsDir = resolveDefinitionsDir2();
7053
7098
  await registerBuiltInAgentsAndTasks(definitionsDir, vaultDir);
7054
7099
  logger.info(LOG_KINDS.AGENT_TASK, "Built-in agents and tasks registered");
@@ -7353,4 +7398,4 @@ export {
7353
7398
  handleUserPrompt,
7354
7399
  main
7355
7400
  };
7356
- //# sourceMappingURL=main-GAGOE6XB.js.map
7401
+ //# sourceMappingURL=main-ZIMYW2AB.js.map