@dev.sail.money/sailor 1.3.0-210 → 1.3.0-211

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 CHANGED
@@ -170,6 +170,7 @@ sailor trigger github # fire the agent's GitHub Actions workflow on demand
170
170
 
171
171
  # Dashboard
172
172
  sailor ui start # prints the per-project dashboard URL
173
+ sailor ui start --expose tailscale # also expose it on your tailnet over HTTPS (see Dashboard section)
173
174
 
174
175
  # Maintenance
175
176
  sailor update # re-sync skills, AGENTS.md, and tooling files after a CLI upgrade
@@ -263,6 +264,37 @@ sailor ui status
263
264
  sailor ui stop
264
265
  ```
265
266
 
267
+ ### Remote access over your tailnet (HTTPS) — optional
268
+
269
+ The dashboard is local-only by default. To reach it from another device (e.g. a
270
+ remote operator box), expose it over your [Tailscale](https://tailscale.com)
271
+ tailnet on HTTPS:
272
+
273
+ ```bash
274
+ sailor ui start --expose tailscale
275
+ # → Sailor UI started at http://localhost:<port>
276
+ # → Exposed on your tailnet at https://<node>.<tailnet>.ts.net/
277
+ ```
278
+
279
+ It uses `tailscale serve` (tailnet-private), **never `funnel`** — only devices on
280
+ your tailnet can reach it, not the public internet. `sailor ui stop` tears the
281
+ tailnet proxy down along with the local server.
282
+
283
+ Requirements:
284
+
285
+ - `tailscale` installed and logged in (`tailscale up`).
286
+ - Tailscale **Serve** enabled for your tailnet, plus **HTTPS certificates**
287
+ (admin console → DNS → Enable HTTPS). If Serve is disabled, the command prints
288
+ the enable link instead of reporting success.
289
+
290
+ When exposed, the tailnet origin is added to the dashboard's CORS allowlist
291
+ automatically. To allow additional origins (e.g. a custom HTTPS host in front of
292
+ the station), set a comma-separated list — the local origin is always allowed:
293
+
294
+ ```bash
295
+ SAILOR_CORS_ORIGINS=https://hermes.example.ts.net,https://another.host
296
+ ```
297
+
266
298
  ---
267
299
 
268
300
  ## Agent-driven onboarding & custom mandates
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev.sail.money/sailor",
3
- "version": "1.3.0-210",
3
+ "version": "1.3.0-211",
4
4
  "description": "Operator toolkit for Sail Protocol",
5
5
  "bin": {
6
6
  "sailor": "packages/cli/dist/index.cjs"
@@ -5,7 +5,7 @@
5
5
  * Do not edit manually — run `pnpm build` to regenerate.
6
6
  *
7
7
  * Spec version : 1.2.0
8
- * Generated at : 2026-06-25T14:29:20.609Z
8
+ * Generated at : 2026-06-25T14:31:14.298Z
9
9
  */
10
10
  export declare const SAIL_INTELLIGENCE_BASE_URL = "https://api.sail.money";
11
11
  export declare const SAIL_INTELLIGENCE_DOCS_URL = "https://api.sail.money/docs";
@@ -5,7 +5,7 @@
5
5
  * Do not edit manually — run `pnpm build` to regenerate.
6
6
  *
7
7
  * Spec version : 1.2.0
8
- * Generated at : 2026-06-25T14:29:20.609Z
8
+ * Generated at : 2026-06-25T14:31:14.298Z
9
9
  */
10
10
  export const SAIL_INTELLIGENCE_BASE_URL = "https://api.sail.money";
11
11
  export const SAIL_INTELLIGENCE_DOCS_URL = "https://api.sail.money/docs";
@@ -13,11 +13,13 @@ Two distinct local servers. Both are per-project, both write state under `.sail/
13
13
  sailor ui start # spawns a detached Express server, prints the URL, returns immediately
14
14
  sailor ui status # ● running http://localhost:<port> (pid N)
15
15
  sailor ui stop # SIGTERM via the pid file
16
+ sailor ui start --expose tailscale # also serve it on the tailnet over HTTPS (opt-in)
16
17
  ```
17
18
 
18
- - Port: deterministic per project — `3333 + (hash(projectPath) % 667)`, i.e. somewhere in 3333–3999, bumped to the next free port if taken. **Do not assume 3333** — always use the URL the command prints or read `.sail/runtime/ui.json` (`{ pid, port, startedAt }`).
19
+ - Port: deterministic per project — `3333 + (hash(projectPath) % 667)`, i.e. somewhere in 3333–3999, bumped to the next free port if taken. **Do not assume 3333** — always use the URL the command prints or read `.sail/runtime/ui.json` (`{ pid, port, startedAt, exposed }`).
19
20
  - The server serves the pre-built React app (`SERVE_DIST=1`) and a local `/api` that reads `.sail/` state (`SAIL_DIR` env).
20
21
  - `ui start` does not block — no `&` needed.
22
+ - `--expose tailscale` (optional): proxies the dashboard onto the operator's tailnet over HTTPS via `tailscale serve` (tailnet-private, never `funnel`). Requires `tailscale` installed + logged in, and Serve + HTTPS enabled for the tailnet (else the command prints the enable link). `ui stop` tears the proxy down. To allow extra browser origins, set `SAILOR_CORS_ORIGINS` (comma-separated; the local origin is always allowed).
21
23
 
22
24
  ## Signing station — `sailor station`
23
25