@claude-flow/cli 3.5.68 → 3.5.70

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.
Files changed (57) hide show
  1. package/dist/src/commands/autopilot.js +1 -1
  2. package/dist/src/commands/autopilot.js.map +1 -1
  3. package/dist/src/commands/daemon.js.map +1 -1
  4. package/dist/src/commands/guidance.d.ts.map +1 -1
  5. package/dist/src/commands/guidance.js.map +1 -1
  6. package/dist/src/commands/hooks.d.ts.map +1 -1
  7. package/dist/src/commands/hooks.js +4 -7
  8. package/dist/src/commands/hooks.js.map +1 -1
  9. package/dist/src/commands/init.d.ts.map +1 -1
  10. package/dist/src/commands/init.js +0 -1
  11. package/dist/src/commands/init.js.map +1 -1
  12. package/dist/src/commands/mcp.js.map +1 -1
  13. package/dist/src/commands/neural.d.ts.map +1 -1
  14. package/dist/src/commands/neural.js +33 -10
  15. package/dist/src/commands/neural.js.map +1 -1
  16. package/dist/src/commands/plugins.d.ts.map +1 -1
  17. package/dist/src/commands/plugins.js.map +1 -1
  18. package/dist/src/commands/providers.d.ts.map +1 -1
  19. package/dist/src/commands/providers.js +228 -96
  20. package/dist/src/commands/providers.js.map +1 -1
  21. package/dist/src/commands/security.d.ts.map +1 -1
  22. package/dist/src/commands/security.js +27 -40
  23. package/dist/src/commands/security.js.map +1 -1
  24. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  25. package/dist/src/mcp-tools/agent-tools.js +8 -1
  26. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  27. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
  28. package/dist/src/mcp-tools/config-tools.js +53 -0
  29. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  30. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  31. package/dist/src/mcp-tools/memory-tools.js +10 -2
  32. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  33. package/dist/src/mcp-tools/session-tools.d.ts.map +1 -1
  34. package/dist/src/mcp-tools/session-tools.js +29 -0
  35. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  36. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -1
  37. package/dist/src/mcp-tools/swarm-tools.js +30 -0
  38. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  39. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
  40. package/dist/src/mcp-tools/task-tools.js +33 -0
  41. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  42. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
  43. package/dist/src/mcp-tools/terminal-tools.js +31 -0
  44. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  45. package/dist/src/mcp-tools/validate-input.d.ts +40 -0
  46. package/dist/src/mcp-tools/validate-input.d.ts.map +1 -0
  47. package/dist/src/mcp-tools/validate-input.js +135 -0
  48. package/dist/src/mcp-tools/validate-input.js.map +1 -0
  49. package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -1
  50. package/dist/src/mcp-tools/workflow-tools.js +82 -0
  51. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  52. package/dist/src/memory/intelligence.d.ts +6 -1
  53. package/dist/src/memory/intelligence.d.ts.map +1 -1
  54. package/dist/src/memory/intelligence.js +51 -1
  55. package/dist/src/memory/intelligence.js.map +1 -1
  56. package/dist/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +2 -1
@@ -6,6 +6,91 @@
6
6
  */
7
7
  import { output } from '../output.js';
8
8
  import { configManager } from '../services/config-file-manager.js';
