@skein-code/cli 0.3.29 → 0.3.30

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
@@ -79,7 +79,7 @@ The product rationale and competitor research are in
79
79
  ## Requirements
80
80
 
81
81
  - Node.js 22.16 or newer
82
- - A model API key, or an OpenAI-compatible local endpoint
82
+ - A third-party relay credential in an environment variable, or a keyless local relay
83
83
  - Optional: Git and ripgrep
84
84
 
85
85
  ## Install
@@ -96,7 +96,7 @@ To build, verify, and install a local package artifact from this checkout:
96
96
 
97
97
  ```bash
98
98
  npm run verify:package -- --output-dir artifacts/package
99
- npm install -g ./artifacts/package/skein-code-cli-0.3.29.tgz
99
+ npm install -g ./artifacts/package/skein-code-cli-0.3.30.tgz
100
100
  ```
101
101
 
102
102
  To install the published package from npm:
@@ -116,11 +116,12 @@ environment variables remain compatible with this release.
116
116
  ## Quick start
117
117
 
118
118
  On the first interactive `skein` run, an incomplete model configuration opens
119
- a keyboard-driven setup before any session is created. Choose a provider API
120
- key or an explicitly configured compatible endpoint; Skein never guesses the
121
- protocol or destination. OpenAI, Anthropic, and Gemini subscription logins are
122
- not API credentials. Signed-in coding CLIs remain delegated tools rather than
123
- primary model connections.
119
+ a keyboard-driven relay setup before any session is created. Choose OpenAI
120
+ Responses (recommended), OpenAI Chat Completions, or Anthropic Messages, then
121
+ provide the inference base URL, optional independent model-catalog base URL,
122
+ model ID, and `env` or `none` authentication. Skein does not implement official
123
+ account login for primary connections and never guesses the protocol or
124
+ destination. Signed-in coding CLIs remain separate delegated runtimes.
124
125
 
125
126
  Before a new interactive session, Skein prepares the workspace before opening the composer. It
126
127
  shows the real local index phases, reloads the persisted artifact, verifies its
@@ -129,45 +130,81 @@ new sessions validate and reuse a current index or incrementally rebuild a stale
129
130
  an empty workspace is a valid zero-file index, while failed validation offers
130
131
  retry or exit instead of silently continuing.
131
132
 
132
- For non-interactive setup, set credentials for one provider:
133
+ For non-interactive setup, export the relay credential and save only its
134
+ environment-variable name:
133
135
 
134
136
  ```bash
135
- export OPENAI_API_KEY=...
136
- # or ANTHROPIC_API_KEY / GEMINI_API_KEY / SKEIN_API_KEY
137
+ export TEAM_RELAY_API_KEY=...
138
+ skein agents setup --yes \
139
+ --name team-relay \
140
+ --provider compatible \
141
+ --protocol openai-responses \
142
+ --base-url https://relay.example/v1 \
143
+ --api-key-env TEAM_RELAY_API_KEY \
144
+ --model provider/coding-model
137
145
  ```
138
146
 
139
- For an OpenAI-compatible local or self-hosted endpoint, provide the endpoint
140
- explicitly so Skein never guesses where workspace code should be sent:
147
+ For a keyless local relay, select `none` explicitly:
141
148
 
142
149
  ```bash
143
- export SKEIN_API_KEY=... # omit when the local endpoint needs no authentication
144
- skein init --provider compatible --base-url http://localhost:11434/v1 --yes
150
+ skein agents setup --yes \
151
+ --name local \
152
+ --provider compatible \
153
+ --protocol openai-responses \
154
+ --base-url http://localhost:11434/v1 \
155
+ --auth none \
156
+ --model local-coder
145
157
  ```
146
158
 
159
+ Named connections can also drive the primary agent. One complete connection is
160
+ selected automatically; multiple complete connections require an interactive
161
+ choice or an explicit `--connection <name>` in headless runs:
162
+
163
+ ```bash
164
+ export SKEIN_CONNECTIONS=local
165
+ export SKEIN_CONNECTION_LOCAL_PROVIDER=compatible
166
+ export SKEIN_CONNECTION_LOCAL_PROTOCOL=openai-responses
167
+ export SKEIN_CONNECTION_LOCAL_BASE_URL=http://127.0.0.1:11434/v1
168
+ export SKEIN_CONNECTION_LOCAL_AUTH=none
169
+ export SKEIN_CONNECTION_LOCAL_MODEL=coder
170
+ skein --connection local
171
+ ```
172
+
173
+ Use `skein agents connections`, `/connections`, or `skein doctor` to inspect
174
+ redacted source, protocol, endpoint, and authentication readiness. The common
175
+ misspellings `SEKIN_API` and `SKEIN_BASEURL` are diagnostic-only and never
176
+ treated as supported credential aliases.
177
+
147
178
  Relay protocol selection is explicit and is never inferred from the URL or
148
179
  model name:
149
180
 
150
- - OpenAI-compatible relays use `POST /chat/completions`, Bearer authentication,
151
- and OpenAI message/tool-call shapes (`provider: compatible`).
152
- - Anthropic-compatible relays use `POST /messages`, `x-api-key`,
153
- `anthropic-version`, and Anthropic content blocks (`provider: anthropic` with
154
- a custom `baseUrl`).
181
+ - `openai-responses` uses `POST /responses`, typed response items, stateless
182
+ full-history replay, `store: false`, and Responses SSE events. This is the
183
+ default for new connections.
184
+ - `openai-chat` uses `POST /chat/completions` and OpenAI message/tool-call
185
+ shapes for relays that have not implemented Responses.
186
+ - `anthropic-messages` uses the relay's Anthropic SDK-style base and appends
187
+ `/v1/messages` when needed. Configure `modelsBaseUrl` separately because its
188
+ model directory is still commonly OpenAI-shaped at `/v1/models`.
155
189
 
156
- Remote relays must use HTTPS. Loopback endpoints may use HTTP. To prevent an
157
- official key from being sent to a third party, a custom OpenAI, Anthropic, or
158
- Gemini base URL does not inherit the provider's official environment key; enter
159
- the relay credential explicitly. The first-run flow writes its user config with
160
- owner-only permissions and never renders the secret unmasked.
190
+ All relay transports use the configured relay bearer credential or explicit
191
+ `none`; credentials, queries, and URL userinfo are never stored in connection
192
+ metadata. Remote relays must use HTTPS in onboarding, while loopback endpoints
193
+ may use HTTP. The first-run flow writes only endpoint/model metadata and the
194
+ credential environment-variable name to owner-only user configuration.
161
195
 
162
- Create project configuration, index, and start the TUI:
196
+ Configure a user relay connection, index, and start the TUI:
163
197
 
164
198
  ```bash
165
199
  cd /path/to/project
166
- skein init --provider openai --model gpt-5 --yes
200
+ skein agents setup
167
201
  skein index
168
202
  skein
169
203
  ```
170
204
 
205
+ Existing direct `model.provider` configuration remains readable for backward
206
+ compatibility, but new setup and connection discovery are relay-only.
207
+
171
208
  Use `@path` to guarantee a file is attached to the current request:
172
209
 
173
210
  ```text