spidersan 0.9.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. package/CHANGELOG.md +187 -0
  2. package/README.md +39 -280
  3. package/package.json +9 -13
  4. package/dist/bin/spidersan.d.ts +0 -9
  5. package/dist/bin/spidersan.d.ts.map +0 -1
  6. package/dist/bin/spidersan.js +0 -117
  7. package/dist/bin/spidersan.js.map +0 -1
  8. package/dist/commands/abandon.d.ts +0 -8
  9. package/dist/commands/abandon.d.ts.map +0 -1
  10. package/dist/commands/abandon.js +0 -43
  11. package/dist/commands/abandon.js.map +0 -1
  12. package/dist/commands/activate.d.ts +0 -9
  13. package/dist/commands/activate.d.ts.map +0 -1
  14. package/dist/commands/activate.js +0 -45
  15. package/dist/commands/activate.js.map +0 -1
  16. package/dist/commands/active-windows.d.ts +0 -16
  17. package/dist/commands/active-windows.d.ts.map +0 -1
  18. package/dist/commands/active-windows.js +0 -373
  19. package/dist/commands/active-windows.js.map +0 -1
  20. package/dist/commands/ai.d.ts +0 -15
  21. package/dist/commands/ai.d.ts.map +0 -1
  22. package/dist/commands/ai.js +0 -498
  23. package/dist/commands/ai.js.map +0 -1
  24. package/dist/commands/audit-mark.d.ts +0 -12
  25. package/dist/commands/audit-mark.d.ts.map +0 -1
  26. package/dist/commands/audit-mark.js +0 -204
  27. package/dist/commands/audit-mark.js.map +0 -1
  28. package/dist/commands/auto.d.ts +0 -8
  29. package/dist/commands/auto.d.ts.map +0 -1
  30. package/dist/commands/auto.js +0 -207
  31. package/dist/commands/auto.js.map +0 -1
  32. package/dist/commands/bot.d.ts +0 -16
  33. package/dist/commands/bot.d.ts.map +0 -1
  34. package/dist/commands/bot.js +0 -398
  35. package/dist/commands/bot.js.map +0 -1
  36. package/dist/commands/cleanup.d.ts +0 -8
  37. package/dist/commands/cleanup.d.ts.map +0 -1
  38. package/dist/commands/cleanup.js +0 -36
  39. package/dist/commands/cleanup.js.map +0 -1
  40. package/dist/commands/close.d.ts +0 -9
  41. package/dist/commands/close.d.ts.map +0 -1
  42. package/dist/commands/close.js +0 -129
  43. package/dist/commands/close.js.map +0 -1
  44. package/dist/commands/collab-sync.d.ts +0 -14
  45. package/dist/commands/collab-sync.d.ts.map +0 -1
  46. package/dist/commands/collab-sync.js +0 -264
  47. package/dist/commands/collab-sync.js.map +0 -1
  48. package/dist/commands/collab.d.ts +0 -6
  49. package/dist/commands/collab.d.ts.map +0 -1
  50. package/dist/commands/collab.js +0 -103
  51. package/dist/commands/collab.js.map +0 -1
  52. package/dist/commands/completions.d.ts +0 -8
  53. package/dist/commands/completions.d.ts.map +0 -1
  54. package/dist/commands/completions.js +0 -83
  55. package/dist/commands/completions.js.map +0 -1
  56. package/dist/commands/config.d.ts +0 -15
  57. package/dist/commands/config.d.ts.map +0 -1
  58. package/dist/commands/config.js +0 -337
  59. package/dist/commands/config.js.map +0 -1
  60. package/dist/commands/conflicts.d.ts +0 -12
  61. package/dist/commands/conflicts.d.ts.map +0 -1
  62. package/dist/commands/conflicts.js +0 -581
  63. package/dist/commands/conflicts.js.map +0 -1
  64. package/dist/commands/context.d.ts +0 -8
  65. package/dist/commands/context.d.ts.map +0 -1
  66. package/dist/commands/context.js +0 -104
  67. package/dist/commands/context.js.map +0 -1
  68. package/dist/commands/cross-conflicts.d.ts +0 -17
  69. package/dist/commands/cross-conflicts.d.ts.map +0 -1
  70. package/dist/commands/cross-conflicts.js +0 -268
  71. package/dist/commands/cross-conflicts.js.map +0 -1
  72. package/dist/commands/daily.d.ts +0 -7
  73. package/dist/commands/daily.d.ts.map +0 -1
  74. package/dist/commands/daily.js +0 -171
  75. package/dist/commands/daily.js.map +0 -1
  76. package/dist/commands/dashboard.d.ts +0 -22
  77. package/dist/commands/dashboard.d.ts.map +0 -1
  78. package/dist/commands/dashboard.js +0 -401
  79. package/dist/commands/dashboard.js.map +0 -1
  80. package/dist/commands/demo.d.ts +0 -3
  81. package/dist/commands/demo.d.ts.map +0 -1
  82. package/dist/commands/demo.js +0 -118
  83. package/dist/commands/demo.js.map +0 -1
  84. package/dist/commands/depends.d.ts +0 -8
  85. package/dist/commands/depends.d.ts.map +0 -1
  86. package/dist/commands/depends.js +0 -36
  87. package/dist/commands/depends.js.map +0 -1
  88. package/dist/commands/doctor.d.ts +0 -30
  89. package/dist/commands/doctor.d.ts.map +0 -1
  90. package/dist/commands/doctor.js +0 -540
  91. package/dist/commands/doctor.js.map +0 -1
  92. package/dist/commands/ecosystem-loader.d.ts +0 -14
  93. package/dist/commands/ecosystem-loader.d.ts.map +0 -1
  94. package/dist/commands/ecosystem-loader.js +0 -90
  95. package/dist/commands/ecosystem-loader.js.map +0 -1
  96. package/dist/commands/fleet-status.d.ts +0 -14
  97. package/dist/commands/fleet-status.d.ts.map +0 -1
  98. package/dist/commands/fleet-status.js +0 -127
  99. package/dist/commands/fleet-status.js.map +0 -1
  100. package/dist/commands/git-watch.d.ts +0 -24
  101. package/dist/commands/git-watch.d.ts.map +0 -1
  102. package/dist/commands/git-watch.js +0 -84
  103. package/dist/commands/git-watch.js.map +0 -1
  104. package/dist/commands/github-sync.d.ts +0 -9
  105. package/dist/commands/github-sync.d.ts.map +0 -1
  106. package/dist/commands/github-sync.js +0 -180
  107. package/dist/commands/github-sync.js.map +0 -1
  108. package/dist/commands/inbox.d.ts +0 -3
  109. package/dist/commands/inbox.d.ts.map +0 -1
  110. package/dist/commands/inbox.js +0 -120
  111. package/dist/commands/inbox.js.map +0 -1
  112. package/dist/commands/index.d.ts +0 -36
  113. package/dist/commands/index.d.ts.map +0 -1
  114. package/dist/commands/index.js +0 -44
  115. package/dist/commands/index.js.map +0 -1
  116. package/dist/commands/init.d.ts +0 -8
  117. package/dist/commands/init.d.ts.map +0 -1
  118. package/dist/commands/init.js +0 -23
  119. package/dist/commands/init.js.map +0 -1
  120. package/dist/commands/intent-scan.d.ts +0 -17
  121. package/dist/commands/intent-scan.d.ts.map +0 -1
  122. package/dist/commands/intent-scan.js +0 -336
  123. package/dist/commands/intent-scan.js.map +0 -1
  124. package/dist/commands/key-import.d.ts +0 -3
  125. package/dist/commands/key-import.d.ts.map +0 -1
  126. package/dist/commands/key-import.js +0 -54
  127. package/dist/commands/key-import.js.map +0 -1
  128. package/dist/commands/keygen.d.ts +0 -3
  129. package/dist/commands/keygen.d.ts.map +0 -1
  130. package/dist/commands/keygen.js +0 -53
  131. package/dist/commands/keygen.js.map +0 -1
  132. package/dist/commands/keys.d.ts +0 -3
  133. package/dist/commands/keys.d.ts.map +0 -1
  134. package/dist/commands/keys.js +0 -56
  135. package/dist/commands/keys.js.map +0 -1
  136. package/dist/commands/list.d.ts +0 -3
  137. package/dist/commands/list.d.ts.map +0 -1
  138. package/dist/commands/list.js +0 -45
  139. package/dist/commands/list.js.map +0 -1
  140. package/dist/commands/lock.d.ts +0 -11
  141. package/dist/commands/lock.d.ts.map +0 -1
  142. package/dist/commands/lock.js +0 -257
  143. package/dist/commands/lock.js.map +0 -1
  144. package/dist/commands/log.d.ts +0 -7
  145. package/dist/commands/log.d.ts.map +0 -1
  146. package/dist/commands/log.js +0 -110
  147. package/dist/commands/log.js.map +0 -1
  148. package/dist/commands/mcp-health.d.ts +0 -3
  149. package/dist/commands/mcp-health.d.ts.map +0 -1
  150. package/dist/commands/mcp-health.js +0 -305
  151. package/dist/commands/mcp-health.js.map +0 -1
  152. package/dist/commands/mcp-restart.d.ts +0 -3
  153. package/dist/commands/mcp-restart.d.ts.map +0 -1
  154. package/dist/commands/mcp-restart.js +0 -176
  155. package/dist/commands/mcp-restart.js.map +0 -1
  156. package/dist/commands/merge-order.d.ts +0 -9
  157. package/dist/commands/merge-order.d.ts.map +0 -1
  158. package/dist/commands/merge-order.js +0 -96
  159. package/dist/commands/merge-order.js.map +0 -1
  160. package/dist/commands/merged.d.ts +0 -8
  161. package/dist/commands/merged.d.ts.map +0 -1
  162. package/dist/commands/merged.js +0 -33
  163. package/dist/commands/merged.js.map +0 -1
  164. package/dist/commands/monitor.d.ts +0 -3
  165. package/dist/commands/monitor.d.ts.map +0 -1
  166. package/dist/commands/monitor.js +0 -153
  167. package/dist/commands/monitor.js.map +0 -1
  168. package/dist/commands/msg-read.d.ts +0 -3
  169. package/dist/commands/msg-read.d.ts.map +0 -1
  170. package/dist/commands/msg-read.js +0 -95
  171. package/dist/commands/msg-read.js.map +0 -1
  172. package/dist/commands/pulse.d.ts +0 -13
  173. package/dist/commands/pulse.d.ts.map +0 -1
  174. package/dist/commands/pulse.js +0 -245
  175. package/dist/commands/pulse.js.map +0 -1
  176. package/dist/commands/queen.d.ts +0 -25
  177. package/dist/commands/queen.d.ts.map +0 -1
  178. package/dist/commands/queen.js +0 -326
  179. package/dist/commands/queen.js.map +0 -1
  180. package/dist/commands/radar.d.ts +0 -3
  181. package/dist/commands/radar.d.ts.map +0 -1
  182. package/dist/commands/radar.js +0 -147
  183. package/dist/commands/radar.js.map +0 -1
  184. package/dist/commands/ready-check.d.ts +0 -11
  185. package/dist/commands/ready-check.d.ts.map +0 -1
  186. package/dist/commands/ready-check.js +0 -147
  187. package/dist/commands/ready-check.js.map +0 -1
  188. package/dist/commands/rebase-helper.d.ts +0 -3
  189. package/dist/commands/rebase-helper.d.ts.map +0 -1
  190. package/dist/commands/rebase-helper.js +0 -52
  191. package/dist/commands/rebase-helper.js.map +0 -1
  192. package/dist/commands/register.d.ts +0 -5
  193. package/dist/commands/register.d.ts.map +0 -1
  194. package/dist/commands/register.js +0 -156
  195. package/dist/commands/register.js.map +0 -1
  196. package/dist/commands/registry-sync.d.ts +0 -9
  197. package/dist/commands/registry-sync.d.ts.map +0 -1
  198. package/dist/commands/registry-sync.js +0 -163
  199. package/dist/commands/registry-sync.js.map +0 -1
  200. package/dist/commands/rescue.d.ts +0 -11
  201. package/dist/commands/rescue.d.ts.map +0 -1
  202. package/dist/commands/rescue.js +0 -147
  203. package/dist/commands/rescue.js.map +0 -1
  204. package/dist/commands/semantic.d.ts +0 -3
  205. package/dist/commands/semantic.d.ts.map +0 -1
  206. package/dist/commands/semantic.js +0 -62
  207. package/dist/commands/semantic.js.map +0 -1
  208. package/dist/commands/send.d.ts +0 -3
  209. package/dist/commands/send.d.ts.map +0 -1
  210. package/dist/commands/send.js +0 -121
  211. package/dist/commands/send.js.map +0 -1
  212. package/dist/commands/stale.d.ts +0 -17
  213. package/dist/commands/stale.d.ts.map +0 -1
  214. package/dist/commands/stale.js +0 -131
  215. package/dist/commands/stale.js.map +0 -1
  216. package/dist/commands/status.d.ts +0 -9
  217. package/dist/commands/status.d.ts.map +0 -1
  218. package/dist/commands/status.js +0 -41
  219. package/dist/commands/status.js.map +0 -1
  220. package/dist/commands/sync-advisor.d.ts +0 -14
  221. package/dist/commands/sync-advisor.d.ts.map +0 -1
  222. package/dist/commands/sync-advisor.js +0 -110
  223. package/dist/commands/sync-advisor.js.map +0 -1
  224. package/dist/commands/sync.d.ts +0 -8
  225. package/dist/commands/sync.d.ts.map +0 -1
  226. package/dist/commands/sync.js +0 -60
  227. package/dist/commands/sync.js.map +0 -1
  228. package/dist/commands/tension.d.ts +0 -12
  229. package/dist/commands/tension.d.ts.map +0 -1
  230. package/dist/commands/tension.js +0 -262
  231. package/dist/commands/tension.js.map +0 -1
  232. package/dist/commands/torrent.d.ts +0 -9
  233. package/dist/commands/torrent.d.ts.map +0 -1
  234. package/dist/commands/torrent.js +0 -470
  235. package/dist/commands/torrent.js.map +0 -1
  236. package/dist/commands/tui.d.ts +0 -8
  237. package/dist/commands/tui.d.ts.map +0 -1
  238. package/dist/commands/tui.js +0 -15
  239. package/dist/commands/tui.js.map +0 -1
  240. package/dist/commands/wake.d.ts +0 -9
  241. package/dist/commands/wake.d.ts.map +0 -1
  242. package/dist/commands/wake.js +0 -188
  243. package/dist/commands/wake.js.map +0 -1
  244. package/dist/commands/watch.d.ts +0 -3
  245. package/dist/commands/watch.d.ts.map +0 -1
  246. package/dist/commands/watch.js +0 -428
  247. package/dist/commands/watch.js.map +0 -1
  248. package/dist/commands/welcome.d.ts +0 -8
  249. package/dist/commands/welcome.d.ts.map +0 -1
  250. package/dist/commands/welcome.js +0 -85
  251. package/dist/commands/welcome.js.map +0 -1
  252. package/dist/commands/who-owns.d.ts +0 -3
  253. package/dist/commands/who-owns.d.ts.map +0 -1
  254. package/dist/commands/who-owns.js +0 -68
  255. package/dist/commands/who-owns.js.map +0 -1
  256. package/dist/commands/who-touched.d.ts +0 -9
  257. package/dist/commands/who-touched.d.ts.map +0 -1
  258. package/dist/commands/who-touched.js +0 -198
  259. package/dist/commands/who-touched.js.map +0 -1
  260. package/dist/index.d.ts +0 -11
  261. package/dist/index.d.ts.map +0 -1
  262. package/dist/index.js +0 -11
  263. package/dist/index.js.map +0 -1
  264. package/dist/lib/activity.d.ts +0 -53
  265. package/dist/lib/activity.d.ts.map +0 -1
  266. package/dist/lib/activity.js +0 -267
  267. package/dist/lib/activity.js.map +0 -1
  268. package/dist/lib/agent-errors.d.ts +0 -41
  269. package/dist/lib/agent-errors.d.ts.map +0 -1
  270. package/dist/lib/agent-errors.js +0 -145
  271. package/dist/lib/agent-errors.js.map +0 -1
  272. package/dist/lib/ai/context-builder.d.ts +0 -16
  273. package/dist/lib/ai/context-builder.d.ts.map +0 -1
  274. package/dist/lib/ai/context-builder.js +0 -216
  275. package/dist/lib/ai/context-builder.js.map +0 -1
  276. package/dist/lib/ai/event-handler.d.ts +0 -21
  277. package/dist/lib/ai/event-handler.d.ts.map +0 -1
  278. package/dist/lib/ai/event-handler.js +0 -98
  279. package/dist/lib/ai/event-handler.js.map +0 -1
  280. package/dist/lib/ai/index.d.ts +0 -13
  281. package/dist/lib/ai/index.d.ts.map +0 -1
  282. package/dist/lib/ai/index.js +0 -11
  283. package/dist/lib/ai/index.js.map +0 -1
  284. package/dist/lib/ai/llm-client.d.ts +0 -37
  285. package/dist/lib/ai/llm-client.d.ts.map +0 -1
  286. package/dist/lib/ai/llm-client.js +0 -225
  287. package/dist/lib/ai/llm-client.js.map +0 -1
  288. package/dist/lib/ai/reasoner.d.ts +0 -11
  289. package/dist/lib/ai/reasoner.d.ts.map +0 -1
  290. package/dist/lib/ai/reasoner.js +0 -246
  291. package/dist/lib/ai/reasoner.js.map +0 -1
  292. package/dist/lib/ai/setup.d.ts +0 -40
  293. package/dist/lib/ai/setup.d.ts.map +0 -1
  294. package/dist/lib/ai/setup.js +0 -154
  295. package/dist/lib/ai/setup.js.map +0 -1
  296. package/dist/lib/ai/types.d.ts +0 -135
  297. package/dist/lib/ai/types.d.ts.map +0 -1
  298. package/dist/lib/ai/types.js +0 -39
  299. package/dist/lib/ai/types.js.map +0 -1
  300. package/dist/lib/ast.d.ts +0 -36
  301. package/dist/lib/ast.d.ts.map +0 -1
  302. package/dist/lib/ast.js +0 -135
  303. package/dist/lib/ast.js.map +0 -1
  304. package/dist/lib/colony-subscriber.d.ts +0 -56
  305. package/dist/lib/colony-subscriber.d.ts.map +0 -1
  306. package/dist/lib/colony-subscriber.js +0 -265
  307. package/dist/lib/colony-subscriber.js.map +0 -1
  308. package/dist/lib/config.d.ts +0 -62
  309. package/dist/lib/config.d.ts.map +0 -1
  310. package/dist/lib/config.js +0 -230
  311. package/dist/lib/config.js.map +0 -1
  312. package/dist/lib/conflict-analyzer.d.ts +0 -33
  313. package/dist/lib/conflict-analyzer.d.ts.map +0 -1
  314. package/dist/lib/conflict-analyzer.js +0 -114
  315. package/dist/lib/conflict-analyzer.js.map +0 -1
  316. package/dist/lib/conflict-renderer.d.ts +0 -7
  317. package/dist/lib/conflict-renderer.d.ts.map +0 -1
  318. package/dist/lib/conflict-renderer.js +0 -162
  319. package/dist/lib/conflict-renderer.js.map +0 -1
  320. package/dist/lib/conflict-tier.d.ts +0 -20
  321. package/dist/lib/conflict-tier.d.ts.map +0 -1
  322. package/dist/lib/conflict-tier.js +0 -49
  323. package/dist/lib/conflict-tier.js.map +0 -1
  324. package/dist/lib/crdt.d.ts +0 -83
  325. package/dist/lib/crdt.d.ts.map +0 -1
  326. package/dist/lib/crdt.js +0 -160
  327. package/dist/lib/crdt.js.map +0 -1
  328. package/dist/lib/crypto.d.ts +0 -71
  329. package/dist/lib/crypto.d.ts.map +0 -1
  330. package/dist/lib/crypto.js +0 -176
  331. package/dist/lib/crypto.js.map +0 -1
  332. package/dist/lib/daily-bridge.d.ts +0 -41
  333. package/dist/lib/daily-bridge.d.ts.map +0 -1
  334. package/dist/lib/daily-bridge.js +0 -186
  335. package/dist/lib/daily-bridge.js.map +0 -1
  336. package/dist/lib/errors.d.ts +0 -35
  337. package/dist/lib/errors.d.ts.map +0 -1
  338. package/dist/lib/errors.js +0 -71
  339. package/dist/lib/errors.js.map +0 -1
  340. package/dist/lib/git-events-subscriber.d.ts +0 -59
  341. package/dist/lib/git-events-subscriber.d.ts.map +0 -1
  342. package/dist/lib/git-events-subscriber.js +0 -779
  343. package/dist/lib/git-events-subscriber.js.map +0 -1
  344. package/dist/lib/git.d.ts +0 -15
  345. package/dist/lib/git.d.ts.map +0 -1
  346. package/dist/lib/git.js +0 -180
  347. package/dist/lib/git.js.map +0 -1
  348. package/dist/lib/github.d.ts +0 -83
  349. package/dist/lib/github.d.ts.map +0 -1
  350. package/dist/lib/github.js +0 -211
  351. package/dist/lib/github.js.map +0 -1
  352. package/dist/lib/graph.d.ts +0 -23
  353. package/dist/lib/graph.d.ts.map +0 -1
  354. package/dist/lib/graph.js +0 -134
  355. package/dist/lib/graph.js.map +0 -1
  356. package/dist/lib/hub.d.ts +0 -31
  357. package/dist/lib/hub.d.ts.map +0 -1
  358. package/dist/lib/hub.js +0 -92
  359. package/dist/lib/hub.js.map +0 -1
  360. package/dist/lib/license.d.ts +0 -61
  361. package/dist/lib/license.d.ts.map +0 -1
  362. package/dist/lib/license.js +0 -171
  363. package/dist/lib/license.js.map +0 -1
  364. package/dist/lib/regex-utils.d.ts +0 -6
  365. package/dist/lib/regex-utils.d.ts.map +0 -1
  366. package/dist/lib/regex-utils.js +0 -24
  367. package/dist/lib/regex-utils.js.map +0 -1
  368. package/dist/lib/remote-drift.d.ts +0 -60
  369. package/dist/lib/remote-drift.d.ts.map +0 -1
  370. package/dist/lib/remote-drift.js +0 -225
  371. package/dist/lib/remote-drift.js.map +0 -1
  372. package/dist/lib/repo-scanner.d.ts +0 -32
  373. package/dist/lib/repo-scanner.d.ts.map +0 -1
  374. package/dist/lib/repo-scanner.js +0 -160
  375. package/dist/lib/repo-scanner.js.map +0 -1
  376. package/dist/lib/salvage-analyzer.d.ts +0 -29
  377. package/dist/lib/salvage-analyzer.d.ts.map +0 -1
  378. package/dist/lib/salvage-analyzer.js +0 -121
  379. package/dist/lib/salvage-analyzer.js.map +0 -1
  380. package/dist/lib/security.d.ts +0 -77
  381. package/dist/lib/security.d.ts.map +0 -1
  382. package/dist/lib/security.js +0 -190
  383. package/dist/lib/security.js.map +0 -1
  384. package/dist/lib/session-logger.d.ts +0 -54
  385. package/dist/lib/session-logger.d.ts.map +0 -1
  386. package/dist/lib/session-logger.js +0 -136
  387. package/dist/lib/session-logger.js.map +0 -1
  388. package/dist/lib/symbol-extractor.d.ts +0 -41
  389. package/dist/lib/symbol-extractor.d.ts.map +0 -1
  390. package/dist/lib/symbol-extractor.js +0 -78
  391. package/dist/lib/symbol-extractor.js.map +0 -1
  392. package/dist/lib/update-check.d.ts +0 -11
  393. package/dist/lib/update-check.d.ts.map +0 -1
  394. package/dist/lib/update-check.js +0 -113
  395. package/dist/lib/update-check.js.map +0 -1
  396. package/dist/storage/adapter.d.ts +0 -62
  397. package/dist/storage/adapter.d.ts.map +0 -1
  398. package/dist/storage/adapter.js +0 -8
  399. package/dist/storage/adapter.js.map +0 -1
  400. package/dist/storage/branch-registry-store.d.ts +0 -13
  401. package/dist/storage/branch-registry-store.d.ts.map +0 -1
  402. package/dist/storage/branch-registry-store.js +0 -2
  403. package/dist/storage/branch-registry-store.js.map +0 -1
  404. package/dist/storage/factory.d.ts +0 -10
  405. package/dist/storage/factory.d.ts.map +0 -1
  406. package/dist/storage/factory.js +0 -38
  407. package/dist/storage/factory.js.map +0 -1
  408. package/dist/storage/git-messages.d.ts +0 -53
  409. package/dist/storage/git-messages.d.ts.map +0 -1
  410. package/dist/storage/git-messages.js +0 -376
  411. package/dist/storage/git-messages.js.map +0 -1
  412. package/dist/storage/index.d.ts +0 -10
  413. package/dist/storage/index.d.ts.map +0 -1
  414. package/dist/storage/index.js +0 -11
  415. package/dist/storage/index.js.map +0 -1
  416. package/dist/storage/json-branch-registry-store.d.ts +0 -19
  417. package/dist/storage/json-branch-registry-store.d.ts.map +0 -1
  418. package/dist/storage/json-branch-registry-store.js +0 -112
  419. package/dist/storage/json-branch-registry-store.js.map +0 -1
  420. package/dist/storage/local-messages.d.ts +0 -37
  421. package/dist/storage/local-messages.d.ts.map +0 -1
  422. package/dist/storage/local-messages.js +0 -151
  423. package/dist/storage/local-messages.js.map +0 -1
  424. package/dist/storage/local.d.ts +0 -20
  425. package/dist/storage/local.d.ts.map +0 -1
  426. package/dist/storage/local.js +0 -40
  427. package/dist/storage/local.js.map +0 -1
  428. package/dist/storage/memory-branch-registry-store.d.ts +0 -16
  429. package/dist/storage/memory-branch-registry-store.d.ts.map +0 -1
  430. package/dist/storage/memory-branch-registry-store.js +0 -65
  431. package/dist/storage/memory-branch-registry-store.js.map +0 -1
  432. package/dist/storage/message-adapter.d.ts +0 -86
  433. package/dist/storage/message-adapter.d.ts.map +0 -1
  434. package/dist/storage/message-adapter.js +0 -28
  435. package/dist/storage/message-adapter.js.map +0 -1
  436. package/dist/storage/message-factory.d.ts +0 -36
  437. package/dist/storage/message-factory.d.ts.map +0 -1
  438. package/dist/storage/message-factory.js +0 -99
  439. package/dist/storage/message-factory.js.map +0 -1
  440. package/dist/storage/mycmail-adapter.d.ts +0 -38
  441. package/dist/storage/mycmail-adapter.d.ts.map +0 -1
  442. package/dist/storage/mycmail-adapter.js +0 -300
  443. package/dist/storage/mycmail-adapter.js.map +0 -1
  444. package/dist/storage/supabase-registry-sync-client-impl.d.ts +0 -46
  445. package/dist/storage/supabase-registry-sync-client-impl.d.ts.map +0 -1
  446. package/dist/storage/supabase-registry-sync-client-impl.js +0 -322
  447. package/dist/storage/supabase-registry-sync-client-impl.js.map +0 -1
  448. package/dist/storage/supabase-registry-sync-client.d.ts +0 -9
  449. package/dist/storage/supabase-registry-sync-client.d.ts.map +0 -1
  450. package/dist/storage/supabase-registry-sync-client.js +0 -2
  451. package/dist/storage/supabase-registry-sync-client.js.map +0 -1
  452. package/dist/storage/supabase.d.ts +0 -34
  453. package/dist/storage/supabase.d.ts.map +0 -1
  454. package/dist/storage/supabase.js +0 -74
  455. package/dist/storage/supabase.js.map +0 -1
  456. package/dist/tui/dashboard.d.ts +0 -35
  457. package/dist/tui/dashboard.d.ts.map +0 -1
  458. package/dist/tui/dashboard.js +0 -199
  459. package/dist/tui/dashboard.js.map +0 -1
  460. package/dist/tui/screen.d.ts +0 -14
  461. package/dist/tui/screen.d.ts.map +0 -1
  462. package/dist/tui/screen.js +0 -138
  463. package/dist/tui/screen.js.map +0 -1
  464. package/dist/types/cloud.d.ts +0 -101
  465. package/dist/types/cloud.d.ts.map +0 -1
  466. package/dist/types/cloud.js +0 -13
  467. package/dist/types/cloud.js.map +0 -1
