@ours.network/mcp 0.14.1 → 0.15.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/README.md CHANGED
@@ -30,13 +30,16 @@ Voice transcription is off until a provider and key (plus provider-required fiel
30
30
  configured. Check readiness without exposing credentials:
31
31
 
32
32
  ```sh
33
+ ours-mcp voice-setup
33
34
  ours-mcp voice-status --json
34
35
  ```
35
36
 
36
- Run `ours-install` interactively for guided, masked setup. It writes the config atomically
37
- with mode `0600` and rolls back if the daemon cannot reload it. For environment-only service
38
- configuration use `OURS_STT_PROVIDER`, `OURS_STT_API_KEY`, `OURS_STT_MODEL`,
39
- `OURS_STT_BASE_URL`, and `OURS_STT_LANGUAGE`; environment values override file fields.
37
+ `voice-setup` presents a keyboard-driven single-choice provider selector and reads the
38
+ provider key with hidden input. It writes config atomically with mode `0600`, preserves
39
+ unrelated fields, and rolls back if the managed daemon cannot restart and report ready.
40
+ It never accepts a key in command arguments. For environment-only service configuration
41
+ use `OURS_STT_PROVIDER`, `OURS_STT_API_KEY`, `OURS_STT_MODEL`, `OURS_STT_BASE_URL`, and
42
+ `OURS_STT_LANGUAGE`; environment values override file fields.
40
43
 
41
44
  The supported providers are `openai-compatible` (explicit base URL + model),
42
45
  `elevenlabs` (model), `deepgram`, and `custom` (`stt.custom.url`). Incoming voice remains
@@ -59,6 +62,26 @@ cannot be run per session. Each session instead runs a thin `ours-mcp proxy`
59
62
  Platform plugins ship only the proxy invocation; they never own or restart the
60
63
  daemon.
61
64
 
65
+ `ours-mcp start` and `ours-mcp restart` do not treat an open socket as readiness.
66
+ They wait for an authenticated response from the daemon's normal control
67
+ surface (`/identities`) after the protocol runtime, contact-book registrar,
68
+ persisted identities, and boot reconciliation are complete. In owner mode the
69
+ CLI dynamically discovers the mode-`0600` token minted by the daemon before it
70
+ declares readiness; shared and open modes preserve their configured auth
71
+ semantics. During that wait the daemon publishes a mode-`0600`
72
+ `startup-progress.json` in its state directory. The structured record contains
73
+ only a phase, timestamps, process/boot identifiers, and identity counts — never
74
+ identity names, container IDs, keys, packet contents, or state paths.
75
+
76
+ Interactive terminals update one progress line; redirected/noninteractive runs
77
+ emit concise stable lines such as `startup: Restoring identities 3/12`. A
78
+ heartbeat distinguishes active work from a frozen process: 30 seconds without
79
+ an update is a failure, and an absolute three-minute bound prevents an
80
+ event-loop-active stall from waiting forever. Immediate daemon failure remains
81
+ nonzero. The same daemon bootstrap/reporting path is used by foreground
82
+ `serve`, Linux systemd, macOS launchd, and either native or WASM-backed ADAPT
83
+ runtimes; service managers keep their existing lifecycle behavior.
84
+
62
85
  On connect, the proxy runs a compatibility handshake against the daemon's
63
86
  `/state-dir` report (`{ version, compat }`). `compat` is the wire-contract
64
87
  version (`src/protocol.ts`) — distinct from the package version, bumped only on