claude-flow 3.56.8 → 3.56.9

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 (24) hide show
  1. package/.claude/helpers/hook-handler.cjs +109 -23
  2. package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.d.ts +1 -0
  3. package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.d.ts.map +1 -1
  4. package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js +3 -1
  5. package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js.map +1 -1
  6. package/node_modules/@claude-flow/codex/dist/index.d.ts +3 -3
  7. package/node_modules/@claude-flow/codex/dist/index.js +1 -1
  8. package/node_modules/@claude-flow/codex/package.json +1 -1
  9. package/node_modules/@claude-flow/security/dist/policy/envelope.js +6 -6
  10. package/node_modules/@claude-flow/security/dist/policy/envelope.js.map +1 -1
  11. package/node_modules/@claude-flow/security/package.json +1 -1
  12. package/package.json +5 -5
  13. package/v3/@claude-flow/cli/dist/src/commands/analyze.js +40 -29
  14. package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +109 -23
  15. package/v3/@claude-flow/cli/dist/src/parser.js +32 -22
  16. package/v3/@claude-flow/cli/dist/src/production/monitoring.d.ts +1 -0
  17. package/v3/@claude-flow/cli/dist/src/production/monitoring.js +19 -6
  18. package/v3/@claude-flow/cli/dist/src/production/rate-limiter.js +5 -4
  19. package/v3/@claude-flow/cli/dist/src/production/retry.js +3 -0
  20. package/v3/@claude-flow/cli/dist/src/services/config-file-manager.js +3 -3
  21. package/v3/@claude-flow/cli/package.json +5 -5
  22. package/v3/@claude-flow/shared/dist/resilience/rate-limiter.js +3 -3
  23. package/v3/@claude-flow/shared/dist/resilience/retry.js +3 -1
  24. package/v3/@claude-flow/shared/package.json +1 -1
