4runr-os 2.1.52 → 2.1.54
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/README.md +41 -21
- package/dist/index.js +12 -12
- package/mk3-tui/src/app.rs +436 -436
- package/mk3-tui/src/main.rs +119 -119
- package/mk3-tui/src/ui/layout.rs +745 -745
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|

|
|
7
7
|

|
|
8
8
|
|
|
9
|
-
**
|
|
9
|
+
**Complete operating system for AI agents - includes terminal interface (TUI), gateway component for AI agent credentials, underlying orchestration structure, and connections to external tools.**
|
|
10
10
|
|
|
11
11
|
[Installation](#-installation) • [Features](#-features) • [Documentation](#-documentation) • [Support](#-support)
|
|
12
12
|
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
|
|
19
19
|
### Boot Screen
|
|
20
20
|
|
|
21
|
-

|
|
22
22
|
|
|
23
23
|
*Initialization screen showing system startup and readiness status.*
|
|
24
24
|
|
|
25
25
|
### Main Interface
|
|
26
26
|
|
|
27
|
-

|
|
28
28
|
|
|
29
29
|
*Full terminal interface showing system status, operations log, resources, and capabilities.*
|
|
30
30
|
|
|
@@ -50,8 +50,10 @@ npm install -g 4runr-os
|
|
|
50
50
|
|
|
51
51
|
## ✨ Features
|
|
52
52
|
|
|
53
|
-
### 🎨
|
|
54
|
-
- **Rust + Ratatui
|
|
53
|
+
### 🎨 Complete Operating System
|
|
54
|
+
- **Terminal Interface (TUI)** - Rust + Ratatui high-performance native terminal UI
|
|
55
|
+
- **Gateway Component** - Built-in component for AI agent credentials and authentication
|
|
56
|
+
- **Orchestration Layer** - Node.js backend managing system operations and structure
|
|
55
57
|
- **Real-time Updates** - Live monitoring of agent runs, system resources, and network status
|
|
56
58
|
- **Beautiful Design** - Clean, professional interface with 4Runr brand colors
|
|
57
59
|
- **Cross-platform** - Works on Windows, macOS, and Linux
|
|
@@ -65,7 +67,8 @@ npm install -g 4runr-os
|
|
|
65
67
|
### 📊 Real-time Monitoring
|
|
66
68
|
- **System Status** - CPU, memory, network monitoring
|
|
67
69
|
- **Agent Operations** - Live log streaming and status updates
|
|
68
|
-
- **Gateway Health** -
|
|
70
|
+
- **Gateway Component Health** - Internal gateway component status and metrics
|
|
71
|
+
- **External Gateway Connections** - Status of connections to external tools and services
|
|
69
72
|
- **Resource Tracking** - Active runs, connections, and capabilities
|
|
70
73
|
|
|
71
74
|
### 🔄 Auto-Update System
|
|
@@ -152,26 +155,43 @@ Settings are saved in `~/.4runr/config.json` and persist across sessions.
|
|
|
152
155
|
|
|
153
156
|
## 🏗️ Architecture
|
|
154
157
|
|
|
155
|
-
4Runr OS is
|
|
158
|
+
4Runr OS is a complete operating system that includes:
|
|
156
159
|
|
|
157
|
-
- **
|
|
158
|
-
- **
|
|
159
|
-
- **
|
|
160
|
-
- **
|
|
160
|
+
- **Terminal Interface (TUI)**: Rust + Ratatui frontend - the user interface
|
|
161
|
+
- **Gateway Component**: Handles AI agent credentials and authentication (part of the OS)
|
|
162
|
+
- **Orchestration Layer**: Node.js backend managing system operations
|
|
163
|
+
- **External Gateway Connections**: Links to external tools and services (not local)
|
|
164
|
+
- **Underlying Structure**: Core OS components for monitoring, safety, and resource management
|
|
165
|
+
- **Communication**: HTTP/SSE for real-time updates between components
|
|
166
|
+
- **Safety Systems**: Built-in Shield and Sentinel systems
|
|
161
167
|
|
|
162
168
|
```
|
|
163
|
-
|
|
164
|
-
│
|
|
165
|
-
│
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
│
|
|
171
|
-
│
|
|
172
|
-
|
|
169
|
+
┌─────────────────────────────────────┐
|
|
170
|
+
│ 4Runr OS │
|
|
171
|
+
│ ┌───────────────────────────────┐ │
|
|
172
|
+
│ │ Terminal Interface (TUI) │ │ ← User Interface (Rust + Ratatui)
|
|
173
|
+
│ │ (Rust + Ratatui) │ │
|
|
174
|
+
│ └───────────┬───────────────────┘ │
|
|
175
|
+
│ │ │
|
|
176
|
+
│ ┌───────────▼───────────────────┐ │
|
|
177
|
+
│ │ Orchestration Layer │ │ ← System Management (Node.js)
|
|
178
|
+
│ │ (Node.js) │ │
|
|
179
|
+
│ └───────────┬───────────────────┘ │
|
|
180
|
+
│ │ │
|
|
181
|
+
│ ┌───────────▼───────────────────┐ │
|
|
182
|
+
│ │ Gateway Component │ │ ← AI Agent Credentials (OS Component)
|
|
183
|
+
│ │ (AI Agent Auth) │ │
|
|
184
|
+
│ └───────────┬───────────────────┘ │
|
|
185
|
+
│ │ │
|
|
186
|
+
│ ┌───────────▼───────────────────┐ │
|
|
187
|
+
│ │ External Gateway Connections │ │ ← External Tools & Services
|
|
188
|
+
│ │ (Non-local) │ │
|
|
189
|
+
│ └───────────────────────────────┘ │
|
|
190
|
+
└─────────────────────────────────────┘
|
|
173
191
|
```
|
|
174
192
|
|
|
193
|
+
**Key Point**: The gateway is a **component** of the OS (for AI agent credentials), separate from the gateway **connections** to external tools. The OS includes the TUI, gateway component, orchestration, and underlying structure - not just the interface.
|
|
194
|
+
|
|
175
195
|
---
|
|
176
196
|
|
|
177
197
|
## 📚 Documentation
|
package/dist/index.js
CHANGED
|
@@ -2156,18 +2156,18 @@ const commands = {
|
|
|
2156
2156
|
// Use as string if not valid JSON
|
|
2157
2157
|
}
|
|
2158
2158
|
// Wrap tool code in async function
|
|
2159
|
-
const wrappedCode = `
|
|
2160
|
-
(async () => {
|
|
2161
|
-
${tool.code}
|
|
2162
|
-
// Tool should export a function or be a function
|
|
2163
|
-
if (typeof tool === 'function') {
|
|
2164
|
-
return await tool(${JSON.stringify(parsedInput)});
|
|
2165
|
-
} else if (typeof execute === 'function') {
|
|
2166
|
-
return await execute(${JSON.stringify(parsedInput)});
|
|
2167
|
-
} else {
|
|
2168
|
-
throw new Error('Tool must export a function named "tool" or "execute"');
|
|
2169
|
-
}
|
|
2170
|
-
})()
|
|
2159
|
+
const wrappedCode = `
|
|
2160
|
+
(async () => {
|
|
2161
|
+
${tool.code}
|
|
2162
|
+
// Tool should export a function or be a function
|
|
2163
|
+
if (typeof tool === 'function') {
|
|
2164
|
+
return await tool(${JSON.stringify(parsedInput)});
|
|
2165
|
+
} else if (typeof execute === 'function') {
|
|
2166
|
+
return await execute(${JSON.stringify(parsedInput)});
|
|
2167
|
+
} else {
|
|
2168
|
+
throw new Error('Tool must export a function named "tool" or "execute"');
|
|
2169
|
+
}
|
|
2170
|
+
})()
|
|
2171
2171
|
`;
|
|
2172
2172
|
const result = await vm.default.runInNewContext(wrappedCode, context, { timeout: 5000 });
|
|
2173
2173
|
console.log(`\n${green}✓${reset} Tool executed successfully:`);
|