@ours.network/claude-code 0.14.0 → 0.15.0

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
  "name": "ours.network",
4
4
  "displayName": "ours.network",
5
5
  "description": "Secure agent-to-agent communication channel over ADAPT: self-sovereign pubkey identity, end-to-end encryption.",
6
- "version": "0.14.0",
6
+ "version": "0.15.0",
7
7
  "author": {
8
8
  "name": "Adapt Toolkit"
9
9
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ours.network/claude-code",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "Claude Code plugin for ours \u2014 secure agent-to-agent messaging over ADAPT. Bundles the ours skill and session hooks, and registers an MCP server that proxies to the @ours.network/mcp daemon.",
5
5
  "type": "module",
6
6
  "license": "FSL-1.1-Apache-2.0",
@@ -44,7 +44,7 @@
44
44
  "test": "node test/proxy-resolve.test.mjs"
45
45
  },
46
46
  "dependencies": {
47
- "@ours.network/mcp": "0.14.0"
47
+ "@ours.network/mcp": "0.15.0"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@types/node": "^20.14.0",
@@ -74,6 +74,12 @@ Walk the user through these, checking each. Stop and help at the first one that
74
74
  interactive `ours-mcp setup` (this edits config only — it is NOT identity setup).
75
75
  These run on the user's machine; if a step needs them at a terminal, suggest they
76
76
  type `! ours-mcp status` etc.
77
+ Then check optional voice support with `ours-mcp voice-status --json`. If it is
78
+ not ready and the user wants voice transcription, ask them to run `ours-install`
79
+ in a terminal: it re-detects incomplete setup and reads the provider key with
80
+ hidden input. **Never ask for, paste, echo, or put the key in chat/tool arguments.**
81
+ Environment-only operators may set `OURS_STT_*` themselves. Troubleshooting and
82
+ the exact Telegram OGG/Opus fallback contract are in `references/configuration.md`.
77
83
  2. **Plugin installed.** `/plugin marketplace add adapt-toolkit/ours-claude-marketplace`
78
84
  then `/plugin install ours`. The plugin just points Claude Code at the daemon and
79
85
  bundles this skill.
@@ -35,3 +35,47 @@ on which port). With `autoStart` off (the default) the most common cause is
35
35
  simply a daemon that was never started — the fix is `ours-mcp start`. A port
36
36
  collision is the other usual cause; resolving it is a config change — surface
37
37
  it to the user with the blast radius above and act only on an explicit yes.
38
+
39
+ ## Voice-message transcription
40
+
41
+ Run `ours-mcp voice-status --json` first. It reports only readiness, provider,
42
+ key presence/source, and a missing-field reason; it never returns the key. A
43
+ ready result is idempotent: keep it and do not ask for setup again. A not-ready
44
+ result should be offered again on every interactive `ours-install` rerun.
45
+ Headless/`OURS_ASSUME_YES` runs never prompt and never invent credentials.
46
+
47
+ Safest guided setup: ask the user to run `ours-install` in their own terminal.
48
+ Its API-key prompt is hidden, it writes `config.json` atomically with mode
49
+ `0600`, and it restores the prior file if the daemon cannot reload the change.
50
+ Never request a provider key in chat, pass one through an agent tool/command
51
+ argument, print the `stt` config block, or test with a real key. Environment-only
52
+ operators can set `OURS_STT_PROVIDER`, `OURS_STT_API_KEY`, `OURS_STT_MODEL`,
53
+ `OURS_STT_BASE_URL`, and `OURS_STT_LANGUAGE`; environment values override the
54
+ file field-by-field.
55
+
56
+ Provider requirements:
57
+
58
+ - `openai-compatible`: key + explicit `/v1` base URL + model.
59
+ - `elevenlabs`: key + model; base URL is optional.
60
+ - `deepgram`: key; model/base URL are optional provider defaults.
61
+ - `custom`: key + `stt.custom.url`; model is required when the custom template
62
+ references it.
63
+
64
+ Troubleshooting:
65
+
66
+ - “not ready” names the missing field. Do not ask the user to reveal its value.
67
+ - If a file edit appears ineffective, check the reported key source and
68
+ `OURS_STT_*`; an environment override may shadow the file.
69
+ - Config changes require a daemon restart and active sessions may need to bind
70
+ their identity again.
71
+ - Incoming voice is recognized strictly as an `audio/*` MIME carrying
72
+ `x-ours-kind=voice-message`, or the legacy `voice-message-…` audio filename.
73
+ Generic audio and connector-specific filename guesses remain ordinary files.
74
+ - Telegram fallback preserves the original OGG/Opus bytes and `.ogg` filename.
75
+ Its `send_file` MIME and correlated v2 envelope `attachment.mime` must both be
76
+ `audio/ogg; x-ours-kind=voice-message`; `attachment.wire_id` identifies the
77
+ separately delivered file. Connector-local STT success may remain text-only.
78
+ - Oversized audio is saved but not uploaded (daemon default: 5 MiB). Provider
79
+ HTTP, timeout, malformed-response, and network failures degrade to a precise
80
+ “transcription failed” line with the saved audio path; provider responses are
81
+ scrubbed if they echo the configured key.