mindterm_integration.md · 9.1 KB
mindterm v0.0.4 - Complete mindX Integration
Overview
mindterm is now fully integrated into the mindX augmentic intelligence system as the secure terminal execution plane. This document describes the complete integration, orchestration, monitoring, and autonomous improvement capabilities.
Frontend Integration: xterm.js
mindterm uses xterm.js as its frontend terminal emulator. xterm.js is a battle-tested terminal emulator library used by major applications including:
Microsoft Visual Studio Code - Integrated terminal
JupyterLab - Terminal interface
Eclipse Che - Cloud IDE terminal
Azure Cloud Shell - Web-based admin terminal
And many more - See xterm.js real-world uses
xterm.js Integration Details
Location: mindx_frontend_ui/src/components/MindTerm.tsx
Package: xterm@^5.3.0 with xterm-addon-fit@^0.8.0
Key Features:
Full ANSI escape sequence support
Automatic terminal resizing via FitAddon
Real-time output streaming via WebSocket
Keystroke forwarding to PTY backend
Policy-gated command execution
Risk assessment integration
Connection Flow:
React component initializes xterm.js Terminal instance
Terminal connects to mindterm backend via WebSocket (/mindterm/sessions/{session_id}/ws)
Keystrokes forwarded as {type: "in", data: "..."}
Command lines sent as {type: "line", data: "..."} for policy gating
Output received as {type: "out", data: "..."} and written to terminal
Risk prompts displayed as {type: "risk", ...} for user confirmation
Terminal Configuration:
const term = new Terminal({
convertEol: true,
cursorBlink: true,
fontSize: 13
});
const fit = new FitAddon();
term.loadAddon(fit);
The terminal automatically resizes based on container dimensions and sends resize events to the backend PTY session.
Architecture Integration
Orchestration Hierarchy
MastermindAgent (Strategic Layer)
↓
CoordinatorAgent (Orchestration Layer)
↓
mindterm Service (Execution Layer)
├── PTY Sessions
├── Command Blocks
├── Policy Gate
└── Event Bus
Integration Points
Coordinator Agent Integration
- mindterm publishes events to coordinator's event bus
- Coordinator can subscribe to mindterm events for system-wide awareness
- Events include:
mindterm.session_created,
mindterm.command_started,
mindterm.session_closed
Resource Monitoring
- mindterm integrates with
ResourceMonitor for system resource tracking
- Tracks CPU, memory, disk usage per session
- Provides metrics for autonomous decision-making
Performance Monitoring
- mindterm commands tracked via
PerformanceMonitor
- Records success/failure rates, execution times
- Enables autonomous optimization of terminal operations
Logging System
- All mindterm operations logged via mindX logging system
- Logs stored in
data/logs/mindx_runtime.log
- Structured logging for autonomous analysis
Logging for Autonomous Improvement
Logged Events
mindterm logs the following events for autonomous system improvement:
Session Lifecycle
- Session creation (pid, shell, cwd, size)
- Session closure (with metrics)
- Session errors
Command Execution
- Command start (block_id, command)
- Command completion (exit_code, execution time)
- Command failures
Risk Assessment
- Risk flags (level, reason, command)
- User confirmations/denials
- Policy violations
Resource Usage
- Per-session metrics (commands, output bytes, failures)
- System resource consumption
- Performance metrics
Log Format
All logs follow mindX standard format:
[timestamp] mindterm - LEVEL - module.function:line - message
Autonomous Analysis
The mindX system can analyze mindterm logs to:
Identify common failure patterns
Optimize command execution strategies
Improve risk assessment policies
Predict resource needs
Detect security issues
Resource Management
Session Metrics
Each session tracks:
commands_executed: Total commands run
commands_failed: Commands with non-zero exit codes
total_output_bytes: Output data volume
risk_flags: Number of risky commands flagged
last_activity: Timestamp of last activity
Resource Monitoring
mindterm provides:
Active session count
Total commands executed across all sessions
Total output bytes
System resource usage (via ResourceMonitor)
Cleanup and Resource Limits
Automatic session cleanup on disconnect
Resource limits configurable via coordinator
Memory-efficient block storage (JSONL with cache)
API Monitoring Endpoints
System Endpoints
GET /system/resources
- Includes mindterm metrics in system resource response
- Shows active sessions, command counts, output volume
GET /mindterm/metrics
- Complete mindterm service metrics
- All session metrics
- Resource usage breakdown
GET /mindterm/metrics/{session_id}
- Per-session detailed metrics
- Command history statistics
- Performance data
Monitoring Integration
mindterm metrics are available to:
CoordinatorAgent for system-wide decisions
MastermindAgent for strategic planning
Autonomous audit coordinator for improvement campaigns
Frontend dashboard for real-time monitoring
Event Bus Integration
Published Events
mindterm publishes events to coordinator's event bus:
mindterm.session_created
{
"session_id": "...",
"pid": 12345,
"shell": "/bin/bash",
"cwd": "/path/to/cwd"
}
mindterm.command_started
{
"session_id": "...",
"block_id": "...",
"command": "ls -la"
}
mindterm.session_closed
{
"session_id": "...",
"metrics": {
"commands_executed": 10,
"commands_failed": 1,
"total_output_bytes": 1024
}
}
Event Subscribers
Agents can subscribe to mindterm events:
CoordinatorAgent: System-wide awareness
MastermindAgent: Strategic decision making
GuardianAgent: Security monitoring
AutonomousAuditCoordinator: Improvement campaigns
Orchestration Understanding
Mastermind → Coordinator → mindterm Flow
Strategic Layer (MastermindAgent)
- Receives high-level directives
- Plans terminal operations as part of larger campaigns
- Delegates to CoordinatorAgent
Orchestration Layer (CoordinatorAgent)
- Manages mindterm service lifecycle
- Routes terminal operations
- Monitors resource usage
- Publishes system events
Execution Layer (mindterm)
- Creates PTY sessions
- Executes commands with policy gates
- Tracks blocks and metrics
- Publishes events
Autonomous Improvement Flow
Data Collection
- mindterm logs all operations
- Metrics collected continuously
- Events published to coordinator
Analysis
- AutonomousAuditCoordinator analyzes logs
- Identifies improvement opportunities
- Creates improvement backlog items
Execution
- CoordinatorAgent processes improvements
- Updates mindterm policies/configurations
- Monitors results
Learning
- Success patterns identified
- Policies refined
- Resource limits adjusted
Configuration
Environment Variables
MINDTERM_TRANSCRIPTS_DIR: Transcript storage directory (default: data/mindterm_transcripts)
MINDTERM_BLOCKS_DIR: Block storage directory (default: data/mindterm_blocks)
Coordinator Configuration
mindterm respects coordinator settings:
coordinator.max_concurrent_heavy_tasks: Limits concurrent operations
monitoring.resource.enabled: Enables resource monitoring
monitoring.performance.*: Performance tracking settings
Security and Policy
Risk Assessment
mindterm uses policy.py for risk assessment:
High Risk: Destructive commands (rm -rf, mkfs, dd, etc.)
Medium Risk: Privilege escalation (sudo, systemctl, etc.)
Low Risk: Normal operations
Policy Integration
Policies can be updated by CoordinatorAgent
GuardianAgent can review risk decisions
MastermindAgent can adjust policy thresholds
Future Enhancements
Planned Improvements
Agent Integration
- MindTermTool for agents to use terminal
- Session binding to agent_id/workspace_id
- ACL-based access control
Advanced Monitoring
- Real-time command output analysis
- Semantic understanding of commands
- Predictive resource needs
Autonomous Optimization
- Automatic policy refinement
- Resource limit adjustment
- Command execution optimization
Summary
mindterm v0.0.4 is fully integrated into mindX with:
✅ Complete logging for autonomous improvement
✅ Resource monitoring integration
✅ Performance tracking
✅ Coordinator event bus integration
✅ API monitoring endpoints
✅ Proper resource management
✅ Orchestration system integration
The system can now autonomously improve mindterm operations based on logged data, metrics, and events.