Files
proffesor-for-testing__agen…/docs/phase3/init-dependency-graph.txt
2025-11-23 10:50:14 +00:00

315 lines
20 KiB
Plaintext

┌──────────────────────────────────────────────────────────────────────────────┐
│ INIT MODULES DEPENDENCY GRAPH │
│ Visual Reference │
└──────────────────────────────────────────────────────────────────────────────┘
LEGEND:
┌─────┐ = Init Module
[═════] = External Dependency
{─────} = Internal Project File
───────> = Import Relationship
⚠️ = Compilation Warning
┌─────────────────────────────────────────────────────────────────────────────┐
│ EXTERNAL DEPENDENCIES │
└─────────────────────────────────────────────────────────────────────────────┘
[chalk] Terminal colors & formatting (7 modules depend on it) ⚠️
[ora] Spinner animations (1 module depends on it) ⚠️
[fs-extra] Enhanced file system operations (3 modules)
[path] Node.js path utilities (3 modules)
┌─────────────────────────────────────────────────────────────────────────────┐
│ INTERNAL DEPENDENCIES │
└─────────────────────────────────────────────────────────────────────────────┘
{../../types} FleetConfig, InitOptions interfaces (4 modules)
{../../utils/ProcessExit} Safe process exit utility (1 module)
{../../../package.json} Version info via require (2 modules)
┌─────────────────────────────────────────────────────────────────────────────┐
│ MODULE DEPENDENCY GRAPH │
└─────────────────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────────────────┐
│ index.ts (278 lines) │
│ Main Orchestrator - Entry Point │
│ Exports: initCommand + 6 re-exports │
└────────────────────────────────────────────────────────────────────────────┘
│
├─────────> [chalk] ⚠️
├─────────> [ora] ⚠️
├─────────> {../../types} (FleetConfig, InitOptions)
├─────────> {../../utils/ProcessExit}
├─────────> {../../../package.json} (version)
│
├─────────> ┌─────────────────────────────────────────────┐
│ │ directory-structure.ts (73 lines) │
│ │ Creates .agentic-qe directory structure │
│ │ Exports: createDirectoryStructure() │
│ └─────────────────────────────────────────────┘
│ │
│ ├─────────> [fs-extra]
│ ├─────────> [path]
│ └─────────> [chalk] ⚠️
│
├─────────> ┌─────────────────────────────────────────────┐
│ │ database-init.ts (32 lines) │
│ │ Initializes AgentDB & memory databases │
│ │ Exports: initializeDatabases() │
│ │ Status: TODO - implementation pending │
│ └─────────────────────────────────────────────┘
│ │
│ ├─────────> [path]
│ ├─────────> [chalk] ⚠️
│ └─────────> {../../types} (FleetConfig)
│
├─────────> ┌─────────────────────────────────────────────┐
│ │ claude-config.ts (46 lines) │
│ │ Generates Claude Code settings & MCP │
│ │ Exports: generateClaudeSettings() │
│ │ setupMCPServer() │
│ │ Status: TODO - implementation pending │
│ └─────────────────────────────────────────────┘
│ │
│ ├─────────> [chalk] ⚠️
│ └─────────> {../../types} (FleetConfig)
│
├─────────> ┌─────────────────────────────────────────────┐
│ │ documentation.ts (26 lines) │
│ │ Copies reference docs to project │
│ │ Exports: copyDocumentation() │
│ │ Status: TODO - implementation pending │
│ └─────────────────────────────────────────────┘
│ │
│ └─────────> [chalk] ⚠️
│
└─────────> ┌─────────────────────────────────────────────┐
│ bash-wrapper.ts (25 lines) │
│ Creates aqe command wrapper script │
│ Exports: createBashWrapper() │
│ Status: TODO - implementation pending │
└─────────────────────────────────────────────┘
│
└─────────> [chalk] ⚠️
┌────────────────────────────────────────────────────────────────────────────┐
│ STANDALONE MODULES (No Imports) │
└────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ fleet-config.ts (254 lines) │
│ Configuration Persistence & Validation │
│ │
│ Exports: │
│ • createFleetConfig(config) - Write config to disk │
│ • validateFleetConfig(config) - Validate configuration │
│ • fleetConfigExists() - Check if config exists │
│ • loadFleetConfig() - Load existing config │
│ • mergeFleetConfig(existing, new) - Merge configurations │
└─────────────────────────────────────────────────────────────────────────────┘
│
├─────────> [fs-extra]
├─────────> {../../types} (FleetConfig)
└─────────> {../../../package.json} (version)
┌─────────────────────────────────────────────────────────────────────────────┐
│ utils.ts (335 lines) ⚠️ OVER LIMIT │
│ Shared Utility Functions │
│ │
│ Exports: 22 functions │
│ File System: ensureDirectory, fileExists, directoryExists, │
│ safeWriteJson, safeReadJson, safeWriteFile, │
│ createDirectories │
│ Logging: logSuccess, logWarning, logError, logInfo, logExists │
│ Paths: getBaseDir, getDataDir, getConfigDir, getAgentsDir, │
│ getDocsDir, getRelativePath, formatFileSize │
│ Validation: validateRange, validateEnum │
│ Parsing: parseCommaSeparated │
│ Meta: getPackageVersion │
│ │
│ ⚠️ ISSUE: 335 lines (35 over 300-line limit) │
│ 📋 ACTION: Split into 4 modules (file, log, path, validation) │
└─────────────────────────────────────────────────────────────────────────────┘
│
├─────────> [fs-extra]
├─────────> [path]
└─────────> [chalk] ⚠️
┌─────────────────────────────────────────────────────────────────────────────┐
│ IMPORT CONSOLIDATION VIEW │
└─────────────────────────────────────────────────────────────────────────────┘
External Dependencies Usage:
[chalk] Used by 7/8 modules (87.5%) ⚠️ All have TS1259 warnings
[ora] Used by 1/8 modules (12.5%) ⚠️ Has TS1259 warning
[fs-extra] Used by 3/8 modules (37.5%)
[path] Used by 3/8 modules (37.5%)
Internal Dependencies Usage:
{../../types} Used by 4/8 modules (50%)
{../../utils/ProcessExit} Used by 1/8 modules (12.5%)
{../../../package.json} Used by 2/8 modules (25%)
Cross-Module Imports (within init/):
index.ts imports from 5 other init modules
┌─────────────────────────────────────────────────────────────────────────────┐
│ EXPORT CONSOLIDATION │
└─────────────────────────────────────────────────────────────────────────────┘
Total Exported Functions: 40+ functions
By Module:
utils.ts 22 functions (55% of all exports) ⚠️ TOO CONCENTRATED
fleet-config.ts 5 functions (12%)
index.ts 7 functions (18%) - includes re-exports
Other modules 1-2 each (15%)
By Function Type:
Async operations: ~30 functions (75%)
Sync utilities: ~10 functions (25%)
All exports are properly typed with TypeScript interfaces ✅
┌─────────────────────────────────────────────────────────────────────────────┐
│ CRITICAL PATH ANALYSIS │
└─────────────────────────────────────────────────────────────────────────────┘
Initialization Flow (Sequential):
1. index.ts.initCommand() called by CLI
2. prepareConfiguration() validates options
3. Phase execution loop begins:
└─> directory-structure.createDirectoryStructure()
└─> database-init.initializeDatabases()
└─> claude-config.generateClaudeSettings()
└─> claude-config.setupMCPServer()
└─> documentation.copyDocumentation()
└─> bash-wrapper.createBashWrapper()
Error Handling:
• Critical phases stop execution and trigger rollback
• Non-critical phases log warnings and continue
• Rollback executes in reverse order
Dependencies Required Before Execution:
✅ chalk - Terminal formatting
✅ ora - Progress spinners
✅ fs-extra - File operations
✅ path - Path handling
✅ FleetConfig type definition
✅ InitOptions type definition
┌─────────────────────────────────────────────────────────────────────────────┐
│ SUGGESTED REFACTORING │
└─────────────────────────────────────────────────────────────────────────────┘
Current Structure:
src/cli/init/
├── index.ts (278 lines)
├── fleet-config.ts (254 lines)
├── directory-structure.ts (73 lines)
├── database-init.ts (32 lines)
├── claude-config.ts (46 lines)
├── documentation.ts (26 lines)
├── bash-wrapper.ts (25 lines)
└── utils.ts (335 lines) ⚠️ OVER LIMIT
Recommended Structure:
src/cli/init/
├── index.ts (278 lines)
├── fleet-config.ts (254 lines)
├── directory-structure.ts (73 lines)
├── database-init.ts (32 lines)
├── claude-config.ts (46 lines)
├── documentation.ts (26 lines)
├── bash-wrapper.ts (25 lines)
└── utils/
├── index.ts (20 lines) - Re-export all utilities
├── file-utils.ts (90 lines)
├── log-utils.ts (60 lines)
├── path-utils.ts (50 lines)
└── validation-utils.ts (65 lines)
Benefits:
✅ All modules under 300-line limit
✅ Better organization by function type
✅ Easier to test individual utility categories
✅ Reduces cognitive load when reading code
✅ Maintains backward compatibility (re-export index)
┌─────────────────────────────────────────────────────────────────────────────┐
│ COMPILATION STATUS │
└─────────────────────────────────────────────────────────────────────────────┘
Module Compilation Status:
✅ fleet-config.ts - NO ERRORS (no chalk import)
⚠️ bash-wrapper.ts - TS1259 (chalk import)
⚠️ claude-config.ts - TS1259 (chalk import)
⚠️ database-init.ts - TS1259 (chalk import)
⚠️ directory-structure.ts - TS1259 (chalk import)
⚠️ documentation.ts - TS1259 (chalk import)
⚠️ index.ts - TS1259 (chalk + ora imports)
⚠️ utils.ts - TS1259 (chalk import)
Full Build Blocker:
❌ 100+ TypeScript errors in frontend files:
• App.tsx
• src/components/Dashboard/Dashboard.tsx
• src/components/Dashboard/DashboardHeader.tsx
• src/contexts/DashboardContext.tsx
• src/hooks/useKeyboardShortcuts.ts
Error Type: Missing --jsx flag and React type definitions
Resolution Plan:
1. Fix frontend compilation errors separately
2. Verify init modules compile in full build
3. If TS1259 persists, change to: import * as chalk from 'chalk';
┌─────────────────────────────────────────────────────────────────────────────┐
│ NEXT STEPS │
└─────────────────────────────────────────────────────────────────────────────┘
Priority 1 (Critical):
[ ] Split utils.ts into 4 modules
[ ] Create utils/index.ts with re-exports
[ ] Update imports in affected modules (if needed)
[ ] Verify all modules under 300 lines
Priority 2 (Important):
[ ] Fix frontend compilation errors
[ ] Run full build: npm run build
[ ] Verify init modules compile correctly
[ ] Resolve TS1259 warnings if they persist
Priority 3 (Testing):
[ ] Add integration tests
[ ] Test module loading
[ ] Test import/export chains
[ ] Verify error handling
Priority 4 (Documentation):
[ ] Add JSDoc examples
[ ] Create usage guide
[ ] Document configuration options
[ ] Update CHANGELOG.md
────────────────────────────────────────────────────────────────────────────────
Generated: 2025-11-22 11:45 UTC
Verified By: QE Specialist Agent
Status: ⚠️ PARTIAL - Minor fixes needed
Confidence: 🟢 HIGH - Architecture is solid