mirror of
https://github.com/ruvnet/ruflo.git
synced 2026-09-14 14:01:28 +08:00
feat/swarm-execute
9 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
e332689b8c | fix(release): harden hooks, statusline, security, and plugin MCP integration | ||
|
|
e0d0af1cef |
feat(gaia): pre-submission exploit audit + signed attestation (ADR-167) (#2543)
* feat(gaia): pre-submission exploit audit + signed attestation (ADR-167) Motivated by UC Berkeley RDI's April-2026 finding that all 8 major agent benchmarks were gamed to ~98-100% without solving a single task (GAIA leaked ~98% of answers via public answer DBs + normalization collisions; o3/Claude-3.7 monkey-patch graders in 30%+ of runs per METR). Signing proves transport-integrity; this audit proves earning-integrity. The audit report is deterministic ($0, offline, pure-core) and is registered as an ADR-103 witness fix marker so its sha256 + "clean": true marker are signed INTO manifest.md.json. - ADR-167 (v3/docs/adr): threat model, check catalogue mapped to RDI/METR vectors, manifest-attestation design, honest harness-gap limitations. - gaia-audit.mjs: 7 pure checks (answer-leakage, no-work, oracle-leakage, grader-isolation, normalization-collision, voting-disclosure, split-integrity); CLI exit 0 clean / 1 CRITICAL / 2 usage. Schema-blocked checks return skip with a harness_gap note, never a false pass. - Tests: 27 passing; clean + dirty fixtures triggering every vector. - Wired --audit into /gaia validate; pre-sign gate into /gaia submit (refuses CRITICAL fail unless --allow-dirty) + gaia-submission skill. - Bump ruflo-workflows 0.4.0 → 0.5.0. Co-Authored-By: claude-flow <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_01V84YJJK7RBF9TuUo4eVSW7 * docs(adr): ADR-168 — GAIA harness evidence recording (implements ADR-167 §7 forward contract) Co-Authored-By: RuFlo <ruv@ruv.net> * docs(adr): ADR-169 — benchmark reporting integrity standard (strict-EM headlines, view-labeled scaling, disclosed gaps) Codifies the discipline the FRAMES ablation self-audit measured against the Berkeley RDI vectors. Completes the integrity family: ADR-167 audits the submission, ADR-168 records the evidence, ADR-169 governs how numbers are reported. Co-Authored-By: RuFlo <ruv@ruv.net> * feat(gaia): port static source-scan checks (AUD-8/9/10) into gaia-audit Ports the unique, non-overlapping checks from the reverted #2547 duplicate gaia-integrity.mjs into gaia-audit.mjs as a new static source-scan family, matching ADR-167's check-registry / status / harness_gap design: - AUD-8 answer-key-reads (CRITICAL, fail-closed): scans runner sources + produced artifacts for answer/gold/solution/ground-truth-shaped paths referenced outside the sanctioned dataset dir(s). - AUD-9 dynamic-eval (CRITICAL, fail-closed): static scan of the gaia-bench runner sources for eval()/new Function()/exec-family calls with a non-literal first arg. Preserves the #2547 false-positive refinements (multi-line aware, RegExp.prototype.exec excluded, fixed-string commands + comments ignored) — passes clean against ruflo's own multi-line `gcloud secrets … execSync`. - AUD-10 judge-injection (WARN): scans the agent's PRODUCED answer/outputs for judge-directed prompt-injection markers. Distinct from AUD-3 oracle-leakage (input-side gold-answer scan), so both run. Unlike AUD-1/3/4 these need no trajectory instrumentation — they enforce today and skip honestly (never false-pass) when the source population is absent (standalone/ejected run or --skip-source-scan). The #2547 provenance stamp and --allow-integrity-override are NOT ported: #2543's signed attestation and the `/gaia submit --allow-dirty` gate already own provenance + override, so the new checks flow through the same attestation.clean/strict_clean path. CLI adds --repo-root, --dataset-dir (repeatable), --skip-source-scan. Fixtures: planted evil runner (eval + interpolated exec), planted answer-key read, judge-injection results. Tests: 44 green (17 new). Docs: ADR-167 §3/§7 check table, gaia-validate.md, gaia-submission SKILL.md. Co-Authored-By: RuFlo <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_01S7GYqnVUVxBfZ5W8znqry3 * fix(ci): advance ruflo-workflows smoke version assertion to 0.5.0 The AUD-8/9/10 port bumped plugin.json to 0.5.0 but the plugin's own smoke step 1 still asserted 0.4.0 — the single failing step behind both smoke-all and the meta-smoke leg of smoke-without-metaharness on #2543. Co-Authored-By: RuFlo <ruv@ruv.net> |
||
|
|
720c27b305 | darwin-plugins iter 1 — ruflo-workflows: add 'Use when' trigger to gaia-debugging skill (ADR-112) | ||
|
|
a73a2cbe32 |
fix(routing): stale route cache + --explore false (3.10.8) (#2229)
* feat(workflows): add native Workflow JS orchestration surface (ADR-0002) ruflo-workflows now documents both workflow surfaces: the existing 10 workflow_* MCP tools and the native Claude Code Workflow JS capability (.claude/workflows/*.js — agent/parallel/pipeline/phase fan-out). - ADR-0002 (Accepted): adopts native orchestration alongside the MCP surface - Reference workflow .claude/workflows/plugin-contract-audit.js (fans smoke contracts across all plugins, diagnoses failures in parallel) - README: native orchestration section + four-hook API + surface decision table - workflow-create/workflow-run skills, workflow-specialist agent, /workflow command made surface-aware - plugin.json 0.3.0 -> 0.4.0; native-workflow keywords + component block - smoke.sh reconciled (stale version + ADR-0001 status) and extended 11 -> 15 checks; smoke-gaia.sh version assertion bumped to 0.4.0 Co-Authored-By: RuFlo <ruv@ruv.net> * fix(routing): #bugB stale route cache + #bugC --explore false (3.10.8) Two routing-learning correctness bugs from the intelligence audit's remaining punch-list (docs/reviews/intelligence-system-audit-2026-05-29.md §Remediation). - Bug B (stale route cache): QLearningRouter.update() only invalidated the whole route cache every 50 updates, so a freshly-learned Q-update stayed hidden behind a stale cached decision — feedback appeared to have no effect on routing in-process until 50 updates accumulated. Now update() invalidates the updated state's cache entry immediately (new invalidateCacheEntry). Verified: learned route flips coder→researcher within 10 updates (was 50+). - Bug C (--explore false ignored): boolean flags dropped an explicit space-form value, forcing a default-true boolean (explore) to true even with , so exploitation could never be forced. parser.ts now consumes a true/false literal for boolean flags (--explore false / -e false), while --explore=false and --no-explore keep working. Verified deterministic. +4 regression tests (15/15 bug-cluster pass); 52/52 parser tests pass; cli build clean. Audit doc updated with full remediation status (3.10.7 + 3.10.8 shipped; SONA-default/MicroLoRA/EWC-Fisher/per-task-bandit deferred with honest rationale — the latter two need an ADR/upstream fix, not a patch). Co-Authored-By: RuFlo <ruv@ruv.net> |
||
|
|
2158808f7d |
fix(gaia): #2156 iter 53a — narrow T2 extraction to fix iter 52b regression (#2204)
* feat(benchmarks): ADR-133-PR1 — gaia-loader.ts skeleton + HF_TOKEN resolution Adds the first concrete deliverable toward ADR-133 (Real GAIA Capability Benchmark): a typed dataset loader with: - `resolveHfToken()` — mirrors the ANTHROPIC_API_KEY pattern from performance-capability.ts (env var first, gcloud fallback using the actual GCP secret name `huggingface-token`) - `loadGaia(options)` — public API returning GaiaQuestion[] with level/limit/smokeOnly/cacheDir knobs - `SMOKE_FIXTURE` — 5 offline questions for CI-without-HF testing (all 5 answer keys manually verified via `node -e`) - HF Datasets Server paginated rows endpoint (PR-1 skeleton: 100 rows, full pagination tracked for PR-3) HF_TOKEN is confirmed available in GCP Secret Manager as `huggingface-token` (36-char token). The `resolveHfToken()` function resolves this correctly. Next: gaia-tools/ (PR-2) and gaia-agent.ts multi-turn loop (PR-3). Co-Authored-By: RuFlo <ruv@ruv.net> * feat(benchmarks): ADR-133-PR2 — gaia-tools/ scaffold (web_search + file_read + types) Adds the second slice of ADR-133 (Real GAIA Capability Benchmark): the gaia-tools/ subsystem that the agent loop (PR-3) will consume. New files: - gaia-tools/types.ts — shared Anthropic tool_use / tool_result spec types (ToolDefinition, ToolUseBlock, ToolResultBlock, GaiaTool interface, GaiaToolCatalogue) - gaia-tools/web_search.ts — DuckDuckGo HTML scrape (POST /html/, no API key); regex-based title/URL/snippet extraction; single-redirect follow; 20s timeout - gaia-tools/file_read.ts — local fs reader with extension + magic-byte content-type detection; 1 MB size cap; absolute-path validation; binary stub for PDF/images (PR-4 concern) - gaia-tools/index.ts — barrel + createDefaultToolCatalogue() factory All logic verified via node -e before commit: PASS: stripHtml (3 cases) PASS: validatePath (4 cases — empty, relative, null-byte, valid absolute) PASS: hasBinaryMagic (5 cases — PDF, PNG, JPEG, text, empty) PASS: decodeRawUrl (DDG redirect URL + direct URL passthrough) TypeScript: tsc --noEmit --skipLibCheck — zero errors. Next: gaia-agent.ts multi-turn loop (PR-3) that imports createDefaultToolCatalogue() and drives a Claude Messages API call-loop until final_answer is extracted. Refs: ADR-133, #2156 Co-Authored-By: RuFlo <ruv@ruv.net> * feat(hooks): ADR-132 — SimulativePlanningRouter scaffold + unit tests Implements the SR²AM-style simulative planning layer from ADR-132: selective depth-allocation that fires a Haiku shadow pass before Tier-3 (Sonnet/Opus) dispatch when tasks exceed the horizon/MCP gate. New files: - v3/@claude-flow/hooks/src/route/simulative-planning-router.ts Gate logic (estimatedHorizon > 5 OR predictedMcpCalls >= 2), buildShadowPrompt, parseShadowResponse (fence-stripping + fallback), maybeSimulatePlan (injected HaikuClient + SonaCache collaborators). Target: <=30 ms overhead, 256-token Haiku pass, 300 s SONA TTL. - v3/@claude-flow/hooks/src/route/index.ts Barrel export for the new route/ submodule. - v3/@claude-flow/hooks/__tests__/simulative-planning-router.test.ts 25 vitest unit tests (all green): gate boundary conditions, prompt builder, JSON parser (happy path / code-fence stripping / malformed fallback), maybeSimulatePlan integration with mock collaborators, SONA cache-write failure resilience. Does NOT open PR — gated on ADR-132 doc PR #2157 merging first (per iter-1 decision D1). Co-Authored-By: RuFlo <ruv@ruv.net> * Revert "feat(hooks): ADR-132 — SimulativePlanningRouter scaffold + unit tests" This reverts commit |
||
|
|
02eee0bcdc |
docs(adr): bulk-update plugin contract ADR statuses (sweep)
- 27 plugins moved Proposed → Accepted (shipped versions, in marketplace) - 0 plugins kept as Proposed (all have real versions ≥ 0.2.0) Per-plugin breakdown: ruflo-aidefence v0.2.0 Accepted — 3-gate pattern, 6 aidefence_* tools ruflo-autopilot v0.2.0 Accepted — 10 autopilot_* tools, /loop integration ruflo-core v0.2.1 Accepted — MCP server contract, plugin-catalog discovery ruflo-cost-tracker v0.16.1 Accepted — namespace-routing fix, ADR-097 budget integration ruflo-daa v0.2.0 Accepted — 8 daa_* tools, intelligence-pipeline alignment ruflo-ddd v0.2.0 Accepted — AgentDB domain graph, SPARC Architecture-phase ruflo-docs v0.2.0 Accepted — document worker dispatch, drift detection ruflo-federation v0.2.0 Accepted — ADR-097 Phase 1+2, 3-gate alignment ruflo-goals v0.2.0 Accepted — 6 namespaces, GOAP + dossier ADR-099 ruflo-iot-cognitum v0.2.0 Accepted — 5-tier trust, 6 background workers ruflo-jujutsu v0.2.0 Accepted — 6 analyze_* tools, ADR-compliance cross-link ruflo-knowledge-graph v0.2.0 Accepted — embeddings_generate fix, pathfinder ruflo-loop-workers v0.2.0 Accepted — 12 worker triggers, 5 hooks_worker-* tools ruflo-market-data v0.2.0 Accepted — embeddings + namespace-routing bugs fixed ruflo-migrations v0.2.0 Accepted — namespace-routing bug fixed both skills ruflo-neural-trader v0.2.0 Accepted — 4 namespaces already compliant ruflo-observability v0.2.0 Accepted — namespace-routing bug fixed both skills ruflo-plugin-creator v0.2.0 Accepted — scaffolding templates updated with contract ruflo-rag-memory v0.2.0 Accepted — claude-memories reserved namespace consumer ruflo-ruvllm v0.2.0 Accepted — LLM-config + chat-format slice ownership ruflo-rvf v0.2.0 Accepted — portable-memory + session-persistence slice ruflo-security-audit v0.2.0 Accepted — 3-gate + audit_1776853149979 regression class ruflo-sparc v0.2.0 Accepted — all 5 SPARC phases cross-linked ruflo-swarm v0.2.0 Accepted — 12 MCP tools (4 swarm_* + 8 agent_*) ruflo-testgen v0.2.0 Accepted — testgaps worker + coverage CLI commands ruflo-wasm v0.2.0 Accepted — 10 wasm_* tools, ADR-070 cross-ref ruflo-workflows v0.2.0 Accepted — 10 workflow_* tools, SPARC phase transitions Each ADR received: updated: 2026-05-09 in frontmatter + Implementation status section noting version, marketplace presence, and contract element alignment. Co-Authored-By: RuFlo <ruv@ruv.net> |
||
|
|
d9db4e7663 |
feat(ruflo-workflows): v0.2.0 — adopt plugin contract + 10-tool MCP surface + lifecycle state machine (ADR-0001)
This is the FINAL plugin in the ruflo family. ADR-0001 here completes the plugin-contract retrofit across all 33 plugins. Surface: 10 workflow_* MCP tools (create/run/execute/status/list/pause/ resume/cancel/delete/template) backed by full state machine (created → running ↔ paused → completed/cancelled). - ADR-0001 (Proposed) at docs/adrs/0001-workflows-contract.md - README adds Compatibility (pin v3.6), 10-tool MCP surface table, Lifecycle state machine diagram + transition table (5 states + 4 transitions), workflow_execute documented as stateless path, Namespace coordination (claims workflows-state; defers to ruflo-agentdb ADR-0001), Verification + Architecture Decisions - plugin.json bumps 0.1.0 → 0.2.0; description names the 10 tools + state machine; keywords add mcp, workflow-templates, pause-resume, lifecycle - scripts/smoke.sh — 11 structural checks: version + keywords, both skills + agent + command present, all 10 workflow_* tools referenced, v3.6 pin, namespace coordination, workflows-state claimed, 5 lifecycle states + 4 transitions documented, workflow_execute stateless path, ADR Proposed, no wildcard tools Verification: bash plugins/ruflo-workflows/scripts/smoke.sh → 11/11 Co-Authored-By: RuFlo <ruv@ruv.net> |
||
|
|
f25bcf2073 |
feat: add 10 new ruflo plugins, optimize all 32, add READMEs and user guide
New plugins: ruflo-adr (ADR lifecycle), ruflo-ddd (domain-driven design), ruflo-sparc (SPARC methodology), ruflo-neural-trader (trading strategies), ruflo-ruvector (vector embeddings), ruflo-knowledge-graph (entity graphs), ruflo-market-data (OHLCV ingestion), ruflo-migrations (schema management), ruflo-observability (logging/tracing), ruflo-cost-tracker (token budgets). Optimizations across all 32 plugins: - All pass `claude plugin validate` (removed invalid manifest arrays) - 51/51 skills have argument-hint frontmatter - Model routing: 4 haiku, 24 sonnet, 2 opus (cost-optimized) - Neural learning hooks on 25/30 agents - Cross-references between 6 related plugin pairs - Pathfinder graph traversal algo for researcher agent - READMEs for all 32 plugins + plugins/README.md catalog - discover-plugins skill updated with full 32-plugin catalog Co-Authored-By: claude-flow <ruv@ruv.net> |
||
|
|
81418649c6 |
feat: add 19 Claude Code native plugins with 64 skills, 25 commands, 21 agents
Complete plugin marketplace for Ruflo with validated Claude Code plugin format: - ruflo-core: MCP server, status, doctor, plugin discovery - ruflo-swarm: swarm coordination, Monitor, worktree isolation - ruflo-autopilot: autonomous /loop completion with learning - ruflo-intelligence: SONA neural patterns, trajectory learning, routing - ruflo-agentdb: AgentDB controllers, HNSW vector search, RuVector - ruflo-aidefence: AI safety scanning, PII detection, prompt defense - ruflo-browser: Playwright browser automation, testing, scraping - ruflo-jujutsu: git diff analysis, risk scoring, reviewer recs - ruflo-wasm: sandboxed WASM agents and gallery sharing - ruflo-workflows: workflow templates, orchestration, lifecycle - ruflo-daa: Dynamic Agentic Architecture, cognitive patterns - ruflo-ruvllm: local LLM inference, MicroLoRA, SONA, chat format - ruflo-rvf: RVF portable memory, session persistence, transfer - ruflo-loop-workers: background /loop workers, CronCreate - ruflo-security-audit: CVE scanning, dependency checks - ruflo-rag-memory: simple store/search/recall interface - ruflo-testgen: test gap detection, TDD workflow - ruflo-docs: doc generation, drift detection - ruflo-plugin-creator: scaffold, validate, publish new plugins All 19 pass `claude plugin validate`. Skills auto-discovered from directory structure (not declared in plugin.json). Each skill wires to ruflo MCP tools via allowed-tools frontmatter. Includes: marketplace.json, GitHub Pages storefront, CI validation workflow, minimalist README with USERGUIDE split. Co-Authored-By: claude-flow <ruv@ruv.net> |