catence 0.2.0-beta.6 → 0.2.0-beta.7
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.
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Keep these values synchronized with release/manifest.json; release checks
|
|
4
4
|
* deliberately reject drift before a package can be published.
|
|
5
5
|
*/
|
|
6
|
-
export declare const CATENCE_RUNTIME_VERSION = "0.2.0-beta.
|
|
6
|
+
export declare const CATENCE_RUNTIME_VERSION = "0.2.0-beta.7";
|
|
7
7
|
export declare const CATENCE_PROTOCOL_VERSION = 1;
|
|
8
8
|
export type CatenceRuntimeCapabilities = {
|
|
9
9
|
mcp: true;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Keep these values synchronized with release/manifest.json; release checks
|
|
4
4
|
* deliberately reject drift before a package can be published.
|
|
5
5
|
*/
|
|
6
|
-
export const CATENCE_RUNTIME_VERSION = '0.2.0-beta.
|
|
6
|
+
export const CATENCE_RUNTIME_VERSION = '0.2.0-beta.7';
|
|
7
7
|
export const CATENCE_PROTOCOL_VERSION = 1;
|
|
8
8
|
export function catenceRuntimeHealth() {
|
|
9
9
|
return {
|
package/docs/deployment.md
CHANGED
|
@@ -59,13 +59,24 @@ that already holds only Console artifacts (`config.json`, `console/`).
|
|
|
59
59
|
|
|
60
60
|
### 3. Store provider credentials (stdin only, never shell history)
|
|
61
61
|
|
|
62
|
+
Garmin (`email`, `password`), Intervals.icu (`apiKey`, `athleteId`), and Strava
|
|
63
|
+
(`clientId`, `clientSecret`):
|
|
64
|
+
|
|
62
65
|
```sh
|
|
66
|
+
# Garmin
|
|
63
67
|
printf %s 'alex@example.com' | catence-data --athlete alex secret set --provider garmin --field email --value-stdin
|
|
64
68
|
printf %s 'your-garmin-password' | catence-data --athlete alex secret set --provider garmin --field password --value-stdin
|
|
69
|
+
# Intervals.icu
|
|
65
70
|
printf %s 'intervals-api-key' | catence-data --athlete alex secret set --provider intervals --field apiKey --value-stdin
|
|
66
71
|
printf %s '12345' | catence-data --athlete alex secret set --provider intervals --field athleteId --value-stdin
|
|
72
|
+
# Strava (create an API application at https://www.strava.com/settings/api)
|
|
73
|
+
printf %s 'strava-client-id' | catence-data --athlete alex secret set --provider strava --field clientId --value-stdin
|
|
74
|
+
printf %s 'strava-client-secret' | catence-data --athlete alex secret set --provider strava --field clientSecret --value-stdin
|
|
67
75
|
```
|
|
68
76
|
|
|
77
|
+
Set only the providers you actually sync; `secret set` accepts each field
|
|
78
|
+
independently.
|
|
79
|
+
|
|
69
80
|
### 4. Sync data and build retrieval context
|
|
70
81
|
|
|
71
82
|
```sh
|
|
@@ -153,14 +164,35 @@ docker compose -f catence-deploy/docker-compose.yml --env-file catence-deploy/.e
|
|
|
153
164
|
|
|
154
165
|
### 4. Store provider credentials
|
|
155
166
|
|
|
167
|
+
Garmin (`email`, `password`), Intervals.icu (`apiKey`, `athleteId`), and Strava
|
|
168
|
+
(`clientId`, `clientSecret`), one `printf` per field:
|
|
169
|
+
|
|
156
170
|
```sh
|
|
157
|
-
|
|
171
|
+
# Garmin
|
|
172
|
+
printf %s 'alex@example.com' | docker compose -f catence-deploy/docker-compose.yml --env-file catence-deploy/.env run --rm -T \
|
|
173
|
+
--entrypoint catence-data console --athlete alex secret set \
|
|
174
|
+
--provider garmin --field email --value-stdin
|
|
175
|
+
printf %s 'your-garmin-password' | docker compose -f catence-deploy/docker-compose.yml --env-file catence-deploy/.env run --rm -T \
|
|
176
|
+
--entrypoint catence-data console --athlete alex secret set \
|
|
177
|
+
--provider garmin --field password --value-stdin
|
|
178
|
+
# Intervals.icu
|
|
179
|
+
printf %s 'intervals-api-key' | docker compose -f catence-deploy/docker-compose.yml --env-file catence-deploy/.env run --rm -T \
|
|
158
180
|
--entrypoint catence-data console --athlete alex secret set \
|
|
159
181
|
--provider intervals --field apiKey --value-stdin
|
|
182
|
+
printf %s '12345' | docker compose -f catence-deploy/docker-compose.yml --env-file catence-deploy/.env run --rm -T \
|
|
183
|
+
--entrypoint catence-data console --athlete alex secret set \
|
|
184
|
+
--provider intervals --field athleteId --value-stdin
|
|
185
|
+
# Strava (create an API application at https://www.strava.com/settings/api)
|
|
186
|
+
printf %s 'strava-client-id' | docker compose -f catence-deploy/docker-compose.yml --env-file catence-deploy/.env run --rm -T \
|
|
187
|
+
--entrypoint catence-data console --athlete alex secret set \
|
|
188
|
+
--provider strava --field clientId --value-stdin
|
|
189
|
+
printf %s 'strava-client-secret' | docker compose -f catence-deploy/docker-compose.yml --env-file catence-deploy/.env run --rm -T \
|
|
190
|
+
--entrypoint catence-data console --athlete alex secret set \
|
|
191
|
+
--provider strava --field clientSecret --value-stdin
|
|
160
192
|
```
|
|
161
193
|
|
|
162
|
-
|
|
163
|
-
`auth strava`.
|
|
194
|
+
Set only the providers you actually sync. Use the same `--entrypoint
|
|
195
|
+
catence-data` pattern for `sync`, `backfill`, and `auth strava`.
|
|
164
196
|
|
|
165
197
|
### 5. Configure the model
|
|
166
198
|
|
|
@@ -176,7 +208,54 @@ docker compose -f catence-deploy/docker-compose.yml --env-file catence-deploy/.e
|
|
|
176
208
|
With `--home <dir>` (bind mount), edit `<dir>/config.json` on the host
|
|
177
209
|
instead. To add OpenCode Go models, see [model discovery](#model-discovery-opencode-go).
|
|
178
210
|
|
|
179
|
-
### 6.
|
|
211
|
+
### 6. Verify with doctor
|
|
212
|
+
|
|
213
|
+
`catence-console doctor` checks each profile's environment variables and the
|
|
214
|
+
local Catence runtime. The deploy scaffold includes a helper for it:
|
|
215
|
+
|
|
216
|
+
```sh
|
|
217
|
+
./catence-deploy/doctor.sh
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
The helper runs the doctor *inside the running container* with `exec` — the
|
|
221
|
+
container's own loopback holds the live MCP server at `127.0.0.1:8787`, and the
|
|
222
|
+
provider keys from `.env` are already in its environment. (A `docker compose
|
|
223
|
+
run` container has a separate loopback and would report the runtime as
|
|
224
|
+
unreachable.) The equivalent long form is:
|
|
225
|
+
|
|
226
|
+
```sh
|
|
227
|
+
docker compose -f catence-deploy/docker-compose.yml --env-file catence-deploy/.env exec console \
|
|
228
|
+
/opt/catence-console/bin/catence-console doctor --home /data --mcp-url http://127.0.0.1:8787/mcp
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
Expect `"ready": true` once the model key is set; missing keys show up per
|
|
232
|
+
profile without ever printing their values.
|
|
233
|
+
|
|
234
|
+
### 7. Sync, backfill, and inspect athlete data
|
|
235
|
+
|
|
236
|
+
The deploy scaffold includes a helper that runs `catence-data` *inside the
|
|
237
|
+
running container* with `exec`, so the athlete's provider secrets from the
|
|
238
|
+
data volume are already available:
|
|
239
|
+
|
|
240
|
+
```sh
|
|
241
|
+
./catence-deploy/sync.sh --athlete alex sync # incremental sync, all providers
|
|
242
|
+
./catence-deploy/sync.sh --athlete alex backfill 2026-01-01 # full backfill from a date
|
|
243
|
+
./catence-deploy/sync.sh --athlete alex status # coverage and errors
|
|
244
|
+
./catence-deploy/sync.sh athletes # list athlete IDs
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
`sync` defaults to `--provider all`; extra flags pass through, for example
|
|
248
|
+
`./catence-deploy/sync.sh --athlete alex sync --refresh` or
|
|
249
|
+
`./catence-deploy/sync.sh --athlete alex backfill 2026-01-01 --provider garmin`.
|
|
250
|
+
Set a default athlete with `export CATENCE_ATHLETE=alex` to drop the
|
|
251
|
+
`--athlete` argument. The equivalent long form is:
|
|
252
|
+
|
|
253
|
+
```sh
|
|
254
|
+
docker compose -f catence-deploy/docker-compose.yml --env-file catence-deploy/.env exec console \
|
|
255
|
+
catence-data sync --athlete alex --provider all --home /data
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### 8. Expose the Console safely
|
|
180
259
|
|
|
181
260
|
Keep the Console port bound to `127.0.0.1` (the default) and front it with a
|
|
182
261
|
Cloudflare Tunnel or reverse proxy at HTTPS. Never expose Catence's MCP port
|
package/docs/llm-providers.md
CHANGED
|
@@ -306,6 +306,14 @@ prints credential values.
|
|
|
306
306
|
catence-console doctor --home "$HOME/.catence" --mcp-url http://127.0.0.1:8787/mcp
|
|
307
307
|
```
|
|
308
308
|
|
|
309
|
+
On Docker, the deploy scaffold includes a helper that runs it inside the
|
|
310
|
+
running container (`exec`, not `run` — the container's loopback hosts the live
|
|
311
|
+
MCP server and the `.env` provider keys are in its environment):
|
|
312
|
+
|
|
313
|
+
```sh
|
|
314
|
+
./catence-deploy/doctor.sh
|
|
315
|
+
```
|
|
316
|
+
|
|
309
317
|
## Docker: generating the Console login hash
|
|
310
318
|
|
|
311
319
|
`deploy-console.sh` writes a small helper into the deployment directory. Run it
|
package/package.json
CHANGED