9
+ const PROVIDER_CATALOG = [
10
+ { name: 'Anthropic', type: 'LLM', models: 'claude-3.5-sonnet, opus', envVar: 'ANTHROPIC_API_KEY', configName: 'anthropic' },
11
+ { name: 'OpenAI', type: 'LLM', models: 'gpt-4o, gpt-4-turbo', envVar: 'OPENAI_API_KEY', configName: 'openai' },
12
+ { name: 'OpenAI', type: 'Embedding', models: 'text-embedding-3-small/large', envVar: 'OPENAI_API_KEY', configName: 'openai' },
13
+ { name: 'Google', type: 'LLM', models: 'gemini-pro, gemini-ultra', envVar: 'GOOGLE_API_KEY', configName: 'google' },
14
+ { name: 'Transformers.js', type: 'Embedding', models: 'Xenova/all-MiniLM-L6-v2' },
15
+ { name: 'Agentic Flow', type: 'Embedding', models: 'ONNX optimized' },
16
+ { name: 'Mock', type: 'All', models: 'mock-*' },
17
+ ];
18
+ /**
19
+ * Resolve the API key for a provider by checking the config file first,
20
+ * then falling back to well-known environment variables.
21
+ */
22
+ function resolveApiKey(providerName, configuredProviders) {
23
+ // Check config file entry
24
+ const entry = configuredProviders.find((p) => typeof p.name === 'string' && p.name.toLowerCase() === providerName.toLowerCase());
25
+ if (entry?.apiKey && typeof entry.apiKey === 'string') {
26
+ return entry.apiKey;
27
+ }
28
+ // Check environment variable
29
+ const envMapping = {
30
+ anthropic: 'ANTHROPIC_API_KEY',
31
+ openai: 'OPENAI_API_KEY',
32
+ google: 'GOOGLE_API_KEY',
33
+ };
34
+ const envVar = envMapping[providerName.toLowerCase()];
35
+ if (envVar && process.env[envVar]) {
36
+ return process.env[envVar];
37
+ }
38
+ return undefined;
39
+ }
40
+ /**
41
+ * Make a lightweight HTTP request to verify provider API key validity.
42
+ * Uses a 5-second timeout. Returns { ok, reason }.
43
+ */
44
+ async function testProviderConnectivity(providerName, apiKey) {
45
+ const endpoints = {
46
+ anthropic: {
47
+ url: 'https://api.anthropic.com/v1/models',
48
+ headers: {
49
+ 'x-api-key': apiKey,
50
+ 'anthropic-version': '2023-06-01',
51
+ },
52
+ },
53
+ openai: {
54
+ url: 'https://api.openai.com/v1/models',
55
+ headers: {
56
+ 'Authorization': `Bearer ${apiKey}`,
57
+ },
58
+ },
59
+ google: {
60
+ url: `https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey}`,
61
+ headers: {},
62
+ },
63
+ };
64
+ const endpointConfig = endpoints[providerName.toLowerCase()];
65
+ if (!endpointConfig) {
66
+ return { ok: false, reason: 'No test endpoint available for this provider' };
67
+ }
68
+ try {
69
+ const controller = new AbortController();
70
+ const timeout = setTimeout(() => controller.abort(), 5000);
71
+ const res = await fetch(endpointConfig.url, {
72
+ method: 'GET',
73
+ headers: endpointConfig.headers,
74
+ signal: controller.signal,
75
+ });
76
+ clearTimeout(timeout);
77
+ if (res.ok || res.status === 200) {
78
+ return { ok: true, reason: 'Connected successfully' };
79
+ }
80
+ if (res.status === 401 || res.status === 403) {
81
+ return { ok: false, reason: `Authentication failed (HTTP ${res.status})` };
82
+ }
83
+ // A non-auth error but the server responded — key format may be fine
84
+ return { ok: false, reason: `Unexpected response (HTTP ${res.status})` };
85
+ }
86
+ catch (err) {
87
+ if (err instanceof Error && err.name === 'AbortError') {
88
+ return { ok: false, reason: 'Connection timed out (5s)' };
89
+ }
90
+ const msg = err instanceof Error ? err.message : String(err);
91
+ return { ok: false, reason: `Connection failed: ${msg}` };
92
+ }
93
+ }
9
94
  // List subcommand
