claude-flow-novice 2.18.30 → 2.18.32
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.
|
@@ -6,7 +6,7 @@ allowed-tools: ["Task", "TaskOutput", "TodoWrite", "Read", "Bash"]
|
|
|
6
6
|
|
|
7
7
|
# CFN Fix Errors - Agent Coordination Mode
|
|
8
8
|
|
|
9
|
-
**Version:** 1.
|
|
9
|
+
**Version:** 1.2.0 | **Date:** 2025-12-21 | **Status:** Production Ready
|
|
10
10
|
|
|
11
11
|
## Quick Overview
|
|
12
12
|
|
|
@@ -58,16 +58,56 @@ echo "Session ID: $SESSION_ID | Language: $LANGUAGE | Max Parallel: $MAX_PARALLE
|
|
|
58
58
|
**For Rust:**
|
|
59
59
|
```bash
|
|
60
60
|
cd [PROJECT_ROOT]
|
|
61
|
-
|
|
61
|
+
# Cargo errors: file paths are on lines starting with "-->"
|
|
62
|
+
SQLX_OFFLINE=true cargo check 2>&1 | grep "^\s*-->" | awk '{print $2}' | awk -F':' '{print $1}' | sort | uniq -c | sort -rn
|
|
62
63
|
```
|
|
63
64
|
|
|
64
|
-
**For TypeScript:**
|
|
65
|
+
**For TypeScript (tsc):**
|
|
65
66
|
```bash
|
|
66
67
|
cd [PROJECT_ROOT]
|
|
67
|
-
#
|
|
68
|
+
# TypeScript compiler errors: file paths before first parenthesis
|
|
68
69
|
npm run typecheck 2>&1 | grep "error TS" | awk -F'(' '{print $1}' | sort | uniq -c | sort -rn
|
|
69
70
|
```
|
|
70
71
|
|
|
72
|
+
**For TypeScript (ESLint):**
|
|
73
|
+
```bash
|
|
74
|
+
cd [PROJECT_ROOT]
|
|
75
|
+
# ESLint: file paths are on separate lines, extract .ts/.tsx files
|
|
76
|
+
npm run lint 2>&1 > /tmp/eslint-output.txt
|
|
77
|
+
grep -B1 "error" /tmp/eslint-output.txt | grep -v "error\|--" | grep "\.tsx\?$" | sort | uniq -c | sort -rn
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Alternative (Universal TypeScript/ESLint parser):**
|
|
81
|
+
```bash
|
|
82
|
+
# Save full output first
|
|
83
|
+
npm run lint 2>&1 > /tmp/lint-output.txt || npm run typecheck 2>&1 > /tmp/lint-output.txt
|
|
84
|
+
|
|
85
|
+
# Parse with Python for robust extraction
|
|
86
|
+
python3 << 'PARSE_SCRIPT'
|
|
87
|
+
import re
|
|
88
|
+
from collections import defaultdict
|
|
89
|
+
|
|
90
|
+
error_counts = defaultdict(int)
|
|
91
|
+
current_file = None
|
|
92
|
+
|
|
93
|
+
with open('/tmp/lint-output.txt', 'r') as f:
|
|
94
|
+
for line in f:
|
|
95
|
+
# ESLint format: file path on its own line
|
|
96
|
+
if line.strip().endswith('.ts') or line.strip().endswith('.tsx'):
|
|
97
|
+
current_file = line.strip()
|
|
98
|
+
# ESLint error line
|
|
99
|
+
elif re.search(r'^\s+\d+:\d+\s+(error|warning)', line) and current_file:
|
|
100
|
+
error_counts[current_file] += 1
|
|
101
|
+
# TSC format: file.ts(line,col): error TS
|
|
102
|
+
elif match := re.match(r'^(.+\.tsx?)\(\d+,\d+\):\s+error', line):
|
|
103
|
+
error_counts[match.group(1)] += 1
|
|
104
|
+
|
|
105
|
+
# Print sorted by error count
|
|
106
|
+
for file, count in sorted(error_counts.items(), key=lambda x: -x[1])[:30]:
|
|
107
|
+
print(f"{count:6d} {file}")
|
|
108
|
+
PARSE_SCRIPT
|
|
109
|
+
```
|
|
110
|
+
|
|
71
111
|
**OUTPUT FORMAT:**
|
|
72
112
|
```
|
|
73
113
|
45 src/api/handler.ts
|
|
@@ -296,5 +336,6 @@ phase2Queue = ["src/db.ts", "src/models.ts"]
|
|
|
296
336
|
|
|
297
337
|
## Version History
|
|
298
338
|
|
|
339
|
+
- v1.2.0 (2025-12-21) - Fixed error file extraction patterns for Rust and TypeScript/ESLint
|
|
299
340
|
- v1.1.0 (2025-12-21) - Clarified instructions, removed pseudocode confusion
|
|
300
341
|
- v1.0.0 (2025-12-21) - Initial coordination mode implementation
|
|
@@ -12,11 +12,15 @@
|
|
|
12
12
|
* - Targeted crate compile testing
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
+
import * as dotenv from 'dotenv';
|
|
15
16
|
import createCerebrasClient from './cerebras-wrapper.js';
|
|
16
17
|
import * as fs from 'fs';
|
|
17
18
|
import * as path from 'path';
|
|
18
19
|
import { execSync } from 'child_process';
|
|
19
20
|
|
|
21
|
+
// Load environment variables from .env file
|
|
22
|
+
dotenv.config();
|
|
23
|
+
|
|
20
24
|
// ============== CONFIGURATION ==============
|
|
21
25
|
|
|
22
26
|
// Parse --file and --agent-id parameters
|
|
@@ -9,10 +9,14 @@
|
|
|
9
9
|
* - Phase 2: Dedicated agent cleanup (high quality)
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
import * as dotenv from 'dotenv';
|
|
12
13
|
import Cerebras from '@cerebras/cerebras_cloud_sdk';
|
|
13
14
|
import * as fs from 'fs';
|
|
14
15
|
import * as path from 'path';
|
|
15
16
|
import { execFileSync, spawnSync } from 'child_process';
|
|
17
|
+
|
|
18
|
+
// Load environment variables from .env file
|
|
19
|
+
dotenv.config();
|
|
16
20
|
import {
|
|
17
21
|
gateLineCountDelta,
|
|
18
22
|
gateMethodSignature,
|
|
@@ -167,9 +171,9 @@ function validateApiKey(apiKey: string | undefined): boolean {
|
|
|
167
171
|
return false;
|
|
168
172
|
}
|
|
169
173
|
|
|
170
|
-
// Check for basic format (starts with sk- and reasonable length)
|
|
171
|
-
if (!apiKey.startsWith('sk-') || apiKey.length < 20) {
|
|
172
|
-
console.error('❌ Security: Invalid API key format');
|
|
174
|
+
// Check for basic format (starts with sk- or csk- and reasonable length)
|
|
175
|
+
if ((!apiKey.startsWith('sk-') && !apiKey.startsWith('csk-')) || apiKey.length < 20) {
|
|
176
|
+
console.error('❌ Security: Invalid API key format (expected sk-* or csk-*)');
|
|
173
177
|
return false;
|
|
174
178
|
}
|
|
175
179
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-flow-novice",
|
|
3
|
-
"version": "2.18.
|
|
3
|
+
"version": "2.18.32",
|
|
4
4
|
"description": "Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture\n\nIncludes Local RuVector Accelerator and all CFN skills for complete functionality.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|