omniwire 2.0.0 → 2.2.1
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/.mcp.json.disabled +8 -0
- package/LICENSE +21 -21
- package/README.md +438 -316
- package/clawhub-skill/SKILL.md +354 -0
- package/dist/claude/integration.js +15 -18
- package/dist/claude/integration.js.map +1 -1
- package/dist/commands/browser.js +1 -1
- package/dist/commands/browser.js.map +1 -1
- package/dist/commands/builtins.js +6 -6
- package/dist/commands/builtins.js.map +1 -1
- package/dist/mcp/index.js +10 -3
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/rest.js +9 -1
- package/dist/mcp/rest.js.map +1 -1
- package/dist/mcp/server.js +133 -32
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/sync-tools.d.ts +3 -1
- package/dist/mcp/sync-tools.js +134 -1
- package/dist/mcp/sync-tools.js.map +1 -1
- package/dist/nodes/manager.d.ts +4 -0
- package/dist/nodes/manager.js +55 -18
- package/dist/nodes/manager.js.map +1 -1
- package/dist/nodes/transfer.js +8 -3
- package/dist/nodes/transfer.js.map +1 -1
- package/dist/protocol/config.d.ts +7 -1
- package/dist/protocol/config.js +73 -102
- package/dist/protocol/config.js.map +1 -1
- package/dist/sync/cookies.d.ts +52 -0
- package/dist/sync/cookies.js +259 -0
- package/dist/sync/cookies.js.map +1 -0
- package/dist/sync/crypto.d.ts +11 -0
- package/dist/sync/crypto.js +95 -0
- package/dist/sync/crypto.js.map +1 -0
- package/dist/sync/db.d.ts +3 -0
- package/dist/sync/db.js +21 -4
- package/dist/sync/db.js.map +1 -1
- package/dist/sync/engine.d.ts +3 -1
- package/dist/sync/engine.js +59 -8
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync/index.d.ts +2 -0
- package/dist/sync/index.js +44 -9
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/manifest.js +5 -5
- package/dist/sync/manifest.js.map +1 -1
- package/dist/sync/openclaw-bridge.d.ts +9 -0
- package/dist/sync/openclaw-bridge.js +206 -0
- package/dist/sync/openclaw-bridge.js.map +1 -0
- package/dist/sync/paths.js +6 -7
- package/dist/sync/paths.js.map +1 -1
- package/dist/sync/schema.js +2 -0
- package/dist/sync/schema.js.map +1 -1
- package/dist/sync/secrets.d.ts +32 -0
- package/dist/sync/secrets.js +221 -0
- package/dist/sync/secrets.js.map +1 -0
- package/dist/sync/types.d.ts +2 -0
- package/dist/sync/types.js +7 -7
- package/dist/sync/types.js.map +1 -1
- package/dist/sync/vault-bridge.d.ts +12 -0
- package/dist/sync/vault-bridge.js +152 -0
- package/dist/sync/vault-bridge.js.map +1 -0
- package/dist/ui/format.js +15 -14
- package/dist/ui/format.js.map +1 -1
- package/dist/update.d.ts +17 -0
- package/dist/update.js +108 -0
- package/dist/update.js.map +1 -0
- package/mesh.example.json +39 -0
- package/motd/00-cybernord +410 -0
- package/package.json +3 -36
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omniwire
|
|
3
|
+
version: 2.1.0
|
|
4
|
+
description: "Control your entire server mesh from chat. Execute commands, transfer files, manage Docker, sync configs, and monitor all your nodes — VPS, Raspberry Pi, laptop, desktop — through one unified interface. 30 MCP tools. Works on any architecture (x64, ARM, Apple Silicon). SSH2 with compression, encrypted config sync, 1Password secrets backend. Just say what you need and your agent runs it across every machine."
|
|
5
|
+
tags: [infrastructure, mesh, ssh, devops, servers, vps, docker, remote, mcp, file-transfer, monitoring, config-sync, secrets, multi-node, raspberry-pi, arm]
|
|
6
|
+
author: VoidChecksum
|
|
7
|
+
homepage: https://github.com/VoidChecksum/omniwire
|
|
8
|
+
metadata:
|
|
9
|
+
openclaw:
|
|
10
|
+
emoji: "🌐"
|
|
11
|
+
requires:
|
|
12
|
+
bins: ["node", "ssh"]
|
|
13
|
+
env: []
|
|
14
|
+
stateDirs: ["~/.omniwire"]
|
|
15
|
+
persistence: "This skill uses OmniWire (npm package) to manage SSH connections to your mesh nodes. Config lives in ~/.omniwire/mesh.json. Encrypted secrets in ~/.omniwire/secret.key. No data leaves your network — all operations run over your own SSH connections."
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# OmniWire — Mesh Control for OpenClaw
|
|
19
|
+
|
|
20
|
+
> **Your entire infrastructure, controlled from chat.**
|
|
21
|
+
|
|
22
|
+
Tell your agent to run commands on any server, transfer files between nodes, manage Docker containers, check system health, sync configurations, and manage secrets — across every machine you own. One skill. Any architecture.
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
You: check disk usage on all my servers
|
|
26
|
+
|
|
27
|
+
Agent: [runs across all nodes simultaneously]
|
|
28
|
+
|
|
29
|
+
[server1] (142ms)
|
|
30
|
+
/dev/sda1 1.2T 178G 16% /
|
|
31
|
+
|
|
32
|
+
[server2] (198ms)
|
|
33
|
+
/dev/sda1 50G 31G 61% /
|
|
34
|
+
|
|
35
|
+
[rpi] (215ms)
|
|
36
|
+
/dev/mmcblk0 32G 6.4G 20% /
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## What It Does
|
|
42
|
+
|
|
43
|
+
OmniWire connects all your machines (VPS, laptops, Raspberry Pis, desktops) into one mesh that your OpenClaw agent can control. It provides **30 tools** across 8 categories:
|
|
44
|
+
|
|
45
|
+
| Category | What your agent can do |
|
|
46
|
+
|----------|----------------------|
|
|
47
|
+
| **Execute** | Run any command on any node or all nodes at once |
|
|
48
|
+
| **Files** | Read, write, list, search files on any machine |
|
|
49
|
+
| **Transfer** | Move files between nodes (auto-selects fastest method) |
|
|
50
|
+
| **Docker** | Manage containers, images, logs across nodes |
|
|
51
|
+
| **Monitor** | CPU, memory, disk, network, processes — live |
|
|
52
|
+
| **Services** | Start/stop/restart systemd services remotely |
|
|
53
|
+
| **Secrets** | Store, retrieve, sync secrets (1Password or file-based) |
|
|
54
|
+
| **Sync** | Keep configs synchronized across all machines |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Setup — 3 Steps
|
|
59
|
+
|
|
60
|
+
### Step 1: Install OmniWire
|
|
61
|
+
|
|
62
|
+
> **AGENT: Run this via exec. User just clicks Approve.**
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
npm install -g omniwire
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Works on: Linux (x64, ARM, armv7l), macOS (Intel + Apple Silicon), Windows, Raspberry Pi.
|
|
69
|
+
|
|
70
|
+
### Step 2: Configure Your Mesh
|
|
71
|
+
|
|
72
|
+
Create the mesh config. Ask the user for their server details:
|
|
73
|
+
|
|
74
|
+
> **AGENT: Ask the user:**
|
|
75
|
+
> "What servers do you want to control? I need for each one:
|
|
76
|
+
> - A name (e.g., `server1`, `rpi`, `laptop`)
|
|
77
|
+
> - IP address or hostname
|
|
78
|
+
> - SSH user (usually `root`)
|
|
79
|
+
> - SSH key filename in ~/.ssh/ (e.g., `id_ed25519`)"
|
|
80
|
+
|
|
81
|
+
Then create the config via exec:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
mkdir -p ~/.omniwire
|
|
85
|
+
cat > ~/.omniwire/mesh.json << 'EOF'
|
|
86
|
+
{
|
|
87
|
+
"nodes": [
|
|
88
|
+
{
|
|
89
|
+
"id": "SERVER_NAME",
|
|
90
|
+
"host": "SERVER_IP",
|
|
91
|
+
"user": "root",
|
|
92
|
+
"identityFile": "id_ed25519",
|
|
93
|
+
"role": "storage",
|
|
94
|
+
"tags": ["vps"]
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
EOF
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Roles:** `storage` (file server/DB), `compute` (heavy processing), `gpu+browser` (GPU/display), or omit for general.
|
|
102
|
+
|
|
103
|
+
### Step 3: Verify
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}' | omniwire --stdio --no-sync 2>/dev/null | head -1
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Should show `omniwire v2.1.0`. Done.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## How to Use — Just Talk
|
|
114
|
+
|
|
115
|
+
Once set up, just tell your agent what you need. It uses OmniWire's MCP tools automatically.
|
|
116
|
+
|
|
117
|
+
### Run commands anywhere
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
You: restart nginx on server1
|
|
121
|
+
|
|
122
|
+
Agent: [exec on server1] systemctl restart nginx
|
|
123
|
+
✓ nginx restarted
|
|
124
|
+
|
|
125
|
+
You: show me what's using the most CPU on all servers
|
|
126
|
+
|
|
127
|
+
Agent: [broadcast to all nodes]
|
|
128
|
+
[server1] node (45% CPU) — omnibus-hub
|
|
129
|
+
[server2] python3 (23% CPU) — training job
|
|
130
|
+
[rpi] chromium (12% CPU) — dashboard
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Transfer files between machines
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
You: copy /var/log/app.log from server1 to server2
|
|
137
|
+
|
|
138
|
+
Agent: Transferred 4.2MB via netcat+gzip in 180ms (23.3 MB/s)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
OmniWire auto-selects the fastest transfer mode:
|
|
142
|
+
- **SFTP** for files under 10MB (zero overhead)
|
|
143
|
+
- **netcat+gzip** for 10MB-1GB (compressed TCP stream)
|
|
144
|
+
- **aria2c** for files over 1GB (16 parallel connections)
|
|
145
|
+
|
|
146
|
+
### Manage Docker
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
You: what containers are running on server1?
|
|
150
|
+
|
|
151
|
+
Agent: [server1] docker ps
|
|
152
|
+
12 running · 3 stopped
|
|
153
|
+
kali-htb redamon-agent omnibus-hub neo4j postgres ...
|
|
154
|
+
|
|
155
|
+
You: restart the neo4j container
|
|
156
|
+
|
|
157
|
+
Agent: [server1] docker restart neo4j
|
|
158
|
+
✓ neo4j restarted (healthy)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Monitor everything
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
You: how are my servers doing?
|
|
165
|
+
|
|
166
|
+
Agent: [mesh status — all nodes parallel]
|
|
167
|
+
|
|
168
|
+
server1 (storage) | 10.0.0.1 | ONLINE | 142ms | load=2.3 | mem=26% | disk=16%
|
|
169
|
+
server2 (compute) | 10.0.0.2 | ONLINE | 198ms | load=1.4 | mem=27% | disk=61%
|
|
170
|
+
rpi (gpu) | 10.0.0.3 | ONLINE | 215ms | load=0.7 | mem=21% | disk=20%
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Manage secrets across nodes
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
You: store my API key across all servers
|
|
177
|
+
|
|
178
|
+
Agent: What's the key name and value?
|
|
179
|
+
|
|
180
|
+
You: OPENAI_KEY = sk-proj-abc123...
|
|
181
|
+
|
|
182
|
+
Agent: [omniwire_secrets set + sync]
|
|
183
|
+
server1: OK
|
|
184
|
+
server2: OK
|
|
185
|
+
rpi: OK
|
|
186
|
+
✓ Synced OPENAI_KEY to 3 nodes
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Supports **1Password** backend — configure in `~/.omniwire/secrets.json`:
|
|
190
|
+
```json
|
|
191
|
+
{"backend": "onepassword", "vault": "Infrastructure"}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Sync configurations
|
|
195
|
+
|
|
196
|
+
CyberSync keeps your AI tool configs (Claude Code, OpenCode, OpenClaw, Codex, Gemini) synchronized across all machines:
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
You: sync my claude code settings to all servers
|
|
200
|
+
|
|
201
|
+
Agent: [cybersync_sync_now]
|
|
202
|
+
Reconciled: pushed=3, pulled=0, conflicts=0
|
|
203
|
+
✓ All nodes up to date
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Sensitive files (settings.json, credentials, memory) are encrypted at rest with **XChaCha20-Poly1305**.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## All 30 Tools
|
|
211
|
+
|
|
212
|
+
Your agent has access to these automatically via MCP:
|
|
213
|
+
|
|
214
|
+
### Core (22 tools)
|
|
215
|
+
| Tool | Description |
|
|
216
|
+
|------|-------------|
|
|
217
|
+
| `omniwire_exec` | Execute command on a specific node |
|
|
218
|
+
| `omniwire_broadcast` | Execute on all nodes simultaneously |
|
|
219
|
+
| `omniwire_mesh_status` | Health + resources for all nodes |
|
|
220
|
+
| `omniwire_node_info` | Detailed info for one node |
|
|
221
|
+
| `omniwire_read_file` | Read file from any node |
|
|
222
|
+
| `omniwire_write_file` | Write file to any node |
|
|
223
|
+
| `omniwire_transfer_file` | Copy files between nodes (auto mode) |
|
|
224
|
+
| `omniwire_list_files` | List directory on any node |
|
|
225
|
+
| `omniwire_find_files` | Search files across all nodes |
|
|
226
|
+
| `omniwire_tail_log` | Read last N lines of a log |
|
|
227
|
+
| `omniwire_process_list` | List processes (filterable) |
|
|
228
|
+
| `omniwire_disk_usage` | Disk usage across nodes |
|
|
229
|
+
| `omniwire_install_package` | Install via apt/npm/pip |
|
|
230
|
+
| `omniwire_service_control` | systemd start/stop/restart/status |
|
|
231
|
+
| `omniwire_docker` | Docker commands on any node |
|
|
232
|
+
| `omniwire_open_browser` | Open URL on GUI node |
|
|
233
|
+
| `omniwire_port_forward` | SSH tunnel management |
|
|
234
|
+
| `omniwire_deploy` | Push files to multiple nodes |
|
|
235
|
+
| `omniwire_kernel` | dmesg, sysctl, modprobe, strace, perf |
|
|
236
|
+
| `omniwire_shell` | Persistent shell sessions (preserves state) |
|
|
237
|
+
| `omniwire_stream` | Real-time streaming output |
|
|
238
|
+
| `omniwire_live_monitor` | Live system metrics snapshot |
|
|
239
|
+
|
|
240
|
+
### CyberSync (8 tools)
|
|
241
|
+
| Tool | Description |
|
|
242
|
+
|------|-------------|
|
|
243
|
+
| `cybersync_status` | Sync status, item counts, heartbeats |
|
|
244
|
+
| `cybersync_sync_now` | Force immediate reconciliation |
|
|
245
|
+
| `cybersync_diff` | Show what needs syncing |
|
|
246
|
+
| `cybersync_history` | Sync event log |
|
|
247
|
+
| `cybersync_search_knowledge` | Search unified knowledge base |
|
|
248
|
+
| `cybersync_get_memory` | Query Claude memory from DB |
|
|
249
|
+
| `cybersync_manifest` | Show tracked files per tool |
|
|
250
|
+
| `cybersync_force_push` | Push specific file to all nodes |
|
|
251
|
+
|
|
252
|
+
### Secrets + Update
|
|
253
|
+
| Tool | Description |
|
|
254
|
+
|------|-------------|
|
|
255
|
+
| `omniwire_secrets` | Get/set/delete/list/sync secrets |
|
|
256
|
+
| `omniwire_update` | Check for updates + self-update |
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Performance
|
|
261
|
+
|
|
262
|
+
| Operation | Speed |
|
|
263
|
+
|-----------|-------|
|
|
264
|
+
| Command execution | ~120ms per node |
|
|
265
|
+
| File read (< 1MB) | ~80ms (SFTP) |
|
|
266
|
+
| File transfer (10MB) | ~200ms (gzip netcat) |
|
|
267
|
+
| Config sync (push all) | ~200ms (parallel) |
|
|
268
|
+
| Mesh status check | ~150ms (cached 5s) |
|
|
269
|
+
|
|
270
|
+
All connections use **SSH2 with zlib compression** over your existing network (WireGuard, Tailscale, direct SSH — anything works).
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Architecture & Platform Support
|
|
275
|
+
|
|
276
|
+
| Platform | Architecture | Status |
|
|
277
|
+
|----------|-------------|--------|
|
|
278
|
+
| Linux | x64 | ✅ |
|
|
279
|
+
| Linux | arm64 (RPi 4/5, AWS Graviton) | ✅ |
|
|
280
|
+
| Linux | armv7l (RPi 3, older ARM) | ✅ |
|
|
281
|
+
| macOS | Intel (x64) | ✅ |
|
|
282
|
+
| macOS | Apple Silicon (arm64) | ✅ |
|
|
283
|
+
| Windows | x64 | ✅ |
|
|
284
|
+
|
|
285
|
+
No native compilation required — pure JavaScript + SSH2. `npm install -g omniwire` works everywhere Node.js runs.
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Security
|
|
290
|
+
|
|
291
|
+
- **Transport**: SSH2 with zlib compression (encrypted by default)
|
|
292
|
+
- **At-rest encryption**: XChaCha20-Poly1305 for sensitive sync items
|
|
293
|
+
- **Secrets**: 1Password, file-based, or env var backends
|
|
294
|
+
- **No external services**: Everything runs on your own infrastructure
|
|
295
|
+
- **Key management**: Master key in `~/.omniwire/secret.key` (generated locally, never transmitted)
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Agent Instructions
|
|
300
|
+
|
|
301
|
+
### When to use OmniWire tools
|
|
302
|
+
|
|
303
|
+
Use OmniWire tools when the user:
|
|
304
|
+
- Mentions servers, VPS, nodes, infrastructure, or "my machines"
|
|
305
|
+
- Wants to run commands remotely ("run X on server1", "check Y on all servers")
|
|
306
|
+
- Needs to transfer, read, or write files on remote machines
|
|
307
|
+
- Asks about Docker containers on remote nodes
|
|
308
|
+
- Wants to monitor system resources across machines
|
|
309
|
+
- Needs to manage secrets or sync configurations
|
|
310
|
+
- Mentions "deploy", "restart service", "install package" on remote targets
|
|
311
|
+
|
|
312
|
+
### How to pick the right tool
|
|
313
|
+
|
|
314
|
+
- **Single node command** → `omniwire_exec`
|
|
315
|
+
- **All nodes at once** → `omniwire_broadcast`
|
|
316
|
+
- **Read a remote file** → `omniwire_read_file`
|
|
317
|
+
- **Copy between nodes** → `omniwire_transfer_file`
|
|
318
|
+
- **Docker anything** → `omniwire_docker`
|
|
319
|
+
- **Check health** → `omniwire_mesh_status`
|
|
320
|
+
- **Store a secret** → `omniwire_secrets` (action: set)
|
|
321
|
+
- **Sync configs** → `cybersync_sync_now`
|
|
322
|
+
|
|
323
|
+
### Default node selection
|
|
324
|
+
|
|
325
|
+
If the user doesn't specify a node:
|
|
326
|
+
- File storage operations → use the node with `role: "storage"`
|
|
327
|
+
- Docker operations → use the node with `role: "storage"` (usually the Docker host)
|
|
328
|
+
- Browser operations → use the node with `role: "gpu+browser"`
|
|
329
|
+
- Heavy compute → use `role: "compute"`
|
|
330
|
+
- If unclear, ask: "Which server should I run this on?"
|
|
331
|
+
|
|
332
|
+
### Error handling
|
|
333
|
+
|
|
334
|
+
- If a node is offline, tell the user and offer to try another node
|
|
335
|
+
- If a command fails, show the error and suggest fixes
|
|
336
|
+
- If transfer fails, retry with a different mode
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Links
|
|
341
|
+
|
|
342
|
+
- **GitHub**: https://github.com/VoidChecksum/omniwire
|
|
343
|
+
- **NPM**: https://www.npmjs.com/package/omniwire
|
|
344
|
+
- **Issues**: https://github.com/VoidChecksum/omniwire/issues
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## License
|
|
349
|
+
|
|
350
|
+
MIT — Use freely, modify, distribute.
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
*OmniWire — Every machine, one agent, zero friction.*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
// OmniWire Claude Integration
|
|
1
|
+
// OmniWire Claude Integration â AI-powered mesh orchestration
|
|
2
2
|
// v2: streaming output, multi-turn sessions, MCP tool awareness
|
|
3
|
-
// SECURITY: Uses spawn() with explicit argv
|
|
3
|
+
// SECURITY: Uses spawn() with explicit argv â prompt goes as argument, not through shell.
|
|
4
4
|
// The manager.execAll() calls below use SSH2 client channels, not child_process.
|
|
5
5
|
import { spawn } from 'node:child_process';
|
|
6
6
|
import { allNodes, NODE_ROLES } from '../protocol/config.js';
|
|
@@ -41,25 +41,21 @@ export class ClaudeIntegration {
|
|
|
41
41
|
return ` - ${n.id} (${n.alias}): ${n.host} [${n.os}] [${status}] role=${role} tags: ${n.tags.join(', ')}`;
|
|
42
42
|
})
|
|
43
43
|
.join('\n');
|
|
44
|
-
const roleLines = Object.entries(NODE_ROLES)
|
|
45
|
-
.map(([id, role]) => `- ${id} (${role})`)
|
|
46
|
-
.join('\n');
|
|
47
|
-
const storageNode = Object.entries(NODE_ROLES).find(([, r]) => r === 'storage')?.[0] ?? 'storage node';
|
|
48
|
-
const browserNode = Object.entries(NODE_ROLES).find(([, r]) => r === 'gpu+browser')?.[0] ?? 'gpu+browser node';
|
|
49
|
-
const computeNode = Object.entries(NODE_ROLES).find(([, r]) => r === 'compute')?.[0] ?? storageNode;
|
|
50
|
-
const controllerNode = Object.entries(NODE_ROLES).find(([, r]) => r === 'controller')?.[0] ?? 'local';
|
|
51
44
|
return `OMNIWIRE MESH STATUS:
|
|
52
45
|
Nodes:
|
|
53
46
|
${nodeList}
|
|
54
47
|
|
|
55
48
|
NODE ROLES:
|
|
56
|
-
|
|
49
|
+
- windows (controller): OmniWire host, Claude Code, REPL
|
|
50
|
+
- contabo (storage): Primary storage (1.2TB), Docker host, DB, file server
|
|
51
|
+
- hostinger (compute): Secondary compute, services
|
|
52
|
+
- thinkpad (gpu+browser): GPU workloads, browser automation, GUI apps
|
|
57
53
|
|
|
58
54
|
ROUTING DEFAULTS:
|
|
59
|
-
- File storage/retrieval
|
|
60
|
-
- Browser/GUI ops
|
|
61
|
-
- Heavy compute
|
|
62
|
-
- Local dev
|
|
55
|
+
- File storage/retrieval â contabo
|
|
56
|
+
- Browser/GUI ops â thinkpad
|
|
57
|
+
- Heavy compute â contabo or thinkpad
|
|
58
|
+
- Local dev â windows
|
|
63
59
|
|
|
64
60
|
MCP TOOLS AVAILABLE:
|
|
65
61
|
You have 22 omniwire_* tools for direct mesh access via MCP.
|
|
@@ -68,7 +64,8 @@ omniwire_transfer_file, omniwire_docker, omniwire_service_control, omniwire_kern
|
|
|
68
64
|
|
|
69
65
|
LEGACY COMMANDS (still work):
|
|
70
66
|
- @<node> <command>, @all <command>, @sync <file> <src> <dst>
|
|
71
|
-
- Online nodes: ${online.join(', ')}
|
|
67
|
+
- Online nodes: ${online.join(', ')}
|
|
68
|
+
- Mesh subnet: <mesh-subnet> (WireGuard)`;
|
|
72
69
|
}
|
|
73
70
|
buildClaudePrompt(userPrompt, meshContext) {
|
|
74
71
|
return `You are the AI brain of OmniWire Terminal, a unified terminal for a WireGuard mesh network.
|
|
@@ -83,7 +80,7 @@ After the commands, briefly explain what they do.
|
|
|
83
80
|
|
|
84
81
|
USER REQUEST: ${userPrompt}`;
|
|
85
82
|
}
|
|
86
|
-
// spawn with explicit argv
|
|
83
|
+
// spawn with explicit argv â prompt goes as argument, not through shell
|
|
87
84
|
runClaude(prompt, useSession = false) {
|
|
88
85
|
return new Promise((resolve, reject) => {
|
|
89
86
|
const spinner = new Spinner('Claude is thinking...');
|
|
@@ -102,7 +99,7 @@ USER REQUEST: ${userPrompt}`;
|
|
|
102
99
|
const chunk = data.toString();
|
|
103
100
|
stdout += chunk;
|
|
104
101
|
spinner.stop();
|
|
105
|
-
process.stdout.write(dim('
|
|
102
|
+
process.stdout.write(dim('â ') + chunk);
|
|
106
103
|
});
|
|
107
104
|
proc.stderr?.on('data', (data) => {
|
|
108
105
|
stderr += data.toString();
|
|
@@ -152,6 +149,6 @@ USER REQUEST: ${userPrompt}`;
|
|
|
152
149
|
}
|
|
153
150
|
}
|
|
154
151
|
function formatClaudeResponse(response) {
|
|
155
|
-
return `${cyan('
|
|
152
|
+
return `${cyan('ââ Claude')}\n${dim('â')} ${response.split('\n').join(`\n${dim('â')} `)}\n${cyan('ââ')}`;
|
|
156
153
|
}
|
|
157
154
|
//# sourceMappingURL=integration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../src/claude/integration.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"integration.js","sourceRoot":"","sources":["../../src/claude/integration.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,gEAAgE;AAChE,4FAA4F;AAC5F,iFAAiF;AAEjF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,OAAO,iBAAiB;IACpB,OAAO,CAAc;IACrB,SAAS,GAAkB,IAAI,CAAC;IAExC,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEnE,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEnE,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QAEzB,MAAM,QAAQ,GAAG,KAAK;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC;YAC3C,OAAO,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,MAAM,MAAM,UAAU,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7G,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;;EAET,QAAQ;;;;;;;;;;;;;;;;;;;;;kBAqBQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;yCACM,CAAC;IACxC,CAAC;IAEO,iBAAiB,CAAC,UAAkB,EAAE,WAAmB;QAC/D,OAAO;;;EAGT,WAAW;;;;;;;gBAOG,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED,0EAA0E;IAClE,SAAS,CAAC,MAAc,EAAE,UAAU,GAAG,KAAK;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACrD,OAAO,CAAC,KAAK,EAAE,CAAC;YAEhB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;YACrE,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE;gBACjC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,OAAO,EAAE,MAAM;aAChB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC;gBAChB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBAChC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;oBAChE,IAAI,YAAY,EAAE,CAAC;wBACjB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACnC,CAAC;oBACD,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,2BAA2B,IAAI,EAAE,CAAC,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;gBAClC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;oBACrB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC9C,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;wBACpB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACxD,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AACvH,CAAC"}
|
package/dist/commands/browser.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// OmniWire Browser Command — opens URLs on appropriate node
|
|
2
|
-
// Default:
|
|
2
|
+
// Default: thinkpad (GPU + display)
|
|
3
3
|
// NOTE: Uses manager.exec() which is SSH2 client channel, not child_process
|
|
4
4
|
import { getDefaultNodeForTask, findNode } from '../protocol/config.js';
|
|
5
5
|
export async function openBrowser(manager, url, nodeId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/commands/browser.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,oCAAoC;AACpC,4EAA4E;AAG5E,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAoB,EACpB,GAAW,EACX,MAAe;IAEf,MAAM,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,IAAI;QAAE,OAAO,iBAAiB,MAAM,EAAE,CAAC;IAE5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAClC,OAAO,QAAQ,IAAI,CAAC,EAAE,aAAa,CAAC;IACtC,CAAC;IAED,+DAA+D;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,KAAK,SAAS;QACnC,CAAC,CAAC,wBAAwB,GAAG,GAAG;QAChC,CAAC,CAAC,aAAa,GAAG,sCAAsC,GAAG,6BAA6B,GAAG,sCAAsC,GAAG,iBAAiB,CAAC;IAExJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACvC,OAAO,6BAA6B,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;IAClE,CAAC;IACD,OAAO,UAAU,GAAG,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -228,7 +228,7 @@ async function cmdDocker(raw, manager) {
|
|
|
228
228
|
const dockerCmd = raw.trim();
|
|
229
229
|
if (!dockerCmd)
|
|
230
230
|
return red('Usage: @docker <command>');
|
|
231
|
-
const nodeId =
|
|
231
|
+
const nodeId = 'contabo';
|
|
232
232
|
const result = await manager.exec(nodeId, `docker ${dockerCmd}`);
|
|
233
233
|
return `${nodeColor(nodeId)} docker ${dockerCmd}\n${result.code === 0 ? result.stdout : red(result.stderr)}`;
|
|
234
234
|
}
|
|
@@ -250,9 +250,9 @@ function cmdHelp() {
|
|
|
250
250
|
${bold('OmniWire Terminal v2.0 — Command Reference')}
|
|
251
251
|
|
|
252
252
|
${cyan('Targeting:')}
|
|
253
|
-
${dim('(no prefix)')} Execute on local machine
|
|
254
|
-
${cyan('@
|
|
255
|
-
${cyan('@
|
|
253
|
+
${dim('(no prefix)')} Execute on local machine (Windows)
|
|
254
|
+
${cyan('@contabo')} cmd Execute on specific node (contabo/hostinger/thinkpad)
|
|
255
|
+
${cyan('@c1')} cmd Use node alias (c1/h1/tp/win)
|
|
256
256
|
${cyan('@all')} cmd Broadcast to ALL nodes simultaneously
|
|
257
257
|
${cyan('@remote')} cmd Execute on all remote nodes (skip local)
|
|
258
258
|
|
|
@@ -277,8 +277,8 @@ ${cyan('File Operations (v2):')}
|
|
|
277
277
|
${cyan('@mkdir')} n:/path Create directory on node
|
|
278
278
|
|
|
279
279
|
${cyan('Services & Control:')}
|
|
280
|
-
${cyan('@browser')} url Open URL on GPU
|
|
281
|
-
${cyan('@docker')} cmd Run docker command on
|
|
280
|
+
${cyan('@browser')} url Open URL on thinkpad (GPU+display)
|
|
281
|
+
${cyan('@docker')} cmd Run docker command on contabo
|
|
282
282
|
${cyan('@shell')} node Enter persistent interactive shell (Ctrl+] to exit)
|
|
283
283
|
${cyan('@kernel')} n cmd Kernel operations (dmesg, sysctl, modprobe)
|
|
284
284
|
${cyan('@stream')} n cmd Real-time streaming output (tail -f, watch)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/commands/builtins.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/commands/builtins.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -22,7 +22,14 @@ const noSync = args.includes('--no-sync');
|
|
|
22
22
|
function detectNodeId() {
|
|
23
23
|
if (process.platform === 'win32')
|
|
24
24
|
return 'windows';
|
|
25
|
-
|
|
25
|
+
const hostname = (process.env.HOSTNAME ?? '').toLowerCase();
|
|
26
|
+
if (hostname.includes('contabo'))
|
|
27
|
+
return 'contabo';
|
|
28
|
+
if (hostname.includes('hostinger'))
|
|
29
|
+
return 'hostinger';
|
|
30
|
+
if (hostname.includes('thinkpad'))
|
|
31
|
+
return 'thinkpad';
|
|
32
|
+
return 'unknown';
|
|
26
33
|
}
|
|
27
34
|
async function main() {
|
|
28
35
|
const manager = new NodeManager();
|
|
@@ -41,8 +48,8 @@ async function main() {
|
|
|
41
48
|
const os = node?.os ?? 'windows';
|
|
42
49
|
const manifests = getManifests(os);
|
|
43
50
|
const engine = new SyncEngine(syncDb, config, manager, transfer);
|
|
44
|
-
registerSyncTools(server, syncDb, engine, manifests, nodeId);
|
|
45
|
-
process.stderr.write(`CyberSync:
|
|
51
|
+
registerSyncTools(server, syncDb, engine, manifests, nodeId, manager, transfer);
|
|
52
|
+
process.stderr.write(`CyberSync: 12 tools registered (node=${nodeId})\n`);
|
|
46
53
|
}
|
|
47
54
|
catch (err) {
|
|
48
55
|
process.stderr.write(`CyberSync init failed (continuing without sync): ${err.message}\n`);
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AAEA,wDAAwD;AACxD,6CAA6C;AAC7C,sEAAsE;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AACjG,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AACnG,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE1C,SAAS,YAAY;IACnB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACnD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/rest.js
CHANGED
|
@@ -17,7 +17,7 @@ function json(res, status, data) {
|
|
|
17
17
|
}
|
|
18
18
|
export function startRESTServer(manager, transfer, port) {
|
|
19
19
|
const httpServer = createServer(async (req, res) => {
|
|
20
|
-
res.setHeader('Access-Control-Allow-Origin', '
|
|
20
|
+
res.setHeader('Access-Control-Allow-Origin', 'http://localhost');
|
|
21
21
|
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, OPTIONS');
|
|
22
22
|
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
|
|
23
23
|
if (req.method === 'OPTIONS') {
|
|
@@ -54,6 +54,10 @@ export function startRESTServer(manager, transfer, port) {
|
|
|
54
54
|
// POST /api/exec — { node, command } — runs command on remote node via SSH
|
|
55
55
|
if (req.method === 'POST' && path === '/api/exec') {
|
|
56
56
|
const body = JSON.parse(await readBody(req));
|
|
57
|
+
if (typeof body.node !== 'string' || typeof body.command !== 'string') {
|
|
58
|
+
json(res, 400, { error: 'Required: { node: string, command: string }' });
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
57
61
|
const result = await manager.exec(body.node, body.command);
|
|
58
62
|
json(res, 200, result);
|
|
59
63
|
return;
|
|
@@ -61,6 +65,10 @@ export function startRESTServer(manager, transfer, port) {
|
|
|
61
65
|
// POST /api/transfer — { src, dst }
|
|
62
66
|
if (req.method === 'POST' && path === '/api/transfer') {
|
|
63
67
|
const body = JSON.parse(await readBody(req));
|
|
68
|
+
if (typeof body.src !== 'string' || typeof body.dst !== 'string') {
|
|
69
|
+
json(res, 400, { error: 'Required: { src: string, dst: string }' });
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
64
72
|
const srcParsed = parseMeshPath(body.src);
|
|
65
73
|
const dstParsed = parseMeshPath(body.dst);
|
|
66
74
|
if (!srcParsed || !dstParsed) {
|