@claude-flow/cli 3.41.3 → 3.42.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/helpers/.helpers-version +1 -1
- package/.claude/helpers/helpers.manifest.json +2 -2
- package/catalog-manifest.json +2 -2
- package/dist/src/commands/hive-mind.js +4 -3
- package/dist/src/init/claudemd-generator.js +2 -2
- package/dist/src/mcp-server.js +12 -0
- package/dist/src/mcp-tools/agentdb-tools.js +58 -4
- package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
- package/dist/src/mcp-tools/hive-mind-tools.js +80 -2
- package/dist/src/mcp-tools/policy-enforcer.d.ts +126 -0
- package/dist/src/mcp-tools/policy-enforcer.js +177 -0
- package/dist/src/memory/intelligence.d.ts +14 -2
- package/dist/src/memory/intelligence.js +33 -12
- package/dist/src/memory/memory-bridge.js +10 -2
- package/dist/src/services/policy-runtime.js +63 -5
- package/node_modules/@claude-flow/codex/dist/cli.js +0 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.d.ts +4 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.d.ts.map +1 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js +38 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js.map +1 -1
- package/node_modules/@claude-flow/codex/package.json +2 -1
- package/node_modules/@claude-flow/plugin-agent-federation/dist/bin.js +0 -0
- package/node_modules/@claude-flow/security/dist/index.d.ts +1 -1
- package/node_modules/@claude-flow/security/dist/index.d.ts.map +1 -1
- package/node_modules/@claude-flow/security/dist/index.js +1 -1
- package/node_modules/@claude-flow/security/dist/index.js.map +1 -1
- package/node_modules/@claude-flow/security/dist/mcp-caller-identity.d.ts +11 -0
- package/node_modules/@claude-flow/security/dist/mcp-caller-identity.d.ts.map +1 -1
- package/node_modules/@claude-flow/security/dist/mcp-caller-identity.js +0 -0
- package/node_modules/@claude-flow/security/dist/mcp-caller-identity.js.map +1 -1
- package/node_modules/@claude-flow/security/package.json +1 -0
- package/package.json +1 -1
- package/dist/src/ruvector/diskann-backend.d.ts +0 -78
- package/dist/src/ruvector/diskann-backend.js +0 -310
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Governance Policy Enforcer (opt-in).
|
|
3
|
+
*
|
|
4
|
+
* `.harness/mcp-policy.json` declares governance intent (defaultDeny,
|
|
5
|
+
* auditLog, maxToolCallsPerTurn, dangerousPatterns, ...) for the claude-flow
|
|
6
|
+
* MCP server, but until now nothing in the running server (mcp-server.ts)
|
|
7
|
+
* ever read it: `harness mcp-scan` grades the file's *posture* offline, the
|
|
8
|
+
* live `tools/call` dispatch never consulted it. Any connected MCP client
|
|
9
|
+
* could call every registered tool with no audit trail and no call budget.
|
|
10
|
+
*
|
|
11
|
+
* This module wires the two policy fields that are actually in this
|
|
12
|
+
* server's jurisdiction, per the policy file's own rationale comment
|
|
13
|
+
* (`dangerousPatterns` / `allowShell` / `allowNetwork` / `allowFileWrite`
|
|
14
|
+
* describe the native-Claude-Code-tool layer — Bash/Write/Edit/WebFetch —
|
|
15
|
+
* not this MCP server's memory_-, hooks_-, agentdb_-prefixed tool surface,
|
|
16
|
+
* so they are intentionally left unenforced here):
|
|
17
|
+
* - `auditLog`: append a JSONL record for every `tools/call`.
|
|
18
|
+
* - `maxToolCallsPerTurn`: bound calls per MCP *session* (one stdio
|
|
19
|
+
* process lifetime), deny once exceeded.
|
|
20
|
+
*
|
|
21
|
+
* Fully opt-in via `RUFLO_MCP_ENFORCE_POLICY=1` (or `true`). Unset/false
|
|
22
|
+
* means every function below is a no-op on the hot path — the pre-existing
|
|
23
|
+
* `tools/call` behavior is unchanged.
|
|
24
|
+
*
|
|
25
|
+
* FAIL-CLOSED once enforcement is enabled (PR #3139 review round 1):
|
|
26
|
+
* a missing/malformed policy file, or a failed mandatory audit-log write,
|
|
27
|
+
* denies the call rather than silently degrading to unrestricted execution.
|
|
28
|
+
* The whole point of opting in is a restriction that actually holds; an
|
|
29
|
+
* enforcement flag that quietly falls back to "no restriction" on its own
|
|
30
|
+
* misconfiguration defeats the feature. See `evaluateToolCall()`.
|
|
31
|
+
*
|
|
32
|
+
* Known scope limits (disclosed, not fixed here):
|
|
33
|
+
* - Only wired into the stdio `tools/call` dispatch
|
|
34
|
+
* (`MCPServerManager.handleMCPMessage`). The separate HTTP/websocket
|
|
35
|
+
* path (`startHttpServer()`, via `@claude-flow/mcp`) does not call
|
|
36
|
+
* this module and is unaffected even when this flag is set.
|
|
37
|
+
*
|
|
38
|
+
* `maxToolCallsPerTurn` reset semantics (dream-cycle 2026-09-01, follow-up
|
|
39
|
+
* to 2026-08-31 review round 1): despite the field's name, the original
|
|
40
|
+
* implementation enforced a *session-lifetime cumulative* cap that never
|
|
41
|
+
* reset — a long-lived stdio session could exhaust the budget under
|
|
42
|
+
* entirely legitimate use and stay locked out until the MCP server process
|
|
43
|
+
* restarted. Research that night (see the dream-cycle gist) found: (1) the
|
|
44
|
+
* MCP spec only mandates "rate limit tool invocations" with zero mechanism
|
|
45
|
+
* guidance, and its 2026-07-28 revision (SEP-2567) is actively removing the
|
|
46
|
+
* session concept from the protocol entirely; (2) every framework/product
|
|
47
|
+
* that gets this right (FastMCP's rate-limiting middleware, the PolicyLayer
|
|
48
|
+
* MCP firewall, Cloudflare's public rate limiter) anchors the reset to
|
|
49
|
+
* wall-clock time, not to a turn or session counter that never decays —
|
|
50
|
+
* a turn-count reset is gameable by a chatty loop re-arming its own budget,
|
|
51
|
+
* which wall-clock time is not. This module now enforces a *sliding
|
|
52
|
+
* wall-clock window*: `maxToolCallsPerTurn` calls are allowed per rolling
|
|
53
|
+
* `turnWindowMs` (default 60000) per session, keyed by call timestamp so
|
|
54
|
+
* calls fall out of the window as time passes rather than accumulating
|
|
55
|
+
* forever. `now` is an injectable parameter (defaults to `Date.now`) so
|
|
56
|
+
* production callers need no change and tests stay fully deterministic via
|
|
57
|
+
* `vi.useFakeTimers()`.
|
|
58
|
+
*/
|
|
59
|
+
import * as fs from 'fs';
|
|
60
|
+
import * as path from 'path';
|
|
61
|
+
import * as os from 'os';
|
|
62
|
+
export function isPolicyEnforcementEnabled(env = process.env) {
|
|
63
|
+
const v = env.RUFLO_MCP_ENFORCE_POLICY;
|
|
64
|
+
return v === '1' || (v ?? '').toLowerCase() === 'true';
|
|
65
|
+
}
|
|
66
|
+
export function loadMcpPolicy(policyPath = path.join(process.cwd(), '.harness', 'mcp-policy.json')) {
|
|
67
|
+
try {
|
|
68
|
+
const raw = fs.readFileSync(policyPath, 'utf-8');
|
|
69
|
+
const parsed = JSON.parse(raw);
|
|
70
|
+
if (typeof parsed !== 'object' || parsed === null)
|
|
71
|
+
return null;
|
|
72
|
+
return parsed;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const DEFAULT_TURN_WINDOW_MS = 60_000;
|
|
79
|
+
const sessionState = new Map();
|
|
80
|
+
/** Test-only: clear per-session call state between test cases. */
|
|
81
|
+
export function resetPolicyEnforcerState() {
|
|
82
|
+
sessionState.clear();
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Checks (and, if allowed, records) a tool call against
|
|
86
|
+
* `policy.maxToolCallsPerTurn`, counted over a sliding window of
|
|
87
|
+
* `policy.turnWindowMs` (default 60000ms) rather than the session's whole
|
|
88
|
+
* lifetime. Calls older than the window are pruned before comparing count
|
|
89
|
+
* to limit, so a session that pauses gets its budget back rather than
|
|
90
|
+
* staying denied until the process restarts. `now` defaults to `Date.now`
|
|
91
|
+
* for production callers; tests inject a controlled clock instead.
|
|
92
|
+
*/
|
|
93
|
+
export function checkAndRecordCall(policy, sessionId, now = Date.now()) {
|
|
94
|
+
const limit = policy.maxToolCallsPerTurn;
|
|
95
|
+
if (typeof limit !== 'number' || !Number.isFinite(limit) || limit <= 0) {
|
|
96
|
+
return { allowed: true };
|
|
97
|
+
}
|
|
98
|
+
const configuredWindow = policy.turnWindowMs;
|
|
99
|
+
const windowMs = typeof configuredWindow === 'number' && Number.isFinite(configuredWindow) && configuredWindow > 0
|
|
100
|
+
? configuredWindow
|
|
101
|
+
: DEFAULT_TURN_WINDOW_MS;
|
|
102
|
+
const state = sessionState.get(sessionId) ?? { callTimes: [] };
|
|
103
|
+
const cutoff = now - windowMs;
|
|
104
|
+
state.callTimes = state.callTimes.filter((t) => t > cutoff);
|
|
105
|
+
if (state.callTimes.length >= limit) {
|
|
106
|
+
sessionState.set(sessionId, state);
|
|
107
|
+
return {
|
|
108
|
+
allowed: false,
|
|
109
|
+
reason: `maxToolCallsPerTurn (${limit}) exceeded within the last ${windowMs}ms for this session`,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
state.callTimes.push(now);
|
|
113
|
+
sessionState.set(sessionId, state);
|
|
114
|
+
return { allowed: true };
|
|
115
|
+
}
|
|
116
|
+
let auditLogPathOverride = null;
|
|
117
|
+
/** Test-only: redirect the audit log to a temp file instead of the default path. */
|
|
118
|
+
export function setAuditLogPathForTesting(p) {
|
|
119
|
+
auditLogPathOverride = p;
|
|
120
|
+
}
|
|
121
|
+
function defaultAuditLogPath() {
|
|
122
|
+
return path.join(os.tmpdir(), 'ruflo-mcp-audit.jsonl');
|
|
123
|
+
}
|
|
124
|
+
export function getAuditLogPath() {
|
|
125
|
+
return auditLogPathOverride ?? defaultAuditLogPath();
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Appends one JSONL audit record. Returns `true` if `policy.auditLog` is not
|
|
129
|
+
* set (nothing was required) or the write succeeded; `false` only when
|
|
130
|
+
* `auditLog` is required and the write itself failed (disk full, unwritable
|
|
131
|
+
* path, etc). Never throws — the caller (`evaluateToolCall`) decides what a
|
|
132
|
+
* failed *mandatory* write means for the call (fail-closed: deny it).
|
|
133
|
+
*/
|
|
134
|
+
export function appendAuditLog(policy, entry) {
|
|
135
|
+
if (!policy.auditLog)
|
|
136
|
+
return true;
|
|
137
|
+
try {
|
|
138
|
+
fs.appendFileSync(getAuditLogPath(), `${JSON.stringify(entry)}\n`, 'utf-8');
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Single enforcement entry point for a `tools/call` dispatch. Combines, in
|
|
147
|
+
* order: fail-closed on a missing/malformed policy, the per-session call
|
|
148
|
+
* budget, and fail-closed on a failed mandatory audit-log write. `policy`
|
|
149
|
+
* is the result of `loadMcpPolicy()` — pass `null` straight through when it
|
|
150
|
+
* failed to load, rather than re-deciding that here.
|
|
151
|
+
*/
|
|
152
|
+
export function evaluateToolCall(policy, sessionId, toolName, now = Date.now()) {
|
|
153
|
+
if (policy === null) {
|
|
154
|
+
return {
|
|
155
|
+
allowed: false,
|
|
156
|
+
reason: 'RUFLO_MCP_ENFORCE_POLICY is set but .harness/mcp-policy.json is missing or invalid — failing closed',
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
const budget = checkAndRecordCall(policy, sessionId, now);
|
|
160
|
+
const auditOk = appendAuditLog(policy, {
|
|
161
|
+
timestamp: new Date(now).toISOString(),
|
|
162
|
+
sessionId,
|
|
163
|
+
toolName,
|
|
164
|
+
allowed: budget.allowed,
|
|
165
|
+
reason: budget.reason,
|
|
166
|
+
});
|
|
167
|
+
if (!budget.allowed)
|
|
168
|
+
return budget;
|
|
169
|
+
if (!auditOk) {
|
|
170
|
+
return {
|
|
171
|
+
allowed: false,
|
|
172
|
+
reason: 'audit log write failed and policy.auditLog is required — failing closed',
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
return { allowed: true };
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=policy-enforcer.js.map
|
|
@@ -178,13 +178,25 @@ declare class LocalReasoningBank {
|
|
|
178
178
|
*/
|
|
179
179
|
store(pattern: Omit<StoredPattern, 'usageCount' | 'createdAt' | 'lastUsedAt'> & Partial<StoredPattern>): void;
|
|
180
180
|
/**
|
|
181
|
-
* Find similar patterns by embedding
|
|
181
|
+
* Find similar patterns by embedding.
|
|
182
|
+
*
|
|
183
|
+
* `confidence` on each result is the pattern's own learned reliability
|
|
184
|
+
* (unchanged from storage) — NOT how well it matches this query. The
|
|
185
|
+
* per-query cosine score is returned separately as `similarity`. Callers
|
|
186
|
+
* that want "how good a semantic match is this" must read `.similarity`;
|
|
187
|
+
* callers that want "how reliable has this pattern proven to be" read
|
|
188
|
+
* `.confidence`. Prior to this fix both were conflated (confidence was
|
|
189
|
+
* overwritten with the cosine score), which silently broke any consumer
|
|
190
|
+
* that needed to tell them apart (found during the 2026-09-12 dream-cycle
|
|
191
|
+
* intelligence-surface review).
|
|
182
192
|
*/
|
|
183
193
|
findSimilar(queryEmbedding: number[], options: {
|
|
184
194
|
k?: number;
|
|
185
195
|
threshold?: number;
|
|
186
196
|
type?: string;
|
|
187
|
-
}): StoredPattern
|
|
197
|
+
}): (StoredPattern & {
|
|
198
|
+
similarity: number;
|
|
199
|
+
})[];
|
|
188
200
|
/**
|
|
189
201
|
* Optimized cosine similarity
|
|
190
202
|
*/
|
|
@@ -250,10 +250,20 @@ class LocalSonaCoordinator {
|
|
|
250
250
|
const oldConfidence = pattern.confidence;
|
|
251
251
|
// Check EWC penalty before applying update
|
|
252
252
|
if (ewcConsolidator) {
|
|
253
|
-
const oldWeights = [oldConfidence];
|
|
254
253
|
const proposedConfidence = Math.min(1.0, oldConfidence + this.config.loraLearningRate * reward);
|
|
255
|
-
|
|
256
|
-
|
|
254
|
+
// Use computeConfidencePenalty (averages the full Fisher diagonal),
|
|
255
|
+
// not getPenalty([oldConf],[newConf]) — that call shape collapses
|
|
256
|
+
// to fisherDiag[0] only (Math.min(1,1,384) === 1), an arbitrary
|
|
257
|
+
// single dimension instead of the full accumulated Fisher signal.
|
|
258
|
+
// computeConfidencePenalty exists precisely for this
|
|
259
|
+
// scalar-confidence case (see its docstring) but was unwired.
|
|
260
|
+
// Note: neither call shape differentiates between patterns — both
|
|
261
|
+
// take only a confidence delta, not a per-pattern embedding, so
|
|
262
|
+
// two patterns with the same delta under the same consolidator
|
|
263
|
+
// state get the same penalty either way. This fix corrects which
|
|
264
|
+
// shared Fisher signal informs that penalty; it does not add
|
|
265
|
+
// per-pattern discrimination (see ewc-distill-confidence-gate.test.ts).
|
|
266
|
+
const penalty = ewcConsolidator.computeConfidencePenalty(oldConfidence, proposedConfidence);
|
|
257
267
|
totalEwcPenalty += penalty;
|
|
258
268
|
// If penalty is too high, reduce the update magnitude
|
|
259
269
|
if (penalty > this.config.ewcLambda) {
|
|
@@ -279,13 +289,14 @@ class LocalSonaCoordinator {
|
|
|
279
289
|
}
|
|
280
290
|
}
|
|
281
291
|
}
|
|
282
|
-
// Update EWC Fisher matrix with confidence changes
|
|
292
|
+
// Update EWC Fisher matrix with confidence changes. updateFisherFromConfidences
|
|
293
|
+
// takes the full per-pattern embedding + confidence-delta batch directly (it
|
|
294
|
+
// computes the same squared confidence-delta-scaled-embedding gradient proxy
|
|
295
|
+
// internally) — replaces the previous per-change recordGradient loop, which
|
|
296
|
+
// updated the full 384-dim globalFisher but fed a signal that getPenalty's
|
|
297
|
+
// 1-element call shape then read back only at index 0.
|
|
283
298
|
if (ewcConsolidator && confidenceChanges.length > 0) {
|
|
284
|
-
|
|
285
|
-
// Use confidence delta as gradient proxy
|
|
286
|
-
const gradient = change.embedding.map(e => e * Math.abs(change.newConf - change.oldConf));
|
|
287
|
-
ewcConsolidator.recordGradient(change.id, gradient, true);
|
|
288
|
-
}
|
|
299
|
+
ewcConsolidator.updateFisherFromConfidences(confidenceChanges);
|
|
289
300
|
}
|
|
290
301
|
// Persist updated patterns
|
|
291
302
|
bank.flushToDisk();
|
|
@@ -467,7 +478,17 @@ class LocalReasoningBank {
|
|
|
467
478
|
this.saveToDisk();
|
|
468
479
|
}
|
|
469
480
|
/**
|
|
470
|
-
* Find similar patterns by embedding
|
|
481
|
+
* Find similar patterns by embedding.
|
|
482
|
+
*
|
|
483
|
+
* `confidence` on each result is the pattern's own learned reliability
|
|
484
|
+
* (unchanged from storage) — NOT how well it matches this query. The
|
|
485
|
+
* per-query cosine score is returned separately as `similarity`. Callers
|
|
486
|
+
* that want "how good a semantic match is this" must read `.similarity`;
|
|
487
|
+
* callers that want "how reliable has this pattern proven to be" read
|
|
488
|
+
* `.confidence`. Prior to this fix both were conflated (confidence was
|
|
489
|
+
* overwritten with the cosine score), which silently broke any consumer
|
|
490
|
+
* that needed to tell them apart (found during the 2026-09-12 dream-cycle
|
|
491
|
+
* intelligence-surface review).
|
|
471
492
|
*/
|
|
472
493
|
findSimilar(queryEmbedding, options) {
|
|
473
494
|
const { k = 5, threshold = 0.5, type } = options;
|
|
@@ -489,7 +510,7 @@ class LocalReasoningBank {
|
|
|
489
510
|
// Update usage
|
|
490
511
|
s.pattern.usageCount++;
|
|
491
512
|
s.pattern.lastUsedAt = Date.now();
|
|
492
|
-
return { ...s.pattern,
|
|
513
|
+
return { ...s.pattern, similarity: s.score };
|
|
493
514
|
});
|
|
494
515
|
}
|
|
495
516
|
/**
|
|
@@ -985,7 +1006,7 @@ export async function findSimilarPatterns(query, options) {
|
|
|
985
1006
|
usageCount: r.usageCount,
|
|
986
1007
|
createdAt: r.createdAt,
|
|
987
1008
|
lastUsedAt: r.lastUsedAt,
|
|
988
|
-
similarity: r.similarity
|
|
1009
|
+
similarity: r.similarity
|
|
989
1010
|
}));
|
|
990
1011
|
}
|
|
991
1012
|
catch {
|
|
@@ -1866,7 +1866,12 @@ export async function bridgeStorePattern(options) {
|
|
|
1866
1866
|
}
|
|
1867
1867
|
catch { /* HNSW is best-effort */ }
|
|
1868
1868
|
}
|
|
1869
|
-
|
|
1869
|
+
// #3324: bridgeStoreEntry's `result.id` is its OWN internally generated
|
|
1870
|
+
// row id (generateId('entry')), a different value from the `key` the row
|
|
1871
|
+
// was actually stored under. getEntry/memory_retrieve look up by `key`,
|
|
1872
|
+
// so returning result.id here handed the caller a handle that can never
|
|
1873
|
+
// be read back — return `patternId` (the real key) instead.
|
|
1874
|
+
return { success: true, patternId, controller: 'bridge-fallback' };
|
|
1870
1875
|
}
|
|
1871
1876
|
catch {
|
|
1872
1877
|
return null;
|
|
@@ -1915,10 +1920,13 @@ export async function bridgeSearchPatterns(options) {
|
|
|
1915
1920
|
const qEmb = await generateEmbedding(options.query);
|
|
1916
1921
|
if (qEmb && Array.isArray(qEmb.embedding) && qEmb.embedding.length > 0) {
|
|
1917
1922
|
const hits = reasoningBank.findSimilar(qEmb.embedding, { k, threshold });
|
|
1923
|
+
// findSimilar() no longer overwrites confidence with the query-match
|
|
1924
|
+
// score — prefer similarity (the actual match strength) for search ranking,
|
|
1925
|
+
// falling back to confidence/score only for older/foreign result shapes.
|
|
1918
1926
|
mapped = (Array.isArray(hits) ? hits : []).map((r) => ({
|
|
1919
1927
|
id: r.id ?? '',
|
|
1920
1928
|
content: r.content ?? '',
|
|
1921
|
-
score: r.confidence ?? r.score ?? 0,
|
|
1929
|
+
score: r.similarity ?? r.confidence ?? r.score ?? 0,
|
|
1922
1930
|
}));
|
|
1923
1931
|
}
|
|
1924
1932
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgenticPolicyEngine, createLegacyCompatibleState, } from '@claude-flow/security';
|
|
1
|
+
import { AgenticPolicyEngine, createLegacyCompatibleState, isMcpCallerAuthEnabled, decodeTokenEnvelope, publicKeyFromHex, verifyInvocationToken, } from '@claude-flow/security';
|
|
2
2
|
import { createHash, createHmac, randomBytes, randomUUID, timingSafeEqual } from 'node:crypto';
|
|
3
3
|
import { execFileSync } from 'node:child_process';
|
|
4
4
|
import { closeSync, existsSync, mkdirSync, openSync, readFileSync, realpathSync, renameSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
@@ -257,6 +257,67 @@ export async function revokePolicyApproval(id, projectRoot = process.cwd()) {
|
|
|
257
257
|
export async function verifyPolicyLedger(projectRoot = process.cwd()) {
|
|
258
258
|
return withPolicyTransaction(projectRoot, (engine) => engine.verifyLedger());
|
|
259
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Resolve the caller identity for `authorizeMcpTool`.
|
|
262
|
+
*
|
|
263
|
+
* ADR-377 Phase 3 (dream-cycle candidate, 2026-08-26) — off by default. By
|
|
264
|
+
* default (`isMcpCallerAuthEnabled()` false), this reproduces the exact
|
|
265
|
+
* pre-existing two-line behavior: the plain, unsigned `CLAUDE_FLOW_PRINCIPAL_ID`
|
|
266
|
+
* env var is trusted outright. That is the byte-identical-when-disabled
|
|
267
|
+
* requirement for this candidate — nothing about this branch's shape or
|
|
268
|
+
* output changes when the flag is off.
|
|
269
|
+
*
|
|
270
|
+
* When the flag is on, `CLAUDE_FLOW_PRINCIPAL_ID` alone is no longer
|
|
271
|
+
* sufficient — any process can set an arbitrary env var with zero proof.
|
|
272
|
+
* Instead this requires (and verifies) an Ed25519-signed `InvocationToken`
|
|
273
|
+
* that only a private-key holder (the DualModeOrchestrator that spawned this
|
|
274
|
+
* worker) could have minted, per `mcp-caller-identity.ts`. Missing, corrupt,
|
|
275
|
+
* forged, or expired tokens fail closed — this function throws rather than
|
|
276
|
+
* falling back to the unverified env var, matching the existing fail-closed
|
|
277
|
+
* pattern already used above in this function (`invalid-worker-capability-envelope`,
|
|
278
|
+
* `authoritative-worker-policy-root-unavailable`).
|
|
279
|
+
*
|
|
280
|
+
* Scope trade-off (deliberate — see mcp-caller-identity.ts's file header and
|
|
281
|
+
* orchestrator.ts's `workerEnvironment` for the fuller rationale): the token
|
|
282
|
+
* is minted once per worker spawn with a worker-lifetime TTL and a wildcard
|
|
283
|
+
* `toolName: '*'`, not the single-tool, 30s-TTL shape `InvocationToken` was
|
|
284
|
+
* originally designed for — so `opts.toolName` is deliberately not passed to
|
|
285
|
+
* `verifyInvocationToken` here, and the tool-mismatch check is not exercised
|
|
286
|
+
* for this use case. What this retains: a process that never received the
|
|
287
|
+
* signed token cannot forge one, so it cannot impersonate `agent:<workerId>`.
|
|
288
|
+
* What it does NOT retain: a compromised worker process can still use its
|
|
289
|
+
* own valid token for every MCP call for the rest of its lifetime — the
|
|
290
|
+
* token does not limit blast radius to a single call.
|
|
291
|
+
*/
|
|
292
|
+
function resolveMcpCallerIdentity() {
|
|
293
|
+
if (!isMcpCallerAuthEnabled()) {
|
|
294
|
+
return {
|
|
295
|
+
id: process.env.CLAUDE_FLOW_PRINCIPAL_ID ?? 'legacy-cli',
|
|
296
|
+
type: process.env.CLAUDE_FLOW_PRINCIPAL_ID ? 'agent' : 'legacy',
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
const encodedToken = process.env.CLAUDE_FLOW_MCP_INVOCATION_TOKEN;
|
|
300
|
+
const publicKeyHex = process.env.CLAUDE_FLOW_MCP_CALLER_PUBKEY;
|
|
301
|
+
if (!encodedToken || !publicKeyHex) {
|
|
302
|
+
throw new Error('mcp-caller-auth-enabled-but-no-token');
|
|
303
|
+
}
|
|
304
|
+
const token = decodeTokenEnvelope(encodedToken);
|
|
305
|
+
if (!token) {
|
|
306
|
+
throw new Error('mcp-caller-auth-enabled-but-no-token');
|
|
307
|
+
}
|
|
308
|
+
let publicKey;
|
|
309
|
+
try {
|
|
310
|
+
publicKey = publicKeyFromHex(publicKeyHex);
|
|
311
|
+
}
|
|
312
|
+
catch {
|
|
313
|
+
throw new Error('mcp-caller-auth-enabled-but-no-token');
|
|
314
|
+
}
|
|
315
|
+
const result = verifyInvocationToken(token, publicKey, {});
|
|
316
|
+
if (!result.valid) {
|
|
317
|
+
throw new Error(`mcp-caller-auth-verification-failed:${result.reason}`);
|
|
318
|
+
}
|
|
319
|
+
return { id: token.callerId, type: 'agent' };
|
|
320
|
+
}
|
|
260
321
|
export async function authorizeMcpTool(toolName, input, context = {}, attributes = {}) {
|
|
261
322
|
let projectRoot = typeof context.projectRoot === 'string' ? context.projectRoot : process.cwd();
|
|
262
323
|
let processEnvelope;
|
|
@@ -284,10 +345,7 @@ export async function authorizeMcpTool(toolName, input, context = {}, attributes
|
|
|
284
345
|
}
|
|
285
346
|
}
|
|
286
347
|
return evaluatePolicyRequest({
|
|
287
|
-
identity:
|
|
288
|
-
id: process.env.CLAUDE_FLOW_PRINCIPAL_ID ?? 'legacy-cli',
|
|
289
|
-
type: process.env.CLAUDE_FLOW_PRINCIPAL_ID ? 'agent' : 'legacy',
|
|
290
|
-
},
|
|
348
|
+
identity: resolveMcpCallerIdentity(),
|
|
291
349
|
action: {
|
|
292
350
|
type: attributes.actionType ?? 'mcp.tool.call',
|
|
293
351
|
resource: toolName,
|
|
File without changes
|
|
@@ -67,6 +67,10 @@ export declare class DualModeOrchestrator extends EventEmitter {
|
|
|
67
67
|
private config;
|
|
68
68
|
private workers;
|
|
69
69
|
private processes;
|
|
70
|
+
/** Lazily generated, cached for the life of this orchestrator instance — one
|
|
71
|
+
* keypair signs every worker's token, never regenerated per spawn. Only
|
|
72
|
+
* touched when `isMcpCallerAuthEnabled()` is true. */
|
|
73
|
+
private callerIdentityKey?;
|
|
70
74
|
constructor(config: DualModeConfig);
|
|
71
75
|
/**
|
|
72
76
|
* Initialize shared memory for collaboration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/dual-mode/orchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/dual-mode/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { EventEmitter } from 'events';
|
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import * as fs from 'fs';
|
|
9
9
|
import * as TOML from '@iarna/toml';
|
|
10
|
+
import { generateCallerIdentityKey, issueInvocationToken, isMcpCallerAuthEnabled, encodeTokenEnvelope, } from '@claude-flow/security';
|
|
10
11
|
/**
|
|
11
12
|
* Orchestrates parallel execution of Claude Code and Codex workers
|
|
12
13
|
*/
|
|
@@ -14,6 +15,10 @@ export class DualModeOrchestrator extends EventEmitter {
|
|
|
14
15
|
config;
|
|
15
16
|
workers = new Map();
|
|
16
17
|
processes = new Map();
|
|
18
|
+
/** Lazily generated, cached for the life of this orchestrator instance — one
|
|
19
|
+
* keypair signs every worker's token, never regenerated per spawn. Only
|
|
20
|
+
* touched when `isMcpCallerAuthEnabled()` is true. */
|
|
21
|
+
callerIdentityKey;
|
|
17
22
|
constructor(config) {
|
|
18
23
|
super();
|
|
19
24
|
if (!Number.isInteger(config.maxConcurrent ?? 4) || (config.maxConcurrent ?? 4) < 1) {
|
|
@@ -467,7 +472,9 @@ Remember: Other agents depend on your results in shared memory. Be concise and s
|
|
|
467
472
|
for (const [name, value] of Object.entries(process.env)) {
|
|
468
473
|
if (sensitive.test(name)
|
|
469
474
|
|| name.startsWith('CLAUDE_FLOW_POLICY_')
|
|
470
|
-
|| name === 'CLAUDE_FLOW_PRINCIPAL_ID'
|
|
475
|
+
|| name === 'CLAUDE_FLOW_PRINCIPAL_ID'
|
|
476
|
+
|| name === 'CLAUDE_FLOW_MCP_INVOCATION_TOKEN'
|
|
477
|
+
|| name === 'CLAUDE_FLOW_MCP_CALLER_PUBKEY')
|
|
471
478
|
continue;
|
|
472
479
|
env[name] = value;
|
|
473
480
|
}
|
|
@@ -475,6 +482,36 @@ Remember: Other agents depend on your results in shared memory. Be concise and s
|
|
|
475
482
|
env.CLAUDE_FLOW_DB_PATH = this.config.memoryDbPath;
|
|
476
483
|
env.CLAUDE_FLOW_PRINCIPAL_ID = `agent:${worker.id}`;
|
|
477
484
|
env.CLAUDE_FLOW_CAPABILITY_ENVELOPE = JSON.stringify(this.resolveWorkerEnvelope(worker));
|
|
485
|
+
// ADR-377 Phase 3 (dream-cycle candidate, 2026-08-26) — off by default.
|
|
486
|
+
// When caller-auth is enabled, back the freshly-set CLAUDE_FLOW_PRINCIPAL_ID
|
|
487
|
+
// above with an Ed25519-signed InvocationToken only this orchestrator (the
|
|
488
|
+
// private-key holder) could have minted, so policy-runtime can verify the
|
|
489
|
+
// worker's identity instead of trusting the plain env var. Set *after* the
|
|
490
|
+
// strip loop, same pattern as CLAUDE_FLOW_PRINCIPAL_ID itself, so it is
|
|
491
|
+
// never accidentally stripped by the sensitive-name filter above.
|
|
492
|
+
//
|
|
493
|
+
// Scope trade-off (deliberate, see mcp-caller-identity.ts's file header
|
|
494
|
+
// and this file's docstring for the fuller rationale): InvocationToken
|
|
495
|
+
// was designed short-lived (30s) and single-tool-bound. A worker process
|
|
496
|
+
// has no live channel back to the orchestrator to re-request a token
|
|
497
|
+
// before every MCP call, so instead we mint ONE token per worker spawn,
|
|
498
|
+
// TTL'd to the orchestrator's own per-worker timeout (the same value
|
|
499
|
+
// already used for the capability envelope's expiresAt, above), and
|
|
500
|
+
// toolName '*' — a wildcard sentinel meaning "not bound to one tool"
|
|
501
|
+
// (verified below without an `opts.toolName`, so the tool-mismatch check
|
|
502
|
+
// is simply not exercised for this use case). Net effect: the token
|
|
503
|
+
// behaves as a worker-lifetime capability credential, not a strict
|
|
504
|
+
// per-call one. What IS retained: a process that never received this
|
|
505
|
+
// signed token cannot forge one, so it cannot impersonate
|
|
506
|
+
// `agent:<workerId>`. What is NOT retained: if a worker process is
|
|
507
|
+
// itself compromised mid-run, the token does not limit blast radius to
|
|
508
|
+
// one call — it remains valid for the rest of the worker's lifetime.
|
|
509
|
+
if (isMcpCallerAuthEnabled()) {
|
|
510
|
+
this.callerIdentityKey ??= generateCallerIdentityKey();
|
|
511
|
+
const token = issueInvocationToken(`agent:${worker.id}`, '*', this.callerIdentityKey, { ttlMs: this.config.timeout });
|
|
512
|
+
env.CLAUDE_FLOW_MCP_INVOCATION_TOKEN = encodeTokenEnvelope(token);
|
|
513
|
+
env.CLAUDE_FLOW_MCP_CALLER_PUBKEY = this.callerIdentityKey.publicKeyHex;
|
|
514
|
+
}
|
|
478
515
|
return env;
|
|
479
516
|
}
|
|
480
517
|
/** Keep every Ruflo subprocess on the same collaboration database. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/dual-mode/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/dual-mode/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -21,7 +21,7 @@ export { InputValidator, sanitizeString, sanitizeHtml, sanitizePath, SafeStringS
|
|
|
21
21
|
export { TokenGenerator, TokenGeneratorError, createTokenGenerator, getDefaultGenerator, quickGenerate, type TokenConfig, type Token, type SignedToken, type VerificationCode, } from './token-generator.js';
|
|
22
22
|
export { ToolOutputGuardrail, createToolOutputGuardrail, isToolOutputSafe, type GuardrailConfig, type GuardrailResult, type GuardrailAction, type InjectionFinding, type InjectionSeverity, type InjectionCategory, } from './tool-output-guardrail.js';
|
|
23
23
|
export { AgentAuthorizationPropagator, AuthorizationPropagationError, makeLegacyPermissiveScope, type AuthScope, type SendMessageEnvelope, type ToolCallDecision, } from './authorization/propagator.js';
|
|
24
|
-
export { generateCallerIdentityKey, loadCallerIdentityKey, issueInvocationToken, verifyInvocationToken, isMcpCallerAuthEnabled, type CallerIdentityKey, type InvocationToken, type TokenVerificationResult, } from './mcp-caller-identity.js';
|
|
24
|
+
export { generateCallerIdentityKey, loadCallerIdentityKey, issueInvocationToken, verifyInvocationToken, isMcpCallerAuthEnabled, publicKeyFromHex, encodeTokenEnvelope, decodeTokenEnvelope, type CallerIdentityKey, type InvocationToken, type TokenVerificationResult, } from './mcp-caller-identity.js';
|
|
25
25
|
export * from './policy/index.js';
|
|
26
26
|
export { CLIENT_ID as OAUTH_CLIENT_ID, SCOPE as OAUTH_SCOPE, OOB_REDIRECT_URI, OAuthError, authorizeUrl, exchangeCode, refreshToken, exchangeManualCode, type TokenResponse as OAuthTokenResponse, } from './oauth/client.js';
|
|
27
27
|
export { generate as generatePkce, challengeFromVerifier, type PkceRequest } from './oauth/pkce.js';
|