@@ -682,7 +682,8 @@ const handlers = {
682
682
  const dangerous = ['rm -rf /', 'format c:', 'del /s /q c:\\', ':(){:|:&};:'];
683
683
  // Join literal quote fragments and normalize root paths without shell evaluation.
684
684
  function hasRootDelete(command, depth = 0) {
685
- let word = '', quote = '', started = false, redirect = false
685
+ // mask has one letter per character of word: 'u' unquoted, 'q' quoted or escaped (only unquoted braces expand).
686
+ let word = '', mask = '', quote = '', started = false, redirect = false
686
687
  let ansiNul = false // a NUL inside $'...' ends that string, as in bash
687
688
  let inRm = false, optionsEnded = false, recursive = false, force = false, root = false
688
689
  const isRoot = (operand) => {
@@ -712,23 +713,92 @@ const handlers = {
712
713
  if (c === 'c' && at + 1 < s.length) return [String.fromCharCode(s.charCodeAt(at + 1) & 31), at + 1]
713
714
  return ['\\' + c, at]
714
715
  }
715
- const finishWord = () => {
716
- if (!started) return false
717
- // Literal shell strings (e.g. sh -c 'rm -rf /') also carried the old guard.
718
- // Bound rescanning to four levels; beyond that retain its conservative check.
719
- if (/[\s;&|()\x60]/.test(word)) {
720
- if (depth < 4 ? hasRootDelete(word, depth + 1) : word.includes('rm -rf /')) return true
716
+ // Past the rescan bound (or the brace budget), a string is judged by its tokens: an rm and a possible root operand
717
+ // anywhere in it deny. Quote characters are dropped first, so r"m" is still rm; a path token with braces may expand to /.
718
+ const looseRootDelete = (text) => {
719
+ const tokens = text.replace(/["'\\]/g, '').split(/[\s;&|()\x60$]+/)
720
+ return tokens.some(t => t === 'rm' || t.endsWith('/rm')) && tokens.some(t => isRoot(t) || (t.includes('/') && /[{}]/.test(t)))
721
+ }
722
+ // Bash brace expansion of one word ({a,b} lists, nested or glued to text), and nothing else: no {1..3} sequences, and
723
+ // nothing inside parameter braces after a dollar sign. Only unquoted braces and commas count. Iterative and bounded:
724
+ // past BRACE_WORDS words or BRACE_CHARS characters of work in this call it returns undefined.
725
+ const BRACE_WORDS = 4096
726
+ let braceChars = 1_000_000
727
+ // The leftmost expandable group: an unquoted {...} with an unquoted comma at its own level, outside any dollar-brace parameter. One pass.
728
+ const firstGroup = (text, marks) => {
729
+ const stack = []
730
+ let dollars = 0
731
+ let best
732
+ for (let k = 0; k < text.length; k++) {
733
+ if (marks[k] !== 'u') continue
734
+ const c = text[k]
735
+ if (c === '{') {
736
+ const dollar = k > 0 && text[k - 1] === '$' && marks[k - 1] === 'u'
737
+ if (dollar) dollars++
738
+ stack.push({ open: k, commas: [], dollar: dollar || dollars > 0 })
739
+ } else if (c === ',' && stack.length > 0) stack[stack.length - 1].commas.push(k)
740
+ else if (c === '}' && stack.length > 0) {
741
+ const top = stack.pop()
742
+ if (top.dollar && text[top.open - 1] === '$' && marks[top.open - 1] === 'u') dollars--
743
+ if (!top.dollar && top.commas.length > 0 && (best === undefined || top.open < best[0])) best = [top.open, top.commas, k]
744
+ }
745
+ }
746
+ return best
747
+ }
748
+ const braceExpand = (text, marks) => {
749
+ const out = []
750
+ const todo = [[text, marks]]
751
+ while (todo.length > 0) {
752
+ const [t, m] = todo.pop()
753
+ if ((braceChars -= t.length) < 0) return undefined
754
+ const group = firstGroup(t, m)
755
+ if (group === undefined) {
756
+ out.push(t)
757
+ if (out.length > BRACE_WORDS) return undefined
758
+ continue
759
+ }
760
+ const [open, commas, close] = group
761
+ const cuts = [open, ...commas, close]
762
+ // Pushed in reverse, so the words come out in bash's left-to-right order.
763
+ for (let c = cuts.length - 2; c >= 0; c--) {
764
+ const from = cuts[c] + 1, to = cuts[c + 1]
765
+ todo.push([t.slice(0, open) + t.slice(from, to) + t.slice(close + 1), m.slice(0, open) + m.slice(from, to) + m.slice(close + 1)])
766
+ }
767
+ if (todo.length > BRACE_WORDS) return undefined
721
768
  }
722
- if (!inRm) inRm = word === 'rm' || word.endsWith('/rm')
723
- else if (!optionsEnded && word === '--') optionsEnded = true
724
- else if (!optionsEnded && word.startsWith('-')) {
769
+ return out
770
+ }
771
+ const takeWord = (w) => {
772
+ if (!inRm) inRm = w === 'rm' || w.endsWith('/rm')
773
+ else if (!optionsEnded && w === '--') optionsEnded = true
774
+ else if (!optionsEnded && w.startsWith('-')) {
725
775
  // GNU getopt accepts any unambiguous long-option prefix: --r, --recur, --forc.
726
- recursive = recursive || (word.length > 2 && '--recursive'.startsWith(word)) || /^-[a-z]*r[a-z]*$/.test(word)
727
- force = force || (word.length > 2 && '--force'.startsWith(word)) || /^-[a-z]*f[a-z]*$/.test(word)
728
- } else root = root || isRoot(word)
729
- word = ''; started = false
776
+ recursive = recursive || (w.length > 2 && '--recursive'.startsWith(w)) || (/^-[a-z]*$/.test(w) && w.includes('r'))
777
+ force = force || (w.length > 2 && '--force'.startsWith(w)) || (/^-[a-z]*$/.test(w) && w.includes('f'))
778
+ } else root = root || isRoot(w)
730
779
  return inRm && recursive && force && root
731
780
  }
781
+ const finishWord = () => {
782
+ if (!started) return false
783
+ const text = word, marks = mask
784
+ word = ''; mask = ''; started = false
785
+ // Literal shell strings (e.g. sh -c 'rm -rf /', or sh -c '{rm,-rf,/}') also carried the old guard.
786
+ // Bound rescanning to four levels; beyond that judge the string by its tokens.
787
+ if (/[\s;&|()\x60{]/.test(text)) {
788
+ if (depth < 4 ? hasRootDelete(text, depth + 1) : looseRootDelete(text)) return true
789
+ }
790
+ // An unquoted {a,b} becomes separate words, as bash expands it: rm -rf {/*,} is rm -rf /*.
791
+ const words = text.includes('{') ? braceExpand(text, marks) : [text]
792
+ if (words === undefined) {
793
+ // Too many alternatives to check: one of them may be the root (an rm in progress fails closed), or the
794
+ // list itself may spell the rm: judge its tokens.
795
+ if (inRm) root = true
796
+ if (looseRootDelete(text.replace(/[{},]/g, ' '))) return true
797
+ return takeWord(text)
798
+ }
799
+ for (const w of words) if (w !== '' && takeWord(w)) return true
800
+ return false
801
+ }
732
802
  // A command substitution's body, from just after its opening backtick. Bash removes a
733
803
  // backslash only before $, a backtick or a backslash (and " inside double quotes) and
734
804
  // drops backslash-newline; any other backslash stays for the nested scan.
@@ -742,7 +812,7 @@ const handlers = {
742
812
  }
743
813
  body += command[j]
744
814
  }
745
- return [j, depth < 4 ? hasRootDelete(body, depth + 1) : body.includes('rm -rf /')]
815
+ return [j, depth < 4 ? hasRootDelete(body, depth + 1) : looseRootDelete(body)]
746
816
  }
747
817
  const finishCommand = () => {
748
818
  const denied = inRm && recursive && force && root
@@ -759,8 +829,8 @@ const handlers = {
759
829
  else if (char === '\\' && i + 1 < command.length) {
760
830
  const [text, last] = ansiEscape(command, i + 1)
761
831
  i = last
762
- if (!ansiNul) { const nul = text.indexOf('\0'); if (nul < 0) word += text; else { word += text.slice(0, nul); ansiNul = true } }
763
- } else if (!ansiNul) word += char
832
+ if (!ansiNul) { const nul = text.indexOf('\0'); const kept = nul < 0 ? text : text.slice(0, nul); word += kept; mask += 'q'.repeat(kept.length); if (nul >= 0) ansiNul = true }
833
+ } else if (!ansiNul) { word += char; mask += 'q' }
764
834
  continue
765
835
  }
766
836
  if (char === quote) quote = ''
@@ -770,20 +840,20 @@ const handlers = {
770
840
  // The substitution is gone from the word, as bash's empty output is (a quoted empty substitution glued to -rf leaves -rf).
771
841
  // A # right after it is still inside the word: a placeholder keeps a rescan (sh -c "...")
772
842
  // from reading it as the start of a comment.
773
- if (command[end + 1] === '#') word += '\u0001'
843
+ if (command[end + 1] === '#') { word += '\u0001'; mask += 'q' }
774
844
  i = end
775
845
  }
776
846
  else if (quote === '"' && char === '\\' && i + 1 < command.length &&
777
847
  (command[i + 1] === '"' || command[i + 1] === '\\' || command[i + 1] === '$' ||
778
848
  command.charCodeAt(i + 1) === 96 || command[i + 1] === '\n')) {
779
849
  const next = command[++i]
780
- if (next !== '\n') word += next
781
- } else word += char
850
+ if (next !== '\n') { word += next; mask += 'q' }
851
+ } else { word += char; mask += 'q' }
782
852
  continue
783
853
  }
784
854
  if (char === '\\' && i + 1 < command.length) {
785
855
  const next = command[++i]
786
- if (next !== '\n') { word += next; started = true }
856
+ if (next !== '\n') { word += next; mask += 'q'; started = true }
787
857
  } else if (char === '\x60' && command.indexOf('\x60', i + 1) > i) {
788
858
  // Command substitution: scan the body as its own command; the substitution
789
859
  // stays inside the enclosing word, so the rm being parsed keeps its state,
@@ -806,13 +876,29 @@ const handlers = {
806
876
  redirect = char === '<' || char === '>'
807
877
  if (!redirectionAmpersand && (char === '\n' || ';|&()'.includes(char)) && finishCommand()) return true
808
878
  } else {
809
- word += char; started = true
879
+ word += char; mask += 'u'; started = true
810
880
  }
811
881
  }
812
882
  return finishWord() || finishCommand()
813
883
  }
884
+
885
+ // A fork bomb's definition as bash reads it, whatever the spacing or the name: f(){ f|f& }, function f { f|f& },
886
+ // function f(){ f|f& }. Defining one is the danger: the call may come anywhere later.
887
+ function hasForkBomb(command) {
888
+ const s = command.replace(/\s+/g, '')
889
+ for (let brace = s.indexOf('{'); brace >= 0; brace = s.indexOf('{', brace + 1)) {
890
+ const end = s.startsWith('()', brace - 2) ? brace - 2 : brace
891
+ let start = end
892
+ while (start > 0 && end - start < 72 && /[a-z0-9_:.-]/.test(s[start - 1])) start--
893
+ const run = s.slice(start, end)
894
+ for (const name of run.startsWith('function') && run.length > 8 ? [run, run.slice(8)] : [run]) {
895
+ if (name && s.startsWith(name + '|' + name + '&}', brace + 1)) return true
896
+ }
897
+ }
898
+ return false
899
+ }
814
900
  for (const d of dangerous) {
815
- if (d === 'rm -rf /' ? hasRootDelete(cmd) : cmd.includes(d)) {
901
+ if (d === 'rm -rf /' ? hasRootDelete(cmd) : d === ':(){:|:&};:' ? hasForkBomb(cmd) : cmd.includes(d)) {
816
902
  console.error(`[BLOCKED] Dangerous command detected: ${d}`);
817
903
  // Claude Code PreToolUse: exit 2 blocks execution; exit 1 is non-blocking.
818
904
  process.exit(2);
@@ -7,6 +7,7 @@ export interface WorkerCapabilityEnvelope {
7
7
  actions?: string[];
8
8
  resources?: string[];
9
9
  tools?: string[];
10
+ /** Opt-in per-tool ceiling: requires a trusted concurrency meter at dispatch. */
10
11
  maxConcurrency?: number;
11
12
  network?: boolean;
12
13
  destructive?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/dual-mode/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/dual-mode/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -434,7 +434,9 @@ Remember: Other agents depend on your results in shared memory. Be concise and s
434
434
  actions: ['*'],
435
435
  resources: ['*'],
436
436
  tools: ['*'],
437
- maxConcurrency: 1,
437
+ // MCP dispatch does not yet supply a worker-wide concurrency meter.
438
+ // Leave this dimension unconstrained unless the caller opts in; the
439
+ // scheduler still bounds worker processes with config.maxConcurrent.
438
440
  network: false,
439
441
  destructive: false,
440
442
  delegationDepth: 0,
@@ -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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"}
@@ -25,13 +25,13 @@ export { getTemplate, listTemplates, BUILT_IN_SKILLS, TEMPLATES, DEFAULT_SKILLS_
25
25
  /**
26
26
  * Package version
27
27
  */
28
- export declare const VERSION = "3.0.4";
28
+ export declare const VERSION = "3.0.5";
29
29
  /**
30
30
  * Package metadata
31
31
  */
32
32
  export declare const PACKAGE_INFO: {
33
33
  readonly name: "@claude-flow/codex";
34
- readonly version: "3.0.4";
34
+ readonly version: "3.0.5";
35
35
  readonly description: "Codex CLI integration for Claude Flow";
36
36
  readonly futureUmbrella: "coflow";
37
37
  readonly repository: "https://github.com/ruvnet/ruflo";
@@ -43,7 +43,7 @@ declare const _default: {
43
43
  VERSION: string;
44
44
  PACKAGE_INFO: {
45
45
  readonly name: "@claude-flow/codex";
46
- readonly version: "3.0.4";
46
+ readonly version: "3.0.5";
47
47
  readonly description: "Codex CLI integration for Claude Flow";
48
48
  readonly futureUmbrella: "coflow";
49
49
  readonly repository: "https://github.com/ruvnet/ruflo";
@@ -33,7 +33,7 @@ export { getTemplate, listTemplates, BUILT_IN_SKILLS, TEMPLATES, DEFAULT_SKILLS_
33
33
  /**
34
34
  * Package version
35
35
  */
36
- export const VERSION = '3.0.4';
36
+ export const VERSION = '3.0.5';
37
37
  /**
38
38
  * Package metadata
39
39
  */
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/codex",
3
- "version": "3.0.4",
3
+ "version": "3.0.5",
4
4
  "description": "Codex CLI integration for Ruflo (claude-flow) - OpenAI Codex platform adapter",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -33,14 +33,14 @@ export function checkCapabilityEnvelope(action, envelope, now = Date.now()) {
33
33
  : envelope.writeNamespaces;
34
34
  checks.push([matches(namespaces, action.namespace), 'namespace-outside-envelope']);
35
35
  }
36
- if (action.costUsd !== undefined && envelope.maxCostUsd !== undefined) {
37
- checks.push([action.costUsd <= envelope.maxCostUsd, 'cost-outside-envelope']);
36
+ if (envelope.maxCostUsd !== undefined) {
37
+ checks.push([action.costUsd !== undefined && action.costUsd <= envelope.maxCostUsd, 'cost-outside-envelope']);
38
38
  }
39
- if (action.tokens !== undefined && envelope.maxTokens !== undefined) {
40
- checks.push([action.tokens <= envelope.maxTokens, 'tokens-outside-envelope']);
39
+ if (envelope.maxTokens !== undefined) {
40
+ checks.push([action.tokens !== undefined && action.tokens <= envelope.maxTokens, 'tokens-outside-envelope']);
41
41
  }
42
- if (action.concurrency !== undefined && envelope.maxConcurrency !== undefined) {
43
- checks.push([action.concurrency <= envelope.maxConcurrency, 'concurrency-outside-envelope']);
42
+ if (envelope.maxConcurrency !== undefined) {
43
+ checks.push([action.concurrency !== undefined && action.concurrency <= envelope.maxConcurrency, 'concurrency-outside-envelope']);
44
44
  }
45
45
  if (action.network === true)
46
46
  checks.push([envelope.network === true, 'network-outside-envelope']);
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/policy/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/policy/envelope.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/security",
3
- "version": "3.0.4",
3
+ "version": "3.0.5",
4
4
  "type": "module",
5
5
  "description": "Security module - CVE fixes, input validation, path security",
6
6
  "main": "dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-flow",
3
- "version": "3.56.8",
3
+ "version": "3.56.9",
4
4
  "workspaces": [
5
5
  "v3/@claude-flow/codex",
6
6
  "v3/@claude-flow/mcp",
@@ -68,13 +68,13 @@
68
68
  "v3:security": "npm run security:audit && npm run security:test"
69
69
  },
70
70
  "dependencies": {
71
- "@claude-flow/cli-core": "3.7.1",
72
- "@claude-flow/codex": "3.0.4",
71
+ "@claude-flow/cli-core": "3.7.2",
72
+ "@claude-flow/codex": "3.0.5",
73
73
  "@claude-flow/mcp": "3.1.1",
74
74
  "@claude-flow/neural": "3.0.0",
75
75
  "@claude-flow/plugin-agent-federation": "1.0.1",
76
- "@claude-flow/security": "3.0.4",
77
- "@claude-flow/shared": "3.0.4",
76
+ "@claude-flow/security": "3.0.5",
77
+ "@claude-flow/shared": "3.0.5",
78
78
  "@iarna/toml": "^2.2.5",
79
79
  "@noble/ed25519": "2.3.0",
80
80
  "@ruvector/rabitq-wasm": "0.1.0",
@@ -97,11 +97,19 @@ const diffCommand = {
97
97
  output.printInfo(`Analyzing diff: ${output.highlight(ref)}`);
98
98
  try {
99
99
  // Call MCP tool for diff analysis
100
+ // Shape returned by the analyze_diff MCP tool (ruvector/diff-classifier.ts).
101
+ // Typed from the classifier itself so the renderer cannot drift from it again.
100
102
  const result = await callMCPTool('analyze_diff', {
101
103
  ref,
102
- includeFileRisks: verbose,
104
+ // Always request file risks: the handler computes them anyway, and the
105
+ // high-risk file list below is derived from them.
106
+ includeFileRisks: true,
103
107
  includeReviewers: showReviewers || showAll,
104
108
  });
109
+ if (result.error) {
110
+ output.printError(`Diff analysis failed: ${result.message ?? 'unknown error'}`);
111
+ return { success: false, exitCode: 1 };
112
+ }
105
113
  // JSON output
106
114
  if (formatType === 'json') {
107
115
  output.printJson(result);
@@ -110,13 +118,18 @@ const diffCommand = {
110
118
  output.writeln();
111
119
  // Summary box
112
120
  const files = result.files || [];
113
- const risk = result.risk || { overall: 'unknown', score: 0, breakdown: { fileCount: 0, totalChanges: 0, highRiskFiles: [], securityConcerns: [], breakingChanges: [], testCoverage: 'unknown' } };
114
- const classification = result.classification || { category: 'unknown', confidence: 0, reasoning: '' };
121
+ const fileRisks = result.fileRisks || [];
122
+ const risk = result.risk || { overall: 'low', score: 0, breakdown: { low: 0, medium: 0, high: 0, critical: 0 } };
123
+ const classification = result.classification;
124
+ const category = classification?.primary ?? 'unknown';
125
+ const secondary = classification?.secondary?.length ? classification.secondary.join(', ') : '';
126
+ const totalChanges = files.reduce((sum, f) => sum + f.additions + f.deletions, 0);
127
+ const highRiskFiles = fileRisks.filter((r) => r.risk === 'high' || r.risk === 'critical').map((r) => r.file);
115
128
  output.printBox([
116
129
  `Ref: ${result.ref || 'HEAD'}`,
117
130
  `Files: ${files.length}`,
118
131
  `Risk: ${getRiskDisplay(risk.overall)} (${risk.score}/100)`,
119
- `Type: ${classification.category}${classification.subcategory ? ` (${classification.subcategory})` : ''}`,
132
+ `Type: ${category}${secondary ? ` (${secondary})` : ''}`,
120
133
  ``,
121
134
  result.summary || 'No summary available',
122
135
  ].join('\n'), 'Diff Analysis');
@@ -128,33 +141,28 @@ const diffCommand = {
128
141
  output.printTable({
129
142
  columns: [
130
143
  { key: 'metric', header: 'Metric', width: 25 },
131
- { key: 'value', header: 'Value', width: 30 },
144
+ { key: 'value', header: 'Value', width: 42 },
132
145
  ],
133
146
  data: [
134
147
  { metric: 'Overall Risk', value: getRiskDisplay(risk.overall) },
135
148
  { metric: 'Risk Score', value: `${risk.score}/100` },
136
- { metric: 'Files Changed', value: risk.breakdown.fileCount },
137
- { metric: 'Total Lines Changed', value: risk.breakdown.totalChanges },
138
- { metric: 'Test Coverage', value: risk.breakdown.testCoverage },
149
+ { metric: 'Files Changed', value: files.length },
150
+ { metric: 'Total Lines Changed', value: totalChanges },
151
+ { metric: 'Files by Risk', value: `low ${risk.breakdown.low} / medium ${risk.breakdown.medium} / high ${risk.breakdown.high} / critical ${risk.breakdown.critical}` },
139
152
  ],
140
153
  });
141
- // Security concerns
142
- if (risk.breakdown.securityConcerns.length > 0) {
143
- output.writeln();
144
- output.writeln(output.bold(output.warning('Security Concerns')));
145
- output.printList(risk.breakdown.securityConcerns.map(c => output.warning(c)));
146
- }
147
- // Breaking changes
148
- if (risk.breakdown.breakingChanges.length > 0) {
154
+ // Risk factors reported by the classifier
155
+ const riskFactors = classification?.riskFactors ?? [];
156
+ if (riskFactors.length > 0) {
149
157
  output.writeln();
150
- output.writeln(output.bold(output.error('Potential Breaking Changes')));
151
- output.printList(risk.breakdown.breakingChanges.map(c => output.error(c)));
158
+ output.writeln(output.bold(output.warning('Risk Factors')));
159
+ output.printList(riskFactors.map(c => output.warning(c)));
152
160
  }
153
161
  // High risk files
154
- if (risk.breakdown.highRiskFiles.length > 0) {
162
+ if (highRiskFiles.length > 0) {
155
163
  output.writeln();
156
164
  output.writeln(output.bold('High Risk Files'));
157
- output.printList(risk.breakdown.highRiskFiles.map(f => output.warning(f)));
165
+ output.printList(highRiskFiles.map(f => output.warning(f)));
158
166
  }
159
167
  }
160
168
  // Classification
@@ -168,13 +176,16 @@ const diffCommand = {
168
176
  { key: 'value', header: 'Value', width: 40 },
169
177
  ],
170
178
  data: [
171
- { field: 'Category', value: classification.category },
172
- { field: 'Subcategory', value: classification.subcategory || '-' },
173
- { field: 'Confidence', value: `${(classification.confidence * 100).toFixed(0)}%` },
179
+ { field: 'Category', value: category },
180
+ { field: 'Secondary', value: secondary || '-' },
181
+ { field: 'Confidence', value: `${((classification?.confidence ?? 0) * 100).toFixed(0)}%` },
182
+ { field: 'Impact', value: classification?.impactLevel ?? '-' },
174
183
  ],
175
184
  });
176
- output.writeln();
177
- output.writeln(output.dim(`Reasoning: ${classification.reasoning}`));
185
+ if (classification?.testingStrategy?.length) {
186
+ output.writeln();
187
+ output.writeln(output.dim(`Testing strategy: ${classification.testingStrategy.join(', ')}`));
188
+ }
178
189
  }
179
190
  // Reviewers
180
191
  if (showReviewers || showAll) {
@@ -190,13 +201,13 @@ const diffCommand = {
190
201
  }
191
202
  }
192
203
  // Verbose file-level details
193
- if (verbose && result.fileRisks) {
204
+ if (verbose && fileRisks.length > 0) {
194
205
  output.writeln();
195
206
  output.writeln(output.bold('File-Level Analysis'));
196
207
  output.writeln(output.dim('-'.repeat(50)));
197
208
  output.printTable({
198
209
  columns: [
199
- { key: 'path', header: 'File', width: 40 },
210
+ { key: 'file', header: 'File', width: 40 },
200
211
  { key: 'risk', header: 'Risk', width: 12, format: (v) => getRiskDisplay(String(v)) },
201
212
  { key: 'score', header: 'Score', width: 8, align: 'right' },
202
213
  { key: 'reasons', header: 'Reasons', width: 30, format: (v) => {
@@ -204,7 +215,7 @@ const diffCommand = {
204
215
  return reasons.slice(0, 2).join('; ');
205
216
  } },
206
217
  ],
207
- data: result.fileRisks,
218
+ data: fileRisks.map((r) => ({ ...r })),
208
219
  });
209
220
  }
210
221
  // Files changed table
@@ -219,7 +230,7 @@ const diffCommand = {
219
230
  { key: 'additions', header: '+', width: 8, align: 'right', format: (v) => output.success(`+${v}`) },
220
231
  { key: 'deletions', header: '-', width: 8, align: 'right', format: (v) => output.error(`-${v}`) },
221
232
  ],
222
- data: files.slice(0, 20),
233
+ data: files.slice(0, 20).map((f) => ({ ...f })),
223
234
  });
224
235
  if (files.length > 20) {
225
236
  output.writeln(output.dim(` ... and ${files.length - 20} more files`));
@@ -478,7 +478,8 @@ module.exports = commands;
478
478
  }
479
479
  // Literal-word root guard mirrored in the mod and both shipped classic helpers.
480
480
  const ROOT_DELETE_CHECK_SOURCE = String.raw `function hasRootDelete(command, depth = 0) {
481
- let word = '', quote = '', started = false, redirect = false
481
+ // mask has one letter per character of word: 'u' unquoted, 'q' quoted or escaped (only unquoted braces expand).
482
+ let word = '', mask = '', quote = '', started = false, redirect = false
482
483
  let ansiNul = false // a NUL inside $'...' ends that string, as in bash
483
484
  let inRm = false, optionsEnded = false, recursive = false, force = false, root = false
484
485
  const isRoot = (operand) => {
@@ -508,23 +509,92 @@ const ROOT_DELETE_CHECK_SOURCE = String.raw `function hasRootDelete(command, dep
508
509
  if (c === 'c' && at + 1 < s.length) return [String.fromCharCode(s.charCodeAt(at + 1) & 31), at + 1]
509
510
  return ['\\' + c, at]
510
511
  }
511
- const finishWord = () => {
512
- if (!started) return false
513
- // Literal shell strings (e.g. sh -c 'rm -rf /') also carried the old guard.
514
- // Bound rescanning to four levels; beyond that retain its conservative check.
515
- if (/[\s;&|()\x60]/.test(word)) {
516
- if (depth < 4 ? hasRootDelete(word, depth + 1) : word.includes('rm -rf /')) return true
512
+ // Past the rescan bound (or the brace budget), a string is judged by its tokens: an rm and a possible root operand
513
+ // anywhere in it deny. Quote characters are dropped first, so r"m" is still rm; a path token with braces may expand to /.
514
+ const looseRootDelete = (text) => {
515
+ const tokens = text.replace(/["'\\]/g, '').split(/[\s;&|()\x60$]+/)
516
+ return tokens.some(t => t === 'rm' || t.endsWith('/rm')) && tokens.some(t => isRoot(t) || (t.includes('/') && /[{}]/.test(t)))
517
+ }
518
+ // Bash brace expansion of one word ({a,b} lists, nested or glued to text), and nothing else: no {1..3} sequences, and
519
+ // nothing inside parameter braces after a dollar sign. Only unquoted braces and commas count. Iterative and bounded:
520
+ // past BRACE_WORDS words or BRACE_CHARS characters of work in this call it returns undefined.
521
+ const BRACE_WORDS = 4096
522
+ let braceChars = 1_000_000
523
+ // The leftmost expandable group: an unquoted {...} with an unquoted comma at its own level, outside any dollar-brace parameter. One pass.
524
+ const firstGroup = (text, marks) => {
525
+ const stack = []
526
+ let dollars = 0
527
+ let best
528
+ for (let k = 0; k < text.length; k++) {
529
+ if (marks[k] !== 'u') continue
530
+ const c = text[k]
531
+ if (c === '{') {
532
+ const dollar = k > 0 && text[k - 1] === '$' && marks[k - 1] === 'u'
533
+ if (dollar) dollars++
534
+ stack.push({ open: k, commas: [], dollar: dollar || dollars > 0 })
535
+ } else if (c === ',' && stack.length > 0) stack[stack.length - 1].commas.push(k)
536
+ else if (c === '}' && stack.length > 0) {
537
+ const top = stack.pop()
538
+ if (top.dollar && text[top.open - 1] === '$' && marks[top.open - 1] === 'u') dollars--
539
+ if (!top.dollar && top.commas.length > 0 && (best === undefined || top.open < best[0])) best = [top.open, top.commas, k]
540
+ }
541
+ }
542
+ return best
543
+ }
544
+ const braceExpand = (text, marks) => {
545
+ const out = []
546
+ const todo = [[text, marks]]
547
+ while (todo.length > 0) {
548
+ const [t, m] = todo.pop()
549
+ if ((braceChars -= t.length) < 0) return undefined
550
+ const group = firstGroup(t, m)
551
+ if (group === undefined) {
552
+ out.push(t)
553
+ if (out.length > BRACE_WORDS) return undefined
554
+ continue
555
+ }
556
+ const [open, commas, close] = group
557
+ const cuts = [open, ...commas, close]
558
+ // Pushed in reverse, so the words come out in bash's left-to-right order.
559
+ for (let c = cuts.length - 2; c >= 0; c--) {
560
+ const from = cuts[c] + 1, to = cuts[c + 1]
561
+ todo.push([t.slice(0, open) + t.slice(from, to) + t.slice(close + 1), m.slice(0, open) + m.slice(from, to) + m.slice(close + 1)])
562
+ }
563
+ if (todo.length > BRACE_WORDS) return undefined
517
564
  }
518
- if (!inRm) inRm = word === 'rm' || word.endsWith('/rm')
519
- else if (!optionsEnded && word === '--') optionsEnded = true
520
- else if (!optionsEnded && word.startsWith('-')) {
565
+ return out
566
+ }
567
+ const takeWord = (w) => {
568
+ if (!inRm) inRm = w === 'rm' || w.endsWith('/rm')
569
+ else if (!optionsEnded && w === '--') optionsEnded = true
570
+ else if (!optionsEnded && w.startsWith('-')) {
521
571
  // GNU getopt accepts any unambiguous long-option prefix: --r, --recur, --forc.
522
- recursive = recursive || (word.length > 2 && '--recursive'.startsWith(word)) || /^-[a-z]*r[a-z]*$/.test(word)
523
- force = force || (word.length > 2 && '--force'.startsWith(word)) || /^-[a-z]*f[a-z]*$/.test(word)
524
- } else root = root || isRoot(word)
525
- word = ''; started = false
572
+ recursive = recursive || (w.length > 2 && '--recursive'.startsWith(w)) || (/^-[a-z]*$/.test(w) && w.includes('r'))
573
+ force = force || (w.length > 2 && '--force'.startsWith(w)) || (/^-[a-z]*$/.test(w) && w.includes('f'))
574
+ } else root = root || isRoot(w)
526
575
  return inRm && recursive && force && root
527
576
  }
577
+ const finishWord = () => {
578
+ if (!started) return false
579
+ const text = word, marks = mask
580
+ word = ''; mask = ''; started = false
581
+ // Literal shell strings (e.g. sh -c 'rm -rf /', or sh -c '{rm,-rf,/}') also carried the old guard.
582
+ // Bound rescanning to four levels; beyond that judge the string by its tokens.
583
+ if (/[\s;&|()\x60{]/.test(text)) {
584
+ if (depth < 4 ? hasRootDelete(text, depth + 1) : looseRootDelete(text)) return true
585
+ }
586
+ // An unquoted {a,b} becomes separate words, as bash expands it: rm -rf {/*,} is rm -rf /*.
587
+ const words = text.includes('{') ? braceExpand(text, marks) : [text]
588
+ if (words === undefined) {
589
+ // Too many alternatives to check: one of them may be the root (an rm in progress fails closed), or the
590
+ // list itself may spell the rm: judge its tokens.
591
+ if (inRm) root = true
592
+ if (looseRootDelete(text.replace(/[{},]/g, ' '))) return true
593
+ return takeWord(text)
594
+ }
595
+ for (const w of words) if (w !== '' && takeWord(w)) return true
596
+ return false
597
+ }
528
598
  // A command substitution's body, from just after its opening backtick. Bash removes a
529
599
  // backslash only before $, a backtick or a backslash (and " inside double quotes) and
530
600
  // drops backslash-newline; any other backslash stays for the nested scan.
@@ -538,7 +608,7 @@ const ROOT_DELETE_CHECK_SOURCE = String.raw `function hasRootDelete(command, dep
538
608
  }
539
609
  body += command[j]
540
610
  }
541
- return [j, depth < 4 ? hasRootDelete(body, depth + 1) : body.includes('rm -rf /')]
611
+ return [j, depth < 4 ? hasRootDelete(body, depth + 1) : looseRootDelete(body)]
542
612
  }
543
613
  const finishCommand = () => {
544
614
  const denied = inRm && recursive && force && root
@@ -555,8 +625,8 @@ const ROOT_DELETE_CHECK_SOURCE = String.raw `function hasRootDelete(command, dep
555
625
  else if (char === '\\' && i + 1 < command.length) {
556
626
  const [text, last] = ansiEscape(command, i + 1)
557
627
  i = last
558
- if (!ansiNul) { const nul = text.indexOf('\0'); if (nul < 0) word += text; else { word += text.slice(0, nul); ansiNul = true } }
559
- } else if (!ansiNul) word += char
628
+ if (!ansiNul) { const nul = text.indexOf('\0'); const kept = nul < 0 ? text : text.slice(0, nul); word += kept; mask += 'q'.repeat(kept.length); if (nul >= 0) ansiNul = true }
629
+ } else if (!ansiNul) { word += char; mask += 'q' }
560
630
  continue
561
631
  }
562
632
  if (char === quote) quote = ''
@@ -566,20 +636,20 @@ const ROOT_DELETE_CHECK_SOURCE = String.raw `function hasRootDelete(command, dep
566
636
  // The substitution is gone from the word, as bash's empty output is (a quoted empty substitution glued to -rf leaves -rf).
567
637
  // A # right after it is still inside the word: a placeholder keeps a rescan (sh -c "...")
568
638
  // from reading it as the start of a comment.
569
- if (command[end + 1] === '#') word += '\u0001'
639
+ if (command[end + 1] === '#') { word += '\u0001'; mask += 'q' }
570
640
  i = end
571
641
  }
572
642
  else if (quote === '"' && char === '\\' && i + 1 < command.length &&
573
643
  (command[i + 1] === '"' || command[i + 1] === '\\' || command[i + 1] === '$' ||
574
644
  command.charCodeAt(i + 1) === 96 || command[i + 1] === '\n')) {
575
645
  const next = command[++i]
576
- if (next !== '\n') word += next
577
- } else word += char
646
+ if (next !== '\n') { word += next; mask += 'q' }
647
+ } else { word += char; mask += 'q' }
578
648
  continue
579
649
  }
580
650
  if (char === '\\' && i + 1 < command.length) {
581
651
  const next = command[++i]
582
- if (next !== '\n') { word += next; started = true }
652
+ if (next !== '\n') { word += next; mask += 'q'; started = true }
583
653
  } else if (char === '\x60' && command.indexOf('\x60', i + 1) > i) {
584
654
  // Command substitution: scan the body as its own command; the substitution
585
655
  // stays inside the enclosing word, so the rm being parsed keeps its state,
@@ -602,10 +672,26 @@ const ROOT_DELETE_CHECK_SOURCE = String.raw `function hasRootDelete(command, dep
602
672
  redirect = char === '<' || char === '>'
603
673
  if (!redirectionAmpersand && (char === '\n' || ';|&()'.includes(char)) && finishCommand()) return true
604
674
  } else {
605
- word += char; started = true
675
+ word += char; mask += 'u'; started = true
606
676
  }
607
677
  }
608
678
  return finishWord() || finishCommand()
679
+ }
680
+
681
+ // A fork bomb's definition as bash reads it, whatever the spacing or the name: f(){ f|f& }, function f { f|f& },
682
+ // function f(){ f|f& }. Defining one is the danger: the call may come anywhere later.
683
+ function hasForkBomb(command) {
684
+ const s = command.replace(/\s+/g, '')
685
+ for (let brace = s.indexOf('{'); brace >= 0; brace = s.indexOf('{', brace + 1)) {
686
+ const end = s.startsWith('()', brace - 2) ? brace - 2 : brace
687
+ let start = end
688
+ while (start > 0 && end - start < 72 && /[a-z0-9_:.-]/.test(s[start - 1])) start--
689
+ const run = s.slice(start, end)
690
+ for (const name of run.startsWith('function') && run.length > 8 ? [run, run.slice(8)] : [run]) {
691
+ if (name && s.startsWith(name + '|' + name + '&}', brace + 1)) return true
692
+ }
693
+ }
694
+ return false
609
695
  }`;
610
696
  /**
611
697
  * Generate hook-handler.cjs (cross-platform hook dispatcher)
@@ -816,7 +902,7 @@ export function generateHookHandler() {
816
902
  " var dangerous = ['rm -rf /', 'format c:', 'del /s /q c:\\\\', ':(){:|:&};:'];",
817
903
  ROOT_DELETE_CHECK_SOURCE.split('\n').map((line) => ' ' + line).join('\n'),
818
904
  ' for (var i = 0; i < dangerous.length; i++) {',
819
- " if (dangerous[i] === 'rm -rf /' ? hasRootDelete(cmd) : cmd.includes(dangerous[i])) {",
905
+ " if (dangerous[i] === 'rm -rf /' ? hasRootDelete(cmd) : dangerous[i] === ':(){:|:&};:' ? hasForkBomb(cmd) : cmd.includes(dangerous[i])) {",
820
906
  " console.error('[BLOCKED] Dangerous command detected: ' + dangerous[i]);",
821
907
  ' // Claude Code PreToolUse: exit 2 blocks execution; exit 1 is non-blocking.',
822
908
  ' process.exit(2);',
@@ -134,7 +134,6 @@ export class CommandParser {
134
134
  // command, because that's what caused `daemon start` to resolve as `start`
135
135
  // with `daemon` left as a positional.
136
136
  let resolvedCmd;
137
- let resolvedSub;
138
137
  const resolvedCommands = [];
139
138
  let sawFirstPositional = false;
140
139
  for (let index = 0; index < args.length; index++) {
@@ -173,16 +172,16 @@ export class CommandParser {
173
172
  const child = parent.subcommands.find(sc => sc.name === arg || sc.aliases?.includes(arg));
174
173
  if (child) {
175
174
  resolvedCommands.push(child);
176
- resolvedSub ??= child;
177
175
  continue;
178
176
  }
179
177
  }
180
178
  // A positional that is not the next subcommand ends the command path.
181
179
  break;
182
180
  }
183
- const { aliases, booleanFlags, stringFlags } = this.getFlagScope(resolvedCommands);
181
+ const { aliases, booleanFlags, stringFlags, arrayFlags } = this.getFlagScope(resolvedCommands);
184
182
  let i = 0;
185
183
  let parsingFlags = true;
184
+ let commandSlotAvailable = true;
186
185
  while (i < args.length) {
187
186
  const arg = args[i];
188
187
  // Check for end of flags marker
@@ -194,8 +193,17 @@ export class CommandParser {
194
193
  // Handle flags
195
194
  if (parsingFlags && arg.startsWith('-')) {
196
195
  const parseResult = this.parseFlag(args, i, aliases, booleanFlags, stringFlags);
196
+ // Array declarations retain text and accumulate repeated occurrences.
197
+ for (const key of arrayFlags) {
198
+ const value = parseResult.flags[key];
199
+ if (value !== undefined && value !== true && value !== false) {
200
+ const previous = result.flags[key];
201
+ parseResult.flags[key] = [...(Array.isArray(previous) ? previous : []), String(value)];
202
+ }
203
+ }
197
204
  // Apply to result flags
198
- Object.assign(result.flags, parseResult.flags);
205
+ const { _: ignoredPositionals, ...parsedFlags } = parseResult.flags;
206
+ Object.assign(result.flags, parsedFlags);
199
207
  i = parseResult.nextIndex;
200
208
  continue;
201
209
  }
@@ -203,7 +211,9 @@ export class CommandParser {
203
211
  // Fix for #1596: treat lazy command names as commands here too so that
204
212
  // downstream dispatch sees `commandPath = ['daemon', 'start']` instead of
205
213
  // `commandPath = ['start'], positional = ['daemon']`.
206
- if (result.command.length === 0 && this.isKnownCommandName(arg)) {
214
+ const isCommandSlot = commandSlotAvailable && parsingFlags;
215
+ commandSlotAvailable = false;
216
+ if (isCommandSlot && this.isKnownCommandName(arg)) {
207
217
  // This is a command
208
218
  result.command.push(arg);
209
219
  // Check for subcommand (level 1) — only possible for sync commands
@@ -248,7 +258,7 @@ export class CommandParser {
248
258
  // `default: true` silently dropped and reached the action handler as
249
259
  // `undefined`. That trapped `memory store --upsert` and every other
250
260
  // subcommand that leaned on a per-flag default.
251
- this.applyDefaults(result.flags, resolvedCmd, resolvedSub);
261
+ this.applyDefaults(result.flags, resolvedCommands);
252
262
  return result;
253
263
  }
254
264
  parseFlag(args, index, aliases, booleanFlags, stringFlags) {
@@ -472,11 +482,18 @@ export class CommandParser {
472
482
  aliases[option.short] = option.name;
473
483
  }
474
484
  }
485
+ const arrayFlags = new Set((this.options.arrayFlags ?? []).map(flag => this.normalizeKey(flag)));
486
+ for (const flag of arrayFlags)
487
+ stringFlags.add(flag);
475
488
  const layers = [this.globalOptions, ...commands.map(command => command.options ?? [])];
476
489
  for (const options of layers) {
477
490
  for (const option of options) {
478
491
  const key = this.normalizeKey(option.name);
479
- if (option.type === 'string')
492
+ if (option.type === 'array')
493
+ arrayFlags.add(key);
494
+ else if (option.type)
495
+ arrayFlags.delete(key);
496
+ if (option.type === 'string' || option.type === 'array')
480
497
  stringFlags.add(key);
481
498
  else if (option.type)
482
499
  stringFlags.delete(key);
@@ -488,7 +505,7 @@ export class CommandParser {
488
505
  }
489
506
  for (const flag of stringFlags)
490
507
  booleanFlags.delete(flag);
491
- return { aliases, booleanFlags, stringFlags };
508
+ return { aliases, booleanFlags, stringFlags, arrayFlags };
492
509
  }
493
510
  getBooleanFlags() {
494
511
  const flags = new Set();
@@ -526,23 +543,16 @@ export class CommandParser {
526
543
  }
527
544
  return flags;
528
545
  }
529
- applyDefaults(flags, command, subcommand) {
530
- // #2775: apply defaults from globals AND the resolved command/subcommand.
531
- // Subcommand > command > global (later writes lose to earlier — because
532
- // we only set when `undefined`, so the FIRST option definition that
533
- // supplies a default wins; walk narrow-to-broad so subcommand options
534
- // apply before broader ones do).
535
- const layers = [];
536
- if (subcommand?.options)
537
- layers.push(subcommand.options);
538
- if (command?.options)
539
- layers.push(command.options);
546
+ applyDefaults(flags, commands) {
547
+ // Walk every resolved command from narrow to broad so nested defaults
548
+ // have the same precedence as their declared flag types.
549
+ const layers = [...commands].reverse().map(command => command.options ?? []);
540
550
  layers.push(this.globalOptions);
541
551
  for (const layer of layers) {
542
552
  for (const opt of layer) {
543
553
  const key = this.normalizeKey(opt.name);
544
554
  if (flags[key] === undefined && opt.default !== undefined) {
545
- flags[key] = opt.default;
555
+ flags[key] = (Array.isArray(opt.default) ? [...opt.default] : opt.default);
546
556
  }
547
557
  }
548
558
  }
@@ -551,7 +561,7 @@ export class CommandParser {
551
561
  for (const [key, value] of Object.entries(this.options.defaults)) {
552
562
  const normalizedKey = this.normalizeKey(key);
553
563
  if (flags[normalizedKey] === undefined) {
554
- flags[normalizedKey] = value;
564
+ flags[normalizedKey] = (Array.isArray(value) ? [...value] : value);
555
565
  }
556
566
  }
557
567
  }
@@ -572,7 +582,7 @@ export class CommandParser {
572
582
  // followed by another flag) is parsed as boolean `true`. Commands then treat `true` as
573
583
  // the value: `hooks route --task` crashed with "task.trim is not a function" and
574
584
  // `memory retrieve --key` looked up the key "true". Report it instead.
575
- if ((opt.type === 'string' || opt.type === 'number') && flags[key] === true) {
585
+ if ((opt.type === 'string' || opt.type === 'number' || opt.type === 'array') && flags[key] === true) {
576
586
  errors.push(`Option --${opt.name} needs a value`);
577
587
  }
578
588
  // Check choices
@@ -71,6 +71,7 @@ export declare class MonitoringHooks {
71
71
  private healthStatus;
72
72
  private startTime;
73
73
  private activeRequests;
74
+ private requestGeneration;
74
75
  private requestCount;
75
76
  private errorCount;
76
77
  private healthChecks;
@@ -37,6 +37,7 @@ export class MonitoringHooks {
37
37
  healthStatus;
38
38
  startTime = Date.now();
39
39
  activeRequests = 0;
40
+ requestGeneration = 0;
40
41
  requestCount = 0;
41
42
  errorCount = 0;
42
43
  healthChecks = new Map();
@@ -101,9 +102,14 @@ export class MonitoringHooks {
101
102
  this.activeRequests++;
102
103
  this.requestCount++;
103
104
  const startTime = Date.now();
105
+ const generation = this.requestGeneration;
106
+ let completed = false;
104
107
  this.counter('request_started', 1, { requestId });
105
108
  // Return end function
106
109
  return () => {
110
+ if (completed || generation !== this.requestGeneration)
111
+ return;
112
+ completed = true;
107
113
  this.activeRequests--;
108
114
  const duration = Date.now() - startTime;
109
115
  this.responseTimes.push(duration);
@@ -156,7 +162,7 @@ export class MonitoringHooks {
156
162
  catch (error) {
157
163
  checks[name] = {
158
164
  status: 'unhealthy',
159
- message: error.message,
165
+ message: error instanceof Error ? error.message : String(error),
160
166
  lastCheck: Date.now(),
161
167
  responseTimeMs: Date.now() - startTime,
162
168
  };
@@ -168,13 +174,13 @@ export class MonitoringHooks {
168
174
  checks,
169
175
  timestamp: Date.now(),
170
176
  };
171
- return this.healthStatus;
177
+ return structuredClone(this.healthStatus);
172
178
  }
173
179
  /**
174
180
  * Get current health status
175
181
  */
176
182
  getHealthStatus() {
177
- return this.healthStatus;
183
+ return structuredClone(this.healthStatus);
178
184
  }
179
185
  // ============================================================================
180
186
  // Performance Metrics
@@ -217,7 +223,7 @@ export class MonitoringHooks {
217
223
  if (level) {
218
224
  filtered = filtered.filter(a => a.level === level);
219
225
  }
220
- return filtered;
226
+ return filtered.map(alert => ({ ...alert }));
221
227
  }
222
228
  /**
223
229
  * Acknowledge an alert
@@ -248,7 +254,7 @@ export class MonitoringHooks {
248
254
  if (since) {
249
255
  filtered = filtered.filter(m => m.timestamp >= since);
250
256
  }
251
- return filtered;
257
+ return filtered.map(metric => ({ ...metric, labels: { ...metric.labels } }));
252
258
  }
253
259
  /**
254
260
  * Get all metrics summary
@@ -278,6 +284,7 @@ export class MonitoringHooks {
278
284
  * Reset all metrics
279
285
  */
280
286
  reset() {
287
+ this.requestGeneration++;
281
288
  this.metrics = [];
282
289
  this.responseTimes = [];
283
290
  this.alerts = [];
@@ -308,7 +315,13 @@ export class MonitoringHooks {
308
315
  const recentAlert = this.alerts.find(a => a.metric === name &&
309
316
  !a.acknowledged &&
310
317
  Date.now() - a.timestamp < 60000);
311
- if (!recentAlert) {
318
+ if (recentAlert && level === 'critical' && recentAlert.level !== 'critical') {
319
+ Object.assign(recentAlert, {
320
+ level, value, threshold, timestamp: Date.now(),
321
+ message: `${name} exceeded ${level} threshold: ${value} >= ${threshold}`,
322
+ });
323
+ }
324
+ else if (!recentAlert) {
312
325
  this.alerts.push({
313
326
  id: `alert_${Date.now()}_${Math.random().toString(36).substring(7)}`,
314
327
  level,
@@ -90,6 +90,7 @@ export class RateLimiter {
90
90
  */
91
91
  getStatus(operation, userId) {
92
92
  const limits = this.getLimits(operation);
93
+ const capacity = Math.floor(limits.maxRequests * this.config.burstMultiplier);
93
94
  const bucketKey = userId && this.config.perUserLimits
94
95
  ? `${operation}:${userId}`
95
96
  : `global:${operation}`;
@@ -98,8 +99,8 @@ export class RateLimiter {
98
99
  if (!bucket) {
99
100
  return {
100
101
  current: 0,
101
- limit: limits.maxRequests,
102
- remaining: limits.maxRequests,
102
+ limit: capacity,
103
+ remaining: capacity,
103
104
  resetAt: now + limits.windowMs,
104
105
  };
105
106
  }
@@ -107,8 +108,8 @@ export class RateLimiter {
107
108
  const validRequests = bucket.requests.filter(t => t > now - limits.windowMs);
108
109
  return {
109
110
  current: validRequests.length,
110
- limit: limits.maxRequests,
111
- remaining: Math.max(0, limits.maxRequests - validRequests.length),
111
+ limit: capacity,
112
+ remaining: Math.max(0, capacity - validRequests.length),
112
113
  resetAt: validRequests.length > 0
113
114
  ? validRequests[0] + limits.windowMs
114
115
  : now + limits.windowMs,
@@ -74,6 +74,9 @@ function fibonacci(n) {
74
74
  * Check if an error should be retried
75
75
  */
76
76
  function shouldRetryError(error, attempt, config) {
77
+ // Exhaustion always takes precedence over custom retry policies.
78
+ if (attempt >= config.maxAttempts)
79
+ return false;
77
80
  // Check custom retry function
78
81
  if (config.shouldRetry) {
79
82
  return config.shouldRetry(error, attempt);
@@ -123,16 +123,16 @@ export class ConfigFileManager {
123
123
  this.selectProject(cwd);
124
124
  // A targeted update must not persist unrelated defaults (notably the
125
125
  // default memory path, which would relocate an existing memory store).
126
- const config = this.config ?? this.load(cwd) ?? {};
126
+ const config = structuredClone(this.config ?? this.load(cwd) ?? {});
127
127
  if (Object.hasOwn(config, key)) {
128
128
  config[key] = value;
129
129
  }
130
130
  else {
131
131
  setNestedValue(config, key, value);
132
132
  }
133
- this.config = config;
134
133
  const targetPath = this.configPath ?? path.resolve(cwd, CONFIG_FILENAMES[0]);
135
134
  this.writeAtomic(targetPath, config);
135
+ this.config = config;
136
136
  this.configPath = targetPath;
137
137
  }
138
138
  /** Create a new config file with defaults */
@@ -271,7 +271,7 @@ export function parseConfigValue(value) {
271
271
  return parseFloat(value);
272
272
  try {
273
273
  const parsed = JSON.parse(value);
274
- if (typeof parsed === 'object')
274
+ if (typeof parsed === 'object' || (typeof parsed === 'number' && Number.isFinite(parsed)))
275
275
  return parsed;
276
276
  }
277
277
  catch { /* not JSON, use as string */ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/cli",
3
- "version": "3.56.8",
3
+ "version": "3.56.9",
4
4
  "type": "module",
5
5
  "description": "Ruflo CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
6
6
  "main": "dist/src/index.js",
@@ -98,13 +98,13 @@
98
98
  "vitest": "^4.1.0"
99
99
  },
100
100
  "dependencies": {
101
- "@claude-flow/cli-core": "3.7.1",
102
- "@claude-flow/codex": "3.0.4",
101
+ "@claude-flow/cli-core": "3.7.2",
102
+ "@claude-flow/codex": "3.0.5",
103
103
  "@claude-flow/mcp": "3.1.1",
104
104
  "@claude-flow/neural": "3.0.0",
105
105
  "@claude-flow/plugin-agent-federation": "1.0.1",
106
- "@claude-flow/security": "3.0.4",
107
- "@claude-flow/shared": "3.0.4",
106
+ "@claude-flow/security": "3.0.5",
107
+ "@claude-flow/shared": "3.0.5",
108
108
  "@iarna/toml": "^2.2.5",
109
109
  "@noble/ed25519": "2.3.0",
110
110
  "@ruvector/rabitq-wasm": "0.1.0",
@@ -120,7 +120,7 @@ export class SlidingWindowRateLimiter {
120
120
  if (!entries)
121
121
  return;
122
122
  const cutoff = Date.now() - this.options.windowMs;
123
- const filtered = entries.filter((e) => e.timestamp >= cutoff);
123
+ const filtered = entries.filter((e) => e.timestamp > cutoff);
124
124
  if (filtered.length === 0) {
125
125
  this.requests.delete(key);
126
126
  }
@@ -190,7 +190,7 @@ export class TokenBucketRateLimiter {
190
190
  allowed: bucket.tokens >= 1,
191
191
  remaining: Math.floor(bucket.tokens),
192
192
  resetAt: new Date(bucket.lastRefill + this.options.windowMs),
193
- retryAfter: bucket.tokens >= 1 ? 0 : this.options.windowMs,
193
+ retryAfter: bucket.tokens >= 1 ? 0 : Math.max(0, bucket.lastRefill + this.options.windowMs - Date.now()),
194
194
  total: this.options.maxRequests,
195
195
  used: this.options.maxRequests - Math.floor(bucket.tokens),
196
196
  };
@@ -206,7 +206,7 @@ export class TokenBucketRateLimiter {
206
206
  allowed: false,
207
207
  remaining: 0,
208
208
  resetAt: new Date(bucket.lastRefill + this.options.windowMs),
209
- retryAfter: this.options.windowMs,
209
+ retryAfter: Math.max(0, bucket.lastRefill + this.options.windowMs - Date.now()),
210
210
  total: this.options.maxRequests,
211
211
  used: this.options.maxRequests,
212
212
  };
@@ -144,7 +144,9 @@ export const RetryableErrors = {
144
144
  /** Network errors (ECONNRESET, ETIMEDOUT, etc.) */
145
145
  network: (error) => {
146
146
  const networkCodes = ['ECONNRESET', 'ETIMEDOUT', 'ECONNREFUSED', 'ENOTFOUND', 'EAI_AGAIN'];
147
- return networkCodes.some((code) => error.message.includes(code));
147
+ const code = error.code;
148
+ return (typeof code === 'string' && networkCodes.includes(code)) ||
149
+ networkCodes.some((code) => error.message.includes(code));
148
150
  },
149
151
  /** Rate limit errors (429) */
150
152
  rateLimit: (error) => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claude-flow/shared",
3
- "version": "3.0.4",
3
+ "version": "3.0.5",
4
4
  "type": "module",
5
5
  "description": "Shared module - common types, events, utilities, core interfaces",
6
6
  "main": "dist/index.js",