Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,18 @@ Clients connect in the simplest shape they support:
and manages its own workers.
- **Portable Markdown/JSON handoff** when live remote MCP is unavailable.

The dashboard provides native setup commands for OpenCode, Gemini CLI, and
Copilot CLI, a portable plugin for OpenClaw, and a ready-to-copy Eve connection.
Hermes can connect through its native remote MCP and OAuth support. Choose your
tool, approve its access, and keep working in the environment you already use.

Compatibility is reviewed against dated upstream releases. See the
[portable agent guide](docs/PORTABLE-AGENT-COMPATIBILITY.md),
[Eve setup](docs/EVE-COMPATIBILITY.md), and
[Hermes guide](docs/HERMES-HANDS-OFF.md) for verified setup details and testing
limits. Existing connections keep working; a naming update does not require
reconnecting your Project.

No provider becomes a required dependency. See the
[compatibility guide](docs/MCP-COMPATIBILITY.md) for the current protocol and
dated client evidence.
Expand Down
4 changes: 2 additions & 2 deletions apps/web/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1245,11 +1245,11 @@ function AgentConnectionsPanel({
<>
<div className="agent-client-guide-heading">
<div>
<span className="pairing-label">Eve 0.29</span>
<span className="pairing-label">Eve</span>
<h3>Add a user-scoped connection</h3>
</div>
<span className="client-path">
<code>agent/connections/owd.ts</code>
<code>agent/connections/mdevolved.ts</code>
</span>
</div>
<SmartCopyField
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/agent-client-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {
createAlbatrossAuthorizationCommand as createProfileAlbatrossAuthorizationCommand,
createAlbatrossMcpMergeConfig as createProfileAlbatrossMcpMergeConfig,
createAlbatrossSetupKit as createProfileAlbatrossSetupKit,
createEveConnectionSource as createProfileEveConnectionSource,
createMDevolvedEveConnectionSource as createProfileEveConnectionSource,
createObsidianMindMcpMergeConfig as createProfileMcpMergeConfig,
createObsidianMindProjectMcpCommand as createProfileProjectMcpCommand,
} from "@mdevolved/client-packs";
Expand Down
7 changes: 4 additions & 3 deletions apps/web/test/agent-client-config.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,12 @@ describe("agent client setup helpers", () => {

it("creates Eve's user-scoped connection module", () => {
const source = createEveConnectionSource(MCP_URL);
expect(source).toContain(`const owdMcpUrl = "${MCP_URL}";`);
expect(source).toContain('connector: "oauth/owd"');
expect(source).toContain('connector: "oauth/mdevolved"');
expect(source).toContain(`const mdevolvedMcpUrl = "${MCP_URL}";`);
expect(source).toContain("resources: [mdevolvedMcpUrl]");
expect(source).not.toContain('connector: "oauth/owd"');
expect(source).toContain('principalType: "user"');
expect(source).toContain('"vault.read"');
expect(source).toContain("resources: [owdMcpUrl]");
expect(source).toContain("autoProvision: true");
expect(source).not.toContain('principalType: "app"');
expect(source).not.toContain("Bearer ");
Expand Down
6 changes: 3 additions & 3 deletions apps/worker/test/agent-access.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1908,9 +1908,9 @@ describe("scoped universal agent access", () => {
format: "owd-client-profile-v1",
id: "eve",
source: {
commit: "d004e6d47e9d25d0380c24b5a47b65a18f8b2784",
connectVersion: "2.0.4",
eveVersion: "0.63.0",
commit: "7bcc0d16e3f41d44fadfd06b5bac3515a82d441d",
connectVersion: "2.3.2",
eveVersion: "0.65.0",
repository: "https://github.com/vercel/eve",
},
});
Expand Down
36 changes: 18 additions & 18 deletions compatibility/upstreams.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,16 +52,16 @@
"source": {
"kind": "github-release",
"repository": "vercel/eve",
"releaseTag": "eve@0.63.0",
"commit": "d004e6d47e9d25d0380c24b5a47b65a18f8b2784",
"reviewedAt": "2026-09-21"
"releaseTag": "eve@0.65.0",
"commit": "7bcc0d16e3f41d44fadfd06b5bac3515a82d441d",
"reviewedAt": "2026-09-24"
},
"dependencies": [
{
"kind": "npm",
"package": "@vercel/connect",
"version": "2.0.4",
"integrity": "sha512-VD0dY28Nr8uTa5yOWeHQwgn6e3Oj0gbDvkJ3EowPRSJriarPPX5I2oG6IpEg3sFz6t16AY5Us5eHRb0UMkdfVQ=="
"version": "2.3.2",
"integrity": "sha512-qNRdUI6h2zbTruYU92leapFvBRjwF70gewwuj0rBPBHyu2Bnfzm//k4Sc8kA8e/zQfwKbdpYVk8oWe3fNqImzA=="
}
],
"criticalPaths": [
Expand All @@ -80,18 +80,18 @@
{
"path": "packages/client-packs/src/eve.ts",
"requiredMarkers": [
"commit: \"d004e6d47e9d25d0380c24b5a47b65a18f8b2784\"",
"connectVersion: \"2.0.4\"",
"eveVersion: \"0.63.0\"",
"reviewedAt: \"2026-09-21\""
"commit: \"7bcc0d16e3f41d44fadfd06b5bac3515a82d441d\"",
"connectVersion: \"2.3.2\"",
"eveVersion: \"0.65.0\"",
"reviewedAt: \"2026-09-24\""
]
},
{
"path": "docs/EVE-COMPATIBILITY.md",
"requiredMarkers": [
"`0.63.0`",
"`d004e6d47e9d25d0380c24b5a47b65a18f8b2784`",
"`2.0.4`"
"`0.65.0`",
"`7bcc0d16e3f41d44fadfd06b5bac3515a82d441d`",
"`2.3.2`"
]
}
]
Expand Down Expand Up @@ -153,9 +153,9 @@
"source": {
"kind": "github-release",
"repository": "NousResearch/hermes-agent",
"releaseTag": "v2026.9.21",
"commit": "d337b736aa1e8ebecfab043842d13e4a2d2f48a3",
"reviewedAt": "2026-09-21"
"releaseTag": "v2026.9.24",
"commit": "f97608f178d1ffeca59860195ab7da295f7c8e5f",
"reviewedAt": "2026-09-24"
},
"criticalPaths": [
"pyproject.toml",
Expand All @@ -174,9 +174,9 @@
{
"path": "docs/HERMES-HANDS-OFF.md",
"requiredMarkers": [
"`0.21.4`",
"`d337b736aa1e8ebecfab043842d13e4a2d2f48a3`",
"Reviewed `2026-09-21`"
"`0.21.5`",
"`f97608f178d1ffeca59860195ab7da295f7c8e5f`",
"Reviewed `2026-09-24`"
]
}
]
Expand Down
32 changes: 21 additions & 11 deletions docs/EVE-COMPATIBILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,30 @@ The reviewed profile is pinned to:

| Contract | Reviewed value |
| ----------------- | ------------------------------------------ |
| Eve | `0.63.0` |
| Eve source commit | `d004e6d47e9d25d0380c24b5a47b65a18f8b2784` |
| `@vercel/connect` | `2.0.4` |
| Eve | `0.65.0` |
| Eve source commit | `7bcc0d16e3f41d44fadfd06b5bac3515a82d441d` |
| `@vercel/connect` | `2.3.2` |
| License | Apache-2.0 |
| Reviewed | September 21, 2026 |
| Reviewed | September 24, 2026 |

This is a source-verified compatibility profile. It does not yet claim that a
live Eve deployment has completed MDevolved's independent two-agent acceptance run.
Unknown future Eve connection or identity changes fall back to MDevolved's universal
MCP setup until the profile is reviewed again.

Eve 0.63.0 retains authored `agent/connections/*.ts` modules,
Eve 0.65.0 retains authored `agent/connections/*.ts` modules,
`defineMcpClientConnection`, and the user-scoped `@vercel/connect/eve`
`connect()` helper used by MDevolved. Version `2.0.4` is the newest reviewed
helper old enough to satisfy the repository's minimum-release-age policy;
newer releases remain monitor-visible drift. The Eve update changes background
tool and runtime behavior but leaves this user-scoped remote connection shape
intact; the exact generated module type-checks against both current packages.
`connect()` helper used by MDevolved. The connection definitions, runtime, and
connection documentation have identical Git blob identities between the
previous `0.63.0` pin and this release. Connect `2.3.2` retains explicit user
principals, scopes/resources, and opt-in connector provisioning; its token-cache
eviction does not replace MDevolved's authoritative grant checks. The exact
generated module type-checks against both pinned packages.

The newer Eve `0.66.2` release was observed during this review but is not the
installed compatibility target; the monitor deliberately continues to report
that drift. MDevolved supports `server/discover`, so the connection keeps Eve's
default protocol discovery rather than forcing the legacy handshake.
Until MDevolved is accepted
into Eve's registry, use the dashboard-generated module rather than claiming
an `eve add` package that does not exist.
Expand All @@ -53,7 +59,11 @@ and qualifies them with its connection name.

## Install the connection

Create `agent/connections/owd.ts`:
Create `agent/connections/mdevolved.ts`:

Keep an existing `owd.ts` connection working as-is; do not add a duplicate,
rename its connector, or repeat authorization just for the naming update.
The canonical name below is for new connections.

```ts
import { connect } from "@vercel/connect/eve";
Expand Down
10 changes: 8 additions & 2 deletions docs/HERMES-HANDS-OFF.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

**Status:** inert, script-free guidance over the generic MDevolved MCP services

**Source-verified profile:** Hermes Agent `0.21.4`, tag `v2026.9.21`, commit
`d337b736aa1e8ebecfab043842d13e4a2d2f48a3`. Reviewed `2026-09-21`.
**Source-verified profile:** Hermes Agent `0.21.5`, tag `v2026.9.24`, commit
`f97608f178d1ffeca59860195ab7da295f7c8e5f`. Reviewed `2026-09-24`.

Hermes now has native remote MCP OAuth support. Point that client at
`https://YOUR-MDEVOLVED-HOST/mcp`; do not add a transport bridge or place OAuth
Expand All @@ -17,6 +17,12 @@ OAuth with an explicit headless login path, and fenced delegated-child identity.
Hermes memory and skill state remain runtime-owned and are never ingested as
MDevolved authority or raw session history.

The September 24 tagged-source review found no changes to `tools/mcp_tool.py`,
`tools/mcp_oauth.py`, or `tools/mcp_oauth_manager.py` from the previous pin.
The CLI now shares its MCP enabled-state helper; the remote URL/OAuth setup
remains unchanged. Device login is an explicit Hermes action, not authority
that this adapter can create.

The same guidance is discoverable as the MCP resource
`mdevolved://adapters/hermes/hands-off/v1`.

Expand Down
21 changes: 14 additions & 7 deletions docs/PORTABLE-AGENT-COMPATIBILITY.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,32 @@
# Portable agent compatibility

This receipt records the exact upstream surfaces reviewed for PAC1 on
2026-09-21. These are compatibility claims, not vendor endorsements or claims
This receipt records the exact upstream surfaces reviewed for PAC1, refreshed on
2026-09-24. These are compatibility claims, not vendor endorsements or claims
that MDevolved controls a client's runtime.

| Client or standard | Reviewed release | Source contract used by MDevolved |
| ------------------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Agent Plugins | `1.0.0` | Root `plugin.json`, optional root `mcp.json`, immediate-child `skills/*/SKILL.md`, and `streamable-http`; OAuth remains client-managed. |
| OpenCode | `v1.18.32` at `545f51d26cc39a907d2867492d498d9607ea5fa4` | `opencode mcp add mdevolved --url <url>` creates a remote server; OpenCode owns its OAuth flow and credentials. |
| OpenClaw | `v2026.9.5` at `ec9c1a13db8938e5a3eaa51fca2e981cde2395a9` | Local archives with root Agent Plugins metadata are installed through `openclaw plugins install`; supported skill and HTTP MCP components are mapped into OpenClaw. |
| Gemini CLI | `v0.60.0` at `733edcb597ce690ac2e2fe3b3b3690b60a4c8f27` | `gemini mcp add mdevolved <url> --transport http` adds the remote MCP server. |
| GitHub Copilot CLI | `v1.0.87` at `d418dbf1061152afa17500cbc69478f8dce153d8` | `copilot mcp add --transport http mdevolved <url>` adds the remote MCP server; Copilot owns its interactive authorization state. |
| OpenClaw | `v2026.9.6` at `eb377ac59e6c9fd6c7705028034812becf00271b` | Local archives with root Agent Plugins metadata are installed through `openclaw plugins install`; supported skill and HTTP MCP components are mapped into OpenClaw. |
| Gemini CLI | `v0.61.0` at `bb523741c7429a44d03e964bc124c7c92df59d5f` | `gemini mcp add mdevolved <url> --transport http` adds the remote MCP server. |
| GitHub Copilot CLI | `v1.0.88` at `c13b3dcae4f1e176c5a074c0d063a6e9f258081f` | `copilot mcp add --transport http mdevolved <url>` adds the remote MCP server; Copilot owns its interactive authorization state. |

Primary sources:

- [Agent Plugins 1.0 specification](https://agent-plugins.org/specification)
- [OpenCode MCP command source](https://github.com/anomalyco/opencode/blob/v1.18.32/packages/opencode/src/cli/cmd/mcp.ts)
- [OpenClaw bundle contract](https://github.com/openclaw/openclaw/blob/v2026.9.5/docs/plugins/bundles.md)
- [Gemini CLI command reference](https://github.com/google-gemini/gemini-cli/blob/v0.60.0/docs/cli/cli-reference.md)
- [OpenClaw bundle contract](https://github.com/openclaw/openclaw/blob/v2026.9.6/docs/plugins/bundles.md)
- [Gemini CLI command reference](https://github.com/google-gemini/gemini-cli/blob/v0.61.0/docs/cli/cli-reference.md)
- [GitHub Copilot CLI command reference](https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference)

The refreshed Gemini MCP-add implementation and OpenClaw bundle documentation
are unchanged from the previous pins. OpenCode's reviewed release is still
current. [Copilot 1.0.88 release notes](https://github.com/github/copilot-cli/releases/tag/v1.0.88)
describe MCP reconnect, OAuth, and tool-cache fixes; its proprietary
implementation was not inspected. No generated setup command or archive layout
needed changing. These checks do not certify a live install or OAuth session.

## Boundary

The dashboard emits only a public deployment URL. The generated Agent Plugins
Expand Down
4 changes: 2 additions & 2 deletions docs/RELEASE-COMPATIBILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ existing `owd-sync` installations remain the supported compatibility path.
| MCP | Authenticated Streamable HTTP against MCP `2026-07-28`, with stateless `2025-11-25` compatibility | Read-only vault tools are the portable baseline. Project behavior uses ordinary MCP Tools, Resources, and Prompts. See [MCP compatibility](MCP-COMPATIBILITY.md). |
| Project lifecycle | `open_project`, `wait_for_project_connection`, and `mdevolved_resume`; lower-level `resume_project` remains compatible | Create, join, rejoin, and resume converge on one exact Project without a client-specific transport. |
| Obsidian Mind profile | `8.4.0` at commit `af615d100a1d04561409ab9a1e71e615efa1d87b` | MDevolved runs beside `qmd`/`om`, preserves native layout, and never turns local profile data into authority. |
| Eve.dev profile | Eve `0.63.0` at commit `d004e6d47e9d25d0380c24b5a47b65a18f8b2784`; `@vercel/connect` `2.0.4` | Uses Eve's native user-scoped MCP connection. Separate attribution requires a distinct connector identity. |
| Eve.dev profile | Eve `0.65.0` at commit `7bcc0d16e3f41d44fadfd06b5bac3515a82d441d`; `@vercel/connect` `2.3.2` | Uses Eve's native user-scoped MCP connection. Separate attribution requires a distinct connector identity. |
| Albatross profile | Albatross `2.5.0` at commit `e458e4277f463a4688f127ea6ea61f5a344b64b8`; `mcp-remote` `0.14.3` | Uses a pinned stdio bridge while MDevolved remains standard remote Streamable HTTP MCP with OAuth. |
| Hermes hands-off adapter | Hermes `0.21.4` at commit `d337b736aa1e8ebecfab043842d13e4a2d2f48a3` | Uses Hermes's native remote MCP/OAuth client; MDevolved stores bounded evidence and never becomes its scheduler or runtime. |
| Hermes hands-off adapter | Hermes `0.21.5` at commit `f97608f178d1ffeca59860195ab7da295f7c8e5f` | Uses Hermes's native remote MCP/OAuth client; MDevolved stores bounded evidence and never becomes its scheduler or runtime. |
| LangChain recipe | LangChain `1.4.2` at commit `a18de590e7ccf5c647fbf3d689e5f1a15f78e9f5`; built-in `langchain.mcp` beta | Uses `MCPAdapter` over FastMCP OAuth. Tools are the baseline; Prompts and Resources remain available through the underlying FastMCP client. |
| Portable backup | New writes use `mdevolved-backup-v1`; `owd-backup-v1` remains readable | Unknown or malformed formats fail before staging; credentials and live grants never restore. |
| Workspace snapshot | New writes use `mdevolved-snapshot-v3`; `owd-snapshot-v2` remains readable | Unknown required capabilities fail before staging. Credentials and live grants never restore. |
Expand Down
Loading
Loading