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,245 +0,0 @@
1
- /**
2
- * spidersan pulse
3
- *
4
- * Quick health-check: sync from Colony, then run local conflict detection.
5
- * Calls syncFromColony() first so that active work_claim signals from other
6
- * agents are reflected in the registry before conflicts are computed.
7
- *
8
- * Offline mode: if Colony is unreachable, prints a warning and continues
9
- * with existing local registry data — never crashes.
10
- */
11
- import { Command } from 'commander';
12
- import { compilePatterns } from '../lib/regex-utils.js';
13
- import { getStorage } from '../storage/index.js';
14
- import { syncFromColony } from '../lib/colony-subscriber.js';
15
- import { loadConfig } from '../lib/config.js';
16
- import { classifyTier } from '../lib/conflict-tier.js';
17
- import { getCurrentBranch } from '../lib/git.js';
18
- import { createHubClient } from '../lib/hub.js';
19
- import { computeDriftResult } from '../lib/remote-drift.js';
20
- function resolveCurrentBranch() {
21
- try {
22
- return getCurrentBranch();
23
- }
24
- catch {
25
- return 'unknown';
26
- }
27
- }
28
- export const pulseCommand = new Command('pulse')
29
- .description('Sync from Colony then show active conflicts (quick health-check)')
30
- .option('--json', 'Output as JSON')
31
- .option('--no-sync', 'Skip Colony sync, use local registry only')
32
- .option('--remote-drift', 'Check if remote has advanced past local HEAD')
33
- .option('--hub-sync', 'Post drift alert to Hub if registered or unstaged files are in drift zone')
34
- .option('--strict', 'Exit 1 if any registered or unstaged files are in the drift zone')
35
- .action(async (options) => {
36
- const storage = await getStorage();
37
- if (!await storage.isInitialized()) {
38
- console.error('❌ Spidersan not initialized. Run: spidersan init');
39
- process.exit(1);
40
- }
41
- const config = await loadConfig();
42
- const highSeverity = (config.conflicts?.highSeverityPatterns || []).map((p) => new RegExp(p));
43
- const mediumSeverity = (config.conflicts?.mediumSeverityPatterns || []).map((p) => new RegExp(p));
44
- const compiledHigh = compilePatterns(highSeverity);
45
- const compiledMedium = compilePatterns(mediumSeverity);
46
- // ── Colony sync ───────────────────────────────────────────────────────
47
- let colonySynced = 0;
48
- let colonyOffline = true;
49
- if (options.sync !== false) {
50
- const result = await syncFromColony();
51
- colonySynced = result.synced;
52
- colonyOffline = result.offline;
53
- }
54
- else {
55
- console.log('ℹ Colony sync skipped (--no-sync)');
56
- }
57
- // ── Local conflict detection ──────────────────────────────────────────
58
- const currentBranch = resolveCurrentBranch();
59
- const allBranches = await storage.list();
60
- const target = allBranches.find(b => b.name === currentBranch);
61
- if (!target) {
62
- if (options.json) {
63
- const jsonOut = { branch: currentBranch, registered: false, conflicts: [], colonySynced, colonyOffline };
64
- if (options.remoteDrift) {
65
- const drift = await computeDriftResult([], { remote: 'origin', branch: currentBranch });
66
- jsonOut.remoteDrift = 'skipped' in drift ? { skipped: true, reason: drift.reason } : drift;
67
- }
68
- console.log(JSON.stringify(jsonOut));
69
- }
70
- else {
71
- console.log(`🕷️ Branch "${currentBranch}" is not registered.`);
72
- console.log(' Run: spidersan register --files "..."');
73
- if (!colonyOffline) {
74
- console.log(` Colony: synced ${colonySynced} claim(s)`);
75
- }
76
- if (options.remoteDrift) {
77
- console.log('');
78
- const drift = await computeDriftResult([], { remote: 'origin', branch: currentBranch });
79
- if ('skipped' in drift) {
80
- console.log(`⚠ Remote drift check skipped: ${drift.reason}`);
81
- }
82
- else {
83
- printDriftReport(drift);
84
- }
85
- }
86
- }
87
- return;
88
- }
89
- const targetFilesSet = new Set(target.files);
90
- const conflicts = [];
91
- for (const branch of allBranches) {
92
- if (branch.name === currentBranch || branch.status !== 'active')
93
- continue;
94
- const overlapping = branch.files.filter(f => targetFilesSet.has(f));
95
- if (overlapping.length === 0)
96
- continue;
97
- // Determine max tier for this conflict group
98
- let maxTier = 1;
99
- for (const file of overlapping) {
100
- const tier = classifyTier(file, {
101
- extraTier3: compiledHigh,
102
- extraTier2: compiledMedium,
103
- });
104
- if (tier > maxTier)
105
- maxTier = tier;
106
- }
107
- conflicts.push({
108
- branch: branch.name,
109
- files: overlapping,
110
- tier: maxTier,
111
- agent: branch.agent,
112
- });
113
- }
114
- conflicts.sort((a, b) => b.tier - a.tier);
115
- if (options.json) {
116
- const jsonOutput = {
117
- branch: currentBranch,
118
- registered: true,
119
- conflicts,
120
- colonySynced,
121
- colonyOffline,
122
- };
123
- if (options.remoteDrift) {
124
- const drift = await computeDriftResult(target?.files ?? [], { remote: 'origin', branch: currentBranch });
125
- if ('skipped' in drift) {
126
- jsonOutput.remoteDrift = { skipped: true, reason: drift.reason };
127
- }
128
- else {
129
- jsonOutput.remoteDrift = drift;
130
- }
131
- }
132
- console.log(JSON.stringify(jsonOutput, null, 2));
133
- return;
134
- }
135
- // ── Human-readable output ─────────────────────────────────────────────
136
- const colonyStatus = colonyOffline
137
- ? '⚠ offline'
138
- : `✅ synced ${colonySynced} claim(s)`;
139
- console.log(`
140
- 🕷️ SPIDERSAN PULSE — "${currentBranch}"
141
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
142
- Colony: ${colonyStatus}
143
- Branches: ${allBranches.filter(b => b.status === 'active').length} active
144
- `.trim());
145
- console.log('');
146
- if (conflicts.length === 0) {
147
- console.log('✅ No conflicts detected. You\'re good to go!');
148
- }
149
- else {
150
- const tierIcons = { 1: '🟡', 2: '🟠', 3: '🔴' };
151
- const tierLabels = { 1: 'WARN', 2: 'PAUSE', 3: 'BLOCK' };
152
- for (const c of conflicts) {
153
- const icon = tierIcons[c.tier] ?? '🟡';
154
- const label = tierLabels[c.tier] ?? 'WARN';
155
- const agentTag = c.agent ? ` [@${c.agent}]` : '';
156
- console.log(`${icon} TIER ${c.tier} ${label}: ${c.branch}${agentTag}`);
157
- for (const f of c.files) {
158
- console.log(` • ${f}`);
159
- }
160
- console.log('');
161
- }
162
- const t3 = conflicts.filter(c => c.tier === 3).length;
163
- const t2 = conflicts.filter(c => c.tier === 2).length;
164
- const t1 = conflicts.filter(c => c.tier === 1).length;
165
- console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
166
- console.log(`📊 Summary: 🔴 ${t3} BLOCK | 🟠 ${t2} PAUSE | 🟡 ${t1} WARN`);
167
- }
168
- // ── Remote drift section ──────────────────────────────────────────────
169
- if (options.remoteDrift) {
170
- console.log('');
171
- const drift = await computeDriftResult(target?.files ?? [], { remote: 'origin', branch: currentBranch });
172
- if ('skipped' in drift) {
173
- console.log(`⚠ Remote drift check skipped: ${drift.reason}`);
174
- }
175
- else {
176
- printDriftReport(drift);
177
- if (options.hubSync) {
178
- const hasRisk = drift.registeredInDrift.length > 0 || drift.unstagedInDrift.length > 0;
179
- if (hasRisk) {
180
- const hub = createHubClient();
181
- const lines = [
182
- `🕷️⚠️ Remote drift detected on \`${drift.branch}\``,
183
- ` ${drift.remoteAhead} commit(s) ahead | ${drift.registeredInDrift.length} registered file(s) at risk | ${drift.unstagedInDrift.length} rebase-continue blocker(s)`,
184
- ...drift.registeredInDrift.map(e => ` ${tierIcon(e.tier)} ${e.file}${e.unstaged ? ' [also has unstaged modifications]' : ''}`),
185
- ];
186
- await hub.postToChat({ agent: 'spidersan', name: 'Spidersan', message: lines.join('\n'), glyph: '🕷️' }).catch(() => { });
187
- }
188
- }
189
- if (options.strict && (drift.registeredInDrift.length > 0 || drift.unstagedInDrift.length > 0)) {
190
- process.exit(1);
191
- }
192
- }
193
- }
194
- });
195
- function tierIcon(tier) {
196
- if (tier === 3)
197
- return '🔴';
198
- if (tier === 2)
199
- return '🟠';
200
- if (tier === 1)
201
- return '🟡';
202
- return '⚪';
203
- }
204
- function printDriftReport(drift) {
205
- if (drift.state === 'synced' || drift.remoteAhead === 0) {
206
- console.log('✅ Remote drift: 0 commits ahead. Safe to push.');
207
- return;
208
- }
209
- const tierLabels = { 1: 'TIER 1', 2: 'TIER 2', 3: 'TIER 3' };
210
- console.log(`🕷️ REMOTE DRIFT — "${drift.branch}"`);
211
- console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
212
- console.log(`Remote is ${drift.remoteAhead} commit(s) ahead of local.`);
213
- console.log('');
214
- console.log('Drift zone (files touched by remote commits):');
215
- for (const entry of drift.driftZone.map(file => {
216
- const found = [...drift.registeredInDrift, ...drift.unstagedInDrift].find(e => e.file === file);
217
- return found ?? { file, registered: false, tier: null, unstaged: false };
218
- })) {
219
- const parts = [];
220
- if (entry.registered && entry.tier !== null) {
221
- parts.push(`registered — ${tierIcon(entry.tier)} ${tierLabels[entry.tier]}`);
222
- }
223
- if (entry.unstaged) {
224
- parts.push('unstaged modification ⚠');
225
- }
226
- const label = parts.length > 0 ? ` [${parts.join('] [')}]` : ' [not registered, not modified]';
227
- console.log(` ${entry.file}${label}`);
228
- }
229
- console.log('');
230
- if (drift.registeredInDrift.length > 0) {
231
- console.log(`⚠ ${drift.registeredInDrift.length} registered file(s) in drift zone. Rebase will conflict.`);
232
- }
233
- if (drift.rebaseContinueRisk) {
234
- const blockers = drift.unstagedInDrift.map(e => e.file);
235
- console.log('⚠ File(s) with unstaged modifications — git rebase --continue may block even');
236
- console.log(' after resolving conflict markers. Fix: git checkout HEAD -- <file>');
237
- for (const f of blockers) {
238
- console.log(` ${f}`);
239
- }
240
- }
241
- console.log('');
242
- console.log(` git fetch origin`);
243
- console.log(` git log --oneline ${drift.remote} -3`);
244
- }
245
- //# sourceMappingURL=pulse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../src/commands/pulse.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * spidersan queen
3
- *
4
- * Mode 3: Queen Spider — sub-spidersan dispatch for parallel ground jobs.
5
- *
6
- * The queen never does ground work. It spawns scoped, ephemeral sub-spidersans,
7
- * watches them via the colony gradient, and integrates results. Each sub fires,
8
- * completes its single job, and dissolves back into the colony.
9
- *
10
- * Subcommands:
11
- * spawn — define a ground job, emit colony assignment, print launch script
12
- * status — show active sub-spidersans spawned by this queen signal
13
- * dissolve — manually close a stuck sub-spidersan
14
- *
15
- * Colony shape:
16
- * Queen emits a signal (status=in-progress, type=work_claim, task="queen dispatch")
17
- * Each sub emits a signal with payload.spawned_by = queen_signal_id
18
- * Sub closes via colony_close on completion (fire-complete-dissolve)
19
- *
20
- * Note: Actual claude spawning (via nanoclaw/INFRA-A) is stubbed until Phase 0
21
- * is proven. spawn prints the launch script — execution is manual or via birdsan.
22
- */
23
- import { Command } from 'commander';
24
- export declare const queenCommand: Command;
25
- //# sourceMappingURL=queen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queen.d.ts","sourceRoot":"","sources":["../../src/commands/queen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqYpC,eAAO,MAAM,YAAY,SAIY,CAAC"}
@@ -1,326 +0,0 @@
1
- /**
2
- * spidersan queen
3
- *
4
- * Mode 3: Queen Spider — sub-spidersan dispatch for parallel ground jobs.
5
- *
6
- * The queen never does ground work. It spawns scoped, ephemeral sub-spidersans,
7
- * watches them via the colony gradient, and integrates results. Each sub fires,
8
- * completes its single job, and dissolves back into the colony.
9
- *
10
- * Subcommands:
11
- * spawn — define a ground job, emit colony assignment, print launch script
12
- * status — show active sub-spidersans spawned by this queen signal
13
- * dissolve — manually close a stuck sub-spidersan
14
- *
15
- * Colony shape:
16
- * Queen emits a signal (status=in-progress, type=work_claim, task="queen dispatch")
17
- * Each sub emits a signal with payload.spawned_by = queen_signal_id
18
- * Sub closes via colony_close on completion (fire-complete-dissolve)
19
- *
20
- * Note: Actual claude spawning (via nanoclaw/INFRA-A) is stubbed until Phase 0
21
- * is proven. spawn prints the launch script — execution is manual or via birdsan.
22
- */
23
- import { Command } from 'commander';
24
- import { spawnSync } from 'child_process';
25
- import * as path from 'path';
26
- import * as os from 'os';
27
- import { writeFileSync, mkdtempSync } from 'fs';
28
- import { escapeShellString } from '../lib/security.js';
29
- // ── Helpers ───────────────────────────────────────────────────────────────────
30
- function resolveRepos(reposOption) {
31
- if (reposOption) {
32
- return reposOption.split(',').map((r) => r.trim()).filter(Boolean);
33
- }
34
- const envRepos = process.env['SPIDERSAN_REPOS'];
35
- if (envRepos) {
36
- return envRepos.split(':').map((r) => r.trim()).filter(Boolean);
37
- }
38
- const homeDir = process.env.HOME || os.homedir();
39
- return [
40
- `${homeDir}/Dev/Envoak`,
41
- `${homeDir}/Dev/treebird-internal`,
42
- `${homeDir}/Dev/spidersan`,
43
- `${homeDir}/Dev/Toak`,
44
- `${homeDir}/Dev/flockview`,
45
- `${homeDir}/Dev/mappersan`,
46
- ];
47
- }
48
- /**
49
- * Emit a queen colony signal and return its ID.
50
- * Returns null on failure (envoak not available / vault expired).
51
- */
52
- function emitQueenSignal(task, repos) {
53
- const summary = `Queen Spider dispatching ${repos.length} ground job(s): ` +
54
- repos.map((r) => path.basename(r)).join(', ');
55
- const result = spawnSync('envoak', [
56
- 'colony', 'signal',
57
- '--status', 'in-progress',
58
- '--task', task,
59
- '--summary', summary,
60
- ], { encoding: 'utf-8', timeout: 15000 });
61
- if (result.status !== 0) {
62
- console.error(`[QUEEN] Failed to emit colony signal: ${result.stderr ?? result.stdout}`);
63
- return null;
64
- }
65
- // Parse signal ID directly from "Signal emitted (id: UUID)" in stdout
66
- const match = (result.stdout ?? '').match(/Signal emitted \(id:\s*([\w-]+)\)/);
67
- if (match?.[1])
68
- return match[1];
69
- // Fallback: query the colony gradient for the latest in-progress signal with this task
70
- try {
71
- const statusResult = spawnSync('envoak', ['colony', 'status', '--json'], { encoding: 'utf-8', timeout: 10000 });
72
- if (statusResult.stdout) {
73
- const data = JSON.parse(statusResult.stdout);
74
- const gradient = data.signals ?? data.gradient ?? [];
75
- const latest = gradient.find((s) => s.task === task && s.status === 'in-progress');
76
- if (latest)
77
- return latest.id;
78
- }
79
- }
80
- catch {
81
- /* ignore — signal was emitted, ID lookup failed */
82
- }
83
- return null;
84
- }
85
- /**
86
- * Build the ground job script for a sub-spidersan.
87
- * Returns the shell script string to be printed or written to a file.
88
- */
89
- function buildGroundJobScript(repo, task, jobType, queenSignalId) {
90
- const repoName = path.basename(repo);
91
- // Security: Escape user inputs to prevent command injection in generated bash script
92
- const safeRepo = escapeShellString(repo);
93
- const safeTask = escapeShellString(`${task} [${repoName}]`);
94
- const safeQueenSignalId = escapeShellString(queenSignalId ?? '');
95
- const safeRepoName = escapeShellString(repoName);
96
- const safeSummaryStart = escapeShellString(`Sub-spidersan started in ${repoName}.`);
97
- const safeSummarySuccess = escapeShellString(`Ground job complete: ${task} [${repoName}] — success.`);
98
- // We use variables for these strings inside the script to avoid complex escaping
99
- const priorFlag = queenSignalId
100
- ? `\n --prior-signal-id "$QUEEN_SIGNAL_ID" \\`
101
- : '';
102
- const jobCommands = {
103
- sync: ` # GROUND JOB: sync
104
- git pull origin main --rebase 2>&1 | tail -3
105
- spidersan pulse --quiet`,
106
- conflicts: ` # GROUND JOB: conflict scan
107
- TMP_FILE=$(mktemp /tmp/ssan-conflicts-XXXXXX)
108
- trap 'rm -f "$TMP_FILE"' EXIT
109
- spidersan conflicts --json --tier 1 > "$TMP_FILE"
110
- jq '.summary' "$TMP_FILE"
111
- rm -f "$TMP_FILE"
112
- trap - EXIT`,
113
- cleanup: ` # GROUND JOB: stale cleanup
114
- spidersan stale
115
- envoak colony gc`,
116
- custom: ` # GROUND JOB: custom — replace this with your commands
117
- echo "Custom job in $REPO_NAME_VAR"`,
118
- };
119
- return `#!/usr/bin/env bash
120
- # Sub-spidersan ground job
121
- # Generated by: spidersan queen spawn
122
- # Fire-complete-dissolve pattern — run, emit result, exit.
123
-
124
- set -euo pipefail
125
-
126
- REPO=${safeRepo}
127
- TASK=${safeTask}
128
- QUEEN_SIGNAL_ID=${safeQueenSignalId}
129
- REPO_NAME_VAR=${safeRepoName}
130
- SUMMARY_START=${safeSummaryStart}
131
- SUMMARY_SUCCESS=${safeSummarySuccess}
132
-
133
- cd "$REPO"
134
-
135
- # ── Enlist ────────────────────────────────────────────────────────────────────
136
- envoak colony signal \\
137
- --status in-progress \\
138
- --task "$TASK" \\
139
- --summary "$SUMMARY_START" \\${priorFlag}
140
- || true # non-fatal if vault expired
141
-
142
- # ── Ground job ────────────────────────────────────────────────────────────────
143
- ${jobCommands[jobType]}
144
- RESULT=$?
145
-
146
- # ── Dissolve ──────────────────────────────────────────────────────────────────
147
- if [ $RESULT -eq 0 ]; then
148
- envoak colony close \\
149
- --summary "$SUMMARY_SUCCESS" \\
150
- || true
151
- echo "[SUB-SSAN] ✅ Done: $REPO_NAME_VAR"
152
- else
153
- # Using bash parameter expansion for the failure summary to inject the exit code safely
154
- SUMMARY_FAIL="Ground job failed in $REPO_NAME_VAR (exit $RESULT). Queen: \${QUEEN_SIGNAL_ID:-unknown}."
155
- envoak colony signal \\
156
- --status blocked \\
157
- --task "$TASK" \\
158
- --summary "$SUMMARY_FAIL" \\
159
- || true
160
- envoak colony close --summary "Ground job failed — see blocked signal." || true
161
- echo "[SUB-SSAN] ❌ Failed: $REPO_NAME_VAR (exit $RESULT)"
162
- fi
163
- `;
164
- }
165
- // ── Commands ──────────────────────────────────────────────────────────────────
166
- const queenSpawnCommand = new Command('spawn')
167
- .description('Dispatch sub-spidersans for parallel ground jobs')
168
- .requiredOption('-t, --task <description>', 'One-line description of the ground job')
169
- .option('--type <type>', 'Job type: sync | conflicts | cleanup | custom (default: sync)', 'sync')
170
- .option('--repos <paths>', 'Comma-separated repo paths (default: ecosystem repos)')
171
- .option('--key-id <uuid>', 'Agent key ID to include in colony signal')
172
- .option('--dry-run', 'Print job scripts without emitting colony signals')
173
- .option('--json', 'Output job manifest as JSON')
174
- .action(async (options) => {
175
- const repos = resolveRepos(options.repos);
176
- const jobType = options.type ?? 'sync';
177
- const dryRun = options.dryRun ?? false;
178
- console.log(`
179
- 🕷️ QUEEN SPIDER — SPAWNING ${repos.length} SUB-SPIDERSAN(S)
180
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
181
- Task: ${options.task}
182
- Job type: ${jobType}
183
- Repos: ${repos.map((r) => path.basename(r)).join(', ')}
184
- Dry-run: ${dryRun}
185
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
186
- `);
187
- // Emit queen signal (skip in dry-run)
188
- let queenSignalId = null;
189
- if (!dryRun) {
190
- queenSignalId = emitQueenSignal(options.task, repos);
191
- if (queenSignalId) {
192
- console.log(`[QUEEN] Signal emitted: ${queenSignalId}`);
193
- }
194
- else {
195
- console.warn('[QUEEN] Could not retrieve queen signal ID — sub-spidersans will have no prior_signal_id.');
196
- }
197
- }
198
- else {
199
- queenSignalId = 'DRY-RUN-QUEEN-SIGNAL';
200
- }
201
- // Generate job scripts
202
- const scriptDir = dryRun
203
- ? path.join(os.tmpdir(), 'ssan-queen-dry-run')
204
- : mkdtempSync(path.join(os.tmpdir(), 'ssan-queen-'));
205
- const manifest = [];
206
- for (const repo of repos) {
207
- const script = buildGroundJobScript(repo, options.task, jobType, queenSignalId);
208
- const repoName = path.basename(repo);
209
- const scriptPath = path.join(scriptDir, `sub-ssan-${repoName}.sh`);
210
- if (!dryRun) {
211
- try {
212
- writeFileSync(scriptPath, script, { mode: 0o755 });
213
- }
214
- catch {
215
- /* non-fatal */
216
- }
217
- }
218
- manifest.push({ repo, script: scriptPath, queenSignalId });
219
- console.log(`\n── Sub-spidersan: ${repoName} ──`);
220
- if (dryRun) {
221
- console.log(script);
222
- }
223
- else {
224
- console.log(` Script: ${scriptPath}`);
225
- console.log(` Run: bash "${scriptPath}"`);
226
- }
227
- }
228
- if (!dryRun && manifest.length > 0) {
229
- console.log(`
230
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
231
- [QUEEN] ${repos.length} job script(s) written to ${scriptDir}
232
- [QUEEN] Run all in parallel:
233
-
234
- for f in ${scriptDir}/sub-ssan-*.sh; do bash "$f" & done; wait
235
-
236
- [QUEEN] Monitor via: spidersan queen status --queen-signal-id ${queenSignalId ?? '<id>'}
237
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
238
- }
239
- if (options.json) {
240
- console.log(JSON.stringify({ queenSignalId, repos, jobType, task: options.task, scripts: manifest.map((m) => m.script) }, null, 2));
241
- }
242
- });
243
- const queenStatusCommand = new Command('status')
244
- .description('Show active sub-spidersans spawned by this queen signal')
245
- .option('--queen-signal-id <id>', 'Queen signal ID to filter by (reads colony gradient)')
246
- .option('--json', 'Output as JSON')
247
- .action(async (options) => {
248
- const result = spawnSync('envoak', ['colony', 'status', '--json'], { encoding: 'utf-8', timeout: 10000 });
249
- if (result.status !== 0 || !result.stdout) {
250
- console.error('[QUEEN] Failed to read colony gradient');
251
- process.exit(1);
252
- }
253
- let data = {};
254
- try {
255
- const parsed = JSON.parse(result.stdout);
256
- data = parsed;
257
- }
258
- catch {
259
- console.error('[QUEEN] Failed to parse colony gradient JSON');
260
- process.exit(1);
261
- }
262
- // Filter to sub-spidersans: signals where payload.spawned_by matches queen signal ID
263
- const gradient = data.signals ?? data.gradient ?? [];
264
- const subs = gradient.filter((s) => {
265
- if (!options.queenSignalId) {
266
- // No filter — show all signals with a spawned_by field
267
- return s.payload && typeof s.payload === 'object' && 'spawned_by' in s.payload;
268
- }
269
- return (s.payload &&
270
- typeof s.payload === 'object' &&
271
- s.payload['spawned_by'] === options.queenSignalId);
272
- });
273
- if (options.json) {
274
- console.log(JSON.stringify({ queenSignalId: options.queenSignalId ?? null, subs }, null, 2));
275
- return;
276
- }
277
- console.log(`
278
- 🕷️ QUEEN STATUS${options.queenSignalId ? ` (queen: ${options.queenSignalId.slice(0, 8)})` : ''}
279
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
280
- Active sub-spidersans: ${subs.length}
281
- `);
282
- if (subs.length === 0) {
283
- console.log(' No active sub-spidersans found.');
284
- console.log(' (Sub-spidersans dissolve after completing their ground job.)');
285
- return;
286
- }
287
- for (const sub of subs) {
288
- const staleFlag = sub.isStale ? ' ⚠️ STALE' : '';
289
- console.log(` ${sub.status.padEnd(12)} ${sub.task ?? '(no task)'}${staleFlag}`);
290
- if (sub.summary)
291
- console.log(` ${sub.summary}`);
292
- }
293
- });
294
- const queenDissolveCommand = new Command('dissolve')
295
- .description('Manually close a stuck sub-spidersan session')
296
- .argument('<signal-id>', 'Signal ID of the stuck sub-spidersan')
297
- .option('--summary <text>', 'Dissolution summary', 'Manually dissolved by queen spider.')
298
- .option('--dry-run', 'Print what would happen without acting')
299
- .action(async (signalId, options) => {
300
- if (options.dryRun) {
301
- console.log(`[DRY-RUN] Would emit blocked signal for ${signalId} then close session.`);
302
- return;
303
- }
304
- console.log(`[QUEEN] Dissolving sub-spidersan ${signalId.slice(0, 8)}...`);
305
- // Emit a blocked signal to mark it, then it can be GC'd
306
- const result = spawnSync('envoak', [
307
- 'colony', 'signal',
308
- '--status', 'blocked',
309
- '--task', 'sub-spidersan dissolved',
310
- '--summary', options.summary ?? 'Manually dissolved by queen spider.',
311
- '--prior-signal-id', signalId,
312
- ], { encoding: 'utf-8', timeout: 10000 });
313
- if (result.status === 0) {
314
- console.log(`[QUEEN] ✅ Dissolution signal emitted. Run 'envoak colony gc' to clean up.`);
315
- }
316
- else {
317
- console.error(`[QUEEN] Failed to emit dissolution signal: ${result.stderr ?? result.stdout}`);
318
- process.exit(1);
319
- }
320
- });
321
- export const queenCommand = new Command('queen')
322
- .description('🕷️ Parallel agent dispatch — fan-out work to multiple sub-spidersans at once (use `torrent` instead for sequential subtasks in order)')
323
- .addCommand(queenSpawnCommand)
324
- .addCommand(queenStatusCommand)
325
- .addCommand(queenDissolveCommand);
326
- //# sourceMappingURL=queen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"queen.js","sourceRoot":"","sources":["../../src/commands/queen.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const radarCommand: Command;
3
- //# sourceMappingURL=radar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radar.d.ts","sourceRoot":"","sources":["../../src/commands/radar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgFpC,eAAO,MAAM,YAAY,SA6GnB,CAAC"}