spidersan 0.10.0 → 0.20.2

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 (430) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/README.md +39 -280
  3. package/dist/bin/command-registry.d.ts +25 -0
  4. package/dist/bin/command-registry.d.ts.map +1 -0
  5. package/dist/bin/command-registry.js +29 -0
  6. package/dist/bin/command-registry.js.map +1 -0
  7. package/dist/bin/spidersan.d.ts +7 -0
  8. package/dist/bin/spidersan.d.ts.map +1 -1
  9. package/dist/bin/spidersan.js +38 -57
  10. package/dist/bin/spidersan.js.map +1 -1
  11. package/dist/commands/cleanup.d.ts.map +1 -1
  12. package/dist/commands/cleanup.js +17 -3
  13. package/dist/commands/cleanup.js.map +1 -1
  14. package/dist/commands/config.d.ts.map +1 -1
  15. package/dist/commands/config.js +11 -39
  16. package/dist/commands/config.js.map +1 -1
  17. package/dist/commands/conflicts.d.ts +22 -0
  18. package/dist/commands/conflicts.d.ts.map +1 -1
  19. package/dist/commands/conflicts.js +459 -256
  20. package/dist/commands/conflicts.js.map +1 -1
  21. package/dist/commands/cross-conflicts.d.ts.map +1 -1
  22. package/dist/commands/cross-conflicts.js +7 -8
  23. package/dist/commands/cross-conflicts.js.map +1 -1
  24. package/dist/commands/depends.d.ts +4 -1
  25. package/dist/commands/depends.d.ts.map +1 -1
  26. package/dist/commands/depends.js +35 -8
  27. package/dist/commands/depends.js.map +1 -1
  28. package/dist/commands/doctor.d.ts.map +1 -1
  29. package/dist/commands/doctor.js +25 -7
  30. package/dist/commands/doctor.js.map +1 -1
  31. package/dist/commands/git-watch.d.ts +1 -1
  32. package/dist/commands/git-watch.js +1 -1
  33. package/dist/commands/github-sync.d.ts +33 -0
  34. package/dist/commands/github-sync.d.ts.map +1 -1
  35. package/dist/commands/github-sync.js +68 -57
  36. package/dist/commands/github-sync.js.map +1 -1
  37. package/dist/commands/index.d.ts +2 -13
  38. package/dist/commands/index.d.ts.map +1 -1
  39. package/dist/commands/index.js +5 -20
  40. package/dist/commands/index.js.map +1 -1
  41. package/dist/commands/merge-order.d.ts.map +1 -1
  42. package/dist/commands/merge-order.js +8 -4
  43. package/dist/commands/merge-order.js.map +1 -1
  44. package/dist/commands/merged.d.ts.map +1 -1
  45. package/dist/commands/merged.js +5 -1
  46. package/dist/commands/merged.js.map +1 -1
  47. package/dist/commands/pr-check.d.ts +24 -0
  48. package/dist/commands/pr-check.d.ts.map +1 -0
  49. package/dist/commands/pr-check.js +85 -0
  50. package/dist/commands/pr-check.js.map +1 -0
  51. package/dist/commands/ready-check.d.ts.map +1 -1
  52. package/dist/commands/ready-check.js +6 -3
  53. package/dist/commands/ready-check.js.map +1 -1
  54. package/dist/commands/register.d.ts +5 -0
  55. package/dist/commands/register.d.ts.map +1 -1
  56. package/dist/commands/register.js +14 -1
  57. package/dist/commands/register.js.map +1 -1
  58. package/dist/commands/registry-sync.d.ts.map +1 -1
  59. package/dist/commands/registry-sync.js +12 -46
  60. package/dist/commands/registry-sync.js.map +1 -1
  61. package/dist/commands/stale.d.ts.map +1 -1
  62. package/dist/commands/stale.js +8 -3
  63. package/dist/commands/stale.js.map +1 -1
  64. package/dist/commands/sync.d.ts +14 -1
  65. package/dist/commands/sync.d.ts.map +1 -1
  66. package/dist/commands/sync.js +49 -31
  67. package/dist/commands/sync.js.map +1 -1
  68. package/dist/commands/verify-trunk.d.ts +18 -0
  69. package/dist/commands/verify-trunk.d.ts.map +1 -0
  70. package/dist/commands/verify-trunk.js +77 -0
  71. package/dist/commands/verify-trunk.js.map +1 -0
  72. package/dist/commands/watch.d.ts +0 -1
  73. package/dist/commands/watch.d.ts.map +1 -1
  74. package/dist/commands/watch.js +50 -77
  75. package/dist/commands/watch.js.map +1 -1
  76. package/dist/index.d.ts +0 -3
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +0 -3
  79. package/dist/index.js.map +1 -1
  80. package/dist/lib/activity.d.ts.map +1 -1
  81. package/dist/lib/activity.js +6 -2
  82. package/dist/lib/activity.js.map +1 -1
  83. package/dist/lib/ai/context-builder.d.ts.map +1 -1
  84. package/dist/lib/ai/context-builder.js +19 -6
  85. package/dist/lib/ai/context-builder.js.map +1 -1
  86. package/dist/lib/ai/event-handler.d.ts.map +1 -1
  87. package/dist/lib/ai/event-handler.js +15 -2
  88. package/dist/lib/ai/event-handler.js.map +1 -1
  89. package/dist/lib/ai/reasoner.d.ts.map +1 -1
  90. package/dist/lib/ai/reasoner.js +63 -82
  91. package/dist/lib/ai/reasoner.js.map +1 -1
  92. package/dist/lib/ai/setup.d.ts +1 -1
  93. package/dist/lib/ai/setup.d.ts.map +1 -1
  94. package/dist/lib/ai/types.d.ts.map +1 -1
  95. package/dist/lib/ai/types.js +5 -2
  96. package/dist/lib/ai/types.js.map +1 -1
  97. package/dist/lib/ast.d.ts +10 -2
  98. package/dist/lib/ast.d.ts.map +1 -1
  99. package/dist/lib/ast.js +52 -27
  100. package/dist/lib/ast.js.map +1 -1
  101. package/dist/lib/carries.d.ts +22 -0
  102. package/dist/lib/carries.d.ts.map +1 -0
  103. package/dist/lib/carries.js +56 -0
  104. package/dist/lib/carries.js.map +1 -0
  105. package/dist/lib/colony-subscriber.d.ts +1 -1
  106. package/dist/lib/colony-subscriber.js +1 -1
  107. package/dist/lib/config.d.ts +2 -2
  108. package/dist/lib/config.d.ts.map +1 -1
  109. package/dist/lib/config.js +13 -8
  110. package/dist/lib/config.js.map +1 -1
  111. package/dist/lib/conflict-renderer.d.ts.map +1 -1
  112. package/dist/lib/conflict-renderer.js +17 -34
  113. package/dist/lib/conflict-renderer.js.map +1 -1
  114. package/dist/lib/ecosystem-env.d.ts +33 -0
  115. package/dist/lib/ecosystem-env.d.ts.map +1 -0
  116. package/dist/lib/ecosystem-env.js +62 -0
  117. package/dist/lib/ecosystem-env.js.map +1 -0
  118. package/dist/lib/git-events-subscriber.d.ts +27 -0
  119. package/dist/lib/git-events-subscriber.d.ts.map +1 -1
  120. package/dist/lib/git-events-subscriber.js +149 -58
  121. package/dist/lib/git-events-subscriber.js.map +1 -1
  122. package/dist/lib/git-merge-analyzer.d.ts +38 -0
  123. package/dist/lib/git-merge-analyzer.d.ts.map +1 -0
  124. package/dist/lib/git-merge-analyzer.js +23 -0
  125. package/dist/lib/git-merge-analyzer.js.map +1 -0
  126. package/dist/lib/git.d.ts +88 -0
  127. package/dist/lib/git.d.ts.map +1 -1
  128. package/dist/lib/git.js +499 -9
  129. package/dist/lib/git.js.map +1 -1
  130. package/dist/lib/github.d.ts +69 -1
  131. package/dist/lib/github.d.ts.map +1 -1
  132. package/dist/lib/github.js +230 -16
  133. package/dist/lib/github.js.map +1 -1
  134. package/dist/lib/graph.d.ts +15 -0
  135. package/dist/lib/graph.d.ts.map +1 -1
  136. package/dist/lib/graph.js +31 -0
  137. package/dist/lib/graph.js.map +1 -1
  138. package/dist/lib/machine.d.ts +14 -0
  139. package/dist/lib/machine.d.ts.map +1 -0
  140. package/dist/lib/machine.js +38 -0
  141. package/dist/lib/machine.js.map +1 -0
  142. package/dist/lib/notify.d.ts +68 -0
  143. package/dist/lib/notify.d.ts.map +1 -0
  144. package/dist/lib/notify.js +111 -0
  145. package/dist/lib/notify.js.map +1 -0
  146. package/dist/lib/outline.d.ts +6 -0
  147. package/dist/lib/outline.d.ts.map +1 -0
  148. package/dist/lib/outline.js +60 -0
  149. package/dist/lib/outline.js.map +1 -0
  150. package/dist/lib/push-registry.d.ts +22 -0
  151. package/dist/lib/push-registry.d.ts.map +1 -0
  152. package/dist/lib/push-registry.js +21 -0
  153. package/dist/lib/push-registry.js.map +1 -0
  154. package/dist/lib/reconcile.d.ts +100 -0
  155. package/dist/lib/reconcile.d.ts.map +1 -0
  156. package/dist/lib/reconcile.js +121 -0
  157. package/dist/lib/reconcile.js.map +1 -0
  158. package/dist/lib/security.d.ts +1 -6
  159. package/dist/lib/security.d.ts.map +1 -1
  160. package/dist/lib/security.js +1 -11
  161. package/dist/lib/security.js.map +1 -1
  162. package/dist/lib/semantic-analysis.d.ts +31 -0
  163. package/dist/lib/semantic-analysis.d.ts.map +1 -0
  164. package/dist/lib/semantic-analysis.js +120 -0
  165. package/dist/lib/semantic-analysis.js.map +1 -0
  166. package/dist/lib/supabase-credentials.d.ts +36 -0
  167. package/dist/lib/supabase-credentials.d.ts.map +1 -0
  168. package/dist/lib/supabase-credentials.js +43 -0
  169. package/dist/lib/supabase-credentials.js.map +1 -0
  170. package/dist/lib/trunk.d.ts +39 -0
  171. package/dist/lib/trunk.d.ts.map +1 -0
  172. package/dist/lib/trunk.js +116 -0
  173. package/dist/lib/trunk.js.map +1 -0
  174. package/dist/storage/adapter.d.ts +20 -1
  175. package/dist/storage/adapter.d.ts.map +1 -1
  176. package/dist/storage/branch-registry-store.d.ts +1 -1
  177. package/dist/storage/branch-registry-store.d.ts.map +1 -1
  178. package/dist/storage/factory.d.ts +0 -4
  179. package/dist/storage/factory.d.ts.map +1 -1
  180. package/dist/storage/factory.js +2 -26
  181. package/dist/storage/factory.js.map +1 -1
  182. package/dist/storage/json-branch-registry-store.d.ts +1 -1
  183. package/dist/storage/json-branch-registry-store.d.ts.map +1 -1
  184. package/dist/storage/json-branch-registry-store.js +33 -7
  185. package/dist/storage/json-branch-registry-store.js.map +1 -1
  186. package/dist/storage/local.d.ts +1 -1
  187. package/dist/storage/local.d.ts.map +1 -1
  188. package/dist/storage/local.js +2 -2
  189. package/dist/storage/local.js.map +1 -1
  190. package/dist/storage/memory-branch-registry-store.d.ts +1 -1
  191. package/dist/storage/memory-branch-registry-store.d.ts.map +1 -1
  192. package/dist/storage/memory-branch-registry-store.js +4 -1
  193. package/dist/storage/memory-branch-registry-store.js.map +1 -1
  194. package/dist/storage/supabase-registry-sync-client-impl.d.ts +1 -7
  195. package/dist/storage/supabase-registry-sync-client-impl.d.ts.map +1 -1
  196. package/dist/storage/supabase-registry-sync-client-impl.js +17 -61
  197. package/dist/storage/supabase-registry-sync-client-impl.js.map +1 -1
  198. package/dist/storage/supabase-registry-sync-client.d.ts +1 -1
  199. package/dist/storage/supabase-registry-sync-client.d.ts.map +1 -1
  200. package/dist/storage/supabase.d.ts +3 -9
  201. package/dist/storage/supabase.d.ts.map +1 -1
  202. package/dist/storage/supabase.js +4 -22
  203. package/dist/storage/supabase.js.map +1 -1
  204. package/dist/types/cloud.d.ts +1 -0
  205. package/dist/types/cloud.d.ts.map +1 -1
  206. package/package.json +88 -90
  207. package/dist/commands/activate.d.ts +0 -9
  208. package/dist/commands/activate.d.ts.map +0 -1
  209. package/dist/commands/activate.js +0 -45
  210. package/dist/commands/activate.js.map +0 -1
  211. package/dist/commands/active-windows.d.ts +0 -16
  212. package/dist/commands/active-windows.d.ts.map +0 -1
  213. package/dist/commands/active-windows.js +0 -373
  214. package/dist/commands/active-windows.js.map +0 -1
  215. package/dist/commands/ai.d.ts +0 -15
  216. package/dist/commands/ai.d.ts.map +0 -1
  217. package/dist/commands/ai.js +0 -498
  218. package/dist/commands/ai.js.map +0 -1
  219. package/dist/commands/audit-mark.d.ts +0 -12
  220. package/dist/commands/audit-mark.d.ts.map +0 -1
  221. package/dist/commands/audit-mark.js +0 -204
  222. package/dist/commands/audit-mark.js.map +0 -1
  223. package/dist/commands/auto.d.ts +0 -8
  224. package/dist/commands/auto.d.ts.map +0 -1
  225. package/dist/commands/auto.js +0 -207
  226. package/dist/commands/auto.js.map +0 -1
  227. package/dist/commands/bot.d.ts +0 -16
  228. package/dist/commands/bot.d.ts.map +0 -1
  229. package/dist/commands/bot.js +0 -416
  230. package/dist/commands/bot.js.map +0 -1
  231. package/dist/commands/close.d.ts +0 -9
  232. package/dist/commands/close.d.ts.map +0 -1
  233. package/dist/commands/close.js +0 -129
  234. package/dist/commands/close.js.map +0 -1
  235. package/dist/commands/collab-sync.d.ts +0 -14
  236. package/dist/commands/collab-sync.d.ts.map +0 -1
  237. package/dist/commands/collab-sync.js +0 -264
  238. package/dist/commands/collab-sync.js.map +0 -1
  239. package/dist/commands/collab.d.ts +0 -6
  240. package/dist/commands/collab.d.ts.map +0 -1
  241. package/dist/commands/collab.js +0 -103
  242. package/dist/commands/collab.js.map +0 -1
  243. package/dist/commands/completions.d.ts +0 -8
  244. package/dist/commands/completions.d.ts.map +0 -1
  245. package/dist/commands/completions.js +0 -83
  246. package/dist/commands/completions.js.map +0 -1
  247. package/dist/commands/daily.d.ts +0 -7
  248. package/dist/commands/daily.d.ts.map +0 -1
  249. package/dist/commands/daily.js +0 -171
  250. package/dist/commands/daily.js.map +0 -1
  251. package/dist/commands/dashboard.d.ts +0 -22
  252. package/dist/commands/dashboard.d.ts.map +0 -1
  253. package/dist/commands/dashboard.js +0 -401
  254. package/dist/commands/dashboard.js.map +0 -1
  255. package/dist/commands/demo.d.ts +0 -3
  256. package/dist/commands/demo.d.ts.map +0 -1
  257. package/dist/commands/demo.js +0 -118
  258. package/dist/commands/demo.js.map +0 -1
  259. package/dist/commands/ecosystem-loader.d.ts +0 -14
  260. package/dist/commands/ecosystem-loader.d.ts.map +0 -1
  261. package/dist/commands/ecosystem-loader.js +0 -90
  262. package/dist/commands/ecosystem-loader.js.map +0 -1
  263. package/dist/commands/fleet-status.d.ts +0 -14
  264. package/dist/commands/fleet-status.d.ts.map +0 -1
  265. package/dist/commands/fleet-status.js +0 -127
  266. package/dist/commands/fleet-status.js.map +0 -1
  267. package/dist/commands/inbox.d.ts +0 -3
  268. package/dist/commands/inbox.d.ts.map +0 -1
  269. package/dist/commands/inbox.js +0 -120
  270. package/dist/commands/inbox.js.map +0 -1
  271. package/dist/commands/intent-scan.d.ts +0 -17
  272. package/dist/commands/intent-scan.d.ts.map +0 -1
  273. package/dist/commands/intent-scan.js +0 -336
  274. package/dist/commands/intent-scan.js.map +0 -1
  275. package/dist/commands/key-import.d.ts +0 -3
  276. package/dist/commands/key-import.d.ts.map +0 -1
  277. package/dist/commands/key-import.js +0 -54
  278. package/dist/commands/key-import.js.map +0 -1
  279. package/dist/commands/keygen.d.ts +0 -3
  280. package/dist/commands/keygen.d.ts.map +0 -1
  281. package/dist/commands/keygen.js +0 -53
  282. package/dist/commands/keygen.js.map +0 -1
  283. package/dist/commands/keys.d.ts +0 -3
  284. package/dist/commands/keys.d.ts.map +0 -1
  285. package/dist/commands/keys.js +0 -56
  286. package/dist/commands/keys.js.map +0 -1
  287. package/dist/commands/lock.d.ts +0 -11
  288. package/dist/commands/lock.d.ts.map +0 -1
  289. package/dist/commands/lock.js +0 -257
  290. package/dist/commands/lock.js.map +0 -1
  291. package/dist/commands/mcp-health.d.ts +0 -3
  292. package/dist/commands/mcp-health.d.ts.map +0 -1
  293. package/dist/commands/mcp-health.js +0 -305
  294. package/dist/commands/mcp-health.js.map +0 -1
  295. package/dist/commands/mcp-restart.d.ts +0 -3
  296. package/dist/commands/mcp-restart.d.ts.map +0 -1
  297. package/dist/commands/mcp-restart.js +0 -176
  298. package/dist/commands/mcp-restart.js.map +0 -1
  299. package/dist/commands/monitor.d.ts +0 -3
  300. package/dist/commands/monitor.d.ts.map +0 -1
  301. package/dist/commands/monitor.js +0 -153
  302. package/dist/commands/monitor.js.map +0 -1
  303. package/dist/commands/msg-read.d.ts +0 -3
  304. package/dist/commands/msg-read.d.ts.map +0 -1
  305. package/dist/commands/msg-read.js +0 -95
  306. package/dist/commands/msg-read.js.map +0 -1
  307. package/dist/commands/pulse.d.ts +0 -13
  308. package/dist/commands/pulse.d.ts.map +0 -1
  309. package/dist/commands/pulse.js +0 -174
  310. package/dist/commands/pulse.js.map +0 -1
  311. package/dist/commands/queen.d.ts +0 -25
  312. package/dist/commands/queen.d.ts.map +0 -1
  313. package/dist/commands/queen.js +0 -326
  314. package/dist/commands/queen.js.map +0 -1
  315. package/dist/commands/radar.d.ts +0 -3
  316. package/dist/commands/radar.d.ts.map +0 -1
  317. package/dist/commands/radar.js +0 -147
  318. package/dist/commands/radar.js.map +0 -1
  319. package/dist/commands/rescue.d.ts +0 -11
  320. package/dist/commands/rescue.d.ts.map +0 -1
  321. package/dist/commands/rescue.js +0 -147
  322. package/dist/commands/rescue.js.map +0 -1
  323. package/dist/commands/semantic.d.ts +0 -3
  324. package/dist/commands/semantic.d.ts.map +0 -1
  325. package/dist/commands/semantic.js +0 -62
  326. package/dist/commands/semantic.js.map +0 -1
  327. package/dist/commands/send.d.ts +0 -3
  328. package/dist/commands/send.d.ts.map +0 -1
  329. package/dist/commands/send.js +0 -121
  330. package/dist/commands/send.js.map +0 -1
  331. package/dist/commands/status.d.ts +0 -9
  332. package/dist/commands/status.d.ts.map +0 -1
  333. package/dist/commands/status.js +0 -41
  334. package/dist/commands/status.js.map +0 -1
  335. package/dist/commands/sync-advisor.d.ts +0 -14
  336. package/dist/commands/sync-advisor.d.ts.map +0 -1
  337. package/dist/commands/sync-advisor.js +0 -110
  338. package/dist/commands/sync-advisor.js.map +0 -1
  339. package/dist/commands/tension.d.ts +0 -12
  340. package/dist/commands/tension.d.ts.map +0 -1
  341. package/dist/commands/tension.js +0 -262
  342. package/dist/commands/tension.js.map +0 -1
  343. package/dist/commands/torrent.d.ts +0 -9
  344. package/dist/commands/torrent.d.ts.map +0 -1
  345. package/dist/commands/torrent.js +0 -470
  346. package/dist/commands/torrent.js.map +0 -1
  347. package/dist/commands/tui.d.ts +0 -8
  348. package/dist/commands/tui.d.ts.map +0 -1
  349. package/dist/commands/tui.js +0 -15
  350. package/dist/commands/tui.js.map +0 -1
  351. package/dist/commands/wake.d.ts +0 -9
  352. package/dist/commands/wake.d.ts.map +0 -1
  353. package/dist/commands/wake.js +0 -188
  354. package/dist/commands/wake.js.map +0 -1
  355. package/dist/commands/welcome.d.ts +0 -8
  356. package/dist/commands/welcome.d.ts.map +0 -1
  357. package/dist/commands/welcome.js +0 -85
  358. package/dist/commands/welcome.js.map +0 -1
  359. package/dist/commands/who-owns.d.ts +0 -3
  360. package/dist/commands/who-owns.d.ts.map +0 -1
  361. package/dist/commands/who-owns.js +0 -68
  362. package/dist/commands/who-owns.js.map +0 -1
  363. package/dist/commands/who-touched.d.ts +0 -9
  364. package/dist/commands/who-touched.d.ts.map +0 -1
  365. package/dist/commands/who-touched.js +0 -198
  366. package/dist/commands/who-touched.js.map +0 -1
  367. package/dist/lib/crdt.d.ts +0 -83
  368. package/dist/lib/crdt.d.ts.map +0 -1
  369. package/dist/lib/crdt.js +0 -160
  370. package/dist/lib/crdt.js.map +0 -1
  371. package/dist/lib/daily-bridge.d.ts +0 -41
  372. package/dist/lib/daily-bridge.d.ts.map +0 -1
  373. package/dist/lib/daily-bridge.js +0 -186
  374. package/dist/lib/daily-bridge.js.map +0 -1
  375. package/dist/lib/hub.d.ts +0 -31
  376. package/dist/lib/hub.d.ts.map +0 -1
  377. package/dist/lib/hub.js +0 -92
  378. package/dist/lib/hub.js.map +0 -1
  379. package/dist/lib/license.d.ts +0 -61
  380. package/dist/lib/license.d.ts.map +0 -1
  381. package/dist/lib/license.js +0 -171
  382. package/dist/lib/license.js.map +0 -1
  383. package/dist/lib/pulse-renderer.d.ts +0 -19
  384. package/dist/lib/pulse-renderer.d.ts.map +0 -1
  385. package/dist/lib/pulse-renderer.js +0 -108
  386. package/dist/lib/pulse-renderer.js.map +0 -1
  387. package/dist/lib/repo-scanner.d.ts +0 -32
  388. package/dist/lib/repo-scanner.d.ts.map +0 -1
  389. package/dist/lib/repo-scanner.js +0 -160
  390. package/dist/lib/repo-scanner.js.map +0 -1
  391. package/dist/lib/salvage-analyzer.d.ts +0 -29
  392. package/dist/lib/salvage-analyzer.d.ts.map +0 -1
  393. package/dist/lib/salvage-analyzer.js +0 -121
  394. package/dist/lib/salvage-analyzer.js.map +0 -1
  395. package/dist/lib/session-logger.d.ts +0 -54
  396. package/dist/lib/session-logger.d.ts.map +0 -1
  397. package/dist/lib/session-logger.js +0 -136
  398. package/dist/lib/session-logger.js.map +0 -1
  399. package/dist/lib/symbol-extractor.d.ts +0 -41
  400. package/dist/lib/symbol-extractor.d.ts.map +0 -1
  401. package/dist/lib/symbol-extractor.js +0 -78
  402. package/dist/lib/symbol-extractor.js.map +0 -1
  403. package/dist/storage/git-messages.d.ts +0 -53
  404. package/dist/storage/git-messages.d.ts.map +0 -1
  405. package/dist/storage/git-messages.js +0 -376
  406. package/dist/storage/git-messages.js.map +0 -1
  407. package/dist/storage/local-messages.d.ts +0 -37
  408. package/dist/storage/local-messages.d.ts.map +0 -1
  409. package/dist/storage/local-messages.js +0 -151
  410. package/dist/storage/local-messages.js.map +0 -1
  411. package/dist/storage/message-adapter.d.ts +0 -86
  412. package/dist/storage/message-adapter.d.ts.map +0 -1
  413. package/dist/storage/message-adapter.js +0 -28
  414. package/dist/storage/message-adapter.js.map +0 -1
  415. package/dist/storage/message-factory.d.ts +0 -36
  416. package/dist/storage/message-factory.d.ts.map +0 -1
  417. package/dist/storage/message-factory.js +0 -99
  418. package/dist/storage/message-factory.js.map +0 -1
  419. package/dist/storage/mycmail-adapter.d.ts +0 -38
  420. package/dist/storage/mycmail-adapter.d.ts.map +0 -1
  421. package/dist/storage/mycmail-adapter.js +0 -300
  422. package/dist/storage/mycmail-adapter.js.map +0 -1
  423. package/dist/tui/dashboard.d.ts +0 -35
  424. package/dist/tui/dashboard.d.ts.map +0 -1
  425. package/dist/tui/dashboard.js +0 -199
  426. package/dist/tui/dashboard.js.map +0 -1
  427. package/dist/tui/screen.d.ts +0 -14
  428. package/dist/tui/screen.d.ts.map +0 -1
  429. package/dist/tui/screen.js +0 -138
  430. package/dist/tui/screen.js.map +0 -1
