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,147 +0,0 @@
1
- /**
2
- * spidersan rescue
3
- *
4
- * Rescue Mission:
5
- * 1. Scan for untracked files (aliens)
6
- * 2. Scan for unregistered branches (ghosts)
7
- * 3. Triage & Salvage
8
- */
9
- import { Command } from 'commander';
10
- import { execFileSync } from 'child_process';
11
- import { getStorage } from '../storage/index.js';
12
- import { existsSync, mkdirSync, copyFileSync } from 'fs';
13
- import { join, basename } from 'path';
14
- import { validateRepoPath, validateBranchName } from '../lib/security.js';
15
- import { analyzeSalvage, formatSalvageReport } from '../lib/salvage-analyzer.js';
16
- export const rescueCommand = new Command('rescue')
17
- .description('šŸš‘ Rescue Mode - Scan for and salvage rogue work')
18
- .option('--scan', 'Scan for problems')
19
- .option('--salvage <file>', 'Salvage a specific file to ./salvage/')
20
- .option('--abandon <file>', 'Delete a rogue file')
21
- .option('--symbols <branch>', 'Analyse abandoned branch for salvageable symbols (Phase C3)')
22
- .option('--json', 'Output as JSON (use with --symbols for Rust bridge parsing)')
23
- .action(async (options) => {
24
- const storage = await getStorage();
25
- console.log('\nšŸš‘ SPIDERSAN RESCUE MISSION\n━━━━━━━━━━━━━━━━━━━━━━━━━━');
26
- // 1. Scan for Untracked Files
27
- let untracked = [];
28
- try {
29
- const output = execFileSync('git', ['status', '--porcelain'], { encoding: 'utf-8' });
30
- untracked = output.split('\n')
31
- .filter(line => line.startsWith('?? '))
32
- .map(line => line.substring(3));
33
- }
34
- catch {
35
- console.error('āŒ Failed to scan git status');
36
- }
37
- // 2. Scan for Unregistered Branches
38
- let ghosts = [];
39
- try {
40
- const localBranches = execFileSync('git', ['branch', '--format=%(refname:short)'], { encoding: 'utf-8' })
41
- .split('\n').filter(Boolean);
42
- const registered = await storage.list();
43
- const registeredNames = new Set(registered.map(b => b.name));
44
- ghosts = localBranches.filter(b => !registeredNames.has(b) && b !== 'main' && b !== 'master');
45
- }
46
- catch {
47
- console.error('āŒ Failed to scan branches');
48
- }
49
- if (options.scan) {
50
- console.log(`\nšŸ” SCAN RESULTS:`);
51
- if (untracked.length === 0 && ghosts.length === 0) {
52
- console.log(' āœ… Sector clear. No anomalies detected.');
53
- return;
54
- }
55
- if (untracked.length > 0) {
56
- console.log(`\nšŸ‘½ Untracked Files (${untracked.length}):`);
57
- untracked.forEach(f => console.log(` - ${f}`));
58
- }
59
- if (ghosts.length > 0) {
60
- console.log(`\nšŸ‘» Ghost Branches (${ghosts.length}):`);
61
- ghosts.forEach(b => console.log(` - ${b}`));
62
- }
63
- console.log('\nšŸ’” Actions:');
64
- console.log(' spidersan rescue --salvage <file>');
65
- console.log(' spidersan rescue --abandon <file>');
66
- return;
67
- }
68
- // Salvage Operation
69
- if (options.salvage) {
70
- // Security: Validate path is within repo to prevent arbitrary file read
71
- let target = options.salvage;
72
- try {
73
- target = validateRepoPath(target);
74
- }
75
- catch (err) {
76
- if (err instanceof Error) {
77
- console.error(`āŒ Security Error: ${err.message}`);
78
- }
79
- process.exit(1);
80
- }
81
- if (!untracked.includes(options.salvage) && existsSync(target)) {
82
- console.log(`āš ļø File '${options.salvage}' is tracked by git. Use git commands instead.`);
83
- }
84
- const salvageDir = 'salvage';
85
- if (!existsSync(salvageDir))
86
- mkdirSync(salvageDir);
87
- const dest = join(salvageDir, basename(target));
88
- copyFileSync(target, dest);
89
- console.log(`āœ… Salvaged '${basename(target)}' to '${dest}'`);
90
- return;
91
- }
92
- // Abandon Operation
93
- if (options.abandon) {
94
- let target = options.abandon;
95
- // Security: Validate path is within repo
96
- try {
97
- target = validateRepoPath(target);
98
- }
99
- catch (err) {
100
- if (err instanceof Error) {
101
- console.error(`āŒ Security Error: ${err.message}`);
102
- }
103
- process.exit(1);
104
- }
105
- // In a real CLI we'd ask for confirmation, for now just warn
106
- console.log(`āš ļø Deleting '${basename(target)}'... (Simulated)`);
107
- // rmSync(target); // Safety first for this demo
108
- console.log(`šŸ—‘ļø Abandoned '${basename(target)}'`);
109
- return;
110
- }
111
- // Symbol salvage analysis (Phase C3)
112
- if (options.symbols) {
113
- let branch;
114
- try {
115
- branch = validateBranchName(options.symbols);
116
- }
117
- catch (err) {
118
- console.error(`āŒ ${err.message}`);
119
- process.exit(1);
120
- }
121
- if (!options.json) {
122
- console.log(`\nšŸ”¬ Analysing salvageable symbols in "${branch}"...\n`);
123
- }
124
- try {
125
- const report = await analyzeSalvage(branch);
126
- if (options.json) {
127
- console.log(JSON.stringify(report, null, 2));
128
- }
129
- else {
130
- console.log(formatSalvageReport(report));
131
- }
132
- }
133
- catch (err) {
134
- if (options.json) {
135
- console.log(JSON.stringify({ error: err.message }));
136
- }
137
- else {
138
- console.error(`āŒ ${err.message}`);
139
- }
140
- process.exit(1);
141
- }
142
- return;
143
- }
144
- // Default: Run scan
145
- console.log('Use --scan to see anomalies.');
146
- });
147
- //# sourceMappingURL=rescue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rescue.js","sourceRoot":"","sources":["../../src/commands/rescue.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const semanticCommand: Command;
3
- //# sourceMappingURL=semantic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../../src/commands/semantic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,eAAe,SAwDtB,CAAC"}
@@ -1,62 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import path from 'path';
4
- export const semanticCommand = new Command('semantic')
5
- .description('šŸ•·ļø Semantic conflict detection via RLS Knowledge Graph')
6
- .option('-c, --check <file>', 'Check a specific file for semantic conflicts')
7
- .option('-q, --query <text>', 'Query the knowledge graph manually')
8
- .action(async (options) => {
9
- let AgentKnowledgeBase;
10
- try {
11
- const mappersan = await import('mappersan');
12
- AgentKnowledgeBase = mappersan.AgentKnowledgeBase;
13
- }
14
- catch (err) {
15
- console.error(chalk.red('\nāŒ The "semantic" command requires the @treebird/mappersan package.'));
16
- console.log(chalk.gray(' This package is currently part of the internal Treebird ecosystem.'));
17
- console.log(chalk.gray(' If you are an internal user, run: npm install ../mappersan\n'));
18
- process.exit(1);
19
- }
20
- const kb = new AgentKnowledgeBase({
21
- agentId: 'spidersan',
22
- supabaseUrl: process.env.SUPABASE_URL || '',
23
- supabaseKey: process.env.SUPABASE_SERVICE_KEY || '', // Needs service key for internal
24
- openaiKey: process.env.OPENAI_API_KEY
25
- });
26
- if (options.query) {
27
- console.log(chalk.gray(`Querying: "${options.query}"`));
28
- try {
29
- const result = await kb.query(options.query);
30
- console.log(chalk.bold('\nšŸ“ Context Found:'));
31
- console.log(result.context);
32
- if (result.graph.length > 0) {
33
- console.log(chalk.bold('\nšŸ•øļø Graph Connections:'));
34
- result.graph.forEach((node) => {
35
- console.log(` ${node.connected_to} --${node.relation_type}--> ${node.node_name} (${node.node_type})`);
36
- });
37
- }
38
- }
39
- catch (err) {
40
- console.error(chalk.red('Query failed:'), err.message);
41
- }
42
- }
43
- else if (options.check) {
44
- console.log(chalk.yellow(`Checking file: ${options.check}`));
45
- // MVP: Just query specifically for the file name in the graph
46
- // In future: read file content, extract entities, check graph intersection
47
- const fileName = path.basename(options.check);
48
- const result = await kb.query(`conflicts related to ${fileName} or file:${fileName}`);
49
- console.log(chalk.bold('\nāš ļø Potential Semantic Overlaps:'));
50
- // Heuristic display
51
- if (result.context.length > 50) {
52
- console.log(result.context);
53
- }
54
- else {
55
- console.log(chalk.green('No knowledge graph entries found for this file.'));
56
- }
57
- }
58
- else {
59
- console.log('Please provide --query or --check');
60
- }
61
- });
62
- //# sourceMappingURL=semantic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"semantic.js","sourceRoot":"","sources":["../../src/commands/semantic.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const sendCommand: Command;
3
- //# sourceMappingURL=send.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,eAAO,MAAM,WAAW,SAiGlB,CAAC"}
@@ -1,121 +0,0 @@
1
- import { Command } from 'commander';
2
- import { execSync } from 'child_process';
3
- import { getMessageStorage, parseTierOption } from '../storage/message-factory.js';
4
- // Security: Input validation
5
- const VALID_AGENT_ID = /^[a-z0-9][a-z0-9_-]{0,30}$/i;
6
- function validateAgentId(agentId) {
7
- if (!VALID_AGENT_ID.test(agentId)) {
8
- throw new Error(`Invalid agent ID: "${agentId.slice(0, 20)}..." (must be alphanumeric with - or _)`);
9
- }
10
- return agentId;
11
- }
12
- function getMessageFromStdin() {
13
- return new Promise((resolve, reject) => {
14
- const chunks = [];
15
- process.stdin.on('data', chunk => chunks.push(chunk));
16
- process.stdin.on('end', () => resolve(Buffer.concat(chunks).toString('utf-8').trim()));
17
- process.stdin.on('error', reject);
18
- });
19
- }
20
- function getCurrentBranch() {
21
- try {
22
- return execSync('git rev-parse --abbrev-ref HEAD', { encoding: 'utf-8' }).trim();
23
- }
24
- catch {
25
- return '';
26
- }
27
- }
28
- export const sendCommand = new Command('send')
29
- .description('Send a message to another agent (tiered fallback)')
30
- .argument('<to>', 'Recipient agent identifier')
31
- .argument('<subject>', 'Message subject')
32
- .option('-m, --message <text>', 'Message body (or reads from stdin)')
33
- .option('-t, --type <type>', 'Message type: info, question, alert, handoff, file_share', 'info')
34
- .option('-f, --from <agent>', 'Sender identifier (default: current agent)')
35
- .option('-b, --branch <name>', 'Related branch name')
36
- .option('--files <files>', 'Comma-separated list of related files')
37
- .option('--reply-to <id>', 'Message ID this is replying to')
38
- .option('--encrypt', 'Encrypt the message (Tier 1 only)')
39
- .option('--tier <n>', 'Force specific tier (1, 2, or 3)')
40
- .option('-v, --verbose', 'Show which tier is being used')
41
- .option('--json', 'Output as JSON')
42
- .action(async (to, subject, options) => {
43
- // 1. Validate recipient
44
- try {
45
- validateAgentId(to);
46
- }
47
- catch (error) {
48
- console.error(`āŒ ${error.message}`);
49
- process.exit(1);
50
- }
51
- // 2. Get message body
52
- let messageBody = options.message;
53
- if (!messageBody) {
54
- if (process.stdin.isTTY) {
55
- console.error('āŒ Message body is required (use -m or pipe stdin)');
56
- process.exit(1);
57
- }
58
- messageBody = await getMessageFromStdin();
59
- }
60
- if (!messageBody) {
61
- console.error('āŒ Message body empty');
62
- process.exit(1);
63
- }
64
- // 3. Prepare context
65
- const branch = options.branch || getCurrentBranch();
66
- const type = options.type || 'info';
67
- const files = options.files ? options.files.split(',') : [];
68
- const sender = options.from || process.env.SPIDERSAN_AGENT || 'cli-agent';
69
- // 4. Get message storage adapter
70
- const forceTier = parseTierOption(options.tier);
71
- try {
72
- const storage = await getMessageStorage({
73
- forceTier,
74
- agentId: sender,
75
- verbose: options.verbose,
76
- });
77
- // Warn if encryption requested but not on Tier 1
78
- if (options.encrypt && storage.getTier() !== 1) {
79
- console.error('āš ļø Encryption only supported on Tier 1 (mycmail). Message will be sent unencrypted.');
80
- }
81
- // 5. Send message
82
- const message = await storage.send({
83
- from: sender,
84
- to,
85
- subject,
86
- body: messageBody,
87
- type,
88
- encrypted: options.encrypt && storage.getTier() === 1,
89
- branch: branch || undefined,
90
- files: files.length > 0 ? files : undefined,
91
- });
92
- if (options.json) {
93
- console.log(JSON.stringify({
94
- status: 'sent',
95
- tier: storage.getTier(),
96
- tierName: storage.getTierName(),
97
- message: {
98
- id: message.id,
99
- to: message.to,
100
- subject: message.subject,
101
- encrypted: message.encrypted,
102
- timestamp: message.timestamp.toISOString(),
103
- },
104
- }, null, 2));
105
- }
106
- else {
107
- const tierInfo = options.verbose ? ` via ${storage.getTierName()}` : '';
108
- console.log(`āœ… Message sent to ${to}${tierInfo}`);
109
- if (options.verbose) {
110
- console.log(` ID: ${message.id}`);
111
- console.log(` Subject: ${subject}`);
112
- }
113
- }
114
- }
115
- catch (error) {
116
- console.error('āŒ Failed to send message');
117
- console.error(error.message || error);
118
- process.exit(1);
119
- }
120
- });
121
- //# sourceMappingURL=send.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGnF,6BAA6B;AAC7B,MAAM,cAAc,GAAG,6BAA6B,CAAC;AAErD,SAAS,eAAe,CAAC,OAAe;IACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,yCAAyC,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB;IACrB,IAAI,CAAC;QACD,OAAO,QAAQ,CAAC,iCAAiC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KACzC,WAAW,CAAC,mDAAmD,CAAC;KAChE,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;KAC9C,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;KACxC,MAAM,CAAC,sBAAsB,EAAE,oCAAoC,CAAC;KACpE,MAAM,CAAC,mBAAmB,EAAE,0DAA0D,EAAE,MAAM,CAAC;KAC/F,MAAM,CAAC,oBAAoB,EAAE,4CAA4C,CAAC;KAC1E,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;KACpD,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;KAClE,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,MAAM,CAAC,WAAW,EAAE,mCAAmC,CAAC;KACxD,MAAM,CAAC,YAAY,EAAE,kCAAkC,CAAC;KACxD,MAAM,CAAC,eAAe,EAAE,+BAA+B,CAAC;KACxD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IACnC,wBAAwB;IACxB,IAAI,CAAC;QACD,eAAe,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,sBAAsB;IACtB,IAAI,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAClC,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,WAAW,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;IACpD,MAAM,IAAI,GAAgB,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,WAAW,CAAC;IAE1E,iCAAiC;IACjC,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC;YACpC,SAAS;YACT,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,OAAO,CAAC,OAAO;SAC3B,CAAC,CAAC;QAEH,iDAAiD;QACjD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC1G,CAAC;QAED,kBAAkB;QAClB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE,MAAM;YACZ,EAAE;YACF,OAAO;YACP,IAAI,EAAE,WAAW;YACjB,IAAI;YACJ,SAAS,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;YACrD,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE;gBACvB,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE;gBAC/B,OAAO,EAAE;oBACL,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;iBAC7C;aACJ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;YAClD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * spidersan stale
3
- *
4
- * Show branches that haven't been updated recently.
5
- * With --notify flag: sends notifications to branch owners via .pending_task.md updates.
6
- */
7
- import { Command } from 'commander';
8
- /**
9
- * Update agent's .pending_task.md file
10
- * ⚔ Bolt: Batched updates to avoid N+1 file I/O
11
- */
12
- export declare function updatePendingTaskFile(agentId: string, branches: {
13
- name: string;
14
- daysOld: number;
15
- }[]): boolean;
16
- export declare const staleCommand: Command;
17
- //# sourceMappingURL=stale.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stale.d.ts","sourceRoot":"","sources":["../../src/commands/stale.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,OAAO,CAgD7G;AAED,eAAO,MAAM,YAAY,SAoFnB,CAAC"}
@@ -1,131 +0,0 @@
1
- /**
2
- * spidersan stale
3
- *
4
- * Show branches that haven't been updated recently.
5
- * With --notify flag: sends notifications to branch owners via .pending_task.md updates.
6
- */
7
- import { Command } from 'commander';
8
- import { getStorage } from '../storage/index.js';
9
- import { existsSync, readFileSync, appendFileSync } from 'fs';
10
- import { resolve } from 'path';
11
- import { validateAgentId, validateBranchName } from '../lib/security.js';
12
- /**
13
- * Update agent's .pending_task.md file
14
- * ⚔ Bolt: Batched updates to avoid N+1 file I/O
15
- */
16
- export function updatePendingTaskFile(agentId, branches) {
17
- if (branches.length === 0)
18
- return true;
19
- try {
20
- // Security: Validate inputs
21
- validateAgentId(agentId);
22
- for (const b of branches) {
23
- validateBranchName(b.name);
24
- }
25
- // Try common locations for .pending_task.md
26
- const possiblePaths = [
27
- resolve(process.cwd(), '.pending_task.md'),
28
- resolve(process.cwd(), `../${agentId}/.pending_task.md`),
29
- resolve(process.env.HOME || '~', `Dev/${agentId}/.pending_task.md`),
30
- resolve(process.env.HOME || '~', 'Dev/treebird-internal/.pending_task.md')
31
- ];
32
- let taskFilePath = null;
33
- for (const path of possiblePaths) {
34
- if (existsSync(path)) {
35
- taskFilePath = path;
36
- break;
37
- }
38
- }
39
- if (!taskFilePath) {
40
- return false;
41
- }
42
- const content = readFileSync(taskFilePath, 'utf-8');
43
- let newEntries = '';
44
- for (const b of branches) {
45
- // Check if entry already exists
46
- if (!content.includes(b.name)) {
47
- newEntries += `- [ ] šŸ•·ļø Stale branch: \`${b.name}\` (${b.daysOld}d inactive) - run \`spidersan cleanup\`\n`;
48
- }
49
- }
50
- if (newEntries.length > 0) {
51
- appendFileSync(taskFilePath, newEntries, 'utf-8');
52
- }
53
- return true;
54
- }
55
- catch {
56
- return false;
57
- }
58
- }
59
- export const staleCommand = new Command('stale')
60
- .description('Show stale branches (not updated recently)')
61
- .option('--days <n>', 'Days threshold for staleness', '7')
62
- .option('--notify', 'Send notifications to branch owners')
63
- .option('--auto-cleanup', 'Automatically remove stale branches after listing')
64
- .option('--json', 'Output as JSON')
65
- .action(async (options) => {
66
- const storage = await getStorage();
67
- if (!await storage.isInitialized()) {
68
- console.error('āŒ Spidersan not initialized. Run: spidersan init');
69
- process.exit(1);
70
- }
71
- const days = parseInt(options.days, 10);
72
- const threshold = new Date();
73
- threshold.setDate(threshold.getDate() - days);
74
- const branches = await storage.list();
75
- const stale = branches.filter(b => new Date(b.registeredAt) < threshold);
76
- // Group by agent if notifying
77
- const byAgent = new Map();
78
- if (options.notify) {
79
- for (const branch of stale) {
80
- const agent = branch.agent || 'unknown';
81
- if (!byAgent.has(agent)) {
82
- byAgent.set(agent, []);
83
- }
84
- byAgent.get(agent).push(branch);
85
- }
86
- }
87
- if (options.json) {
88
- console.log(JSON.stringify(stale, null, 2));
89
- return;
90
- }
91
- if (stale.length === 0) {
92
- console.log(`šŸ•·ļø No stale branches (older than ${days} days)`);
93
- return;
94
- }
95
- console.log(`šŸ•·ļø Stale Branches (>${days} days old):\n`);
96
- for (const branch of stale) {
97
- const age = Math.floor((Date.now() - new Date(branch.registeredAt).getTime()) / 86400000);
98
- const agentTag = branch.agent ? ` [@${branch.agent}]` : '';
99
- console.log(` āš ļø ${branch.name}${agentTag} (${age} days old)`);
100
- }
101
- // Send notifications if requested
102
- if (options.notify) {
103
- console.log(`\nšŸ“Ø Sending notifications...`);
104
- let fileSuccess = 0;
105
- for (const [agent, branches] of byAgent) {
106
- if (agent === 'unknown')
107
- continue;
108
- // ⚔ Bolt: Batch notification per agent to avoid N+1 slow calls
109
- const branchData = branches.map(branch => ({
110
- name: branch.name,
111
- daysOld: Math.floor((Date.now() - new Date(branch.registeredAt).getTime()) / 86400000)
112
- }));
113
- // Try .pending_task.md update
114
- if (updatePendingTaskFile(agent, branchData)) {
115
- fileSuccess += branches.length;
116
- }
117
- }
118
- console.log(`āœ… Notifications sent:`);
119
- console.log(` - File updates: ${fileSuccess}/${stale.length}`);
120
- }
121
- if (options.autoCleanup) {
122
- console.log(`\nšŸ—‘ļø Auto-cleaning ${stale.length} stale branch(es)...`);
123
- const removedNames = await storage.cleanup(threshold);
124
- removedNames.forEach(name => console.log(` Removed: ${name}`));
125
- console.log(`āœ… Cleaned up ${removedNames.length} branch(es).`);
126
- }
127
- else {
128
- console.log(`\nRun 'spidersan cleanup' to remove these.`);
129
- }
130
- });
131
- //# sourceMappingURL=stale.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stale.js","sourceRoot":"","sources":["../../src/commands/stale.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * License Status Command
3
- *
4
- * Shows current license status and plan details.
5
- * Usage: spidersan status
6
- */
7
- import { Command } from 'commander';
8
- export declare const statusCommand: Command;
9
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,aAAa,SAgCpB,CAAC"}
@@ -1,41 +0,0 @@
1
- /**
2
- * License Status Command
3
- *
4
- * Shows current license status and plan details.
5
- * Usage: spidersan status
6
- */
7
- import { Command } from 'commander';
8
- import { getLicenseStatus, FREE_TIER_LIMITS } from '../lib/license.js';
9
- import { getStorage } from '../storage/index.js';
10
- export const statusCommand = new Command('status')
11
- .description('Show license status and plan details')
12
- .action(async () => {
13
- const status = getLicenseStatus();
14
- const storage = await getStorage();
15
- let branchCount = 0;
16
- if (await storage.isInitialized()) {
17
- const branches = await storage.list();
18
- branchCount = branches.filter(b => b.status === 'active').length;
19
- }
20
- console.log('šŸ•·ļø Spidersan Status\n');
21
- if (status.plan === 'pro') {
22
- console.log(` Plan: šŸ’Ž Pro`);
23
- console.log(` Email: ${status.email}`);
24
- console.log(` Expires: ${new Date(status.expiresAt).toLocaleDateString()} (${status.daysRemaining} days)`);
25
- console.log(` Features: ${status.features.join(', ')}`);
26
- console.log(` Branches: ${branchCount} active (unlimited)`);
27
- }
28
- else {
29
- console.log(` Plan: Free`);
30
- console.log(` Branches: ${branchCount}/${FREE_TIER_LIMITS.maxConcurrentBranches} active`);
31
- console.log('');
32
- console.log(' šŸ’Ž Upgrade to Pro for:');
33
- console.log(' • Unlimited branches');
34
- console.log(' • MCP Server integration');
35
- console.log(' • Conflict prediction');
36
- console.log(' • Priority support');
37
- console.log('');
38
- console.log(' Get Pro: spidersan.dev/pro');
39
- }
40
- });
41
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC7C,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAC;IAEnC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,MAAM,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IACrE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAU,CAAC,CAAC,kBAAkB,EAAE,KAAK,MAAM,CAAC,aAAa,QAAQ,CAAC,CAAC;QAChH,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,qBAAqB,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,IAAI,gBAAgB,CAAC,qBAAqB,SAAS,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IACjD,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * spidersan sync-advisor
3
- *
4
- * Scan all repos and recommend push/pull/cleanup actions.
5
- *
6
- * Usage:
7
- * spidersan sync-advisor
8
- * spidersan sync-advisor --dir ~/Dev
9
- * spidersan sync-advisor --repo /path/to/repo
10
- * spidersan sync-advisor --json
11
- */
12
- import { Command } from 'commander';
13
- export declare function syncAdvisorCommand(): Command;
14
- //# sourceMappingURL=sync-advisor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-advisor.d.ts","sourceRoot":"","sources":["../../src/commands/sync-advisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuEpC,wBAAgB,kBAAkB,IAAI,OAAO,CAqC5C"}