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.
- package/.claude/helpers/hook-handler.cjs +109 -23
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.d.ts +1 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.d.ts.map +1 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js +3 -1
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js.map +1 -1
- package/node_modules/@claude-flow/codex/dist/index.d.ts +3 -3
- package/node_modules/@claude-flow/codex/dist/index.js +1 -1
- package/node_modules/@claude-flow/codex/package.json +1 -1
- package/node_modules/@claude-flow/security/dist/policy/envelope.js +6 -6
- package/node_modules/@claude-flow/security/dist/policy/envelope.js.map +1 -1
- package/node_modules/@claude-flow/security/package.json +1 -1
- package/package.json +5 -5
- package/v3/@claude-flow/cli/dist/src/commands/analyze.js +40 -29
- package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +109 -23
- package/v3/@claude-flow/cli/dist/src/parser.js +32 -22
- package/v3/@claude-flow/cli/dist/src/production/monitoring.d.ts +1 -0
- package/v3/@claude-flow/cli/dist/src/production/monitoring.js +19 -6
- package/v3/@claude-flow/cli/dist/src/production/rate-limiter.js +5 -4
- package/v3/@claude-flow/cli/dist/src/production/retry.js +3 -0
- package/v3/@claude-flow/cli/dist/src/services/config-file-manager.js +3 -3
- package/v3/@claude-flow/cli/package.json +5 -5
- package/v3/@claude-flow/shared/dist/resilience/rate-limiter.js +3 -3
- package/v3/@claude-flow/shared/dist/resilience/retry.js +3 -1
- 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
|
-
|
|
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
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
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
|
-
|
|
723
|
-
|
|
724
|
-
|
|
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 || (
|
|
727
|
-
force = force || (
|
|
728
|
-
} else root = root || isRoot(
|
|
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
|
|
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');
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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,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 (
|
|
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 (
|
|
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 (
|
|
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":"AAOA,SAAS,OAAO,CAAC,QAAuC,EAAE,KAAyB;IACjF,IAAI,CAAC,QAAQ,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAChC,OAAO,KAAK,GAAG;WACZ,OAAO,KAAK,KAAK;WACjB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACrE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,MAAM,CAAC,KAAoC,EAAE,MAAqC;IACzF,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAoB,EACpB,QAAwC,EACxC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAEhB,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;IACnE,CAAC;IACD,MAAM,MAAM,GAA6B;QACvC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,yBAAyB,CAAC;QACnE,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,2BAA2B,CAAC;QAC3E,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,uBAAuB,CAAC;QAC/D,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC;QACrE,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,8BAA8B,CAAC;KACrF,CAAC;IACF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC7C,CAAC,CAAC,QAAQ,CAAC,cAAc;YACzB,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,4BAA4B,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/policy/envelope.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-flow",
|
|
3
|
-
"version": "3.56.
|
|
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.
|
|
72
|
-
"@claude-flow/codex": "3.0.
|
|
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.
|
|
77
|
-
"@claude-flow/shared": "3.0.
|
|
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
|
-
|
|
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
|
|
114
|
-
const
|
|
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: ${
|
|
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:
|
|
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:
|
|
137
|
-
{ metric: 'Total Lines Changed', value:
|
|
138
|
-
{ metric: '
|
|
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
|
-
//
|
|
142
|
-
|
|
143
|
-
|
|
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.
|
|
151
|
-
output.printList(
|
|
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 (
|
|
162
|
+
if (highRiskFiles.length > 0) {
|
|
155
163
|
output.writeln();
|
|
156
164
|
output.writeln(output.bold('High Risk Files'));
|
|
157
|
-
output.printList(
|
|
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:
|
|
172
|
-
{ field: '
|
|
173
|
-
{ field: 'Confidence', value: `${(classification
|
|
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
|
-
|
|
177
|
-
|
|
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 &&
|
|
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: '
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
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
|
-
|
|
519
|
-
|
|
520
|
-
|
|
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 || (
|
|
523
|
-
force = force || (
|
|
524
|
-
} else root = root || isRoot(
|
|
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
|
|
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');
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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 === '
|
|
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,
|
|
530
|
-
//
|
|
531
|
-
//
|
|
532
|
-
|
|
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
|
|
@@ -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 (
|
|
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:
|
|
102
|
-
remaining:
|
|
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:
|
|
111
|
-
remaining: Math.max(0,
|
|
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.
|
|
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.
|
|
102
|
-
"@claude-flow/codex": "3.0.
|
|
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.
|
|
107
|
-
"@claude-flow/shared": "3.0.
|
|
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
|
|
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
|
-
|
|
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) => {
|