@openscout/scout 0.2.63 → 0.2.65
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 +40 -3
- package/bin/openscout-runtime.mjs +42 -0
- package/dist/client/assets/index-BOdG2WWL.css +1 -0
- package/dist/client/assets/index-mL1LA8IG.js +159 -0
- package/dist/client/index.html +2 -2
- package/dist/main.mjs +3263 -1416
- package/dist/pair-supervisor.mjs +554 -156
- package/dist/runtime/base-daemon.mjs +1554 -0
- package/dist/runtime/broker-daemon.mjs +42956 -0
- package/dist/runtime/broker-process-manager.mjs +880 -0
- package/dist/runtime/mesh-discover.mjs +906 -0
- package/dist/scout-control-plane-web.mjs +3507 -1717
- package/dist/scout-web-server.mjs +3507 -1717
- package/package.json +4 -6
- package/dist/client/assets/arc.es-B2XMIUBi.js +0 -188
- package/dist/client/assets/index-DB4dwQr2.css +0 -1
- package/dist/client/assets/index-DiSMCren.js +0 -158
- package/dist/control-plane-client/assets/addon-fit-DX4qG4td.js +0 -1
- package/dist/control-plane-client/assets/addon-webgl-DCtw1yLn.js +0 -64
- package/dist/control-plane-client/assets/arc.es-CcKhIPRw.js +0 -188
- package/dist/control-plane-client/assets/index-BGcMYoYJ.css +0 -1
- package/dist/control-plane-client/assets/index-BkEXBsPk.js +0 -140
- package/dist/control-plane-client/assets/xterm-B-qIQCd3.js +0 -16
- package/dist/control-plane-client/index.html +0 -16
- package/dist/control-plane-client/openscout-icon.png +0 -0
- /package/dist/{control-plane-client → client}/assets/index-TVkH_WDG.js +0 -0
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ bun add -g @openscout/scout
|
|
|
9
9
|
scout --help
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
`@openscout/scout` is the
|
|
12
|
+
`@openscout/scout` is the public package name. It installs the `scout` command and carries the bundled broker/runtime and web UI. Installing it does not start services; commands such as `scout setup`, `scout up`, and `scout server start` activate them explicitly.
|
|
13
13
|
|
|
14
14
|
## Canonical Flow
|
|
15
15
|
|
|
@@ -29,7 +29,7 @@ scout ask --to dewey "can you review our docs?"
|
|
|
29
29
|
- `~/Library/Application Support/OpenScout/relay-agents.json` for compatibility with the existing machine-local agent registry
|
|
30
30
|
- `.openscout/project.json` for the current repo when needed
|
|
31
31
|
|
|
32
|
-
It also discovers local and project-backed agents from your configured workspace roots, installs the
|
|
32
|
+
It also discovers local and project-backed agents from your configured workspace roots, installs the base Scout service, attempts to start it, and ensures Caddy is available for the local `scout.local` edge. On macOS, setup installs missing Caddy with `brew install caddy`; otherwise install Caddy yourself or set `OPENSCOUT_CADDY_BIN`.
|
|
33
33
|
|
|
34
34
|
`scout init` writes `~/.openscout/config.json` with the broker, web, and pairing ports that every Scout component reads. Run it once after install, or with `--force` to overwrite.
|
|
35
35
|
|
|
@@ -172,6 +172,33 @@ Aliases: `runtime:` = `harness:`, `persona:` = `profile:`, `branch:` / `worktree
|
|
|
172
172
|
|
|
173
173
|
If direct send/ask still comes back unresolved, treat that as a routing problem, not a mere "target is offline" problem. The right follow-up is to disambiguate the target, inspect broker context with `scout who` / `scout latest`, or create/register the missing identity. Do not default to pushing the bring-up step back onto the operator for a known target.
|
|
174
174
|
|
|
175
|
+
Local product handoffs use the public Scout address:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
scout send --to scout "message for the local Scout inbox"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Broker names and concrete node or agent ids are diagnostic details. Normal send
|
|
182
|
+
output should say whether the message was sent, not which broker or internal
|
|
183
|
+
session handled it. Reusing an existing session is an explicit continuity
|
|
184
|
+
choice, not the default.
|
|
185
|
+
|
|
186
|
+
Session refs are separate route targets for continuing a concrete bound
|
|
187
|
+
session. Use the bare `ref:<suffix>` form in receipts/history, and pass the
|
|
188
|
+
suffix with `--ref`; do not encode refs into `@agent#harness?model` identity
|
|
189
|
+
syntax.
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
scout ask --ref 7f3a9c21 "continue from that handoff"
|
|
193
|
+
scout send --ref 7f3a9c21 "status for that same session"
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Diagnostic views may show both layers, for example:
|
|
197
|
+
|
|
198
|
+
```text
|
|
199
|
+
sent to Scout via DM (ref:7f3a9c21)
|
|
200
|
+
```
|
|
201
|
+
|
|
175
202
|
## Current Commands
|
|
176
203
|
|
|
177
204
|
```bash
|
|
@@ -227,10 +254,20 @@ scout server open
|
|
|
227
254
|
scout server start
|
|
228
255
|
scout server start --port 3200
|
|
229
256
|
scout server open --path /agents/arc-codex-2.master.mini
|
|
257
|
+
scout server start --public-origin https://scout.local
|
|
258
|
+
scout server edge --local-name m1
|
|
230
259
|
scout server start --vite-url http://127.0.0.1:43173 # SPA dev server
|
|
231
260
|
scout server start --static --static-root /custom/client
|
|
232
261
|
```
|
|
233
262
|
|
|
234
263
|
`scout server open` reuses an already-running matching Scout server on that port, or starts one in the background and opens the browser for you. Use `scout server` or `scout server help` for full flags.
|
|
235
264
|
|
|
236
|
-
|
|
265
|
+
The application server binds to `0.0.0.0` by default, treats `scout.local` as the local portal name, and derives the node URL as `<machine>.scout.local` unless the user configures a short alias such as `m1`. `scout server edge` publishes `scout.local` plus the node host with Bonjour/mDNS and runs Caddy against the active web port. The managed edge serves HTTP on port `80` for zero-cert local browsing and HTTPS on port `443` with Caddy's local CA; the HTTPS path needs the local CA trusted once by browsers that enforce their own trust store.
|
|
266
|
+
|
|
267
|
+
`scout setup` verifies Caddy for this path. The setup command installs it with Homebrew on macOS when `caddy` is not already available, but Scout still runs Caddy directly with the generated `~/.scout/local-edge/Caddyfile` instead of registering a separate Homebrew service. The base LaunchAgent is labelled `dev.openscout` in source/dev installs and supervises the broker, local edge, web startup, and menu bar app; `scout doctor` prints the exact `launchctl bootout ...` command for the current mode.
|
|
268
|
+
|
|
269
|
+
When the edge is up but the web app is down, Caddy serves a same-origin "Start Scout" page. The button calls Caddy's internal `/__openscout/web/start` path, which proxies to the always-on broker and starts the web server while keeping the user-facing URL at `scout.local` or `<name>.scout.local`.
|
|
270
|
+
|
|
271
|
+
`packages/web` remains the internal web workspace. Published installs get that same server and client through `@openscout/scout`.
|
|
272
|
+
|
|
273
|
+
For source development, `bun run dev:edge -- --local-name m1` starts the web dev stack and the local edge together. It generates Caddy config against the actual selected dev port, so worktree-specific ports and busy-port fallback still route through `scout.local`.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
|
|
3
|
+
import { spawn } from "node:child_process";
|
|
4
|
+
import { existsSync } from "node:fs";
|
|
5
|
+
import { dirname, resolve } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
|
|
8
|
+
const binDir = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const runtimeDistDir = resolve(binDir, "../dist/runtime");
|
|
10
|
+
|
|
11
|
+
const entrypoints = {
|
|
12
|
+
broker: resolve(runtimeDistDir, "broker-daemon.mjs"),
|
|
13
|
+
service: resolve(runtimeDistDir, "broker-process-manager.mjs"),
|
|
14
|
+
discover: resolve(runtimeDistDir, "mesh-discover.mjs"),
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const [, , command = "service", ...args] = process.argv;
|
|
18
|
+
const entrypoint = entrypoints[command];
|
|
19
|
+
|
|
20
|
+
if (!entrypoint) {
|
|
21
|
+
console.error(`Unknown openscout-runtime command: ${command}`);
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (!existsSync(entrypoint)) {
|
|
26
|
+
console.error(
|
|
27
|
+
"Scout runtime dist entry is missing. Reinstall @openscout/scout or rebuild the package.",
|
|
28
|
+
);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const child = spawn(process.execPath, [entrypoint, ...args], {
|
|
33
|
+
stdio: "inherit",
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
child.on("exit", (code, signal) => {
|
|
37
|
+
if (signal) {
|
|
38
|
+
process.kill(process.pid, signal);
|
|
39
|
+
} else {
|
|
40
|
+
process.exit(code ?? 0);
|
|
41
|
+
}
|
|
42
|
+
});
|