Add antianqi/openclaw-acp-bridge v0.1.3 - peer collaboration Bridge for MiniMax Code - #3
Add antianqi/openclaw-acp-bridge v0.1.3 - peer collaboration Bridge for MiniMax Code#3antianqi wants to merge 1 commit into
Conversation
…0.1.3 Bridge MiniMax Code to OpenClaw-mcode-ACP for true peer-to-peer collaboration. Includes: - plugin.json (name=openclaw-acp-bridge, version=0.1.3, license=Apache-2.0) - README.md (overview + smoke test + authentication + SDK contract) - LICENSE (Apache-2.0) - scripts/smoke.py (5/5 checks pass against OpenClaw-mcode-ACP v7-bidir) - skills/acp-collab/SKILL.md (peer inbox: read/push/ask/answer) - skills/acp-task-dispatch/SKILL.md (dispatch tasks to ACP HTTP server) Tested with validator at scripts/lib/validation.mjs: - YAML frontmatter present and valid - plugin.json has \ + name + license - skill name matches directory name - README.md and LICENSE non-empty - no TODO placeholders, no symlinks Replaces v0.1.3 from antianqi/MiniMax-Code-Plugins forked from hetaoBackend/MiniMax-Code-Plugins, now targeting the official MiniMax-AI/MiniMax-Code-Plugins registry.
|
@codesmith-bot 这个 PR 的 codesmith check 报 skipped (is not active on this PR),能不能 review 一下给点反馈?plugin 是 openclaw-acp-bridge v0.1.3,validator 本地过了 ( |
|
Hi @antianqi! [code]smith requires write access to this repository. You currently have read-only access to |
hetaoBackend
left a comment
There was a problem hiding this comment.
Review result: do not approve / do not merge yet.
The repository check passes (27 tests), but the advertised bridge flows are not compatible with the declared upstream SDK:
skills/acp-task-dispatch/SKILL.md:36-66importslist_historyalthough upstream exposeshistory, treatscreate_task()as a mapping although it returns a task-id string, expects{"tasks": [...]}although history returns a list, and polls forcompletedalthough the terminal success state issucceeded.skills/acp-collab/SKILL.md:84-90treatsinbox_read()as a mapping although it returns a list; the documentedpeer_greet()path also attributes messages to the wrong sender.- The README says
ACP_TOKENor<ACP_HOME>/.acp_tokenconfigures authentication (README.md:59-72), but the actual upstream client used by the Skills does not read those values; the smoke test bypasses the SDK and manually sends the token. scripts/smoke.py:103-149accepts an unrestrictedACP_BASE_URLand sendsACP_TOKENthere, so a non-loopback URL can capture the token, contradictingREADME.md:61-66.README.md:128-130claims a pinned CI workflow, but.github/workflows/openclaw-acp-bridge-smoke.ymlis absent from the PR/tree.
Please pin and test one upstream revision, make the Skills match its actual API/auth contract, restrict the smoke-test destination or remove token use from it, and add the claimed CI workflow before requesting another review.
Fixes for review comments from hetaoBackend (commit fce7c5f): MiniMax-AI#1 detector hard-coded path: resolve the [userprofile]/.minimax-code directory at runtime via the mcode node process cmdline (regex on @minimax-ai/code/cli.js), with fallbacks to $env:USERPROFILE/.minimax-code, $env:APPDATA/minimax-code, and the current working directory. Override with -Root [path]. MiniMax-AI#2 idle fallback unreachable: mtime cache now returns the last inferred message instead of null, so the 60s stale -> idle branch fires every poll. Verified locally: idle :: already idle 195s after 65s of inactivity. #2b session log: prefer ledger.jsonl (mcode v2 event stream) and fall back to messages.jsonl when ledger is missing. Both formats are handled in Infer-State (kind/phase for ledger, message.role for messages). MiniMax-AI#3 PID reuse safety: start/stop-{island,detect-island}.ps1 now verify the target PID command line contains the expected script path before acting. Stale PIDs and PID-reused processes are refused with a REFUSED log line instead of being killed. MiniMax-AI#4 wrap-tool.ps1 shell-injection: removed Invoke-Expression entirely. The wrapper is now status-only; the agent runs the command via mcode's own bash tool and passes -ExitCode to publish the outcome. Documented in README + SKILL.md. MiniMax-AI#5 README: -Enable -> -Action Enable to match autostart.ps1 parameter set. MiniMax-AI#6 start-island.ps1 readiness: dropped the 'about to ShowDialog' log wait (which was never emitted). Now polls MainWindowHandle != 0 every 500ms for up to 8s. Tests: validator reports OK plugin antianqi/mcode-island. wrap-tool 6-state matrix verified locally (working / done / waiting / error).
Summary
Adds
plugins/antianqi/openclaw-acp-bridge— a Bridge that lets MiniMax Code sessions collaborate peer-to-peer with the OpenClaw-mcode-ACP inbox protocol instead of one-shot master/slave task calls.MiniMax Code can now:
inbox_read)inbox_write)inbox_ask/inbox_answer)peer_greet)Two Skills ship in the Plugin:
acp-collab— peer-to-peer inbox collaborationacp-task-dispatch— dispatch self-contained tasks to the ACP HTTP serverWhat's inside
plugin.json—$schema=agent-plugins.org/schemas/1.0.0/plugin.schema.json, name=openclaw-acp-bridge, version=0.1.3, license=Apache-2.0README.md— overview, Supported platforms table, Authentication, SDK compatibility contract, smoke test, Data and network, Test evidenceLICENSE— Apache-2.0 (full text)scripts/smoke.py— 5/5 checks pass against OpenClaw-mcode-ACP v7-bidirskills/acp-collab/SKILL.md— peer inbox protocol (frontmatter present, YAML valid)skills/acp-task-dispatch/SKILL.md— task dispatch Skill (frontmatter present, YAML valid)Validation
Ran
npm run validatefrom this fork's main. The new hosted Plugin passes:(Preexisting failures in
plugins/{Fectivnfy112357, hetaoBackend, HopeYin, Hylouis233}/*are not caused by this PR — those Plugins were merged without YAML frontmatter on their SKILL.md. Flagging them here so the maintainer can triage.)SDK / runtime contract
This Plugin assumes
acp_tools.pyserver v7-bidir+ with these functions:create_task,get_task,list_history,inbox_read,inbox_write,inbox_ask,inbox_answer,peer_greet.The token is read at call time from
$ACP_TOKENor<ACP_HOME>/.acp_token. It is sent only tohttp://localhost:9999/acp/*(HTTP loopback). Never logged, never echoed.Test evidence
(InboxStore self-test: 6/6 assertions pass; all 5 HTTP inbox endpoint tests pass:
/acp/inbox/write,/read,/ask,/answer,/sessions.)Compatibility
No hardcoded absolute paths anywhere. The Plugin uses forward slashes internally (
posixpath) and only resolves paths through$ACP_HOME.Replaces v0.1.3 in hetaoBackend/MiniMax-Code-Plugins
This Plugin already lives at hetaoBackend/MiniMax-Code-Plugins under the earlier PR. With the move of the community registry to this organization, this PR re-hosts the same v0.1.3 content under the new namespace. The earlier PR can be closed once this one merges.