spidersan 0.10.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 (479) hide show
  1. package/CHANGELOG.md +163 -0
  2. package/README.md +39 -280
  3. package/package.json +88 -90
  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 -416
  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 -570
  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 -274
  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 -174
  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 -163
  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 -9
  245. package/dist/commands/watch.d.ts.map +0 -1
  246. package/dist/commands/watch.js +0 -536
  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/pulse-renderer.d.ts +0 -19
  365. package/dist/lib/pulse-renderer.d.ts.map +0 -1
  366. package/dist/lib/pulse-renderer.js +0 -108
  367. package/dist/lib/pulse-renderer.js.map +0 -1
  368. package/dist/lib/regex-utils.d.ts +0 -6
  369. package/dist/lib/regex-utils.d.ts.map +0 -1
  370. package/dist/lib/regex-utils.js +0 -24
  371. package/dist/lib/regex-utils.js.map +0 -1
  372. package/dist/lib/register-renderer.d.ts +0 -10
  373. package/dist/lib/register-renderer.d.ts.map +0 -1
  374. package/dist/lib/register-renderer.js +0 -19
  375. package/dist/lib/register-renderer.js.map +0 -1
  376. package/dist/lib/remote-drift.d.ts +0 -61
  377. package/dist/lib/remote-drift.d.ts.map +0 -1
  378. package/dist/lib/remote-drift.js +0 -227
  379. package/dist/lib/remote-drift.js.map +0 -1
  380. package/dist/lib/repo-scanner.d.ts +0 -32
  381. package/dist/lib/repo-scanner.d.ts.map +0 -1
  382. package/dist/lib/repo-scanner.js +0 -160
  383. package/dist/lib/repo-scanner.js.map +0 -1
  384. package/dist/lib/salvage-analyzer.d.ts +0 -29
  385. package/dist/lib/salvage-analyzer.d.ts.map +0 -1
  386. package/dist/lib/salvage-analyzer.js +0 -121
  387. package/dist/lib/salvage-analyzer.js.map +0 -1
  388. package/dist/lib/security.d.ts +0 -77
  389. package/dist/lib/security.d.ts.map +0 -1
  390. package/dist/lib/security.js +0 -190
  391. package/dist/lib/security.js.map +0 -1
  392. package/dist/lib/session-logger.d.ts +0 -54
  393. package/dist/lib/session-logger.d.ts.map +0 -1
  394. package/dist/lib/session-logger.js +0 -136
  395. package/dist/lib/session-logger.js.map +0 -1
  396. package/dist/lib/symbol-extractor.d.ts +0 -41
  397. package/dist/lib/symbol-extractor.d.ts.map +0 -1
  398. package/dist/lib/symbol-extractor.js +0 -78
  399. package/dist/lib/symbol-extractor.js.map +0 -1
  400. package/dist/lib/update-check.d.ts +0 -11
  401. package/dist/lib/update-check.d.ts.map +0 -1
  402. package/dist/lib/update-check.js +0 -113
  403. package/dist/lib/update-check.js.map +0 -1
  404. package/dist/lib/watch-renderer.d.ts +0 -13
  405. package/dist/lib/watch-renderer.d.ts.map +0 -1
  406. package/dist/lib/watch-renderer.js +0 -35
  407. package/dist/lib/watch-renderer.js.map +0 -1
  408. package/dist/storage/adapter.d.ts +0 -62
  409. package/dist/storage/adapter.d.ts.map +0 -1
  410. package/dist/storage/adapter.js +0 -8
  411. package/dist/storage/adapter.js.map +0 -1
  412. package/dist/storage/branch-registry-store.d.ts +0 -13
  413. package/dist/storage/branch-registry-store.d.ts.map +0 -1
  414. package/dist/storage/branch-registry-store.js +0 -2
  415. package/dist/storage/branch-registry-store.js.map +0 -1
  416. package/dist/storage/factory.d.ts +0 -10
  417. package/dist/storage/factory.d.ts.map +0 -1
  418. package/dist/storage/factory.js +0 -38
  419. package/dist/storage/factory.js.map +0 -1
  420. package/dist/storage/git-messages.d.ts +0 -53
  421. package/dist/storage/git-messages.d.ts.map +0 -1
  422. package/dist/storage/git-messages.js +0 -376
  423. package/dist/storage/git-messages.js.map +0 -1
  424. package/dist/storage/index.d.ts +0 -10
  425. package/dist/storage/index.d.ts.map +0 -1
  426. package/dist/storage/index.js +0 -11
  427. package/dist/storage/index.js.map +0 -1
  428. package/dist/storage/json-branch-registry-store.d.ts +0 -19
  429. package/dist/storage/json-branch-registry-store.d.ts.map +0 -1
  430. package/dist/storage/json-branch-registry-store.js +0 -112
  431. package/dist/storage/json-branch-registry-store.js.map +0 -1
  432. package/dist/storage/local-messages.d.ts +0 -37
  433. package/dist/storage/local-messages.d.ts.map +0 -1
  434. package/dist/storage/local-messages.js +0 -151
  435. package/dist/storage/local-messages.js.map +0 -1
  436. package/dist/storage/local.d.ts +0 -20
  437. package/dist/storage/local.d.ts.map +0 -1
  438. package/dist/storage/local.js +0 -40
  439. package/dist/storage/local.js.map +0 -1
  440. package/dist/storage/memory-branch-registry-store.d.ts +0 -16
  441. package/dist/storage/memory-branch-registry-store.d.ts.map +0 -1
  442. package/dist/storage/memory-branch-registry-store.js +0 -65
  443. package/dist/storage/memory-branch-registry-store.js.map +0 -1
  444. package/dist/storage/message-adapter.d.ts +0 -86
  445. package/dist/storage/message-adapter.d.ts.map +0 -1
  446. package/dist/storage/message-adapter.js +0 -28
  447. package/dist/storage/message-adapter.js.map +0 -1
  448. package/dist/storage/message-factory.d.ts +0 -36
  449. package/dist/storage/message-factory.d.ts.map +0 -1
  450. package/dist/storage/message-factory.js +0 -99
  451. package/dist/storage/message-factory.js.map +0 -1
  452. package/dist/storage/mycmail-adapter.d.ts +0 -38
  453. package/dist/storage/mycmail-adapter.d.ts.map +0 -1
  454. package/dist/storage/mycmail-adapter.js +0 -300
  455. package/dist/storage/mycmail-adapter.js.map +0 -1
  456. package/dist/storage/supabase-registry-sync-client-impl.d.ts +0 -46
  457. package/dist/storage/supabase-registry-sync-client-impl.d.ts.map +0 -1
  458. package/dist/storage/supabase-registry-sync-client-impl.js +0 -322
  459. package/dist/storage/supabase-registry-sync-client-impl.js.map +0 -1
  460. package/dist/storage/supabase-registry-sync-client.d.ts +0 -9
  461. package/dist/storage/supabase-registry-sync-client.d.ts.map +0 -1
  462. package/dist/storage/supabase-registry-sync-client.js +0 -2
  463. package/dist/storage/supabase-registry-sync-client.js.map +0 -1
  464. package/dist/storage/supabase.d.ts +0 -34
  465. package/dist/storage/supabase.d.ts.map +0 -1
  466. package/dist/storage/supabase.js +0 -74
  467. package/dist/storage/supabase.js.map +0 -1
  468. package/dist/tui/dashboard.d.ts +0 -35
  469. package/dist/tui/dashboard.d.ts.map +0 -1
  470. package/dist/tui/dashboard.js +0 -199
  471. package/dist/tui/dashboard.js.map +0 -1
  472. package/dist/tui/screen.d.ts +0 -14
  473. package/dist/tui/screen.d.ts.map +0 -1
  474. package/dist/tui/screen.js +0 -138
  475. package/dist/tui/screen.js.map +0 -1
  476. package/dist/types/cloud.d.ts +0 -101
  477. package/dist/types/cloud.d.ts.map +0 -1
  478. package/dist/types/cloud.js +0 -13
  479. package/dist/types/cloud.js.map +0 -1
