spidersan 0.9.0 โ†’ 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. package/CHANGELOG.md +187 -0
  2. package/README.md +39 -280
  3. package/package.json +9 -13
  4. package/dist/bin/spidersan.d.ts +0 -9
  5. package/dist/bin/spidersan.d.ts.map +0 -1
  6. package/dist/bin/spidersan.js +0 -117
  7. package/dist/bin/spidersan.js.map +0 -1
  8. package/dist/commands/abandon.d.ts +0 -8
  9. package/dist/commands/abandon.d.ts.map +0 -1
  10. package/dist/commands/abandon.js +0 -43
  11. package/dist/commands/abandon.js.map +0 -1
  12. package/dist/commands/activate.d.ts +0 -9
  13. package/dist/commands/activate.d.ts.map +0 -1
  14. package/dist/commands/activate.js +0 -45
  15. package/dist/commands/activate.js.map +0 -1
  16. package/dist/commands/active-windows.d.ts +0 -16
  17. package/dist/commands/active-windows.d.ts.map +0 -1
  18. package/dist/commands/active-windows.js +0 -373
  19. package/dist/commands/active-windows.js.map +0 -1
  20. package/dist/commands/ai.d.ts +0 -15
  21. package/dist/commands/ai.d.ts.map +0 -1
  22. package/dist/commands/ai.js +0 -498
  23. package/dist/commands/ai.js.map +0 -1
  24. package/dist/commands/audit-mark.d.ts +0 -12
  25. package/dist/commands/audit-mark.d.ts.map +0 -1
  26. package/dist/commands/audit-mark.js +0 -204
  27. package/dist/commands/audit-mark.js.map +0 -1
  28. package/dist/commands/auto.d.ts +0 -8
  29. package/dist/commands/auto.d.ts.map +0 -1
  30. package/dist/commands/auto.js +0 -207
  31. package/dist/commands/auto.js.map +0 -1
  32. package/dist/commands/bot.d.ts +0 -16
  33. package/dist/commands/bot.d.ts.map +0 -1
  34. package/dist/commands/bot.js +0 -398
  35. package/dist/commands/bot.js.map +0 -1
  36. package/dist/commands/cleanup.d.ts +0 -8
  37. package/dist/commands/cleanup.d.ts.map +0 -1
  38. package/dist/commands/cleanup.js +0 -36
  39. package/dist/commands/cleanup.js.map +0 -1
  40. package/dist/commands/close.d.ts +0 -9
  41. package/dist/commands/close.d.ts.map +0 -1
  42. package/dist/commands/close.js +0 -129
  43. package/dist/commands/close.js.map +0 -1
  44. package/dist/commands/collab-sync.d.ts +0 -14
  45. package/dist/commands/collab-sync.d.ts.map +0 -1
  46. package/dist/commands/collab-sync.js +0 -264
  47. package/dist/commands/collab-sync.js.map +0 -1
  48. package/dist/commands/collab.d.ts +0 -6
  49. package/dist/commands/collab.d.ts.map +0 -1
  50. package/dist/commands/collab.js +0 -103
  51. package/dist/commands/collab.js.map +0 -1
  52. package/dist/commands/completions.d.ts +0 -8
  53. package/dist/commands/completions.d.ts.map +0 -1
  54. package/dist/commands/completions.js +0 -83
  55. package/dist/commands/completions.js.map +0 -1
  56. package/dist/commands/config.d.ts +0 -15
  57. package/dist/commands/config.d.ts.map +0 -1
  58. package/dist/commands/config.js +0 -337
  59. package/dist/commands/config.js.map +0 -1
  60. package/dist/commands/conflicts.d.ts +0 -12
  61. package/dist/commands/conflicts.d.ts.map +0 -1
  62. package/dist/commands/conflicts.js +0 -581
  63. package/dist/commands/conflicts.js.map +0 -1
  64. package/dist/commands/context.d.ts +0 -8
  65. package/dist/commands/context.d.ts.map +0 -1
  66. package/dist/commands/context.js +0 -104
  67. package/dist/commands/context.js.map +0 -1
  68. package/dist/commands/cross-conflicts.d.ts +0 -17
  69. package/dist/commands/cross-conflicts.d.ts.map +0 -1
  70. package/dist/commands/cross-conflicts.js +0 -268
  71. package/dist/commands/cross-conflicts.js.map +0 -1
  72. package/dist/commands/daily.d.ts +0 -7
  73. package/dist/commands/daily.d.ts.map +0 -1
  74. package/dist/commands/daily.js +0 -171
  75. package/dist/commands/daily.js.map +0 -1
  76. package/dist/commands/dashboard.d.ts +0 -22
  77. package/dist/commands/dashboard.d.ts.map +0 -1
  78. package/dist/commands/dashboard.js +0 -401
  79. package/dist/commands/dashboard.js.map +0 -1
  80. package/dist/commands/demo.d.ts +0 -3
  81. package/dist/commands/demo.d.ts.map +0 -1
  82. package/dist/commands/demo.js +0 -118
  83. package/dist/commands/demo.js.map +0 -1
  84. package/dist/commands/depends.d.ts +0 -8
  85. package/dist/commands/depends.d.ts.map +0 -1
  86. package/dist/commands/depends.js +0 -36
  87. package/dist/commands/depends.js.map +0 -1
  88. package/dist/commands/doctor.d.ts +0 -30
  89. package/dist/commands/doctor.d.ts.map +0 -1
  90. package/dist/commands/doctor.js +0 -540
  91. package/dist/commands/doctor.js.map +0 -1
  92. package/dist/commands/ecosystem-loader.d.ts +0 -14
  93. package/dist/commands/ecosystem-loader.d.ts.map +0 -1
  94. package/dist/commands/ecosystem-loader.js +0 -90
  95. package/dist/commands/ecosystem-loader.js.map +0 -1
  96. package/dist/commands/fleet-status.d.ts +0 -14
  97. package/dist/commands/fleet-status.d.ts.map +0 -1
  98. package/dist/commands/fleet-status.js +0 -127
  99. package/dist/commands/fleet-status.js.map +0 -1
  100. package/dist/commands/git-watch.d.ts +0 -24
  101. package/dist/commands/git-watch.d.ts.map +0 -1
  102. package/dist/commands/git-watch.js +0 -84
  103. package/dist/commands/git-watch.js.map +0 -1
  104. package/dist/commands/github-sync.d.ts +0 -9
  105. package/dist/commands/github-sync.d.ts.map +0 -1
  106. package/dist/commands/github-sync.js +0 -180
  107. package/dist/commands/github-sync.js.map +0 -1
  108. package/dist/commands/inbox.d.ts +0 -3
  109. package/dist/commands/inbox.d.ts.map +0 -1
  110. package/dist/commands/inbox.js +0 -120
  111. package/dist/commands/inbox.js.map +0 -1
  112. package/dist/commands/index.d.ts +0 -36
  113. package/dist/commands/index.d.ts.map +0 -1
  114. package/dist/commands/index.js +0 -44
  115. package/dist/commands/index.js.map +0 -1
  116. package/dist/commands/init.d.ts +0 -8
  117. package/dist/commands/init.d.ts.map +0 -1
  118. package/dist/commands/init.js +0 -23
  119. package/dist/commands/init.js.map +0 -1
  120. package/dist/commands/intent-scan.d.ts +0 -17
  121. package/dist/commands/intent-scan.d.ts.map +0 -1
  122. package/dist/commands/intent-scan.js +0 -336
  123. package/dist/commands/intent-scan.js.map +0 -1
  124. package/dist/commands/key-import.d.ts +0 -3
  125. package/dist/commands/key-import.d.ts.map +0 -1
  126. package/dist/commands/key-import.js +0 -54
  127. package/dist/commands/key-import.js.map +0 -1
  128. package/dist/commands/keygen.d.ts +0 -3
  129. package/dist/commands/keygen.d.ts.map +0 -1
  130. package/dist/commands/keygen.js +0 -53
  131. package/dist/commands/keygen.js.map +0 -1
  132. package/dist/commands/keys.d.ts +0 -3
  133. package/dist/commands/keys.d.ts.map +0 -1
  134. package/dist/commands/keys.js +0 -56
  135. package/dist/commands/keys.js.map +0 -1
  136. package/dist/commands/list.d.ts +0 -3
  137. package/dist/commands/list.d.ts.map +0 -1
  138. package/dist/commands/list.js +0 -45
  139. package/dist/commands/list.js.map +0 -1
  140. package/dist/commands/lock.d.ts +0 -11
  141. package/dist/commands/lock.d.ts.map +0 -1
  142. package/dist/commands/lock.js +0 -257
  143. package/dist/commands/lock.js.map +0 -1
  144. package/dist/commands/log.d.ts +0 -7
  145. package/dist/commands/log.d.ts.map +0 -1
  146. package/dist/commands/log.js +0 -110
  147. package/dist/commands/log.js.map +0 -1
  148. package/dist/commands/mcp-health.d.ts +0 -3
  149. package/dist/commands/mcp-health.d.ts.map +0 -1
  150. package/dist/commands/mcp-health.js +0 -305
  151. package/dist/commands/mcp-health.js.map +0 -1
  152. package/dist/commands/mcp-restart.d.ts +0 -3
  153. package/dist/commands/mcp-restart.d.ts.map +0 -1
  154. package/dist/commands/mcp-restart.js +0 -176
  155. package/dist/commands/mcp-restart.js.map +0 -1
  156. package/dist/commands/merge-order.d.ts +0 -9
  157. package/dist/commands/merge-order.d.ts.map +0 -1
  158. package/dist/commands/merge-order.js +0 -96
  159. package/dist/commands/merge-order.js.map +0 -1
  160. package/dist/commands/merged.d.ts +0 -8
  161. package/dist/commands/merged.d.ts.map +0 -1
  162. package/dist/commands/merged.js +0 -33
  163. package/dist/commands/merged.js.map +0 -1
  164. package/dist/commands/monitor.d.ts +0 -3
  165. package/dist/commands/monitor.d.ts.map +0 -1
  166. package/dist/commands/monitor.js +0 -153
  167. package/dist/commands/monitor.js.map +0 -1
  168. package/dist/commands/msg-read.d.ts +0 -3
  169. package/dist/commands/msg-read.d.ts.map +0 -1
  170. package/dist/commands/msg-read.js +0 -95
  171. package/dist/commands/msg-read.js.map +0 -1
  172. package/dist/commands/pulse.d.ts +0 -13
  173. package/dist/commands/pulse.d.ts.map +0 -1
  174. package/dist/commands/pulse.js +0 -245
  175. package/dist/commands/pulse.js.map +0 -1
  176. package/dist/commands/queen.d.ts +0 -25
  177. package/dist/commands/queen.d.ts.map +0 -1
  178. package/dist/commands/queen.js +0 -326
  179. package/dist/commands/queen.js.map +0 -1
  180. package/dist/commands/radar.d.ts +0 -3
  181. package/dist/commands/radar.d.ts.map +0 -1
  182. package/dist/commands/radar.js +0 -147
  183. package/dist/commands/radar.js.map +0 -1
  184. package/dist/commands/ready-check.d.ts +0 -11
  185. package/dist/commands/ready-check.d.ts.map +0 -1
  186. package/dist/commands/ready-check.js +0 -147
  187. package/dist/commands/ready-check.js.map +0 -1
  188. package/dist/commands/rebase-helper.d.ts +0 -3
  189. package/dist/commands/rebase-helper.d.ts.map +0 -1
  190. package/dist/commands/rebase-helper.js +0 -52
  191. package/dist/commands/rebase-helper.js.map +0 -1
  192. package/dist/commands/register.d.ts +0 -5
  193. package/dist/commands/register.d.ts.map +0 -1
  194. package/dist/commands/register.js +0 -156
  195. package/dist/commands/register.js.map +0 -1
  196. package/dist/commands/registry-sync.d.ts +0 -9
  197. package/dist/commands/registry-sync.d.ts.map +0 -1
  198. package/dist/commands/registry-sync.js +0 -163
  199. package/dist/commands/registry-sync.js.map +0 -1
  200. package/dist/commands/rescue.d.ts +0 -11
  201. package/dist/commands/rescue.d.ts.map +0 -1
  202. package/dist/commands/rescue.js +0 -147
  203. package/dist/commands/rescue.js.map +0 -1
  204. package/dist/commands/semantic.d.ts +0 -3
  205. package/dist/commands/semantic.d.ts.map +0 -1
  206. package/dist/commands/semantic.js +0 -62
  207. package/dist/commands/semantic.js.map +0 -1
  208. package/dist/commands/send.d.ts +0 -3
  209. package/dist/commands/send.d.ts.map +0 -1
  210. package/dist/commands/send.js +0 -121
  211. package/dist/commands/send.js.map +0 -1
  212. package/dist/commands/stale.d.ts +0 -17
  213. package/dist/commands/stale.d.ts.map +0 -1
  214. package/dist/commands/stale.js +0 -131
  215. package/dist/commands/stale.js.map +0 -1
  216. package/dist/commands/status.d.ts +0 -9
  217. package/dist/commands/status.d.ts.map +0 -1
  218. package/dist/commands/status.js +0 -41
  219. package/dist/commands/status.js.map +0 -1
  220. package/dist/commands/sync-advisor.d.ts +0 -14
  221. package/dist/commands/sync-advisor.d.ts.map +0 -1
  222. package/dist/commands/sync-advisor.js +0 -110
  223. package/dist/commands/sync-advisor.js.map +0 -1
  224. package/dist/commands/sync.d.ts +0 -8
  225. package/dist/commands/sync.d.ts.map +0 -1
  226. package/dist/commands/sync.js +0 -60
  227. package/dist/commands/sync.js.map +0 -1
  228. package/dist/commands/tension.d.ts +0 -12
  229. package/dist/commands/tension.d.ts.map +0 -1
  230. package/dist/commands/tension.js +0 -262
  231. package/dist/commands/tension.js.map +0 -1
  232. package/dist/commands/torrent.d.ts +0 -9
  233. package/dist/commands/torrent.d.ts.map +0 -1
  234. package/dist/commands/torrent.js +0 -470
  235. package/dist/commands/torrent.js.map +0 -1
  236. package/dist/commands/tui.d.ts +0 -8
  237. package/dist/commands/tui.d.ts.map +0 -1
  238. package/dist/commands/tui.js +0 -15
  239. package/dist/commands/tui.js.map +0 -1
  240. package/dist/commands/wake.d.ts +0 -9
  241. package/dist/commands/wake.d.ts.map +0 -1
  242. package/dist/commands/wake.js +0 -188
  243. package/dist/commands/wake.js.map +0 -1
  244. package/dist/commands/watch.d.ts +0 -3
  245. package/dist/commands/watch.d.ts.map +0 -1
  246. package/dist/commands/watch.js +0 -428
  247. package/dist/commands/watch.js.map +0 -1
  248. package/dist/commands/welcome.d.ts +0 -8
  249. package/dist/commands/welcome.d.ts.map +0 -1
  250. package/dist/commands/welcome.js +0 -85
  251. package/dist/commands/welcome.js.map +0 -1
  252. package/dist/commands/who-owns.d.ts +0 -3
  253. package/dist/commands/who-owns.d.ts.map +0 -1
  254. package/dist/commands/who-owns.js +0 -68
  255. package/dist/commands/who-owns.js.map +0 -1
  256. package/dist/commands/who-touched.d.ts +0 -9
  257. package/dist/commands/who-touched.d.ts.map +0 -1
  258. package/dist/commands/who-touched.js +0 -198
  259. package/dist/commands/who-touched.js.map +0 -1
  260. package/dist/index.d.ts +0 -11
  261. package/dist/index.d.ts.map +0 -1
  262. package/dist/index.js +0 -11
  263. package/dist/index.js.map +0 -1
  264. package/dist/lib/activity.d.ts +0 -53
  265. package/dist/lib/activity.d.ts.map +0 -1
  266. package/dist/lib/activity.js +0 -267
  267. package/dist/lib/activity.js.map +0 -1
  268. package/dist/lib/agent-errors.d.ts +0 -41
  269. package/dist/lib/agent-errors.d.ts.map +0 -1
  270. package/dist/lib/agent-errors.js +0 -145
  271. package/dist/lib/agent-errors.js.map +0 -1
  272. package/dist/lib/ai/context-builder.d.ts +0 -16
  273. package/dist/lib/ai/context-builder.d.ts.map +0 -1
  274. package/dist/lib/ai/context-builder.js +0 -216
  275. package/dist/lib/ai/context-builder.js.map +0 -1
  276. package/dist/lib/ai/event-handler.d.ts +0 -21
  277. package/dist/lib/ai/event-handler.d.ts.map +0 -1
  278. package/dist/lib/ai/event-handler.js +0 -98
  279. package/dist/lib/ai/event-handler.js.map +0 -1
  280. package/dist/lib/ai/index.d.ts +0 -13
  281. package/dist/lib/ai/index.d.ts.map +0 -1
  282. package/dist/lib/ai/index.js +0 -11
  283. package/dist/lib/ai/index.js.map +0 -1
  284. package/dist/lib/ai/llm-client.d.ts +0 -37
  285. package/dist/lib/ai/llm-client.d.ts.map +0 -1
  286. package/dist/lib/ai/llm-client.js +0 -225
  287. package/dist/lib/ai/llm-client.js.map +0 -1
  288. package/dist/lib/ai/reasoner.d.ts +0 -11
  289. package/dist/lib/ai/reasoner.d.ts.map +0 -1
  290. package/dist/lib/ai/reasoner.js +0 -246
  291. package/dist/lib/ai/reasoner.js.map +0 -1
  292. package/dist/lib/ai/setup.d.ts +0 -40
  293. package/dist/lib/ai/setup.d.ts.map +0 -1
  294. package/dist/lib/ai/setup.js +0 -154
  295. package/dist/lib/ai/setup.js.map +0 -1
  296. package/dist/lib/ai/types.d.ts +0 -135
  297. package/dist/lib/ai/types.d.ts.map +0 -1
  298. package/dist/lib/ai/types.js +0 -39
  299. package/dist/lib/ai/types.js.map +0 -1
  300. package/dist/lib/ast.d.ts +0 -36
  301. package/dist/lib/ast.d.ts.map +0 -1
  302. package/dist/lib/ast.js +0 -135
  303. package/dist/lib/ast.js.map +0 -1
  304. package/dist/lib/colony-subscriber.d.ts +0 -56
  305. package/dist/lib/colony-subscriber.d.ts.map +0 -1
  306. package/dist/lib/colony-subscriber.js +0 -265
  307. package/dist/lib/colony-subscriber.js.map +0 -1
  308. package/dist/lib/config.d.ts +0 -62
  309. package/dist/lib/config.d.ts.map +0 -1
  310. package/dist/lib/config.js +0 -230
  311. package/dist/lib/config.js.map +0 -1
  312. package/dist/lib/conflict-analyzer.d.ts +0 -33
  313. package/dist/lib/conflict-analyzer.d.ts.map +0 -1
  314. package/dist/lib/conflict-analyzer.js +0 -114
  315. package/dist/lib/conflict-analyzer.js.map +0 -1
  316. package/dist/lib/conflict-renderer.d.ts +0 -7
  317. package/dist/lib/conflict-renderer.d.ts.map +0 -1
  318. package/dist/lib/conflict-renderer.js +0 -162
  319. package/dist/lib/conflict-renderer.js.map +0 -1
  320. package/dist/lib/conflict-tier.d.ts +0 -20
  321. package/dist/lib/conflict-tier.d.ts.map +0 -1
  322. package/dist/lib/conflict-tier.js +0 -49
  323. package/dist/lib/conflict-tier.js.map +0 -1
  324. package/dist/lib/crdt.d.ts +0 -83
  325. package/dist/lib/crdt.d.ts.map +0 -1
  326. package/dist/lib/crdt.js +0 -160
  327. package/dist/lib/crdt.js.map +0 -1
  328. package/dist/lib/crypto.d.ts +0 -71
  329. package/dist/lib/crypto.d.ts.map +0 -1
  330. package/dist/lib/crypto.js +0 -176
  331. package/dist/lib/crypto.js.map +0 -1
  332. package/dist/lib/daily-bridge.d.ts +0 -41
  333. package/dist/lib/daily-bridge.d.ts.map +0 -1
  334. package/dist/lib/daily-bridge.js +0 -186
  335. package/dist/lib/daily-bridge.js.map +0 -1
  336. package/dist/lib/errors.d.ts +0 -35
  337. package/dist/lib/errors.d.ts.map +0 -1
  338. package/dist/lib/errors.js +0 -71
  339. package/dist/lib/errors.js.map +0 -1
  340. package/dist/lib/git-events-subscriber.d.ts +0 -59
  341. package/dist/lib/git-events-subscriber.d.ts.map +0 -1
  342. package/dist/lib/git-events-subscriber.js +0 -779
  343. package/dist/lib/git-events-subscriber.js.map +0 -1
  344. package/dist/lib/git.d.ts +0 -15
  345. package/dist/lib/git.d.ts.map +0 -1
  346. package/dist/lib/git.js +0 -180
  347. package/dist/lib/git.js.map +0 -1
  348. package/dist/lib/github.d.ts +0 -83
  349. package/dist/lib/github.d.ts.map +0 -1
  350. package/dist/lib/github.js +0 -211
  351. package/dist/lib/github.js.map +0 -1
  352. package/dist/lib/graph.d.ts +0 -23
  353. package/dist/lib/graph.d.ts.map +0 -1
  354. package/dist/lib/graph.js +0 -134
  355. package/dist/lib/graph.js.map +0 -1
  356. package/dist/lib/hub.d.ts +0 -31
  357. package/dist/lib/hub.d.ts.map +0 -1
  358. package/dist/lib/hub.js +0 -92
  359. package/dist/lib/hub.js.map +0 -1
  360. package/dist/lib/license.d.ts +0 -61
  361. package/dist/lib/license.d.ts.map +0 -1
  362. package/dist/lib/license.js +0 -171
  363. package/dist/lib/license.js.map +0 -1
  364. package/dist/lib/regex-utils.d.ts +0 -6
  365. package/dist/lib/regex-utils.d.ts.map +0 -1
  366. package/dist/lib/regex-utils.js +0 -24
  367. package/dist/lib/regex-utils.js.map +0 -1
  368. package/dist/lib/remote-drift.d.ts +0 -60
  369. package/dist/lib/remote-drift.d.ts.map +0 -1
  370. package/dist/lib/remote-drift.js +0 -225
  371. package/dist/lib/remote-drift.js.map +0 -1
  372. package/dist/lib/repo-scanner.d.ts +0 -32
  373. package/dist/lib/repo-scanner.d.ts.map +0 -1
  374. package/dist/lib/repo-scanner.js +0 -160
  375. package/dist/lib/repo-scanner.js.map +0 -1
  376. package/dist/lib/salvage-analyzer.d.ts +0 -29
  377. package/dist/lib/salvage-analyzer.d.ts.map +0 -1
  378. package/dist/lib/salvage-analyzer.js +0 -121
  379. package/dist/lib/salvage-analyzer.js.map +0 -1
  380. package/dist/lib/security.d.ts +0 -77
  381. package/dist/lib/security.d.ts.map +0 -1
  382. package/dist/lib/security.js +0 -190
  383. package/dist/lib/security.js.map +0 -1
  384. package/dist/lib/session-logger.d.ts +0 -54
  385. package/dist/lib/session-logger.d.ts.map +0 -1
  386. package/dist/lib/session-logger.js +0 -136
  387. package/dist/lib/session-logger.js.map +0 -1
  388. package/dist/lib/symbol-extractor.d.ts +0 -41
  389. package/dist/lib/symbol-extractor.d.ts.map +0 -1
  390. package/dist/lib/symbol-extractor.js +0 -78
  391. package/dist/lib/symbol-extractor.js.map +0 -1
  392. package/dist/lib/update-check.d.ts +0 -11
  393. package/dist/lib/update-check.d.ts.map +0 -1
  394. package/dist/lib/update-check.js +0 -113
  395. package/dist/lib/update-check.js.map +0 -1
  396. package/dist/storage/adapter.d.ts +0 -62
  397. package/dist/storage/adapter.d.ts.map +0 -1
  398. package/dist/storage/adapter.js +0 -8
  399. package/dist/storage/adapter.js.map +0 -1
  400. package/dist/storage/branch-registry-store.d.ts +0 -13
  401. package/dist/storage/branch-registry-store.d.ts.map +0 -1
  402. package/dist/storage/branch-registry-store.js +0 -2
  403. package/dist/storage/branch-registry-store.js.map +0 -1
  404. package/dist/storage/factory.d.ts +0 -10
  405. package/dist/storage/factory.d.ts.map +0 -1
  406. package/dist/storage/factory.js +0 -38
  407. package/dist/storage/factory.js.map +0 -1
  408. package/dist/storage/git-messages.d.ts +0 -53
  409. package/dist/storage/git-messages.d.ts.map +0 -1
  410. package/dist/storage/git-messages.js +0 -376
  411. package/dist/storage/git-messages.js.map +0 -1
  412. package/dist/storage/index.d.ts +0 -10
  413. package/dist/storage/index.d.ts.map +0 -1
  414. package/dist/storage/index.js +0 -11
  415. package/dist/storage/index.js.map +0 -1
  416. package/dist/storage/json-branch-registry-store.d.ts +0 -19
  417. package/dist/storage/json-branch-registry-store.d.ts.map +0 -1
  418. package/dist/storage/json-branch-registry-store.js +0 -112
  419. package/dist/storage/json-branch-registry-store.js.map +0 -1
  420. package/dist/storage/local-messages.d.ts +0 -37
  421. package/dist/storage/local-messages.d.ts.map +0 -1
  422. package/dist/storage/local-messages.js +0 -151
  423. package/dist/storage/local-messages.js.map +0 -1
  424. package/dist/storage/local.d.ts +0 -20
  425. package/dist/storage/local.d.ts.map +0 -1
  426. package/dist/storage/local.js +0 -40
  427. package/dist/storage/local.js.map +0 -1
  428. package/dist/storage/memory-branch-registry-store.d.ts +0 -16
  429. package/dist/storage/memory-branch-registry-store.d.ts.map +0 -1
  430. package/dist/storage/memory-branch-registry-store.js +0 -65
  431. package/dist/storage/memory-branch-registry-store.js.map +0 -1
  432. package/dist/storage/message-adapter.d.ts +0 -86
  433. package/dist/storage/message-adapter.d.ts.map +0 -1
  434. package/dist/storage/message-adapter.js +0 -28
  435. package/dist/storage/message-adapter.js.map +0 -1
  436. package/dist/storage/message-factory.d.ts +0 -36
  437. package/dist/storage/message-factory.d.ts.map +0 -1
  438. package/dist/storage/message-factory.js +0 -99
  439. package/dist/storage/message-factory.js.map +0 -1
  440. package/dist/storage/mycmail-adapter.d.ts +0 -38
  441. package/dist/storage/mycmail-adapter.d.ts.map +0 -1
  442. package/dist/storage/mycmail-adapter.js +0 -300
  443. package/dist/storage/mycmail-adapter.js.map +0 -1
  444. package/dist/storage/supabase-registry-sync-client-impl.d.ts +0 -46
  445. package/dist/storage/supabase-registry-sync-client-impl.d.ts.map +0 -1
  446. package/dist/storage/supabase-registry-sync-client-impl.js +0 -322
  447. package/dist/storage/supabase-registry-sync-client-impl.js.map +0 -1
  448. package/dist/storage/supabase-registry-sync-client.d.ts +0 -9
  449. package/dist/storage/supabase-registry-sync-client.d.ts.map +0 -1
  450. package/dist/storage/supabase-registry-sync-client.js +0 -2
  451. package/dist/storage/supabase-registry-sync-client.js.map +0 -1
  452. package/dist/storage/supabase.d.ts +0 -34
  453. package/dist/storage/supabase.d.ts.map +0 -1
  454. package/dist/storage/supabase.js +0 -74
  455. package/dist/storage/supabase.js.map +0 -1
  456. package/dist/tui/dashboard.d.ts +0 -35
  457. package/dist/tui/dashboard.d.ts.map +0 -1
  458. package/dist/tui/dashboard.js +0 -199
  459. package/dist/tui/dashboard.js.map +0 -1
  460. package/dist/tui/screen.d.ts +0 -14
  461. package/dist/tui/screen.d.ts.map +0 -1
  462. package/dist/tui/screen.js +0 -138
  463. package/dist/tui/screen.js.map +0 -1
  464. package/dist/types/cloud.d.ts +0 -101
  465. package/dist/types/cloud.d.ts.map +0 -1
  466. package/dist/types/cloud.js +0 -13
  467. package/dist/types/cloud.js.map +0 -1
