@drakulavich/oura-cli 0.1.0 → 0.1.1
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/CHANGELOG.md +13 -0
- package/dist/index.js +44 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,18 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.1] - 2026-05-13
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- `oura-cli healthcheck` — emits `{ok, version, latencyMs}` JSON for openclaw
|
|
13
|
+
tool-registry compatibility.
|
|
14
|
+
- `oura-cli manifest` — emits openclaw-tool-registry-compatible package
|
|
15
|
+
manifest (separate from `oura-cli describe` which targets generic agents).
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- Restored compatibility with `tool-registry healthcheck` aggregator that
|
|
19
|
+
expects `oura-cli healthcheck` to return parseable JSON.
|
|
20
|
+
|
|
9
21
|
## [0.1.0] - 2026-05-12
|
|
10
22
|
|
|
11
23
|
### Added
|
|
@@ -18,4 +30,5 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
18
30
|
- Local SQLite cache at `~/.oura-cli/oura.db`.
|
|
19
31
|
- Auth via `oura-cli login`, `OURA_TOKEN`, `OURA_TOKEN_PATH`, or `~/.oura-token`.
|
|
20
32
|
|
|
33
|
+
[0.1.1]: https://github.com/drakulavich/oura-cli/releases/tag/v0.1.1
|
|
21
34
|
[0.1.0]: https://github.com/drakulavich/oura-cli/releases/tag/v0.1.0
|
package/dist/index.js
CHANGED
|
@@ -3739,7 +3739,7 @@ function describeCommand(version) {
|
|
|
3739
3739
|
}
|
|
3740
3740
|
|
|
3741
3741
|
// src/index.ts
|
|
3742
|
-
var VERSION = "0.1.
|
|
3742
|
+
var VERSION = "0.1.1";
|
|
3743
3743
|
var program2 = new Command;
|
|
3744
3744
|
program2.name("oura-cli").description("Oura Ring CLI \u2014 query and analyze Oura Ring health data. Designed for humans and agents.").version(VERSION).option("--format <format>", "Output format: table | json (default auto-detect by TTY)").option("--token <pat>", "Inline access token (prefer env vars or `oura-cli login`)").option("--db <path>", "Path to SQLite database file (env: OURA_DB_PATH)").option("--tz <timezone>", "Display timezone (env: OURA_TZ; default auto-detect)");
|
|
3745
3745
|
program2.addCommand(loginCommand());
|
|
@@ -3754,6 +3754,49 @@ program2.addCommand(createApiCommand("workout", "Fetch workout data from Oura AP
|
|
|
3754
3754
|
program2.addCommand(syncCommand());
|
|
3755
3755
|
program2.addCommand(dbCommand());
|
|
3756
3756
|
program2.addCommand(reportCommand());
|
|
3757
|
+
program2.command("healthcheck").description("Quick local DB health probe (JSON: {ok, version, latencyMs}).").action(() => {
|
|
3758
|
+
const start = Date.now();
|
|
3759
|
+
const globalOpts = program2.opts();
|
|
3760
|
+
let ok = true;
|
|
3761
|
+
let error;
|
|
3762
|
+
try {
|
|
3763
|
+
const db = openDatabase2({ dbPath: globalOpts.db });
|
|
3764
|
+
ensureSchema2(db);
|
|
3765
|
+
db.query("SELECT 1").get();
|
|
3766
|
+
db.close();
|
|
3767
|
+
} catch (err) {
|
|
3768
|
+
ok = false;
|
|
3769
|
+
error = err instanceof Error ? err.message : String(err);
|
|
3770
|
+
}
|
|
3771
|
+
console.log(JSON.stringify({ ok, version: VERSION, latencyMs: Date.now() - start, ...error ? { error } : {} }));
|
|
3772
|
+
});
|
|
3773
|
+
program2.command("manifest").description("Print openclaw-tool-registry-compatible manifest as JSON.").action(() => {
|
|
3774
|
+
console.log(JSON.stringify({
|
|
3775
|
+
id: "oura-cli",
|
|
3776
|
+
version: VERSION,
|
|
3777
|
+
runtime: "bun",
|
|
3778
|
+
bin: "oura-cli",
|
|
3779
|
+
description: "Oura Ring CLI \u2014 query and analyze Oura Ring health data. Designed for humans and agents.",
|
|
3780
|
+
commands: [
|
|
3781
|
+
{ name: "login", description: "Save an Oura Personal Access Token.", examples: ["oura-cli login"] },
|
|
3782
|
+
{ name: "describe", description: "Emit a machine-readable manifest of commands.", examples: ["oura-cli describe"] },
|
|
3783
|
+
{ name: "sleep", description: "Fetch daily sleep scores from Oura API.", examples: ["oura-cli sleep --start 2026-05-01"] },
|
|
3784
|
+
{ name: "readiness", description: "Fetch daily readiness scores from Oura API.", examples: ["oura-cli readiness --start 2026-05-01"] },
|
|
3785
|
+
{ name: "activity", description: "Fetch daily activity scores from Oura API.", examples: ["oura-cli activity --start 2026-05-01"] },
|
|
3786
|
+
{ name: "hr", description: "Fetch heart rate samples from Oura API.", examples: ["oura-cli hr --start 2026-05-01"] },
|
|
3787
|
+
{ name: "spo2", description: "Fetch blood oxygen (SpO2) data from Oura API.", examples: ["oura-cli spo2 --start 2026-05-01"] },
|
|
3788
|
+
{ name: "stress", description: "Fetch daily stress data from Oura API.", examples: ["oura-cli stress --start 2026-05-01"] },
|
|
3789
|
+
{ name: "workout", description: "Fetch workout data from Oura API.", examples: ["oura-cli workout --start 2026-05-01"] },
|
|
3790
|
+
{ name: "sync", description: "Sync all Oura collections into the local DB.", examples: ["oura-cli sync"] },
|
|
3791
|
+
{ name: "db", description: "Query the local SQLite cache.", examples: ["oura-cli db today"] },
|
|
3792
|
+
{ name: "report", description: "Render a weekly or monthly summary report.", examples: ["oura-cli report weekly"] },
|
|
3793
|
+
{ name: "healthcheck", description: "Quick local DB health probe.", examples: ["oura-cli healthcheck"] },
|
|
3794
|
+
{ name: "manifest", description: "Print openclaw-tool-registry-compatible manifest as JSON.", examples: ["oura-cli manifest"] }
|
|
3795
|
+
],
|
|
3796
|
+
envVars: ["OURA_TOKEN", "OURA_TOKEN_PATH", "OURA_DB_PATH", "OURA_TZ"],
|
|
3797
|
+
healthcheck: { command: "healthcheck", expects: { ok: "boolean", version: "string", latencyMs: "number" } }
|
|
3798
|
+
}, null, 2));
|
|
3799
|
+
});
|
|
3757
3800
|
program2.parseAsync(process.argv).catch((err) => {
|
|
3758
3801
|
const fmt = resolveFormat({
|
|
3759
3802
|
explicit: program2.opts().format,
|
package/package.json
CHANGED