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.
Files changed (20) hide show
  1. package/.claude/agents/analysis/code-review/analyze-code-quality.md +160 -177
  2. package/.claude/agents/architecture/system-design/arch-system-design.md +118 -153
  3. package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/CLAUDE.md +2 -1
  4. package/.claude-flow-novice/dist/src/config/web-portal-config.js +2 -1
  5. package/.claude-flow-novice/dist/src/config/web-portal-config.js.map +1 -1
  6. package/.claude-flow-novice/dist/src/preferences/user-preference-manager.js +371 -0
  7. package/.claude-flow-novice/dist/src/preferences/user-preference-manager.js.map +1 -0
  8. package/.claude-flow-novice/dist/src/validators/index.js +8 -8
  9. package/.claude-flow-novice/dist/src/validators/todowrite-batching-validator.js +70 -70
  10. package/.claude-flow-novice/dist/src/validators/todowrite-batching-validator.js.map +1 -1
  11. package/.claude-flow-novice/dist/src/validators/todowrite-integration.js +49 -49
  12. package/.claude-flow-novice/dist/src/validators/todowrite-integration.js.map +1 -1
  13. package/.claude-flow-novice/dist/src/web/portal-server.js +12 -5
  14. package/.claude-flow-novice/dist/src/web/portal-server.js.map +1 -1
  15. package/config/hooks/post-edit-pipeline.js +272 -10
  16. package/package.json +3 -1
  17. package/scripts/src/web/frontend/.claude-flow/metrics/agent-metrics.json +1 -0
  18. package/scripts/src/web/frontend/.claude-flow/metrics/performance.json +9 -0
  19. package/scripts/src/web/frontend/.claude-flow/metrics/task-metrics.json +10 -0
  20. 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('\n📊 TodoWrite Call Statistics:');
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('\n')}`);
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 ? 's' : ''} (${this.formatTimestamp(entry.timestamp)})`).join('\n')}
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":"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"}
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 './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
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] === 'true') {
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] === 'true' || explicitConfig?.strictMode,
30
- verbose: process.env[ENV_VERBOSE] === 'true' || explicitConfig?.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 '--validate-batching':
70
+ case "--validate-batching":
71
71
  config.enabled = true;
72
72
  break;
73
- case '--strict':
74
- case '--strict-mode':
73
+ case "--strict":
74
+ case "--strict-mode":
75
75
  config.strictMode = true;
76
76
  break;
77
- case '--verbose':
78
- case '-v':
77
+ case "--verbose":
78
+ case "-v":
79
79
  config.verbose = true;
80
80
  break;
81
- case '--time-window':
81
+ case "--time-window":
82
82
  config.timeWindowMs = parseInt(args[++i], 10);
83
83
  break;
84
- case '--threshold':
84
+ case "--threshold":
85
85
  config.callThreshold = parseInt(args[++i], 10);
86
86
  break;
87
- case '--min-items':
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('\n⚠️ TodoWrite Batching Issue Detected\n');
143
- console.warn('Recommendations:');
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: 'TodoWrite Batching Violation',
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":"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"}
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
- this.app.use('/api/', limiter);
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
- this.app.get('*', (req, res)=>{
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 (require.main === module) {
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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"}