claude-flow 3.47.1 → 3.49.0
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/.claude/.proven-config-version +1 -0
- package/.claude/helpers/auto-memory-hook.mjs +6 -2
- package/.claude/helpers/hook-handler.cjs +7 -4
- package/.claude/helpers/learning-service.mjs +4 -2
- package/.claude/helpers/memory.cjs +1 -1
- package/.claude/helpers/metrics-db.mjs +4 -2
- package/.claude/helpers/router.cjs +1 -1
- package/.claude/helpers/session.cjs +1 -1
- package/.claude/proven-config.json +42 -0
- package/.claude-plugin/marketplace.json +16 -1
- package/README.md +1 -53
- package/README.zh-CN.md +1 -53
- package/node_modules/@claude-flow/codex/package.json +1 -1
- package/node_modules/@claude-flow/mcp/dist/tool-registry.d.ts.map +1 -1
- package/node_modules/@claude-flow/mcp/dist/tool-registry.js +11 -3
- package/node_modules/@claude-flow/mcp/dist/tool-registry.js.map +1 -1
- package/node_modules/@claude-flow/mcp/package.json +6 -3
- package/node_modules/@claude-flow/plugin-agent-federation/package.json +3 -3
- package/node_modules/@claude-flow/security/dist/policy/engine.d.ts +2 -6
- package/node_modules/@claude-flow/security/dist/policy/engine.d.ts.map +1 -1
- package/node_modules/@claude-flow/security/dist/policy/engine.js +35 -1
- package/node_modules/@claude-flow/security/dist/policy/engine.js.map +1 -1
- package/node_modules/@claude-flow/security/dist/policy/types.d.ts +18 -0
- package/node_modules/@claude-flow/security/dist/policy/types.d.ts.map +1 -1
- package/node_modules/@claude-flow/security/package.json +2 -3
- package/package.json +7 -7
- package/v3/@claude-flow/cli/README.md +1 -53
- package/v3/@claude-flow/cli/bin/cli.js +4 -1
- package/v3/@claude-flow/cli/catalog-manifest.json +4 -4
- package/v3/@claude-flow/cli/dist/src/commands/analyze.js +2 -2
- package/v3/@claude-flow/cli/dist/src/commands/config.js +5 -7
- package/v3/@claude-flow/cli/dist/src/commands/doctor.d.ts +19 -1
- package/v3/@claude-flow/cli/dist/src/commands/doctor.js +69 -8
- package/v3/@claude-flow/cli/dist/src/commands/hooks.js +22 -9
- package/v3/@claude-flow/cli/dist/src/commands/memory.js +119 -34
- package/v3/@claude-flow/cli/dist/src/commands/metaharness.js +1 -0
- package/v3/@claude-flow/cli/dist/src/commands/plugins.js +44 -7
- package/v3/@claude-flow/cli/dist/src/commands/policy.js +5 -2
- package/v3/@claude-flow/cli/dist/src/commands/security.js +113 -55
- package/v3/@claude-flow/cli/dist/src/commands/session.js +132 -25
- package/v3/@claude-flow/cli/dist/src/commands/swarm.js +11 -11
- package/v3/@claude-flow/cli/dist/src/commands/task.js +5 -4
- package/v3/@claude-flow/cli/dist/src/index.js +10 -1
- package/v3/@claude-flow/cli/dist/src/init/executor.js +11 -5
- package/v3/@claude-flow/cli/dist/src/init/helper-companions.d.ts +3 -0
- package/v3/@claude-flow/cli/dist/src/init/helper-companions.js +34 -0
- package/v3/@claude-flow/cli/dist/src/init/helper-integrity.d.ts +21 -0
- package/v3/@claude-flow/cli/dist/src/init/helper-integrity.js +62 -0
- package/v3/@claude-flow/cli/dist/src/init/helper-refresh.d.ts +18 -11
- package/v3/@claude-flow/cli/dist/src/init/helper-refresh.js +56 -13
- package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +14 -12
- package/v3/@claude-flow/cli/dist/src/mcp-server.js +10 -3
- package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js +29 -62
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.d.ts +16 -7
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +226 -51
- package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.d.ts +7 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js +131 -40
- package/v3/@claude-flow/cli/dist/src/mcp-tools/policy-enforcer.d.ts +8 -1
- package/v3/@claude-flow/cli/dist/src/mcp-tools/policy-enforcer.js +80 -8
- package/v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.d.ts +15 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.js +270 -58
- package/v3/@claude-flow/cli/dist/src/memory/feedback-patterns.d.ts +13 -0
- package/v3/@claude-flow/cli/dist/src/memory/feedback-patterns.js +14 -0
- package/v3/@claude-flow/cli/dist/src/memory/live-memory-row.d.ts +3 -0
- package/v3/@claude-flow/cli/dist/src/memory/live-memory-row.js +5 -0
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.d.ts +11 -20
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +348 -134
- package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.d.ts +9 -1
- package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +47 -34
- package/v3/@claude-flow/cli/dist/src/plugins/manager.d.ts +37 -10
- package/v3/@claude-flow/cli/dist/src/plugins/manager.js +106 -20
- package/v3/@claude-flow/cli/dist/src/plugins/trust-policy.d.ts +61 -0
- package/v3/@claude-flow/cli/dist/src/plugins/trust-policy.js +84 -0
- package/v3/@claude-flow/cli/dist/src/ruvector/graph-analyzer.js +4 -1
- package/v3/@claude-flow/cli/dist/src/services/config-file-manager.js +30 -8
- package/v3/@claude-flow/cli/dist/src/services/memory-backup.d.ts +1 -1
- package/v3/@claude-flow/cli/dist/src/services/memory-backup.js +67 -27
- package/v3/@claude-flow/cli/dist/src/services/policy-runtime.d.ts +6 -0
- package/v3/@claude-flow/cli/dist/src/services/policy-runtime.js +27 -2
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.d.ts +2 -2
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +23 -14
- package/v3/@claude-flow/cli/package.json +9 -9
- package/v3/@claude-flow/guidance/package.json +5 -6
- package/v3/@claude-flow/shared/package.json +6 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
sha256:6141a8ea990c5063b77e090ae8f37f9c539d8aa8f58dcceb30f3a82f97e57319
|
|
@@ -12,12 +12,16 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
15
|
-
import { join, dirname } from 'path';
|
|
15
|
+
import { join, dirname, resolve } from 'path';
|
|
16
16
|
import { fileURLToPath } from 'url';
|
|
17
17
|
|
|
18
18
|
const __filename = fileURLToPath(import.meta.url);
|
|
19
19
|
const __dirname = dirname(__filename);
|
|
20
|
-
|
|
20
|
+
// Home-level helpers can serve a different project. Keep the memory writer on
|
|
21
|
+
// the same project root as intelligence.cjs, which reads CLAUDE_PROJECT_DIR.
|
|
22
|
+
const PROJECT_ROOT = process.env.CLAUDE_PROJECT_DIR
|
|
23
|
+
? resolve(process.env.CLAUDE_PROJECT_DIR)
|
|
24
|
+
: join(__dirname, '../..');
|
|
21
25
|
const DATA_DIR = join(PROJECT_ROOT, '.claude-flow', 'data');
|
|
22
26
|
const STORE_PATH = join(DATA_DIR, 'auto-memory-store.json');
|
|
23
27
|
|
|
@@ -232,9 +232,9 @@ function safeRequire(modulePath) {
|
|
|
232
232
|
return null;
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
-
const router = safeRequire(path.join(helpersDir, 'router.
|
|
236
|
-
const session = safeRequire(path.join(helpersDir, 'session.
|
|
237
|
-
const memory = safeRequire(path.join(helpersDir, 'memory.
|
|
235
|
+
const router = safeRequire(path.join(helpersDir, 'router.cjs'));
|
|
236
|
+
const session = safeRequire(path.join(helpersDir, 'session.cjs'));
|
|
237
|
+
const memory = safeRequire(path.join(helpersDir, 'memory.cjs'));
|
|
238
238
|
const intelligence = safeRequire(path.join(helpersDir, 'intelligence.cjs'));
|
|
239
239
|
|
|
240
240
|
// ── Intelligence timeout protection (fixes #1530, #1531) ───────────────────
|
|
@@ -603,4 +603,7 @@ if (require.main === module) {
|
|
|
603
603
|
});
|
|
604
604
|
}
|
|
605
605
|
|
|
606
|
-
|
|
606
|
+
// Which sibling helpers loaded (all CommonJS, shipped as .cjs — #3555).
|
|
607
|
+
const loadedHelpers = { router: !!router, session: !!session, memory: !!memory, intelligence: !!intelligence };
|
|
608
|
+
|
|
609
|
+
module.exports = { runWithTimeout, INTELLIGENCE_TIMEOUT_MS, loadedHelpers };
|
|
@@ -19,14 +19,16 @@
|
|
|
19
19
|
|
|
20
20
|
import { createRequire } from 'module';
|
|
21
21
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
22
|
-
import { join, dirname } from 'path';
|
|
22
|
+
import { join, dirname, resolve } from 'path';
|
|
23
23
|
import { fileURLToPath } from 'url';
|
|
24
24
|
import { execSync, spawn } from 'child_process';
|
|
25
25
|
import Database from 'better-sqlite3';
|
|
26
26
|
|
|
27
27
|
const __filename = fileURLToPath(import.meta.url);
|
|
28
28
|
const __dirname = dirname(__filename);
|
|
29
|
-
const PROJECT_ROOT =
|
|
29
|
+
const PROJECT_ROOT = process.env.CLAUDE_PROJECT_DIR
|
|
30
|
+
? resolve(process.env.CLAUDE_PROJECT_DIR)
|
|
31
|
+
: join(__dirname, '../..');
|
|
30
32
|
const DATA_DIR = join(PROJECT_ROOT, '.claude-flow/learning');
|
|
31
33
|
const DB_PATH = join(DATA_DIR, 'patterns.db');
|
|
32
34
|
const METRICS_PATH = join(DATA_DIR, 'learning-metrics.json');
|
|
@@ -79,6 +79,6 @@ if (require.main === module) {
|
|
|
79
79
|
if (command && commands[command]) {
|
|
80
80
|
commands[command](key, value);
|
|
81
81
|
} else {
|
|
82
|
-
console.log('Usage: memory.
|
|
82
|
+
console.log('Usage: memory.cjs <get|set|delete|clear|keys> [key] [value]');
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -7,12 +7,14 @@
|
|
|
7
7
|
|
|
8
8
|
import initSqlJs from 'sql.js';
|
|
9
9
|
import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, statSync, openSync, writeSync, fsyncSync, closeSync, renameSync, rmSync } from 'fs';
|
|
10
|
-
import { dirname, join, basename } from 'path';
|
|
10
|
+
import { dirname, join, basename, resolve } from 'path';
|
|
11
11
|
import { fileURLToPath } from 'url';
|
|
12
12
|
import { execSync } from 'child_process';
|
|
13
13
|
|
|
14
14
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
15
|
-
const PROJECT_ROOT =
|
|
15
|
+
const PROJECT_ROOT = process.env.CLAUDE_PROJECT_DIR
|
|
16
|
+
? resolve(process.env.CLAUDE_PROJECT_DIR)
|
|
17
|
+
: join(__dirname, '../..');
|
|
16
18
|
const V3_DIR = join(PROJECT_ROOT, 'v3');
|
|
17
19
|
const DB_PATH = join(PROJECT_ROOT, '.claude-flow', 'metrics.db');
|
|
18
20
|
|
|
@@ -97,7 +97,7 @@ if (require.main === module) {
|
|
|
97
97
|
const result = routeTask(task);
|
|
98
98
|
console.log(JSON.stringify(result, null, 2));
|
|
99
99
|
} else {
|
|
100
|
-
console.log('Usage: router.
|
|
100
|
+
console.log('Usage: router.cjs <task description>');
|
|
101
101
|
console.log('\nAvailable agents:', Object.keys(AGENT_CAPABILITIES).join(', '));
|
|
102
102
|
}
|
|
103
103
|
}
|
|
@@ -118,7 +118,7 @@ if (require.main === module) {
|
|
|
118
118
|
if (command && commands[command]) {
|
|
119
119
|
commands[command](...args);
|
|
120
120
|
} else {
|
|
121
|
-
console.log('Usage: session.
|
|
121
|
+
console.log('Usage: session.cjs <start|restore|end|status|metric>');
|
|
122
122
|
console.log(`Platform: ${platform}`);
|
|
123
123
|
console.log(`Data dir: ${SESSION_DIR}`);
|
|
124
124
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"adoptedAt": 1790812079679,
|
|
3
|
+
"championId": "sha256:6141a8ea990c5063b77e090ae8f37f9c539d8aa8f58dcceb30f3a82f97e57319",
|
|
4
|
+
"manifest": {
|
|
5
|
+
"schema": "ruflo.proven-config/v1",
|
|
6
|
+
"policy": {
|
|
7
|
+
"ref": "sha256:6141a8ea990c5063b77e090ae8f37f9c539d8aa8f58dcceb30f3a82f97e57319",
|
|
8
|
+
"value": {
|
|
9
|
+
"alpha": 0.3,
|
|
10
|
+
"subjectWeight": 1,
|
|
11
|
+
"mmrLambda": 0.5,
|
|
12
|
+
"bodyWeight": 1.5,
|
|
13
|
+
"typePenaltyFactor": 0.5
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"layer": "framework/node-cli",
|
|
17
|
+
"compatibility": {
|
|
18
|
+
"ruflo": ">=3.24.0"
|
|
19
|
+
},
|
|
20
|
+
"benchmark": {
|
|
21
|
+
"corpus": "ADR-081-labelled-v1",
|
|
22
|
+
"corpusHash": "sha256:2f700b5c363e20a3bd88ce2bc9b87bbbbaa61732c6177894c6ec37890f888982"
|
|
23
|
+
},
|
|
24
|
+
"receipt": {
|
|
25
|
+
"heldOutDelta": 0.07381404928570845,
|
|
26
|
+
"redblue": "PASS",
|
|
27
|
+
"drift": 0,
|
|
28
|
+
"canary": {
|
|
29
|
+
"rollbackRate": 0,
|
|
30
|
+
"latencyP95": 244.612458000076,
|
|
31
|
+
"costPerTask": 0
|
|
32
|
+
},
|
|
33
|
+
"receiptCoverage": 1
|
|
34
|
+
},
|
|
35
|
+
"platform": [
|
|
36
|
+
"linux",
|
|
37
|
+
"macOS",
|
|
38
|
+
"windows"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
"previous": ""
|
|
42
|
+
}
|
|
@@ -11,6 +11,21 @@
|
|
|
11
11
|
"source": "./plugins/ruflo-core",
|
|
12
12
|
"description": "Core Ruflo MCP tools, commands, and Claude Code orchestration patterns"
|
|
13
13
|
},
|
|
14
|
+
{
|
|
15
|
+
"name": "ruflo-ai-team",
|
|
16
|
+
"source": "./plugins/ruflo-ai-team/directory",
|
|
17
|
+
"description": "Tenant-isolated AI teams that plan work, coordinate tasks, recall approved context, and return evidence-backed results"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "ruflo-x-gateway",
|
|
21
|
+
"source": "./plugins/ruflo-x-gateway/directory",
|
|
22
|
+
"description": "Remote RuFlo Federation MCP connector for signed channels, work claims, evidence, and cross-agent coordination"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "ruflo-deepseek-harness",
|
|
26
|
+
"source": "./plugins/ruflo-deepseek-harness",
|
|
27
|
+
"description": "DeepSeek model harness with focused agents, commands, and skills for swarm-backed reasoning workflows"
|
|
28
|
+
},
|
|
14
29
|
{
|
|
15
30
|
"name": "ruflo-swarm",
|
|
16
31
|
"source": "./plugins/ruflo-swarm",
|
|
@@ -202,4 +217,4 @@
|
|
|
202
217
|
"description": "AI music generation via Cognitum Music (cogmusic MCP) \u2014 compose lyrics/prompts, generate tracks, separate stems, extract MIDI, and master through your own music.cognitum.one account"
|
|
203
218
|
}
|
|
204
219
|
]
|
|
205
|
-
}
|
|
220
|
+
}
|
package/README.md
CHANGED
|
@@ -2,15 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://cognitum.one/agentic-engineering)
|
|
4
4
|
|
|
5
|
-
<!-- Try Ruflo — the
|
|
6
|
-
[](https://flo.ruv.io/)
|
|
5
|
+
<!-- Try Ruflo — the 3 badges first-time visitors actually act on -->
|
|
7
6
|
[](https://www.npmjs.com/package/ruflo)
|
|
8
7
|
[](https://opensource.org/licenses/MIT)
|
|
9
8
|
[](https://github.com/ruvnet/claude-flow)
|
|
10
9
|
|
|
11
10
|
<!-- Ecosystem strip (collapsed visually with flat-square) -->
|
|
12
|
-
[](https://goal.ruv.io/)
|
|
13
|
-
[](https://goal.ruv.io/agents)
|
|
14
11
|
[](https://github.com/ruvnet/ruvector)
|
|
15
12
|
[](https://github.com/ruvnet/ruflo/blob/main/data/clone-data.proof.json)
|
|
16
13
|
[](https://github.com/ruvnet/ruflo/blob/main/data/clone-data.ledger.json)
|
|
@@ -215,55 +212,6 @@ claude mcp add claude-flow -- npx ruflo@latest mcp start
|
|
|
215
212
|
| 🛡️ **Security** | AIDefence, input validation, CVE remediation, path traversal prevention |
|
|
216
213
|
| 🌐 **Agent Federation** | Cross-installation agent collaboration with zero-trust security |
|
|
217
214
|
| 🔬 **[MetaHarness](docs/metaharness-user-guide.md)** | Audit your AI agent setup before you ship. Grade readiness (1-100), scan tool configs for security issues, snapshot the whole project to catch regressions over time, and find templates that match your repo. `ruflo eject` turns a ruflo project into a standalone agent toolkit with its own name. [Full guide](docs/metaharness-user-guide.md). |
|
|
218
|
-
| 💬 **[Web UI Beta](https://flo.ruv.io/)** | Multi-model chat at flo.ruv.io with parallel MCP tool calling and an in-browser WASM tool gallery |
|
|
219
|
-
| 🎯 **[RuFlo Research](https://goal.ruv.io/)** | GOAP A\* planner at goal.ruv.io — plain-English goals → executable agent plans, with a live agent dashboard at [/agents](https://goal.ruv.io/agents) |
|
|
220
|
-
|
|
221
|
-
<p align="center">
|
|
222
|
-
<a href="https://flo.ruv.io/">
|
|
223
|
-
<img src="v3/docs/assets/ruVocal.png" alt="RuFlo Web UI executing parallel MCP tool calls at flo.ruv.io — ruflo__memory_store and ruflo__memory_search firing in a single model turn with the 'Step 1 — 2 tools completed' parallel-execution indicator, thinking process panel visible, Qwen 3.6 Max as the active model. Multi-agent AI chat with Model Context Protocol (MCP) tool calling, persistent vector memory via AgentDB + HNSW, swarm coordination, and 6 frontier models including Claude Sonnet 4.6, Gemini 2.5 Pro, and OpenAI through OpenRouter." width="100%" />
|
|
224
|
-
</a>
|
|
225
|
-
</p>
|
|
226
|
-
|
|
227
|
-
### Web UI (Beta) — self-hostable, hosted demo at [flo.ruv.io](https://flo.ruv.io/)
|
|
228
|
-
|
|
229
|
-
**RuFlo's web UI is a multi-model AI chat with built-in Model Context Protocol (MCP) tool calling.** Talk to Qwen, Claude, Gemini, or OpenAI while RuFlo invokes the same MCP tools the CLI uses — agent orchestration, persistent memory, swarm coordination, code review, GitHub ops — directly from chat. No install, no API key needed to try it.
|
|
230
|
-
|
|
231
|
-
| | What it is | Why it matters |
|
|
232
|
-
|---|------------|----------------|
|
|
233
|
-
| 🧠 | **Any model, local or remote** | 6 curated frontier models out-of-the-box — Qwen 3.6 Max (default), Claude Sonnet 4.6, Claude Haiku 4.5, Gemini 2.5 Pro, Gemini 2.5 Flash, OpenAI — via OpenRouter. Add your own: any OpenAI-compatible endpoint (vLLM, Ollama, LM Studio, Together, Groq, self-hosted). |
|
|
234
|
-
| 🦾 | **ruvLLM self-learning AI** | Native support for [ruvLLM](https://github.com/ruvnet/RuVector/tree/main/examples/ruvLLM) (lives in `ruvnet/RuVector/examples/ruvLLM`) — RuFlo's self-improving local model layer. Routes to MicroLoRA adapters, learns from your trajectories via SONA, and stays on your machine. Pair with the cloud models or run fully offline. |
|
|
235
|
-
| 🛠️ | **~210 tools, ready to call** | 5 server groups (Core, Intelligence, Agents, Memory, DevTools) plus an 18-tool gallery that runs entirely in your browser — works offline. |
|
|
236
|
-
| 🔌 | **Bring your own MCP servers** | Click the **MCP (n)** pill in the chat input → *Add Server* and paste any MCP endpoint (HTTP, SSE, or stdio). Your tools join RuFlo's native ones in the same parallel-execution flow. Run a local MCP server on `localhost:3000` and it just works. |
|
|
237
|
-
| ⚡ | **Tools run in parallel** | One model response can fire 4–6+ tools at the same time. The UI shows them as cards with a *Step 1 — 2 tools completed* badge so you can see exactly what ran. |
|
|
238
|
-
| 💾 | **Memory that sticks** | Say *"remember my favorite color is indigo"* and ask weeks later — RuFlo recalls it. Backed by AgentDB + HNSW vector search (measured ~1.9x–4.7x faster than brute force above the crossover, recall@10 ~0.99). |
|
|
239
|
-
| 📘 | **Built-in capabilities tour** | Click the question-mark icon in the sidebar — a "RuFlo Capabilities" modal opens with the full tool list, model strengths, architecture, and keyboard shortcuts. |
|
|
240
|
-
| 🏠 | **Self-hostable** | Web UI is shipped as Docker (`ruflo/src/ruvocal/Dockerfile`) with embedded Mongo. Deploy to your own Cloud Run / Fly / Kubernetes / docker-compose. The hosted [flo.ruv.io](https://flo.ruv.io/) demo is one option; running your own is fully supported. |
|
|
241
|
-
| 🚀 | **Zero install to try** | Open the hosted URL, pick a model, type a question. That's the whole onboarding. |
|
|
242
|
-
|
|
243
|
-
**Try the hosted demo:** [https://flo.ruv.io/](https://flo.ruv.io/) — no account, no API key. **Run your own:** the source lives in [`ruflo/src/ruvocal/`](ruflo/src/ruvocal/) with a multi-stage Dockerfile (`INCLUDE_DB=true` builds in MongoDB) and a `cloudbuild.yaml` for Google Cloud Run. See [ADR-033](ruflo/docs/adr/ADR-033-RUVOCAL-WASM-MCP-INTEGRATION.md) for the architecture and [issue #1689](https://github.com/ruvnet/ruflo/issues/1689) for the roadmap.
|
|
244
|
-
|
|
245
|
-
<p align="center">
|
|
246
|
-
<a href="https://goal.ruv.io/agents">
|
|
247
|
-
<img src="v3/docs/assets/goal.png" alt="goal.ruv.io/agents — RuFlo Goal-Oriented Action Planning (GOAP) UI for autonomous AI agents. Visual goal decomposition, A* search through state spaces, multi-agent task assignment, and live agent telemetry." width="100%" />
|
|
248
|
-
</a>
|
|
249
|
-
</p>
|
|
250
|
-
|
|
251
|
-
### Goal Planner UI — autonomous agents at [goal.ruv.io](https://goal.ruv.io/)
|
|
252
|
-
|
|
253
|
-
**Turn high-level goals into executable agent plans.** `goal.ruv.io` is RuFlo's hosted Goal-Oriented Action Planning (GOAP) front-end — describe an outcome in plain English and watch RuFlo decompose it into preconditions, actions, and an A* path through state space, then dispatch the work to live agents at [`/agents`](https://goal.ruv.io/agents).
|
|
254
|
-
|
|
255
|
-
| | What it is | Why it matters |
|
|
256
|
-
|---|------------|----------------|
|
|
257
|
-
| 🎯 | **Plain-English goals** | Type *"ship the auth refactor with tests and a PR"* — RuFlo extracts the success criteria, the constraints, and the implicit preconditions. No JSON, no DSL. |
|
|
258
|
-
| 🧭 | **GOAP A\* planner** | Classic gaming-AI planning ported to software work: state-space search through actions with preconditions/effects to find the shortest viable path. Replans on the fly when state changes. |
|
|
259
|
-
| 🤖 | **Live agent dashboard** | [goal.ruv.io/agents](https://goal.ruv.io/agents) shows every spawned agent — role, current step, memory namespace, token budget, status. Click in to inspect trajectories, kill runaway workers, or reassign. |
|
|
260
|
-
| 🌳 | **Visual plan tree** | Goals render as collapsible action trees with progress, blocked branches, and rollbacks highlighted. See *exactly* why an agent picked a path — no opaque chain-of-thought. |
|
|
261
|
-
| ♻️ | **Adaptive replanning** | When an action fails or new info arrives, the planner re-runs A\* from the current state instead of restarting. Failures become learning, not loops. |
|
|
262
|
-
| 🧠 | **Shared memory + SONA** | Plans, trajectories, and outcomes flow into AgentDB. Future plans retrieve past solutions via HNSW — the planner gets smarter with every run. |
|
|
263
|
-
| 🔗 | **Wired to MCP tools** | Every action node maps to a tool call (RuFlo's ~210 MCP tools, your custom servers, or shell). The planner schedules them in parallel where the dependency graph allows. |
|
|
264
|
-
| 🚀 | **Zero install to try** | Open [goal.ruv.io](https://goal.ruv.io/), describe a goal, watch it run. Source lives in [`v3/goal_ui/`](v3/goal_ui/) — Vite + Supabase, self-hostable. |
|
|
265
|
-
|
|
266
|
-
**Try it:** [https://goal.ruv.io/](https://goal.ruv.io/) for goals · [https://goal.ruv.io/agents](https://goal.ruv.io/agents) for live agents. **Run your own:** clone the `goal` branch and `cd v3/goal_ui && npm install && npm run dev`.
|
|
267
215
|
|
|
268
216
|
### Agent Federation — Slack for Agents
|
|
269
217
|
|
package/README.zh-CN.md
CHANGED
|
@@ -2,15 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://cognitum.one/agentic-engineering)
|
|
4
4
|
|
|
5
|
-
<!-- Try Ruflo — the
|
|
6
|
-
[](https://flo.ruv.io/)
|
|
5
|
+
<!-- Try Ruflo — the 3 badges first-time visitors actually act on -->
|
|
7
6
|
[](https://www.npmjs.com/package/ruflo)
|
|
8
7
|
[](https://opensource.org/licenses/MIT)
|
|
9
8
|
[](https://github.com/ruvnet/claude-flow)
|
|
10
9
|
|
|
11
10
|
<!-- Ecosystem strip (collapsed visually with flat-square) -->
|
|
12
|
-
[](https://goal.ruv.io/)
|
|
13
|
-
[](https://goal.ruv.io/agents)
|
|
14
11
|
[](https://github.com/ruvnet/ruvector)
|
|
15
12
|
[](https://github.com/ruvnet/ruflo/blob/main/data/clone-data.proof.json)
|
|
16
13
|
[](https://github.com/ruvnet/ruflo/blob/main/data/clone-data.ledger.json)
|
|
@@ -215,55 +212,6 @@ claude mcp add claude-flow -- npx ruflo@latest mcp start
|
|
|
215
212
|
| 🛡️ **安全性** | AIDefence、输入校验、CVE 修复、路径穿越防护 |
|
|
216
213
|
| 🌐 **智能体联邦** | 跨安装的智能体协作,零信任安全 |
|
|
217
214
|
| 🔬 **[MetaHarness](docs/metaharness-user-guide.md)** | 发布前审计你的 AI 智能体配置。对就绪度打分(1–100)、扫描工具配置中的安全问题、对整个项目做快照以捕捉长期回归,并找到与你的仓库匹配的模板。`ruflo eject` 可将 ruflo 项目转换为拥有独立名称的独立智能体工具包。[完整指南](docs/metaharness-user-guide.md)。 |
|
|
218
|
-
| 💬 **[Web UI 测试版](https://flo.ruv.io/)** | flo.ruv.io 上的多模型聊天,支持并行 MCP 工具调用与浏览器内 WASM 工具画廊 |
|
|
219
|
-
| 🎯 **[RuFlo Research](https://goal.ruv.io/)** | goal.ruv.io 上的 GOAP A\* 规划器——用自然语言目标生成可执行的智能体计划,并配有 [/agents](https://goal.ruv.io/agents) 实时智能体仪表盘 |
|
|
220
|
-
|
|
221
|
-
<p align="center">
|
|
222
|
-
<a href="https://flo.ruv.io/">
|
|
223
|
-
<img src="v3/docs/assets/ruVocal.png" alt="RuFlo Web UI executing parallel MCP tool calls at flo.ruv.io — ruflo__memory_store and ruflo__memory_search firing in a single model turn with the 'Step 1 — 2 tools completed' parallel-execution indicator, thinking process panel visible, Qwen 3.6 Max as the active model. Multi-agent AI chat with Model Context Protocol (MCP) tool calling, persistent vector memory via AgentDB + HNSW, swarm coordination, and 6 frontier models including Claude Sonnet 4.6, Gemini 2.5 Pro, and OpenAI through OpenRouter." width="100%" />
|
|
224
|
-
</a>
|
|
225
|
-
</p>
|
|
226
|
-
|
|
227
|
-
### Web UI(测试版)——可自托管,托管演示见 [flo.ruv.io](https://flo.ruv.io/)
|
|
228
|
-
|
|
229
|
-
**RuFlo 的 Web UI 是一个内置 Model Context Protocol(MCP)工具调用的多模型 AI 聊天界面。** 与 Qwen、Claude、Gemini 或 OpenAI 对话的同时,RuFlo 会在聊天中直接调用 CLI 所使用的同一套 MCP 工具——智能体编排、持久记忆、蜂群协调、代码审查、GitHub 操作。无需安装,无需 API Key 即可试用。
|
|
230
|
-
|
|
231
|
-
| | 是什么 | 为什么重要 |
|
|
232
|
-
|---|------------|----------------|
|
|
233
|
-
| 🧠 | **任意模型,本地或远程** | 开箱即用 6 个精选前沿模型——Qwen 3.6 Max(默认)、Claude Sonnet 4.6、Claude Haiku 4.5、Gemini 2.5 Pro、Gemini 2.5 Flash、OpenAI——全部经由 OpenRouter。也可以接入自己的模型:任何 OpenAI 兼容端点(vLLM、Ollama、LM Studio、Together、Groq、自托管)均可。 |
|
|
234
|
-
| 🦾 | **ruvLLM 自学习 AI** | 原生支持 [ruvLLM](https://github.com/ruvnet/RuVector/tree/main/examples/ruvLLM)(位于 `ruvnet/RuVector/examples/ruvLLM`)——RuFlo 的自我改进本地模型层。路由到 MicroLoRA 适配器,通过 SONA 从你的轨迹中学习,并且始终留在你的机器上。可与云端模型搭配使用,也可完全离线运行。 |
|
|
235
|
-
| 🛠️ | **约 210 个工具,随时可调用** | 5 个服务器分组(Core、Intelligence、Agents、Memory、DevTools),外加一个完全运行在浏览器内的 18 工具画廊——离线也能用。 |
|
|
236
|
-
| 🔌 | **自带 MCP 服务器** | 点击聊天输入框中的 **MCP (n)** 胶囊按钮 → *Add Server*,粘贴任意 MCP 端点(HTTP、SSE 或 stdio)。你的工具会与 RuFlo 的原生工具一起进入同一个并行执行流程。在 `localhost:3000` 上跑一个本地 MCP 服务器,即刻生效。 |
|
|
237
|
-
| ⚡ | **工具并行执行** | 一次模型响应可以同时触发 4–6+ 个工具。UI 会以卡片形式展示它们,并带有 *Step 1 — 2 tools completed* 徽章,让你清楚看到具体执行了什么。 |
|
|
238
|
-
| 💾 | **记得住的记忆** | 说一句 *"remember my favorite color is indigo"*,几周后再问——RuFlo 依然记得。底层是 AgentDB + HNSW 向量搜索(实测超过交叉点后比暴力检索快约 1.9–4.7 倍,recall@10 ≈ 0.99)。 |
|
|
239
|
-
| 📘 | **内置能力导览** | 点击侧边栏的问号图标——会弹出 "RuFlo Capabilities" 模态框,展示完整工具列表、各模型强项、架构与键盘快捷键。 |
|
|
240
|
-
| 🏠 | **可自托管** | Web UI 以 Docker 形式发布(`ruflo/src/ruvocal/Dockerfile`),内置 Mongo。可部署到你自己的 Cloud Run / Fly / Kubernetes / docker-compose。托管演示 [flo.ruv.io](https://flo.ruv.io/) 只是选项之一,自建运行完全受支持。 |
|
|
241
|
-
| 🚀 | **零安装即可试用** | 打开托管网址,选一个模型,输入问题。这就是全部上手流程。 |
|
|
242
|
-
|
|
243
|
-
**试用托管演示:** [https://flo.ruv.io/](https://flo.ruv.io/)——无需账号、无需 API Key。**自建运行:** 源码位于 [`ruflo/src/ruvocal/`](ruflo/src/ruvocal/),带多阶段 Dockerfile(`INCLUDE_DB=true` 会内置 MongoDB)以及面向 Google Cloud Run 的 `cloudbuild.yaml`。架构详见 [ADR-033](ruflo/docs/adr/ADR-033-RUVOCAL-WASM-MCP-INTEGRATION.md),路线图见 [issue #1689](https://github.com/ruvnet/ruflo/issues/1689)。
|
|
244
|
-
|
|
245
|
-
<p align="center">
|
|
246
|
-
<a href="https://goal.ruv.io/agents">
|
|
247
|
-
<img src="v3/docs/assets/goal.png" alt="goal.ruv.io/agents — RuFlo Goal-Oriented Action Planning (GOAP) UI for autonomous AI agents. Visual goal decomposition, A* search through state spaces, multi-agent task assignment, and live agent telemetry." width="100%" />
|
|
248
|
-
</a>
|
|
249
|
-
</p>
|
|
250
|
-
|
|
251
|
-
### Goal Planner UI——[goal.ruv.io](https://goal.ruv.io/) 上的自主智能体
|
|
252
|
-
|
|
253
|
-
**把高层次目标变成可执行的智能体计划。** `goal.ruv.io` 是 RuFlo 托管的 Goal-Oriented Action Planning(GOAP)前端——用自然语言描述一个目标,看着 RuFlo 把它拆解为前置条件、动作,以及一条穿过状态空间的 A* 路径,随后把工作分派给 [`/agents`](https://goal.ruv.io/agents) 上的真实智能体。
|
|
254
|
-
|
|
255
|
-
| | 是什么 | 为什么重要 |
|
|
256
|
-
|---|------------|----------------|
|
|
257
|
-
| 🎯 | **自然语言目标** | 输入 *"ship the auth refactor with tests and a PR"*——RuFlo 会提取成功标准、约束条件与隐含的前置条件。无需 JSON,无需 DSL。 |
|
|
258
|
-
| 🧭 | **GOAP A\* 规划器** | 把游戏 AI 的经典规划方法移植到软件开发:在带前置条件/效果的动作间做状态空间搜索,找出最短可行路径。状态变化时即时重规划。 |
|
|
259
|
-
| 🤖 | **实时智能体仪表盘** | [goal.ruv.io/agents](https://goal.ruv.io/agents) 展示每一个已生成的智能体——角色、当前步骤、记忆命名空间、token 预算、状态。点击即可查看轨迹、终止失控工作者或重新分配任务。 |
|
|
260
|
-
| 🌳 | **可视化计划树** | 目标渲染为可折叠的动作树,进度、受阻分支与回滚都会高亮显示。能*确切*看到智能体为何选择某条路径——不再是黑盒思维链。 |
|
|
261
|
-
| ♻️ | **自适应重规划** | 当某个动作失败或有新信息出现时,规划器从当前状态重新运行 A\*,而不是从头再来。失败变成学习,而不是死循环。 |
|
|
262
|
-
| 🧠 | **共享记忆 + SONA** | 计划、轨迹与结果都会汇入 AgentDB。未来的计划通过 HNSW 检索过往解决方案——每运行一次,规划器就更聪明一点。 |
|
|
263
|
-
| 🔗 | **接入 MCP 工具** | 每个动作节点都映射到一次工具调用(RuFlo 约 210 个 MCP 工具、你的自定义服务器或 shell)。只要依赖图允许,规划器就会并行调度它们。 |
|
|
264
|
-
| 🚀 | **零安装即可试用** | 打开 [goal.ruv.io](https://goal.ruv.io/),描述一个目标,看着它运行。源码位于 [`v3/goal_ui/`](v3/goal_ui/)——Vite + Supabase,可自托管。 |
|
|
265
|
-
|
|
266
|
-
**立即体验:** 目标规划用 [https://goal.ruv.io/](https://goal.ruv.io/),实时智能体看 [https://goal.ruv.io/agents](https://goal.ruv.io/agents)。**自建运行:** 克隆 `goal` 分支,然后 `cd v3/goal_ui && npm install && npm run dev`。
|
|
267
215
|
|
|
268
216
|
### 智能体联邦——智能体版的 Slack
|
|
269
217
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,OAAO,EACR,MAAM,YAAY,CAAC;AAGpB,UAAU,YAAY;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,OAAO,KACV,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAEpE,qBAAa,YAAa,SAAQ,YAAY;IAWhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,OAAO,CAAC,cAAc,CAAC,CAAc;IACrC,OAAO,CAAC,UAAU,CAAC,CAAiB;IAEpC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAK;gBAEC,MAAM,EAAE,OAAO;IAI5C,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO;IAyDvE,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,GAAE,uBAA4B,GAAG;QACtE,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB;IAwBD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA+BjC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAK1C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B,YAAY,IAAI,MAAM;IAItB,YAAY,IAAI,MAAM,EAAE;IAIxB,SAAS,IAAI,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IAUF,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,EAAE;IA+C7C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE;IAS1C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE;IAShC,aAAa,IAAI,MAAM,EAAE;IAIzB,OAAO,IAAI,MAAM,EAAE;IAIb,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -278,20 +278,28 @@ export class ToolRegistry extends EventEmitter {
|
|
|
278
278
|
try {
|
|
279
279
|
this.emit('tool:called', { name, input });
|
|
280
280
|
const result = await metadata.tool.handler(input, execContext);
|
|
281
|
+
// CLI handlers return validation/runtime failures in-band. Preserve their
|
|
282
|
+
// payload while exposing the failure in the MCP envelope and metrics.
|
|
283
|
+
// A recorded task outcome with success:false alone is still valid data.
|
|
284
|
+
const isError = result !== null && typeof result === 'object'
|
|
285
|
+
&& typeof result.error === 'string'
|
|
286
|
+
&& result.error.trim().length > 0;
|
|
287
|
+
if (isError)
|
|
288
|
+
metadata.errorCount++;
|
|
281
289
|
const duration = performance.now() - startTime;
|
|
282
290
|
this.updateAverageExecutionTime(metadata, duration);
|
|
283
291
|
this.logger.debug('Tool executed', {
|
|
284
292
|
name,
|
|
285
293
|
duration: `${duration.toFixed(2)}ms`,
|
|
286
|
-
success:
|
|
294
|
+
success: !isError,
|
|
287
295
|
});
|
|
288
|
-
this.emit('tool:completed', { name, duration, success:
|
|
296
|
+
this.emit('tool:completed', { name, duration, success: !isError });
|
|
289
297
|
return {
|
|
290
298
|
content: [{
|
|
291
299
|
type: 'text',
|
|
292
300
|
text: typeof result === 'string' ? result : JSON.stringify(result, null, 2),
|
|
293
301
|
}],
|
|
294
|
-
isError
|
|
302
|
+
isError,
|
|
295
303
|
};
|
|
296
304
|
}
|
|
297
305
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claude-flow/mcp",
|
|
3
|
-
"version": "3.0.0
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Standalone MCP (Model Context Protocol) server - stdio/http/websocket transports, connection pooling, tool registry",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
".": "./dist/index.js",
|
|
11
11
|
"./*": "./dist/*.js"
|
|
12
12
|
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"README.md"
|
|
16
|
+
],
|
|
13
17
|
"scripts": {
|
|
14
18
|
"test": "vitest run",
|
|
15
19
|
"build": "tsc"
|
|
@@ -31,8 +35,7 @@
|
|
|
31
35
|
"tool-registry"
|
|
32
36
|
],
|
|
33
37
|
"publishConfig": {
|
|
34
|
-
"access": "public"
|
|
35
|
-
"tag": "v3alpha"
|
|
38
|
+
"access": "public"
|
|
36
39
|
},
|
|
37
40
|
"rufloBundledRuntime": {
|
|
38
41
|
"format": 1,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claude-flow/plugin-agent-federation",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Cross-installation agent federation with zero-trust security, PII-gated data flow, and compliance-grade audit trails.",
|
|
5
5
|
"homepage": "https://github.com/ruvnet/ruflo",
|
|
6
6
|
"type": "module",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"clean": "rm -rf dist"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@claude-flow/shared": "3.0.0
|
|
27
|
-
"@claude-flow/security": "
|
|
26
|
+
"@claude-flow/shared": "^3.0.0",
|
|
27
|
+
"@claude-flow/security": "^3.0.0",
|
|
28
28
|
"@types/ws": "^8.18.1",
|
|
29
29
|
"agentic-flow": "2.0.12-fix.8",
|
|
30
30
|
"typescript": "^5.4.0",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BudgetLimit, PolicyApproval, PolicyDecision, PolicyEngineOptions, PolicyRequest, PolicyRule, PolicyState } from './types.js';
|
|
1
|
+
import type { BudgetLimit, LedgerVerification, PolicyApproval, PolicyDecision, PolicyEngineOptions, PolicyRequest, PolicyRule, PolicyState } from './types.js';
|
|
2
2
|
export declare class AgenticPolicyEngine {
|
|
3
3
|
private readonly now;
|
|
4
4
|
private readonly signingKey?;
|
|
@@ -19,11 +19,7 @@ export declare class AgenticPolicyEngine {
|
|
|
19
19
|
}): PolicyApproval;
|
|
20
20
|
revokeApproval(id: string): boolean;
|
|
21
21
|
evaluate(request: PolicyRequest): PolicyDecision;
|
|
22
|
-
verifyLedger():
|
|
23
|
-
valid: boolean;
|
|
24
|
-
length: number;
|
|
25
|
-
error?: string;
|
|
26
|
-
};
|
|
22
|
+
verifyLedger(): LedgerVerification;
|
|
27
23
|
private applyBudget;
|
|
28
24
|
private applyApproval;
|
|
29
25
|
private consumeBudget;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/policy/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/policy/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAElB,cAAc,EACd,cAAc,EAEd,mBAAmB,EAEnB,aAAa,EACb,UAAU,EACV,WAAW,EACZ,MAAM,YAAY,CAAC;AASpB,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAgE;IAClG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAA8B;IACtE,OAAO,CAAC,KAAK,CAAc;gBAEf,OAAO,GAAE,mBAAwB;IAiB7C,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAM,GAAG,mBAAmB;IAoBrK,WAAW,IAAI,WAAW;IAI1B,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAIxC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAMlD,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAgBlC,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAWnC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc;IAmBzH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAOnC,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc;IAoBhD,YAAY,IAAI,kBAAkB;IA6ClC,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,eAAe;CAcxB;AAED,wBAAgB,2BAA2B,CAAC,MAAM,SAAgB,GAAG,WAAW,CAY/E"}
|
|
@@ -44,6 +44,10 @@ export class AgenticPolicyEngine {
|
|
|
44
44
|
engine.state.migratedAt = state.migratedAt;
|
|
45
45
|
engine.state.migratedFrom = state.migratedFrom;
|
|
46
46
|
engine.state.configuredMode = state.configuredMode;
|
|
47
|
+
if (typeof state.ledgerLength === 'number') {
|
|
48
|
+
engine.state.ledgerLength = state.ledgerLength;
|
|
49
|
+
engine.state.ledgerHead = state.ledgerHead ?? null;
|
|
50
|
+
}
|
|
47
51
|
return engine;
|
|
48
52
|
}
|
|
49
53
|
exportState() {
|
|
@@ -158,7 +162,27 @@ export class AgenticPolicyEngine {
|
|
|
158
162
|
}
|
|
159
163
|
previous = receipt.hash;
|
|
160
164
|
}
|
|
161
|
-
|
|
165
|
+
const length = this.state.receipts.length;
|
|
166
|
+
// #3568: a prefix of a valid chain is itself a valid chain, so the chain
|
|
167
|
+
// alone cannot tell "the last receipts were deleted" from "they were never
|
|
168
|
+
// written". The anchor records how long the chain is and where it ends.
|
|
169
|
+
if (typeof this.state.ledgerLength === 'number') {
|
|
170
|
+
if (this.state.ledgerLength !== length || (this.state.ledgerHead ?? null) !== previous) {
|
|
171
|
+
return {
|
|
172
|
+
valid: false,
|
|
173
|
+
length,
|
|
174
|
+
error: length < this.state.ledgerLength ? 'policy-ledger-truncated' : 'policy-ledger-anchor-mismatch',
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
return length === 0 ? { valid: true, length, state: 'empty' } : { valid: true, length };
|
|
178
|
+
}
|
|
179
|
+
if (length === 0)
|
|
180
|
+
return { valid: true, length, state: 'empty' };
|
|
181
|
+
// Receipts written before the anchor existed. Anchor the current chain;
|
|
182
|
+
// a truncation that happened before this moment cannot be detected.
|
|
183
|
+
this.state.ledgerHead = previous;
|
|
184
|
+
this.state.ledgerLength = length;
|
|
185
|
+
return { valid: true, length, anchor: 'established-now' };
|
|
162
186
|
}
|
|
163
187
|
applyBudget(request, decision) {
|
|
164
188
|
if (decision.outcome === 'denied')
|
|
@@ -233,6 +257,14 @@ export class AgenticPolicyEngine {
|
|
|
233
257
|
}
|
|
234
258
|
appendReceipt(request, decision) {
|
|
235
259
|
const previous = this.state.receipts.at(-1)?.hash ?? null;
|
|
260
|
+
// Never extend a chain that no longer matches its anchor: appending would
|
|
261
|
+
// re-anchor onto the truncated chain and erase the evidence of truncation.
|
|
262
|
+
if (typeof this.state.ledgerLength === 'number'
|
|
263
|
+
&& (this.state.ledgerLength !== this.state.receipts.length || (this.state.ledgerHead ?? null) !== previous)) {
|
|
264
|
+
throw new Error(this.state.receipts.length < this.state.ledgerLength
|
|
265
|
+
? 'policy-ledger-truncated'
|
|
266
|
+
: 'policy-ledger-anchor-mismatch');
|
|
267
|
+
}
|
|
236
268
|
const sequence = this.state.receipts.length;
|
|
237
269
|
const payloadWithoutId = {
|
|
238
270
|
previousReceiptHash: previous,
|
|
@@ -252,6 +284,8 @@ export class AgenticPolicyEngine {
|
|
|
252
284
|
keyId: this.signingKey ? (this.keyId ?? 'local') : undefined,
|
|
253
285
|
};
|
|
254
286
|
this.state.receipts.push(receipt);
|
|
287
|
+
this.state.ledgerHead = hash;
|
|
288
|
+
this.state.ledgerLength = this.state.receipts.length;
|
|
255
289
|
return receipt;
|
|
256
290
|
}
|
|
257
291
|
validateRequest(request) {
|