multifleet 5.0.0__tar.gz
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.
- multifleet-5.0.0/.claude-plugin/marketplace.json +40 -0
- multifleet-5.0.0/.claude-plugin/plugin.json +29 -0
- multifleet-5.0.0/.cursor-plugin/plugin.json +67 -0
- multifleet-5.0.0/.env.example +20 -0
- multifleet-5.0.0/.gitattributes +13 -0
- multifleet-5.0.0/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
- multifleet-5.0.0/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
- multifleet-5.0.0/.github/PULL_REQUEST_TEMPLATE.md +22 -0
- multifleet-5.0.0/.github/workflows/benchmark.yml +31 -0
- multifleet-5.0.0/.github/workflows/ci.yml +83 -0
- multifleet-5.0.0/.gitignore +7 -0
- multifleet-5.0.0/.mcp.json +17 -0
- multifleet-5.0.0/.vscode/mcp.json.example +8 -0
- multifleet-5.0.0/ARCHITECTURE.md +378 -0
- multifleet-5.0.0/CHANGELOG.md +214 -0
- multifleet-5.0.0/CODE_OF_CONDUCT.md +40 -0
- multifleet-5.0.0/COMMS-PROTOCOL.md +313 -0
- multifleet-5.0.0/CONTRIBUTING.md +93 -0
- multifleet-5.0.0/DEMO.md +48 -0
- multifleet-5.0.0/INSTALL.md +193 -0
- multifleet-5.0.0/LICENSE +21 -0
- multifleet-5.0.0/PKG-INFO +496 -0
- multifleet-5.0.0/README.md +464 -0
- multifleet-5.0.0/RELEASE-NOTES.md +37 -0
- multifleet-5.0.0/SCALING.md +86 -0
- multifleet-5.0.0/agents/fleet-coordinator.md +350 -0
- multifleet-5.0.0/agents/fleet-liaison.md +178 -0
- multifleet-5.0.0/agents/fleet-worker.md +176 -0
- multifleet-5.0.0/bin/fleet-nerve-mcp +108 -0
- multifleet-5.0.0/bin/fleet_nerve_mcp.py +3309 -0
- multifleet-5.0.0/codex-config.toml.example +16 -0
- multifleet-5.0.0/commands/fleet-ack.md +6 -0
- multifleet-5.0.0/commands/fleet-chain.md +47 -0
- multifleet-5.0.0/commands/fleet-check.md +6 -0
- multifleet-5.0.0/commands/fleet-config-gate.md +6 -0
- multifleet-5.0.0/commands/fleet-dashboard.md +6 -0
- multifleet-5.0.0/commands/fleet-dispatch-gate.md +6 -0
- multifleet-5.0.0/commands/fleet-dispatch.md +41 -0
- multifleet-5.0.0/commands/fleet-doctor.md +6 -0
- multifleet-5.0.0/commands/fleet-events.md +14 -0
- multifleet-5.0.0/commands/fleet-healer.md +6 -0
- multifleet-5.0.0/commands/fleet-idle.md +6 -0
- multifleet-5.0.0/commands/fleet-liaison.md +12 -0
- multifleet-5.0.0/commands/fleet-onboard.md +6 -0
- multifleet-5.0.0/commands/fleet-orchestrate.md +6 -0
- multifleet-5.0.0/commands/fleet-post-verification.md +6 -0
- multifleet-5.0.0/commands/fleet-productivity.md +6 -0
- multifleet-5.0.0/commands/fleet-protocol.md +6 -0
- multifleet-5.0.0/commands/fleet-race.md +6 -0
- multifleet-5.0.0/commands/fleet-rebuttal.md +6 -0
- multifleet-5.0.0/commands/fleet-repair.md +6 -0
- multifleet-5.0.0/commands/fleet-security.md +6 -0
- multifleet-5.0.0/commands/fleet-send.md +6 -0
- multifleet-5.0.0/commands/fleet-status.md +6 -0
- multifleet-5.0.0/commands/fleet-task.md +6 -0
- multifleet-5.0.0/commands/fleet-tunnel.md +6 -0
- multifleet-5.0.0/commands/fleet-verdict.md +6 -0
- multifleet-5.0.0/commands/fleet-wake.md +6 -0
- multifleet-5.0.0/commands/fleet-watchdog.md +6 -0
- multifleet-5.0.0/commands/fleet-worker.md +6 -0
- multifleet-5.0.0/commands/productivity-view.md +6 -0
- multifleet-5.0.0/commands/using-multi-fleet.md +6 -0
- multifleet-5.0.0/config/config.template.json +28 -0
- multifleet-5.0.0/config/ide-adapters/claude-code.json +9 -0
- multifleet-5.0.0/config/ide-adapters/cursor.json +21 -0
- multifleet-5.0.0/config/ide-adapters/vscode.json +21 -0
- multifleet-5.0.0/config/presets/2-node-lan.json +48 -0
- multifleet-5.0.0/config/presets/2-node-lan.md +29 -0
- multifleet-5.0.0/config/presets/3-node-ssh.json +70 -0
- multifleet-5.0.0/config/presets/3-node-ssh.md +33 -0
- multifleet-5.0.0/config/presets/cloud-relay.json +58 -0
- multifleet-5.0.0/config/presets/cloud-relay.md +41 -0
- multifleet-5.0.0/config/presets/home-office.json +61 -0
- multifleet-5.0.0/config/presets/home-office.md +31 -0
- multifleet-5.0.0/docs/api/mcp-tools.md +77 -0
- multifleet-5.0.0/docs/api/packets.md +99 -0
- multifleet-5.0.0/docs/api/skills.md +51 -0
- multifleet-5.0.0/docs/architecture/layers.md +146 -0
- multifleet-5.0.0/docs/architecture/overview.md +92 -0
- multifleet-5.0.0/docs/architecture/probes.md +65 -0
- multifleet-5.0.0/docs/getting-started/config.md +97 -0
- multifleet-5.0.0/docs/getting-started/install.md +94 -0
- multifleet-5.0.0/docs/getting-started/quickstart.md +103 -0
- multifleet-5.0.0/docs/index.md +77 -0
- multifleet-5.0.0/docs/pricing.md +81 -0
- multifleet-5.0.0/gemini-extension.json +74 -0
- multifleet-5.0.0/hooks/hooks.json +57 -0
- multifleet-5.0.0/hooks/run-hook.cmd +708 -0
- multifleet-5.0.0/icon.svg +28 -0
- multifleet-5.0.0/mkdocs.yml +28 -0
- multifleet-5.0.0/multifleet/__init__.py +9 -0
- multifleet-5.0.0/multifleet/__main__.py +4 -0
- multifleet-5.0.0/multifleet/_paths.py +55 -0
- multifleet-5.0.0/multifleet/acceptance_gate.py +331 -0
- multifleet-5.0.0/multifleet/adapters/__init__.py +13 -0
- multifleet-5.0.0/multifleet/adapters/brainstorm_ingest.py +201 -0
- multifleet-5.0.0/multifleet/adapters/chief_sync.py +201 -0
- multifleet-5.0.0/multifleet/adapters/overlay_stream.py +180 -0
- multifleet-5.0.0/multifleet/adapters/packet_delivery.py +114 -0
- multifleet-5.0.0/multifleet/adapters/surgeon_escalation.py +158 -0
- multifleet-5.0.0/multifleet/adapters/surgeon_events.py +164 -0
- multifleet-5.0.0/multifleet/admin_feed.py +286 -0
- multifleet-5.0.0/multifleet/arbiter.py +265 -0
- multifleet-5.0.0/multifleet/arbiter_view.py +1177 -0
- multifleet-5.0.0/multifleet/audit.py +190 -0
- multifleet-5.0.0/multifleet/backup.py +188 -0
- multifleet-5.0.0/multifleet/benchmark.py +222 -0
- multifleet-5.0.0/multifleet/beta_dashboard.py +265 -0
- multifleet-5.0.0/multifleet/billing.py +239 -0
- multifleet-5.0.0/multifleet/branch_convergence.py +269 -0
- multifleet-5.0.0/multifleet/captain.py +219 -0
- multifleet-5.0.0/multifleet/channels.py +560 -0
- multifleet-5.0.0/multifleet/cli.py +929 -0
- multifleet-5.0.0/multifleet/config.py +246 -0
- multifleet-5.0.0/multifleet/contextdna_analyzer.py +475 -0
- multifleet-5.0.0/multifleet/contextdna_evidence_bridge.py +405 -0
- multifleet-5.0.0/multifleet/coordinator.py +261 -0
- multifleet-5.0.0/multifleet/cross_rebuttal.py +306 -0
- multifleet-5.0.0/multifleet/dashboard.py +170 -0
- multifleet-5.0.0/multifleet/dashboard_data.py +250 -0
- multifleet-5.0.0/multifleet/dashboard_events.py +159 -0
- multifleet-5.0.0/multifleet/dashboard_html.py +348 -0
- multifleet-5.0.0/multifleet/data_layer.py +242 -0
- multifleet-5.0.0/multifleet/discord_bridge.py +324 -0
- multifleet-5.0.0/multifleet/discovery.py +311 -0
- multifleet-5.0.0/multifleet/doctor.py +385 -0
- multifleet-5.0.0/multifleet/epistemic_packet.py +250 -0
- multifleet-5.0.0/multifleet/event_bus_server.py +536 -0
- multifleet-5.0.0/multifleet/event_emitter.py +143 -0
- multifleet-5.0.0/multifleet/event_registry.py +239 -0
- multifleet-5.0.0/multifleet/event_schema.py +221 -0
- multifleet-5.0.0/multifleet/event_stream.py +211 -0
- multifleet-5.0.0/multifleet/event_types.py +74 -0
- multifleet-5.0.0/multifleet/eventbus.py +335 -0
- multifleet-5.0.0/multifleet/evidence_ledger.py +287 -0
- multifleet-5.0.0/multifleet/evidence_sync.py +209 -0
- multifleet-5.0.0/multifleet/fleet_metrics.py +351 -0
- multifleet-5.0.0/multifleet/fleet_race.py +925 -0
- multifleet-5.0.0/multifleet/gains_gate.py +450 -0
- multifleet-5.0.0/multifleet/ghost_anticipate.py +247 -0
- multifleet-5.0.0/multifleet/ghost_checkpoint.py +282 -0
- multifleet-5.0.0/multifleet/ghost_contradictions.py +233 -0
- multifleet-5.0.0/multifleet/ghost_corroborate.py +319 -0
- multifleet-5.0.0/multifleet/ghost_cross_node.py +230 -0
- multifleet-5.0.0/multifleet/ghost_digest.py +339 -0
- multifleet-5.0.0/multifleet/ghost_layer.py +357 -0
- multifleet-5.0.0/multifleet/ghost_mirror.py +170 -0
- multifleet-5.0.0/multifleet/ghost_objections.py +220 -0
- multifleet-5.0.0/multifleet/ghost_pulse.py +358 -0
- multifleet-5.0.0/multifleet/health_monitor.py +418 -0
- multifleet-5.0.0/multifleet/hierarchy.py +349 -0
- multifleet-5.0.0/multifleet/ide_bridge.py +498 -0
- multifleet-5.0.0/multifleet/invariance_gates.py +646 -0
- multifleet-5.0.0/multifleet/invariance_rules.py +443 -0
- multifleet-5.0.0/multifleet/leases.py +614 -0
- multifleet-5.0.0/multifleet/liaison.py +359 -0
- multifleet-5.0.0/multifleet/mcp.py +45 -0
- multifleet-5.0.0/multifleet/mcp_resources.py +122 -0
- multifleet-5.0.0/multifleet/memory_bridge.py +329 -0
- multifleet-5.0.0/multifleet/memory_influence.py +325 -0
- multifleet-5.0.0/multifleet/merge_adjudicator.py +250 -0
- multifleet-5.0.0/multifleet/metrics.py +72 -0
- multifleet-5.0.0/multifleet/migration.py +168 -0
- multifleet-5.0.0/multifleet/nats_client.py +2878 -0
- multifleet-5.0.0/multifleet/nats_cluster.py +404 -0
- multifleet-5.0.0/multifleet/node_overlay.py +393 -0
- multifleet-5.0.0/multifleet/onboarding.py +257 -0
- multifleet-5.0.0/multifleet/packet_registry.py +256 -0
- multifleet-5.0.0/multifleet/packet_store.py +200 -0
- multifleet-5.0.0/multifleet/packets.py +198 -0
- multifleet-5.0.0/multifleet/probe_context_factory.py +104 -0
- multifleet-5.0.0/multifleet/probe_engine.py +849 -0
- multifleet-5.0.0/multifleet/probe_intensity.py +129 -0
- multifleet-5.0.0/multifleet/probe_interpreter.py +257 -0
- multifleet-5.0.0/multifleet/probe_review.py +131 -0
- multifleet-5.0.0/multifleet/probes/__init__.py +176 -0
- multifleet-5.0.0/multifleet/probes/agent_readiness.py +150 -0
- multifleet-5.0.0/multifleet/probes/architectural_hotspots.py +121 -0
- multifleet-5.0.0/multifleet/probes/blast_radius.py +216 -0
- multifleet-5.0.0/multifleet/probes/branch_intent.py +116 -0
- multifleet-5.0.0/multifleet/probes/dependency_drift.py +104 -0
- multifleet-5.0.0/multifleet/probes/distributed.py +166 -0
- multifleet-5.0.0/multifleet/probes/fleet_health.py +66 -0
- multifleet-5.0.0/multifleet/probes/hidden_dependency.py +328 -0
- multifleet-5.0.0/multifleet/probes/injection_prioritizer.py +368 -0
- multifleet-5.0.0/multifleet/probes/invariant_coverage.py +157 -0
- multifleet-5.0.0/multifleet/probes/mirror_drift.py +334 -0
- multifleet-5.0.0/multifleet/probes/partition_lease_drift.py +139 -0
- multifleet-5.0.0/multifleet/probes/repeated_failure.py +166 -0
- multifleet-5.0.0/multifleet/probes/repeated_failure_cluster.py +189 -0
- multifleet-5.0.0/multifleet/probes/security_surface.py +256 -0
- multifleet-5.0.0/multifleet/probes/stale_context.py +358 -0
- multifleet-5.0.0/multifleet/probes/task_diff_mismatch.py +135 -0
- multifleet-5.0.0/multifleet/probes/worktree_contamination.py +124 -0
- multifleet-5.0.0/multifleet/probes/worktree_divergence.py +136 -0
- multifleet-5.0.0/multifleet/product_bridge.py +534 -0
- multifleet-5.0.0/multifleet/productive_wait.py +99 -0
- multifleet-5.0.0/multifleet/professor_bridge.py +237 -0
- multifleet-5.0.0/multifleet/prometheus_export.py +258 -0
- multifleet-5.0.0/multifleet/protocol.py +53 -0
- multifleet-5.0.0/multifleet/race_orchestrator.py +299 -0
- multifleet-5.0.0/multifleet/rate_limit.py +57 -0
- multifleet-5.0.0/multifleet/rebuttal.py +286 -0
- multifleet-5.0.0/multifleet/regression_dashboard.py +256 -0
- multifleet-5.0.0/multifleet/replay.py +114 -0
- multifleet-5.0.0/multifleet/review_flow.py +398 -0
- multifleet-5.0.0/multifleet/sanitize.py +250 -0
- multifleet-5.0.0/multifleet/security.py +320 -0
- multifleet-5.0.0/multifleet/self_heal.py +872 -0
- multifleet-5.0.0/multifleet/sessions.py +491 -0
- multifleet-5.0.0/multifleet/snapshot_record.py +302 -0
- multifleet-5.0.0/multifleet/status_aggregator.py +215 -0
- multifleet-5.0.0/multifleet/store.py +651 -0
- multifleet-5.0.0/multifleet/superpowers_adapter.py +156 -0
- multifleet-5.0.0/multifleet/superpowers_bridge.py +305 -0
- multifleet-5.0.0/multifleet/superset_bridge.py +373 -0
- multifleet-5.0.0/multifleet/supervisor.py +330 -0
- multifleet-5.0.0/multifleet/supervisor_store.py +312 -0
- multifleet-5.0.0/multifleet/supervisor_watchdog.py +161 -0
- multifleet-5.0.0/multifleet/surgeon_adapter.py +510 -0
- multifleet-5.0.0/multifleet/synthesis.py +429 -0
- multifleet-5.0.0/multifleet/task_orchestrator.py +371 -0
- multifleet-5.0.0/multifleet/task_state.py +275 -0
- multifleet-5.0.0/multifleet/theater_dashboard.py +525 -0
- multifleet-5.0.0/multifleet/theatrical.py +609 -0
- multifleet-5.0.0/multifleet/truth_ladder.py +304 -0
- multifleet-5.0.0/multifleet/vision_packets.py +427 -0
- multifleet-5.0.0/multifleet/visual.py +211 -0
- multifleet-5.0.0/multifleet/web_dashboard.py +1059 -0
- multifleet-5.0.0/multifleet/web_server.py +492 -0
- multifleet-5.0.0/multifleet/worker.py +262 -0
- multifleet-5.0.0/package.json +33 -0
- multifleet-5.0.0/packet-types/_builtin/ack.json +19 -0
- multifleet-5.0.0/packet-types/_builtin/brainstorm.json +36 -0
- multifleet-5.0.0/packet-types/_builtin/branch_status.json +22 -0
- multifleet-5.0.0/packet-types/_builtin/chief_decision.json +48 -0
- multifleet-5.0.0/packet-types/_builtin/chief_decision_v2.json +26 -0
- multifleet-5.0.0/packet-types/_builtin/chief_escalation.json +31 -0
- multifleet-5.0.0/packet-types/_builtin/critique.json +24 -0
- multifleet-5.0.0/packet-types/_builtin/execution_ledger.json +42 -0
- multifleet-5.0.0/packet-types/_builtin/heartbeat.json +20 -0
- multifleet-5.0.0/packet-types/_builtin/lease_grant.json +20 -0
- multifleet-5.0.0/packet-types/_builtin/lease_release.json +17 -0
- multifleet-5.0.0/packet-types/_builtin/lease_request.json +18 -0
- multifleet-5.0.0/packet-types/_builtin/local_verdict.json +35 -0
- multifleet-5.0.0/packet-types/_builtin/merge_candidate.json +29 -0
- multifleet-5.0.0/packet-types/_builtin/proposal.json +19 -0
- multifleet-5.0.0/packet-types/_builtin/race_start.json +42 -0
- multifleet-5.0.0/packet-types/_builtin/rebuttal.json +18 -0
- multifleet-5.0.0/packet-types/_builtin/repair.json +25 -0
- multifleet-5.0.0/packet-types/_builtin/resolution.json +22 -0
- multifleet-5.0.0/packet-types/_builtin/supervisor_phase.json +33 -0
- multifleet-5.0.0/packet-types/_builtin/surgeon_decision.json +37 -0
- multifleet-5.0.0/packet-types/_builtin/sync_hold.json +20 -0
- multifleet-5.0.0/packet-types/_builtin/task_brief.json +21 -0
- multifleet-5.0.0/packet-types/_builtin/truth_promotion.json +25 -0
- multifleet-5.0.0/packet-types/_builtin/vision_contract.json +29 -0
- multifleet-5.0.0/packet-types/coordination/branch_status.json +21 -0
- multifleet-5.0.0/packet-types/coordination/critique.json +20 -0
- multifleet-5.0.0/packet-types/coordination/merge_candidate.json +20 -0
- multifleet-5.0.0/packet-types/coordination/review_request.json +20 -0
- multifleet-5.0.0/packet-types/coordination/task_result.json +20 -0
- multifleet-5.0.0/pyproject.toml +79 -0
- multifleet-5.0.0/ruff.toml +39 -0
- multifleet-5.0.0/scripts/build_manifests.py +499 -0
- multifleet-5.0.0/scripts/check-drift.sh +71 -0
- multifleet-5.0.0/scripts/demo-fleet-race.sh +396 -0
- multifleet-5.0.0/scripts/demo-multifleet.sh +216 -0
- multifleet-5.0.0/scripts/demo-race.sh +42 -0
- multifleet-5.0.0/scripts/demo-setup.sh +251 -0
- multifleet-5.0.0/scripts/fleet +209 -0
- multifleet-5.0.0/scripts/fleet-liaison.sh +165 -0
- multifleet-5.0.0/scripts/fleet-status-xbar.py +103 -0
- multifleet-5.0.0/scripts/fleet-stress-test.sh +42 -0
- multifleet-5.0.0/scripts/install.sh +363 -0
- multifleet-5.0.0/scripts/nats-cluster-setup.sh +120 -0
- multifleet-5.0.0/scripts/platform-detect.sh +75 -0
- multifleet-5.0.0/scripts/pre-demo-check.sh +98 -0
- multifleet-5.0.0/scripts/run-e2e.sh +31 -0
- multifleet-5.0.0/scripts/seed-demo-evidence.py +111 -0
- multifleet-5.0.0/scripts/validate-install.sh +276 -0
- multifleet-5.0.0/skills/fleet-ack/SKILL.md +98 -0
- multifleet-5.0.0/skills/fleet-chain/SKILL.md +87 -0
- multifleet-5.0.0/skills/fleet-check/SKILL.md +149 -0
- multifleet-5.0.0/skills/fleet-config-gate/SKILL.md +157 -0
- multifleet-5.0.0/skills/fleet-dispatch/SKILL.md +83 -0
- multifleet-5.0.0/skills/fleet-dispatch-gate/SKILL.md +135 -0
- multifleet-5.0.0/skills/fleet-events/SKILL.md +30 -0
- multifleet-5.0.0/skills/fleet-healer/SKILL.md +188 -0
- multifleet-5.0.0/skills/fleet-idle/SKILL.md +98 -0
- multifleet-5.0.0/skills/fleet-liaison/SKILL.md +175 -0
- multifleet-5.0.0/skills/fleet-onboard/SKILL.md +58 -0
- multifleet-5.0.0/skills/fleet-orchestrate/SKILL.md +354 -0
- multifleet-5.0.0/skills/fleet-post-verification/SKILL.md +168 -0
- multifleet-5.0.0/skills/fleet-protocol/SKILL.md +529 -0
- multifleet-5.0.0/skills/fleet-race/SKILL.md +125 -0
- multifleet-5.0.0/skills/fleet-rebuttal/SKILL.md +318 -0
- multifleet-5.0.0/skills/fleet-repair/SKILL.md +156 -0
- multifleet-5.0.0/skills/fleet-security/SKILL.md +78 -0
- multifleet-5.0.0/skills/fleet-send/SKILL.md +227 -0
- multifleet-5.0.0/skills/fleet-status/SKILL.md +235 -0
- multifleet-5.0.0/skills/fleet-task/SKILL.md +246 -0
- multifleet-5.0.0/skills/fleet-tunnel/SKILL.md +136 -0
- multifleet-5.0.0/skills/fleet-verdict/SKILL.md +267 -0
- multifleet-5.0.0/skills/fleet-wake/SKILL.md +211 -0
- multifleet-5.0.0/skills/fleet-watchdog/SKILL.md +281 -0
- multifleet-5.0.0/skills/fleet-worker/SKILL.md +187 -0
- multifleet-5.0.0/skills/productivity-view/SKILL.md +116 -0
- multifleet-5.0.0/skills/using-multi-fleet/SKILL.md +409 -0
- multifleet-5.0.0/tests/conftest.py +146 -0
- multifleet-5.0.0/tests/pytest.ini +6 -0
- multifleet-5.0.0/tests/test_3surgeon_fixes.py +231 -0
- multifleet-5.0.0/tests/test_acceptance_gate.py +129 -0
- multifleet-5.0.0/tests/test_adapters.py +352 -0
- multifleet-5.0.0/tests/test_admin_feed.py +256 -0
- multifleet-5.0.0/tests/test_arbiter.py +178 -0
- multifleet-5.0.0/tests/test_arbiter_view.py +210 -0
- multifleet-5.0.0/tests/test_architecture.py +111 -0
- multifleet-5.0.0/tests/test_audit.py +230 -0
- multifleet-5.0.0/tests/test_backup.py +243 -0
- multifleet-5.0.0/tests/test_benchmark.py +161 -0
- multifleet-5.0.0/tests/test_beta_dashboard.py +152 -0
- multifleet-5.0.0/tests/test_bidirectional_sync.py +231 -0
- multifleet-5.0.0/tests/test_billing.py +246 -0
- multifleet-5.0.0/tests/test_branch_convergence.py +226 -0
- multifleet-5.0.0/tests/test_captain.py +222 -0
- multifleet-5.0.0/tests/test_channel_cascade.py +247 -0
- multifleet-5.0.0/tests/test_channel_invariance.py +252 -0
- multifleet-5.0.0/tests/test_chaos.py +301 -0
- multifleet-5.0.0/tests/test_chaos_expanded.py +592 -0
- multifleet-5.0.0/tests/test_cli.py +94 -0
- multifleet-5.0.0/tests/test_code_review_wiring.py +231 -0
- multifleet-5.0.0/tests/test_code_scanner.py +398 -0
- multifleet-5.0.0/tests/test_config_loading.py +250 -0
- multifleet-5.0.0/tests/test_contextdna_analyzer.py +427 -0
- multifleet-5.0.0/tests/test_contextdna_evidence_bridge.py +291 -0
- multifleet-5.0.0/tests/test_contextdna_integration.py +342 -0
- multifleet-5.0.0/tests/test_contextdna_real.py +346 -0
- multifleet-5.0.0/tests/test_coordinator.py +243 -0
- multifleet-5.0.0/tests/test_cross_machine_e2e.py +396 -0
- multifleet-5.0.0/tests/test_cross_rebuttal.py +310 -0
- multifleet-5.0.0/tests/test_dashboard.py +169 -0
- multifleet-5.0.0/tests/test_dashboard_data.py +280 -0
- multifleet-5.0.0/tests/test_dashboard_html.py +98 -0
- multifleet-5.0.0/tests/test_data_layer.py +249 -0
- multifleet-5.0.0/tests/test_dedup_integration.py +386 -0
- multifleet-5.0.0/tests/test_demo_multifleet.py +57 -0
- multifleet-5.0.0/tests/test_discord_bridge.py +345 -0
- multifleet-5.0.0/tests/test_e2e_pipeline.py +570 -0
- multifleet-5.0.0/tests/test_epistemic_packet.py +127 -0
- multifleet-5.0.0/tests/test_event_bus_server.py +256 -0
- multifleet-5.0.0/tests/test_event_schema.py +131 -0
- multifleet-5.0.0/tests/test_event_stream.py +173 -0
- multifleet-5.0.0/tests/test_eventbus.py +253 -0
- multifleet-5.0.0/tests/test_eventbus_full_wiring.py +365 -0
- multifleet-5.0.0/tests/test_evidence_ledger.py +252 -0
- multifleet-5.0.0/tests/test_fleet_config.py +136 -0
- multifleet-5.0.0/tests/test_fleet_doctor.py +396 -0
- multifleet-5.0.0/tests/test_fleet_mcp.py +207 -0
- multifleet-5.0.0/tests/test_fleet_merge_and_export.py +324 -0
- multifleet-5.0.0/tests/test_fleet_metrics.py +117 -0
- multifleet-5.0.0/tests/test_fleet_race.py +240 -0
- multifleet-5.0.0/tests/test_fleet_repair.py +151 -0
- multifleet-5.0.0/tests/test_fleet_send.py +151 -0
- multifleet-5.0.0/tests/test_fleet_watchdog.py +133 -0
- multifleet-5.0.0/tests/test_fleet_worker.py +152 -0
- multifleet-5.0.0/tests/test_full_organism.py +251 -0
- multifleet-5.0.0/tests/test_full_stack.py +362 -0
- multifleet-5.0.0/tests/test_gains_gate.py +298 -0
- multifleet-5.0.0/tests/test_ghost.py +182 -0
- multifleet-5.0.0/tests/test_ghost_layer.py +576 -0
- multifleet-5.0.0/tests/test_health_monitor.py +118 -0
- multifleet-5.0.0/tests/test_hierarchy.py +406 -0
- multifleet-5.0.0/tests/test_hmac_security.py +323 -0
- multifleet-5.0.0/tests/test_hook_output.py +235 -0
- multifleet-5.0.0/tests/test_ide_bridge.py +310 -0
- multifleet-5.0.0/tests/test_integration_pipeline.py +150 -0
- multifleet-5.0.0/tests/test_integration_workflows.py +630 -0
- multifleet-5.0.0/tests/test_invariance_gates.py +430 -0
- multifleet-5.0.0/tests/test_invariance_rules.py +273 -0
- multifleet-5.0.0/tests/test_lease_cross_node.py +251 -0
- multifleet-5.0.0/tests/test_leases.py +711 -0
- multifleet-5.0.0/tests/test_liaison.py +354 -0
- multifleet-5.0.0/tests/test_liaison_launcher.py +281 -0
- multifleet-5.0.0/tests/test_mcp_resources.py +104 -0
- multifleet-5.0.0/tests/test_memory_bridge.py +199 -0
- multifleet-5.0.0/tests/test_memory_influence.py +193 -0
- multifleet-5.0.0/tests/test_memory_wiring.py +208 -0
- multifleet-5.0.0/tests/test_merge_adjudicator.py +363 -0
- multifleet-5.0.0/tests/test_metrics.py +75 -0
- multifleet-5.0.0/tests/test_mkdocs_site.py +131 -0
- multifleet-5.0.0/tests/test_module_dedup_integration.py +285 -0
- multifleet-5.0.0/tests/test_module_imports.py +81 -0
- multifleet-5.0.0/tests/test_module_smoke.py +223 -0
- multifleet-5.0.0/tests/test_nats_cluster.py +207 -0
- multifleet-5.0.0/tests/test_new_probes.py +223 -0
- multifleet-5.0.0/tests/test_no_hardcoded_paths.py +111 -0
- multifleet-5.0.0/tests/test_node_overlay.py +237 -0
- multifleet-5.0.0/tests/test_onboarding.py +214 -0
- multifleet-5.0.0/tests/test_organism_dashboard.py +317 -0
- multifleet-5.0.0/tests/test_packet_registry.py +245 -0
- multifleet-5.0.0/tests/test_packet_validation_integration.py +317 -0
- multifleet-5.0.0/tests/test_packets.py +368 -0
- multifleet-5.0.0/tests/test_probe_engine.py +423 -0
- multifleet-5.0.0/tests/test_probe_events.py +155 -0
- multifleet-5.0.0/tests/test_probe_evidence_pipeline.py +456 -0
- multifleet-5.0.0/tests/test_probe_interpreter.py +169 -0
- multifleet-5.0.0/tests/test_probe_review.py +37 -0
- multifleet-5.0.0/tests/test_probes_extended.py +323 -0
- multifleet-5.0.0/tests/test_probes_intelligence.py +342 -0
- multifleet-5.0.0/tests/test_probes_round2.py +308 -0
- multifleet-5.0.0/tests/test_product_bridge.py +291 -0
- multifleet-5.0.0/tests/test_production_hardening.py +372 -0
- multifleet-5.0.0/tests/test_productive_wait.py +147 -0
- multifleet-5.0.0/tests/test_professor_bridge.py +329 -0
- multifleet-5.0.0/tests/test_prometheus_export.py +181 -0
- multifleet-5.0.0/tests/test_protocol.py +70 -0
- multifleet-5.0.0/tests/test_protocol_hardening.py +253 -0
- multifleet-5.0.0/tests/test_protocol_version.py +129 -0
- multifleet-5.0.0/tests/test_race_orchestrator.py +333 -0
- multifleet-5.0.0/tests/test_rate_limit.py +77 -0
- multifleet-5.0.0/tests/test_rebuttal.py +223 -0
- multifleet-5.0.0/tests/test_rebuttal_e2e.py +634 -0
- multifleet-5.0.0/tests/test_rebuttal_integration.py +412 -0
- multifleet-5.0.0/tests/test_regression_dashboard.py +143 -0
- multifleet-5.0.0/tests/test_replay.py +92 -0
- multifleet-5.0.0/tests/test_review_flow.py +311 -0
- multifleet-5.0.0/tests/test_sanitize.py +301 -0
- multifleet-5.0.0/tests/test_security_audit.py +245 -0
- multifleet-5.0.0/tests/test_seed_validation.py +239 -0
- multifleet-5.0.0/tests/test_session_ids.py +162 -0
- multifleet-5.0.0/tests/test_signal_scoring.py +289 -0
- multifleet-5.0.0/tests/test_skills_commands.py +217 -0
- multifleet-5.0.0/tests/test_status_aggregator.py +261 -0
- multifleet-5.0.0/tests/test_store.py +303 -0
- multifleet-5.0.0/tests/test_stress_30day.py +588 -0
- multifleet-5.0.0/tests/test_superpowers_adapter.py +161 -0
- multifleet-5.0.0/tests/test_superpowers_bridge.py +252 -0
- multifleet-5.0.0/tests/test_superset_bridge.py +270 -0
- multifleet-5.0.0/tests/test_supervisor.py +157 -0
- multifleet-5.0.0/tests/test_supervisor_store.py +217 -0
- multifleet-5.0.0/tests/test_surgeon_adapter.py +522 -0
- multifleet-5.0.0/tests/test_synthesis.py +356 -0
- multifleet-5.0.0/tests/test_task_orchestrator.py +176 -0
- multifleet-5.0.0/tests/test_task_state.py +216 -0
- multifleet-5.0.0/tests/test_theater_dashboard.py +150 -0
- multifleet-5.0.0/tests/test_theatrical.py +142 -0
- multifleet-5.0.0/tests/test_truth_ladder.py +148 -0
- multifleet-5.0.0/tests/test_version.py +52 -0
- multifleet-5.0.0/tests/test_vision_packets.py +319 -0
- multifleet-5.0.0/tests/test_web_server.py +197 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "multi-fleet-marketplace",
|
|
3
|
+
"description": "Marketplace for the Multi-Fleet cross-machine AI collaboration plugin",
|
|
4
|
+
"owner": {
|
|
5
|
+
"name": "Aaron Tjomsland",
|
|
6
|
+
"email": "support@ersimulator.com"
|
|
7
|
+
},
|
|
8
|
+
"plugins": [
|
|
9
|
+
{
|
|
10
|
+
"name": "multi-fleet",
|
|
11
|
+
"description": "Cross-machine AI collaboration — real-time messaging, task agents, productivity visibility",
|
|
12
|
+
"version": "3.0.0",
|
|
13
|
+
"source": "./",
|
|
14
|
+
"author": { "name": "Multi-Fleet Contributors", "email": "support@ersimulator.com" },
|
|
15
|
+
"skills": [
|
|
16
|
+
"./skills/using-multi-fleet",
|
|
17
|
+
"./skills/fleet-send",
|
|
18
|
+
"./skills/fleet-status",
|
|
19
|
+
"./skills/fleet-task",
|
|
20
|
+
"./skills/fleet-wake",
|
|
21
|
+
"./skills/fleet-repair",
|
|
22
|
+
"./skills/fleet-tunnel",
|
|
23
|
+
"./skills/fleet-watchdog",
|
|
24
|
+
"./skills/fleet-check",
|
|
25
|
+
"./skills/fleet-worker",
|
|
26
|
+
"./skills/fleet-config-gate",
|
|
27
|
+
"./skills/fleet-dispatch-gate",
|
|
28
|
+
"./skills/fleet-healer",
|
|
29
|
+
"./skills/fleet-post-verification",
|
|
30
|
+
"./skills/fleet-protocol",
|
|
31
|
+
"./skills/productivity-view",
|
|
32
|
+
"./skills/fleet-chain",
|
|
33
|
+
"./skills/fleet-dispatch",
|
|
34
|
+
"./skills/fleet-ack",
|
|
35
|
+
"./skills/fleet-idle",
|
|
36
|
+
"./skills/fleet-security"
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "multi-fleet",
|
|
3
|
+
"displayName": "Multi-Fleet",
|
|
4
|
+
"description": "Cross-machine AI collaboration — real-time peer-to-peer messaging, chain orchestration, dispatch gates, session-aware task agents, and fleet-wide productivity visibility across multiple Claude Code instances",
|
|
5
|
+
"version": "3.0.0",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Aaron Tjomsland",
|
|
8
|
+
"email": "support@ersimulator.com"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/supportersimulator/er-simulator-superrepo",
|
|
11
|
+
"repository": "https://github.com/supportersimulator/er-simulator-superrepo",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"multi-fleet",
|
|
15
|
+
"fleet",
|
|
16
|
+
"collaboration",
|
|
17
|
+
"multi-machine",
|
|
18
|
+
"peer-to-peer",
|
|
19
|
+
"real-time",
|
|
20
|
+
"productivity",
|
|
21
|
+
"chain-orchestration",
|
|
22
|
+
"dispatch"
|
|
23
|
+
],
|
|
24
|
+
"skills": "./skills/",
|
|
25
|
+
"agents": "./agents/",
|
|
26
|
+
"commands": "./commands/",
|
|
27
|
+
"hooks": "./hooks/hooks.json",
|
|
28
|
+
"mcp": "./.mcp.json"
|
|
29
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "multi-fleet",
|
|
3
|
+
"displayName": "Multi-Fleet",
|
|
4
|
+
"description": "Cross-machine AI collaboration \u2014 real-time peer-to-peer messaging, session-aware task agents, and fleet-wide productivity visibility across multiple Claude Code instances",
|
|
5
|
+
"version": "2.0.0",
|
|
6
|
+
"ide": "cursor",
|
|
7
|
+
"mcpServers": {
|
|
8
|
+
"fleet-nerve": {
|
|
9
|
+
"command": "python3",
|
|
10
|
+
"args": [
|
|
11
|
+
"${workspaceFolder}/multi-fleet/tools/fleet_nerve_mcp.py"
|
|
12
|
+
],
|
|
13
|
+
"env": {
|
|
14
|
+
"MULTIFLEET_NODE_ID": "",
|
|
15
|
+
"FLEET_NERVE_PORT": "8855"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"tools": [
|
|
20
|
+
"using_multi_fleet",
|
|
21
|
+
"fleet_send",
|
|
22
|
+
"fleet_status",
|
|
23
|
+
"fleet_task",
|
|
24
|
+
"fleet_wake",
|
|
25
|
+
"fleet_repair",
|
|
26
|
+
"fleet_tunnel",
|
|
27
|
+
"fleet_watchdog",
|
|
28
|
+
"fleet_check",
|
|
29
|
+
"fleet_worker",
|
|
30
|
+
"productivity_view",
|
|
31
|
+
"cmd_fleet_check",
|
|
32
|
+
"cmd_fleet_dashboard",
|
|
33
|
+
"cmd_fleet_repair",
|
|
34
|
+
"cmd_fleet_send",
|
|
35
|
+
"cmd_fleet_status",
|
|
36
|
+
"cmd_fleet_task",
|
|
37
|
+
"cmd_fleet_tunnel",
|
|
38
|
+
"cmd_fleet_wake",
|
|
39
|
+
"cmd_fleet_watchdog",
|
|
40
|
+
"cmd_fleet_worker"
|
|
41
|
+
],
|
|
42
|
+
"skills": [
|
|
43
|
+
"using-multi-fleet",
|
|
44
|
+
"fleet-send",
|
|
45
|
+
"fleet-status",
|
|
46
|
+
"fleet-task",
|
|
47
|
+
"fleet-wake",
|
|
48
|
+
"fleet-repair",
|
|
49
|
+
"fleet-tunnel",
|
|
50
|
+
"fleet-watchdog",
|
|
51
|
+
"fleet-check",
|
|
52
|
+
"fleet-worker",
|
|
53
|
+
"productivity-view"
|
|
54
|
+
],
|
|
55
|
+
"commands": [
|
|
56
|
+
"fleet-check",
|
|
57
|
+
"fleet-dashboard",
|
|
58
|
+
"fleet-repair",
|
|
59
|
+
"fleet-send",
|
|
60
|
+
"fleet-status",
|
|
61
|
+
"fleet-task",
|
|
62
|
+
"fleet-tunnel",
|
|
63
|
+
"fleet-wake",
|
|
64
|
+
"fleet-watchdog",
|
|
65
|
+
"fleet-worker"
|
|
66
|
+
]
|
|
67
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Multi-Fleet Plugin Configuration
|
|
2
|
+
# Copy to .env and fill in values
|
|
3
|
+
|
|
4
|
+
# Unique name for this machine (e.g. mac1, mac2, mac3)
|
|
5
|
+
MULTIFLEET_NODE_ID=mac1
|
|
6
|
+
|
|
7
|
+
# Fleet nerve daemon HTTP port (default: 8855)
|
|
8
|
+
FLEET_NERVE_PORT=8855
|
|
9
|
+
|
|
10
|
+
# NATS server URL for P1 pub/sub communication
|
|
11
|
+
NATS_URL=nats://127.0.0.1:4222
|
|
12
|
+
|
|
13
|
+
# NATS authentication token (if server requires auth)
|
|
14
|
+
NATS_TOKEN=
|
|
15
|
+
|
|
16
|
+
# Superset API key for fleet dashboard metrics
|
|
17
|
+
SUPERSET_API_KEY=
|
|
18
|
+
|
|
19
|
+
# OpenAI API key — used by cardiologist surgeon (GPT-4.1-mini)
|
|
20
|
+
OPENAI_API_KEY=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug Report
|
|
3
|
+
about: Report a bug in Multi-Fleet
|
|
4
|
+
labels: bug
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Description
|
|
8
|
+
|
|
9
|
+
What happened?
|
|
10
|
+
|
|
11
|
+
## Expected Behavior
|
|
12
|
+
|
|
13
|
+
What should have happened?
|
|
14
|
+
|
|
15
|
+
## Steps to Reproduce
|
|
16
|
+
|
|
17
|
+
1. ...
|
|
18
|
+
2. ...
|
|
19
|
+
|
|
20
|
+
## Environment
|
|
21
|
+
|
|
22
|
+
- **OS:** (e.g., macOS 15.3, Ubuntu 24.04)
|
|
23
|
+
- **Python:** (e.g., 3.12)
|
|
24
|
+
- **IDE:** (e.g., Claude Code, Cursor, VS Code)
|
|
25
|
+
- **Multi-Fleet version:** (from `package.json`)
|
|
26
|
+
- **Node count:** (e.g., 2)
|
|
27
|
+
|
|
28
|
+
## Logs
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Paste relevant daemon logs or error output here.
|
|
32
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request
|
|
3
|
+
about: Suggest a new feature or improvement
|
|
4
|
+
labels: enhancement
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Problem
|
|
8
|
+
|
|
9
|
+
What problem does this solve?
|
|
10
|
+
|
|
11
|
+
## Proposed Solution
|
|
12
|
+
|
|
13
|
+
How should it work?
|
|
14
|
+
|
|
15
|
+
## Alternatives Considered
|
|
16
|
+
|
|
17
|
+
What other approaches did you consider?
|
|
18
|
+
|
|
19
|
+
## Additional Context
|
|
20
|
+
|
|
21
|
+
Any relevant links, screenshots, or examples.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
## What
|
|
2
|
+
|
|
3
|
+
Brief description of the change.
|
|
4
|
+
|
|
5
|
+
## Why
|
|
6
|
+
|
|
7
|
+
What problem does this solve or what feature does it add?
|
|
8
|
+
|
|
9
|
+
## How
|
|
10
|
+
|
|
11
|
+
Key implementation decisions (if non-obvious).
|
|
12
|
+
|
|
13
|
+
## Testing
|
|
14
|
+
|
|
15
|
+
- [ ] `python -m pytest tests/ -v` passes
|
|
16
|
+
- [ ] `ruff check . && ruff format --check .` passes
|
|
17
|
+
- [ ] New functionality has tests
|
|
18
|
+
- [ ] Tested with at least 2 nodes (if changing communication)
|
|
19
|
+
|
|
20
|
+
## Related Issues
|
|
21
|
+
|
|
22
|
+
Closes #
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: Performance Benchmark
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths: ['multi-fleet/multifleet/**']
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [main]
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
benchmark:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
- uses: actions/setup-python@v5
|
|
16
|
+
with:
|
|
17
|
+
python-version: '3.12'
|
|
18
|
+
- run: pip install nats-py jsonschema
|
|
19
|
+
- run: |
|
|
20
|
+
cd multi-fleet
|
|
21
|
+
PYTHONPATH=. python -c "
|
|
22
|
+
from multifleet.benchmark import FleetBenchmark
|
|
23
|
+
b = FleetBenchmark()
|
|
24
|
+
results = b.run_all()
|
|
25
|
+
print(b.render_report())
|
|
26
|
+
# Fail if any benchmark exceeds threshold
|
|
27
|
+
for r in results:
|
|
28
|
+
if r.p95_ms > 100:
|
|
29
|
+
print(f'REGRESSION: {r.name} p95={r.p95_ms}ms > 100ms threshold')
|
|
30
|
+
exit(1)
|
|
31
|
+
"
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- 'multi-fleet/**'
|
|
8
|
+
- 'tools/fleet_nerve_*.py'
|
|
9
|
+
pull_request:
|
|
10
|
+
branches: [main]
|
|
11
|
+
paths:
|
|
12
|
+
- 'multi-fleet/**'
|
|
13
|
+
- 'tools/fleet_nerve_*.py'
|
|
14
|
+
|
|
15
|
+
defaults:
|
|
16
|
+
run:
|
|
17
|
+
working-directory: .
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
test:
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
strategy:
|
|
23
|
+
matrix:
|
|
24
|
+
python-version: ['3.10', '3.12']
|
|
25
|
+
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
|
|
29
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
30
|
+
uses: actions/setup-python@v5
|
|
31
|
+
with:
|
|
32
|
+
python-version: ${{ matrix.python-version }}
|
|
33
|
+
|
|
34
|
+
- name: Install dependencies
|
|
35
|
+
run: |
|
|
36
|
+
python -m pip install --upgrade pip
|
|
37
|
+
pip install pytest pytest-asyncio
|
|
38
|
+
pip install nats-py
|
|
39
|
+
# Install from pyproject.toml if it exists
|
|
40
|
+
if [ -f multi-fleet/pyproject.toml ]; then
|
|
41
|
+
pip install -e multi-fleet/
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
- name: Run unit tests
|
|
45
|
+
run: |
|
|
46
|
+
cd multi-fleet
|
|
47
|
+
python -m pytest tests/ -m "not integration" -v --tb=short
|
|
48
|
+
env:
|
|
49
|
+
MULTIFLEET_NODE_ID: ci-runner
|
|
50
|
+
FLEET_NERVE_HMAC_KEY: ci-test-key-not-real
|
|
51
|
+
|
|
52
|
+
- name: Run security tests
|
|
53
|
+
run: |
|
|
54
|
+
cd multi-fleet
|
|
55
|
+
python -m pytest tests/ -m "security" -v --tb=short
|
|
56
|
+
env:
|
|
57
|
+
MULTIFLEET_NODE_ID: ci-runner
|
|
58
|
+
FLEET_NERVE_HMAC_KEY: ci-test-key-not-real
|
|
59
|
+
|
|
60
|
+
lint:
|
|
61
|
+
runs-on: ubuntu-latest
|
|
62
|
+
steps:
|
|
63
|
+
- uses: actions/checkout@v4
|
|
64
|
+
|
|
65
|
+
- name: Set up Python
|
|
66
|
+
uses: actions/setup-python@v5
|
|
67
|
+
with:
|
|
68
|
+
python-version: '3.12'
|
|
69
|
+
|
|
70
|
+
- name: Install ruff
|
|
71
|
+
run: pip install ruff
|
|
72
|
+
|
|
73
|
+
- name: Ruff check
|
|
74
|
+
continue-on-error: true
|
|
75
|
+
run: |
|
|
76
|
+
cd multi-fleet
|
|
77
|
+
ruff check . --config ruff.toml
|
|
78
|
+
|
|
79
|
+
- name: Ruff format check
|
|
80
|
+
continue-on-error: true
|
|
81
|
+
run: |
|
|
82
|
+
cd multi-fleet
|
|
83
|
+
ruff format --check . --config ruff.toml
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"fleet-nerve": {
|
|
4
|
+
"command": "python3",
|
|
5
|
+
"args": ["${CLAUDE_PLUGIN_ROOT}/bin/fleet_nerve_mcp.py"],
|
|
6
|
+
"env": {
|
|
7
|
+
"MULTIFLEET_NODE_ID": "",
|
|
8
|
+
"FLEET_NERVE_PORT": "8855"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"superset": {
|
|
12
|
+
"type": "http",
|
|
13
|
+
"url": "https://api.superset.sh/api/agent/mcp",
|
|
14
|
+
"_description": "Superset local execution runtime — workspace, task, and agent session management"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|