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
@@ -6,37 +6,35 @@
6
6
  */
7
7
  import { chat } from './llm-client.js';
8
8
  // ─── Known Command Registry ──────────────────────────────────
9
- // Derived from src/commands/* + spidersan --help. Used to flag model hallucinations at output time.
10
- // Update when new commands ship.
9
+ // Must equal the CLI's registered commands (src/bin/command-registry.ts); tests/reasoner.validator.test.ts
10
+ // checks both directions. Used to flag model hallucinations at output time.
11
11
  const KNOWN_SPIDERSAN_COMMANDS = new Set([
12
- 'abandon', 'advise', 'ai-ping', 'ai-setup', 'ai-telemetry', 'ask', 'auto',
13
- 'bot', 'check-opt-out', 'cleanup', 'collab', 'config', 'conflicts', 'context',
14
- 'cross-conflicts', 'daily', 'dashboard', 'depends', 'doctor', 'explain',
15
- 'fleet-status', 'git-watch', 'github-sync', 'init', 'list', 'log', 'merge-order', 'merged',
16
- 'pulse', 'queen', 'ready-check', 'rebase-helper', 'register', 'registry-sync',
17
- 'rescue', 'stale', 'sync', 'sync-advisor', 'torrent', 'watch', 'welcome',
12
+ 'abandon', 'cleanup', 'config', 'conflicts', 'context', 'cross-conflicts', 'depends',
13
+ 'doctor', 'git-watch', 'github-sync', 'init', 'list', 'log', 'merge-order', 'merged',
14
+ 'pr-check', 'ready-check', 'rebase-helper', 'register', 'registry-sync', 'stale',
15
+ 'sync', 'verify-trunk', 'watch',
18
16
  ]);
19
17
  // ─── Embedded Scenario Playbook ─────────────────────────────
20
- // Optimized via PHC: Sonnet 4.6 proposer + Gemma 4 executor (score: 0.9718)
18
+ // Optimized via PHC: Sonnet 4.6 proposer + Gemma 4 executor (score: 0.9718), measured before the
19
+ // 0.20.0 trim removed the scenarios for dropped commands; the trimmed text is unscored.
21
20
  // Source: promptclimb/prompt_sonnet_spidersan.md
