@claude-flow/cli 3.6.24 → 3.6.26
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/github-safe.js +64 -49
- package/.claude/helpers/statusline.cjs +11 -13
- package/.claude/helpers/statusline.js +11 -6
- package/README.md +8 -2
- package/bin/cli.js +21 -0
- package/bin/mcp-server.js +16 -0
- package/dist/src/commands/appliance.d.ts.map +1 -1
- package/dist/src/commands/appliance.js +8 -10
- package/dist/src/commands/appliance.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +90 -2
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/guidance.d.ts.map +1 -1
- package/dist/src/commands/guidance.js +1 -5
- package/dist/src/commands/guidance.js.map +1 -1
- package/dist/src/commands/performance.d.ts.map +1 -1
- package/dist/src/commands/performance.js +3 -3
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/process.d.ts.map +1 -1
- package/dist/src/commands/process.js +6 -7
- package/dist/src/commands/process.js.map +1 -1
- package/dist/src/commands/verify.d.ts.map +1 -1
- package/dist/src/commands/verify.js +24 -3
- package/dist/src/commands/verify.js.map +1 -1
- package/dist/src/encryption/vault.d.ts +94 -0
- package/dist/src/encryption/vault.d.ts.map +1 -0
- package/dist/src/encryption/vault.js +172 -0
- package/dist/src/encryption/vault.js.map +1 -0
- package/dist/src/fs-secure.d.ts +67 -0
- package/dist/src/fs-secure.d.ts.map +1 -0
- package/dist/src/fs-secure.js +74 -0
- package/dist/src/fs-secure.js.map +1 -0
- package/dist/src/mcp-tools/github-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/github-tools.js +122 -31
- package/dist/src/mcp-tools/github-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +2 -2
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +7 -12
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/session-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/session-tools.js +24 -12
- package/dist/src/mcp-tools/session-tools.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +22 -7
- package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
- package/dist/src/mcp-tools/validate-input.d.ts +12 -0
- package/dist/src/mcp-tools/validate-input.d.ts.map +1 -1
- package/dist/src/mcp-tools/validate-input.js +56 -0
- package/dist/src/mcp-tools/validate-input.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +17 -16
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/transfer/ipfs/upload.d.ts.map +1 -1
- package/dist/src/transfer/ipfs/upload.js +2 -0
- package/dist/src/transfer/ipfs/upload.js.map +1 -1
- package/dist/src/update/executor.d.ts +1 -0
- package/dist/src/update/executor.d.ts.map +1 -1
- package/dist/src/update/executor.js +43 -7
- package/dist/src/update/executor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -2,14 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Safe GitHub CLI Helper
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
*
|
|
6
|
+
* Prevents two classes of issue when calling `gh`:
|
|
7
|
+
* 1. Timeout / shell-quoting bugs when issue/PR bodies contain backticks,
|
|
8
|
+
* `$(...)`, or other special characters — bodies go through a temp file
|
|
9
|
+
* via `--body-file` instead of being inlined in the command line.
|
|
10
|
+
* 2. Command injection (audit_1776853149979 finding) — args were
|
|
11
|
+
* previously concatenated into a shell string and passed to
|
|
12
|
+
* `execSync`, so a caller passing `; rm -rf …` would have it
|
|
13
|
+
* executed by /bin/sh. Now uses `execFileSync('gh', argArray)`
|
|
14
|
+
* which goes through execve directly with no shell interpretation.
|
|
15
|
+
*
|
|
7
16
|
* Usage:
|
|
8
17
|
* ./github-safe.js issue comment 123 "Message with `backticks`"
|
|
9
18
|
* ./github-safe.js pr create --title "Title" --body "Complex body"
|
|
10
19
|
*/
|
|
11
20
|
|
|
12
|
-
import {
|
|
21
|
+
import { execFileSync } from 'child_process';
|
|
13
22
|
import { writeFileSync, unlinkSync } from 'fs';
|
|
14
23
|
import { tmpdir } from 'os';
|
|
15
24
|
import { join } from 'path';
|
|
@@ -27,80 +36,86 @@ Usage:
|
|
|
27
36
|
./github-safe.js issue create --title <title> --body <body>
|
|
28
37
|
./github-safe.js pr create --title <title> --body <body>
|
|
29
38
|
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
- Directory paths
|
|
34
|
-
- Special shell characters
|
|
39
|
+
Bodies with backticks, command substitution, and other special shell
|
|
40
|
+
characters are routed through a tempfile via --body-file. All gh args
|
|
41
|
+
are passed via execFileSync (no shell interpretation).
|
|
35
42
|
`);
|
|
36
43
|
process.exit(1);
|
|
37
44
|
}
|
|
38
45
|
|
|
46
|
+
// Whitelist of gh top-level commands we forward. Restricting this is
|
|
47
|
+
// defense-in-depth even though execFileSync would already block shell
|
|
48
|
+
// metacharacters in args.
|
|
49
|
+
const ALLOWED_COMMANDS = new Set(['issue', 'pr', 'repo', 'api', 'workflow', 'run', 'release', 'auth', 'gist']);
|
|
50
|
+
|
|
39
51
|
const [command, subcommand, ...restArgs] = args;
|
|
40
52
|
|
|
41
|
-
|
|
42
|
-
|
|
53
|
+
if (!ALLOWED_COMMANDS.has(command)) {
|
|
54
|
+
console.error(`Refusing to forward unknown gh command: ${command}`);
|
|
55
|
+
console.error(`Allowed: ${Array.from(ALLOWED_COMMANDS).join(', ')}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Build the final argv that gets passed to execFileSync.
|
|
60
|
+
// IMPORTANT: never join into a shell string. Each element is one argv slot.
|
|
61
|
+
function runGh(argv) {
|
|
62
|
+
try {
|
|
63
|
+
execFileSync('gh', argv, {
|
|
64
|
+
stdio: 'inherit',
|
|
65
|
+
timeout: 30000,
|
|
66
|
+
// shell:false is the default — kept explicit so a future refactor
|
|
67
|
+
// doesn't accidentally turn it on.
|
|
68
|
+
shell: false,
|
|
69
|
+
});
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.error('Error:', error?.message ?? String(error));
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Handle commands that take body content
|
|
77
|
+
if ((command === 'issue' || command === 'pr') &&
|
|
43
78
|
(subcommand === 'comment' || subcommand === 'create')) {
|
|
44
|
-
|
|
79
|
+
|
|
45
80
|
let bodyIndex = -1;
|
|
46
81
|
let body = '';
|
|
47
|
-
|
|
82
|
+
|
|
48
83
|
if (subcommand === 'comment' && restArgs.length >= 2) {
|
|
49
|
-
//
|
|
84
|
+
// Positional: github-safe.js issue comment 123 "body"
|
|
50
85
|
body = restArgs[1];
|
|
51
86
|
bodyIndex = 1;
|
|
52
87
|
} else {
|
|
53
|
-
// Flag format: --body "content"
|
|
54
88
|
bodyIndex = restArgs.indexOf('--body');
|
|
55
89
|
if (bodyIndex !== -1 && bodyIndex < restArgs.length - 1) {
|
|
56
90
|
body = restArgs[bodyIndex + 1];
|
|
57
91
|
}
|
|
58
92
|
}
|
|
59
|
-
|
|
93
|
+
|
|
60
94
|
if (body) {
|
|
61
|
-
// Use temporary file for body content
|
|
62
95
|
const tmpFile = join(tmpdir(), `gh-body-${randomBytes(8).toString('hex')}.tmp`);
|
|
63
|
-
|
|
64
96
|
try {
|
|
65
97
|
writeFileSync(tmpFile, body, 'utf8');
|
|
66
|
-
|
|
67
|
-
// Build
|
|
68
|
-
const
|
|
98
|
+
|
|
99
|
+
// Build the gh argv with --body-file instead of --body / inline body
|
|
100
|
+
const finalArgs = [command, subcommand, ...restArgs];
|
|
101
|
+
const offset = 2; // command + subcommand
|
|
69
102
|
if (subcommand === 'comment' && bodyIndex === 1) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
newArgs.push(tmpFile);
|
|
103
|
+
finalArgs[offset + 1] = '--body-file';
|
|
104
|
+
finalArgs.push(tmpFile);
|
|
73
105
|
} else if (bodyIndex !== -1) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
newArgs[bodyIndex + 1] = tmpFile;
|
|
106
|
+
finalArgs[offset + bodyIndex] = '--body-file';
|
|
107
|
+
finalArgs[offset + bodyIndex + 1] = tmpFile;
|
|
77
108
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const ghCommand = `gh ${command} ${subcommand} ${newArgs.join(' ')}`;
|
|
81
|
-
console.log(`Executing: ${ghCommand}`);
|
|
82
|
-
|
|
83
|
-
const result = execSync(ghCommand, {
|
|
84
|
-
stdio: 'inherit',
|
|
85
|
-
timeout: 30000 // 30 second timeout
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
} catch (error) {
|
|
89
|
-
console.error('Error:', error.message);
|
|
90
|
-
process.exit(1);
|
|
109
|
+
|
|
110
|
+
runGh(finalArgs);
|
|
91
111
|
} finally {
|
|
92
|
-
|
|
93
|
-
try {
|
|
94
|
-
unlinkSync(tmpFile);
|
|
95
|
-
} catch (e) {
|
|
96
|
-
// Ignore cleanup errors
|
|
97
|
-
}
|
|
112
|
+
try { unlinkSync(tmpFile); } catch { /* ignore cleanup errors */ }
|
|
98
113
|
}
|
|
99
114
|
} else {
|
|
100
|
-
// No body
|
|
101
|
-
|
|
115
|
+
// No body — forward all args as-is (still via execFileSync)
|
|
116
|
+
runGh(args);
|
|
102
117
|
}
|
|
103
118
|
} else {
|
|
104
|
-
// Other
|
|
105
|
-
|
|
119
|
+
// Other gh subcommands — forward as-is
|
|
120
|
+
runGh(args);
|
|
106
121
|
}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
26
26
|
const fs = require('fs');
|
|
27
27
|
const path = require('path');
|
|
28
|
-
const { execSync } = require('child_process');
|
|
28
|
+
const { execSync, execFileSync } = require('child_process');
|
|
29
29
|
|
|
30
30
|
// Configuration
|
|
31
31
|
const CONFIG = {
|
|
@@ -70,19 +70,17 @@ function getUserInfo() {
|
|
|
70
70
|
let gitBranch = '';
|
|
71
71
|
let modelName = 'Unknown';
|
|
72
72
|
|
|
73
|
+
// audit_1776853149979: previously used execSync with a shell string. Switched
|
|
74
|
+
// to execFileSync('git', argv) on both platforms so there is no shell
|
|
75
|
+
// interpretation. Cross-platform behavior is preserved by relying on git's
|
|
76
|
+
// own exit code instead of `|| echo` fallbacks: missing repo / no user.name
|
|
77
|
+
// throws, caught below, defaults retained.
|
|
73
78
|
try {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
: 'git branch --show-current 2>/dev/null || echo ""';
|
|
80
|
-
name = execSync(gitUserCmd, { encoding: 'utf-8' }).trim();
|
|
81
|
-
gitBranch = execSync(gitBranchCmd, { encoding: 'utf-8' }).trim();
|
|
82
|
-
if (gitBranch === '.') gitBranch = ''; // Windows echo. outputs a dot
|
|
83
|
-
} catch (e) {
|
|
84
|
-
// Ignore errors
|
|
85
|
-
}
|
|
79
|
+
name = execFileSync('git', ['config', 'user.name'], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim() || 'user';
|
|
80
|
+
} catch { /* keep default */ }
|
|
81
|
+
try {
|
|
82
|
+
gitBranch = execFileSync('git', ['branch', '--show-current'], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
|
|
83
|
+
} catch { /* keep empty */ }
|
|
86
84
|
|
|
87
85
|
// Auto-detect model from Claude Code's config
|
|
88
86
|
try {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
const fs = require('fs');
|
|
10
10
|
const path = require('path');
|
|
11
|
-
const { execSync } = require('child_process');
|
|
11
|
+
const { execSync, execFileSync } = require('child_process');
|
|
12
12
|
|
|
13
13
|
// Configuration
|
|
14
14
|
const CONFIG = {
|
|
@@ -49,12 +49,17 @@ function getUserInfo() {
|
|
|
49
49
|
let gitBranch = '';
|
|
50
50
|
let modelName = 'Opus 4.6 (1M context)';
|
|
51
51
|
|
|
52
|
+
// audit_1776853149979: previously used execSync with a shell string for git
|
|
53
|
+
// commands. Switched to execFileSync('git', argv) so there is no shell
|
|
54
|
+
// interpretation — eliminates the *class* of injection regardless of whether
|
|
55
|
+
// user input ever reaches these args (defense in depth). Errors are caught
|
|
56
|
+
// and the defaults above remain.
|
|
52
57
|
try {
|
|
53
|
-
name =
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
+
name = execFileSync('git', ['config', 'user.name'], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim() || 'user';
|
|
59
|
+
} catch { /* not in a repo / no name set — keep default */ }
|
|
60
|
+
try {
|
|
61
|
+
gitBranch = execFileSync('git', ['branch', '--show-current'], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
|
|
62
|
+
} catch { /* not in a repo — keep empty */ }
|
|
58
63
|
|
|
59
64
|
return { name, gitBranch, modelName };
|
|
60
65
|
}
|
package/README.md
CHANGED
|
@@ -340,9 +340,15 @@ User --> Claude Code / CLI
|
|
|
340
340
|
|
|
341
341
|
## Documentation
|
|
342
342
|
|
|
343
|
-
|
|
343
|
+
Three docs for three audiences:
|
|
344
344
|
|
|
345
|
-
|
|
345
|
+
| Doc | When to read it |
|
|
346
|
+
|-----|-----------------|
|
|
347
|
+
| **[Status](docs/STATUS.md)** | See what currently works — capability counts, test baselines, recent fixes, what's next. The *is-it-ready* doc. |
|
|
348
|
+
| **[User Guide](docs/USERGUIDE.md)** | Daily reference — every command, every config flag, every plugin. The *how-do-I* doc. |
|
|
349
|
+
| **[Verification](verification.md)** | Cryptographically prove your installed bytes match the signed witness — `ruflo verify`. The *trust-but-verify* doc. |
|
|
350
|
+
|
|
351
|
+
User Guide section index:
|
|
346
352
|
|
|
347
353
|
| Section | Topics |
|
|
348
354
|
|---------|--------|
|
package/bin/cli.js
CHANGED
|
@@ -54,10 +54,31 @@ if (isMCPMode) {
|
|
|
54
54
|
`[${new Date().toISOString()}] INFO [claude-flow-mcp] (${sessionId}) Starting in stdio mode`
|
|
55
55
|
);
|
|
56
56
|
|
|
57
|
+
// Audit-flagged DoS protection (audit_1776483149979): cap the
|
|
58
|
+
// newline-buffered stdin parser so a malicious client cannot pipe
|
|
59
|
+
// gigabytes of un-newlined data and exhaust memory before
|
|
60
|
+
// JSON.parse runs. 10MB is far above any legitimate MCP message
|
|
61
|
+
// (the protocol's largest realistic payloads — tool descriptions,
|
|
62
|
+
// batch search results — top out at ~1MB).
|
|
63
|
+
const MCP_MAX_BUFFER_BYTES = 10 * 1024 * 1024;
|
|
57
64
|
let buffer = '';
|
|
58
65
|
process.stdin.setEncoding('utf8');
|
|
59
66
|
process.stdin.on('data', async (chunk) => {
|
|
60
67
|
buffer += chunk;
|
|
68
|
+
if (buffer.length > MCP_MAX_BUFFER_BYTES) {
|
|
69
|
+
// Drop the buffer + emit a protocol-level error so the client
|
|
70
|
+
// sees the rejection rather than a silent OOM.
|
|
71
|
+
console.log(JSON.stringify({
|
|
72
|
+
jsonrpc: '2.0',
|
|
73
|
+
id: null,
|
|
74
|
+
error: {
|
|
75
|
+
code: -32700,
|
|
76
|
+
message: `Buffered stdin exceeds ${MCP_MAX_BUFFER_BYTES} bytes without newline; resetting`,
|
|
77
|
+
},
|
|
78
|
+
}));
|
|
79
|
+
buffer = '';
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
61
82
|
let lines = buffer.split('\n');
|
|
62
83
|
buffer = lines.pop() || '';
|
|
63
84
|
|
package/bin/mcp-server.js
CHANGED
|
@@ -48,12 +48,28 @@ console.error(JSON.stringify({
|
|
|
48
48
|
}));
|
|
49
49
|
|
|
50
50
|
// Handle stdin messages
|
|
51
|
+
// Audit-flagged DoS protection (audit_1776483149979): cap stdin buffer
|
|
52
|
+
// to 10MB. See bin/cli.js for the same protection on the auto-detect path.
|
|
53
|
+
const MCP_MAX_BUFFER_BYTES = 10 * 1024 * 1024;
|
|
51
54
|
let buffer = '';
|
|
52
55
|
|
|
53
56
|
process.stdin.setEncoding('utf8');
|
|
54
57
|
process.stdin.on('data', async (chunk) => {
|
|
55
58
|
buffer += chunk;
|
|
56
59
|
|
|
60
|
+
if (buffer.length > MCP_MAX_BUFFER_BYTES) {
|
|
61
|
+
console.log(JSON.stringify({
|
|
62
|
+
jsonrpc: '2.0',
|
|
63
|
+
id: null,
|
|
64
|
+
error: {
|
|
65
|
+
code: -32700,
|
|
66
|
+
message: `Buffered stdin exceeds ${MCP_MAX_BUFFER_BYTES} bytes without newline; resetting`,
|
|
67
|
+
},
|
|
68
|
+
}));
|
|
69
|
+
buffer = '';
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
|
|
57
73
|
// Process complete JSON messages (newline-delimited)
|
|
58
74
|
let lines = buffer.split('\n');
|
|
59
75
|
buffer = lines.pop() || ''; // Keep incomplete line in buffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appliance.d.ts","sourceRoot":"","sources":["../../../src/commands/appliance.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"appliance.d.ts","sourceRoot":"","sources":["../../../src/commands/appliance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAuY1E,eAAO,MAAM,gBAAgB,EAAE,OA0C9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* V3 CLI Appliance Command
|
|
3
3
|
* Self-contained RVFA appliance management (build, inspect, verify, extract, run, sign, publish, update)
|
|
4
4
|
*/
|
|
5
|
+
import { existsSync, mkdirSync, statSync } from 'node:fs';
|
|
6
|
+
import { join as pathJoin, resolve as pathResolve } from 'node:path';
|
|
5
7
|
import { output } from '../output.js';
|
|
6
8
|
import { signCommand, publishCommand, updateAppCommand } from './appliance-advanced.js';
|
|
7
9
|
function fmtSize(bytes) {
|
|
@@ -31,8 +33,7 @@ async function loadModule(path, exportName, label) {
|
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
35
|
async function requireFile(file) {
|
|
34
|
-
|
|
35
|
-
if (!fs.existsSync(file)) {
|
|
36
|
+
if (!existsSync(file)) {
|
|
36
37
|
output.printError(`File not found: ${file}`);
|
|
37
38
|
return false;
|
|
38
39
|
}
|
|
@@ -171,8 +172,7 @@ const inspectCommand = {
|
|
|
171
172
|
else {
|
|
172
173
|
output.writeln(output.dim(' No sections found'));
|
|
173
174
|
}
|
|
174
|
-
const
|
|
175
|
-
const stat = fs.statSync(file);
|
|
175
|
+
const stat = statSync(file);
|
|
176
176
|
output.writeln();
|
|
177
177
|
output.printInfo(`Total file size: ${output.bold(fmtSize(stat.size))}`);
|
|
178
178
|
if (hdr.footerHash) {
|
|
@@ -269,14 +269,12 @@ const extractCommand = {
|
|
|
269
269
|
if (!(await requireFile(file)))
|
|
270
270
|
return { success: false, exitCode: 1 };
|
|
271
271
|
try {
|
|
272
|
-
const fs = await import('fs');
|
|
273
|
-
const path = await import('path');
|
|
274
272
|
header('RVFA Extraction');
|
|
275
273
|
const reader = new RvfaReader(file);
|
|
276
274
|
const hdr = await reader.parse();
|
|
277
|
-
const dest =
|
|
278
|
-
if (!
|
|
279
|
-
|
|
275
|
+
const dest = pathResolve(outputDir);
|
|
276
|
+
if (!existsSync(dest))
|
|
277
|
+
mkdirSync(dest, { recursive: true });
|
|
280
278
|
output.printInfo(`Destination: ${dest}`);
|
|
281
279
|
output.writeln();
|
|
282
280
|
if (sectionFilter) {
|
|
@@ -300,7 +298,7 @@ const extractCommand = {
|
|
|
300
298
|
output.printSuccess(`Extraction complete: ${dest}`);
|
|
301
299
|
output.writeln(output.dim(' Directory structure:'));
|
|
302
300
|
for (const d of ['kernel', 'runtime', 'ruflo', 'models', 'data', 'verify']) {
|
|
303
|
-
const exists =
|
|
301
|
+
const exists = existsSync(pathJoin(dest, d));
|
|
304
302
|
output.writeln(` ${exists ? output.success('+') : output.dim('-')} ${d}/`);
|
|
305
303
|
}
|
|
306
304
|
return { success: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appliance.js","sourceRoot":"","sources":["../../../src/commands/appliance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"appliance.js","sourceRoot":"","sources":["../../../src/commands/appliance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAshB1E,eAAO,MAAM,aAAa,EAAE,OAoM3B,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -8,8 +8,11 @@ import { output } from '../output.js';
|
|
|
8
8
|
import { existsSync, readFileSync, statSync } from 'fs';
|
|
9
9
|
import { join, dirname } from 'path';
|
|
10
10
|
import { fileURLToPath } from 'url';
|
|
11
|
+
import { createHash } from 'crypto';
|
|
11
12
|
import { execSync, exec } from 'child_process';
|
|
12
13
|
import { promisify } from 'util';
|
|
14
|
+
import { decodeKey, isEncryptionEnabled } from '../encryption/vault.js';
|
|
15
|
+
import { isEncryptedBlob } from '../encryption/vault.js';
|
|
13
16
|
// Promisified exec with proper shell and env inheritance for cross-platform support
|
|
14
17
|
const execAsync = promisify(exec);
|
|
15
18
|
/**
|
|
@@ -423,6 +426,89 @@ async function checkAgenticFlow() {
|
|
|
423
426
|
return { name: 'agentic-flow', status: 'warn', message: 'Check failed' };
|
|
424
427
|
}
|
|
425
428
|
}
|
|
429
|
+
// Check encryption-at-rest status (ADR-096 Phase 5)
|
|
430
|
+
//
|
|
431
|
+
// Reports four facets without disclosing the key itself:
|
|
432
|
+
// 1. Gate status — is CLAUDE_FLOW_ENCRYPT_AT_REST set?
|
|
433
|
+
// 2. Key resolution — does CLAUDE_FLOW_ENCRYPTION_KEY resolve to a valid
|
|
434
|
+
// 32-byte key (env-var path only; keychain/passphrase are deferred)?
|
|
435
|
+
// 3. Key fingerprint — first 16 hex chars of sha256(key) so users can
|
|
436
|
+
// sanity-check across machines without ever logging the key bytes.
|
|
437
|
+
// 4. High-tier store presence — for sessions/, terminals/, .swarm/memory.db
|
|
438
|
+
// report whether on-disk bytes carry the RFE1 magic (encrypted) or not.
|
|
439
|
+
async function checkEncryptionAtRest() {
|
|
440
|
+
if (!isEncryptionEnabled()) {
|
|
441
|
+
return {
|
|
442
|
+
name: 'Encryption at Rest',
|
|
443
|
+
status: 'warn',
|
|
444
|
+
message: 'Off — session/terminal/memory stores are plaintext (mode 0600 only)',
|
|
445
|
+
fix: 'export CLAUDE_FLOW_ENCRYPT_AT_REST=1 && export CLAUDE_FLOW_ENCRYPTION_KEY=<64-char-hex>',
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
// Gate is on — try to resolve the key. Fail-closed if missing or malformed.
|
|
449
|
+
const rawKey = process.env.CLAUDE_FLOW_ENCRYPTION_KEY;
|
|
450
|
+
if (!rawKey) {
|
|
451
|
+
return {
|
|
452
|
+
name: 'Encryption at Rest',
|
|
453
|
+
status: 'fail',
|
|
454
|
+
message: 'Gate is on but CLAUDE_FLOW_ENCRYPTION_KEY is unset (fail-closed)',
|
|
455
|
+
fix: 'Generate a key: openssl rand -hex 32 → export CLAUDE_FLOW_ENCRYPTION_KEY=<value>',
|
|
456
|
+
};
|
|
457
|
+
}
|
|
458
|
+
let keyFingerprint;
|
|
459
|
+
try {
|
|
460
|
+
const key = decodeKey(rawKey);
|
|
461
|
+
keyFingerprint = createHash('sha256').update(key).digest('hex').slice(0, 16);
|
|
462
|
+
}
|
|
463
|
+
catch (err) {
|
|
464
|
+
return {
|
|
465
|
+
name: 'Encryption at Rest',
|
|
466
|
+
status: 'fail',
|
|
467
|
+
message: `CLAUDE_FLOW_ENCRYPTION_KEY invalid: ${err instanceof Error ? err.message : String(err)}`,
|
|
468
|
+
fix: 'Provide a 64-char hex or 44-char base64 key (32 bytes)',
|
|
469
|
+
};
|
|
470
|
+
}
|
|
471
|
+
// Check the three high-tier store paths for RFE1 magic
|
|
472
|
+
const cwd = process.cwd();
|
|
473
|
+
const stores = [
|
|
474
|
+
{ label: 'sessions/', path: join(cwd, '.claude-flow', 'sessions') },
|
|
475
|
+
{ label: 'terminals', path: join(cwd, '.claude-flow', 'terminals', 'store.json') },
|
|
476
|
+
{ label: 'memory.db', path: join(cwd, '.swarm', 'memory.db') },
|
|
477
|
+
];
|
|
478
|
+
const status = [];
|
|
479
|
+
for (const s of stores) {
|
|
480
|
+
if (!existsSync(s.path)) {
|
|
481
|
+
status.push(`${s.label}=∅`);
|
|
482
|
+
continue;
|
|
483
|
+
}
|
|
484
|
+
try {
|
|
485
|
+
const stat = statSync(s.path);
|
|
486
|
+
if (stat.isDirectory()) {
|
|
487
|
+
// Sessions: probe the first .json file
|
|
488
|
+
const { readdirSync } = await import('fs');
|
|
489
|
+
const files = readdirSync(s.path).filter(f => f.endsWith('.json'));
|
|
490
|
+
if (files.length === 0) {
|
|
491
|
+
status.push(`${s.label}=∅`);
|
|
492
|
+
continue;
|
|
493
|
+
}
|
|
494
|
+
const first = readFileSync(join(s.path, files[0]));
|
|
495
|
+
status.push(`${s.label}=${isEncryptedBlob(first) ? 'enc' : 'plain'}`);
|
|
496
|
+
}
|
|
497
|
+
else {
|
|
498
|
+
const buf = readFileSync(s.path);
|
|
499
|
+
status.push(`${s.label}=${isEncryptedBlob(buf) ? 'enc' : 'plain'}`);
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
catch {
|
|
503
|
+
status.push(`${s.label}=err`);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
return {
|
|
507
|
+
name: 'Encryption at Rest',
|
|
508
|
+
status: 'pass',
|
|
509
|
+
message: `On — key fp:${keyFingerprint}… (${status.join(' ')})`,
|
|
510
|
+
};
|
|
511
|
+
}
|
|
426
512
|
// Format health check result
|
|
427
513
|
function formatCheck(check) {
|
|
428
514
|
const icon = check.status === 'pass' ? output.success('✓') :
|
|
@@ -494,7 +580,8 @@ export const doctorCommand = {
|
|
|
494
580
|
checkMcpServers,
|
|
495
581
|
checkDiskSpace,
|
|
496
582
|
checkBuildTools,
|
|
497
|
-
checkAgenticFlow
|
|
583
|
+
checkAgenticFlow,
|
|
584
|
+
checkEncryptionAtRest, // ADR-096 Phase 5
|
|
498
585
|
];
|
|
499
586
|
const componentMap = {
|
|
500
587
|
'version': checkVersionFreshness,
|
|
@@ -510,7 +597,8 @@ export const doctorCommand = {
|
|
|
510
597
|
'mcp': checkMcpServers,
|
|
511
598
|
'disk': checkDiskSpace,
|
|
512
599
|
'typescript': checkBuildTools,
|
|
513
|
-
'agentic-flow': checkAgenticFlow
|
|
600
|
+
'agentic-flow': checkAgenticFlow,
|
|
601
|
+
'encryption': checkEncryptionAtRest, // ADR-096 Phase 5
|
|
514
602
|
};
|
|
515
603
|
let checksToRun = allChecks;
|
|
516
604
|
if (component && componentMap[component]) {
|