10
95
  const listCommand = {
11
96
  name: 'list',
@@ -20,26 +105,88 @@ const listCommand = {
20
105
  ],
21
106
  action: async (ctx) => {
22
107
  const type = ctx.flags.type || 'all';
23
- // Note: Static provider catalog — does not reflect user's configured providers
108
+ const activeOnly = ctx.flags.active;
109
+ // Load user configuration
110
+ const cwd = process.cwd();
111
+ const config = configManager.getConfig(cwd);
112
+ const agents = (config.agents ?? {});
113
+ const configuredProviders = (agents.providers ?? []);
114
+ // Build table rows from the catalog, enriched with configuration status
115
+ const rows = [];
116
+ for (const entry of PROVIDER_CATALOG) {
117
+ // Apply type filter
118
+ if (type !== 'all' && entry.type.toLowerCase() !== type.toLowerCase()) {
119
+ continue;
120
+ }
121
+ let status;
122
+ let keySource = '';
123
+ if (entry.configName) {
124
+ const apiKey = resolveApiKey(entry.configName, configuredProviders);
125
+ if (apiKey) {
126
+ // Determine the source for the key
127
+ const configEntry = configuredProviders.find((p) => typeof p.name === 'string' && p.name.toLowerCase() === entry.configName.toLowerCase());
128
+ if (configEntry?.apiKey && typeof configEntry.apiKey === 'string') {
129
+ keySource = 'config';
130
+ }
131
+ else {
132
+ keySource = 'env';
133
+ }
134
+ status = output.success(`Configured (${keySource})`);
135
+ }
136
+ else {
137
+ status = output.warning('Not configured');
138
+ }
139
+ }
140
+ else if (entry.name === 'Mock') {
141
+ status = output.dim('Dev only');
142
+ }
143
+ else {
144
+ // Local-only providers (Transformers.js, Agentic Flow) — always available
145
+ status = output.success('Available (local)');
146
+ }
147
+ if (activeOnly && !status.includes('Configured') && !status.includes('Available')) {
148
+ continue;
149
+ }
150
+ rows.push({
151
+ provider: entry.name,
152
+ type: entry.type,
153
+ models: entry.models,
154
+ status,
155
+ });
156
+ }
157
+ // Also show any providers in config that are not in the static catalog
158
+ for (const cp of configuredProviders) {
159
+ const cpName = cp.name || '';
160
+ const alreadyListed = PROVIDER_CATALOG.some((e) => e.configName?.toLowerCase() === cpName.toLowerCase() || e.name.toLowerCase() === cpName.toLowerCase());
161
+ if (!alreadyListed && cpName) {
162
+ const hasKey = !!(cp.apiKey || resolveApiKey(cpName, configuredProviders));
163
+ rows.push({
164
+ provider: cpName,
165
+ type: cp.type || 'Custom',
166
+ models: cp.model || output.dim('(not specified)'),
167
+ status: hasKey ? output.success('Configured (config)') : output.warning('Not configured'),
168
+ });
169
+ }
170
+ }
24
171
  output.writeln();
25
- output.writeln(output.bold('Available Providers'));
172
+ output.writeln(output.bold('Providers'));
26
173
  output.writeln(output.dim('─'.repeat(60)));
27
- output.printTable({
28
- columns: [
29
- { key: 'provider', header: 'Provider', width: 18 },
30
- { key: 'type', header: 'Type', width: 12 },
31
- { key: 'models', header: 'Models', width: 25 },
32
- { key: 'status', header: 'Status', width: 12 },
33
- ],
34
- data: [
35
- { provider: 'Anthropic', type: 'LLM', models: 'claude-3.5-sonnet, opus', status: output.success('Active') },
36
- { provider: 'OpenAI', type: 'LLM', models: 'gpt-4o, gpt-4-turbo', status: output.success('Active') },
37
- { provider: 'OpenAI', type: 'Embedding', models: 'text-embedding-3-small/large', status: output.success('Active') },
38
- { provider: 'Transformers.js', type: 'Embedding', models: 'Xenova/all-MiniLM-L6-v2', status: output.success('Active') },
39
- { provider: 'Agentic Flow', type: 'Embedding', models: 'ONNX optimized', status: output.success('Active') },
40
- { provider: 'Mock', type: 'All', models: 'mock-*', status: output.dim('Dev only') },
41
- ],
42
- });
174
+ if (rows.length === 0) {
175
+ output.writeln(output.dim(' No providers match the current filter.'));
176
+ }
177
+ else {
178
+ output.printTable({
179
+ columns: [
180
+ { key: 'provider', header: 'Provider', width: 18 },
181
+ { key: 'type', header: 'Type', width: 12 },
182
+ { key: 'models', header: 'Models', width: 25 },
183
+ { key: 'status', header: 'Status', width: 20 },
184
+ ],
185
+ data: rows,
186
+ });
187
+ }
188
+ output.writeln();
189
+ output.writeln(output.dim('Tip: Use "providers configure -p <name> -k <key>" to set API keys.'));
43
190
  return { success: true };
44
191
  },
45
192
  };
