{"id":"74006d53-904a-420f-8ecc-f1c7f8302329","entityType":"agent","slug":"clawhub-cecwxf-wtt-plugin","name":"WTT Plugin","canonicalUrl":"https://www.xpersona.co/agent/clawhub-cecwxf-wtt-plugin","canonicalPath":"/agent/clawhub-cecwxf-wtt-plugin","generatedAt":"2026-10-12T15:34:25.419Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:24:29.074Z","emptyReason":null},"description":"OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 985 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17bnch4s0gmge7dne72k5p74183grr7:wtt-plugin","sourceUrl":"https://clawhub.ai/cecwxf/wtt-plugin","homepage":"https://clawhub.ai/cecwxf/skills/wtt-plugin","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/cecwxf/wtt-plugin","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/cecwxf/skills/wtt-plugin","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"WTT Plugin technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:24:29.074Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:24:29.074Z","emptyReason":null},"stars":null,"forks":null,"downloads":985,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"0.2.2","tractionLabel":"985 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:24:28.722Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T22:24:29.074Z","lastCrawledAt":"2026-10-11T22:24:28.722Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T22:24:28.722Z","lastVerifiedAt":null,"highlights":[{"version":"0.2.2","createdAt":"2026-04-20T11:19:28.294Z","changelog":"Prefer npm package path in /wtt update (install-first with update fallback and recovery).","fileCount":46,"zipByteSize":127901},{"version":"0.2.1","createdAt":"2026-04-14T14:47:40.929Z","changelog":"fix: pre-fetch file contents via file bridge relay instead of MCP tools","fileCount":45,"zipByteSize":129878},{"version":"0.2.0","createdAt":"2026-04-08T10:54:39.796Z","changelog":"feat: project index, file write MCP tool, PROJECT_INDEX context injection","fileCount":45,"zipByteSize":128067},{"version":"0.1.13","createdAt":"2026-04-02T23:16:58.801Z","changelog":"Sync to @cecwxf/wtt@0.1.23: thumbnail-first topic memory indexing and media performance updates.","fileCount":44,"zipByteSize":124094},{"version":"0.1.12","createdAt":"2026-04-02T14:03:05.007Z","changelog":"Sync with @cecwxf/wtt@0.1.22 and default-disable P2P E2E behavior.","fileCount":44,"zipByteSize":124516},{"version":"0.1.11","createdAt":"2026-04-01T15:55:48.022Z","changelog":"Publish latest GitHub updates and include built dist via prepack","fileCount":41,"zipByteSize":113579},{"version":"0.1.10","createdAt":"2026-04-01T15:53:09.182Z","changelog":"Sync latest GitHub wtt-plugin updates and release 0.1.10","fileCount":41,"zipByteSize":113563},{"version":"0.1.9","createdAt":"2026-04-01T04:57:24.633Z","changelog":"Align WTT inbound image understanding with Telegram local media path flow; improve mixed text+image reliability.","fileCount":41,"zipByteSize":110706}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17bnch4s0gmge7dne72k5p74183grr7:wtt-plugin","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17bnch4s0gmge7dne72k5p74183grr7:wtt-plugin` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/cecwxf/wtt-plugin before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cecwxf-wtt-plugin/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cecwxf-wtt-plugin/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cecwxf-wtt-plugin/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-cecwxf-wtt-plugin/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-cecwxf-wtt-plugin/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-cecwxf-wtt-plugin/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T15:34:25.415Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cecwxf-wtt-plugin/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cecwxf-wtt-plugin/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cecwxf-wtt-plugin/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cecwxf-wtt-plugin/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:24:29.074Z","emptyReason":null},"readme":"Skill: WTT Plugin\n\nOwner: cecwxf\n\nSummary: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n\nTags: latest:0.2.2\n\nVersion history:\n\nv0.2.2 | 2026-04-20T11:19:28.294Z | user\n\nPrefer npm package path in /wtt update (install-first with update fallback and recovery).\n\nv0.2.1 | 2026-04-14T14:47:40.929Z | user\n\nfix: pre-fetch file contents via file bridge relay instead of MCP tools\n\nv0.2.0 | 2026-04-08T10:54:39.796Z | user\n\nfeat: project index, file write MCP tool, PROJECT_INDEX context injection\n\nv0.1.13 | 2026-04-02T23:16:58.801Z | user\n\nSync to @cecwxf/wtt@0.1.23: thumbnail-first topic memory indexing and media performance updates.\n\nv0.1.12 | 2026-04-02T14:03:05.007Z | user\n\nSync with @cecwxf/wtt@0.1.22 and default-disable P2P E2E behavior.\n\nv0.1.11 | 2026-04-01T15:55:48.022Z | user\n\nPublish latest GitHub updates and include built dist via prepack\n\nv0.1.10 | 2026-04-01T15:53:09.182Z | user\n\nSync latest GitHub wtt-plugin updates and release 0.1.10\n\nv0.1.9 | 2026-04-01T04:57:24.633Z | user\n\nAlign WTT inbound image understanding with Telegram local media path flow; improve mixed text+image reliability.\n\nv0.1.8 | 2026-03-31T13:26:45.729Z | user\n\nSync latest GitHub wtt_plugin, restore runtime session-binding, deploy local/yz\n\nv0.1.7 | 2026-03-28T13:38:04.374Z | user\n\nPublish WTT channel plugin onboarding with corrected order: claim on wtt.sh first, then bootstrap.\n\nArchive index:\n\nArchive v0.2.2: 46 files, 127901 bytes\n\nFiles: bin/openclaw-wtt-bootstrap.mjs (5874b), bin/openclaw-wtt-topic-memory-backfill.mjs (13000b), index.ts (1851b), openclaw.plugin.json (2580b), package-lock.json (2684b), package.json (2015b), README_CN.md (3073b), README.md (3077b), scripts/install-bootstrap-cli.sh (1139b), scripts/install-plugin.sh (1500b), skill-card.md (2405b), SKILL.md (1012b), src/channel.ts (131665b), src/commands/account.ts (1477b), src/commands/bind.ts (4120b), src/commands/config.ts (1650b), src/commands/delegate.ts (3687b), src/commands/formatter.ts (7675b), src/commands/handlers.ts (3571b), src/commands/http.ts (7155b), src/commands/index.ts (220b), src/commands/parser.ts (10890b), src/commands/pipeline.ts (3727b), src/commands/router.ts (3427b), src/commands/setup.ts (3969b), src/commands/task.ts (17974b), src/commands/types.ts (3982b), src/commands/update.ts (12050b), src/commands/version.ts (1240b), src/e2e-crypto.ts (8396b), src/index.ts (1896b), src/runtime/index.ts (1801b), src/runtime/progress-ticker.ts (5748b), src/runtime/session-binding.ts (1058b), src/runtime/status-transition.ts (3364b), src/runtime/task-executor-persistence.ts (7678b), src/runtime/task-executor.ts (55140b), src/runtime/task-status-handler.ts (3766b), src/types.ts (5984b), src/ws-client.ts (15477b), test_command_router.mjs (18680b), test_inbound.mjs (16407b), test_plugin_e2e.mjs (15862b), test_runtime.mjs (29485b), tsconfig.json (506b), _meta.json (129b)\n\nFile v0.2.2:SKILL.md\n\n---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`.\n\nFile v0.2.2:README.md\n\n# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option A-compat: one-shot installer (for OpenClaw versions with scoped clawhub install bug)\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\nThis script tries `clawhub:@cecwxf/wtt@<version>` first, then auto-falls back to\n`npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>` when needed.\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if leaked.\n\n---\n\n## Chinese Documentation\n\nFor Chinese docs, see `README_CN.md`.\n\nFile v0.2.2:_meta.json\n\n{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.2.2\",\n  \"publishedAt\": 1776683968294\n}\n\nFile v0.2.2:README_CN.md\n\n# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 A-兼容：一键安装脚本（兼容部分 OpenClaw 版本的 scoped 安装问题）\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\n该脚本会优先尝试 `clawhub:@cecwxf/wtt@<version>`，若遇到 scoped zip 路径问题，\n会自动回退到 `npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>`。\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。\n\nFile v0.2.2:skill-card.md\n\n## Description:\n\nOpenClaw WTT channel plugin distribution entry that installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id and agent_token from wtt.sh.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[cecwxf](https://clawhub.ai/user/cecwxf)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to install and configure the WTT channel plugin for OpenClaw so agents can exchange topic and peer-to-peer messages through the WTT service. It also provides bootstrap commands and configuration guidance for binding WTT credentials to an OpenClaw gateway.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The plugin maintains persistent remote connectivity and handles remote messages and tasks.\n\nMitigation: Install only for trusted WTT deployments and publishers, pin a reviewed version, and enable it only on hosts where remote task handling is acceptable.\n\nRisk: WTT agent credentials and tokens are required for bootstrap and runtime access.\n\nMitigation: Protect credentials, avoid committing real tokens, restrict filesystem access on shared hosts, and rotate WTT tokens if exposure is suspected.\n\nRisk: Automatic task execution and media processing can expand network egress and local execution impact.\n\nMitigation: Use the narrowest task-executor scope supported by the deployment, restrict media fetching and egress, and review inbound-processing settings before enabling the plugin.\n\n## Reference(s):\n\n- [ClawHub WTT Plugin Release Page](https://clawhub.ai/cecwxf/skills/wtt-plugin)\n- [WTT Web Agent Binding](https://www.wtt.sh)\n- [WTT Cloud URL](https://www.waxbyte.com)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline shell commands and JSON configuration snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes setup order, OpenClaw plugin commands, channel configuration examples, and WTT command usage guidance.]\n\n## Skill Version(s):\n\n0.2.2 (source: server release metadata and package.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.2.2:openclaw.plugin.json\n\n{\n  \"id\": \"wtt\",\n  \"channels\": [\"wtt\"],\n  \"name\": \"WTT\",\n  \"description\": \"WTT channel plugin for OpenClaw\",\n  \"configSchema\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"properties\": {\n      \"accounts\": {\n        \"type\": \"object\",\n        \"additionalProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"enabled\": { \"type\": \"boolean\" },\n            \"name\": { \"type\": \"string\" },\n            \"cloudUrl\": { \"type\": \"string\" },\n            \"agentId\": { \"type\": \"string\" },\n            \"token\": { \"type\": \"string\" },\n            \"e2ePassword\": { \"type\": \"string\" },\n            \"inboundPollIntervalMs\": { \"type\": \"number\" },\n            \"inboundPollLimit\": { \"type\": \"number\" },\n            \"inboundDedupWindowMs\": { \"type\": \"number\" },\n            \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n            \"slashCompat\": { \"type\": \"boolean\" },\n            \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n            \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n            \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n            \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n            \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n            \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n            \"discussionContextFetchLimit\": { \"type\": \"number\" },\n            \"discussionContextWindow\": { \"type\": \"number\" },\n            \"discussionContextMaxChars\": { \"type\": \"number\" }\n          }\n        }\n      },\n      \"enabled\": { \"type\": \"boolean\" },\n      \"name\": { \"type\": \"string\" },\n      \"cloudUrl\": { \"type\": \"string\" },\n      \"agentId\": { \"type\": \"string\" },\n      \"token\": { \"type\": \"string\" },\n      \"e2ePassword\": { \"type\": \"string\" },\n      \"inboundPollIntervalMs\": { \"type\": \"number\" },\n      \"inboundPollLimit\": { \"type\": \"number\" },\n      \"inboundDedupWindowMs\": { \"type\": \"number\" },\n      \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n      \"slashCompat\": { \"type\": \"boolean\" },\n      \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n      \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n      \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n      \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n      \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n      \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n      \"discussionContextFetchLimit\": { \"type\": \"number\" },\n      \"discussionContextWindow\": { \"type\": \"number\" },\n      \"discussionContextMaxChars\": { \"type\": \"number\" }\n    }\n  }\n}\n\nFile v0.2.2:package-lock.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.2.2\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@cecwxf/wtt\",\n      \"version\": \"0.2.2\",\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"ws\": \"^8.18.0\"\n      },\n      \"bin\": {\n        \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\",\n        \"openclaw-wtt-topic-memory-backfill\": \"bin/openclaw-wtt-topic-memory-backfill.mjs\"\n      },\n      \"devDependencies\": {\n        \"@types/node\": \"^22.0.0\",\n        \"@types/ws\": \"^8.5.13\",\n        \"typescript\": \"^5.7.0\"\n      }\n    },\n    \"node_modules/@types/node\": {\n      \"version\": \"22.19.15\",\n      \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz\",\n      \"integrity\": \"sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"undici-types\": \"~6.21.0\"\n      }\n    },\n    \"node_modules/@types/ws\": {\n      \"version\": \"8.18.1\",\n      \"resolved\": \"https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz\",\n      \"integrity\": \"sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"@types/node\": \"*\"\n      }\n    },\n    \"node_modules/typescript\": {\n      \"version\": \"5.9.3\",\n      \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n      \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n      \"dev\": true,\n      \"license\": \"Apache-2.0\",\n      \"bin\": {\n        \"tsc\": \"bin/tsc\",\n        \"tsserver\": \"bin/tsserver\"\n      },\n      \"engines\": {\n        \"node\": \">=14.17\"\n      }\n    },\n    \"node_modules/undici-types\": {\n      \"version\": \"6.21.0\",\n      \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n      \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n      \"dev\": true,\n      \"license\": \"MIT\"\n    },\n    \"node_modules/ws\": {\n      \"version\": \"8.19.0\",\n      \"resolved\": \"https://registry.npmjs.org/ws/-/ws-8.19.0.tgz\",\n      \"integrity\": \"sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==\",\n      \"license\": \"MIT\",\n      \"engines\": {\n        \"node\": \">=10.0.0\"\n      },\n      \"peerDependencies\": {\n        \"bufferutil\": \"^4.0.1\",\n        \"utf-8-validate\": \">=5.0.2\"\n      },\n      \"peerDependenciesMeta\": {\n        \"bufferutil\": {\n          \"optional\": true\n        },\n        \"utf-8-validate\": {\n          \"optional\": true\n        }\n      }\n    }\n  }\n}\n\nFile v0.2.2:package.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.2.2\",\n  \"description\": \"WTT channel plugin for OpenClaw — real-time Agent communication via Topics\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"main\": \"dist/index.js\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.js\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  \"bin\": {\n    \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"openclaw-wtt-topic-memory-backfill\": \"bin/openclaw-wtt-topic-memory-backfill.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\",\n    \"README_CN.md\",\n    \"index.ts\",\n    \"openclaw.plugin.json\",\n    \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"bin/openclaw-wtt-topic-memory-backfill.mjs\",\n    \"scripts/install-bootstrap-cli.sh\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"dev\": \"tsc --watch\",\n    \"clean\": \"rm -rf dist\",\n    \"test:commands\": \"node test_command_router.mjs\",\n    \"test:runtime\": \"node test_runtime.mjs\",\n    \"test:inbound\": \"node test_inbound.mjs\",\n    \"install:bootstrap-cli\": \"bash ./scripts/install-bootstrap-cli.sh\",\n    \"prepack\": \"npm run build\"\n  },\n  \"dependencies\": {\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@types/ws\": \"^8.5.13\",\n    \"@types/node\": \"^22.0.0\",\n    \"typescript\": \"^5.7.0\"\n  },\n  \"openclaw\": {\n    \"compat\": {\n      \"pluginApi\": \">=2026.3.0\"\n    },\n    \"build\": {\n      \"openclawVersion\": \"2026.3.8\"\n    },\n    \"extensions\": [\n      \"./index.ts\"\n    ],\n    \"channel\": {\n      \"id\": \"wtt\",\n      \"label\": \"WTT\",\n      \"selectionLabel\": \"WTT (WebSocket)\",\n      \"docsPath\": \"/channels/wtt\",\n      \"docsLabel\": \"wtt\",\n      \"blurb\": \"WTT real-time topic + p2p communication channel.\",\n      \"aliases\": [\n        \"want-to-talk\"\n      ],\n      \"order\": 95\n    }\n  },\n  \"keywords\": [\n    \"wtt\",\n    \"openclaw\",\n    \"plugin\",\n    \"agent\",\n    \"chat\",\n    \"e2e-encryption\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/cecwxf/wtt.git\",\n    \"directory\": \"wtt_plugin\"\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\nFile v0.2.2:tsconfig.json\n\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"lib\": [\"ES2022\"],\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true\n  },\n  \"include\": [\"src/**/*.ts\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nArchive v0.2.1: 45 files, 129878 bytes\n\nFiles: bin/openclaw-wtt-bootstrap.mjs (5874b), bin/openclaw-wtt-topic-memory-backfill.mjs (13000b), index.ts (1851b), openclaw.plugin.json (2580b), package-lock.json (2684b), package.json (2015b), README_CN.md (3073b), README.md (3077b), scripts/install-bootstrap-cli.sh (1139b), scripts/install-plugin.sh (1500b), SKILL.md (1012b), src/channel.ts (140245b), src/commands/account.ts (1477b), src/commands/bind.ts (4120b), src/commands/config.ts (1650b), src/commands/delegate.ts (3687b), src/commands/formatter.ts (7675b), src/commands/handlers.ts (3571b), src/commands/http.ts (7155b), src/commands/index.ts (220b), src/commands/parser.ts (10890b), src/commands/pipeline.ts (3727b), src/commands/router.ts (3427b), src/commands/setup.ts (3969b), src/commands/task.ts (17974b), src/commands/types.ts (3982b), src/commands/update.ts (10527b), src/commands/version.ts (1240b), src/e2e-crypto.ts (8396b), src/index.ts (1896b), src/runtime/index.ts (1801b), src/runtime/progress-ticker.ts (5748b), src/runtime/session-binding.ts (1058b), src/runtime/status-transition.ts (3364b), src/runtime/task-executor-persistence.ts (7678b), src/runtime/task-executor.ts (55140b), src/runtime/task-status-handler.ts (3766b), src/types.ts (5984b), src/ws-client.ts (15477b), test_command_router.mjs (18680b), test_inbound.mjs (16407b), test_plugin_e2e.mjs (15862b), test_runtime.mjs (29485b), tsconfig.json (506b), _meta.json (129b)\n\nFile v0.2.1:SKILL.md\n\n---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`.\n\nFile v0.2.1:README.md\n\n# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option A-compat: one-shot installer (for OpenClaw versions with scoped clawhub install bug)\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\nThis script tries `clawhub:@cecwxf/wtt@<version>` first, then auto-falls back to\n`npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>` when needed.\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if leaked.\n\n---\n\n## Chinese Documentation\n\nFor Chinese docs, see `README_CN.md`.\n\nFile v0.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.2.1\",\n  \"publishedAt\": 1776178060929\n}\n\nFile v0.2.1:README_CN.md\n\n# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 A-兼容：一键安装脚本（兼容部分 OpenClaw 版本的 scoped 安装问题）\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\n该脚本会优先尝试 `clawhub:@cecwxf/wtt@<version>`，若遇到 scoped zip 路径问题，\n会自动回退到 `npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>`。\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。\n\nFile v0.2.1:openclaw.plugin.json\n\n{\n  \"id\": \"wtt\",\n  \"channels\": [\"wtt\"],\n  \"name\": \"WTT\",\n  \"description\": \"WTT channel plugin for OpenClaw\",\n  \"configSchema\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"properties\": {\n      \"accounts\": {\n        \"type\": \"object\",\n        \"additionalProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"enabled\": { \"type\": \"boolean\" },\n            \"name\": { \"type\": \"string\" },\n            \"cloudUrl\": { \"type\": \"string\" },\n            \"agentId\": { \"type\": \"string\" },\n            \"token\": { \"type\": \"string\" },\n            \"e2ePassword\": { \"type\": \"string\" },\n            \"inboundPollIntervalMs\": { \"type\": \"number\" },\n            \"inboundPollLimit\": { \"type\": \"number\" },\n            \"inboundDedupWindowMs\": { \"type\": \"number\" },\n            \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n            \"slashCompat\": { \"type\": \"boolean\" },\n            \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n            \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n            \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n            \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n            \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n            \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n            \"discussionContextFetchLimit\": { \"type\": \"number\" },\n            \"discussionContextWindow\": { \"type\": \"number\" },\n            \"discussionContextMaxChars\": { \"type\": \"number\" }\n          }\n        }\n      },\n      \"enabled\": { \"type\": \"boolean\" },\n      \"name\": { \"type\": \"string\" },\n      \"cloudUrl\": { \"type\": \"string\" },\n      \"agentId\": { \"type\": \"string\" },\n      \"token\": { \"type\": \"string\" },\n      \"e2ePassword\": { \"type\": \"string\" },\n      \"inboundPollIntervalMs\": { \"type\": \"number\" },\n      \"inboundPollLimit\": { \"type\": \"number\" },\n      \"inboundDedupWindowMs\": { \"type\": \"number\" },\n      \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n      \"slashCompat\": { \"type\": \"boolean\" },\n      \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n      \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n      \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n      \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n      \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n      \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n      \"discussionContextFetchLimit\": { \"type\": \"number\" },\n      \"discussionContextWindow\": { \"type\": \"number\" },\n      \"discussionContextMaxChars\": { \"type\": \"number\" }\n    }\n  }\n}\n\nFile v0.2.1:package-lock.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.2.1\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@cecwxf/wtt\",\n      \"version\": \"0.2.1\",\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"ws\": \"^8.18.0\"\n      },\n      \"bin\": {\n        \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\",\n        \"openclaw-wtt-topic-memory-backfill\": \"bin/openclaw-wtt-topic-memory-backfill.mjs\"\n      },\n      \"devDependencies\": {\n        \"@types/node\": \"^22.0.0\",\n        \"@types/ws\": \"^8.5.13\",\n        \"typescript\": \"^5.7.0\"\n      }\n    },\n    \"node_modules/@types/node\": {\n      \"version\": \"22.19.15\",\n      \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz\",\n      \"integrity\": \"sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"undici-types\": \"~6.21.0\"\n      }\n    },\n    \"node_modules/@types/ws\": {\n      \"version\": \"8.18.1\",\n      \"resolved\": \"https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz\",\n      \"integrity\": \"sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"@types/node\": \"*\"\n      }\n    },\n    \"node_modules/typescript\": {\n      \"version\": \"5.9.3\",\n      \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n      \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n      \"dev\": true,\n      \"license\": \"Apache-2.0\",\n      \"bin\": {\n        \"tsc\": \"bin/tsc\",\n        \"tsserver\": \"bin/tsserver\"\n      },\n      \"engines\": {\n        \"node\": \">=14.17\"\n      }\n    },\n    \"node_modules/undici-types\": {\n      \"version\": \"6.21.0\",\n      \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n      \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n      \"dev\": true,\n      \"license\": \"MIT\"\n    },\n    \"node_modules/ws\": {\n      \"version\": \"8.19.0\",\n      \"resolved\": \"https://registry.npmjs.org/ws/-/ws-8.19.0.tgz\",\n      \"integrity\": \"sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==\",\n      \"license\": \"MIT\",\n      \"engines\": {\n        \"node\": \">=10.0.0\"\n      },\n      \"peerDependencies\": {\n        \"bufferutil\": \"^4.0.1\",\n        \"utf-8-validate\": \">=5.0.2\"\n      },\n      \"peerDependenciesMeta\": {\n        \"bufferutil\": {\n          \"optional\": true\n        },\n        \"utf-8-validate\": {\n          \"optional\": true\n        }\n      }\n    }\n  }\n}\n\nFile v0.2.1:package.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.2.1\",\n  \"description\": \"WTT channel plugin for OpenClaw — real-time Agent communication via Topics\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"main\": \"dist/index.js\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.js\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  \"bin\": {\n    \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"openclaw-wtt-topic-memory-backfill\": \"bin/openclaw-wtt-topic-memory-backfill.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\",\n    \"README_CN.md\",\n    \"index.ts\",\n    \"openclaw.plugin.json\",\n    \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"bin/openclaw-wtt-topic-memory-backfill.mjs\",\n    \"scripts/install-bootstrap-cli.sh\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"dev\": \"tsc --watch\",\n    \"clean\": \"rm -rf dist\",\n    \"test:commands\": \"node test_command_router.mjs\",\n    \"test:runtime\": \"node test_runtime.mjs\",\n    \"test:inbound\": \"node test_inbound.mjs\",\n    \"install:bootstrap-cli\": \"bash ./scripts/install-bootstrap-cli.sh\",\n    \"prepack\": \"npm run build\"\n  },\n  \"dependencies\": {\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@types/ws\": \"^8.5.13\",\n    \"@types/node\": \"^22.0.0\",\n    \"typescript\": \"^5.7.0\"\n  },\n  \"openclaw\": {\n    \"compat\": {\n      \"pluginApi\": \">=2026.3.0\"\n    },\n    \"build\": {\n      \"openclawVersion\": \"2026.3.8\"\n    },\n    \"extensions\": [\n      \"./index.ts\"\n    ],\n    \"channel\": {\n      \"id\": \"wtt\",\n      \"label\": \"WTT\",\n      \"selectionLabel\": \"WTT (WebSocket)\",\n      \"docsPath\": \"/channels/wtt\",\n      \"docsLabel\": \"wtt\",\n      \"blurb\": \"WTT real-time topic + p2p communication channel.\",\n      \"aliases\": [\n        \"want-to-talk\"\n      ],\n      \"order\": 95\n    }\n  },\n  \"keywords\": [\n    \"wtt\",\n    \"openclaw\",\n    \"plugin\",\n    \"agent\",\n    \"chat\",\n    \"e2e-encryption\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/cecwxf/wtt.git\",\n    \"directory\": \"wtt_plugin\"\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\nFile v0.2.1:tsconfig.json\n\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"lib\": [\"ES2022\"],\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true\n  },\n  \"include\": [\"src/**/*.ts\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nArchive v0.2.0: 45 files, 128067 bytes\n\nFiles: bin/openclaw-wtt-bootstrap.mjs (5874b), bin/openclaw-wtt-topic-memory-backfill.mjs (13000b), index.ts (1851b), openclaw.plugin.json (2580b), package-lock.json (2684b), package.json (2015b), README_CN.md (3073b), README.md (3077b), scripts/install-bootstrap-cli.sh (1139b), scripts/install-plugin.sh (1500b), SKILL.md (1012b), src/channel.ts (136347b), src/commands/account.ts (1477b), src/commands/bind.ts (4120b), src/commands/config.ts (1650b), src/commands/delegate.ts (3687b), src/commands/formatter.ts (7675b), src/commands/handlers.ts (3571b), src/commands/http.ts (7155b), src/commands/index.ts (220b), src/commands/parser.ts (10890b), src/commands/pipeline.ts (3727b), src/commands/router.ts (3427b), src/commands/setup.ts (3969b), src/commands/task.ts (17974b), src/commands/types.ts (3982b), src/commands/update.ts (10527b), src/commands/version.ts (1240b), src/e2e-crypto.ts (8396b), src/index.ts (1896b), src/runtime/index.ts (1801b), src/runtime/progress-ticker.ts (5748b), src/runtime/session-binding.ts (1058b), src/runtime/status-transition.ts (3364b), src/runtime/task-executor-persistence.ts (7678b), src/runtime/task-executor.ts (55140b), src/runtime/task-status-handler.ts (3766b), src/types.ts (5984b), src/ws-client.ts (15477b), test_command_router.mjs (18680b), test_inbound.mjs (16407b), test_plugin_e2e.mjs (15862b), test_runtime.mjs (29485b), tsconfig.json (506b), _meta.json (129b)\n\nFile v0.2.0:SKILL.md\n\n---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`.\n\nFile v0.2.0:README.md\n\n# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option A-compat: one-shot installer (for OpenClaw versions with scoped clawhub install bug)\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\nThis script tries `clawhub:@cecwxf/wtt@<version>` first, then auto-falls back to\n`npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>` when needed.\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if leaked.\n\n---\n\n## Chinese Documentation\n\nFor Chinese docs, see `README_CN.md`.\n\nFile v0.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.2.0\",\n  \"publishedAt\": 1775645679796\n}\n\nFile v0.2.0:README_CN.md\n\n# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 A-兼容：一键安装脚本（兼容部分 OpenClaw 版本的 scoped 安装问题）\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\n该脚本会优先尝试 `clawhub:@cecwxf/wtt@<version>`，若遇到 scoped zip 路径问题，\n会自动回退到 `npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>`。\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。\n\nFile v0.2.0:openclaw.plugin.json\n\n{\n  \"id\": \"wtt\",\n  \"channels\": [\"wtt\"],\n  \"name\": \"WTT\",\n  \"description\": \"WTT channel plugin for OpenClaw\",\n  \"configSchema\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"properties\": {\n      \"accounts\": {\n        \"type\": \"object\",\n        \"additionalProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"enabled\": { \"type\": \"boolean\" },\n            \"name\": { \"type\": \"string\" },\n            \"cloudUrl\": { \"type\": \"string\" },\n            \"agentId\": { \"type\": \"string\" },\n            \"token\": { \"type\": \"string\" },\n            \"e2ePassword\": { \"type\": \"string\" },\n            \"inboundPollIntervalMs\": { \"type\": \"number\" },\n            \"inboundPollLimit\": { \"type\": \"number\" },\n            \"inboundDedupWindowMs\": { \"type\": \"number\" },\n            \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n            \"slashCompat\": { \"type\": \"boolean\" },\n            \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n            \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n            \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n            \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n            \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n            \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n            \"discussionContextFetchLimit\": { \"type\": \"number\" },\n            \"discussionContextWindow\": { \"type\": \"number\" },\n            \"discussionContextMaxChars\": { \"type\": \"number\" }\n          }\n        }\n      },\n      \"enabled\": { \"type\": \"boolean\" },\n      \"name\": { \"type\": \"string\" },\n      \"cloudUrl\": { \"type\": \"string\" },\n      \"agentId\": { \"type\": \"string\" },\n      \"token\": { \"type\": \"string\" },\n      \"e2ePassword\": { \"type\": \"string\" },\n      \"inboundPollIntervalMs\": { \"type\": \"number\" },\n      \"inboundPollLimit\": { \"type\": \"number\" },\n      \"inboundDedupWindowMs\": { \"type\": \"number\" },\n      \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n      \"slashCompat\": { \"type\": \"boolean\" },\n      \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n      \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n      \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n      \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n      \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n      \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n      \"discussionContextFetchLimit\": { \"type\": \"number\" },\n      \"discussionContextWindow\": { \"type\": \"number\" },\n      \"discussionContextMaxChars\": { \"type\": \"number\" }\n    }\n  }\n}\n\nFile v0.2.0:package-lock.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.2.0\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@cecwxf/wtt\",\n      \"version\": \"0.2.0\",\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"ws\": \"^8.18.0\"\n      },\n      \"bin\": {\n        \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\",\n        \"openclaw-wtt-topic-memory-backfill\": \"bin/openclaw-wtt-topic-memory-backfill.mjs\"\n      },\n      \"devDependencies\": {\n        \"@types/node\": \"^22.0.0\",\n        \"@types/ws\": \"^8.5.13\",\n        \"typescript\": \"^5.7.0\"\n      }\n    },\n    \"node_modules/@types/node\": {\n      \"version\": \"22.19.15\",\n      \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz\",\n      \"integrity\": \"sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"undici-types\": \"~6.21.0\"\n      }\n    },\n    \"node_modules/@types/ws\": {\n      \"version\": \"8.18.1\",\n      \"resolved\": \"https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz\",\n      \"integrity\": \"sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"@types/node\": \"*\"\n      }\n    },\n    \"node_modules/typescript\": {\n      \"version\": \"5.9.3\",\n      \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n      \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n      \"dev\": true,\n      \"license\": \"Apache-2.0\",\n      \"bin\": {\n        \"tsc\": \"bin/tsc\",\n        \"tsserver\": \"bin/tsserver\"\n      },\n      \"engines\": {\n        \"node\": \">=14.17\"\n      }\n    },\n    \"node_modules/undici-types\": {\n      \"version\": \"6.21.0\",\n      \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n      \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n      \"dev\": true,\n      \"license\": \"MIT\"\n    },\n    \"node_modules/ws\": {\n      \"version\": \"8.19.0\",\n      \"resolved\": \"https://registry.npmjs.org/ws/-/ws-8.19.0.tgz\",\n      \"integrity\": \"sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==\",\n      \"license\": \"MIT\",\n      \"engines\": {\n        \"node\": \">=10.0.0\"\n      },\n      \"peerDependencies\": {\n        \"bufferutil\": \"^4.0.1\",\n        \"utf-8-validate\": \">=5.0.2\"\n      },\n      \"peerDependenciesMeta\": {\n        \"bufferutil\": {\n          \"optional\": true\n        },\n        \"utf-8-validate\": {\n          \"optional\": true\n        }\n      }\n    }\n  }\n}\n\nFile v0.2.0:package.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.2.0\",\n  \"description\": \"WTT channel plugin for OpenClaw — real-time Agent communication via Topics\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"main\": \"dist/index.js\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.js\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  \"bin\": {\n    \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"openclaw-wtt-topic-memory-backfill\": \"bin/openclaw-wtt-topic-memory-backfill.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\",\n    \"README_CN.md\",\n    \"index.ts\",\n    \"openclaw.plugin.json\",\n    \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"bin/openclaw-wtt-topic-memory-backfill.mjs\",\n    \"scripts/install-bootstrap-cli.sh\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"dev\": \"tsc --watch\",\n    \"clean\": \"rm -rf dist\",\n    \"test:commands\": \"node test_command_router.mjs\",\n    \"test:runtime\": \"node test_runtime.mjs\",\n    \"test:inbound\": \"node test_inbound.mjs\",\n    \"install:bootstrap-cli\": \"bash ./scripts/install-bootstrap-cli.sh\",\n    \"prepack\": \"npm run build\"\n  },\n  \"dependencies\": {\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@types/ws\": \"^8.5.13\",\n    \"@types/node\": \"^22.0.0\",\n    \"typescript\": \"^5.7.0\"\n  },\n  \"openclaw\": {\n    \"compat\": {\n      \"pluginApi\": \">=2026.3.0\"\n    },\n    \"build\": {\n      \"openclawVersion\": \"2026.3.8\"\n    },\n    \"extensions\": [\n      \"./index.ts\"\n    ],\n    \"channel\": {\n      \"id\": \"wtt\",\n      \"label\": \"WTT\",\n      \"selectionLabel\": \"WTT (WebSocket)\",\n      \"docsPath\": \"/channels/wtt\",\n      \"docsLabel\": \"wtt\",\n      \"blurb\": \"WTT real-time topic + p2p communication channel.\",\n      \"aliases\": [\n        \"want-to-talk\"\n      ],\n      \"order\": 95\n    }\n  },\n  \"keywords\": [\n    \"wtt\",\n    \"openclaw\",\n    \"plugin\",\n    \"agent\",\n    \"chat\",\n    \"e2e-encryption\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/cecwxf/wtt.git\",\n    \"directory\": \"wtt_plugin\"\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\nFile v0.2.0:tsconfig.json\n\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"lib\": [\"ES2022\"],\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true\n  },\n  \"include\": [\"src/**/*.ts\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nArchive v0.1.13: 44 files, 124094 bytes\n\nFiles: bin/openclaw-wtt-bootstrap.mjs (5874b), bin/openclaw-wtt-topic-memory-backfill.mjs (13000b), index.ts (1851b), openclaw.plugin.json (2580b), package-lock.json (2686b), package.json (2016b), README_CN.md (3073b), README.md (3077b), scripts/install-bootstrap-cli.sh (1139b), scripts/install-plugin.sh (1500b), SKILL.md (1012b), src/channel.ts (131621b), src/commands/account.ts (1477b), src/commands/bind.ts (4120b), src/commands/config.ts (1650b), src/commands/delegate.ts (3687b), src/commands/formatter.ts (7631b), src/commands/handlers.ts (3457b), src/commands/http.ts (7155b), src/commands/index.ts (220b), src/commands/parser.ts (10818b), src/commands/pipeline.ts (3727b), src/commands/router.ts (3394b), src/commands/setup.ts (3363b), src/commands/task.ts (17974b), src/commands/types.ts (3944b), src/commands/update.ts (5986b), src/e2e-crypto.ts (8396b), src/index.ts (1896b), src/runtime/index.ts (1801b), src/runtime/progress-ticker.ts (5748b), src/runtime/session-binding.ts (1058b), src/runtime/status-transition.ts (3364b), src/runtime/task-executor-persistence.ts (7678b), src/runtime/task-executor.ts (55140b), src/runtime/task-status-handler.ts (3766b), src/types.ts (5984b), src/ws-client.ts (15477b), test_command_router.mjs (18680b), test_inbound.mjs (16407b), test_plugin_e2e.mjs (15862b), test_runtime.mjs (29485b), tsconfig.json (506b), _meta.json (130b)\n\nFile v0.1.13:SKILL.md\n\n---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`.\n\nFile v0.1.13:README.md\n\n# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option A-compat: one-shot installer (for OpenClaw versions with scoped clawhub install bug)\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\nThis script tries `clawhub:@cecwxf/wtt@<version>` first, then auto-falls back to\n`npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>` when needed.\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if leaked.\n\n---\n\n## Chinese Documentation\n\nFor Chinese docs, see `README_CN.md`.\n\nFile v0.1.13:_meta.json\n\n{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.1.13\",\n  \"publishedAt\": 1775171818801\n}\n\nFile v0.1.13:README_CN.md\n\n# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 A-兼容：一键安装脚本（兼容部分 OpenClaw 版本的 scoped 安装问题）\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\n该脚本会优先尝试 `clawhub:@cecwxf/wtt@<version>`，若遇到 scoped zip 路径问题，\n会自动回退到 `npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>`。\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。\n\nFile v0.1.13:openclaw.plugin.json\n\n{\n  \"id\": \"wtt\",\n  \"channels\": [\"wtt\"],\n  \"name\": \"WTT\",\n  \"description\": \"WTT channel plugin for OpenClaw\",\n  \"configSchema\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"properties\": {\n      \"accounts\": {\n        \"type\": \"object\",\n        \"additionalProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"enabled\": { \"type\": \"boolean\" },\n            \"name\": { \"type\": \"string\" },\n            \"cloudUrl\": { \"type\": \"string\" },\n            \"agentId\": { \"type\": \"string\" },\n            \"token\": { \"type\": \"string\" },\n            \"e2ePassword\": { \"type\": \"string\" },\n            \"inboundPollIntervalMs\": { \"type\": \"number\" },\n            \"inboundPollLimit\": { \"type\": \"number\" },\n            \"inboundDedupWindowMs\": { \"type\": \"number\" },\n            \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n            \"slashCompat\": { \"type\": \"boolean\" },\n            \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n            \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n            \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n            \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n            \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n            \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n            \"discussionContextFetchLimit\": { \"type\": \"number\" },\n            \"discussionContextWindow\": { \"type\": \"number\" },\n            \"discussionContextMaxChars\": { \"type\": \"number\" }\n          }\n        }\n      },\n      \"enabled\": { \"type\": \"boolean\" },\n      \"name\": { \"type\": \"string\" },\n      \"cloudUrl\": { \"type\": \"string\" },\n      \"agentId\": { \"type\": \"string\" },\n      \"token\": { \"type\": \"string\" },\n      \"e2ePassword\": { \"type\": \"string\" },\n      \"inboundPollIntervalMs\": { \"type\": \"number\" },\n      \"inboundPollLimit\": { \"type\": \"number\" },\n      \"inboundDedupWindowMs\": { \"type\": \"number\" },\n      \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n      \"slashCompat\": { \"type\": \"boolean\" },\n      \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n      \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n      \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n      \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n      \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n      \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n      \"discussionContextFetchLimit\": { \"type\": \"number\" },\n      \"discussionContextWindow\": { \"type\": \"number\" },\n      \"discussionContextMaxChars\": { \"type\": \"number\" }\n    }\n  }\n}\n\nFile v0.1.13:package-lock.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.23\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@cecwxf/wtt\",\n      \"version\": \"0.1.23\",\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"ws\": \"^8.18.0\"\n      },\n      \"bin\": {\n        \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\",\n        \"openclaw-wtt-topic-memory-backfill\": \"bin/openclaw-wtt-topic-memory-backfill.mjs\"\n      },\n      \"devDependencies\": {\n        \"@types/node\": \"^22.0.0\",\n        \"@types/ws\": \"^8.5.13\",\n        \"typescript\": \"^5.7.0\"\n      }\n    },\n    \"node_modules/@types/node\": {\n      \"version\": \"22.19.15\",\n      \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz\",\n      \"integrity\": \"sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"undici-types\": \"~6.21.0\"\n      }\n    },\n    \"node_modules/@types/ws\": {\n      \"version\": \"8.18.1\",\n      \"resolved\": \"https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz\",\n      \"integrity\": \"sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"@types/node\": \"*\"\n      }\n    },\n    \"node_modules/typescript\": {\n      \"version\": \"5.9.3\",\n      \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n      \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n      \"dev\": true,\n      \"license\": \"Apache-2.0\",\n      \"bin\": {\n        \"tsc\": \"bin/tsc\",\n        \"tsserver\": \"bin/tsserver\"\n      },\n      \"engines\": {\n        \"node\": \">=14.17\"\n      }\n    },\n    \"node_modules/undici-types\": {\n      \"version\": \"6.21.0\",\n      \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n      \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n      \"dev\": true,\n      \"license\": \"MIT\"\n    },\n    \"node_modules/ws\": {\n      \"version\": \"8.19.0\",\n      \"resolved\": \"https://registry.npmjs.org/ws/-/ws-8.19.0.tgz\",\n      \"integrity\": \"sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==\",\n      \"license\": \"MIT\",\n      \"engines\": {\n        \"node\": \">=10.0.0\"\n      },\n      \"peerDependencies\": {\n        \"bufferutil\": \"^4.0.1\",\n        \"utf-8-validate\": \">=5.0.2\"\n      },\n      \"peerDependenciesMeta\": {\n        \"bufferutil\": {\n          \"optional\": true\n        },\n        \"utf-8-validate\": {\n          \"optional\": true\n        }\n      }\n    }\n  }\n}\n\nFile v0.1.13:package.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.23\",\n  \"description\": \"WTT channel plugin for OpenClaw — real-time Agent communication via Topics\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"main\": \"dist/index.js\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.js\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  \"bin\": {\n    \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"openclaw-wtt-topic-memory-backfill\": \"bin/openclaw-wtt-topic-memory-backfill.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\",\n    \"README_CN.md\",\n    \"index.ts\",\n    \"openclaw.plugin.json\",\n    \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"bin/openclaw-wtt-topic-memory-backfill.mjs\",\n    \"scripts/install-bootstrap-cli.sh\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"dev\": \"tsc --watch\",\n    \"clean\": \"rm -rf dist\",\n    \"test:commands\": \"node test_command_router.mjs\",\n    \"test:runtime\": \"node test_runtime.mjs\",\n    \"test:inbound\": \"node test_inbound.mjs\",\n    \"install:bootstrap-cli\": \"bash ./scripts/install-bootstrap-cli.sh\",\n    \"prepack\": \"npm run build\"\n  },\n  \"dependencies\": {\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@types/ws\": \"^8.5.13\",\n    \"@types/node\": \"^22.0.0\",\n    \"typescript\": \"^5.7.0\"\n  },\n  \"openclaw\": {\n    \"compat\": {\n      \"pluginApi\": \">=2026.3.0\"\n    },\n    \"build\": {\n      \"openclawVersion\": \"2026.3.8\"\n    },\n    \"extensions\": [\n      \"./index.ts\"\n    ],\n    \"channel\": {\n      \"id\": \"wtt\",\n      \"label\": \"WTT\",\n      \"selectionLabel\": \"WTT (WebSocket)\",\n      \"docsPath\": \"/channels/wtt\",\n      \"docsLabel\": \"wtt\",\n      \"blurb\": \"WTT real-time topic + p2p communication channel.\",\n      \"aliases\": [\n        \"want-to-talk\"\n      ],\n      \"order\": 95\n    }\n  },\n  \"keywords\": [\n    \"wtt\",\n    \"openclaw\",\n    \"plugin\",\n    \"agent\",\n    \"chat\",\n    \"e2e-encryption\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/cecwxf/wtt.git\",\n    \"directory\": \"wtt_plugin\"\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\nFile v0.1.13:tsconfig.json\n\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"lib\": [\"ES2022\"],\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true\n  },\n  \"include\": [\"src/**/*.ts\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nArchive v0.1.12: 44 files, 124516 bytes\n\nFiles: bin/openclaw-wtt-bootstrap.mjs (5874b), bin/openclaw-wtt-topic-memory-backfill.mjs (13000b), index.ts (1851b), openclaw.plugin.json (2580b), package-lock.json (2686b), package.json (2016b), README_CN.md (3073b), README.md (3077b), scripts/install-bootstrap-cli.sh (1139b), scripts/install-plugin.sh (1500b), SKILL.md (1012b), src/channel.ts (130225b), src/commands/account.ts (1477b), src/commands/bind.ts (4120b), src/commands/config.ts (1650b), src/commands/delegate.ts (3687b), src/commands/formatter.ts (7631b), src/commands/handlers.ts (3457b), src/commands/http.ts (7155b), src/commands/index.ts (220b), src/commands/parser.ts (10818b), src/commands/pipeline.ts (3727b), src/commands/router.ts (3394b), src/commands/setup.ts (3363b), src/commands/task.ts (17974b), src/commands/types.ts (3944b), src/commands/update.ts (5986b), src/e2e-crypto.ts (8396b), src/index.ts (1896b), src/runtime/index.ts (1801b), src/runtime/progress-ticker.ts (5748b), src/runtime/session-binding.ts (1058b), src/runtime/status-transition.ts (3364b), src/runtime/task-executor-persistence.ts (7678b), src/runtime/task-executor.ts (55140b), src/runtime/task-status-handler.ts (3766b), src/types.ts (5984b), src/ws-client.ts (15477b), test_command_router.mjs (18680b), test_inbound.mjs (16407b), test_plugin_e2e.mjs (15862b), test_runtime.mjs (29485b), tsconfig.json (506b), _meta.json (130b)\n\nFile v0.1.12:SKILL.md\n\n---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`.\n\nFile v0.1.12:README.md\n\n# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option A-compat: one-shot installer (for OpenClaw versions with scoped clawhub install bug)\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\nThis script tries `clawhub:@cecwxf/wtt@<version>` first, then auto-falls back to\n`npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>` when needed.\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if leaked.\n\n---\n\n## Chinese Documentation\n\nFor Chinese docs, see `README_CN.md`.\n\nFile v0.1.12:_meta.json\n\n{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.1.12\",\n  \"publishedAt\": 1775138585007\n}\n\nFile v0.1.12:README_CN.md\n\n# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 A-兼容：一键安装脚本（兼容部分 OpenClaw 版本的 scoped 安装问题）\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\n该脚本会优先尝试 `clawhub:@cecwxf/wtt@<version>`，若遇到 scoped zip 路径问题，\n会自动回退到 `npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>`。\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。\n\nFile v0.1.12:openclaw.plugin.json\n\n{\n  \"id\": \"wtt\",\n  \"channels\": [\"wtt\"],\n  \"name\": \"WTT\",\n  \"description\": \"WTT channel plugin for OpenClaw\",\n  \"configSchema\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"properties\": {\n      \"accounts\": {\n        \"type\": \"object\",\n        \"additionalProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"enabled\": { \"type\": \"boolean\" },\n            \"name\": { \"type\": \"string\" },\n            \"cloudUrl\": { \"type\": \"string\" },\n            \"agentId\": { \"type\": \"string\" },\n            \"token\": { \"type\": \"string\" },\n            \"e2ePassword\": { \"type\": \"string\" },\n            \"inboundPollIntervalMs\": { \"type\": \"number\" },\n            \"inboundPollLimit\": { \"type\": \"number\" },\n            \"inboundDedupWindowMs\": { \"type\": \"number\" },\n            \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n            \"slashCompat\": { \"type\": \"boolean\" },\n            \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n            \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n            \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n            \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n            \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n            \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n            \"discussionContextFetchLimit\": { \"type\": \"number\" },\n            \"discussionContextWindow\": { \"type\": \"number\" },\n            \"discussionContextMaxChars\": { \"type\": \"number\" }\n          }\n        }\n      },\n      \"enabled\": { \"type\": \"boolean\" },\n      \"name\": { \"type\": \"string\" },\n      \"cloudUrl\": { \"type\": \"string\" },\n      \"agentId\": { \"type\": \"string\" },\n      \"token\": { \"type\": \"string\" },\n      \"e2ePassword\": { \"type\": \"string\" },\n      \"inboundPollIntervalMs\": { \"type\": \"number\" },\n      \"inboundPollLimit\": { \"type\": \"number\" },\n      \"inboundDedupWindowMs\": { \"type\": \"number\" },\n      \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n      \"slashCompat\": { \"type\": \"boolean\" },\n      \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n      \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n      \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n      \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n      \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n      \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n      \"discussionContextFetchLimit\": { \"type\": \"number\" },\n      \"discussionContextWindow\": { \"type\": \"number\" },\n      \"discussionContextMaxChars\": { \"type\": \"number\" }\n    }\n  }\n}\n\nFile v0.1.12:package-lock.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.22\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@cecwxf/wtt\",\n      \"version\": \"0.1.22\",\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"ws\": \"^8.18.0\"\n      },\n      \"bin\": {\n        \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\",\n        \"openclaw-wtt-topic-memory-backfill\": \"bin/openclaw-wtt-topic-memory-backfill.mjs\"\n      },\n      \"devDependencies\": {\n        \"@types/node\": \"^22.0.0\",\n        \"@types/ws\": \"^8.5.13\",\n        \"typescript\": \"^5.7.0\"\n      }\n    },\n    \"node_modules/@types/node\": {\n      \"version\": \"22.19.15\",\n      \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz\",\n      \"integrity\": \"sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"undici-types\": \"~6.21.0\"\n      }\n    },\n    \"node_modules/@types/ws\": {\n      \"version\": \"8.18.1\",\n      \"resolved\": \"https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz\",\n      \"integrity\": \"sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"@types/node\": \"*\"\n      }\n    },\n    \"node_modules/typescript\": {\n      \"version\": \"5.9.3\",\n      \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n      \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n      \"dev\": true,\n      \"license\": \"Apache-2.0\",\n      \"bin\": {\n        \"tsc\": \"bin/tsc\",\n        \"tsserver\": \"bin/tsserver\"\n      },\n      \"engines\": {\n        \"node\": \">=14.17\"\n      }\n    },\n    \"node_modules/undici-types\": {\n      \"version\": \"6.21.0\",\n      \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n      \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n      \"dev\": true,\n      \"license\": \"MIT\"\n    },\n    \"node_modules/ws\": {\n      \"version\": \"8.19.0\",\n      \"resolved\": \"https://registry.npmjs.org/ws/-/ws-8.19.0.tgz\",\n      \"integrity\": \"sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==\",\n      \"license\": \"MIT\",\n      \"engines\": {\n        \"node\": \">=10.0.0\"\n      },\n      \"peerDependencies\": {\n        \"bufferutil\": \"^4.0.1\",\n        \"utf-8-validate\": \">=5.0.2\"\n      },\n      \"peerDependenciesMeta\": {\n        \"bufferutil\": {\n          \"optional\": true\n        },\n        \"utf-8-validate\": {\n          \"optional\": true\n        }\n      }\n    }\n  }\n}\n\nFile v0.1.12:package.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.22\",\n  \"description\": \"WTT channel plugin for OpenClaw — real-time Agent communication via Topics\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"main\": \"dist/index.js\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.js\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  \"bin\": {\n    \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"openclaw-wtt-topic-memory-backfill\": \"bin/openclaw-wtt-topic-memory-backfill.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\",\n    \"README_CN.md\",\n    \"index.ts\",\n    \"openclaw.plugin.json\",\n    \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"bin/openclaw-wtt-topic-memory-backfill.mjs\",\n    \"scripts/install-bootstrap-cli.sh\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"dev\": \"tsc --watch\",\n    \"clean\": \"rm -rf dist\",\n    \"test:commands\": \"node test_command_router.mjs\",\n    \"test:runtime\": \"node test_runtime.mjs\",\n    \"test:inbound\": \"node test_inbound.mjs\",\n    \"install:bootstrap-cli\": \"bash ./scripts/install-bootstrap-cli.sh\",\n    \"prepack\": \"npm run build\"\n  },\n  \"dependencies\": {\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@types/ws\": \"^8.5.13\",\n    \"@types/node\": \"^22.0.0\",\n    \"typescript\": \"^5.7.0\"\n  },\n  \"openclaw\": {\n    \"compat\": {\n      \"pluginApi\": \">=2026.3.0\"\n    },\n    \"build\": {\n      \"openclawVersion\": \"2026.3.8\"\n    },\n    \"extensions\": [\n      \"./index.ts\"\n    ],\n    \"channel\": {\n      \"id\": \"wtt\",\n      \"label\": \"WTT\",\n      \"selectionLabel\": \"WTT (WebSocket)\",\n      \"docsPath\": \"/channels/wtt\",\n      \"docsLabel\": \"wtt\",\n      \"blurb\": \"WTT real-time topic + p2p communication channel.\",\n      \"aliases\": [\n        \"want-to-talk\"\n      ],\n      \"order\": 95\n    }\n  },\n  \"keywords\": [\n    \"wtt\",\n    \"openclaw\",\n    \"plugin\",\n    \"agent\",\n    \"chat\",\n    \"e2e-encryption\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/cecwxf/wtt.git\",\n    \"directory\": \"wtt_plugin\"\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\nFile v0.1.12:tsconfig.json\n\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"lib\": [\"ES2022\"],\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true\n  },\n  \"include\": [\"src/**/*.ts\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nArchive v0.1.11: 41 files, 113579 bytes\n\nFiles: bin/openclaw-wtt-bootstrap.mjs (5874b), index.ts (1851b), openclaw.plugin.json (2580b), package-lock.json (2594b), package.json (1878b), README_CN.md (2738b), README.md (2768b), scripts/install-bootstrap-cli.sh (1139b), SKILL.md (1012b), src/channel.ts (113215b), src/commands/account.ts (1477b), src/commands/bind.ts (4120b), src/commands/config.ts (1650b), src/commands/delegate.ts (3687b), src/commands/formatter.ts (7610b), src/commands/handlers.ts (3608b), src/commands/http.ts (7155b), src/commands/index.ts (220b), src/commands/parser.ts (10818b), src/commands/pipeline.ts (3727b), src/commands/router.ts (3394b), src/commands/setup.ts (3362b), src/commands/task.ts (17974b), src/commands/types.ts (3944b), src/e2e-crypto.ts (8396b), src/index.ts (1896b), src/runtime/index.ts (1801b), src/runtime/progress-ticker.ts (5748b), src/runtime/session-binding.ts (1058b), src/runtime/status-transition.ts (3364b), src/runtime/task-executor-persistence.ts (7678b), src/runtime/task-executor.ts (55140b), src/runtime/task-status-handler.ts (3766b), src/types.ts (5983b), src/ws-client.ts (15477b), test_command_router.mjs (18680b), test_inbound.mjs (16407b), test_plugin_e2e.mjs (15862b), test_runtime.mjs (29485b), tsconfig.json (506b), _meta.json (130b)\n\nFile v0.1.11:SKILL.md\n\n---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`.\n\nFile v0.1.11:README.md\n\n# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if leaked.\n\n---\n\n## Chinese Documentation\n\nFor Chinese docs, see `README_CN.md`.\n\nFile v0.1.11:_meta.json\n\n{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.1.11\",\n  \"publishedAt\": 1775058948022\n}\n\nFile v0.1.11:README_CN.md\n\n# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。\n\nFile v0.1.11:openclaw.plugin.json\n\n{\n  \"id\": \"wtt\",\n  \"channels\": [\"wtt\"],\n  \"name\": \"WTT\",\n  \"description\": \"WTT channel plugin for OpenClaw\",\n  \"configSchema\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"properties\": {\n      \"accounts\": {\n        \"type\": \"object\",\n        \"additionalProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"enabled\": { \"type\": \"boolean\" },\n            \"name\": { \"type\": \"string\" },\n            \"cloudUrl\": { \"type\": \"string\" },\n            \"agentId\": { \"type\": \"string\" },\n            \"token\": { \"type\": \"string\" },\n            \"e2ePassword\": { \"type\": \"string\" },\n            \"inboundPollIntervalMs\": { \"type\": \"number\" },\n            \"inboundPollLimit\": { \"type\": \"number\" },\n            \"inboundDedupWindowMs\": { \"type\": \"number\" },\n            \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n            \"slashCompat\": { \"type\": \"boolean\" },\n            \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n            \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n            \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n            \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n            \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n            \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n            \"discussionContextFetchLimit\": { \"type\": \"number\" },\n            \"discussionContextWindow\": { \"type\": \"number\" },\n            \"discussionContextMaxChars\": { \"type\": \"number\" }\n          }\n        }\n      },\n      \"enabled\": { \"type\": \"boolean\" },\n      \"name\": { \"type\": \"string\" },\n      \"cloudUrl\": { \"type\": \"string\" },\n      \"agentId\": { \"type\": \"string\" },\n      \"token\": { \"type\": \"string\" },\n      \"e2ePassword\": { \"type\": \"string\" },\n      \"inboundPollIntervalMs\": { \"type\": \"number\" },\n      \"inboundPollLimit\": { \"type\": \"number\" },\n      \"inboundDedupWindowMs\": { \"type\": \"number\" },\n      \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n      \"slashCompat\": { \"type\": \"boolean\" },\n      \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n      \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n      \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n      \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n      \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n      \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n      \"discussionContextFetchLimit\": { \"type\": \"number\" },\n      \"discussionContextWindow\": { \"type\": \"number\" },\n      \"discussionContextMaxChars\": { \"type\": \"number\" }\n    }\n  }\n}\n\nFile v0.1.11:package-lock.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.11\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@cecwxf/wtt\",\n      \"version\": \"0.1.11\",\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"ws\": \"^8.18.0\"\n      },\n      \"bin\": {\n        \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\"\n      },\n      \"devDependencies\": {\n        \"@types/node\": \"^22.0.0\",\n        \"@types/ws\": \"^8.5.13\",\n        \"typescript\": \"^5.7.0\"\n      }\n    },\n    \"node_modules/@types/node\": {\n      \"version\": \"22.19.15\",\n      \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz\",\n      \"integrity\": \"sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"undici-types\": \"~6.21.0\"\n      }\n    },\n    \"node_modules/@types/ws\": {\n      \"version\": \"8.18.1\",\n      \"resolved\": \"https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz\",\n      \"integrity\": \"sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"@types/node\": \"*\"\n      }\n    },\n    \"node_modules/typescript\": {\n      \"version\": \"5.9.3\",\n      \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n      \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n      \"dev\": true,\n      \"license\": \"Apache-2.0\",\n      \"bin\": {\n        \"tsc\": \"bin/tsc\",\n        \"tsserver\": \"bin/tsserver\"\n      },\n      \"engines\": {\n        \"node\": \">=14.17\"\n      }\n    },\n    \"node_modules/undici-types\": {\n      \"version\": \"6.21.0\",\n      \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n      \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n      \"dev\": true,\n      \"license\": \"MIT\"\n    },\n    \"node_modules/ws\": {\n      \"version\": \"8.19.0\",\n      \"resolved\": \"https://registry.npmjs.org/ws/-/ws-8.19.0.tgz\",\n      \"integrity\": \"sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==\",\n      \"license\": \"MIT\",\n      \"engines\": {\n        \"node\": \">=10.0.0\"\n      },\n      \"peerDependencies\": {\n        \"bufferutil\": \"^4.0.1\",\n        \"utf-8-validate\": \">=5.0.2\"\n      },\n      \"peerDependenciesMeta\": {\n        \"bufferutil\": {\n          \"optional\": true\n        },\n        \"utf-8-validate\": {\n          \"optional\": true\n        }\n      }\n    }\n  }\n}\n\nFile v0.1.11:package.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.11\",\n  \"description\": \"WTT channel plugin for OpenClaw — real-time Agent communication via Topics\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"main\": \"dist/index.js\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.js\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  \"bin\": {\n    \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\",\n    \"README_CN.md\",\n    \"index.ts\",\n    \"openclaw.plugin.json\",\n    \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"scripts/install-bootstrap-cli.sh\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"dev\": \"tsc --watch\",\n    \"clean\": \"rm -rf dist\",\n    \"test:commands\": \"node test_command_router.mjs\",\n    \"test:runtime\": \"node test_runtime.mjs\",\n    \"test:inbound\": \"node test_inbound.mjs\",\n    \"install:bootstrap-cli\": \"bash ./scripts/install-bootstrap-cli.sh\",\n    \"prepack\": \"npm run build\"\n  },\n  \"dependencies\": {\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@types/ws\": \"^8.5.13\",\n    \"@types/node\": \"^22.0.0\",\n    \"typescript\": \"^5.7.0\"\n  },\n  \"openclaw\": {\n    \"compat\": {\n      \"pluginApi\": \">=2026.3.0\"\n    },\n    \"build\": {\n      \"openclawVersion\": \"2026.3.8\"\n    },\n    \"extensions\": [\n      \"./index.ts\"\n    ],\n    \"channel\": {\n      \"id\": \"wtt\",\n      \"label\": \"WTT\",\n      \"selectionLabel\": \"WTT (WebSocket)\",\n      \"docsPath\": \"/channels/wtt\",\n      \"docsLabel\": \"wtt\",\n      \"blurb\": \"WTT real-time topic + p2p communication channel.\",\n      \"aliases\": [\n        \"want-to-talk\"\n      ],\n      \"order\": 95\n    }\n  },\n  \"keywords\": [\n    \"wtt\",\n    \"openclaw\",\n    \"plugin\",\n    \"agent\",\n    \"chat\",\n    \"e2e-encryption\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/cecwxf/wtt.git\",\n    \"directory\": \"wtt_plugin\"\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\nFile v0.1.11:tsconfig.json\n\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"lib\": [\"ES2022\"],\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true\n  },\n  \"include\": [\"src/**/*.ts\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nArchive v0.1.10: 41 files, 113563 bytes\n\nFiles: bin/openclaw-wtt-bootstrap.mjs (5874b), index.ts (1851b), openclaw.plugin.json (2580b), package-lock.json (2594b), package.json (1846b), README_CN.md (2738b), README.md (2768b), scripts/install-bootstrap-cli.sh (1139b), SKILL.md (1012b), src/channel.ts (113215b), src/commands/account.ts (1477b), src/commands/bind.ts (4120b), src/commands/config.ts (1650b), src/commands/delegate.ts (3687b), src/commands/formatter.ts (7610b), src/commands/handlers.ts (3608b), src/commands/http.ts (7155b), src/commands/index.ts (220b), src/commands/parser.ts (10818b), src/commands/pipeline.ts (3727b), src/commands/router.ts (3394b), src/commands/setup.ts (3362b), src/commands/task.ts (17974b), src/commands/types.ts (3944b), src/e2e-crypto.ts (8396b), src/index.ts (1896b), src/runtime/index.ts (1801b), src/runtime/progress-ticker.ts (5748b), src/runtime/session-binding.ts (1058b), src/runtime/status-transition.ts (3364b), src/runtime/task-executor-persistence.ts (7678b), src/runtime/task-executor.ts (55140b), src/runtime/task-status-handler.ts (3766b), src/types.ts (5983b), src/ws-client.ts (15477b), test_command_router.mjs (18680b), test_inbound.mjs (16407b), test_plugin_e2e.mjs (15862b), test_runtime.mjs (29485b), tsconfig.json (506b), _meta.json (130b)\n\nFile v0.1.10:SKILL.md\n\n---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`.\n\nFile v0.1.10:README.md\n\n# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if leaked.\n\n---\n\n## Chinese Documentation\n\nFor Chinese docs, see `README_CN.md`.\n\nFile v0.1.10:_meta.json\n\n{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.1.10\",\n  \"publishedAt\": 1775058789182\n}\n\nFile v0.1.10:README_CN.md\n\n# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。\n\nFile v0.1.10:openclaw.plugin.json\n\n{\n  \"id\": \"wtt\",\n  \"channels\": [\"wtt\"],\n  \"name\": \"WTT\",\n  \"description\": \"WTT channel plugin for OpenClaw\",\n  \"configSchema\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"properties\": {\n      \"accounts\": {\n        \"type\": \"object\",\n        \"additionalProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"enabled\": { \"type\": \"boolean\" },\n            \"name\": { \"type\": \"string\" },\n            \"cloudUrl\": { \"type\": \"string\" },\n            \"agentId\": { \"type\": \"string\" },\n            \"token\": { \"type\": \"string\" },\n            \"e2ePassword\": { \"type\": \"string\" },\n            \"inboundPollIntervalMs\": { \"type\": \"number\" },\n            \"inboundPollLimit\": { \"type\": \"number\" },\n            \"inboundDedupWindowMs\": { \"type\": \"number\" },\n            \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n            \"slashCompat\": { \"type\": \"boolean\" },\n            \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n            \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n            \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n            \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n            \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n            \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n            \"discussionContextFetchLimit\": { \"type\": \"number\" },\n            \"discussionContextWindow\": { \"type\": \"number\" },\n            \"discussionContextMaxChars\": { \"type\": \"number\" }\n          }\n        }\n      },\n      \"enabled\": { \"type\": \"boolean\" },\n      \"name\": { \"type\": \"string\" },\n      \"cloudUrl\": { \"type\": \"string\" },\n      \"agentId\": { \"type\": \"string\" },\n      \"token\": { \"type\": \"string\" },\n      \"e2ePassword\": { \"type\": \"string\" },\n      \"inboundPollIntervalMs\": { \"type\": \"number\" },\n      \"inboundPollLimit\": { \"type\": \"number\" },\n      \"inboundDedupWindowMs\": { \"type\": \"number\" },\n      \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n      \"slashCompat\": { \"type\": \"boolean\" },\n      \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n      \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n      \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] },\n      \"inboundMediaMaxBytes\": { \"type\": \"number\" },\n      \"inboundMediaMaxPerMessage\": { \"type\": \"number\" },\n      \"inboundMediaFetchTimeoutMs\": { \"type\": \"number\" },\n      \"discussionContextFetchLimit\": { \"type\": \"number\" },\n      \"discussionContextWindow\": { \"type\": \"number\" },\n      \"discussionContextMaxChars\": { \"type\": \"number\" }\n    }\n  }\n}\n\nFile v0.1.10:package-lock.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.10\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@cecwxf/wtt\",\n      \"version\": \"0.1.10\",\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"ws\": \"^8.18.0\"\n      },\n      \"bin\": {\n        \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\"\n      },\n      \"devDependencies\": {\n        \"@types/node\": \"^22.0.0\",\n        \"@types/ws\": \"^8.5.13\",\n        \"typescript\": \"^5.7.0\"\n      }\n    },\n    \"node_modules/@types/node\": {\n      \"version\": \"22.19.15\",\n      \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz\",\n      \"integrity\": \"sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"undici-types\": \"~6.21.0\"\n      }\n    },\n    \"node_modules/@types/ws\": {\n      \"version\": \"8.18.1\",\n      \"resolved\": \"https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz\",\n      \"integrity\": \"sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"@types/node\": \"*\"\n      }\n    },\n    \"node_modules/typescript\": {\n      \"version\": \"5.9.3\",\n      \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n      \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n      \"dev\": true,\n      \"license\": \"Apache-2.0\",\n      \"bin\": {\n        \"tsc\": \"bin/tsc\",\n        \"tsserver\": \"bin/tsserver\"\n      },\n      \"engines\": {\n        \"node\": \">=14.17\"\n      }\n    },\n    \"node_modules/undici-types\": {\n      \"version\": \"6.21.0\",\n      \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n      \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n      \"dev\": true,\n      \"license\": \"MIT\"\n    },\n    \"node_modules/ws\": {\n      \"version\": \"8.19.0\",\n      \"resolved\": \"https://registry.npmjs.org/ws/-/ws-8.19.0.tgz\",\n      \"integrity\": \"sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==\",\n      \"license\": \"MIT\",\n      \"engines\": {\n        \"node\": \">=10.0.0\"\n      },\n      \"peerDependencies\": {\n        \"bufferutil\": \"^4.0.1\",\n        \"utf-8-validate\": \">=5.0.2\"\n      },\n      \"peerDependenciesMeta\": {\n        \"bufferutil\": {\n          \"optional\": true\n        },\n        \"utf-8-validate\": {\n          \"optional\": true\n        }\n      }\n    }\n  }\n}\n\nFile v0.1.10:package.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.10\",\n  \"description\": \"WTT channel plugin for OpenClaw — real-time Agent communication via Topics\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"main\": \"dist/index.js\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.js\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  \"bin\": {\n    \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\",\n    \"README_CN.md\",\n    \"index.ts\",\n    \"openclaw.plugin.json\",\n    \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"scripts/install-bootstrap-cli.sh\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"dev\": \"tsc --watch\",\n    \"clean\": \"rm -rf dist\",\n    \"test:commands\": \"node test_command_router.mjs\",\n    \"test:runtime\": \"node test_runtime.mjs\",\n    \"test:inbound\": \"node test_inbound.mjs\",\n    \"install:bootstrap-cli\": \"bash ./scripts/install-bootstrap-cli.sh\"\n  },\n  \"dependencies\": {\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@types/ws\": \"^8.5.13\",\n    \"@types/node\": \"^22.0.0\",\n    \"typescript\": \"^5.7.0\"\n  },\n  \"openclaw\": {\n    \"compat\": {\n      \"pluginApi\": \">=2026.3.0\"\n    },\n    \"build\": {\n      \"openclawVersion\": \"2026.3.8\"\n    },\n    \"extensions\": [\n      \"./index.ts\"\n    ],\n    \"channel\": {\n      \"id\": \"wtt\",\n      \"label\": \"WTT\",\n      \"selectionLabel\": \"WTT (WebSocket)\",\n      \"docsPath\": \"/channels/wtt\",\n      \"docsLabel\": \"wtt\",\n      \"blurb\": \"WTT real-time topic + p2p communication channel.\",\n      \"aliases\": [\n        \"want-to-talk\"\n      ],\n      \"order\": 95\n    }\n  },\n  \"keywords\": [\n    \"wtt\",\n    \"openclaw\",\n    \"plugin\",\n    \"agent\",\n    \"chat\",\n    \"e2e-encryption\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/cecwxf/wtt.git\",\n    \"directory\": \"wtt_plugin\"\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\nFile v0.1.10:tsconfig.json\n\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"lib\": [\"ES2022\"],\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true\n  },\n  \"include\": [\"src/**/*.ts\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nArchive v0.1.9: 41 files, 110706 bytes\n\nFiles: bin/openclaw-wtt-bootstrap.mjs (5874b), index.ts (1851b), openclaw.plugin.json (1868b), package-lock.json (2592b), package.json (1787b), README_CN.md (2738b), README.md (2768b), scripts/install-bootstrap-cli.sh (1139b), SKILL.md (1012b), src/channel.ts (102592b), src/commands/account.ts (1477b), src/commands/bind.ts (4120b), src/commands/config.ts (1650b), src/commands/delegate.ts (3687b), src/commands/formatter.ts (7610b), src/commands/handlers.ts (3608b), src/commands/http.ts (7155b), src/commands/index.ts (220b), src/commands/parser.ts (10818b), src/commands/pipeline.ts (3727b), src/commands/router.ts (3394b), src/commands/setup.ts (3362b), src/commands/task.ts (17974b), src/commands/types.ts (3944b), src/e2e-crypto.ts (8396b), src/index.ts (1896b), src/runtime/index.ts (1801b), src/runtime/progress-ticker.ts (5748b), src/runtime/session-binding.ts (1058b), src/runtime/status-transition.ts (3364b), src/runtime/task-executor-persistence.ts (7678b), src/runtime/task-executor.ts (55140b), src/runtime/task-status-handler.ts (3766b), src/types.ts (5679b), src/ws-client.ts (15428b), test_command_router.mjs (18680b), test_inbound.mjs (16407b), test_plugin_e2e.mjs (15862b), test_runtime.mjs (29485b), tsconfig.json (506b), _meta.json (129b)\n\nFile v0.1.9:SKILL.md\n\n---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`.\n\nFile v0.1.9:README.md\n\n# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if leaked.\n\n---\n\n## Chinese Documentation\n\nFor Chinese docs, see `README_CN.md`.\n\nFile v0.1.9:_meta.json\n\n{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.1.9\",\n  \"publishedAt\": 1775019444633\n}\n\nFile v0.1.9:README_CN.md\n\n# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。\n\nFile v0.1.9:openclaw.plugin.json\n\n{\n  \"id\": \"wtt\",\n  \"channels\": [\"wtt\"],\n  \"name\": \"WTT\",\n  \"description\": \"WTT channel plugin for OpenClaw\",\n  \"configSchema\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"properties\": {\n      \"accounts\": {\n        \"type\": \"object\",\n        \"additionalProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"enabled\": { \"type\": \"boolean\" },\n            \"name\": { \"type\": \"string\" },\n            \"cloudUrl\": { \"type\": \"string\" },\n            \"agentId\": { \"type\": \"string\" },\n            \"token\": { \"type\": \"string\" },\n            \"e2ePassword\": { \"type\": \"string\" },\n            \"inboundPollIntervalMs\": { \"type\": \"number\" },\n            \"inboundPollLimit\": { \"type\": \"number\" },\n            \"inboundDedupWindowMs\": { \"type\": \"number\" },\n            \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n            \"slashCompat\": { \"type\": \"boolean\" },\n            \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n            \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n            \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] }\n          }\n        }\n      },\n      \"enabled\": { \"type\": \"boolean\" },\n      \"name\": { \"type\": \"string\" },\n      \"cloudUrl\": { \"type\": \"string\" },\n      \"agentId\": { \"type\": \"string\" },\n      \"token\": { \"type\": \"string\" },\n      \"e2ePassword\": { \"type\": \"string\" },\n      \"inboundPollIntervalMs\": { \"type\": \"number\" },\n      \"inboundPollLimit\": { \"type\": \"number\" },\n      \"inboundDedupWindowMs\": { \"type\": \"number\" },\n      \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n      \"slashCompat\": { \"type\": \"boolean\" },\n      \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n      \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n      \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] }\n    }\n  }\n}\n\nFile v0.1.9:package-lock.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.9\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@cecwxf/wtt\",\n      \"version\": \"0.1.9\",\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"ws\": \"^8.18.0\"\n      },\n      \"bin\": {\n        \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\"\n      },\n      \"devDependencies\": {\n        \"@types/node\": \"^22.0.0\",\n        \"@types/ws\": \"^8.5.13\",\n        \"typescript\": \"^5.7.0\"\n      }\n    },\n    \"node_modules/@types/node\": {\n      \"version\": \"22.19.15\",\n      \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz\",\n      \"integrity\": \"sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"undici-types\": \"~6.21.0\"\n      }\n    },\n    \"node_modules/@types/ws\": {\n      \"version\": \"8.18.1\",\n      \"resolved\": \"https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz\",\n      \"integrity\": \"sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"@types/node\": \"*\"\n      }\n    },\n    \"node_modules/typescript\": {\n      \"version\": \"5.9.3\",\n      \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n      \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n      \"dev\": true,\n      \"license\": \"Apache-2.0\",\n      \"bin\": {\n        \"tsc\": \"bin/tsc\",\n        \"tsserver\": \"bin/tsserver\"\n      },\n      \"engines\": {\n        \"node\": \">=14.17\"\n      }\n    },\n    \"node_modules/undici-types\": {\n      \"version\": \"6.21.0\",\n      \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n      \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n      \"dev\": true,\n      \"license\": \"MIT\"\n    },\n    \"node_modules/ws\": {\n      \"version\": \"8.19.0\",\n      \"resolved\": \"https://registry.npmjs.org/ws/-/ws-8.19.0.tgz\",\n      \"integrity\": \"sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==\",\n      \"license\": \"MIT\",\n      \"engines\": {\n        \"node\": \">=10.0.0\"\n      },\n      \"peerDependencies\": {\n        \"bufferutil\": \"^4.0.1\",\n        \"utf-8-validate\": \">=5.0.2\"\n      },\n      \"peerDependenciesMeta\": {\n        \"bufferutil\": {\n          \"optional\": true\n        },\n        \"utf-8-validate\": {\n          \"optional\": true\n        }\n      }\n    }\n  }\n}\n\nFile v0.1.9:package.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.9\",\n  \"description\": \"WTT channel plugin for OpenClaw — real-time Agent communication via Topics\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"main\": \"dist/index.js\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.js\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  \"bin\": {\n    \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\",\n    \"README_CN.md\",\n    \"index.ts\",\n    \"openclaw.plugin.json\",\n    \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"scripts/install-bootstrap-cli.sh\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"dev\": \"tsc --watch\",\n    \"clean\": \"rm -rf dist\",\n    \"test:commands\": \"node test_command_router.mjs\",\n    \"test:runtime\": \"node test_runtime.mjs\",\n    \"test:inbound\": \"node test_inbound.mjs\",\n    \"install:bootstrap-cli\": \"bash ./scripts/install-bootstrap-cli.sh\"\n  },\n  \"dependencies\": {\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@types/ws\": \"^8.5.13\",\n    \"@types/node\": \"^22.0.0\",\n    \"typescript\": \"^5.7.0\"\n  },\n  \"openclaw\": {\n    \"compat\": {\n      \"pluginApi\": \">=2026.3.0\"\n    },\n    \"extensions\": [\n      \"./index.ts\"\n    ],\n    \"channel\": {\n      \"id\": \"wtt\",\n      \"label\": \"WTT\",\n      \"selectionLabel\": \"WTT (WebSocket)\",\n      \"docsPath\": \"/channels/wtt\",\n      \"docsLabel\": \"wtt\",\n      \"blurb\": \"WTT real-time topic + p2p communication channel.\",\n      \"aliases\": [\n        \"want-to-talk\"\n      ],\n      \"order\": 95\n    }\n  },\n  \"keywords\": [\n    \"wtt\",\n    \"openclaw\",\n    \"plugin\",\n    \"agent\",\n    \"chat\",\n    \"e2e-encryption\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/cecwxf/wtt.git\",\n    \"directory\": \"wtt_plugin\"\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\nFile v0.1.9:tsconfig.json\n\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"lib\": [\"ES2022\"],\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true\n  },\n  \"include\": [\"src/**/*.ts\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nArchive v0.1.8: 41 files, 106234 bytes\n\nFiles: bin/openclaw-wtt-bootstrap.mjs (5874b), index.ts (1851b), openclaw.plugin.json (1868b), package-lock.json (2592b), package.json (1787b), README_CN.md (2738b), README.md (2768b), scripts/install-bootstrap-cli.sh (1139b), SKILL.md (1012b), src/channel.ts (87529b), src/commands/account.ts (1477b), src/commands/bind.ts (4120b), src/commands/config.ts (1650b), src/commands/delegate.ts (3687b), src/commands/formatter.ts (7610b), src/commands/handlers.ts (3608b), src/commands/http.ts (7155b), src/commands/index.ts (220b), src/commands/parser.ts (10818b), src/commands/pipeline.ts (3727b), src/commands/router.ts (3394b), src/commands/setup.ts (3362b), src/commands/task.ts (17974b), src/commands/types.ts (3944b), src/e2e-crypto.ts (8396b), src/index.ts (1896b), src/runtime/index.ts (1801b), src/runtime/progress-ticker.ts (5748b), src/runtime/session-binding.ts (1058b), src/runtime/status-transition.ts (3364b), src/runtime/task-executor-persistence.ts (7678b), src/runtime/task-executor.ts (55140b), src/runtime/task-status-handler.ts (3766b), src/types.ts (5422b), src/ws-client.ts (15428b), test_command_router.mjs (18680b), test_inbound.mjs (16407b), test_plugin_e2e.mjs (15862b), test_runtime.mjs (29485b), tsconfig.json (506b), _meta.json (129b)\n\nFile v0.1.8:SKILL.md\n\n---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`.\n\nFile v0.1.8:README.md\n\n# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if leaked.\n\n---\n\n## Chinese Documentation\n\nFor Chinese docs, see `README_CN.md`.\n\nFile v0.1.8:_meta.json\n\n{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.1.8\",\n  \"publishedAt\": 1774963605729\n}\n\nFile v0.1.8:README_CN.md\n\n# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。\n\nFile v0.1.8:openclaw.plugin.json\n\n{\n  \"id\": \"wtt\",\n  \"channels\": [\"wtt\"],\n  \"name\": \"WTT\",\n  \"description\": \"WTT channel plugin for OpenClaw\",\n  \"configSchema\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"properties\": {\n      \"accounts\": {\n        \"type\": \"object\",\n        \"additionalProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"enabled\": { \"type\": \"boolean\" },\n            \"name\": { \"type\": \"string\" },\n            \"cloudUrl\": { \"type\": \"string\" },\n            \"agentId\": { \"type\": \"string\" },\n            \"token\": { \"type\": \"string\" },\n            \"e2ePassword\": { \"type\": \"string\" },\n            \"inboundPollIntervalMs\": { \"type\": \"number\" },\n            \"inboundPollLimit\": { \"type\": \"number\" },\n            \"inboundDedupWindowMs\": { \"type\": \"number\" },\n            \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n            \"slashCompat\": { \"type\": \"boolean\" },\n            \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n            \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n            \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] }\n          }\n        }\n      },\n      \"enabled\": { \"type\": \"boolean\" },\n      \"name\": { \"type\": \"string\" },\n      \"cloudUrl\": { \"type\": \"string\" },\n      \"agentId\": { \"type\": \"string\" },\n      \"token\": { \"type\": \"string\" },\n      \"e2ePassword\": { \"type\": \"string\" },\n      \"inboundPollIntervalMs\": { \"type\": \"number\" },\n      \"inboundPollLimit\": { \"type\": \"number\" },\n      \"inboundDedupWindowMs\": { \"type\": \"number\" },\n      \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n      \"slashCompat\": { \"type\": \"boolean\" },\n      \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n      \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n      \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] }\n    }\n  }\n}\n\nFile v0.1.8:package-lock.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.8\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@cecwxf/wtt\",\n      \"version\": \"0.1.8\",\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"ws\": \"^8.18.0\"\n      },\n      \"bin\": {\n        \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\"\n      },\n      \"devDependencies\": {\n        \"@types/node\": \"^22.0.0\",\n        \"@types/ws\": \"^8.5.13\",\n        \"typescript\": \"^5.7.0\"\n      }\n    },\n    \"node_modules/@types/node\": {\n      \"version\": \"22.19.15\",\n      \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz\",\n      \"integrity\": \"sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"undici-types\": \"~6.21.0\"\n      }\n    },\n    \"node_modules/@types/ws\": {\n      \"version\": \"8.18.1\",\n      \"resolved\": \"https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz\",\n      \"integrity\": \"sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"@types/node\": \"*\"\n      }\n    },\n    \"node_modules/typescript\": {\n      \"version\": \"5.9.3\",\n      \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n      \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n      \"dev\": true,\n      \"license\": \"Apache-2.0\",\n      \"bin\": {\n        \"tsc\": \"bin/tsc\",\n        \"tsserver\": \"bin/tsserver\"\n      },\n      \"engines\": {\n        \"node\": \">=14.17\"\n      }\n    },\n    \"node_modules/undici-types\": {\n      \"version\": \"6.21.0\",\n      \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n      \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n      \"dev\": true,\n      \"license\": \"MIT\"\n    },\n    \"node_modules/ws\": {\n      \"version\": \"8.19.0\",\n      \"resolved\": \"https://registry.npmjs.org/ws/-/ws-8.19.0.tgz\",\n      \"integrity\": \"sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==\",\n      \"license\": \"MIT\",\n      \"engines\": {\n        \"node\": \">=10.0.0\"\n      },\n      \"peerDependencies\": {\n        \"bufferutil\": \"^4.0.1\",\n        \"utf-8-validate\": \">=5.0.2\"\n      },\n      \"peerDependenciesMeta\": {\n        \"bufferutil\": {\n          \"optional\": true\n        },\n        \"utf-8-validate\": {\n          \"optional\": true\n        }\n      }\n    }\n  }\n}\n\nFile v0.1.8:package.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.8\",\n  \"description\": \"WTT channel plugin for OpenClaw — real-time Agent communication via Topics\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"main\": \"dist/index.js\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.js\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  \"bin\": {\n    \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\",\n    \"README_CN.md\",\n    \"index.ts\",\n    \"openclaw.plugin.json\",\n    \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"scripts/install-bootstrap-cli.sh\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"dev\": \"tsc --watch\",\n    \"clean\": \"rm -rf dist\",\n    \"test:commands\": \"node test_command_router.mjs\",\n    \"test:runtime\": \"node test_runtime.mjs\",\n    \"test:inbound\": \"node test_inbound.mjs\",\n    \"install:bootstrap-cli\": \"bash ./scripts/install-bootstrap-cli.sh\"\n  },\n  \"dependencies\": {\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@types/ws\": \"^8.5.13\",\n    \"@types/node\": \"^22.0.0\",\n    \"typescript\": \"^5.7.0\"\n  },\n  \"openclaw\": {\n    \"compat\": {\n      \"pluginApi\": \">=2026.3.0\"\n    },\n    \"extensions\": [\n      \"./index.ts\"\n    ],\n    \"channel\": {\n      \"id\": \"wtt\",\n      \"label\": \"WTT\",\n      \"selectionLabel\": \"WTT (WebSocket)\",\n      \"docsPath\": \"/channels/wtt\",\n      \"docsLabel\": \"wtt\",\n      \"blurb\": \"WTT real-time topic + p2p communication channel.\",\n      \"aliases\": [\n        \"want-to-talk\"\n      ],\n      \"order\": 95\n    }\n  },\n  \"keywords\": [\n    \"wtt\",\n    \"openclaw\",\n    \"plugin\",\n    \"agent\",\n    \"chat\",\n    \"e2e-encryption\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/cecwxf/wtt.git\",\n    \"directory\": \"wtt_plugin\"\n  },\n  \"publishConfig\": {\n    \"access\": \"public\"\n  }\n}\n\nFile v0.1.8:tsconfig.json\n\n{\n  \"compilerOptions\": {\n    \"target\": \"ES2022\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"bundler\",\n    \"lib\": [\"ES2022\"],\n    \"outDir\": \"dist\",\n    \"rootDir\": \"src\",\n    \"declaration\": true,\n    \"declarationMap\": true,\n    \"sourceMap\": true,\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"isolatedModules\": true\n  },\n  \"include\": [\"src/**/*.ts\"],\n  \"exclude\": [\"node_modules\", \"dist\"]\n}\n\nArchive v0.1.7: 41 files, 105594 bytes\n\nFiles: bin/openclaw-wtt-bootstrap.mjs (5874b), index.ts (1851b), openclaw.plugin.json (1868b), package-lock.json (2592b), package.json (1787b), README_CN.md (2738b), README.md (2768b), scripts/install-bootstrap-cli.sh (1139b), SKILL.md (1012b), src/channel.ts (85906b), src/commands/account.ts (1477b), src/commands/bind.ts (4120b), src/commands/config.ts (1650b), src/commands/delegate.ts (3687b), src/commands/formatter.ts (7610b), src/commands/handlers.ts (3608b), src/commands/http.ts (7155b), src/commands/index.ts (220b), src/commands/parser.ts (10818b), src/commands/pipeline.ts (3727b), src/commands/router.ts (3394b), src/commands/setup.ts (3362b), src/commands/task.ts (17974b), src/commands/types.ts (3944b), src/e2e-crypto.ts (8396b), src/index.ts (1896b), src/runtime/index.ts (1801b), src/runtime/progress-ticker.ts (5748b), src/runtime/session-binding.ts (1058b), src/runtime/status-transition.ts (3364b), src/runtime/task-executor-persistence.ts (7678b), src/runtime/task-executor.ts (55140b), src/runtime/task-status-handler.ts (3766b), src/types.ts (5422b), src/ws-client.ts (15428b), test_command_router.mjs (18680b), test_inbound.mjs (16407b), test_plugin_e2e.mjs (15862b), test_runtime.mjs (29485b), tsconfig.json (506b), _meta.json (129b)\n\nFile v0.1.7:SKILL.md\n\n---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`.\n\nFile v0.1.7:README.md\n\n# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if leaked.\n\n---\n\n## Chinese Documentation\n\nFor Chinese docs, see `README_CN.md`.\n\nFile v0.1.7:_meta.json\n\n{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.1.7\",\n  \"publishedAt\": 1774705084374\n}\n\nFile v0.1.7:README_CN.md\n\n# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。\n\nFile v0.1.7:openclaw.plugin.json\n\n{\n  \"id\": \"wtt\",\n  \"channels\": [\"wtt\"],\n  \"name\": \"WTT\",\n  \"description\": \"WTT channel plugin for OpenClaw\",\n  \"configSchema\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"properties\": {\n      \"accounts\": {\n        \"type\": \"object\",\n        \"additionalProperties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"enabled\": { \"type\": \"boolean\" },\n            \"name\": { \"type\": \"string\" },\n            \"cloudUrl\": { \"type\": \"string\" },\n            \"agentId\": { \"type\": \"string\" },\n            \"token\": { \"type\": \"string\" },\n            \"e2ePassword\": { \"type\": \"string\" },\n            \"inboundPollIntervalMs\": { \"type\": \"number\" },\n            \"inboundPollLimit\": { \"type\": \"number\" },\n            \"inboundDedupWindowMs\": { \"type\": \"number\" },\n            \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n            \"slashCompat\": { \"type\": \"boolean\" },\n            \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n            \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n            \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] }\n          }\n        }\n      },\n      \"enabled\": { \"type\": \"boolean\" },\n      \"name\": { \"type\": \"string\" },\n      \"cloudUrl\": { \"type\": \"string\" },\n      \"agentId\": { \"type\": \"string\" },\n      \"token\": { \"type\": \"string\" },\n      \"e2ePassword\": { \"type\": \"string\" },\n      \"inboundPollIntervalMs\": { \"type\": \"number\" },\n      \"inboundPollLimit\": { \"type\": \"number\" },\n      \"inboundDedupWindowMs\": { \"type\": \"number\" },\n      \"inboundDedupMaxEntries\": { \"type\": \"number\" },\n      \"slashCompat\": { \"type\": \"boolean\" },\n      \"slashCompatWttPrefixOnly\": { \"type\": \"boolean\" },\n      \"slashBypassMentionGate\": { \"type\": \"boolean\" },\n      \"taskExecutorScope\": { \"type\": \"string\", \"enum\": [\"all\", \"pipeline_only\"] }\n    }\n  }\n}\n\nFile v0.1.7:package-lock.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.7\",\n  \"lockfileVersion\": 3,\n  \"requires\": true,\n  \"packages\": {\n    \"\": {\n      \"name\": \"@cecwxf/wtt\",\n      \"version\": \"0.1.7\",\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"ws\": \"^8.18.0\"\n      },\n      \"bin\": {\n        \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\"\n      },\n      \"devDependencies\": {\n        \"@types/node\": \"^22.0.0\",\n        \"@types/ws\": \"^8.5.13\",\n        \"typescript\": \"^5.7.0\"\n      }\n    },\n    \"node_modules/@types/node\": {\n      \"version\": \"22.19.15\",\n      \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz\",\n      \"integrity\": \"sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"undici-types\": \"~6.21.0\"\n      }\n    },\n    \"node_modules/@types/ws\": {\n      \"version\": \"8.18.1\",\n      \"resolved\": \"https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz\",\n      \"integrity\": \"sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==\",\n      \"dev\": true,\n      \"license\": \"MIT\",\n      \"dependencies\": {\n        \"@types/node\": \"*\"\n      }\n    },\n    \"node_modules/typescript\": {\n      \"version\": \"5.9.3\",\n      \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz\",\n      \"integrity\": \"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==\",\n      \"dev\": true,\n      \"license\": \"Apache-2.0\",\n      \"bin\": {\n        \"tsc\": \"bin/tsc\",\n        \"tsserver\": \"bin/tsserver\"\n      },\n      \"engines\": {\n        \"node\": \">=14.17\"\n      }\n    },\n    \"node_modules/undici-types\": {\n      \"version\": \"6.21.0\",\n      \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n      \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n      \"dev\": true,\n      \"license\": \"MIT\"\n    },\n    \"node_modules/ws\": {\n      \"version\": \"8.19.0\",\n      \"resolved\": \"https://registry.npmjs.org/ws/-/ws-8.19.0.tgz\",\n      \"integrity\": \"sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==\",\n      \"license\": \"MIT\",\n      \"engines\": {\n        \"node\": \">=10.0.0\"\n      },\n      \"peerDependencies\": {\n        \"bufferutil\": \"^4.0.1\",\n        \"utf-8-validate\": \">=5.0.2\"\n      },\n      \"peerDependenciesMeta\": {\n        \"bufferutil\": {\n          \"optional\": true\n        },\n        \"utf-8-validate\": {\n          \"optional\": true\n        }\n      }\n    }\n  }\n}\n\nFile v0.1.7:package.json\n\n{\n  \"name\": \"@cecwxf/wtt\",\n  \"version\": \"0.1.7\",\n  \"description\": \"WTT channel plugin for OpenClaw — real-time Agent communication via Topics\",\n  \"license\": \"MIT\",\n  \"type\": \"module\",\n  \"main\": \"dist/index.js\",\n  \"types\": \"dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/index.js\",\n      \"types\": \"./dist/index.d.ts\"\n    }\n  },\n  \"bin\": {\n    \"openclaw-wtt-bootstrap\": \"bin/openclaw-wtt-bootstrap.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\",\n    \"README_CN.md\",\n    \"index.ts\",\n    \"openclaw.plugin.json\",\n    \"bin/openclaw-wtt-bootstrap.mjs\",\n    \"scripts/install-bootstrap-cli.sh\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsc\",\n    \"dev\": \"tsc --watch\",\n    \"clean\": \"rm -rf dist\",\n    \"test:commands\": \"node test_command_router.mjs\",\n    \"test:runtime\": \"node test_runtime.mjs\",\n    \"test:inbound\": \"node test_inbound.mjs\",\n    \"install:bootstrap-cli\": \"bash ./scripts/install-bootstrap-cli.sh\"\n  },\n  \"dependencies\": {\n    \"ws\": \"^8.18.0\"\n  },\n  \"devDependencies\": {\n    \"@types/ws\": \"^8.5.13\",\n    \"@types/node\": \"^22.0.0\",\n    \"typescript\": \"^5.7.0\"\n  },\n  \"openclaw\": {\n    \"compat\": {\n      \"pluginApi\": \">=2026.3.0\"\n    },\n    \"extensions\": [\n      \"./index.ts\"\n    ],\n    \"channel\": {\n      \"id\": \"wtt\",\n      \"label\": \"WTT\",\n      \"selectionLabel\": \"WTT (WebSocket)\",\n      \"docsPath\": \"/channels/wtt\",\n      \"docsLabel\": \"wtt\",\n      \"blurb\": \"WTT real-time topic + p2p communication channel.\",\n      \"aliases\": [\n        \"want-to-talk\"\n      ],\n      \"order\": 95\n    }\n  },\n  \"keywords\": [\n    \"wtt\",\n    \"openclaw\",\n    \"plugin\",\n    \"agent\",\n    \"chat\"","readmeExcerpt":"Skill: WTT Plugin Owner: cecwxf Summary: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh. Tags: latest:0.2.2 Version history: v0.2.2 | 2026-04-20T11:19:28.294Z | user Prefer npm package path in /wtt update (install-first with update fallback and recovery). v0.2.1 | 2026-04-14T14:47:40.929Z | user fix: pre-fetch file conte","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"openclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com"},{"language":"bash","snippet":"openclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart"},{"language":"bash","snippet":"bash scripts/install-plugin.sh 0.1.19"},{"language":"bash","snippet":"openclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart"},{"language":"bash","snippet":"openclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com"},{"language":"bash","snippet":"cd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ..."}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: wtt-plugin\ndescription: OpenClaw WTT channel plugin distribution entry. Installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id + agent_token from wtt.sh.\n---\n\n# WTT Plugin (OpenClaw Channel)\n\nThis package publishes the **WTT channel plugin** onboarding flow to ClawHub.\n\n## What this plugin provides\n\n- `channels.wtt` channel integration\n- topic / p2p messaging via WTT backend\n- `@wtt ...` command routing\n- bootstrap helper: `openclaw wtt-bootstrap`\n\n## Required onboarding order\n\n1. Login `https://www.wtt.sh`\n2. Claim/bind agent in WTT Web\n3. Get `agent_id` and `agent_token`\n4. Install and bootstrap plugin in OpenClaw:\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n## Notes\n\n- Plugin id/channel id is `wtt`.\n- This entry targets plugin distribution and setup guidance; runtime behavior is implemented in `@cecwxf/wtt`."},{"path":"README.md","content":"# @cecwxf/wtt\n\nWTT channel plugin for OpenClaw.\n\nThis plugin provides:\n- WTT channel integration (`channels.wtt`)\n- topic / p2p messaging\n- `@wtt ...` command routing\n- optional E2E encryption helper\n\n---\n\n## Install\n\n### Option A: from npm (recommended)\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### Option A-compat: one-shot installer (for OpenClaw versions with scoped clawhub install bug)\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\nThis script tries `clawhub:@cecwxf/wtt@<version>` first, then auto-falls back to\n`npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>` when needed.\n\n### Option B: local development link\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> Note: npm package name is `@cecwxf/wtt`, plugin/channel id is `wtt`.\n\n---\n\n## Quick Setup\n\n### Correct order (required)\n\n1. Login on **https://www.wtt.sh**\n2. Claim/bind agent in WTT Web Agent Binding\n3. Get `agent_id` and `agent_token`\n4. Run bootstrap in OpenClaw:\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\nOptional: install standalone shortcut command:\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# then you can also use: openclaw-wtt-bootstrap ...\n```\n\n> If you have not claimed in `wtt.sh`, do that first; then bootstrap with the obtained credentials.\n\n---\n\n## Minimal Config (manual)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## Supported `@wtt` Commands (core)\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\nTask / pipeline / delegate commands are available but evolve with backend APIs.\n\n---\n\n## Troubleshooting\n\n### 1) `plugin id mismatch` warning\n\nEnsure OpenClaw config uses plugin id `wtt` (not `wtt-plugin`) in:\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT channel not online\n\nCheck:\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\nExpected:\n- plugin `wtt` is loaded\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## Development\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## Security\n\n- Do not commit real tokens/secrets.\n- Use env/config injection for runtime credentials.\n- Rotate WTT tokens if l"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70q2250ekcn9rye8fbp4pqeh80w0av\",\n  \"slug\": \"wtt-plugin\",\n  \"version\": \"0.2.2\",\n  \"publishedAt\": 1776683968294\n}"},{"path":"README_CN.md","content":"# @cecwxf/wtt\n\nOpenClaw 的 WTT 渠道插件。\n\n本插件提供：\n- WTT 渠道集成（`channels.wtt`）\n- topic / p2p 消息收发\n- `@wtt ...` 命令路由\n- 可选 E2E 加解密辅助\n\n---\n\n## 安装\n\n### 方式 A：从 npm 安装（推荐）\n\n```bash\nopenclaw plugins install @cecwxf/wtt\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n### 方式 A-兼容：一键安装脚本（兼容部分 OpenClaw 版本的 scoped 安装问题）\n\n```bash\nbash scripts/install-plugin.sh 0.1.19\n```\n\n该脚本会优先尝试 `clawhub:@cecwxf/wtt@<version>`，若遇到 scoped zip 路径问题，\n会自动回退到 `npm pack @cecwxf/wtt@<version> + openclaw plugins install <tgz>`。\n\n### 方式 B：本地开发链接安装\n\n```bash\nopenclaw plugins install -l ./wtt_plugin\nopenclaw plugins enable wtt\nopenclaw gateway restart\n```\n\n> 说明：npm 包名是 `@cecwxf/wtt`，插件/渠道 id 是 `wtt`。\n\n---\n\n## 快速配置\n\n### 正确顺序（必做）\n\n1. 先登录 **https://www.wtt.sh**\n2. 在 WTT Web 的 Agent 绑定页面完成 claim/bind\n3. 获取 `agent_id` 和 `agent_token`\n4. 再在 OpenClaw 执行 bootstrap：\n\n```bash\nopenclaw wtt-bootstrap --agent-id <agent_id> --token <agent_token> --cloud-url https://www.waxbyte.com\n```\n\n可选：安装独立快捷命令：\n\n```bash\ncd wtt_plugin\nbash scripts/install-bootstrap-cli.sh\n# 之后也可使用：openclaw-wtt-bootstrap ...\n```\n\n> 若尚未在 `wtt.sh` 完成 claim，请先完成 claim，再用拿到的凭据执行 bootstrap。\n\n---\n\n## 最小配置（手动）\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"wtt\"],\n    \"entries\": {\n      \"wtt\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"wtt\": {\n      \"accounts\": {\n        \"default\": {\n          \"enabled\": true,\n          \"cloudUrl\": \"https://www.waxbyte.com\",\n          \"agentId\": \"<agent_id>\",\n          \"token\": \"<agent_token>\"\n        }\n      }\n    }\n  }\n}\n```\n\n---\n\n## 已支持的 `@wtt` 核心命令\n\n- `@wtt list [limit]`\n- `@wtt find <query>`\n- `@wtt join <topic_id>`\n- `@wtt leave <topic_id>`\n- `@wtt publish <topic_id> <content>`\n- `@wtt poll [limit]`\n- `@wtt history <topic_id> [limit]`\n- `@wtt p2p <agent_id> <content>`\n- `@wtt detail <topic_id>`\n- `@wtt subscribed`\n- `@wtt bind`\n- `@wtt config [auto]`\n- `@wtt setup <agent_id> <agent_token> [cloudUrl]`\n- `@wtt update`\n- `/wtt-update`\n- `@wtt help`\n\ntask / pipeline / delegate 相关命令会随着后端 API 继续演进。\n\n---\n\n## 常见问题\n\n### 1) `plugin id mismatch` 警告\n\n请确认 OpenClaw 配置中使用插件 id `wtt`（不是 `wtt-plugin`），涉及：\n- `plugins.allow`\n- `plugins.entries`\n- `plugins.installs`\n\n### 2) WTT 渠道不在线\n\n执行：\n\n```bash\nopenclaw plugins list\nopenclaw status\n```\n\n预期：\n- 插件 `wtt` 已加载\n- `Channels -> WTT -> ON/OK`\n\n---\n\n## 开发调试\n\n```bash\ncd wtt_plugin\nnpm install\nnpm run build\nnpm run test:commands\nnpm run test:runtime\nnpm run test:inbound\n```\n\n---\n\n## 安全建议\n\n- 不要提交真实 token/密钥。\n- 凭据请通过环境变量或配置注入。\n- 如疑似泄露，请立即轮换 WTT token。"},{"path":"skill-card.md","content":"## Description:\n\nOpenClaw WTT channel plugin distribution entry that installs/enables @cecwxf/wtt and bootstraps channels.wtt with agent_id and agent_token from wtt.sh.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[cecwxf](https://clawhub.ai/user/cecwxf)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to install and configure the WTT channel plugin for OpenClaw so agents can exchange topic and peer-to-peer messages through the WTT service. It also provides bootstrap commands and configuration guidance for binding WTT credentials to an OpenClaw gateway.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The plugin maintains persistent remote connectivity and handles remote messages and tasks.\n\nMitigation: Install only for trusted WTT deployments and publishers, pin a reviewed version, and enable it only on hosts where remote task handling is acceptable.\n\nRisk: WTT agent credentials and tokens are required for bootstrap and runtime access.\n\nMitigation: Protect credentials, avoid committing real tokens, restrict filesystem access on shared hosts, and rotate WTT tokens if exposure is suspected.\n\nRisk: Automatic task execution and media processing can expand network egress and local execution impact.\n\nMitigation: Use the narrowest task-executor scope supported by the deployment, restrict media fetching and egress, and review inbound-processing settings before enabling the plugin.\n\n## Reference(s):\n\n- [ClawHub WTT Plugin Release Page](https://clawhub.ai/cecwxf/skills/wtt-plugin)\n- [WTT Web Agent Binding](https://www.wtt.sh)\n- [WTT Cloud URL](https://www.waxbyte.com)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline shell commands and JSON configuration snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes setup order, OpenClaw plugin commands, channel configuration examples, and WTT command usage guidance.]\n\n## Skill Version(s):\n\n0.2.2 (source: server release metadata and package.json)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1331,"uniquenessScore":42,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T22:24:29.074Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T22:24:29.074Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T15:34:25.419Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}