22
21
  const SCENARIO_PLAYBOOK = `## Spidersan Command Reference & Scenarios
23
22
 
24
23
  ### SCENARIO 1: New Repo Setup
25
24
  Situation: Starting work in a new or uninitialized repository.
26
- IMPORTANT: When setting up Spidersan for the first time, ALWAYS recommend \`welcome\` as the very first command — it provides guided onboarding before any other setup step.
27
- Commands: welcome → spidersan init → register --files "f1,f2" --agent <id> → doctor → list
25
+ Commands: spidersan init → register --files "f1,f2" --agent <id> → doctor → list
28
26
  Reminder: Always verify repo health with \`doctor\` before proceeding.
29
27
 
30
28
  ### SCENARIO 2: Ghost/Abandoned Branches
31
29
  Situation: Unregistered branches drifting — some with salvageable code, others dead.
32
- Commands: rescue --scan → rescue --symbols <branch> → sync
33
- Decision: If \`rescue --symbols\` identifies salvageable code → cherry-pick. If empty/WIP → abandon.
30
+ Commands: sync → stale → log --branch <branch> → abandon <branch>
31
+ Decision: If the branch has unique commits worth keeping → cherry-pick them onto a fresh branch. If empty/WIP → abandon.
34
32
 
35
33
  ### SCENARIO 3: File Conflicts (Tier System)
36
34
  - TIER 3 (BLOCK): Critical file (auth, secrets, env) — halt, coordinate immediately.
37
35
  - TIER 2 (PAUSE): Important file (package.json, config, server) — coordinate before merging.
38
36
  - TIER 1 (WARN): Adjacent/related files — proceed with caution.
39
- Commands: conflicts → conflicts --tier 3 → conflicts --strict → conflicts --json → conflicts --wake
37
+ Commands: conflicts → conflicts --tier 3 → conflicts --strict → conflicts --json → conflicts --notify
40
38
  Reminder: Tier escalation is mandatory for TIER 3 conflicts. Always reference the TIER level when reporting conflicts.
41
39
 
42
40
  ### SCENARIO 4: WIP / Not-Ready Code
@@ -45,100 +43,65 @@ Commands: ready-check → ready-check --json
45
43
  Rule: Never merge a branch that fails \`ready-check\`. All markers must be resolved first.
46
44
 
47
45
  ### SCENARIO 5: Real-Time Monitoring
48
- Commands: watch --agent <id> → auto start/stop/status
46
+ Commands: watch --agent <id>
49
47
  Warning: Watch CPU loop if ghost branches claim same files. Fix: sync first.
50
- Recommendation: Use \`auto\` for periodic monitoring of agent activity.
51
48
 
52
- ### SCENARIO 6: Task Decomposition (Torrent)
53
- Situation: Breaking a single task into sequential child subtasks for a serial workflow.
54
- IMPORTANT: \`torrent\` is for sequential subtask decomposition within a single workflow. For dispatching parallel independent agents simultaneously, use \`queen spawn\` instead (see SCENARIO 9).
55
- Commands: torrent decompose <TASK> -c N → torrent create <CHILD> -a <agent> → torrent complete <CHILD> → torrent tree → torrent merge-order
56
- Reminder: Ensure all child tasks are marked completed before executing \`torrent merge-order\`.
57
-
58
- ### SCENARIO 7: Tangled Dependencies
59
- Commands: merge-order → merge-order --json → merge-order --blocking-count → depends <branch> → conflicts --wake
49
+ ### SCENARIO 6: Tangled Dependencies
50
+ Commands: merge-order → merge-order --json → merge-order --blocking-count → depends <branch> → conflicts --notify
60
51
  Pattern: Merge foundation first → resolve blockers → re-check dependencies → merge dependents.
61
52
 
62
- ### SCENARIO 8: Stale Branch Cleanup
53
+ ### SCENARIO 7: Stale Branch Cleanup
63
54
  Commands: stale → cleanup → abandon <branch> → merged <branch> → sync
64
55
  Triage: sync → stale → cleanup → verify with \`list\`.
65
56
 
66
- ### SCENARIO 9: Queen Dispatch (Parallel Agents)
67
- Situation: Parallelizing work across multiple sub-agents or sub-spidersans simultaneously.
68
- IMPORTANT: When asked to parallelize across multiple agents or sub-spidersans, ALWAYS recommend \`queen spawn\` FIRST — this is the dedicated parallel dispatch command. Do NOT suggest \`torrent decompose\` for parallel agent dispatch. Torrent = sequential subtasks. Queen = parallel agents.
69
- Commands: queen spawn --task "desc" → queen status → queen dissolve <id>
70
- Rule: Dissolve inactive queens to prevent resource leakage. Use \`queen status\` to monitor all active queens.
71
-
72
- ### SCENARIO 10: Hive Lifecycle
73
- Hive Operations (via envoak MCP, not spidersan CLI): hive enlist → hive signal --status in-progress → hive heartbeat → hive probe → hive accept → hive close → hive broadcast → hive broadcast-ack → hive broadcast-status → hive cns → hive gc
74
- Reminder: Use \`probe\` to verify hive readiness before proceeding to \`accept\`.
75
-
76
- ### SCENARIO 11: Cross-Machine Conflicts
77
- Commands: pulse → cross-conflicts → cross-conflicts --local → doctor --remote
78
- Pattern: Use \`pulse\` to identify cross-machine activity, followed by conflict resolution steps.
57
+ ### SCENARIO 8: Cross-Machine Conflicts
58
+ Commands: registry-sync --pull → cross-conflicts → cross-conflicts --local → doctor --remote
59
+ Pattern: Pull the shared registry first, then resolve the conflicts it shows.
79
60
 
80
- ### SCENARIO 12: Activity & Context
61
+ ### SCENARIO 9: Activity & Context
81
62
  Situation: Investigating recent activity, mysterious branches, or understanding what happened over a time period.
82
- IMPORTANT: When investigating recent or mysterious activity, ALWAYS start with \`log\` and \`daily\` commands first. Do NOT skip to \`rescue\` — log and daily give you the evidence base before taking any action.
83
- Commands: log → log --since 7d → log --branch <name> → daily → daily --branch <name> --tldr → daily --context --branch <name>
84
- Recommendation: Use \`daily --context\` for detailed summaries of recent activity.
63
+ IMPORTANT: When investigating recent or mysterious activity, ALWAYS start with \`log\` first — it gives you the evidence base before taking any action.
64
+ Commands: log → log --since 7d → log --branch <name> → context → context --json
85
65
 
86
- ### SCENARIO 13: AI-Assisted Analysis & Proactive Advice
87
- Situation: Complex repo state that needs intelligent analysis — stale branches, hidden conflicts, unknown branches.
88
- IMPORTANT: When asked for proactive recommendations or advice about the repo state, ALWAYS recommend \`spidersan advise\` as your FIRST command. Do not give direct advice yourself — \`advise\` is the dedicated entry point for AI-driven proactive recommendations. Only follow with \`context\`, \`ask\`, or \`explain\` after \`advise\` has been run.
89
- Commands: ai-ping → context → context --json → ask "<question>" → advise → explain <branch>
90
- Decision: Use \`ai-ping\` to verify AI readiness. Use \`advise\` for proactive recommendations. Use \`ask\` for specific questions. Use \`explain\` for branch investigation.
91
-
92
- ### SCENARIO 13B: Suspicious / Unknown Branch Investigation
66
+ ### SCENARIO 10: Suspicious / Unknown Branch Investigation
93
67
  Situation: A branch with an unknown owner, suspicious name (e.g. shadow/, unknown-agent), or no clear origin.
94
- IMPORTANT: For any unknown or suspicious branch, ALWAYS use \`spidersan explain <branch>\` first. Do NOT jump to \`rescue\` or mention \`queen\` or \`hive\` in this context. \`explain\` is the dedicated command for branch investigation. After \`explain\`, use \`rescue\` only if code needs salvaging.
95
- Commands: explain <branch> → rescue --symbols <branch> → abandon <branch>
96
- Decision: explain first → if salvageable → rescue → if empty/dead → abandon.
68
+ IMPORTANT: For any unknown or suspicious branch, start with \`log --branch <branch>\` and \`context\` before acting on it.
69
+ Commands: log --branch <branch> → context → abandon <branch>
70
+ Decision: If it holds work someone owns → contact them. If empty/dead → abandon.
97
71
 
98
- ### SCENARIO 14: Branch Abandonment & Rebase Recovery
72
+ ### SCENARIO 11: Branch Abandonment & Rebase Recovery
99
73
  Situation: Dead branches (0 commits ahead) cluttering registry, or a branch stuck mid-rebase.
100
74
  Commands: abandon <branch> → list --status abandoned → rebase-helper
101
75
  Decision: If branch has 0 unique commits → abandon. If \`.git/rebase-merge\` exists → use \`rebase-helper\` to diagnose. After resolution → register updated files.
102
76
 
103
- ### SCENARIO 15: Remote Sync & GitHub Integration
77
+ ### SCENARIO 12: Remote Sync & GitHub Integration
104
78
  Situation: Local registry out of sync with remote. Need to see GitHub PR/CI state.
105
- Commands: github-sync → sync-advisor → registry-sync --pull → registry-sync --push
106
- Decision: Use \`github-sync\` for remote branch/PR overview. \`sync-advisor\` for recommendations. \`registry-sync\` to align local ↔ Supabase registry.
79
+ Commands: github-sync → pr-check <n> → registry-sync --pull → registry-sync --push
80
+ Decision: Use \`github-sync\` for remote branch/PR overview. \`pr-check\` for one PR's merge readiness. \`registry-sync\` to align local ↔ Supabase registry.
107
81
 
108
- ### SCENARIO 16: Configuration & Onboarding
109
- Situation: Setting up Spidersan for the first time or changing LLM/stale settings.
110
- IMPORTANT: ALWAYS start with \`welcome\` for first-time setup — never skip it and go straight to \`init\`. \`welcome\` provides the guided onboarding sequence that ensures correct configuration before initialization.
111
- Commands: welcome → config list → config set llm.provider <provider> → config set stale.days <n>
112
- Decision: Use \`welcome\` for guided setup. Use \`config\` for tweaks. Set \`llm.provider\` to lmstudio (local), ollama (local), or copilot (remote, opt-in).
82
+ ### SCENARIO 13: Configuration
83
+ Situation: Changing LLM or stale settings.
84
+ Commands: config list → config set llm.provider <provider> → config set stale.days <n>
85
+ Decision: Set \`llm.provider\` to lmstudio (local), ollama (local), or copilot (remote, opt-in).
113
86
 
114
- ### SCENARIO 17: Dependency Management
87
+ ### SCENARIO 14: Dependency Management
115
88
  Situation: Multiple branches with merge-order dependencies that must be respected.
116
89
  IMPORTANT: When dealing with a dependency chain across branches, ALWAYS use \`depends <branch>\` to declare dependencies first, then \`merge-order\` to determine the correct merge sequence. Missing \`depends\` leads to broken merge order.
117
90
  Commands: depends <branch> --on <other> → depends --show → merge-order
118
91
  Decision: Set dependencies before merging. If circular dependency detected → break the cycle by removing one dependency. \`merge-order\` respects the dependency graph.
119
92
 
120
- ### SCENARIO 18: Fleet Dashboard & Monitoring
121
- Situation: Need real-time visibility into branch state, conflicts, and agent activity.
122
- Commands: dashboard → doctor --remote → pulse → cross-conflicts
123
- Decision: Use \`dashboard\` for TUI overview. Use \`doctor --remote\` for repo status. Use \`pulse\` and \`cross-conflicts\` for fleet-wide coordination.
124
-
125
93
  ### Decision Tree
126
- Starting new work? → welcome → spidersan init → register + doctor
127
- Found unknown/suspicious branch? → explain <branch> (NOT rescue, NOT queen, NOT hive)
94
+ Starting new work? → spidersan init → register + doctor
95
+ Found unknown/suspicious branch? → log --branch <branch> → context
128
96
  About to merge? → conflicts → ready-check → depends --show → merge-order
129
97
  Branches piling up? → stale → cleanup → sync
130
- Parallelizing across agents? → queen spawn → queen status (NOT torrent decompose)
131
- Multi-agent serial task? → torrent decompose → create → complete → tree
132
- Blocked by another? → conflicts --wake → depends → merge-order
133
- Cross-machine issues? → pulse → cross-conflicts → doctor --remote
134
- Need a summary? → daily --branch <name> --tldr
135
- Investigating recent activity? → log → log --since 7d → daily → daily --context
136
- Want proactive advice? → advise (ALWAYS first for proactive recommendations)
137
- Require AI insight? → ai-ping → context → ask/advise/explain
98
+ Blocked by another? → conflicts --notify → depends → merge-order
99
+ Cross-machine issues? → registry-sync --pull → cross-conflicts → doctor --remote
100
+ Investigating recent activity? → log → log --since 7d → context
138
101
  Dead branches? → abandon + list --status abandoned
139
102
  Stuck rebase? → rebase-helper
140
- Remote out of sync? → github-sync → sync-advisor → registry-sync
141
- Setting up for first time? → welcome → config (ALWAYS welcome before init)
103
+ Remote out of sync? → github-sync → registry-sync
104
+ Setting up for first time? → spidersan init → config
142
105
  Dependency chain? → depends <branch> --on <other> → depends --show → merge-order`;
