@ours.network/hermes 0.13.0 → 0.14.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ours.network/hermes",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"description": "Hermes (Nous Research) plugin for ours — secure agent-to-agent messaging over ADAPT. Registers the ours MCP server, bundles the ours skill, and wires in-session wake-on-mail via `ours-mcp watch` (no webhook, no external watcher).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "FSL-1.1-Apache-2.0",
|
package/skills/ours/SKILL.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ours
|
|
3
|
-
description: Use when the user wants to set up or configure ours or
|
|
4
|
-
version: 0.1.0
|
|
3
|
+
description: Use when the user wants to set up or configure ours or ours-fleet, onboard onto the ours network, create or switch an identity, connect with another agent or person, exchange encrypted messages or files, check incoming mail, arm live monitoring, bind a web-messenger control proxy, or spawn/configure/oversee a persistent or temporary fleet agent. Trigger phrases include "set up ours", "set up ours-fleet", "configure fleet", "spawn fleet agent", "use identity X", "send a message", "check my messages", "watch for messages", "wake me on new mail", "bind the monitoring proxy", and "set up the control panel".
|
|
5
4
|
metadata:
|
|
6
5
|
hermes:
|
|
7
6
|
tags: [ours, ours.network, a2a, adapt, e2e, messaging, identity]
|
|
@@ -84,6 +83,12 @@ Walk the user through these, checking each. Stop and help at the first one that
|
|
|
84
83
|
interactive `ours-mcp setup` (this edits config only — it is NOT identity setup).
|
|
85
84
|
These run on the user's machine; if a step needs them at a terminal, suggest they
|
|
86
85
|
type `! ours-mcp status` etc.
|
|
86
|
+
Then check optional voice support with `ours-mcp voice-status --json`. If it is
|
|
87
|
+
not ready and the user wants voice transcription, ask them to run `ours-install`
|
|
88
|
+
in a terminal: it re-detects incomplete setup and reads the provider key with
|
|
89
|
+
hidden input. **Never ask for, paste, echo, or put the key in chat/tool arguments.**
|
|
90
|
+
Environment-only operators may set `OURS_STT_*` themselves. Troubleshooting and
|
|
91
|
+
the exact Telegram OGG/Opus fallback contract are in `references/configuration.md`.
|
|
87
92
|
2. **Plugin installed.** Run this package's `install.sh` (from `@ours.network/hermes`).
|
|
88
93
|
It ensures the daemon, writes the `ours` MCP server into `~/.hermes/config.yaml`, and
|
|
89
94
|
installs this skill into `~/.hermes/skills/`. That's all — no identities, no webhook route,
|
|
@@ -108,6 +113,19 @@ Walk the user through these, checking each. Stop and help at the first one that
|
|
|
108
113
|
need, explain the impact, and act only on the user's explicit yes. Details:
|
|
109
114
|
`references/configuration.md`.
|
|
110
115
|
|
|
116
|
+
## ours-fleet — persistent harness roles
|
|
117
|
+
|
|
118
|
+
For fleet setup, configuration, spawning, or oversight, use the installed CLI as
|
|
119
|
+
the version-matched source of truth:
|
|
120
|
+
|
|
121
|
+
1. Run `command -v ours-fleet`.
|
|
122
|
+
2. If missing, install it with `npm i -g @ours.network/fleet@latest`, then run
|
|
123
|
+
`ours-fleet init`.
|
|
124
|
+
3. Run `ours-fleet docs` and follow that reference. If an older installed
|
|
125
|
+
release does not provide `docs`, use `ours-fleet --help` and the relevant
|
|
126
|
+
subcommand's `--help`, and recommend upgrading. Do not ask the user to
|
|
127
|
+
explain available flags or rely on a copied fleet workflow from this skill.
|
|
128
|
+
|
|
111
129
|
## Layer 1 — identities (global)
|
|
112
130
|
|
|
113
131
|
A session must **bind** an identity before it can send or read messages. Binding is
|
|
@@ -36,3 +36,47 @@ on which port). With `autoStart` off (the default) the most common cause is
|
|
|
36
36
|
simply a daemon that was never started — the fix is `ours-mcp start`. A port
|
|
37
37
|
collision is the other usual cause; resolving it is a config change — surface
|
|
38
38
|
it to the user with the blast radius above and act only on an explicit yes.
|
|
39
|
+
|
|
40
|
+
## Voice-message transcription
|
|
41
|
+
|
|
42
|
+
Run `ours-mcp voice-status --json` first. It reports only readiness, provider,
|
|
43
|
+
key presence/source, and a missing-field reason; it never returns the key. A
|
|
44
|
+
ready result is idempotent: keep it and do not ask for setup again. A not-ready
|
|
45
|
+
result should be offered again on every interactive `ours-install` rerun.
|
|
46
|
+
Headless/`OURS_ASSUME_YES` runs never prompt and never invent credentials.
|
|
47
|
+
|
|
48
|
+
Safest guided setup: ask the user to run `ours-install` in their own terminal.
|
|
49
|
+
Its API-key prompt is hidden, it writes `config.json` atomically with mode
|
|
50
|
+
`0600`, and it restores the prior file if the daemon cannot reload the change.
|
|
51
|
+
Never request a provider key in chat, pass one through an agent tool/command
|
|
52
|
+
argument, print the `stt` config block, or test with a real key. Environment-only
|
|
53
|
+
operators can set `OURS_STT_PROVIDER`, `OURS_STT_API_KEY`, `OURS_STT_MODEL`,
|
|
54
|
+
`OURS_STT_BASE_URL`, and `OURS_STT_LANGUAGE`; environment values override the
|
|
55
|
+
file field-by-field.
|
|
56
|
+
|
|
57
|
+
Provider requirements:
|
|
58
|
+
|
|
59
|
+
- `openai-compatible`: key + explicit `/v1` base URL + model.
|
|
60
|
+
- `elevenlabs`: key + model; base URL is optional.
|
|
61
|
+
- `deepgram`: key; model/base URL are optional provider defaults.
|
|
62
|
+
- `custom`: key + `stt.custom.url`; model is required when the custom template
|
|
63
|
+
references it.
|
|
64
|
+
|
|
65
|
+
Troubleshooting:
|
|
66
|
+
|
|
67
|
+
- “not ready” names the missing field. Do not ask the user to reveal its value.
|
|
68
|
+
- If a file edit appears ineffective, check the reported key source and
|
|
69
|
+
`OURS_STT_*`; an environment override may shadow the file.
|
|
70
|
+
- Config changes require a daemon restart and active sessions may need to bind
|
|
71
|
+
their identity again.
|
|
72
|
+
- Incoming voice is recognized strictly as an `audio/*` MIME carrying
|
|
73
|
+
`x-ours-kind=voice-message`, or the legacy `voice-message-…` audio filename.
|
|
74
|
+
Generic audio and connector-specific filename guesses remain ordinary files.
|
|
75
|
+
- Telegram fallback preserves the original OGG/Opus bytes and `.ogg` filename.
|
|
76
|
+
Its `send_file` MIME and correlated v2 envelope `attachment.mime` must both be
|
|
77
|
+
`audio/ogg; x-ours-kind=voice-message`; `attachment.wire_id` identifies the
|
|
78
|
+
separately delivered file. Connector-local STT success may remain text-only.
|
|
79
|
+
- Oversized audio is saved but not uploaded (daemon default: 5 MiB). Provider
|
|
80
|
+
HTTP, timeout, malformed-response, and network failures degrade to a precise
|
|
81
|
+
“transcription failed” line with the saved audio path; provider responses are
|
|
82
|
+
scrubbed if they echo the configured key.
|