@@ -1,110 +0,0 @@
1
- /**
2
- * spidersan log โ€” Activity log viewer
3
- * Shows branch operation history from local JSONL or Supabase
4
- */
5
- import chalk from 'chalk';
6
- import { queryActivityLog } from '../lib/activity.js';
7
- const EVENT_ICONS = {
8
- register: '๐Ÿ“‹',
9
- merge: 'โœ…',
10
- abandon: '๐Ÿ—‘๏ธ',
11
- conflict_detected: 'โš ๏ธ',
12
- sync: '๐Ÿ”„',
13
- cleanup: '๐Ÿงน',
14
- ready_check_pass: 'โœ”๏ธ',
15
- ready_check_fail: 'โŒ',
16
- session_start: '๐ŸŒ…',
17
- session_end: '๐ŸŒ™',
18
- };
19
- export function logCommand(program) {
20
- program
21
- .command('log')
22
- .description('Show branch operation history')
23
- .option('-b, --branch <name>', 'Filter by branch name')
24
- .option('-a, --agent <id>', 'Filter by agent')
25
- .option('-r, --repo <name>', 'Filter by repo')
26
- .option('-s, --since <duration>', 'Time range e.g. 24h, 7d, 30d', '24h')
27
- .option('-n, --limit <n>', 'Max records', '50')
28
- .option('--json', 'Output as JSON')
29
- .action(async (options) => {
30
- try {
31
- const since = parseDuration(options.since || '24h');
32
- const query = {
33
- branch: options.branch,
34
- agent: options.agent,
35
- repo: options.repo,
36
- since,
37
- limit: parseInt(options.limit || '50', 10),
38
- };
39
- const result = await queryActivityLog(query);
40
- if (options.json) {
41
- console.log(JSON.stringify(result, null, 2));
42
- return;
43
- }
44
- const { records, source } = result;
45
- console.log(chalk.cyan(`๐Ÿ•ท๏ธ Spidersan Activity Log`) + chalk.gray(` (${source})`));
46
- console.log(chalk.gray(` Since: ${since.toISOString().split('T')[0]} โ€” ${records.length} record(s)\n`));
47
- if (records.length === 0) {
48
- console.log(chalk.yellow('No activity found for the given filters.'));
49
- return;
50
- }
51
- for (const r of records) {
52
- const icon = EVENT_ICONS[r.event] || 'โ€ข';
53
- const time = new Date(r.created_at).toLocaleString('en-GB', {
54
- month: 'short', day: 'numeric',
55
- hour: '2-digit', minute: '2-digit',
56
- });
57
- const agent = r.agent ? chalk.magenta(`[${r.agent}]`) : '';
58
- const branch = r.branch ? chalk.green(r.branch) : '';
59
- const repo = r.repo ? chalk.gray(`${r.repo}/`) : '';
60
- const detail = formatDetail(r.event, r.details);
61
- console.log(`${chalk.gray(time)} ${icon} ${agent} ${repo}${branch}` +
62
- (detail ? chalk.gray(` โ€” ${detail}`) : ''));
63
- }
64
- }
65
- catch (err) {
66
- console.error(chalk.red(`โŒ ${err.message}`));
67
- process.exit(1);
68
- }
69
- });
70
- }
71
- function parseDuration(s) {
72
- const now = Date.now();
73
- const match = s.match(/^(\d+)([hdwm])$/);
74
- if (!match)
75
- return new Date(now - 24 * 60 * 60 * 1000);
76
- const n = parseInt(match[1], 10);
77
- const unit = match[2];
78
- const ms = unit === 'h' ? n * 3600000
79
- : unit === 'd' ? n * 86400000
80
- : unit === 'w' ? n * 604800000
81
- : n * 2592000000;
82
- return new Date(now - ms);
83
- }
84
- function formatDetail(event, details) {
85
- if (event === 'conflict_detected') {
86
- // details stores tier counts {tier3, tier2, tier1} โ€” derive max tier
87
- const t3 = details.tier3 ?? 0;
88
- const t2 = details.tier2 ?? 0;
89
- const t1 = details.tier1 ?? 0;
90
- const maxTier = t3 > 0 ? 3 : t2 > 0 ? 2 : t1 > 0 ? 1 : details.tier;
91
- const branches = details.conflicting_branches?.join(', ');
92
- return `TIER ${maxTier ?? '?'}${branches ? ` with ${branches}` : ''}`;
93
- }
94
- if (event === 'register' && details.description)
95
- return details.description;
96
- if (event === 'merge' && details.pr_number)
97
- return `PR #${details.pr_number}`;
98
- if (event === 'ready_check_fail' && details.blockers) {
99
- const b = details.blockers;
100
- return b.slice(0, 2).join(', ') + (b.length > 2 ? 'โ€ฆ' : '');
101
- }
102
- if (event === 'sync') {
103
- const orphans = details.orphans_removed;
104
- const synced = details.branches_synced;
105
- if (orphans !== undefined || synced !== undefined)
106
- return `${synced ?? 0} synced, ${orphans ?? 0} orphans removed`;
107
- }
108
- return '';
109
- }
110
- //# sourceMappingURL=log.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const mcpHealthCommand: Command;
3
- //# sourceMappingURL=mcp-health.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-health.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsLpC,eAAO,MAAM,gBAAgB,SAkKvB,CAAC"}
@@ -1,305 +0,0 @@
1
- import { Command } from 'commander';
2
- import { execSync, spawn } from 'child_process';
3
- import * as fs from 'fs';
4
- import * as path from 'path';
5
- import * as os from 'os';
6
- // Config
7
- const HUB_URL = process.env.HUB_URL || 'https://hub.treebird.uk';
8
- const MCP_CONFIG_PATH = path.join(os.homedir(), '.gemini', 'antigravity', 'mcp_config.json');
9
- /**
10
- * Read MCP config from Antigravity config file
11
- */
12
- function readMcpConfig() {
13
- try {
14
- if (!fs.existsSync(MCP_CONFIG_PATH)) {
15
- console.log(`โš ๏ธ MCP config not found: ${MCP_CONFIG_PATH}`);
16
- return null;
17
- }
18
- const content = fs.readFileSync(MCP_CONFIG_PATH, 'utf-8');
19
- return JSON.parse(content);
20
- }
21
- catch (err) {
22
- console.log(`โš ๏ธ Failed to read MCP config: ${err}`);
23
- return null;
24
- }
25
- }
26
- /**
27
- * Start an MCP server from config
28
- */
29
- function startMcpServer(name, config) {
30
- try {
31
- const env = { ...process.env, ...config.env };
32
- const child = spawn(config.command, config.args, {
33
- detached: true,
34
- stdio: 'ignore',
35
- env
36
- });
37
- child.unref();
38
- console.log(`๐Ÿš€ Started ${name} (PID: ${child.pid})`);
39
- return true;
40
- }
41
- catch (err) {
42
- console.log(`โŒ Failed to start ${name}: ${err}`);
43
- return false;
44
- }
45
- }
46
- // Known MCP servers in the Treebird ecosystem
47
- const KNOWN_MCP_SERVERS = [
48
- { name: 'watsan-mcp', pattern: 'watsan.*mcp', required: true },
49
- { name: 'myceliumail-mcp', pattern: 'myceliumail.*mcp', required: true },
50
- { name: 'spidersan-mcp', pattern: 'spidersan.*mcp', required: false },
51
- { name: 'supabase-mcp', pattern: 'supabase.*mcp', required: false },
52
- { name: 'perplexity-mcp', pattern: 'perplexity', required: false },
53
- ];
54
- function findMcpProcesses() {
55
- const results = new Map();
56
- try {
57
- // Get all MCP-related processes
58
- const output = execSync('ps aux | grep -E "mcp|MCP" | grep -v grep', {
59
- encoding: 'utf-8',
60
- stdio: ['pipe', 'pipe', 'pipe']
61
- }).trim();
62
- if (!output)
63
- return results;
64
- const lines = output.split('\n');
65
- for (const line of lines) {
66
- const parts = line.split(/\s+/);
67
- if (parts.length < 11)
68
- continue;
69
- const pid = parseInt(parts[1], 10);
70
- const startTime = parts[8]; // TIME column
71
- const command = parts.slice(10).join(' ');
72
- // Match against known servers
73
- for (const server of KNOWN_MCP_SERVERS) {
74
- const regex = new RegExp(server.pattern, 'i');
75
- if (regex.test(command)) {
76
- if (!results.has(server.name)) {
77
- results.set(server.name, []);
78
- }
79
- results.get(server.name).push({
80
- pid,
81
- command: command.substring(0, 60) + (command.length > 60 ? '...' : ''),
82
- uptime: startTime
83
- });
84
- }
85
- }
86
- // Check for unknown MCP servers
87
- if (!Array.from(results.values()).some(procs => procs.some(p => p.pid === pid))) {
88
- if (/mcp|MCP/.test(command)) {
89
- const unknownKey = 'unknown-mcp';
90
- if (!results.has(unknownKey)) {
91
- results.set(unknownKey, []);
92
- }
93
- results.get(unknownKey).push({
94
- pid,
95
- command: command.substring(0, 60) + (command.length > 60 ? '...' : ''),
96
- uptime: startTime
97
- });
98
- }
99
- }
100
- }
101
- }
102
- catch (err) {
103
- // No processes found - that's okay
104
- }
105
- return results;
106
- }
107
- function getProcessUptime(pid) {
108
- try {
109
- const output = execSync(`ps -p ${pid} -o etime=`, { encoding: 'utf-8' }).trim();
110
- return output || 'unknown';
111
- }
112
- catch {
113
- return 'unknown';
114
- }
115
- }
116
- /**
117
- * Post MCP health summary to Hub chat
118
- */
119
- async function postToHubChat(healthReport, hasIssues) {
120
- const running = Object.entries(healthReport).filter(([_, v]) => v.status === 'running').length;
121
- const stopped = Object.entries(healthReport).filter(([_, v]) => v.status === 'stopped').length;
122
- const zombies = Object.entries(healthReport).filter(([_, v]) => v.status === 'zombie').length;
123
- const statusIcon = hasIssues ? 'โš ๏ธ' : 'โœ…';
124
- const statusText = hasIssues ? 'Issues detected' : 'All healthy';
125
- const serverLines = Object.entries(healthReport)
126
- .map(([name, info]) => {
127
- const icon = info.status === 'running' ? 'โœ…' : info.status === 'zombie' ? 'โš ๏ธ' : 'โŒ';
128
- return `${icon} ${name}: ${info.status}`;
129
- })
130
- .join('\n');
131
- const message = `๐Ÿฉบ **MCP Health Report** ${statusIcon}\n\n${serverLines}\n\n**Summary:** ${running} running, ${stopped} stopped, ${zombies} zombies`;
132
- try {
133
- const response = await fetch(`${HUB_URL}/api/chat`, {
134
- method: 'POST',
135
- headers: { 'Content-Type': 'application/json' },
136
- body: JSON.stringify({
137
- agent: 'ssan',
138
- name: 'Spidersan',
139
- message,
140
- glyph: '๐Ÿ•ท๏ธ'
141
- })
142
- });
143
- if (response.ok) {
144
- console.log('๐Ÿ“ค Posted health report to Hub chat');
145
- }
146
- else {
147
- console.log(`โš ๏ธ Failed to post to Hub: ${response.status}`);
148
- }
149
- }
150
- catch {
151
- console.log('โš ๏ธ Could not connect to Hub');
152
- }
153
- }
154
- export const mcpHealthCommand = new Command('mcp-health')
155
- .description('๐Ÿฉบ Check health of MCP servers in the ecosystem')
156
- .option('--json', 'Output as JSON for Hub events')
157
- .option('--hub', 'Post health report to Hub chat')
158
- .option('--kill-zombies', 'Kill duplicate MCP processes (keep only newest)')
159
- .option('--auto-restart', 'Automatically restart stopped required MCP servers')
160
- .action(async (options) => {
161
- console.log(`
162
- ๐Ÿฉบ MCP Health Check
163
- โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
164
- `);
165
- const processes = findMcpProcesses();
166
- const healthReport = {};
167
- let hasIssues = false;
168
- let zombiesKilled = 0;
169
- let serversRestarted = 0;
170
- const stoppedServers = [];
171
- // Load MCP config for potential restart
172
- const mcpConfig = options.autoRestart ? readMcpConfig() : null;
173
- // Check each known server
174
- for (const server of KNOWN_MCP_SERVERS) {
175
- const procs = processes.get(server.name) || [];
176
- const count = procs.length;
177
- let status;
178
- let icon;
179
- if (count === 0) {
180
- if (server.required) {
181
- stoppedServers.push(server.name);
182
- // Try to auto-restart if flag is set
183
- if (options.autoRestart && mcpConfig?.mcpServers[server.name]) {
184
- const serverConfig = mcpConfig.mcpServers[server.name];
185
- if (startMcpServer(server.name, serverConfig)) {
186
- serversRestarted++;
187
- status = 'RESTARTED';
188
- icon = '๐Ÿš€';
189
- }
190
- else {
191
- status = 'RESTART FAILED';
192
- icon = 'โŒ';
193
- hasIssues = true;
194
- }
195
- }
196
- else {
197
- status = 'NOT RUNNING';
198
- icon = 'โŒ';
199
- hasIssues = true;
200
- }
201
- }
202
- else {
203
- status = 'not running (optional)';
204
- icon = 'โšช';
205
- }
206
- }
207
- else if (count === 1) {
208
- const uptime = getProcessUptime(procs[0].pid);
209
- status = `running (PID: ${procs[0].pid}, uptime: ${uptime})`;
210
- icon = 'โœ…';
211
- }
212
- else {
213
- status = `${count} ZOMBIES FOUND!`;
214
- icon = 'โš ๏ธ';
215
- hasIssues = true;
216
- if (options.killZombies) {
217
- // Kill all but the newest (highest PID)
218
- // IMPORTANT: Exclude current process and parent to avoid self-termination
219
- const currentPid = process.pid;
220
- const parentPid = process.ppid;
221
- const protectedPids = new Set([currentPid, parentPid]);
222
- const sortedProcs = [...procs].sort((a, b) => b.pid - a.pid);
223
- const toKill = sortedProcs.slice(1).filter(p => !protectedPids.has(p.pid));
224
- for (const proc of toKill) {
225
- try {
226
- execSync(`kill ${proc.pid}`, { stdio: 'ignore' });
227
- zombiesKilled++;
228
- }
229
- catch {
230
- // Process might already be dead
231
- }
232
- }
233
- status = `${count} found, ${toKill.length} killed (kept PID: ${sortedProcs[0].pid})`;
234
- icon = '๐Ÿงน';
235
- }
236
- }
237
- healthReport[server.name] = {
238
- status: count === 0 ? 'stopped' : count === 1 ? 'running' : 'zombie',
239
- pids: procs.map(p => p.pid),
240
- zombieCount: count > 1 ? count - 1 : 0
241
- };
242
- if (!options.json) {
243
- console.log(`${icon} ${server.name}: ${status}`);
244
- }
245
- }
246
- // Check for unknown MCP processes
247
- const unknownProcs = processes.get('unknown-mcp') || [];
248
- if (unknownProcs.length > 0) {
249
- if (!options.json) {
250
- console.log(`\nโš ๏ธ Unknown MCP processes found:`);
251
- for (const proc of unknownProcs) {
252
- console.log(` PID ${proc.pid}: ${proc.command}`);
253
- }
254
- }
255
- healthReport['unknown'] = {
256
- status: 'unknown',
257
- pids: unknownProcs.map(p => p.pid),
258
- zombieCount: unknownProcs.length
259
- };
260
- }
261
- if (!options.json) {
262
- console.log(`
263
- โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”`);
264
- if (options.killZombies && zombiesKilled > 0) {
265
- console.log(`๐Ÿงน Killed ${zombiesKilled} zombie processes`);
266
- }
267
- if (serversRestarted > 0) {
268
- console.log(`๐Ÿš€ Restarted ${serversRestarted} MCP server(s)`);
269
- }
270
- if (hasIssues) {
271
- const hints = [];
272
- if (stoppedServers.length > 0 && !options.autoRestart) {
273
- hints.push('spidersan mcp-health --auto-restart');
274
- }
275
- hints.push('spidersan mcp-health --kill-zombies');
276
- console.log(`
277
- โš ๏ธ Issues found! Try:
278
- ${hints.join('\n ')}
279
- `);
280
- }
281
- else {
282
- console.log(`
283
- โœ… All MCP servers healthy!
284
- `);
285
- }
286
- }
287
- if (options.json) {
288
- const event = {
289
- event: 'mcp:health',
290
- payload: {
291
- servers: healthReport,
292
- hasIssues,
293
- zombiesKilled,
294
- timestamp: new Date().toISOString()
295
- },
296
- emitter: 'spidersan'
297
- };
298
- console.log(JSON.stringify(event, null, 2));
299
- }
300
- // Post to Hub if --hub flag is set
301
- if (options.hub) {
302
- await postToHubChat(healthReport, hasIssues);
303
- }
304
- });
305
- //# sourceMappingURL=mcp-health.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-health.js","sourceRoot":"","sources":["../../src/commands/mcp-health.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const mcpRestartCommand: Command;
3
- //# sourceMappingURL=mcp-restart.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-restart.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-restart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqIpC,eAAO,MAAM,iBAAiB,SAoExB,CAAC"}
@@ -1,176 +0,0 @@
1
- import { Command } from 'commander';
2
- import { execSync } from 'child_process';
3
- import * as fs from 'fs';
4
- import * as path from 'path';
5
- import * as os from 'os';
6
- // Config
7
- const MCP_CONFIG_PATH = path.join(os.homedir(), '.gemini', 'antigravity', 'mcp_config.json');
8
- /**
9
- * Read MCP config from Antigravity config file
10
- */
11
- function readMcpConfig() {
12
- try {
13
- if (!fs.existsSync(MCP_CONFIG_PATH)) {
14
- console.log(`โš ๏ธ MCP config not found: ${MCP_CONFIG_PATH}`);
15
- return null;
16
- }
17
- const content = fs.readFileSync(MCP_CONFIG_PATH, 'utf-8');
18
- return JSON.parse(content);
19
- }
20
- catch (err) {
21
- console.log(`โŒ Failed to read MCP config: ${err}`);
22
- return null;
23
- }
24
- }
25
- /**
26
- * Validate MCP config JSON syntax and file paths
27
- */
28
- function validateConfig(config) {
29
- const errors = [];
30
- for (const [name, serverConfig] of Object.entries(config.mcpServers)) {
31
- // Check if command exists (for node, check the script path)
32
- if (serverConfig.command === 'node' && serverConfig.args.length > 0) {
33
- const scriptPath = serverConfig.args[0];
34
- if (!fs.existsSync(scriptPath)) {
35
- errors.push(`${name}: Script not found: ${scriptPath}`);
36
- }
37
- }
38
- }
39
- return { valid: errors.length === 0, errors };
40
- }
41
- /**
42
- * Kill all MCP processes (excluding self)
43
- */
44
- function killMcpProcesses(dryRun = false) {
45
- let killed = 0;
46
- const currentPid = process.pid;
47
- const parentPid = process.ppid;
48
- try {
49
- // Find all MCP-related processes
50
- const output = execSync('ps aux | grep -E "mcp|MCP" | grep node | grep -v grep', {
51
- encoding: 'utf-8',
52
- stdio: ['pipe', 'pipe', 'pipe']
53
- }).trim();
54
- if (!output) {
55
- console.log('๐Ÿ“ญ No MCP processes found');
56
- return 0;
57
- }
58
- const lines = output.split('\n');
59
- for (const line of lines) {
60
- const parts = line.split(/\s+/);
61
- if (parts.length < 2)
62
- continue;
63
- const pid = parseInt(parts[1], 10);
64
- const command = parts.slice(10).join(' ').substring(0, 60);
65
- // Skip self and parent to avoid killing the executing process
66
- if (pid === currentPid || pid === parentPid) {
67
- if (dryRun) {
68
- console.log(` Skipping PID ${pid} (self/parent): ${command}...`);
69
- }
70
- continue;
71
- }
72
- if (dryRun) {
73
- console.log(` Would kill PID ${pid}: ${command}...`);
74
- }
75
- else {
76
- try {
77
- execSync(`kill ${pid}`, { stdio: 'ignore' });
78
- console.log(` Killed PID ${pid}: ${command}...`);
79
- killed++;
80
- }
81
- catch {
82
- // Process might already be dead
83
- }
84
- }
85
- }
86
- }
87
- catch {
88
- // No processes found - that's okay
89
- }
90
- return killed;
91
- }
92
- /**
93
- * Restart Antigravity using osascript (macOS only)
94
- */
95
- function restartAntigravity() {
96
- try {
97
- console.log('๐Ÿ”„ Restarting Antigravity...');
98
- execSync('osascript -e \'quit app "Antigravity"\'', { stdio: 'ignore' });
99
- // Wait a moment for clean shutdown
100
- execSync('sleep 2');
101
- // Relaunch
102
- execSync('open -a Antigravity', { stdio: 'ignore' });
103
- console.log('โœ… Antigravity restarted');
104
- return true;
105
- }
106
- catch (err) {
107
- console.log(`โŒ Failed to restart Antigravity: ${err}`);
108
- return false;
109
- }
110
- }
111
- export const mcpRestartCommand = new Command('mcp-restart')
112
- .description('๐Ÿ”„ Kill MCP processes and restart Antigravity to reload connections')
113
- .option('--validate', 'Validate mcp_config.json before restart')
114
- .option('--dry-run', 'Show what would be killed without actually killing')
115
- .option('--force', 'Force restart Antigravity using osascript (macOS only)')
116
- .option('--kill-only', 'Only kill MCPs, don\'t restart Antigravity')
117
- .action(async (options) => {
118
- console.log(`
119
- ๐Ÿ”„ MCP Restart
120
- โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
121
- `);
122
- // Step 1: Read and optionally validate config
123
- const config = readMcpConfig();
124
- if (!config) {
125
- console.log('โŒ Cannot proceed without valid config');
126
- process.exit(1);
127
- }
128
- console.log(`๐Ÿ“‹ Found ${Object.keys(config.mcpServers).length} MCP servers in config`);
129
- if (options.validate) {
130
- console.log('\n๐Ÿ” Validating config...');
131
- const { valid, errors } = validateConfig(config);
132
- if (!valid) {
133
- console.log('โŒ Validation failed:');
134
- for (const error of errors) {
135
- console.log(` ${error}`);
136
- }
137
- if (!options.dryRun) {
138
- console.log('\nโš ๏ธ Fix these issues before restarting');
139
- process.exit(1);
140
- }
141
- }
142
- else {
143
- console.log('โœ… Config valid');
144
- }
145
- }
146
- // Step 2: Kill MCP processes
147
- console.log(`\n${options.dryRun ? '๐Ÿ” Dry run - ' : ''}Killing MCP processes...`);
148
- const killed = killMcpProcesses(options.dryRun);
149
- if (!options.dryRun) {
150
- console.log(`\n๐Ÿงน Killed ${killed} MCP process(es)`);
151
- }
152
- // Step 3: Restart or instruct
153
- if (options.killOnly) {
154
- console.log('\nโœ… MCPs killed. Run `spidersan mcp-health --auto-restart` to restart them.');
155
- }
156
- else if (options.force) {
157
- console.log('');
158
- restartAntigravity();
159
- }
160
- else {
161
- console.log(`
162
- โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
163
-
164
- ๐Ÿ•ท๏ธ MCPs killed. To reconnect:
165
-
166
- Option 1: Restart Antigravity manually
167
-
168
- Option 2: Run with --force to auto-restart:
169
- $ spidersan mcp-restart --force
170
-
171
- Option 3: Just restart MCPs without Antigravity:
172
- $ spidersan mcp-health --auto-restart
173
- `);
174
- }
175
- });
176
- //# sourceMappingURL=mcp-restart.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-restart.js","sourceRoot":"","sources":["../../src/commands/mcp-restart.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * spidersan merge-order
3
- *
4
- * Get optimal merge order based on dependencies and conflicts.
5
- * Supports --blocking-count to prioritize tasks that block others (rarest-first).
6
- */
7
- import { Command } from 'commander';
8
- export declare const mergeOrderCommand: Command;
9
- //# sourceMappingURL=merge-order.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-order.d.ts","sourceRoot":"","sources":["../../src/commands/merge-order.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,iBAAiB,SA2FxB,CAAC"}