mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-08 00:19:42 +02:00
refactor: consolidate shared regex patterns and token validation
- Create src/utils/regex-patterns.ts with ANSI_ESCAPE_PATTERN_FULL, ANSI_ESCAPE_PATTERN_SIMPLE, TOKEN_PATTERN, and helper functions - Create src/utils/token-validation.ts with MAX_SESSION_TOKENS and validation utilities - Update session.ts, respawn-controller.ts, ai-checker-base.ts, ralph-tracker.ts, state-store.ts to use shared utilities - Export all new utilities from src/utils/index.ts Reduces code duplication while maintaining pre-compiled patterns for performance. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -30,6 +30,7 @@ import {
|
||||
createInitialRalphTrackerState,
|
||||
createInitialCircuitBreakerStatus,
|
||||
} from './types.js';
|
||||
import { ANSI_ESCAPE_PATTERN_SIMPLE } from './utils/index.js';
|
||||
|
||||
// ========== Enhanced Plan Task Interface ==========
|
||||
|
||||
@@ -287,12 +288,6 @@ const TASK_DONE_PATTERN = /(?:task|item|todo)\s*(?:#?\d+|"\s*[^"]+\s*")?\s*(?:is
|
||||
|
||||
// ---------- Utility Patterns ----------
|
||||
|
||||
/**
|
||||
* Removes ANSI escape codes from terminal output for cleaner parsing.
|
||||
* Matches: color codes (\x1b[...m), cursor movement (\x1b[...H, \x1b[...C), etc.
|
||||
*/
|
||||
const ANSI_ESCAPE_PATTERN = /\x1b\[[0-9;]*[A-Za-z]/g;
|
||||
|
||||
/** Maximum number of task number to content mappings to track */
|
||||
const MAX_TASK_MAPPINGS = 100;
|
||||
|
||||
@@ -909,7 +904,7 @@ export class RalphTracker extends EventEmitter {
|
||||
*/
|
||||
processTerminalData(data: string): void {
|
||||
// Remove ANSI escape codes for cleaner parsing
|
||||
const cleanData = data.replace(ANSI_ESCAPE_PATTERN, '');
|
||||
const cleanData = data.replace(ANSI_ESCAPE_PATTERN_SIMPLE, '');
|
||||
|
||||
// If tracker is disabled, only check for patterns that should auto-enable it
|
||||
if (!this._loopState.enabled) {
|
||||
@@ -1649,7 +1644,7 @@ export class RalphTracker extends EventEmitter {
|
||||
|
||||
// Clean content: remove ANSI codes, collapse whitespace, trim
|
||||
const cleanContent = content
|
||||
.replace(ANSI_ESCAPE_PATTERN, '') // Remove ANSI escape codes
|
||||
.replace(ANSI_ESCAPE_PATTERN_SIMPLE, '') // Remove ANSI escape codes
|
||||
.replace(/\s+/g, ' ') // Collapse whitespace
|
||||
.trim();
|
||||
if (cleanContent.length < 5) return; // Skip very short content
|
||||
|
||||
Reference in New Issue
Block a user