@@ -1,61 +0,0 @@
1
- /**
2
- * Spidersan License Verification
3
- *
4
- * Ed25519-based license verification for Pro features.
5
- * Public key is embedded; private key is kept by treebird for signing.
6
- */
7
- export declare const FREE_TIER_LIMITS: {
8
- maxConcurrentBranches: number;
9
- };
10
- export type ProFeature = 'unlimited_branches' | 'mcp_server' | 'conflict_prediction' | 'team_sync';
11
- export interface LicenseData {
12
- email: string;
13
- plan: 'free' | 'pro';
14
- expiresAt: string;
15
- issuedAt: string;
16
- features: ProFeature[];
17
- }
18
- export interface License {
19
- data: LicenseData;
20
- isValid: boolean;
21
- isExpired: boolean;
22
- }
23
- /**
24
- * Verify a license string using Ed25519 detached signature
25
- */
26
- export declare function verifyLicense(licenseString: string): License | null;
27
- /**
28
- * Save a license key to disk
29
- */
30
- export declare function saveLicense(licenseString: string): boolean;
31
- /**
32
- * Load the saved license from disk
33
- */
34
- export declare function loadLicense(): License | null;
35
- /**
36
- * Check if user has a valid Pro license
37
- */
38
- export declare function isPro(): boolean;
39
- /**
40
- * Check if a specific Pro feature is enabled
41
- */
42
- export declare function hasFeature(feature: ProFeature): boolean;
43
- /**
44
- * Get license status summary
45
- */
46
- export declare function getLicenseStatus(): {
47
- plan: 'free' | 'pro';
48
- email?: string;
49
- expiresAt?: string;
50
- features: ProFeature[];
51
- daysRemaining?: number;
52
- };
53
- /**
54
- * Check branch limit and throw if exceeded (for free tier)
55
- */
56
- export declare function checkBranchLimit(currentBranchCount: number): Promise<void>;
57
- /**
58
- * Print Pro upsell message (soft sell)
59
- */
60
- export declare function printProUpsell(feature: string): void;
61
- //# sourceMappingURL=license.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/lib/license.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,eAAO,MAAM,gBAAgB;;CAE5B,CAAC;AAGF,MAAM,MAAM,UAAU,GAChB,oBAAoB,GACpB,YAAY,GACZ,qBAAqB,GACrB,WAAW,CAAC;AAElB,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,UAAU,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACtB;AAyBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CA8BnE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAQ1D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,GAAG,IAAI,CAS5C;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,OAAO,CAM/B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAIvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAChC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAqBA;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAMpD"}
@@ -1,171 +0,0 @@
1
- /**
2
- * Spidersan License Verification
3
- *
4
- * Ed25519-based license verification for Pro features.
5
- * Public key is embedded; private key is kept by treebird for signing.
6
- */
7
- import nacl from 'tweetnacl';
8
- import util from 'tweetnacl-util';
9
- import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
10
- import { join } from 'path';
11
- import { homedir } from 'os';
12
- // License storage location
13
- const LICENSE_DIR = join(homedir(), '.spidersan');
14
- const LICENSE_FILE = join(LICENSE_DIR, 'license.key');
15
- // Treebird's public key for license verification (Ed25519)
16
- // This is the ONLY key that can sign valid licenses
17
- const TREEBIRD_PUBLIC_KEY = 'XqIqSlybZGKkKemgLKKl8P9MepnObhcJcxxZHtgG8/o=';
18
- // Free tier limits
19
- export const FREE_TIER_LIMITS = {
20
- maxConcurrentBranches: 5,
21
- };
22
- /**
23
- * Ensure license directory exists
24
- */
25
- function ensureLicenseDir() {
26
- if (!existsSync(LICENSE_DIR)) {
27
- mkdirSync(LICENSE_DIR, { recursive: true });
28
- }
29
- }
30
- /**
31
- * Parse a license string into components
32
- * Format: LICENSE_V1.BASE64_DATA.BASE64_SIGNATURE
33
- */
34
- function parseLicenseString(licenseString) {
35
- const parts = licenseString.trim().split('.');
36
- if (parts.length !== 3)
37
- return null;
38
- const [version, data, signature] = parts;
39
- if (version !== 'LICENSE_V1')
40
- return null;
41
- return { version, data, signature };
42
- }
43
- /**
44
- * Verify a license string using Ed25519 detached signature
45
- */
46
- export function verifyLicense(licenseString) {
47
- try {
48
- const parsed = parseLicenseString(licenseString);
49
- if (!parsed)
50
- return null;
51
- const dataBytes = util.decodeBase64(parsed.data);
52
- // Production mode - verify detached Ed25519 signature
53
- const publicKey = util.decodeBase64(TREEBIRD_PUBLIC_KEY);
54
- const signatureBytes = util.decodeBase64(parsed.signature);
55
- // Verify the detached signature
56
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
- const isValid = nacl.sign.detached.verify(dataBytes, signatureBytes, publicKey);
58
- if (!isValid)
59
- return null;
60
- const dataString = util.encodeUTF8(dataBytes);
61
- const data = JSON.parse(dataString);
62
- const expiresAt = new Date(data.expiresAt);
63
- const isExpired = expiresAt < new Date();
64
- return {
65
- data,
66
- isValid: true,
67
- isExpired,
68
- };
69
- }
70
- catch {
71
- return null;
72
- }
73
- }
74
- /**
75
- * Save a license key to disk
76
- */
77
- export function saveLicense(licenseString) {
78
- try {
79
- ensureLicenseDir();
80
- writeFileSync(LICENSE_FILE, licenseString.trim(), { mode: 0o600 });
81
- return true;
82
- }
83
- catch {
84
- return false;
85
- }
86
- }
87
- /**
88
- * Load the saved license from disk
89
- */
90
- export function loadLicense() {
91
- if (!existsSync(LICENSE_FILE))
92
- return null;
93
- try {
94
- const licenseString = readFileSync(LICENSE_FILE, 'utf-8');
95
- return verifyLicense(licenseString);
96
- }
97
- catch {
98
- return null;
99
- }
100
- }
101
- /**
102
- * Check if user has a valid Pro license
103
- */
104
- export function isPro() {
105
- const license = loadLicense();
106
- if (!license)
107
- return false;
108
- if (!license.isValid)
109
- return false;
110
- if (license.isExpired)
111
- return false;
112
- return license.data.plan === 'pro';
113
- }
114
- /**
115
- * Check if a specific Pro feature is enabled
116
- */
117
- export function hasFeature(feature) {
118
- const license = loadLicense();
119
- if (!license || !license.isValid || license.isExpired)
120
- return false;
121
- return license.data.features.includes(feature);
122
- }
123
- /**
124
- * Get license status summary
125
- */
126
- export function getLicenseStatus() {
127
- const license = loadLicense();
128
- if (!license || !license.isValid || license.isExpired) {
129
- return {
130
- plan: 'free',
131
- features: [],
132
- };
133
- }
134
- const expiresAt = new Date(license.data.expiresAt);
135
- const now = new Date();
136
- const daysRemaining = Math.ceil((expiresAt.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
137
- return {
138
- plan: license.data.plan,
139
- email: license.data.email,
140
- expiresAt: license.data.expiresAt,
141
- features: license.data.features,
142
- daysRemaining,
143
- };
144
- }
145
- /**
146
- * Check branch limit and throw if exceeded (for free tier)
147
- */
148
- export async function checkBranchLimit(currentBranchCount) {
149
- if (isPro())
150
- return; // Pro has unlimited
151
- if (currentBranchCount >= FREE_TIER_LIMITS.maxConcurrentBranches) {
152
- console.error(`\n🕷️ Free tier limit reached: ${currentBranchCount}/${FREE_TIER_LIMITS.maxConcurrentBranches} branches`);
153
- console.error('');
154
- console.error(' Options:');
155
- console.error(' • Clean up: spidersan merged <branch> or spidersan abandon <branch>');
156
- console.error(' • Upgrade: spidersan.dev/pro for unlimited branches');
157
- console.error('');
158
- process.exit(1);
159
- }
160
- }
161
- /**
162
- * Print Pro upsell message (soft sell)
163
- */
164
- export function printProUpsell(feature) {
165
- if (isPro())
166
- return;
167
- console.log('');
168
- console.log(`💎 Pro tip: Upgrade for ${feature}`);
169
- console.log(' spidersan.dev/pro');
170
- }
171
- //# sourceMappingURL=license.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"license.js","sourceRoot":"","sources":["../../src/lib/license.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import type { DriftResult, DriftSkipped } from './remote-drift.js';
2
- export interface PulseRenderOptions {
3
- branch: string;
4
- registered: boolean;
5
- colonySynced?: number;
6
- colonyOffline?: boolean;
7
- activeBranches?: number;
8
- conflicts: Array<{
9
- tier: number;
10
- branch: string;
11
- files: string[];
12
- agent?: string;
13
- }>;
14
- drift?: DriftResult | DriftSkipped | null;
15
- verbose?: boolean;
16
- }
17
- /** Pure. Returns terminal string for spidersan pulse human output. */
18
- export declare function renderPulseReport(opts: PulseRenderOptions): string;
19
- //# sourceMappingURL=pulse-renderer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pulse-renderer.d.ts","sourceRoot":"","sources":["../../src/lib/pulse-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpF,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAqDlE"}
@@ -1,108 +0,0 @@
1
- /** Pure. Returns terminal string for spidersan pulse human output. */
2
- export function renderPulseReport(opts) {
3
- const lines = [];
4
- if (!opts.registered) {
5
- lines.push(`🕷️ Branch "${opts.branch}" is not registered.`);
6
- lines.push(' Run: spidersan register --files "..."');
7
- if (opts.colonyOffline === false) {
8
- lines.push(` Colony: synced ${opts.colonySynced ?? 0} claim(s)`);
9
- }
10
- appendDrift(lines, opts.drift);
11
- return lines.join('\n').trimEnd();
12
- }
13
- const colonyStatus = opts.colonyOffline
14
- ? '⚠ offline'
15
- : `✅ synced ${opts.colonySynced ?? 0} claim(s)`;
16
- lines.push(`🕷️ SPIDERSAN PULSE — "${opts.branch}"`);
17
- lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
18
- lines.push(`Colony: ${colonyStatus}`);
19
- lines.push(`Branches: ${opts.activeBranches ?? 1} active`);
20
- lines.push('');
21
- if (opts.conflicts.length === 0) {
22
- lines.push('✅ No conflicts detected. You\'re good to go!');
23
- }
24
- else {
25
- const tierIcons = { 1: '🟡', 2: '🟠', 3: '🔴' };
26
- const tierLabels = { 1: 'WARN', 2: 'PAUSE', 3: 'BLOCK' };
27
- for (const conflict of opts.conflicts) {
28
- const icon = tierIcons[conflict.tier] ?? '🟡';
29
- const label = tierLabels[conflict.tier] ?? 'WARN';
30
- const agentTag = conflict.agent ? ` [@${conflict.agent}]` : '';
31
- lines.push(`${icon} TIER ${conflict.tier} ${label}: ${conflict.branch}${agentTag}`);
32
- for (const file of conflict.files) {
33
- lines.push(` • ${file}`);
34
- }
35
- lines.push('');
36
- }
37
- const tier3 = opts.conflicts.filter((conflict) => conflict.tier === 3).length;
38
- const tier2 = opts.conflicts.filter((conflict) => conflict.tier === 2).length;
39
- const tier1 = opts.conflicts.filter((conflict) => conflict.tier === 1).length;
40
- lines.push('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
41
- lines.push(`📊 Summary: 🔴 ${tier3} BLOCK | 🟠 ${tier2} PAUSE | 🟡 ${tier1} WARN`);
42
- }
43
- appendDrift(lines, opts.drift);
44
- return lines.join('\n').trimEnd();
45
- }
46
- function appendDrift(lines, drift) {
47
- if (!drift) {
48
- return;
49
- }
50
- lines.push('');
51
- if ('skipped' in drift) {
52
- lines.push(`⚠ Remote drift check skipped: ${drift.reason}`);
53
- return;
54
- }
55
- lines.push(...renderDriftReportLines(drift));
56
- }
57
- function tierIcon(tier) {
58
- if (tier === 3)
59
- return '🔴';
60
- if (tier === 2)
61
- return '🟠';
62
- if (tier === 1)
63
- return '🟡';
64
- return '⚪';
65
- }
66
- function renderDriftReportLines(drift) {
67
- if (drift.state === 'synced' || drift.remoteAhead === 0) {
68
- return ['✅ Remote drift: 0 commits ahead. Safe to push.'];
69
- }
70
- const tierLabels = { 1: 'TIER 1', 2: 'TIER 2', 3: 'TIER 3' };
71
- const lines = [
72
- `🕷️ REMOTE DRIFT — "${drift.branch}"`,
73
- '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━',
74
- `Remote is ${drift.remoteAhead} commit(s) ahead of local.`,
75
- '',
76
- 'Drift zone (files touched by remote commits):',
77
- ];
78
- for (const entry of drift.driftZone.map((file) => {
79
- const found = [...drift.registeredInDrift, ...drift.unstagedInDrift].find((item) => item.file === file);
80
- return found ?? { file, registered: false, tier: null, unstaged: false };
81
- })) {
82
- const parts = [];
83
- if (entry.registered && entry.tier !== null) {
84
- parts.push(`registered — ${tierIcon(entry.tier)} ${tierLabels[entry.tier]}`);
85
- }
86
- if (entry.unstaged) {
87
- parts.push('unstaged modification ⚠');
88
- }
89
- const label = parts.length > 0 ? ` [${parts.join('] [')}]` : ' [not registered, not modified]';
90
- lines.push(` ${entry.file}${label}`);
91
- }
92
- lines.push('');
93
- if (drift.registeredInDrift.length > 0) {
94
- lines.push(`⚠ ${drift.registeredInDrift.length} registered file(s) in drift zone. Rebase will conflict.`);
95
- }
96
- if (drift.rebaseContinueRisk) {
97
- lines.push('⚠ File(s) with unstaged modifications — git rebase --continue may block even');
98
- lines.push(' after resolving conflict markers. Fix: git checkout HEAD -- <file>');
99
- for (const entry of drift.unstagedInDrift) {
100
- lines.push(` ${entry.file}`);
101
- }
102
- }
103
- lines.push('');
104
- lines.push(' git fetch origin');
105
- lines.push(` git log --oneline ${drift.remote} -3`);
106
- return lines;
107
- }
108
- //# sourceMappingURL=pulse-renderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pulse-renderer.js","sourceRoot":"","sources":["../../src/lib/pulse-renderer.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Multi-repo git state scanner for Smart Sync Advisor (F4)
3
- *
4
- * Scans all repos under a base directory and identifies:
5
- * - Unpushed commits (ahead of remote)
6
- * - Unpulled commits (behind remote)
7
- * - Dirty state (uncommitted files)
8
- * - Diverged branches (ahead AND behind)
9
- *
10
- * Uses execFileSync with { cwd: repoPath } — no process.chdir()
11
- */
12
- import type { SyncRecommendation } from '../types/cloud.js';
13
- export interface RepoState {
14
- name: string;
15
- path: string;
16
- branch: string;
17
- unpushed: number;
18
- unpulled: number;
19
- isDirty: boolean;
20
- isDiverged: boolean;
21
- hasUpstream: boolean;
22
- }
23
- export declare function scanRepo(repoPath: string): RepoState | null;
24
- /**
25
- * Scan all repos under a base directory.
26
- */
27
- export declare function scanAllRepos(basePath: string): RepoState[];
28
- /**
29
- * Convert RepoState[] to SyncRecommendation[].
30
- */
31
- export declare function generateRecommendations(states: RepoState[]): SyncRecommendation[];
32
- //# sourceMappingURL=repo-scanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repo-scanner.d.ts","sourceRoot":"","sources":["../../src/lib/repo-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACxB;AAQD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CA0D3D;AA0BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAG1D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,kBAAkB,EAAE,CA0CjF"}
@@ -1,160 +0,0 @@
1
- /**
2
- * Multi-repo git state scanner for Smart Sync Advisor (F4)
3
- *
4
- * Scans all repos under a base directory and identifies:
5
- * - Unpushed commits (ahead of remote)
6
- * - Unpulled commits (behind remote)
7
- * - Dirty state (uncommitted files)
8
- * - Diverged branches (ahead AND behind)
9
- *
10
- * Uses execFileSync with { cwd: repoPath } — no process.chdir()
11
- */
12
- import { execFileSync } from 'child_process';
13
- import { readdirSync, existsSync } from 'fs';
14
- import { basename, join } from 'path';
15
- /**
16
- * Scan a single repository for git state.
17
- * Returns null if not a git repo or unreadable.
18
- */
19
- const SKIP_DIRS = new Set(['node_modules', 'dist', 'build', '.cache', '.next']);
20
- export function scanRepo(repoPath) {
21
- try {
22
- if (!existsSync(join(repoPath, '.git')))
23
- return null;
24
- let branch = '';
25
- try {
26
- branch = execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
27
- cwd: repoPath, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
28
- }).trim();
29
- }
30
- catch {
31
- return null;
32
- }
33
- let hasUpstream = false;
34
- let unpushed = 0;
35
- let unpulled = 0;
36
- try {
37
- execFileSync('git', ['rev-parse', '--abbrev-ref', '@{u}'], {
38
- cwd: repoPath, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
39
- });
40
- hasUpstream = true;
41
- try {
42
- unpushed = parseInt(execFileSync('git', ['rev-list', '--count', 'HEAD..@{u}'], {
43
- cwd: repoPath, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
44
- }).trim(), 10) || 0;
45
- }
46
- catch { /* no commits to push */ }
47
- try {
48
- unpulled = parseInt(execFileSync('git', ['rev-list', '--count', '@{u}..HEAD'], {
49
- cwd: repoPath, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
50
- }).trim(), 10) || 0;
51
- }
52
- catch { /* no commits to pull */ }
53
- }
54
- catch {
55
- hasUpstream = false;
56
- }
57
- let isDirty = false;
58
- try {
59
- isDirty = execFileSync('git', ['status', '--porcelain'], {
60
- cwd: repoPath, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'],
61
- }).trim().length > 0;
62
- }
63
- catch { /* error checking status */ }
64
- return {
65
- name: basename(repoPath),
66
- path: repoPath,
67
- branch,
68
- unpushed,
69
- unpulled,
70
- isDirty,
71
- isDiverged: unpushed > 0 && unpulled > 0,
72
- hasUpstream,
73
- };
74
- }
75
- catch {
76
- return null;
77
- }
78
- }
79
- function findRepos(basePath, maxDepth = 2, currentDepth = 0) {
80
- const repos = [];
81
- if (currentDepth >= maxDepth)
82
- return repos;
83
- try {
84
- const entries = readdirSync(basePath, { withFileTypes: true });
85
- for (const entry of entries) {
86
- if (entry.name.startsWith('.') && entry.name !== '.git')
87
- continue;
88
- if (SKIP_DIRS.has(entry.name))
89
- continue;
90
- const fullPath = join(basePath, entry.name);
91
- if (entry.isDirectory()) {
92
- if (existsSync(join(fullPath, '.git'))) {
93
- repos.push(fullPath);
94
- }
95
- else {
96
- repos.push(...findRepos(fullPath, maxDepth, currentDepth + 1));
97
- }
98
- }
99
- }
100
- }
101
- catch { /* permission denied or other errors */ }
102
- return repos;
103
- }
104
- /**
105
- * Scan all repos under a base directory.
106
- */
107
- export function scanAllRepos(basePath) {
108
- const repos = findRepos(basePath);
109
- return repos.map(scanRepo).filter((s) => s !== null);
110
- }
111
- /**
112
- * Convert RepoState[] to SyncRecommendation[].
113
- */
114
- export function generateRecommendations(states) {
115
- return states.map((state) => {
116
- let action = 'up-to-date';
117
- let priority = 'low';
118
- let reason = 'Repository is in sync';
119
- if (!state.hasUpstream) {
120
- action = 'conflict';
121
- priority = 'medium';
122
- reason = 'No upstream tracking branch configured';
123
- }
124
- else if (state.isDiverged) {
125
- action = 'rebase';
126
- priority = 'high';
127
- reason = `${state.unpushed} commits ahead, ${state.unpulled} commits behind (diverged)`;
128
- }
129
- else if (state.unpushed > 0) {
130
- action = 'push';
131
- priority = 'high';
132
- reason = `${state.unpushed} commit${state.unpushed === 1 ? '' : 's'} ahead of remote`;
133
- }
134
- else if (state.unpulled > 0) {
135
- action = 'pull';
136
- priority = 'high';
137
- reason = `${state.unpulled} commit${state.unpulled === 1 ? '' : 's'} behind remote`;
138
- }
139
- else if (state.isDirty) {
140
- action = 'conflict';
141
- priority = 'medium';
142
- reason = 'Uncommitted changes detected';
143
- }
144
- return {
145
- repo_name: state.name,
146
- branch_name: state.branch,
147
- machine_name: '',
148
- action,
149
- reason,
150
- priority,
151
- };
152
- }).sort((a, b) => {
153
- const pOrder = { high: 0, medium: 1, low: 2 };
154
- const aOrder = { push: 0, pull: 1, rebase: 2, conflict: 3, 'up-to-date': 4 };
155
- if (pOrder[a.priority] !== pOrder[b.priority])
156
- return pOrder[a.priority] - pOrder[b.priority];
157
- return (aOrder[a.action] ?? 5) - (aOrder[b.action] ?? 5);
158
- });
159
- }
160
- //# sourceMappingURL=repo-scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repo-scanner.js","sourceRoot":"","sources":["../../src/lib/repo-scanner.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- /**
2
- * salvage-analyzer.ts — Phase C3 semantic intelligence
3
- *
4
- * Diff abandoned branch symbols vs main and report unique symbols
5
- * not present in main (salvageable code). Wired into `rescue --symbols`.
6
- */
7
- export interface SalvageableSymbol {
8
- name: string;
9
- kind: string;
10
- line: number;
11
- file: string;
12
- branch: string;
13
- }
14
- export interface SalvageReport {
15
- branch: string;
16
- analysedFiles: number;
17
- salvageable: SalvageableSymbol[];
18
- alreadyInMain: number;
19
- }
20
- /**
21
- * Analyse an abandoned branch for symbols not present in main.
22
- * Uses ts-morph (via symbol-extractor) for reliable TypeScript parsing.
23
- */
24
- export declare function analyzeSalvage(branch: string, mainRef?: string): Promise<SalvageReport>;
25
- /**
26
- * Format a salvage report for CLI display.
27
- */
28
- export declare function formatSalvageReport(report: SalvageReport): string;
29
- //# sourceMappingURL=salvage-analyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"salvage-analyzer.d.ts","sourceRoot":"","sources":["../../src/lib/salvage-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,SAAS,GACf,OAAO,CAAC,aAAa,CAAC,CAwFxB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAmBjE"}