@@ -133,98 +280,83 @@ const testCommand = {
133
280
  const config = configManager.getConfig(cwd);
134
281
  const agents = (config.agents ?? {});
135
282
  const configuredProviders = (agents.providers ?? []);
136
- const getConfigApiKey = (name) => {
137
- const entry = configuredProviders.find((p) => typeof p.name === 'string' && p.name.toLowerCase() === name.toLowerCase());
138
- return entry?.apiKey;
139
- };
140
- const knownChecks = [
141
- {
142
- name: 'Anthropic',
143
- test: async () => {
144
- const key = process.env.ANTHROPIC_API_KEY || getConfigApiKey('anthropic');
145
- if (key)
146
- return { pass: true, reason: 'API key found' };
147
- return { pass: false, reason: 'ANTHROPIC_API_KEY not set and no apiKey in config' };
148
- },
149
- },
150
- {
151
- name: 'OpenAI',
152
- test: async () => {
153
- const key = process.env.OPENAI_API_KEY || getConfigApiKey('openai');
154
- if (key)
155
- return { pass: true, reason: 'API key found' };
156
- return { pass: false, reason: 'OPENAI_API_KEY not set and no apiKey in config' };
157
- },
158
- },
159
- {
160
- name: 'Google',
161
- test: async () => {
162
- const key = process.env.GOOGLE_API_KEY || getConfigApiKey('google');
163
- if (key)
164
- return { pass: true, reason: 'API key found' };
165
- return { pass: false, reason: 'GOOGLE_API_KEY not set and no apiKey in config' };
166
- },
167
- },
168
- {
169
- name: 'Ollama',
170
- test: async () => {
171
- const entry = configuredProviders.find((p) => typeof p.name === 'string' && p.name.toLowerCase() === 'ollama');
172
- const baseUrl = entry?.baseUrl || 'http://localhost:11434';
173
- try {
174
- const controller = new AbortController();
175
- const timeout = setTimeout(() => controller.abort(), 3000);
176
- const res = await fetch(baseUrl, { signal: controller.signal });
177
- clearTimeout(timeout);
178
- if (res.ok)
179
- return { pass: true, reason: `Reachable at ${baseUrl}` };
180
- return { pass: false, reason: `HTTP ${res.status} from ${baseUrl}` };
181
- }
182
- catch {
183
- return { pass: false, reason: `Unreachable at ${baseUrl}` };
184
- }
185
- },
186
- },
283
+ const knownTargets = [
284
+ { name: 'Anthropic', configName: 'anthropic' },
285
+ { name: 'OpenAI', configName: 'openai' },
286
+ { name: 'Google', configName: 'google' },
187
287
  ];
188
- // Filter to requested provider or test all
189
- let checksToRun;
288
+ // Add Ollama as a special case (endpoint-based, no API key)
289
+ const ollamaEntry = configuredProviders.find((p) => typeof p.name === 'string' && p.name.toLowerCase() === 'ollama');
290
+ let targets;
190
291
  if (testAll || !provider) {
191
- checksToRun = knownChecks;
292
+ targets = [...knownTargets];
192
293
  }
193
294
  else {
194
- const match = knownChecks.find((c) => c.name.toLowerCase() === provider.toLowerCase());
195
- if (match) {
196
- checksToRun = [match];
295
+ const match = knownTargets.find((t) => t.name.toLowerCase() === provider.toLowerCase() || t.configName === provider.toLowerCase());
296
+ targets = match ? [match] : [{ name: provider, configName: provider.toLowerCase() }];
297
+ }
298
+ const results = [];
299
+ // Test API-key-based providers with real connectivity checks
300
+ for (const target of targets) {
301
+ const apiKey = resolveApiKey(target.configName, configuredProviders);
302
+ if (!apiKey) {
303
+ results.push({ name: target.name, pass: false, reason: 'Not configured (no API key found)' });
304
+ continue;
197
305
  }
198
- else {
199
- // Unknown provider -- check if it has a config entry with an apiKey
200
- checksToRun = [
201
- {
202
- name: provider,
203
- test: async () => {
204
- const key = getConfigApiKey(provider);
205
- if (key)
206
- return { pass: true, reason: 'API key found in config' };
207
- return { pass: false, reason: 'No API key in environment or config' };
208
- },
209
- },
210
- ];
306
+ output.writeln(output.dim(` Testing ${target.name}...`));
307
+ const result = await testProviderConnectivity(target.name, apiKey);
308
+ results.push({ name: target.name, pass: result.ok, reason: result.reason });
309
+ }
310
+ // Test Ollama separately (endpoint-based, no API key needed)
311
+ if (testAll || !provider || provider.toLowerCase() === 'ollama') {
312
+ const baseUrl = ollamaEntry?.baseUrl || 'http://localhost:11434';
313
+ output.writeln(output.dim(` Testing Ollama at ${baseUrl}...`));
314
+ try {
315
+ const controller = new AbortController();
316
+ const timeout = setTimeout(() => controller.abort(), 5000);
317
+ const res = await fetch(baseUrl, { signal: controller.signal });
318
+ clearTimeout(timeout);
319
+ if (res.ok) {
320
+ results.push({ name: 'Ollama', pass: true, reason: `Connected at ${baseUrl}` });
321
+ }
322
+ else {
323
+ results.push({ name: 'Ollama', pass: false, reason: `HTTP ${res.status} from ${baseUrl}` });
324
+ }
325
+ }
326
+ catch {
327
+ results.push({ name: 'Ollama', pass: false, reason: `Unreachable at ${baseUrl}` });
211
328
  }
212
329
  }
213
- let anyPassed = false;
214
- const results = [];
215
- for (const check of checksToRun) {
216
- const result = await check.test();
217
- results.push({ name: check.name, ...result });
218
- if (result.pass)
219
- anyPassed = true;
330
+ // Also test any custom providers from config that were not in the known list
331
+ if (testAll || !provider) {
332
+ for (const cp of configuredProviders) {
333
+ const cpName = cp.name || '';
334
+ const alreadyTested = results.some((r) => r.name.toLowerCase() === cpName.toLowerCase());
335
+ if (alreadyTested || !cpName)
336
+ continue;
337
+ const apiKey = resolveApiKey(cpName, configuredProviders);
338
+ if (!apiKey) {
339
+ results.push({ name: cpName, pass: false, reason: 'No API key found' });
340
+ }
341
+ else {
342
+ // For custom providers we can only verify the key exists
343
+ results.push({ name: cpName, pass: true, reason: 'API key found (no test endpoint available)' });
344
+ }
345
+ }
220
346
  }
347
+ let anyPassed = false;
221
348
  output.writeln();
222
349
  for (const r of results) {
223
350
  const icon = r.pass ? output.success('PASS') : output.error('FAIL');
224
351
  output.writeln(` ${icon} ${r.name}: ${r.reason}`);
352
+ if (r.pass)
353
+ anyPassed = true;
225
354
  }
226
355
  output.writeln();
227
- if (anyPassed) {
356
+ if (results.length === 0) {
357
+ output.writeln(output.warning('No providers to test. Use "providers configure" to add providers.'));
358
+ }
359
+ else if (anyPassed) {
228
360
  output.writeln(output.success(`${results.filter((r) => r.pass).length}/${results.length} provider(s) passed.`));
229
361
  }
230
362
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/commands/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/commands/providers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/commands/security.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AAomB1E,eAAO,MAAM,eAAe,EAAE,OA6B7B,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/commands/security.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,aAAa,CAAC;AA2lB1E,eAAO,MAAM,eAAe,EAAE,OA6B7B,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -53,7 +53,7 @@ const scanCommand = {
53
53
  }
54
54
  catch (auditErr) {
55
55
  // npm audit exits non-zero when vulnerabilities found — stdout still has JSON
56
- auditResult = auditErr.stdout || '{}';
56
+ auditResult = (auditErr instanceof Error && 'stdout' in auditErr ? auditErr.stdout : undefined) || '{}';
57
57
  }
58
58
  try {
59
59
  const audit = JSON.parse(auditResult);
@@ -260,38 +260,20 @@ const cveCommand = {
260
260
  output.writeln();
261
261
  output.writeln(output.bold('CVE Database'));
262
262
  output.writeln(output.dim('─'.repeat(50)));
263
+ output.writeln(output.warning('⚠ No CVE database configured.'));
264
+ output.writeln(output.dim('This command requires a CVE data source (e.g., NVD API) which is not yet integrated.'));
265
+ output.writeln();
263
266
  if (checkCve) {
264
- output.printBox([
265
- `CVE ID: ${checkCve}`,
266
- `Severity: CRITICAL (9.8)`,
267
- `Status: Active`,
268
- ``,
269
- `Description: Remote code execution vulnerability`,
270
- `Affected: lodash < 4.17.21`,
271
- `Fix: Upgrade to lodash >= 4.17.21`,
272
- ``,
273
- `References:`,
274
- ` - https://nvd.nist.gov/vuln/detail/${checkCve}`,
275
- ` - https://github.com/advisories`,
276
- ].join('\n'), 'CVE Details');
267
+ output.writeln(`To look up ${output.bold(checkCve)}, use one of these real sources:`);
277
268
  }
278
269
  else {
279
- output.writeln(output.warning(' No real CVE database configured. Showing example data.'));
280
- output.writeln(output.dim('Run "npm audit" or "claude-flow security scan" for real vulnerability detection.'));
281
- output.writeln();
282
- output.printTable({
283
- columns: [
284
- { key: 'id', header: 'CVE ID (Example)', width: 22 },
285
- { key: 'severity', header: 'Severity', width: 12 },
286
- { key: 'package', header: 'Package', width: 20 },
287
- { key: 'status', header: 'Status', width: 15 },
288
- ],
289
- data: [
290
- { id: 'CVE-YYYY-NNNN', severity: output.error('CRITICAL'), package: 'example-pkg@1.0.0', status: output.warning('Example') },
291
- { id: 'CVE-YYYY-NNNN', severity: output.warning('HIGH'), package: 'example-pkg@2.0.0', status: output.success('Example') },
292
- { id: 'CVE-YYYY-NNNN', severity: output.info('MEDIUM'), package: 'example-pkg@3.0.0', status: output.success('Example') },
293
- ],
294
- });
270
+ output.writeln('To check for real vulnerabilities, use:');
271
+ }
272
+ output.writeln();
273
+ output.writeln(` ${output.dim('$')} npm audit ${output.dim('# dependency vulnerabilities')}`);
274
+ output.writeln(` ${output.dim('$')} claude-flow security scan ${output.dim('# real code + dependency scan')}`);
275
+ if (checkCve) {
276
+ output.writeln(` ${output.dim('$')} open https://nvd.nist.gov/vuln/detail/${checkCve} ${output.dim('# NVD lookup')}`);
295
277
  }
296
278
  return { success: true };
297
279
  },
@@ -314,22 +296,27 @@ const threatsCommand = {
314
296
  output.writeln();
315
297
  output.writeln(output.bold(`Threat Model: ${model.toUpperCase()}`));
316
298
  output.writeln(output.dim('─'.repeat(50)));
299
+ output.writeln(output.warning('⚠ Automated threat modeling is not yet implemented.'));
300
+ output.writeln(output.dim('The table below is a STRIDE reference template, not an analysis of your code.'));
301
+ output.writeln();
317
302
  output.printTable({
318
303
  columns: [
319
- { key: 'category', header: 'Category', width: 20 },
320
- { key: 'threat', header: 'Threat', width: 30 },
321
- { key: 'risk', header: 'Risk', width: 10 },
322
- { key: 'mitigation', header: 'Mitigation', width: 30 },
304
+ { key: 'category', header: `${model.toUpperCase()} Category`, width: 20 },
305
+ { key: 'description', header: 'What to Assess', width: 40 },
306
+ { key: 'example', header: 'Example Mitigation', width: 30 },
323
307
  ],
324
308
  data: [
325
- { category: 'Spoofing', threat: 'API key theft', risk: output.error('High'), mitigation: 'Use secure key storage' },
326
- { category: 'Tampering', threat: 'Data manipulation', risk: output.warning('Medium'), mitigation: 'Input validation' },
327
- { category: 'Repudiation', threat: 'Action denial', risk: output.info('Low'), mitigation: 'Audit logging' },
328
- { category: 'Info Disclosure', threat: 'Data leakage', risk: output.error('High'), mitigation: 'Encryption at rest' },
329
- { category: 'DoS', threat: 'Resource exhaustion', risk: output.warning('Medium'), mitigation: 'Rate limiting' },
330
- { category: 'Elevation', threat: 'Privilege escalation', risk: output.error('High'), mitigation: 'RBAC implementation' },
309
+ { category: 'Spoofing', description: 'Can an attacker impersonate a user or service?', example: 'Strong authentication, mTLS' },
310
+ { category: 'Tampering', description: 'Can data or code be modified without detection?', example: 'Input validation, integrity checks' },
311
+ { category: 'Repudiation', description: 'Can actions be performed without accountability?', example: 'Audit logging, signed commits' },
312
+ { category: 'Info Disclosure', description: 'Can sensitive data leak to unauthorized parties?', example: 'Encryption at rest and in transit' },
313
+ { category: 'DoS', description: 'Can service availability be degraded?', example: 'Rate limiting, resource quotas' },
314
+ { category: 'Elevation', description: 'Can privileges be escalated beyond granted level?', example: 'RBAC, principle of least privilege' },
331
315
  ],
332
316
  });
317
+ output.writeln();
318
+ output.writeln(output.dim('For real threat modeling, review your architecture manually using this framework.'));
319
+ output.writeln(output.dim('Run "claude-flow security scan" for automated vulnerability detection.'));
333
320
  return { success: true };
334
321
  },
335
322
  };