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.
- package/CHANGELOG.md +171 -0
- package/README.md +39 -280
- package/dist/bin/command-registry.d.ts +25 -0
- package/dist/bin/command-registry.d.ts.map +1 -0
- package/dist/bin/command-registry.js +29 -0
- package/dist/bin/command-registry.js.map +1 -0
- package/dist/bin/spidersan.d.ts +7 -0
- package/dist/bin/spidersan.d.ts.map +1 -1
- package/dist/bin/spidersan.js +38 -57
- package/dist/bin/spidersan.js.map +1 -1
- package/dist/commands/cleanup.d.ts.map +1 -1
- package/dist/commands/cleanup.js +17 -3
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +11 -39
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/conflicts.d.ts +22 -0
- package/dist/commands/conflicts.d.ts.map +1 -1
- package/dist/commands/conflicts.js +459 -256
- package/dist/commands/conflicts.js.map +1 -1
- package/dist/commands/cross-conflicts.d.ts.map +1 -1
- package/dist/commands/cross-conflicts.js +7 -8
- package/dist/commands/cross-conflicts.js.map +1 -1
- package/dist/commands/depends.d.ts +4 -1
- package/dist/commands/depends.d.ts.map +1 -1
- package/dist/commands/depends.js +35 -8
- package/dist/commands/depends.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +25 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/git-watch.d.ts +1 -1
- package/dist/commands/git-watch.js +1 -1
- package/dist/commands/github-sync.d.ts +33 -0
- package/dist/commands/github-sync.d.ts.map +1 -1
- package/dist/commands/github-sync.js +68 -57
- package/dist/commands/github-sync.js.map +1 -1
- package/dist/commands/index.d.ts +2 -13
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +5 -20
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/merge-order.d.ts.map +1 -1
- package/dist/commands/merge-order.js +8 -4
- package/dist/commands/merge-order.js.map +1 -1
- package/dist/commands/merged.d.ts.map +1 -1
- package/dist/commands/merged.js +5 -1
- package/dist/commands/merged.js.map +1 -1
- package/dist/commands/pr-check.d.ts +24 -0
- package/dist/commands/pr-check.d.ts.map +1 -0
- package/dist/commands/pr-check.js +85 -0
- package/dist/commands/pr-check.js.map +1 -0
- package/dist/commands/ready-check.d.ts.map +1 -1
- package/dist/commands/ready-check.js +6 -3
- package/dist/commands/ready-check.js.map +1 -1
- package/dist/commands/register.d.ts +5 -0
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +14 -1
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/registry-sync.d.ts.map +1 -1
- package/dist/commands/registry-sync.js +12 -46
- package/dist/commands/registry-sync.js.map +1 -1
- package/dist/commands/stale.d.ts.map +1 -1
- package/dist/commands/stale.js +8 -3
- package/dist/commands/stale.js.map +1 -1
- package/dist/commands/sync.d.ts +14 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +49 -31
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/verify-trunk.d.ts +18 -0
- package/dist/commands/verify-trunk.d.ts.map +1 -0
- package/dist/commands/verify-trunk.js +77 -0
- package/dist/commands/verify-trunk.js.map +1 -0
- package/dist/commands/watch.d.ts +0 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +50 -77
- package/dist/commands/watch.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/activity.d.ts.map +1 -1
- package/dist/lib/activity.js +6 -2
- package/dist/lib/activity.js.map +1 -1
- package/dist/lib/ai/context-builder.d.ts.map +1 -1
- package/dist/lib/ai/context-builder.js +19 -6
- package/dist/lib/ai/context-builder.js.map +1 -1
- package/dist/lib/ai/event-handler.d.ts.map +1 -1
- package/dist/lib/ai/event-handler.js +15 -2
- package/dist/lib/ai/event-handler.js.map +1 -1
- package/dist/lib/ai/reasoner.d.ts.map +1 -1
- package/dist/lib/ai/reasoner.js +63 -82
- package/dist/lib/ai/reasoner.js.map +1 -1
- package/dist/lib/ai/setup.d.ts +1 -1
- package/dist/lib/ai/setup.d.ts.map +1 -1
- package/dist/lib/ai/types.d.ts.map +1 -1
- package/dist/lib/ai/types.js +5 -2
- package/dist/lib/ai/types.js.map +1 -1
- package/dist/lib/ast.d.ts +10 -2
- package/dist/lib/ast.d.ts.map +1 -1
- package/dist/lib/ast.js +52 -27
- package/dist/lib/ast.js.map +1 -1
- package/dist/lib/carries.d.ts +22 -0
- package/dist/lib/carries.d.ts.map +1 -0
- package/dist/lib/carries.js +56 -0
- package/dist/lib/carries.js.map +1 -0
- package/dist/lib/colony-subscriber.d.ts +1 -1
- package/dist/lib/colony-subscriber.js +1 -1
- package/dist/lib/config.d.ts +2 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +13 -8
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/conflict-renderer.d.ts.map +1 -1
- package/dist/lib/conflict-renderer.js +17 -34
- package/dist/lib/conflict-renderer.js.map +1 -1
- package/dist/lib/ecosystem-env.d.ts +33 -0
- package/dist/lib/ecosystem-env.d.ts.map +1 -0
- package/dist/lib/ecosystem-env.js +62 -0
- package/dist/lib/ecosystem-env.js.map +1 -0
- package/dist/lib/git-events-subscriber.d.ts +27 -0
- package/dist/lib/git-events-subscriber.d.ts.map +1 -1
- package/dist/lib/git-events-subscriber.js +149 -58
- package/dist/lib/git-events-subscriber.js.map +1 -1
- package/dist/lib/git-merge-analyzer.d.ts +38 -0
- package/dist/lib/git-merge-analyzer.d.ts.map +1 -0
- package/dist/lib/git-merge-analyzer.js +23 -0
- package/dist/lib/git-merge-analyzer.js.map +1 -0
- package/dist/lib/git.d.ts +88 -0
- package/dist/lib/git.d.ts.map +1 -1
- package/dist/lib/git.js +499 -9
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/github.d.ts +69 -1
- package/dist/lib/github.d.ts.map +1 -1
- package/dist/lib/github.js +230 -16
- package/dist/lib/github.js.map +1 -1
- package/dist/lib/graph.d.ts +15 -0
- package/dist/lib/graph.d.ts.map +1 -1
- package/dist/lib/graph.js +31 -0
- package/dist/lib/graph.js.map +1 -1
- package/dist/lib/machine.d.ts +14 -0
- package/dist/lib/machine.d.ts.map +1 -0
- package/dist/lib/machine.js +38 -0
- package/dist/lib/machine.js.map +1 -0
- package/dist/lib/notify.d.ts +68 -0
- package/dist/lib/notify.d.ts.map +1 -0
- package/dist/lib/notify.js +111 -0
- package/dist/lib/notify.js.map +1 -0
- package/dist/lib/outline.d.ts +6 -0
- package/dist/lib/outline.d.ts.map +1 -0
- package/dist/lib/outline.js +60 -0
- package/dist/lib/outline.js.map +1 -0
- package/dist/lib/push-registry.d.ts +22 -0
- package/dist/lib/push-registry.d.ts.map +1 -0
- package/dist/lib/push-registry.js +21 -0
- package/dist/lib/push-registry.js.map +1 -0
- package/dist/lib/reconcile.d.ts +100 -0
- package/dist/lib/reconcile.d.ts.map +1 -0
- package/dist/lib/reconcile.js +121 -0
- package/dist/lib/reconcile.js.map +1 -0
- package/dist/lib/security.d.ts +1 -6
- package/dist/lib/security.d.ts.map +1 -1
- package/dist/lib/security.js +1 -11
- package/dist/lib/security.js.map +1 -1
- package/dist/lib/semantic-analysis.d.ts +31 -0
- package/dist/lib/semantic-analysis.d.ts.map +1 -0
- package/dist/lib/semantic-analysis.js +120 -0
- package/dist/lib/semantic-analysis.js.map +1 -0
- package/dist/lib/supabase-credentials.d.ts +36 -0
- package/dist/lib/supabase-credentials.d.ts.map +1 -0
- package/dist/lib/supabase-credentials.js +43 -0
- package/dist/lib/supabase-credentials.js.map +1 -0
- package/dist/lib/trunk.d.ts +39 -0
- package/dist/lib/trunk.d.ts.map +1 -0
- package/dist/lib/trunk.js +116 -0
- package/dist/lib/trunk.js.map +1 -0
- package/dist/storage/adapter.d.ts +20 -1
- package/dist/storage/adapter.d.ts.map +1 -1
- package/dist/storage/branch-registry-store.d.ts +1 -1
- package/dist/storage/branch-registry-store.d.ts.map +1 -1
- package/dist/storage/factory.d.ts +0 -4
- package/dist/storage/factory.d.ts.map +1 -1
- package/dist/storage/factory.js +2 -26
- package/dist/storage/factory.js.map +1 -1
- package/dist/storage/json-branch-registry-store.d.ts +1 -1
- package/dist/storage/json-branch-registry-store.d.ts.map +1 -1
- package/dist/storage/json-branch-registry-store.js +33 -7
- package/dist/storage/json-branch-registry-store.js.map +1 -1
- package/dist/storage/local.d.ts +1 -1
- package/dist/storage/local.d.ts.map +1 -1
- package/dist/storage/local.js +2 -2
- package/dist/storage/local.js.map +1 -1
- package/dist/storage/memory-branch-registry-store.d.ts +1 -1
- package/dist/storage/memory-branch-registry-store.d.ts.map +1 -1
- package/dist/storage/memory-branch-registry-store.js +4 -1
- package/dist/storage/memory-branch-registry-store.js.map +1 -1
- package/dist/storage/supabase-registry-sync-client-impl.d.ts +1 -7
- package/dist/storage/supabase-registry-sync-client-impl.d.ts.map +1 -1
- package/dist/storage/supabase-registry-sync-client-impl.js +17 -61
- package/dist/storage/supabase-registry-sync-client-impl.js.map +1 -1
- package/dist/storage/supabase-registry-sync-client.d.ts +1 -1
- package/dist/storage/supabase-registry-sync-client.d.ts.map +1 -1
- package/dist/storage/supabase.d.ts +3 -9
- package/dist/storage/supabase.d.ts.map +1 -1
- package/dist/storage/supabase.js +4 -22
- package/dist/storage/supabase.js.map +1 -1
- package/dist/types/cloud.d.ts +1 -0
- package/dist/types/cloud.d.ts.map +1 -1
- package/package.json +88 -90
- package/dist/commands/activate.d.ts +0 -9
- package/dist/commands/activate.d.ts.map +0 -1
- package/dist/commands/activate.js +0 -45
- package/dist/commands/activate.js.map +0 -1
- package/dist/commands/active-windows.d.ts +0 -16
- package/dist/commands/active-windows.d.ts.map +0 -1
- package/dist/commands/active-windows.js +0 -373
- package/dist/commands/active-windows.js.map +0 -1
- package/dist/commands/ai.d.ts +0 -15
- package/dist/commands/ai.d.ts.map +0 -1
- package/dist/commands/ai.js +0 -498
- package/dist/commands/ai.js.map +0 -1
- package/dist/commands/audit-mark.d.ts +0 -12
- package/dist/commands/audit-mark.d.ts.map +0 -1
- package/dist/commands/audit-mark.js +0 -204
- package/dist/commands/audit-mark.js.map +0 -1
- package/dist/commands/auto.d.ts +0 -8
- package/dist/commands/auto.d.ts.map +0 -1
- package/dist/commands/auto.js +0 -207
- package/dist/commands/auto.js.map +0 -1
- package/dist/commands/bot.d.ts +0 -16
- package/dist/commands/bot.d.ts.map +0 -1
- package/dist/commands/bot.js +0 -416
- package/dist/commands/bot.js.map +0 -1
- package/dist/commands/close.d.ts +0 -9
- package/dist/commands/close.d.ts.map +0 -1
- package/dist/commands/close.js +0 -129
- package/dist/commands/close.js.map +0 -1
- package/dist/commands/collab-sync.d.ts +0 -14
- package/dist/commands/collab-sync.d.ts.map +0 -1
- package/dist/commands/collab-sync.js +0 -264
- package/dist/commands/collab-sync.js.map +0 -1
- package/dist/commands/collab.d.ts +0 -6
- package/dist/commands/collab.d.ts.map +0 -1
- package/dist/commands/collab.js +0 -103
- package/dist/commands/collab.js.map +0 -1
- package/dist/commands/completions.d.ts +0 -8
- package/dist/commands/completions.d.ts.map +0 -1
- package/dist/commands/completions.js +0 -83
- package/dist/commands/completions.js.map +0 -1
- package/dist/commands/daily.d.ts +0 -7
- package/dist/commands/daily.d.ts.map +0 -1
- package/dist/commands/daily.js +0 -171
- package/dist/commands/daily.js.map +0 -1
- package/dist/commands/dashboard.d.ts +0 -22
- package/dist/commands/dashboard.d.ts.map +0 -1
- package/dist/commands/dashboard.js +0 -401
- package/dist/commands/dashboard.js.map +0 -1
- package/dist/commands/demo.d.ts +0 -3
- package/dist/commands/demo.d.ts.map +0 -1
- package/dist/commands/demo.js +0 -118
- package/dist/commands/demo.js.map +0 -1
- package/dist/commands/ecosystem-loader.d.ts +0 -14
- package/dist/commands/ecosystem-loader.d.ts.map +0 -1
- package/dist/commands/ecosystem-loader.js +0 -90
- package/dist/commands/ecosystem-loader.js.map +0 -1
- package/dist/commands/fleet-status.d.ts +0 -14
- package/dist/commands/fleet-status.d.ts.map +0 -1
- package/dist/commands/fleet-status.js +0 -127
- package/dist/commands/fleet-status.js.map +0 -1
- package/dist/commands/inbox.d.ts +0 -3
- package/dist/commands/inbox.d.ts.map +0 -1
- package/dist/commands/inbox.js +0 -120
- package/dist/commands/inbox.js.map +0 -1
- package/dist/commands/intent-scan.d.ts +0 -17
- package/dist/commands/intent-scan.d.ts.map +0 -1
- package/dist/commands/intent-scan.js +0 -336
- package/dist/commands/intent-scan.js.map +0 -1
- package/dist/commands/key-import.d.ts +0 -3
- package/dist/commands/key-import.d.ts.map +0 -1
- package/dist/commands/key-import.js +0 -54
- package/dist/commands/key-import.js.map +0 -1
- package/dist/commands/keygen.d.ts +0 -3
- package/dist/commands/keygen.d.ts.map +0 -1
- package/dist/commands/keygen.js +0 -53
- package/dist/commands/keygen.js.map +0 -1
- package/dist/commands/keys.d.ts +0 -3
- package/dist/commands/keys.d.ts.map +0 -1
- package/dist/commands/keys.js +0 -56
- package/dist/commands/keys.js.map +0 -1
- package/dist/commands/lock.d.ts +0 -11
- package/dist/commands/lock.d.ts.map +0 -1
- package/dist/commands/lock.js +0 -257
- package/dist/commands/lock.js.map +0 -1
- package/dist/commands/mcp-health.d.ts +0 -3
- package/dist/commands/mcp-health.d.ts.map +0 -1
- package/dist/commands/mcp-health.js +0 -305
- package/dist/commands/mcp-health.js.map +0 -1
- package/dist/commands/mcp-restart.d.ts +0 -3
- package/dist/commands/mcp-restart.d.ts.map +0 -1
- package/dist/commands/mcp-restart.js +0 -176
- package/dist/commands/mcp-restart.js.map +0 -1
- package/dist/commands/monitor.d.ts +0 -3
- package/dist/commands/monitor.d.ts.map +0 -1
- package/dist/commands/monitor.js +0 -153
- package/dist/commands/monitor.js.map +0 -1
- package/dist/commands/msg-read.d.ts +0 -3
- package/dist/commands/msg-read.d.ts.map +0 -1
- package/dist/commands/msg-read.js +0 -95
- package/dist/commands/msg-read.js.map +0 -1
- package/dist/commands/pulse.d.ts +0 -13
- package/dist/commands/pulse.d.ts.map +0 -1
- package/dist/commands/pulse.js +0 -174
- package/dist/commands/pulse.js.map +0 -1
- package/dist/commands/queen.d.ts +0 -25
- package/dist/commands/queen.d.ts.map +0 -1
- package/dist/commands/queen.js +0 -326
- package/dist/commands/queen.js.map +0 -1
- package/dist/commands/radar.d.ts +0 -3
- package/dist/commands/radar.d.ts.map +0 -1
- package/dist/commands/radar.js +0 -147
- package/dist/commands/radar.js.map +0 -1
- package/dist/commands/rescue.d.ts +0 -11
- package/dist/commands/rescue.d.ts.map +0 -1
- package/dist/commands/rescue.js +0 -147
- package/dist/commands/rescue.js.map +0 -1
- package/dist/commands/semantic.d.ts +0 -3
- package/dist/commands/semantic.d.ts.map +0 -1
- package/dist/commands/semantic.js +0 -62
- package/dist/commands/semantic.js.map +0 -1
- package/dist/commands/send.d.ts +0 -3
- package/dist/commands/send.d.ts.map +0 -1
- package/dist/commands/send.js +0 -121
- package/dist/commands/send.js.map +0 -1
- package/dist/commands/status.d.ts +0 -9
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -41
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/sync-advisor.d.ts +0 -14
- package/dist/commands/sync-advisor.d.ts.map +0 -1
- package/dist/commands/sync-advisor.js +0 -110
- package/dist/commands/sync-advisor.js.map +0 -1
- package/dist/commands/tension.d.ts +0 -12
- package/dist/commands/tension.d.ts.map +0 -1
- package/dist/commands/tension.js +0 -262
- package/dist/commands/tension.js.map +0 -1
- package/dist/commands/torrent.d.ts +0 -9
- package/dist/commands/torrent.d.ts.map +0 -1
- package/dist/commands/torrent.js +0 -470
- package/dist/commands/torrent.js.map +0 -1
- package/dist/commands/tui.d.ts +0 -8
- package/dist/commands/tui.d.ts.map +0 -1
- package/dist/commands/tui.js +0 -15
- package/dist/commands/tui.js.map +0 -1
- package/dist/commands/wake.d.ts +0 -9
- package/dist/commands/wake.d.ts.map +0 -1
- package/dist/commands/wake.js +0 -188
- package/dist/commands/wake.js.map +0 -1
- package/dist/commands/welcome.d.ts +0 -8
- package/dist/commands/welcome.d.ts.map +0 -1
- package/dist/commands/welcome.js +0 -85
- package/dist/commands/welcome.js.map +0 -1
- package/dist/commands/who-owns.d.ts +0 -3
- package/dist/commands/who-owns.d.ts.map +0 -1
- package/dist/commands/who-owns.js +0 -68
- package/dist/commands/who-owns.js.map +0 -1
- package/dist/commands/who-touched.d.ts +0 -9
- package/dist/commands/who-touched.d.ts.map +0 -1
- package/dist/commands/who-touched.js +0 -198
- package/dist/commands/who-touched.js.map +0 -1
- package/dist/lib/crdt.d.ts +0 -83
- package/dist/lib/crdt.d.ts.map +0 -1
- package/dist/lib/crdt.js +0 -160
- package/dist/lib/crdt.js.map +0 -1
- package/dist/lib/daily-bridge.d.ts +0 -41
- package/dist/lib/daily-bridge.d.ts.map +0 -1
- package/dist/lib/daily-bridge.js +0 -186
- package/dist/lib/daily-bridge.js.map +0 -1
- package/dist/lib/hub.d.ts +0 -31
- package/dist/lib/hub.d.ts.map +0 -1
- package/dist/lib/hub.js +0 -92
- package/dist/lib/hub.js.map +0 -1
- package/dist/lib/license.d.ts +0 -61
- package/dist/lib/license.d.ts.map +0 -1
- package/dist/lib/license.js +0 -171
- package/dist/lib/license.js.map +0 -1
- package/dist/lib/pulse-renderer.d.ts +0 -19
- package/dist/lib/pulse-renderer.d.ts.map +0 -1
- package/dist/lib/pulse-renderer.js +0 -108
- package/dist/lib/pulse-renderer.js.map +0 -1
- package/dist/lib/repo-scanner.d.ts +0 -32
- package/dist/lib/repo-scanner.d.ts.map +0 -1
- package/dist/lib/repo-scanner.js +0 -160
- package/dist/lib/repo-scanner.js.map +0 -1
- package/dist/lib/salvage-analyzer.d.ts +0 -29
- package/dist/lib/salvage-analyzer.d.ts.map +0 -1
- package/dist/lib/salvage-analyzer.js +0 -121
- package/dist/lib/salvage-analyzer.js.map +0 -1
- package/dist/lib/session-logger.d.ts +0 -54
- package/dist/lib/session-logger.d.ts.map +0 -1
- package/dist/lib/session-logger.js +0 -136
- package/dist/lib/session-logger.js.map +0 -1
- package/dist/lib/symbol-extractor.d.ts +0 -41
- package/dist/lib/symbol-extractor.d.ts.map +0 -1
- package/dist/lib/symbol-extractor.js +0 -78
- package/dist/lib/symbol-extractor.js.map +0 -1
- package/dist/storage/git-messages.d.ts +0 -53
- package/dist/storage/git-messages.d.ts.map +0 -1
- package/dist/storage/git-messages.js +0 -376
- package/dist/storage/git-messages.js.map +0 -1
- package/dist/storage/local-messages.d.ts +0 -37
- package/dist/storage/local-messages.d.ts.map +0 -1
- package/dist/storage/local-messages.js +0 -151
- package/dist/storage/local-messages.js.map +0 -1
- package/dist/storage/message-adapter.d.ts +0 -86
- package/dist/storage/message-adapter.d.ts.map +0 -1
- package/dist/storage/message-adapter.js +0 -28
- package/dist/storage/message-adapter.js.map +0 -1
- package/dist/storage/message-factory.d.ts +0 -36
- package/dist/storage/message-factory.d.ts.map +0 -1
- package/dist/storage/message-factory.js +0 -99
- package/dist/storage/message-factory.js.map +0 -1
- package/dist/storage/mycmail-adapter.d.ts +0 -38
- package/dist/storage/mycmail-adapter.d.ts.map +0 -1
- package/dist/storage/mycmail-adapter.js +0 -300
- package/dist/storage/mycmail-adapter.js.map +0 -1
- package/dist/tui/dashboard.d.ts +0 -35
- package/dist/tui/dashboard.d.ts.map +0 -1
- package/dist/tui/dashboard.js +0 -199
- package/dist/tui/dashboard.js.map +0 -1
- package/dist/tui/screen.d.ts +0 -14
- package/dist/tui/screen.d.ts.map +0 -1
- package/dist/tui/screen.js +0 -138
- package/dist/tui/screen.js.map +0 -1
package/dist/lib/ai/reasoner.js
CHANGED
|
@@ -6,37 +6,35 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { chat } from './llm-client.js';
|
|
8
8
|
// ─── Known Command Registry ──────────────────────────────────
|
|
9
|
-
//
|
|
10
|
-
//
|
|
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', '
|
|
13
|
-
'
|
|
14
|
-
'
|
|
15
|
-
'
|
|
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
|
-
|
|
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:
|
|
33
|
-
Decision: If
|
|
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 --
|
|
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>
|
|
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:
|
|
53
|
-
|
|
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
|
|
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
|
|
67
|
-
|
|
68
|
-
|
|
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
|
|
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\`
|
|
83
|
-
Commands: log → log --since 7d → log --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
|
|
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,
|
|
95
|
-
Commands:
|
|
96
|
-
Decision:
|
|
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
|
|
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
|
|
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 →
|
|
106
|
-
Decision: Use \`github-sync\` for remote branch/PR overview. \`
|
|
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
|
|
109
|
-
Situation:
|
|
110
|
-
|
|
111
|
-
|
|
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
|
|
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? →
|
|
127
|
-
Found unknown/suspicious branch? →
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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 →
|
|
141
|
-
Setting up for first time? →
|
|
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
|
|
224
|
-
//
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAUvC,gEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"reasoner.js","sourceRoot":"","sources":["../../../src/lib/ai/reasoner.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/ai/setup.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export type AiTier = 'free' | 'contributor' | 'byom' | 'local';
|
|
8
8
|
export interface AiSetupConfig {
|
|
9
|
-
/** How
|
|
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,
|
|
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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"}
|
package/dist/lib/ai/types.js
CHANGED
|
@@ -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
|
-
|
|
13
|
-
|
|
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
|
},
|
package/dist/lib/ai/types.js.map
CHANGED
|
@@ -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,
|
|
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;
|
package/dist/lib/ast.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
package/dist/lib/ast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/lib/ast.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;
|
|
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
|
|
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 {
|