claude-flow-novice 1.5.13 → 1.5.15
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/agents/analysis/code-review/analyze-code-quality.md +160 -177
- package/.claude/agents/architecture/system-design/arch-system-design.md +118 -153
- package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/CLAUDE.md +2 -1
- package/.claude-flow-novice/dist/src/config/web-portal-config.js +2 -1
- package/.claude-flow-novice/dist/src/config/web-portal-config.js.map +1 -1
- package/.claude-flow-novice/dist/src/preferences/user-preference-manager.js +371 -0
- package/.claude-flow-novice/dist/src/preferences/user-preference-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/validators/index.js +8 -8
- package/.claude-flow-novice/dist/src/validators/todowrite-batching-validator.js +70 -70
- package/.claude-flow-novice/dist/src/validators/todowrite-batching-validator.js.map +1 -1
- package/.claude-flow-novice/dist/src/validators/todowrite-integration.js +49 -49
- package/.claude-flow-novice/dist/src/validators/todowrite-integration.js.map +1 -1
- package/.claude-flow-novice/dist/src/web/portal-server.js +12 -5
- package/.claude-flow-novice/dist/src/web/portal-server.js.map +1 -1
- package/config/hooks/post-edit-pipeline.js +272 -10
- package/package.json +3 -1
- package/scripts/src/web/frontend/.claude-flow/metrics/agent-metrics.json +1 -0
- package/scripts/src/web/frontend/.claude-flow/metrics/performance.json +9 -0
- package/scripts/src/web/frontend/.claude-flow/metrics/task-metrics.json +10 -0
- package/src/cli/simple-commands/init/templates/CLAUDE.md +4 -1
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TodoWrite Batching Validator
|
|
3
|
-
*
|
|
4
|
-
* Detects and warns about TodoWrite anti-patterns where multiple small calls
|
|
5
|
-
* are made instead of a single batched call with 5-10+ items.
|
|
6
|
-
*
|
|
7
|
-
* Anti-pattern example (bad):
|
|
8
|
-
* TodoWrite([{...}]) // Call 1: 1 item
|
|
9
|
-
* TodoWrite([{...}]) // Call 2: 1 item
|
|
10
|
-
* TodoWrite([{...}]) // Call 3: 1 item
|
|
11
|
-
*
|
|
12
|
-
* Best practice (good):
|
|
13
|
-
* TodoWrite([{...}, {...}, {...}, {...}, {...}]) // Single call: 5+ items
|
|
14
|
-
*
|
|
15
|
-
* @module validators/todowrite-batching-validator
|
|
16
|
-
*/ /**
|
|
17
|
-
* Validates TodoWrite call patterns to ensure proper batching behavior
|
|
18
|
-
*
|
|
19
|
-
* Tracks call frequency within a sliding time window and detects anti-patterns
|
|
20
|
-
* where multiple small calls are made instead of a single batched call.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const validator = new TodoWriteValidator({ strictMode: false });
|
|
25
|
-
*
|
|
26
|
-
* // Good: Single batched call
|
|
27
|
-
* validator.validateBatching([
|
|
28
|
-
* { content: "Task 1", status: "pending", activeForm: "Doing task 1" },
|
|
29
|
-
* { content: "Task 2", status: "pending", activeForm: "Doing task 2" },
|
|
30
|
-
* { content: "Task 3", status: "pending", activeForm: "Doing task 3" },
|
|
31
|
-
* { content: "Task 4", status: "pending", activeForm: "Doing task 4" },
|
|
32
|
-
* { content: "Task 5", status: "pending", activeForm: "Doing task 5" }
|
|
33
|
-
* ]); // ✅ No warning
|
|
34
|
-
*
|
|
35
|
-
* // Bad: Multiple small calls
|
|
36
|
-
* validator.validateBatching([{ content: "Task 1", status: "pending", activeForm: "Doing task 1" }]);
|
|
37
|
-
* validator.validateBatching([{ content: "Task 2", status: "pending", activeForm: "Doing task 2" }]);
|
|
38
|
-
* // ⚠️ Warning: Batching anti-pattern detected
|
|
39
|
-
* ```
|
|
1
|
+
/**
|
|
2
|
+
* TodoWrite Batching Validator
|
|
3
|
+
*
|
|
4
|
+
* Detects and warns about TodoWrite anti-patterns where multiple small calls
|
|
5
|
+
* are made instead of a single batched call with 5-10+ items.
|
|
6
|
+
*
|
|
7
|
+
* Anti-pattern example (bad):
|
|
8
|
+
* TodoWrite([{...}]) // Call 1: 1 item
|
|
9
|
+
* TodoWrite([{...}]) // Call 2: 1 item
|
|
10
|
+
* TodoWrite([{...}]) // Call 3: 1 item
|
|
11
|
+
*
|
|
12
|
+
* Best practice (good):
|
|
13
|
+
* TodoWrite([{...}, {...}, {...}, {...}, {...}]) // Single call: 5+ items
|
|
14
|
+
*
|
|
15
|
+
* @module validators/todowrite-batching-validator
|
|
16
|
+
*/ /**
|
|
17
|
+
* Validates TodoWrite call patterns to ensure proper batching behavior
|
|
18
|
+
*
|
|
19
|
+
* Tracks call frequency within a sliding time window and detects anti-patterns
|
|
20
|
+
* where multiple small calls are made instead of a single batched call.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const validator = new TodoWriteValidator({ strictMode: false });
|
|
25
|
+
*
|
|
26
|
+
* // Good: Single batched call
|
|
27
|
+
* validator.validateBatching([
|
|
28
|
+
* { content: "Task 1", status: "pending", activeForm: "Doing task 1" },
|
|
29
|
+
* { content: "Task 2", status: "pending", activeForm: "Doing task 2" },
|
|
30
|
+
* { content: "Task 3", status: "pending", activeForm: "Doing task 3" },
|
|
31
|
+
* { content: "Task 4", status: "pending", activeForm: "Doing task 4" },
|
|
32
|
+
* { content: "Task 5", status: "pending", activeForm: "Doing task 5" }
|
|
33
|
+
* ]); // ✅ No warning
|
|
34
|
+
*
|
|
35
|
+
* // Bad: Multiple small calls
|
|
36
|
+
* validator.validateBatching([{ content: "Task 1", status: "pending", activeForm: "Doing task 1" }]);
|
|
37
|
+
* validator.validateBatching([{ content: "Task 2", status: "pending", activeForm: "Doing task 2" }]);
|
|
38
|
+
* // ⚠️ Warning: Batching anti-pattern detected
|
|
39
|
+
* ```
|
|
40
40
|
*/ export class TodoWriteValidator {
|
|
41
41
|
callLog = [];
|
|
42
42
|
totalCallCount = 0;
|
|
@@ -50,12 +50,12 @@
|
|
|
50
50
|
verbose: config.verbose ?? false
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Validates a TodoWrite call and checks for batching anti-patterns
|
|
55
|
-
*
|
|
56
|
-
* @param todos - Array of todos being written
|
|
57
|
-
* @throws Error if strictMode is enabled and anti-pattern detected
|
|
58
|
-
* @returns ValidationResult with detailed analysis
|
|
53
|
+
/**
|
|
54
|
+
* Validates a TodoWrite call and checks for batching anti-patterns
|
|
55
|
+
*
|
|
56
|
+
* @param todos - Array of todos being written
|
|
57
|
+
* @throws Error if strictMode is enabled and anti-pattern detected
|
|
58
|
+
* @returns ValidationResult with detailed analysis
|
|
59
59
|
*/ validateBatching(todos) {
|
|
60
60
|
const now = Date.now();
|
|
61
61
|
this.totalCallCount++;
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
recommendations.push(`See CLAUDE.md: "TodoWrite batching requirement" and "1 MESSAGE = ALL RELATED OPERATIONS"`);
|
|
84
84
|
recommendations.push(`Example: TodoWrite([todo1, todo2, todo3, todo4, todo5]) instead of multiple calls`);
|
|
85
85
|
if (this.config.verbose) {
|
|
86
|
-
console.log(
|
|
86
|
+
console.log("\n📊 TodoWrite Call Statistics:");
|
|
87
87
|
console.log(` Total calls in window: ${this.callLog.length}`);
|
|
88
88
|
console.log(` Total items: ${totalItems}`);
|
|
89
89
|
console.log(` Average items per call: ${averageItemsPerCall.toFixed(2)}`);
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
}
|
|
92
92
|
// In strict mode, throw error
|
|
93
93
|
if (this.config.strictMode) {
|
|
94
|
-
throw new Error(`TodoWrite Batching Violation: ${warningMessage}\n\n` + `Recommendations:\n${recommendations.map((r)=>` - ${r}`).join(
|
|
94
|
+
throw new Error(`TodoWrite Batching Violation: ${warningMessage}\n\n` + `Recommendations:\n${recommendations.map((r)=>` - ${r}`).join("\n")}`);
|
|
95
95
|
}
|
|
96
96
|
// Otherwise, log warning
|
|
97
97
|
console.warn(warningMessage);
|
|
@@ -109,9 +109,9 @@
|
|
|
109
109
|
recommendations
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
-
/**
|
|
113
|
-
* Builds a detailed warning message for batching anti-patterns
|
|
114
|
-
* @private
|
|
112
|
+
/**
|
|
113
|
+
* Builds a detailed warning message for batching anti-patterns
|
|
114
|
+
* @private
|
|
115
115
|
*/ buildWarningMessage(totalItems, averageItemsPerCall) {
|
|
116
116
|
const timeWindowMinutes = this.config.timeWindowMs / 60000;
|
|
117
117
|
return `
|
|
@@ -122,7 +122,7 @@ You have made ${this.callLog.length} TodoWrite calls in the last ${timeWindowMin
|
|
|
122
122
|
Best Practice: Batch ALL todos in SINGLE TodoWrite call with ${this.config.minRecommendedItems}-10+ items.
|
|
123
123
|
|
|
124
124
|
Current calls (within ${timeWindowMinutes}min window):
|
|
125
|
-
${this.callLog.map((entry, i)=>` ${i + 1}. Call #${entry.callIndex}: ${entry.count} item${entry.count !== 1 ?
|
|
125
|
+
${this.callLog.map((entry, i)=>` ${i + 1}. Call #${entry.callIndex}: ${entry.count} item${entry.count !== 1 ? "s" : ""} (${this.formatTimestamp(entry.timestamp)})`).join("\n")}
|
|
126
126
|
|
|
127
127
|
Statistics:
|
|
128
128
|
- Total calls: ${this.callLog.length}
|
|
@@ -138,17 +138,17 @@ Impact:
|
|
|
138
138
|
See CLAUDE.md: "TodoWrite batching requirement"
|
|
139
139
|
`.trim();
|
|
140
140
|
}
|
|
141
|
-
/**
|
|
142
|
-
* Formats timestamp for display in warning messages
|
|
143
|
-
* @private
|
|
141
|
+
/**
|
|
142
|
+
* Formats timestamp for display in warning messages
|
|
143
|
+
* @private
|
|
144
144
|
*/ formatTimestamp(timestamp) {
|
|
145
145
|
const secondsAgo = Math.floor((Date.now() - timestamp) / 1000);
|
|
146
146
|
if (secondsAgo < 60) return `${secondsAgo}s ago`;
|
|
147
147
|
const minutesAgo = Math.floor(secondsAgo / 60);
|
|
148
148
|
return `${minutesAgo}m ago`;
|
|
149
149
|
}
|
|
150
|
-
/**
|
|
151
|
-
* Gets current validation statistics
|
|
150
|
+
/**
|
|
151
|
+
* Gets current validation statistics
|
|
152
152
|
*/ getStatistics() {
|
|
153
153
|
return {
|
|
154
154
|
totalCalls: this.totalCallCount,
|
|
@@ -157,32 +157,32 @@ See CLAUDE.md: "TodoWrite batching requirement"
|
|
|
157
157
|
threshold: this.config.callThreshold
|
|
158
158
|
};
|
|
159
159
|
}
|
|
160
|
-
/**
|
|
161
|
-
* Resets the validator state (useful for testing)
|
|
160
|
+
/**
|
|
161
|
+
* Resets the validator state (useful for testing)
|
|
162
162
|
*/ reset() {
|
|
163
163
|
this.callLog = [];
|
|
164
164
|
this.totalCallCount = 0;
|
|
165
165
|
}
|
|
166
|
-
/**
|
|
167
|
-
* Updates validator configuration
|
|
166
|
+
/**
|
|
167
|
+
* Updates validator configuration
|
|
168
168
|
*/ updateConfig(config) {
|
|
169
169
|
this.config = {
|
|
170
170
|
...this.config,
|
|
171
171
|
...config
|
|
172
172
|
};
|
|
173
173
|
}
|
|
174
|
-
/**
|
|
175
|
-
* Checks if validation is currently passing (no anti-patterns detected)
|
|
174
|
+
/**
|
|
175
|
+
* Checks if validation is currently passing (no anti-patterns detected)
|
|
176
176
|
*/ isCurrentlyValid() {
|
|
177
177
|
return this.callLog.length < this.config.callThreshold;
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
-
/**
|
|
181
|
-
* Global singleton instance for use across the application
|
|
180
|
+
/**
|
|
181
|
+
* Global singleton instance for use across the application
|
|
182
182
|
*/ let globalValidator = null;
|
|
183
|
-
/**
|
|
184
|
-
* Gets the global TodoWrite validator instance
|
|
185
|
-
* Creates one if it doesn't exist
|
|
183
|
+
/**
|
|
184
|
+
* Gets the global TodoWrite validator instance
|
|
185
|
+
* Creates one if it doesn't exist
|
|
186
186
|
*/ export function getGlobalValidator(config) {
|
|
187
187
|
if (!globalValidator) {
|
|
188
188
|
globalValidator = new TodoWriteValidator(config);
|
|
@@ -191,9 +191,9 @@ See CLAUDE.md: "TodoWrite batching requirement"
|
|
|
191
191
|
}
|
|
192
192
|
return globalValidator;
|
|
193
193
|
}
|
|
194
|
-
/**
|
|
195
|
-
* Resets the global validator instance
|
|
196
|
-
* Useful for testing and cleanup
|
|
194
|
+
/**
|
|
195
|
+
* Resets the global validator instance
|
|
196
|
+
* Useful for testing and cleanup
|
|
197
197
|
*/ export function resetGlobalValidator() {
|
|
198
198
|
if (globalValidator) {
|
|
199
199
|
globalValidator.reset();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/validators/todowrite-batching-validator.ts"],"names":["TodoWriteValidator","callLog","totalCallCount","config","timeWindowMs","callThreshold","strictMode","minRecommendedItems","verbose","validateBatching","todos","now","Date","push","timestamp","count","length","callIndex","filter","entry","totalItems","reduce","sum","averageItemsPerCall","warnings","recommendations","isValid","warningMessage","buildWarningMessage","console","log","toFixed","Error","map","r","join","warn","callCount","timeWindowMinutes","i","formatTimestamp","trim","secondsAgo","Math","floor","minutesAgo","getStatistics","totalCalls","callsInWindow","threshold","reset","updateConfig","isCurrentlyValid","globalValidator","getGlobalValidator","resetGlobalValidator"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAwCD;;;;;;;;;;;;;;;;;;;;;;;;CAwBC,GACD,OAAO,MAAMA;IACHC,UAA8B,EAAE,CAAC;IACjCC,iBAAiB,EAAE;IAEnBC,OAA2C;IAEnD,YAAYA,SAAmC,CAAC,CAAC,CAAE;QACjD,IAAI,CAACA,MAAM,GAAG;YACZC,cAAcD,OAAOC,YAAY,IAAI;YACrCC,eAAeF,OAAOE,aAAa,IAAI;YACvCC,YAAYH,OAAOG,UAAU,IAAI;YACjCC,qBAAqBJ,OAAOI,mBAAmB,IAAI;YACnDC,SAASL,OAAOK,OAAO,IAAI;QAC7B;IACF;IAEA;;;;;;GAMC,GACDC,iBAAiBC,KAAa,EAAoB;QAChD,MAAMC,MAAMC,KAAKD,GAAG;QACpB,IAAI,CAACT,cAAc;QAEnB,gBAAgB;QAChB,IAAI,CAACD,OAAO,CAACY,IAAI,CAAC;YAChBC,WAAWH;YACXI,OAAOL,MAAMM,MAAM;YACnBC,WAAW,IAAI,CAACf,cAAc;QAChC;QAEA,wCAAwC;QACxC,IAAI,CAACD,OAAO,GAAG,IAAI,CAACA,OAAO,CAACiB,MAAM,CAChC,CAACC,QAAUR,MAAMQ,MAAML,SAAS,GAAG,IAAI,CAACX,MAAM,CAACC,YAAY;QAG7D,uBAAuB;QACvB,MAAMgB,aAAa,IAAI,CAACnB,OAAO,CAACoB,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../src/validators/todowrite-batching-validator.ts"],"names":["TodoWriteValidator","callLog","totalCallCount","config","timeWindowMs","callThreshold","strictMode","minRecommendedItems","verbose","validateBatching","todos","now","Date","push","timestamp","count","length","callIndex","filter","entry","totalItems","reduce","sum","averageItemsPerCall","warnings","recommendations","isValid","warningMessage","buildWarningMessage","console","log","toFixed","Error","map","r","join","warn","callCount","timeWindowMinutes","i","formatTimestamp","trim","secondsAgo","Math","floor","minutesAgo","getStatistics","totalCalls","callsInWindow","threshold","reset","updateConfig","isCurrentlyValid","globalValidator","getGlobalValidator","resetGlobalValidator"],"mappings":"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"}
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TodoWrite Validator Integration
|
|
3
|
-
*
|
|
4
|
-
* Provides CLI flag support and tool integration for the TodoWrite batching validator.
|
|
5
|
-
* Can be enabled via --validate-batching flag or VALIDATE_TODOWRITE_BATCHING env var.
|
|
6
|
-
*
|
|
7
|
-
* @module validators/todowrite-integration
|
|
8
|
-
*/ import { getGlobalValidator } from
|
|
9
|
-
/**
|
|
10
|
-
* Environment variables for controlling validation
|
|
11
|
-
*/ const ENV_VALIDATE_BATCHING =
|
|
12
|
-
const ENV_STRICT_MODE =
|
|
13
|
-
const ENV_VERBOSE =
|
|
14
|
-
/**
|
|
15
|
-
* Checks if validation is enabled via environment or config
|
|
1
|
+
/**
|
|
2
|
+
* TodoWrite Validator Integration
|
|
3
|
+
*
|
|
4
|
+
* Provides CLI flag support and tool integration for the TodoWrite batching validator.
|
|
5
|
+
* Can be enabled via --validate-batching flag or VALIDATE_TODOWRITE_BATCHING env var.
|
|
6
|
+
*
|
|
7
|
+
* @module validators/todowrite-integration
|
|
8
|
+
*/ import { getGlobalValidator } from "./todowrite-batching-validator";
|
|
9
|
+
/**
|
|
10
|
+
* Environment variables for controlling validation
|
|
11
|
+
*/ const ENV_VALIDATE_BATCHING = "VALIDATE_TODOWRITE_BATCHING";
|
|
12
|
+
const ENV_STRICT_MODE = "TODOWRITE_STRICT_MODE";
|
|
13
|
+
const ENV_VERBOSE = "TODOWRITE_VERBOSE";
|
|
14
|
+
/**
|
|
15
|
+
* Checks if validation is enabled via environment or config
|
|
16
16
|
*/ export function isValidationEnabled(config) {
|
|
17
17
|
// Check environment variable first
|
|
18
|
-
if (process.env[ENV_VALIDATE_BATCHING] ===
|
|
18
|
+
if (process.env[ENV_VALIDATE_BATCHING] === "true") {
|
|
19
19
|
return true;
|
|
20
20
|
}
|
|
21
21
|
// Check config
|
|
22
22
|
return config?.enabled ?? false;
|
|
23
23
|
}
|
|
24
|
-
/**
|
|
25
|
-
* Gets integration config from environment and explicit config
|
|
24
|
+
/**
|
|
25
|
+
* Gets integration config from environment and explicit config
|
|
26
26
|
*/ export function getIntegrationConfig(explicitConfig) {
|
|
27
27
|
return {
|
|
28
28
|
enabled: isValidationEnabled(explicitConfig),
|
|
29
|
-
strictMode: process.env[ENV_STRICT_MODE] ===
|
|
30
|
-
verbose: process.env[ENV_VERBOSE] ===
|
|
29
|
+
strictMode: process.env[ENV_STRICT_MODE] === "true" || explicitConfig?.strictMode,
|
|
30
|
+
verbose: process.env[ENV_VERBOSE] === "true" || explicitConfig?.verbose,
|
|
31
31
|
timeWindowMs: explicitConfig?.timeWindowMs,
|
|
32
32
|
callThreshold: explicitConfig?.callThreshold,
|
|
33
33
|
minRecommendedItems: explicitConfig?.minRecommendedItems
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Validates a TodoWrite call with integrated configuration
|
|
38
|
-
*
|
|
39
|
-
* @param todos - Array of todos being written
|
|
40
|
-
* @param config - Optional configuration override
|
|
41
|
-
* @returns Validation result if enabled, null if disabled
|
|
36
|
+
/**
|
|
37
|
+
* Validates a TodoWrite call with integrated configuration
|
|
38
|
+
*
|
|
39
|
+
* @param todos - Array of todos being written
|
|
40
|
+
* @param config - Optional configuration override
|
|
41
|
+
* @returns Validation result if enabled, null if disabled
|
|
42
42
|
*/ export function validateTodoWrite(todos, config) {
|
|
43
43
|
const integrationConfig = getIntegrationConfig(config);
|
|
44
44
|
// Skip validation if not enabled
|
|
@@ -56,8 +56,8 @@ const ENV_VERBOSE = 'TODOWRITE_VERBOSE';
|
|
|
56
56
|
// Validate and return result
|
|
57
57
|
return validator.validateBatching(todos);
|
|
58
58
|
}
|
|
59
|
-
/**
|
|
60
|
-
* CLI argument parser for validation flags
|
|
59
|
+
/**
|
|
60
|
+
* CLI argument parser for validation flags
|
|
61
61
|
*/ export function parseValidationFlags(args) {
|
|
62
62
|
const config = {
|
|
63
63
|
enabled: false,
|
|
@@ -67,32 +67,32 @@ const ENV_VERBOSE = 'TODOWRITE_VERBOSE';
|
|
|
67
67
|
for(let i = 0; i < args.length; i++){
|
|
68
68
|
const arg = args[i];
|
|
69
69
|
switch(arg){
|
|
70
|
-
case
|
|
70
|
+
case "--validate-batching":
|
|
71
71
|
config.enabled = true;
|
|
72
72
|
break;
|
|
73
|
-
case
|
|
74
|
-
case
|
|
73
|
+
case "--strict":
|
|
74
|
+
case "--strict-mode":
|
|
75
75
|
config.strictMode = true;
|
|
76
76
|
break;
|
|
77
|
-
case
|
|
78
|
-
case
|
|
77
|
+
case "--verbose":
|
|
78
|
+
case "-v":
|
|
79
79
|
config.verbose = true;
|
|
80
80
|
break;
|
|
81
|
-
case
|
|
81
|
+
case "--time-window":
|
|
82
82
|
config.timeWindowMs = parseInt(args[++i], 10);
|
|
83
83
|
break;
|
|
84
|
-
case
|
|
84
|
+
case "--threshold":
|
|
85
85
|
config.callThreshold = parseInt(args[++i], 10);
|
|
86
86
|
break;
|
|
87
|
-
case
|
|
87
|
+
case "--min-items":
|
|
88
88
|
config.minRecommendedItems = parseInt(args[++i], 10);
|
|
89
89
|
break;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
return config;
|
|
93
93
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Helper to display usage information
|
|
94
|
+
/**
|
|
95
|
+
* Helper to display usage information
|
|
96
96
|
*/ export function displayValidationHelp() {
|
|
97
97
|
console.log(`
|
|
98
98
|
TodoWrite Batching Validator - Usage
|
|
@@ -132,19 +132,19 @@ Best Practice:
|
|
|
132
132
|
See CLAUDE.md: "TodoWrite batching requirement"
|
|
133
133
|
`.trim());
|
|
134
134
|
}
|
|
135
|
-
/**
|
|
136
|
-
* Example integration with TodoWrite tool
|
|
137
|
-
* This function wraps the actual TodoWrite implementation
|
|
135
|
+
/**
|
|
136
|
+
* Example integration with TodoWrite tool
|
|
137
|
+
* This function wraps the actual TodoWrite implementation
|
|
138
138
|
*/ export function todoWriteWithValidation(todos, config) {
|
|
139
139
|
// Validate first if enabled
|
|
140
140
|
const validationResult = validateTodoWrite(todos, config);
|
|
141
141
|
if (validationResult && !validationResult.isValid) {
|
|
142
|
-
console.warn(
|
|
143
|
-
console.warn(
|
|
142
|
+
console.warn("\n⚠️ TodoWrite Batching Issue Detected\n");
|
|
143
|
+
console.warn("Recommendations:");
|
|
144
144
|
validationResult.recommendations.forEach((rec, i)=>{
|
|
145
145
|
console.warn(` ${i + 1}. ${rec}`);
|
|
146
146
|
});
|
|
147
|
-
console.warn(
|
|
147
|
+
console.warn("");
|
|
148
148
|
}
|
|
149
149
|
// Proceed with actual TodoWrite implementation
|
|
150
150
|
// (This would call the real TodoWrite tool)
|
|
@@ -153,8 +153,8 @@ Best Practice:
|
|
|
153
153
|
console.log(`\n✅ Writing ${todos.length} todos...`);
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
/**
|
|
157
|
-
* Express middleware for validation (if using HTTP API)
|
|
156
|
+
/**
|
|
157
|
+
* Express middleware for validation (if using HTTP API)
|
|
158
158
|
*/ export function createValidationMiddleware(config) {
|
|
159
159
|
return (req, res, next)=>{
|
|
160
160
|
if (req.body && Array.isArray(req.body.todos)) {
|
|
@@ -164,7 +164,7 @@ Best Practice:
|
|
|
164
164
|
// In strict mode, validation errors become HTTP errors
|
|
165
165
|
if (config?.strictMode) {
|
|
166
166
|
return res.status(400).json({
|
|
167
|
-
error:
|
|
167
|
+
error: "TodoWrite Batching Violation",
|
|
168
168
|
message: error.message
|
|
169
169
|
});
|
|
170
170
|
}
|
|
@@ -173,8 +173,8 @@ Best Practice:
|
|
|
173
173
|
next();
|
|
174
174
|
};
|
|
175
175
|
}
|
|
176
|
-
/**
|
|
177
|
-
* Integration status checker
|
|
176
|
+
/**
|
|
177
|
+
* Integration status checker
|
|
178
178
|
*/ export function getValidationStatus() {
|
|
179
179
|
const config = getIntegrationConfig();
|
|
180
180
|
const validator = getGlobalValidator();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/validators/todowrite-integration.ts"],"names":["getGlobalValidator","ENV_VALIDATE_BATCHING","ENV_STRICT_MODE","ENV_VERBOSE","isValidationEnabled","config","process","env","enabled","getIntegrationConfig","explicitConfig","strictMode","verbose","timeWindowMs","callThreshold","minRecommendedItems","validateTodoWrite","todos","integrationConfig","validator","validateBatching","parseValidationFlags","args","i","length","arg","parseInt","displayValidationHelp","console","log","trim","todoWriteWithValidation","validationResult","isValid","warn","recommendations","forEach","rec","createValidationMiddleware","req","res","next","body","Array","isArray","error","status","json","message","getValidationStatus","statistics","getStatistics"],"mappings":"AAAA;;;;;;;CAOC,GAED,SAASA,kBAAkB,QAAmB,iCAAiC;AAE/E;;CAEC,GACD,MAAMC,wBAAwB;AAC9B,MAAMC,kBAAkB;AACxB,MAAMC,cAAc;AAcpB;;CAEC,GACD,OAAO,SAASC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/validators/todowrite-integration.ts"],"names":["getGlobalValidator","ENV_VALIDATE_BATCHING","ENV_STRICT_MODE","ENV_VERBOSE","isValidationEnabled","config","process","env","enabled","getIntegrationConfig","explicitConfig","strictMode","verbose","timeWindowMs","callThreshold","minRecommendedItems","validateTodoWrite","todos","integrationConfig","validator","validateBatching","parseValidationFlags","args","i","length","arg","parseInt","displayValidationHelp","console","log","trim","todoWriteWithValidation","validationResult","isValid","warn","recommendations","forEach","rec","createValidationMiddleware","req","res","next","body","Array","isArray","error","status","json","message","getValidationStatus","statistics","getStatistics"],"mappings":"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"}
|
|
@@ -83,12 +83,16 @@ export class WebPortalServer {
|
|
|
83
83
|
credentials: true
|
|
84
84
|
}));
|
|
85
85
|
// Rate limiting
|
|
86
|
+
// Express v5 compatibility: Use regex pattern for API routes
|
|
86
87
|
const limiter = rateLimit({
|
|
87
88
|
windowMs: 15 * 60 * 1000,
|
|
88
89
|
max: this.config.security.rateLimit.maxRequests,
|
|
89
|
-
message: 'Too many requests from this IP, please try again later.'
|
|
90
|
+
message: 'Too many requests from this IP, please try again later.',
|
|
91
|
+
standardHeaders: true,
|
|
92
|
+
legacyHeaders: false
|
|
90
93
|
});
|
|
91
|
-
|
|
94
|
+
// Apply to all API routes using regex (Express v5 + path-to-regexp v8 compatible)
|
|
95
|
+
this.app.use(/^\/api\/.*/, limiter);
|
|
92
96
|
// Compression and parsing
|
|
93
97
|
this.app.use(compression());
|
|
94
98
|
this.app.use(express.json({
|
|
@@ -190,8 +194,9 @@ export class WebPortalServer {
|
|
|
190
194
|
});
|
|
191
195
|
}
|
|
192
196
|
});
|
|
193
|
-
// Serve React frontend
|
|
194
|
-
|
|
197
|
+
// Serve React frontend - Express v5 compatible catch-all route
|
|
198
|
+
// Use regex pattern instead of '*' wildcard for Express v5 + path-to-regexp v8 compatibility
|
|
199
|
+
this.app.get(/^\/(?!api).*/, (req, res)=>{
|
|
195
200
|
if (this.config.frontend.staticPath) {
|
|
196
201
|
const indexPath = path.join(this.config.frontend.staticPath, 'index.html');
|
|
197
202
|
res.sendFile(indexPath);
|
|
@@ -418,7 +423,9 @@ export class WebPortalServer {
|
|
|
418
423
|
// Export for use as module
|
|
419
424
|
export default WebPortalServer;
|
|
420
425
|
// CLI entry point
|
|
421
|
-
if (
|
|
426
|
+
// Check if this file is being run directly (ES module compatible)
|
|
427
|
+
const isMainModule = import.meta.url === `file://${process.argv[1]}` || process.argv[1]?.endsWith('portal-server.js') || process.argv[1]?.endsWith('portal-server.ts');
|
|
428
|
+
if (isMainModule) {
|
|
422
429
|
const server = new WebPortalServer();
|
|
423
430
|
server.start().catch((error)=>{
|
|
424
431
|
console.error('Failed to start web portal:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/web/portal-server.ts"],"names":["express","createServer","Server","SocketIOServer","cors","helmet","compression","rateLimit","path","fs","loadConfig","exec","promisify","execAsync","WebPortalServer","app","server","io","config","mcpConnections","Map","swarmMetrics","activeAgents","totalTasks","completedTasks","memoryUsage","cpuUsage","networkLatency","origin","allowedOrigins","methods","credentials","pingTimeout","pingInterval","setupMiddleware","setupRoutes","setupWebSocket","use","contentSecurityPolicy","directives","defaultSrc","styleSrc","fontSrc","scriptSrc","connectSrc","port","limiter","windowMs","max","security","maxRequests","message","json","limit","urlencoded","extended","frontend","staticPath","static","get","req","res","status","timestamp","Date","toISOString","uptime","process","memory","Array","from","entries","map","name","conn","lastPing","connections","capabilities","updateSwarmMetrics","error","console","post","command","args","body","result","executeClaudeFlowCommand","success","Error","executeRuvSwarmCommand","dirPath","query","files","listFiles","indexPath","join","sendFile","on","socket","log","id","emit","data","service","setInterval","checkMCPConnections","websocket","updateInterval","cmdString","stdout","stderr","timeout","cwd","includes","output","cfMetrics","rsMetrics","parseActiveAgents","parseTotalTasks","parseCompletedTasks","heapUsed","user","now","set","parseCapabilities","match","parseInt","push","readdir","withFileTypes","entry","type","isDirectory","start","Promise","resolve","reject","listen","host","stop","close","getApp","getServer","getIO","require","main","module","catch","exit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/web/portal-server.ts"],"names":["express","createServer","Server","SocketIOServer","cors","helmet","compression","rateLimit","path","fs","loadConfig","exec","promisify","execAsync","WebPortalServer","app","server","io","config","mcpConnections","Map","swarmMetrics","activeAgents","totalTasks","completedTasks","memoryUsage","cpuUsage","networkLatency","origin","allowedOrigins","methods","credentials","pingTimeout","pingInterval","setupMiddleware","setupRoutes","setupWebSocket","use","contentSecurityPolicy","directives","defaultSrc","styleSrc","fontSrc","scriptSrc","connectSrc","port","limiter","windowMs","max","security","maxRequests","message","standardHeaders","legacyHeaders","json","limit","urlencoded","extended","frontend","staticPath","static","get","req","res","status","timestamp","Date","toISOString","uptime","process","memory","Array","from","entries","map","name","conn","lastPing","connections","capabilities","updateSwarmMetrics","error","console","post","command","args","body","result","executeClaudeFlowCommand","success","Error","executeRuvSwarmCommand","dirPath","query","files","listFiles","indexPath","join","sendFile","on","socket","log","id","emit","data","service","setInterval","checkMCPConnections","websocket","updateInterval","cmdString","stdout","stderr","timeout","cwd","includes","output","cfMetrics","rsMetrics","parseActiveAgents","parseTotalTasks","parseCompletedTasks","heapUsed","user","now","set","parseCapabilities","match","parseInt","push","readdir","withFileTypes","entry","type","isDirectory","start","Promise","resolve","reject","listen","host","stop","close","getApp","getServer","getIO","isMainModule","url","argv","endsWith","catch","exit"],"mappings":"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"}
|