@skylence-ai/skyline 1.0.32 → 1.0.34

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.
Files changed (3) hide show
  1. package/README.md +14 -11
  2. package/package.json +10 -7
  3. package/postinstall.js +20 -0
package/README.md CHANGED
@@ -39,23 +39,25 @@ dependency — no native installer or compile step. Alternatives:
39
39
  `cargo binstall skyline`, or a prebuilt archive from
40
40
  [GitHub Releases](https://github.com/skylence-be/binary-skyline/releases).
41
41
 
42
- ### 2. Start the shared background service (pick any free port)
43
- ```bash
44
- skyline daemon start --port 7333
45
- ```
42
+ ### 2. Bootstrap the daemon and agent wiring
46
43
 
47
- To survive reboots, register it as an OS service instead: `skyline daemon install --port 7333` (see [docs/install.md](https://github.com/skylence-be/binary-skyline/blob/main/docs/install.md) for details).
48
-
49
- ### 3. Tell your AI client (here, Claude Code) about it
50
44
  ```bash
51
- claude mcp add --scope user --transport http skyline http://127.0.0.1:7333/mcp
45
+ skyline setup
52
46
  ```
53
47
 
54
- Check it is up with `skyline daemon status` (the port should read `running`). That is it.
48
+ `skyline setup` is the idempotent, cross-package-manager setup path. It installs
49
+ the shared HTTP daemon as a supervised autostart service on port 7333, wires
50
+ supported AI agents to `http://127.0.0.1:7333/mcp`, and best-effort installs the
51
+ Skyline marketplace plugins for agent CLIs already on PATH. Re-run with
52
+ `skyline setup --force` after changing agent installs or PATH.
53
+
54
+ npm may run this for you as a best-effort postinstall hook, but modern package
55
+ managers can block lifecycle scripts. If in doubt, run `skyline setup` once.
55
56
 
57
+ Check it is up with `skyline daemon status` (the port should read `running`).
56
58
  Other install methods are in [docs/install.md](https://github.com/skylence-be/binary-skyline/blob/main/docs/install.md).
57
59
 
58
- ### 4. Prompts for your agent
60
+ ### 3. Prompts for your agent
59
61
 
60
62
  Paste this into your agent's instructions so it picks the right tool:
61
63
 
@@ -66,7 +68,7 @@ Prefer skyline's MCP tools over your built-in file read, edit, and search tools
66
68
  Or skip the manual setup entirely and hand your agent this:
67
69
 
68
70
  ```text
69
- Set up skyline for me: install it with `npm install -g @skylence-ai/skyline` (prebuilt binaries for every platform, incl Windows arm64), install the shared HTTP MCP daemon as a supervised autostart service with `skyline daemon install --port 7333` (so it survives sleep cycles and restarts itself if it dies; plain `skyline daemon start` runs unsupervised and dies with its parent), register it for all my projects with `claude mcp add --scope user --transport http skyline http://127.0.0.1:7333/mcp`, then verify: `skyline daemon status` must show the port as `running`, and `claude mcp list` must show skyline as connected. Do NOT probe the endpoint with raw curl: it is a stateful streamable-HTTP MCP server that requires an initialize handshake, an Accept header for both application/json and text/event-stream, and a session id, so ad-hoc curl calls fail by design; `claude mcp list` is the correct connectivity check, and the tools (e.g. `skyline_version`) become callable in your next session. If the port is taken, pick a free one and redo both the install and add commands with it.
71
+ Set up skyline for me: install it with `npm install -g @skylence-ai/skyline` (prebuilt binaries for every platform, incl Windows arm64), run `skyline setup` to install the shared HTTP MCP daemon as a supervised autostart service and wire supported agents to it, then verify: `skyline daemon status` must show port 7333 as `running`, and the agent's MCP list/status command must show skyline as connected. Do NOT probe the endpoint with raw curl: it is a stateful streamable-HTTP MCP server that requires an initialize handshake, an Accept header for both application/json and text/event-stream, and a session id, so ad-hoc curl calls fail by design; the agent's MCP status command is the correct connectivity check, and the tools (e.g. `skyline_version`) become callable in your next session. If the port is taken, run `skyline daemon install --port <free-port>` and configure agents to `http://127.0.0.1:<free-port>/mcp`.
70
72
  ```
71
73
 
72
74
  ## The numbers
@@ -144,6 +146,7 @@ skyline is one Rust binary with two faces: a command-line tool and an MCP server
144
146
  | Observability streams (audit, devlog, bench) | `skyline audit/devlog/bench` | `skyline_observability_*`, tail and prune tools |
145
147
  | Manage the background daemon | `skyline daemon …` | (CLI) |
146
148
  | Start the daemon on every boot | `skyline daemon install` | (CLI) |
149
+ | Bootstrap daemon + agent wiring | `skyline setup` | (CLI) |
147
150
  | Health check | `skyline doctor` | (CLI) |
148
151
  ### Understanding code, not just matching text
149
152
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skylence-ai/skyline",
3
- "version": "1.0.32",
3
+ "version": "1.0.34",
4
4
  "description": "Content-hash line editor — CLI and MCP server",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -21,15 +21,18 @@
21
21
  "node": ">=16"
22
22
  },
23
23
  "preferUnplugged": true,
24
+ "scripts": {
25
+ "postinstall": "node postinstall.js"
26
+ },
24
27
  "bin": {
25
28
  "skyline": "bin.js"
26
29
  },
27
30
  "optionalDependencies": {
28
- "@skylence-ai/skyline-darwin-arm64": "1.0.32",
29
- "@skylence-ai/skyline-darwin-x64": "1.0.32",
30
- "@skylence-ai/skyline-linux-arm64": "1.0.32",
31
- "@skylence-ai/skyline-linux-x64": "1.0.32",
32
- "@skylence-ai/skyline-win32-x64": "1.0.32",
33
- "@skylence-ai/skyline-win32-arm64": "1.0.32"
31
+ "@skylence-ai/skyline-darwin-arm64": "1.0.34",
32
+ "@skylence-ai/skyline-darwin-x64": "1.0.34",
33
+ "@skylence-ai/skyline-linux-arm64": "1.0.34",
34
+ "@skylence-ai/skyline-linux-x64": "1.0.34",
35
+ "@skylence-ai/skyline-win32-x64": "1.0.34",
36
+ "@skylence-ai/skyline-win32-arm64": "1.0.34"
34
37
  }
35
38
  }
package/postinstall.js ADDED
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ // Package-manager lifecycle scripts are increasingly blocked by default. When
5
+ // this hook does run, treat it as a best-effort convenience; the real,
6
+ // idempotent bootstrap is `skyline setup`.
7
+ if (process.env.CI || process.env.SKYLINE_NO_AUTO_SETUP) process.exit(0);
8
+
9
+ const { spawnSync } = require("child_process");
10
+ const path = require("path");
11
+ const bin = path.join(__dirname, "bin.js");
12
+ const node = process.execPath;
13
+
14
+ const r = spawnSync(node, [bin, "setup"], { stdio: "inherit" });
15
+ const code = r.status ?? 1;
16
+ if (r.error || code !== 0) {
17
+ console.warn(
18
+ "skyline: postinstall setup skipped or failed; run `skyline setup` once after install."
19
+ );
20
+ }