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