@runneth/cli 0.0.0-sha.38007d8a11bd.production → 0.0.0-sha.41910c2f7cce.production

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
@@ -40,7 +40,7 @@ runneth send [--name default] [--timeout-ms 600000] [--stdin] -- <command...>
40
40
  runneth status [--name default]
41
41
  runneth list
42
42
  runneth close [--name default]
43
- runneth oauth login [--resource <url>] [--client-name "Runneth MCP"] [--scope <scope>] [--no-open]
43
+ runneth oauth login [--resource <url>] [--client-id|--clientid <id>] [--client-secret|--secret <value>] [--client-name "Runneth MCP"] [--scope <scope>] [--no-open]
44
44
  runneth oauth status [--resource <url>]
45
45
  runneth oauth logout [--resource <url>]
46
46
  runneth chat --workspace <workspace-id> [--api <builder-url>] [--resource <url>] [--auth mondrian|builder] [--conversation <id>]
@@ -52,8 +52,8 @@ runneth ssh target add <name> (--host <host> | --ssh-url <url>) [--resource <url
52
52
  runneth ssh target import <file>
53
53
  runneth ssh target list
54
54
  runneth ssh target use <name>
55
- runneth ssh [--target <name>] [--unique-key | --identity-file <path>] [-- remote-command]
56
- runneth ssh stdio [--target <name>] [--unique-key | --identity-file <path>]
55
+ runneth ssh [--conversation <id> --workspace <workspace-id> | --target <name> | --host <host> | --ssh-url <url>] [--api <builder-url>] [--resource <url>] [--unique-key | --identity-file <path>] [-- remote-command]
56
+ runneth ssh stdio [--conversation <id> --workspace <workspace-id> | --target <name> | --host <host> | --ssh-url <url>] [--api <builder-url>] [--resource <url>] [--unique-key | --identity-file <path>]
57
57
  runneth skills install [--agent claude|codex|all]
58
58
  runneth shutdown
59
59
  ```
@@ -72,12 +72,16 @@ use a different state directory.
72
72
 
73
73
  ## OAuth
74
74
 
75
- `runneth-cli oauth login` performs OAuth protected-resource discovery, dynamic
76
- client registration as a public MCP-style client, PKCE authorization, and token
77
- exchange through a local loopback callback.
75
+ `runneth-cli oauth login` performs OAuth protected-resource discovery, PKCE
76
+ authorization, and token exchange through a local loopback callback. By default
77
+ it uses dynamic client registration as a public MCP-style client. Provide
78
+ `--client-id`/`--clientid` and `--client-secret`/`--secret`, or set
79
+ `RUNNETH_OAUTH_CLIENT_ID` and `RUNNETH_OAUTH_CLIENT_SECRET`, to use a
80
+ pre-registered confidential client instead.
78
81
 
79
82
  ```bash
80
83
  runneth oauth login --resource http://localhost:4100/mcp
84
+ RUNNETH_OAUTH_CLIENT_ID=client-id RUNNETH_OAUTH_CLIENT_SECRET=client-secret runneth oauth login --resource http://localhost:4100/mcp
81
85
  runneth oauth status --resource http://localhost:4100/mcp
82
86
  ```
83
87
 
@@ -118,7 +122,8 @@ runneth conversation state --workspace "$MONDRIAN_WORKSPACE_ID" --conversation "
118
122
 
119
123
  `send` waits for the assistant response by default. `send` and `state` require an
120
124
  explicit `--conversation`; the CLI does not track an implicit active
121
- conversation for machine commands.
125
+ conversation for machine commands. State reads advertise Runneth stream V2, so
126
+ the same command can inspect read-only task-origin transcripts.
122
127
 
123
128
  Long-lived agents can keep one authenticated process open with JSONL over
124
129
  stdin/stdout:
@@ -153,21 +158,28 @@ Typical responses:
153
158
  ## SSH
154
159
 
155
160
  `runneth-cli ssh` uses the stored OAuth credential for the resource. If no
156
- credential exists yet, it starts the OAuth login flow first. The first SSH
157
- connection for a resource/app pair generates an ed25519 keypair, sends the
158
- public key to the Runneth SSH app, writes an isolated OpenSSH config, and then
159
- starts `ssh` through the app tunnel.
161
+ credential exists yet, it starts the OAuth login flow first. Pass a conversation
162
+ and workspace to resolve its public SSH app target from Builder, or pass a
163
+ named, host, or URL target directly. The first SSH connection for a resource/app
164
+ pair generates an ed25519 keypair, sends the public key to the Runneth SSH app,
165
+ writes an isolated OpenSSH config, and then starts `ssh` through the app tunnel.
160
166
 
161
167
  ```bash
162
168
  runneth ssh \
169
+ --conversation 11111111-1111-4111-8111-111111111111 \
170
+ --workspace 22222222-2222-4222-8222-222222222222 \
163
171
  --resource https://projects.motionapp.com/mcp \
164
- --host 93c7ca56-debe-4b95-8be2-a873afe72234.app.runneth.com
172
+ --api https://projects.motionapp.com
165
173
  ```
166
174
 
167
175
  SSH keys, known hosts, and generated config files are stored under
168
176
  `~/.runneth-cli/ssh`. The generated OpenSSH config uses an internal
169
177
  `ProxyCommand` transport that attaches the OAuth bearer token to the SSH app
170
- HTTP tunnel.
178
+ tunnel. The CLI reads the target VM's authenticated `/runneth/ssh/api` metadata
179
+ before connecting, independently of app catalog health:
180
+ VMs that advertise `runneth-ssh-v1` use one full-duplex WebSocket, while older
181
+ VMs continue through the HTTPS tunnel. Transport selection is automatic. Capability
182
+ discovery allows 70 seconds for authorization and response delivery.
171
183
 
172
184
  ### SSH stdio
173
185