wolfpack-bridge 1.6.1 → 1.6.2
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 +74 -87
- package/bin/install.cjs +36 -16
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
:+**++++++*++*+=-:: .. ...... .. .:..::
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
Mobile & desktop command center for AI coding agents. Control agent sessions (Claude, Codex, Gemini, or any custom command) across multiple machines from your phone or browser.
|
|
38
|
+
Mobile & desktop command center for AI coding agents. Control agent sessions (Claude, Codex, Gemini, or any custom command) across multiple machines from your phone or browser. Sessions live in a dedicated Rust PTY broker daemon, so they survive wolfpack server restarts and redeploys. Secured by [Tailscale](https://tailscale.com/) — zero-config encrypted access, no ports to open.
|
|
39
39
|
|
|
40
40
|
Install on your phone's home screen for a native app experience — scan the QR code after setup and tap **"Add to Home Screen"**.
|
|
41
41
|
|
|
@@ -53,32 +53,30 @@ Install on your phone's home screen for a native app experience — scan the QR
|
|
|
53
53
|
<img src="docs/mobile-sessions.png" width="250" alt="Mobile — session list with multi-machine support" />
|
|
54
54
|
</p>
|
|
55
55
|
<p align="center">
|
|
56
|
-
<
|
|
57
|
-
</p>
|
|
58
|
-
<p align="center">
|
|
59
|
-
<img src="docs/mobile-terminal.png" width="300" alt="Mobile — classic terminal mode" />
|
|
60
|
-
<img src="docs/mobile-ghostty.png" width="300" alt="Mobile — ghostty WASM terminal mode" />
|
|
56
|
+
<img src="docs/mobile-ghostty.png" width="300" alt="Mobile — ghostty-web terminal" />
|
|
61
57
|
</p>
|
|
62
58
|
|
|
63
59
|
## Architecture
|
|
64
60
|
|
|
65
61
|
```
|
|
66
|
-
┌─────────────┐
|
|
67
|
-
│ Phone / │
|
|
68
|
-
│ Browser
|
|
69
|
-
│ (PWA) │
|
|
70
|
-
└─────────────┘
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
62
|
+
┌─────────────┐ ┌───────────┐ ┌──────────────────────────────────────────┐
|
|
63
|
+
│ Phone / │ │ Tailscale │ │ Your Machine │
|
|
64
|
+
│ Browser │◄──►│ (HTTPS) │◄──►│ │
|
|
65
|
+
│ (PWA) │ │ mesh VPN │ │ ┌──────────┐ unix ┌──────────────┐ │
|
|
66
|
+
└─────────────┘ └───────────┘ │ │ wolfpack │ socket │ wolfpack- │ │
|
|
67
|
+
│ │ server │◄───────►│ broker │ │
|
|
68
|
+
│ │ (Bun) │ │ (Rust, PTY) │ │
|
|
69
|
+
│ │ HTTP/WS │ │ owns agents │ │
|
|
70
|
+
│ └──────────┘ └──────────────┘ │
|
|
71
|
+
└──────────────────────────────────────────┘
|
|
75
72
|
```
|
|
76
73
|
|
|
77
74
|
**Components:**
|
|
78
|
-
- **PWA** —
|
|
79
|
-
- **Server** — Bun HTTP + WebSocket. Serves embedded assets,
|
|
80
|
-
- **
|
|
81
|
-
- **
|
|
75
|
+
- **PWA** — vanilla JS, no framework. ghostty-web (WASM) renders the terminal on both mobile and desktop. Settings + multi-machine list persist in localStorage.
|
|
76
|
+
- **Server** — Bun HTTP + WebSocket. Serves embedded assets, exposes `/api/*` and the `/ws/pty` binary stream. Pure broker client — owns no PTYs.
|
|
77
|
+
- **Broker** — `wolfpack-broker`, a Rust daemon. Owns every PTY, keeps per-session output rings, and survives wolfpack server restarts. One Unix-domain socket per host (`$XDG_RUNTIME_DIR/wolfpack-broker.sock`, fallback `~/.wolfpack/broker.sock`). Wire format documented in [docs/broker-protocol.md](docs/broker-protocol.md).
|
|
78
|
+
- **Ralph** — detached subprocess that iterates through a markdown plan file, invoking agents per-task. See [docs/ralph-macchio.md](docs/ralph-macchio.md).
|
|
79
|
+
- **Agents** — Claude, Codex, Gemini, or any shell command. Agent-agnostic by design.
|
|
82
80
|
|
|
83
81
|
## Quick Install
|
|
84
82
|
|
|
@@ -100,94 +98,76 @@ curl -fsSL https://raw.githubusercontent.com/almogdepaz/wolfpack/main/install.sh
|
|
|
100
98
|
|
|
101
99
|
This will download the pre-built binary for your platform, run the setup wizard, and optionally install as a login service.
|
|
102
100
|
|
|
103
|
-
Supported platforms: macOS (Apple Silicon, Intel), Linux (x64, arm64).
|
|
101
|
+
Supported platforms: macOS (Apple Silicon, Intel), Linux (x64, arm64). Each platform package ships both `wolfpack` (the Bun binary) and `wolfpack-broker` (the Rust daemon).
|
|
104
102
|
|
|
105
103
|
### Prerequisites
|
|
106
104
|
|
|
107
105
|
- **Tailscale** *(optional)* — install from [tailscale.com/download](https://tailscale.com/download), sign in, and make sure both your computer and phone are on the same tailnet. Required for remote access.
|
|
108
|
-
- **tmux** *(optional)* — only needed if you choose the tmux backend. The default **pty** backend has no external dependencies.
|
|
109
|
-
|
|
110
|
-
### Session Backends
|
|
111
|
-
|
|
112
|
-
Wolfpack supports two backends for managing terminal sessions. You choose during setup and can switch at runtime from Settings.
|
|
113
|
-
|
|
114
|
-
| | **PTY** (default) | **tmux** |
|
|
115
|
-
|---|---|---|
|
|
116
|
-
| **Dependencies** | None | Requires tmux installed |
|
|
117
|
-
| **Session persistence** | In-memory — sessions lost on server crash/restart | tmux server is a separate process — sessions survive wolfpack restarts, deploys, and crashes |
|
|
118
|
-
| **Terminal streaming** | Direct binary WebSocket (`/ws/pty`) — low latency | Capture-pane polling (`/ws/terminal`) |
|
|
119
|
-
| **Desktop terminal** | ghostty-web with full scrollback | ghostty-web with full scrollback |
|
|
120
|
-
| **Best for** | Quick setup, no-dependency environments | Long-running agent sessions where persistence matters |
|
|
121
|
-
|
|
122
|
-
**Why tmux is more robust:** tmux runs as an independent server process. Your agent sessions live inside tmux, not inside wolfpack. If wolfpack crashes, gets redeployed, or restarts (e.g. `launchctl kickstart`), tmux sessions keep running untouched. When wolfpack comes back up, it reconnects to the existing tmux sessions automatically. With the PTY backend, a wolfpack restart kills all running sessions — any in-progress agent work is lost.
|
|
123
106
|
|
|
124
|
-
|
|
107
|
+
No other runtime dependencies. The broker is bundled.
|
|
125
108
|
|
|
126
|
-
|
|
109
|
+
### Session Persistence
|
|
127
110
|
|
|
128
|
-
|
|
111
|
+
The `wolfpack-broker` daemon owns every PTY and runs independently of the wolfpack server. If the server crashes, gets redeployed, or restarts (e.g. `launchctl kickstart`), agent sessions keep running. When the server comes back up, it reconnects to the existing broker over the Unix socket and re-attaches to live sessions automatically.
|
|
129
112
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
```tmux
|
|
133
|
-
set -g history-limit 50000
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Reload tmux or restart your sessions after changing it.
|
|
113
|
+
The broker is started by `wolfpack service install` (alongside the server) and is checked by `wolfpack doctor`.
|
|
137
114
|
|
|
138
115
|
## Usage
|
|
139
116
|
|
|
140
117
|
```bash
|
|
141
118
|
wolfpack # Start the server (runs setup on first launch)
|
|
142
119
|
wolfpack setup # Re-run the setup wizard
|
|
143
|
-
wolfpack
|
|
120
|
+
wolfpack ls # List active broker sessions
|
|
121
|
+
wolfpack kill <session> # Kill a session by name
|
|
122
|
+
wolfpack doctor # Diagnose broker socket, binaries, JWT, Tailscale
|
|
123
|
+
wolfpack migrate-plan FILE # Convert old-format plan headers to ## N. Title
|
|
124
|
+
wolfpack service install # Auto-start on login (launchd / systemd) — installs broker too
|
|
144
125
|
wolfpack service stop # Stop the background service
|
|
145
126
|
wolfpack service start # Start the background service
|
|
146
127
|
wolfpack service status # Check if running
|
|
147
128
|
wolfpack service uninstall # Remove the launch agent
|
|
148
|
-
wolfpack uninstall
|
|
129
|
+
wolfpack uninstall --yes # Remove everything (service, config, ~/.wolfpack, global command)
|
|
149
130
|
```
|
|
150
131
|
|
|
151
132
|
### Setup Wizard
|
|
152
133
|
|
|
153
134
|
On first run, `wolfpack` walks you through:
|
|
154
135
|
|
|
155
|
-
1. Checking prerequisites (
|
|
156
|
-
2.
|
|
157
|
-
3.
|
|
158
|
-
4.
|
|
159
|
-
5.
|
|
160
|
-
6.
|
|
161
|
-
7.
|
|
136
|
+
1. Checking prerequisites (Tailscale — optional)
|
|
137
|
+
2. Setting your projects directory (default: `~/Dev`)
|
|
138
|
+
3. Choosing a port (default: `18790`)
|
|
139
|
+
4. Detecting/configuring Tailscale HTTPS access
|
|
140
|
+
5. Optionally installing as a login service (which also installs the broker)
|
|
141
|
+
6. Displaying a QR code to scan with your phone
|
|
142
|
+
7. Printing JWT setup instructions
|
|
162
143
|
|
|
163
144
|
## Features
|
|
164
145
|
|
|
165
146
|
### Session Management
|
|
166
|
-
- Create, view, and kill agent sessions
|
|
167
|
-
- Agent picker — Claude, Codex, Gemini, or custom commands per session
|
|
147
|
+
- Create, view, and kill agent sessions — all owned by the broker daemon
|
|
148
|
+
- Agent picker — Claude, Codex, Gemini, or custom commands per session (configurable in Settings → Agents)
|
|
168
149
|
- Session triage — running, idle, and needs-input states with color-coded indicators
|
|
169
150
|
- Live terminal output preview on session cards
|
|
170
151
|
|
|
171
152
|
### Desktop
|
|
172
|
-
- **Multi-terminal grid** — view
|
|
153
|
+
- **Multi-terminal grid** — view multiple sessions side-by-side in a CSS grid layout. Click `+` on any sidebar card to add it to the grid, `×` to remove. Focused cell highlighted.
|
|
173
154
|
- **Collapsible sidebar** — pin or auto-hide. Shows all sessions across machines with status badges, output preview, and grid/kill buttons.
|
|
174
|
-
- **
|
|
155
|
+
- **ghostty-web terminal** — full WASM terminal emulator with direct binary `/ws/pty` connection. Per-instance isolation lets each grid cell run its own emulator.
|
|
175
156
|
- **Keyboard shortcuts:**
|
|
176
157
|
- `Cmd/Ctrl + ArrowUp/Down` — cycle between sessions
|
|
177
158
|
- `Cmd/Ctrl + ArrowLeft/Right` — navigate grid cells
|
|
178
159
|
- `Cmd/Ctrl + T` — new session (project picker)
|
|
179
|
-
- `Cmd/Ctrl + K` — clear terminal
|
|
160
|
+
- `Cmd/Ctrl + K` — clear focused terminal
|
|
180
161
|
|
|
181
162
|
### Mobile
|
|
182
|
-
- **
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
- **
|
|
186
|
-
- **
|
|
187
|
-
- **
|
|
188
|
-
- **PWA** — install as a standalone app on your phone's home screen
|
|
163
|
+
- **ghostty-web terminal** — same WASM emulator as desktop, with the on-screen keyboard suppressed until you tap the keyboard button (prevents accidental focus steals).
|
|
164
|
+
- **Keyboard accessory** — quick-action bar with Enter, Esc, arrow keys, a `git` shortcut, and copy/keyboard buttons.
|
|
165
|
+
- **Quick commands** — user-defined command chips, configurable in Settings.
|
|
166
|
+
- **Touch scrolling** — momentum physics, long-press to select text and copy.
|
|
167
|
+
- **Haptic feedback** — vibration on key actions (toggleable).
|
|
168
|
+
- **PWA** — install as a standalone app on your phone's home screen.
|
|
189
169
|
|
|
190
|
-
All settings (
|
|
170
|
+
All settings (font size, haptics, enter-sends, snapshot TTL, etc.) persist in localStorage across sessions.
|
|
191
171
|
|
|
192
172
|
### Multi-Machine
|
|
193
173
|
- One phone connects to multiple Wolfpack servers
|
|
@@ -197,7 +177,6 @@ All settings (terminal mode, font size, haptics, etc.) persist in localStorage a
|
|
|
197
177
|
|
|
198
178
|
### Other
|
|
199
179
|
- **Notifications** — browser notifications + vibration when sessions need attention
|
|
200
|
-
- **Search** — find text in terminal output with match navigation
|
|
201
180
|
- **Reconnect handling** — auto-recovers on connection drop with status indicator
|
|
202
181
|
- **Auto-resize** — terminal resizes to match your screen/grid cell
|
|
203
182
|
|
|
@@ -205,7 +184,7 @@ All settings (terminal mode, font size, haptics, etc.) persist in localStorage a
|
|
|
205
184
|
|
|
206
185
|
1. Install [Tailscale](https://tailscale.com/download) on both your computer and phone
|
|
207
186
|
2. Sign in to the same Tailscale account on both devices
|
|
208
|
-
3. Run `wolfpack setup` and
|
|
187
|
+
3. Run `wolfpack setup` — it auto-detects your Tailscale hostname and runs `tailscale serve` to expose the port over HTTPS
|
|
209
188
|
4. Scan the QR code with your phone
|
|
210
189
|
5. Tap **"Add to Home Screen"** for the native app experience
|
|
211
190
|
|
|
@@ -215,7 +194,7 @@ Tailscale's encrypted mesh network handles auth and routing — no ports to open
|
|
|
215
194
|
|
|
216
195
|
**Always use the Tailscale hostname** (e.g. `https://mybox.tail1234.ts.net`) — not raw IPs. The QR code from setup already points to the correct URL. Raw IP access (LAN or Tailscale `100.x.x.x`) bypasses Tailscale's DNS-based routing and may not be protected by CORS.
|
|
217
196
|
|
|
218
|
-
**JWT authentication** adds a second layer of protection. Without it, anyone who can reach the server port has full access to your
|
|
197
|
+
**JWT authentication** adds a second layer of protection. Without it, anyone who can reach the server port has full access to your sessions. To enable:
|
|
219
198
|
|
|
220
199
|
1. Generate a secret (minimum 32 characters):
|
|
221
200
|
```bash
|
|
@@ -242,61 +221,69 @@ Autonomous task runner. Write a markdown plan file, pick an agent, set iteration
|
|
|
242
221
|
|
|
243
222
|
## Config
|
|
244
223
|
|
|
245
|
-
Stored in `~/.wolfpack/config.json
|
|
224
|
+
Stored in `~/.wolfpack/config.json` (mode 0600):
|
|
246
225
|
|
|
247
226
|
```json
|
|
248
227
|
{
|
|
249
228
|
"devDir": "/Users/you/Dev",
|
|
250
229
|
"port": 18790,
|
|
251
|
-
"backend": "pty",
|
|
252
230
|
"tailscaleHostname": "your-machine.tailnet-name.ts.net"
|
|
253
231
|
}
|
|
254
232
|
```
|
|
255
233
|
|
|
256
|
-
Agent
|
|
234
|
+
Agent list and per-server settings stored in `~/.wolfpack/bridge-settings.json`.
|
|
235
|
+
|
|
236
|
+
The broker socket lives at `$XDG_RUNTIME_DIR/wolfpack-broker.sock` (or `~/.wolfpack/broker.sock`) and is owned by the user (filesystem permissions are the auth boundary).
|
|
257
237
|
|
|
258
238
|
## Contributing
|
|
259
239
|
|
|
260
240
|
### Dev Setup
|
|
261
241
|
|
|
262
|
-
Requires [Bun](https://bun.sh/) (v1.2+).
|
|
242
|
+
Requires [Bun](https://bun.sh/) (v1.2+) and a [Rust toolchain](https://rustup.rs/) (for building the broker).
|
|
263
243
|
|
|
264
244
|
```bash
|
|
265
245
|
git clone https://github.com/almogdepaz/wolfpack.git
|
|
266
246
|
cd wolfpack
|
|
267
247
|
bun install
|
|
268
|
-
bun run scripts/gen-assets.ts
|
|
269
|
-
|
|
248
|
+
bun run scripts/gen-assets.ts # generate embedded assets (required once)
|
|
249
|
+
cargo build --release --manifest-path broker/Cargo.toml # build the broker
|
|
250
|
+
bun run src/cli/index.ts # start the server locally
|
|
270
251
|
```
|
|
271
252
|
|
|
253
|
+
For an end-to-end local install (build + service install + restart), use `scripts/deploy-local.sh`.
|
|
254
|
+
|
|
272
255
|
### Testing
|
|
273
256
|
|
|
274
257
|
```bash
|
|
275
|
-
bun test
|
|
276
|
-
bun test tests/unit/
|
|
277
|
-
bun test tests/unit/plan-parsing.test.ts
|
|
258
|
+
bun test # all bun tests
|
|
259
|
+
bun test tests/unit/ # unit tests only
|
|
260
|
+
bun test tests/unit/plan-parsing.test.ts # single file
|
|
261
|
+
bunx playwright test # e2e (uses test-server harness)
|
|
278
262
|
```
|
|
279
263
|
|
|
280
|
-
|
|
281
|
-
- `tests/unit/` — plan parsing, ralph log parsing, escaping, validation, grid logic
|
|
264
|
+
Test layout:
|
|
265
|
+
- `tests/unit/` — pure-logic tests (plan parsing, ralph log parsing, escaping, validation, grid logic, broker codec, etc.)
|
|
266
|
+
- `tests/integration/` — API routes, broker backend, ralph loop endpoints, WS dispatch
|
|
282
267
|
- `tests/snapshot/` — launchd plist and systemd unit generation
|
|
283
|
-
- `tests/
|
|
268
|
+
- `tests/e2e/` — Playwright end-to-end (`test:e2e` / `test:e2e:headed` scripts)
|
|
269
|
+
|
|
270
|
+
The Rust broker has its own tests under `broker/tests/` (`cargo test` from `broker/`).
|
|
284
271
|
|
|
285
272
|
### Asset Pipeline
|
|
286
273
|
|
|
287
274
|
Frontend files live in `public/`. The server doesn't serve from disk — everything is embedded:
|
|
288
275
|
|
|
289
|
-
1. Edit files in `public/` (HTML,
|
|
290
|
-
2. Run `bun run scripts/gen-assets.ts` — embeds
|
|
291
|
-
3. **Do NOT edit `public-assets.ts` manually** — it's auto-generated
|
|
276
|
+
1. Edit files in `public/` (HTML, TS, CSS, manifest, etc.)
|
|
277
|
+
2. Run `bun run scripts/gen-assets.ts` — bundles `public/app.ts` and ghostty-web, then embeds every file from `public/` into `src/public-assets.ts` (binary→base64, text→string)
|
|
278
|
+
3. **Do NOT edit `src/public-assets.ts` manually** — it's auto-generated
|
|
292
279
|
|
|
293
280
|
### Building Binaries
|
|
294
281
|
|
|
295
282
|
```bash
|
|
296
|
-
bun run scripts/build.ts # assets + 4 platform binaries in dist/
|
|
283
|
+
bun run scripts/build.ts # assets + broker + 4 platform binaries + npm pkg dirs in dist/
|
|
297
284
|
```
|
|
298
285
|
|
|
299
|
-
Compiles for: linux-x64, linux-arm64, darwin-x64, darwin-arm64.
|
|
286
|
+
Compiles `wolfpack` for: linux-x64, linux-arm64, darwin-x64, darwin-arm64. The script also stages `wolfpack-broker` per platform — in CI it expects pre-built broker binaries under `dist/broker/<target>/`; locally it falls back to a host-arch-only `cargo build --release`.
|
|
300
287
|
|
|
301
288
|
### PR Conventions
|
|
302
289
|
|
package/bin/install.cjs
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* postinstall — copies platform
|
|
3
|
+
* postinstall — copies platform binaries from the optional dependency to bin/.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Two binaries ship per platform package:
|
|
6
|
+
* - wolfpack (the bun-compiled server + CLI)
|
|
7
|
+
* - wolfpack-broker (the rust PTY broker daemon)
|
|
8
|
+
*
|
|
9
|
+
* Both are placed next to bin/run.cjs so:
|
|
10
|
+
* 1. run.cjs uses the fast local path for `wolfpack`
|
|
11
|
+
* 2. service.ts:brokerProgramPath() finds wolfpack-broker via its
|
|
12
|
+
* "co-located with the running wolfpack binary" search rule
|
|
13
|
+
*
|
|
14
|
+
* If the platform package isn't installed (e.g. bunx skips
|
|
15
|
+
* optionalDependencies), this exits cleanly and run.cjs handles resolution
|
|
16
|
+
* at runtime; the broker won't be locatable in that case until the user
|
|
17
|
+
* reinstalls properly, but `wolfpack service install` will print a clear
|
|
18
|
+
* "could not locate wolfpack-broker" error rather than failing silently.
|
|
8
19
|
*/
|
|
9
20
|
const { platform, arch } = require("node:os");
|
|
10
21
|
const { copyFileSync, chmodSync, existsSync } = require("node:fs");
|
|
@@ -12,24 +23,33 @@ const { join, dirname } = require("node:path");
|
|
|
12
23
|
|
|
13
24
|
const key = `${platform()}-${arch()}`;
|
|
14
25
|
const pkg = `wolfpack-bridge-${key}`;
|
|
15
|
-
const dest = join(__dirname, "wolfpack");
|
|
16
26
|
|
|
17
|
-
// resolve
|
|
18
|
-
let
|
|
27
|
+
// resolve platform-specific optional package
|
|
28
|
+
let pkgRoot;
|
|
19
29
|
try {
|
|
20
|
-
|
|
21
|
-
src = join(dirname(pkgJson), "wolfpack");
|
|
30
|
+
pkgRoot = dirname(require.resolve(`${pkg}/package.json`));
|
|
22
31
|
} catch {
|
|
23
32
|
console.log(`wolfpack: platform package ${pkg} not found, skipping postinstall`);
|
|
24
|
-
console.log("wolfpack:
|
|
33
|
+
console.log("wolfpack: binaries will be resolved at runtime");
|
|
25
34
|
process.exit(0);
|
|
26
35
|
}
|
|
27
36
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
37
|
+
function copyBinary(name) {
|
|
38
|
+
const src = join(pkgRoot, name);
|
|
39
|
+
const dest = join(__dirname, name);
|
|
40
|
+
if (!existsSync(src)) {
|
|
41
|
+
console.log(`wolfpack: ${name} not found in ${pkg}, skipping`);
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
copyFileSync(src, dest);
|
|
45
|
+
chmodSync(dest, 0o755);
|
|
46
|
+
return true;
|
|
31
47
|
}
|
|
32
48
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
49
|
+
const gotMain = copyBinary("wolfpack");
|
|
50
|
+
const gotBroker = copyBinary("wolfpack-broker");
|
|
51
|
+
if (gotMain && gotBroker) {
|
|
52
|
+
console.log(`wolfpack: installed ${key} binaries (wolfpack + wolfpack-broker)`);
|
|
53
|
+
} else if (gotMain) {
|
|
54
|
+
console.log(`wolfpack: installed ${key} wolfpack binary; broker missing (rebuild platform package)`);
|
|
55
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wolfpack-bridge",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Mobile command center for tmux-based AI agent sessions",
|
|
6
6
|
"bin": {
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"postinstall": "node bin/install.cjs"
|
|
18
18
|
},
|
|
19
19
|
"optionalDependencies": {
|
|
20
|
-
"wolfpack-bridge-darwin-arm64": "1.6.
|
|
21
|
-
"wolfpack-bridge-darwin-x64": "1.6.
|
|
22
|
-
"wolfpack-bridge-linux-arm64": "1.6.
|
|
23
|
-
"wolfpack-bridge-linux-x64": "1.6.
|
|
20
|
+
"wolfpack-bridge-darwin-arm64": "1.6.2",
|
|
21
|
+
"wolfpack-bridge-darwin-x64": "1.6.2",
|
|
22
|
+
"wolfpack-bridge-linux-arm64": "1.6.2",
|
|
23
|
+
"wolfpack-bridge-linux-x64": "1.6.2"
|
|
24
24
|
},
|
|
25
25
|
"keywords": [
|
|
26
26
|
"tmux",
|