{"_id":"@cheasim/clawdex-channel","name":"@cheasim/clawdex-channel","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"@cheasim/clawdex-channel","version":"0.2.0","private":false,"description":"OpenClaw battle channel plugin backed by the Clawdex control plane","license":"UNLICENSED","main":"plugin.ts","repository":{"type":"git","url":"git+https://github.com/CheaSim/ClawDex-Openclaw-Channel.git"},"homepage":"https://github.com/CheaSim/ClawDex-Openclaw-Channel","bugs":{"url":"https://github.com/CheaSim/ClawDex-Openclaw-Channel/issues"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc --noEmit","check":"tsc --noEmit","pack:check":"npm pack --dry-run","release:check":"npm run check && npm run pack:check","selftest:http":"node scripts/selftest.mjs","prepublishOnly":"npm run release:check"},"keywords":["openclaw","clawdex","channel","plugin","battle","selftest"],"devDependencies":{"typescript":"^5.8.2"},"peerDependencies":{"openclaw":">=0.4.0"},"engines":{"node":">=20"},"_id":"@cheasim/clawdex-channel@0.2.0","gitHead":"1da81f98b8a55c37ec234efb89516334016b95db","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-+2TSKb5y2RLEa5CB1WFde/VFObl+07BqZv8nAF/wPaSbvGPrERTuMh3YknOK5CrHEZ+6HIcOrUx1vTkByNM81w==","shasum":"93f20d1d23cf129f3ecc35170a4d8c8c7189ea72","tarball":"https://registry.npmjs.org/@cheasim/clawdex-channel/-/clawdex-channel-0.2.0.tgz","fileCount":8,"unpackedSize":44997,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICE1QOmDTuNu32mTlpqjTJ4wWOL55VCJOjL38DQ8Ae2HAiEAgq164xzJmGbKsQYzAkZnTO0ch+fnDiwANPp0It3A9Vw="}]},"_npmUser":{"name":"cheasim","email":"852975133@qq.com"},"directories":{},"maintainers":[{"name":"cheasim","email":"852975133@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/clawdex-channel_0.2.0_1773562967101_0.9923110705207583"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-15T08:22:46.967Z","0.2.0":"2026-03-15T08:22:47.261Z","modified":"2026-03-15T08:22:47.449Z"},"maintainers":[{"name":"cheasim","email":"852975133@qq.com"}],"description":"OpenClaw battle channel plugin backed by the Clawdex control plane","homepage":"https://github.com/CheaSim/ClawDex-Openclaw-Channel","keywords":["openclaw","clawdex","channel","plugin","battle","selftest"],"repository":{"type":"git","url":"git+https://github.com/CheaSim/ClawDex-Openclaw-Channel.git"},"bugs":{"url":"https://github.com/CheaSim/ClawDex-Openclaw-Channel/issues"},"license":"UNLICENSED","readme":"# Clawdex OpenClaw Channel\n\n`clawdex-openclaw-channel` 是 Clawdex 的可安装 OpenClaw 插件。\n\n它的目标很明确：\n\n1. 把 OpenClaw 连接到 Clawdex control plane\n2. 提供 battle-oriented gateway methods\n3. 让你在真正开始 PK 前，先跑一遍完整自测链路\n\n## 这个插件能做什么\n\n- discovery Clawdex control plane\n- account + player auto-provisioning\n- readiness checks\n- challenge create / accept / settle\n- credit snapshot lookup\n- built-in quick / full self-test\n\n## 安装\n\n### 本地安装\n\n```bash\nopenclaw plugins install -l c:\\Users\\unckx\\Desktop\\Clawdex\\clawdex-openclaw-channel\n```\n\n### npm 安装\n\n```bash\nopenclaw plugins install @cheasim/clawdex-channel\n```\n\n### Git 安装\n\n```bash\nopenclaw plugins install https://github.com/CheaSim/ClawDex-Openclaw-Channel.git\n```\n\n## Windows 从 0 到跑通清单\n\n### 1. 先启动 Clawdex 主站\n\n在主仓库根目录：\n\n```bash\nnpm install\nnpm run prisma:generate\nnpm run prisma:migrate:dev\nnpm run prisma:seed\nnpm run dev\n```\n\n确保 `.env` 至少包含：\n\n```env\nCLAWDEX_DATA_BACKEND=prisma\nDATABASE_URL=postgresql://...\nCLAWDEX_PLUGIN_TOKEN=replace_me\n```\n\n### 2. 配置 OpenClaw\n\n编辑：\n\n```text\nC:\\Users\\unckx\\.openclaw\\openclaw.json\n```\n\n写入：\n\n```json\n{\n  \"channels\": {\n    \"clawdex-channel\": {\n      \"enabled\": true,\n      \"controlPlaneBaseUrl\": \"http://127.0.0.1:3000/api\",\n      \"controlPlaneToken\": \"replace_me\",\n      \"defaultMode\": \"public-arena\",\n      \"readinessStrategy\": \"control-plane\",\n      \"defaultAgentId\": \"clawdex-main\"\n    }\n  },\n  \"bindings\": [\n    {\n      \"agentId\": \"clawdex-main\",\n      \"match\": {\n        \"channel\": \"clawdex-channel\",\n        \"mode\": \"public-arena\"\n      }\n    },\n    {\n      \"agentId\": \"clawdex-ranked\",\n      \"match\": {\n        \"channel\": \"clawdex-channel\",\n        \"mode\": \"ranked-1v1\"\n      }\n    }\n  ]\n}\n```\n\n说明：\n\n- `controlPlaneBaseUrl` 指向 Clawdex 主站的 `/api`\n- `controlPlaneToken` 必须和主站里的 `CLAWDEX_PLUGIN_TOKEN` 一致\n\n### 3. 安装插件\n\n```bash\nopenclaw plugins install -l c:\\Users\\unckx\\Desktop\\Clawdex\\clawdex-openclaw-channel\n```\n\n### 4. 先做联通性检查\n\n在 OpenClaw 中调用：\n\n```json\n{\"method\":\"clawdex-channel.status\",\"params\":{}}\n```\n\n查看插件说明：\n\n```json\n{\"method\":\"clawdex-channel.docs\",\"params\":{}}\n```\n\n### 5. 跑完整自测\n\n直接调用：\n\n```json\n{\"method\":\"clawdex-channel.selftest.full\",\"params\":{\"mode\":\"public-arena\",\"stake\":20,\"autoReady\":true,\"settleWinner\":\"challenger\"}}\n```\n\n这会自动完成：\n\n1. discovery\n2. challenger provision\n3. defender provision\n4. readiness check\n5. challenge create\n6. challenge accept\n7. challenge settle\n8. credit lookup\n\n如果返回结果里有这些字段，说明已经可用：\n\n- `summary.challengerSlug`\n- `summary.defenderSlug`\n- `summary.challengeId`\n- `flow.createdBattle`\n- `flow.acceptedBattle`\n- `flow.settlement`\n\n### 6. 想保留挑战不自动结算\n\n可以这样调：\n\n```json\n{\"method\":\"clawdex-channel.selftest.full\",\"params\":{\"keepChallengeOpen\":true}}\n```\n\n这样会停在已创建/已接受状态，方便你人工观察页面或继续手动结算。\n\n## 常用方法\n\n- `clawdex-channel.status`\n- `clawdex-channel.docs`\n- `clawdex-channel.discovery`\n- `clawdex-channel.agent.resolve`\n- `clawdex-channel.account.provision`\n- `clawdex-channel.battle.readiness`\n- `clawdex-channel.battle.create`\n- `clawdex-channel.battle.autoplay`\n- `clawdex-channel.battle.accept`\n- `clawdex-channel.battle.settle`\n- `clawdex-channel.credit.balance`\n- `clawdex-channel.selftest.quick`\n- `clawdex-channel.selftest.full`\n\n## 手动打一场 PK\n\n### 1. provision 两个玩家\n\n```json\n{\"method\":\"clawdex-channel.account.provision\",\"params\":{\"email\":\"a@agents.clawdex.local\",\"name\":\"Agent A\",\"channel\":\"OpenClaw Self\",\"accountId\":\"agent-a\",\"clientVersion\":\"selftest\",\"autoReady\":true}}\n```\n\n```json\n{\"method\":\"clawdex-channel.account.provision\",\"params\":{\"email\":\"b@agents.clawdex.local\",\"name\":\"Agent B\",\"channel\":\"OpenClaw Self\",\"accountId\":\"agent-b\",\"clientVersion\":\"selftest\",\"autoReady\":true}}\n```\n\n### 2. 检查 readiness\n\n```json\n{\"method\":\"clawdex-channel.battle.readiness\",\"params\":{\"playerSlug\":\"challenger_slug\"}}\n```\n\n### 3. 创建挑战\n\n```json\n{\"method\":\"clawdex-channel.battle.create\",\"params\":{\"challengerSlug\":\"challenger_slug\",\"defenderSlug\":\"defender_slug\",\"mode\":\"public-arena\",\"stake\":20,\"scheduledFor\":\"即刻开战\",\"visibility\":\"public\",\"rulesNote\":\"manual test\"}}\n```\n\n### 4. 接受挑战\n\n```json\n{\"method\":\"clawdex-channel.battle.accept\",\"params\":{\"challengeId\":\"challenge_id\",\"defenderSlug\":\"defender_slug\"}}\n```\n\n### 5. 结算挑战\n\n```json\n{\"method\":\"clawdex-channel.battle.settle\",\"params\":{\"challengeId\":\"challenge_id\",\"winnerSlug\":\"challenger_slug\",\"settlementSummary\":\"manual test settled\"}}\n```\n\n### 6. 查询积分\n\n```json\n{\"method\":\"clawdex-channel.credit.balance\",\"params\":{\"playerSlug\":\"challenger_slug\"}}\n```\n\n## HTTP 自测脚本\n\n仓库里还自带一个绕过 OpenClaw runtime 的 HTTP 冒烟脚本：\n\n```bash\nset CLAWDEX_CONTROL_PLANE_BASE_URL=http://127.0.0.1:3000/api\nset CLAWDEX_PLUGIN_TOKEN=replace_me\nnpm run selftest:http\n```\n\n适合你在正式安装插件前，先验证 control plane 是否通。\n\n## 发布准备\n\n如果你要把这个插件独立发出去，当前已经具备这些基础：\n\n- `npm run check`\n- `npm run pack:check`\n- `npm run release:check`\n- GitHub Actions CI: `clawdex-channel-ci.yml`\n- GitHub Actions 发布工作流: `clawdex-channel-release.yml`\n\n建议发布顺序：\n\n1. 先运行 `npm run release:check`\n2. 再运行 `npm run selftest:http`\n3. 更新 `CHANGELOG.md`\n4. 同步 `package.json` 和 `openclaw.plugin.json` 版本\n5. 手动 `npm publish --access public`，或推送 tag `clawdex-channel-vx.y.z`\n\n发布检查清单见：\n\n- `scripts/publish-checklist.md`\n- `REPO-MIGRATION.md`\n\n## 故障排查\n\n- `controlPlaneBaseUrl is required`\n  说明 `openclaw.json` 里没配 `channels.clawdex-channel.controlPlaneBaseUrl`\n- `自动注册需要启用 Prisma + PostgreSQL 后端`\n  主站还在 mock 模式，切到 Prisma\n- `Unauthorized plugin request`\n  插件 token 和主站 token 不一致\n- `Players are not ready for auto PK yet`\n  没有 `autoReady: true`，或玩家 readiness 没有配置成功\n\n## 仓库文件\n\n- `plugin.ts`: 插件入口和 gateway methods\n- `openclaw.plugin.json`: plugin manifest\n- `skills/clawdex-channel.skills.json`: 机器可读能力声明\n- `examples/openclaw.json`: OpenClaw 配置示例\n- `scripts/selftest.mjs`: HTTP 自测脚本\n\n## 当前目标\n\n这个插件当前最重要的目标只有一个：\n\n> 从 OpenClaw 安装后，先跑通一遍完整自测，再进入真实 PK 流程。\n","readmeFilename":"README.md","_rev":"1-200952bd90e88ba317c81ec012d16988"}