@@ -1,147 +0,0 @@
1
- import { Command } from 'commander';
2
- import { io } from 'socket.io-client';
3
- // Config
4
- const HUB_URL = process.env.HUB_URL || 'https://hub.treebird.uk';
5
- // Track active file edits from all agents
6
- const activeEdits = new Map(); // file -> agents
7
- // Time tracking for activity
8
- const lastActivity = new Map(); // key -> timestamp
9
- function formatTime(timestamp) {
10
- return new Date(timestamp).toLocaleTimeString('en-US', {
11
- hour12: false,
12
- hour: '2-digit',
13
- minute: '2-digit',
14
- second: '2-digit'
15
- });
16
- }
17
- function clearScreen() {
18
- process.stdout.write('\x1Bc');
19
- }
20
- function renderRadar() {
21
- clearScreen();
22
- const now = Date.now();
23
- const tierLabels = { 1: '⚠️ WARN', 2: '⏸️ PAUSE', 3: '🛑 BLOCK' };
24
- console.log(`
25
- 🕷️ SPIDERSAN CONFLICT RADAR
26
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
27
- Real-time: who's editing what
28
- Updated: ${new Date().toLocaleTimeString()}
29
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
30
- `);
31
- // Show active edits
32
- if (activeEdits.size === 0) {
33
- console.log(' ✨ No active file edits detected');
34
- console.log(' (Waiting for file:changed events...)');
35
- }
36
- else {
37
- console.log('📁 ACTIVE FILES:\n');
38
- for (const [file, agents] of activeEdits.entries()) {
39
- const agentList = Array.from(agents);
40
- const hasConflict = agentList.length > 1;
41
- if (hasConflict) {
42
- console.log(` 🔴 ${file}`);
43
- console.log(` 👥 ${agentList.join(' ↔ ')} [CONFLICT!]`);
44
- }
45
- else {
46
- console.log(` 🟢 ${file}`);
47
- console.log(` 👤 ${agentList[0]}`);
48
- }
49
- }
50
- }
51
- console.log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
52
- console.log('Press Ctrl+C to exit');
53
- }
54
- export const radarCommand = new Command('radar')
55
- .description('🕷️ Real-time conflict radar - see who is editing what')
56
- .option('--hub <url>', 'Hub URL to connect to', HUB_URL)
57
- .action(async (options) => {
58
- const hubUrl = options.hub;
59
- console.log('🕷️ Starting Conflict Radar...');
60
- console.log(`📡 Connecting to Hub: ${hubUrl}`);
61
- let socket;
62
- try {
63
- socket = io(hubUrl, {
64
- reconnection: true,
65
- reconnectionAttempts: 10,
66
- timeout: 5000
67
- });
68
- socket.on('connect', () => {
69
- console.log('🔌 Connected to Hub\n');
70
- // Subscribe to relevant events
71
- socket.emit('subscribe', {
72
- events: ['file:changed', 'conflict:warning', 'agent:status']
73
- });
74
- // Start rendering
75
- setTimeout(renderRadar, 500);
76
- });
77
- socket.on('disconnect', () => {
78
- console.log('\n🔌 Disconnected from Hub');
79
- });
80
- socket.on('connect_error', (err) => {
81
- console.log(`⚠️ Connection error: ${err.message}`);
82
- });
83
- // Listen for file change events
84
- socket.on('file:changed', (event) => {
85
- const { agent, file, action, timestamp } = event;
86
- if (!activeEdits.has(file)) {
87
- activeEdits.set(file, new Set());
88
- }
89
- if (action === 'editing' || action === 'saved') {
90
- activeEdits.get(file).add(agent);
91
- lastActivity.set(`${file}:${agent}`, Date.now());
92
- }
93
- else if (action === 'closed') {
94
- activeEdits.get(file).delete(agent);
95
- if (activeEdits.get(file).size === 0) {
96
- activeEdits.delete(file);
97
- }
98
- }
99
- renderRadar();
100
- });
101
- // Listen for conflict warnings (from watch.ts)
102
- socket.on('conflict:warning', (warning) => {
103
- const tierLabels = { 1: '⚠️ WARN', 2: '⏸️ PAUSE', 3: '🛑 BLOCK' };
104
- console.log(`\n${tierLabels[warning.tier]} | CONFLICT DETECTED!`);
105
- console.log(` 📄 File: ${warning.file}`);
106
- console.log(` 👥 Agents: ${warning.agents.join(' ↔ ')}`);
107
- console.log(` 🎯 Resolution: ${warning.resolution}`);
108
- console.log(` 🕐 Time: ${formatTime(warning.timestamp)}\n`);
109
- });
110
- // Simulate local file activity (for demo/testing)
111
- // In production, this would come from Hub
112
- const simulateLocalActivity = () => {
113
- // Just render periodically to show we're alive
114
- setInterval(() => {
115
- // Clean up stale entries (> 60s)
116
- const cutoff = Date.now() - 60000;
117
- for (const [key, timestamp] of lastActivity.entries()) {
118
- if (timestamp < cutoff) {
119
- const [file, agent] = key.split(':');
120
- activeEdits.get(file)?.delete(agent);
121
- if (activeEdits.get(file)?.size === 0) {
122
- activeEdits.delete(file);
123
- }
124
- lastActivity.delete(key);
125
- }
126
- }
127
- renderRadar();
128
- }, 5000); // Refresh every 5 seconds
129
- };
130
- simulateLocalActivity();
131
- // Handle graceful shutdown
132
- process.on('SIGINT', () => {
133
- console.log('\n🕷️ Radar stopped.');
134
- socket.disconnect();
135
- process.exit(0);
136
- });
137
- process.on('SIGTERM', () => {
138
- socket.disconnect();
139
- process.exit(0);
140
- });
141
- }
142
- catch (error) {
143
- console.error('❌ Failed to start radar:', error);
144
- process.exit(1);
145
- }
146
- });
147
- //# sourceMappingURL=radar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radar.js","sourceRoot":"","sources":["../../src/commands/radar.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * spidersan ready-check
3
- *
4
- * Verify branch is ready to merge (no WIP markers, no conflicts).
5
- * Uses .spidersanrc config for customizable patterns.
6
- */
7
- import { Command } from 'commander';
8
- import { Minimatch } from 'minimatch';
9
- export declare function shouldExcludeFile(file: string, excludePatterns: Minimatch[]): boolean;
10
- export declare const readyCheckCommand: Command;
11
- //# sourceMappingURL=ready-check.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ready-check.d.ts","sourceRoot":"","sources":["../../src/commands/ready-check.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,OAAO,CAErF;AAED,eAAO,MAAM,iBAAiB,SAmJxB,CAAC"}
@@ -1,147 +0,0 @@
1
- /**
2
- * spidersan ready-check
3
- *
4
- * Verify branch is ready to merge (no WIP markers, no conflicts).
5
- * Uses .spidersanrc config for customizable patterns.
6
- */
7
- import { Command } from 'commander';
8
- import { readFile } from 'fs/promises';
9
- import { getStorage } from '../storage/index.js';
10
- import { loadConfig, getWipPatterns } from '../lib/config.js';
11
- import { getChangedFiles, getCurrentBranch } from '../lib/git.js';
12
- import { Minimatch } from 'minimatch';
13
- export function shouldExcludeFile(file, excludePatterns) {
14
- return excludePatterns.some(pattern => pattern.match(file));
15
- }
16
- export const readyCheckCommand = new Command('ready-check')
17
- .description('Verify branch is ready to merge')
18
- .option('--strict', 'Warn on WIP markers (kept for compatibility, no longer blocks)')
19
- .option('--json', 'Output as JSON')
20
- .option('--skip-wip', 'Skip WIP detection')
21
- .action(async (options) => {
22
- const storage = await getStorage();
23
- const config = await loadConfig();
24
- if (!await storage.isInitialized()) {
25
- console.error('❌ Spidersan not initialized. Run: spidersan init');
26
- process.exit(1);
27
- }
28
- const branchName = getCurrentBranch();
29
- const branch = await storage.get(branchName);
30
- const changedFiles = getChangedFiles();
31
- const issues = [];
32
- // Check for WIP markers (if enabled and not skipped)
33
- if (config.readyCheck.enableWipDetection && !options.skipWip) {
34
- // Performance Optimization: Hoist RegExp creation outside the loop
35
- // Note: RegExp instances here do not use the global 'g' flag, so they are stateless
36
- // and safe to reuse across files and lines.
37
- const wipRegexes = getWipPatterns(config);
38
- // Performance Optimization: Compile minimatch patterns once outside the loop
39
- const compiledExcludePatterns = config.readyCheck.excludeFiles.map(p => new Minimatch(p));
40
- for (const file of changedFiles) {
41
- // Skip excluded files
42
- if (shouldExcludeFile(file, compiledExcludePatterns)) {
43
- continue;
44
- }
45
- try {
46
- const content = await readFile(file, 'utf-8');
47
- const lines = content.split('\n');
48
- lines.forEach((line, i) => {
49
- for (const regex of wipRegexes) {
50
- if (regex.test(line)) {
51
- issues.push({
52
- type: 'wip',
53
- file,
54
- line: i + 1,
55
- pattern: regex.source,
56
- });
57
- }
58
- }
59
- });
60
- }
61
- catch {
62
- // File might not exist (deleted)
63
- }
64
- }
65
- // Check for experimental patterns — hoist combined regex as pre-filter (PR#79)
66
- if (config.readyCheck.enableExperimentalDetection && config.readyCheck.experimentalPatterns.length > 0) {
67
- const combinedRegex = new RegExp(config.readyCheck.experimentalPatterns.map(p => p.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('|'));
68
- for (const file of changedFiles) {
69
- if (!combinedRegex.test(file))
70
- continue;
71
- for (const pattern of config.readyCheck.experimentalPatterns) {
72
- if (file.includes(pattern)) {
73
- issues.push({
74
- type: 'experimental',
75
- file,
76
- pattern,
77
- });
78
- }
79
- }
80
- }
81
- }
82
- }
83
- // Check for conflicts
84
- const allBranches = await storage.list();
85
- const conflicts = [];
86
- if (branch) {
87
- // Performance Optimization: Convert branch files to Set for O(1) lookup
88
- const branchFilesSet = new Set(branch.files);
89
- for (const other of allBranches) {
90
- if (other.name === branchName)
91
- continue;
92
- if (other.files.some(f => branchFilesSet.has(f))) {
93
- conflicts.push(other.name);
94
- }
95
- }
96
- }
97
- const result = {
98
- branch: branchName,
99
- ready: conflicts.length === 0, // WIP markers are advisory only — don't block merges
100
- issues,
101
- conflicts,
102
- config: {
103
- wipDetection: config.readyCheck.enableWipDetection,
104
- patternsChecked: config.readyCheck.wipPatterns.length,
105
- },
106
- };
107
- if (options.json) {
108
- console.log(JSON.stringify(result, null, 2));
109
- process.exit(result.ready ? 0 : 1); // only exits 1 on file conflicts
110
- }
111
- console.log(`🕷️ Ready Check: ${branchName}\n`);
112
- if (issues.length > 0) {
113
- const wipIssues = issues.filter(i => i.type === 'wip');
114
- const expIssues = issues.filter(i => i.type === 'experimental');
115
- if (wipIssues.length > 0) {
116
- console.log(`⚠️ Found ${wipIssues.length} WIP marker(s):\n`);
117
- for (const issue of wipIssues.slice(0, 10)) {
118
- console.log(` ${issue.file}:${issue.line} - ${issue.pattern}`);
119
- }
120
- if (wipIssues.length > 10) {
121
- console.log(` ... and ${wipIssues.length - 10} more`);
122
- }
123
- console.log('');
124
- }
125
- if (expIssues.length > 0) {
126
- console.log(`ℹ️ Found ${expIssues.length} experimental file(s) (advisory):\n`);
127
- for (const issue of expIssues) {
128
- console.log(` ${issue.file}`);
129
- }
130
- console.log('');
131
- }
132
- }
133
- if (conflicts.length > 0) {
134
- console.log(`⚠️ File conflicts with: ${conflicts.join(', ')}\n`);
135
- }
136
- if (result.ready) {
137
- console.log('✅ Branch is ready to merge!');
138
- if (issues.length > 0) {
139
- console.log(' (WIP/XXX/experimental markers above are advisory — not blocking)');
140
- }
141
- }
142
- else {
143
- console.log('❌ Branch is NOT ready to merge (file conflicts with other branches).');
144
- process.exit(1);
145
- }
146
- });
147
- //# sourceMappingURL=ready-check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ready-check.js","sourceRoot":"","sources":["../../src/commands/ready-check.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const rebaseHelperCommand: Command;
3
- //# sourceMappingURL=rebase-helper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rebase-helper.d.ts","sourceRoot":"","sources":["../../src/commands/rebase-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,mBAAmB,SAgD1B,CAAC"}
@@ -1,52 +0,0 @@
1
- import { Command } from 'commander';
2
- import { existsSync } from 'fs';
3
- import { join } from 'path';
4
- import { execFileSync } from 'child_process';
5
- export const rebaseHelperCommand = new Command('rebase-helper')
6
- .description('Detect and help resolve local git rebase states (non-interactive guidance)')
7
- .option('--abort', 'Abort an in-progress rebase')
8
- .option('--continue', 'Attempt to continue rebase (will skip editor prompts where possible)')
9
- .action(async (options) => {
10
- const repoRoot = process.cwd();
11
- const rebaseMerge = join(repoRoot, '.git', 'rebase-merge');
12
- const rebaseApply = join(repoRoot, '.git', 'rebase-apply');
13
- const inMerge = existsSync(rebaseMerge) || existsSync(rebaseApply);
14
- if (!inMerge) {
15
- console.log('✅ No rebase in progress.');
16
- return;
17
- }
18
- console.log('⚠️ Rebase state detected in this repository.');
19
- console.log('Common fixes:');
20
- console.log(' - To abort: git rebase --abort');
21
- console.log(' - To continue: git rebase --continue');
22
- console.log('If an editor opens during these commands, close it (ESC :q! for vim, Ctrl+X for nano).');
23
- if (options.abort) {
24
- try {
25
- execFileSync('git', ['rebase', '--abort'], {
26
- stdio: 'inherit',
27
- env: { ...process.env, GIT_EDITOR: 'true', GIT_SEQUENCE_EDITOR: 'true' }
28
- });
29
- console.log('✅ Rebase aborted successfully');
30
- }
31
- catch {
32
- console.error('❌ Failed to abort rebase non-interactively. Try aborting in your terminal.');
33
- process.exit(1);
34
- }
35
- return;
36
- }
37
- if (options.continue) {
38
- try {
39
- execFileSync('git', ['rebase', '--continue'], {
40
- stdio: 'inherit',
41
- env: { ...process.env, GIT_EDITOR: 'true', GIT_SEQUENCE_EDITOR: 'true' }
42
- });
43
- console.log('✅ Rebase continued (or completed).');
44
- }
45
- catch {
46
- console.error('❌ Failed to continue rebase non-interactively. Please resolve conflicts and run git rebase --continue');
47
- process.exit(1);
48
- }
49
- return;
50
- }
51
- });
52
- //# sourceMappingURL=rebase-helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rebase-helper.js","sourceRoot":"","sources":["../../src/commands/rebase-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KAC1D,WAAW,CAAC,4EAA4E,CAAC;KACzF,MAAM,CAAC,SAAS,EAAE,6BAA6B,CAAC;KAChD,MAAM,CAAC,YAAY,EAAE,sEAAsE,CAAC;KAC5F,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAC;IAEtG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC;YACD,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;gBACvC,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE;aAC3E,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;YAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,OAAO;IACX,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAI,CAAC;YACD,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE;gBAC1C,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE;aAC3E,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,KAAK,CAAC,uGAAuG,CAAC,CAAC;YACvH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,OAAO;IACX,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare function isExcludedPath(file: string): boolean;
3
- export declare function validateRegistrationFiles(files: string[]): void;
4
- export declare const registerCommand: Command;
5
- //# sourceMappingURL=register.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/commands/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAI/D;AA+CD,eAAO,MAAM,eAAe,SAqFtB,CAAC"}
@@ -1,156 +0,0 @@
1
- import { Command } from 'commander';
2
- import { getStorage } from '../storage/index.js';
3
- import * as readline from 'readline';
4
- import { loadConfig } from '../lib/config.js';
5
- import { getChangedFiles, getCurrentBranch } from '../lib/git.js';
6
- import { validateAgentId, sanitizeFilePaths, validateFilePath } from '../lib/security.js';
7
- import { logActivity } from '../lib/activity.js';
8
- // Git execution is centralized in ../lib/git.js via execFileSync('git', [...]).
9
- // Path segments that are never meaningful for conflict tracking (matched anywhere in the path)
10
- const EXCLUDED_PATH_SEGMENTS = [
11
- '/node_modules/',
12
- '/.git/',
13
- '/dist/',
14
- '/build/',
15
- '/.next/',
16
- '/target/', // Rust/Cargo build output
17
- '/.turbo/',
18
- '/.cache/',
19
- ];
20
- export function isExcludedPath(file) {
21
- // Normalise: wrap in slashes so segment patterns match at the start too
22
- const normalised = `/${file}/`;
23
- return EXCLUDED_PATH_SEGMENTS.some(seg => normalised.includes(seg));
24
- }
25
- export function validateRegistrationFiles(files) {
26
- for (const file of files) {
27
- validateFilePath(file);
28
- }
29
- }
30
- function getRelevantChangedFiles() {
31
- return getChangedFiles().filter((file) => !isExcludedPath(file));
32
- }
33
- async function promptForFiles(detectedFiles) {
34
- const rl = readline.createInterface({
35
- input: process.stdin,
36
- output: process.stdout
37
- });
38
- return new Promise((resolve) => {
39
- if (detectedFiles.length > 0) {
40
- console.log('\n🕷️ Detected changed files:');
41
- detectedFiles.forEach((f, i) => console.log(` ${i + 1}. ${f}`));
42
- console.log('');
43
- rl.question('Use these files? [Y/n/edit]: ', (answer) => {
44
- rl.close();
45
- const a = answer.toLowerCase().trim();
46
- if (a === '' || a === 'y' || a === 'yes') {
47
- resolve(detectedFiles);
48
- }
49
- else if (a === 'n' || a === 'no') {
50
- resolve([]);
51
- }
52
- else {
53
- // Let them enter custom files
54
- console.log(' Enter comma-separated files, or leave empty:');
55
- const rl2 = readline.createInterface({
56
- input: process.stdin,
57
- output: process.stdout
58
- });
59
- rl2.question(' Files: ', (files) => {
60
- rl2.close();
61
- resolve(files ? files.split(',').map(f => f.trim()) : []);
62
- });
63
- }
64
- });
65
- }
66
- else {
67
- rl.question('Enter files (comma-separated) or leave empty: ', (files) => {
68
- rl.close();
69
- resolve(files ? files.split(',').map(f => f.trim()) : []);
70
- });
71
- }
72
- });
73
- }
74
- export const registerCommand = new Command('register')
75
- .description('Register the current branch with files being modified')
76
- .option('-f, --files <files>', 'Comma-separated list of files being modified')
77
- .option('-d, --description <desc>', 'Description of what this branch does')
78
- .option('-a, --agent <agent>', 'Agent identifier (e.g., claude-code, cursor)')
79
- .option('-i, --interactive', 'Interactive mode (prompt for files)')
80
- .option('--auto', 'Auto-detect files from git diff')
81
- .action(async (options) => {
82
- const storage = await getStorage();
83
- const config = await loadConfig();
84
- if (!await storage.isInitialized()) {
85
- console.error('❌ Spidersan not initialized. Run: spidersan init');
86
- process.exit(1);
87
- }
88
- const branchName = getCurrentBranch();
89
- let files = [];
90
- if (options.files) {
91
- files = sanitizeFilePaths(options.files.split(',').map((f) => f.trim()).filter((f) => f && !isExcludedPath(f)));
92
- }
93
- else if (options.auto) {
94
- files = getRelevantChangedFiles();
95
- if (files.length > 0) {
96
- console.log(`🕷️ Auto-detected ${files.length} changed file(s)`);
97
- }
98
- }
99
- else if (options.interactive) {
100
- const detected = getRelevantChangedFiles();
101
- files = await promptForFiles(detected);
102
- }
103
- // Security: Validate ALL file paths before storing (Sentinel 2026-02-18)
104
- try {
105
- validateRegistrationFiles(files);
106
- }
107
- catch (err) {
108
- if (err instanceof Error) {
109
- console.error(`❌ Security Error: ${err.message}`);
110
- }
111
- else {
112
- console.error('❌ Security Error: Invalid file path');
113
- }
114
- process.exit(1);
115
- }
116
- const configuredAgent = config.agent.name?.trim();
117
- const rawAgent = (options.agent || process.env.SPIDERSAN_AGENT || configuredAgent || '').trim() || undefined;
118
- let resolvedAgent = rawAgent;
119
- if (resolvedAgent) {
120
- try {
121
- resolvedAgent = validateAgentId(resolvedAgent);
122
- }
123
- catch {
124
- console.error(`❌ Invalid agent ID: "${resolvedAgent}". Must be alphanumeric with - or _.`);
125
- process.exit(1);
126
- }
127
- }
128
- // Check if branch already registered
129
- const existing = await storage.get(branchName);
130
- if (existing) {
131
- // Update existing registration
132
- await storage.update(branchName, {
133
- files: [...new Set([...existing.files, ...files])],
134
- description: options.description || existing.description,
135
- agent: resolvedAgent ?? existing.agent,
136
- });
137
- console.log(`🕷️ Updated branch: ${branchName}`);
138
- logActivity({ event: 'register', branch: branchName, agent: resolvedAgent ?? undefined, details: { files, description: options.description, updated: true } });
139
- }
140
- else {
141
- // New registration
142
- await storage.register({
143
- name: branchName,
144
- files,
145
- status: 'active',
146
- description: options.description,
147
- agent: resolvedAgent,
148
- });
149
- console.log(`🕷️ Registered branch: ${branchName}`);
150
- logActivity({ event: 'register', branch: branchName, agent: resolvedAgent ?? undefined, details: { files, description: options.description } });
151
- }
152
- if (files.length > 0) {
153
- console.log(` Files: ${files.join(', ')}`);
154
- }
155
- });
156
- //# sourceMappingURL=register.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/commands/register.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * spidersan registry-sync
3
- *
4
- * Sync local registry to/from Supabase for cross-machine awareness.
5
- * Part of F1: Supabase Registry Sync (spidersan-github-dashboard).
6
- */
7
- import { Command } from 'commander';
8
- export declare const registrySyncCommand: Command;
9
- //# sourceMappingURL=registry-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-sync.d.ts","sourceRoot":"","sources":["../../src/commands/registry-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuEpC,eAAO,MAAM,mBAAmB,SA2G1B,CAAC"}