@embassys/ambassador 0.2.7 → 0.2.8
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 +5 -3
- package/dist/agent-capabilities.js +1 -1
- package/dist/agent-capabilities.js.map +1 -1
- package/docs/getting-started-claude.md +5 -4
- package/docs/getting-started-codex.md +5 -4
- package/docs/getting-started-gemini.md +5 -4
- package/docs/getting-started-hermes.md +10 -5
- package/docs/getting-started-openclaw.md +5 -4
- package/docs/live-qualification.md +121 -7
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ agent over ACP v1 or to an authenticated webhook.
|
|
|
7
7
|
## Start
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
|
-
npx --yes @embassys/ambassador@
|
|
10
|
+
npx --yes @embassys/ambassador@latest start
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
- No Ambassador token or environment variable is needed for direct delivery.
|
|
@@ -33,8 +33,10 @@ separate DPoP proof. Ambassador does not use the central MCP endpoint.
|
|
|
33
33
|
## Implementation status
|
|
34
34
|
|
|
35
35
|
The REST, DPoP, delivery, and zero-configuration startup paths are implemented.
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
Live-central qualification has passed with real Codex and with Hermes Agent
|
|
37
|
+
0.20.5 in both delivery modes. Ambassador 0.2.8 includes that Hermes direct
|
|
38
|
+
profile. Four other profile/mode cases remain open under the disclosed release
|
|
39
|
+
exception in
|
|
38
40
|
[ADR 0015](docs/adr/0015-npm-distribution.md); outstanding work remains in the
|
|
39
41
|
[implementation plan](docs/implementation-plan.md).
|
|
40
42
|
|
|
@@ -39,7 +39,7 @@ export const PRODUCTION_AGENT_CAPABILITIES = [
|
|
|
39
39
|
direct: {
|
|
40
40
|
command: "hermes-acp",
|
|
41
41
|
args: [],
|
|
42
|
-
agentInfo: { name: "hermes-agent", versions: ["0.21.0"] },
|
|
42
|
+
agentInfo: { name: "hermes-agent", versions: ["0.20.5", "0.21.0"] },
|
|
43
43
|
mcp: "session",
|
|
44
44
|
environment: [
|
|
45
45
|
"HOME",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-capabilities.js","sourceRoot":"","sources":["../src/agent-capabilities.ts"],"names":[],"mappings":"AAiCA,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACjD,MAAM,IAAI,GAAG,yBAAyB,CAAC;AACvC,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAErD,MAAM,CAAC,MAAM,6BAA6B,GAA+B;IACvE;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC5D,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC5B,MAAM,EAAE;YACN,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,CAAC,KAAK,CAAC;YACb,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE;YAC3D,GAAG,EAAE,iBAAiB;YACtB,WAAW,EAAE;gBACX,MAAM;gBACN,MAAM;gBACN,QAAQ;gBACR,qBAAqB;gBACrB,MAAM;gBACN,cAAc;gBACd,eAAe;gBACf,QAAQ;gBACR,aAAa;gBACb,iBAAiB;gBACjB,eAAe;gBACf,gBAAgB;aACjB;SACF;QACD,kBAAkB,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;KAC5D;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC5C,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC5B,MAAM,EAAE;YACN,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"agent-capabilities.js","sourceRoot":"","sources":["../src/agent-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
1. From the directory Claude Code may access, keep Ambassador running:
|
|
15
15
|
|
|
16
16
|
```sh
|
|
17
|
-
npx --yes @embassys/ambassador@
|
|
17
|
+
npx --yes @embassys/ambassador@latest start
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
2. Add `http://127.0.0.1:8787/mcp` as a Streamable HTTP MCP server in Claude
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
Ambassador will launch `claude-agent-acp` when a central message arrives. That
|
|
29
29
|
is a new gateway-managed session, not the chat used for registration.
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
The qualification probe records the installed version without rejecting it.
|
|
32
|
+
Production still checks the exact MCP client and ACP identities in the compiled
|
|
33
|
+
profile, so a new incompatible release fails closed. See
|
|
34
|
+
[Qualification](qualification.md) for compatibility evidence.
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
1. From the directory Codex may access, keep Ambassador running:
|
|
14
14
|
|
|
15
15
|
```sh
|
|
16
|
-
npx --yes @embassys/ambassador@
|
|
16
|
+
npx --yes @embassys/ambassador@latest start
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
2. In another terminal, add its token-free local MCP endpoint:
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
Ambassador will launch `codex-acp` when a central message arrives. That is a
|
|
32
32
|
new gateway-managed session, not the chat used for registration.
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
The qualification probe records the installed version without rejecting it.
|
|
35
|
+
Production still checks the exact MCP client and ACP identities in the compiled
|
|
36
|
+
profile, so a new incompatible release fails closed. See
|
|
37
|
+
[Qualification](qualification.md) for compatibility evidence.
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
1. From the directory Gemini CLI may access, keep Ambassador running:
|
|
13
13
|
|
|
14
14
|
```sh
|
|
15
|
-
npx --yes @embassys/ambassador@
|
|
15
|
+
npx --yes @embassys/ambassador@latest start
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
2. Add `http://127.0.0.1:8787/mcp` as a Streamable HTTP MCP server in Gemini
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
Ambassador will launch `gemini --acp` when a central message arrives. That is
|
|
27
27
|
a new gateway-managed session, not the chat used for registration.
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
The qualification probe records the installed version without rejecting it.
|
|
30
|
+
Production still checks the exact MCP client and ACP identities in the compiled
|
|
31
|
+
profile, so a new incompatible release fails closed. See
|
|
32
|
+
[Qualification](qualification.md) for compatibility evidence.
|
|
@@ -3,16 +3,20 @@
|
|
|
3
3
|
## Before you start
|
|
4
4
|
|
|
5
5
|
- Install Node.js `>=24.19.0 <25`.
|
|
6
|
-
- Install and authenticate Hermes Agent `0.21.0`.
|
|
6
|
+
- Install and authenticate Hermes Agent `0.20.5` or `0.21.0`.
|
|
7
7
|
- Make sure `hermes-acp` is on `PATH` for direct delivery.
|
|
8
8
|
- Ambassador never receives your provider credential.
|
|
9
9
|
|
|
10
|
+
Hermes Agent `0.20.5` passed both live delivery modes and is included in
|
|
11
|
+
Ambassador 0.2.8's direct profile. The qualification probe records the installed
|
|
12
|
+
version without treating the observation itself as a failure.
|
|
13
|
+
|
|
10
14
|
## Set up direct delivery
|
|
11
15
|
|
|
12
16
|
1. From the directory Hermes may access, keep Ambassador running:
|
|
13
17
|
|
|
14
18
|
```sh
|
|
15
|
-
npx --yes @embassys/ambassador@
|
|
19
|
+
npx --yes @embassys/ambassador@latest start
|
|
16
20
|
```
|
|
17
21
|
|
|
18
22
|
2. Add `http://127.0.0.1:8787/mcp` as a Streamable HTTP MCP server in Hermes's
|
|
@@ -42,6 +46,7 @@ new gateway-managed session, not the chat used for registration.
|
|
|
42
46
|
- Hermes supplies `delivery.url` and `delivery.secret_env`; it never receives
|
|
43
47
|
the secret value.
|
|
44
48
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
for compatibility
|
|
49
|
+
Production still checks the exact MCP client and ACP identities in the compiled
|
|
50
|
+
profile, so a new incompatible release fails closed. See
|
|
51
|
+
[Qualification](qualification.md) for the artifact-specific compatibility
|
|
52
|
+
evidence.
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
1. From the directory OpenClaw may access, keep Ambassador running:
|
|
13
13
|
|
|
14
14
|
```sh
|
|
15
|
-
npx --yes @embassys/ambassador@
|
|
15
|
+
npx --yes @embassys/ambassador@latest start
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
2. Add `http://127.0.0.1:8787/mcp` as a Streamable HTTP MCP server in
|
|
@@ -43,6 +43,7 @@ step 2 configured.
|
|
|
43
43
|
- OpenClaw supplies `delivery.url` and `delivery.secret_env`; it never receives
|
|
44
44
|
the secret value.
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
The qualification probe records the installed version without rejecting it.
|
|
47
|
+
Production still checks the exact MCP client and ACP identities in the compiled
|
|
48
|
+
profile, so a new incompatible release fails closed. See
|
|
49
|
+
[Qualification](qualification.md) for compatibility evidence.
|
|
@@ -10,8 +10,11 @@ general reply operations. It does test the deployed, action-specific
|
|
|
10
10
|
|
|
11
11
|
The runner covers the current package name, guided registration, one
|
|
12
12
|
full-message webhook target, and one direct target. The default direct target
|
|
13
|
-
is the deterministic mock ACP agent.
|
|
14
|
-
|
|
13
|
+
is the deterministic mock ACP agent. Separately confirmed modes use the fixed
|
|
14
|
+
Codex or Hermes profiles and their supported exact agent and adapter versions.
|
|
15
|
+
Real-provider modes use isolated provider configuration copies. Their
|
|
16
|
+
installed-version probes are observational; the compiled-in production profile
|
|
17
|
+
still decides ACP compatibility by exact identity matching.
|
|
15
18
|
|
|
16
19
|
## Safety
|
|
17
20
|
|
|
@@ -70,11 +73,43 @@ export AMBASSADOR_CONFIRM_LIVE_QUALIFICATION=run-live-qualification-with-real-co
|
|
|
70
73
|
pnpm run qualify:live
|
|
71
74
|
```
|
|
72
75
|
|
|
73
|
-
The runner rejects an ordinary user home,
|
|
74
|
-
|
|
75
|
-
accepts a command override.
|
|
76
|
-
|
|
77
|
-
after the
|
|
76
|
+
The runner rejects an ordinary user home, records the installed version when
|
|
77
|
+
one can be observed, uses the compiled-in Codex command and profile, and never
|
|
78
|
+
accepts a command override. The observation does not establish compatibility;
|
|
79
|
+
the exact ACP identity check remains authoritative. The runner also lets
|
|
80
|
+
abandoned server-side polls expire after the restart check before it enqueues a
|
|
81
|
+
message. Delete the isolated home after the run.
|
|
82
|
+
|
|
83
|
+
For Hermes, prepare an owner-only temporary home containing only `.hermes/.env`,
|
|
84
|
+
`.hermes/auth.json`, `.hermes/config.yaml`, and
|
|
85
|
+
`.hermes/shared/nous_auth.json` copied from the authenticated installation.
|
|
86
|
+
Remove unrelated MCP entries only from that copy. Put Hermes Agent 0.20.5 or
|
|
87
|
+
0.21.0 and `hermes-acp` on `PATH`, then choose one fixed mode:
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
export AMBASSADOR_HERMES_QUALIFICATION_HOME=/absolute/path/to/isolated/home
|
|
91
|
+
export AMBASSADOR_LIVE_DIRECT_AGENT=hermes-direct
|
|
92
|
+
export AMBASSADOR_CONFIRM_LIVE_QUALIFICATION=run-live-qualification-with-real-hermes-direct-and-two-disposable-mailosaur-identities
|
|
93
|
+
pnpm run qualify:live
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
or:
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
export AMBASSADOR_HERMES_QUALIFICATION_HOME=/absolute/path/to/isolated/home
|
|
100
|
+
export AMBASSADOR_LIVE_DIRECT_AGENT=hermes-webhook
|
|
101
|
+
export AMBASSADOR_CONFIRM_LIVE_QUALIFICATION=run-live-qualification-with-real-hermes-webhook-and-two-disposable-mailosaur-identities
|
|
102
|
+
pnpm run qualify:live
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
The runner rejects the ordinary Hermes home and non-owner-only copies. It uses
|
|
106
|
+
exact MCP `clientInfo` `mcp` / `0.1.0`, launches only compiled-in
|
|
107
|
+
`hermes-acp` for direct mode, and configures Ambassador MCP only in the isolated
|
|
108
|
+
copy. The runner records the installed Hermes version when it can, but does not
|
|
109
|
+
use that observation as a compatibility gate; direct ACP identity matching
|
|
110
|
+
remains exact. Webhook mode starts Hermes's authenticated generic route,
|
|
111
|
+
requires its bearer filter and native HMAC V2 validation, and suppresses
|
|
112
|
+
provider output. Delete the isolated home after every attempt.
|
|
78
113
|
|
|
79
114
|
## Required report
|
|
80
115
|
|
|
@@ -148,6 +183,85 @@ behavior passed. The supported-Node repeat remains part of the qualification
|
|
|
148
183
|
record even though the user approved 0.2.6 as a one-release exception before
|
|
149
184
|
that repeat.
|
|
150
185
|
|
|
186
|
+
## Hermes 0.20.5 observations
|
|
187
|
+
|
|
188
|
+
On 2026-09-03, Hermes Agent 0.20.5 ran on macOS 26.5.2 arm64 with Node
|
|
189
|
+
24.19.0. Both live cases reviewed central source revision
|
|
190
|
+
`ac3f7a6e33829eb80301c7944f611d29cc2499b5`; the live deployment did not
|
|
191
|
+
expose its revision. The actual npm artifact was downloaded from the registry,
|
|
192
|
+
clean-installed, and used through its installed `ambassador` CLI. Its npm
|
|
193
|
+
integrity was
|
|
194
|
+
`sha512-qaL4IHTrMwpyrY1OisPXMexytmnNfO7Bjc5tXgLCF3LolXQW2R8GrzErqJkMIlM+Zh8Cce9ijN+zfYb3xiNHSQ==`,
|
|
195
|
+
its registry SHA-1 was `c0179df957bc05de921da578344fab6c1ba4a713`,
|
|
196
|
+
and its tarball SHA-256 was
|
|
197
|
+
`312b514ce2dd43de81502debd63004ea9a84da79099d4730c301b52e593c97c8`.
|
|
198
|
+
The installed CLI started without options, rejected a forbidden option, and
|
|
199
|
+
passed the packed-runtime scan.
|
|
200
|
+
|
|
201
|
+
The artifact-specific outcomes were:
|
|
202
|
+
|
|
203
|
+
| Delivery case | Ambassador artifact | Outcome |
|
|
204
|
+
| --- | --- | --- |
|
|
205
|
+
| Webhook | Published `@embassys/ambassador@0.2.7` | Passed the complete live round trip |
|
|
206
|
+
| Direct eligibility probe | Published `@embassys/ambassador@0.2.7` | Ambassador capability-registry rejection at `startup_failed`, as required by its exact 0.21.0 profile |
|
|
207
|
+
| Direct | Source candidate adding exact Hermes ACP 0.20.5 | Passed the complete live round trip |
|
|
208
|
+
|
|
209
|
+
The source-built direct candidate was not substituted for the published
|
|
210
|
+
artifact checks. Its tarball SHA-256 was
|
|
211
|
+
`1d434e8a5dbf027a42326a7e6b42a58094fe17cfdbf8cf96a4e7d314a24835be`,
|
|
212
|
+
and the direct qualification runner SHA-256 was
|
|
213
|
+
`7b6a680bba64abe8d86c9f2328a7562360b15def1eea1d7cf11f21d8f7dea24f`.
|
|
214
|
+
The final strict webhook pass used runner SHA-256
|
|
215
|
+
`e2506c09012f5e7bb3630acb70b5844be3a1769b5baaef3fc76dda07ed27c8c0`.
|
|
216
|
+
No later source change altered the direct profile or delivery implementation
|
|
217
|
+
used by that candidate.
|
|
218
|
+
|
|
219
|
+
Each pass registered and email-verified a controlled requester and the real
|
|
220
|
+
Hermes target through separate local Ambassador MCP endpoints, then restarted
|
|
221
|
+
both gateways and reloaded the encrypted credentials and delivery profiles.
|
|
222
|
+
The requester obtained `get_phone_number` permission, Hermes called
|
|
223
|
+
`respond_to_permission` with a grant, the requester called `call_action` with
|
|
224
|
+
approved synthetic data, and Hermes received the complete correlated
|
|
225
|
+
`action_call`. The real model called `submit_action_result` exactly once with
|
|
226
|
+
the supplied call ID, success status, and approved synthetic phone object.
|
|
227
|
+
The requester received the matching `action_response`. Local webhook custody
|
|
228
|
+
or ACP completion was observed before each corresponding central
|
|
229
|
+
acknowledgement.
|
|
230
|
+
|
|
231
|
+
Both modes passed Bearer plus DPoP behavior, the negative DPoP matrix, the
|
|
232
|
+
deployed six-action catalog, zero central MCP requests, artifact scanning, and
|
|
233
|
+
Mailosaur and temporary-state cleanup. Direct mode proved ACP v1 initialization
|
|
234
|
+
and injected Ambassador MCP. Webhook mode proved the Hermes receiver's bearer
|
|
235
|
+
filter, HMAC V2 authentication, and custody before acknowledgement. The normal
|
|
236
|
+
Hermes home was not changed; owner-only credential copies were removed after
|
|
237
|
+
the runs.
|
|
238
|
+
|
|
239
|
+
The live DPoP positive case needed no nonce. The deployed catalog names and
|
|
240
|
+
input-schema SHA-256 digests were:
|
|
241
|
+
|
|
242
|
+
| Action | Input schema SHA-256 |
|
|
243
|
+
| --- | --- |
|
|
244
|
+
| `create_calendar_event` | `4b9c97f146bfbb4c2cc1ec0812ada60406ce563d59c5abc807fcb6ba2dc0270c` |
|
|
245
|
+
| `get_email` | `032af9a4835a30e280f7c122f8971565b4e2527b25d9fcb0ad2f778f654aecbd` |
|
|
246
|
+
| `get_free_busy_permission` | `7775afae503f343ae09ed3510c66410cb361ea4125b28047d15321e7430f4f96` |
|
|
247
|
+
| `get_phone_number` | `6c7954b7f42f818db7f93433bd07dc2aac273bd4599a637d2233529c6149bc48` |
|
|
248
|
+
| `read_calendar_event_by_title` | `92ddb62ec62f187cdd1cfe0995d01afd06f283f2c174f6f24173083b1aab0d2f` |
|
|
249
|
+
| `read_calendar_permission` | `27deb9a2fbadef8582fa9036fa9bc4a173eeaa92034d0fab8f4e12b1dfdf0662` |
|
|
250
|
+
|
|
251
|
+
One earlier strict webhook attempt failed at
|
|
252
|
+
`action_response_webhook_timeout_failed` after the real target had granted the
|
|
253
|
+
permission, submitted one successful correlated result, accepted both target
|
|
254
|
+
messages, and received both target acknowledgements. Ambassador reported no
|
|
255
|
+
stderr. The safe evidence cannot distinguish central response queueing from a
|
|
256
|
+
consuming-poll delivery loss, so this is classified in the central REST
|
|
257
|
+
action-response delivery phase, not as Ambassador target delivery, Hermes
|
|
258
|
+
webhook custody, model execution, or MCP invocation. A fresh isolated rerun of
|
|
259
|
+
the same strict case passed. No compatibility fallback or replay was added.
|
|
260
|
+
|
|
261
|
+
These observations approve the source registry's exact Hermes ACP 0.20.5
|
|
262
|
+
entry. They do not show that published Ambassador 0.2.7 supports Hermes 0.20.5
|
|
263
|
+
direct mode. Ambassador 0.2.8 contains the candidate change.
|
|
264
|
+
|
|
151
265
|
## Earlier direct observation
|
|
152
266
|
|
|
153
267
|
On 2026-09-02, real Codex had already passed delivery, injected Ambassador MCP
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@embassys/ambassador",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.8",
|
|
4
4
|
"description": "Local Ambassador for the Embassys agent network",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"clean": "node scripts/clean.mjs",
|
|
47
47
|
"format": "biome check --write .",
|
|
48
48
|
"lint": "biome check .",
|
|
49
|
+
"probe:agents": "node scripts/probe-agent-versions.mjs",
|
|
49
50
|
"qualify:agents": "node scripts/qualify-agents.mjs",
|
|
50
51
|
"qualify:live": "node scripts/live-qualification.mjs",
|
|
51
52
|
"test": "pnpm run test:build && node scripts/run-tests.mjs",
|