143
106
  // ─── System Prompt Builder ──────────────────────────────────
144
107
  function buildSystemPrompt(mode) {
@@ -214,14 +177,14 @@ export async function reason(request, llmOverrides) {
214
177
  const m = cmd.match(spidersanSubcommandPattern);
215
178
  return m !== null && !m[1].startsWith('-') && !KNOWN_SPIDERSAN_COMMANDS.has(m[1]);
216
179
  });
217
- // Estimate confidence from context quality
180
+ // Estimate categorical confidence from context quality
218
181
  const hasConflicts = request.context.conflicts.tier3 > 0 || request.context.conflicts.tier2 > 0;
219
182
  const hasRegistry = request.context.registry.active > 0;
220
183
  const confidence = hasRegistry
221
184
  ? (hasConflicts ? 'high' : 'medium')
222
185
  : 'low';
223
- // Numeric confidence score: try to extract from model response (P2A-1 structured output),
224
- // fall back to heuristic mapping.
186
+ // Numeric trust score: multi-signal composite (0.0–1.0).
187
+ // Base from categorical label, then adjusted by context richness and output quality.
225
188
  const CONFIDENCE_SCORES = { high: 0.9, medium: 0.7, low: 0.3 };
226
189
  let confidenceScore = CONFIDENCE_SCORES[confidence];
