@embassys/ambassador 0.2.6 → 0.2.7
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 +26 -25
- package/dist/agent-capabilities.js +6 -6
- package/dist/agent-capabilities.js.map +1 -1
- package/dist/ambassador-options.d.ts +3 -6
- package/dist/ambassador-options.js +6 -24
- package/dist/ambassador-options.js.map +1 -1
- package/dist/cli.js +3 -5
- package/dist/cli.js.map +1 -1
- package/dist/credential-store.d.ts +1 -1
- package/dist/credential-store.js +112 -12
- package/dist/credential-store.js.map +1 -1
- package/dist/direct-delivery.d.ts +0 -1
- package/dist/direct-delivery.js +1 -4
- package/dist/direct-delivery.js.map +1 -1
- package/dist/gateway-application.d.ts +1 -1
- package/dist/gateway-application.js +2 -3
- package/dist/gateway-application.js.map +1 -1
- package/dist/gateway-paths.d.ts +1 -0
- package/dist/gateway-paths.js +1 -0
- package/dist/gateway-paths.js.map +1 -1
- package/dist/local-mcp.d.ts +1 -1
- package/dist/local-mcp.js +4 -14
- package/dist/local-mcp.js.map +1 -1
- package/docs/getting-started-claude.md +22 -83
- package/docs/getting-started-codex.md +21 -88
- package/docs/getting-started-gemini.md +20 -76
- package/docs/getting-started-hermes.md +32 -69
- package/docs/getting-started-openclaw.md +39 -74
- package/docs/live-qualification.md +3 -3
- package/package.json +1 -1
|
@@ -1,87 +1,31 @@
|
|
|
1
1
|
# Get started with Gemini CLI
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
against Gemini CLI 0.58.0, and its exact ACP initialization contract passed.
|
|
5
|
-
Real-agent direct and webhook qualification remain open under the one-release
|
|
6
|
-
qualification exception in ADR 0015.
|
|
3
|
+
## Before you start
|
|
7
4
|
|
|
8
|
-
|
|
5
|
+
- Install Node.js `>=24.19.0 <25`.
|
|
6
|
+
- Install and sign in to Gemini CLI `0.58.0`.
|
|
7
|
+
- Gemini supplies native ACP through `gemini --acp`; no adapter is needed.
|
|
8
|
+
- Ambassador never receives your Gemini or Google credential.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
| --- | --- |
|
|
12
|
-
| MCP `clientInfo` | `gemini-cli-mcp-client` / `0.58.0` |
|
|
13
|
-
| Delivery modes | direct and webhook |
|
|
14
|
-
| Direct command | `gemini --acp` |
|
|
15
|
-
| Accepted ACP `agentInfo` | `gemini-cli` / `0.58.0` |
|
|
16
|
-
| Ambassador MCP in the direct session | ACP HTTP MCP injection |
|
|
10
|
+
## Set up direct delivery
|
|
17
11
|
|
|
18
|
-
Gemini CLI
|
|
19
|
-
adapter. The reviewed release is
|
|
20
|
-
[`v0.58.0`](https://github.com/google-gemini/gemini-cli/tree/v0.58.0). Its
|
|
21
|
-
[`ACP mode documentation`](https://github.com/google-gemini/gemini-cli/blob/v0.58.0/docs/cli/acp-mode.md)
|
|
22
|
-
defines `gemini --acp`. Its
|
|
23
|
-
[`acpRpcDispatcher.ts`](https://github.com/google-gemini/gemini-cli/blob/v0.58.0/packages/cli/src/acp/acpRpcDispatcher.ts)
|
|
24
|
-
returns the `gemini-cli` ACP identity, and
|
|
25
|
-
[`acpSessionManager.ts`](https://github.com/google-gemini/gemini-cli/blob/v0.58.0/packages/cli/src/acp/acpSessionManager.ts)
|
|
26
|
-
maps session MCP configuration into Gemini CLI. The MCP client identity comes
|
|
27
|
-
from
|
|
28
|
-
[`mcp-client.ts`](https://github.com/google-gemini/gemini-cli/blob/v0.58.0/packages/core/src/tools/mcp-client.ts).
|
|
29
|
-
Other versions fail closed until the registry is reviewed and updated.
|
|
30
|
-
|
|
31
|
-
## Setup
|
|
32
|
-
|
|
33
|
-
1. Install Node.js `>=24.19.0 <25`, then install and authenticate Gemini CLI
|
|
34
|
-
0.58.0 using its normal setup. Ambassador never installs or updates Gemini.
|
|
35
|
-
2. For noninteractive provider authentication, set the appropriate approved
|
|
36
|
-
Gemini or Vertex variables outside chat. The profile accepts
|
|
37
|
-
`GEMINI_API_KEY`, `GOOGLE_API_KEY`, `GOOGLE_CLOUD_PROJECT`,
|
|
38
|
-
`GOOGLE_CLOUD_LOCATION`, and `GOOGLE_GENAI_USE_VERTEXAI`.
|
|
39
|
-
3. Generate the local MCP token without putting its value in chat or a command
|
|
40
|
-
argument:
|
|
12
|
+
1. From the directory Gemini CLI may access, keep Ambassador running:
|
|
41
13
|
|
|
42
14
|
```sh
|
|
43
|
-
|
|
44
|
-
node -e "process.stdout.write(require('node:crypto').randomBytes(24).toString('hex'))"
|
|
45
|
-
)"
|
|
15
|
+
npx --yes @embassys/ambassador@0.2.7 start
|
|
46
16
|
```
|
|
47
17
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
5. From the directory the direct agent may access, start the exact release and
|
|
58
|
-
keep it running in the foreground:
|
|
59
|
-
|
|
60
|
-
```sh
|
|
61
|
-
npx --yes @embassys/ambassador@0.2.6 start \
|
|
62
|
-
--local-token-env=AMBASSADOR_LOCAL_TOKEN
|
|
63
|
-
```
|
|
18
|
+
2. Add `http://127.0.0.1:8787/mcp` as a Streamable HTTP MCP server in Gemini
|
|
19
|
+
CLI's normal MCP configuration. Do not configure authentication.
|
|
20
|
+
3. Start or restart Gemini CLI so it sees the MCP server.
|
|
21
|
+
4. Ask Gemini CLI to register your email; it calls Ambassador's
|
|
22
|
+
`register_agent` tool.
|
|
23
|
+
5. Enter the six-digit code sent to your email. Gemini CLI is direct-only, so
|
|
24
|
+
Ambassador does not ask a delivery question.
|
|
64
25
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
provider's normal MCP configuration mechanism; do not copy the token value
|
|
68
|
-
into chat.
|
|
69
|
-
7. Ask Gemini CLI to register with your email and optional display name. The
|
|
70
|
-
first `register_agent` call contains `email` and, if wanted, `display_name`.
|
|
71
|
-
Ambassador recognizes the Gemini CLI profile and asks direct versus webhook,
|
|
72
|
-
with direct as the default.
|
|
73
|
-
8. For direct mode, choose direct. The follow-up repeats the same `email` and
|
|
74
|
-
optional `display_name` and adds `delivery: {"mode":"direct"}`. Ambassador
|
|
75
|
-
starts `gemini --acp` and injects its authenticated HTTP MCP server into the
|
|
76
|
-
new ACP session.
|
|
77
|
-
9. For webhook mode, choose webhook and provide the HTTPS receiver URL plus
|
|
78
|
-
the environment-variable name `AMBASSADOR_WEBHOOK_SECRET`. The follow-up
|
|
79
|
-
repeats the registration fields and adds `delivery.mode`, `delivery.url`,
|
|
80
|
-
and `delivery.secret_env`; it never sends the secret value.
|
|
81
|
-
10. Enter the email verification code when Gemini CLI asks for it. Gemini CLI
|
|
82
|
-
calls `verify_email` with that `email` and six-digit `code`; the central
|
|
83
|
-
token and DPoP key stay inside Ambassador.
|
|
26
|
+
Ambassador will launch `gemini --acp` when a central message arrives. That is
|
|
27
|
+
a new gateway-managed session, not the chat used for registration.
|
|
84
28
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
29
|
+
Only the exact version above is enabled. Other versions fail closed until
|
|
30
|
+
their capability profile is reviewed. See [Qualification](qualification.md)
|
|
31
|
+
for compatibility evidence.
|
|
@@ -1,84 +1,47 @@
|
|
|
1
1
|
# Get started with Hermes Agent
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
against Hermes Agent 0.21.0. Real-agent direct and webhook qualification remain
|
|
5
|
-
open under the one-release qualification exception in ADR 0015.
|
|
3
|
+
## Before you start
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
- Install Node.js `>=24.19.0 <25`.
|
|
6
|
+
- Install and authenticate Hermes Agent `0.21.0`.
|
|
7
|
+
- Make sure `hermes-acp` is on `PATH` for direct delivery.
|
|
8
|
+
- Ambassador never receives your provider credential.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
| --- | --- |
|
|
11
|
-
| MCP `clientInfo` | `mcp` / `0.1.0` |
|
|
12
|
-
| Delivery modes | direct and webhook |
|
|
13
|
-
| Direct command | `hermes-acp` |
|
|
14
|
-
| Accepted ACP `agentInfo` | `hermes-agent` / `0.21.0` |
|
|
15
|
-
| Ambassador MCP in the direct session | ACP HTTP MCP injection |
|
|
10
|
+
## Set up direct delivery
|
|
16
11
|
|
|
17
|
-
|
|
18
|
-
`1cb3ab617363ffab9e55239a7d2ab0d6f9c10473`. Hermes pins Python MCP 2.0.0 and
|
|
19
|
-
constructs `ClientSession` without overriding its client identity in
|
|
20
|
-
[`mcp_tool.py`](https://github.com/NousResearch/hermes-agent/blob/1cb3ab617363ffab9e55239a7d2ab0d6f9c10473/tools/mcp_tool.py).
|
|
21
|
-
That SDK's exact `mcp` / `0.1.0` identity is defined by Python MCP 2.0.0's
|
|
22
|
-
[`DEFAULT_CLIENT_INFO`](https://github.com/modelcontextprotocol/python-sdk/blob/6f69a3758ebf2ee55ce050f58b470ce11af71133/src/mcp/client/session.py).
|
|
23
|
-
Hermes declares the `hermes-acp` entry point in
|
|
24
|
-
[`pyproject.toml`](https://github.com/NousResearch/hermes-agent/blob/1cb3ab617363ffab9e55239a7d2ab0d6f9c10473/pyproject.toml)
|
|
25
|
-
and returns its ACP identity in
|
|
26
|
-
[`acp_adapter/server.py`](https://github.com/NousResearch/hermes-agent/blob/1cb3ab617363ffab9e55239a7d2ab0d6f9c10473/acp_adapter/server.py).
|
|
27
|
-
Later versions fail closed until the registry is reviewed and updated.
|
|
28
|
-
|
|
29
|
-
## Setup
|
|
30
|
-
|
|
31
|
-
1. Install Node.js `>=24.19.0 <25`, then install and authenticate Hermes Agent
|
|
32
|
-
0.21.0 using its normal provider setup. Ambassador never installs or updates
|
|
33
|
-
Hermes.
|
|
34
|
-
2. Generate the local MCP token without putting its value in chat or a command
|
|
35
|
-
argument:
|
|
12
|
+
1. From the directory Hermes may access, keep Ambassador running:
|
|
36
13
|
|
|
37
14
|
```sh
|
|
38
|
-
|
|
39
|
-
node -e "process.stdout.write(require('node:crypto').randomBytes(24).toString('hex'))"
|
|
40
|
-
)"
|
|
15
|
+
npx --yes @embassys/ambassador@0.2.7 start
|
|
41
16
|
```
|
|
42
17
|
|
|
43
|
-
|
|
44
|
-
|
|
18
|
+
2. Add `http://127.0.0.1:8787/mcp` as a Streamable HTTP MCP server in Hermes's
|
|
19
|
+
normal MCP configuration. Do not configure authentication.
|
|
20
|
+
3. Start or restart Hermes so it sees the MCP server.
|
|
21
|
+
4. Ask Hermes to register your email; it calls Ambassador's `register_agent`
|
|
22
|
+
tool.
|
|
23
|
+
5. Choose **Send directly to this Hermes agent**.
|
|
24
|
+
6. Enter the six-digit code sent to your email.
|
|
45
25
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
node -e "process.stdout.write(require('node:crypto').randomBytes(24).toString('hex'))"
|
|
49
|
-
)"
|
|
50
|
-
```
|
|
26
|
+
Ambassador will launch `hermes-acp` when a central message arrives. That is a
|
|
27
|
+
new gateway-managed session, not the chat used for registration.
|
|
51
28
|
|
|
52
|
-
|
|
53
|
-
keep it running in the foreground:
|
|
29
|
+
## Use a webhook instead
|
|
54
30
|
|
|
55
|
-
|
|
56
|
-
npx --yes @embassys/ambassador@0.2.6 start \
|
|
57
|
-
--local-token-env=AMBASSADOR_LOCAL_TOKEN
|
|
58
|
-
```
|
|
31
|
+
- Before step 1, set the receiver secret in the same shell:
|
|
59
32
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
Ambassador recognizes the Hermes profile and asks direct versus webhook,
|
|
66
|
-
with direct as the default.
|
|
67
|
-
7. For direct mode, choose direct. The follow-up repeats the same `email` and
|
|
68
|
-
optional `display_name` and adds `delivery: {"mode":"direct"}`. Ambassador
|
|
69
|
-
starts `hermes-acp` and injects its authenticated HTTP MCP server into the
|
|
70
|
-
gateway-owned ACP session.
|
|
71
|
-
8. For webhook mode, choose webhook and provide the HTTPS receiver URL plus
|
|
72
|
-
the environment-variable name `AMBASSADOR_WEBHOOK_SECRET`. The follow-up
|
|
73
|
-
repeats the registration fields and adds `delivery.mode`, `delivery.url`,
|
|
74
|
-
and `delivery.secret_env`; it never sends the secret value.
|
|
75
|
-
9. Enter the email verification code when Hermes asks for it. Hermes calls
|
|
76
|
-
`verify_email` with that `email` and six-digit `code`; the central token and
|
|
77
|
-
DPoP key stay inside Ambassador.
|
|
33
|
+
```sh
|
|
34
|
+
export AMBASSADOR_WEBHOOK_SECRET="$(
|
|
35
|
+
node -e "process.stdout.write(require('node:crypto').randomBytes(24).toString('hex'))"
|
|
36
|
+
)"
|
|
37
|
+
```
|
|
78
38
|
|
|
79
|
-
|
|
80
|
-
|
|
39
|
+
- During registration, choose **Send to a webhook**.
|
|
40
|
+
- Give Hermes the HTTPS webhook URL and the variable name
|
|
41
|
+
`AMBASSADOR_WEBHOOK_SECRET`.
|
|
42
|
+
- Hermes supplies `delivery.url` and `delivery.secret_env`; it never receives
|
|
43
|
+
the secret value.
|
|
81
44
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
45
|
+
Only the exact version above is enabled. Other versions fail closed until
|
|
46
|
+
their capability profile is reviewed. See [Qualification](qualification.md)
|
|
47
|
+
for compatibility evidence.
|
|
@@ -1,83 +1,48 @@
|
|
|
1
1
|
# Get started with OpenClaw
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
against OpenClaw 2026.8.1. Real-agent direct and webhook qualification remain
|
|
5
|
-
open under the one-release qualification exception in ADR 0015.
|
|
3
|
+
## Before you start
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
- Install Node.js `>=24.19.0 <25`.
|
|
6
|
+
- Install and authenticate OpenClaw `2026.8.1`.
|
|
7
|
+
- Make sure `openclaw` is on `PATH` for direct delivery.
|
|
8
|
+
- Ambassador never receives your provider credential.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
| --- | --- |
|
|
11
|
-
| MCP `clientInfo` | `openclaw-bundle-mcp` / `0.0.0` |
|
|
12
|
-
| Delivery modes | direct and webhook |
|
|
13
|
-
| Direct command | `openclaw acp` |
|
|
14
|
-
| Accepted ACP `agentInfo` | `openclaw-acp` / `2026.8.1` |
|
|
15
|
-
| Ambassador MCP in the direct session | provider configuration required |
|
|
10
|
+
## Set up direct delivery
|
|
16
11
|
|
|
17
|
-
|
|
18
|
-
`a68a4e39684168cf83201cf48261be23174bad3d`. The source defines the MCP alias in
|
|
19
|
-
[`agent-bundle-mcp-runtime.ts`](https://github.com/openclaw/openclaw/blob/a68a4e39684168cf83201cf48261be23174bad3d/src/agents/agent-bundle-mcp-runtime.ts),
|
|
20
|
-
the ACP identity in
|
|
21
|
-
[`acp/types.ts`](https://github.com/openclaw/openclaw/blob/a68a4e39684168cf83201cf48261be23174bad3d/src/acp/types.ts),
|
|
22
|
-
and the command in
|
|
23
|
-
[`acp-cli.ts`](https://github.com/openclaw/openclaw/blob/a68a4e39684168cf83201cf48261be23174bad3d/src/cli/acp-cli.ts).
|
|
24
|
-
Later versions fail closed until the registry is reviewed and updated.
|
|
25
|
-
|
|
26
|
-
## Setup
|
|
27
|
-
|
|
28
|
-
1. Install Node.js `>=24.19.0 <25`, then install and authenticate OpenClaw
|
|
29
|
-
2026.8.1 using its normal provider setup. Ambassador never installs or
|
|
30
|
-
updates OpenClaw.
|
|
31
|
-
2. Generate the local MCP token without putting its value in chat or a command
|
|
32
|
-
argument:
|
|
33
|
-
|
|
34
|
-
```sh
|
|
35
|
-
export AMBASSADOR_LOCAL_TOKEN="$(
|
|
36
|
-
node -e "process.stdout.write(require('node:crypto').randomBytes(24).toString('hex'))"
|
|
37
|
-
)"
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
3. If you may choose webhook delivery, create its secret in the same shell
|
|
41
|
-
before starting Ambassador:
|
|
12
|
+
1. From the directory OpenClaw may access, keep Ambassador running:
|
|
42
13
|
|
|
43
14
|
```sh
|
|
44
|
-
|
|
45
|
-
node -e "process.stdout.write(require('node:crypto').randomBytes(24).toString('hex'))"
|
|
46
|
-
)"
|
|
15
|
+
npx --yes @embassys/ambassador@0.2.7 start
|
|
47
16
|
```
|
|
48
17
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
For the opt-in real-agent suite, configure this same provider-side MCP entry at
|
|
82
|
-
`http://127.0.0.1:8787/mcp` using `AMBASSADOR_QUALIFICATION_LOCAL_TOKEN`; the
|
|
83
|
-
runner verifies that OpenClaw calls it with the exact reviewed `clientInfo`.
|
|
18
|
+
2. Add `http://127.0.0.1:8787/mcp` as a Streamable HTTP MCP server in
|
|
19
|
+
OpenClaw's normal MCP configuration. Do not configure authentication.
|
|
20
|
+
3. Start or restart OpenClaw so it sees the MCP server.
|
|
21
|
+
4. Ask OpenClaw to register your email; it calls Ambassador's `register_agent`
|
|
22
|
+
tool.
|
|
23
|
+
5. Choose **Send directly to this OpenClaw agent**.
|
|
24
|
+
6. Enter the six-digit code sent to your email.
|
|
25
|
+
|
|
26
|
+
Ambassador will launch `openclaw acp` when a central message arrives. OpenClaw
|
|
27
|
+
does not accept session MCP injection, so keep the provider-side MCP entry from
|
|
28
|
+
step 2 configured.
|
|
29
|
+
|
|
30
|
+
## Use a webhook instead
|
|
31
|
+
|
|
32
|
+
- Before step 1, set the receiver secret in the same shell:
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
export AMBASSADOR_WEBHOOK_SECRET="$(
|
|
36
|
+
node -e "process.stdout.write(require('node:crypto').randomBytes(24).toString('hex'))"
|
|
37
|
+
)"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- During registration, choose **Send to a webhook**.
|
|
41
|
+
- Give OpenClaw the HTTPS webhook URL and the variable name
|
|
42
|
+
`AMBASSADOR_WEBHOOK_SECRET`.
|
|
43
|
+
- OpenClaw supplies `delivery.url` and `delivery.secret_env`; it never receives
|
|
44
|
+
the secret value.
|
|
45
|
+
|
|
46
|
+
Only the exact version above is enabled. Other versions fail closed until
|
|
47
|
+
their capability profile is reviewed. See [Qualification](qualification.md)
|
|
48
|
+
for compatibility evidence.
|
|
@@ -25,10 +25,10 @@ fixed Codex profile and `codex-acp` 1.8.0 with an isolated Codex login.
|
|
|
25
25
|
## Required live checks after the cutover
|
|
26
26
|
|
|
27
27
|
1. Pack and scan the exact candidate package.
|
|
28
|
-
2. Create two disposable identities through
|
|
28
|
+
2. Create two disposable identities through loopback local MCP.
|
|
29
29
|
3. Use the exact enabled `clientInfo` aliases for one webhook profile and one
|
|
30
|
-
direct profile. Prove
|
|
31
|
-
|
|
30
|
+
direct profile. Prove a dual-mode profile advertises direct as its default;
|
|
31
|
+
prove a direct-only profile proceeds without a delivery question.
|
|
32
32
|
4. Receive and use both verification emails without persisting their codes.
|
|
33
33
|
5. Restart and prove encrypted credential and nonsecret profile loading.
|
|
34
34
|
6. Prove valid Bearer plus DPoP requests and the negative DPoP matrix.
|