[PR #1717] [CLOSED] feat(setup): add Maki client support #4778

Closed
opened 2026-10-31 00:54:57 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/1717
Author: @duncanmcqueen
Created: 10/11/2026
Status: ❌ Closed

Base: main ← Head: feat/maki-client-support


📝 Commits (3)

  • 4b62eac feat(setup): add Maki client support
  • e6f6a04 fix(setup): tighten Maki review findings
  • a30f436 fix(setup): correct Maki directory resolution and cleanup

📊 Changes

10 files changed (+530 additions, -25 deletions)

View changed files

📝 docs/installation.md (+19 -2)
📝 src/application/ClientConfigurationDocument.ts (+61 -13)
📝 src/application/ClientRegistrationEnvironment.ts (+3 -1)
📝 src/application/ClientRegistrationStatus.ts (+16 -0)
📝 src/application/SetupClientConfiguration.ts (+4 -1)
📝 src/application/SupportedClients.ts (+77 -1)
📝 src/application/Uninstall.ts (+20 -7)
➕ tests/acceptance/setup/makiClientSetup.test.ts (+72 -0)
📝 tests/boundary/filesystem/clientLifecycle.test.ts (+1 -0)
➕ tests/boundary/filesystem/makiClientConfiguration.test.ts (+257 -0)

📄 Description

What

Adds Maki as a supported client so rea setup,
rea doctor, and rea uninstall manage REA's local MCP registration.

Maki reads stdio servers from [mcp.<name>] tables in mcp.toml:

[mcp.rea]
command = ["npx", "-y", "rea-agents@<version>", "mcp"]

Behavior

  • Resolves mcp.toml and the personal skill directory from Maki's config base —
    %APPDATA%\maki on Windows, ~/Library/Application Support/maki on macOS,
    and $XDG_CONFIG_HOME/maki (or ~/.config/maki) otherwise — collapsing to
    legacy ~/.maki whenever that directory exists, matching Maki's own
    config_dir() / find_config_path() behavior.
  • Parses and edits [mcp.<server>] TOML in place. Unrelated servers, the
    top-level defer_tools key, and comments are preserved; empty and missing
    files create a fresh document. Maki stores the whole argv in one command
    array and stdio environment under environment.
  • Teaches registration status, retained-environment handling, and uninstall
    about the Maki entry shape (argv array instead of command + args).
  • Installs the bundled skill under the Maki config directory's skills.
  • Adds Maki to the supported-agents table and the client settings guide.

Validation

  • npm run typecheck, npm run lint, and npm run check:fast pass.
  • npm run docs:check passes (supported-agents facts include Maki).
  • npm run verify:test-discovery, npm run knip pass.
  • New tests:
    • tests/boundary/filesystem/makiClientConfiguration.test.ts — path
      resolution (platform base, XDG_CONFIG_HOME, legacy ~/.maki), TOML
      write/readback preserving comments and sibling servers, doctor alignment,
      and uninstall.
    • tests/acceptance/setup/makiClientSetup.test.ts — rea setup --client maki
      writes [mcp.rea] through the compiled CLI, and rea doctor --client maki
      reports it aligned.
  • Existing client configuration, registration-status, lifecycle, and product
    catalog tests pass.

Verification scope

Setup/doctor/uninstall were exercised through the compiled CLI and the
filesystem boundary on Linux. No live Maki agent run is included; the MCP
handshake was verified out of band (tools/list returns 170 tools, 6 prompts).
Windows and macOS path resolution is covered by unit tests but not run on those
hosts here.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/1717 **Author:** [@duncanmcqueen](https://github.com/duncanmcqueen) **Created:** 10/11/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat/maki-client-support` --- ### 📝 Commits (3) - [`4b62eac`](https://github.com/morluto/rea/commit/4b62eac300d2c23660e8bd64822697d5461a0fc7) feat(setup): add Maki client support - [`e6f6a04`](https://github.com/morluto/rea/commit/e6f6a047e1f62fd9d1c5c28b76774434092970d8) fix(setup): tighten Maki review findings - [`a30f436`](https://github.com/morluto/rea/commit/a30f436fa6e750540120f3c81041d8f7620cc75c) fix(setup): correct Maki directory resolution and cleanup ### 📊 Changes **10 files changed** (+530 additions, -25 deletions) <details> <summary>View changed files</summary> 📝 `docs/installation.md` (+19 -2) 📝 `src/application/ClientConfigurationDocument.ts` (+61 -13) 📝 `src/application/ClientRegistrationEnvironment.ts` (+3 -1) 📝 `src/application/ClientRegistrationStatus.ts` (+16 -0) 📝 `src/application/SetupClientConfiguration.ts` (+4 -1) 📝 `src/application/SupportedClients.ts` (+77 -1) 📝 `src/application/Uninstall.ts` (+20 -7) ➕ `tests/acceptance/setup/makiClientSetup.test.ts` (+72 -0) 📝 `tests/boundary/filesystem/clientLifecycle.test.ts` (+1 -0) ➕ `tests/boundary/filesystem/makiClientConfiguration.test.ts` (+257 -0) </details> ### 📄 Description ## What Adds [Maki](https://github.com/maki-ai) as a supported client so `rea setup`, `rea doctor`, and `rea uninstall` manage REA's local MCP registration. Maki reads stdio servers from `[mcp.<name>]` tables in `mcp.toml`: ```toml [mcp.rea] command = ["npx", "-y", "rea-agents@<version>", "mcp"] ``` ## Behavior - Resolves `mcp.toml` and the personal skill directory from Maki's config base — `%APPDATA%\maki` on Windows, `~/Library/Application Support/maki` on macOS, and `$XDG_CONFIG_HOME/maki` (or `~/.config/maki`) otherwise — collapsing to legacy `~/.maki` whenever that directory exists, matching Maki's own `config_dir()` / `find_config_path()` behavior. - Parses and edits `[mcp.<server>]` TOML in place. Unrelated servers, the top-level `defer_tools` key, and comments are preserved; empty and missing files create a fresh document. Maki stores the whole argv in one `command` array and stdio environment under `environment`. - Teaches registration status, retained-environment handling, and uninstall about the Maki entry shape (argv array instead of `command` + `args`). - Installs the bundled skill under the Maki config directory's `skills`. - Adds Maki to the supported-agents table and the client settings guide. ## Validation - `npm run typecheck`, `npm run lint`, and `npm run check:fast` pass. - `npm run docs:check` passes (supported-agents facts include Maki). - `npm run verify:test-discovery`, `npm run knip` pass. - New tests: - `tests/boundary/filesystem/makiClientConfiguration.test.ts` — path resolution (platform base, `XDG_CONFIG_HOME`, legacy `~/.maki`), TOML write/readback preserving comments and sibling servers, doctor alignment, and uninstall. - `tests/acceptance/setup/makiClientSetup.test.ts` — `rea setup --client maki` writes `[mcp.rea]` through the compiled CLI, and `rea doctor --client maki` reports it aligned. - Existing client configuration, registration-status, lifecycle, and product catalog tests pass. ## Verification scope Setup/doctor/uninstall were exercised through the compiled CLI and the filesystem boundary on Linux. No live Maki agent run is included; the MCP handshake was verified out of band (`tools/list` returns 170 tools, 6 prompts). Windows and macOS path resolution is covered by unit tests but not run on those hosts here. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 00:54:57 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#4778
No description provided.