@@ -1,536 +0,0 @@
1
- import { Command } from 'commander';
2
- import { execFileSync, spawnSync } from 'child_process';
3
- import { getStorage } from '../storage/index.js';
4
- import * as chokidar from 'chokidar';
5
- import * as path from 'path';
6
- import { homedir } from 'os';
7
- import { io } from 'socket.io-client';
8
- import { loadConfig } from '../lib/config.js';
9
- import { syncFromColony } from '../lib/colony-subscriber.js';
10
- import { getCurrentBranch, getRemoteHead } from '../lib/git.js';
11
- import { createHubClient } from '../lib/hub.js';
12
- import { computeDriftResult } from '../lib/remote-drift.js';
13
- import { renderFetchPollDrift, renderFetchPollHeartbeat } from '../lib/watch-renderer.js';
14
- const DEBOUNCE_MS = 1000; // Debounce file changes
15
- const hub = createHubClient();
16
- function getRepoRoot() {
17
- try {
18
- return execFileSync('git', ['rev-parse', '--show-toplevel'], { encoding: 'utf-8' }).trim();
19
- }
20
- catch {
21
- return process.cwd();
22
- }
23
- }
24
- function parsePaths(value) {
25
- return value.split(',').map((entry) => entry.trim()).filter(Boolean);
26
- }
27
- function formatConflictChatMessage(branch, conflicts) {
28
- const conflictDetails = conflicts
29
- .map(c => `β€’ **${c.branch}**: ${c.files.join(', ')}`)
30
- .join('\n');
31
- return `πŸ•·οΈβš οΈ **CONFLICT DETECTED** on branch \`${branch}\`\n\n${conflictDetails}`;
32
- }
33
- function formatFetchPollTime(date) {
34
- return date.toLocaleTimeString('en-GB', { hour12: false });
35
- }
36
- function runInRepoDir(repoDir, work) {
37
- const originalDir = process.cwd();
38
- const shouldChangeDir = repoDir && originalDir !== repoDir;
39
- let restoreInFinally = true;
40
- if (shouldChangeDir) {
41
- process.chdir(repoDir);
42
- }
43
- try {
44
- const result = work();
45
- if (result instanceof Promise) {
46
- restoreInFinally = false;
47
- return result.finally(() => {
48
- if (shouldChangeDir) {
49
- process.chdir(originalDir);
50
- }
51
- });
52
- }
53
- return result;
54
- }
55
- finally {
56
- if (restoreInFinally && shouldChangeDir && process.cwd() === repoDir) {
57
- process.chdir(originalDir);
58
- }
59
- }
60
- }
61
- function isDriftSkipped(result) {
62
- return 'skipped' in result;
63
- }
64
- export async function startFetchPollLoop(opts) {
65
- const intervalMs = Math.max(1, opts.intervalSecs) * 1000;
66
- try {
67
- const branch = runInRepoDir(opts.repoDir, () => getCurrentBranch());
68
- const storage = await getStorage();
69
- const hubClient = opts.hubSync ? createHubClient() : null;
70
- let lastRemoteHead = runInRepoDir(opts.repoDir, () => getRemoteHead('origin', branch));
71
- let inFlight = false;
72
- setInterval(() => {
73
- if (inFlight)
74
- return;
75
- inFlight = true;
76
- void (async () => {
77
- try {
78
- const currentRemoteHead = runInRepoDir(opts.repoDir, () => getRemoteHead('origin', branch));
79
- if (currentRemoteHead === lastRemoteHead) {
80
- if (!opts.quiet) {
81
- console.log(renderFetchPollHeartbeat({
82
- branch,
83
- timestamp: formatFetchPollTime(new Date()),
84
- }));
85
- }
86
- return;
87
- }
88
- lastRemoteHead = currentRemoteHead;
89
- const registeredFiles = (await storage.get(branch))?.files ?? [];
90
- const result = await runInRepoDir(opts.repoDir, () => computeDriftResult(registeredFiles, { remote: 'origin', branch }));
91
- if (isDriftSkipped(result)) {
92
- if (!opts.quiet) {
93
- console.log(renderFetchPollDrift({ branch, drift: result }));
94
- }
95
- return;
96
- }
97
- if (result.remoteAhead === 0) {
98
- return;
99
- }
100
- const warningOutput = renderFetchPollDrift({ branch, drift: result });
101
- console.log(warningOutput);
102
- if (hubClient) {
103
- await hubClient.postToChat({
104
- agent: 'spidersan',
105
- name: 'Spidersan',
106
- message: warningOutput,
107
- glyph: 'πŸ•·οΈ',
108
- });
109
- }
110
- }
111
- catch (error) {
112
- const message = error instanceof Error ? error.message : String(error);
113
- console.warn(`⚠️ [FETCH-POLL] ${message}`);
114
- }
115
- finally {
116
- inFlight = false;
117
- }
118
- })();
119
- }, intervalMs);
120
- }
121
- catch (error) {
122
- const message = error instanceof Error ? error.message : String(error);
123
- console.warn(`⚠️ [FETCH-POLL] ${message}`);
124
- }
125
- }
126
- export const watchCommand = new Command('watch')
127
- .description('πŸ•·οΈ Watch files and auto-register changes (daemon mode)')
128
- .argument('[directory]', 'Directory to watch (default: current repo)')
129
- .option('-d, --dir <directory>', 'Directory to watch (alias for positional arg)')
130
- .option('--paths <paths>', 'Comma-separated list of files or folders to watch')
131
- .option('--root <root>', 'Project root for relative paths (default: git root)')
132
- .option('-a, --agent <agent>', 'Agent identifier for registration')
133
- .option('--hub', 'Connect to Hub and emit real-time conflict warnings')
134
- .option('--hub-sync', 'Post conflicts to Hub chat via REST API')
135
- .option('-q, --quiet', 'Only log conflicts, not file changes')
136
- .option('--fetch-poll [seconds]', 'Poll git ls-remote origin every N seconds (default: 60)')
137
- .option('--legacy', 'Legacy mode: use old watcher settings (more file descriptors)')
138
- .action(async (directory, options) => {
139
- const storage = await getStorage();
140
- const config = await loadConfig();
141
- if (!await storage.isInitialized()) {
142
- console.error('❌ Spidersan not initialized. Run: spidersan init');
143
- process.exit(1);
144
- }
145
- const branch = getCurrentBranch();
146
- const repoRoot = options.root || getRepoRoot();
147
- const watchTargets = options.paths
148
- ? parsePaths(options.paths).map((entry) => path.isAbsolute(entry) ? entry : path.join(repoRoot, entry))
149
- : [directory || options.dir || repoRoot];
150
- const configuredAgent = config.agent.name?.trim();
151
- const agent = options.agent || process.env.SPIDERSAN_AGENT || configuredAgent || 'unknown';
152
- const watchLabel = watchTargets.length === 1 ? watchTargets[0] : `${watchTargets.length} paths`;
153
- console.log(`
154
- πŸ•·οΈ SPIDERSAN WATCH MODE
155
- ━━━━━━━━━━━━━━━━━━━━━━━
156
- Branch: ${branch}
157
- Agent: ${agent}
158
- Root: ${repoRoot}
159
- Watching: ${watchLabel}
160
- Hub: ${options.hub ? hub.url : 'disabled'}
161
- Hub Sync: ${options.hubSync ? 'enabled (posts to chat)' : 'disabled'}
162
- ━━━━━━━━━━━━━━━━━━━━━━━
163
- Press Ctrl+C to stop.
164
- `);
165
- // Hub socket connection (optional)
166
- let hubSocket = null;
167
- if (options.hub) {
168
- try {
169
- hubSocket = io(hub.url, {
170
- reconnection: true,
171
- reconnectionAttempts: 5,
172
- timeout: 5000
173
- });
174
- hubSocket.on('connect', () => {
175
- console.log('πŸ”Œ Connected to Hub');
176
- });
177
- hubSocket.on('disconnect', () => {
178
- console.log('πŸ”Œ Disconnected from Hub');
179
- });
180
- hubSocket.on('connect_error', (err) => {
181
- if (!options.quiet) {
182
- console.log(`⚠️ Hub connection failed: ${err.message}`);
183
- }
184
- });
185
- }
186
- catch {
187
- console.log('⚠️ Could not connect to Hub');
188
- }
189
- }
190
- // Track recently changed files for debouncing
191
- const pendingFiles = new Set();
192
- let debounceTimer = null;
193
- // Process accumulated file changes
194
- async function processChanges() {
195
- if (pendingFiles.size === 0)
196
- return;
197
- const files = Array.from(pendingFiles);
198
- pendingFiles.clear();
199
- // Register files
200
- const existing = await storage.get(branch);
201
- const allFiles = existing
202
- ? [...new Set([...existing.files, ...files])]
203
- : files;
204
- if (existing) {
205
- await storage.update(branch, { files: allFiles, agent });
206
- }
207
- else {
208
- await storage.register({
209
- name: branch,
210
- files: allFiles,
211
- status: 'active',
212
- agent,
213
- });
214
- }
215
- if (!options.quiet) {
216
- console.log(`πŸ“ Registered: ${files.join(', ')}`);
217
- }
218
- // Check for conflicts
219
- const allBranches = await storage.list();
220
- const conflicts = [];
221
- // Performance Optimization: Convert changed files to Set for O(1) lookup
222
- const filesSet = new Set(files);
223
- for (const otherBranch of allBranches) {
224
- if (otherBranch.name === branch || otherBranch.status !== 'active')
225
- continue;
226
- const overlapping = otherBranch.files.filter(f => filesSet.has(f));
227
- if (overlapping.length > 0) {
228
- conflicts.push({ branch: otherBranch.name, files: overlapping });
229
- }
230
- }
231
- if (conflicts.length > 0) {
232
- console.log(`\n⚠️ CONFLICT DETECTED!`);
233
- conflicts.forEach(c => {
234
- console.log(` πŸ”΄ ${c.branch}: ${c.files.join(', ')}`);
235
- });
236
- console.log('');
237
- // Emit to Hub via socket if connected
238
- if (hubSocket?.connected) {
239
- hubSocket.emit('conflicts:warning', {
240
- branch,
241
- agent,
242
- files,
243
- conflicts,
244
- timestamp: new Date().toISOString()
245
- });
246
- }
247
- // Post to Hub chat if --hub-sync enabled
248
- if (options.hubSync) {
249
- await hub.postToChat({
250
- agent: 'spidersan',
251
- name: 'Spidersan',
252
- message: formatConflictChatMessage(branch, conflicts),
253
- glyph: 'πŸ•·οΈ',
254
- });
255
- console.log('πŸ“€ Posted conflict to Hub chat');
256
- }
257
- }
258
- }
259
- // Build extended ignore patterns for smart mode
260
- const smartIgnores = [
261
- '**/.next/**', '**/build/**', '**/out/**', '**/coverage/**',
262
- '**/.cache/**', '**/__pycache__/**', '**/target/**',
263
- '**/vendor/**', '**/bower_components/**', '**/.pnpm/**',
264
- '**/.idea/**', '**/.vscode/**', '**/*.swp', '**/*.swo',
265
- '**/.DS_Store', '**/Thumbs.db',
266
- '**/package-lock.json', '**/yarn.lock', '**/pnpm-lock.yaml',
267
- '**/*.png', '**/*.jpg', '**/*.jpeg', '**/*.gif', '**/*.ico',
268
- '**/*.woff', '**/*.woff2', '**/*.ttf', '**/*.pdf',
269
- ];
270
- if (options.legacy) {
271
- console.log('⚠️ Legacy mode: Using old watcher settings (more file descriptors)');
272
- }
273
- // Start watching
274
- // SECURITY FIX: Always limit depth to prevent EMFILE errors (Sherlocksan 2026-01-02)
275
- const watcher = chokidar.watch(watchTargets, {
276
- ignored: !options.legacy ? [
277
- ...smartIgnores,
278
- /(^|[/\\])\../, // dotfiles
279
- '**/node_modules/**',
280
- '**/dist/**',
281
- '**/*.log',
282
- '**/.git/**', // ALWAYS ignore .git
283
- ] : [
284
- /(^|[/\\])\../, // dotfiles (ALWAYS ignore)
285
- '**/node_modules/**',
286
- '**/dist/**',
287
- '**/*.log',
288
- '**/.git/**', // ALWAYS ignore .git
289
- ],
290
- persistent: true,
291
- ignoreInitial: true,
292
- awaitWriteFinish: {
293
- stabilityThreshold: 500,
294
- pollInterval: 100
295
- },
296
- // ALWAYS limit depth to prevent EMFILE (default: 5, legacy: 10)
297
- depth: !options.legacy ? 5 : 10,
298
- // Smart mode (default): use polling to reduce file descriptor usage
299
- ...(!options.legacy && {
300
- usePolling: true,
301
- interval: 1000, // Check every 1 second
302
- binaryInterval: 3000,
303
- })
304
- });
305
- watcher.on('change', (filePath) => {
306
- const relativePath = path.relative(repoRoot, filePath);
307
- pendingFiles.add(relativePath);
308
- // Debounce: wait for more changes before processing
309
- if (debounceTimer)
310
- clearTimeout(debounceTimer);
311
- debounceTimer = setTimeout(processChanges, DEBOUNCE_MS);
312
- });
313
- watcher.on('add', (filePath) => {
314
- const relativePath = path.relative(repoRoot, filePath);
315
- pendingFiles.add(relativePath);
316
- if (debounceTimer)
317
- clearTimeout(debounceTimer);
318
- debounceTimer = setTimeout(processChanges, DEBOUNCE_MS);
319
- });
320
- watcher.on('error', (err) => {
321
- const errorMsg = err instanceof Error ? err.message : String(err);
322
- console.error(`❌ Watcher error: ${errorMsg}`);
323
- });
324
- if (options.fetchPoll) {
325
- const parsedSecs = typeof options.fetchPoll === 'string'
326
- ? Number.parseInt(options.fetchPoll, 10)
327
- : Number.NaN;
328
- const intervalSecs = Number.isFinite(parsedSecs) && parsedSecs > 0 ? parsedSecs : 60;
329
- void startFetchPollLoop({
330
- intervalSecs,
331
- hubSync: !!options.hubSync,
332
- quiet: !!options.quiet,
333
- repoDir: repoRoot,
334
- });
335
- }
336
- // Handle graceful shutdown
337
- process.on('SIGINT', () => {
338
- console.log('\nπŸ•·οΈ Watch mode stopped.');
339
- watcher.close();
340
- hubSocket?.disconnect();
341
- process.exit(0);
342
- });
343
- process.on('SIGTERM', () => {
344
- watcher.close();
345
- hubSocket?.disconnect();
346
- process.exit(0);
347
- });
348
- });
349
- // ── Mode 1: Treetop Observer ──────────────────────────────────────────────────
350
- /**
351
- * Default ecosystem repos to watch. Override with --repos flag or
352
- * SPIDERSAN_REPOS env var (colon-separated paths).
353
- */
354
- function getDefaultTreetopRepos() {
355
- if (process.env.SPIDERSAN_REPOS) {
356
- return process.env.SPIDERSAN_REPOS.split(':').map((r) => r.trim()).filter(Boolean);
357
- }
358
- const homeDir = process.env.HOME || homedir();
359
- return [
360
- `${homeDir}/Dev/Envoak`,
361
- `${homeDir}/Dev/treebird-internal`,
362
- `${homeDir}/Dev/spidersan`,
363
- `${homeDir}/Dev/Toak`,
364
- `${homeDir}/Dev/flockview`,
365
- `${homeDir}/Dev/mappersan`,
366
- ];
367
- }
368
- const DEFAULT_TREETOP_REPOS = getDefaultTreetopRepos();
369
- /**
370
- * Run one full observer tick: SYNC β†’ SCAN β†’ TEND β†’ SURFACE.
371
- * Returns tier counts and idle status for adaptive sleep calculation.
372
- */
373
- async function runObserverTick(repos, dryRun, broadcastedConflicts) {
374
- let totalTier3 = 0;
375
- let totalTier2 = 0;
376
- let totalBranches = 0;
377
- const tier3Alerts = [];
378
- // ── STEP 1: SYNC ──────────────────────────────────────────────────────────
379
- // Pull colony gradient into local registry per repo.
380
- for (const repo of repos) {
381
- try {
382
- process.chdir(repo);
383
- await syncFromColony();
384
- }
385
- catch {
386
- // Repo not initialized or colony unreachable β€” continue
387
- }
388
- }
389
- // ── STEP 2: SCAN ─────────────────────────────────────────────────────────
390
- // Detect conflicts in each repo. spawnSync captures output even on exit 1.
391
- for (const repo of repos) {
392
- try {
393
- const result = spawnSync('spidersan', ['conflicts', '--json'], {
394
- cwd: repo,
395
- encoding: 'utf-8',
396
- timeout: 15000,
397
- });
398
- if (result.stdout) {
399
- const data = JSON.parse(result.stdout);
400
- const summary = data.summary ?? { tier3: 0, tier2: 0, tier1: 0 };
401
- totalTier3 += summary.tier3 ?? 0;
402
- totalTier2 += summary.tier2 ?? 0;
403
- // Count active branches via conflicts (each conflict references another branch)
404
- const otherBranches = new Set(data.conflicts?.map((c) => c.branch).filter(Boolean) ?? []);
405
- totalBranches += otherBranches.size;
406
- if ((summary.tier3 ?? 0) > 0) {
407
- const files = data.conflicts
408
- .filter((c) => c.tier === 3)
409
- .flatMap((c) => c.files ?? [])
410
- .slice(0, 3);
411
- tier3Alerts.push({ repo, files });
412
- }
413
- }
414
- }
415
- catch {
416
- // Repo not initialized or spidersan unavailable β€” skip
417
- }
418
- }
419
- // ── STEP 3: TEND ─────────────────────────────────────────────────────────
420
- // Colony GC (non-critical β€” always continue on failure).
421
- try {
422
- spawnSync('envoak', ['colony', 'gc'], { encoding: 'utf-8', timeout: 10000 });
423
- }
424
- catch {
425
- /* ignore */
426
- }
427
- // Stale check per repo (informational β€” no --auto-cleanup yet).
428
- for (const repo of repos) {
429
- try {
430
- spawnSync('spidersan', ['stale'], {
431
- cwd: repo,
432
- encoding: 'utf-8',
433
- timeout: 10000,
434
- });
435
- }
436
- catch {
437
- /* ignore */
438
- }
439
- }
440
- // ── STEP 4: SURFACE ───────────────────────────────────────────────────────
441
- // Broadcast TIER 3 alerts (deduplicated). Clear resolved conflicts.
442
- const currentKeys = new Set(tier3Alerts.map((a) => `${a.repo}:${a.files.join(',')}`));
443
- for (const alert of tier3Alerts) {
444
- const key = `${alert.repo}:${alert.files.join(',')}`;
445
- if (!broadcastedConflicts.has(key)) {
446
- broadcastedConflicts.add(key);
447
- const repoName = path.basename(alert.repo);
448
- const filesStr = alert.files.length > 0 ? alert.files.join(', ') : 'multiple files';
449
- const message = `ssan TIER 3: conflict in ${repoName} β€” ${filesStr}. Halt writes on affected files.`;
450
- if (dryRun) {
451
- console.log(`[DRY-RUN] Would broadcast TIER 3 alert: ${message}`);
452
- }
453
- else {
454
- const r = spawnSync('envoak', ['colony', 'broadcast', '--type', 'alert', '--message', message], { encoding: 'utf-8', timeout: 10000 });
455
- if (r.status === 0) {
456
- console.log(`[TIER 3] Broadcast: ${message}`);
457
- }
458
- else {
459
- console.error(`[TIER 3] Broadcast failed: ${r.stderr ?? r.stdout}`);
460
- }
461
- }
462
- }
463
- }
464
- // Evict resolved conflicts from dedup set
465
- for (const key of broadcastedConflicts) {
466
- if (!currentKeys.has(key)) {
467
- broadcastedConflicts.delete(key);
468
- }
469
- }
470
- const allIdle = totalTier3 === 0 && totalTier2 === 0 && totalBranches === 0;
471
- // Emit treetop heartbeat (skipped in dry-run)
472
- const summary = `Watching ${repos.length} repos, ${totalBranches} active branches. ` +
473
- `T3:${totalTier3} T2:${totalTier2}. GC run. Stale checked.`;
474
- console.log(`[TICK] ${new Date().toISOString()} β€” ${summary}`);
475
- if (!dryRun) {
476
- spawnSync('envoak', ['colony', 'signal', '--status', 'idle', '--task', 'treetop watch', '--summary', summary], { encoding: 'utf-8', timeout: 10000 });
477
- }
478
- return { tier3: totalTier3, tier2: totalTier2, repoCount: repos.length, branchCount: totalBranches, allIdle };
479
- }
480
- function resolveRepos(reposOption) {
481
- if (reposOption) {
482
- return reposOption.split(',').map((r) => r.trim()).filter(Boolean);
483
- }
484
- const envRepos = process.env['SPIDERSAN_REPOS'];
485
- if (envRepos) {
486
- return envRepos.split(':').map((r) => r.trim()).filter(Boolean);
487
- }
488
- return DEFAULT_TREETOP_REPOS;
489
- }
490
- function adaptiveInterval(result, baseMs) {
491
- if (result.tier3 > 0)
492
- return 15_000; // Stay alert
493
- if (result.tier2 > 0)
494
- return 30_000; // Watch closely
495
- if (result.allIdle)
496
- return 300_000; // Colony quiet β€” back off
497
- return baseMs;
498
- }
499
- const watchTreetopCommand = new Command('treetop')
500
- .description('Mode 1: treetop observer β€” periodic multi-repo conflict scan + colony gradient sync')
501
- .option('--interval <seconds>', 'Base tick interval in seconds (default: 120)', '120')
502
- .option('--repos <paths>', 'Comma-separated repo paths (overrides ecosystem defaults)')
503
- .option('--dry-run', 'Run one tick and exit β€” no sleep, no colony writes')
504
- .action(async (options) => {
505
- const repos = resolveRepos(options.repos);
506
- const baseMs = parseInt(options.interval, 10) * 1000;
507
- const dryRun = options.dryRun ?? false;
508
- console.log(`
509
- πŸ•·οΈ SPIDERSAN TREETOP OBSERVER (Mode 1)
510
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
511
- Repos: ${repos.length} (${repos.map((r) => path.basename(r)).join(', ')})
512
- Interval: ${options.interval}s base (adaptive)
513
- Dry-run: ${dryRun}
514
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
515
- ${dryRun ? 'Running one tick then exiting.' : 'Press Ctrl+C to stop.'}
516
- `);
517
- const broadcastedConflicts = new Set();
518
- if (dryRun) {
519
- await runObserverTick(repos, true, broadcastedConflicts);
520
- console.log('[DRY-RUN] Tick complete. Exiting.');
521
- return;
522
- }
523
- // Graceful shutdown
524
- let running = true;
525
- process.on('SIGINT', () => { running = false; console.log('\nπŸ•·οΈ Treetop observer stopped.'); process.exit(0); });
526
- process.on('SIGTERM', () => { running = false; process.exit(0); });
527
- while (running) {
528
- const result = await runObserverTick(repos, false, broadcastedConflicts);
529
- const nextMs = adaptiveInterval(result, baseMs);
530
- console.log(`[SLEEP] Next tick in ${nextMs / 1000}s`);
531
- await new Promise((resolve) => setTimeout(resolve, nextMs));
532
- }
533
- });
534
- // Attach Mode 1 as a subcommand of watch
535
- watchCommand.addCommand(watchTreetopCommand);
536
- //# sourceMappingURL=watch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * spidersan welcome
3
- *
4
- * Friendly onboarding and quick start for core CLI.
5
- */
6
- import { Command } from 'commander';
7
- export declare const welcomeCommand: Command;
8
- //# sourceMappingURL=welcome.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/commands/welcome.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoFpC,eAAO,MAAM,cAAc,SAIrB,CAAC"}
@@ -1,85 +0,0 @@
1
- /**
2
- * spidersan welcome
3
- *
4
- * Friendly onboarding and quick start for core CLI.
5
- */
6
- import { Command } from 'commander';
7
- import { existsSync } from 'fs';
8
- import { join } from 'path';
9
- const colors = {
10
- reset: '\x1b[0m',
11
- bright: '\x1b[1m',
12
- dim: '\x1b[2m',
13
- yellow: '\x1b[33m',
14
- magenta: '\x1b[35m',
15
- cyan: '\x1b[36m',
16
- green: '\x1b[32m',
17
- };
18
- const c = colors;
19
- function sleep(ms) {
20
- return new Promise(resolve => setTimeout(resolve, ms));
21
- }
22
- async function runWelcome() {
23
- console.log(`
24
- ${c.bright}${c.magenta}πŸ•·οΈ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${c.reset}
25
- ${c.bright}${c.magenta} SPIDERSAN WELCOMES YOU TO THE WEB${c.reset}
26
- ${c.bright}${c.magenta}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${c.reset}
27
- `);
28
- await sleep(500);
29
- console.log(`${c.cyan} You are not alone in this codebase.${c.reset}`);
30
- await sleep(450);
31
- console.log(`${c.cyan} Other agents weave alongside you.${c.reset}`);
32
- await sleep(450);
33
- console.log(`${c.cyan} The web keeps you from colliding.${c.reset}`);
34
- await sleep(700);
35
- const initialized = existsSync(join(process.cwd(), '.spidersan', 'registry.json'));
36
- if (!initialized) {
37
- console.log(`
38
- ${c.yellow}πŸ•ΈοΈ FIRST TIME HERE?${c.reset}
39
- ${c.bright}Step 1:${c.reset} Initialize the web in your project
40
- ${c.green}$ spidersan init${c.reset}
41
- `);
42
- }
43
- else {
44
- console.log(`
45
- ${c.green}βœ“ Web initialized in this project${c.reset}
46
- `);
47
- }
48
- console.log(`${c.cyan}πŸ•ΈοΈ QUICK START:${c.reset}
49
-
50
- ${c.bright}Register your branch:${c.reset}
51
- ${c.green}$ spidersan register --files "src/myfile.ts" --agent myname${c.reset}
52
-
53
- ${c.bright}Check for conflicts:${c.reset}
54
- ${c.green}$ spidersan conflicts${c.reset}
55
-
56
- ${c.bright}When done:${c.reset}
57
- ${c.green}$ spidersan merged${c.reset}
58
- `);
59
- await sleep(600);
60
- console.log(`${c.bright}${c.cyan}βš™οΈ CONFIG SETUP${c.reset}
61
-
62
- ${c.dim}Set your default agent + storage in a guided wizard:${c.reset}
63
- ${c.green}$ spidersan config wizard${c.reset}
64
- `);
65
- await sleep(600);
66
- console.log(`${c.bright}${c.cyan}⚑ AUTO-WATCH${c.reset}
67
-
68
- ${c.dim}Start a background watcher from config paths:${c.reset}
69
- ${c.green}$ spidersan auto start${c.reset}
70
-
71
- ${c.dim}Or run a foreground watcher:${c.reset}
72
- ${c.green}$ spidersan watch --agent myname${c.reset}
73
- `);
74
- await sleep(600);
75
- console.log(`${c.magenta}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${c.reset}
76
- ${c.bright}${c.magenta} The web sees all. The web protects all.${c.reset}
77
- ${c.bright}${c.magenta}πŸ•·οΈ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${c.reset}
78
- `);
79
- }
80
- export const welcomeCommand = new Command('welcome')
81
- .description('πŸ•·οΈ Welcome ritual - start here if you are new')
82
- .action(async () => {
83
- await runWelcome();
84
- });
85
- //# sourceMappingURL=welcome.js.map