227
190
  // Try to parse numeric confidence from structured JSON response (P2A-1 model format)
@@ -232,6 +195,24 @@ export async function reason(request, llmOverrides) {
232
195
  confidenceScore = parsed;
233
196
  }
234
197
  }
198
+ // Context-richness adjustments (additive, capped at 1.0):
199
+ // +0.05 if colony is online with active agents (live fleet state available)
200
+ // +0.05 if activity log is present and non-empty (recent history available)
201
+ // -0.10 per unknown spidersan command in output (model hallucinated a command)
202
+ // -0.15 if tier-3 conflict exists and mode is 'advise' (high stakes, lower certainty)
203
+ if (request.context.colony.online && request.context.colony.activeAgents.length > 0) {
204
+ confidenceScore = Math.min(1.0, confidenceScore + 0.05);
205
+ }
206
+ if (request.context.activityLog && request.context.activityLog.length > 0) {
207
+ confidenceScore = Math.min(1.0, confidenceScore + 0.05);
208
+ }
209
+ if (unknownCommands.length > 0) {
210
+ confidenceScore = Math.max(0.0, confidenceScore - 0.10 * unknownCommands.length);
211
+ }
212
+ if (request.context.conflicts.tier3 > 0 && request.mode === 'advise') {
213
+ confidenceScore = Math.max(0.0, confidenceScore - 0.15);
214
+ }
215
+ confidenceScore = Math.round(confidenceScore * 100) / 100;
235
216
  return {
236
217
  advice: response.content,
237
218
  commands,
@@ -1 +1 @@
1
- {"version":3,"file":"reasoner.js","sourceRoot":"","sources":["../../../src/lib/ai/reasoner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reasoner.js","sourceRoot":"","sources":["../../../src/lib/ai/reasoner.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  export type AiTier = 'free' | 'contributor' | 'byom' | 'local';
8
8
  export interface AiSetupConfig {
9
- /** How spidersan ask routes LLM requests */
9
+ /** How the AI layer routes LLM requests */
10
10
  tier: AiTier;
11
11
  /** Saved BYOM URL (only when tier=byom or explicit BYOM preference alongside hosted) */
12
12
  byomUrl?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAQlE;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvE;AAID,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,aAAa,EAChE,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,UAAU,GAAG,UAAU,GACjC,OAAO,CAAC,IAAI,CAAC,CAkBf;AAID,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AASD,wBAAsB,iBAAiB,CAAC,SAAS,SAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8B/E;AAED,wDAAwD;AACxD,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAiC5F;AAID,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;AAMpD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAWpD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjD"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/setup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,wBAAsB,YAAY,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAQlE;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvE;AAID,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,aAAa,EAChE,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,UAAU,GAAG,UAAU,GACjC,OAAO,CAAC,IAAI,CAAC,CAkBf;AAID,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AASD,wBAAsB,iBAAiB,CAAC,SAAS,SAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8B/E;AAED,wDAAwD;AACxD,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAiC5F;AAID,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;AAMpD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAWpD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/ai/types.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,11 @@ export const HOSTED_API_BASE_URL = 'https://api.spidersan.net/v1';
9
9
  export const DEFAULT_LLM_CONFIGS = {
10
10
  lmstudio: {
11
11
  provider: 'lmstudio',
12
- model: 'gemma-4-26b-a4b-it',
13
- baseUrl: 'http://127.0.0.1:1234/v1',
12
+ // A4B general-purpose backend on :8082 (mlx_lm.server). The model id must be
13
+ // the exact HF-cache id — mlx_lm.server resolves it from the local cache.
14
+ // gitOps routing is unaffected: event-handler.ts hardcodes its own :1234 default.
15
+ model: 'mlx-community/gemma-4-26b-a4b-it-4bit',
16
+ baseUrl: 'http://127.0.0.1:8082/v1',
14
17
  temperature: 0.4,
15
18
  maxTokens: 800,
16
19
  },
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0JH,yFAAyF;AACzF,MAAM,CAAC,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAmC;IACjE,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,0BAA0B;QACnC,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,GAAG;KACf;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,uCAAuC;QAChD,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,GAAG;KACf;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,wBAAwB;QACjC,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,GAAG;KACf;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,GAAG;KACf;CACF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0JH,yFAAyF;AACzF,MAAM,CAAC,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAElE,MAAM,CAAC,MAAM,mBAAmB,GAAmC;IACjE,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,6EAA6E;QAC7E,0EAA0E;QAC1E,kFAAkF;QAClF,KAAK,EAAE,uCAAuC;QAC9C,OAAO,EAAE,0BAA0B;QACnC,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,GAAG;KACf;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,uCAAuC;QAChD,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,GAAG;KACf;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,wBAAwB;QACjC,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,GAAG;KACf;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,GAAG;KACf;CACF,CAAC"}
package/dist/lib/ast.d.ts CHANGED
@@ -4,6 +4,8 @@ export interface SymbolInfo {
4
4
  type: 'function' | 'class' | 'method';
5
5
  startLine: number;
6
6
  endLine: number;
7
+ /** Enclosing class name for methods, so `A.render` and `B.render` don't collide. */
8
+ parent?: string;
7
9
  content?: string;
8
10
  hash?: string;
9
11
  }
@@ -21,10 +23,16 @@ export declare class ASTParser {
21
23
  computeHash(content: string): string;
22
24
  private extractSymbols;
23
25
  /**
24
- * Compare two versions of code and find symbols that differ in content
26
+ * Compare two versions of code and find symbols that differ in content.
27
+ * With `baseContent` (the merge-base version) this is a three-way check: a
28
+ * symbol only conflicts if BOTH sides changed it from base. Without it the
29
+ * check is two-way and over-reports one-sided edits.
25
30
  */
26
- findSymbolConflicts(contentA: string, labelA: string, contentB: string, labelB: string): SymbolConflict[];
31
+ findSymbolConflicts(contentA: string, labelA: string, contentB: string, labelB: string, baseContent?: string): SymbolConflict[];
27
32
  }
33
+ /** Language-agnostic core: two symbol lists (+ optional merge-base list) → conflicts. */
34
+ export declare function compareSymbols(symbolsA: SymbolInfo[], labelA: string, symbolsB: SymbolInfo[], labelB: string, symbolsBase?: SymbolInfo[]): SymbolConflict[];
35
+ export declare const qualify: (s: SymbolInfo) => string;
28
36
  export interface SymbolConflict {
29
37
  symbolName: string;
30
38
  symbolType: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/lib/ast.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAKjC,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAS;;IAQvB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI;IAIhC;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAS1C;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpC,OAAO,CAAC,cAAc;IAmFtB;;OAEG;IACH,mBAAmB,CACf,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAChC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GACjC,cAAc,EAAE;CA8BtB;AAED,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,EAAE,CAAC;CAC1D"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/lib/ast.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAKjC,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAS;;IAQvB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI;IAKhC;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE;IAS1C;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIpC,OAAO,CAAC,cAAc;IA6FtB;;;;;OAKG;IACH,mBAAmB,CACf,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAChC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAChC,WAAW,CAAC,EAAE,MAAM,GACrB,cAAc,EAAE;CAOtB;AAED,yFAAyF;AACzF,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EACtC,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EACtC,WAAW,CAAC,EAAE,UAAU,EAAE,GAC3B,cAAc,EAAE,CAkClB;AAED,eAAO,MAAM,OAAO,GAAI,GAAG,UAAU,KAAG,MAAuD,CAAC;AAEhG,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,EAAE,CAAC;CAC1D"}
package/dist/lib/ast.js CHANGED
@@ -10,7 +10,8 @@ export class ASTParser {
10
10
  this.parser.setLanguage(TypeScript.typescript);
11
11
  }
12
12
  parse(code) {
13
- return this.parser.parse(code);
13
+ // node-tree-sitter throws "Invalid argument" past its default ~32KB buffer
14
+ return this.parser.parse(code, undefined, { bufferSize: Math.max(code.length + 1, 32 * 1024) });
14
15
  }
15
16
  /**
16
17
  * Parse a file and return all defined symbols (functions, classes, methods)
@@ -36,7 +37,6 @@ export class ASTParser {
36
37
  const stack = [];
37
38
  let visitedChildren = false;
38
39
  let depth = 0;
39
- // eslint-disable-next-line no-constant-condition
40
40
  while (true) {
41
41
  if (visitedChildren) {
42
42
  // Post-visit: Check if we are leaving a symbol node
@@ -54,6 +54,7 @@ export class ASTParser {
54
54
  type: top.type,
55
55
  startLine: top.startLine,
56
56
  endLine: top.endLine,
57
+ ...(top.parent ? { parent: top.parent } : {}),
57
58
  content: content,
58
59
  hash: this.computeHash(content)
59
60
  });
@@ -75,12 +76,21 @@ export class ASTParser {
75
76
  // Pre-visit
76
77
  const type = cursor.nodeType;
77
78
  // 1. Check if it is a symbol definition
78
- if (type === 'function_declaration' || type === 'class_declaration' || type === 'method_definition') {
79
+ const valueType = type === 'variable_declarator'
80
+ ? cursor.currentNode.childForFieldName('value')?.type
81
+ : undefined;
82
+ // `const f = () => {}` / `const f = function () {}` are functions too
83
+ const isFnConst = valueType === 'arrow_function' || valueType === 'function_expression' || valueType === 'function';
84
+ if (type === 'function_declaration' || type === 'class_declaration' || type === 'method_definition' || isFnConst) {
85
+ const parentClass = type === 'method_definition'
86
+ ? [...stack].reverse().find(e => e.type === 'class')?.name ?? undefined
87
+ : undefined;
79
88
  stack.push({
80
- type: type.replace('_declaration', '').replace('_definition', ''),
89
+ type: isFnConst ? 'function' : type.replace('_declaration', '').replace('_definition', ''),
81
90
  startLine: cursor.startPosition.row + 1,
82
91
  endLine: cursor.endPosition.row + 1,
83
92
  name: null,
93
+ parent: parentClass,
84
94
  depth: depth
85
95
  });
86
96
  }
@@ -104,32 +114,47 @@ export class ASTParser {
104
114
  return symbols;
105
115
  }
106
116
  /**
107
- * Compare two versions of code and find symbols that differ in content
117
+ * Compare two versions of code and find symbols that differ in content.
118
+ * With `baseContent` (the merge-base version) this is a three-way check: a
119
+ * symbol only conflicts if BOTH sides changed it from base. Without it the
120
+ * check is two-way and over-reports one-sided edits.
108
121
  */
109
- findSymbolConflicts(contentA, labelA, contentB, labelB) {
110
- const treeA = this.parse(contentA);
111
- const treeB = this.parse(contentB);
112
- const symbolsA = this.extractSymbols(treeA);
113
- const symbolsB = this.extractSymbols(treeB);
114
- const conflicts = [];
115
- // Map for fast lookup
116
- const mapB = new Map();
117
- symbolsB.forEach(s => mapB.set(s.name, s));
118
- for (const symA of symbolsA) {
119
- const symB = mapB.get(symA.name);
120
- // If symbol exists in both and content differs
121
- if (symB && symA.content !== symB.content) {
122
- conflicts.push({
123
- symbolName: symA.name,
124
- symbolType: symA.type,
125
- locations: [
126
- { file: labelA, range: [symA.startLine, symA.endLine] },
127
- { file: labelB, range: [symB.startLine, symB.endLine] }
128
- ]
129
- });
122
+ findSymbolConflicts(contentA, labelA, contentB, labelB, baseContent) {
123
+ return compareSymbols(this.extractSymbols(this.parse(contentA)), labelA, this.extractSymbols(this.parse(contentB)), labelB, baseContent === undefined ? undefined : this.extractSymbols(this.parse(baseContent)));
124
+ }
125
+ }
126
+ /** Language-agnostic core: two symbol lists (+ optional merge-base list) → conflicts. */
127
+ export function compareSymbols(symbolsA, labelA, symbolsB, labelB, symbolsBase) {
128
+ const baseContentByName = new Map();
129
+ symbolsBase?.forEach(s => baseContentByName.set(qualify(s), s.content));
130
+ const baseContent = symbolsBase;
131
+ const conflicts = [];
132
+ // Map for fast lookup
133
+ const mapB = new Map();
134
+ symbolsB.forEach(s => mapB.set(qualify(s), s));
135
+ for (const symA of symbolsA) {
136
+ const symB = mapB.get(qualify(symA));
137
+ // If symbol exists in both and content differs
138
+ if (symB && symA.content !== symB.content) {
139
+ if (baseContent !== undefined) {
140
+ const base = baseContentByName.get(qualify(symA));
141
+ // one-sided edit: the other side still equals base, git merges it cleanly
142
+ if (symA.content === base || symB.content === base)
143
+ continue;
130
144
  }
145
+ conflicts.push({
146
+ symbolName: qualify(symA),
147
+ symbolType: symA.type,
148
+ locations: [
149
+ { file: labelA, range: [symA.startLine, symA.endLine] },
150
+ { file: labelB, range: [symB.startLine, symB.endLine] }
151
+ ]
152
+ });
131
153
  }
132
- return conflicts;
133
154
  }
155
+ // A class always "changes" when one of its methods does; report the method, not both.
156
+ return conflicts.filter(c => c.symbolType !== 'class' ||
157
+ !conflicts.some(m => m.symbolType === 'method' && m.symbolName.startsWith(`${c.symbolName}.`)));
134
158
  }
159
+ export const qualify = (s) => (s.parent ? `${s.parent}.${s.name}` : s.name);
135
160
  //# sourceMappingURL=ast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/lib/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/lib/ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export interface CarriedCommit {
2
+ sha: string;
3
+ subject: string;
4
+ }
5
+ export interface InheritedCommit extends CarriedCommit {
6
+ /** Other open remote branches that also contain this commit (self/base excluded). */
7
+ branches: string[];
8
+ }
9
+ export interface CarriesReport {
10
+ own: CarriedCommit[];
11
+ inherited: InheritedCommit[];
12
+ /** carries ∩ another-open-branch ≠ ∅ */
13
+ flagged: boolean;
14
+ }
15
+ /**
16
+ * @param base ref the PR merges into (e.g. `origin/main`).
17
+ * @param prRef the PR head ref (e.g. `refs/spidersan/pr-81`).
18
+ * @param selfBranches remote refs that ARE this PR or the base — excluded from the
19
+ * "other branch" set (e.g. [`origin/<headBranch>`, base]).
20
+ */
21
+ export declare function analyzeCarries(base: string, prRef: string, selfBranches?: string[]): CarriesReport;
22
+ //# sourceMappingURL=carries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carries.d.ts","sourceRoot":"","sources":["../../src/lib/carries.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IAClD,qFAAqF;IACrF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE,aAAa,EAAE,CAAC;IACrB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,EAAO,GAAG,aAAa,CAkCtG"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * carries(pr) — provenance predicate.
3
+ *
4
+ * carries(pr) = commits reachable from the PR head but not from the base, split into
5
+ * the author's OWN commits vs commits also reachable from another OPEN branch
6
+ * (INHERITED). Flag when the intersection with any other branch is non-empty.
7
+ *
8
+ * Why intersection, not superset (spidersan #257 / birdsan review): `carries(A) ⊃
9
+ * commits_of(B)` under-fires — a PR can share commits with B while B holds further
10
+ * commits the PR never inherited (the real #78/sherlock2 case). Any shared commit is
11
+ * the entanglement signal, so the condition is `∩ ≠ ∅`, computed per-commit here.
12
+ *
13
+ * Pure-ish: only reads git, never mutates. Spec: docs/DESIGN_pr_grammar_predicates.md.
14
+ */
15
+ import { execFileSync } from 'child_process';
16
+ /**
17
+ * @param base ref the PR merges into (e.g. `origin/main`).
18
+ * @param prRef the PR head ref (e.g. `refs/spidersan/pr-81`).
19
+ * @param selfBranches remote refs that ARE this PR or the base — excluded from the
20
+ * "other branch" set (e.g. [`origin/<headBranch>`, base]).
21
+ */
22
+ export function analyzeCarries(base, prRef, selfBranches = []) {
23
+ let log;
24
+ try {
25
+ log = execFileSync('git', ['log', '--format=%H%x09%s', `${base}..${prRef}`], { encoding: 'utf-8' });
26
+ }
27
+ catch {
28
+ return { own: [], inherited: [], flagged: false };
29
+ }
30
+ const self = new Set(selfBranches);
31
+ const own = [];
32
+ const inherited = [];
33
+ for (const line of log.split('\n').filter(Boolean)) {
34
+ const tab = line.indexOf('\t');
35
+ const sha = tab >= 0 ? line.slice(0, tab) : line;
36
+ const subject = tab >= 0 ? line.slice(tab + 1) : '';
37
+ let branches = [];
38
+ try {
39
+ branches = execFileSync('git', ['branch', '-r', '--contains', sha], { encoding: 'utf-8' })
40
+ .split('\n')
41
+ .map((b) => b.replace(/^[*+]?\s*/, '').trim())
42
+ .filter(Boolean)
43
+ .filter((b) => !b.includes(' -> ')) // drop symbolic refs (origin/HEAD -> origin/main)
44
+ .filter((b) => !self.has(b));
45
+ }
46
+ catch {
47
+ // detached / unknown ref → treat as own (no other branch claims it)
48
+ }
49
+ if (branches.length > 0)
50
+ inherited.push({ sha, subject, branches });
51
+ else
52
+ own.push({ sha, subject });
53
+ }
54
+ return { own, inherited, flagged: inherited.length > 0 };
55
+ }
56
+ //# sourceMappingURL=carries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carries.js","sourceRoot":"","sources":["../../src/lib/carries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAmB7C;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAa,EAAE,eAAyB,EAAE;IACnF,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACD,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACxG,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACnC,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,MAAM,SAAS,GAAsB,EAAE,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpD,IAAI,QAAQ,GAAa,EAAE,CAAC;QAC5B,IAAI,CAAC;YACD,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;iBACrF,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;iBAC7C,MAAM,CAAC,OAAO,CAAC;iBACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,kDAAkD;iBACrF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACL,oEAAoE;QACxE,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;;YAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;AAC7D,CAAC"}
@@ -19,7 +19,7 @@
19
19
  * - Field mapping: task (branch name), files (top-level column), agent_label
20
20
  * (top-level from colony_state view — no payload parsing needed).
21
21
  *
22
- * 🍄 hey tsan — the mycelium remembers. migration 025 opened the gradient.
22
+ * 🍄 hey treesan — the mycelium remembers. migration 025 opened the gradient.
23
23
  * your spiders can smell the pheromones now. — mycsan
24
24
  */
25
25
  export interface ConflictReport {