kylon-cli 0.3.10-next.702 → 0.3.10-next.704

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
@@ -76,6 +76,74 @@ service can be installed (a source build, or a Windows machine whose policy
76
76
  blocks scheduled tasks) the daemon runs in the foreground until `Ctrl+C`, and
77
77
  `connect` says so.
78
78
 
79
+ ### `kylon onboard`
80
+
81
+ `kylon onboard` is the terminal-first way to start: it creates a **new**
82
+ workspace from the Claude Code context already on this machine. Run it from
83
+ your project directory, or install and onboard in one line:
84
+
85
+ ```bash
86
+ curl -fsSL https://api.kylon.io/install.sh | sh -s -- onboard
87
+ ```
88
+
89
+ The installer hands `kylon onboard` the controlling terminal for its one local
90
+ question; on a machine without one (CI, a headless box) it passes `--yes` and
91
+ the browser confirmation is the only gate.
92
+
93
+ It detects, offline and read-only, the project (the nearest `.git` ancestor,
94
+ whose directory name becomes the workspace name), the `CLAUDE.md` instruction
95
+ files (project, `.claude/`, and user-level), the skill directories under
96
+ `.claude/skills/` that carry a `SKILL.md`, and the project's Claude Code memory
97
+ entries. Env files, credential-shaped content, binaries, empty files, oversized
98
+ files, and symlinks are never uploaded. It prints what it found, asks once
99
+ (Enter confirms), then opens your browser: you sign in or sign up, review the
100
+ proposal, rename or untick anything, and press one button. The workspace, its
101
+ Rooms, the agent, its persona, its skills, and its memory are created there;
102
+ the terminal then connects this computer's agent and starts the local runtime.
103
+ Nothing durable exists until you press that button — an abandoned run leaves
104
+ only expiring server-side state.
105
+
106
+ It never attaches to an existing workspace. For that, use `kylon login` and
107
+ create the agent in the Web UI.
108
+
109
+ A computer can currently be connected to one workspace at a time, so `onboard`
110
+ refuses when this installation already holds a connection — run
111
+ `kylon disconnect` first. It also refuses once this machine holds credentials
112
+ for five workspaces on the same server. (The one-connection rule is interim;
113
+ multi-workspace binding is a planned change.)
114
+
115
+ If the run is interrupted after the browser has confirmed (a dropped connection,
116
+ a provider update that failed, a closed terminal), the workspace exists but the
117
+ agent is not yet bound. Run `kylon onboard` again: it finds the resume record it
118
+ left in `~/.kylon/onboard-pending.json` (mode `0600`, holding the request's
119
+ device code and PKCE verifier) and finishes binding that workspace instead of
120
+ creating another. A record the server has since dropped is discarded and the
121
+ run starts over, while a record whose workspace was already created is kept with
122
+ instructions (`kylon login --workspace <id>`, then connect the agent from its
123
+ profile in the browser) until you pass `--discard-pending` to start a different
124
+ workspace on purpose. Discarding a request the browser has not answered yet is
125
+ refused while it is still open (cancel it on the browser page or wait for it to
126
+ expire), because a tab left open on it could still create a workspace this
127
+ computer would then have no way to reach; a record that has become unreadable
128
+ also stops the run until it is repaired or discarded, and so does a damaged
129
+ `computer-session.json`, which is read strictly at the one-connection check. One `kylon onboard` runs per computer at a time (a
130
+ second concurrent run is refused up front; a run that was paused for minutes
131
+ while another took its place stops rather than continuing), and a resumed run
132
+ applies the same one-connection rule as a fresh one. `--json` never starts Claude Code's interactive sign-in; a
133
+ signed-out Claude Code fails with the command to run, and stdout stays one JSON
134
+ document. A workspace credential that cannot be saved locally is revoked
135
+ server-side rather than left live.
136
+
137
+ For agent-driven runs, `--yes` skips the local prompt and `--json` (which
138
+ requires `--yes`) prints
139
+ `{ ok, server_url, workspace_id, workspace_name, agent_id, agent_name, room_id, workspace_url, credentials_path }`
140
+ on stdout — never the API key or the link token — while the browser URL and
141
+ user code go to stderr so a human can still complete the confirmation.
142
+ `--workspace-name` and `--agent-name` override the detected names,
143
+ `--cwd <dir>` detects somewhere other than the working directory, `--no-start`
144
+ connects without starting the runtime, and `--no-modify-path` leaves shell
145
+ profiles untouched.
146
+
79
147
  The dist-tag tracks the environment: production uses `@latest`, dev uses
80
148
  `@next` (newest prerelease). To pin a specific build, use `kylon-cli@X.Y.Z`.
81
149
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.3.10-next.702",
3
- "fingerprint": "24b363bc5005b7016ae5e9d3d6920416698649bc833845a706666ba5ee8d5c04",
4
- "source_commit": "6c1ad428f3793d9ce23c89172144cb93aebd27a5"
2
+ "version": "0.3.10-next.704",
3
+ "fingerprint": "7fd019050692198b501871b4a27034a28ab79839c90e857440990f9f272fcd73",
4
+ "source_commit": "b5205f3f9833d75c2da64c67530da3af1ddad661"
5
5
  }