From 2e8fac3fc7100d2338378b24967e07321743a9c3 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sat, 2 May 2026 18:32:03 -0700 Subject: [PATCH] chore(fixtures): refresh kitchen sink metadata reports (#27) * chore(fixtures): refresh kitchen sink metadata reports * fix(ci): harden kitchen sink surface checks * fix(ci): classify kitchen sink isolated probes * fix(ci): pin merged plugin inspector source --- .github/workflows/check.yml | 2 +- .github/workflows/openclaw-ref-compat.yml | 2 +- crabpot.ci-policy.json | 14 + plugins/kitchen-sink | 2 +- reports/crabpot-ci-policy.json | 83 +- reports/crabpot-ci-policy.md | 72 +- reports/crabpot-ci-summary.json | 213 +- reports/crabpot-ci-summary.md | 112 +- reports/crabpot-issues.md | 3477 ++- reports/crabpot-report.json | 19878 +++++++++++++----- reports/crabpot-report.md | 4266 ++-- scripts/check-openclaw-plugin-contracts.mjs | 5 +- scripts/generate-report.mjs | 9 +- scripts/manifest-lib.mjs | 9 +- scripts/plugin-inspector-source.mjs | 2 +- scripts/sync-fixtures.mjs | 14 +- test/ci-policy.test.mjs | 22 + test/ci-workflows.test.mjs | 4 +- test/cold-import-readiness.test.mjs | 4 +- test/fixture-inspection.test.mjs | 14 +- test/manifest.test.mjs | 10 + test/report.test.mjs | 8 +- 22 files changed, 17969 insertions(+), 10253 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 1c10ff6..2b6af30 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -197,7 +197,7 @@ jobs: - name: Reconcile compatibility report with runtime evidence if: always() continue-on-error: true - run: node scripts/generate-report.mjs --openclaw ./openclaw --execution-results reports/crabpot-execution-results.json + run: node scripts/generate-report.mjs --openclaw ./openclaw --execution-results reports/crabpot-execution-results.json --fixture-set "${{ matrix.id }}" - name: Run execution policy id: policy if: always() diff --git a/.github/workflows/openclaw-ref-compat.yml b/.github/workflows/openclaw-ref-compat.yml index d050ce2..cbe2031 100644 --- a/.github/workflows/openclaw-ref-compat.yml +++ b/.github/workflows/openclaw-ref-compat.yml @@ -308,7 +308,7 @@ jobs: - name: Reconcile compatibility report with runtime evidence if: always() continue-on-error: true - run: node scripts/generate-report.mjs --openclaw ./openclaw --execution-results reports/crabpot-execution-results.json + run: node scripts/generate-report.mjs --openclaw ./openclaw --execution-results reports/crabpot-execution-results.json --fixture-set "${{ matrix.id }}" - name: Run execution policy id: policy diff --git a/crabpot.ci-policy.json b/crabpot.ci-policy.json index 915399f..036b16b 100644 --- a/crabpot.ci-policy.json +++ b/crabpot.ci-policy.json @@ -29,6 +29,20 @@ "reasonIncludes": "live network access", "decision": "allowed-blocked", "until": "network-capability harness lands" + }, + { + "id": "generated-surface-hook-stubs", + "seam": "*", + "reasonIncludes": "captured hook has no callable handler", + "decision": "allowed-blocked", + "until": "generated surface runtime harness lands" + }, + { + "id": "generated-surface-registration-stubs", + "seam": "*", + "reasonIncludes": "captured registration has no supported callable probe", + "decision": "allowed-blocked", + "until": "generated surface runtime harness lands" } ], "expectedWarnings": [ diff --git a/plugins/kitchen-sink b/plugins/kitchen-sink index 8944991..9989019 160000 --- a/plugins/kitchen-sink +++ b/plugins/kitchen-sink @@ -1 +1 @@ -Subproject commit 89449910b4dfa70a09d5d1e421037f88ceb8589b +Subproject commit 998901973d5ce083764a77861a4839f4f184aaa3 diff --git a/reports/crabpot-ci-policy.json b/reports/crabpot-ci-policy.json index c722a02..77b0ec7 100644 --- a/reports/crabpot-ci-policy.json +++ b/reports/crabpot-ci-policy.json @@ -3,10 +3,11 @@ "status": "pass", "strict": false, "policy": { - "allowedBlocked": 4, + "allowedBlocked": 6, "expectedWarnings": 1, "fixtureSets": [ "build", + "openclaw-beta", "sdk-alias", "side-effect-review", "smoke" @@ -28,21 +29,12 @@ { "id": "compatibility-report.live-p0-issues", "action": "warn", - "message": "13 live P0 issues tracked", + "message": "4 live P0 issues tracked", "evidence": [ - "bluebubbles:sdk-export-missing:untracked", "clawmetry:sdk-export-missing:untracked", - "diagnostics-otel:sdk-export-missing:untracked", - "feishu:sdk-export-missing:untracked", "honcho:sdk-export-missing:untracked", - "lobster:sdk-export-missing:untracked", "matrix:sdk-export-missing:untracked", - "msteams:sdk-export-missing:untracked", - "nextcloud-talk:sdk-export-missing:untracked", - "nostr:sdk-export-missing:untracked", - "voice-call:sdk-export-missing:untracked", - "yuanbao:sdk-export-missing:untracked", - "zalo:sdk-export-missing:untracked" + "yuanbao:sdk-export-missing:untracked" ] }, { @@ -260,7 +252,7 @@ { "id": "compatibility-report.deprecation-warnings", "action": "pass", - "message": "33 deprecated compat seams tracked", + "message": "40 deprecated compat seams tracked", "evidence": [ "a2a-gateway:legacy-root-sdk-import", "agentchat:channel-env-vars", @@ -271,6 +263,8 @@ "connectclaw:legacy-before-agent-start", "connectclaw:legacy-root-sdk-import", "dingtalk-connector:legacy-root-sdk-import", + "discord:channel-env-vars", + "feishu:channel-env-vars", "hasdata:provider-auth-env-vars", "honcho:legacy-before-agent-start", "honcho:legacy-root-sdk-import", @@ -284,26 +278,30 @@ "memos-cloud:legacy-before-agent-start", "memu-engine:legacy-root-sdk-import", "mocrane-wecom:legacy-root-sdk-import", + "msteams:channel-env-vars", "nemoclaw:legacy-before-agent-start", + "nextcloud-talk:channel-env-vars", + "nostr:channel-env-vars", "openclaw-qqbot:channel-env-vars", "openclaw-telemetry:legacy-before-agent-start", "openclaw-telemetry:legacy-root-sdk-import", "opik-openclaw:legacy-root-sdk-import", "qqbot:legacy-root-sdk-import", - "synology-chat:legacy-root-sdk-import", + "synology-chat:channel-env-vars", "telnyx-sms:channel-env-vars", - "tlon:legacy-root-sdk-import", - "twitch:legacy-root-sdk-import", - "yuanbao:channel-env-vars" + "twitch:channel-env-vars", + "voice-call:channel-env-vars", + "yuanbao:channel-env-vars", + "zalo:channel-env-vars", + "zalouser:channel-env-vars" ] }, { "id": "compatibility-report.inspector-gaps", "action": "pass", - "message": "203 inspector proof gaps tracked", + "message": "182 inspector proof gaps tracked", "evidence": [ "a2a-gateway:registration-capture-gap", - "bluebubbles:registration-capture-gap", "clawmetry:registration-capture-gap", "clawrouter:registration-capture-gap", "codex:registration-capture-gap", @@ -313,8 +311,6 @@ "diagnostics-prometheus:registration-capture-gap", "diffs:registration-capture-gap", "dingtalk-connector:registration-capture-gap", - "discord:registration-capture-gap", - "feishu:registration-capture-gap", "google-meet:registration-capture-gap", "honcho:conversation-access-hook", "honcho:registration-capture-gap", @@ -334,10 +330,8 @@ "memos-cloud:conversation-access-hook", "memos-cloud:registration-capture-gap", "mocrane-wecom:registration-capture-gap", - "msteams:registration-capture-gap", "nemoclaw:before-tool-call-probe", "nemoclaw:registration-capture-gap", - "nextcloud-talk:registration-capture-gap", "nostr:registration-capture-gap", "openclaw-qqbot:registration-capture-gap", "openclaw-telemetry:before-tool-call-probe", @@ -349,16 +343,11 @@ "opik-openclaw:registration-capture-gap", "qqbot:registration-capture-gap", "secureclaw:registration-capture-gap", - "synology-chat:registration-capture-gap", "telnyx-sms:registration-capture-gap", - "tlon:registration-capture-gap", - "twitch:registration-capture-gap", "voice-call:registration-capture-gap", "wecom:before-tool-call-probe", "wecom:registration-capture-gap", "yuanbao:registration-capture-gap", - "zalo:registration-capture-gap", - "zalouser:registration-capture-gap", "a2a-gateway:package-dependency-install-required", "a2a-gateway:package-typescript-source-entrypoint", "a2a-gateway:runtime-tool-capture", @@ -368,8 +357,6 @@ "apify:package-dependency-install-required", "apify:package-typescript-source-entrypoint", "apify:runtime-tool-capture", - "bluebubbles:channel-contract-probe", - "bluebubbles:package-dependency-install-required", "bluebubbles:package-typescript-source-entrypoint", "brave-plugin:package-typescript-source-entrypoint", "clawmetry:package-build-artifact-entrypoint", @@ -394,19 +381,16 @@ "diagnostics-prometheus:package-typescript-source-entrypoint", "diffs:package-dependency-install-required", "diffs:package-typescript-source-entrypoint", - "diffs:runtime-tool-capture", "dingtalk-connector:channel-contract-probe", "dingtalk-connector:package-build-artifact-entrypoint", "dingtalk-connector:package-dependency-install-required", - "discord:channel-contract-probe", + "discord:package-dependency-install-required", "discord:package-typescript-source-entrypoint", "feishu:channel-contract-probe", "feishu:package-dependency-install-required", "feishu:package-typescript-source-entrypoint", - "feishu:runtime-tool-capture", "google-meet:package-dependency-install-required", "google-meet:package-typescript-source-entrypoint", - "google-meet:runtime-tool-capture", "hasdata:package-dependency-install-required", "hasdata:package-typescript-source-entrypoint", "honcho:package-build-artifact-entrypoint", @@ -423,7 +407,6 @@ "llm-trace-phoenix:package-typescript-source-entrypoint", "lobster:package-dependency-install-required", "lobster:package-typescript-source-entrypoint", - "lobster:runtime-tool-capture", "lossless-claw:package-build-artifact-entrypoint", "lossless-claw:package-dependency-install-required", "lossless-claw:runtime-tool-capture", @@ -437,7 +420,6 @@ "mcp-adapter:runtime-tool-capture", "memory-lancedb:package-dependency-install-required", "memory-lancedb:package-typescript-source-entrypoint", - "memory-lancedb:runtime-tool-capture", "memory-tencentdb:package-dependency-install-required", "memory-tencentdb:package-typescript-source-entrypoint", "memory-tencentdb:runtime-tool-capture", @@ -460,7 +442,6 @@ "nostr:package-typescript-source-entrypoint", "openclaw-qqbot:package-dependency-install-required", "openclaw-qqbot:package-typescript-source-entrypoint", - "openclaw-qqbot:runtime-tool-capture", "openclaw-telemetry:package-typescript-source-entrypoint", "openclaw-weixin:channel-contract-probe", "openclaw-weixin:package-dependency-install-required", @@ -481,12 +462,10 @@ "tlon:channel-contract-probe", "tlon:package-dependency-install-required", "tlon:package-typescript-source-entrypoint", - "twitch:channel-contract-probe", "twitch:package-dependency-install-required", "twitch:package-typescript-source-entrypoint", "voice-call:package-dependency-install-required", "voice-call:package-typescript-source-entrypoint", - "voice-call:runtime-tool-capture", "web-search-plus:package-typescript-source-entrypoint", "web-search-plus:runtime-tool-capture", "wecom:channel-contract-probe", @@ -503,18 +482,15 @@ "zalo:package-typescript-source-entrypoint", "zalouser:channel-contract-probe", "zalouser:package-dependency-install-required", - "zalouser:package-typescript-source-entrypoint", - "zalouser:runtime-tool-capture" + "zalouser:package-typescript-source-entrypoint" ] }, { "id": "compatibility-report.p1-issues", "action": "pass", - "message": "71 P1 issues tracked", + "message": "52 P1 issues tracked", "evidence": [ "a2a-gateway:registration-capture-gap", - "bluebubbles:missing-compat-record", - "bluebubbles:registration-capture-gap", "clawmetry:missing-compat-record", "clawmetry:package-npm-pack-entrypoint-missing", "clawmetry:registration-capture-gap", @@ -522,14 +498,10 @@ "codex:registration-capture-gap", "codex-app-server:registration-capture-gap", "connectclaw:registration-capture-gap", - "diagnostics-otel:missing-compat-record", "diagnostics-otel:registration-capture-gap", "diagnostics-prometheus:registration-capture-gap", "diffs:registration-capture-gap", "dingtalk-connector:registration-capture-gap", - "discord:registration-capture-gap", - "feishu:missing-compat-record", - "feishu:registration-capture-gap", "google-meet:registration-capture-gap", "honcho:conversation-access-hook", "honcho:missing-compat-record", @@ -540,7 +512,6 @@ "kitchen-sink:registration-capture-gap", "lightclawbot:registration-capture-gap", "llm-trace-phoenix:conversation-access-hook", - "lobster:missing-compat-record", "lossless-claw:registration-capture-gap", "matrix:missing-compat-record", "matrix:registration-capture-gap", @@ -552,13 +523,8 @@ "memos-cloud:conversation-access-hook", "memos-cloud:registration-capture-gap", "mocrane-wecom:registration-capture-gap", - "msteams:missing-compat-record", - "msteams:registration-capture-gap", "nemoclaw:before-tool-call-probe", "nemoclaw:registration-capture-gap", - "nextcloud-talk:missing-compat-record", - "nextcloud-talk:registration-capture-gap", - "nostr:missing-compat-record", "nostr:registration-capture-gap", "openclaw-qqbot:registration-capture-gap", "openclaw-telemetry:before-tool-call-probe", @@ -570,19 +536,12 @@ "opik-openclaw:registration-capture-gap", "qqbot:registration-capture-gap", "secureclaw:registration-capture-gap", - "synology-chat:registration-capture-gap", "telnyx-sms:registration-capture-gap", - "tlon:registration-capture-gap", - "twitch:registration-capture-gap", - "voice-call:missing-compat-record", "voice-call:registration-capture-gap", "wecom:before-tool-call-probe", "wecom:registration-capture-gap", "yuanbao:missing-compat-record", - "yuanbao:registration-capture-gap", - "zalo:missing-compat-record", - "zalo:registration-capture-gap", - "zalouser:registration-capture-gap" + "yuanbao:registration-capture-gap" ] }, { diff --git a/reports/crabpot-ci-policy.md b/reports/crabpot-ci-policy.md index 25557d9..bdecb5e 100644 --- a/reports/crabpot-ci-policy.md +++ b/reports/crabpot-ci-policy.md @@ -6,42 +6,42 @@ Strict: false ## Summary -| Metric | Value | -| ---------------------- | ------------------------------------------- | -| Checks | 25 | -| Fail | 0 | -| Warn | 20 | -| Pass | 5 | -| Allowed blocked rules | 4 | -| Expected warning rules | 1 | -| Fixture sets | build, sdk-alias, side-effect-review, smoke | +| Metric | Value | +| ---------------------- | ---------------------------------------------------------- | +| Checks | 25 | +| Fail | 0 | +| Warn | 20 | +| Pass | 5 | +| Allowed blocked rules | 6 | +| Expected warning rules | 1 | +| Fixture sets | build, openclaw-beta, sdk-alias, side-effect-review, smoke | ## Checks -| Action | ID | Message | Evidence | -| ------ | ------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| warn | compatibility-report.live-p0-issues | 13 live P0 issues tracked | bluebubbles:sdk-export-missing:untracked, clawmetry:sdk-export-missing:untracked, diagnostics-otel:sdk-export-missing:untracked, feishu:sdk-export-missing:untracked, honcho:sdk-export-missing:untracked, lobster:sdk-export-missing:untracked, matrix:sdk-export-missing:untracked, msteams:sdk-export-missing:untracked, nextcloud-talk:sdk-export-missing:untracked, nostr:sdk-export-missing:untracked, voice-call:sdk-export-missing:untracked, yuanbao:sdk-export-missing:untracked, zalo:sdk-export-missing:untracked | -| warn | execution-results.audit-findings | 12 package audit findings | clawrouter:12 | -| warn | execution-results.blocked.clawrouter.registerService.29 | allowed-blocked: captured registration requires includeLifecycle=true | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerService, captured registration requires includeLifecycle=true, service-lifecycle-harness | -| warn | execution-results.blocked.clawrouter.registerTool.10 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.11 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.12 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.13 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.14 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.15 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.16 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.17 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.18 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.19 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.20 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.21 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.5 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.6 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.7 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.8 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.9 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| pass | compatibility-report.breakages | 0 hard breakages | - | -| pass | compatibility-report.deprecation-warnings | 33 deprecated compat seams tracked | a2a-gateway:legacy-root-sdk-import, agentchat:channel-env-vars, apify:legacy-root-sdk-import, brave-plugin:provider-auth-env-vars, codex-app-server:legacy-root-sdk-import, composio:legacy-root-sdk-import, connectclaw:legacy-before-agent-start, connectclaw:legacy-root-sdk-import, dingtalk-connector:legacy-root-sdk-import, hasdata:provider-auth-env-vars, honcho:legacy-before-agent-start, honcho:legacy-root-sdk-import, hyperspell:legacy-root-sdk-import, inworld-tts:provider-auth-env-vars, kitchen-sink:legacy-before-agent-start, kitchen-sink:legacy-root-sdk-import, llm-trace-phoenix:legacy-root-sdk-import, lossless-claw:legacy-root-sdk-import, mattermost:legacy-root-sdk-import, memos-cloud:legacy-before-agent-start, memu-engine:legacy-root-sdk-import, mocrane-wecom:legacy-root-sdk-import, nemoclaw:legacy-before-agent-start, openclaw-qqbot:channel-env-vars, openclaw-telemetry:legacy-before-agent-start, openclaw-telemetry:legacy-root-sdk-import, opik-openclaw:legacy-root-sdk-import, qqbot:legacy-root-sdk-import, synology-chat:legacy-root-sdk-import, telnyx-sms:channel-env-vars, tlon:legacy-root-sdk-import, twitch:legacy-root-sdk-import, yuanbao:channel-env-vars | -| pass | compatibility-report.inspector-gaps | 203 inspector proof gaps tracked | a2a-gateway:registration-capture-gap, bluebubbles:registration-capture-gap, clawmetry:registration-capture-gap, clawrouter:registration-capture-gap, codex:registration-capture-gap, codex-app-server:registration-capture-gap, connectclaw:registration-capture-gap, diagnostics-otel:registration-capture-gap, diagnostics-prometheus:registration-capture-gap, diffs:registration-capture-gap, dingtalk-connector:registration-capture-gap, discord:registration-capture-gap, feishu:registration-capture-gap, google-meet:registration-capture-gap, honcho:conversation-access-hook, honcho:registration-capture-gap, hyperspell:registration-capture-gap, kitchen-sink:before-tool-call-probe, kitchen-sink:conversation-access-hook, kitchen-sink:registration-capture-gap, lightclawbot:registration-capture-gap, llm-trace-phoenix:conversation-access-hook, lossless-claw:registration-capture-gap, matrix:registration-capture-gap, mattermost:registration-capture-gap, mcp-adapter:registration-capture-gap, memory-lancedb:conversation-access-hook, memory-lancedb:registration-capture-gap, memory-tencentdb:conversation-access-hook, memos-cloud:conversation-access-hook, memos-cloud:registration-capture-gap, mocrane-wecom:registration-capture-gap, msteams:registration-capture-gap, nemoclaw:before-tool-call-probe, nemoclaw:registration-capture-gap, nextcloud-talk:registration-capture-gap, nostr:registration-capture-gap, openclaw-qqbot:registration-capture-gap, openclaw-telemetry:before-tool-call-probe, openclaw-telemetry:conversation-access-hook, openclaw-telemetry:registration-capture-gap, openclaw-weixin:registration-capture-gap, opik-openclaw:before-tool-call-probe, opik-openclaw:conversation-access-hook, opik-openclaw:registration-capture-gap, qqbot:registration-capture-gap, secureclaw:registration-capture-gap, synology-chat:registration-capture-gap, telnyx-sms:registration-capture-gap, tlon:registration-capture-gap, twitch:registration-capture-gap, voice-call:registration-capture-gap, wecom:before-tool-call-probe, wecom:registration-capture-gap, yuanbao:registration-capture-gap, zalo:registration-capture-gap, zalouser:registration-capture-gap, a2a-gateway:package-dependency-install-required, a2a-gateway:package-typescript-source-entrypoint, a2a-gateway:runtime-tool-capture, agentchat:channel-contract-probe, agentchat:package-build-artifact-entrypoint, agentchat:package-dependency-install-required, apify:package-dependency-install-required, apify:package-typescript-source-entrypoint, apify:runtime-tool-capture, bluebubbles:channel-contract-probe, bluebubbles:package-dependency-install-required, bluebubbles:package-typescript-source-entrypoint, brave-plugin:package-typescript-source-entrypoint, clawmetry:package-build-artifact-entrypoint, clawmetry:package-dependency-install-required, clawmetry:package-typescript-source-entrypoint, clawrouter:package-dependency-install-required, clawrouter:runtime-tool-capture, codex:package-dependency-install-required, codex:package-typescript-source-entrypoint, codex-app-server:package-dependency-install-required, codex-app-server:package-typescript-source-entrypoint, composio:package-dependency-install-required, composio:package-typescript-source-entrypoint, composio:runtime-tool-capture, connectclaw:package-typescript-source-entrypoint, connectclaw:runtime-tool-capture, ddingtalk:channel-contract-probe, ddingtalk:package-dependency-install-required, ddingtalk:package-typescript-source-entrypoint, diagnostics-otel:package-dependency-install-required, diagnostics-otel:package-typescript-source-entrypoint, diagnostics-prometheus:package-typescript-source-entrypoint, diffs:package-dependency-install-required, diffs:package-typescript-source-entrypoint, diffs:runtime-tool-capture, dingtalk-connector:channel-contract-probe, dingtalk-connector:package-build-artifact-entrypoint, dingtalk-connector:package-dependency-install-required, discord:channel-contract-probe, discord:package-typescript-source-entrypoint, feishu:channel-contract-probe, feishu:package-dependency-install-required, feishu:package-typescript-source-entrypoint, feishu:runtime-tool-capture, google-meet:package-dependency-install-required, google-meet:package-typescript-source-entrypoint, google-meet:runtime-tool-capture, hasdata:package-dependency-install-required, hasdata:package-typescript-source-entrypoint, honcho:package-build-artifact-entrypoint, honcho:package-dependency-install-required, honcho:runtime-tool-capture, hyperspell:package-dependency-install-required, hyperspell:package-typescript-source-entrypoint, hyperspell:runtime-tool-capture, inworld-tts:package-typescript-source-entrypoint, kitchen-sink:channel-contract-probe, lightclawbot:channel-contract-probe, lightclawbot:package-dependency-install-required, lightclawbot:runtime-tool-capture, llm-trace-phoenix:package-typescript-source-entrypoint, lobster:package-dependency-install-required, lobster:package-typescript-source-entrypoint, lobster:runtime-tool-capture, lossless-claw:package-build-artifact-entrypoint, lossless-claw:package-dependency-install-required, lossless-claw:runtime-tool-capture, matrix:channel-contract-probe, matrix:package-dependency-install-required, matrix:package-typescript-source-entrypoint, mattermost:channel-contract-probe, mattermost:package-typescript-source-entrypoint, mcp-adapter:package-dependency-install-required, mcp-adapter:package-typescript-source-entrypoint, mcp-adapter:runtime-tool-capture, memory-lancedb:package-dependency-install-required, memory-lancedb:package-typescript-source-entrypoint, memory-lancedb:runtime-tool-capture, memory-tencentdb:package-dependency-install-required, memory-tencentdb:package-typescript-source-entrypoint, memory-tencentdb:runtime-tool-capture, memu-engine:package-typescript-source-entrypoint, memu-engine:runtime-tool-capture, mocrane-wecom:channel-contract-probe, mocrane-wecom:package-dependency-install-required, mocrane-wecom:package-typescript-source-entrypoint, mocrane-wecom:runtime-tool-capture, msteams:channel-contract-probe, msteams:package-dependency-install-required, msteams:package-typescript-source-entrypoint, nemoclaw:package-build-artifact-entrypoint, nemoclaw:package-dependency-install-required, nextcloud-talk:channel-contract-probe, nextcloud-talk:package-dependency-install-required, nextcloud-talk:package-typescript-source-entrypoint, nostr:channel-contract-probe, nostr:package-dependency-install-required, nostr:package-typescript-source-entrypoint, openclaw-qqbot:package-dependency-install-required, openclaw-qqbot:package-typescript-source-entrypoint, openclaw-qqbot:runtime-tool-capture, openclaw-telemetry:package-typescript-source-entrypoint, openclaw-weixin:channel-contract-probe, openclaw-weixin:package-dependency-install-required, openclaw-weixin:package-typescript-source-entrypoint, opik-openclaw:package-build-artifact-entrypoint, opik-openclaw:package-dependency-install-required, opik-openclaw:package-typescript-source-entrypoint, qqbot:channel-contract-probe, qqbot:package-dependency-install-required, qqbot:runtime-tool-capture, secureclaw:package-build-artifact-entrypoint, secureclaw:package-dependency-install-required, synology-chat:channel-contract-probe, synology-chat:package-dependency-install-required, synology-chat:package-typescript-source-entrypoint, telnyx-sms:channel-contract-probe, telnyx-sms:package-build-artifact-entrypoint, tlon:channel-contract-probe, tlon:package-dependency-install-required, tlon:package-typescript-source-entrypoint, twitch:channel-contract-probe, twitch:package-dependency-install-required, twitch:package-typescript-source-entrypoint, voice-call:package-dependency-install-required, voice-call:package-typescript-source-entrypoint, voice-call:runtime-tool-capture, web-search-plus:package-typescript-source-entrypoint, web-search-plus:runtime-tool-capture, wecom:channel-contract-probe, wecom:package-dependency-install-required, wecom:runtime-tool-capture, whatsapp:package-dependency-install-required, whatsapp:package-typescript-source-entrypoint, yuanbao:channel-contract-probe, yuanbao:package-dependency-install-required, yuanbao:package-typescript-source-entrypoint, yuanbao:runtime-tool-capture, zalo:channel-contract-probe, zalo:package-dependency-install-required, zalo:package-typescript-source-entrypoint, zalouser:channel-contract-probe, zalouser:package-dependency-install-required, zalouser:package-typescript-source-entrypoint, zalouser:runtime-tool-capture | -| pass | compatibility-report.p1-issues | 71 P1 issues tracked | a2a-gateway:registration-capture-gap, bluebubbles:missing-compat-record, bluebubbles:registration-capture-gap, clawmetry:missing-compat-record, clawmetry:package-npm-pack-entrypoint-missing, clawmetry:registration-capture-gap, clawrouter:registration-capture-gap, codex:registration-capture-gap, codex-app-server:registration-capture-gap, connectclaw:registration-capture-gap, diagnostics-otel:missing-compat-record, diagnostics-otel:registration-capture-gap, diagnostics-prometheus:registration-capture-gap, diffs:registration-capture-gap, dingtalk-connector:registration-capture-gap, discord:registration-capture-gap, feishu:missing-compat-record, feishu:registration-capture-gap, google-meet:registration-capture-gap, honcho:conversation-access-hook, honcho:missing-compat-record, honcho:registration-capture-gap, hyperspell:registration-capture-gap, kitchen-sink:before-tool-call-probe, kitchen-sink:conversation-access-hook, kitchen-sink:registration-capture-gap, lightclawbot:registration-capture-gap, llm-trace-phoenix:conversation-access-hook, lobster:missing-compat-record, lossless-claw:registration-capture-gap, matrix:missing-compat-record, matrix:registration-capture-gap, mattermost:registration-capture-gap, mcp-adapter:registration-capture-gap, memory-lancedb:conversation-access-hook, memory-lancedb:registration-capture-gap, memory-tencentdb:conversation-access-hook, memos-cloud:conversation-access-hook, memos-cloud:registration-capture-gap, mocrane-wecom:registration-capture-gap, msteams:missing-compat-record, msteams:registration-capture-gap, nemoclaw:before-tool-call-probe, nemoclaw:registration-capture-gap, nextcloud-talk:missing-compat-record, nextcloud-talk:registration-capture-gap, nostr:missing-compat-record, nostr:registration-capture-gap, openclaw-qqbot:registration-capture-gap, openclaw-telemetry:before-tool-call-probe, openclaw-telemetry:conversation-access-hook, openclaw-telemetry:registration-capture-gap, openclaw-weixin:registration-capture-gap, opik-openclaw:before-tool-call-probe, opik-openclaw:conversation-access-hook, opik-openclaw:registration-capture-gap, qqbot:registration-capture-gap, secureclaw:registration-capture-gap, synology-chat:registration-capture-gap, telnyx-sms:registration-capture-gap, tlon:registration-capture-gap, twitch:registration-capture-gap, voice-call:missing-compat-record, voice-call:registration-capture-gap, wecom:before-tool-call-probe, wecom:registration-capture-gap, yuanbao:missing-compat-record, yuanbao:registration-capture-gap, zalo:missing-compat-record, zalo:registration-capture-gap, zalouser:registration-capture-gap | -| pass | execution-results.failures | 0 failed synthetic probes | - | +| Action | ID | Message | Evidence | +| ------ | ------------------------------------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| warn | compatibility-report.live-p0-issues | 4 live P0 issues tracked | clawmetry:sdk-export-missing:untracked, honcho:sdk-export-missing:untracked, matrix:sdk-export-missing:untracked, yuanbao:sdk-export-missing:untracked | +| warn | execution-results.audit-findings | 12 package audit findings | clawrouter:12 | +| warn | execution-results.blocked.clawrouter.registerService.29 | allowed-blocked: captured registration requires includeLifecycle=true | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerService, captured registration requires includeLifecycle=true, service-lifecycle-harness | +| warn | execution-results.blocked.clawrouter.registerTool.10 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.11 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.12 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.13 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.14 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.15 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.16 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.17 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.18 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.19 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.20 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.21 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.5 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.6 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.7 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.8 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.9 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| pass | compatibility-report.breakages | 0 hard breakages | - | +| pass | compatibility-report.deprecation-warnings | 40 deprecated compat seams tracked | a2a-gateway:legacy-root-sdk-import, agentchat:channel-env-vars, apify:legacy-root-sdk-import, brave-plugin:provider-auth-env-vars, codex-app-server:legacy-root-sdk-import, composio:legacy-root-sdk-import, connectclaw:legacy-before-agent-start, connectclaw:legacy-root-sdk-import, dingtalk-connector:legacy-root-sdk-import, discord:channel-env-vars, feishu:channel-env-vars, hasdata:provider-auth-env-vars, honcho:legacy-before-agent-start, honcho:legacy-root-sdk-import, hyperspell:legacy-root-sdk-import, inworld-tts:provider-auth-env-vars, kitchen-sink:legacy-before-agent-start, kitchen-sink:legacy-root-sdk-import, llm-trace-phoenix:legacy-root-sdk-import, lossless-claw:legacy-root-sdk-import, mattermost:legacy-root-sdk-import, memos-cloud:legacy-before-agent-start, memu-engine:legacy-root-sdk-import, mocrane-wecom:legacy-root-sdk-import, msteams:channel-env-vars, nemoclaw:legacy-before-agent-start, nextcloud-talk:channel-env-vars, nostr:channel-env-vars, openclaw-qqbot:channel-env-vars, openclaw-telemetry:legacy-before-agent-start, openclaw-telemetry:legacy-root-sdk-import, opik-openclaw:legacy-root-sdk-import, qqbot:legacy-root-sdk-import, synology-chat:channel-env-vars, telnyx-sms:channel-env-vars, twitch:channel-env-vars, voice-call:channel-env-vars, yuanbao:channel-env-vars, zalo:channel-env-vars, zalouser:channel-env-vars | +| pass | compatibility-report.inspector-gaps | 182 inspector proof gaps tracked | a2a-gateway:registration-capture-gap, clawmetry:registration-capture-gap, clawrouter:registration-capture-gap, codex:registration-capture-gap, codex-app-server:registration-capture-gap, connectclaw:registration-capture-gap, diagnostics-otel:registration-capture-gap, diagnostics-prometheus:registration-capture-gap, diffs:registration-capture-gap, dingtalk-connector:registration-capture-gap, google-meet:registration-capture-gap, honcho:conversation-access-hook, honcho:registration-capture-gap, hyperspell:registration-capture-gap, kitchen-sink:before-tool-call-probe, kitchen-sink:conversation-access-hook, kitchen-sink:registration-capture-gap, lightclawbot:registration-capture-gap, llm-trace-phoenix:conversation-access-hook, lossless-claw:registration-capture-gap, matrix:registration-capture-gap, mattermost:registration-capture-gap, mcp-adapter:registration-capture-gap, memory-lancedb:conversation-access-hook, memory-lancedb:registration-capture-gap, memory-tencentdb:conversation-access-hook, memos-cloud:conversation-access-hook, memos-cloud:registration-capture-gap, mocrane-wecom:registration-capture-gap, nemoclaw:before-tool-call-probe, nemoclaw:registration-capture-gap, nostr:registration-capture-gap, openclaw-qqbot:registration-capture-gap, openclaw-telemetry:before-tool-call-probe, openclaw-telemetry:conversation-access-hook, openclaw-telemetry:registration-capture-gap, openclaw-weixin:registration-capture-gap, opik-openclaw:before-tool-call-probe, opik-openclaw:conversation-access-hook, opik-openclaw:registration-capture-gap, qqbot:registration-capture-gap, secureclaw:registration-capture-gap, telnyx-sms:registration-capture-gap, voice-call:registration-capture-gap, wecom:before-tool-call-probe, wecom:registration-capture-gap, yuanbao:registration-capture-gap, a2a-gateway:package-dependency-install-required, a2a-gateway:package-typescript-source-entrypoint, a2a-gateway:runtime-tool-capture, agentchat:channel-contract-probe, agentchat:package-build-artifact-entrypoint, agentchat:package-dependency-install-required, apify:package-dependency-install-required, apify:package-typescript-source-entrypoint, apify:runtime-tool-capture, bluebubbles:package-typescript-source-entrypoint, brave-plugin:package-typescript-source-entrypoint, clawmetry:package-build-artifact-entrypoint, clawmetry:package-dependency-install-required, clawmetry:package-typescript-source-entrypoint, clawrouter:package-dependency-install-required, clawrouter:runtime-tool-capture, codex:package-dependency-install-required, codex:package-typescript-source-entrypoint, codex-app-server:package-dependency-install-required, codex-app-server:package-typescript-source-entrypoint, composio:package-dependency-install-required, composio:package-typescript-source-entrypoint, composio:runtime-tool-capture, connectclaw:package-typescript-source-entrypoint, connectclaw:runtime-tool-capture, ddingtalk:channel-contract-probe, ddingtalk:package-dependency-install-required, ddingtalk:package-typescript-source-entrypoint, diagnostics-otel:package-dependency-install-required, diagnostics-otel:package-typescript-source-entrypoint, diagnostics-prometheus:package-typescript-source-entrypoint, diffs:package-dependency-install-required, diffs:package-typescript-source-entrypoint, dingtalk-connector:channel-contract-probe, dingtalk-connector:package-build-artifact-entrypoint, dingtalk-connector:package-dependency-install-required, discord:package-dependency-install-required, discord:package-typescript-source-entrypoint, feishu:channel-contract-probe, feishu:package-dependency-install-required, feishu:package-typescript-source-entrypoint, google-meet:package-dependency-install-required, google-meet:package-typescript-source-entrypoint, hasdata:package-dependency-install-required, hasdata:package-typescript-source-entrypoint, honcho:package-build-artifact-entrypoint, honcho:package-dependency-install-required, honcho:runtime-tool-capture, hyperspell:package-dependency-install-required, hyperspell:package-typescript-source-entrypoint, hyperspell:runtime-tool-capture, inworld-tts:package-typescript-source-entrypoint, kitchen-sink:channel-contract-probe, lightclawbot:channel-contract-probe, lightclawbot:package-dependency-install-required, lightclawbot:runtime-tool-capture, llm-trace-phoenix:package-typescript-source-entrypoint, lobster:package-dependency-install-required, lobster:package-typescript-source-entrypoint, lossless-claw:package-build-artifact-entrypoint, lossless-claw:package-dependency-install-required, lossless-claw:runtime-tool-capture, matrix:channel-contract-probe, matrix:package-dependency-install-required, matrix:package-typescript-source-entrypoint, mattermost:channel-contract-probe, mattermost:package-typescript-source-entrypoint, mcp-adapter:package-dependency-install-required, mcp-adapter:package-typescript-source-entrypoint, mcp-adapter:runtime-tool-capture, memory-lancedb:package-dependency-install-required, memory-lancedb:package-typescript-source-entrypoint, memory-tencentdb:package-dependency-install-required, memory-tencentdb:package-typescript-source-entrypoint, memory-tencentdb:runtime-tool-capture, memu-engine:package-typescript-source-entrypoint, memu-engine:runtime-tool-capture, mocrane-wecom:channel-contract-probe, mocrane-wecom:package-dependency-install-required, mocrane-wecom:package-typescript-source-entrypoint, mocrane-wecom:runtime-tool-capture, msteams:channel-contract-probe, msteams:package-dependency-install-required, msteams:package-typescript-source-entrypoint, nemoclaw:package-build-artifact-entrypoint, nemoclaw:package-dependency-install-required, nextcloud-talk:channel-contract-probe, nextcloud-talk:package-dependency-install-required, nextcloud-talk:package-typescript-source-entrypoint, nostr:channel-contract-probe, nostr:package-dependency-install-required, nostr:package-typescript-source-entrypoint, openclaw-qqbot:package-dependency-install-required, openclaw-qqbot:package-typescript-source-entrypoint, openclaw-telemetry:package-typescript-source-entrypoint, openclaw-weixin:channel-contract-probe, openclaw-weixin:package-dependency-install-required, openclaw-weixin:package-typescript-source-entrypoint, opik-openclaw:package-build-artifact-entrypoint, opik-openclaw:package-dependency-install-required, opik-openclaw:package-typescript-source-entrypoint, qqbot:channel-contract-probe, qqbot:package-dependency-install-required, qqbot:runtime-tool-capture, secureclaw:package-build-artifact-entrypoint, secureclaw:package-dependency-install-required, synology-chat:channel-contract-probe, synology-chat:package-dependency-install-required, synology-chat:package-typescript-source-entrypoint, telnyx-sms:channel-contract-probe, telnyx-sms:package-build-artifact-entrypoint, tlon:channel-contract-probe, tlon:package-dependency-install-required, tlon:package-typescript-source-entrypoint, twitch:package-dependency-install-required, twitch:package-typescript-source-entrypoint, voice-call:package-dependency-install-required, voice-call:package-typescript-source-entrypoint, web-search-plus:package-typescript-source-entrypoint, web-search-plus:runtime-tool-capture, wecom:channel-contract-probe, wecom:package-dependency-install-required, wecom:runtime-tool-capture, whatsapp:package-dependency-install-required, whatsapp:package-typescript-source-entrypoint, yuanbao:channel-contract-probe, yuanbao:package-dependency-install-required, yuanbao:package-typescript-source-entrypoint, yuanbao:runtime-tool-capture, zalo:channel-contract-probe, zalo:package-dependency-install-required, zalo:package-typescript-source-entrypoint, zalouser:channel-contract-probe, zalouser:package-dependency-install-required, zalouser:package-typescript-source-entrypoint | +| pass | compatibility-report.p1-issues | 52 P1 issues tracked | a2a-gateway:registration-capture-gap, clawmetry:missing-compat-record, clawmetry:package-npm-pack-entrypoint-missing, clawmetry:registration-capture-gap, clawrouter:registration-capture-gap, codex:registration-capture-gap, codex-app-server:registration-capture-gap, connectclaw:registration-capture-gap, diagnostics-otel:registration-capture-gap, diagnostics-prometheus:registration-capture-gap, diffs:registration-capture-gap, dingtalk-connector:registration-capture-gap, google-meet:registration-capture-gap, honcho:conversation-access-hook, honcho:missing-compat-record, honcho:registration-capture-gap, hyperspell:registration-capture-gap, kitchen-sink:before-tool-call-probe, kitchen-sink:conversation-access-hook, kitchen-sink:registration-capture-gap, lightclawbot:registration-capture-gap, llm-trace-phoenix:conversation-access-hook, lossless-claw:registration-capture-gap, matrix:missing-compat-record, matrix:registration-capture-gap, mattermost:registration-capture-gap, mcp-adapter:registration-capture-gap, memory-lancedb:conversation-access-hook, memory-lancedb:registration-capture-gap, memory-tencentdb:conversation-access-hook, memos-cloud:conversation-access-hook, memos-cloud:registration-capture-gap, mocrane-wecom:registration-capture-gap, nemoclaw:before-tool-call-probe, nemoclaw:registration-capture-gap, nostr:registration-capture-gap, openclaw-qqbot:registration-capture-gap, openclaw-telemetry:before-tool-call-probe, openclaw-telemetry:conversation-access-hook, openclaw-telemetry:registration-capture-gap, openclaw-weixin:registration-capture-gap, opik-openclaw:before-tool-call-probe, opik-openclaw:conversation-access-hook, opik-openclaw:registration-capture-gap, qqbot:registration-capture-gap, secureclaw:registration-capture-gap, telnyx-sms:registration-capture-gap, voice-call:registration-capture-gap, wecom:before-tool-call-probe, wecom:registration-capture-gap, yuanbao:missing-compat-record, yuanbao:registration-capture-gap | +| pass | execution-results.failures | 0 failed synthetic probes | - | diff --git a/reports/crabpot-ci-summary.json b/reports/crabpot-ci-summary.json index 9643a0c..018e562 100644 --- a/reports/crabpot-ci-summary.json +++ b/reports/crabpot-ci-summary.json @@ -2,21 +2,21 @@ "generatedAt": "deterministic", "title": "Crabpot CI Summary", "mode": "check", - "openclawLabel": "openclaw@latest (2026.4.29, a448042c2edd)", + "openclawLabel": "openclaw/openclaw@qa-kitchen-sink-crabbox", "status": "pass", "summary": { "breakages": 0, - "warnings": 117, - "suggestions": 208, - "issues": 325, - "p0Issues": 13, - "p1Issues": 71, - "liveIssues": 13, - "liveP0Issues": 13, - "compatGaps": 13, - "deprecationWarnings": 33, - "inspectorGaps": 203, - "upstreamIssues": 63, + "warnings": 129, + "suggestions": 178, + "issues": 307, + "p0Issues": 4, + "p1Issues": 52, + "liveIssues": 4, + "liveP0Issues": 4, + "compatGaps": 4, + "deprecationWarnings": 40, + "inspectorGaps": 182, + "upstreamIssues": 77, "refDiffFailures": 0, "refDiffWarnings": 0, "policyFailures": 0, @@ -41,14 +41,6 @@ "importLoopCpuSampleCount": 185 }, "topIssues": [ - { - "severity": "P0", - "issueClass": "live-issue", - "fixture": "bluebubbles", - "code": "sdk-export-missing", - "title": "bluebubbles: plugin SDK import aliases are missing from target package exports", - "decision": "core-compat-adapter" - }, { "severity": "P0", "issueClass": "live-issue", @@ -57,22 +49,6 @@ "title": "clawmetry: plugin SDK import aliases are missing from target package exports", "decision": "core-compat-adapter" }, - { - "severity": "P0", - "issueClass": "live-issue", - "fixture": "diagnostics-otel", - "code": "sdk-export-missing", - "title": "diagnostics-otel: plugin SDK import aliases are missing from target package exports", - "decision": "core-compat-adapter" - }, - { - "severity": "P0", - "issueClass": "live-issue", - "fixture": "feishu", - "code": "sdk-export-missing", - "title": "feishu: plugin SDK import aliases are missing from target package exports", - "decision": "core-compat-adapter" - }, { "severity": "P0", "issueClass": "live-issue", @@ -81,14 +57,6 @@ "title": "honcho: plugin SDK import aliases are missing from target package exports", "decision": "core-compat-adapter" }, - { - "severity": "P0", - "issueClass": "live-issue", - "fixture": "lobster", - "code": "sdk-export-missing", - "title": "lobster: plugin SDK import aliases are missing from target package exports", - "decision": "core-compat-adapter" - }, { "severity": "P0", "issueClass": "live-issue", @@ -97,38 +65,6 @@ "title": "matrix: plugin SDK import aliases are missing from target package exports", "decision": "core-compat-adapter" }, - { - "severity": "P0", - "issueClass": "live-issue", - "fixture": "msteams", - "code": "sdk-export-missing", - "title": "msteams: plugin SDK import aliases are missing from target package exports", - "decision": "core-compat-adapter" - }, - { - "severity": "P0", - "issueClass": "live-issue", - "fixture": "nextcloud-talk", - "code": "sdk-export-missing", - "title": "nextcloud-talk: plugin SDK import aliases are missing from target package exports", - "decision": "core-compat-adapter" - }, - { - "severity": "P0", - "issueClass": "live-issue", - "fixture": "nostr", - "code": "sdk-export-missing", - "title": "nostr: plugin SDK import aliases are missing from target package exports", - "decision": "core-compat-adapter" - }, - { - "severity": "P0", - "issueClass": "live-issue", - "fixture": "voice-call", - "code": "sdk-export-missing", - "title": "voice-call: plugin SDK import aliases are missing from target package exports", - "decision": "core-compat-adapter" - }, { "severity": "P0", "issueClass": "live-issue", @@ -137,14 +73,6 @@ "title": "yuanbao: plugin SDK import aliases are missing from target package exports", "decision": "core-compat-adapter" }, - { - "severity": "P0", - "issueClass": "live-issue", - "fixture": "zalo", - "code": "sdk-export-missing", - "title": "zalo: plugin SDK import aliases are missing from target package exports", - "decision": "core-compat-adapter" - }, { "severity": "P1", "issueClass": "inspector-gap", @@ -153,22 +81,6 @@ "title": "a2a-gateway: runtime registrations need capture before contract judgment", "decision": "inspector-follow-up" }, - { - "severity": "P1", - "issueClass": "compat-gap", - "fixture": "bluebubbles", - "code": "missing-compat-record", - "title": "bluebubbles: compat-dependent behavior lacks registry coverage", - "decision": "core-compat-adapter" - }, - { - "severity": "P1", - "issueClass": "inspector-gap", - "fixture": "bluebubbles", - "code": "registration-capture-gap", - "title": "bluebubbles: runtime registrations need capture before contract judgment", - "decision": "inspector-follow-up" - }, { "severity": "P1", "issueClass": "compat-gap", @@ -200,6 +112,94 @@ "code": "registration-capture-gap", "title": "clawrouter: runtime registrations need capture before contract judgment", "decision": "inspector-follow-up" + }, + { + "severity": "P1", + "issueClass": "inspector-gap", + "fixture": "codex", + "code": "registration-capture-gap", + "title": "codex: runtime registrations need capture before contract judgment", + "decision": "inspector-follow-up" + }, + { + "severity": "P1", + "issueClass": "inspector-gap", + "fixture": "codex-app-server", + "code": "registration-capture-gap", + "title": "codex-app-server: runtime registrations need capture before contract judgment", + "decision": "inspector-follow-up" + }, + { + "severity": "P1", + "issueClass": "inspector-gap", + "fixture": "connectclaw", + "code": "registration-capture-gap", + "title": "connectclaw: runtime registrations need capture before contract judgment", + "decision": "inspector-follow-up" + }, + { + "severity": "P1", + "issueClass": "inspector-gap", + "fixture": "diagnostics-otel", + "code": "registration-capture-gap", + "title": "diagnostics-otel: runtime registrations need capture before contract judgment", + "decision": "inspector-follow-up" + }, + { + "severity": "P1", + "issueClass": "inspector-gap", + "fixture": "diagnostics-prometheus", + "code": "registration-capture-gap", + "title": "diagnostics-prometheus: runtime registrations need capture before contract judgment", + "decision": "inspector-follow-up" + }, + { + "severity": "P1", + "issueClass": "inspector-gap", + "fixture": "diffs", + "code": "registration-capture-gap", + "title": "diffs: runtime registrations need capture before contract judgment", + "decision": "inspector-follow-up" + }, + { + "severity": "P1", + "issueClass": "inspector-gap", + "fixture": "dingtalk-connector", + "code": "registration-capture-gap", + "title": "dingtalk-connector: runtime registrations need capture before contract judgment", + "decision": "inspector-follow-up" + }, + { + "severity": "P1", + "issueClass": "inspector-gap", + "fixture": "google-meet", + "code": "registration-capture-gap", + "title": "google-meet: runtime registrations need capture before contract judgment", + "decision": "inspector-follow-up" + }, + { + "severity": "P1", + "issueClass": "inspector-gap", + "fixture": "honcho", + "code": "conversation-access-hook", + "title": "honcho: conversation-access hooks need privacy-boundary probes", + "decision": "inspector-follow-up" + }, + { + "severity": "P1", + "issueClass": "compat-gap", + "fixture": "honcho", + "code": "missing-compat-record", + "title": "honcho: compat-dependent behavior lacks registry coverage", + "decision": "core-compat-adapter" + }, + { + "severity": "P1", + "issueClass": "inspector-gap", + "fixture": "honcho", + "code": "registration-capture-gap", + "title": "honcho: runtime registrations need capture before contract judgment", + "decision": "inspector-follow-up" } ], "refRegressions": [], @@ -207,21 +207,12 @@ { "id": "compatibility-report.live-p0-issues", "action": "warn", - "message": "13 live P0 issues tracked", + "message": "4 live P0 issues tracked", "evidence": [ - "bluebubbles:sdk-export-missing:untracked", "clawmetry:sdk-export-missing:untracked", - "diagnostics-otel:sdk-export-missing:untracked", - "feishu:sdk-export-missing:untracked", "honcho:sdk-export-missing:untracked", - "lobster:sdk-export-missing:untracked", "matrix:sdk-export-missing:untracked", - "msteams:sdk-export-missing:untracked", - "nextcloud-talk:sdk-export-missing:untracked", - "nostr:sdk-export-missing:untracked", - "voice-call:sdk-export-missing:untracked", - "yuanbao:sdk-export-missing:untracked", - "zalo:sdk-export-missing:untracked" + "yuanbao:sdk-export-missing:untracked" ] }, { diff --git a/reports/crabpot-ci-summary.md b/reports/crabpot-ci-summary.md index bf2dbb8..ca12b89 100644 --- a/reports/crabpot-ci-summary.md +++ b/reports/crabpot-ci-summary.md @@ -2,7 +2,7 @@ Generated: deterministic Mode: check -OpenClaw: openclaw@latest (2026.4.29, a448042c2edd) +OpenClaw: openclaw/openclaw@qa-kitchen-sink-crabbox Status: PASS ## Counts @@ -10,17 +10,17 @@ Status: PASS | Metric | Value | | --------------------------- | --------------------------------------------------------------------------------------------------------------------- | | Breakages | 0 | -| Warnings | 117 | -| Suggestions | 208 | -| Issues | 325 | -| P0 issues | 13 | -| P1 issues | 71 | -| Live issues | 13 | -| Live P0 issues | 13 | -| Compat gaps | 13 | -| Deprecation warnings | 33 | -| Inspector gaps | 203 | -| Upstream metadata | 63 | +| Warnings | 129 | +| Suggestions | 178 | +| Issues | 307 | +| P0 issues | 4 | +| P1 issues | 52 | +| Live issues | 4 | +| Live P0 issues | 4 | +| Compat gaps | 4 | +| Deprecation warnings | 40 | +| Inspector gaps | 182 | +| Upstream metadata | 77 | | Ref diff failures | 0 | | Ref diff warnings | 0 | | Policy failures | 0 | @@ -37,28 +37,28 @@ Status: PASS ## Top Issues -| Severity | Class | Fixture | Code | Decision | Title | -| -------- | ----------------- | ---------------- | ----------------------------------- | ------------------- | ----------------------------------------------------------------------------------- | -| P0 | live-issue | bluebubbles | sdk-export-missing | core-compat-adapter | bluebubbles: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | clawmetry | sdk-export-missing | core-compat-adapter | clawmetry: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | diagnostics-otel | sdk-export-missing | core-compat-adapter | diagnostics-otel: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | feishu | sdk-export-missing | core-compat-adapter | feishu: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | honcho | sdk-export-missing | core-compat-adapter | honcho: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | lobster | sdk-export-missing | core-compat-adapter | lobster: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | matrix | sdk-export-missing | core-compat-adapter | matrix: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | msteams | sdk-export-missing | core-compat-adapter | msteams: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | nextcloud-talk | sdk-export-missing | core-compat-adapter | nextcloud-talk: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | nostr | sdk-export-missing | core-compat-adapter | nostr: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | voice-call | sdk-export-missing | core-compat-adapter | voice-call: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | yuanbao | sdk-export-missing | core-compat-adapter | yuanbao: plugin SDK import aliases are missing from target package exports | -| P0 | live-issue | zalo | sdk-export-missing | core-compat-adapter | zalo: plugin SDK import aliases are missing from target package exports | -| P1 | inspector-gap | a2a-gateway | registration-capture-gap | inspector-follow-up | a2a-gateway: runtime registrations need capture before contract judgment | -| P1 | compat-gap | bluebubbles | missing-compat-record | core-compat-adapter | bluebubbles: compat-dependent behavior lacks registry coverage | -| P1 | inspector-gap | bluebubbles | registration-capture-gap | inspector-follow-up | bluebubbles: runtime registrations need capture before contract judgment | -| P1 | compat-gap | clawmetry | missing-compat-record | core-compat-adapter | clawmetry: compat-dependent behavior lacks registry coverage | -| P1 | upstream-metadata | clawmetry | package-npm-pack-entrypoint-missing | plugin-upstream-fix | clawmetry: advertised npm artifact is missing OpenClaw entrypoints | -| P1 | inspector-gap | clawmetry | registration-capture-gap | inspector-follow-up | clawmetry: runtime registrations need capture before contract judgment | -| P1 | inspector-gap | clawrouter | registration-capture-gap | inspector-follow-up | clawrouter: runtime registrations need capture before contract judgment | +| Severity | Class | Fixture | Code | Decision | Title | +| -------- | ----------------- | ---------------------- | ----------------------------------- | ------------------- | ----------------------------------------------------------------------------------- | +| P0 | live-issue | clawmetry | sdk-export-missing | core-compat-adapter | clawmetry: plugin SDK import aliases are missing from target package exports | +| P0 | live-issue | honcho | sdk-export-missing | core-compat-adapter | honcho: plugin SDK import aliases are missing from target package exports | +| P0 | live-issue | matrix | sdk-export-missing | core-compat-adapter | matrix: plugin SDK import aliases are missing from target package exports | +| P0 | live-issue | yuanbao | sdk-export-missing | core-compat-adapter | yuanbao: plugin SDK import aliases are missing from target package exports | +| P1 | inspector-gap | a2a-gateway | registration-capture-gap | inspector-follow-up | a2a-gateway: runtime registrations need capture before contract judgment | +| P1 | compat-gap | clawmetry | missing-compat-record | core-compat-adapter | clawmetry: compat-dependent behavior lacks registry coverage | +| P1 | upstream-metadata | clawmetry | package-npm-pack-entrypoint-missing | plugin-upstream-fix | clawmetry: advertised npm artifact is missing OpenClaw entrypoints | +| P1 | inspector-gap | clawmetry | registration-capture-gap | inspector-follow-up | clawmetry: runtime registrations need capture before contract judgment | +| P1 | inspector-gap | clawrouter | registration-capture-gap | inspector-follow-up | clawrouter: runtime registrations need capture before contract judgment | +| P1 | inspector-gap | codex | registration-capture-gap | inspector-follow-up | codex: runtime registrations need capture before contract judgment | +| P1 | inspector-gap | codex-app-server | registration-capture-gap | inspector-follow-up | codex-app-server: runtime registrations need capture before contract judgment | +| P1 | inspector-gap | connectclaw | registration-capture-gap | inspector-follow-up | connectclaw: runtime registrations need capture before contract judgment | +| P1 | inspector-gap | diagnostics-otel | registration-capture-gap | inspector-follow-up | diagnostics-otel: runtime registrations need capture before contract judgment | +| P1 | inspector-gap | diagnostics-prometheus | registration-capture-gap | inspector-follow-up | diagnostics-prometheus: runtime registrations need capture before contract judgment | +| P1 | inspector-gap | diffs | registration-capture-gap | inspector-follow-up | diffs: runtime registrations need capture before contract judgment | +| P1 | inspector-gap | dingtalk-connector | registration-capture-gap | inspector-follow-up | dingtalk-connector: runtime registrations need capture before contract judgment | +| P1 | inspector-gap | google-meet | registration-capture-gap | inspector-follow-up | google-meet: runtime registrations need capture before contract judgment | +| P1 | inspector-gap | honcho | conversation-access-hook | inspector-follow-up | honcho: conversation-access hooks need privacy-boundary probes | +| P1 | compat-gap | honcho | missing-compat-record | core-compat-adapter | honcho: compat-dependent behavior lacks registry coverage | +| P1 | inspector-gap | honcho | registration-capture-gap | inspector-follow-up | honcho: runtime registrations need capture before contract judgment | ## Ref Regressions @@ -66,28 +66,28 @@ _none_ ## Policy Findings -| Action | ID | Message | Evidence | -| ------ | ------------------------------------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| warn | compatibility-report.live-p0-issues | 13 live P0 issues tracked | bluebubbles:sdk-export-missing:untracked, clawmetry:sdk-export-missing:untracked, diagnostics-otel:sdk-export-missing:untracked, feishu:sdk-export-missing:untracked, honcho:sdk-export-missing:untracked, lobster:sdk-export-missing:untracked, matrix:sdk-export-missing:untracked, msteams:sdk-export-missing:untracked, nextcloud-talk:sdk-export-missing:untracked, nostr:sdk-export-missing:untracked, voice-call:sdk-export-missing:untracked, yuanbao:sdk-export-missing:untracked, zalo:sdk-export-missing:untracked | -| warn | execution-results.audit-findings | 12 package audit findings | clawrouter:12 | -| warn | execution-results.blocked.clawrouter.registerService.29 | allowed-blocked: captured registration requires includeLifecycle=true | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerService, captured registration requires includeLifecycle=true, service-lifecycle-harness | -| warn | execution-results.blocked.clawrouter.registerTool.10 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.11 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.12 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.13 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.14 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.15 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.16 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.17 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.18 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.19 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.20 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.21 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.5 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.6 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.7 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.8 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | -| warn | execution-results.blocked.clawrouter.registerTool.9 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| Action | ID | Message | Evidence | +| ------ | ------------------------------------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| warn | compatibility-report.live-p0-issues | 4 live P0 issues tracked | clawmetry:sdk-export-missing:untracked, honcho:sdk-export-missing:untracked, matrix:sdk-export-missing:untracked, yuanbao:sdk-export-missing:untracked | +| warn | execution-results.audit-findings | 12 package audit findings | clawrouter:12 | +| warn | execution-results.blocked.clawrouter.registerService.29 | allowed-blocked: captured registration requires includeLifecycle=true | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerService, captured registration requires includeLifecycle=true, service-lifecycle-harness | +| warn | execution-results.blocked.clawrouter.registerTool.10 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.11 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.12 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.13 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.14 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.15 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.16 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.17 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.18 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.19 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.20 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.21 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.5 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.6 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.7 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.8 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | +| warn | execution-results.blocked.clawrouter.registerTool.9 | allowed-blocked: captured tool requires live network access | .crabpot/results/clawrouter/cold-import-extension-clawrouter-plugins-clawrouter-dist-index-js.synthetic.json, registerTool, captured tool requires live network access, live-network-tool-probes | ## Profile Findings diff --git a/reports/crabpot-issues.md b/reports/crabpot-issues.md index e287f86..bddee7e 100644 --- a/reports/crabpot-issues.md +++ b/reports/crabpot-issues.md @@ -3,144 +3,59 @@ Generated: deterministic Status: PASS + +## Crabpot Target Context + +- **OpenClaw host track:** `explicit` +- **Plugin artifact track:** `manifest` +- **Fixture set:** `all (57 fixtures)` ## Triage Summary -| Metric | Value | -| -------------------- | ----- | -| Issue findings | 325 | -| 🔴 P0 | 13 | -| 🟠 P1 | 71 | -| Live issues | 13 | -| Live P0 issues | 13 | -| Compat gaps | 13 | -| Deprecation warnings | 33 | -| Inspector gaps | 203 | -| Upstream metadata | 63 | -| Contract probes | 310 | +| Metric | Value | +| -------------------------- | ----- | +| Issue findings | 307 | +| Open issue findings | 307 | +| Runtime-covered findings | 0 | +| Runtime-partial findings | 0 | +| 🔴 P0 | 4 | +| 🟠 P1 | 52 | +| Open 🔴 P0 | 4 | +| Open 🟠 P1 | 52 | +| Live issues | 4 | +| Live P0 issues | 4 | +| Compat gaps | 4 | +| Deprecation warnings | 40 | +| Inspector gaps | 182 | +| Open inspector gaps | 182 | +| Runtime coverage artifacts | 0 | +| Upstream metadata | 77 | +| Contract probes | 299 | ## Triage Overview -| Class | Count | P0 | Meaning | -| ------------------- | ----- | -- | --------------------------------------------------------------------------------------------------------------- | -| live-issue | 13 | 13 | Potential runtime breakage in the target OpenClaw/plugin pair. P0 only when it is not a deprecated compat seam. | -| compat-gap | 13 | - | Compatibility behavior is needed but missing from the target OpenClaw compat registry. | -| deprecation-warning | 33 | - | Plugin uses a supported but deprecated compatibility seam; keep it wired while migration exists. | -| inspector-gap | 203 | - | Plugin Inspector needs stronger capture/probe evidence before making contract judgments. | -| upstream-metadata | 63 | - | Plugin package or manifest metadata should improve upstream; not a target OpenClaw live break by itself. | -| fixture-regression | 0 | - | Fixture no longer exposes an expected seam; investigate fixture pin or scanner drift. | +| Class | Count | P0 | Meaning | +| ------------------- | ----- | -- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| live-issue | 4 | 4 | Potential runtime breakage in the target OpenClaw/plugin pair. P0 only when it is not a deprecated compat seam. | +| compat-gap | 4 | - | Compatibility behavior is needed but missing from the target OpenClaw compat registry. | +| deprecation-warning | 40 | - | Plugin uses a supported but deprecated compatibility seam; keep it wired while migration exists. | +| inspector-gap | 182 | - | Plugin Inspector needs stronger capture/probe evidence before making contract judgments. Runtime-covered rows are proof-backed and not open report work. | +| upstream-metadata | 77 | - | Plugin package or manifest metadata should improve upstream; not a target OpenClaw live break by itself. | +| fixture-regression | 0 | - | Fixture no longer exposes an expected seam; investigate fixture pin or scanner drift. | ## P0 Live Issues -- 🔴 P0 **bluebubbles** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: bluebubbles: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/bluebubbles @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ account-resolve.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/account-resolve.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/accounts.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ actions.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/actions.ts#L13) - - [openclaw/plugin-sdk/bluebubbles @ attachments.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/attachments.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L20) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L5) - - [openclaw/plugin-sdk/bluebubbles @ chat.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/chat.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ config-apply.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-apply.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-schema.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ history.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/history.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ media-send.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/media-send.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ monitor-debounce.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-debounce.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-normalize.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-normalize.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:19](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L19) - - [openclaw/plugin-sdk/bluebubbles @ monitor-shared.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-shared.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor.ts#L9) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/bluebubbles @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/probe.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/reactions.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ request-url.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/request-url.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/runtime.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ targets.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/targets.ts#L8) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L3) - - 🔴 P0 **clawmetry** `live-issue` `core-compat-adapter` - **sdk-export-missing**: clawmetry: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:2](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/src/service.ts#L2) -- 🔴 P0 **diagnostics-otel** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: diagnostics-otel: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L1) - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L2) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L15) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L20) - -- 🔴 P0 **feishu** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: feishu: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/feishu @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L1) - - [openclaw/plugin-sdk/feishu @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L2) - - [openclaw/plugin-sdk/feishu @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/accounts.ts#L2) - - [openclaw/plugin-sdk/feishu @ bitable.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L3) - - [openclaw/plugin-sdk/feishu @ bot.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L1) - - [openclaw/plugin-sdk/feishu @ bot.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L15) - - [openclaw/plugin-sdk/feishu @ card-action.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/card-action.ts#L1) - - [openclaw/plugin-sdk/feishu @ channel.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L13) - - [openclaw/plugin-sdk/feishu @ channel.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L6) - - [openclaw/plugin-sdk/feishu @ chat.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L2) - - [openclaw/plugin-sdk/feishu @ dedup.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dedup.ts#L7) - - [openclaw/plugin-sdk/feishu @ directory.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/directory.ts#L5) - - [openclaw/plugin-sdk/feishu @ docx.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L7) - - [openclaw/plugin-sdk/feishu @ drive.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L2) - - [openclaw/plugin-sdk/feishu @ dynamic-agent.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dynamic-agent.ts#L4) - - [openclaw/plugin-sdk/feishu @ media.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/media.ts#L4) - - [openclaw/plugin-sdk/feishu @ monitor.account.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.account.ts#L3) - - [openclaw/plugin-sdk/feishu @ monitor.startup.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.startup.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.state.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.state.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.transport.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.transport.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.webhook.test-helpers.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.webhook.test-helpers.ts#L3) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L20) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/feishu @ outbound.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/outbound.ts#L3) - - [openclaw/plugin-sdk/feishu @ perm.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L2) - - [openclaw/plugin-sdk/feishu @ policy.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L5) - - [openclaw/plugin-sdk/feishu @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L6) - - [openclaw/plugin-sdk/feishu @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reactions.ts#L1) - - [openclaw/plugin-sdk/feishu @ reply-dispatcher.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reply-dispatcher.ts#L8) - - [openclaw/plugin-sdk/feishu @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/runtime.ts#L2) - - [openclaw/plugin-sdk/feishu @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/feishu @ send-target.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send-target.ts#L1) - - [openclaw/plugin-sdk/feishu @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send.ts#L1) - - [openclaw/plugin-sdk/feishu @ streaming-card.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/streaming-card.ts#L6) - - [openclaw/plugin-sdk/feishu @ tool-account.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-account.ts#L2) - - [openclaw/plugin-sdk/feishu @ tool-factory-test-harness.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-factory-test-harness.ts#L1) - - [openclaw/plugin-sdk/feishu @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/types.ts#L1) - - [openclaw/plugin-sdk/feishu @ typing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/typing.ts#L1) - - [openclaw/plugin-sdk/feishu @ wiki.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L2) - - 🔴 P0 **honcho** `live-issue` `core-compat-adapter` - **sdk-export-missing**: honcho: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11) -- 🔴 P0 **lobster** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: lobster: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/lobster @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L5) - - [openclaw/plugin-sdk/lobster @ lobster-tool.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/lobster-tool.ts#L4) - - [openclaw/plugin-sdk/lobster @ windows-spawn.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/windows-spawn.ts#L5) - - 🔴 P0 **matrix** `live-issue` `core-compat-adapter` - **sdk-export-missing**: matrix: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -176,87 +91,6 @@ Status: PASS - [openclaw/plugin-sdk/matrix @ tool-actions.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/tool-actions.ts#L8) - [openclaw/plugin-sdk/matrix @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/types.ts#L1) -- 🔴 P0 **msteams** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: msteams: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/msteams @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L1) - - [openclaw/plugin-sdk/msteams @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L2) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ payload.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/payload.ts#L1) - - [openclaw/plugin-sdk/msteams @ remote-media.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/remote-media.ts#L1) - - [openclaw/plugin-sdk/msteams @ shared.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L7) - - [openclaw/plugin-sdk/msteams @ shared.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L8) - - [openclaw/plugin-sdk/msteams @ channel.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L18) - - [openclaw/plugin-sdk/msteams @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L9) - - [openclaw/plugin-sdk/msteams @ directory-live.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/directory-live.ts#L1) - - [openclaw/plugin-sdk/msteams @ file-lock.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/file-lock.ts#L1) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ media-helpers.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/media-helpers.ts#L11) - - [openclaw/plugin-sdk/msteams @ messenger.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/messenger.ts#L10) - - [openclaw/plugin-sdk/msteams @ monitor-handler.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler.ts#L1) - - [openclaw/plugin-sdk/msteams @ message-handler.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler/message-handler.ts#L22) - - [openclaw/plugin-sdk/msteams @ monitor.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor.ts#L10) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/msteams @ outbound.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/outbound.ts#L1) - - [openclaw/plugin-sdk/msteams @ policy.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L10) - - [openclaw/plugin-sdk/msteams @ policy.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L20) - - [openclaw/plugin-sdk/msteams @ probe.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/probe.ts#L5) - - [openclaw/plugin-sdk/msteams @ reply-dispatcher.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/reply-dispatcher.ts#L9) - - [openclaw/plugin-sdk/msteams @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/runtime.ts#L2) - - [openclaw/plugin-sdk/msteams @ secret-input.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/secret-input.ts#L5) - - [openclaw/plugin-sdk/msteams @ send-context.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send-context.ts#L5) - - [openclaw/plugin-sdk/msteams @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L1) - - [openclaw/plugin-sdk/msteams @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L2) - - [openclaw/plugin-sdk/msteams @ store-fs.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/store-fs.ts#L2) - - [openclaw/plugin-sdk/msteams @ test-runtime.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/test-runtime.ts#L3) - - [openclaw/plugin-sdk/msteams @ token.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/token.ts#L1) - -- 🔴 P0 **nextcloud-talk** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nextcloud-talk: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L1) - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ accounts.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/accounts.ts#L7) - - [openclaw/plugin-sdk/nextcloud-talk @ channel.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/channel.ts#L22) - - [openclaw/plugin-sdk/nextcloud-talk @ config-schema.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/config-schema.ts#L10) - - [openclaw/plugin-sdk/nextcloud-talk @ inbound.ts:17](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/inbound.ts#L17) - - [openclaw/plugin-sdk/nextcloud-talk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/monitor.ts#L8) - - [openclaw/plugin-sdk/nextcloud-talk @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L14) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ replay-guard.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/replay-guard.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L3) - - [openclaw/plugin-sdk/nextcloud-talk @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ types.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/types.ts#L7) - -- 🔴 P0 **nostr** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nostr: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nostr @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L1) - - [openclaw/plugin-sdk/nostr @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L2) - - [openclaw/plugin-sdk/nostr @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/channel.ts#L9) - - [openclaw/plugin-sdk/nostr @ config-schema.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/config-schema.ts#L2) - - [openclaw/plugin-sdk/nostr @ nostr-profile-http.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/nostr-profile-http.ts#L16) - - [openclaw/plugin-sdk/nostr @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nostr @ types.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/types.ts#L6) - -- 🔴 P0 **voice-call** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: voice-call: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/voice-call @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L5) - - [openclaw/plugin-sdk/voice-call @ cli.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/cli.ts#L5) - - [openclaw/plugin-sdk/voice-call @ config.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/config.ts#L6) - - [openclaw/plugin-sdk/voice-call @ guarded-json-api.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/shared/guarded-json-api.ts#L1) - - [openclaw/plugin-sdk/voice-call @ tts-openai.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/tts-openai.ts#L1) - - [openclaw/plugin-sdk/voice-call @ webhook.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/webhook.ts#L7) - - 🔴 P0 **yuanbao** `live-issue` `core-compat-adapter` - **sdk-export-missing**: yuanbao: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -268,146 +102,20 @@ Status: PASS - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2 - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 -- 🔴 P0 **zalo** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: zalo: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/zalo @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L1) - - [openclaw/plugin-sdk/zalo @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L2) - - [openclaw/plugin-sdk/zalo @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/accounts.ts#L2) - - [openclaw/plugin-sdk/zalo @ actions.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L5) - - [openclaw/plugin-sdk/zalo @ actions.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L6) - - [openclaw/plugin-sdk/zalo @ channel.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L14) - - [openclaw/plugin-sdk/zalo @ channel.ts:34](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L34) - - [openclaw/plugin-sdk/zalo @ config-schema.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/config-schema.ts#L7) - - [openclaw/plugin-sdk/zalo @ group-access.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L1) - - [openclaw/plugin-sdk/zalo @ group-access.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L22) - - [openclaw/plugin-sdk/zalo @ monitor.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L18) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L3) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/zalo @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/probe.ts#L1) - - [openclaw/plugin-sdk/zalo @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/runtime.ts#L2) - - [openclaw/plugin-sdk/zalo @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/zalo @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/send.ts#L1) - - [openclaw/plugin-sdk/zalo @ status-issues.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/status-issues.ts#L1) - - [openclaw/plugin-sdk/zalo @ token.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/token.ts#L3) - - [openclaw/plugin-sdk/zalo @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/types.ts#L1) - ## Live Issues -- 🔴 P0 **bluebubbles** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: bluebubbles: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/bluebubbles @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ account-resolve.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/account-resolve.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/accounts.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ actions.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/actions.ts#L13) - - [openclaw/plugin-sdk/bluebubbles @ attachments.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/attachments.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L20) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L5) - - [openclaw/plugin-sdk/bluebubbles @ chat.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/chat.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ config-apply.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-apply.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-schema.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ history.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/history.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ media-send.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/media-send.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ monitor-debounce.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-debounce.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-normalize.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-normalize.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:19](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L19) - - [openclaw/plugin-sdk/bluebubbles @ monitor-shared.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-shared.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor.ts#L9) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/bluebubbles @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/probe.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/reactions.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ request-url.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/request-url.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/runtime.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ targets.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/targets.ts#L8) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L3) - - 🔴 P0 **clawmetry** `live-issue` `core-compat-adapter` - **sdk-export-missing**: clawmetry: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:2](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/src/service.ts#L2) -- 🔴 P0 **diagnostics-otel** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: diagnostics-otel: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L1) - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L2) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L15) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L20) - -- 🔴 P0 **feishu** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: feishu: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/feishu @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L1) - - [openclaw/plugin-sdk/feishu @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L2) - - [openclaw/plugin-sdk/feishu @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/accounts.ts#L2) - - [openclaw/plugin-sdk/feishu @ bitable.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L3) - - [openclaw/plugin-sdk/feishu @ bot.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L1) - - [openclaw/plugin-sdk/feishu @ bot.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L15) - - [openclaw/plugin-sdk/feishu @ card-action.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/card-action.ts#L1) - - [openclaw/plugin-sdk/feishu @ channel.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L13) - - [openclaw/plugin-sdk/feishu @ channel.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L6) - - [openclaw/plugin-sdk/feishu @ chat.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L2) - - [openclaw/plugin-sdk/feishu @ dedup.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dedup.ts#L7) - - [openclaw/plugin-sdk/feishu @ directory.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/directory.ts#L5) - - [openclaw/plugin-sdk/feishu @ docx.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L7) - - [openclaw/plugin-sdk/feishu @ drive.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L2) - - [openclaw/plugin-sdk/feishu @ dynamic-agent.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dynamic-agent.ts#L4) - - [openclaw/plugin-sdk/feishu @ media.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/media.ts#L4) - - [openclaw/plugin-sdk/feishu @ monitor.account.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.account.ts#L3) - - [openclaw/plugin-sdk/feishu @ monitor.startup.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.startup.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.state.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.state.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.transport.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.transport.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.webhook.test-helpers.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.webhook.test-helpers.ts#L3) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L20) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/feishu @ outbound.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/outbound.ts#L3) - - [openclaw/plugin-sdk/feishu @ perm.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L2) - - [openclaw/plugin-sdk/feishu @ policy.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L5) - - [openclaw/plugin-sdk/feishu @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L6) - - [openclaw/plugin-sdk/feishu @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reactions.ts#L1) - - [openclaw/plugin-sdk/feishu @ reply-dispatcher.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reply-dispatcher.ts#L8) - - [openclaw/plugin-sdk/feishu @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/runtime.ts#L2) - - [openclaw/plugin-sdk/feishu @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/feishu @ send-target.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send-target.ts#L1) - - [openclaw/plugin-sdk/feishu @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send.ts#L1) - - [openclaw/plugin-sdk/feishu @ streaming-card.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/streaming-card.ts#L6) - - [openclaw/plugin-sdk/feishu @ tool-account.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-account.ts#L2) - - [openclaw/plugin-sdk/feishu @ tool-factory-test-harness.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-factory-test-harness.ts#L1) - - [openclaw/plugin-sdk/feishu @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/types.ts#L1) - - [openclaw/plugin-sdk/feishu @ typing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/typing.ts#L1) - - [openclaw/plugin-sdk/feishu @ wiki.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L2) - - 🔴 P0 **honcho** `live-issue` `core-compat-adapter` - **sdk-export-missing**: honcho: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11) -- 🔴 P0 **lobster** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: lobster: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/lobster @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L5) - - [openclaw/plugin-sdk/lobster @ lobster-tool.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/lobster-tool.ts#L4) - - [openclaw/plugin-sdk/lobster @ windows-spawn.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/windows-spawn.ts#L5) - - 🔴 P0 **matrix** `live-issue` `core-compat-adapter` - **sdk-export-missing**: matrix: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -443,87 +151,6 @@ Status: PASS - [openclaw/plugin-sdk/matrix @ tool-actions.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/tool-actions.ts#L8) - [openclaw/plugin-sdk/matrix @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/types.ts#L1) -- 🔴 P0 **msteams** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: msteams: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/msteams @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L1) - - [openclaw/plugin-sdk/msteams @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L2) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ payload.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/payload.ts#L1) - - [openclaw/plugin-sdk/msteams @ remote-media.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/remote-media.ts#L1) - - [openclaw/plugin-sdk/msteams @ shared.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L7) - - [openclaw/plugin-sdk/msteams @ shared.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L8) - - [openclaw/plugin-sdk/msteams @ channel.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L18) - - [openclaw/plugin-sdk/msteams @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L9) - - [openclaw/plugin-sdk/msteams @ directory-live.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/directory-live.ts#L1) - - [openclaw/plugin-sdk/msteams @ file-lock.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/file-lock.ts#L1) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ media-helpers.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/media-helpers.ts#L11) - - [openclaw/plugin-sdk/msteams @ messenger.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/messenger.ts#L10) - - [openclaw/plugin-sdk/msteams @ monitor-handler.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler.ts#L1) - - [openclaw/plugin-sdk/msteams @ message-handler.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler/message-handler.ts#L22) - - [openclaw/plugin-sdk/msteams @ monitor.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor.ts#L10) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/msteams @ outbound.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/outbound.ts#L1) - - [openclaw/plugin-sdk/msteams @ policy.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L10) - - [openclaw/plugin-sdk/msteams @ policy.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L20) - - [openclaw/plugin-sdk/msteams @ probe.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/probe.ts#L5) - - [openclaw/plugin-sdk/msteams @ reply-dispatcher.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/reply-dispatcher.ts#L9) - - [openclaw/plugin-sdk/msteams @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/runtime.ts#L2) - - [openclaw/plugin-sdk/msteams @ secret-input.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/secret-input.ts#L5) - - [openclaw/plugin-sdk/msteams @ send-context.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send-context.ts#L5) - - [openclaw/plugin-sdk/msteams @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L1) - - [openclaw/plugin-sdk/msteams @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L2) - - [openclaw/plugin-sdk/msteams @ store-fs.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/store-fs.ts#L2) - - [openclaw/plugin-sdk/msteams @ test-runtime.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/test-runtime.ts#L3) - - [openclaw/plugin-sdk/msteams @ token.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/token.ts#L1) - -- 🔴 P0 **nextcloud-talk** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nextcloud-talk: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L1) - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ accounts.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/accounts.ts#L7) - - [openclaw/plugin-sdk/nextcloud-talk @ channel.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/channel.ts#L22) - - [openclaw/plugin-sdk/nextcloud-talk @ config-schema.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/config-schema.ts#L10) - - [openclaw/plugin-sdk/nextcloud-talk @ inbound.ts:17](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/inbound.ts#L17) - - [openclaw/plugin-sdk/nextcloud-talk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/monitor.ts#L8) - - [openclaw/plugin-sdk/nextcloud-talk @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L14) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ replay-guard.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/replay-guard.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L3) - - [openclaw/plugin-sdk/nextcloud-talk @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ types.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/types.ts#L7) - -- 🔴 P0 **nostr** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nostr: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nostr @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L1) - - [openclaw/plugin-sdk/nostr @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L2) - - [openclaw/plugin-sdk/nostr @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/channel.ts#L9) - - [openclaw/plugin-sdk/nostr @ config-schema.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/config-schema.ts#L2) - - [openclaw/plugin-sdk/nostr @ nostr-profile-http.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/nostr-profile-http.ts#L16) - - [openclaw/plugin-sdk/nostr @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nostr @ types.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/types.ts#L6) - -- 🔴 P0 **voice-call** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: voice-call: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/voice-call @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L5) - - [openclaw/plugin-sdk/voice-call @ cli.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/cli.ts#L5) - - [openclaw/plugin-sdk/voice-call @ config.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/config.ts#L6) - - [openclaw/plugin-sdk/voice-call @ guarded-json-api.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/shared/guarded-json-api.ts#L1) - - [openclaw/plugin-sdk/voice-call @ tts-openai.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/tts-openai.ts#L1) - - [openclaw/plugin-sdk/voice-call @ webhook.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/webhook.ts#L7) - - 🔴 P0 **yuanbao** `live-issue` `core-compat-adapter` - **sdk-export-missing**: yuanbao: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -535,114 +162,32 @@ Status: PASS - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2 - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 -- 🔴 P0 **zalo** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: zalo: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/zalo @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L1) - - [openclaw/plugin-sdk/zalo @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L2) - - [openclaw/plugin-sdk/zalo @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/accounts.ts#L2) - - [openclaw/plugin-sdk/zalo @ actions.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L5) - - [openclaw/plugin-sdk/zalo @ actions.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L6) - - [openclaw/plugin-sdk/zalo @ channel.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L14) - - [openclaw/plugin-sdk/zalo @ channel.ts:34](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L34) - - [openclaw/plugin-sdk/zalo @ config-schema.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/config-schema.ts#L7) - - [openclaw/plugin-sdk/zalo @ group-access.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L1) - - [openclaw/plugin-sdk/zalo @ group-access.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L22) - - [openclaw/plugin-sdk/zalo @ monitor.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L18) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L3) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/zalo @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/probe.ts#L1) - - [openclaw/plugin-sdk/zalo @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/runtime.ts#L2) - - [openclaw/plugin-sdk/zalo @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/zalo @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/send.ts#L1) - - [openclaw/plugin-sdk/zalo @ status-issues.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/status-issues.ts#L1) - - [openclaw/plugin-sdk/zalo @ token.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/token.ts#L3) - - [openclaw/plugin-sdk/zalo @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/types.ts#L1) - ## Compat Gaps -- 🟠 P1 **bluebubbles** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: bluebubbles: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **clawmetry** `compat-gap` `core-compat-adapter` - **missing-compat-record**: clawmetry: compat-dependent behavior lacks registry coverage - state: open · compat:missing - evidence: - plugin-sdk-export-aliases -- 🟠 P1 **diagnostics-otel** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: diagnostics-otel: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **feishu** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: feishu: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **honcho** `compat-gap` `core-compat-adapter` - **missing-compat-record**: honcho: compat-dependent behavior lacks registry coverage - state: open · compat:missing - evidence: - plugin-sdk-export-aliases -- 🟠 P1 **lobster** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: lobster: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **matrix** `compat-gap` `core-compat-adapter` - **missing-compat-record**: matrix: compat-dependent behavior lacks registry coverage - state: open · compat:missing - evidence: - plugin-sdk-export-aliases -- 🟠 P1 **msteams** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: msteams: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **nextcloud-talk** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: nextcloud-talk: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **nostr** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: nostr: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **voice-call** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: voice-call: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **yuanbao** `compat-gap` `core-compat-adapter` - **missing-compat-record**: yuanbao: compat-dependent behavior lacks registry coverage - state: open · compat:missing - evidence: - plugin-sdk-export-aliases -- 🟠 P1 **zalo** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: zalo: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - ## Deprecation Warnings - 🟡 P2 **a2a-gateway** `deprecation-warning` `core-compat-adapter` @@ -720,6 +265,18 @@ Status: PASS - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/runtime.ts#L1) - [openclaw/plugin-sdk @ agent.ts:8](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/utils/agent.ts#L8) +- 🟡 P2 **discord** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: discord: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - discord + +- 🟡 P2 **feishu** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: feishu: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - feishu + - 🟡 P2 **hasdata** `deprecation-warning` `core-compat-adapter` - **provider-auth-env-vars**: hasdata: providerAuthEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated @@ -767,13 +324,13 @@ Status: PASS - **legacy-before-agent-start**: kitchen-sink: legacy before_agent_start hook compatibility is still used - state: open · compat:deprecated · deprecated - evidence: - - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L11) + - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L11) - 🟡 P2 **kitchen-sink** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: kitchen-sink: root plugin SDK barrel is still used by fixtures - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-sdk-imports.ts#L2) + - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-sdk-imports.ts#L2) - 🟡 P2 **llm-trace-phoenix** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: llm-trace-phoenix: root plugin SDK barrel is still used by fixtures @@ -854,12 +411,30 @@ Status: PASS - [openclaw/plugin-sdk @ command-auth.ts:1](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/src/shared/command-auth.ts#L1) - [openclaw/plugin-sdk @ ws-adapter.ts:14](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/src/ws-adapter.ts#L14) +- 🟡 P2 **msteams** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: msteams: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - msteams + - 🟡 P2 **nemoclaw** `deprecation-warning` `core-compat-adapter` - **legacy-before-agent-start**: nemoclaw: legacy before_agent_start hook compatibility is still used - state: open · compat:deprecated · deprecated - evidence: - [before_agent_start @ runtime-context.ts:474](https://github.com/NVIDIA/NemoClaw/blob/f9d21afa193c2b67cb55e79eca03db40f0fbe836/nemoclaw/src/runtime-context.ts#L474) +- 🟡 P2 **nextcloud-talk** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: nextcloud-talk: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - nextcloud-talk + +- 🟡 P2 **nostr** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: nostr: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - nostr + - 🟡 P2 **openclaw-qqbot** `deprecation-warning` `core-compat-adapter` - **channel-env-vars**: openclaw-qqbot: channelEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated @@ -909,13 +484,10 @@ Status: PASS - [openclaw/plugin-sdk @ remind.ts:1](https://github.com/tencent-connect/openclaw-qqbot/blob/3eee78922ed0b19af5c4c55f1dfe7d1c848e31f5/src/tools/remind.ts#L1) - 🟡 P2 **synology-chat** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: synology-chat: root plugin SDK barrel is still used by fixtures + - **channel-env-vars**: synology-chat: channelEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/channel.ts#L12) - - [openclaw/plugin-sdk @ runtime.ts:7](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/runtime.ts#L7) + - synology-chat - 🟡 P2 **telnyx-sms** `deprecation-warning` `core-compat-adapter` - **channel-env-vars**: telnyx-sms: channelEnvVars legacy manifest metadata must stay covered @@ -923,52 +495,17 @@ Status: PASS - evidence: - telnyx-sms -- 🟡 P2 **tlon** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: tlon: root plugin SDK barrel is still used by fixtures - - state: open · compat:deprecated · deprecated - - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L12) - - [openclaw/plugin-sdk @ channel.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L7) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ discovery.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/discovery.ts#L1) - - [openclaw/plugin-sdk @ history.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/history.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L2) - - [openclaw/plugin-sdk @ index.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L3) - - [openclaw/plugin-sdk @ onboarding.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L1) - - [openclaw/plugin-sdk @ onboarding.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L9) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ types.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/types.ts#L1) - - [openclaw/plugin-sdk @ auth.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/auth.ts#L1) - - [openclaw/plugin-sdk @ base-url.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/base-url.ts#L1) - - [openclaw/plugin-sdk @ channel-client.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-client.ts#L1) - - [openclaw/plugin-sdk @ channel-ops.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-ops.ts#L1) - - [openclaw/plugin-sdk @ context.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/context.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L2) - - [openclaw/plugin-sdk @ sse-client.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/sse-client.ts#L2) - - 🟡 P2 **twitch** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: twitch: root plugin SDK barrel is still used by fixtures + - **channel-env-vars**: twitch: channelEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L2) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ config.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config.ts#L1) - - [openclaw/plugin-sdk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L8) - - [openclaw/plugin-sdk @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L9) - - [openclaw/plugin-sdk @ onboarding.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L12) - - [openclaw/plugin-sdk @ onboarding.ts:5](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L5) - - [openclaw/plugin-sdk @ plugin.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L8) - - [openclaw/plugin-sdk @ plugin.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L9) - - [openclaw/plugin-sdk @ probe.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/probe.ts#L3) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ send.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/send.ts#L8) - - [openclaw/plugin-sdk @ status.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/status.ts#L7) - - [openclaw/plugin-sdk @ test-fixtures.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/test-fixtures.ts#L1) - - [openclaw/plugin-sdk @ twitch-client.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/twitch-client.ts#L3) + - twitch + +- 🟡 P2 **voice-call** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: voice-call: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - voice-call - 🟡 P2 **yuanbao** `deprecation-warning` `core-compat-adapter` - **channel-env-vars**: yuanbao: channelEnvVars legacy manifest metadata must stay covered @@ -976,6 +513,18 @@ Status: PASS - evidence: - yuanbao +- 🟡 P2 **zalo** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: zalo: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - zalo + +- 🟡 P2 **zalouser** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: zalouser: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - zalouser + ## Inspector Proof Gaps - 🟠 P1 **a2a-gateway** `inspector-gap` `inspector-follow-up` @@ -989,12 +538,6 @@ Status: PASS - [registerGatewayMethod @ index.ts:669](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L669) - [registerService @ index.ts:857](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L857) -- 🟠 P1 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: bluebubbles: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - - 🟠 P1 **clawmetry** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: clawmetry: runtime registrations need capture before contract judgment - state: open · compat:active @@ -1018,7 +561,7 @@ Status: PASS - **registration-capture-gap**: codex: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts#L33) + - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts#L33) - 🟠 P1 **codex-app-server** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: codex-app-server: runtime registrations need capture before contract judgment @@ -1041,20 +584,20 @@ Status: PASS - **registration-capture-gap**: diagnostics-otel: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L11) + - [registerService @ index.ts:9](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts#L9) - 🟠 P1 **diagnostics-prometheus** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: diagnostics-prometheus: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L12) - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L11) + - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L12) + - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L11) - 🟠 P1 **diffs** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: diffs: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L57) + - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/src/plugin.ts#L57) - 🟠 P1 **dingtalk-connector** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: dingtalk-connector: runtime registrations need capture before contract judgment @@ -1075,36 +618,26 @@ Status: PASS - [registerGatewayMethod @ gateway-methods.ts:652](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L652) - [registerGatewayMethod @ gateway-methods.ts:719](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L719) -- 🟠 P1 **discord** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: discord: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) - -- 🟠 P1 **feishu** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: feishu: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) - - 🟠 P1 **google-meet** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: google-meet: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerGatewayMethod @ index.ts:631](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L631) - - [registerGatewayMethod @ index.ts:652](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L652) - - [registerGatewayMethod @ index.ts:674](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L674) - - [registerGatewayMethod @ index.ts:686](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L686) - - [registerGatewayMethod @ index.ts:704](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L704) - - [registerGatewayMethod @ index.ts:722](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L722) - - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L746) - - [registerGatewayMethod @ index.ts:768](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L768) - - [registerGatewayMethod @ index.ts:792](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L792) - - [registerGatewayMethod @ index.ts:817](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L817) - - [registerGatewayMethod @ index.ts:828](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L828) - - [registerGatewayMethod @ index.ts:845](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L845) - - [registerGatewayMethod @ index.ts:862](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L862) - - [registerNodeHostCommand @ index.ts:1018](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L1018) + - [registerGatewayMethod @ index.ts:703](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L703) + - [registerGatewayMethod @ index.ts:724](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L724) + - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L746) + - [registerGatewayMethod @ index.ts:758](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L758) + - [registerGatewayMethod @ index.ts:776](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L776) + - [registerGatewayMethod @ index.ts:795](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L795) + - [registerGatewayMethod @ index.ts:819](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L819) + - [registerGatewayMethod @ index.ts:841](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L841) + - [registerGatewayMethod @ index.ts:865](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L865) + - [registerGatewayMethod @ index.ts:890](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L890) + - [registerGatewayMethod @ index.ts:901](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L901) + - [registerGatewayMethod @ index.ts:918](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L918) + - [registerGatewayMethod @ index.ts:937](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L937) + - [registerGatewayMethod @ index.ts:954](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L954) + - [registerGatewayMethod @ index.ts:975](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L975) + - [registerNodeHostCommand @ index.ts:1143](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L1143) - 🟠 P1 **honcho** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: honcho: conversation-access hooks need privacy-boundary probes @@ -1135,55 +668,55 @@ Status: PASS - **before-tool-call-probe**: kitchen-sink: before_tool_call needs terminal/block/approval probes - state: open · compat:active - evidence: - - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L19) + - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L19) - 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: kitchen-sink: conversation-access hooks need privacy-boundary probes - state: open · compat:active - evidence: - - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L7) - - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L25) - - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L26) + - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L7) + - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L25) + - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L26) - 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: kitchen-sink: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L7) - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) - - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L12) - - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L50) - - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L51) - - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L13) - - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L95) - - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L14) - - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L15) - - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/scripts/sync-surface.mjs#L113) - - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L17) - - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L86) - - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L18) - - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L19) - - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L107) - - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L20) - - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L21) - - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L105) - - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L23) - - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L53) - - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L25) - - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L26) - - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L92) - - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L28) - - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L29) - - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L30) - - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L111) - - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L31) - - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L34) - - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L35) - - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L39) - - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L41) - - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L42) - - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L104) + - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L7) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) + - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L12) + - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L50) + - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L51) + - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L13) + - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L95) + - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L14) + - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L15) + - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/scripts/sync-surface.mjs#L113) + - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L17) + - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L86) + - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L18) + - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L19) + - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L107) + - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L20) + - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L21) + - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L105) + - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L23) + - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L53) + - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L25) + - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L26) + - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L92) + - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L28) + - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L29) + - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L30) + - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L111) + - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L31) + - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L34) + - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L35) + - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L39) + - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L41) + - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L42) + - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L104) - 🟠 P1 **lightclawbot** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: lightclawbot: runtime registrations need capture before contract judgment @@ -1227,14 +760,14 @@ Status: PASS - **conversation-access-hook**: memory-lancedb: conversation-access hooks need privacy-boundary probes - state: open · compat:active - evidence: - - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1005) + - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1005) - 🟠 P1 **memory-lancedb** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: memory-lancedb: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1085) - - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L586) + - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1085) + - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L586) - 🟠 P1 **memory-tencentdb** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: memory-tencentdb: conversation-access hooks need privacy-boundary probes @@ -1261,12 +794,6 @@ Status: PASS - [registerChannel @ index.ts:31](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L31) - [registerHttpRoute @ index.ts:34](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L34) -- 🟠 P1 **msteams** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: msteams: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) - - 🟠 P1 **nemoclaw** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: nemoclaw: before_tool_call needs terminal/block/approval probes - state: open · compat:active @@ -1279,24 +806,17 @@ Status: PASS - evidence: - [registerCommand @ index.ts:336](https://github.com/NVIDIA/NemoClaw/blob/f9d21afa193c2b67cb55e79eca03db40f0fbe836/nemoclaw/src/index.ts#L336) -- 🟠 P1 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: nextcloud-talk: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) - - 🟠 P1 **nostr** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: nostr: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) - - [registerHttpRoute @ index.ts:64](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L64) + - [registerHttpRoute @ index.ts:89](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts#L89) - 🟠 P1 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: openclaw-qqbot: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) + - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) - 🟠 P1 **openclaw-telemetry** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: openclaw-telemetry: before_tool_call needs terminal/block/approval probes @@ -1356,41 +876,27 @@ Status: PASS - [registerService @ index.ts:301](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L301) - [registerService @ index.ts:307](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L307) -- 🟠 P1 **synology-chat** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: synology-chat: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) - - 🟠 P1 **telnyx-sms** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: telnyx-sms: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - [registerHttpRoute @ index.ts:259](https://github.com/team-telnyx/telnyx-openclaw-sms-channel/blob/dee567716ca56d49464bf6354393f3656d92a2b3/index.ts#L259) -- 🟠 P1 **tlon** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: tlon: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) - -- 🟠 P1 **twitch** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: twitch: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) - - 🟠 P1 **voice-call** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: voice-call: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerGatewayMethod @ index.ts:261](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L261) - - [registerGatewayMethod @ index.ts:294](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L294) - - [registerGatewayMethod @ index.ts:311](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L311) - - [registerGatewayMethod @ index.ts:327](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L327) - - [registerGatewayMethod @ index.ts:349](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L349) - - [registerGatewayMethod @ index.ts:376](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L376) - - [registerService @ index.ts:532](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L532) + - [registerConfigMigration @ setup-api.ts:45](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/setup-api.ts#L45) + - [registerGatewayMethod @ index.ts:390](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L390) + - [registerGatewayMethod @ index.ts:420](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L420) + - [registerGatewayMethod @ index.ts:437](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L437) + - [registerGatewayMethod @ index.ts:457](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L457) + - [registerGatewayMethod @ index.ts:478](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L478) + - [registerGatewayMethod @ index.ts:513](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L513) + - [registerGatewayMethod @ index.ts:536](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L536) + - [registerGatewayMethod @ index.ts:558](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L558) + - [registerGatewayMethod @ index.ts:581](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L581) + - [registerService @ index.ts:748](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L748) - 🟠 P1 **wecom** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: wecom: before_tool_call needs terminal/block/approval probes @@ -1416,18 +922,6 @@ Status: PASS - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:32 - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:33 -- 🟠 P1 **zalo** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: zalo: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) - -- 🟠 P1 **zalouser** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: zalouser: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) - - 🟡 P2 **a2a-gateway** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: a2a-gateway: cold import requires dependency installation in an isolated workspace - state: open · compat:none @@ -1494,29 +988,18 @@ Status: PASS - evidence: - [registerTool @ index.ts:13](https://github.com/apify/apify-openclaw-plugin/blob/41f49794d230f7ad092d1c699ee4d91fecf6ba91/src/index.ts#L13) -- 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: bluebubbles: channel runtime needs envelope/config probes - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - -- 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **package-dependency-install-required**: bluebubbles: cold import requires dependency installation in an isolated workspace - - state: open · compat:none - - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) - - 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: bluebubbles: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/setup-entry.ts) - 🟡 P2 **brave-plugin** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: brave-plugin: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/brave/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/brave/index.ts) - 🟡 P2 **clawmetry** `inspector-gap` `inspector-follow-up` - **package-build-artifact-entrypoint**: clawmetry: cold import requires package build output @@ -1559,17 +1042,17 @@ Status: PASS - **package-dependency-install-required**: codex: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) + - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) - 🟡 P2 **codex** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: codex: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts) - 🟡 P2 **codex-app-server** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: codex-app-server: cold import requires dependency installation in an isolated workspace @@ -1637,50 +1120,44 @@ Status: PASS - **package-dependency-install-required**: diagnostics-otel: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) - 🟡 P2 **diagnostics-otel** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diagnostics-otel: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts) - 🟡 P2 **diagnostics-prometheus** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diagnostics-prometheus: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts) - 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: diffs: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) + - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) - 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diffs: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/index.ts) - -- 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: diffs: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ plugin.ts:42](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L42) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/index.ts) - 🟡 P2 **dingtalk-connector** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: dingtalk-connector: channel runtime needs envelope/config probes @@ -1706,68 +1183,56 @@ Status: PASS - [mammoth @ package.json](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/package.json) - 🟡 P2 **discord** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: discord: channel runtime needs envelope/config probes - - state: open · compat:active + - **package-dependency-install-required**: discord: cold import requires dependency installation in an isolated workspace + - state: open · compat:none - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) + - [@discordjs/voice @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [discord-api-types @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [opusscript @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) - 🟡 P2 **discord** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: discord: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/setup-entry.ts) - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: feishu: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) + - [createChatChannelPlugin @ channel.ts:580](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/src/channel.ts#L580) - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: feishu: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) + - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: feishu: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts) - -- 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: feishu: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ bitable.ts:559](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L559) - - [registerTool @ chat.ts:95](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L95) - - [registerTool @ docx.ts:1262](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1262) - - [registerTool @ docx.ts:1436](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1436) - - [registerTool @ drive.ts:186](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L186) - - [registerTool @ perm.ts:135](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L135) - - [registerTool @ wiki.ts:174](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L174) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/setup-entry.ts) - 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: google-meet: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) - 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: google-meet: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts) - -- 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: google-meet: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:883](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L883) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts) - 🟡 P2 **hasdata** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: hasdata: cold import requires dependency installation in an isolated workspace @@ -1838,8 +1303,8 @@ Status: PASS - **channel-contract-probe**: kitchen-sink: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) - 🟡 P2 **lightclawbot** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: lightclawbot: channel runtime needs envelope/config probes @@ -1870,19 +1335,15 @@ Status: PASS - **package-dependency-install-required**: lobster: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) + - [@clawdbot/lobster @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) - 🟡 P2 **lobster** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: lobster: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts) - -- 🟡 P2 **lobster** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: lobster: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L9) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/index.ts) - 🟡 P2 **lossless-claw** `inspector-gap` `inspector-follow-up` - **package-build-artifact-entrypoint**: lossless-claw: cold import requires package build output @@ -1965,23 +1426,15 @@ Status: PASS - **package-dependency-install-required**: memory-lancedb: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [openai @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) + - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [openai @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) - 🟡 P2 **memory-lancedb** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: memory-lancedb: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts) - -- 🟡 P2 **memory-lancedb** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: memory-lancedb: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:643](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L643) - - [registerTool @ index.ts:694](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L694) - - [registerTool @ index.ts:757](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L757) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts) - 🟡 P2 **memory-tencentdb** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: memory-tencentdb: cold import requires dependency installation in an isolated workspace @@ -2051,20 +1504,26 @@ Status: PASS - **channel-contract-probe**: msteams: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:406](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/src/channel.ts#L406) - 🟡 P2 **msteams** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: msteams: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@microsoft/agents-hosting @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) - - [express @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) + - [@azure/identity @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.apps @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [express @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jsonwebtoken @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jwks-rsa @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) - 🟡 P2 **msteams** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: msteams: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/setup-entry.ts) - 🟡 P2 **nemoclaw** `inspector-gap` `inspector-follow-up` - **package-build-artifact-entrypoint**: nemoclaw: cold import requires package build output @@ -2086,62 +1545,57 @@ Status: PASS - **channel-contract-probe**: nextcloud-talk: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:69](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/src/channel.ts#L69) - 🟡 P2 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: nextcloud-talk: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/package.json) - 🟡 P2 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: nextcloud-talk: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/setup-entry.ts) - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: nostr: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) + - [createChatChannelPlugin @ channel.ts:88](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/src/channel.ts#L88) - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: nostr: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) + - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: nostr: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/setup-entry.ts) - 🟡 P2 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: openclaw-qqbot: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) + - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) - 🟡 P2 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: openclaw-qqbot: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/setup-entry.ts) - -- 🟡 P2 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: openclaw-qqbot: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ channel.ts:32](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/channel.ts#L32) - - [registerTool @ remind.ts:90](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/remind.ts#L90) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/setup-entry.ts) - 🟡 P2 **openclaw-telemetry** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: openclaw-telemetry: cold import needs TypeScript source entrypoint support @@ -2226,19 +1680,20 @@ Status: PASS - **channel-contract-probe**: synology-chat: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:209](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/src/channel.ts#L209) - 🟡 P2 **synology-chat** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: synology-chat: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/package.json) - 🟡 P2 **synology-chat** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: synology-chat: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/setup-entry.ts) - 🟡 P2 **telnyx-sms** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: telnyx-sms: channel runtime needs envelope/config probes @@ -2257,61 +1712,52 @@ Status: PASS - **channel-contract-probe**: tlon: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:61](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/src/channel.ts#L61) - 🟡 P2 **tlon** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: tlon: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) + - [@aws-sdk/client-s3 @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@aws-sdk/s3-request-presigner @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@tloncorp/tlon-skill @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) - 🟡 P2 **tlon** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: tlon: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts) - -- 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: twitch: channel runtime needs envelope/config probes - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/setup-entry.ts) - 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: twitch: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) + - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) - 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: twitch: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/setup-entry.ts) - 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: voice-call: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) - 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: voice-call: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts) - -- 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: voice-call: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:399](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L399) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts) - 🟡 P2 **web-search-plus** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: web-search-plus: cold import needs TypeScript source entrypoint support @@ -2353,18 +1799,18 @@ Status: PASS - **package-dependency-install-required**: whatsapp: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) + - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) - 🟡 P2 **whatsapp** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: whatsapp: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/setup-entry.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/setup-entry.ts) - 🟡 P2 **yuanbao** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: yuanbao: channel runtime needs envelope/config probes @@ -2404,46 +1850,44 @@ Status: PASS - **channel-contract-probe**: zalo: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:159](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/src/channel.ts#L159) - 🟡 P2 **zalo** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: zalo: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/package.json) - 🟡 P2 **zalo** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: zalo: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/setup-entry.ts) - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: zalouser: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) + - [createChatChannelPlugin @ channel.ts:68](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/src/channel.ts#L68) - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: zalouser: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) + - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: zalouser: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/setup-entry.ts) -- 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: zalouser: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L16) +## Runtime-Covered Inspector Gaps + +_none_ ## Upstream Metadata Issues @@ -2481,10 +1925,17 @@ Status: PASS - [icon @ openclaw.plugin.json](https://github.com/agentchatme/agentchat/blob/1460cece00ebd3829fb39d5db5ee23050937ed02/integrations/openclaw-channel/openclaw.plugin.json) - 🟡 P2 **bluebubbles** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: bluebubbles: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: bluebubbles: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **bluebubbles** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: bluebubbles: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **brave-plugin** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: brave-plugin: OpenClaw package install metadata is incomplete @@ -2497,7 +1948,7 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **clawmetry** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: clawmetry: OpenClaw package install metadata is incomplete @@ -2523,7 +1974,7 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.5.1-beta.1 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **composio** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: composio: plugin API compatibility range is missing @@ -2544,17 +1995,18 @@ Status: PASS - [package.json](https://github.com/largezhou/openclaw-dingtalk/blob/74d22da7335f261ec5febe2663bed6b81068b7ec/package.json) - 🟡 P2 **diagnostics-otel** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: diagnostics-otel: plugin API compatibility range is missing + - **package-min-host-version-drift**: diagnostics-otel: OpenClaw package minimum host version drifts from build target - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **diagnostics-prometheus** `upstream-metadata` `plugin-upstream-fix` - - **package-install-metadata-incomplete**: diagnostics-prometheus: OpenClaw package install metadata is incomplete + - **package-min-host-version-drift**: diagnostics-prometheus: OpenClaw package minimum host version drifts from build target - state: open · compat:none - evidence: - - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec - - openclaw.release.publishToNpm requires openclaw.install.npmSpec + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **diffs** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: diffs: OpenClaw package install metadata is incomplete @@ -2567,7 +2019,7 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.30 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **dingtalk-connector** `upstream-metadata` `plugin-upstream-fix` - **manifest-unknown-fields**: dingtalk-connector: manifest uses unsupported top-level fields @@ -2583,16 +2035,30 @@ Status: PASS - [package.json](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/package.json) - 🟡 P2 **discord** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: discord: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: discord: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **discord** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: discord: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **feishu** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: feishu: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: feishu: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **feishu** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: feishu: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **google-meet** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: google-meet: OpenClaw package install metadata is incomplete @@ -2605,14 +2071,7 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.20 - - buildOpenClawVersion:2026.5.1-beta.2 - -- 🟡 P2 **inworld-tts** `upstream-metadata` `plugin-upstream-fix` - - **package-min-host-version-drift**: inworld-tts: OpenClaw package minimum host version drifts from build target - - state: open · compat:none - - evidence: - - minHostVersion:>=2026.4.1 - - buildOpenClawVersion:2026.4.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **lightclawbot** `upstream-metadata` `plugin-upstream-fix` - **manifest-unknown-fields**: lightclawbot: manifest uses unsupported top-level fields @@ -2634,10 +2093,17 @@ Status: PASS - plugins/lightclawbot/.crabpot-package/package.json - 🟡 P2 **lobster** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: lobster: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: lobster: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **lobster** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: lobster: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **matrix** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: matrix: plugin API compatibility range is missing @@ -2668,7 +2134,13 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟡 P2 **memory-tencentdb** `upstream-metadata` `plugin-upstream-fix` + - **package-openclaw-unsupported-metadata**: memory-tencentdb: package declares unsupported OpenClaw metadata + - state: open · compat:none + - evidence: + - openclaw.bundle - 🟡 P2 **memos-cloud** `upstream-metadata` `plugin-upstream-fix` - **manifest-unknown-fields**: memos-cloud: manifest uses unsupported top-level fields @@ -2695,10 +2167,17 @@ Status: PASS - [package.json](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/package.json) - 🟡 P2 **msteams** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: msteams: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: msteams: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **msteams** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: msteams: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **nemoclaw** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: nemoclaw: plugin API compatibility range is missing @@ -2707,16 +2186,30 @@ Status: PASS - [package.json](https://github.com/NVIDIA/NemoClaw/blob/f9d21afa193c2b67cb55e79eca03db40f0fbe836/nemoclaw/package.json) - 🟡 P2 **nextcloud-talk** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: nextcloud-talk: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: nextcloud-talk: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **nextcloud-talk** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: nextcloud-talk: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **nostr** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: nostr: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: nostr: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **nostr** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: nostr: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **openclaw-qqbot** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: openclaw-qqbot: OpenClaw package install metadata is incomplete @@ -2729,7 +2222,7 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **openclaw-telemetry** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: openclaw-telemetry: plugin API compatibility range is missing @@ -2763,28 +2256,56 @@ Status: PASS - [package.json](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/package.json) - 🟡 P2 **synology-chat** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: synology-chat: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: synology-chat: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **synology-chat** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: synology-chat: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **tlon** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: tlon: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: tlon: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **tlon** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: tlon: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **twitch** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: twitch: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: twitch: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **twitch** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: twitch: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **voice-call** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: voice-call: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: voice-call: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **voice-call** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: voice-call: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **web-search-plus** `upstream-metadata` `plugin-upstream-fix` - **manifest-unknown-fields**: web-search-plus: manifest uses unsupported top-level fields @@ -2809,7 +2330,13 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.25 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟡 P2 **yuanbao** `upstream-metadata` `plugin-upstream-fix` + - **package-openclaw-unsupported-metadata**: yuanbao: package declares unsupported OpenClaw metadata + - state: open · compat:none + - evidence: + - openclaw.bundle - 🟡 P2 **yuanbao** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: yuanbao: plugin API compatibility range is missing @@ -2818,16 +2345,30 @@ Status: PASS - plugins/yuanbao/.crabpot-package/package.json - 🟡 P2 **zalo** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: zalo: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: zalo: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **zalo** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: zalo: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **zalouser** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: zalouser: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: zalouser: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **zalouser** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: zalouser: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **clawrouter** `upstream-metadata` `plugin-upstream-fix` - **security-manifest-schema-unavailable**: clawrouter: plugin security manifest references an unavailable schema @@ -2843,116 +2384,18 @@ Status: PASS ## Issues -- 🔴 P0 **bluebubbles** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: bluebubbles: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/bluebubbles @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ account-resolve.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/account-resolve.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/accounts.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ actions.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/actions.ts#L13) - - [openclaw/plugin-sdk/bluebubbles @ attachments.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/attachments.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L20) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L5) - - [openclaw/plugin-sdk/bluebubbles @ chat.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/chat.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ config-apply.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-apply.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-schema.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ history.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/history.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ media-send.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/media-send.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ monitor-debounce.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-debounce.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-normalize.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-normalize.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:19](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L19) - - [openclaw/plugin-sdk/bluebubbles @ monitor-shared.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-shared.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor.ts#L9) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/bluebubbles @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/probe.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/reactions.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ request-url.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/request-url.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/runtime.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ targets.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/targets.ts#L8) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L3) - - 🔴 P0 **clawmetry** `live-issue` `core-compat-adapter` - **sdk-export-missing**: clawmetry: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:2](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/src/service.ts#L2) -- 🔴 P0 **diagnostics-otel** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: diagnostics-otel: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L1) - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L2) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L15) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L20) - -- 🔴 P0 **feishu** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: feishu: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/feishu @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L1) - - [openclaw/plugin-sdk/feishu @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L2) - - [openclaw/plugin-sdk/feishu @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/accounts.ts#L2) - - [openclaw/plugin-sdk/feishu @ bitable.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L3) - - [openclaw/plugin-sdk/feishu @ bot.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L1) - - [openclaw/plugin-sdk/feishu @ bot.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L15) - - [openclaw/plugin-sdk/feishu @ card-action.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/card-action.ts#L1) - - [openclaw/plugin-sdk/feishu @ channel.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L13) - - [openclaw/plugin-sdk/feishu @ channel.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L6) - - [openclaw/plugin-sdk/feishu @ chat.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L2) - - [openclaw/plugin-sdk/feishu @ dedup.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dedup.ts#L7) - - [openclaw/plugin-sdk/feishu @ directory.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/directory.ts#L5) - - [openclaw/plugin-sdk/feishu @ docx.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L7) - - [openclaw/plugin-sdk/feishu @ drive.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L2) - - [openclaw/plugin-sdk/feishu @ dynamic-agent.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dynamic-agent.ts#L4) - - [openclaw/plugin-sdk/feishu @ media.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/media.ts#L4) - - [openclaw/plugin-sdk/feishu @ monitor.account.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.account.ts#L3) - - [openclaw/plugin-sdk/feishu @ monitor.startup.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.startup.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.state.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.state.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.transport.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.transport.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.webhook.test-helpers.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.webhook.test-helpers.ts#L3) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L20) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/feishu @ outbound.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/outbound.ts#L3) - - [openclaw/plugin-sdk/feishu @ perm.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L2) - - [openclaw/plugin-sdk/feishu @ policy.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L5) - - [openclaw/plugin-sdk/feishu @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L6) - - [openclaw/plugin-sdk/feishu @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reactions.ts#L1) - - [openclaw/plugin-sdk/feishu @ reply-dispatcher.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reply-dispatcher.ts#L8) - - [openclaw/plugin-sdk/feishu @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/runtime.ts#L2) - - [openclaw/plugin-sdk/feishu @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/feishu @ send-target.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send-target.ts#L1) - - [openclaw/plugin-sdk/feishu @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send.ts#L1) - - [openclaw/plugin-sdk/feishu @ streaming-card.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/streaming-card.ts#L6) - - [openclaw/plugin-sdk/feishu @ tool-account.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-account.ts#L2) - - [openclaw/plugin-sdk/feishu @ tool-factory-test-harness.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-factory-test-harness.ts#L1) - - [openclaw/plugin-sdk/feishu @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/types.ts#L1) - - [openclaw/plugin-sdk/feishu @ typing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/typing.ts#L1) - - [openclaw/plugin-sdk/feishu @ wiki.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L2) - - 🔴 P0 **honcho** `live-issue` `core-compat-adapter` - **sdk-export-missing**: honcho: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11) -- 🔴 P0 **lobster** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: lobster: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/lobster @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L5) - - [openclaw/plugin-sdk/lobster @ lobster-tool.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/lobster-tool.ts#L4) - - [openclaw/plugin-sdk/lobster @ windows-spawn.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/windows-spawn.ts#L5) - - 🔴 P0 **matrix** `live-issue` `core-compat-adapter` - **sdk-export-missing**: matrix: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -2988,87 +2431,6 @@ Status: PASS - [openclaw/plugin-sdk/matrix @ tool-actions.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/tool-actions.ts#L8) - [openclaw/plugin-sdk/matrix @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/types.ts#L1) -- 🔴 P0 **msteams** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: msteams: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/msteams @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L1) - - [openclaw/plugin-sdk/msteams @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L2) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ payload.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/payload.ts#L1) - - [openclaw/plugin-sdk/msteams @ remote-media.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/remote-media.ts#L1) - - [openclaw/plugin-sdk/msteams @ shared.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L7) - - [openclaw/plugin-sdk/msteams @ shared.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L8) - - [openclaw/plugin-sdk/msteams @ channel.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L18) - - [openclaw/plugin-sdk/msteams @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L9) - - [openclaw/plugin-sdk/msteams @ directory-live.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/directory-live.ts#L1) - - [openclaw/plugin-sdk/msteams @ file-lock.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/file-lock.ts#L1) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ media-helpers.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/media-helpers.ts#L11) - - [openclaw/plugin-sdk/msteams @ messenger.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/messenger.ts#L10) - - [openclaw/plugin-sdk/msteams @ monitor-handler.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler.ts#L1) - - [openclaw/plugin-sdk/msteams @ message-handler.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler/message-handler.ts#L22) - - [openclaw/plugin-sdk/msteams @ monitor.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor.ts#L10) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/msteams @ outbound.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/outbound.ts#L1) - - [openclaw/plugin-sdk/msteams @ policy.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L10) - - [openclaw/plugin-sdk/msteams @ policy.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L20) - - [openclaw/plugin-sdk/msteams @ probe.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/probe.ts#L5) - - [openclaw/plugin-sdk/msteams @ reply-dispatcher.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/reply-dispatcher.ts#L9) - - [openclaw/plugin-sdk/msteams @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/runtime.ts#L2) - - [openclaw/plugin-sdk/msteams @ secret-input.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/secret-input.ts#L5) - - [openclaw/plugin-sdk/msteams @ send-context.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send-context.ts#L5) - - [openclaw/plugin-sdk/msteams @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L1) - - [openclaw/plugin-sdk/msteams @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L2) - - [openclaw/plugin-sdk/msteams @ store-fs.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/store-fs.ts#L2) - - [openclaw/plugin-sdk/msteams @ test-runtime.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/test-runtime.ts#L3) - - [openclaw/plugin-sdk/msteams @ token.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/token.ts#L1) - -- 🔴 P0 **nextcloud-talk** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nextcloud-talk: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L1) - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ accounts.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/accounts.ts#L7) - - [openclaw/plugin-sdk/nextcloud-talk @ channel.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/channel.ts#L22) - - [openclaw/plugin-sdk/nextcloud-talk @ config-schema.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/config-schema.ts#L10) - - [openclaw/plugin-sdk/nextcloud-talk @ inbound.ts:17](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/inbound.ts#L17) - - [openclaw/plugin-sdk/nextcloud-talk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/monitor.ts#L8) - - [openclaw/plugin-sdk/nextcloud-talk @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L14) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ replay-guard.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/replay-guard.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L3) - - [openclaw/plugin-sdk/nextcloud-talk @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ types.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/types.ts#L7) - -- 🔴 P0 **nostr** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nostr: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nostr @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L1) - - [openclaw/plugin-sdk/nostr @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L2) - - [openclaw/plugin-sdk/nostr @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/channel.ts#L9) - - [openclaw/plugin-sdk/nostr @ config-schema.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/config-schema.ts#L2) - - [openclaw/plugin-sdk/nostr @ nostr-profile-http.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/nostr-profile-http.ts#L16) - - [openclaw/plugin-sdk/nostr @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nostr @ types.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/types.ts#L6) - -- 🔴 P0 **voice-call** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: voice-call: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/voice-call @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L5) - - [openclaw/plugin-sdk/voice-call @ cli.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/cli.ts#L5) - - [openclaw/plugin-sdk/voice-call @ config.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/config.ts#L6) - - [openclaw/plugin-sdk/voice-call @ guarded-json-api.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/shared/guarded-json-api.ts#L1) - - [openclaw/plugin-sdk/voice-call @ tts-openai.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/tts-openai.ts#L1) - - [openclaw/plugin-sdk/voice-call @ webhook.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/webhook.ts#L7) - - 🔴 P0 **yuanbao** `live-issue` `core-compat-adapter` - **sdk-export-missing**: yuanbao: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -3080,34 +2442,6 @@ Status: PASS - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2 - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 -- 🔴 P0 **zalo** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: zalo: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/zalo @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L1) - - [openclaw/plugin-sdk/zalo @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L2) - - [openclaw/plugin-sdk/zalo @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/accounts.ts#L2) - - [openclaw/plugin-sdk/zalo @ actions.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L5) - - [openclaw/plugin-sdk/zalo @ actions.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L6) - - [openclaw/plugin-sdk/zalo @ channel.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L14) - - [openclaw/plugin-sdk/zalo @ channel.ts:34](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L34) - - [openclaw/plugin-sdk/zalo @ config-schema.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/config-schema.ts#L7) - - [openclaw/plugin-sdk/zalo @ group-access.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L1) - - [openclaw/plugin-sdk/zalo @ group-access.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L22) - - [openclaw/plugin-sdk/zalo @ monitor.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L18) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L3) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/zalo @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/probe.ts#L1) - - [openclaw/plugin-sdk/zalo @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/runtime.ts#L2) - - [openclaw/plugin-sdk/zalo @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/zalo @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/send.ts#L1) - - [openclaw/plugin-sdk/zalo @ status-issues.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/status-issues.ts#L1) - - [openclaw/plugin-sdk/zalo @ token.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/token.ts#L3) - - [openclaw/plugin-sdk/zalo @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/types.ts#L1) - - 🟠 P1 **a2a-gateway** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: a2a-gateway: runtime registrations need capture before contract judgment - state: open · compat:active @@ -3119,18 +2453,6 @@ Status: PASS - [registerGatewayMethod @ index.ts:669](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L669) - [registerService @ index.ts:857](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L857) -- 🟠 P1 **bluebubbles** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: bluebubbles: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: bluebubbles: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - - 🟠 P1 **clawmetry** `compat-gap` `core-compat-adapter` - **missing-compat-record**: clawmetry: compat-dependent behavior lacks registry coverage - state: open · compat:missing @@ -3166,7 +2488,7 @@ Status: PASS - **registration-capture-gap**: codex: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts#L33) + - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts#L33) - 🟠 P1 **codex-app-server** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: codex-app-server: runtime registrations need capture before contract judgment @@ -3185,30 +2507,24 @@ Status: PASS - [registerCommand @ commands.ts:64](https://github.com/osipov-anton/connectclaw/blob/6cd516650168890e9b850064afaaa5fe24df5950/packages/plugin/src/commands.ts#L64) - [registerService @ hooks.ts:91](https://github.com/osipov-anton/connectclaw/blob/6cd516650168890e9b850064afaaa5fe24df5950/packages/plugin/src/hooks.ts#L91) -- 🟠 P1 **diagnostics-otel** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: diagnostics-otel: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **diagnostics-otel** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: diagnostics-otel: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L11) + - [registerService @ index.ts:9](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts#L9) - 🟠 P1 **diagnostics-prometheus** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: diagnostics-prometheus: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L12) - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L11) + - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L12) + - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L11) - 🟠 P1 **diffs** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: diffs: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L57) + - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/src/plugin.ts#L57) - 🟠 P1 **dingtalk-connector** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: dingtalk-connector: runtime registrations need capture before contract judgment @@ -3229,42 +2545,26 @@ Status: PASS - [registerGatewayMethod @ gateway-methods.ts:652](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L652) - [registerGatewayMethod @ gateway-methods.ts:719](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L719) -- 🟠 P1 **discord** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: discord: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) - -- 🟠 P1 **feishu** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: feishu: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **feishu** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: feishu: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) - - 🟠 P1 **google-meet** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: google-meet: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerGatewayMethod @ index.ts:631](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L631) - - [registerGatewayMethod @ index.ts:652](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L652) - - [registerGatewayMethod @ index.ts:674](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L674) - - [registerGatewayMethod @ index.ts:686](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L686) - - [registerGatewayMethod @ index.ts:704](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L704) - - [registerGatewayMethod @ index.ts:722](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L722) - - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L746) - - [registerGatewayMethod @ index.ts:768](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L768) - - [registerGatewayMethod @ index.ts:792](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L792) - - [registerGatewayMethod @ index.ts:817](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L817) - - [registerGatewayMethod @ index.ts:828](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L828) - - [registerGatewayMethod @ index.ts:845](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L845) - - [registerGatewayMethod @ index.ts:862](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L862) - - [registerNodeHostCommand @ index.ts:1018](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L1018) + - [registerGatewayMethod @ index.ts:703](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L703) + - [registerGatewayMethod @ index.ts:724](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L724) + - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L746) + - [registerGatewayMethod @ index.ts:758](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L758) + - [registerGatewayMethod @ index.ts:776](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L776) + - [registerGatewayMethod @ index.ts:795](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L795) + - [registerGatewayMethod @ index.ts:819](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L819) + - [registerGatewayMethod @ index.ts:841](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L841) + - [registerGatewayMethod @ index.ts:865](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L865) + - [registerGatewayMethod @ index.ts:890](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L890) + - [registerGatewayMethod @ index.ts:901](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L901) + - [registerGatewayMethod @ index.ts:918](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L918) + - [registerGatewayMethod @ index.ts:937](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L937) + - [registerGatewayMethod @ index.ts:954](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L954) + - [registerGatewayMethod @ index.ts:975](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L975) + - [registerNodeHostCommand @ index.ts:1143](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L1143) - 🟠 P1 **honcho** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: honcho: conversation-access hooks need privacy-boundary probes @@ -3301,55 +2601,55 @@ Status: PASS - **before-tool-call-probe**: kitchen-sink: before_tool_call needs terminal/block/approval probes - state: open · compat:active - evidence: - - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L19) + - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L19) - 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: kitchen-sink: conversation-access hooks need privacy-boundary probes - state: open · compat:active - evidence: - - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L7) - - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L25) - - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L26) + - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L7) + - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L25) + - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L26) - 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: kitchen-sink: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L7) - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) - - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L12) - - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L50) - - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L51) - - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L13) - - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L95) - - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L14) - - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L15) - - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/scripts/sync-surface.mjs#L113) - - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L17) - - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L86) - - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L18) - - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L19) - - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L107) - - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L20) - - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L21) - - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L105) - - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L23) - - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L53) - - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L25) - - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L26) - - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L92) - - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L28) - - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L29) - - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L30) - - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L111) - - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L31) - - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L34) - - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L35) - - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L39) - - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L41) - - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L42) - - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L104) + - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L7) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) + - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L12) + - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L50) + - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L51) + - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L13) + - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L95) + - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L14) + - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L15) + - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/scripts/sync-surface.mjs#L113) + - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L17) + - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L86) + - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L18) + - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L19) + - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L107) + - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L20) + - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L21) + - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L105) + - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L23) + - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L53) + - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L25) + - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L26) + - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L92) + - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L28) + - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L29) + - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L30) + - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L111) + - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L31) + - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L34) + - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L35) + - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L39) + - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L41) + - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L42) + - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L104) - 🟠 P1 **lightclawbot** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: lightclawbot: runtime registrations need capture before contract judgment @@ -3364,12 +2664,6 @@ Status: PASS - [llm_input @ index.ts:154](https://github.com/pingshian0131/openclaw-plugin-llm-trace-phoenix/blob/05bc0f4ba67281c10fad7be356d32a54b00c59fd/index.ts#L154) - [llm_output @ index.ts:168](https://github.com/pingshian0131/openclaw-plugin-llm-trace-phoenix/blob/05bc0f4ba67281c10fad7be356d32a54b00c59fd/index.ts#L168) -- 🟠 P1 **lobster** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: lobster: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **lossless-claw** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: lossless-claw: runtime registrations need capture before contract judgment - state: open · compat:active @@ -3405,14 +2699,14 @@ Status: PASS - **conversation-access-hook**: memory-lancedb: conversation-access hooks need privacy-boundary probes - state: open · compat:active - evidence: - - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1005) + - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1005) - 🟠 P1 **memory-lancedb** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: memory-lancedb: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1085) - - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L586) + - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1085) + - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L586) - 🟠 P1 **memory-tencentdb** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: memory-tencentdb: conversation-access hooks need privacy-boundary probes @@ -3439,18 +2733,6 @@ Status: PASS - [registerChannel @ index.ts:31](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L31) - [registerHttpRoute @ index.ts:34](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L34) -- 🟠 P1 **msteams** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: msteams: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **msteams** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: msteams: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) - - 🟠 P1 **nemoclaw** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: nemoclaw: before_tool_call needs terminal/block/approval probes - state: open · compat:active @@ -3463,36 +2745,17 @@ Status: PASS - evidence: - [registerCommand @ index.ts:336](https://github.com/NVIDIA/NemoClaw/blob/f9d21afa193c2b67cb55e79eca03db40f0fbe836/nemoclaw/src/index.ts#L336) -- 🟠 P1 **nextcloud-talk** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: nextcloud-talk: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: nextcloud-talk: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) - -- 🟠 P1 **nostr** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: nostr: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **nostr** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: nostr: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) - - [registerHttpRoute @ index.ts:64](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L64) + - [registerHttpRoute @ index.ts:89](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts#L89) - 🟠 P1 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: openclaw-qqbot: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) + - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) - 🟠 P1 **openclaw-telemetry** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: openclaw-telemetry: before_tool_call needs terminal/block/approval probes @@ -3552,47 +2815,27 @@ Status: PASS - [registerService @ index.ts:301](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L301) - [registerService @ index.ts:307](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L307) -- 🟠 P1 **synology-chat** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: synology-chat: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) - - 🟠 P1 **telnyx-sms** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: telnyx-sms: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - [registerHttpRoute @ index.ts:259](https://github.com/team-telnyx/telnyx-openclaw-sms-channel/blob/dee567716ca56d49464bf6354393f3656d92a2b3/index.ts#L259) -- 🟠 P1 **tlon** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: tlon: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) - -- 🟠 P1 **twitch** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: twitch: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) - -- 🟠 P1 **voice-call** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: voice-call: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **voice-call** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: voice-call: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerGatewayMethod @ index.ts:261](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L261) - - [registerGatewayMethod @ index.ts:294](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L294) - - [registerGatewayMethod @ index.ts:311](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L311) - - [registerGatewayMethod @ index.ts:327](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L327) - - [registerGatewayMethod @ index.ts:349](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L349) - - [registerGatewayMethod @ index.ts:376](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L376) - - [registerService @ index.ts:532](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L532) + - [registerConfigMigration @ setup-api.ts:45](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/setup-api.ts#L45) + - [registerGatewayMethod @ index.ts:390](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L390) + - [registerGatewayMethod @ index.ts:420](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L420) + - [registerGatewayMethod @ index.ts:437](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L437) + - [registerGatewayMethod @ index.ts:457](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L457) + - [registerGatewayMethod @ index.ts:478](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L478) + - [registerGatewayMethod @ index.ts:513](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L513) + - [registerGatewayMethod @ index.ts:536](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L536) + - [registerGatewayMethod @ index.ts:558](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L558) + - [registerGatewayMethod @ index.ts:581](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L581) + - [registerService @ index.ts:748](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L748) - 🟠 P1 **wecom** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: wecom: before_tool_call needs terminal/block/approval probes @@ -3624,24 +2867,6 @@ Status: PASS - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:32 - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:33 -- 🟠 P1 **zalo** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: zalo: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **zalo** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: zalo: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) - -- 🟠 P1 **zalouser** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: zalouser: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) - - 🟡 P2 **a2a-gateway** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: a2a-gateway: root plugin SDK barrel is still used by fixtures - state: open · compat:deprecated · deprecated @@ -3755,29 +2980,25 @@ Status: PASS - evidence: - [registerTool @ index.ts:13](https://github.com/apify/apify-openclaw-plugin/blob/41f49794d230f7ad092d1c699ee4d91fecf6ba91/src/index.ts#L13) -- 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: bluebubbles: channel runtime needs envelope/config probes - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - -- 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **package-dependency-install-required**: bluebubbles: cold import requires dependency installation in an isolated workspace +- 🟡 P2 **bluebubbles** `upstream-metadata` `plugin-upstream-fix` + - **package-install-metadata-incomplete**: bluebubbles: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec - 🟡 P2 **bluebubbles** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: bluebubbles: plugin API compatibility range is missing + - **package-min-host-version-drift**: bluebubbles: OpenClaw package minimum host version drifts from build target - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: bluebubbles: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/setup-entry.ts) - 🟡 P2 **brave-plugin** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: brave-plugin: OpenClaw package install metadata is incomplete @@ -3790,13 +3011,13 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **brave-plugin** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: brave-plugin: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/brave/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/brave/index.ts) - 🟡 P2 **brave-plugin** `deprecation-warning` `core-compat-adapter` - **provider-auth-env-vars**: brave-plugin: providerAuthEnvVars legacy manifest metadata must stay covered @@ -3858,11 +3079,11 @@ Status: PASS - **package-dependency-install-required**: codex: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) + - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) - 🟡 P2 **codex** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: codex: OpenClaw package install metadata is incomplete @@ -3875,13 +3096,13 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.5.1-beta.1 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **codex** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: codex: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts) - 🟡 P2 **codex-app-server** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: codex-app-server: root plugin SDK barrel is still used by fixtures @@ -4001,51 +3222,52 @@ Status: PASS - **package-dependency-install-required**: diagnostics-otel: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) - 🟡 P2 **diagnostics-otel** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: diagnostics-otel: plugin API compatibility range is missing + - **package-min-host-version-drift**: diagnostics-otel: OpenClaw package minimum host version drifts from build target - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **diagnostics-otel** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diagnostics-otel: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts) - 🟡 P2 **diagnostics-prometheus** `upstream-metadata` `plugin-upstream-fix` - - **package-install-metadata-incomplete**: diagnostics-prometheus: OpenClaw package install metadata is incomplete + - **package-min-host-version-drift**: diagnostics-prometheus: OpenClaw package minimum host version drifts from build target - state: open · compat:none - evidence: - - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec - - openclaw.release.publishToNpm requires openclaw.install.npmSpec + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **diagnostics-prometheus** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diagnostics-prometheus: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts) - 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: diffs: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) + - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) - 🟡 P2 **diffs** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: diffs: OpenClaw package install metadata is incomplete @@ -4058,19 +3280,13 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.30 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diffs: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/index.ts) - -- 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: diffs: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ plugin.ts:42](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L42) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/index.ts) - 🟡 P2 **dingtalk-connector** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: dingtalk-connector: channel runtime needs envelope/config probes @@ -4123,69 +3339,89 @@ Status: PASS - evidence: - [package.json](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/package.json) -- 🟡 P2 **discord** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: discord: channel runtime needs envelope/config probes - - state: open · compat:active +- 🟡 P2 **discord** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: discord: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) + - discord -- 🟡 P2 **discord** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: discord: plugin API compatibility range is missing +- 🟡 P2 **discord** `inspector-gap` `inspector-follow-up` + - **package-dependency-install-required**: discord: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/package.json) + - [@discordjs/voice @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [discord-api-types @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [opusscript @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + +- 🟡 P2 **discord** `upstream-metadata` `plugin-upstream-fix` + - **package-install-metadata-incomplete**: discord: OpenClaw package install metadata is incomplete + - state: open · compat:none + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **discord** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: discord: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **discord** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: discord: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/setup-entry.ts) - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: feishu: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) + - [createChatChannelPlugin @ channel.ts:580](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/src/channel.ts#L580) + +- 🟡 P2 **feishu** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: feishu: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - feishu - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: feishu: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) + - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) - 🟡 P2 **feishu** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: feishu: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: feishu: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **feishu** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: feishu: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: feishu: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts) - -- 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: feishu: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ bitable.ts:559](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L559) - - [registerTool @ chat.ts:95](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L95) - - [registerTool @ docx.ts:1262](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1262) - - [registerTool @ docx.ts:1436](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1436) - - [registerTool @ drive.ts:186](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L186) - - [registerTool @ perm.ts:135](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L135) - - [registerTool @ wiki.ts:174](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L174) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/setup-entry.ts) - 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: google-meet: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) - 🟡 P2 **google-meet** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: google-meet: OpenClaw package install metadata is incomplete @@ -4198,19 +3434,13 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.20 - - buildOpenClawVersion:2026.5.1-beta.2 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: google-meet: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts) - -- 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: google-meet: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:883](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L883) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts) - 🟡 P2 **hasdata** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: hasdata: cold import requires dependency installation in an isolated workspace @@ -4308,13 +3538,6 @@ Status: PASS - [registerTool @ tools.ts:52](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L52) - [registerTool @ tools.ts:95](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L95) -- 🟡 P2 **inworld-tts** `upstream-metadata` `plugin-upstream-fix` - - **package-min-host-version-drift**: inworld-tts: OpenClaw package minimum host version drifts from build target - - state: open · compat:none - - evidence: - - minHostVersion:>=2026.4.1 - - buildOpenClawVersion:2026.4.1 - - 🟡 P2 **inworld-tts** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: inworld-tts: cold import needs TypeScript source entrypoint support - state: open · compat:none @@ -4331,20 +3554,20 @@ Status: PASS - **channel-contract-probe**: kitchen-sink: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) - 🟡 P2 **kitchen-sink** `deprecation-warning` `core-compat-adapter` - **legacy-before-agent-start**: kitchen-sink: legacy before_agent_start hook compatibility is still used - state: open · compat:deprecated · deprecated - evidence: - - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L11) + - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L11) - 🟡 P2 **kitchen-sink** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: kitchen-sink: root plugin SDK barrel is still used by fixtures - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-sdk-imports.ts#L2) + - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-sdk-imports.ts#L2) - 🟡 P2 **lightclawbot** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: lightclawbot: channel runtime needs envelope/config probes @@ -4400,25 +3623,28 @@ Status: PASS - **package-dependency-install-required**: lobster: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) + - [@clawdbot/lobster @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) - 🟡 P2 **lobster** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: lobster: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: lobster: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **lobster** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: lobster: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **lobster** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: lobster: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts) - -- 🟡 P2 **lobster** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: lobster: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L9) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/index.ts) - 🟡 P2 **lossless-claw** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: lossless-claw: root plugin SDK barrel is still used by fixtures @@ -4549,9 +3775,9 @@ Status: PASS - **package-dependency-install-required**: memory-lancedb: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [openai @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) + - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [openai @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) - 🟡 P2 **memory-lancedb** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: memory-lancedb: OpenClaw package install metadata is incomplete @@ -4564,21 +3790,13 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **memory-lancedb** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: memory-lancedb: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts) - -- 🟡 P2 **memory-lancedb** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: memory-lancedb: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:643](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L643) - - [registerTool @ index.ts:694](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L694) - - [registerTool @ index.ts:757](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L757) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts) - 🟡 P2 **memory-tencentdb** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: memory-tencentdb: cold import requires dependency installation in an isolated workspace @@ -4591,6 +3809,12 @@ Status: PASS - undici @ plugins/memory-tencentdb/.crabpot-package/package.json - node-llama-cpp @ plugins/memory-tencentdb/.crabpot-package/package.json +- 🟡 P2 **memory-tencentdb** `upstream-metadata` `plugin-upstream-fix` + - **package-openclaw-unsupported-metadata**: memory-tencentdb: package declares unsupported OpenClaw metadata + - state: open · compat:none + - evidence: + - openclaw.bundle + - 🟡 P2 **memory-tencentdb** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: memory-tencentdb: cold import needs TypeScript source entrypoint support - state: open · compat:none @@ -4715,26 +3939,45 @@ Status: PASS - **channel-contract-probe**: msteams: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:406](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/src/channel.ts#L406) + +- 🟡 P2 **msteams** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: msteams: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - msteams - 🟡 P2 **msteams** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: msteams: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@microsoft/agents-hosting @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) - - [express @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) + - [@azure/identity @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.apps @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [express @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jsonwebtoken @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jwks-rsa @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) - 🟡 P2 **msteams** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: msteams: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: msteams: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **msteams** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: msteams: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **msteams** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: msteams: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/setup-entry.ts) - 🟡 P2 **nemoclaw** `deprecation-warning` `core-compat-adapter` - **legacy-before-agent-start**: nemoclaw: legacy before_agent_start hook compatibility is still used @@ -4768,50 +4011,78 @@ Status: PASS - **channel-contract-probe**: nextcloud-talk: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:69](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/src/channel.ts#L69) + +- 🟡 P2 **nextcloud-talk** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: nextcloud-talk: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - nextcloud-talk - 🟡 P2 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: nextcloud-talk: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/package.json) - 🟡 P2 **nextcloud-talk** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: nextcloud-talk: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: nextcloud-talk: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **nextcloud-talk** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: nextcloud-talk: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: nextcloud-talk: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/setup-entry.ts) - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: nostr: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) + - [createChatChannelPlugin @ channel.ts:88](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/src/channel.ts#L88) + +- 🟡 P2 **nostr** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: nostr: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - nostr - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: nostr: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) + - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) - 🟡 P2 **nostr** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: nostr: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: nostr: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **nostr** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: nostr: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: nostr: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/setup-entry.ts) - 🟡 P2 **openclaw-qqbot** `deprecation-warning` `core-compat-adapter` - **channel-env-vars**: openclaw-qqbot: channelEnvVars legacy manifest metadata must stay covered @@ -4823,11 +4094,11 @@ Status: PASS - **package-dependency-install-required**: openclaw-qqbot: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) + - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) - 🟡 P2 **openclaw-qqbot** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: openclaw-qqbot: OpenClaw package install metadata is incomplete @@ -4840,21 +4111,14 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: openclaw-qqbot: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/setup-entry.ts) - -- 🟡 P2 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: openclaw-qqbot: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ channel.ts:32](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/channel.ts#L32) - - [registerTool @ remind.ts:90](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/remind.ts#L90) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/setup-entry.ts) - 🟡 P2 **openclaw-telemetry** `deprecation-warning` `core-compat-adapter` - **legacy-before-agent-start**: openclaw-telemetry: legacy before_agent_start hook compatibility is still used @@ -5012,34 +4276,39 @@ Status: PASS - **channel-contract-probe**: synology-chat: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:209](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/src/channel.ts#L209) - 🟡 P2 **synology-chat** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: synology-chat: root plugin SDK barrel is still used by fixtures + - **channel-env-vars**: synology-chat: channelEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/channel.ts#L12) - - [openclaw/plugin-sdk @ runtime.ts:7](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/runtime.ts#L7) + - synology-chat - 🟡 P2 **synology-chat** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: synology-chat: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/package.json) - 🟡 P2 **synology-chat** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: synology-chat: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: synology-chat: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **synology-chat** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: synology-chat: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **synology-chat** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: synology-chat: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/setup-entry.ts) - 🟡 P2 **telnyx-sms** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: telnyx-sms: channel runtime needs envelope/config probes @@ -5064,126 +4333,103 @@ Status: PASS - **channel-contract-probe**: tlon: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) - -- 🟡 P2 **tlon** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: tlon: root plugin SDK barrel is still used by fixtures - - state: open · compat:deprecated · deprecated - - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L12) - - [openclaw/plugin-sdk @ channel.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L7) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ discovery.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/discovery.ts#L1) - - [openclaw/plugin-sdk @ history.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/history.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L2) - - [openclaw/plugin-sdk @ index.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L3) - - [openclaw/plugin-sdk @ onboarding.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L1) - - [openclaw/plugin-sdk @ onboarding.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L9) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ types.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/types.ts#L1) - - [openclaw/plugin-sdk @ auth.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/auth.ts#L1) - - [openclaw/plugin-sdk @ base-url.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/base-url.ts#L1) - - [openclaw/plugin-sdk @ channel-client.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-client.ts#L1) - - [openclaw/plugin-sdk @ channel-ops.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-ops.ts#L1) - - [openclaw/plugin-sdk @ context.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/context.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L2) - - [openclaw/plugin-sdk @ sse-client.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/sse-client.ts#L2) + - [createChatChannelPlugin @ channel.ts:61](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/src/channel.ts#L61) - 🟡 P2 **tlon** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: tlon: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) + - [@aws-sdk/client-s3 @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@aws-sdk/s3-request-presigner @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@tloncorp/tlon-skill @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) - 🟡 P2 **tlon** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: tlon: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: tlon: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **tlon** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: tlon: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **tlon** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: tlon: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts) - -- 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: twitch: channel runtime needs envelope/config probes - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/setup-entry.ts) - 🟡 P2 **twitch** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: twitch: root plugin SDK barrel is still used by fixtures + - **channel-env-vars**: twitch: channelEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L2) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ config.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config.ts#L1) - - [openclaw/plugin-sdk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L8) - - [openclaw/plugin-sdk @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L9) - - [openclaw/plugin-sdk @ onboarding.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L12) - - [openclaw/plugin-sdk @ onboarding.ts:5](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L5) - - [openclaw/plugin-sdk @ plugin.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L8) - - [openclaw/plugin-sdk @ plugin.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L9) - - [openclaw/plugin-sdk @ probe.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/probe.ts#L3) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ send.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/send.ts#L8) - - [openclaw/plugin-sdk @ status.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/status.ts#L7) - - [openclaw/plugin-sdk @ test-fixtures.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/test-fixtures.ts#L1) - - [openclaw/plugin-sdk @ twitch-client.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/twitch-client.ts#L3) + - twitch - 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: twitch: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) + - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) - 🟡 P2 **twitch** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: twitch: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: twitch: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **twitch** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: twitch: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: twitch: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/setup-entry.ts) + +- 🟡 P2 **voice-call** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: voice-call: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - voice-call - 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: voice-call: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) - 🟡 P2 **voice-call** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: voice-call: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: voice-call: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **voice-call** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: voice-call: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: voice-call: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts) - -- 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: voice-call: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:399](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L399) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts) - 🟡 P2 **web-search-plus** `upstream-metadata` `plugin-upstream-fix` - **manifest-unknown-fields**: web-search-plus: manifest uses unsupported top-level fields @@ -5237,11 +4483,11 @@ Status: PASS - **package-dependency-install-required**: whatsapp: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) + - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) - 🟡 P2 **whatsapp** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: whatsapp: OpenClaw package install metadata is incomplete @@ -5254,14 +4500,14 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.25 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **whatsapp** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: whatsapp: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/setup-entry.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/setup-entry.ts) - 🟡 P2 **yuanbao** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: yuanbao: channel runtime needs envelope/config probes @@ -5285,6 +4531,12 @@ Status: PASS - uuid @ plugins/yuanbao/.crabpot-package/package.json - ws @ plugins/yuanbao/.crabpot-package/package.json +- 🟡 P2 **yuanbao** `upstream-metadata` `plugin-upstream-fix` + - **package-openclaw-unsupported-metadata**: yuanbao: package declares unsupported OpenClaw metadata + - state: open · compat:none + - evidence: + - openclaw.bundle + - 🟡 P2 **yuanbao** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: yuanbao: plugin API compatibility range is missing - state: open · compat:none @@ -5313,58 +4565,78 @@ Status: PASS - **channel-contract-probe**: zalo: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:159](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/src/channel.ts#L159) + +- 🟡 P2 **zalo** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: zalo: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - zalo - 🟡 P2 **zalo** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: zalo: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/package.json) - 🟡 P2 **zalo** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: zalo: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: zalo: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **zalo** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: zalo: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **zalo** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: zalo: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/setup-entry.ts) - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: zalouser: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) + - [createChatChannelPlugin @ channel.ts:68](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/src/channel.ts#L68) + +- 🟡 P2 **zalouser** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: zalouser: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - zalouser - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: zalouser: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) + - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) - 🟡 P2 **zalouser** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: zalouser: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: zalouser: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **zalouser** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: zalouser: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: zalouser: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts) - -- 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: zalouser: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L16) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/setup-entry.ts) - 🟢 P3 **clawrouter** `upstream-metadata` `plugin-upstream-fix` - **security-manifest-schema-unavailable**: clawrouter: plugin security manifest references an unavailable schema @@ -5391,12 +4663,6 @@ Status: PASS - [registerGatewayMethod @ index.ts:669](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L669) - [registerService @ index.ts:857](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L857) -- 🟠 P1 **bluebubbles** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:bluebubbles` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - - 🟠 P1 **clawmetry** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:clawmetry` @@ -5420,7 +4686,7 @@ Status: PASS - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:codex` - evidence: - - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts#L33) + - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts#L33) - 🟠 P1 **codex-app-server** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5443,20 +4709,20 @@ Status: PASS - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:diagnostics-otel` - evidence: - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L11) + - [registerService @ index.ts:9](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts#L9) - 🟠 P1 **diagnostics-prometheus** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:diagnostics-prometheus` - evidence: - - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L12) - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L11) + - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L12) + - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L11) - 🟠 P1 **diffs** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:diffs` - evidence: - - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L57) + - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/src/plugin.ts#L57) - 🟠 P1 **dingtalk-connector** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5477,36 +4743,26 @@ Status: PASS - [registerGatewayMethod @ gateway-methods.ts:652](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L652) - [registerGatewayMethod @ gateway-methods.ts:719](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L719) -- 🟠 P1 **discord** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:discord` - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) - -- 🟠 P1 **feishu** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:feishu` - - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) - - 🟠 P1 **google-meet** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:google-meet` - evidence: - - [registerGatewayMethod @ index.ts:631](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L631) - - [registerGatewayMethod @ index.ts:652](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L652) - - [registerGatewayMethod @ index.ts:674](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L674) - - [registerGatewayMethod @ index.ts:686](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L686) - - [registerGatewayMethod @ index.ts:704](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L704) - - [registerGatewayMethod @ index.ts:722](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L722) - - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L746) - - [registerGatewayMethod @ index.ts:768](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L768) - - [registerGatewayMethod @ index.ts:792](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L792) - - [registerGatewayMethod @ index.ts:817](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L817) - - [registerGatewayMethod @ index.ts:828](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L828) - - [registerGatewayMethod @ index.ts:845](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L845) - - [registerGatewayMethod @ index.ts:862](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L862) - - [registerNodeHostCommand @ index.ts:1018](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L1018) + - [registerGatewayMethod @ index.ts:703](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L703) + - [registerGatewayMethod @ index.ts:724](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L724) + - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L746) + - [registerGatewayMethod @ index.ts:758](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L758) + - [registerGatewayMethod @ index.ts:776](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L776) + - [registerGatewayMethod @ index.ts:795](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L795) + - [registerGatewayMethod @ index.ts:819](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L819) + - [registerGatewayMethod @ index.ts:841](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L841) + - [registerGatewayMethod @ index.ts:865](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L865) + - [registerGatewayMethod @ index.ts:890](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L890) + - [registerGatewayMethod @ index.ts:901](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L901) + - [registerGatewayMethod @ index.ts:918](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L918) + - [registerGatewayMethod @ index.ts:937](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L937) + - [registerGatewayMethod @ index.ts:954](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L954) + - [registerGatewayMethod @ index.ts:975](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L975) + - [registerNodeHostCommand @ index.ts:1143](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L1143) - 🟠 P1 **honcho** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5530,41 +4786,41 @@ Status: PASS - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:kitchen-sink` - evidence: - - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L7) - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) - - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L12) - - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L50) - - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L51) - - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L13) - - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L95) - - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L14) - - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L15) - - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/scripts/sync-surface.mjs#L113) - - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L17) - - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L86) - - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L18) - - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L19) - - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L107) - - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L20) - - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L21) - - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L105) - - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L23) - - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L53) - - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L25) - - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L26) - - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L92) - - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L28) - - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L29) - - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L30) - - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L111) - - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L31) - - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L34) - - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L35) - - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L39) - - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L41) - - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L42) - - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L104) + - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L7) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) + - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L12) + - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L50) + - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L51) + - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L13) + - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L95) + - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L14) + - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L15) + - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/scripts/sync-surface.mjs#L113) + - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L17) + - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L86) + - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L18) + - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L19) + - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L107) + - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L20) + - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L21) + - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L105) + - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L23) + - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L53) + - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L25) + - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L26) + - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L92) + - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L28) + - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L29) + - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L30) + - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L111) + - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L31) + - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L34) + - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L35) + - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L39) + - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L41) + - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L42) + - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L104) - 🟠 P1 **lightclawbot** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5601,8 +4857,8 @@ Status: PASS - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:memory-lancedb` - evidence: - - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1085) - - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L586) + - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1085) + - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L586) - 🟠 P1 **memos-cloud** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5617,36 +4873,23 @@ Status: PASS - [registerChannel @ index.ts:31](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L31) - [registerHttpRoute @ index.ts:34](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L34) -- 🟠 P1 **msteams** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:msteams` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) - - 🟠 P1 **nemoclaw** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:nemoclaw` - evidence: - [registerCommand @ index.ts:336](https://github.com/NVIDIA/NemoClaw/blob/f9d21afa193c2b67cb55e79eca03db40f0fbe836/nemoclaw/src/index.ts#L336) -- 🟠 P1 **nextcloud-talk** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:nextcloud-talk` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) - - 🟠 P1 **nostr** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:nostr` - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) - - [registerHttpRoute @ index.ts:64](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L64) + - [registerHttpRoute @ index.ts:89](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts#L89) - 🟠 P1 **openclaw-qqbot** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:openclaw-qqbot` - evidence: - - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) + - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) - 🟠 P1 **openclaw-telemetry** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5680,41 +4923,27 @@ Status: PASS - [registerService @ index.ts:301](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L301) - [registerService @ index.ts:307](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L307) -- 🟠 P1 **synology-chat** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:synology-chat` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) - - 🟠 P1 **telnyx-sms** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:telnyx-sms` - evidence: - [registerHttpRoute @ index.ts:259](https://github.com/team-telnyx/telnyx-openclaw-sms-channel/blob/dee567716ca56d49464bf6354393f3656d92a2b3/index.ts#L259) -- 🟠 P1 **tlon** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:tlon` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) - -- 🟠 P1 **twitch** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:twitch` - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) - - 🟠 P1 **voice-call** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:voice-call` - evidence: - - [registerGatewayMethod @ index.ts:261](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L261) - - [registerGatewayMethod @ index.ts:294](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L294) - - [registerGatewayMethod @ index.ts:311](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L311) - - [registerGatewayMethod @ index.ts:327](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L327) - - [registerGatewayMethod @ index.ts:349](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L349) - - [registerGatewayMethod @ index.ts:376](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L376) - - [registerService @ index.ts:532](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L532) + - [registerConfigMigration @ setup-api.ts:45](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/setup-api.ts#L45) + - [registerGatewayMethod @ index.ts:390](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L390) + - [registerGatewayMethod @ index.ts:420](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L420) + - [registerGatewayMethod @ index.ts:437](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L437) + - [registerGatewayMethod @ index.ts:457](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L457) + - [registerGatewayMethod @ index.ts:478](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L478) + - [registerGatewayMethod @ index.ts:513](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L513) + - [registerGatewayMethod @ index.ts:536](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L536) + - [registerGatewayMethod @ index.ts:558](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L558) + - [registerGatewayMethod @ index.ts:581](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L581) + - [registerService @ index.ts:748](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L748) - 🟠 P1 **wecom** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5734,23 +4963,11 @@ Status: PASS - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:32 - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:33 -- 🟠 P1 **zalo** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:zalo` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) - -- 🟠 P1 **zalouser** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:zalouser` - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) - - 🟠 P1 **kitchen-sink** `hook-runner` - contract: Hook returns preserve terminal, block, and approval semantics. - id: `hook.before_tool_call.terminal-block-approval:kitchen-sink` - evidence: - - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L19) + - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L19) - 🟠 P1 **nemoclaw** `hook-runner` - contract: Hook returns preserve terminal, block, and approval semantics. @@ -5787,9 +5004,9 @@ Status: PASS - contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior. - id: `hook.llm-observer.privacy-payload:kitchen-sink` - evidence: - - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L7) - - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L25) - - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L26) + - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L7) + - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L25) + - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L26) - 🟠 P1 **llm-trace-phoenix** `hook-runner` - contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior. @@ -5802,7 +5019,7 @@ Status: PASS - contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior. - id: `hook.llm-observer.privacy-payload:memory-lancedb` - evidence: - - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1005) + - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1005) - 🟠 P1 **memory-tencentdb** `hook-runner` - contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior. @@ -5830,116 +5047,18 @@ Status: PASS - [llm_input @ llm.ts:39](https://github.com/comet-ml/opik-openclaw/blob/f8987269d3f2121f52ace4f60c80629266c0dfd7/src/service/hooks/llm.ts#L39) - [llm_output @ llm.ts:150](https://github.com/comet-ml/opik-openclaw/blob/f8987269d3f2121f52ace4f60c80629266c0dfd7/src/service/hooks/llm.ts#L150) -- 🟠 P1 **bluebubbles** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:bluebubbles` - - evidence: - - [openclaw/plugin-sdk/bluebubbles @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ account-resolve.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/account-resolve.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/accounts.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ actions.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/actions.ts#L13) - - [openclaw/plugin-sdk/bluebubbles @ attachments.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/attachments.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L20) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L5) - - [openclaw/plugin-sdk/bluebubbles @ chat.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/chat.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ config-apply.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-apply.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-schema.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ history.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/history.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ media-send.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/media-send.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ monitor-debounce.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-debounce.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-normalize.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-normalize.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:19](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L19) - - [openclaw/plugin-sdk/bluebubbles @ monitor-shared.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-shared.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor.ts#L9) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/bluebubbles @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/probe.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/reactions.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ request-url.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/request-url.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/runtime.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ targets.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/targets.ts#L8) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L3) - - 🟠 P1 **clawmetry** `sdk-alias` - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - id: `sdk.import.package-export-cold-import:clawmetry` - evidence: - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:2](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/src/service.ts#L2) -- 🟠 P1 **diagnostics-otel** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:diagnostics-otel` - - evidence: - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L1) - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L2) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L15) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L20) - -- 🟠 P1 **feishu** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:feishu` - - evidence: - - [openclaw/plugin-sdk/feishu @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L1) - - [openclaw/plugin-sdk/feishu @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L2) - - [openclaw/plugin-sdk/feishu @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/accounts.ts#L2) - - [openclaw/plugin-sdk/feishu @ bitable.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L3) - - [openclaw/plugin-sdk/feishu @ bot.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L1) - - [openclaw/plugin-sdk/feishu @ bot.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L15) - - [openclaw/plugin-sdk/feishu @ card-action.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/card-action.ts#L1) - - [openclaw/plugin-sdk/feishu @ channel.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L13) - - [openclaw/plugin-sdk/feishu @ channel.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L6) - - [openclaw/plugin-sdk/feishu @ chat.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L2) - - [openclaw/plugin-sdk/feishu @ dedup.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dedup.ts#L7) - - [openclaw/plugin-sdk/feishu @ directory.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/directory.ts#L5) - - [openclaw/plugin-sdk/feishu @ docx.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L7) - - [openclaw/plugin-sdk/feishu @ drive.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L2) - - [openclaw/plugin-sdk/feishu @ dynamic-agent.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dynamic-agent.ts#L4) - - [openclaw/plugin-sdk/feishu @ media.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/media.ts#L4) - - [openclaw/plugin-sdk/feishu @ monitor.account.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.account.ts#L3) - - [openclaw/plugin-sdk/feishu @ monitor.startup.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.startup.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.state.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.state.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.transport.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.transport.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.webhook.test-helpers.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.webhook.test-helpers.ts#L3) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L20) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/feishu @ outbound.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/outbound.ts#L3) - - [openclaw/plugin-sdk/feishu @ perm.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L2) - - [openclaw/plugin-sdk/feishu @ policy.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L5) - - [openclaw/plugin-sdk/feishu @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L6) - - [openclaw/plugin-sdk/feishu @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reactions.ts#L1) - - [openclaw/plugin-sdk/feishu @ reply-dispatcher.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reply-dispatcher.ts#L8) - - [openclaw/plugin-sdk/feishu @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/runtime.ts#L2) - - [openclaw/plugin-sdk/feishu @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/feishu @ send-target.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send-target.ts#L1) - - [openclaw/plugin-sdk/feishu @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send.ts#L1) - - [openclaw/plugin-sdk/feishu @ streaming-card.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/streaming-card.ts#L6) - - [openclaw/plugin-sdk/feishu @ tool-account.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-account.ts#L2) - - [openclaw/plugin-sdk/feishu @ tool-factory-test-harness.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-factory-test-harness.ts#L1) - - [openclaw/plugin-sdk/feishu @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/types.ts#L1) - - [openclaw/plugin-sdk/feishu @ typing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/typing.ts#L1) - - [openclaw/plugin-sdk/feishu @ wiki.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L2) - - 🟠 P1 **honcho** `sdk-alias` - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - id: `sdk.import.package-export-cold-import:honcho` - evidence: - [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11) -- 🟠 P1 **lobster** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:lobster` - - evidence: - - [openclaw/plugin-sdk/lobster @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L5) - - [openclaw/plugin-sdk/lobster @ lobster-tool.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/lobster-tool.ts#L4) - - [openclaw/plugin-sdk/lobster @ windows-spawn.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/windows-spawn.ts#L5) - - 🟠 P1 **matrix** `sdk-alias` - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - id: `sdk.import.package-export-cold-import:matrix` @@ -5975,87 +5094,6 @@ Status: PASS - [openclaw/plugin-sdk/matrix @ tool-actions.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/tool-actions.ts#L8) - [openclaw/plugin-sdk/matrix @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/types.ts#L1) -- 🟠 P1 **msteams** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:msteams` - - evidence: - - [openclaw/plugin-sdk/msteams @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L1) - - [openclaw/plugin-sdk/msteams @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L2) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ payload.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/payload.ts#L1) - - [openclaw/plugin-sdk/msteams @ remote-media.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/remote-media.ts#L1) - - [openclaw/plugin-sdk/msteams @ shared.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L7) - - [openclaw/plugin-sdk/msteams @ shared.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L8) - - [openclaw/plugin-sdk/msteams @ channel.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L18) - - [openclaw/plugin-sdk/msteams @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L9) - - [openclaw/plugin-sdk/msteams @ directory-live.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/directory-live.ts#L1) - - [openclaw/plugin-sdk/msteams @ file-lock.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/file-lock.ts#L1) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ media-helpers.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/media-helpers.ts#L11) - - [openclaw/plugin-sdk/msteams @ messenger.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/messenger.ts#L10) - - [openclaw/plugin-sdk/msteams @ monitor-handler.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler.ts#L1) - - [openclaw/plugin-sdk/msteams @ message-handler.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler/message-handler.ts#L22) - - [openclaw/plugin-sdk/msteams @ monitor.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor.ts#L10) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/msteams @ outbound.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/outbound.ts#L1) - - [openclaw/plugin-sdk/msteams @ policy.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L10) - - [openclaw/plugin-sdk/msteams @ policy.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L20) - - [openclaw/plugin-sdk/msteams @ probe.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/probe.ts#L5) - - [openclaw/plugin-sdk/msteams @ reply-dispatcher.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/reply-dispatcher.ts#L9) - - [openclaw/plugin-sdk/msteams @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/runtime.ts#L2) - - [openclaw/plugin-sdk/msteams @ secret-input.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/secret-input.ts#L5) - - [openclaw/plugin-sdk/msteams @ send-context.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send-context.ts#L5) - - [openclaw/plugin-sdk/msteams @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L1) - - [openclaw/plugin-sdk/msteams @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L2) - - [openclaw/plugin-sdk/msteams @ store-fs.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/store-fs.ts#L2) - - [openclaw/plugin-sdk/msteams @ test-runtime.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/test-runtime.ts#L3) - - [openclaw/plugin-sdk/msteams @ token.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/token.ts#L1) - -- 🟠 P1 **nextcloud-talk** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:nextcloud-talk` - - evidence: - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L1) - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ accounts.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/accounts.ts#L7) - - [openclaw/plugin-sdk/nextcloud-talk @ channel.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/channel.ts#L22) - - [openclaw/plugin-sdk/nextcloud-talk @ config-schema.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/config-schema.ts#L10) - - [openclaw/plugin-sdk/nextcloud-talk @ inbound.ts:17](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/inbound.ts#L17) - - [openclaw/plugin-sdk/nextcloud-talk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/monitor.ts#L8) - - [openclaw/plugin-sdk/nextcloud-talk @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L14) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ replay-guard.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/replay-guard.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L3) - - [openclaw/plugin-sdk/nextcloud-talk @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ types.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/types.ts#L7) - -- 🟠 P1 **nostr** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:nostr` - - evidence: - - [openclaw/plugin-sdk/nostr @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L1) - - [openclaw/plugin-sdk/nostr @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L2) - - [openclaw/plugin-sdk/nostr @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/channel.ts#L9) - - [openclaw/plugin-sdk/nostr @ config-schema.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/config-schema.ts#L2) - - [openclaw/plugin-sdk/nostr @ nostr-profile-http.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/nostr-profile-http.ts#L16) - - [openclaw/plugin-sdk/nostr @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nostr @ types.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/types.ts#L6) - -- 🟠 P1 **voice-call** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:voice-call` - - evidence: - - [openclaw/plugin-sdk/voice-call @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L5) - - [openclaw/plugin-sdk/voice-call @ cli.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/cli.ts#L5) - - [openclaw/plugin-sdk/voice-call @ config.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/config.ts#L6) - - [openclaw/plugin-sdk/voice-call @ guarded-json-api.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/shared/guarded-json-api.ts#L1) - - [openclaw/plugin-sdk/voice-call @ tts-openai.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/tts-openai.ts#L1) - - [openclaw/plugin-sdk/voice-call @ webhook.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/webhook.ts#L7) - - 🟠 P1 **yuanbao** `sdk-alias` - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - id: `sdk.import.package-export-cold-import:yuanbao` @@ -6067,34 +5105,6 @@ Status: PASS - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2 - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 -- 🟠 P1 **zalo** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:zalo` - - evidence: - - [openclaw/plugin-sdk/zalo @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L1) - - [openclaw/plugin-sdk/zalo @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L2) - - [openclaw/plugin-sdk/zalo @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/accounts.ts#L2) - - [openclaw/plugin-sdk/zalo @ actions.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L5) - - [openclaw/plugin-sdk/zalo @ actions.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L6) - - [openclaw/plugin-sdk/zalo @ channel.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L14) - - [openclaw/plugin-sdk/zalo @ channel.ts:34](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L34) - - [openclaw/plugin-sdk/zalo @ config-schema.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/config-schema.ts#L7) - - [openclaw/plugin-sdk/zalo @ group-access.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L1) - - [openclaw/plugin-sdk/zalo @ group-access.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L22) - - [openclaw/plugin-sdk/zalo @ monitor.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L18) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L3) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/zalo @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/probe.ts#L1) - - [openclaw/plugin-sdk/zalo @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/runtime.ts#L2) - - [openclaw/plugin-sdk/zalo @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/zalo @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/send.ts#L1) - - [openclaw/plugin-sdk/zalo @ status-issues.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/status-issues.ts#L1) - - [openclaw/plugin-sdk/zalo @ token.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/token.ts#L3) - - [openclaw/plugin-sdk/zalo @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/types.ts#L1) - - 🟡 P2 **agentchat** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:agentchat` @@ -6117,8 +5127,8 @@ Status: PASS - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:kitchen-sink` - evidence: - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) - 🟡 P2 **mocrane-wecom** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. @@ -6167,7 +5177,7 @@ Status: PASS - contract: Legacy before_agent_start remains wired until plugins migrate to before_model_resolve and before_prompt_build. - id: `hook.compat.before-agent-start-migration:kitchen-sink` - evidence: - - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L11) + - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L11) - 🟡 P2 **nemoclaw** `hook-runner` - contract: Legacy before_agent_start remains wired until plugins migrate to before_model_resolve and before_prompt_build. @@ -6658,7 +5668,7 @@ Status: PASS - contract: Root plugin SDK barrel remains importable or has a machine-readable migration path. - id: `sdk.import.root-barrel-cold-import:kitchen-sink` - evidence: - - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-sdk-imports.ts#L2) + - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-sdk-imports.ts#L2) - 🟡 P2 **llm-trace-phoenix** `sdk-alias` - contract: Root plugin SDK barrel remains importable or has a machine-readable migration path. @@ -6832,23 +5842,11 @@ Status: PASS - registerTool @ plugins/yuanbao/.crabpot-package/src/business/tools/member.ts:198 - registerTool @ plugins/yuanbao/.crabpot-package/src/business/tools/remind.ts:395 -- 🟢 P3 **bluebubbles** `channel-runtime` - - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - - id: `channel.runtime.envelope-config-metadata:bluebubbles` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - -- 🟢 P3 **discord** `channel-runtime` - - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - - id: `channel.runtime.envelope-config-metadata:discord` - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) - - 🟢 P3 **feishu** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:feishu` - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) + - [createChatChannelPlugin @ channel.ts:580](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/src/channel.ts#L580) - 🟢 P3 **lightclawbot** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. @@ -6872,25 +5870,25 @@ Status: PASS - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:msteams` - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:406](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/src/channel.ts#L406) - 🟢 P3 **nextcloud-talk** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:nextcloud-talk` - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:69](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/src/channel.ts#L69) - 🟢 P3 **nostr** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:nostr` - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) + - [createChatChannelPlugin @ channel.ts:88](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/src/channel.ts#L88) - 🟢 P3 **synology-chat** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:synology-chat` - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:209](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/src/channel.ts#L209) - 🟢 P3 **telnyx-sms** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. @@ -6902,25 +5900,19 @@ Status: PASS - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:tlon` - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) - -- 🟢 P3 **twitch** `channel-runtime` - - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - - id: `channel.runtime.envelope-config-metadata:twitch` - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) + - [createChatChannelPlugin @ channel.ts:61](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/src/channel.ts#L61) - 🟢 P3 **zalo** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:zalo` - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:159](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/src/channel.ts#L159) - 🟢 P3 **zalouser** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:zalouser` - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) + - [createChatChannelPlugin @ channel.ts:68](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/src/channel.ts#L68) - 🟢 P3 **memos-cloud** `hook-runner` - contract: Legacy before_agent_start remains wired until plugins migrate to before_model_resolve and before_prompt_build. @@ -6928,18 +5920,78 @@ Status: PASS - evidence: - [before_agent_start @ index.js:481](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin/blob/03fcc33c5fd285971d4b3dbaa8bbb31cb727db7c/index.js#L481) +- 🟢 P3 **discord** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:discord` + - evidence: + - discord + +- 🟢 P3 **feishu** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:feishu` + - evidence: + - feishu + +- 🟢 P3 **msteams** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:msteams` + - evidence: + - msteams + +- 🟢 P3 **nextcloud-talk** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:nextcloud-talk` + - evidence: + - nextcloud-talk + +- 🟢 P3 **nostr** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:nostr` + - evidence: + - nostr + - 🟢 P3 **openclaw-qqbot** `manifest-loader` - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. - id: `manifest.compat.channel-env-vars:openclaw-qqbot` - evidence: - qqbot +- 🟢 P3 **synology-chat** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:synology-chat` + - evidence: + - synology-chat + - 🟢 P3 **telnyx-sms** `manifest-loader` - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. - id: `manifest.compat.channel-env-vars:telnyx-sms` - evidence: - telnyx-sms +- 🟢 P3 **twitch** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:twitch` + - evidence: + - twitch + +- 🟢 P3 **voice-call** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:voice-call` + - evidence: + - voice-call + +- 🟢 P3 **zalo** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:zalo` + - evidence: + - zalo + +- 🟢 P3 **zalouser** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:zalouser` + - evidence: + - zalouser + - 🟢 P3 **brave-plugin** `manifest-loader` - contract: Legacy provider auth env metadata continues to map into config/help surfaces. - id: `manifest.compat.provider-auth-env-vars:brave-plugin` @@ -6970,48 +6022,18 @@ Status: PASS - evidence: - [displayName @ openclaw.plugin.json](https://github.com/robbyczgw-cla/web-search-plus-plugin/blob/6e4c765cd04eb449c806748c3130793fe0b05e5e/openclaw.plugin.json) -- 🟢 P3 **bluebubbles** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:bluebubbles` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) - - 🟢 P3 **clawrouter** `package-loader` - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - id: `package.compat.plugin-api-range:clawrouter` - evidence: - [package.json](https://github.com/BlockRunAI/ClawRouter/blob/44bc6beced9add67b009cb57d9f84136c5369985/package.json) -- 🟢 P3 **diagnostics-otel** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:diagnostics-otel` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - -- 🟢 P3 **discord** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:discord` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/package.json) - -- 🟢 P3 **feishu** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:feishu` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - 🟢 P3 **lightclawbot** `package-loader` - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - id: `package.compat.plugin-api-range:lightclawbot` - evidence: - plugins/lightclawbot/.crabpot-package/package.json -- 🟢 P3 **lobster** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:lobster` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) - - 🟢 P3 **matrix** `package-loader` - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - id: `package.compat.plugin-api-range:matrix` @@ -7036,66 +6058,12 @@ Status: PASS - evidence: - [package.json](https://github.com/duxiaoxiong/memu-engine-for-OpenClaw/blob/a5a22c5faf21e30d17a1b47635829e7dd0728ae5/package.json) -- 🟢 P3 **msteams** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:msteams` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) - -- 🟢 P3 **nextcloud-talk** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:nextcloud-talk` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) - -- 🟢 P3 **nostr** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:nostr` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) - - 🟢 P3 **secureclaw** `package-loader` - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - id: `package.compat.plugin-api-range:secureclaw` - evidence: - [package.json](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/package.json) -- 🟢 P3 **synology-chat** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:synology-chat` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) - -- 🟢 P3 **tlon** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:tlon` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) - -- 🟢 P3 **twitch** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:twitch` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - -- 🟢 P3 **voice-call** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:voice-call` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - -- 🟢 P3 **zalo** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:zalo` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) - -- 🟢 P3 **zalouser** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:zalouser` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - 🟢 P3 **clawmetry** `package-loader` - contract: Inspector can build or resolve source aliases before cold importing package entrypoints. - id: `package.entrypoint.build-before-cold-import:clawmetry` @@ -7122,12 +6090,6 @@ Status: PASS - [@sinclair/typebox @ package.json](https://github.com/apify/apify-openclaw-plugin/blob/41f49794d230f7ad092d1c699ee4d91fecf6ba91/package.json) - [apify-client @ package.json](https://github.com/apify/apify-openclaw-plugin/blob/41f49794d230f7ad092d1c699ee4d91fecf6ba91/package.json) -- 🟢 P3 **bluebubbles** `package-loader` - - contract: Inspector installs package dependencies in an isolated workspace before cold import. - - id: `package.entrypoint.isolated-dependency-install:bluebubbles` - - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) - - 🟢 P3 **clawmetry** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:clawmetry` @@ -7151,11 +6113,11 @@ Status: PASS - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:codex` - evidence: - - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) + - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) - 🟢 P3 **codex-app-server** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. @@ -7167,42 +6129,52 @@ Status: PASS - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:diagnostics-otel` - evidence: - - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) - 🟢 P3 **diffs** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:diffs` - evidence: - - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) + - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + +- 🟢 P3 **discord** `package-loader` + - contract: Inspector installs package dependencies in an isolated workspace before cold import. + - id: `package.entrypoint.isolated-dependency-install:discord` + - evidence: + - [@discordjs/voice @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [discord-api-types @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [opusscript @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) - 🟢 P3 **feishu** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:feishu` - evidence: - - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) + - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) - 🟢 P3 **google-meet** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:google-meet` - evidence: - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) - 🟢 P3 **lightclawbot** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. @@ -7214,7 +6186,9 @@ Status: PASS - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:lobster` - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) + - [@clawdbot/lobster @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) - 🟢 P3 **matrix** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. @@ -7231,39 +6205,44 @@ Status: PASS - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:memory-lancedb` - evidence: - - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [openai @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) + - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [openai @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) - 🟢 P3 **msteams** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:msteams` - evidence: - - [@microsoft/agents-hosting @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) - - [express @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) + - [@azure/identity @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.apps @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [express @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jsonwebtoken @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jwks-rsa @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) - 🟢 P3 **nextcloud-talk** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:nextcloud-talk` - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/package.json) - 🟢 P3 **nostr** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:nostr` - evidence: - - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) + - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) - 🟢 P3 **openclaw-qqbot** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:openclaw-qqbot` - evidence: - - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) + - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) - 🟢 P3 **secureclaw** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. @@ -7276,56 +6255,55 @@ Status: PASS - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:synology-chat` - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/package.json) - 🟢 P3 **tlon** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:tlon` - evidence: - - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) + - [@aws-sdk/client-s3 @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@aws-sdk/s3-request-presigner @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@tloncorp/tlon-skill @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) - 🟢 P3 **twitch** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:twitch` - evidence: - - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) + - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) - 🟢 P3 **voice-call** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:voice-call` - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) - 🟢 P3 **whatsapp** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:whatsapp` - evidence: - - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) + - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) - 🟢 P3 **zalo** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:zalo` - evidence: - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/package.json) - 🟢 P3 **zalouser** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:zalouser` - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) + - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) - 🟢 P3 **apify** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7337,13 +6315,14 @@ Status: PASS - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:bluebubbles` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/setup-entry.ts) - 🟢 P3 **brave-plugin** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:brave-plugin` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/brave/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/brave/index.ts) - 🟢 P3 **clawmetry** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7355,7 +6334,7 @@ Status: PASS - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:codex` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts) - 🟢 P3 **codex-app-server** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7367,37 +6346,39 @@ Status: PASS - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:diagnostics-otel` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts) - 🟢 P3 **diagnostics-prometheus** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:diagnostics-prometheus` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts) - 🟢 P3 **diffs** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:diffs` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/index.ts) - 🟢 P3 **discord** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:discord` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/setup-entry.ts) - 🟢 P3 **feishu** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:feishu` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/setup-entry.ts) - 🟢 P3 **google-meet** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:google-meet` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts) - 🟢 P3 **inworld-tts** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7409,7 +6390,7 @@ Status: PASS - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:lobster` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/index.ts) - 🟢 P3 **matrix** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7427,7 +6408,7 @@ Status: PASS - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:memory-lancedb` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts) - 🟢 P3 **memu-engine** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7439,50 +6420,56 @@ Status: PASS - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:msteams` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/setup-entry.ts) - 🟢 P3 **nextcloud-talk** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:nextcloud-talk` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/setup-entry.ts) - 🟢 P3 **nostr** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:nostr` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/setup-entry.ts) - 🟢 P3 **openclaw-qqbot** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:openclaw-qqbot` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/setup-entry.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/setup-entry.ts) - 🟢 P3 **synology-chat** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:synology-chat` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/setup-entry.ts) - 🟢 P3 **tlon** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:tlon` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/setup-entry.ts) - 🟢 P3 **twitch** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:twitch` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/setup-entry.ts) - 🟢 P3 **voice-call** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:voice-call` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts) - 🟢 P3 **web-search-plus** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7494,20 +6481,28 @@ Status: PASS - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:whatsapp` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/setup-entry.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/setup-entry.ts) - 🟢 P3 **zalo** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:zalo` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/setup-entry.ts) - 🟢 P3 **zalouser** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:zalouser` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/setup-entry.ts) + +- 🟢 P3 **bluebubbles** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:bluebubbles` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec - 🟢 P3 **brave-plugin** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. @@ -7528,98 +6523,261 @@ Status: PASS - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec -- 🟢 P3 **diagnostics-prometheus** `package-loader` - - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - - id: `package.metadata.install-release:diagnostics-prometheus` - - evidence: - - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec - - openclaw.release.publishToNpm requires openclaw.install.npmSpec - - 🟢 P3 **diffs** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - id: `package.metadata.install-release:diffs` - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec +- 🟢 P3 **discord** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:discord` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **feishu** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:feishu` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + - 🟢 P3 **google-meet** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - id: `package.metadata.install-release:google-meet` - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec +- 🟢 P3 **lobster** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:lobster` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + - 🟢 P3 **memory-lancedb** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - id: `package.metadata.install-release:memory-lancedb` - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec +- 🟢 P3 **msteams** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:msteams` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **nextcloud-talk** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:nextcloud-talk` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **nostr** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:nostr` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + - 🟢 P3 **openclaw-qqbot** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - id: `package.metadata.install-release:openclaw-qqbot` - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec +- 🟢 P3 **synology-chat** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:synology-chat` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **tlon** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:tlon` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **twitch** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:twitch` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **voice-call** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:voice-call` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + - 🟢 P3 **whatsapp** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - id: `package.metadata.install-release:whatsapp` - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec +- 🟢 P3 **zalo** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:zalo` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **zalouser** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:zalouser` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **bluebubbles** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:bluebubbles` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + - 🟢 P3 **brave-plugin** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:brave-plugin` - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟢 P3 **codex** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:codex` - evidence: - minHostVersion:>=2026.5.1-beta.1 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟢 P3 **diagnostics-otel** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:diagnostics-otel` + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **diagnostics-prometheus** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:diagnostics-prometheus` + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟢 P3 **diffs** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:diffs` - evidence: - minHostVersion:>=2026.4.30 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟢 P3 **discord** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:discord` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **feishu** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:feishu` + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **google-meet** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:google-meet` - evidence: - minHostVersion:>=2026.4.20 - - buildOpenClawVersion:2026.5.1-beta.2 + - buildOpenClawVersion:2026.5.2-beta.2 -- 🟢 P3 **inworld-tts** `package-loader` +- 🟢 P3 **lobster** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - - id: `package.metadata.min-host-version:inworld-tts` + - id: `package.metadata.min-host-version:lobster` - evidence: - - minHostVersion:>=2026.4.1 - - buildOpenClawVersion:2026.4.1 + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **memory-lancedb** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:memory-lancedb` - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟢 P3 **msteams** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:msteams` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **nextcloud-talk** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:nextcloud-talk` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **nostr** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:nostr` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **openclaw-qqbot** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:openclaw-qqbot` - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟢 P3 **synology-chat** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:synology-chat` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **tlon** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:tlon` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **twitch** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:twitch` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **voice-call** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:voice-call` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **whatsapp** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:whatsapp` - evidence: - minHostVersion:>=2026.4.25 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟢 P3 **zalo** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:zalo` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **zalouser** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:zalouser` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **lightclawbot** `package-loader` - contract: Package and OpenClaw manifest versions stay aligned for release compatibility reporting. @@ -7680,62 +6838,6 @@ Status: PASS - evidence: - [openclaw/plugin-sdk @ index.ts:1](https://github.com/duxiaoxiong/memu-engine-for-OpenClaw/blob/a5a22c5faf21e30d17a1b47635829e7dd0728ae5/index.ts#L1) -- 🟢 P3 **synology-chat** `sdk-alias` - - contract: Root plugin SDK barrel remains importable or has a machine-readable migration path. - - id: `sdk.import.root-barrel-cold-import:synology-chat` - - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/channel.ts#L12) - - [openclaw/plugin-sdk @ runtime.ts:7](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/runtime.ts#L7) - -- 🟢 P3 **tlon** `sdk-alias` - - contract: Root plugin SDK barrel remains importable or has a machine-readable migration path. - - id: `sdk.import.root-barrel-cold-import:tlon` - - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L12) - - [openclaw/plugin-sdk @ channel.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L7) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ discovery.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/discovery.ts#L1) - - [openclaw/plugin-sdk @ history.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/history.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L2) - - [openclaw/plugin-sdk @ index.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L3) - - [openclaw/plugin-sdk @ onboarding.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L1) - - [openclaw/plugin-sdk @ onboarding.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L9) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ types.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/types.ts#L1) - - [openclaw/plugin-sdk @ auth.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/auth.ts#L1) - - [openclaw/plugin-sdk @ base-url.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/base-url.ts#L1) - - [openclaw/plugin-sdk @ channel-client.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-client.ts#L1) - - [openclaw/plugin-sdk @ channel-ops.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-ops.ts#L1) - - [openclaw/plugin-sdk @ context.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/context.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L2) - - [openclaw/plugin-sdk @ sse-client.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/sse-client.ts#L2) - -- 🟢 P3 **twitch** `sdk-alias` - - contract: Root plugin SDK barrel remains importable or has a machine-readable migration path. - - id: `sdk.import.root-barrel-cold-import:twitch` - - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L2) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ config.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config.ts#L1) - - [openclaw/plugin-sdk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L8) - - [openclaw/plugin-sdk @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L9) - - [openclaw/plugin-sdk @ onboarding.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L12) - - [openclaw/plugin-sdk @ onboarding.ts:5](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L5) - - [openclaw/plugin-sdk @ plugin.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L8) - - [openclaw/plugin-sdk @ plugin.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L9) - - [openclaw/plugin-sdk @ probe.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/probe.ts#L3) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ send.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/send.ts#L8) - - [openclaw/plugin-sdk @ status.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/status.ts#L7) - - [openclaw/plugin-sdk @ test-fixtures.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/test-fixtures.ts#L1) - - [openclaw/plugin-sdk @ twitch-client.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/twitch-client.ts#L3) - - 🟢 P3 **apify** `tool-runtime` - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - id: `tool.registration.schema-capture:apify` @@ -7748,30 +6850,6 @@ Status: PASS - evidence: - [registerTool @ index.ts:1622](https://github.com/BlockRunAI/ClawRouter/blob/44bc6beced9add67b009cb57d9f84136c5369985/src/index.ts#L1622) -- 🟢 P3 **diffs** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:diffs` - - evidence: - - [registerTool @ plugin.ts:42](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L42) - -- 🟢 P3 **feishu** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:feishu` - - evidence: - - [registerTool @ bitable.ts:559](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L559) - - [registerTool @ chat.ts:95](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L95) - - [registerTool @ docx.ts:1262](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1262) - - [registerTool @ docx.ts:1436](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1436) - - [registerTool @ drive.ts:186](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L186) - - [registerTool @ perm.ts:135](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L135) - - [registerTool @ wiki.ts:174](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L174) - -- 🟢 P3 **google-meet** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:google-meet` - - evidence: - - [registerTool @ index.ts:883](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L883) - - 🟢 P3 **lightclawbot** `tool-runtime` - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - id: `tool.registration.schema-capture:lightclawbot` @@ -7779,48 +6857,15 @@ Status: PASS - registerTool @ plugins/lightclawbot/.crabpot-package/dist/src/download-tool.js:49 - registerTool @ plugins/lightclawbot/.crabpot-package/dist/src/upload-tool.js:37 -- 🟢 P3 **lobster** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:lobster` - - evidence: - - [registerTool @ index.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L9) - -- 🟢 P3 **memory-lancedb** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:memory-lancedb` - - evidence: - - [registerTool @ index.ts:643](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L643) - - [registerTool @ index.ts:694](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L694) - - [registerTool @ index.ts:757](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L757) - - 🟢 P3 **memu-engine** `tool-runtime` - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - id: `tool.registration.schema-capture:memu-engine` - evidence: - [registerTool @ index.ts:1252](https://github.com/duxiaoxiong/memu-engine-for-OpenClaw/blob/a5a22c5faf21e30d17a1b47635829e7dd0728ae5/index.ts#L1252) -- 🟢 P3 **openclaw-qqbot** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:openclaw-qqbot` - - evidence: - - [registerTool @ channel.ts:32](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/channel.ts#L32) - - [registerTool @ remind.ts:90](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/remind.ts#L90) - -- 🟢 P3 **voice-call** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:voice-call` - - evidence: - - [registerTool @ index.ts:399](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L399) - - 🟢 P3 **web-search-plus** `tool-runtime` - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - id: `tool.registration.schema-capture:web-search-plus` - evidence: - [registerTool @ index.ts:815](https://github.com/robbyczgw-cla/web-search-plus-plugin/blob/6e4c765cd04eb449c806748c3130793fe0b05e5e/index.ts#L815) - [registerTool @ index.ts:947](https://github.com/robbyczgw-cla/web-search-plus-plugin/blob/6e4c765cd04eb449c806748c3130793fe0b05e5e/index.ts#L947) - -- 🟢 P3 **zalouser** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:zalouser` - - evidence: - - [registerTool @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L16) diff --git a/reports/crabpot-report.json b/reports/crabpot-report.json index b5114df..092e03c 100644 --- a/reports/crabpot-report.json +++ b/reports/crabpot-report.json @@ -1,13 +1,13 @@ { "generatedAt": "deterministic", "targetOpenClaw": { - "configuredPath": "./openclaw", + "configuredPath": "/Users/vincentkoc/.codex/worktrees/openclaw-openclaw/qa-kitchen-sink-crabbox", "searchedPaths": [ - "./openclaw" + "/Users/vincentkoc/.codex/worktrees/openclaw-openclaw/qa-kitchen-sink-crabbox" ], "status": "ok", - "compatRegistryPath": "openclaw/src/plugins/compat/registry.ts", - "compatRecordCount": 61, + "compatRegistryPath": "../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugins/compat/registry.ts", + "compatRecordCount": 60, "compatRecords": [ "activation-agent-harness-hint", "activation-capability-hint", @@ -45,7 +45,6 @@ "hook.llm-observer.privacy-payload", "legacy-before-agent-start", "legacy-extension-api-import", - "legacy-implicit-startup-sidecar", "legacy-root-sdk-import", "memory-split-registration", "openclaw-schema-type-alias", @@ -108,7 +107,6 @@ "hook.llm-observer.privacy-payload": "active", "legacy-before-agent-start": "deprecated", "legacy-extension-api-import": "deprecated", - "legacy-implicit-startup-sidecar": "deprecated", "legacy-root-sdk-import": "deprecated", "memory-split-registration": "deprecated", "openclaw-schema-type-alias": "deprecated", @@ -134,7 +132,7 @@ "runtime-taskflow-legacy-alias": "deprecated", "setup-runtime-fallback": "active" }, - "hookTypesPath": "openclaw/src/plugins/hook-types.ts", + "hookTypesPath": "../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugins/hook-types.ts", "hookNameCount": 35, "hookNames": [ "after_compaction", @@ -173,7 +171,7 @@ "subagent_spawning", "tool_result_persist" ], - "apiBuilderPath": "openclaw/src/plugins/api-builder.ts", + "apiBuilderPath": "../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugins/api-builder.ts", "apiRegistrarCount": 49, "apiRegistrars": [ "registerAgentEventSubscription", @@ -226,7 +224,7 @@ "registerWebFetchProvider", "registerWebSearchProvider" ], - "capturedRegistrationPath": "openclaw/src/plugins/captured-registration.ts", + "capturedRegistrationPath": "../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugins/captured-registration.ts", "capturedRegistrarCount": 26, "capturedRegistrars": [ "registerAgentEventSubscription", @@ -256,7 +254,7 @@ "registerWebFetchProvider", "registerWebSearchProvider" ], - "packagePath": "openclaw/package.json", + "packagePath": "../../openclaw-openclaw/qa-kitchen-sink-crabbox/package.json", "sdkExportCount": 294, "sdkExports": [ "openclaw/plugin-sdk", @@ -554,7 +552,7 @@ "openclaw/plugin-sdk/zalouser", "openclaw/plugin-sdk/zod" ], - "pluginSdkEntrypointsPath": "openclaw/src/plugin-sdk/entrypoints.ts", + "pluginSdkEntrypointsPath": "../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugin-sdk/entrypoints.ts", "reservedSdkExportCount": 0, "reservedSdkExports": [], "supportedFacadeSdkExports": [ @@ -592,8 +590,8 @@ "openclaw/plugin-sdk/telegram-command-config", "openclaw/plugin-sdk/video-generation-core" ], - "manifestTypesPath": "openclaw/src/plugins/manifest.ts", - "manifestFieldCount": 35, + "manifestTypesPath": "../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugins/manifest.ts", + "manifestFieldCount": 39, "manifestFields": [ "activation", "autoEnableWhenConfiguredProviders", @@ -608,6 +606,7 @@ "description", "enabledByDefault", "id", + "imageGenerationProviderMetadata", "kind", "legacyPluginIds", "mediaUnderstandingProviderMetadata", @@ -615,6 +614,7 @@ "modelIdNormalization", "modelPricing", "modelSupport", + "musicGenerationProviderMetadata", "name", "nonSecretAuthMarkers", "providerAuthAliases", @@ -628,8 +628,10 @@ "setup", "skills", "syntheticAuthRefs", + "toolMetadata", "uiHints", - "version" + "version", + "videoGenerationProviderMetadata" ], "manifestContractFieldCount": 17, "manifestContractFields": [ @@ -657,21 +659,28 @@ "fixtureCount": 57, "highPriorityFixtures": 22, "breakageCount": 0, - "warningCount": 117, - "suggestionCount": 208, - "decisionCount": 330, - "logCount": 440, - "issueCount": 325, - "p0IssueCount": 13, - "p1IssueCount": 71, - "liveIssueCount": 13, - "liveP0IssueCount": 13, - "compatGapCount": 13, - "deprecationWarningCount": 33, - "inspectorGapCount": 203, - "upstreamIssueCount": 63, + "warningCount": 129, + "suggestionCount": 178, + "decisionCount": 321, + "logCount": 452, + "issueCount": 307, + "openIssueCount": 307, + "p0IssueCount": 4, + "p1IssueCount": 52, + "openP0IssueCount": 4, + "openP1IssueCount": 52, + "liveIssueCount": 4, + "liveP0IssueCount": 4, + "compatGapCount": 4, + "deprecationWarningCount": 40, + "inspectorGapCount": 182, + "upstreamIssueCount": 77, "fixtureRegressionCount": 0, - "contractProbeCount": 310 + "openInspectorGapCount": 182, + "runtimeCoveredIssueCount": 0, + "runtimePartiallyCoveredIssueCount": 0, + "runtimeCoverageArtifactCount": 0, + "contractProbeCount": 299 }, "fixtures": [ { @@ -830,6 +839,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -899,6 +909,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -1238,6 +1249,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -1302,6 +1314,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -1511,6 +1524,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -1566,6 +1580,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -1818,6 +1833,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -1865,6 +1881,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -2022,6 +2039,7 @@ "buildPluginSdkVersion": "2026.3.24-beta.2", "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -2072,6 +2090,7 @@ "buildPluginSdkVersion": "2026.3.24-beta.2", "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -2183,6 +2202,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -2230,6 +2250,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -2333,6 +2354,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -2372,6 +2394,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -2600,6 +2623,7 @@ "buildPluginSdkVersion": "2026.3.2", "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -2672,6 +2696,7 @@ "buildPluginSdkVersion": "2026.3.2", "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -2880,6 +2905,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -2919,6 +2945,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -3167,6 +3194,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -3220,6 +3248,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -3365,6 +3394,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -3406,6 +3436,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -3668,6 +3699,7 @@ "buildPluginSdkVersion": "2026.3.24-beta.2", "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -3724,6 +3756,7 @@ "buildPluginSdkVersion": "2026.3.24-beta.2", "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -3987,6 +4020,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -4036,6 +4070,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -4251,6 +4286,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -4298,6 +4334,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -5174,9 +5211,10 @@ "path": "plugins/kitchen-sink/openclaw.plugin.json", "id": "openclaw-kitchen-sink-fixture", "name": "OpenClaw Kitchen Sink", - "version": "0.2.2", + "version": "0.2.5", "keys": [ "activation", + "channelConfigs", "channels", "cliBackends", "commandAliases", @@ -5241,7 +5279,7 @@ "package": { "path": "plugins/kitchen-sink/package.json", "name": "@openclaw/kitchen-sink", - "version": "0.2.2", + "version": "0.2.5", "type": "module", "main": null, "npmPack": { @@ -5276,12 +5314,13 @@ "clawhubSpec": "clawhub:@openclaw/kitchen-sink", "npmSpec": "@openclaw/kitchen-sink", "defaultChoice": "clawhub", - "minHostVersion": "2026.4.29" + "minHostVersion": ">=2026.4.29" }, "release": { "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -5311,7 +5350,7 @@ { "path": "plugins/kitchen-sink/package.json", "name": "@openclaw/kitchen-sink", - "version": "0.2.2", + "version": "0.2.5", "type": "module", "main": null, "npmPack": { @@ -5346,12 +5385,13 @@ "clawhubSpec": "clawhub:@openclaw/kitchen-sink", "npmSpec": "@openclaw/kitchen-sink", "defaultChoice": "clawhub", - "minHostVersion": "2026.4.29" + "minHostVersion": ">=2026.4.29" }, "release": { "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -7450,14 +7490,14 @@ "hooks": [], "hookDetails": [], "registrations": [ - "registerChannel" + "defineBundledChannelEntry" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "defineBundledChannelEntry", "file": "plugins/bluebubbles/.crabpot-package/index.ts", - "line": 13, - "ref": "plugins/bluebubbles/.crabpot-package/index.ts:13" + "line": 3, + "ref": "plugins/bluebubbles/.crabpot-package/index.ts:3" } ], "manifestContracts": [], @@ -7465,37 +7505,76 @@ "plugins/bluebubbles/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/bluebubbles/.crabpot-package/api.ts", + "plugins/bluebubbles/.crabpot-package/channel-config-api.ts", + "plugins/bluebubbles/.crabpot-package/channel-plugin-api.ts", + "plugins/bluebubbles/.crabpot-package/contract-api.ts", + "plugins/bluebubbles/.crabpot-package/doctor-contract-api.ts", "plugins/bluebubbles/.crabpot-package/index.ts", + "plugins/bluebubbles/.crabpot-package/runtime-api.ts", + "plugins/bluebubbles/.crabpot-package/secret-contract-api.ts", + "plugins/bluebubbles/.crabpot-package/setup-entry.ts", "plugins/bluebubbles/.crabpot-package/src/account-resolve.ts", + "plugins/bluebubbles/.crabpot-package/src/accounts-normalization.ts", "plugins/bluebubbles/.crabpot-package/src/accounts.ts", + "plugins/bluebubbles/.crabpot-package/src/actions-api.ts", + "plugins/bluebubbles/.crabpot-package/src/actions-contract.ts", + "plugins/bluebubbles/.crabpot-package/src/actions.runtime.ts", "plugins/bluebubbles/.crabpot-package/src/actions.ts", "plugins/bluebubbles/.crabpot-package/src/attachments.ts", + "plugins/bluebubbles/.crabpot-package/src/catchup.ts", + "plugins/bluebubbles/.crabpot-package/src/channel-shared.ts", + "plugins/bluebubbles/.crabpot-package/src/channel.runtime.ts", + "plugins/bluebubbles/.crabpot-package/src/channel.setup.ts", "plugins/bluebubbles/.crabpot-package/src/channel.ts", "plugins/bluebubbles/.crabpot-package/src/chat.ts", + "plugins/bluebubbles/.crabpot-package/src/client.ts", "plugins/bluebubbles/.crabpot-package/src/config-apply.ts", "plugins/bluebubbles/.crabpot-package/src/config-schema.ts", + "plugins/bluebubbles/.crabpot-package/src/config-ui-hints.ts", + "plugins/bluebubbles/.crabpot-package/src/conversation-bindings.ts", + "plugins/bluebubbles/.crabpot-package/src/conversation-id.ts", + "plugins/bluebubbles/.crabpot-package/src/conversation-route.ts", + "plugins/bluebubbles/.crabpot-package/src/doctor-contract.ts", + "plugins/bluebubbles/.crabpot-package/src/doctor.ts", + "plugins/bluebubbles/.crabpot-package/src/group-policy.ts", "plugins/bluebubbles/.crabpot-package/src/history.ts", + "plugins/bluebubbles/.crabpot-package/src/inbound-dedupe.ts", "plugins/bluebubbles/.crabpot-package/src/media-send.ts", "plugins/bluebubbles/.crabpot-package/src/monitor-debounce.ts", "plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts", + "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts", "plugins/bluebubbles/.crabpot-package/src/monitor-reply-cache.ts", + "plugins/bluebubbles/.crabpot-package/src/monitor-reply-fetch.ts", "plugins/bluebubbles/.crabpot-package/src/monitor-self-chat-cache.ts", "plugins/bluebubbles/.crabpot-package/src/monitor-shared.ts", "plugins/bluebubbles/.crabpot-package/src/monitor.ts", + "plugins/bluebubbles/.crabpot-package/src/monitor.webhook.test-helpers.ts", "plugins/bluebubbles/.crabpot-package/src/multipart.ts", - "plugins/bluebubbles/.crabpot-package/src/onboarding.ts", + "plugins/bluebubbles/.crabpot-package/src/pairing.ts", + "plugins/bluebubbles/.crabpot-package/src/participant-contact-names.ts", "plugins/bluebubbles/.crabpot-package/src/probe.ts", "plugins/bluebubbles/.crabpot-package/src/reactions.ts", "plugins/bluebubbles/.crabpot-package/src/request-url.ts", + "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", "plugins/bluebubbles/.crabpot-package/src/runtime.ts", + "plugins/bluebubbles/.crabpot-package/src/secret-contract.ts", "plugins/bluebubbles/.crabpot-package/src/secret-input.ts", "plugins/bluebubbles/.crabpot-package/src/send-helpers.ts", "plugins/bluebubbles/.crabpot-package/src/send.ts", + "plugins/bluebubbles/.crabpot-package/src/session-route.ts", + "plugins/bluebubbles/.crabpot-package/src/setup-core.ts", + "plugins/bluebubbles/.crabpot-package/src/setup-surface.ts", + "plugins/bluebubbles/.crabpot-package/src/status-issues.ts", "plugins/bluebubbles/.crabpot-package/src/targets.ts", "plugins/bluebubbles/.crabpot-package/src/test-harness.ts", + "plugins/bluebubbles/.crabpot-package/src/test-helpers.ts", "plugins/bluebubbles/.crabpot-package/src/test-mocks.ts", - "plugins/bluebubbles/.crabpot-package/src/types.ts" + "plugins/bluebubbles/.crabpot-package/src/test-support/monitor-test-support.ts", + "plugins/bluebubbles/.crabpot-package/src/types.ts", + "plugins/bluebubbles/.crabpot-package/src/webhook-ingress.ts", + "plugins/bluebubbles/.crabpot-package/src/webhook-shared.ts" ], "pluginManifests": [ { @@ -7504,6 +7583,8 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", "channels", "configSchema", "id" @@ -7511,14 +7592,16 @@ "contracts": [], "providerAuthEnvVars": {}, "channelEnvVars": {}, - "activation": null + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/bluebubbles/.crabpot-package/package.json", "name": "@openclaw/bluebubbles", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -7528,27 +7611,31 @@ "files": [], "invalidFileSpecs": [] }, - "dependencies": [ - "zod" + "dependencies": [], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/bluebubbles", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -7556,6 +7643,13 @@ "relativePath": "plugins/bluebubbles/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/bluebubbles/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -7564,7 +7658,7 @@ { "path": "plugins/bluebubbles/.crabpot-package/package.json", "name": "@openclaw/bluebubbles", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -7574,27 +7668,31 @@ "files": [], "invalidFileSpecs": [] }, - "dependencies": [ - "zod" + "dependencies": [], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/bluebubbles", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -7602,6 +7700,13 @@ "relativePath": "plugins/bluebubbles/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/bluebubbles/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -7628,220 +7733,879 @@ } ], "sdkImports": [ + "openclaw/plugin-sdk/account-helpers", "openclaw/plugin-sdk/account-id", - "openclaw/plugin-sdk/bluebubbles", - "openclaw/plugin-sdk/compat" + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/agent-runtime", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/boolean-param", + "openclaw/plugin-sdk/channel-actions", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-feedback", + "openclaw/plugin-sdk/channel-inbound", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-status", + "openclaw/plugin-sdk/channel-streaming", + "openclaw/plugin-sdk/channel-targets", + "openclaw/plugin-sdk/channel-test-helpers", + "openclaw/plugin-sdk/command-auth", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/context-visibility-runtime", + "openclaw/plugin-sdk/conversation-runtime", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/file-access-runtime", + "openclaw/plugin-sdk/json-store", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/media-runtime", + "openclaw/plugin-sdk/number-runtime", + "openclaw/plugin-sdk/persistent-dedupe", + "openclaw/plugin-sdk/reply-history", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/request-url", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-fetch", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/state-paths", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/string-coerce-runtime", + "openclaw/plugin-sdk/temp-path", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/thread-bindings-runtime", + "openclaw/plugin-sdk/tool-send", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/webhook-path", + "openclaw/plugin-sdk/zod" ], "sdkImportDetails": [ + { + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/bluebubbles/.crabpot-package/src/channel-shared.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel-shared.ts:1" + }, { "specifier": "openclaw/plugin-sdk/account-id", - "file": "plugins/bluebubbles/.crabpot-package/src/accounts.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/accounts.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/index.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/index.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/index.ts", - "line": 2, - "ref": "plugins/bluebubbles/.crabpot-package/index.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/account-resolve.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/account-resolve.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/accounts.ts", - "line": 2, - "ref": "plugins/bluebubbles/.crabpot-package/src/accounts.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/actions.ts", - "line": 13, - "ref": "plugins/bluebubbles/.crabpot-package/src/actions.ts:13" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/attachments.ts", - "line": 3, - "ref": "plugins/bluebubbles/.crabpot-package/src/attachments.ts:3" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", "file": "plugins/bluebubbles/.crabpot-package/src/channel.ts", - "line": 20, - "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:20" + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:1" }, { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/channel.ts", - "line": 5, - "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:5" + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/bluebubbles/.crabpot-package/src/client.ts", + "line": 14, + "ref": "plugins/bluebubbles/.crabpot-package/src/client.ts:14" }, { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/chat.ts", - "line": 3, - "ref": "plugins/bluebubbles/.crabpot-package/src/chat.ts:3" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", + "specifier": "openclaw/plugin-sdk/account-id", "file": "plugins/bluebubbles/.crabpot-package/src/config-apply.ts", "line": 1, "ref": "plugins/bluebubbles/.crabpot-package/src/config-apply.ts:1" }, { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/config-schema.ts", + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 33, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:33" + }, + { + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/bluebubbles/.crabpot-package/src/accounts.ts", + "line": 5, + "ref": "plugins/bluebubbles/.crabpot-package/src/accounts.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/config-schema.ts:1" + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:1" }, { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/history.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/history.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/media-send.ts", - "line": 6, - "ref": "plugins/bluebubbles/.crabpot-package/src/media-send.ts:6" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/monitor-debounce.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-debounce.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts", - "line": 19, - "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:19" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/monitor-shared.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-shared.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/monitor.ts", - "line": 9, - "ref": "plugins/bluebubbles/.crabpot-package/src/monitor.ts:9" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/onboarding.ts", - "line": 16, - "ref": "plugins/bluebubbles/.crabpot-package/src/onboarding.ts:16" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/onboarding.ts", - "line": 7, - "ref": "plugins/bluebubbles/.crabpot-package/src/onboarding.ts:7" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/probe.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/probe.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/reactions.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/reactions.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/request-url.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/request-url.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/runtime.ts", - "line": 1, - "ref": "plugins/bluebubbles/.crabpot-package/src/runtime.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/secret-input.ts", - "line": 6, - "ref": "plugins/bluebubbles/.crabpot-package/src/secret-input.ts:6" - }, - { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/send.ts", + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/bluebubbles/.crabpot-package/src/channel-shared.ts", "line": 2, - "ref": "plugins/bluebubbles/.crabpot-package/src/send.ts:2" + "ref": "plugins/bluebubbles/.crabpot-package/src/channel-shared.ts:2" }, { - "specifier": "openclaw/plugin-sdk/bluebubbles", - "file": "plugins/bluebubbles/.crabpot-package/src/send.ts", + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/bluebubbles/.crabpot-package/src/targets.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/targets.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/boolean-param", + "file": "plugins/bluebubbles/.crabpot-package/src/actions.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/actions.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/boolean-param", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 39, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:39" + }, + { + "specifier": "openclaw/plugin-sdk/channel-actions", + "file": "plugins/bluebubbles/.crabpot-package/src/actions.ts", + "line": 8, + "ref": "plugins/bluebubbles/.crabpot-package/src/actions.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-actions", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 8, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/bluebubbles/.crabpot-package/src/channel-shared.ts", + "line": 6, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel-shared.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/bluebubbles/.crabpot-package/src/channel.ts", + "line": 2, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 4, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 40, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:40" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-schema", + "file": "plugins/bluebubbles/.crabpot-package/src/config-schema.ts", + "line": 9, + "ref": "plugins/bluebubbles/.crabpot-package/src/config-schema.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/bluebubbles/.crabpot-package/src/actions-api.ts", + "line": 5, + "ref": "plugins/bluebubbles/.crabpot-package/src/actions-api.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/bluebubbles/.crabpot-package/src/doctor.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/doctor.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 26, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:26" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/bluebubbles/.crabpot-package/src/status-issues.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/status-issues.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/bluebubbles/.crabpot-package/src/channel.setup.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel.setup.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/bluebubbles/.crabpot-package/src/channel.ts", "line": 3, - "ref": "plugins/bluebubbles/.crabpot-package/src/send.ts:3" + "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:3" }, { - "specifier": "openclaw/plugin-sdk/bluebubbles", + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/bluebubbles/.crabpot-package/src/config-ui-hints.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/config-ui-hints.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 31, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:31" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/bluebubbles/.crabpot-package/src/session-route.ts", + "line": 5, + "ref": "plugins/bluebubbles/.crabpot-package/src/session-route.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/bluebubbles/.crabpot-package/index.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/index.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/bluebubbles/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/setup-entry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-feedback", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-feedback", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 2, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-feedback", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 15, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 3, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 16, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/channel-lifecycle", + "file": "plugins/bluebubbles/.crabpot-package/src/channel.ts", + "line": 4, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 5, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/bluebubbles/.crabpot-package/src/pairing.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/pairing.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 41, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:41" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/bluebubbles/.crabpot-package/src/channel.ts", + "line": 8, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/bluebubbles/.crabpot-package/src/group-policy.ts", + "line": 5, + "ref": "plugins/bluebubbles/.crabpot-package/src/group-policy.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 11, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 38, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:38" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 6, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 42, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:42" + }, + { + "specifier": "openclaw/plugin-sdk/channel-secret-basic-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/secret-contract.ts", + "line": 6, + "ref": "plugins/bluebubbles/.crabpot-package/src/secret-contract.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-secret-basic-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/secret-contract.ts", + "line": 8, + "ref": "plugins/bluebubbles/.crabpot-package/src/secret-contract.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/bluebubbles/.crabpot-package/src/channel.ts", + "line": 9, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/bluebubbles/.crabpot-package/src/pairing.ts", + "line": 2, + "ref": "plugins/bluebubbles/.crabpot-package/src/pairing.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 19, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:19" + }, + { + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 44, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:44" + }, + { + "specifier": "openclaw/plugin-sdk/channel-streaming", + "file": "plugins/bluebubbles/.crabpot-package/src/accounts.ts", + "line": 6, + "ref": "plugins/bluebubbles/.crabpot-package/src/accounts.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-targets", "file": "plugins/bluebubbles/.crabpot-package/src/targets.ts", "line": 8, "ref": "plugins/bluebubbles/.crabpot-package/src/targets.ts:8" }, { - "specifier": "openclaw/plugin-sdk/bluebubbles", + "specifier": "openclaw/plugin-sdk/channel-test-helpers", + "file": "plugins/bluebubbles/.crabpot-package/src/test-support/monitor-test-support.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/test-support/monitor-test-support.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 12, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 14, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/bluebubbles/.crabpot-package/src/accounts.ts", + "line": 7, + "ref": "plugins/bluebubbles/.crabpot-package/src/accounts.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/bluebubbles/.crabpot-package/src/config-apply.ts", + "line": 2, + "ref": "plugins/bluebubbles/.crabpot-package/src/config-apply.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/bluebubbles/.crabpot-package/src/conversation-bindings.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/conversation-bindings.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/bluebubbles/.crabpot-package/src/conversation-route.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/conversation-route.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/bluebubbles/.crabpot-package/src/group-policy.ts", + "line": 6, + "ref": "plugins/bluebubbles/.crabpot-package/src/group-policy.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-shared.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-shared.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/context-visibility-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 13, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/context-visibility-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 57, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:57" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/conversation-route.ts", + "line": 5, + "ref": "plugins/bluebubbles/.crabpot-package/src/conversation-route.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/bluebubbles/.crabpot-package/src/test-support/monitor-test-support.ts", + "line": 2, + "ref": "plugins/bluebubbles/.crabpot-package/src/test-support/monitor-test-support.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/client.ts", + "line": 15, + "ref": "plugins/bluebubbles/.crabpot-package/src/client.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor.ts", + "line": 2, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/probe.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/probe.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/file-access-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/media-send.ts", + "line": 8, + "ref": "plugins/bluebubbles/.crabpot-package/src/media-send.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/json-store", + "file": "plugins/bluebubbles/.crabpot-package/src/catchup.ts", + "line": 3, + "ref": "plugins/bluebubbles/.crabpot-package/src/catchup.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/lazy-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/actions.ts", + "line": 9, + "ref": "plugins/bluebubbles/.crabpot-package/src/actions.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/lazy-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/channel.ts", + "line": 10, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/media-send.ts", + "line": 9, + "ref": "plugins/bluebubbles/.crabpot-package/src/media-send.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 18, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:18" + }, + { + "specifier": "openclaw/plugin-sdk/number-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/number-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 32, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:32" + }, + { + "specifier": "openclaw/plugin-sdk/persistent-dedupe", + "file": "plugins/bluebubbles/.crabpot-package/src/inbound-dedupe.ts", + "line": 4, + "ref": "plugins/bluebubbles/.crabpot-package/src/inbound-dedupe.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 18, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:18" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 13, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 9, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/bluebubbles/.crabpot-package/src/test-support/monitor-test-support.ts", + "line": 3, + "ref": "plugins/bluebubbles/.crabpot-package/src/test-support/monitor-test-support.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts", + "line": 5, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/request-url", + "file": "plugins/bluebubbles/.crabpot-package/src/request-url.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/request-url.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/request-url", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 43, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:43" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/bluebubbles/.crabpot-package/src/conversation-route.ts", + "line": 6, + "ref": "plugins/bluebubbles/.crabpot-package/src/conversation-route.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/bluebubbles/.crabpot-package/src/conversation-route.ts", + "line": 7, + "ref": "plugins/bluebubbles/.crabpot-package/src/conversation-route.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-fetch", "file": "plugins/bluebubbles/.crabpot-package/src/types.ts", "line": 1, "ref": "plugins/bluebubbles/.crabpot-package/src/types.ts:1" }, { - "specifier": "openclaw/plugin-sdk/bluebubbles", + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/bluebubbles/.crabpot-package/src/secret-input.ts", + "line": 6, + "ref": "plugins/bluebubbles/.crabpot-package/src/secret-input.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 19, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:19" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor.ts", + "line": 3, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 61, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:61" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/bluebubbles/.crabpot-package/src/setup-core.ts", + "line": 10, + "ref": "plugins/bluebubbles/.crabpot-package/src/setup-core.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/bluebubbles/.crabpot-package/src/setup-surface.ts", + "line": 10, + "ref": "plugins/bluebubbles/.crabpot-package/src/setup-surface.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/bluebubbles/.crabpot-package/src/types.ts", + "line": 2, + "ref": "plugins/bluebubbles/.crabpot-package/src/types.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/accounts-normalization.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/accounts-normalization.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/actions.ts", + "line": 10, + "ref": "plugins/bluebubbles/.crabpot-package/src/actions.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/client.ts", + "line": 16, + "ref": "plugins/bluebubbles/.crabpot-package/src/client.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/doctor-contract.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/doctor-contract.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts", + "line": 6, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/multipart.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/multipart.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", "file": "plugins/bluebubbles/.crabpot-package/src/types.ts", "line": 3, "ref": "plugins/bluebubbles/.crabpot-package/src/types.ts:3" }, { - "specifier": "openclaw/plugin-sdk/compat", + "specifier": "openclaw/plugin-sdk/state-paths", + "file": "plugins/bluebubbles/.crabpot-package/src/catchup.ts", + "line": 4, + "ref": "plugins/bluebubbles/.crabpot-package/src/catchup.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/state-paths", + "file": "plugins/bluebubbles/.crabpot-package/src/inbound-dedupe.ts", + "line": 5, + "ref": "plugins/bluebubbles/.crabpot-package/src/inbound-dedupe.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", "file": "plugins/bluebubbles/.crabpot-package/src/channel.ts", - "line": 27, - "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:27" + "line": 14, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:14" }, { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/bluebubbles/.crabpot-package/src/config-schema.ts", - "line": 7, - "ref": "plugins/bluebubbles/.crabpot-package/src/config-schema.ts:7" - }, - { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/bluebubbles/.crabpot-package/src/runtime.ts", + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/bluebubbles/.crabpot-package/src/status-issues.ts", "line": 2, - "ref": "plugins/bluebubbles/.crabpot-package/src/runtime.ts:2" + "ref": "plugins/bluebubbles/.crabpot-package/src/status-issues.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/string-coerce-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-debounce.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-debounce.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/string-coerce-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts", + "line": 11, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/string-coerce-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-reply-fetch.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-reply-fetch.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/string-coerce-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor.ts", + "line": 4, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/temp-path", + "file": "plugins/bluebubbles/.crabpot-package/src/catchup.ts", + "line": 5, + "ref": "plugins/bluebubbles/.crabpot-package/src/catchup.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/temp-path", + "file": "plugins/bluebubbles/.crabpot-package/src/inbound-dedupe.ts", + "line": 6, + "ref": "plugins/bluebubbles/.crabpot-package/src/inbound-dedupe.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/accounts.ts", + "line": 8, + "ref": "plugins/bluebubbles/.crabpot-package/src/accounts.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/actions.ts", + "line": 11, + "ref": "plugins/bluebubbles/.crabpot-package/src/actions.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/attachments.ts", + "line": 7, + "ref": "plugins/bluebubbles/.crabpot-package/src/attachments.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/channel.ts", + "line": 15, + "ref": "plugins/bluebubbles/.crabpot-package/src/channel.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/media-send.ts", + "line": 10, + "ref": "plugins/bluebubbles/.crabpot-package/src/media-send.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts", + "line": 7, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts", + "line": 20, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-processing-api.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-reply-cache.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-reply-cache.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/monitor-self-chat-cache.ts", + "line": 2, + "ref": "plugins/bluebubbles/.crabpot-package/src/monitor-self-chat-cache.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/participant-contact-names.ts", + "line": 5, + "ref": "plugins/bluebubbles/.crabpot-package/src/participant-contact-names.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/probe.ts", + "line": 2, + "ref": "plugins/bluebubbles/.crabpot-package/src/probe.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/reactions.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/reactions.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 45, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:45" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/send.ts", + "line": 7, + "ref": "plugins/bluebubbles/.crabpot-package/src/send.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/setup-surface.ts", + "line": 11, + "ref": "plugins/bluebubbles/.crabpot-package/src/setup-surface.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/targets.ts", + "line": 12, + "ref": "plugins/bluebubbles/.crabpot-package/src/targets.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/webhook-shared.ts", + "line": 1, + "ref": "plugins/bluebubbles/.crabpot-package/src/webhook-shared.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/thread-bindings-runtime", + "file": "plugins/bluebubbles/.crabpot-package/src/conversation-bindings.ts", + "line": 7, + "ref": "plugins/bluebubbles/.crabpot-package/src/conversation-bindings.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/tool-send", + "file": "plugins/bluebubbles/.crabpot-package/src/actions.ts", + "line": 12, + "ref": "plugins/bluebubbles/.crabpot-package/src/actions.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/tool-send", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 46, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:46" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts", + "line": 56, + "ref": "plugins/bluebubbles/.crabpot-package/src/runtime-api.ts:56" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/bluebubbles/.crabpot-package/src/webhook-ingress.ts", + "line": 10, + "ref": "plugins/bluebubbles/.crabpot-package/src/webhook-ingress.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-path", + "file": "plugins/bluebubbles/.crabpot-package/src/webhook-shared.ts", + "line": 2, + "ref": "plugins/bluebubbles/.crabpot-package/src/webhook-shared.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/bluebubbles/.crabpot-package/src/config-schema.ts", + "line": 10, + "ref": "plugins/bluebubbles/.crabpot-package/src/config-schema.ts:10" } ] }, @@ -7861,14 +8625,21 @@ "hooks": [], "hookDetails": [], "registrations": [ + "definePluginEntry", "registerService" ], "registrationDetails": [ + { + "name": "definePluginEntry", + "file": "plugins/diagnostics-otel/.crabpot-package/index.ts", + "line": 4, + "ref": "plugins/diagnostics-otel/.crabpot-package/index.ts:4" + }, { "name": "registerService", "file": "plugins/diagnostics-otel/.crabpot-package/index.ts", - "line": 11, - "ref": "plugins/diagnostics-otel/.crabpot-package/index.ts:11" + "line": 9, + "ref": "plugins/diagnostics-otel/.crabpot-package/index.ts:9" } ], "manifestContracts": [], @@ -7876,6 +8647,7 @@ "plugins/diagnostics-otel/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/diagnostics-otel/.crabpot-package/api.ts", "plugins/diagnostics-otel/.crabpot-package/index.ts", "plugins/diagnostics-otel/.crabpot-package/src/service.ts" ], @@ -7886,24 +8658,27 @@ "name": null, "version": null, "keys": [ + "activation", "configSchema", "id" ], "contracts": [], "providerAuthEnvVars": {}, "channelEnvVars": {}, - "activation": null + "activation": { + "onStartup": true + } } ], "securityManifests": [], "package": { "path": "plugins/diagnostics-otel/.crabpot-package/package.json", "name": "@openclaw/diagnostics-otel", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { - "advertised": false, + "advertised": true, "private": false, "filesMode": "implicit", "files": [], @@ -7930,11 +8705,20 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, - "install": null, - "release": null, + "install": { + "clawhubSpec": "clawhub:@openclaw/diagnostics-otel", + "npmSpec": "@openclaw/diagnostics-otel", + "defaultChoice": "npm", + "minHostVersion": ">=2026.4.25" + }, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -7950,11 +8734,11 @@ { "path": "plugins/diagnostics-otel/.crabpot-package/package.json", "name": "@openclaw/diagnostics-otel", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { - "advertised": false, + "advertised": true, "private": false, "filesMode": "implicit", "files": [], @@ -7981,11 +8765,20 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, - "install": null, - "release": null, + "install": { + "clawhubSpec": "clawhub:@openclaw/diagnostics-otel", + "npmSpec": "@openclaw/diagnostics-otel", + "defaultChoice": "npm", + "minHostVersion": ">=2026.4.25" + }, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -8019,32 +8812,40 @@ } ], "sdkImports": [ - "openclaw/plugin-sdk/diagnostics-otel" + "openclaw/plugin-sdk/diagnostic-runtime", + "openclaw/plugin-sdk/plugin-entry", + "openclaw/plugin-sdk/security-runtime" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk/diagnostics-otel", + "specifier": "openclaw/plugin-sdk/diagnostic-runtime", + "file": "plugins/diagnostics-otel/.crabpot-package/api.ts", + "line": 14, + "ref": "plugins/diagnostics-otel/.crabpot-package/api.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-entry", + "file": "plugins/diagnostics-otel/.crabpot-package/api.ts", + "line": 15, + "ref": "plugins/diagnostics-otel/.crabpot-package/api.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-entry", + "file": "plugins/diagnostics-otel/.crabpot-package/api.ts", + "line": 19, + "ref": "plugins/diagnostics-otel/.crabpot-package/api.ts:19" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-entry", "file": "plugins/diagnostics-otel/.crabpot-package/index.ts", "line": 1, "ref": "plugins/diagnostics-otel/.crabpot-package/index.ts:1" }, { - "specifier": "openclaw/plugin-sdk/diagnostics-otel", - "file": "plugins/diagnostics-otel/.crabpot-package/index.ts", - "line": 2, - "ref": "plugins/diagnostics-otel/.crabpot-package/index.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/diagnostics-otel", - "file": "plugins/diagnostics-otel/.crabpot-package/src/service.ts", - "line": 15, - "ref": "plugins/diagnostics-otel/.crabpot-package/src/service.ts:15" - }, - { - "specifier": "openclaw/plugin-sdk/diagnostics-otel", - "file": "plugins/diagnostics-otel/.crabpot-package/src/service.ts", + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/diagnostics-otel/.crabpot-package/api.ts", "line": 20, - "ref": "plugins/diagnostics-otel/.crabpot-package/src/service.ts:20" + "ref": "plugins/diagnostics-otel/.crabpot-package/api.ts:20" } ] }, @@ -8069,32 +8870,32 @@ "hookDetails": [ { "name": "subagent_delivery_target", - "file": "plugins/discord/.crabpot-package/src/subagent-hooks.ts", - "line": 103, - "ref": "plugins/discord/.crabpot-package/src/subagent-hooks.ts:103" + "file": "plugins/discord/.crabpot-package/subagent-hooks-api.ts", + "line": 23, + "ref": "plugins/discord/.crabpot-package/subagent-hooks-api.ts:23" }, { "name": "subagent_ended", - "file": "plugins/discord/.crabpot-package/src/subagent-hooks.ts", - "line": 93, - "ref": "plugins/discord/.crabpot-package/src/subagent-hooks.ts:93" + "file": "plugins/discord/.crabpot-package/subagent-hooks-api.ts", + "line": 19, + "ref": "plugins/discord/.crabpot-package/subagent-hooks-api.ts:19" }, { "name": "subagent_spawning", - "file": "plugins/discord/.crabpot-package/src/subagent-hooks.ts", - "line": 41, - "ref": "plugins/discord/.crabpot-package/src/subagent-hooks.ts:41" + "file": "plugins/discord/.crabpot-package/subagent-hooks-api.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/subagent-hooks-api.ts:15" } ], "registrations": [ - "registerChannel" + "defineBundledChannelEntry" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "defineBundledChannelEntry", "file": "plugins/discord/.crabpot-package/index.ts", - "line": 14, - "ref": "plugins/discord/.crabpot-package/index.ts:14" + "line": 4, + "ref": "plugins/discord/.crabpot-package/index.ts:4" } ], "manifestContracts": [], @@ -8102,10 +8903,363 @@ "plugins/discord/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/discord/.crabpot-package/account-inspect-api.ts", + "plugins/discord/.crabpot-package/action-runtime-api.ts", + "plugins/discord/.crabpot-package/api.ts", + "plugins/discord/.crabpot-package/channel-config-api.ts", + "plugins/discord/.crabpot-package/channel-plugin-api.ts", + "plugins/discord/.crabpot-package/config-api.ts", + "plugins/discord/.crabpot-package/configured-state.ts", + "plugins/discord/.crabpot-package/contract-api.ts", + "plugins/discord/.crabpot-package/directory-contract-api.ts", + "plugins/discord/.crabpot-package/doctor-contract-api.ts", "plugins/discord/.crabpot-package/index.ts", + "plugins/discord/.crabpot-package/runtime-api.actions.ts", + "plugins/discord/.crabpot-package/runtime-api.lookup.ts", + "plugins/discord/.crabpot-package/runtime-api.monitor.ts", + "plugins/discord/.crabpot-package/runtime-api.send.ts", + "plugins/discord/.crabpot-package/runtime-api.threads.ts", + "plugins/discord/.crabpot-package/runtime-api.ts", + "plugins/discord/.crabpot-package/runtime-setter-api.ts", + "plugins/discord/.crabpot-package/secret-contract-api.ts", + "plugins/discord/.crabpot-package/security-audit-contract-api.ts", + "plugins/discord/.crabpot-package/security-contract-api.ts", + "plugins/discord/.crabpot-package/session-key-api.ts", + "plugins/discord/.crabpot-package/setup-entry.ts", + "plugins/discord/.crabpot-package/setup-plugin-api.ts", + "plugins/discord/.crabpot-package/src/account-inspect.ts", + "plugins/discord/.crabpot-package/src/accounts.ts", + "plugins/discord/.crabpot-package/src/actions/handle-action.guild-admin.ts", + "plugins/discord/.crabpot-package/src/actions/handle-action.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.guild.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.messaging.messages.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.messaging.reactions.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.messaging.runtime.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.messaging.send.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.messaging.shared.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.messaging.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.moderation-shared.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.moderation.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.presence.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.shared.ts", + "plugins/discord/.crabpot-package/src/actions/runtime.ts", + "plugins/discord/.crabpot-package/src/api.ts", + "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts", + "plugins/discord/.crabpot-package/src/approval-native.ts", + "plugins/discord/.crabpot-package/src/approval-runtime.ts", + "plugins/discord/.crabpot-package/src/approval-shared.ts", + "plugins/discord/.crabpot-package/src/audit-core.ts", + "plugins/discord/.crabpot-package/src/audit.ts", + "plugins/discord/.crabpot-package/src/channel-actions.runtime.ts", + "plugins/discord/.crabpot-package/src/channel-actions.ts", + "plugins/discord/.crabpot-package/src/channel-api.ts", + "plugins/discord/.crabpot-package/src/channel.conversation.ts", + "plugins/discord/.crabpot-package/src/channel.loaders.ts", + "plugins/discord/.crabpot-package/src/channel.runtime.ts", + "plugins/discord/.crabpot-package/src/channel.setup.ts", "plugins/discord/.crabpot-package/src/channel.ts", + "plugins/discord/.crabpot-package/src/chunk.ts", + "plugins/discord/.crabpot-package/src/client.ts", + "plugins/discord/.crabpot-package/src/component-custom-id.ts", + "plugins/discord/.crabpot-package/src/components-registry.ts", + "plugins/discord/.crabpot-package/src/components.builders.ts", + "plugins/discord/.crabpot-package/src/components.modal.ts", + "plugins/discord/.crabpot-package/src/components.parse.ts", + "plugins/discord/.crabpot-package/src/components.ts", + "plugins/discord/.crabpot-package/src/components.types.ts", + "plugins/discord/.crabpot-package/src/config-schema.ts", + "plugins/discord/.crabpot-package/src/config-ui-hints.ts", + "plugins/discord/.crabpot-package/src/conversation-identity.ts", + "plugins/discord/.crabpot-package/src/delivery-retry.ts", + "plugins/discord/.crabpot-package/src/directory-cache.ts", + "plugins/discord/.crabpot-package/src/directory-config.ts", + "plugins/discord/.crabpot-package/src/directory-live.ts", + "plugins/discord/.crabpot-package/src/doctor-contract.ts", + "plugins/discord/.crabpot-package/src/doctor-shared.ts", + "plugins/discord/.crabpot-package/src/doctor.ts", + "plugins/discord/.crabpot-package/src/draft-chunking.ts", + "plugins/discord/.crabpot-package/src/draft-stream.ts", + "plugins/discord/.crabpot-package/src/error-body.ts", + "plugins/discord/.crabpot-package/src/exec-approvals.ts", + "plugins/discord/.crabpot-package/src/gateway-logging.ts", + "plugins/discord/.crabpot-package/src/group-policy.ts", + "plugins/discord/.crabpot-package/src/guilds.ts", + "plugins/discord/.crabpot-package/src/interactive-dispatch.ts", + "plugins/discord/.crabpot-package/src/internal/api.commands.ts", + "plugins/discord/.crabpot-package/src/internal/api.guild.ts", + "plugins/discord/.crabpot-package/src/internal/api.interactions.ts", + "plugins/discord/.crabpot-package/src/internal/api.messages.ts", + "plugins/discord/.crabpot-package/src/internal/api.reactions.ts", + "plugins/discord/.crabpot-package/src/internal/api.ts", + "plugins/discord/.crabpot-package/src/internal/api.users.ts", + "plugins/discord/.crabpot-package/src/internal/api.webhooks.ts", + "plugins/discord/.crabpot-package/src/internal/client.ts", + "plugins/discord/.crabpot-package/src/internal/command-deploy.ts", + "plugins/discord/.crabpot-package/src/internal/commands.ts", + "plugins/discord/.crabpot-package/src/internal/components.base.ts", + "plugins/discord/.crabpot-package/src/internal/components.message.ts", + "plugins/discord/.crabpot-package/src/internal/components.modal.ts", + "plugins/discord/.crabpot-package/src/internal/components.ts", + "plugins/discord/.crabpot-package/src/internal/discord.ts", + "plugins/discord/.crabpot-package/src/internal/embeds.ts", + "plugins/discord/.crabpot-package/src/internal/entity-cache.ts", + "plugins/discord/.crabpot-package/src/internal/event-queue.ts", + "plugins/discord/.crabpot-package/src/internal/gateway-close-codes.ts", + "plugins/discord/.crabpot-package/src/internal/gateway-dispatch.ts", + "plugins/discord/.crabpot-package/src/internal/gateway-identify-limiter.ts", + "plugins/discord/.crabpot-package/src/internal/gateway-lifecycle.ts", + "plugins/discord/.crabpot-package/src/internal/gateway-rate-limit.ts", + "plugins/discord/.crabpot-package/src/internal/gateway.ts", + "plugins/discord/.crabpot-package/src/internal/interaction-dispatch.ts", + "plugins/discord/.crabpot-package/src/internal/interaction-options.ts", + "plugins/discord/.crabpot-package/src/internal/interaction-response.ts", + "plugins/discord/.crabpot-package/src/internal/interactions.ts", + "plugins/discord/.crabpot-package/src/internal/listeners.ts", + "plugins/discord/.crabpot-package/src/internal/modal-fields.ts", + "plugins/discord/.crabpot-package/src/internal/payload.ts", + "plugins/discord/.crabpot-package/src/internal/rest-body.ts", + "plugins/discord/.crabpot-package/src/internal/rest-errors.ts", + "plugins/discord/.crabpot-package/src/internal/rest-routes.ts", + "plugins/discord/.crabpot-package/src/internal/rest-scheduler.ts", + "plugins/discord/.crabpot-package/src/internal/rest.ts", + "plugins/discord/.crabpot-package/src/internal/schemas.ts", + "plugins/discord/.crabpot-package/src/internal/structures.ts", + "plugins/discord/.crabpot-package/src/internal/test-builders.test-support.ts", + "plugins/discord/.crabpot-package/src/internal/voice.ts", + "plugins/discord/.crabpot-package/src/media-detection.ts", + "plugins/discord/.crabpot-package/src/mentions.ts", + "plugins/discord/.crabpot-package/src/monitor.gateway.ts", + "plugins/discord/.crabpot-package/src/monitor.ts", + "plugins/discord/.crabpot-package/src/monitor/access-groups.ts", + "plugins/discord/.crabpot-package/src/monitor/ack-reactions.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components-auth.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components-context.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components-data.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components-dm-auth.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components-guild-auth.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components-helpers.runtime.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components-helpers.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components-reply.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components.deps.runtime.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components.handlers.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components.modal.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components.plugin-interactive.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components.runtime.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components.system-controls.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components.types.ts", + "plugins/discord/.crabpot-package/src/monitor/agent-components.wildcard-controls.ts", + "plugins/discord/.crabpot-package/src/monitor/allow-list.ts", + "plugins/discord/.crabpot-package/src/monitor/auto-presence.ts", + "plugins/discord/.crabpot-package/src/monitor/channel-access.ts", + "plugins/discord/.crabpot-package/src/monitor/commands.ts", + "plugins/discord/.crabpot-package/src/monitor/dm-command-auth.ts", + "plugins/discord/.crabpot-package/src/monitor/dm-command-decision.ts", + "plugins/discord/.crabpot-package/src/monitor/exec-approvals.ts", + "plugins/discord/.crabpot-package/src/monitor/format.ts", + "plugins/discord/.crabpot-package/src/monitor/gateway-handle.ts", + "plugins/discord/.crabpot-package/src/monitor/gateway-metadata.ts", + "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts", + "plugins/discord/.crabpot-package/src/monitor/gateway-registry.ts", + "plugins/discord/.crabpot-package/src/monitor/gateway-supervisor.ts", + "plugins/discord/.crabpot-package/src/monitor/inbound-context.test-helpers.ts", + "plugins/discord/.crabpot-package/src/monitor/inbound-context.ts", + "plugins/discord/.crabpot-package/src/monitor/inbound-dedupe.ts", + "plugins/discord/.crabpot-package/src/monitor/inbound-job.ts", + "plugins/discord/.crabpot-package/src/monitor/listeners.queue.ts", + "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts", + "plugins/discord/.crabpot-package/src/monitor/listeners.ts", + "plugins/discord/.crabpot-package/src/monitor/message-channel-info.ts", + "plugins/discord/.crabpot-package/src/monitor/message-forwarded.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.batch-gate.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.dm-preflight.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.draft-preview.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.hydration.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.module-test-helpers.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-channel-access.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-channel-context.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-context.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-helpers.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-history.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-logging.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-pluralkit.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-runtime.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-thread.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.test-helpers.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.routing-preflight.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.test-harness.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.test-helpers.ts", + "plugins/discord/.crabpot-package/src/monitor/message-handler.ts", + "plugins/discord/.crabpot-package/src/monitor/message-media.ts", + "plugins/discord/.crabpot-package/src/monitor/message-run-queue.ts", + "plugins/discord/.crabpot-package/src/monitor/message-text.ts", + "plugins/discord/.crabpot-package/src/monitor/message-utils.ts", + "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts", + "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts", + "plugins/discord/.crabpot-package/src/monitor/model-picker.test-utils.ts", + "plugins/discord/.crabpot-package/src/monitor/model-picker.ts", + "plugins/discord/.crabpot-package/src/monitor/model-picker.view.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-arg-ui.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-bypass.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-context.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-dispatch.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-interaction.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-reply.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-route.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-status.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-ui.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command-ui.types.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command.args.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command.options.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command.runtime.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command.test-helpers.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command.ts", + "plugins/discord/.crabpot-package/src/monitor/native-command.types.ts", + "plugins/discord/.crabpot-package/src/monitor/native-interaction-channel-context.ts", + "plugins/discord/.crabpot-package/src/monitor/preflight-audio.runtime.ts", + "plugins/discord/.crabpot-package/src/monitor/preflight-audio.ts", + "plugins/discord/.crabpot-package/src/monitor/presence-cache.ts", + "plugins/discord/.crabpot-package/src/monitor/presence.ts", + "plugins/discord/.crabpot-package/src/monitor/provider-session.runtime.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.acp.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.cleanup.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.config-log.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.deploy-errors.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.deploy.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.lifecycle.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.runtime.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.startup-log.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts", + "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "plugins/discord/.crabpot-package/src/monitor/reply-context.ts", + "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts", + "plugins/discord/.crabpot-package/src/monitor/rest-fetch.ts", + "plugins/discord/.crabpot-package/src/monitor/route-resolution.ts", + "plugins/discord/.crabpot-package/src/monitor/sender-identity.ts", + "plugins/discord/.crabpot-package/src/monitor/startup-status.ts", + "plugins/discord/.crabpot-package/src/monitor/status.ts", + "plugins/discord/.crabpot-package/src/monitor/system-events.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.config.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.discord-api.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.lifecycle.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.messages.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.persona.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-adapter.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-shared.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-updates.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.state.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-bindings.types.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-channel-context.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-session-close.ts", + "plugins/discord/.crabpot-package/src/monitor/thread-title.ts", + "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts", + "plugins/discord/.crabpot-package/src/monitor/threading.cache.ts", + "plugins/discord/.crabpot-package/src/monitor/threading.starter.ts", + "plugins/discord/.crabpot-package/src/monitor/threading.ts", + "plugins/discord/.crabpot-package/src/monitor/threading.types.ts", + "plugins/discord/.crabpot-package/src/monitor/timeouts.ts", + "plugins/discord/.crabpot-package/src/monitor/typing.ts", + "plugins/discord/.crabpot-package/src/normalize.ts", + "plugins/discord/.crabpot-package/src/outbound-adapter.test-harness.ts", + "plugins/discord/.crabpot-package/src/outbound-adapter.ts", + "plugins/discord/.crabpot-package/src/outbound-approval.ts", + "plugins/discord/.crabpot-package/src/outbound-components.ts", + "plugins/discord/.crabpot-package/src/outbound-payload.ts", + "plugins/discord/.crabpot-package/src/outbound-send-context.ts", + "plugins/discord/.crabpot-package/src/outbound-session-route.ts", + "plugins/discord/.crabpot-package/src/pluralkit.ts", + "plugins/discord/.crabpot-package/src/preview-streaming.ts", + "plugins/discord/.crabpot-package/src/probe.runtime.ts", + "plugins/discord/.crabpot-package/src/probe.ts", + "plugins/discord/.crabpot-package/src/proxy-fetch.ts", + "plugins/discord/.crabpot-package/src/proxy-request-client.ts", + "plugins/discord/.crabpot-package/src/recipient-resolution.ts", + "plugins/discord/.crabpot-package/src/resolve-allowlist-common.ts", + "plugins/discord/.crabpot-package/src/resolve-channels.ts", + "plugins/discord/.crabpot-package/src/resolve-users.ts", + "plugins/discord/.crabpot-package/src/retry.ts", + "plugins/discord/.crabpot-package/src/runtime-api.ts", "plugins/discord/.crabpot-package/src/runtime.ts", - "plugins/discord/.crabpot-package/src/subagent-hooks.ts" + "plugins/discord/.crabpot-package/src/secret-config-contract.ts", + "plugins/discord/.crabpot-package/src/security-audit.runtime.ts", + "plugins/discord/.crabpot-package/src/security-audit.ts", + "plugins/discord/.crabpot-package/src/security-contract.ts", + "plugins/discord/.crabpot-package/src/security-doctor.ts", + "plugins/discord/.crabpot-package/src/security.ts", + "plugins/discord/.crabpot-package/src/send-target-parsing.ts", + "plugins/discord/.crabpot-package/src/send.channels.ts", + "plugins/discord/.crabpot-package/src/send.components.ts", + "plugins/discord/.crabpot-package/src/send.emojis-stickers.ts", + "plugins/discord/.crabpot-package/src/send.guild.ts", + "plugins/discord/.crabpot-package/src/send.message-request.ts", + "plugins/discord/.crabpot-package/src/send.messages.ts", + "plugins/discord/.crabpot-package/src/send.outbound.ts", + "plugins/discord/.crabpot-package/src/send.permissions.ts", + "plugins/discord/.crabpot-package/src/send.reactions.ts", + "plugins/discord/.crabpot-package/src/send.shared.ts", + "plugins/discord/.crabpot-package/src/send.test-harness.ts", + "plugins/discord/.crabpot-package/src/send.ts", + "plugins/discord/.crabpot-package/src/send.types.ts", + "plugins/discord/.crabpot-package/src/send.typing.ts", + "plugins/discord/.crabpot-package/src/send.voice.ts", + "plugins/discord/.crabpot-package/src/send.webhook.ts", + "plugins/discord/.crabpot-package/src/session-contract.ts", + "plugins/discord/.crabpot-package/src/session-key-normalization.ts", + "plugins/discord/.crabpot-package/src/setup-account-state.ts", + "plugins/discord/.crabpot-package/src/setup-adapter.ts", + "plugins/discord/.crabpot-package/src/setup-core.ts", + "plugins/discord/.crabpot-package/src/setup-runtime-helpers.ts", + "plugins/discord/.crabpot-package/src/setup-surface.ts", + "plugins/discord/.crabpot-package/src/shared-interactive.ts", + "plugins/discord/.crabpot-package/src/shared.ts", + "plugins/discord/.crabpot-package/src/status-issues.ts", + "plugins/discord/.crabpot-package/src/subagent-hooks.ts", + "plugins/discord/.crabpot-package/src/target-parsing.ts", + "plugins/discord/.crabpot-package/src/target-resolver.ts", + "plugins/discord/.crabpot-package/src/targets.ts", + "plugins/discord/.crabpot-package/src/test-http-helpers.ts", + "plugins/discord/.crabpot-package/src/test-support/component-runtime.ts", + "plugins/discord/.crabpot-package/src/test-support/config.ts", + "plugins/discord/.crabpot-package/src/test-support/configured-binding-runtime.ts", + "plugins/discord/.crabpot-package/src/test-support/partial-channel.ts", + "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts", + "plugins/discord/.crabpot-package/src/token.ts", + "plugins/discord/.crabpot-package/src/ui-colors.ts", + "plugins/discord/.crabpot-package/src/ui.ts", + "plugins/discord/.crabpot-package/src/voice-message.ts", + "plugins/discord/.crabpot-package/src/voice/access.ts", + "plugins/discord/.crabpot-package/src/voice/audio.ts", + "plugins/discord/.crabpot-package/src/voice/capture-state.ts", + "plugins/discord/.crabpot-package/src/voice/command.ts", + "plugins/discord/.crabpot-package/src/voice/config.ts", + "plugins/discord/.crabpot-package/src/voice/manager.runtime.ts", + "plugins/discord/.crabpot-package/src/voice/manager.ts", + "plugins/discord/.crabpot-package/src/voice/prompt.ts", + "plugins/discord/.crabpot-package/src/voice/receive-recovery.ts", + "plugins/discord/.crabpot-package/src/voice/sanitize.ts", + "plugins/discord/.crabpot-package/src/voice/sdk-runtime.ts", + "plugins/discord/.crabpot-package/src/voice/segment.ts", + "plugins/discord/.crabpot-package/src/voice/session.ts", + "plugins/discord/.crabpot-package/src/voice/speaker-context.ts", + "plugins/discord/.crabpot-package/src/voice/tts.ts", + "plugins/discord/.crabpot-package/subagent-hooks-api.ts", + "plugins/discord/.crabpot-package/test-api.ts", + "plugins/discord/.crabpot-package/thread-binding-api.ts", + "plugins/discord/.crabpot-package/timeouts.ts" ], "pluginManifests": [ { @@ -8114,44 +9268,72 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", + "channelEnvVars", "channels", "configSchema", "id" ], "contracts": [], "providerAuthEnvVars": {}, - "channelEnvVars": {}, - "activation": null + "channelEnvVars": { + "discord": [ + "DISCORD_BOT_TOKEN" + ] + }, + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/discord/.crabpot-package/package.json", "name": "@openclaw/discord", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { - "advertised": false, + "advertised": true, "private": false, "filesMode": "implicit", "files": [], "invalidFileSpecs": [] }, - "dependencies": [], - "peerDependencies": [], + "dependencies": [ + "@discordjs/voice", + "discord-api-types", + "https-proxy-agent", + "opusscript", + "typebox", + "undici", + "ws" + ], + "peerDependencies": [ + "openclaw" + ], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, - "install": null, - "release": null, + "install": { + "clawhubSpec": null, + "npmSpec": "@openclaw/discord", + "defaultChoice": "npm", + "minHostVersion": ">=2026.4.10" + }, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -8159,6 +9341,13 @@ "relativePath": "plugins/discord/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/discord/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -8167,30 +9356,49 @@ { "path": "plugins/discord/.crabpot-package/package.json", "name": "@openclaw/discord", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { - "advertised": false, + "advertised": true, "private": false, "filesMode": "implicit", "files": [], "invalidFileSpecs": [] }, - "dependencies": [], - "peerDependencies": [], + "dependencies": [ + "@discordjs/voice", + "discord-api-types", + "https-proxy-agent", + "opusscript", + "typebox", + "undici", + "ws" + ], + "peerDependencies": [ + "openclaw" + ], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, - "install": null, - "release": null, + "install": { + "clawhubSpec": null, + "npmSpec": "@openclaw/discord", + "defaultChoice": "npm", + "minHostVersion": ">=2026.4.10" + }, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -8198,6 +9406,13 @@ "relativePath": "plugins/discord/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/discord/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -8224,63 +9439,4148 @@ } ], "sdkImports": [ - "openclaw/plugin-sdk/compat", - "openclaw/plugin-sdk/discord" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/acp-runtime", + "openclaw/plugin-sdk/agent-runtime", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/allowlist-config-edit", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/approval-client-runtime", + "openclaw/plugin-sdk/approval-delivery-runtime", + "openclaw/plugin-sdk/approval-gateway-runtime", + "openclaw/plugin-sdk/approval-handler-adapter-runtime", + "openclaw/plugin-sdk/approval-handler-runtime", + "openclaw/plugin-sdk/approval-native-runtime", + "openclaw/plugin-sdk/approval-reply-runtime", + "openclaw/plugin-sdk/approval-runtime", + "openclaw/plugin-sdk/boolean-param", + "openclaw/plugin-sdk/bundled-channel-config-schema", + "openclaw/plugin-sdk/channel-actions", + "openclaw/plugin-sdk/channel-activity-runtime", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-feedback", + "openclaw/plugin-sdk/channel-inbound", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-plugin-common", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-runtime-context", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-secret-tts-runtime", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/channel-status", + "openclaw/plugin-sdk/channel-streaming", + "openclaw/plugin-sdk/channel-targets", + "openclaw/plugin-sdk/command-auth", + "openclaw/plugin-sdk/command-auth-native", + "openclaw/plugin-sdk/command-detection", + "openclaw/plugin-sdk/command-status-runtime", + "openclaw/plugin-sdk/command-surface", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/context-visibility-runtime", + "openclaw/plugin-sdk/conversation-binding-runtime", + "openclaw/plugin-sdk/conversation-runtime", + "openclaw/plugin-sdk/dangerous-name-runtime", + "openclaw/plugin-sdk/directory-config-runtime", + "openclaw/plugin-sdk/directory-runtime", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/fetch-runtime", + "openclaw/plugin-sdk/file-lock", + "openclaw/plugin-sdk/gateway-runtime", + "openclaw/plugin-sdk/global-singleton", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/inbound-reply-dispatch", + "openclaw/plugin-sdk/interactive-runtime", + "openclaw/plugin-sdk/json-store", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/markdown-table-runtime", + "openclaw/plugin-sdk/media-mime", + "openclaw/plugin-sdk/media-runtime", + "openclaw/plugin-sdk/messaging-targets", + "openclaw/plugin-sdk/model-session-runtime", + "openclaw/plugin-sdk/models-provider-runtime", + "openclaw/plugin-sdk/native-command-config-runtime", + "openclaw/plugin-sdk/native-command-registry", + "openclaw/plugin-sdk/outbound-media", + "openclaw/plugin-sdk/outbound-runtime", + "openclaw/plugin-sdk/outbound-send-deps", + "openclaw/plugin-sdk/persistent-dedupe", + "openclaw/plugin-sdk/plugin-config-runtime", + "openclaw/plugin-sdk/plugin-runtime", + "openclaw/plugin-sdk/plugin-test-runtime", + "openclaw/plugin-sdk/provider-model-shared", + "openclaw/plugin-sdk/proxy-capture", + "openclaw/plugin-sdk/reply-chunking", + "openclaw/plugin-sdk/reply-dispatch-runtime", + "openclaw/plugin-sdk/reply-history", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/reply-reference", + "openclaw/plugin-sdk/reply-runtime", + "openclaw/plugin-sdk/request-url", + "openclaw/plugin-sdk/retry-runtime", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime-config-snapshot", + "openclaw/plugin-sdk/runtime-doctor", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/session-store-runtime", + "openclaw/plugin-sdk/setup-adapter-runtime", + "openclaw/plugin-sdk/setup-runtime", + "openclaw/plugin-sdk/setup-tools", + "openclaw/plugin-sdk/simple-completion-runtime", + "openclaw/plugin-sdk/speech", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/state-paths", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/string-normalization-runtime", + "openclaw/plugin-sdk/system-event-runtime", + "openclaw/plugin-sdk/target-resolver-runtime", + "openclaw/plugin-sdk/temp-path", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/tool-send", + "openclaw/plugin-sdk/web-media" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/discord/.crabpot-package/src/channel.ts", + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/discord/.crabpot-package/src/accounts.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/accounts.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 50, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:50" + }, + { + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/discord/.crabpot-package/src/shared.ts", "line": 1, - "ref": "plugins/discord/.crabpot-package/src/channel.ts:1" + "ref": "plugins/discord/.crabpot-package/src/shared.ts:1" }, { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/discord/.crabpot-package/src/channel.ts", + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/discord/.crabpot-package/src/account-inspect.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/account-inspect.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/discord/.crabpot-package/src/accounts.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/accounts.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/discord/.crabpot-package/src/channel-api.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/channel-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/discord/.crabpot-package/src/directory-config.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/directory-config.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 51, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:51" + }, + { + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/discord/.crabpot-package/src/setup-account-state.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/setup-account-state.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/discord/.crabpot-package/src/setup-core.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/setup-core.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/discord/.crabpot-package/src/shared.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/shared.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/discord/.crabpot-package/src/setup-account-state.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/setup-account-state.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/acp-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider-session.runtime.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider-session.runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/acp-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.lifecycle.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.lifecycle.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/acp-runtime", + "file": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts", + "line": 351, + "ref": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts:351" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/actions/handle-action.guild-admin.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/actions/handle-action.guild-admin.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/actions/handle-action.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/actions/handle-action.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/auto-presence.ts", "line": 8, - "ref": "plugins/discord/.crabpot-package/src/channel.ts:8" + "ref": "plugins/discord/.crabpot-package/src/monitor/auto-presence.ts:8" }, { - "specifier": "openclaw/plugin-sdk/compat", + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.draft-preview.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.draft-preview.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/voice/segment.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/voice/segment.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/agent-runtime", + "file": "plugins/discord/.crabpot-package/src/voice/tts.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/voice/tts.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/discord/.crabpot-package/src/monitor/allow-list.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/allow-list.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.dm-preflight.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.dm-preflight.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/discord/.crabpot-package/src/shared.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/shared.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/allowlist-config-edit", + "file": "plugins/discord/.crabpot-package/src/channel.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/channel.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/approval-auth-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-runtime.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/approval-runtime.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/approval-client-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-runtime.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/approval-runtime.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/approval-delivery-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-runtime.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/approval-runtime.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/approval-gateway-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/exec-approvals.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/exec-approvals.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/approval-handler-adapter-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-native.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/approval-native.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/approval-handler-adapter-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/approval-handler-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/approval-handler-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/approval-handler-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-native.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/approval-native.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/approval-native-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-native.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/approval-native.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/approval-native-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-runtime.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/approval-runtime.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/approval-native-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-shared.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/approval-shared.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/approval-reply-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/approval-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/approval-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-shared.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/approval-shared.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/approval-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/exec-approvals.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/exec-approvals.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/boolean-param", + "file": "plugins/discord/.crabpot-package/src/actions/handle-action.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/actions/handle-action.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/boolean-param", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 33, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:33" + }, + { + "specifier": "openclaw/plugin-sdk/bundled-channel-config-schema", + "file": "plugins/discord/.crabpot-package/config-api.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/config-api.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-actions", + "file": "plugins/discord/.crabpot-package/src/actions/handle-action.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/actions/handle-action.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-actions", + "file": "plugins/discord/.crabpot-package/src/channel-actions.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/channel-actions.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-actions", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 31, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:31" + }, + { + "specifier": "openclaw/plugin-sdk/channel-actions", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 32, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:32" + }, + { + "specifier": "openclaw/plugin-sdk/channel-actions", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 39, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:39" + }, + { + "specifier": "openclaw/plugin-sdk/channel-activity-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-activity-runtime", + "file": "plugins/discord/.crabpot-package/src/send.components.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/send.components.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-activity-runtime", + "file": "plugins/discord/.crabpot-package/src/send.outbound.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/send.outbound.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-activity-runtime", + "file": "plugins/discord/.crabpot-package/src/send.voice.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/send.voice.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-activity-runtime", + "file": "plugins/discord/.crabpot-package/src/send.webhook.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/send.webhook.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/discord/.crabpot-package/src/accounts.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/accounts.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 46, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:46" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/discord/.crabpot-package/src/security.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/security.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/discord/.crabpot-package/src/shared.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/shared.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/discord/.crabpot-package/src/shared.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/shared.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/actions/handle-action.guild-admin.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/actions/handle-action.guild-admin.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/actions/handle-action.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/actions/handle-action.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/approval-native.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/approval-native.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/channel-actions.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/channel-actions.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/channel.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/channel.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/doctor-contract.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/doctor-contract.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/doctor-shared.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/doctor-shared.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/doctor.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/doctor.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/exec-approvals.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/exec-approvals.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/group-policy.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/group-policy.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/interactive-dispatch.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/interactive-dispatch.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/probe.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/probe.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/shared.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/shared.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/status-issues.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/status-issues.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/discord/.crabpot-package/src/token.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/token.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/discord/.crabpot-package/src/channel-api.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/channel-api.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/discord/.crabpot-package/src/channel.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/channel.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/discord/.crabpot-package/src/config-ui-hints.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/config-ui-hints.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/discord/.crabpot-package/src/outbound-session-route.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/outbound-session-route.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", "file": "plugins/discord/.crabpot-package/src/runtime.ts", "line": 1, "ref": "plugins/discord/.crabpot-package/src/runtime.ts:1" }, { - "specifier": "openclaw/plugin-sdk/discord", + "specifier": "openclaw/plugin-sdk/channel-entry-contract", "file": "plugins/discord/.crabpot-package/index.ts", "line": 1, "ref": "plugins/discord/.crabpot-package/index.ts:1" }, { - "specifier": "openclaw/plugin-sdk/discord", - "file": "plugins/discord/.crabpot-package/index.ts", - "line": 2, - "ref": "plugins/discord/.crabpot-package/index.ts:2" + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/discord/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/setup-entry.ts:1" }, { - "specifier": "openclaw/plugin-sdk/discord", + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/discord/.crabpot-package/subagent-hooks-api.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/subagent-hooks-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-feedback", + "file": "plugins/discord/.crabpot-package/src/monitor/ack-reactions.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/ack-reactions.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-feedback", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-helpers.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-helpers.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-lifecycle", + "file": "plugins/discord/.crabpot-package/src/draft-stream.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/draft-stream.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-lifecycle", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/channel-lifecycle", + "file": "plugins/discord/.crabpot-package/src/monitor/message-run-queue.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-run-queue.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", "file": "plugins/discord/.crabpot-package/src/channel.ts", - "line": 39, - "ref": "plugins/discord/.crabpot-package/src/channel.ts:39" + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/channel.ts:11" }, { - "specifier": "openclaw/plugin-sdk/discord", - "file": "plugins/discord/.crabpot-package/src/runtime.ts", - "line": 2, - "ref": "plugins/discord/.crabpot-package/src/runtime.ts:2" + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-dm-auth.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-dm-auth.ts:1" }, { - "specifier": "openclaw/plugin-sdk/discord", + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/discord/.crabpot-package/src/monitor/dm-command-decision.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/dm-command-decision.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-plugin-common", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 18, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:18" + }, + { + "specifier": "openclaw/plugin-sdk/channel-plugin-common", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 55, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:55" + }, + { + "specifier": "openclaw/plugin-sdk/channel-plugin-common", "file": "plugins/discord/.crabpot-package/src/subagent-hooks.ts", "line": 1, "ref": "plugins/discord/.crabpot-package/src/subagent-hooks.ts:1" }, { - "specifier": "openclaw/plugin-sdk/discord", - "file": "plugins/discord/.crabpot-package/src/subagent-hooks.ts", + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/discord/.crabpot-package/src/group-policy.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/group-policy.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/discord/.crabpot-package/src/security-audit.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/security-audit.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/discord/.crabpot-package/src/security.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/security.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "line": 40, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts:40" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "line": 50, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts:50" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-runtime-context", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/channel-secret-basic-runtime", + "file": "plugins/discord/.crabpot-package/src/secret-config-contract.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/secret-config-contract.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/channel-secret-tts-runtime", + "file": "plugins/discord/.crabpot-package/src/secret-config-contract.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/secret-config-contract.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/channel-send-result", + "file": "plugins/discord/.crabpot-package/src/outbound-adapter.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/outbound-adapter.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-send-result", + "file": "plugins/discord/.crabpot-package/src/outbound-components.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/outbound-components.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-send-result", + "file": "plugins/discord/.crabpot-package/src/outbound-payload.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/outbound-payload.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/discord/.crabpot-package/src/channel-api.ts", "line": 7, - "ref": "plugins/discord/.crabpot-package/src/subagent-hooks.ts:7" + "ref": "plugins/discord/.crabpot-package/src/channel-api.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/channel-streaming", + "file": "plugins/discord/.crabpot-package/src/draft-chunking.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/draft-chunking.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-streaming", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.draft-preview.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.draft-preview.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-streaming", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/channel-streaming", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/channel-targets", + "file": "plugins/discord/.crabpot-package/src/monitor/allow-list.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/allow-list.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/access-groups.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/access-groups.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/dm-command-auth.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/dm-command-auth.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-arg-ui.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-arg-ui.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-context.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-context.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-dispatch.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-dispatch.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-interaction.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-interaction.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts", + "line": 365, + "ref": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts:365" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth-native", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-guild-auth.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-guild-auth.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth-native", + "file": "plugins/discord/.crabpot-package/src/monitor/dm-command-auth.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/dm-command-auth.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth-native", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth-native", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth-native", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth-native", + "file": "plugins/discord/.crabpot-package/src/voice/access.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/voice/access.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-detection", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/command-status-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-status.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-status.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-status-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.runtime.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-surface", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/account-inspect-api.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/account-inspect-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/approval-native.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/approval-native.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/approval-shared.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/approval-shared.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/audit-core.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/audit-core.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/audit.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/audit.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/channel-actions.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/channel-actions.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/channel-api.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/channel-api.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/client.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/client.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/delivery-retry.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/delivery-retry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/doctor-contract.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/doctor-contract.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/doctor.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/doctor.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/draft-chunking.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/draft-chunking.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/exec-approvals.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/exec-approvals.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/exec-approvals.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/exec-approvals.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/access-groups.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/access-groups.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/ack-reactions.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/ack-reactions.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.types.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.types.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/auto-presence.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/monitor/auto-presence.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/commands.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/commands.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/dm-command-auth.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/dm-command-auth.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/exec-approvals.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/exec-approvals.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts", + "line": 67, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts:67" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.batch-gate.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.batch-gate.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.draft-preview.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.draft-preview.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-pluralkit.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-pluralkit.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.test-helpers.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.test-helpers.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts", + "line": 22, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts:22" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.test-helpers.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.test-helpers.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-dispatch.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-dispatch.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-route.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-route.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-status.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-status.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-ui.types.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-ui.types.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.options.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.options.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.types.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.types.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/presence.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/presence.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.acp.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.acp.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/route-resolution.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/route-resolution.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.config.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.config.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.discord-api.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.discord-api.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.lifecycle.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.lifecycle.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-session-close.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-session-close.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-title.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-title.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/threading.starter.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/threading.starter.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/monitor/threading.types.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/threading.types.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/outbound-adapter.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/outbound-adapter.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/outbound-send-context.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/outbound-send-context.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/outbound-session-route.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/outbound-session-route.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/proxy-fetch.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/proxy-fetch.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/recipient-resolution.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/recipient-resolution.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 24, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:24" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/send.components.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/send.components.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/send.outbound.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/send.outbound.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/send.shared.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/send.shared.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/send.types.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/send.types.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/send.voice.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/send.voice.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/send.webhook.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/send.webhook.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/setup-account-state.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/setup-account-state.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/setup-core.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/setup-core.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/test-support/config.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/test-support/config.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/token.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/token.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/ui-colors.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/ui-colors.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/ui.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/ui.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/voice/access.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/voice/access.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/voice/access.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/voice/access.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/voice/command.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/voice/command.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/voice/command.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/voice/command.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/voice/config.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/voice/config.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/voice/manager.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/voice/manager.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/voice/manager.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/voice/manager.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/voice/segment.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/voice/segment.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/discord/.crabpot-package/src/voice/tts.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/voice/tts.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/context-visibility-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-binding-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.dm-preflight.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.dm-preflight.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-binding-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.dm-preflight.ts", + "line": 19, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.dm-preflight.ts:19" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-binding-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.routing-preflight.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.routing-preflight.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-binding-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.routing-preflight.ts", + "line": 17, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.routing-preflight.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-binding-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-route.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-route.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-helpers.runtime.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-helpers.runtime.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.runtime.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.runtime.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/dm-command-decision.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/dm-command-decision.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider-session.runtime.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider-session.runtime.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/route-resolution.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/route-resolution.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.config.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.config.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.messages.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.messages.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-adapter.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-adapter.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/security-audit.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/security-audit.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/subagent-hooks.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/subagent-hooks.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/discord/.crabpot-package/src/test-support/component-runtime.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/test-support/component-runtime.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-dm-auth.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-dm-auth.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-guild-auth.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-guild-auth.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/discord/.crabpot-package/src/security-audit.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/security-audit.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/directory-config-runtime", + "file": "plugins/discord/.crabpot-package/src/directory-config.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/directory-config.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/directory-runtime", + "file": "plugins/discord/.crabpot-package/src/channel.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/src/channel.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/directory-runtime", + "file": "plugins/discord/.crabpot-package/src/directory-live.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/directory-live.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/directory-runtime", + "file": "plugins/discord/.crabpot-package/src/target-resolver.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/target-resolver.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/discord/.crabpot-package/src/audit-core.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/audit-core.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/discord/.crabpot-package/src/channel.ts", + "line": 16, + "ref": "plugins/discord/.crabpot-package/src/channel.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/discord/.crabpot-package/src/draft-stream.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/draft-stream.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-metadata.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-metadata.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/discord/.crabpot-package/src/probe.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/probe.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/discord/.crabpot-package/src/retry.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/retry.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts", + "line": 432, + "ref": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts:432" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/discord/.crabpot-package/src/voice-message.ts", + "line": 16, + "ref": "plugins/discord/.crabpot-package/src/voice-message.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/fetch-runtime", + "file": "plugins/discord/.crabpot-package/src/api.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/fetch-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/rest-fetch.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/rest-fetch.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/fetch-runtime", + "file": "plugins/discord/.crabpot-package/src/pluralkit.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/pluralkit.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/fetch-runtime", + "file": "plugins/discord/.crabpot-package/src/probe.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/probe.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/fetch-runtime", + "file": "plugins/discord/.crabpot-package/src/proxy-fetch.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/proxy-fetch.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/file-lock", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/gateway-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.lifecycle.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.lifecycle.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/gateway-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/global-singleton", + "file": "plugins/discord/.crabpot-package/src/components-registry.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/components-registry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/group-access", + "file": "plugins/discord/.crabpot-package/src/monitor/allow-list.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/allow-list.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/inbound-reply-dispatch", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/inbound-reply-dispatch", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 19, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:19" + }, + { + "specifier": "openclaw/plugin-sdk/interactive-runtime", + "file": "plugins/discord/.crabpot-package/src/actions/handle-action.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/actions/handle-action.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/interactive-runtime", + "file": "plugins/discord/.crabpot-package/src/shared-interactive.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/shared-interactive.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/interactive-runtime", + "file": "plugins/discord/.crabpot-package/src/shared-interactive.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/shared-interactive.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/json-store", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/json-store", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.state.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.state.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/lazy-runtime", + "file": "plugins/discord/.crabpot-package/src/channel.loaders.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/channel.loaders.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/markdown-table-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/markdown-table-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 20, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/markdown-table-runtime", + "file": "plugins/discord/.crabpot-package/src/send.outbound.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/send.outbound.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/media-mime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-media.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-media.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/media-mime", + "file": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 21, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:21" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-media.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-media.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.runtime.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.runtime.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.runtime.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/send.components.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/send.components.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/send.outbound.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/send.outbound.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/send.shared.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/send.shared.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/send.shared.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/send.shared.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/send.shared.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/send.shared.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/send.voice.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/send.voice.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/voice-message.ts", + "line": 21, + "ref": "plugins/discord/.crabpot-package/src/voice-message.ts:21" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/voice-message.ts", + "line": 22, + "ref": "plugins/discord/.crabpot-package/src/voice-message.ts:22" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/discord/.crabpot-package/src/voice-message.ts", + "line": 23, + "ref": "plugins/discord/.crabpot-package/src/voice-message.ts:23" + }, + { + "specifier": "openclaw/plugin-sdk/messaging-targets", + "file": "plugins/discord/.crabpot-package/src/target-parsing.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/target-parsing.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/messaging-targets", + "file": "plugins/discord/.crabpot-package/src/target-resolver.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/target-resolver.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/model-session-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/model-session-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/models-provider-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/models-provider-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts", + "line": 72, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts:72" + }, + { + "specifier": "openclaw/plugin-sdk/models-provider-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts", + "line": 76, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts:76" + }, + { + "specifier": "openclaw/plugin-sdk/models-provider-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker.test-utils.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker.test-utils.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/models-provider-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker.view.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker.view.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/native-command-config-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/native-command-config-runtime", + "file": "plugins/discord/.crabpot-package/src/security-audit.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/security-audit.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/native-command-config-runtime", + "file": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts", + "line": 386, + "ref": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts:386" + }, + { + "specifier": "openclaw/plugin-sdk/native-command-registry", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.args.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.args.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/native-command-registry", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.options.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.options.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/native-command-registry", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/native-command-registry", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.types.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.types.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-media", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 56, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:56" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-runtime", + "file": "plugins/discord/.crabpot-package/src/outbound-adapter.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/outbound-adapter.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-runtime", + "file": "plugins/discord/.crabpot-package/src/outbound-send-context.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/outbound-send-context.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-send-deps", + "file": "plugins/discord/.crabpot-package/src/outbound-adapter.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/outbound-adapter.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-send-deps", + "file": "plugins/discord/.crabpot-package/src/outbound-send-context.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/outbound-send-context.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/persistent-dedupe", + "file": "plugins/discord/.crabpot-package/src/monitor/inbound-dedupe.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/inbound-dedupe.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/persistent-dedupe", + "file": "plugins/discord/.crabpot-package/src/monitor/message-run-queue.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-run-queue.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-config-runtime", + "file": "plugins/discord/.crabpot-package/src/client.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/client.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-config-runtime", + "file": "plugins/discord/.crabpot-package/src/recipient-resolution.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/recipient-resolution.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-config-runtime", + "file": "plugins/discord/.crabpot-package/src/send.components.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/send.components.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-config-runtime", + "file": "plugins/discord/.crabpot-package/src/send.outbound.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/send.outbound.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-config-runtime", + "file": "plugins/discord/.crabpot-package/src/send.reactions.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/send.reactions.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-config-runtime", + "file": "plugins/discord/.crabpot-package/src/send.shared.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/send.shared.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-config-runtime", + "file": "plugins/discord/.crabpot-package/src/send.voice.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/send.voice.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-runtime", + "file": "plugins/discord/.crabpot-package/src/interactive-dispatch.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/interactive-dispatch.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.runtime.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.runtime.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.runtime.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts", + "line": 16, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-test-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.module-test-helpers.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.module-test-helpers.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-test-runtime", + "file": "plugins/discord/.crabpot-package/src/send.test-harness.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/send.test-harness.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/provider-model-shared", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/provider-model-shared", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker.state.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/provider-model-shared", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker.view.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker.view.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/proxy-capture", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-metadata.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-metadata.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/proxy-capture", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/proxy-capture", + "file": "plugins/discord/.crabpot-package/src/monitor/rest-fetch.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/rest-fetch.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/chunk.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/chunk.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/draft-chunking.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/draft-chunking.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 22, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:22" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-status.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-status.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.ts", + "line": 16, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/send.components.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/send.components.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/send.outbound.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/send.outbound.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/discord/.crabpot-package/src/send.shared.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/send.shared.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/reply-dispatch-runtime", + "file": "plugins/discord/.crabpot-package/src/exec-approvals.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/exec-approvals.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/reply-dispatch-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/inbound-context.test-helpers.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/inbound-context.test-helpers.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/reply-dispatch-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/reply-dispatch-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 23, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:23" + }, + { + "specifier": "openclaw/plugin-sdk/reply-dispatch-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-context.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-context.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/reply-dispatch-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-reply.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-reply.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/reply-dispatch-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.runtime.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.runtime.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/reply-dispatch-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts", + "line": 16, + "ref": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/reply-dispatch-runtime", + "file": "plugins/discord/.crabpot-package/src/test-support/component-runtime.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/test-support/component-runtime.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-history.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-history.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 490, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:490" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 24, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:24" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/discord/.crabpot-package/src/monitor/message-media.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-media.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-reply.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-reply.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/discord/.crabpot-package/src/outbound-payload.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/outbound-payload.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/discord/.crabpot-package/src/send.shared.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/src/send.shared.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/reply-reference", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.batch-gate.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.batch-gate.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/reply-reference", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.batch-gate.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.batch-gate.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/reply-reference", + "file": "plugins/discord/.crabpot-package/src/monitor/threading.starter.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/threading.starter.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/reply-reference", + "file": "plugins/discord/.crabpot-package/src/monitor/threading.types.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/threading.types.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/reply-reference", + "file": "plugins/discord/.crabpot-package/src/test-support/component-runtime.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/test-support/component-runtime.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/reply-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.runtime.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.runtime.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/reply-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 53, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:53" + }, + { + "specifier": "openclaw/plugin-sdk/reply-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 56, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:56" + }, + { + "specifier": "openclaw/plugin-sdk/reply-runtime", + "file": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts", + "line": 375, + "ref": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts:375" + }, + { + "specifier": "openclaw/plugin-sdk/request-url", + "file": "plugins/discord/.crabpot-package/src/monitor/rest-fetch.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/rest-fetch.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/retry-runtime", + "file": "plugins/discord/.crabpot-package/src/api.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/api.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/retry-runtime", + "file": "plugins/discord/.crabpot-package/src/client.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/client.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/retry-runtime", + "file": "plugins/discord/.crabpot-package/src/delivery-retry.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/delivery-retry.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/retry-runtime", + "file": "plugins/discord/.crabpot-package/src/retry.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/retry.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/retry-runtime", + "file": "plugins/discord/.crabpot-package/src/send.outbound.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/send.outbound.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/retry-runtime", + "file": "plugins/discord/.crabpot-package/src/send.shared.ts", + "line": 16, + "ref": "plugins/discord/.crabpot-package/src/send.shared.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/retry-runtime", + "file": "plugins/discord/.crabpot-package/src/send.types.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/send.types.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/retry-runtime", + "file": "plugins/discord/.crabpot-package/src/send.voice.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/send.voice.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/retry-runtime", + "file": "plugins/discord/.crabpot-package/src/voice-message.ts", + "line": 24, + "ref": "plugins/discord/.crabpot-package/src/voice-message.ts:24" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/accounts.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/accounts.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/client.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/client.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/directory-cache.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/directory-cache.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/draft-chunking.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/draft-chunking.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/draft-chunking.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/draft-chunking.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-context.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-context.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-dispatch.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-dispatch.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-route.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-route.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-status.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-status.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/route-resolution.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/monitor/route-resolution.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/route-resolution.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/monitor/route-resolution.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.config.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.config.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-shared.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-shared.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.state.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.state.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/outbound-session-route.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/outbound-session-route.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 57, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:57" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/token.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/token.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/token.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/token.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/voice/manager.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/voice/manager.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/discord/.crabpot-package/src/voice/session.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/voice/session.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-config-snapshot", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-config-snapshot", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-config-snapshot", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-adapter.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-adapter.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-config-snapshot", + "file": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts", + "line": 398, + "ref": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts:398" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-doctor", + "file": "plugins/discord/.crabpot-package/src/doctor-contract.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/doctor-contract.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-doctor", + "file": "plugins/discord/.crabpot-package/src/doctor.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/doctor.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/channel.ts", + "line": 17, + "ref": "plugins/discord/.crabpot-package/src/channel.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/client.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/client.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/gateway-logging.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/gateway-logging.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/gateway-logging.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/gateway-logging.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/access-groups.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/access-groups.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/ack-reactions.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/ack-reactions.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-dm-auth.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-dm-auth.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-guild-auth.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-guild-auth.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.types.ts", + "line": 41, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.types.ts:41" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/auto-presence.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/monitor/auto-presence.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-metadata.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-metadata.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-plugin.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-supervisor.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-supervisor.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-supervisor.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-supervisor.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.queue.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.queue.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.queue.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.queue.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts", + "line": 32, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts:32" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.ts", + "line": 16, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-channel-info.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-channel-info.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.dm-preflight.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.dm-preflight.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.hydration.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.hydration.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-channel-access.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-channel-access.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-logging.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-logging.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-pluralkit.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-pluralkit.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.test-helpers.ts", + "line": 95, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.test-helpers.ts:95" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.types.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts", + "line": 25, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.process.ts:25" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.routing-preflight.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.routing-preflight.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-media.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-media.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/message-run-queue.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-run-queue.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-agent-reply.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-reply.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-reply.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.options.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.options.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.ts", + "line": 17, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.cleanup.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.cleanup.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.config-log.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.config-log.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.deploy-errors.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.deploy-errors.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.deploy.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.deploy.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.interactions.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.lifecycle.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.lifecycle.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.lifecycle.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.lifecycle.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.startup-log.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.startup-log.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 16, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 17, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts", + "line": 17, + "ref": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/rest-fetch.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/rest-fetch.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.discord-api.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.discord-api.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-title.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-title.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/proxy-fetch.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/proxy-fetch.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/proxy-fetch.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/proxy-fetch.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts", + "line": 407, + "ref": "plugins/discord/.crabpot-package/src/test-support/provider.test-support.ts:407" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/voice/audio.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/voice/audio.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/voice/manager.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/voice/manager.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/voice/manager.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/voice/manager.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/voice/segment.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/voice/segment.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/voice/segment.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/voice/segment.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/discord/.crabpot-package/src/voice/session.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/voice/session.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/discord/.crabpot-package/api.ts", + "line": 45, + "ref": "plugins/discord/.crabpot-package/api.ts:45" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-guild-auth.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-guild-auth.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.ts", + "line": 18, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.ts:18" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 23, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:23" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/discord/.crabpot-package/src/voice/access.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/voice/access.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/discord/.crabpot-package/src/runtime.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/discord/.crabpot-package/src/account-inspect.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/account-inspect.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/discord/.crabpot-package/src/runtime-api.ts", + "line": 62, + "ref": "plugins/discord/.crabpot-package/src/runtime-api.ts:62" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/discord/.crabpot-package/src/setup-account-state.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/setup-account-state.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/discord/.crabpot-package/src/token.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/token.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-helpers.runtime.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-helpers.runtime.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/dm-command-auth.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/dm-command-auth.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/inbound-context.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/inbound-context.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/session-store-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.deps.runtime.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.deps.runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/session-store-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/session-store-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/session-store-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/session-store-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-session-close.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-session-close.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/setup-adapter-runtime", + "file": "plugins/discord/.crabpot-package/src/setup-adapter.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/setup-adapter.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/setup-runtime", + "file": "plugins/discord/.crabpot-package/src/setup-adapter.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/setup-adapter.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/setup-runtime", + "file": "plugins/discord/.crabpot-package/src/setup-core.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/setup-core.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/setup-runtime", + "file": "plugins/discord/.crabpot-package/src/setup-core.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/setup-core.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/setup-runtime", + "file": "plugins/discord/.crabpot-package/src/setup-runtime-helpers.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/setup-runtime-helpers.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/setup-runtime", + "file": "plugins/discord/.crabpot-package/src/setup-surface.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/setup-surface.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/setup-tools", + "file": "plugins/discord/.crabpot-package/src/setup-core.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/setup-core.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/setup-tools", + "file": "plugins/discord/.crabpot-package/src/setup-surface.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/setup-surface.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/simple-completion-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-title.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-title.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/speech", + "file": "plugins/discord/.crabpot-package/src/voice/tts.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/voice/tts.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-metadata.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-metadata.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/gateway-supervisor.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/gateway-supervisor.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-media.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-media.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.acp.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.acp.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.deploy-errors.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.deploy-errors.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.deploy.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.deploy.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.ts", + "line": 24, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.ts:24" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/voice-message.ts", + "line": 25, + "ref": "plugins/discord/.crabpot-package/src/voice-message.ts:25" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/voice/audio.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/voice/audio.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/voice/manager.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/voice/manager.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/discord/.crabpot-package/src/voice/receive-recovery.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/voice/receive-recovery.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/state-paths", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/state-paths", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/state-paths", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.state.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.state.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/discord/.crabpot-package/src/channel.ts", + "line": 21, + "ref": "plugins/discord/.crabpot-package/src/channel.ts:21" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/discord/.crabpot-package/src/status-issues.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/status-issues.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/string-normalization-runtime", + "file": "plugins/discord/.crabpot-package/src/group-policy.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/group-policy.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/system-event-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.deps.runtime.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.deps.runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/system-event-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/listeners.reactions.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/system-event-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/target-resolver-runtime", + "file": "plugins/discord/.crabpot-package/src/channel.ts", + "line": 22, + "ref": "plugins/discord/.crabpot-package/src/channel.ts:22" + }, + { + "specifier": "openclaw/plugin-sdk/temp-path", + "file": "plugins/discord/.crabpot-package/src/send.voice.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/send.voice.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/temp-path", + "file": "plugins/discord/.crabpot-package/src/voice-message.ts", + "line": 26, + "ref": "plugins/discord/.crabpot-package/src/voice-message.ts:26" + }, + { + "specifier": "openclaw/plugin-sdk/temp-path", + "file": "plugins/discord/.crabpot-package/src/voice/audio.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/voice/audio.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/account-inspect.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/account-inspect.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/accounts.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/src/accounts.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/actions/handle-action.guild-admin.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/actions/handle-action.guild-admin.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/actions/handle-action.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/actions/handle-action.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/actions/runtime.presence.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/actions/runtime.presence.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts", + "line": 16, + "ref": "plugins/discord/.crabpot-package/src/approval-handler.runtime.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/approval-native.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/approval-native.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/audit-core.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/audit-core.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/channel-actions.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/channel-actions.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/channel.conversation.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/channel.conversation.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/channel.ts", + "line": 23, + "ref": "plugins/discord/.crabpot-package/src/channel.ts:23" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/client.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/client.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/components.builders.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/components.builders.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/components.parse.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/components.parse.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/conversation-identity.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/conversation-identity.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/directory-cache.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/directory-cache.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/directory-live.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/directory-live.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/doctor.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/doctor.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/group-policy.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/group-policy.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/media-detection.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/media-detection.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/mentions.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/mentions.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-context.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-context.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components-data.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components-data.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.dispatch.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.handlers.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.handlers.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.modal.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.modal.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.plugin-interactive.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.plugin-interactive.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/agent-components.system-controls.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/agent-components.system-controls.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/allow-list.ts", + "line": 12, + "ref": "plugins/discord/.crabpot-package/src/monitor/allow-list.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-channel-info.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-channel-info.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-forwarded.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-forwarded.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.context.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.draft-preview.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.draft-preview.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-channel-access.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-channel-access.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-helpers.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-helpers.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-logging.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight-logging.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts", + "line": 15, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-handler.preflight.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-media.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-media.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/message-text.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/message-text.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/model-picker-preferences.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-arg-ui.ts", + "line": 13, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-arg-ui.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts", + "line": 5, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-auth.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-bypass.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-bypass.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-apply.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-interaction.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-interaction.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-model-picker-ui.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-route.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-route.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command.options.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command.options.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/preflight-audio.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/presence.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/presence.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.allowlist.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.commands.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.config-log.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.config-log.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/provider.startup.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts", + "line": 18, + "ref": "plugins/discord/.crabpot-package/src/monitor/reply-delivery.ts:18" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/sender-identity.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/sender-identity.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.discord-api.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.discord-api.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.lifecycle.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.lifecycle.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.manager.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.persona.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.persona.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-adapter.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.session-adapter.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.state.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-bindings.state.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/thread-session-close.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/thread-session-close.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/monitor/threading.auto-thread.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/monitor/threading.starter.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/monitor/threading.starter.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/outbound-adapter.ts", + "line": 11, + "ref": "plugins/discord/.crabpot-package/src/outbound-adapter.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/outbound-send-context.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/outbound-send-context.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/probe.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/probe.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/proxy-fetch.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/proxy-fetch.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/resolve-users.ts", + "line": 4, + "ref": "plugins/discord/.crabpot-package/src/resolve-users.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/security-contract.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/security-contract.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/send.emojis-stickers.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/send.emojis-stickers.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/send.guild.ts", + "line": 8, + "ref": "plugins/discord/.crabpot-package/src/send.guild.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/send.outbound.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/send.outbound.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/send.webhook.ts", + "line": 3, + "ref": "plugins/discord/.crabpot-package/src/send.webhook.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/session-key-normalization.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/session-key-normalization.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/setup-core.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/setup-core.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/subagent-hooks.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/subagent-hooks.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/voice-message.ts", + "line": 27, + "ref": "plugins/discord/.crabpot-package/src/voice-message.ts:27" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/voice/sanitize.ts", + "line": 1, + "ref": "plugins/discord/.crabpot-package/src/voice/sanitize.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/voice/segment.ts", + "line": 6, + "ref": "plugins/discord/.crabpot-package/src/voice/segment.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/discord/.crabpot-package/src/voice/tts.ts", + "line": 10, + "ref": "plugins/discord/.crabpot-package/src/voice/tts.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/tool-send", + "file": "plugins/discord/.crabpot-package/src/channel-actions.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/channel-actions.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/web-media", + "file": "plugins/discord/.crabpot-package/src/monitor/native-command-reply.ts", + "line": 7, + "ref": "plugins/discord/.crabpot-package/src/monitor/native-command-reply.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/web-media", + "file": "plugins/discord/.crabpot-package/src/send.emojis-stickers.ts", + "line": 2, + "ref": "plugins/discord/.crabpot-package/src/send.emojis-stickers.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/web-media", + "file": "plugins/discord/.crabpot-package/src/send.guild.ts", + "line": 9, + "ref": "plugins/discord/.crabpot-package/src/send.guild.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/web-media", + "file": "plugins/discord/.crabpot-package/src/send.shared.ts", + "line": 17, + "ref": "plugins/discord/.crabpot-package/src/send.shared.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/web-media", + "file": "plugins/discord/.crabpot-package/src/send.voice.ts", + "line": 14, + "ref": "plugins/discord/.crabpot-package/src/send.voice.ts:14" } ] }, @@ -8300,25 +13600,37 @@ "hooks": [], "hookDetails": [], "registrations": [ + "definePluginEntry", "registerTool" ], "registrationDetails": [ + { + "name": "definePluginEntry", + "file": "plugins/lobster/.crabpot-package/index.ts", + "line": 5, + "ref": "plugins/lobster/.crabpot-package/index.ts:5" + }, { "name": "registerTool", "file": "plugins/lobster/.crabpot-package/index.ts", - "line": 9, - "ref": "plugins/lobster/.crabpot-package/index.ts:9" + "line": 10, + "ref": "plugins/lobster/.crabpot-package/index.ts:10" } ], - "manifestContracts": [], + "manifestContracts": [ + "tools" + ], "manifestFiles": [ "plugins/lobster/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ "plugins/lobster/.crabpot-package/index.ts", + "plugins/lobster/.crabpot-package/runtime-api.ts", + "plugins/lobster/.crabpot-package/src/lobster-ajv-cache.ts", + "plugins/lobster/.crabpot-package/src/lobster-runner.ts", + "plugins/lobster/.crabpot-package/src/lobster-taskflow.ts", "plugins/lobster/.crabpot-package/src/lobster-tool.ts", - "plugins/lobster/.crabpot-package/src/test-helpers.ts", - "plugins/lobster/.crabpot-package/src/windows-spawn.ts" + "plugins/lobster/.crabpot-package/src/taskflow-test-helpers.ts" ], "pluginManifests": [ { @@ -8327,33 +13639,41 @@ "name": "Lobster", "version": null, "keys": [ + "activation", "configSchema", + "contracts", "description", "id", "name" ], - "contracts": [], + "contracts": [ + "tools" + ], "providerAuthEnvVars": {}, "channelEnvVars": {}, - "activation": null + "activation": { + "onStartup": true + } } ], "securityManifests": [], "package": { "path": "plugins/lobster/.crabpot-package/package.json", "name": "@openclaw/lobster", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { - "advertised": false, + "advertised": true, "private": false, "filesMode": "implicit", "files": [], "invalidFileSpecs": [] }, "dependencies": [ - "@sinclair/typebox" + "@clawdbot/lobster", + "ajv", + "typebox" ], "peerDependencies": [], "optionalDependencies": [], @@ -8363,11 +13683,20 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, - "install": null, - "release": null, + "install": { + "clawhubSpec": null, + "npmSpec": "@openclaw/lobster", + "defaultChoice": "npm", + "minHostVersion": ">=2026.4.25" + }, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -8383,18 +13712,20 @@ { "path": "plugins/lobster/.crabpot-package/package.json", "name": "@openclaw/lobster", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { - "advertised": false, + "advertised": true, "private": false, "filesMode": "implicit", "files": [], "invalidFileSpecs": [] }, "dependencies": [ - "@sinclair/typebox" + "@clawdbot/lobster", + "ajv", + "typebox" ], "peerDependencies": [], "optionalDependencies": [], @@ -8404,11 +13735,20 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, - "install": null, - "release": null, + "install": { + "clawhubSpec": null, + "npmSpec": "@openclaw/lobster", + "defaultChoice": "npm", + "minHostVersion": ">=2026.4.25" + }, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -8442,26 +13782,34 @@ } ], "sdkImports": [ - "openclaw/plugin-sdk/lobster" + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/plugin-entry", + "openclaw/plugin-sdk/windows-spawn" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk/lobster", + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/lobster/.crabpot-package/runtime-api.ts", + "line": 1, + "ref": "plugins/lobster/.crabpot-package/runtime-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/lobster/.crabpot-package/runtime-api.ts", + "line": 7, + "ref": "plugins/lobster/.crabpot-package/runtime-api.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-entry", "file": "plugins/lobster/.crabpot-package/index.ts", - "line": 5, - "ref": "plugins/lobster/.crabpot-package/index.ts:5" + "line": 1, + "ref": "plugins/lobster/.crabpot-package/index.ts:1" }, { - "specifier": "openclaw/plugin-sdk/lobster", - "file": "plugins/lobster/.crabpot-package/src/lobster-tool.ts", - "line": 4, - "ref": "plugins/lobster/.crabpot-package/src/lobster-tool.ts:4" - }, - { - "specifier": "openclaw/plugin-sdk/lobster", - "file": "plugins/lobster/.crabpot-package/src/windows-spawn.ts", - "line": 5, - "ref": "plugins/lobster/.crabpot-package/src/windows-spawn.ts:5" + "specifier": "openclaw/plugin-sdk/windows-spawn", + "file": "plugins/lobster/.crabpot-package/runtime-api.ts", + "line": 12, + "ref": "plugins/lobster/.crabpot-package/runtime-api.ts:12" } ] }, @@ -8619,6 +13967,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -8670,6 +14019,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -8979,14 +14329,21 @@ "hooks": [], "hookDetails": [], "registrations": [ - "registerChannel" + "createChatChannelPlugin", + "defineBundledChannelEntry" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "createChatChannelPlugin", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 406, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:406" + }, + { + "name": "defineBundledChannelEntry", "file": "plugins/msteams/.crabpot-package/index.ts", - "line": 13, - "ref": "plugins/msteams/.crabpot-package/index.ts:13" + "line": 3, + "ref": "plugins/msteams/.crabpot-package/index.ts:3" } ], "manifestContracts": [], @@ -8994,8 +14351,21 @@ "plugins/msteams/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/msteams/.crabpot-package/api.ts", + "plugins/msteams/.crabpot-package/channel-config-api.ts", + "plugins/msteams/.crabpot-package/channel-plugin-api.ts", + "plugins/msteams/.crabpot-package/config-api.ts", + "plugins/msteams/.crabpot-package/contract-api.ts", "plugins/msteams/.crabpot-package/index.ts", + "plugins/msteams/.crabpot-package/runtime-api.ts", + "plugins/msteams/.crabpot-package/secret-contract-api.ts", + "plugins/msteams/.crabpot-package/setup-entry.ts", + "plugins/msteams/.crabpot-package/setup-plugin-api.ts", + "plugins/msteams/.crabpot-package/src/ai-entity.ts", + "plugins/msteams/.crabpot-package/src/approval-auth.ts", + "plugins/msteams/.crabpot-package/src/attachments.test-helpers.ts", "plugins/msteams/.crabpot-package/src/attachments.ts", + "plugins/msteams/.crabpot-package/src/attachments/bot-framework.ts", "plugins/msteams/.crabpot-package/src/attachments/download.ts", "plugins/msteams/.crabpot-package/src/attachments/graph.ts", "plugins/msteams/.crabpot-package/src/attachments/html.ts", @@ -9003,16 +14373,32 @@ "plugins/msteams/.crabpot-package/src/attachments/remote-media.ts", "plugins/msteams/.crabpot-package/src/attachments/shared.ts", "plugins/msteams/.crabpot-package/src/attachments/types.ts", + "plugins/msteams/.crabpot-package/src/channel-api.ts", + "plugins/msteams/.crabpot-package/src/channel.runtime.ts", + "plugins/msteams/.crabpot-package/src/channel.setup.ts", "plugins/msteams/.crabpot-package/src/channel.ts", + "plugins/msteams/.crabpot-package/src/config-schema.ts", + "plugins/msteams/.crabpot-package/src/config-ui-hints.ts", "plugins/msteams/.crabpot-package/src/conversation-store-fs.ts", + "plugins/msteams/.crabpot-package/src/conversation-store-helpers.ts", "plugins/msteams/.crabpot-package/src/conversation-store-memory.ts", "plugins/msteams/.crabpot-package/src/conversation-store.ts", "plugins/msteams/.crabpot-package/src/directory-live.ts", + "plugins/msteams/.crabpot-package/src/doctor.ts", "plugins/msteams/.crabpot-package/src/errors.ts", + "plugins/msteams/.crabpot-package/src/feedback-reflection-prompt.ts", + "plugins/msteams/.crabpot-package/src/feedback-reflection-store.ts", + "plugins/msteams/.crabpot-package/src/feedback-reflection.ts", "plugins/msteams/.crabpot-package/src/file-consent-helpers.ts", + "plugins/msteams/.crabpot-package/src/file-consent-invoke.ts", "plugins/msteams/.crabpot-package/src/file-consent.ts", - "plugins/msteams/.crabpot-package/src/file-lock.ts", "plugins/msteams/.crabpot-package/src/graph-chat.ts", + "plugins/msteams/.crabpot-package/src/graph-group-management.ts", + "plugins/msteams/.crabpot-package/src/graph-members.ts", + "plugins/msteams/.crabpot-package/src/graph-messages.test-helpers.ts", + "plugins/msteams/.crabpot-package/src/graph-messages.ts", + "plugins/msteams/.crabpot-package/src/graph-teams.ts", + "plugins/msteams/.crabpot-package/src/graph-thread.ts", "plugins/msteams/.crabpot-package/src/graph-upload.ts", "plugins/msteams/.crabpot-package/src/graph-users.ts", "plugins/msteams/.crabpot-package/src/graph.ts", @@ -9021,33 +14407,58 @@ "plugins/msteams/.crabpot-package/src/media-helpers.ts", "plugins/msteams/.crabpot-package/src/mentions.ts", "plugins/msteams/.crabpot-package/src/messenger.ts", + "plugins/msteams/.crabpot-package/src/monitor-handler.test-helpers.ts", "plugins/msteams/.crabpot-package/src/monitor-handler.ts", + "plugins/msteams/.crabpot-package/src/monitor-handler.types.ts", + "plugins/msteams/.crabpot-package/src/monitor-handler/access.ts", "plugins/msteams/.crabpot-package/src/monitor-handler/inbound-media.ts", + "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler-mock-support.test-support.ts", + "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.test-support.ts", "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts", + "plugins/msteams/.crabpot-package/src/monitor-handler/reaction-handler.ts", + "plugins/msteams/.crabpot-package/src/monitor-handler/thread-session.ts", "plugins/msteams/.crabpot-package/src/monitor-types.ts", "plugins/msteams/.crabpot-package/src/monitor.ts", - "plugins/msteams/.crabpot-package/src/onboarding.ts", + "plugins/msteams/.crabpot-package/src/oauth.flow.ts", + "plugins/msteams/.crabpot-package/src/oauth.shared.ts", + "plugins/msteams/.crabpot-package/src/oauth.token.ts", + "plugins/msteams/.crabpot-package/src/oauth.ts", "plugins/msteams/.crabpot-package/src/outbound.ts", + "plugins/msteams/.crabpot-package/src/pending-uploads-fs.ts", "plugins/msteams/.crabpot-package/src/pending-uploads.ts", "plugins/msteams/.crabpot-package/src/policy.ts", "plugins/msteams/.crabpot-package/src/polls-store-memory.ts", "plugins/msteams/.crabpot-package/src/polls.ts", + "plugins/msteams/.crabpot-package/src/presentation.ts", "plugins/msteams/.crabpot-package/src/probe.ts", "plugins/msteams/.crabpot-package/src/reply-dispatcher.ts", + "plugins/msteams/.crabpot-package/src/reply-stream-controller.ts", "plugins/msteams/.crabpot-package/src/resolve-allowlist.ts", "plugins/msteams/.crabpot-package/src/revoked-context.ts", "plugins/msteams/.crabpot-package/src/runtime.ts", "plugins/msteams/.crabpot-package/src/sdk-types.ts", "plugins/msteams/.crabpot-package/src/sdk.ts", + "plugins/msteams/.crabpot-package/src/secret-contract.ts", "plugins/msteams/.crabpot-package/src/secret-input.ts", "plugins/msteams/.crabpot-package/src/send-context.ts", "plugins/msteams/.crabpot-package/src/send.ts", "plugins/msteams/.crabpot-package/src/sent-message-cache.ts", + "plugins/msteams/.crabpot-package/src/session-route.ts", + "plugins/msteams/.crabpot-package/src/setup-core.ts", + "plugins/msteams/.crabpot-package/src/setup-surface.ts", + "plugins/msteams/.crabpot-package/src/sso-token-store.ts", + "plugins/msteams/.crabpot-package/src/sso.ts", "plugins/msteams/.crabpot-package/src/storage.ts", "plugins/msteams/.crabpot-package/src/store-fs.ts", + "plugins/msteams/.crabpot-package/src/streaming-message.ts", "plugins/msteams/.crabpot-package/src/test-runtime.ts", + "plugins/msteams/.crabpot-package/src/thread-parent-context.ts", "plugins/msteams/.crabpot-package/src/token-response.ts", - "plugins/msteams/.crabpot-package/src/token.ts" + "plugins/msteams/.crabpot-package/src/token.ts", + "plugins/msteams/.crabpot-package/src/user-agent.ts", + "plugins/msteams/.crabpot-package/src/webhook-timeouts.ts", + "plugins/msteams/.crabpot-package/src/welcome-card.ts", + "plugins/msteams/.crabpot-package/test-api.ts" ], "pluginManifests": [ { @@ -9056,21 +14467,32 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", + "channelEnvVars", "channels", "configSchema", "id" ], "contracts": [], "providerAuthEnvVars": {}, - "channelEnvVars": {}, - "activation": null + "channelEnvVars": { + "msteams": [ + "MSTEAMS_APP_ID", + "MSTEAMS_APP_PASSWORD", + "MSTEAMS_TENANT_ID" + ] + }, + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/msteams/.crabpot-package/package.json", "name": "@openclaw/msteams", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -9081,27 +14503,38 @@ "invalidFileSpecs": [] }, "dependencies": [ - "@microsoft/agents-hosting", - "express" + "@azure/identity", + "@microsoft/teams.api", + "@microsoft/teams.apps", + "express", + "jsonwebtoken", + "jwks-rsa", + "typebox" + ], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/msteams", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -9109,6 +14542,13 @@ "relativePath": "plugins/msteams/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/msteams/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -9117,7 +14557,7 @@ { "path": "plugins/msteams/.crabpot-package/package.json", "name": "@openclaw/msteams", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -9128,27 +14568,38 @@ "invalidFileSpecs": [] }, "dependencies": [ - "@microsoft/agents-hosting", - "express" + "@azure/identity", + "@microsoft/teams.api", + "@microsoft/teams.apps", + "express", + "jsonwebtoken", + "jwks-rsa", + "typebox" + ], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/msteams", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -9156,6 +14607,13 @@ "relativePath": "plugins/msteams/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/msteams/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -9182,219 +14640,741 @@ } ], "sdkImports": [ - "openclaw/plugin-sdk/compat", - "openclaw/plugin-sdk/msteams" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/bundled-channel-config-schema", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-inbound", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-logging", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/channel-status", + "openclaw/plugin-sdk/channel-targets", + "openclaw/plugin-sdk/command-gating", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/context-visibility-runtime", + "openclaw/plugin-sdk/dangerous-name-runtime", + "openclaw/plugin-sdk/directory-runtime", + "openclaw/plugin-sdk/file-lock", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/inbound-reply-dispatch", + "openclaw/plugin-sdk/interactive-runtime", + "openclaw/plugin-sdk/json-store", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/markdown-table-runtime", + "openclaw/plugin-sdk/media-runtime", + "openclaw/plugin-sdk/outbound-media", + "openclaw/plugin-sdk/outbound-runtime", + "openclaw/plugin-sdk/outbound-send-deps", + "openclaw/plugin-sdk/provider-auth", + "openclaw/plugin-sdk/provider-auth-runtime", + "openclaw/plugin-sdk/reply-chunking", + "openclaw/plugin-sdk/reply-history", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/setup-tools", + "openclaw/plugin-sdk/ssrf-policy", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/string-normalization-runtime", + "openclaw/plugin-sdk/text-chunking", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/web-media", + "openclaw/plugin-sdk/webhook-ingress" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/msteams/.crabpot-package/src/channel.ts", - "line": 4, - "ref": "plugins/msteams/.crabpot-package/src/channel.ts:4" + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/msteams/.crabpot-package/src/channel.setup.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/channel.setup.ts:1" }, { - "specifier": "openclaw/plugin-sdk/compat", + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 4, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 10, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 5, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/msteams/.crabpot-package/src/channel.setup.ts", + "line": 2, + "ref": "plugins/msteams/.crabpot-package/src/channel.setup.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 2, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", "file": "plugins/msteams/.crabpot-package/src/resolve-allowlist.ts", "line": 1, "ref": "plugins/msteams/.crabpot-package/src/resolve-allowlist.ts:1" }, { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/msteams/.crabpot-package/src/runtime.ts", - "line": 1, - "ref": "plugins/msteams/.crabpot-package/src/runtime.ts:1" + "specifier": "openclaw/plugin-sdk/approval-auth-runtime", + "file": "plugins/msteams/.crabpot-package/src/approval-auth.ts", + "line": 4, + "ref": "plugins/msteams/.crabpot-package/src/approval-auth.ts:4" }, { - "specifier": "openclaw/plugin-sdk/msteams", + "specifier": "openclaw/plugin-sdk/bundled-channel-config-schema", + "file": "plugins/msteams/.crabpot-package/config-api.ts", + "line": 4, + "ref": "plugins/msteams/.crabpot-package/config-api.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/msteams/.crabpot-package/src/channel.setup.ts", + "line": 3, + "ref": "plugins/msteams/.crabpot-package/src/channel.setup.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 3, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 17, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 7, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 18, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:18" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/msteams/.crabpot-package/src/channel-api.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/channel-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/msteams/.crabpot-package/src/channel.setup.ts", + "line": 4, + "ref": "plugins/msteams/.crabpot-package/src/channel.setup.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 8, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/msteams/.crabpot-package/src/config-ui-hints.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/config-ui-hints.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/msteams/.crabpot-package/src/session-route.ts", + "line": 6, + "ref": "plugins/msteams/.crabpot-package/src/session-route.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", "file": "plugins/msteams/.crabpot-package/index.ts", "line": 1, "ref": "plugins/msteams/.crabpot-package/index.ts:1" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/index.ts", + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/msteams/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/setup-entry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts", "line": 2, - "ref": "plugins/msteams/.crabpot-package/index.ts:2" + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:2" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/attachments/graph.ts", - "line": 1, - "ref": "plugins/msteams/.crabpot-package/src/attachments/graph.ts:1" + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts", + "line": 6, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:6" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/attachments/payload.ts", - "line": 1, - "ref": "plugins/msteams/.crabpot-package/src/attachments/payload.ts:1" + "specifier": "openclaw/plugin-sdk/channel-lifecycle", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 54, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:54" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/attachments/remote-media.ts", - "line": 1, - "ref": "plugins/msteams/.crabpot-package/src/attachments/remote-media.ts:1" + "specifier": "openclaw/plugin-sdk/channel-lifecycle", + "file": "plugins/msteams/.crabpot-package/src/streaming-message.ts", + "line": 12, + "ref": "plugins/msteams/.crabpot-package/src/streaming-message.ts:12" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/attachments/shared.ts", - "line": 7, - "ref": "plugins/msteams/.crabpot-package/src/attachments/shared.ts:7" + "specifier": "openclaw/plugin-sdk/channel-logging", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 19, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:19" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/attachments/shared.ts", - "line": 8, - "ref": "plugins/msteams/.crabpot-package/src/attachments/shared.ts:8" + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 20, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:20" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/channel.ts", - "line": 18, - "ref": "plugins/msteams/.crabpot-package/src/channel.ts:18" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", + "specifier": "openclaw/plugin-sdk/channel-pairing", "file": "plugins/msteams/.crabpot-package/src/channel.ts", "line": 9, "ref": "plugins/msteams/.crabpot-package/src/channel.ts:9" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/directory-live.ts", + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 28, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:28" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 13, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/msteams/.crabpot-package/src/doctor.ts", "line": 1, - "ref": "plugins/msteams/.crabpot-package/src/directory-live.ts:1" + "ref": "plugins/msteams/.crabpot-package/src/doctor.ts:1" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/file-lock.ts", - "line": 1, - "ref": "plugins/msteams/.crabpot-package/src/file-lock.ts:1" + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 29, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:29" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/graph.ts", - "line": 1, - "ref": "plugins/msteams/.crabpot-package/src/graph.ts:1" + "specifier": "openclaw/plugin-sdk/channel-secret-basic-runtime", + "file": "plugins/msteams/.crabpot-package/src/secret-contract.ts", + "line": 6, + "ref": "plugins/msteams/.crabpot-package/src/secret-contract.ts:6" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/media-helpers.ts", - "line": 11, - "ref": "plugins/msteams/.crabpot-package/src/media-helpers.ts:11" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/messenger.ts", - "line": 10, - "ref": "plugins/msteams/.crabpot-package/src/messenger.ts:10" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/monitor-handler.ts", - "line": 1, - "ref": "plugins/msteams/.crabpot-package/src/monitor-handler.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts", - "line": 22, - "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:22" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/monitor.ts", - "line": 10, - "ref": "plugins/msteams/.crabpot-package/src/monitor.ts:10" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/onboarding.ts", - "line": 18, - "ref": "plugins/msteams/.crabpot-package/src/onboarding.ts:18" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/onboarding.ts", + "specifier": "openclaw/plugin-sdk/channel-secret-basic-runtime", + "file": "plugins/msteams/.crabpot-package/src/secret-contract.ts", "line": 8, - "ref": "plugins/msteams/.crabpot-package/src/onboarding.ts:8" + "ref": "plugins/msteams/.crabpot-package/src/secret-contract.ts:8" }, { - "specifier": "openclaw/plugin-sdk/msteams", + "specifier": "openclaw/plugin-sdk/channel-send-result", "file": "plugins/msteams/.crabpot-package/src/outbound.ts", "line": 1, "ref": "plugins/msteams/.crabpot-package/src/outbound.ts:1" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/policy.ts", - "line": 10, - "ref": "plugins/msteams/.crabpot-package/src/policy.ts:10" + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 34, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:34" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/policy.ts", - "line": 20, - "ref": "plugins/msteams/.crabpot-package/src/policy.ts:20" + "specifier": "openclaw/plugin-sdk/channel-targets", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 40, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:40" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/probe.ts", + "specifier": "openclaw/plugin-sdk/command-gating", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts", + "line": 7, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 50, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:50" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/msteams/.crabpot-package/src/channel.setup.ts", "line": 5, - "ref": "plugins/msteams/.crabpot-package/src/probe.ts:5" + "ref": "plugins/msteams/.crabpot-package/src/channel.setup.ts:5" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/reply-dispatcher.ts", - "line": 9, - "ref": "plugins/msteams/.crabpot-package/src/reply-dispatcher.ts:9" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/runtime.ts", - "line": 2, - "ref": "plugins/msteams/.crabpot-package/src/runtime.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/secret-input.ts", - "line": 5, - "ref": "plugins/msteams/.crabpot-package/src/secret-input.ts:5" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/send-context.ts", - "line": 5, - "ref": "plugins/msteams/.crabpot-package/src/send-context.ts:5" - }, - { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/send.ts", + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/msteams/.crabpot-package/src/setup-core.ts", "line": 1, - "ref": "plugins/msteams/.crabpot-package/src/send.ts:1" + "ref": "plugins/msteams/.crabpot-package/src/setup-core.ts:1" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/send.ts", - "line": 2, - "ref": "plugins/msteams/.crabpot-package/src/send.ts:2" + "specifier": "openclaw/plugin-sdk/context-visibility-runtime", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts", + "line": 12, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:12" }, { - "specifier": "openclaw/plugin-sdk/msteams", + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 51, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:51" + }, + { + "specifier": "openclaw/plugin-sdk/directory-runtime", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 18, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:18" + }, + { + "specifier": "openclaw/plugin-sdk/file-lock", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 53, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:53" + }, + { + "specifier": "openclaw/plugin-sdk/file-lock", "file": "plugins/msteams/.crabpot-package/src/store-fs.ts", "line": 2, "ref": "plugins/msteams/.crabpot-package/src/store-fs.ts:2" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/test-runtime.ts", - "line": 3, - "ref": "plugins/msteams/.crabpot-package/src/test-runtime.ts:3" + "specifier": "openclaw/plugin-sdk/group-access", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts", + "line": 13, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:13" }, { - "specifier": "openclaw/plugin-sdk/msteams", - "file": "plugins/msteams/.crabpot-package/src/token.ts", + "specifier": "openclaw/plugin-sdk/inbound-reply-dispatch", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 62, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:62" + }, + { + "specifier": "openclaw/plugin-sdk/inbound-reply-dispatch", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts", + "line": 18, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:18" + }, + { + "specifier": "openclaw/plugin-sdk/interactive-runtime", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 19, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:19" + }, + { + "specifier": "openclaw/plugin-sdk/interactive-runtime", + "file": "plugins/msteams/.crabpot-package/src/presentation.ts", "line": 1, - "ref": "plugins/msteams/.crabpot-package/src/token.ts:1" + "ref": "plugins/msteams/.crabpot-package/src/presentation.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/json-store", + "file": "plugins/msteams/.crabpot-package/src/store-fs.ts", + "line": 3, + "ref": "plugins/msteams/.crabpot-package/src/store-fs.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/lazy-runtime", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 20, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/markdown-table-runtime", + "file": "plugins/msteams/.crabpot-package/src/send.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/send.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 61, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:61" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/msteams/.crabpot-package/src/attachments/remote-media.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/attachments/remote-media.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-media", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 63, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:63" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-runtime", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 21, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:21" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-send-deps", + "file": "plugins/msteams/.crabpot-package/src/outbound.ts", + "line": 2, + "ref": "plugins/msteams/.crabpot-package/src/outbound.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/provider-auth", + "file": "plugins/msteams/.crabpot-package/src/oauth.flow.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/oauth.flow.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/provider-auth-runtime", + "file": "plugins/msteams/.crabpot-package/src/oauth.flow.ts", + "line": 6, + "ref": "plugins/msteams/.crabpot-package/src/oauth.flow.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/reply-chunking", + "file": "plugins/msteams/.crabpot-package/src/messenger.ts", + "line": 5, + "ref": "plugins/msteams/.crabpot-package/src/messenger.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts", + "line": 24, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:24" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 64, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:64" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 65, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:65" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/msteams/.crabpot-package/src/messenger.ts", + "line": 9, + "ref": "plugins/msteams/.crabpot-package/src/messenger.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler.ts", + "line": 3, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler/thread-session.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/thread-session.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 67, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:67" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/msteams/.crabpot-package/src/oauth.flow.ts", + "line": 7, + "ref": "plugins/msteams/.crabpot-package/src/oauth.flow.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 52, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:52" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 66, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:66" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/msteams/.crabpot-package/src/runtime.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/msteams/.crabpot-package/src/runtime.ts", + "line": 2, + "ref": "plugins/msteams/.crabpot-package/src/runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/msteams/.crabpot-package/src/secret-input.ts", + "line": 5, + "ref": "plugins/msteams/.crabpot-package/src/secret-input.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/msteams/.crabpot-package/src/setup-core.ts", + "line": 8, + "ref": "plugins/msteams/.crabpot-package/src/setup-core.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/msteams/.crabpot-package/src/setup-surface.ts", + "line": 12, + "ref": "plugins/msteams/.crabpot-package/src/setup-surface.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/setup-tools", + "file": "plugins/msteams/.crabpot-package/src/setup-core.ts", + "line": 9, + "ref": "plugins/msteams/.crabpot-package/src/setup-core.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-policy", + "file": "plugins/msteams/.crabpot-package/src/attachments/shared.ts", + "line": 9, + "ref": "plugins/msteams/.crabpot-package/src/attachments/shared.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 68, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:68" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 69, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:69" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/msteams/.crabpot-package/src/attachments/graph.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/attachments/graph.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/msteams/.crabpot-package/src/oauth.token.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/oauth.token.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/msteams/.crabpot-package/src/sdk.ts", + "line": 5, + "ref": "plugins/msteams/.crabpot-package/src/sdk.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 22, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:22" + }, + { + "specifier": "openclaw/plugin-sdk/string-normalization-runtime", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 70, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:70" + }, + { + "specifier": "openclaw/plugin-sdk/text-chunking", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 71, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:71" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/approval-auth.ts", + "line": 5, + "ref": "plugins/msteams/.crabpot-package/src/approval-auth.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/attachments/download.ts", + "line": 4, + "ref": "plugins/msteams/.crabpot-package/src/attachments/download.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/attachments/graph.ts", + "line": 6, + "ref": "plugins/msteams/.crabpot-package/src/attachments/graph.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/attachments/shared.ts", + "line": 14, + "ref": "plugins/msteams/.crabpot-package/src/attachments/shared.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/channel.ts", + "line": 23, + "ref": "plugins/msteams/.crabpot-package/src/channel.ts:23" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/conversation-store-helpers.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/conversation-store-helpers.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/directory-live.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/directory-live.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/feedback-reflection-prompt.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/feedback-reflection-prompt.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/feedback-reflection.ts", + "line": 13, + "ref": "plugins/msteams/.crabpot-package/src/feedback-reflection.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/file-consent-helpers.ts", + "line": 12, + "ref": "plugins/msteams/.crabpot-package/src/file-consent-helpers.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/graph-chat.ts", + "line": 20, + "ref": "plugins/msteams/.crabpot-package/src/graph-chat.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/messenger.ts", + "line": 10, + "ref": "plugins/msteams/.crabpot-package/src/messenger.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler.ts", + "line": 4, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/monitor-handler/access.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/monitor-handler/access.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/presentation.ts", + "line": 2, + "ref": "plugins/msteams/.crabpot-package/src/presentation.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/reply-dispatcher.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/reply-dispatcher.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/reply-stream-controller.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/reply-stream-controller.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/resolve-allowlist.ts", + "line": 5, + "ref": "plugins/msteams/.crabpot-package/src/resolve-allowlist.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/send-context.ts", + "line": 1, + "ref": "plugins/msteams/.crabpot-package/src/send-context.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/send.ts", + "line": 2, + "ref": "plugins/msteams/.crabpot-package/src/send.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/session-route.ts", + "line": 7, + "ref": "plugins/msteams/.crabpot-package/src/session-route.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/msteams/.crabpot-package/src/streaming-message.ts", + "line": 13, + "ref": "plugins/msteams/.crabpot-package/src/streaming-message.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/web-media", + "file": "plugins/msteams/.crabpot-package/src/messenger.ts", + "line": 11, + "ref": "plugins/msteams/.crabpot-package/src/messenger.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/msteams/.crabpot-package/runtime-api.ts", + "line": 72, + "ref": "plugins/msteams/.crabpot-package/runtime-api.ts:72" } ] }, @@ -9414,14 +15394,21 @@ "hooks": [], "hookDetails": [], "registrations": [ - "registerChannel" + "createChatChannelPlugin", + "defineBundledChannelEntry" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "createChatChannelPlugin", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts", + "line": 69, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts:69" + }, + { + "name": "defineBundledChannelEntry", "file": "plugins/nextcloud-talk/.crabpot-package/index.ts", - "line": 13, - "ref": "plugins/nextcloud-talk/.crabpot-package/index.ts:13" + "line": 3, + "ref": "plugins/nextcloud-talk/.crabpot-package/index.ts:3" } ], "manifestContracts": [], @@ -9429,23 +15416,40 @@ "plugins/nextcloud-talk/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/nextcloud-talk/.crabpot-package/api.ts", + "plugins/nextcloud-talk/.crabpot-package/channel-plugin-api.ts", + "plugins/nextcloud-talk/.crabpot-package/contract-api.ts", + "plugins/nextcloud-talk/.crabpot-package/doctor-contract-api.ts", "plugins/nextcloud-talk/.crabpot-package/index.ts", + "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "plugins/nextcloud-talk/.crabpot-package/secret-contract-api.ts", + "plugins/nextcloud-talk/.crabpot-package/setup-entry.ts", "plugins/nextcloud-talk/.crabpot-package/src/accounts.ts", + "plugins/nextcloud-talk/.crabpot-package/src/approval-auth.ts", + "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts", + "plugins/nextcloud-talk/.crabpot-package/src/channel.adapters.ts", "plugins/nextcloud-talk/.crabpot-package/src/channel.ts", "plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts", - "plugins/nextcloud-talk/.crabpot-package/src/format.ts", + "plugins/nextcloud-talk/.crabpot-package/src/doctor-contract.ts", + "plugins/nextcloud-talk/.crabpot-package/src/doctor.ts", + "plugins/nextcloud-talk/.crabpot-package/src/gateway.ts", "plugins/nextcloud-talk/.crabpot-package/src/inbound.ts", + "plugins/nextcloud-talk/.crabpot-package/src/monitor-runtime.ts", "plugins/nextcloud-talk/.crabpot-package/src/monitor.test-fixtures.ts", "plugins/nextcloud-talk/.crabpot-package/src/monitor.test-harness.ts", "plugins/nextcloud-talk/.crabpot-package/src/monitor.ts", "plugins/nextcloud-talk/.crabpot-package/src/normalize.ts", - "plugins/nextcloud-talk/.crabpot-package/src/onboarding.ts", "plugins/nextcloud-talk/.crabpot-package/src/policy.ts", "plugins/nextcloud-talk/.crabpot-package/src/replay-guard.ts", "plugins/nextcloud-talk/.crabpot-package/src/room-info.ts", "plugins/nextcloud-talk/.crabpot-package/src/runtime.ts", + "plugins/nextcloud-talk/.crabpot-package/src/secret-contract.ts", "plugins/nextcloud-talk/.crabpot-package/src/secret-input.ts", + "plugins/nextcloud-talk/.crabpot-package/src/send.runtime.ts", "plugins/nextcloud-talk/.crabpot-package/src/send.ts", + "plugins/nextcloud-talk/.crabpot-package/src/session-route.ts", + "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts", + "plugins/nextcloud-talk/.crabpot-package/src/setup-surface.ts", "plugins/nextcloud-talk/.crabpot-package/src/signature.ts", "plugins/nextcloud-talk/.crabpot-package/src/types.ts" ], @@ -9456,21 +15460,31 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", + "channelEnvVars", "channels", "configSchema", "id" ], "contracts": [], "providerAuthEnvVars": {}, - "channelEnvVars": {}, - "activation": null + "channelEnvVars": { + "nextcloud-talk": [ + "NEXTCLOUD_TALK_BOT_SECRET", + "NEXTCLOUD_TALK_API_PASSWORD" + ] + }, + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/nextcloud-talk/.crabpot-package/package.json", "name": "@openclaw/nextcloud-talk", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -9483,24 +15497,30 @@ "dependencies": [ "zod" ], - "peerDependencies": [], + "peerDependencies": [ + "openclaw" + ], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/nextcloud-talk", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -9508,6 +15528,13 @@ "relativePath": "plugins/nextcloud-talk/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/nextcloud-talk/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -9516,7 +15543,7 @@ { "path": "plugins/nextcloud-talk/.crabpot-package/package.json", "name": "@openclaw/nextcloud-talk", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -9529,24 +15556,30 @@ "dependencies": [ "zod" ], - "peerDependencies": [], + "peerDependencies": [ + "openclaw" + ], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/nextcloud-talk", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -9554,6 +15587,13 @@ "relativePath": "plugins/nextcloud-talk/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/nextcloud-talk/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -9580,124 +15620,504 @@ } ], "sdkImports": [ - "openclaw/plugin-sdk/compat", - "openclaw/plugin-sdk/core", - "openclaw/plugin-sdk/nextcloud-talk" + "openclaw/plugin-sdk/account-core", + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-logging", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-plugin-common", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-setup", + "openclaw/plugin-sdk/channel-targets", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/inbound-reply-dispatch", + "openclaw/plugin-sdk/markdown-table-runtime", + "openclaw/plugin-sdk/persistent-dedupe", + "openclaw/plugin-sdk/plugin-config-runtime", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-file-runtime", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/setup-runtime", + "openclaw/plugin-sdk/setup-tools", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/zod" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts", - "line": 8, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts:8" - }, - { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/nextcloud-talk/.crabpot-package/src/runtime.ts", - "line": 1, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/runtime.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/core", - "file": "plugins/nextcloud-talk/.crabpot-package/src/accounts.ts", - "line": 1, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/accounts.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", - "file": "plugins/nextcloud-talk/.crabpot-package/index.ts", - "line": 1, - "ref": "plugins/nextcloud-talk/.crabpot-package/index.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", - "file": "plugins/nextcloud-talk/.crabpot-package/index.ts", - "line": 2, - "ref": "plugins/nextcloud-talk/.crabpot-package/index.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", + "specifier": "openclaw/plugin-sdk/account-core", "file": "plugins/nextcloud-talk/.crabpot-package/src/accounts.ts", "line": 7, "ref": "plugins/nextcloud-talk/.crabpot-package/src/accounts.ts:7" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", + "specifier": "openclaw/plugin-sdk/account-helpers", "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts", - "line": 22, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts:22" + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts:1" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts", + "line": 4, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 4, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.adapters.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.adapters.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/approval-auth-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/approval-auth.ts", + "line": 4, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/approval-auth.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.adapters.ts", + "line": 6, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.adapters.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-schema", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts", + "line": 5, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-schema", "file": "plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts", - "line": 10, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts:10" - }, - { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", - "file": "plugins/nextcloud-talk/.crabpot-package/src/inbound.ts", - "line": 17, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/inbound.ts:17" - }, - { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", - "file": "plugins/nextcloud-talk/.crabpot-package/src/monitor.ts", "line": 8, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/monitor.ts:8" + "ref": "plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts:8" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", - "file": "plugins/nextcloud-talk/.crabpot-package/src/onboarding.ts", - "line": 16, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/onboarding.ts:16" + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 5, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:5" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", - "file": "plugins/nextcloud-talk/.crabpot-package/src/policy.ts", - "line": 14, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/policy.ts:14" + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/nextcloud-talk/.crabpot-package/src/doctor.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/doctor.ts:1" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/nextcloud-talk/.crabpot-package/index.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/index.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/nextcloud-talk/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/setup-entry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-lifecycle", + "file": "plugins/nextcloud-talk/.crabpot-package/src/gateway.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/gateway.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-logging", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 6, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 7, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.adapters.ts", + "line": 7, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.adapters.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts", + "line": 3, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/channel-plugin-common", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-plugin-common", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts", + "line": 3, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 11, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts", + "line": 4, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-secret-basic-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/secret-contract.ts", + "line": 10, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/secret-contract.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/channel-secret-basic-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/secret-contract.ts", + "line": 8, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/secret-contract.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-setup", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-targets", "file": "plugins/nextcloud-talk/.crabpot-package/src/policy.ts", "line": 6, "ref": "plugins/nextcloud-talk/.crabpot-package/src/policy.ts:6" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", - "file": "plugins/nextcloud-talk/.crabpot-package/src/replay-guard.ts", - "line": 2, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/replay-guard.ts:2" + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 19, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:19" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel-api.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/nextcloud-talk/.crabpot-package/src/session-route.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/session-route.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", "file": "plugins/nextcloud-talk/.crabpot-package/src/room-info.ts", "line": 2, "ref": "plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:2" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", - "file": "plugins/nextcloud-talk/.crabpot-package/src/room-info.ts", - "line": 3, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:3" + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts", + "line": 9, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts:9" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/nextcloud-talk/.crabpot-package/src/gateway.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/gateway.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/nextcloud-talk/.crabpot-package/src/monitor-runtime.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/monitor-runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/nextcloud-talk/.crabpot-package/src/monitor.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/monitor.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/group-access", + "file": "plugins/nextcloud-talk/.crabpot-package/src/policy.ts", + "line": 7, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/policy.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/inbound-reply-dispatch", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 26, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:26" + }, + { + "specifier": "openclaw/plugin-sdk/markdown-table-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/send.runtime.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/send.runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/persistent-dedupe", + "file": "plugins/nextcloud-talk/.crabpot-package/src/replay-guard.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/replay-guard.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-config-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/send.runtime.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/send.runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 27, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:27" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 28, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:28" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/nextcloud-talk/.crabpot-package/src/session-route.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/session-route.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts", + "line": 3, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-surface.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-surface.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 30, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:30" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/monitor-runtime.ts", + "line": 3, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/monitor-runtime.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 25, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:25" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 29, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:29" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/nextcloud-talk/.crabpot-package/src/runtime.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", "file": "plugins/nextcloud-talk/.crabpot-package/src/runtime.ts", "line": 2, "ref": "plugins/nextcloud-talk/.crabpot-package/src/runtime.ts:2" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", - "file": "plugins/nextcloud-talk/.crabpot-package/src/secret-input.ts", - "line": 6, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/secret-input.ts:6" + "specifier": "openclaw/plugin-sdk/secret-file-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/accounts.ts", + "line": 8, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/accounts.ts:8" }, { - "specifier": "openclaw/plugin-sdk/nextcloud-talk", - "file": "plugins/nextcloud-talk/.crabpot-package/src/types.ts", + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 31, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:31" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/nextcloud-talk/.crabpot-package/src/secret-input.ts", + "line": 4, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/secret-input.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-surface.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-surface.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts", "line": 7, - "ref": "plugins/nextcloud-talk/.crabpot-package/src/types.ts:7" + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-surface.ts", + "line": 8, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-surface.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/setup-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts", + "line": 15, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/setup-tools", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts", + "line": 16, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts", + "line": 32, + "ref": "plugins/nextcloud-talk/.crabpot-package/runtime-api.ts:32" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/doctor-contract.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/doctor-contract.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/room-info.ts", + "line": 3, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/send.runtime.ts", + "line": 3, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/send.runtime.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts", + "line": 9, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/accounts.ts", + "line": 12, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/accounts.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/approval-auth.ts", + "line": 5, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/approval-auth.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/channel.adapters.ts", + "line": 8, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/channel.adapters.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/inbound.ts", + "line": 1, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/inbound.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/monitor-runtime.ts", + "line": 4, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/monitor-runtime.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/send.runtime.ts", + "line": 4, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/send.runtime.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts", + "line": 17, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-core.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/setup-surface.ts", + "line": 9, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/setup-surface.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/nextcloud-talk/.crabpot-package/src/signature.ts", + "line": 2, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/signature.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/nextcloud-talk/.crabpot-package/src/monitor.ts", + "line": 9, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/monitor.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts", + "line": 10, + "ref": "plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts:10" } ] }, @@ -9717,21 +16137,28 @@ "hooks": [], "hookDetails": [], "registrations": [ - "registerChannel", + "createChatChannelPlugin", + "defineBundledChannelEntry", "registerHttpRoute" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "createChatChannelPlugin", + "file": "plugins/nostr/.crabpot-package/src/channel.ts", + "line": 88, + "ref": "plugins/nostr/.crabpot-package/src/channel.ts:88" + }, + { + "name": "defineBundledChannelEntry", "file": "plugins/nostr/.crabpot-package/index.ts", - "line": 16, - "ref": "plugins/nostr/.crabpot-package/index.ts:16" + "line": 32, + "ref": "plugins/nostr/.crabpot-package/index.ts:32" }, { "name": "registerHttpRoute", "file": "plugins/nostr/.crabpot-package/index.ts", - "line": 64, - "ref": "plugins/nostr/.crabpot-package/index.ts:64" + "line": 89, + "ref": "plugins/nostr/.crabpot-package/index.ts:89" } ], "manifestContracts": [], @@ -9739,18 +16166,37 @@ "plugins/nostr/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/nostr/.crabpot-package/api.ts", + "plugins/nostr/.crabpot-package/channel-plugin-api.ts", "plugins/nostr/.crabpot-package/index.ts", + "plugins/nostr/.crabpot-package/runtime-api.ts", + "plugins/nostr/.crabpot-package/setup-api.ts", + "plugins/nostr/.crabpot-package/setup-entry.ts", + "plugins/nostr/.crabpot-package/setup-plugin-api.ts", + "plugins/nostr/.crabpot-package/src/channel-api.ts", + "plugins/nostr/.crabpot-package/src/channel.setup.ts", "plugins/nostr/.crabpot-package/src/channel.ts", "plugins/nostr/.crabpot-package/src/config-schema.ts", + "plugins/nostr/.crabpot-package/src/default-relays.ts", + "plugins/nostr/.crabpot-package/src/gateway.ts", + "plugins/nostr/.crabpot-package/src/inbound-direct-dm-runtime.ts", "plugins/nostr/.crabpot-package/src/metrics.ts", "plugins/nostr/.crabpot-package/src/nostr-bus.ts", + "plugins/nostr/.crabpot-package/src/nostr-key-utils.ts", + "plugins/nostr/.crabpot-package/src/nostr-profile-core.ts", + "plugins/nostr/.crabpot-package/src/nostr-profile-http-runtime.ts", "plugins/nostr/.crabpot-package/src/nostr-profile-http.ts", "plugins/nostr/.crabpot-package/src/nostr-profile-import.ts", + "plugins/nostr/.crabpot-package/src/nostr-profile-url-safety.ts", "plugins/nostr/.crabpot-package/src/nostr-profile.ts", "plugins/nostr/.crabpot-package/src/nostr-state-store.ts", "plugins/nostr/.crabpot-package/src/runtime.ts", "plugins/nostr/.crabpot-package/src/seen-tracker.ts", - "plugins/nostr/.crabpot-package/src/types.ts" + "plugins/nostr/.crabpot-package/src/session-route.ts", + "plugins/nostr/.crabpot-package/src/setup-surface.ts", + "plugins/nostr/.crabpot-package/src/test-fixtures.ts", + "plugins/nostr/.crabpot-package/src/types.ts", + "plugins/nostr/.crabpot-package/test-api.ts" ], "pluginManifests": [ { @@ -9759,21 +16205,30 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", + "channelEnvVars", "channels", "configSchema", "id" ], "contracts": [], "providerAuthEnvVars": {}, - "channelEnvVars": {}, - "activation": null + "channelEnvVars": { + "nostr": [ + "NOSTR_PRIVATE_KEY" + ] + }, + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/nostr/.crabpot-package/package.json", "name": "@openclaw/nostr", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -9787,24 +16242,30 @@ "nostr-tools", "zod" ], - "peerDependencies": [], + "peerDependencies": [ + "openclaw" + ], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/nostr", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -9812,6 +16273,13 @@ "relativePath": "plugins/nostr/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/nostr/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -9820,7 +16288,7 @@ { "path": "plugins/nostr/.crabpot-package/package.json", "name": "@openclaw/nostr", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -9834,24 +16302,30 @@ "nostr-tools", "zod" ], - "peerDependencies": [], + "peerDependencies": [ + "openclaw" + ], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/nostr", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -9859,6 +16333,13 @@ "relativePath": "plugins/nostr/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/nostr/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -9885,11 +16366,51 @@ } ], "sdkImports": [ + "openclaw/plugin-sdk/account-helpers", "openclaw/plugin-sdk/account-id", - "openclaw/plugin-sdk/compat", - "openclaw/plugin-sdk/nostr" + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-primitives", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-plugin-common", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/channel-setup", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/direct-dm", + "openclaw/plugin-sdk/direct-dm-access", + "openclaw/plugin-sdk/direct-dm-guard-policy", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/plugin-runtime", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/setup-runtime", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/webhook-request-guards", + "openclaw/plugin-sdk/zod" ], "sdkImportDetails": [ + { + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/nostr/.crabpot-package/src/channel.setup.ts", + "line": 1, + "ref": "plugins/nostr/.crabpot-package/src/channel.setup.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/nostr/.crabpot-package/src/channel.ts", + "line": 1, + "ref": "plugins/nostr/.crabpot-package/src/channel.ts:1" + }, { "specifier": "openclaw/plugin-sdk/account-id", "file": "plugins/nostr/.crabpot-package/src/types.ts", @@ -9897,58 +16418,256 @@ "ref": "plugins/nostr/.crabpot-package/src/types.ts:5" }, { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/nostr/.crabpot-package/src/config-schema.ts", - "line": 1, - "ref": "plugins/nostr/.crabpot-package/src/config-schema.ts:1" + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/nostr/.crabpot-package/src/types.ts", + "line": 9, + "ref": "plugins/nostr/.crabpot-package/src/types.ts:9" }, { - "specifier": "openclaw/plugin-sdk/compat", + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/nostr/.crabpot-package/src/channel.ts", + "line": 5, + "ref": "plugins/nostr/.crabpot-package/src/channel.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-primitives", + "file": "plugins/nostr/.crabpot-package/src/config-schema.ts", + "line": 5, + "ref": "plugins/nostr/.crabpot-package/src/config-schema.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/nostr/.crabpot-package/src/channel-api.ts", + "line": 7, + "ref": "plugins/nostr/.crabpot-package/src/channel-api.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/nostr/.crabpot-package/src/channel.ts", + "line": 6, + "ref": "plugins/nostr/.crabpot-package/src/channel.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/nostr/.crabpot-package/index.ts", + "line": 4, + "ref": "plugins/nostr/.crabpot-package/index.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/nostr/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/nostr/.crabpot-package/setup-entry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/nostr/.crabpot-package/src/gateway.ts", + "line": 1, + "ref": "plugins/nostr/.crabpot-package/src/gateway.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-plugin-common", + "file": "plugins/nostr/.crabpot-package/src/channel-api.ts", + "line": 6, + "ref": "plugins/nostr/.crabpot-package/src/channel-api.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-send-result", + "file": "plugins/nostr/.crabpot-package/src/gateway.ts", + "line": 2, + "ref": "plugins/nostr/.crabpot-package/src/gateway.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-setup", + "file": "plugins/nostr/.crabpot-package/src/setup-surface.ts", + "line": 1, + "ref": "plugins/nostr/.crabpot-package/src/setup-surface.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/nostr/.crabpot-package/runtime-api.ts", + "line": 4, + "ref": "plugins/nostr/.crabpot-package/runtime-api.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/nostr/.crabpot-package/src/channel.setup.ts", + "line": 2, + "ref": "plugins/nostr/.crabpot-package/src/channel.setup.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/nostr/.crabpot-package/src/gateway.ts", + "line": 3, + "ref": "plugins/nostr/.crabpot-package/src/gateway.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/nostr/.crabpot-package/src/types.ts", + "line": 10, + "ref": "plugins/nostr/.crabpot-package/src/types.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/core", "file": "plugins/nostr/.crabpot-package/src/runtime.ts", "line": 1, "ref": "plugins/nostr/.crabpot-package/src/runtime.ts:1" }, { - "specifier": "openclaw/plugin-sdk/nostr", - "file": "plugins/nostr/.crabpot-package/index.ts", + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/nostr/.crabpot-package/src/session-route.ts", + "line": 5, + "ref": "plugins/nostr/.crabpot-package/src/session-route.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/direct-dm", + "file": "plugins/nostr/.crabpot-package/src/inbound-direct-dm-runtime.ts", "line": 1, - "ref": "plugins/nostr/.crabpot-package/index.ts:1" + "ref": "plugins/nostr/.crabpot-package/src/inbound-direct-dm-runtime.ts:1" }, { - "specifier": "openclaw/plugin-sdk/nostr", - "file": "plugins/nostr/.crabpot-package/index.ts", - "line": 2, - "ref": "plugins/nostr/.crabpot-package/index.ts:2" + "specifier": "openclaw/plugin-sdk/direct-dm-access", + "file": "plugins/nostr/.crabpot-package/src/channel-api.ts", + "line": 15, + "ref": "plugins/nostr/.crabpot-package/src/channel-api.ts:15" }, { - "specifier": "openclaw/plugin-sdk/nostr", - "file": "plugins/nostr/.crabpot-package/src/channel.ts", + "specifier": "openclaw/plugin-sdk/direct-dm-guard-policy", + "file": "plugins/nostr/.crabpot-package/src/nostr-bus.ts", + "line": 6, + "ref": "plugins/nostr/.crabpot-package/src/nostr-bus.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/nostr/.crabpot-package/src/nostr-profile.ts", "line": 9, - "ref": "plugins/nostr/.crabpot-package/src/channel.ts:9" + "ref": "plugins/nostr/.crabpot-package/src/nostr-profile.ts:9" }, { - "specifier": "openclaw/plugin-sdk/nostr", - "file": "plugins/nostr/.crabpot-package/src/config-schema.ts", + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/nostr/.crabpot-package/src/channel.ts", + "line": 10, + "ref": "plugins/nostr/.crabpot-package/src/channel.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/nostr/.crabpot-package/src/nostr-state-store.ts", + "line": 5, + "ref": "plugins/nostr/.crabpot-package/src/nostr-state-store.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-runtime", + "file": "plugins/nostr/.crabpot-package/runtime-api.ts", + "line": 5, + "ref": "plugins/nostr/.crabpot-package/runtime-api.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/nostr/.crabpot-package/src/setup-surface.ts", "line": 2, - "ref": "plugins/nostr/.crabpot-package/src/config-schema.ts:2" + "ref": "plugins/nostr/.crabpot-package/src/setup-surface.ts:2" }, { - "specifier": "openclaw/plugin-sdk/nostr", - "file": "plugins/nostr/.crabpot-package/src/nostr-profile-http.ts", - "line": 16, - "ref": "plugins/nostr/.crabpot-package/src/nostr-profile-http.ts:16" + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/nostr/.crabpot-package/runtime-api.ts", + "line": 6, + "ref": "plugins/nostr/.crabpot-package/runtime-api.ts:6" }, { - "specifier": "openclaw/plugin-sdk/nostr", + "specifier": "openclaw/plugin-sdk/runtime-store", "file": "plugins/nostr/.crabpot-package/src/runtime.ts", "line": 2, "ref": "plugins/nostr/.crabpot-package/src/runtime.ts:2" }, { - "specifier": "openclaw/plugin-sdk/nostr", - "file": "plugins/nostr/.crabpot-package/src/types.ts", + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/nostr/.crabpot-package/src/config-schema.ts", "line": 6, - "ref": "plugins/nostr/.crabpot-package/src/types.ts:6" + "ref": "plugins/nostr/.crabpot-package/src/config-schema.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/nostr/.crabpot-package/src/setup-surface.ts", + "line": 6, + "ref": "plugins/nostr/.crabpot-package/src/setup-surface.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/nostr/.crabpot-package/src/types.ts", + "line": 11, + "ref": "plugins/nostr/.crabpot-package/src/types.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/nostr/.crabpot-package/src/channel.setup.ts", + "line": 3, + "ref": "plugins/nostr/.crabpot-package/src/channel.setup.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/nostr/.crabpot-package/src/setup-surface.ts", + "line": 17, + "ref": "plugins/nostr/.crabpot-package/src/setup-surface.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/nostr/.crabpot-package/src/setup-surface.ts", + "line": 7, + "ref": "plugins/nostr/.crabpot-package/src/setup-surface.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/setup-runtime", + "file": "plugins/nostr/.crabpot-package/src/channel.setup.ts", + "line": 9, + "ref": "plugins/nostr/.crabpot-package/src/channel.setup.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/nostr/.crabpot-package/src/nostr-profile-url-safety.ts", + "line": 1, + "ref": "plugins/nostr/.crabpot-package/src/nostr-profile-url-safety.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/nostr/.crabpot-package/src/channel-api.ts", + "line": 11, + "ref": "plugins/nostr/.crabpot-package/src/channel-api.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/nostr/.crabpot-package/src/channel.ts", + "line": 11, + "ref": "plugins/nostr/.crabpot-package/src/channel.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/nostr/.crabpot-package/src/types.ts", + "line": 12, + "ref": "plugins/nostr/.crabpot-package/src/types.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/nostr/.crabpot-package/src/nostr-profile-http-runtime.ts", + "line": 5, + "ref": "plugins/nostr/.crabpot-package/src/nostr-profile-http-runtime.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-request-guards", + "file": "plugins/nostr/.crabpot-package/src/nostr-profile-http-runtime.ts", + "line": 4, + "ref": "plugins/nostr/.crabpot-package/src/nostr-profile-http-runtime.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/nostr/.crabpot-package/src/config-schema.ts", + "line": 7, + "ref": "plugins/nostr/.crabpot-package/src/config-schema.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/nostr/.crabpot-package/src/nostr-profile-http.ts", + "line": 11, + "ref": "plugins/nostr/.crabpot-package/src/nostr-profile-http.ts:11" } ] }, @@ -9968,83 +16687,144 @@ "hooks": [], "hookDetails": [], "registrations": [ + "definePluginEntry", "registerCli", + "registerConfigMigration", "registerGatewayMethod", "registerService", "registerTool" ], "registrationDetails": [ + { + "name": "definePluginEntry", + "file": "plugins/voice-call/.crabpot-package/cli-metadata.ts", + "line": 3, + "ref": "plugins/voice-call/.crabpot-package/cli-metadata.ts:3" + }, + { + "name": "definePluginEntry", + "file": "plugins/voice-call/.crabpot-package/index.ts", + "line": 214, + "ref": "plugins/voice-call/.crabpot-package/index.ts:214" + }, + { + "name": "definePluginEntry", + "file": "plugins/voice-call/.crabpot-package/setup-api.ts", + "line": 40, + "ref": "plugins/voice-call/.crabpot-package/setup-api.ts:40" + }, + { + "name": "registerCli", + "file": "plugins/voice-call/.crabpot-package/cli-metadata.ts", + "line": 8, + "ref": "plugins/voice-call/.crabpot-package/cli-metadata.ts:8" + }, { "name": "registerCli", "file": "plugins/voice-call/.crabpot-package/index.ts", - "line": 521, - "ref": "plugins/voice-call/.crabpot-package/index.ts:521" + "line": 737, + "ref": "plugins/voice-call/.crabpot-package/index.ts:737" + }, + { + "name": "registerConfigMigration", + "file": "plugins/voice-call/.crabpot-package/setup-api.ts", + "line": 45, + "ref": "plugins/voice-call/.crabpot-package/setup-api.ts:45" }, { "name": "registerGatewayMethod", "file": "plugins/voice-call/.crabpot-package/index.ts", - "line": 261, - "ref": "plugins/voice-call/.crabpot-package/index.ts:261" + "line": 390, + "ref": "plugins/voice-call/.crabpot-package/index.ts:390" }, { "name": "registerGatewayMethod", "file": "plugins/voice-call/.crabpot-package/index.ts", - "line": 294, - "ref": "plugins/voice-call/.crabpot-package/index.ts:294" + "line": 420, + "ref": "plugins/voice-call/.crabpot-package/index.ts:420" }, { "name": "registerGatewayMethod", "file": "plugins/voice-call/.crabpot-package/index.ts", - "line": 311, - "ref": "plugins/voice-call/.crabpot-package/index.ts:311" + "line": 437, + "ref": "plugins/voice-call/.crabpot-package/index.ts:437" }, { "name": "registerGatewayMethod", "file": "plugins/voice-call/.crabpot-package/index.ts", - "line": 327, - "ref": "plugins/voice-call/.crabpot-package/index.ts:327" + "line": 457, + "ref": "plugins/voice-call/.crabpot-package/index.ts:457" }, { "name": "registerGatewayMethod", "file": "plugins/voice-call/.crabpot-package/index.ts", - "line": 349, - "ref": "plugins/voice-call/.crabpot-package/index.ts:349" + "line": 478, + "ref": "plugins/voice-call/.crabpot-package/index.ts:478" }, { "name": "registerGatewayMethod", "file": "plugins/voice-call/.crabpot-package/index.ts", - "line": 376, - "ref": "plugins/voice-call/.crabpot-package/index.ts:376" + "line": 513, + "ref": "plugins/voice-call/.crabpot-package/index.ts:513" + }, + { + "name": "registerGatewayMethod", + "file": "plugins/voice-call/.crabpot-package/index.ts", + "line": 536, + "ref": "plugins/voice-call/.crabpot-package/index.ts:536" + }, + { + "name": "registerGatewayMethod", + "file": "plugins/voice-call/.crabpot-package/index.ts", + "line": 558, + "ref": "plugins/voice-call/.crabpot-package/index.ts:558" + }, + { + "name": "registerGatewayMethod", + "file": "plugins/voice-call/.crabpot-package/index.ts", + "line": 581, + "ref": "plugins/voice-call/.crabpot-package/index.ts:581" }, { "name": "registerService", "file": "plugins/voice-call/.crabpot-package/index.ts", - "line": 532, - "ref": "plugins/voice-call/.crabpot-package/index.ts:532" + "line": 748, + "ref": "plugins/voice-call/.crabpot-package/index.ts:748" }, { "name": "registerTool", "file": "plugins/voice-call/.crabpot-package/index.ts", - "line": 399, - "ref": "plugins/voice-call/.crabpot-package/index.ts:399" + "line": 609, + "ref": "plugins/voice-call/.crabpot-package/index.ts:609" } ], - "manifestContracts": [], + "manifestContracts": [ + "tools" + ], "manifestFiles": [ "plugins/voice-call/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/voice-call/.crabpot-package/api.ts", + "plugins/voice-call/.crabpot-package/cli-metadata.ts", + "plugins/voice-call/.crabpot-package/config-api.ts", "plugins/voice-call/.crabpot-package/index.ts", + "plugins/voice-call/.crabpot-package/runtime-api.ts", + "plugins/voice-call/.crabpot-package/runtime-entry.ts", + "plugins/voice-call/.crabpot-package/setup-api.ts", "plugins/voice-call/.crabpot-package/src/allowlist.ts", "plugins/voice-call/.crabpot-package/src/cli.ts", + "plugins/voice-call/.crabpot-package/src/config-compat.ts", "plugins/voice-call/.crabpot-package/src/config.ts", "plugins/voice-call/.crabpot-package/src/core-bridge.ts", "plugins/voice-call/.crabpot-package/src/deep-merge.ts", + "plugins/voice-call/.crabpot-package/src/gateway-continue-operation.ts", "plugins/voice-call/.crabpot-package/src/http-headers.ts", "plugins/voice-call/.crabpot-package/src/manager.test-harness.ts", "plugins/voice-call/.crabpot-package/src/manager.ts", "plugins/voice-call/.crabpot-package/src/manager/context.ts", "plugins/voice-call/.crabpot-package/src/manager/events.ts", + "plugins/voice-call/.crabpot-package/src/manager/lifecycle.ts", "plugins/voice-call/.crabpot-package/src/manager/lookup.ts", "plugins/voice-call/.crabpot-package/src/manager/outbound.ts", "plugins/voice-call/.crabpot-package/src/manager/state.ts", @@ -10053,31 +16833,39 @@ "plugins/voice-call/.crabpot-package/src/manager/twiml.ts", "plugins/voice-call/.crabpot-package/src/media-stream.ts", "plugins/voice-call/.crabpot-package/src/providers/base.ts", - "plugins/voice-call/.crabpot-package/src/providers/index.ts", "plugins/voice-call/.crabpot-package/src/providers/mock.ts", "plugins/voice-call/.crabpot-package/src/providers/plivo.ts", "plugins/voice-call/.crabpot-package/src/providers/shared/call-status.ts", "plugins/voice-call/.crabpot-package/src/providers/shared/guarded-json-api.ts", - "plugins/voice-call/.crabpot-package/src/providers/stt-openai-realtime.ts", "plugins/voice-call/.crabpot-package/src/providers/telnyx.ts", - "plugins/voice-call/.crabpot-package/src/providers/tts-openai.ts", "plugins/voice-call/.crabpot-package/src/providers/twilio.ts", + "plugins/voice-call/.crabpot-package/src/providers/twilio.types.ts", "plugins/voice-call/.crabpot-package/src/providers/twilio/api.ts", "plugins/voice-call/.crabpot-package/src/providers/twilio/twiml-policy.ts", "plugins/voice-call/.crabpot-package/src/providers/twilio/webhook.ts", + "plugins/voice-call/.crabpot-package/src/realtime-defaults.ts", + "plugins/voice-call/.crabpot-package/src/realtime-fast-context.ts", + "plugins/voice-call/.crabpot-package/src/realtime-transcription.runtime.ts", + "plugins/voice-call/.crabpot-package/src/realtime-voice.runtime.ts", "plugins/voice-call/.crabpot-package/src/response-generator.ts", + "plugins/voice-call/.crabpot-package/src/response-model.ts", "plugins/voice-call/.crabpot-package/src/runtime.ts", "plugins/voice-call/.crabpot-package/src/telephony-audio.ts", "plugins/voice-call/.crabpot-package/src/telephony-tts.ts", "plugins/voice-call/.crabpot-package/src/test-fixtures.ts", + "plugins/voice-call/.crabpot-package/src/tts-provider-voice.ts", "plugins/voice-call/.crabpot-package/src/tunnel.ts", "plugins/voice-call/.crabpot-package/src/types.ts", "plugins/voice-call/.crabpot-package/src/utils.ts", "plugins/voice-call/.crabpot-package/src/voice-mapping.ts", + "plugins/voice-call/.crabpot-package/src/webhook-exposure.ts", "plugins/voice-call/.crabpot-package/src/webhook-security.ts", "plugins/voice-call/.crabpot-package/src/webhook.ts", + "plugins/voice-call/.crabpot-package/src/webhook.types.ts", + "plugins/voice-call/.crabpot-package/src/webhook/realtime-handler.ts", "plugins/voice-call/.crabpot-package/src/webhook/stale-call-reaper.ts", - "plugins/voice-call/.crabpot-package/src/webhook/tailscale.ts" + "plugins/voice-call/.crabpot-package/src/webhook/tailscale.ts", + "plugins/voice-call/.crabpot-package/src/websocket-test-support.ts" ], "pluginManifests": [ { @@ -10086,37 +16874,63 @@ "name": null, "version": null, "keys": [ + "activation", + "channelEnvVars", + "commandAliases", + "configContracts", "configSchema", + "contracts", "id", "uiHints" ], - "contracts": [], + "contracts": [ + "tools" + ], "providerAuthEnvVars": {}, - "channelEnvVars": {}, - "activation": null + "channelEnvVars": { + "voice-call": [ + "TELNYX_API_KEY", + "TELNYX_CONNECTION_ID", + "TELNYX_PUBLIC_KEY", + "TWILIO_ACCOUNT_SID", + "TWILIO_AUTH_TOKEN", + "TWILIO_FROM_NUMBER", + "PLIVO_AUTH_ID", + "PLIVO_AUTH_TOKEN", + "NGROK_AUTHTOKEN", + "NGROK_DOMAIN" + ] + }, + "activation": { + "onStartup": true, + "onCommands": [ + "voicecall" + ] + } } ], "securityManifests": [], "package": { "path": "plugins/voice-call/.crabpot-package/package.json", "name": "@openclaw/voice-call", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { - "advertised": false, + "advertised": true, "private": false, "filesMode": "implicit", "files": [], "invalidFileSpecs": [] }, "dependencies": [ - "@sinclair/typebox", "commander", - "ws", - "zod" + "typebox", + "ws" + ], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ @@ -10124,11 +16938,20 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, - "install": null, - "release": null, + "install": { + "clawhubSpec": null, + "npmSpec": "@openclaw/voice-call", + "defaultChoice": "npm", + "minHostVersion": ">=2026.4.10" + }, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -10144,23 +16967,24 @@ { "path": "plugins/voice-call/.crabpot-package/package.json", "name": "@openclaw/voice-call", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { - "advertised": false, + "advertised": true, "private": false, "filesMode": "implicit", "files": [], "invalidFileSpecs": [] }, "dependencies": [ - "@sinclair/typebox", "commander", - "ws", - "zod" + "typebox", + "ws" + ], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ @@ -10168,11 +16992,20 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, - "install": null, - "release": null, + "install": { + "clawhubSpec": null, + "npmSpec": "@openclaw/voice-call", + "defaultChoice": "npm", + "minHostVersion": ">=2026.4.10" + }, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -10206,44 +17039,393 @@ } ], "sdkImports": [ - "openclaw/plugin-sdk/voice-call" + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/gateway-runtime", + "openclaw/plugin-sdk/memory-host-search", + "openclaw/plugin-sdk/model-session-runtime", + "openclaw/plugin-sdk/plugin-entry", + "openclaw/plugin-sdk/provider-selection-runtime", + "openclaw/plugin-sdk/realtime-transcription", + "openclaw/plugin-sdk/realtime-voice", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/session-store-runtime", + "openclaw/plugin-sdk/speech", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/tts-runtime", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/webhook-request-guards", + "openclaw/plugin-sdk/zod" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk/voice-call", - "file": "plugins/voice-call/.crabpot-package/index.ts", - "line": 5, - "ref": "plugins/voice-call/.crabpot-package/index.ts:5" - }, - { - "specifier": "openclaw/plugin-sdk/voice-call", - "file": "plugins/voice-call/.crabpot-package/src/cli.ts", - "line": 5, - "ref": "plugins/voice-call/.crabpot-package/src/cli.ts:5" - }, - { - "specifier": "openclaw/plugin-sdk/voice-call", - "file": "plugins/voice-call/.crabpot-package/src/config.ts", - "line": 6, - "ref": "plugins/voice-call/.crabpot-package/src/config.ts:6" - }, - { - "specifier": "openclaw/plugin-sdk/voice-call", - "file": "plugins/voice-call/.crabpot-package/src/providers/shared/guarded-json-api.ts", + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/voice-call/.crabpot-package/src/realtime-fast-context.ts", "line": 1, - "ref": "plugins/voice-call/.crabpot-package/src/providers/shared/guarded-json-api.ts:1" + "ref": "plugins/voice-call/.crabpot-package/src/realtime-fast-context.ts:1" }, { - "specifier": "openclaw/plugin-sdk/voice-call", - "file": "plugins/voice-call/.crabpot-package/src/providers/tts-openai.ts", + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/voice-call/.crabpot-package/src/runtime.ts", "line": 1, - "ref": "plugins/voice-call/.crabpot-package/src/providers/tts-openai.ts:1" + "ref": "plugins/voice-call/.crabpot-package/src/runtime.ts:1" }, { - "specifier": "openclaw/plugin-sdk/voice-call", + "specifier": "openclaw/plugin-sdk/config-types", "file": "plugins/voice-call/.crabpot-package/src/webhook.ts", + "line": 3, + "ref": "plugins/voice-call/.crabpot-package/src/webhook.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/voice-call/.crabpot-package/index.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/index.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/voice-call/.crabpot-package/src/cli.ts", + "line": 6, + "ref": "plugins/voice-call/.crabpot-package/src/cli.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/voice-call/.crabpot-package/src/gateway-continue-operation.ts", + "line": 2, + "ref": "plugins/voice-call/.crabpot-package/src/gateway-continue-operation.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/voice-call/.crabpot-package/src/manager.ts", + "line": 4, + "ref": "plugins/voice-call/.crabpot-package/src/manager.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/voice-call/.crabpot-package/src/manager/events.ts", + "line": 2, + "ref": "plugins/voice-call/.crabpot-package/src/manager/events.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/voice-call/.crabpot-package/src/manager/outbound.ts", + "line": 2, + "ref": "plugins/voice-call/.crabpot-package/src/manager/outbound.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/voice-call/.crabpot-package/src/realtime-fast-context.ts", + "line": 2, + "ref": "plugins/voice-call/.crabpot-package/src/realtime-fast-context.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/voice-call/.crabpot-package/src/runtime.ts", + "line": 2, + "ref": "plugins/voice-call/.crabpot-package/src/runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/voice-call/.crabpot-package/src/webhook-security.ts", + "line": 2, + "ref": "plugins/voice-call/.crabpot-package/src/webhook-security.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/voice-call/.crabpot-package/src/webhook/realtime-handler.ts", + "line": 4, + "ref": "plugins/voice-call/.crabpot-package/src/webhook/realtime-handler.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/gateway-runtime", + "file": "plugins/voice-call/.crabpot-package/index.ts", + "line": 2, + "ref": "plugins/voice-call/.crabpot-package/index.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/gateway-runtime", + "file": "plugins/voice-call/.crabpot-package/runtime-api.ts", + "line": 6, + "ref": "plugins/voice-call/.crabpot-package/runtime-api.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/gateway-runtime", + "file": "plugins/voice-call/.crabpot-package/src/cli.ts", "line": 7, - "ref": "plugins/voice-call/.crabpot-package/src/webhook.ts:7" + "ref": "plugins/voice-call/.crabpot-package/src/cli.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/memory-host-search", + "file": "plugins/voice-call/.crabpot-package/src/realtime-fast-context.ts", + "line": 3, + "ref": "plugins/voice-call/.crabpot-package/src/realtime-fast-context.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/model-session-runtime", + "file": "plugins/voice-call/.crabpot-package/src/response-generator.ts", + "line": 7, + "ref": "plugins/voice-call/.crabpot-package/src/response-generator.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-entry", + "file": "plugins/voice-call/.crabpot-package/cli-metadata.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/cli-metadata.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-entry", + "file": "plugins/voice-call/.crabpot-package/runtime-api.ts", + "line": 4, + "ref": "plugins/voice-call/.crabpot-package/runtime-api.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-entry", + "file": "plugins/voice-call/.crabpot-package/runtime-api.ts", + "line": 5, + "ref": "plugins/voice-call/.crabpot-package/runtime-api.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-entry", + "file": "plugins/voice-call/.crabpot-package/setup-api.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/setup-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-entry", + "file": "plugins/voice-call/.crabpot-package/setup-api.ts", + "line": 2, + "ref": "plugins/voice-call/.crabpot-package/setup-api.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/provider-selection-runtime", + "file": "plugins/voice-call/.crabpot-package/src/webhook.ts", + "line": 4, + "ref": "plugins/voice-call/.crabpot-package/src/webhook.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/realtime-transcription", + "file": "plugins/voice-call/.crabpot-package/src/media-stream.ts", + "line": 16, + "ref": "plugins/voice-call/.crabpot-package/src/media-stream.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/realtime-transcription", + "file": "plugins/voice-call/.crabpot-package/src/realtime-transcription.runtime.ts", + "line": 4, + "ref": "plugins/voice-call/.crabpot-package/src/realtime-transcription.runtime.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/realtime-voice", + "file": "plugins/voice-call/.crabpot-package/src/config.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/src/config.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/realtime-voice", + "file": "plugins/voice-call/.crabpot-package/src/realtime-defaults.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/src/realtime-defaults.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/realtime-voice", + "file": "plugins/voice-call/.crabpot-package/src/realtime-fast-context.ts", + "line": 7, + "ref": "plugins/voice-call/.crabpot-package/src/realtime-fast-context.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/realtime-voice", + "file": "plugins/voice-call/.crabpot-package/src/realtime-voice.runtime.ts", + "line": 5, + "ref": "plugins/voice-call/.crabpot-package/src/realtime-voice.runtime.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/realtime-voice", + "file": "plugins/voice-call/.crabpot-package/src/runtime.ts", + "line": 10, + "ref": "plugins/voice-call/.crabpot-package/src/runtime.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/realtime-voice", + "file": "plugins/voice-call/.crabpot-package/src/telephony-audio.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/src/telephony-audio.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/realtime-voice", + "file": "plugins/voice-call/.crabpot-package/src/webhook/realtime-handler.ts", + "line": 12, + "ref": "plugins/voice-call/.crabpot-package/src/webhook/realtime-handler.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/voice-call/.crabpot-package/runtime-api.ts", + "line": 20, + "ref": "plugins/voice-call/.crabpot-package/runtime-api.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/voice-call/.crabpot-package/src/config.ts", + "line": 7, + "ref": "plugins/voice-call/.crabpot-package/src/config.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/voice-call/.crabpot-package/src/providers/twilio.ts", + "line": 3, + "ref": "plugins/voice-call/.crabpot-package/src/providers/twilio.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/voice-call/.crabpot-package/src/webhook-security.ts", + "line": 3, + "ref": "plugins/voice-call/.crabpot-package/src/webhook-security.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/session-store-runtime", + "file": "plugins/voice-call/.crabpot-package/runtime-api.ts", + "line": 13, + "ref": "plugins/voice-call/.crabpot-package/runtime-api.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/speech", + "file": "plugins/voice-call/.crabpot-package/src/telephony-tts.ts", + "line": 6, + "ref": "plugins/voice-call/.crabpot-package/src/telephony-tts.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/voice-call/.crabpot-package/runtime-api.ts", + "line": 12, + "ref": "plugins/voice-call/.crabpot-package/runtime-api.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/index.ts", + "line": 3, + "ref": "plugins/voice-call/.crabpot-package/index.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/setup-api.ts", + "line": 3, + "ref": "plugins/voice-call/.crabpot-package/setup-api.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/cli.ts", + "line": 8, + "ref": "plugins/voice-call/.crabpot-package/src/cli.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/config-compat.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/src/config-compat.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/http-headers.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/src/http-headers.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/manager.ts", + "line": 5, + "ref": "plugins/voice-call/.crabpot-package/src/manager.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/providers/mock.ts", + "line": 2, + "ref": "plugins/voice-call/.crabpot-package/src/providers/mock.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/providers/plivo.ts", + "line": 5, + "ref": "plugins/voice-call/.crabpot-package/src/providers/plivo.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/providers/shared/call-status.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/src/providers/shared/call-status.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/providers/twilio.ts", + "line": 4, + "ref": "plugins/voice-call/.crabpot-package/src/providers/twilio.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/providers/twilio/twiml-policy.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/src/providers/twilio/twiml-policy.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/response-generator.ts", + "line": 8, + "ref": "plugins/voice-call/.crabpot-package/src/response-generator.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/tts-provider-voice.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/src/tts-provider-voice.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/voice-mapping.ts", + "line": 4, + "ref": "plugins/voice-call/.crabpot-package/src/voice-mapping.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/webhook-security.ts", + "line": 4, + "ref": "plugins/voice-call/.crabpot-package/src/webhook-security.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/voice-call/.crabpot-package/src/webhook.ts", + "line": 5, + "ref": "plugins/voice-call/.crabpot-package/src/webhook.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/tts-runtime", + "file": "plugins/voice-call/.crabpot-package/runtime-api.ts", + "line": 19, + "ref": "plugins/voice-call/.crabpot-package/runtime-api.ts:19" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/voice-call/.crabpot-package/src/webhook.ts", + "line": 9, + "ref": "plugins/voice-call/.crabpot-package/src/webhook.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-request-guards", + "file": "plugins/voice-call/.crabpot-package/runtime-api.ts", + "line": 11, + "ref": "plugins/voice-call/.crabpot-package/runtime-api.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/voice-call/.crabpot-package/src/config.ts", + "line": 8, + "ref": "plugins/voice-call/.crabpot-package/src/config.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/voice-call/.crabpot-package/src/types.ts", + "line": 1, + "ref": "plugins/voice-call/.crabpot-package/src/types.ts:1" } ] }, @@ -10263,14 +17445,21 @@ "hooks": [], "hookDetails": [], "registrations": [ - "registerChannel" + "createChatChannelPlugin", + "defineBundledChannelEntry" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "createChatChannelPlugin", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 159, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:159" + }, + { + "name": "defineBundledChannelEntry", "file": "plugins/zalo/.crabpot-package/index.ts", - "line": 13, - "ref": "plugins/zalo/.crabpot-package/index.ts:13" + "line": 3, + "ref": "plugins/zalo/.crabpot-package/index.ts:3" } ], "manifestContracts": [], @@ -10278,24 +17467,45 @@ "plugins/zalo/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/zalo/.crabpot-package/api.ts", + "plugins/zalo/.crabpot-package/channel-plugin-api.ts", + "plugins/zalo/.crabpot-package/contract-api.ts", "plugins/zalo/.crabpot-package/index.ts", + "plugins/zalo/.crabpot-package/runtime-api.ts", + "plugins/zalo/.crabpot-package/secret-contract-api.ts", + "plugins/zalo/.crabpot-package/setup-api.ts", + "plugins/zalo/.crabpot-package/setup-entry.ts", "plugins/zalo/.crabpot-package/src/accounts.ts", + "plugins/zalo/.crabpot-package/src/actions.runtime.ts", "plugins/zalo/.crabpot-package/src/actions.ts", "plugins/zalo/.crabpot-package/src/api.ts", + "plugins/zalo/.crabpot-package/src/approval-auth.ts", + "plugins/zalo/.crabpot-package/src/channel.runtime.ts", "plugins/zalo/.crabpot-package/src/channel.ts", "plugins/zalo/.crabpot-package/src/config-schema.ts", "plugins/zalo/.crabpot-package/src/group-access.ts", "plugins/zalo/.crabpot-package/src/monitor.ts", + "plugins/zalo/.crabpot-package/src/monitor.types.ts", "plugins/zalo/.crabpot-package/src/monitor.webhook.ts", - "plugins/zalo/.crabpot-package/src/onboarding.ts", + "plugins/zalo/.crabpot-package/src/outbound-media.ts", "plugins/zalo/.crabpot-package/src/probe.ts", "plugins/zalo/.crabpot-package/src/proxy.ts", + "plugins/zalo/.crabpot-package/src/runtime-api.ts", + "plugins/zalo/.crabpot-package/src/runtime-support.ts", "plugins/zalo/.crabpot-package/src/runtime.ts", + "plugins/zalo/.crabpot-package/src/secret-contract.ts", "plugins/zalo/.crabpot-package/src/secret-input.ts", "plugins/zalo/.crabpot-package/src/send.ts", + "plugins/zalo/.crabpot-package/src/session-route.ts", + "plugins/zalo/.crabpot-package/src/setup-allow-from.ts", + "plugins/zalo/.crabpot-package/src/setup-core.ts", + "plugins/zalo/.crabpot-package/src/setup-surface.ts", "plugins/zalo/.crabpot-package/src/status-issues.ts", + "plugins/zalo/.crabpot-package/src/test-support/lifecycle-test-support.ts", + "plugins/zalo/.crabpot-package/src/test-support/monitor-mocks-test-support.ts", "plugins/zalo/.crabpot-package/src/token.ts", - "plugins/zalo/.crabpot-package/src/types.ts" + "plugins/zalo/.crabpot-package/src/types.ts", + "plugins/zalo/.crabpot-package/test-api.ts" ], "pluginManifests": [ { @@ -10304,21 +17514,31 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", + "channelEnvVars", "channels", "configSchema", "id" ], "contracts": [], "providerAuthEnvVars": {}, - "channelEnvVars": {}, - "activation": null + "channelEnvVars": { + "zalo": [ + "ZALO_BOT_TOKEN", + "ZALO_WEBHOOK_SECRET" + ] + }, + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/zalo/.crabpot-package/package.json", "name": "@openclaw/zalo", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -10329,27 +17549,32 @@ "invalidFileSpecs": [] }, "dependencies": [ - "undici", - "zod" + "undici" + ], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/zalo", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -10357,6 +17582,13 @@ "relativePath": "plugins/zalo/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/zalo/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -10365,7 +17597,7 @@ { "path": "plugins/zalo/.crabpot-package/package.json", "name": "@openclaw/zalo", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -10376,27 +17608,32 @@ "invalidFileSpecs": [] }, "dependencies": [ - "undici", - "zod" + "undici" + ], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/zalo", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -10404,6 +17641,13 @@ "relativePath": "plugins/zalo/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/zalo/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -10430,17 +17674,81 @@ } ], "sdkImports": [ + "openclaw/plugin-sdk/account-helpers", "openclaw/plugin-sdk/account-id", - "openclaw/plugin-sdk/compat", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/channel-actions", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-feedback", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/channel-status", + "openclaw/plugin-sdk/channel-test-helpers", + "openclaw/plugin-sdk/command-auth", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/conversation-runtime", "openclaw/plugin-sdk/core", - "openclaw/plugin-sdk/zalo" + "openclaw/plugin-sdk/directory-runtime", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/inbound-envelope", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/outbound-media", + "openclaw/plugin-sdk/persistent-dedupe", + "openclaw/plugin-sdk/plugin-test-runtime", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/reply-runtime", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/temp-path", + "openclaw/plugin-sdk/text-chunking", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/tool-send", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/zod" ], "sdkImportDetails": [ + { + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/zalo/.crabpot-package/src/accounts.ts", + "line": 4, + "ref": "plugins/zalo/.crabpot-package/src/accounts.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 1, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:1" + }, { "specifier": "openclaw/plugin-sdk/account-id", "file": "plugins/zalo/.crabpot-package/src/accounts.ts", - "line": 1, - "ref": "plugins/zalo/.crabpot-package/src/accounts.ts:1" + "line": 5, + "ref": "plugins/zalo/.crabpot-package/src/accounts.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 2, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:2" }, { "specifier": "openclaw/plugin-sdk/account-id", @@ -10449,166 +17757,586 @@ "ref": "plugins/zalo/.crabpot-package/src/token.ts:1" }, { - "specifier": "openclaw/plugin-sdk/compat", + "specifier": "openclaw/plugin-sdk/allow-from", "file": "plugins/zalo/.crabpot-package/src/channel.ts", - "line": 8, - "ref": "plugins/zalo/.crabpot-package/src/channel.ts:8" + "line": 3, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:3" }, { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/zalo/.crabpot-package/src/config-schema.ts", - "line": 6, - "ref": "plugins/zalo/.crabpot-package/src/config-schema.ts:6" - }, - { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/zalo/.crabpot-package/src/runtime.ts", - "line": 1, - "ref": "plugins/zalo/.crabpot-package/src/runtime.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/core", - "file": "plugins/zalo/.crabpot-package/src/token.ts", - "line": 2, - "ref": "plugins/zalo/.crabpot-package/src/token.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/index.ts", - "line": 1, - "ref": "plugins/zalo/.crabpot-package/index.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/index.ts", - "line": 2, - "ref": "plugins/zalo/.crabpot-package/index.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/accounts.ts", - "line": 2, - "ref": "plugins/zalo/.crabpot-package/src/accounts.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/actions.ts", - "line": 5, - "ref": "plugins/zalo/.crabpot-package/src/actions.ts:5" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/actions.ts", - "line": 6, - "ref": "plugins/zalo/.crabpot-package/src/actions.ts:6" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/channel.ts", - "line": 14, - "ref": "plugins/zalo/.crabpot-package/src/channel.ts:14" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/channel.ts", - "line": 34, - "ref": "plugins/zalo/.crabpot-package/src/channel.ts:34" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/config-schema.ts", - "line": 7, - "ref": "plugins/zalo/.crabpot-package/src/config-schema.ts:7" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", + "specifier": "openclaw/plugin-sdk/allow-from", "file": "plugins/zalo/.crabpot-package/src/group-access.ts", "line": 1, "ref": "plugins/zalo/.crabpot-package/src/group-access.ts:1" }, { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/group-access.ts", - "line": 6, - "ref": "plugins/zalo/.crabpot-package/src/group-access.ts:6" + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 52, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:52" }, { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/monitor.ts", - "line": 22, - "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:22" + "specifier": "openclaw/plugin-sdk/approval-auth-runtime", + "file": "plugins/zalo/.crabpot-package/src/approval-auth.ts", + "line": 4, + "ref": "plugins/zalo/.crabpot-package/src/approval-auth.ts:4" }, { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/monitor.ts", - "line": 6, - "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:6" + "specifier": "openclaw/plugin-sdk/channel-actions", + "file": "plugins/zalo/.crabpot-package/src/actions.ts", + "line": 1, + "ref": "plugins/zalo/.crabpot-package/src/actions.ts:1" }, { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/monitor.webhook.ts", - "line": 18, - "ref": "plugins/zalo/.crabpot-package/src/monitor.webhook.ts:18" + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 9, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:9" }, { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/monitor.webhook.ts", - "line": 3, - "ref": "plugins/zalo/.crabpot-package/src/monitor.webhook.ts:3" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/onboarding.ts", - "line": 18, - "ref": "plugins/zalo/.crabpot-package/src/onboarding.ts:18" - }, - { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/onboarding.ts", + "specifier": "openclaw/plugin-sdk/channel-config-schema", + "file": "plugins/zalo/.crabpot-package/src/config-schema.ts", "line": 7, - "ref": "plugins/zalo/.crabpot-package/src/onboarding.ts:7" + "ref": "plugins/zalo/.crabpot-package/src/config-schema.ts:7" }, { - "specifier": "openclaw/plugin-sdk/zalo", + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalo/.crabpot-package/src/actions.ts", + "line": 5, + "ref": "plugins/zalo/.crabpot-package/src/actions.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 10, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", "file": "plugins/zalo/.crabpot-package/src/probe.ts", "line": 1, "ref": "plugins/zalo/.crabpot-package/src/probe.ts:1" }, { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/runtime.ts", + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 11, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 4, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalo/.crabpot-package/src/status-issues.ts", + "line": 4, + "ref": "plugins/zalo/.crabpot-package/src/status-issues.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalo/.crabpot-package/src/token.ts", "line": 2, - "ref": "plugins/zalo/.crabpot-package/src/runtime.ts:2" + "ref": "plugins/zalo/.crabpot-package/src/token.ts:2" }, { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/secret-input.ts", + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 15, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/zalo/.crabpot-package/index.ts", + "line": 1, + "ref": "plugins/zalo/.crabpot-package/index.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/zalo/.crabpot-package/setup-api.ts", + "line": 1, + "ref": "plugins/zalo/.crabpot-package/setup-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/zalo/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/zalo/.crabpot-package/setup-entry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-feedback", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 2, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-feedback", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 62, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:62" + }, + { + "specifier": "openclaw/plugin-sdk/channel-lifecycle", + "file": "plugins/zalo/.crabpot-package/src/channel.runtime.ts", + "line": 1, + "ref": "plugins/zalo/.crabpot-package/src/channel.runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 3, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 60, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:60" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 20, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 4, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 61, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:61" + }, + { + "specifier": "openclaw/plugin-sdk/channel-secret-basic-runtime", + "file": "plugins/zalo/.crabpot-package/src/secret-contract.ts", + "line": 8, + "ref": "plugins/zalo/.crabpot-package/src/secret-contract.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-send-result", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 24, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:24" + }, + { + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 25, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:25" + }, + { + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 46, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:46" + }, + { + "specifier": "openclaw/plugin-sdk/channel-test-helpers", + "file": "plugins/zalo/.crabpot-package/src/test-support/monitor-mocks-test-support.ts", + "line": 1, + "ref": "plugins/zalo/.crabpot-package/src/test-support/monitor-mocks-test-support.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 8, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 71, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:71" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalo/.crabpot-package/src/accounts.ts", "line": 6, - "ref": "plugins/zalo/.crabpot-package/src/secret-input.ts:6" + "ref": "plugins/zalo/.crabpot-package/src/accounts.ts:6" }, { - "specifier": "openclaw/plugin-sdk/zalo", + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalo/.crabpot-package/src/actions.ts", + "line": 6, + "ref": "plugins/zalo/.crabpot-package/src/actions.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 26, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:26" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 9, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 2, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 3, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", "file": "plugins/zalo/.crabpot-package/src/send.ts", "line": 1, "ref": "plugins/zalo/.crabpot-package/src/send.ts:1" }, { - "specifier": "openclaw/plugin-sdk/zalo", - "file": "plugins/zalo/.crabpot-package/src/status-issues.ts", - "line": 1, - "ref": "plugins/zalo/.crabpot-package/src/status-issues.ts:1" + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 27, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:27" }, { - "specifier": "openclaw/plugin-sdk/zalo", + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 14, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 26, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:26" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalo/.crabpot-package/src/session-route.ts", + "line": 6, + "ref": "plugins/zalo/.crabpot-package/src/session-route.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/core", "file": "plugins/zalo/.crabpot-package/src/token.ts", "line": 3, "ref": "plugins/zalo/.crabpot-package/src/token.ts:3" }, { - "specifier": "openclaw/plugin-sdk/zalo", + "specifier": "openclaw/plugin-sdk/directory-runtime", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 28, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:28" + }, + { + "specifier": "openclaw/plugin-sdk/directory-runtime", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 29, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:29" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/zalo/.crabpot-package/src/send.ts", + "line": 2, + "ref": "plugins/zalo/.crabpot-package/src/send.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/zalo/.crabpot-package/src/status-issues.ts", + "line": 8, + "ref": "plugins/zalo/.crabpot-package/src/status-issues.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/group-access", + "file": "plugins/zalo/.crabpot-package/src/group-access.ts", + "line": 7, + "ref": "plugins/zalo/.crabpot-package/src/group-access.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/group-access", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 13, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/group-access", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 54, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:54" + }, + { + "specifier": "openclaw/plugin-sdk/inbound-envelope", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 10, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/inbound-envelope", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 72, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:72" + }, + { + "specifier": "openclaw/plugin-sdk/lazy-runtime", + "file": "plugins/zalo/.crabpot-package/src/actions.ts", + "line": 7, + "ref": "plugins/zalo/.crabpot-package/src/actions.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/lazy-runtime", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 30, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:30" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-media", + "file": "plugins/zalo/.crabpot-package/src/outbound-media.ts", + "line": 6, + "ref": "plugins/zalo/.crabpot-package/src/outbound-media.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/persistent-dedupe", + "file": "plugins/zalo/.crabpot-package/src/monitor.webhook.ts", + "line": 2, + "ref": "plugins/zalo/.crabpot-package/src/monitor.webhook.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-test-runtime", + "file": "plugins/zalo/.crabpot-package/src/test-support/monitor-mocks-test-support.ts", + "line": 6, + "ref": "plugins/zalo/.crabpot-package/src/test-support/monitor-mocks-test-support.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 34, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:34" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 11, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 15, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 16, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 67, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:67" + }, + { + "specifier": "openclaw/plugin-sdk/reply-runtime", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 1, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/zalo/.crabpot-package/src/token.ts", + "line": 4, + "ref": "plugins/zalo/.crabpot-package/src/token.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 15, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 73, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:73" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 16, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 20, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 55, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:55" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 59, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:59" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/zalo/.crabpot-package/src/runtime.ts", + "line": 1, + "ref": "plugins/zalo/.crabpot-package/src/runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 12, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 42, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:42" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/zalo/.crabpot-package/src/secret-input.ts", + "line": 5, + "ref": "plugins/zalo/.crabpot-package/src/secret-input.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", "file": "plugins/zalo/.crabpot-package/src/types.ts", "line": 1, "ref": "plugins/zalo/.crabpot-package/src/types.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/zalo/.crabpot-package/src/monitor.webhook.ts", + "line": 3, + "ref": "plugins/zalo/.crabpot-package/src/monitor.webhook.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 36, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:36" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 53, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:53" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/zalo/.crabpot-package/src/setup-allow-from.ts", + "line": 8, + "ref": "plugins/zalo/.crabpot-package/src/setup-allow-from.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/zalo/.crabpot-package/src/setup-core.ts", + "line": 10, + "ref": "plugins/zalo/.crabpot-package/src/setup-core.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/zalo/.crabpot-package/src/setup-surface.ts", + "line": 11, + "ref": "plugins/zalo/.crabpot-package/src/setup-surface.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/zalo/.crabpot-package/src/api.ts", + "line": 6, + "ref": "plugins/zalo/.crabpot-package/src/api.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 38, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:38" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 47, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:47" + }, + { + "specifier": "openclaw/plugin-sdk/temp-path", + "file": "plugins/zalo/.crabpot-package/src/outbound-media.ts", + "line": 7, + "ref": "plugins/zalo/.crabpot-package/src/outbound-media.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-chunking", + "file": "plugins/zalo/.crabpot-package/src/channel.ts", + "line": 39, + "ref": "plugins/zalo/.crabpot-package/src/channel.ts:39" + }, + { + "specifier": "openclaw/plugin-sdk/text-chunking", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 48, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:48" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/zalo/.crabpot-package/src/accounts.ts", + "line": 7, + "ref": "plugins/zalo/.crabpot-package/src/accounts.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/zalo/.crabpot-package/src/session-route.ts", + "line": 7, + "ref": "plugins/zalo/.crabpot-package/src/session-route.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/tool-send", + "file": "plugins/zalo/.crabpot-package/src/actions.ts", + "line": 8, + "ref": "plugins/zalo/.crabpot-package/src/actions.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/zalo/.crabpot-package/src/monitor.ts", + "line": 21, + "ref": "plugins/zalo/.crabpot-package/src/monitor.ts:21" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/zalo/.crabpot-package/src/outbound-media.ts", + "line": 8, + "ref": "plugins/zalo/.crabpot-package/src/outbound-media.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 87, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:87" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/zalo/.crabpot-package/src/runtime-support.ts", + "line": 91, + "ref": "plugins/zalo/.crabpot-package/src/runtime-support.ts:91" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/zalo/.crabpot-package/src/config-schema.ts", + "line": 8, + "ref": "plugins/zalo/.crabpot-package/src/config-schema.ts:8" } ] }, @@ -10628,50 +18356,83 @@ "hooks": [], "hookDetails": [], "registrations": [ - "registerChannel", + "createChatChannelPlugin", + "defineBundledChannelEntry", "registerTool" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "createChatChannelPlugin", + "file": "plugins/zalouser/.crabpot-package/src/channel.ts", + "line": 68, + "ref": "plugins/zalouser/.crabpot-package/src/channel.ts:68" + }, + { + "name": "defineBundledChannelEntry", "file": "plugins/zalouser/.crabpot-package/index.ts", - "line": 14, - "ref": "plugins/zalouser/.crabpot-package/index.ts:14" + "line": 18, + "ref": "plugins/zalouser/.crabpot-package/index.ts:18" }, { "name": "registerTool", "file": "plugins/zalouser/.crabpot-package/index.ts", - "line": 16, - "ref": "plugins/zalouser/.crabpot-package/index.ts:16" + "line": 32, + "ref": "plugins/zalouser/.crabpot-package/index.ts:32" } ], - "manifestContracts": [], + "manifestContracts": [ + "tools" + ], "manifestFiles": [ "plugins/zalouser/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/zalouser/.crabpot-package/api.ts", + "plugins/zalouser/.crabpot-package/channel-plugin-api.ts", + "plugins/zalouser/.crabpot-package/contract-api.ts", + "plugins/zalouser/.crabpot-package/doctor-contract-api.ts", "plugins/zalouser/.crabpot-package/index.ts", + "plugins/zalouser/.crabpot-package/runtime-api.ts", + "plugins/zalouser/.crabpot-package/secret-contract-api.ts", + "plugins/zalouser/.crabpot-package/setup-entry.ts", + "plugins/zalouser/.crabpot-package/setup-plugin-api.ts", + "plugins/zalouser/.crabpot-package/src/accounts.runtime.ts", "plugins/zalouser/.crabpot-package/src/accounts.test-mocks.ts", "plugins/zalouser/.crabpot-package/src/accounts.ts", + "plugins/zalouser/.crabpot-package/src/channel-api.ts", + "plugins/zalouser/.crabpot-package/src/channel.adapters.ts", + "plugins/zalouser/.crabpot-package/src/channel.runtime.ts", + "plugins/zalouser/.crabpot-package/src/channel.setup.ts", "plugins/zalouser/.crabpot-package/src/channel.ts", "plugins/zalouser/.crabpot-package/src/config-schema.ts", + "plugins/zalouser/.crabpot-package/src/directory.ts", + "plugins/zalouser/.crabpot-package/src/doctor-contract.ts", + "plugins/zalouser/.crabpot-package/src/doctor.ts", "plugins/zalouser/.crabpot-package/src/group-policy.ts", "plugins/zalouser/.crabpot-package/src/message-sid.ts", "plugins/zalouser/.crabpot-package/src/monitor.send-mocks.ts", "plugins/zalouser/.crabpot-package/src/monitor.ts", - "plugins/zalouser/.crabpot-package/src/onboarding.ts", "plugins/zalouser/.crabpot-package/src/probe.ts", "plugins/zalouser/.crabpot-package/src/qr-temp-file.ts", "plugins/zalouser/.crabpot-package/src/reaction.ts", "plugins/zalouser/.crabpot-package/src/runtime.ts", + "plugins/zalouser/.crabpot-package/src/security-audit.ts", "plugins/zalouser/.crabpot-package/src/send.ts", + "plugins/zalouser/.crabpot-package/src/session-route.ts", + "plugins/zalouser/.crabpot-package/src/setup-core.ts", + "plugins/zalouser/.crabpot-package/src/setup-surface.ts", + "plugins/zalouser/.crabpot-package/src/setup-test-helpers.ts", + "plugins/zalouser/.crabpot-package/src/shared.ts", "plugins/zalouser/.crabpot-package/src/status-issues.ts", "plugins/zalouser/.crabpot-package/src/test-helpers.ts", "plugins/zalouser/.crabpot-package/src/text-styles.ts", "plugins/zalouser/.crabpot-package/src/tool.ts", "plugins/zalouser/.crabpot-package/src/types.ts", + "plugins/zalouser/.crabpot-package/src/zalo-js.test-mocks.ts", "plugins/zalouser/.crabpot-package/src/zalo-js.ts", - "plugins/zalouser/.crabpot-package/src/zca-client.ts" + "plugins/zalouser/.crabpot-package/src/zca-client.ts", + "plugins/zalouser/.crabpot-package/src/zca-constants.ts", + "plugins/zalouser/.crabpot-package/test-api.ts" ], "pluginManifests": [ { @@ -10680,21 +18441,34 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", + "channelEnvVars", "channels", "configSchema", + "contracts", "id" ], - "contracts": [], + "contracts": [ + "tools" + ], "providerAuthEnvVars": {}, - "channelEnvVars": {}, - "activation": null + "channelEnvVars": { + "zalouser": [ + "ZALOUSER_PROFILE", + "ZCA_PROFILE" + ] + }, + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/zalouser/.crabpot-package/package.json", "name": "@openclaw/zalouser", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -10705,28 +18479,33 @@ "invalidFileSpecs": [] }, "dependencies": [ - "@sinclair/typebox", - "zca-js", - "zod" + "typebox", + "zca-js" + ], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/zalouser", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -10734,6 +18513,13 @@ "relativePath": "plugins/zalouser/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/zalouser/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -10742,7 +18528,7 @@ { "path": "plugins/zalouser/.crabpot-package/package.json", "name": "@openclaw/zalouser", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -10753,28 +18539,33 @@ "invalidFileSpecs": [] }, "dependencies": [ - "@sinclair/typebox", - "zca-js", - "zod" + "typebox", + "zca-js" + ], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/zalouser", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -10782,6 +18573,13 @@ "relativePath": "plugins/zalouser/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/zalouser/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -10808,136 +18606,580 @@ } ], "sdkImports": [ - "openclaw/plugin-sdk/account-id", - "openclaw/plugin-sdk/compat", - "openclaw/plugin-sdk/zalouser" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-inbound", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/command-auth", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/conversation-runtime", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/dangerous-name-runtime", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/outbound-media", + "openclaw/plugin-sdk/reply-history", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/reply-runtime", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/setup-runtime", + "openclaw/plugin-sdk/state-paths", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/temp-path", + "openclaw/plugin-sdk/text-chunking", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/zod" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk/account-id", - "file": "plugins/zalouser/.crabpot-package/src/accounts.ts", + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/zalouser/.crabpot-package/src/shared.ts", "line": 1, - "ref": "plugins/zalouser/.crabpot-package/src/accounts.ts:1" + "ref": "plugins/zalouser/.crabpot-package/src/shared.ts:1" }, { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/zalouser/.crabpot-package/src/channel.ts", + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/zalouser/.crabpot-package/src/accounts.ts", + "line": 6, + "ref": "plugins/zalouser/.crabpot-package/src/accounts.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 49, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:49" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/zalouser/.crabpot-package/src/channel-api.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/channel-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/allow-from", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/zalouser/.crabpot-package/src/setup-test-helpers.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/setup-test-helpers.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", + "file": "plugins/zalouser/.crabpot-package/src/shared.ts", "line": 5, - "ref": "plugins/zalouser/.crabpot-package/src/channel.ts:5" + "ref": "plugins/zalouser/.crabpot-package/src/shared.ts:5" }, { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/zalouser/.crabpot-package/src/config-schema.ts", - "line": 6, - "ref": "plugins/zalouser/.crabpot-package/src/config-schema.ts:6" - }, - { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", - "line": 10, - "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:10" - }, - { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/zalouser/.crabpot-package/src/runtime.ts", - "line": 1, - "ref": "plugins/zalouser/.crabpot-package/src/runtime.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/index.ts", - "line": 1, - "ref": "plugins/zalouser/.crabpot-package/index.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/index.ts", - "line": 2, - "ref": "plugins/zalouser/.crabpot-package/index.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/accounts.ts", - "line": 2, - "ref": "plugins/zalouser/.crabpot-package/src/accounts.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/channel.ts", - "line": 15, - "ref": "plugins/zalouser/.crabpot-package/src/channel.ts:15" - }, - { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/channel.ts", - "line": 31, - "ref": "plugins/zalouser/.crabpot-package/src/channel.ts:31" - }, - { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/config-schema.ts", + "specifier": "openclaw/plugin-sdk/channel-config-schema", + "file": "plugins/zalouser/.crabpot-package/src/channel-api.ts", "line": 7, - "ref": "plugins/zalouser/.crabpot-package/src/config-schema.ts:7" + "ref": "plugins/zalouser/.crabpot-package/src/channel-api.ts:7" }, { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", - "line": 16, - "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:16" + "specifier": "openclaw/plugin-sdk/channel-config-schema", + "file": "plugins/zalouser/.crabpot-package/src/config-schema.ts", + "line": 8, + "ref": "plugins/zalouser/.crabpot-package/src/config-schema.ts:8" }, { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", - "line": 33, - "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:33" + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 20, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:20" }, { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/onboarding.ts", - "line": 16, - "ref": "plugins/zalouser/.crabpot-package/src/onboarding.ts:16" - }, - { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/onboarding.ts", + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalouser/.crabpot-package/src/channel-api.ts", "line": 6, - "ref": "plugins/zalouser/.crabpot-package/src/onboarding.ts:6" + "ref": "plugins/zalouser/.crabpot-package/src/channel-api.ts:6" }, { - "specifier": "openclaw/plugin-sdk/zalouser", + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalouser/.crabpot-package/src/doctor-contract.ts", + "line": 4, + "ref": "plugins/zalouser/.crabpot-package/src/doctor-contract.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalouser/.crabpot-package/src/doctor.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/doctor.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", "file": "plugins/zalouser/.crabpot-package/src/probe.ts", "line": 1, "ref": "plugins/zalouser/.crabpot-package/src/probe.ts:1" }, { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/qr-temp-file.ts", - "line": 3, - "ref": "plugins/zalouser/.crabpot-package/src/qr-temp-file.ts:3" + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/zalouser/.crabpot-package/src/status-issues.ts", + "line": 4, + "ref": "plugins/zalouser/.crabpot-package/src/status-issues.ts:4" }, { - "specifier": "openclaw/plugin-sdk/zalouser", + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/zalouser/.crabpot-package/src/channel.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/channel.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/zalouser/.crabpot-package/index.ts", + "line": 5, + "ref": "plugins/zalouser/.crabpot-package/index.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/zalouser/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/setup-entry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 50, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:50" + }, + { + "specifier": "openclaw/plugin-sdk/channel-inbound", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 5, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-lifecycle", + "file": "plugins/zalouser/.crabpot-package/src/channel.ts", + "line": 2, + "ref": "plugins/zalouser/.crabpot-package/src/channel.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 51, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:51" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts", + "line": 2, + "ref": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 6, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/zalouser/.crabpot-package/src/doctor.ts", + "line": 2, + "ref": "plugins/zalouser/.crabpot-package/src/doctor.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 10, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 52, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:52" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 11, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/channel-send-result", + "file": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts", + "line": 6, + "ref": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 54, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:54" + }, + { + "specifier": "openclaw/plugin-sdk/command-auth", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 12, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 25, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:25" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalouser/.crabpot-package/src/accounts.ts", + "line": 7, + "ref": "plugins/zalouser/.crabpot-package/src/accounts.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalouser/.crabpot-package/src/channel-api.ts", + "line": 15, + "ref": "plugins/zalouser/.crabpot-package/src/channel-api.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalouser/.crabpot-package/src/doctor-contract.ts", + "line": 5, + "ref": "plugins/zalouser/.crabpot-package/src/doctor-contract.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 13, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts", + "line": 7, + "ref": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 31, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:31" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 37, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:37" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalouser/.crabpot-package/src/channel-api.ts", + "line": 13, + "ref": "plugins/zalouser/.crabpot-package/src/channel-api.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalouser/.crabpot-package/src/channel-api.ts", + "line": 8, + "ref": "plugins/zalouser/.crabpot-package/src/channel-api.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 14, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalouser/.crabpot-package/src/runtime.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalouser/.crabpot-package/src/session-route.ts", + "line": 4, + "ref": "plugins/zalouser/.crabpot-package/src/session-route.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/zalouser/.crabpot-package/src/tool.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/tool.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 39, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:39" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/zalouser/.crabpot-package/src/channel-api.ts", + "line": 14, + "ref": "plugins/zalouser/.crabpot-package/src/channel-api.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 15, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/zalouser/.crabpot-package/src/security-audit.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/security-audit.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/zalouser/.crabpot-package/src/probe.ts", + "line": 2, + "ref": "plugins/zalouser/.crabpot-package/src/probe.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/zalouser/.crabpot-package/src/tool.ts", + "line": 2, + "ref": "plugins/zalouser/.crabpot-package/src/tool.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/zalouser/.crabpot-package/src/channel.ts", + "line": 3, + "ref": "plugins/zalouser/.crabpot-package/src/channel.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 16, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/zalouser/.crabpot-package/src/status-issues.ts", + "line": 8, + "ref": "plugins/zalouser/.crabpot-package/src/status-issues.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/group-access", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 58, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:58" + }, + { + "specifier": "openclaw/plugin-sdk/group-access", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 20, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/lazy-runtime", + "file": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts", + "line": 8, + "ref": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/lazy-runtime", + "file": "plugins/zalouser/.crabpot-package/src/channel.ts", + "line": 4, + "ref": "plugins/zalouser/.crabpot-package/src/channel.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-media", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 59, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:59" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-media", + "file": "plugins/zalouser/.crabpot-package/src/zalo-js.ts", + "line": 5, + "ref": "plugins/zalouser/.crabpot-package/src/zalo-js.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 27, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:27" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 66, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:66" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/zalouser/.crabpot-package/src/channel-api.ts", + "line": 20, + "ref": "plugins/zalouser/.crabpot-package/src/channel-api.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 32, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:32" + }, + { + "specifier": "openclaw/plugin-sdk/reply-runtime", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 12, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 32, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:32" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 33, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:33" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts", + "line": 9, + "ref": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 44, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:44" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 38, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:38" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", "file": "plugins/zalouser/.crabpot-package/src/runtime.ts", "line": 2, "ref": "plugins/zalouser/.crabpot-package/src/runtime.ts:2" }, { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/status-issues.ts", - "line": 1, - "ref": "plugins/zalouser/.crabpot-package/src/status-issues.ts:1" + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/zalouser/.crabpot-package/src/setup-surface.ts", + "line": 14, + "ref": "plugins/zalouser/.crabpot-package/src/setup-surface.ts:14" }, { - "specifier": "openclaw/plugin-sdk/zalouser", - "file": "plugins/zalouser/.crabpot-package/src/test-helpers.ts", - "line": 1, - "ref": "plugins/zalouser/.crabpot-package/src/test-helpers.ts:1" + "specifier": "openclaw/plugin-sdk/setup-runtime", + "file": "plugins/zalouser/.crabpot-package/src/setup-core.ts", + "line": 5, + "ref": "plugins/zalouser/.crabpot-package/src/setup-core.ts:5" }, { - "specifier": "openclaw/plugin-sdk/zalouser", + "specifier": "openclaw/plugin-sdk/state-paths", "file": "plugins/zalouser/.crabpot-package/src/zalo-js.ts", "line": 6, "ref": "plugins/zalouser/.crabpot-package/src/zalo-js.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 53, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:53" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/zalouser/.crabpot-package/src/channel.ts", + "line": 8, + "ref": "plugins/zalouser/.crabpot-package/src/channel.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/temp-path", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 67, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:67" + }, + { + "specifier": "openclaw/plugin-sdk/temp-path", + "file": "plugins/zalouser/.crabpot-package/src/qr-temp-file.ts", + "line": 3, + "ref": "plugins/zalouser/.crabpot-package/src/qr-temp-file.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/text-chunking", + "file": "plugins/zalouser/.crabpot-package/runtime-api.ts", + "line": 38, + "ref": "plugins/zalouser/.crabpot-package/runtime-api.ts:38" + }, + { + "specifier": "openclaw/plugin-sdk/text-chunking", + "file": "plugins/zalouser/.crabpot-package/src/channel-api.ts", + "line": 16, + "ref": "plugins/zalouser/.crabpot-package/src/channel-api.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/zalouser/.crabpot-package/src/accounts.ts", + "line": 8, + "ref": "plugins/zalouser/.crabpot-package/src/accounts.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts", + "line": 10, + "ref": "plugins/zalouser/.crabpot-package/src/channel.adapters.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/zalouser/.crabpot-package/src/group-policy.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/group-policy.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/zalouser/.crabpot-package/src/monitor.ts", + "line": 42, + "ref": "plugins/zalouser/.crabpot-package/src/monitor.ts:42" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/zalouser/.crabpot-package/src/reaction.ts", + "line": 1, + "ref": "plugins/zalouser/.crabpot-package/src/reaction.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/zalouser/.crabpot-package/src/session-route.ts", + "line": 8, + "ref": "plugins/zalouser/.crabpot-package/src/session-route.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/zalouser/.crabpot-package/src/zalo-js.ts", + "line": 11, + "ref": "plugins/zalouser/.crabpot-package/src/zalo-js.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/zalouser/.crabpot-package/src/config-schema.ts", + "line": 9, + "ref": "plugins/zalouser/.crabpot-package/src/config-schema.ts:9" } ] }, @@ -10954,116 +19196,220 @@ ], "why": "Official Feishu/Lark channel package covering subagent routing hooks, account auth, tool contracts, and npm artifact packaging.", "status": "ok", - "hooks": [], - "hookDetails": [], + "hooks": [ + "subagent_delivery_target", + "subagent_ended", + "subagent_spawning" + ], + "hookDetails": [ + { + "name": "subagent_delivery_target", + "file": "plugins/feishu/.crabpot-package/subagent-hooks-api.ts", + "line": 17, + "ref": "plugins/feishu/.crabpot-package/subagent-hooks-api.ts:17" + }, + { + "name": "subagent_ended", + "file": "plugins/feishu/.crabpot-package/subagent-hooks-api.ts", + "line": 21, + "ref": "plugins/feishu/.crabpot-package/subagent-hooks-api.ts:21" + }, + { + "name": "subagent_spawning", + "file": "plugins/feishu/.crabpot-package/subagent-hooks-api.ts", + "line": 13, + "ref": "plugins/feishu/.crabpot-package/subagent-hooks-api.ts:13" + } + ], "registrations": [ - "registerChannel", + "createChatChannelPlugin", + "defineBundledChannelEntry", "registerTool" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "createChatChannelPlugin", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 580, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:580" + }, + { + "name": "defineBundledChannelEntry", + "file": "plugins/feishu/.crabpot-package/channel-entry.ts", + "line": 3, + "ref": "plugins/feishu/.crabpot-package/channel-entry.ts:3" + }, + { + "name": "defineBundledChannelEntry", "file": "plugins/feishu/.crabpot-package/index.ts", - "line": 55, - "ref": "plugins/feishu/.crabpot-package/index.ts:55" + "line": 56, + "ref": "plugins/feishu/.crabpot-package/index.ts:56" }, { "name": "registerTool", "file": "plugins/feishu/.crabpot-package/src/bitable.ts", - "line": 559, - "ref": "plugins/feishu/.crabpot-package/src/bitable.ts:559" + "line": 598, + "ref": "plugins/feishu/.crabpot-package/src/bitable.ts:598" }, { "name": "registerTool", "file": "plugins/feishu/.crabpot-package/src/chat.ts", - "line": 95, - "ref": "plugins/feishu/.crabpot-package/src/chat.ts:95" + "line": 142, + "ref": "plugins/feishu/.crabpot-package/src/chat.ts:142" }, { "name": "registerTool", "file": "plugins/feishu/.crabpot-package/src/docx.ts", - "line": 1262, - "ref": "plugins/feishu/.crabpot-package/src/docx.ts:1262" + "line": 1418, + "ref": "plugins/feishu/.crabpot-package/src/docx.ts:1418" }, { "name": "registerTool", "file": "plugins/feishu/.crabpot-package/src/docx.ts", - "line": 1436, - "ref": "plugins/feishu/.crabpot-package/src/docx.ts:1436" + "line": 1596, + "ref": "plugins/feishu/.crabpot-package/src/docx.ts:1596" }, { "name": "registerTool", "file": "plugins/feishu/.crabpot-package/src/drive.ts", - "line": 186, - "ref": "plugins/feishu/.crabpot-package/src/drive.ts:186" + "line": 751, + "ref": "plugins/feishu/.crabpot-package/src/drive.ts:751" }, { "name": "registerTool", "file": "plugins/feishu/.crabpot-package/src/perm.ts", - "line": 135, - "ref": "plugins/feishu/.crabpot-package/src/perm.ts:135" + "line": 132, + "ref": "plugins/feishu/.crabpot-package/src/perm.ts:132" }, { "name": "registerTool", "file": "plugins/feishu/.crabpot-package/src/wiki.ts", - "line": 174, - "ref": "plugins/feishu/.crabpot-package/src/wiki.ts:174" + "line": 171, + "ref": "plugins/feishu/.crabpot-package/src/wiki.ts:171" } ], - "manifestContracts": [], + "manifestContracts": [ + "tools" + ], "manifestFiles": [ "plugins/feishu/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/feishu/.crabpot-package/api.ts", + "plugins/feishu/.crabpot-package/channel-entry.ts", + "plugins/feishu/.crabpot-package/channel-plugin-api.ts", + "plugins/feishu/.crabpot-package/contract-api.ts", "plugins/feishu/.crabpot-package/index.ts", + "plugins/feishu/.crabpot-package/runtime-api.ts", + "plugins/feishu/.crabpot-package/secret-contract-api.ts", + "plugins/feishu/.crabpot-package/security-contract-api.ts", + "plugins/feishu/.crabpot-package/session-key-api.ts", + "plugins/feishu/.crabpot-package/setup-api.ts", + "plugins/feishu/.crabpot-package/setup-entry.ts", "plugins/feishu/.crabpot-package/src/accounts.ts", + "plugins/feishu/.crabpot-package/src/app-registration.ts", + "plugins/feishu/.crabpot-package/src/approval-auth.ts", "plugins/feishu/.crabpot-package/src/async.ts", + "plugins/feishu/.crabpot-package/src/audio-preflight.runtime.ts", "plugins/feishu/.crabpot-package/src/bitable.ts", + "plugins/feishu/.crabpot-package/src/bot-content.ts", + "plugins/feishu/.crabpot-package/src/bot-runtime-api.ts", + "plugins/feishu/.crabpot-package/src/bot-sender-name.ts", "plugins/feishu/.crabpot-package/src/bot.ts", "plugins/feishu/.crabpot-package/src/card-action.ts", + "plugins/feishu/.crabpot-package/src/card-interaction.ts", + "plugins/feishu/.crabpot-package/src/card-test-helpers.ts", + "plugins/feishu/.crabpot-package/src/card-ux-approval.ts", + "plugins/feishu/.crabpot-package/src/card-ux-launcher.ts", + "plugins/feishu/.crabpot-package/src/card-ux-shared.ts", + "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts", + "plugins/feishu/.crabpot-package/src/channel.runtime.ts", "plugins/feishu/.crabpot-package/src/channel.ts", "plugins/feishu/.crabpot-package/src/chat-schema.ts", "plugins/feishu/.crabpot-package/src/chat.ts", "plugins/feishu/.crabpot-package/src/client.ts", + "plugins/feishu/.crabpot-package/src/comment-dispatcher-runtime-api.ts", + "plugins/feishu/.crabpot-package/src/comment-dispatcher.ts", + "plugins/feishu/.crabpot-package/src/comment-handler-runtime-api.ts", + "plugins/feishu/.crabpot-package/src/comment-handler.ts", + "plugins/feishu/.crabpot-package/src/comment-reaction.ts", + "plugins/feishu/.crabpot-package/src/comment-shared.ts", + "plugins/feishu/.crabpot-package/src/comment-target.ts", "plugins/feishu/.crabpot-package/src/config-schema.ts", + "plugins/feishu/.crabpot-package/src/conversation-id.ts", + "plugins/feishu/.crabpot-package/src/dedup-runtime-api.ts", "plugins/feishu/.crabpot-package/src/dedup.ts", + "plugins/feishu/.crabpot-package/src/directory.static.ts", "plugins/feishu/.crabpot-package/src/directory.ts", "plugins/feishu/.crabpot-package/src/doc-schema.ts", "plugins/feishu/.crabpot-package/src/docx-batch-insert.ts", "plugins/feishu/.crabpot-package/src/docx-color-text.ts", "plugins/feishu/.crabpot-package/src/docx-table-ops.ts", + "plugins/feishu/.crabpot-package/src/docx-types.ts", "plugins/feishu/.crabpot-package/src/docx.ts", "plugins/feishu/.crabpot-package/src/drive-schema.ts", "plugins/feishu/.crabpot-package/src/drive.ts", "plugins/feishu/.crabpot-package/src/dynamic-agent.ts", + "plugins/feishu/.crabpot-package/src/event-types.ts", "plugins/feishu/.crabpot-package/src/external-keys.ts", - "plugins/feishu/.crabpot-package/src/feishu-command-handler.ts", + "plugins/feishu/.crabpot-package/src/lifecycle.test-support.ts", "plugins/feishu/.crabpot-package/src/media.ts", + "plugins/feishu/.crabpot-package/src/mention-target.types.ts", "plugins/feishu/.crabpot-package/src/mention.ts", + "plugins/feishu/.crabpot-package/src/message-action-contract.ts", + "plugins/feishu/.crabpot-package/src/monitor-state-runtime-api.ts", + "plugins/feishu/.crabpot-package/src/monitor-transport-runtime-api.ts", "plugins/feishu/.crabpot-package/src/monitor.account.ts", + "plugins/feishu/.crabpot-package/src/monitor.acp-init-failure.lifecycle.test-support.ts", + "plugins/feishu/.crabpot-package/src/monitor.bot-identity.ts", + "plugins/feishu/.crabpot-package/src/monitor.bot-menu-handler.ts", + "plugins/feishu/.crabpot-package/src/monitor.bot-menu.lifecycle.test-support.ts", + "plugins/feishu/.crabpot-package/src/monitor.broadcast.reply-once.lifecycle.test-support.ts", + "plugins/feishu/.crabpot-package/src/monitor.card-action.lifecycle.test-support.ts", + "plugins/feishu/.crabpot-package/src/monitor.comment-notice-handler.ts", + "plugins/feishu/.crabpot-package/src/monitor.comment.ts", + "plugins/feishu/.crabpot-package/src/monitor.message-handler.ts", + "plugins/feishu/.crabpot-package/src/monitor.reaction.lifecycle.test-support.ts", "plugins/feishu/.crabpot-package/src/monitor.startup.ts", "plugins/feishu/.crabpot-package/src/monitor.state.ts", + "plugins/feishu/.crabpot-package/src/monitor.synthetic-error.ts", "plugins/feishu/.crabpot-package/src/monitor.test-mocks.ts", "plugins/feishu/.crabpot-package/src/monitor.transport.ts", "plugins/feishu/.crabpot-package/src/monitor.ts", "plugins/feishu/.crabpot-package/src/monitor.webhook.test-helpers.ts", - "plugins/feishu/.crabpot-package/src/onboarding.ts", + "plugins/feishu/.crabpot-package/src/outbound-runtime-api.ts", "plugins/feishu/.crabpot-package/src/outbound.ts", "plugins/feishu/.crabpot-package/src/perm-schema.ts", "plugins/feishu/.crabpot-package/src/perm.ts", + "plugins/feishu/.crabpot-package/src/pins.ts", "plugins/feishu/.crabpot-package/src/policy.ts", "plugins/feishu/.crabpot-package/src/post.ts", "plugins/feishu/.crabpot-package/src/probe.ts", + "plugins/feishu/.crabpot-package/src/processing-claims.ts", + "plugins/feishu/.crabpot-package/src/qr-terminal.ts", "plugins/feishu/.crabpot-package/src/reactions.ts", + "plugins/feishu/.crabpot-package/src/reasoning-preview.ts", + "plugins/feishu/.crabpot-package/src/reply-dispatcher-runtime-api.ts", "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts", "plugins/feishu/.crabpot-package/src/runtime.ts", + "plugins/feishu/.crabpot-package/src/secret-contract.ts", "plugins/feishu/.crabpot-package/src/secret-input.ts", - "plugins/feishu/.crabpot-package/src/send-message.ts", + "plugins/feishu/.crabpot-package/src/security-audit-shared.ts", + "plugins/feishu/.crabpot-package/src/security-audit.ts", "plugins/feishu/.crabpot-package/src/send-result.ts", "plugins/feishu/.crabpot-package/src/send-target.ts", "plugins/feishu/.crabpot-package/src/send.ts", + "plugins/feishu/.crabpot-package/src/sequential-key.ts", + "plugins/feishu/.crabpot-package/src/sequential-queue.ts", + "plugins/feishu/.crabpot-package/src/session-conversation.ts", + "plugins/feishu/.crabpot-package/src/session-route.ts", + "plugins/feishu/.crabpot-package/src/setup-core.ts", + "plugins/feishu/.crabpot-package/src/setup-surface.ts", "plugins/feishu/.crabpot-package/src/streaming-card.ts", + "plugins/feishu/.crabpot-package/src/subagent-hooks.ts", "plugins/feishu/.crabpot-package/src/targets.ts", + "plugins/feishu/.crabpot-package/src/test-support/lifecycle-test-support.ts", + "plugins/feishu/.crabpot-package/src/thread-bindings.ts", "plugins/feishu/.crabpot-package/src/tool-account.ts", "plugins/feishu/.crabpot-package/src/tool-factory-test-harness.ts", "plugins/feishu/.crabpot-package/src/tool-result.ts", @@ -11071,7 +19417,8 @@ "plugins/feishu/.crabpot-package/src/types.ts", "plugins/feishu/.crabpot-package/src/typing.ts", "plugins/feishu/.crabpot-package/src/wiki-schema.ts", - "plugins/feishu/.crabpot-package/src/wiki.ts" + "plugins/feishu/.crabpot-package/src/wiki.ts", + "plugins/feishu/.crabpot-package/subagent-hooks-api.ts" ], "pluginManifests": [ { @@ -11080,22 +19427,38 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", + "channelEnvVars", "channels", "configSchema", + "contracts", "id", - "skills" + "skills", + "toolMetadata" + ], + "contracts": [ + "tools" ], - "contracts": [], "providerAuthEnvVars": {}, - "channelEnvVars": {}, - "activation": null + "channelEnvVars": { + "feishu": [ + "FEISHU_APP_ID", + "FEISHU_APP_SECRET", + "FEISHU_VERIFICATION_TOKEN", + "FEISHU_ENCRYPT_KEY" + ] + }, + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/feishu/.crabpot-package/package.json", "name": "@openclaw/feishu", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -11107,28 +19470,32 @@ }, "dependencies": [ "@larksuiteoapi/node-sdk", - "@sinclair/typebox", - "https-proxy-agent", - "zod" + "typebox" + ], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/feishu", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.25" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -11136,6 +19503,13 @@ "relativePath": "plugins/feishu/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/feishu/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -11144,7 +19518,7 @@ { "path": "plugins/feishu/.crabpot-package/package.json", "name": "@openclaw/feishu", - "version": "2026.3.13", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -11156,28 +19530,32 @@ }, "dependencies": [ "@larksuiteoapi/node-sdk", - "@sinclair/typebox", - "https-proxy-agent", - "zod" + "typebox" + ], + "peerDependencies": [ + "openclaw" ], - "peerDependencies": [], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/feishu", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.25" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -11185,6 +19563,13 @@ "relativePath": "plugins/feishu/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/feishu/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -11211,16 +19596,72 @@ } ], "sdkImports": [ + "openclaw/plugin-sdk/account-helpers", "openclaw/plugin-sdk/account-id", - "openclaw/plugin-sdk/compat", - "openclaw/plugin-sdk/feishu" + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/agent-media-payload", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/channel-actions", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-primitives", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-feedback", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/channel-status", + "openclaw/plugin-sdk/channel-test-helpers", + "openclaw/plugin-sdk/command-primitives-runtime", + "openclaw/plugin-sdk/config-mutation", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/context-visibility-runtime", + "openclaw/plugin-sdk/conversation-runtime", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/directory-runtime", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/interactive-runtime", + "openclaw/plugin-sdk/json-store", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/markdown-table-runtime", + "openclaw/plugin-sdk/media-mime", + "openclaw/plugin-sdk/media-runtime", + "openclaw/plugin-sdk/outbound-runtime", + "openclaw/plugin-sdk/persistent-dedupe", + "openclaw/plugin-sdk/plugin-test-runtime", + "openclaw/plugin-sdk/provider-auth", + "openclaw/plugin-sdk/reply-history", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/session-store-runtime", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/setup-runtime", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/temp-path", + "openclaw/plugin-sdk/text-chunking", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/webhook-request-guards", + "openclaw/plugin-sdk/zod" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk/account-id", - "file": "plugins/feishu/.crabpot-package/src/accounts.ts", + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/accounts.ts:1" + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:1" }, { "specifier": "openclaw/plugin-sdk/account-id", @@ -11229,262 +19670,808 @@ "ref": "plugins/feishu/.crabpot-package/src/config-schema.ts:1" }, { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/feishu/.crabpot-package/src/channel.ts", - "line": 5, - "ref": "plugins/feishu/.crabpot-package/src/channel.ts:5" - }, - { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/feishu/.crabpot-package/src/directory.ts", - "line": 4, - "ref": "plugins/feishu/.crabpot-package/src/directory.ts:4" - }, - { - "specifier": "openclaw/plugin-sdk/compat", - "file": "plugins/feishu/.crabpot-package/src/runtime.ts", - "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/runtime.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/index.ts", - "line": 1, - "ref": "plugins/feishu/.crabpot-package/index.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/index.ts", - "line": 2, - "ref": "plugins/feishu/.crabpot-package/index.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", + "specifier": "openclaw/plugin-sdk/account-resolution", "file": "plugins/feishu/.crabpot-package/src/accounts.ts", - "line": 2, - "ref": "plugins/feishu/.crabpot-package/src/accounts.ts:2" + "line": 8, + "ref": "plugins/feishu/.crabpot-package/src/accounts.ts:8" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/bitable.ts", - "line": 3, - "ref": "plugins/feishu/.crabpot-package/src/bitable.ts:3" + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts", + "line": 8, + "ref": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts:8" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/bot.ts", - "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/bot.ts:1" + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/feishu/.crabpot-package/src/policy.ts", + "line": 4, + "ref": "plugins/feishu/.crabpot-package/src/policy.ts:4" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/bot.ts", - "line": 15, - "ref": "plugins/feishu/.crabpot-package/src/bot.ts:15" + "specifier": "openclaw/plugin-sdk/agent-media-payload", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 34, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:34" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/card-action.ts", - "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/card-action.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", + "specifier": "openclaw/plugin-sdk/allow-from", "file": "plugins/feishu/.crabpot-package/src/channel.ts", - "line": 13, - "ref": "plugins/feishu/.crabpot-package/src/channel.ts:13" + "line": 2, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:2" }, { - "specifier": "openclaw/plugin-sdk/feishu", + "specifier": "openclaw/plugin-sdk/approval-auth-runtime", + "file": "plugins/feishu/.crabpot-package/src/approval-auth.ts", + "line": 4, + "ref": "plugins/feishu/.crabpot-package/src/approval-auth.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-actions", + "file": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts", + "line": 9, + "ref": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", "file": "plugins/feishu/.crabpot-package/src/channel.ts", "line": 6, "ref": "plugins/feishu/.crabpot-package/src/channel.ts:6" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/chat.ts", - "line": 2, - "ref": "plugins/feishu/.crabpot-package/src/chat.ts:2" + "specifier": "openclaw/plugin-sdk/channel-config-primitives", + "file": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts", + "line": 10, + "ref": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts:10" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/dedup.ts", - "line": 7, - "ref": "plugins/feishu/.crabpot-package/src/dedup.ts:7" + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 10, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:10" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/directory.ts", + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/feishu/.crabpot-package/src/message-action-contract.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/message-action-contract.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 11, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/feishu/.crabpot-package/src/session-route.ts", "line": 5, - "ref": "plugins/feishu/.crabpot-package/src/directory.ts:5" + "ref": "plugins/feishu/.crabpot-package/src/session-route.ts:5" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/docx.ts", - "line": 7, - "ref": "plugins/feishu/.crabpot-package/src/docx.ts:7" + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/feishu/.crabpot-package/channel-entry.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/channel-entry.ts:1" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/drive.ts", + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/feishu/.crabpot-package/index.ts", + "line": 4, + "ref": "plugins/feishu/.crabpot-package/index.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/feishu/.crabpot-package/index.ts", + "line": 5, + "ref": "plugins/feishu/.crabpot-package/index.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/feishu/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/setup-entry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/feishu/.crabpot-package/subagent-hooks-api.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/subagent-hooks-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-feedback", + "file": "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 35, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:35" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/feishu/.crabpot-package/src/bot.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/bot.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 12, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/feishu/.crabpot-package/src/comment-handler-runtime-api.ts", + "line": 3, + "ref": "plugins/feishu/.crabpot-package/src/comment-handler-runtime-api.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 16, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 36, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:36" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts", "line": 2, - "ref": "plugins/feishu/.crabpot-package/src/drive.ts:2" + "ref": "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts:2" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/dynamic-agent.ts", - "line": 4, - "ref": "plugins/feishu/.crabpot-package/src/dynamic-agent.ts:4" + "specifier": "openclaw/plugin-sdk/channel-secret-basic-runtime", + "file": "plugins/feishu/.crabpot-package/src/secret-contract.ts", + "line": 10, + "ref": "plugins/feishu/.crabpot-package/src/secret-contract.ts:10" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/media.ts", - "line": 4, - "ref": "plugins/feishu/.crabpot-package/src/media.ts:4" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/monitor.account.ts", - "line": 3, - "ref": "plugins/feishu/.crabpot-package/src/monitor.account.ts:3" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/monitor.startup.ts", - "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/monitor.startup.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/monitor.state.ts", - "line": 9, - "ref": "plugins/feishu/.crabpot-package/src/monitor.state.ts:9" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/monitor.transport.ts", - "line": 9, - "ref": "plugins/feishu/.crabpot-package/src/monitor.transport.ts:9" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/monitor.ts", - "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/monitor.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/monitor.webhook.test-helpers.ts", - "line": 3, - "ref": "plugins/feishu/.crabpot-package/src/monitor.webhook.test-helpers.ts:3" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/onboarding.ts", - "line": 20, - "ref": "plugins/feishu/.crabpot-package/src/onboarding.ts:20" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/onboarding.ts", - "line": 8, - "ref": "plugins/feishu/.crabpot-package/src/onboarding.ts:8" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", + "specifier": "openclaw/plugin-sdk/channel-send-result", "file": "plugins/feishu/.crabpot-package/src/outbound.ts", - "line": 3, - "ref": "plugins/feishu/.crabpot-package/src/outbound.ts:3" + "line": 6, + "ref": "plugins/feishu/.crabpot-package/src/outbound.ts:6" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/perm.ts", + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 33, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:33" + }, + { + "specifier": "openclaw/plugin-sdk/channel-status", + "file": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts", + "line": 15, + "ref": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/channel-test-helpers", + "file": "plugins/feishu/.crabpot-package/src/test-support/lifecycle-test-support.ts", "line": 2, - "ref": "plugins/feishu/.crabpot-package/src/perm.ts:2" + "ref": "plugins/feishu/.crabpot-package/src/test-support/lifecycle-test-support.ts:2" }, { - "specifier": "openclaw/plugin-sdk/feishu", + "specifier": "openclaw/plugin-sdk/command-primitives-runtime", + "file": "plugins/feishu/.crabpot-package/src/sequential-key.ts", + "line": 4, + "ref": "plugins/feishu/.crabpot-package/src/sequential-key.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/config-mutation", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 1143, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:1143" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 22, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:22" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/feishu/.crabpot-package/src/comment-handler-runtime-api.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/comment-handler-runtime-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/feishu/.crabpot-package/src/thread-bindings.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/thread-bindings.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/context-visibility-runtime", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 41, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:41" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/feishu/.crabpot-package/src/bot.ts", + "line": 6, + "ref": "plugins/feishu/.crabpot-package/src/bot.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 17, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/feishu/.crabpot-package/src/lifecycle.test-support.ts", + "line": 168, + "ref": "plugins/feishu/.crabpot-package/src/lifecycle.test-support.ts:168" + }, + { + "specifier": "openclaw/plugin-sdk/conversation-runtime", + "file": "plugins/feishu/.crabpot-package/src/thread-bindings.ts", + "line": 11, + "ref": "plugins/feishu/.crabpot-package/src/thread-bindings.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 19, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:19" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 20, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 28, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:28" + }, + { + "specifier": "openclaw/plugin-sdk/core", "file": "plugins/feishu/.crabpot-package/src/policy.ts", "line": 5, "ref": "plugins/feishu/.crabpot-package/src/policy.ts:5" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/policy.ts", - "line": 6, - "ref": "plugins/feishu/.crabpot-package/src/policy.ts:6" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/reactions.ts", - "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/reactions.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts", - "line": 8, - "ref": "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts:8" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", + "specifier": "openclaw/plugin-sdk/core", "file": "plugins/feishu/.crabpot-package/src/runtime.ts", - "line": 2, - "ref": "plugins/feishu/.crabpot-package/src/runtime.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/secret-input.ts", - "line": 6, - "ref": "plugins/feishu/.crabpot-package/src/secret-input.ts:6" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/send-target.ts", "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/send-target.ts:1" + "ref": "plugins/feishu/.crabpot-package/src/runtime.ts:1" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/send.ts", - "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/send.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/streaming-card.ts", - "line": 6, - "ref": "plugins/feishu/.crabpot-package/src/streaming-card.ts:6" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/tool-account.ts", - "line": 2, - "ref": "plugins/feishu/.crabpot-package/src/tool-account.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/tool-factory-test-harness.ts", - "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/tool-factory-test-harness.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk/feishu", + "specifier": "openclaw/plugin-sdk/core", "file": "plugins/feishu/.crabpot-package/src/types.ts", "line": 1, "ref": "plugins/feishu/.crabpot-package/src/types.ts:1" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/typing.ts", - "line": 1, - "ref": "plugins/feishu/.crabpot-package/src/typing.ts:1" + "specifier": "openclaw/plugin-sdk/directory-runtime", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 21, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:21" }, { - "specifier": "openclaw/plugin-sdk/feishu", - "file": "plugins/feishu/.crabpot-package/src/wiki.ts", + "specifier": "openclaw/plugin-sdk/directory-runtime", + "file": "plugins/feishu/.crabpot-package/src/directory.static.ts", + "line": 4, + "ref": "plugins/feishu/.crabpot-package/src/directory.static.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/feishu/.crabpot-package/src/bitable.ts", "line": 2, - "ref": "plugins/feishu/.crabpot-package/src/wiki.ts:2" + "ref": "plugins/feishu/.crabpot-package/src/bitable.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/feishu/.crabpot-package/src/docx.ts", + "line": 6, + "ref": "plugins/feishu/.crabpot-package/src/docx.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/feishu/.crabpot-package/src/drive.ts", + "line": 2, + "ref": "plugins/feishu/.crabpot-package/src/drive.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/feishu/.crabpot-package/src/monitor.comment.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/monitor.comment.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/feishu/.crabpot-package/src/probe.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/probe.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/feishu/.crabpot-package/src/tool-result.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/tool-result.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/feishu/.crabpot-package/src/client.ts", + "line": 7, + "ref": "plugins/feishu/.crabpot-package/src/client.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/group-access", + "file": "plugins/feishu/.crabpot-package/src/policy.ts", + "line": 6, + "ref": "plugins/feishu/.crabpot-package/src/policy.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/interactive-runtime", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 25, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:25" + }, + { + "specifier": "openclaw/plugin-sdk/interactive-runtime", + "file": "plugins/feishu/.crabpot-package/src/outbound.ts", + "line": 15, + "ref": "plugins/feishu/.crabpot-package/src/outbound.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/json-store", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 46, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:46" + }, + { + "specifier": "openclaw/plugin-sdk/lazy-runtime", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 26, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:26" + }, + { + "specifier": "openclaw/plugin-sdk/markdown-table-runtime", + "file": "plugins/feishu/.crabpot-package/src/send.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/send.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/media-mime", + "file": "plugins/feishu/.crabpot-package/src/media.ts", + "line": 5, + "ref": "plugins/feishu/.crabpot-package/src/media.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/feishu/.crabpot-package/src/audio-preflight.runtime.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/audio-preflight.runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/feishu/.crabpot-package/src/audio-preflight.runtime.ts", + "line": 3, + "ref": "plugins/feishu/.crabpot-package/src/audio-preflight.runtime.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/feishu/.crabpot-package/src/media.ts", + "line": 6, + "ref": "plugins/feishu/.crabpot-package/src/media.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/feishu/.crabpot-package/src/qr-terminal.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/qr-terminal.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-runtime", + "file": "plugins/feishu/.crabpot-package/src/bot.ts", + "line": 7, + "ref": "plugins/feishu/.crabpot-package/src/bot.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/outbound-runtime", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 27, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:27" + }, + { + "specifier": "openclaw/plugin-sdk/persistent-dedupe", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 47, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:47" + }, + { + "specifier": "openclaw/plugin-sdk/persistent-dedupe", + "file": "plugins/feishu/.crabpot-package/src/dedup-runtime-api.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/dedup-runtime-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-test-runtime", + "file": "plugins/feishu/.crabpot-package/src/monitor.acp-init-failure.lifecycle.test-support.ts", + "line": 2, + "ref": "plugins/feishu/.crabpot-package/src/monitor.acp-init-failure.lifecycle.test-support.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-test-runtime", + "file": "plugins/feishu/.crabpot-package/src/monitor.bot-menu.lifecycle.test-support.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/monitor.bot-menu.lifecycle.test-support.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-test-runtime", + "file": "plugins/feishu/.crabpot-package/src/monitor.broadcast.reply-once.lifecycle.test-support.ts", + "line": 2, + "ref": "plugins/feishu/.crabpot-package/src/monitor.broadcast.reply-once.lifecycle.test-support.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-test-runtime", + "file": "plugins/feishu/.crabpot-package/src/monitor.card-action.lifecycle.test-support.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/monitor.card-action.lifecycle.test-support.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/provider-auth", + "file": "plugins/feishu/.crabpot-package/src/accounts.ts", + "line": 9, + "ref": "plugins/feishu/.crabpot-package/src/accounts.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/reply-history", + "file": "plugins/feishu/.crabpot-package/src/bot.ts", + "line": 14, + "ref": "plugins/feishu/.crabpot-package/src/bot.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/feishu/.crabpot-package/src/comment-dispatcher.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/comment-dispatcher.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/feishu/.crabpot-package/src/outbound.ts", + "line": 20, + "ref": "plugins/feishu/.crabpot-package/src/outbound.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/reply-payload", + "file": "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts", + "line": 7, + "ref": "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 48, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:48" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/feishu/.crabpot-package/src/comment-handler.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/comment-handler.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/feishu/.crabpot-package/src/thread-bindings.ts", + "line": 12, + "ref": "plugins/feishu/.crabpot-package/src/thread-bindings.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 21, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:21" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/feishu/.crabpot-package/src/comment-handler-runtime-api.ts", + "line": 2, + "ref": "plugins/feishu/.crabpot-package/src/comment-handler-runtime-api.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/feishu/.crabpot-package/src/monitor-state-runtime-api.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/monitor-state-runtime-api.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-group-policy", + "file": "plugins/feishu/.crabpot-package/src/bot.ts", + "line": 19, + "ref": "plugins/feishu/.crabpot-package/src/bot.ts:19" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/feishu/.crabpot-package/src/runtime.ts", + "line": 2, + "ref": "plugins/feishu/.crabpot-package/src/runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/feishu/.crabpot-package/src/secret-input.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/secret-input.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/secret-input", + "file": "plugins/feishu/.crabpot-package/src/security-audit-shared.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/security-audit-shared.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/feishu/.crabpot-package/src/bot.ts", + "line": 20, + "ref": "plugins/feishu/.crabpot-package/src/bot.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/feishu/.crabpot-package/src/comment-handler.ts", + "line": 2, + "ref": "plugins/feishu/.crabpot-package/src/comment-handler.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/feishu/.crabpot-package/src/monitor-transport-runtime-api.ts", + "line": 2, + "ref": "plugins/feishu/.crabpot-package/src/monitor-transport-runtime-api.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/session-store-runtime", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 45, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:45" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/feishu/.crabpot-package/src/setup-core.ts", + "line": 5, + "ref": "plugins/feishu/.crabpot-package/src/setup-core.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/feishu/.crabpot-package/src/setup-surface.ts", + "line": 14, + "ref": "plugins/feishu/.crabpot-package/src/setup-surface.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/setup-runtime", + "file": "plugins/feishu/.crabpot-package/api.ts", + "line": 29, + "ref": "plugins/feishu/.crabpot-package/api.ts:29" + }, + { + "specifier": "openclaw/plugin-sdk/setup-runtime", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 1142, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:1142" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/feishu/.crabpot-package/src/app-registration.ts", + "line": 8, + "ref": "plugins/feishu/.crabpot-package/src/app-registration.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/feishu/.crabpot-package/src/streaming-card.ts", + "line": 6, + "ref": "plugins/feishu/.crabpot-package/src/streaming-card.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts", + "line": 14, + "ref": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 28, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:28" + }, + { + "specifier": "openclaw/plugin-sdk/temp-path", + "file": "plugins/feishu/.crabpot-package/src/media.ts", + "line": 10, + "ref": "plugins/feishu/.crabpot-package/src/media.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/text-chunking", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 49, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:49" + }, + { + "specifier": "openclaw/plugin-sdk/text-chunking", + "file": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts", + "line": 16, + "ref": "plugins/feishu/.crabpot-package/src/channel-runtime-api.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/approval-auth.ts", + "line": 5, + "ref": "plugins/feishu/.crabpot-package/src/approval-auth.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/bot-sender-name.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/bot-sender-name.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/bot.ts", + "line": 21, + "ref": "plugins/feishu/.crabpot-package/src/bot.ts:21" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/card-ux-launcher.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/card-ux-launcher.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/channel.ts", + "line": 29, + "ref": "plugins/feishu/.crabpot-package/src/channel.ts:29" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/comment-shared.ts", + "line": 5, + "ref": "plugins/feishu/.crabpot-package/src/comment-shared.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/conversation-id.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/conversation-id.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/directory.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/directory.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/docx-batch-insert.ts", + "line": 10, + "ref": "plugins/feishu/.crabpot-package/src/docx-batch-insert.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/docx-color-text.ts", + "line": 15, + "ref": "plugins/feishu/.crabpot-package/src/docx-color-text.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/docx.ts", + "line": 7, + "ref": "plugins/feishu/.crabpot-package/src/docx.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/media.ts", + "line": 11, + "ref": "plugins/feishu/.crabpot-package/src/media.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/monitor.bot-identity.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/monitor.bot-identity.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/monitor.startup.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/monitor.startup.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/outbound.ts", + "line": 21, + "ref": "plugins/feishu/.crabpot-package/src/outbound.ts:21" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/policy.ts", + "line": 7, + "ref": "plugins/feishu/.crabpot-package/src/policy.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/post.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/post.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts", + "line": 8, + "ref": "plugins/feishu/.crabpot-package/src/reply-dispatcher.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/send.ts", + "line": 6, + "ref": "plugins/feishu/.crabpot-package/src/send.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/session-route.ts", + "line": 6, + "ref": "plugins/feishu/.crabpot-package/src/session-route.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/subagent-hooks.ts", + "line": 4, + "ref": "plugins/feishu/.crabpot-package/src/subagent-hooks.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/targets.ts", + "line": 1, + "ref": "plugins/feishu/.crabpot-package/src/targets.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/thread-bindings.ts", + "line": 13, + "ref": "plugins/feishu/.crabpot-package/src/thread-bindings.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/feishu/.crabpot-package/src/tool-account.ts", + "line": 2, + "ref": "plugins/feishu/.crabpot-package/src/tool-account.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/feishu/.crabpot-package/runtime-api.ts", + "line": 54, + "ref": "plugins/feishu/.crabpot-package/runtime-api.ts:54" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/feishu/.crabpot-package/src/monitor-state-runtime-api.ts", + "line": 7, + "ref": "plugins/feishu/.crabpot-package/src/monitor-state-runtime-api.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/feishu/.crabpot-package/src/monitor-transport-runtime-api.ts", + "line": 3, + "ref": "plugins/feishu/.crabpot-package/src/monitor-transport-runtime-api.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-request-guards", + "file": "plugins/feishu/.crabpot-package/src/monitor-transport-runtime-api.ts", + "line": 7, + "ref": "plugins/feishu/.crabpot-package/src/monitor-transport-runtime-api.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/feishu/.crabpot-package/src/config-schema.ts", + "line": 2, + "ref": "plugins/feishu/.crabpot-package/src/config-schema.ts:2" } ] }, @@ -11504,43 +20491,82 @@ "hooks": [], "hookDetails": [], "registrations": [ - "registerChannel" + "createChatChannelPlugin", + "defineBundledChannelEntry", + "registerTool" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "createChatChannelPlugin", + "file": "plugins/tlon/.crabpot-package/src/channel.ts", + "line": 61, + "ref": "plugins/tlon/.crabpot-package/src/channel.ts:61" + }, + { + "name": "defineBundledChannelEntry", "file": "plugins/tlon/.crabpot-package/index.ts", - "line": 13, - "ref": "plugins/tlon/.crabpot-package/index.ts:13" + "line": 116, + "ref": "plugins/tlon/.crabpot-package/index.ts:116" + }, + { + "name": "registerTool", + "file": "plugins/tlon/.crabpot-package/index.ts", + "line": 130, + "ref": "plugins/tlon/.crabpot-package/index.ts:130" } ], - "manifestContracts": [], + "manifestContracts": [ + "tools" + ], "manifestFiles": [ "plugins/tlon/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/tlon/.crabpot-package/api.ts", + "plugins/tlon/.crabpot-package/channel-plugin-api.ts", + "plugins/tlon/.crabpot-package/doctor-contract-api.ts", "plugins/tlon/.crabpot-package/index.ts", + "plugins/tlon/.crabpot-package/runtime-api.ts", + "plugins/tlon/.crabpot-package/setup-api.ts", + "plugins/tlon/.crabpot-package/setup-entry.ts", "plugins/tlon/.crabpot-package/src/account-fields.ts", + "plugins/tlon/.crabpot-package/src/channel.runtime.ts", "plugins/tlon/.crabpot-package/src/channel.ts", "plugins/tlon/.crabpot-package/src/config-schema.ts", + "plugins/tlon/.crabpot-package/src/doctor-contract.ts", + "plugins/tlon/.crabpot-package/src/doctor.ts", + "plugins/tlon/.crabpot-package/src/logger-runtime.ts", + "plugins/tlon/.crabpot-package/src/monitor/approval-runtime.ts", + "plugins/tlon/.crabpot-package/src/monitor/approval.ts", + "plugins/tlon/.crabpot-package/src/monitor/authorization.ts", + "plugins/tlon/.crabpot-package/src/monitor/cites.ts", "plugins/tlon/.crabpot-package/src/monitor/discovery.ts", "plugins/tlon/.crabpot-package/src/monitor/history.ts", "plugins/tlon/.crabpot-package/src/monitor/index.ts", + "plugins/tlon/.crabpot-package/src/monitor/media.ts", "plugins/tlon/.crabpot-package/src/monitor/processed-messages.ts", + "plugins/tlon/.crabpot-package/src/monitor/settings-helpers.ts", "plugins/tlon/.crabpot-package/src/monitor/utils.ts", - "plugins/tlon/.crabpot-package/src/onboarding.ts", "plugins/tlon/.crabpot-package/src/runtime.ts", + "plugins/tlon/.crabpot-package/src/session-route.ts", + "plugins/tlon/.crabpot-package/src/settings.ts", + "plugins/tlon/.crabpot-package/src/setup-core.ts", + "plugins/tlon/.crabpot-package/src/setup-surface.ts", "plugins/tlon/.crabpot-package/src/targets.ts", + "plugins/tlon/.crabpot-package/src/tlon-api.ts", "plugins/tlon/.crabpot-package/src/types.ts", "plugins/tlon/.crabpot-package/src/urbit/auth.ts", "plugins/tlon/.crabpot-package/src/urbit/base-url.ts", - "plugins/tlon/.crabpot-package/src/urbit/channel-client.ts", "plugins/tlon/.crabpot-package/src/urbit/channel-ops.ts", "plugins/tlon/.crabpot-package/src/urbit/context.ts", "plugins/tlon/.crabpot-package/src/urbit/errors.ts", "plugins/tlon/.crabpot-package/src/urbit/fetch.ts", + "plugins/tlon/.crabpot-package/src/urbit/foreigns.ts", "plugins/tlon/.crabpot-package/src/urbit/send.ts", - "plugins/tlon/.crabpot-package/src/urbit/sse-client.ts" + "plugins/tlon/.crabpot-package/src/urbit/sse-client.ts", + "plugins/tlon/.crabpot-package/src/urbit/story.ts", + "plugins/tlon/.crabpot-package/src/urbit/upload.ts", + "plugins/tlon/.crabpot-package/test-api.ts" ], "pluginManifests": [ { @@ -11549,21 +20575,29 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", "channels", "configSchema", - "id" + "contracts", + "id", + "skills" + ], + "contracts": [ + "tools" ], - "contracts": [], "providerAuthEnvVars": {}, "channelEnvVars": {}, - "activation": null + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/tlon/.crabpot-package/package.json", "name": "@openclaw/tlon", - "version": "2026.2.21", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -11574,26 +20608,35 @@ "invalidFileSpecs": [] }, "dependencies": [ + "@aws-sdk/client-s3", + "@aws-sdk/s3-request-presigner", + "@tloncorp/tlon-skill", "@urbit/aura" ], - "peerDependencies": [], + "peerDependencies": [ + "openclaw" + ], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/tlon", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -11601,6 +20644,13 @@ "relativePath": "plugins/tlon/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/tlon/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -11609,7 +20659,7 @@ { "path": "plugins/tlon/.crabpot-package/package.json", "name": "@openclaw/tlon", - "version": "2026.2.21", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -11620,26 +20670,35 @@ "invalidFileSpecs": [] }, "dependencies": [ + "@aws-sdk/client-s3", + "@aws-sdk/s3-request-presigner", + "@tloncorp/tlon-skill", "@urbit/aura" ], - "peerDependencies": [], + "peerDependencies": [ + "openclaw" + ], "optionalDependencies": [], "openclaw": { "extensions": [ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/tlon", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -11647,6 +20706,13 @@ "relativePath": "plugins/tlon/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/tlon/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -11673,134 +20739,350 @@ } ], "sdkImports": [ - "openclaw/plugin-sdk" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/media-runtime", + "openclaw/plugin-sdk/outbound-runtime", + "openclaw/plugin-sdk/plugin-runtime", + "openclaw/plugin-sdk/reply-runtime", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-logger", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/zod" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/index.ts", + "specifier": "openclaw/plugin-sdk/account-helpers", + "file": "plugins/tlon/.crabpot-package/src/channel.ts", "line": 1, - "ref": "plugins/tlon/.crabpot-package/index.ts:1" + "ref": "plugins/tlon/.crabpot-package/src/channel.ts:1" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/index.ts", + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/tlon/.crabpot-package/src/channel.ts", "line": 2, - "ref": "plugins/tlon/.crabpot-package/index.ts:2" + "ref": "plugins/tlon/.crabpot-package/src/channel.ts:2" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/tlon/.crabpot-package/src/types.ts", + "line": 6, + "ref": "plugins/tlon/.crabpot-package/src/types.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-helpers", "file": "plugins/tlon/.crabpot-package/src/channel.ts", - "line": 12, - "ref": "plugins/tlon/.crabpot-package/src/channel.ts:12" + "line": 3, + "ref": "plugins/tlon/.crabpot-package/src/channel.ts:3" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/src/channel.ts", - "line": 7, - "ref": "plugins/tlon/.crabpot-package/src/channel.ts:7" - }, - { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/channel-config-schema", "file": "plugins/tlon/.crabpot-package/src/config-schema.ts", "line": 1, "ref": "plugins/tlon/.crabpot-package/src/config-schema.ts:1" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/src/monitor/discovery.ts", - "line": 1, - "ref": "plugins/tlon/.crabpot-package/src/monitor/discovery.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/src/monitor/history.ts", - "line": 1, - "ref": "plugins/tlon/.crabpot-package/src/monitor/history.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/src/monitor/index.ts", + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/tlon/.crabpot-package/src/channel.runtime.ts", "line": 2, - "ref": "plugins/tlon/.crabpot-package/src/monitor/index.ts:2" + "ref": "plugins/tlon/.crabpot-package/src/channel.runtime.ts:2" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/src/monitor/index.ts", - "line": 3, - "ref": "plugins/tlon/.crabpot-package/src/monitor/index.ts:3" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/src/onboarding.ts", + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/tlon/.crabpot-package/src/doctor.ts", "line": 1, - "ref": "plugins/tlon/.crabpot-package/src/onboarding.ts:1" + "ref": "plugins/tlon/.crabpot-package/src/doctor.ts:1" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/src/onboarding.ts", + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/tlon/.crabpot-package/src/channel.ts", + "line": 4, + "ref": "plugins/tlon/.crabpot-package/src/channel.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/tlon/.crabpot-package/index.ts", + "line": 5, + "ref": "plugins/tlon/.crabpot-package/index.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/tlon/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/tlon/.crabpot-package/setup-entry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-send-result", + "file": "plugins/tlon/.crabpot-package/src/channel.runtime.ts", + "line": 3, + "ref": "plugins/tlon/.crabpot-package/src/channel.runtime.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/tlon/.crabpot-package/runtime-api.ts", + "line": 5, + "ref": "plugins/tlon/.crabpot-package/runtime-api.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/tlon/.crabpot-package/src/channel.runtime.ts", + "line": 4, + "ref": "plugins/tlon/.crabpot-package/src/channel.runtime.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/tlon/.crabpot-package/src/monitor/authorization.ts", + "line": 1, + "ref": "plugins/tlon/.crabpot-package/src/monitor/authorization.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/tlon/.crabpot-package/src/types.ts", + "line": 7, + "ref": "plugins/tlon/.crabpot-package/src/types.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/tlon/.crabpot-package/runtime-api.ts", + "line": 7, + "ref": "plugins/tlon/.crabpot-package/runtime-api.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/tlon/.crabpot-package/src/channel.runtime.ts", + "line": 5, + "ref": "plugins/tlon/.crabpot-package/src/channel.runtime.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/tlon/.crabpot-package/src/session-route.ts", + "line": 4, + "ref": "plugins/tlon/.crabpot-package/src/session-route.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/tlon/.crabpot-package/index.ts", + "line": 6, + "ref": "plugins/tlon/.crabpot-package/index.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/tlon/.crabpot-package/src/monitor/media.ts", + "line": 4, + "ref": "plugins/tlon/.crabpot-package/src/monitor/media.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/tlon/.crabpot-package/src/monitor/utils.ts", + "line": 1, + "ref": "plugins/tlon/.crabpot-package/src/monitor/utils.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/lazy-runtime", + "file": "plugins/tlon/.crabpot-package/src/channel.ts", + "line": 5, + "ref": "plugins/tlon/.crabpot-package/src/channel.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/media-runtime", + "file": "plugins/tlon/.crabpot-package/src/monitor/media.ts", "line": 9, - "ref": "plugins/tlon/.crabpot-package/src/onboarding.ts:9" + "ref": "plugins/tlon/.crabpot-package/src/monitor/media.ts:9" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/outbound-runtime", + "file": "plugins/tlon/.crabpot-package/src/channel.ts", + "line": 6, + "ref": "plugins/tlon/.crabpot-package/src/channel.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/plugin-runtime", "file": "plugins/tlon/.crabpot-package/src/runtime.ts", "line": 1, "ref": "plugins/tlon/.crabpot-package/src/runtime.ts:1" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/src/types.ts", - "line": 1, - "ref": "plugins/tlon/.crabpot-package/src/types.ts:1" + "specifier": "openclaw/plugin-sdk/reply-runtime", + "file": "plugins/tlon/.crabpot-package/runtime-api.ts", + "line": 4, + "ref": "plugins/tlon/.crabpot-package/runtime-api.ts:4" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/reply-runtime", + "file": "plugins/tlon/.crabpot-package/src/monitor/index.ts", + "line": 1, + "ref": "plugins/tlon/.crabpot-package/src/monitor/index.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/tlon/.crabpot-package/runtime-api.ts", + "line": 6, + "ref": "plugins/tlon/.crabpot-package/runtime-api.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/tlon/.crabpot-package/src/monitor/approval-runtime.ts", + "line": 1, + "ref": "plugins/tlon/.crabpot-package/src/monitor/approval-runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/tlon/.crabpot-package/src/monitor/cites.ts", + "line": 1, + "ref": "plugins/tlon/.crabpot-package/src/monitor/cites.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/tlon/.crabpot-package/src/monitor/discovery.ts", + "line": 1, + "ref": "plugins/tlon/.crabpot-package/src/monitor/discovery.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/tlon/.crabpot-package/src/monitor/history.ts", + "line": 1, + "ref": "plugins/tlon/.crabpot-package/src/monitor/history.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/tlon/.crabpot-package/src/monitor/index.ts", + "line": 2, + "ref": "plugins/tlon/.crabpot-package/src/monitor/index.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-logger", + "file": "plugins/tlon/.crabpot-package/src/logger-runtime.ts", + "line": 1, + "ref": "plugins/tlon/.crabpot-package/src/logger-runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/tlon/.crabpot-package/src/runtime.ts", + "line": 2, + "ref": "plugins/tlon/.crabpot-package/src/runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/tlon/.crabpot-package/src/setup-core.ts", + "line": 12, + "ref": "plugins/tlon/.crabpot-package/src/setup-core.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/tlon/.crabpot-package/runtime-api.ts", + "line": 16, + "ref": "plugins/tlon/.crabpot-package/runtime-api.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/tlon/.crabpot-package/runtime-api.ts", + "line": 17, + "ref": "plugins/tlon/.crabpot-package/runtime-api.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/tlon/.crabpot-package/src/doctor-contract.ts", + "line": 1, + "ref": "plugins/tlon/.crabpot-package/src/doctor-contract.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/tlon/.crabpot-package/src/tlon-api.ts", + "line": 4, + "ref": "plugins/tlon/.crabpot-package/src/tlon-api.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/tlon/.crabpot-package/src/types.ts", + "line": 11, + "ref": "plugins/tlon/.crabpot-package/src/types.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", "file": "plugins/tlon/.crabpot-package/src/urbit/auth.ts", "line": 1, "ref": "plugins/tlon/.crabpot-package/src/urbit/auth.ts:1" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/ssrf-runtime", "file": "plugins/tlon/.crabpot-package/src/urbit/base-url.ts", "line": 1, "ref": "plugins/tlon/.crabpot-package/src/urbit/base-url.ts:1" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/src/urbit/channel-client.ts", - "line": 1, - "ref": "plugins/tlon/.crabpot-package/src/urbit/channel-client.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/ssrf-runtime", "file": "plugins/tlon/.crabpot-package/src/urbit/channel-ops.ts", "line": 1, "ref": "plugins/tlon/.crabpot-package/src/urbit/channel-ops.ts:1" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/ssrf-runtime", "file": "plugins/tlon/.crabpot-package/src/urbit/context.ts", "line": 1, "ref": "plugins/tlon/.crabpot-package/src/urbit/context.ts:1" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/ssrf-runtime", "file": "plugins/tlon/.crabpot-package/src/urbit/fetch.ts", - "line": 1, - "ref": "plugins/tlon/.crabpot-package/src/urbit/fetch.ts:1" + "line": 5, + "ref": "plugins/tlon/.crabpot-package/src/urbit/fetch.ts:5" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/tlon/.crabpot-package/src/urbit/fetch.ts", - "line": 2, - "ref": "plugins/tlon/.crabpot-package/src/urbit/fetch.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/ssrf-runtime", "file": "plugins/tlon/.crabpot-package/src/urbit/sse-client.ts", + "line": 3, + "ref": "plugins/tlon/.crabpot-package/src/urbit/sse-client.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/tlon/.crabpot-package/src/urbit/upload.ts", + "line": 4, + "ref": "plugins/tlon/.crabpot-package/src/urbit/upload.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/tlon/.crabpot-package/src/channel.ts", + "line": 10, + "ref": "plugins/tlon/.crabpot-package/src/channel.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/tlon/.crabpot-package/src/monitor/media.ts", + "line": 10, + "ref": "plugins/tlon/.crabpot-package/src/monitor/media.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/tlon/.crabpot-package/src/setup-core.ts", + "line": 16, + "ref": "plugins/tlon/.crabpot-package/src/setup-core.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/tlon/.crabpot-package/src/tlon-api.ts", + "line": 5, + "ref": "plugins/tlon/.crabpot-package/src/tlon-api.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/tlon/.crabpot-package/src/config-schema.ts", "line": 2, - "ref": "plugins/tlon/.crabpot-package/src/urbit/sse-client.ts:2" + "ref": "plugins/tlon/.crabpot-package/src/config-schema.ts:2" } ] }, @@ -11820,14 +21102,14 @@ "hooks": [], "hookDetails": [], "registrations": [ - "registerChannel" + "defineBundledChannelEntry" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "defineBundledChannelEntry", "file": "plugins/twitch/.crabpot-package/index.ts", - "line": 16, - "ref": "plugins/twitch/.crabpot-package/index.ts:16" + "line": 3, + "ref": "plugins/twitch/.crabpot-package/index.ts:3" } ], "manifestContracts": [], @@ -11835,20 +21117,25 @@ "plugins/twitch/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/twitch/.crabpot-package/api.ts", + "plugins/twitch/.crabpot-package/channel-plugin-api.ts", "plugins/twitch/.crabpot-package/index.ts", + "plugins/twitch/.crabpot-package/runtime-api.ts", + "plugins/twitch/.crabpot-package/setup-entry.ts", + "plugins/twitch/.crabpot-package/setup-plugin-api.ts", "plugins/twitch/.crabpot-package/src/access-control.ts", "plugins/twitch/.crabpot-package/src/actions.ts", "plugins/twitch/.crabpot-package/src/client-manager-registry.ts", "plugins/twitch/.crabpot-package/src/config-schema.ts", "plugins/twitch/.crabpot-package/src/config.ts", "plugins/twitch/.crabpot-package/src/monitor.ts", - "plugins/twitch/.crabpot-package/src/onboarding.ts", "plugins/twitch/.crabpot-package/src/outbound.ts", "plugins/twitch/.crabpot-package/src/plugin.ts", "plugins/twitch/.crabpot-package/src/probe.ts", "plugins/twitch/.crabpot-package/src/resolver.ts", "plugins/twitch/.crabpot-package/src/runtime.ts", "plugins/twitch/.crabpot-package/src/send.ts", + "plugins/twitch/.crabpot-package/src/setup-surface.ts", "plugins/twitch/.crabpot-package/src/status.ts", "plugins/twitch/.crabpot-package/src/test-fixtures.ts", "plugins/twitch/.crabpot-package/src/token.ts", @@ -11864,25 +21151,34 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", + "channelEnvVars", "channels", "configSchema", "id" ], "contracts": [], "providerAuthEnvVars": {}, - "channelEnvVars": {}, - "activation": null + "channelEnvVars": { + "twitch": [ + "OPENCLAW_TWITCH_ACCESS_TOKEN" + ] + }, + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/twitch/.crabpot-package/package.json", "name": "@openclaw/twitch", - "version": "2026.2.21", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { - "advertised": false, + "advertised": true, "private": false, "filesMode": "implicit", "files": [], @@ -11891,8 +21187,7 @@ "dependencies": [ "@twurple/api", "@twurple/auth", - "@twurple/chat", - "zod" + "@twurple/chat" ], "peerDependencies": [], "optionalDependencies": [], @@ -11901,12 +21196,21 @@ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, - "install": null, - "release": null, + "install": { + "clawhubSpec": null, + "npmSpec": "@openclaw/twitch", + "defaultChoice": "npm", + "minHostVersion": ">=2026.4.10" + }, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -11914,6 +21218,13 @@ "relativePath": "plugins/twitch/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/twitch/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -11922,11 +21233,11 @@ { "path": "plugins/twitch/.crabpot-package/package.json", "name": "@openclaw/twitch", - "version": "2026.2.21", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { - "advertised": false, + "advertised": true, "private": false, "filesMode": "implicit", "files": [], @@ -11935,8 +21246,7 @@ "dependencies": [ "@twurple/api", "@twurple/auth", - "@twurple/chat", - "zod" + "@twurple/chat" ], "peerDependencies": [], "optionalDependencies": [], @@ -11945,12 +21255,21 @@ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, - "install": null, - "release": null, + "install": { + "clawhubSpec": null, + "npmSpec": "@openclaw/twitch", + "defaultChoice": "npm", + "minHostVersion": ">=2026.4.10" + }, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -11958,6 +21277,13 @@ "relativePath": "plugins/twitch/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/twitch/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -11984,104 +21310,288 @@ } ], "sdkImports": [ - "openclaw/plugin-sdk" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/channel-config-primitives", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/reply-runtime", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/zod" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/index.ts", - "line": 1, - "ref": "plugins/twitch/.crabpot-package/index.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/index.ts", - "line": 2, - "ref": "plugins/twitch/.crabpot-package/index.ts:2" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/src/config-schema.ts", - "line": 1, - "ref": "plugins/twitch/.crabpot-package/src/config-schema.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/src/config.ts", - "line": 1, - "ref": "plugins/twitch/.crabpot-package/src/config.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/src/monitor.ts", - "line": 8, - "ref": "plugins/twitch/.crabpot-package/src/monitor.ts:8" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/src/monitor.ts", - "line": 9, - "ref": "plugins/twitch/.crabpot-package/src/monitor.ts:9" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/src/onboarding.ts", - "line": 12, - "ref": "plugins/twitch/.crabpot-package/src/onboarding.ts:12" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/src/onboarding.ts", - "line": 5, - "ref": "plugins/twitch/.crabpot-package/src/onboarding.ts:5" - }, - { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/account-helpers", "file": "plugins/twitch/.crabpot-package/src/plugin.ts", "line": 8, "ref": "plugins/twitch/.crabpot-package/src/plugin.ts:8" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/twitch/.crabpot-package/src/setup-surface.ts", + "line": 5, + "ref": "plugins/twitch/.crabpot-package/src/setup-surface.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/twitch/.crabpot-package/src/config.ts", + "line": 5, + "ref": "plugins/twitch/.crabpot-package/src/config.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/twitch/.crabpot-package/src/token.ts", + "line": 16, + "ref": "plugins/twitch/.crabpot-package/src/token.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-primitives", + "file": "plugins/twitch/.crabpot-package/src/config-schema.ts", + "line": 1, + "ref": "plugins/twitch/.crabpot-package/src/config-schema.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-config-schema", "file": "plugins/twitch/.crabpot-package/src/plugin.ts", "line": 9, "ref": "plugins/twitch/.crabpot-package/src/plugin.ts:9" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/channel-contract", + "file": "plugins/twitch/.crabpot-package/runtime-api.ts", + "line": 17, + "ref": "plugins/twitch/.crabpot-package/runtime-api.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/channel-contract", "file": "plugins/twitch/.crabpot-package/src/probe.ts", "line": 3, "ref": "plugins/twitch/.crabpot-package/src/probe.ts:3" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/src/runtime.ts", - "line": 1, - "ref": "plugins/twitch/.crabpot-package/src/runtime.ts:1" - }, - { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/src/send.ts", - "line": 8, - "ref": "plugins/twitch/.crabpot-package/src/send.ts:8" - }, - { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/channel-contract", "file": "plugins/twitch/.crabpot-package/src/status.ts", "line": 7, "ref": "plugins/twitch/.crabpot-package/src/status.ts:7" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/twitch/.crabpot-package/src/test-fixtures.ts", - "line": 1, - "ref": "plugins/twitch/.crabpot-package/src/test-fixtures.ts:1" + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/twitch/.crabpot-package/runtime-api.ts", + "line": 18, + "ref": "plugins/twitch/.crabpot-package/runtime-api.ts:18" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/twitch/.crabpot-package/src/plugin.ts", + "line": 10, + "ref": "plugins/twitch/.crabpot-package/src/plugin.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/twitch/.crabpot-package/index.ts", + "line": 1, + "ref": "plugins/twitch/.crabpot-package/index.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/twitch/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/twitch/.crabpot-package/setup-entry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-pairing", + "file": "plugins/twitch/.crabpot-package/src/plugin.ts", + "line": 14, + "ref": "plugins/twitch/.crabpot-package/src/plugin.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/channel-reply-pipeline", + "file": "plugins/twitch/.crabpot-package/src/monitor.ts", + "line": 8, + "ref": "plugins/twitch/.crabpot-package/src/monitor.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/channel-send-result", + "file": "plugins/twitch/.crabpot-package/runtime-api.ts", + "line": 19, + "ref": "plugins/twitch/.crabpot-package/runtime-api.ts:19" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/twitch/.crabpot-package/runtime-api.ts", + "line": 20, + "ref": "plugins/twitch/.crabpot-package/runtime-api.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/twitch/.crabpot-package/src/config.ts", + "line": 6, + "ref": "plugins/twitch/.crabpot-package/src/config.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/twitch/.crabpot-package/src/monitor.ts", + "line": 9, + "ref": "plugins/twitch/.crabpot-package/src/monitor.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/twitch/.crabpot-package/src/plugin.ts", + "line": 15, + "ref": "plugins/twitch/.crabpot-package/src/plugin.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/twitch/.crabpot-package/src/send.ts", + "line": 8, + "ref": "plugins/twitch/.crabpot-package/src/send.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/twitch/.crabpot-package/src/token.ts", + "line": 17, + "ref": "plugins/twitch/.crabpot-package/src/token.ts:17" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", "file": "plugins/twitch/.crabpot-package/src/twitch-client.ts", "line": 3, "ref": "plugins/twitch/.crabpot-package/src/twitch-client.ts:3" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/twitch/.crabpot-package/src/runtime.ts", + "line": 1, + "ref": "plugins/twitch/.crabpot-package/src/runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/core", + "file": "plugins/twitch/.crabpot-package/src/setup-surface.ts", + "line": 6, + "ref": "plugins/twitch/.crabpot-package/src/setup-surface.ts:6" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/twitch/.crabpot-package/src/actions.ts", + "line": 7, + "ref": "plugins/twitch/.crabpot-package/src/actions.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/twitch/.crabpot-package/src/monitor.ts", + "line": 10, + "ref": "plugins/twitch/.crabpot-package/src/monitor.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/twitch/.crabpot-package/src/probe.ts", + "line": 4, + "ref": "plugins/twitch/.crabpot-package/src/probe.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/twitch/.crabpot-package/src/resolver.ts", + "line": 10, + "ref": "plugins/twitch/.crabpot-package/src/resolver.ts:10" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/twitch/.crabpot-package/src/send.ts", + "line": 9, + "ref": "plugins/twitch/.crabpot-package/src/send.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/error-runtime", + "file": "plugins/twitch/.crabpot-package/src/twitch-client.ts", + "line": 4, + "ref": "plugins/twitch/.crabpot-package/src/twitch-client.ts:4" + }, + { + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/twitch/.crabpot-package/src/plugin.ts", + "line": 16, + "ref": "plugins/twitch/.crabpot-package/src/plugin.ts:16" + }, + { + "specifier": "openclaw/plugin-sdk/reply-runtime", + "file": "plugins/twitch/.crabpot-package/src/monitor.ts", + "line": 11, + "ref": "plugins/twitch/.crabpot-package/src/monitor.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/runtime", + "file": "plugins/twitch/.crabpot-package/runtime-api.ts", + "line": 21, + "ref": "plugins/twitch/.crabpot-package/runtime-api.ts:21" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/twitch/.crabpot-package/src/plugin.ts", + "line": 132, + "ref": "plugins/twitch/.crabpot-package/src/plugin.ts:132" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", + "file": "plugins/twitch/.crabpot-package/src/runtime.ts", + "line": 2, + "ref": "plugins/twitch/.crabpot-package/src/runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/twitch/.crabpot-package/runtime-api.ts", + "line": 22, + "ref": "plugins/twitch/.crabpot-package/runtime-api.ts:22" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/twitch/.crabpot-package/src/setup-surface.ts", + "line": 15, + "ref": "plugins/twitch/.crabpot-package/src/setup-surface.ts:15" + }, + { + "specifier": "openclaw/plugin-sdk/status-helpers", + "file": "plugins/twitch/.crabpot-package/src/plugin.ts", + "line": 20, + "ref": "plugins/twitch/.crabpot-package/src/plugin.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/twitch/.crabpot-package/src/access-control.ts", + "line": 1, + "ref": "plugins/twitch/.crabpot-package/src/access-control.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/twitch/.crabpot-package/src/monitor.ts", + "line": 12, + "ref": "plugins/twitch/.crabpot-package/src/monitor.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/text-runtime", + "file": "plugins/twitch/.crabpot-package/src/resolver.ts", + "line": 11, + "ref": "plugins/twitch/.crabpot-package/src/resolver.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/twitch/.crabpot-package/src/config-schema.ts", + "line": 2, + "ref": "plugins/twitch/.crabpot-package/src/config-schema.ts:2" } ] }, @@ -12188,6 +21698,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -12232,6 +21743,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -12407,14 +21919,21 @@ "hooks": [], "hookDetails": [], "registrations": [ - "registerChannel" + "createChatChannelPlugin", + "defineBundledChannelEntry" ], "registrationDetails": [ { - "name": "registerChannel", + "name": "createChatChannelPlugin", + "file": "plugins/synology-chat/.crabpot-package/src/channel.ts", + "line": 209, + "ref": "plugins/synology-chat/.crabpot-package/src/channel.ts:209" + }, + { + "name": "defineBundledChannelEntry", "file": "plugins/synology-chat/.crabpot-package/index.ts", - "line": 13, - "ref": "plugins/synology-chat/.crabpot-package/index.ts:13" + "line": 3, + "ref": "plugins/synology-chat/.crabpot-package/index.ts:3" } ], "manifestContracts": [], @@ -12422,12 +21941,27 @@ "plugins/synology-chat/.crabpot-package/openclaw.plugin.json" ], "sourceFiles": [ + "plugins/synology-chat/.crabpot-package/api.ts", + "plugins/synology-chat/.crabpot-package/channel-plugin-api.ts", + "plugins/synology-chat/.crabpot-package/contract-api.ts", "plugins/synology-chat/.crabpot-package/index.ts", + "plugins/synology-chat/.crabpot-package/setup-api.ts", + "plugins/synology-chat/.crabpot-package/setup-entry.ts", "plugins/synology-chat/.crabpot-package/src/accounts.ts", + "plugins/synology-chat/.crabpot-package/src/approval-auth.ts", + "plugins/synology-chat/.crabpot-package/src/channel.test-mocks.ts", "plugins/synology-chat/.crabpot-package/src/channel.ts", "plugins/synology-chat/.crabpot-package/src/client.ts", + "plugins/synology-chat/.crabpot-package/src/config-schema.ts", + "plugins/synology-chat/.crabpot-package/src/gateway-runtime.ts", + "plugins/synology-chat/.crabpot-package/src/inbound-context.ts", + "plugins/synology-chat/.crabpot-package/src/inbound-turn.ts", "plugins/synology-chat/.crabpot-package/src/runtime.ts", + "plugins/synology-chat/.crabpot-package/src/security-audit.ts", "plugins/synology-chat/.crabpot-package/src/security.ts", + "plugins/synology-chat/.crabpot-package/src/session-key.ts", + "plugins/synology-chat/.crabpot-package/src/setup-surface.ts", + "plugins/synology-chat/.crabpot-package/src/test-http-utils.ts", "plugins/synology-chat/.crabpot-package/src/types.ts", "plugins/synology-chat/.crabpot-package/src/webhook-handler.ts" ], @@ -12438,21 +21972,35 @@ "name": null, "version": null, "keys": [ + "activation", + "channelConfigs", + "channelEnvVars", "channels", "configSchema", "id" ], "contracts": [], "providerAuthEnvVars": {}, - "channelEnvVars": {}, - "activation": null + "channelEnvVars": { + "synology-chat": [ + "SYNOLOGY_CHAT_TOKEN", + "SYNOLOGY_CHAT_INCOMING_URL", + "SYNOLOGY_NAS_HOST", + "SYNOLOGY_ALLOWED_USER_IDS", + "SYNOLOGY_RATE_LIMIT", + "OPENCLAW_BOT_NAME" + ] + }, + "activation": { + "onStartup": false + } } ], "securityManifests": [], "package": { "path": "plugins/synology-chat/.crabpot-package/package.json", "name": "@openclaw/synology-chat", - "version": "2026.2.22", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -12472,17 +22020,21 @@ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/synology-chat", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -12490,6 +22042,13 @@ "relativePath": "plugins/synology-chat/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/synology-chat/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -12498,7 +22057,7 @@ { "path": "plugins/synology-chat/.crabpot-package/package.json", "name": "@openclaw/synology-chat", - "version": "2026.2.22", + "version": "2026.5.2", "type": "module", "main": null, "npmPack": { @@ -12518,17 +22077,21 @@ "./index.ts" ], "runtimeExtensions": [], - "setupEntry": null, - "compatPluginApi": null, - "buildOpenClawVersion": null, + "setupEntry": "./setup-entry.ts", + "compatPluginApi": ">=2026.5.2", + "buildOpenClawVersion": "2026.5.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, "npmSpec": "@openclaw/synology-chat", "defaultChoice": "npm", - "minHostVersion": null + "minHostVersion": ">=2026.4.10" }, - "release": null, + "release": { + "publishToClawHub": true, + "publishToNpm": true + }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -12536,6 +22099,13 @@ "relativePath": "plugins/synology-chat/.crabpot-package/index.ts", "exists": true, "requiresBuild": false + }, + { + "kind": "setupEntry", + "specifier": "./setup-entry.ts", + "relativePath": "plugins/synology-chat/.crabpot-package/setup-entry.ts", + "exists": true, + "requiresBuild": false } ] } @@ -12562,32 +22132,184 @@ } ], "sdkImports": [ - "openclaw/plugin-sdk" + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/dangerous-name-runtime", + "openclaw/plugin-sdk/directory-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/zod" ], "sdkImportDetails": [ { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/synology-chat/.crabpot-package/index.ts", + "specifier": "openclaw/plugin-sdk/account-id", + "file": "plugins/synology-chat/.crabpot-package/src/channel.ts", + "line": 7, + "ref": "plugins/synology-chat/.crabpot-package/src/channel.ts:7" + }, + { + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/synology-chat/.crabpot-package/src/accounts.ts", + "line": 11, + "ref": "plugins/synology-chat/.crabpot-package/src/accounts.ts:11" + }, + { + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/synology-chat/.crabpot-package/src/channel.ts", + "line": 8, + "ref": "plugins/synology-chat/.crabpot-package/src/channel.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/account-resolution", + "file": "plugins/synology-chat/.crabpot-package/src/gateway-runtime.ts", "line": 1, - "ref": "plugins/synology-chat/.crabpot-package/index.ts:1" + "ref": "plugins/synology-chat/.crabpot-package/src/gateway-runtime.ts:1" }, { - "specifier": "openclaw/plugin-sdk", - "file": "plugins/synology-chat/.crabpot-package/index.ts", - "line": 2, - "ref": "plugins/synology-chat/.crabpot-package/index.ts:2" + "specifier": "openclaw/plugin-sdk/approval-auth-runtime", + "file": "plugins/synology-chat/.crabpot-package/src/approval-auth.ts", + "line": 4, + "ref": "plugins/synology-chat/.crabpot-package/src/approval-auth.ts:4" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/channel-config-helpers", "file": "plugins/synology-chat/.crabpot-package/src/channel.ts", "line": 12, "ref": "plugins/synology-chat/.crabpot-package/src/channel.ts:12" }, { - "specifier": "openclaw/plugin-sdk", + "specifier": "openclaw/plugin-sdk/channel-config-schema", + "file": "plugins/synology-chat/.crabpot-package/src/config-schema.ts", + "line": 1, + "ref": "plugins/synology-chat/.crabpot-package/src/config-schema.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-core", + "file": "plugins/synology-chat/.crabpot-package/src/channel.ts", + "line": 13, + "ref": "plugins/synology-chat/.crabpot-package/src/channel.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/synology-chat/.crabpot-package/index.ts", + "line": 1, + "ref": "plugins/synology-chat/.crabpot-package/index.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-entry-contract", + "file": "plugins/synology-chat/.crabpot-package/setup-entry.ts", + "line": 1, + "ref": "plugins/synology-chat/.crabpot-package/setup-entry.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/channel-lifecycle", + "file": "plugins/synology-chat/.crabpot-package/src/channel.ts", + "line": 14, + "ref": "plugins/synology-chat/.crabpot-package/src/channel.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/channel-policy", + "file": "plugins/synology-chat/.crabpot-package/src/channel.ts", + "line": 20, + "ref": "plugins/synology-chat/.crabpot-package/src/channel.ts:20" + }, + { + "specifier": "openclaw/plugin-sdk/channel-send-result", + "file": "plugins/synology-chat/.crabpot-package/src/channel.ts", + "line": 21, + "ref": "plugins/synology-chat/.crabpot-package/src/channel.ts:21" + }, + { + "specifier": "openclaw/plugin-sdk/config-types", + "file": "plugins/synology-chat/.crabpot-package/src/inbound-turn.ts", + "line": 1, + "ref": "plugins/synology-chat/.crabpot-package/src/inbound-turn.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/dangerous-name-runtime", + "file": "plugins/synology-chat/.crabpot-package/src/accounts.ts", + "line": 12, + "ref": "plugins/synology-chat/.crabpot-package/src/accounts.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/directory-runtime", + "file": "plugins/synology-chat/.crabpot-package/src/channel.ts", + "line": 22, + "ref": "plugins/synology-chat/.crabpot-package/src/channel.ts:22" + }, + { + "specifier": "openclaw/plugin-sdk/extension-shared", + "file": "plugins/synology-chat/.crabpot-package/src/client.ts", + "line": 8, + "ref": "plugins/synology-chat/.crabpot-package/src/client.ts:8" + }, + { + "specifier": "openclaw/plugin-sdk/routing", + "file": "plugins/synology-chat/.crabpot-package/src/session-key.ts", + "line": 1, + "ref": "plugins/synology-chat/.crabpot-package/src/session-key.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/runtime-store", "file": "plugins/synology-chat/.crabpot-package/src/runtime.ts", - "line": 7, - "ref": "plugins/synology-chat/.crabpot-package/src/runtime.ts:7" + "line": 1, + "ref": "plugins/synology-chat/.crabpot-package/src/runtime.ts:1" + }, + { + "specifier": "openclaw/plugin-sdk/security-runtime", + "file": "plugins/synology-chat/.crabpot-package/src/security.ts", + "line": 5, + "ref": "plugins/synology-chat/.crabpot-package/src/security.ts:5" + }, + { + "specifier": "openclaw/plugin-sdk/setup", + "file": "plugins/synology-chat/.crabpot-package/src/setup-surface.ts", + "line": 13, + "ref": "plugins/synology-chat/.crabpot-package/src/setup-surface.ts:13" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/synology-chat/.crabpot-package/src/client.ts", + "line": 12, + "ref": "plugins/synology-chat/.crabpot-package/src/client.ts:12" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/synology-chat/.crabpot-package/src/gateway-runtime.ts", + "line": 2, + "ref": "plugins/synology-chat/.crabpot-package/src/gateway-runtime.ts:2" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/synology-chat/.crabpot-package/src/security.ts", + "line": 9, + "ref": "plugins/synology-chat/.crabpot-package/src/security.ts:9" + }, + { + "specifier": "openclaw/plugin-sdk/webhook-ingress", + "file": "plugins/synology-chat/.crabpot-package/src/webhook-handler.ts", + "line": 14, + "ref": "plugins/synology-chat/.crabpot-package/src/webhook-handler.ts:14" + }, + { + "specifier": "openclaw/plugin-sdk/zod", + "file": "plugins/synology-chat/.crabpot-package/src/config-schema.ts", + "line": 2, + "ref": "plugins/synology-chat/.crabpot-package/src/config-schema.ts:2" } ] }, @@ -12672,7 +22394,7 @@ "package": { "path": "plugins/brave-plugin/.crabpot-package/package.json", "name": "@openclaw/brave-plugin", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -12691,8 +22413,8 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.4.10", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -12704,6 +22426,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -12719,7 +22442,7 @@ { "path": "plugins/brave-plugin/.crabpot-package/package.json", "name": "@openclaw/brave-plugin", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -12738,8 +22461,8 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.4.10", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -12751,6 +22474,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -12784,12 +22508,21 @@ } ], "sdkImports": [ + "openclaw/plugin-sdk/diagnostic-runtime", "openclaw/plugin-sdk/plugin-entry", "openclaw/plugin-sdk/provider-web-search", "openclaw/plugin-sdk/provider-web-search-config-contract", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/ssrf-runtime", "openclaw/plugin-sdk/text-runtime" ], "sdkImportDetails": [ + { + "specifier": "openclaw/plugin-sdk/diagnostic-runtime", + "file": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.ts", + "line": 1, + "ref": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.ts:1" + }, { "specifier": "openclaw/plugin-sdk/plugin-entry", "file": "plugins/brave-plugin/.crabpot-package/index.ts", @@ -12805,27 +22538,39 @@ { "specifier": "openclaw/plugin-sdk/provider-web-search", "file": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.runtime.ts", - "line": 20, - "ref": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.runtime.ts:20" + "line": 21, + "ref": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.runtime.ts:21" }, { "specifier": "openclaw/plugin-sdk/provider-web-search", "file": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.ts", - "line": 5, - "ref": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.ts:5" - }, - { - "specifier": "openclaw/plugin-sdk/provider-web-search-config-contract", - "file": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.ts", "line": 6, "ref": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.ts:6" }, + { + "specifier": "openclaw/plugin-sdk/provider-web-search-config-contract", + "file": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.ts", + "line": 7, + "ref": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.ts:7" + }, { "specifier": "openclaw/plugin-sdk/provider-web-search-config-contract", "file": "plugins/brave-plugin/.crabpot-package/web-search-contract-api.ts", "line": 4, "ref": "plugins/brave-plugin/.crabpot-package/web-search-contract-api.ts:4" }, + { + "specifier": "openclaw/plugin-sdk/runtime-env", + "file": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.runtime.ts", + "line": 22, + "ref": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.runtime.ts:22" + }, + { + "specifier": "openclaw/plugin-sdk/ssrf-runtime", + "file": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.runtime.ts", + "line": 28, + "ref": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.runtime.ts:28" + }, { "specifier": "openclaw/plugin-sdk/text-runtime", "file": "plugins/brave-plugin/.crabpot-package/src/brave-web-search-provider.shared.ts", @@ -12928,6 +22673,7 @@ "plugins/codex/.crabpot-package/src/app-server/computer-use.ts", "plugins/codex/.crabpot-package/src/app-server/config.ts", "plugins/codex/.crabpot-package/src/app-server/context-engine-projection.ts", + "plugins/codex/.crabpot-package/src/app-server/dynamic-tool-profile.ts", "plugins/codex/.crabpot-package/src/app-server/dynamic-tools.ts", "plugins/codex/.crabpot-package/src/app-server/elicitation-bridge.ts", "plugins/codex/.crabpot-package/src/app-server/event-projector.ts", @@ -13455,7 +23201,8 @@ "plugins/codex/.crabpot-package/src/migration/plan.ts", "plugins/codex/.crabpot-package/src/migration/provider.ts", "plugins/codex/.crabpot-package/src/migration/source.ts", - "plugins/codex/.crabpot-package/src/migration/targets.ts" + "plugins/codex/.crabpot-package/src/migration/targets.ts", + "plugins/codex/.crabpot-package/test-api.ts" ], "pluginManifests": [ { @@ -13496,7 +23243,7 @@ "package": { "path": "plugins/codex/.crabpot-package/package.json", "name": "@openclaw/codex", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -13521,8 +23268,8 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.5.1-beta.1", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -13534,6 +23281,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -13549,7 +23297,7 @@ { "path": "plugins/codex/.crabpot-package/package.json", "name": "@openclaw/codex", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -13574,8 +23322,8 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.5.1-beta.1", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -13587,6 +23335,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -13641,14 +23390,14 @@ { "specifier": "openclaw/plugin-sdk/agent-harness", "file": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts", - "line": 110, - "ref": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts:110" + "line": 106, + "ref": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts:106" }, { "specifier": "openclaw/plugin-sdk/agent-harness", "file": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts", - "line": 1356, - "ref": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts:1356" + "line": 1406, + "ref": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts:1406" }, { "specifier": "openclaw/plugin-sdk/agent-harness", @@ -13725,8 +23474,8 @@ { "specifier": "openclaw/plugin-sdk/agent-harness-runtime", "file": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts", - "line": 38, - "ref": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts:38" + "line": 37, + "ref": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts:37" }, { "specifier": "openclaw/plugin-sdk/agent-harness-runtime", @@ -13749,8 +23498,8 @@ { "specifier": "openclaw/plugin-sdk/agent-harness-runtime", "file": "plugins/codex/.crabpot-package/src/app-server/transcript-mirror.ts", - "line": 11, - "ref": "plugins/codex/.crabpot-package/src/app-server/transcript-mirror.ts:11" + "line": 13, + "ref": "plugins/codex/.crabpot-package/src/app-server/transcript-mirror.ts:13" }, { "specifier": "openclaw/plugin-sdk/agent-harness-runtime", @@ -13764,6 +23513,12 @@ "line": 1, "ref": "plugins/codex/.crabpot-package/src/conversation-binding.ts:1" }, + { + "specifier": "openclaw/plugin-sdk/agent-harness-runtime", + "file": "plugins/codex/.crabpot-package/test-api.ts", + "line": 4, + "ref": "plugins/codex/.crabpot-package/test-api.ts:4" + }, { "specifier": "openclaw/plugin-sdk/agent-runtime", "file": "plugins/codex/.crabpot-package/src/app-server/auth-bridge.ts", @@ -13791,8 +23546,8 @@ { "specifier": "openclaw/plugin-sdk/diagnostic-runtime", "file": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts", - "line": 39, - "ref": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts:39" + "line": 38, + "ref": "plugins/codex/.crabpot-package/src/app-server/run-attempt.ts:38" }, { "specifier": "openclaw/plugin-sdk/media-understanding", @@ -14018,7 +23773,7 @@ "package": { "path": "plugins/diagnostics-prometheus/.crabpot-package/package.json", "name": "@openclaw/diagnostics-prometheus", - "version": "2026.5.1-beta.2", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -14037,14 +23792,20 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.4.25", - "buildOpenClawVersion": "2026.5.1-beta.2", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, - "install": null, + "install": { + "clawhubSpec": "clawhub:@openclaw/diagnostics-prometheus", + "npmSpec": "@openclaw/diagnostics-prometheus", + "defaultChoice": "clawhub", + "minHostVersion": ">=2026.4.25" + }, "release": { "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -14060,7 +23821,7 @@ { "path": "plugins/diagnostics-prometheus/.crabpot-package/package.json", "name": "@openclaw/diagnostics-prometheus", - "version": "2026.5.1-beta.2", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -14079,14 +23840,20 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.4.25", - "buildOpenClawVersion": "2026.5.1-beta.2", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, - "install": null, + "install": { + "clawhubSpec": "clawhub:@openclaw/diagnostics-prometheus", + "npmSpec": "@openclaw/diagnostics-prometheus", + "defaultChoice": "clawhub", + "minHostVersion": ">=2026.4.25" + }, "release": { "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -14177,50 +23944,26 @@ { "name": "definePluginEntry", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 585, - "ref": "plugins/google-meet/.crabpot-package/index.ts:585" + "line": 657, + "ref": "plugins/google-meet/.crabpot-package/index.ts:657" }, { "name": "registerCli", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 1024, - "ref": "plugins/google-meet/.crabpot-package/index.ts:1024" + "line": 1149, + "ref": "plugins/google-meet/.crabpot-package/index.ts:1149" }, { "name": "registerGatewayMethod", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 631, - "ref": "plugins/google-meet/.crabpot-package/index.ts:631" + "line": 703, + "ref": "plugins/google-meet/.crabpot-package/index.ts:703" }, { "name": "registerGatewayMethod", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 652, - "ref": "plugins/google-meet/.crabpot-package/index.ts:652" - }, - { - "name": "registerGatewayMethod", - "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 674, - "ref": "plugins/google-meet/.crabpot-package/index.ts:674" - }, - { - "name": "registerGatewayMethod", - "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 686, - "ref": "plugins/google-meet/.crabpot-package/index.ts:686" - }, - { - "name": "registerGatewayMethod", - "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 704, - "ref": "plugins/google-meet/.crabpot-package/index.ts:704" - }, - { - "name": "registerGatewayMethod", - "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 722, - "ref": "plugins/google-meet/.crabpot-package/index.ts:722" + "line": 724, + "ref": "plugins/google-meet/.crabpot-package/index.ts:724" }, { "name": "registerGatewayMethod", @@ -14231,53 +23974,91 @@ { "name": "registerGatewayMethod", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 768, - "ref": "plugins/google-meet/.crabpot-package/index.ts:768" + "line": 758, + "ref": "plugins/google-meet/.crabpot-package/index.ts:758" }, { "name": "registerGatewayMethod", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 792, - "ref": "plugins/google-meet/.crabpot-package/index.ts:792" + "line": 776, + "ref": "plugins/google-meet/.crabpot-package/index.ts:776" }, { "name": "registerGatewayMethod", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 817, - "ref": "plugins/google-meet/.crabpot-package/index.ts:817" + "line": 795, + "ref": "plugins/google-meet/.crabpot-package/index.ts:795" }, { "name": "registerGatewayMethod", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 828, - "ref": "plugins/google-meet/.crabpot-package/index.ts:828" + "line": 819, + "ref": "plugins/google-meet/.crabpot-package/index.ts:819" }, { "name": "registerGatewayMethod", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 845, - "ref": "plugins/google-meet/.crabpot-package/index.ts:845" + "line": 841, + "ref": "plugins/google-meet/.crabpot-package/index.ts:841" }, { "name": "registerGatewayMethod", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 862, - "ref": "plugins/google-meet/.crabpot-package/index.ts:862" + "line": 865, + "ref": "plugins/google-meet/.crabpot-package/index.ts:865" + }, + { + "name": "registerGatewayMethod", + "file": "plugins/google-meet/.crabpot-package/index.ts", + "line": 890, + "ref": "plugins/google-meet/.crabpot-package/index.ts:890" + }, + { + "name": "registerGatewayMethod", + "file": "plugins/google-meet/.crabpot-package/index.ts", + "line": 901, + "ref": "plugins/google-meet/.crabpot-package/index.ts:901" + }, + { + "name": "registerGatewayMethod", + "file": "plugins/google-meet/.crabpot-package/index.ts", + "line": 918, + "ref": "plugins/google-meet/.crabpot-package/index.ts:918" + }, + { + "name": "registerGatewayMethod", + "file": "plugins/google-meet/.crabpot-package/index.ts", + "line": 937, + "ref": "plugins/google-meet/.crabpot-package/index.ts:937" + }, + { + "name": "registerGatewayMethod", + "file": "plugins/google-meet/.crabpot-package/index.ts", + "line": 954, + "ref": "plugins/google-meet/.crabpot-package/index.ts:954" + }, + { + "name": "registerGatewayMethod", + "file": "plugins/google-meet/.crabpot-package/index.ts", + "line": 975, + "ref": "plugins/google-meet/.crabpot-package/index.ts:975" }, { "name": "registerNodeHostCommand", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 1018, - "ref": "plugins/google-meet/.crabpot-package/index.ts:1018" + "line": 1143, + "ref": "plugins/google-meet/.crabpot-package/index.ts:1143" }, { "name": "registerTool", "file": "plugins/google-meet/.crabpot-package/index.ts", - "line": 883, - "ref": "plugins/google-meet/.crabpot-package/index.ts:883" + "line": 993, + "ref": "plugins/google-meet/.crabpot-package/index.ts:993" } ], - "manifestContracts": [], + "manifestContracts": [ + "tools" + ], "manifestFiles": [ "plugins/google-meet/.crabpot-package/openclaw.plugin.json" ], @@ -14315,13 +24096,16 @@ "activation", "commandAliases", "configSchema", + "contracts", "description", "enabledByDefault", "id", "name", "uiHints" ], - "contracts": [], + "contracts": [ + "tools" + ], "providerAuthEnvVars": {}, "channelEnvVars": {}, "activation": { @@ -14339,7 +24123,7 @@ "package": { "path": "plugins/google-meet/.crabpot-package/package.json", "name": "@openclaw/google-meet", - "version": "2026.5.1-beta.2", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -14363,8 +24147,8 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.4.25", - "buildOpenClawVersion": "2026.5.1-beta.2", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -14376,6 +24160,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -14391,7 +24176,7 @@ { "path": "plugins/google-meet/.crabpot-package/package.json", "name": "@openclaw/google-meet", - "version": "2026.5.1-beta.2", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -14415,8 +24200,8 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.4.25", - "buildOpenClawVersion": "2026.5.1-beta.2", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -14428,6 +24213,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -14784,7 +24570,9 @@ "ref": "plugins/diffs/.crabpot-package/src/plugin.ts:42" } ], - "manifestContracts": [], + "manifestContracts": [ + "tools" + ], "manifestFiles": [ "plugins/diffs/.crabpot-package/openclaw.plugin.json" ], @@ -14819,13 +24607,16 @@ "keys": [ "activation", "configSchema", + "contracts", "description", "id", "name", "skills", "uiHints" ], - "contracts": [], + "contracts": [ + "tools" + ], "providerAuthEnvVars": {}, "channelEnvVars": {}, "activation": { @@ -14837,7 +24628,7 @@ "package": { "path": "plugins/diffs/.crabpot-package/package.json", "name": "@openclaw/diffs", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -14861,8 +24652,8 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.4.30", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -14874,6 +24665,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -14889,7 +24681,7 @@ { "path": "plugins/diffs/.crabpot-package/package.json", "name": "@openclaw/diffs", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -14913,8 +24705,8 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.4.30", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -14926,6 +24718,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -15150,7 +24943,9 @@ "ref": "plugins/memory-lancedb/.crabpot-package/index.ts:757" } ], - "manifestContracts": [], + "manifestContracts": [ + "tools" + ], "manifestFiles": [ "plugins/memory-lancedb/.crabpot-package/openclaw.plugin.json" ], @@ -15171,11 +24966,14 @@ "keys": [ "activation", "configSchema", + "contracts", "id", "kind", "uiHints" ], - "contracts": [], + "contracts": [ + "tools" + ], "providerAuthEnvVars": {}, "channelEnvVars": {}, "activation": { @@ -15187,7 +24985,7 @@ "package": { "path": "plugins/memory-lancedb/.crabpot-package/package.json", "name": "@openclaw/memory-lancedb", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -15210,8 +25008,8 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.4.25", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -15223,6 +25021,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -15238,7 +25037,7 @@ { "path": "plugins/memory-lancedb/.crabpot-package/package.json", "name": "@openclaw/memory-lancedb", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -15261,8 +25060,8 @@ ], "runtimeExtensions": [], "setupEntry": null, - "compatPluginApi": ">=2026.4.25", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -15274,6 +25073,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -15397,10 +25197,17 @@ "hooks": [], "hookDetails": [], "registrations": [ + "defineBundledChannelEntry", "registerCommand", "registerTool" ], "registrationDetails": [ + { + "name": "defineBundledChannelEntry", + "file": "plugins/openclaw-qqbot/.crabpot-package/index.ts", + "line": 15, + "ref": "plugins/openclaw-qqbot/.crabpot-package/index.ts:15" + }, { "name": "registerCommand", "file": "plugins/openclaw-qqbot/.crabpot-package/src/bridge/commands/framework-registration.ts", @@ -15420,7 +25227,9 @@ "ref": "plugins/openclaw-qqbot/.crabpot-package/src/bridge/tools/remind.ts:90" } ], - "manifestContracts": [], + "manifestContracts": [ + "tools" + ], "manifestFiles": [ "plugins/openclaw-qqbot/.crabpot-package/openclaw.plugin.json" ], @@ -15576,11 +25385,14 @@ "channelEnvVars", "channels", "configSchema", + "contracts", "enabledByDefault", "id", "skills" ], - "contracts": [], + "contracts": [ + "tools" + ], "providerAuthEnvVars": {}, "channelEnvVars": { "qqbot": [ @@ -15597,7 +25409,7 @@ "package": { "path": "plugins/openclaw-qqbot/.crabpot-package/package.json", "name": "@openclaw/qqbot", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -15624,8 +25436,8 @@ ], "runtimeExtensions": [], "setupEntry": "./setup-entry.ts", - "compatPluginApi": ">=2026.4.27", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -15637,6 +25449,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -15659,7 +25472,7 @@ { "path": "plugins/openclaw-qqbot/.crabpot-package/package.json", "name": "@openclaw/qqbot", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -15686,8 +25499,8 @@ ], "runtimeExtensions": [], "setupEntry": "./setup-entry.ts", - "compatPluginApi": ">=2026.4.27", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -15699,6 +25512,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -16176,8 +25990,17 @@ "status": "ok", "hooks": [], "hookDetails": [], - "registrations": [], - "registrationDetails": [], + "registrations": [ + "defineBundledChannelEntry" + ], + "registrationDetails": [ + { + "name": "defineBundledChannelEntry", + "file": "plugins/whatsapp/.crabpot-package/index.ts", + "line": 3, + "ref": "plugins/whatsapp/.crabpot-package/index.ts:3" + } + ], "manifestContracts": [], "manifestFiles": [ "plugins/whatsapp/.crabpot-package/openclaw.plugin.json" @@ -16224,8 +26047,6 @@ "plugins/whatsapp/.crabpot-package/src/auto-reply/config.runtime.ts", "plugins/whatsapp/.crabpot-package/src/auto-reply/constants.ts", "plugins/whatsapp/.crabpot-package/src/auto-reply/deliver-reply.ts", - "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts", - "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.ts", "plugins/whatsapp/.crabpot-package/src/auto-reply/loggers.ts", "plugins/whatsapp/.crabpot-package/src/auto-reply/mentions.ts", "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor-state.ts", @@ -16251,7 +26072,6 @@ "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/process-message.ts", "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/runtime-api.ts", "plugins/whatsapp/.crabpot-package/src/auto-reply/reply-resolver.runtime.ts", - "plugins/whatsapp/.crabpot-package/src/auto-reply/session-snapshot.ts", "plugins/whatsapp/.crabpot-package/src/auto-reply/types.ts", "plugins/whatsapp/.crabpot-package/src/auto-reply/util.ts", "plugins/whatsapp/.crabpot-package/src/channel-actions.runtime.ts", @@ -16277,8 +26097,6 @@ "plugins/whatsapp/.crabpot-package/src/group-policy.ts", "plugins/whatsapp/.crabpot-package/src/group-session-contract.ts", "plugins/whatsapp/.crabpot-package/src/group-session-key.ts", - "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts", - "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.ts", "plugins/whatsapp/.crabpot-package/src/heartbeat.ts", "plugins/whatsapp/.crabpot-package/src/identity.ts", "plugins/whatsapp/.crabpot-package/src/inbound-policy.ts", @@ -16371,7 +26189,7 @@ "package": { "path": "plugins/whatsapp/.crabpot-package/package.json", "name": "@openclaw/whatsapp", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -16398,8 +26216,8 @@ ], "runtimeExtensions": [], "setupEntry": "./setup-entry.ts", - "compatPluginApi": ">=2026.4.25", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -16411,6 +26229,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -16433,7 +26252,7 @@ { "path": "plugins/whatsapp/.crabpot-package/package.json", "name": "@openclaw/whatsapp", - "version": "2026.5.1-beta.1", + "version": "2026.5.2-beta.2", "type": "module", "main": null, "npmPack": { @@ -16460,8 +26279,8 @@ ], "runtimeExtensions": [], "setupEntry": "./setup-entry.ts", - "compatPluginApi": ">=2026.4.25", - "buildOpenClawVersion": "2026.5.1-beta.1", + "compatPluginApi": ">=2026.5.2-beta.2", + "buildOpenClawVersion": "2026.5.2-beta.2", "buildPluginSdkVersion": null, "install": { "clawhubSpec": null, @@ -16473,6 +26292,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -16538,7 +26358,6 @@ "openclaw/plugin-sdk/channel-reply-pipeline", "openclaw/plugin-sdk/channel-send-result", "openclaw/plugin-sdk/channel-streaming", - "openclaw/plugin-sdk/channel-targets", "openclaw/plugin-sdk/channel-test-helpers", "openclaw/plugin-sdk/cli-runtime", "openclaw/plugin-sdk/command-detection", @@ -16551,7 +26370,6 @@ "openclaw/plugin-sdk/fetch-runtime", "openclaw/plugin-sdk/gateway-runtime", "openclaw/plugin-sdk/group-activation", - "openclaw/plugin-sdk/heartbeat-runtime", "openclaw/plugin-sdk/hook-runtime", "openclaw/plugin-sdk/inbound-reply-dispatch", "openclaw/plugin-sdk/lazy-runtime", @@ -16645,12 +26463,6 @@ "line": 1, "ref": "plugins/whatsapp/.crabpot-package/src/channel.ts:1" }, - { - "specifier": "openclaw/plugin-sdk/account-id", - "file": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts", - "line": 1, - "ref": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts:1" - }, { "specifier": "openclaw/plugin-sdk/account-id", "file": "plugins/whatsapp/.crabpot-package/src/runtime-api.ts", @@ -16675,12 +26487,6 @@ "line": 4, "ref": "plugins/whatsapp/.crabpot-package/auth-presence.ts:4" }, - { - "specifier": "openclaw/plugin-sdk/account-resolution", - "file": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts", - "line": 2, - "ref": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts:2" - }, { "specifier": "openclaw/plugin-sdk/account-resolution", "file": "plugins/whatsapp/.crabpot-package/src/normalize-target.ts", @@ -16705,12 +26511,6 @@ "line": 3, "ref": "plugins/whatsapp/.crabpot-package/src/targets-runtime.ts:3" }, - { - "specifier": "openclaw/plugin-sdk/agent-runtime", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts", - "line": 1, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts:1" - }, { "specifier": "openclaw/plugin-sdk/agent-runtime", "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/runtime-api.ts", @@ -16957,12 +26757,6 @@ "line": 4, "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/group-gating.runtime.ts:4" }, - { - "specifier": "openclaw/plugin-sdk/channel-pairing", - "file": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts", - "line": 3, - "ref": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts:3" - }, { "specifier": "openclaw/plugin-sdk/channel-pairing", "file": "plugins/whatsapp/.crabpot-package/src/inbound/access-control.ts", @@ -17017,12 +26811,6 @@ "line": 11, "ref": "plugins/whatsapp/.crabpot-package/src/account-config.ts:11" }, - { - "specifier": "openclaw/plugin-sdk/channel-targets", - "file": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts", - "line": 4, - "ref": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts:4" - }, { "specifier": "openclaw/plugin-sdk/channel-test-helpers", "file": "plugins/whatsapp/.crabpot-package/src/test-helpers.ts", @@ -17179,12 +26967,6 @@ "line": 1, "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/message-line.ts:1" }, - { - "specifier": "openclaw/plugin-sdk/config-types", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/session-snapshot.ts", - "line": 1, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/session-snapshot.ts:1" - }, { "specifier": "openclaw/plugin-sdk/config-types", "file": "plugins/whatsapp/.crabpot-package/src/channel-actions.runtime.ts", @@ -17221,12 +27003,6 @@ "line": 6, "ref": "plugins/whatsapp/.crabpot-package/src/group-policy.ts:6" }, - { - "specifier": "openclaw/plugin-sdk/config-types", - "file": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts", - "line": 6, - "ref": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts:6" - }, { "specifier": "openclaw/plugin-sdk/config-types", "file": "plugins/whatsapp/.crabpot-package/src/inbound-policy.ts", @@ -17401,12 +27177,6 @@ "line": 7, "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/group-gating.runtime.ts:7" }, - { - "specifier": "openclaw/plugin-sdk/heartbeat-runtime", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts", - "line": 14, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts:14" - }, { "specifier": "openclaw/plugin-sdk/hook-runtime", "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/process-message.ts", @@ -17587,12 +27357,6 @@ "line": 7, "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/deliver-reply.ts:7" }, - { - "specifier": "openclaw/plugin-sdk/reply-payload", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts", - "line": 18, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts:18" - }, { "specifier": "openclaw/plugin-sdk/reply-payload", "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/runtime-api.ts", @@ -17623,12 +27387,6 @@ "line": 2, "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply.impl.ts:2" }, - { - "specifier": "openclaw/plugin-sdk/reply-runtime", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts", - "line": 26, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts:26" - }, { "specifier": "openclaw/plugin-sdk/reply-runtime", "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/last-route.ts", @@ -17665,12 +27423,6 @@ "line": 6, "ref": "plugins/whatsapp/.crabpot-package/src/auth-store.ts:6" }, - { - "specifier": "openclaw/plugin-sdk/routing", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts", - "line": 27, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts:27" - }, { "specifier": "openclaw/plugin-sdk/routing", "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor.ts", @@ -17719,12 +27471,6 @@ "line": 26, "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/runtime-api.ts:26" }, - { - "specifier": "openclaw/plugin-sdk/routing", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/session-snapshot.ts", - "line": 2, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/session-snapshot.ts:2" - }, { "specifier": "openclaw/plugin-sdk/routing", "file": "plugins/whatsapp/.crabpot-package/src/group-session-key.ts", @@ -17737,12 +27483,6 @@ "line": 15, "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/config.runtime.ts:15" }, - { - "specifier": "openclaw/plugin-sdk/runtime-config-snapshot", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts", - "line": 9, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts:9" - }, { "specifier": "openclaw/plugin-sdk/runtime-config-snapshot", "file": "plugins/whatsapp/.crabpot-package/src/login-qr.ts", @@ -17791,12 +27531,6 @@ "line": 8, "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/deliver-reply.ts:8" }, - { - "specifier": "openclaw/plugin-sdk/runtime-env", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts", - "line": 28, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts:28" - }, { "specifier": "openclaw/plugin-sdk/runtime-env", "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/loggers.ts", @@ -18019,24 +27753,12 @@ "line": 11, "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/config.runtime.ts:11" }, - { - "specifier": "openclaw/plugin-sdk/session-store-runtime", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts", - "line": 8, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts:8" - }, { "specifier": "openclaw/plugin-sdk/session-store-runtime", "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/group-activation.ts", "line": 3, "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/monitor/group-activation.ts:3" }, - { - "specifier": "openclaw/plugin-sdk/session-store-runtime", - "file": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts", - "line": 5, - "ref": "plugins/whatsapp/.crabpot-package/src/heartbeat-recipients.runtime.ts:5" - }, { "specifier": "openclaw/plugin-sdk/session-store-runtime", "file": "plugins/whatsapp/.crabpot-package/src/inbound-policy.ts", @@ -18151,18 +27873,6 @@ "line": 11, "ref": "plugins/whatsapp/.crabpot-package/src/accounts.ts:11" }, - { - "specifier": "openclaw/plugin-sdk/text-runtime", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts", - "line": 29, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.runtime.ts:29" - }, - { - "specifier": "openclaw/plugin-sdk/text-runtime", - "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.ts", - "line": 1, - "ref": "plugins/whatsapp/.crabpot-package/src/auto-reply/heartbeat-runner.ts:1" - }, { "specifier": "openclaw/plugin-sdk/text-runtime", "file": "plugins/whatsapp/.crabpot-package/src/auto-reply/util.ts", @@ -18404,6 +28114,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -18452,6 +28163,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -18743,6 +28455,9 @@ "buildPluginSdkVersion": "2026.3.13", "install": null, "release": null, + "unsupportedMetadata": [ + "openclaw.bundle" + ], "entrypoints": [ { "kind": "extension", @@ -18805,6 +28520,9 @@ "buildPluginSdkVersion": "2026.3.13", "install": null, "release": null, + "unsupportedMetadata": [ + "openclaw.bundle" + ], "entrypoints": [ { "kind": "extension", @@ -18959,6 +28677,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -19013,6 +28732,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -19150,10 +28870,17 @@ "hooks": [], "hookDetails": [], "registrations": [ + "defineBundledChannelEntry", "registerChannel", "registerGatewayMethod" ], "registrationDetails": [ + { + "name": "defineBundledChannelEntry", + "file": "plugins/dingtalk-connector/entry-bundled.ts", + "line": 13, + "ref": "plugins/dingtalk-connector/entry-bundled.ts:13" + }, { "name": "registerChannel", "file": "plugins/dingtalk-connector/index.ts", @@ -19391,6 +29118,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -19458,6 +29186,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -19824,6 +29553,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -19886,6 +29616,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -20077,6 +29808,7 @@ "hookDetails": [], "registrations": [ "createChatChannelPlugin", + "defineBundledChannelEntry", "registerCommand", "registerTool" ], @@ -20093,6 +29825,18 @@ "line": 32, "ref": "plugins/yuanbao/.crabpot-package/src/channel.ts:32" }, + { + "name": "defineBundledChannelEntry", + "file": "plugins/yuanbao/.crabpot-package/dist/index.js", + "line": 38, + "ref": "plugins/yuanbao/.crabpot-package/dist/index.js:38" + }, + { + "name": "defineBundledChannelEntry", + "file": "plugins/yuanbao/.crabpot-package/index.ts", + "line": 63, + "ref": "plugins/yuanbao/.crabpot-package/index.ts:63" + }, { "name": "registerCommand", "file": "plugins/yuanbao/.crabpot-package/dist/index.js", @@ -20468,6 +30212,9 @@ "minHostVersion": ">=2026.4.14" }, "release": null, + "unsupportedMetadata": [ + "openclaw.bundle" + ], "entrypoints": [ { "kind": "extension", @@ -20535,6 +30282,9 @@ "minHostVersion": ">=2026.4.14" }, "release": null, + "unsupportedMetadata": [ + "openclaw.bundle" + ], "entrypoints": [ { "kind": "extension", @@ -21301,6 +31051,7 @@ "minHostVersion": ">=2026.3.22" }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -21358,6 +31109,7 @@ "minHostVersion": ">=2026.3.22" }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -21672,6 +31424,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -21724,6 +31477,7 @@ "minHostVersion": null }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -21901,6 +31655,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -21952,6 +31707,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -22305,6 +32061,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -22363,6 +32120,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -22481,6 +32239,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -22543,6 +32302,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -22710,6 +32470,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -22764,6 +32525,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -22884,6 +32646,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -22923,6 +32686,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -23025,6 +32789,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -23085,6 +32850,7 @@ "publishToClawHub": true, "publishToNpm": true }, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -23281,6 +33047,7 @@ "buildPluginSdkVersion": "2026.3.22", "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -23324,6 +33091,7 @@ "buildPluginSdkVersion": "2026.3.22", "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -23488,6 +33256,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -23536,6 +33305,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -23653,6 +33423,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -23702,6 +33473,7 @@ "buildPluginSdkVersion": null, "install": null, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -23860,6 +33632,7 @@ "minHostVersion": ">=2026.4.1" }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -23913,6 +33686,7 @@ "minHostVersion": ">=2026.4.1" }, "release": null, + "unsupportedMetadata": [], "entrypoints": [ { "kind": "extension", @@ -24346,103 +34120,79 @@ }, { "fixture": "bluebubbles", - "code": "sdk-export-missing", + "code": "package-install-metadata-incomplete", "level": "warning", - "message": "fixture imports plugin SDK aliases that are not exported by the target OpenClaw package", + "message": "package OpenClaw install metadata does not match advertised release targets", "evidence": [ - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/account-resolve.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/accounts.ts:2", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/actions.ts:13", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/attachments.ts:3", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/channel.ts:20", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/channel.ts:5", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/chat.ts:3", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/config-apply.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/config-schema.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/history.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/media-send.ts:6", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-debounce.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:19", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-shared.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor.ts:9", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/onboarding.ts:16", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/onboarding.ts:7", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/probe.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/reactions.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/request-url.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/runtime.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/send.ts:2", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/send.ts:3", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/targets.ts:8", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/types.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/types.ts:3" - ], - "compatRecord": "plugin-sdk-export-aliases" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] }, { "fixture": "bluebubbles", - "code": "package-plugin-api-compat-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "plugins/bluebubbles/.crabpot-package/package.json" + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" ] }, { "fixture": "diagnostics-otel", - "code": "sdk-export-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "fixture imports plugin SDK aliases that are not exported by the target OpenClaw package", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/src/service.ts:15", - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/src/service.ts:20" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "fixture": "diagnostics-otel", - "code": "package-plugin-api-compat-missing", - "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", - "evidence": [ - "plugins/diagnostics-otel/.crabpot-package/package.json" + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2" ] }, { "fixture": "discord", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "package OpenClaw install metadata does not match advertised release targets", "evidence": [ - "plugins/discord/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, + { + "fixture": "discord", + "code": "package-min-host-version-drift", + "level": "warning", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "fixture": "discord", + "code": "channel-env-vars", + "level": "warning", + "message": "manifest uses channelEnvVars legacy compatibility metadata", + "evidence": [ + "discord" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "lobster", + "code": "package-install-metadata-incomplete", + "level": "warning", + "message": "package OpenClaw install metadata does not match advertised release targets", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { "fixture": "lobster", - "code": "sdk-export-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "fixture imports plugin SDK aliases that are not exported by the target OpenClaw package", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/index.ts:5", - "openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/src/lobster-tool.ts:4", - "openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/src/windows-spawn.ts:5" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "fixture": "lobster", - "code": "package-plugin-api-compat-missing", - "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", - "evidence": [ - "plugins/lobster/.crabpot-package/package.json" + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2" ] }, { @@ -24495,317 +34245,254 @@ }, { "fixture": "msteams", - "code": "sdk-export-missing", + "code": "package-install-metadata-incomplete", "level": "warning", - "message": "fixture imports plugin SDK aliases that are not exported by the target OpenClaw package", + "message": "package OpenClaw install metadata does not match advertised release targets", "evidence": [ - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/graph.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/payload.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/remote-media.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/shared.ts:7", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/shared.ts:8", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/channel.ts:18", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/channel.ts:9", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/directory-live.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/file-lock.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/graph.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/media-helpers.ts:11", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/messenger.ts:10", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor-handler.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:22", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor.ts:10", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/onboarding.ts:18", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/onboarding.ts:8", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/outbound.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/policy.ts:10", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/policy.ts:20", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/probe.ts:5", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/reply-dispatcher.ts:9", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/secret-input.ts:5", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send-context.ts:5", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/store-fs.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/test-runtime.ts:3", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/token.ts:1" - ], - "compatRecord": "plugin-sdk-export-aliases" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] }, { "fixture": "msteams", - "code": "package-plugin-api-compat-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "plugins/msteams/.crabpot-package/package.json" + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "fixture": "msteams", + "code": "channel-env-vars", + "level": "warning", + "message": "manifest uses channelEnvVars legacy compatibility metadata", + "evidence": [ + "msteams" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "nextcloud-talk", + "code": "package-install-metadata-incomplete", + "level": "warning", + "message": "package OpenClaw install metadata does not match advertised release targets", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { "fixture": "nextcloud-talk", - "code": "sdk-export-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "fixture imports plugin SDK aliases that are not exported by the target OpenClaw package", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/accounts.ts:7", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/channel.ts:22", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts:10", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/inbound.ts:17", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/monitor.ts:8", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/onboarding.ts:16", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/policy.ts:14", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/policy.ts:6", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/replay-guard.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:3", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/types.ts:7" - ], - "compatRecord": "plugin-sdk-export-aliases" + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] }, { "fixture": "nextcloud-talk", - "code": "package-plugin-api-compat-missing", + "code": "channel-env-vars", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "manifest uses channelEnvVars legacy compatibility metadata", "evidence": [ - "plugins/nextcloud-talk/.crabpot-package/package.json" + "nextcloud-talk" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "nostr", + "code": "package-install-metadata-incomplete", + "level": "warning", + "message": "package OpenClaw install metadata does not match advertised release targets", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { "fixture": "nostr", - "code": "sdk-export-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "fixture imports plugin SDK aliases that are not exported by the target OpenClaw package", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/channel.ts:9", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/config-schema.ts:2", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/nostr-profile-http.ts:16", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/types.ts:6" - ], - "compatRecord": "plugin-sdk-export-aliases" + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] }, { "fixture": "nostr", - "code": "package-plugin-api-compat-missing", + "code": "channel-env-vars", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "manifest uses channelEnvVars legacy compatibility metadata", "evidence": [ - "plugins/nostr/.crabpot-package/package.json" + "nostr" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "voice-call", + "code": "package-install-metadata-incomplete", + "level": "warning", + "message": "package OpenClaw install metadata does not match advertised release targets", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { "fixture": "voice-call", - "code": "sdk-export-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "fixture imports plugin SDK aliases that are not exported by the target OpenClaw package", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/index.ts:5", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/cli.ts:5", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/config.ts:6", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/providers/shared/guarded-json-api.ts:1", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/providers/tts-openai.ts:1", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/webhook.ts:7" - ], - "compatRecord": "plugin-sdk-export-aliases" + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] }, { "fixture": "voice-call", - "code": "package-plugin-api-compat-missing", + "code": "channel-env-vars", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "manifest uses channelEnvVars legacy compatibility metadata", "evidence": [ - "plugins/voice-call/.crabpot-package/package.json" + "voice-call" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "zalo", + "code": "package-install-metadata-incomplete", + "level": "warning", + "message": "package OpenClaw install metadata does not match advertised release targets", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { "fixture": "zalo", - "code": "sdk-export-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "fixture imports plugin SDK aliases that are not exported by the target OpenClaw package", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/accounts.ts:2", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/actions.ts:5", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/actions.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/channel.ts:14", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/channel.ts:34", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/config-schema.ts:7", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/group-access.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/group-access.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.ts:22", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.webhook.ts:18", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.webhook.ts:3", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/onboarding.ts:18", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/onboarding.ts:7", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/probe.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/send.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/status-issues.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/token.ts:3", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/types.ts:1" - ], - "compatRecord": "plugin-sdk-export-aliases" + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] }, { "fixture": "zalo", - "code": "package-plugin-api-compat-missing", + "code": "channel-env-vars", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "manifest uses channelEnvVars legacy compatibility metadata", "evidence": [ - "plugins/zalo/.crabpot-package/package.json" + "zalo" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "zalouser", + "code": "package-install-metadata-incomplete", + "level": "warning", + "message": "package OpenClaw install metadata does not match advertised release targets", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { "fixture": "zalouser", - "code": "package-plugin-api-compat-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "plugins/zalouser/.crabpot-package/package.json" + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "fixture": "zalouser", + "code": "channel-env-vars", + "level": "warning", + "message": "manifest uses channelEnvVars legacy compatibility metadata", + "evidence": [ + "zalouser" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "feishu", + "code": "package-install-metadata-incomplete", + "level": "warning", + "message": "package OpenClaw install metadata does not match advertised release targets", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { "fixture": "feishu", - "code": "sdk-export-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "fixture imports plugin SDK aliases that are not exported by the target OpenClaw package", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/accounts.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bitable.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bot.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bot.ts:15", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/card-action.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/channel.ts:13", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/channel.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/chat.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/dedup.ts:7", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/directory.ts:5", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/docx.ts:7", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/drive.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/dynamic-agent.ts:4", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/media.ts:4", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.account.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.startup.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.state.ts:9", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.transport.ts:9", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.webhook.test-helpers.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/onboarding.ts:20", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/onboarding.ts:8", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/outbound.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/perm.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/policy.ts:5", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/policy.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/reactions.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/reply-dispatcher.ts:8", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/send-target.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/send.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/streaming-card.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/tool-account.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/tool-factory-test-harness.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/types.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/typing.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/wiki.ts:2" - ], - "compatRecord": "plugin-sdk-export-aliases" + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2" + ] }, { "fixture": "feishu", - "code": "package-plugin-api-compat-missing", + "code": "channel-env-vars", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "manifest uses channelEnvVars legacy compatibility metadata", "evidence": [ - "plugins/feishu/.crabpot-package/package.json" + "feishu" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "tlon", + "code": "package-install-metadata-incomplete", + "level": "warning", + "message": "package OpenClaw install metadata does not match advertised release targets", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { "fixture": "tlon", - "code": "package-plugin-api-compat-missing", + "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "plugins/tlon/.crabpot-package/package.json" - ] - }, - { - "fixture": "tlon", - "code": "legacy-root-sdk-import", - "level": "warning", - "message": "fixture imports the root plugin SDK barrel", - "evidence": [ - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/channel.ts:12", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/channel.ts:7", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/config-schema.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/discovery.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/history.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/index.ts:2", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/index.ts:3", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/onboarding.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/onboarding.ts:9", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/runtime.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/types.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/auth.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/base-url.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/channel-client.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/channel-ops.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/context.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/fetch.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/fetch.ts:2", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/sse-client.ts:2" - ], - "compatRecord": "legacy-root-sdk-import" - }, - { - "fixture": "twitch", - "code": "package-plugin-api-compat-missing", - "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", - "evidence": [ - "plugins/twitch/.crabpot-package/package.json" + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" ] }, { "fixture": "twitch", - "code": "legacy-root-sdk-import", + "code": "package-install-metadata-incomplete", "level": "warning", - "message": "fixture imports the root plugin SDK barrel", + "message": "package OpenClaw install metadata does not match advertised release targets", "evidence": [ - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/config-schema.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/config.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/monitor.ts:8", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/monitor.ts:9", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/onboarding.ts:12", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/onboarding.ts:5", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/plugin.ts:8", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/plugin.ts:9", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/probe.ts:3", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/runtime.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/send.ts:8", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/status.ts:7", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/test-fixtures.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/twitch-client.ts:3" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, + { + "fixture": "twitch", + "code": "package-min-host-version-drift", + "level": "warning", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "fixture": "twitch", + "code": "channel-env-vars", + "level": "warning", + "message": "manifest uses channelEnvVars legacy compatibility metadata", + "evidence": [ + "twitch" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "channel-env-vars" }, { "fixture": "mattermost", @@ -24845,25 +34532,32 @@ }, { "fixture": "synology-chat", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "level": "warning", - "message": "package openclaw metadata does not declare compat.pluginApi", + "message": "package OpenClaw install metadata does not match advertised release targets", "evidence": [ - "plugins/synology-chat/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { "fixture": "synology-chat", - "code": "legacy-root-sdk-import", + "code": "package-min-host-version-drift", "level": "warning", - "message": "fixture imports the root plugin SDK barrel", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/src/channel.ts:12", - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/src/runtime.ts:7" + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "fixture": "synology-chat", + "code": "channel-env-vars", + "level": "warning", + "message": "manifest uses channelEnvVars legacy compatibility metadata", + "evidence": [ + "synology-chat" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "channel-env-vars" }, { "fixture": "brave-plugin", @@ -24878,10 +34572,10 @@ "fixture": "brave-plugin", "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw.install.minHostVersion does not match the target OpenClaw build version", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ "minHostVersion:>=2026.4.10", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { @@ -24907,20 +34601,20 @@ "fixture": "codex", "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw.install.minHostVersion does not match the target OpenClaw build version", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ "minHostVersion:>=2026.5.1-beta.1", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { "fixture": "diagnostics-prometheus", - "code": "package-install-metadata-incomplete", + "code": "package-min-host-version-drift", "level": "warning", - "message": "package OpenClaw install metadata does not match advertised release targets", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ - "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec", - "openclaw.release.publishToNpm requires openclaw.install.npmSpec" + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { @@ -24936,10 +34630,10 @@ "fixture": "google-meet", "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw.install.minHostVersion does not match the target OpenClaw build version", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ "minHostVersion:>=2026.4.20", - "buildOpenClawVersion:2026.5.1-beta.2" + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { @@ -24955,10 +34649,10 @@ "fixture": "diffs", "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw.install.minHostVersion does not match the target OpenClaw build version", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ "minHostVersion:>=2026.4.30", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { @@ -24974,10 +34668,10 @@ "fixture": "memory-lancedb", "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw.install.minHostVersion does not match the target OpenClaw build version", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ "minHostVersion:>=2026.4.10", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { @@ -25003,10 +34697,10 @@ "fixture": "openclaw-qqbot", "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw.install.minHostVersion does not match the target OpenClaw build version", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ "minHostVersion:>=2026.4.10", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { @@ -25032,10 +34726,10 @@ "fixture": "whatsapp", "code": "package-min-host-version-drift", "level": "warning", - "message": "package openclaw.install.minHostVersion does not match the target OpenClaw build version", + "message": "package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version", "evidence": [ "minHostVersion:>=2026.4.25", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { @@ -25057,6 +34751,15 @@ ], "compatRecord": "legacy-before-agent-start" }, + { + "fixture": "memory-tencentdb", + "code": "package-openclaw-unsupported-metadata", + "level": "warning", + "message": "package declares unsupported OpenClaw metadata", + "evidence": [ + "openclaw.bundle" + ] + }, { "fixture": "memory-tencentdb", "code": "conversation-access-hook", @@ -25182,6 +34885,15 @@ "plugins/yuanbao/.crabpot-package/package.json" ] }, + { + "fixture": "yuanbao", + "code": "package-openclaw-unsupported-metadata", + "level": "warning", + "message": "package declares unsupported OpenClaw metadata", + "evidence": [ + "openclaw.bundle" + ] + }, { "fixture": "yuanbao", "code": "channel-env-vars", @@ -25395,16 +35107,6 @@ ], "compatRecord": "legacy-root-sdk-import" }, - { - "fixture": "inworld-tts", - "code": "package-min-host-version-drift", - "level": "warning", - "message": "package openclaw.install.minHostVersion does not match the target OpenClaw build version", - "evidence": [ - "minHostVersion:>=2026.4.1", - "buildOpenClawVersion:2026.4.1" - ] - }, { "fixture": "inworld-tts", "code": "provider-auth-env-vars", @@ -25999,38 +35701,10 @@ "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/bluebubbles/.crabpot-package/index.ts" + "extension:plugins/bluebubbles/.crabpot-package/index.ts", + "setupEntry:plugins/bluebubbles/.crabpot-package/setup-entry.ts" ] }, - { - "fixture": "bluebubbles", - "code": "package-dependency-install-required", - "level": "suggestion", - "message": "package declares runtime dependencies that must be installed before cold import", - "evidence": [ - "zod @ plugins/bluebubbles/.crabpot-package/package.json" - ] - }, - { - "fixture": "bluebubbles", - "code": "registration-capture-gap", - "level": "suggestion", - "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", - "evidence": [ - "registerChannel @ plugins/bluebubbles/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "fixture": "bluebubbles", - "code": "channel-contract-probe", - "level": "suggestion", - "message": "add channel envelope, config-schema, and runtime metadata probes", - "evidence": [ - "registerChannel @ plugins/bluebubbles/.crabpot-package/index.ts:13" - ], - "compatRecord": "channel.runtime.envelope-config-metadata" - }, { "fixture": "diagnostics-otel", "code": "package-typescript-source-entrypoint", @@ -26065,7 +35739,7 @@ "level": "suggestion", "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", "evidence": [ - "registerService @ plugins/diagnostics-otel/.crabpot-package/index.ts:11" + "registerService @ plugins/diagnostics-otel/.crabpot-package/index.ts:9" ], "compatRecord": "api.capture.runtime-registrars" }, @@ -26075,28 +35749,24 @@ "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/discord/.crabpot-package/index.ts" + "extension:plugins/discord/.crabpot-package/index.ts", + "setupEntry:plugins/discord/.crabpot-package/setup-entry.ts" ] }, { "fixture": "discord", - "code": "registration-capture-gap", + "code": "package-dependency-install-required", "level": "suggestion", - "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", + "message": "package declares runtime dependencies that must be installed before cold import", "evidence": [ - "registerChannel @ plugins/discord/.crabpot-package/index.ts:14" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "fixture": "discord", - "code": "channel-contract-probe", - "level": "suggestion", - "message": "add channel envelope, config-schema, and runtime metadata probes", - "evidence": [ - "registerChannel @ plugins/discord/.crabpot-package/index.ts:14" - ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "@discordjs/voice @ plugins/discord/.crabpot-package/package.json", + "discord-api-types @ plugins/discord/.crabpot-package/package.json", + "https-proxy-agent @ plugins/discord/.crabpot-package/package.json", + "opusscript @ plugins/discord/.crabpot-package/package.json", + "typebox @ plugins/discord/.crabpot-package/package.json", + "undici @ plugins/discord/.crabpot-package/package.json", + "ws @ plugins/discord/.crabpot-package/package.json" + ] }, { "fixture": "lobster", @@ -26113,16 +35783,9 @@ "level": "suggestion", "message": "package declares runtime dependencies that must be installed before cold import", "evidence": [ - "@sinclair/typebox @ plugins/lobster/.crabpot-package/package.json" - ] - }, - { - "fixture": "lobster", - "code": "runtime-tool-capture", - "level": "suggestion", - "message": "tool shape is only visible after runtime registration capture", - "evidence": [ - "registerTool @ plugins/lobster/.crabpot-package/index.ts:9" + "@clawdbot/lobster @ plugins/lobster/.crabpot-package/package.json", + "ajv @ plugins/lobster/.crabpot-package/package.json", + "typebox @ plugins/lobster/.crabpot-package/package.json" ] }, { @@ -26174,7 +35837,8 @@ "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/msteams/.crabpot-package/index.ts" + "extension:plugins/msteams/.crabpot-package/index.ts", + "setupEntry:plugins/msteams/.crabpot-package/setup-entry.ts" ] }, { @@ -26183,27 +35847,22 @@ "level": "suggestion", "message": "package declares runtime dependencies that must be installed before cold import", "evidence": [ - "@microsoft/agents-hosting @ plugins/msteams/.crabpot-package/package.json", - "express @ plugins/msteams/.crabpot-package/package.json" + "@azure/identity @ plugins/msteams/.crabpot-package/package.json", + "@microsoft/teams.api @ plugins/msteams/.crabpot-package/package.json", + "@microsoft/teams.apps @ plugins/msteams/.crabpot-package/package.json", + "express @ plugins/msteams/.crabpot-package/package.json", + "jsonwebtoken @ plugins/msteams/.crabpot-package/package.json", + "jwks-rsa @ plugins/msteams/.crabpot-package/package.json", + "typebox @ plugins/msteams/.crabpot-package/package.json" ] }, - { - "fixture": "msteams", - "code": "registration-capture-gap", - "level": "suggestion", - "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", - "evidence": [ - "registerChannel @ plugins/msteams/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "msteams", "code": "channel-contract-probe", "level": "suggestion", "message": "add channel envelope, config-schema, and runtime metadata probes", "evidence": [ - "registerChannel @ plugins/msteams/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/msteams/.crabpot-package/src/channel.ts:406" ], "compatRecord": "channel.runtime.envelope-config-metadata" }, @@ -26213,7 +35872,8 @@ "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/nextcloud-talk/.crabpot-package/index.ts" + "extension:plugins/nextcloud-talk/.crabpot-package/index.ts", + "setupEntry:plugins/nextcloud-talk/.crabpot-package/setup-entry.ts" ] }, { @@ -26225,23 +35885,13 @@ "zod @ plugins/nextcloud-talk/.crabpot-package/package.json" ] }, - { - "fixture": "nextcloud-talk", - "code": "registration-capture-gap", - "level": "suggestion", - "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", - "evidence": [ - "registerChannel @ plugins/nextcloud-talk/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "nextcloud-talk", "code": "channel-contract-probe", "level": "suggestion", "message": "add channel envelope, config-schema, and runtime metadata probes", "evidence": [ - "registerChannel @ plugins/nextcloud-talk/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/nextcloud-talk/.crabpot-package/src/channel.ts:69" ], "compatRecord": "channel.runtime.envelope-config-metadata" }, @@ -26251,7 +35901,8 @@ "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/nostr/.crabpot-package/index.ts" + "extension:plugins/nostr/.crabpot-package/index.ts", + "setupEntry:plugins/nostr/.crabpot-package/setup-entry.ts" ] }, { @@ -26270,8 +35921,7 @@ "level": "suggestion", "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", "evidence": [ - "registerChannel @ plugins/nostr/.crabpot-package/index.ts:16", - "registerHttpRoute @ plugins/nostr/.crabpot-package/index.ts:64" + "registerHttpRoute @ plugins/nostr/.crabpot-package/index.ts:89" ], "compatRecord": "api.capture.runtime-registrars" }, @@ -26281,7 +35931,7 @@ "level": "suggestion", "message": "add channel envelope, config-schema, and runtime metadata probes", "evidence": [ - "registerChannel @ plugins/nostr/.crabpot-package/index.ts:16" + "createChatChannelPlugin @ plugins/nostr/.crabpot-package/src/channel.ts:88" ], "compatRecord": "channel.runtime.envelope-config-metadata" }, @@ -26300,10 +35950,9 @@ "level": "suggestion", "message": "package declares runtime dependencies that must be installed before cold import", "evidence": [ - "@sinclair/typebox @ plugins/voice-call/.crabpot-package/package.json", "commander @ plugins/voice-call/.crabpot-package/package.json", - "ws @ plugins/voice-call/.crabpot-package/package.json", - "zod @ plugins/voice-call/.crabpot-package/package.json" + "typebox @ plugins/voice-call/.crabpot-package/package.json", + "ws @ plugins/voice-call/.crabpot-package/package.json" ] }, { @@ -26312,32 +35961,28 @@ "level": "suggestion", "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", "evidence": [ - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:261", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:294", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:311", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:327", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:349", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:376", - "registerService @ plugins/voice-call/.crabpot-package/index.ts:532" + "registerConfigMigration @ plugins/voice-call/.crabpot-package/setup-api.ts:45", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:390", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:420", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:437", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:457", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:478", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:513", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:536", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:558", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:581", + "registerService @ plugins/voice-call/.crabpot-package/index.ts:748" ], "compatRecord": "api.capture.runtime-registrars" }, - { - "fixture": "voice-call", - "code": "runtime-tool-capture", - "level": "suggestion", - "message": "tool shape is only visible after runtime registration capture", - "evidence": [ - "registerTool @ plugins/voice-call/.crabpot-package/index.ts:399" - ] - }, { "fixture": "zalo", "code": "package-typescript-source-entrypoint", "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/zalo/.crabpot-package/index.ts" + "extension:plugins/zalo/.crabpot-package/index.ts", + "setupEntry:plugins/zalo/.crabpot-package/setup-entry.ts" ] }, { @@ -26346,27 +35991,16 @@ "level": "suggestion", "message": "package declares runtime dependencies that must be installed before cold import", "evidence": [ - "undici @ plugins/zalo/.crabpot-package/package.json", - "zod @ plugins/zalo/.crabpot-package/package.json" + "undici @ plugins/zalo/.crabpot-package/package.json" ] }, - { - "fixture": "zalo", - "code": "registration-capture-gap", - "level": "suggestion", - "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", - "evidence": [ - "registerChannel @ plugins/zalo/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "zalo", "code": "channel-contract-probe", "level": "suggestion", "message": "add channel envelope, config-schema, and runtime metadata probes", "evidence": [ - "registerChannel @ plugins/zalo/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/zalo/.crabpot-package/src/channel.ts:159" ], "compatRecord": "channel.runtime.envelope-config-metadata" }, @@ -26376,7 +36010,8 @@ "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/zalouser/.crabpot-package/index.ts" + "extension:plugins/zalouser/.crabpot-package/index.ts", + "setupEntry:plugins/zalouser/.crabpot-package/setup-entry.ts" ] }, { @@ -26385,47 +36020,28 @@ "level": "suggestion", "message": "package declares runtime dependencies that must be installed before cold import", "evidence": [ - "@sinclair/typebox @ plugins/zalouser/.crabpot-package/package.json", - "zca-js @ plugins/zalouser/.crabpot-package/package.json", - "zod @ plugins/zalouser/.crabpot-package/package.json" + "typebox @ plugins/zalouser/.crabpot-package/package.json", + "zca-js @ plugins/zalouser/.crabpot-package/package.json" ] }, - { - "fixture": "zalouser", - "code": "registration-capture-gap", - "level": "suggestion", - "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", - "evidence": [ - "registerChannel @ plugins/zalouser/.crabpot-package/index.ts:14" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "zalouser", "code": "channel-contract-probe", "level": "suggestion", "message": "add channel envelope, config-schema, and runtime metadata probes", "evidence": [ - "registerChannel @ plugins/zalouser/.crabpot-package/index.ts:14" + "createChatChannelPlugin @ plugins/zalouser/.crabpot-package/src/channel.ts:68" ], "compatRecord": "channel.runtime.envelope-config-metadata" }, - { - "fixture": "zalouser", - "code": "runtime-tool-capture", - "level": "suggestion", - "message": "tool shape is only visible after runtime registration capture", - "evidence": [ - "registerTool @ plugins/zalouser/.crabpot-package/index.ts:16" - ] - }, { "fixture": "feishu", "code": "package-typescript-source-entrypoint", "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/feishu/.crabpot-package/index.ts" + "extension:plugins/feishu/.crabpot-package/index.ts", + "setupEntry:plugins/feishu/.crabpot-package/setup-entry.ts" ] }, { @@ -26435,53 +36051,27 @@ "message": "package declares runtime dependencies that must be installed before cold import", "evidence": [ "@larksuiteoapi/node-sdk @ plugins/feishu/.crabpot-package/package.json", - "@sinclair/typebox @ plugins/feishu/.crabpot-package/package.json", - "https-proxy-agent @ plugins/feishu/.crabpot-package/package.json", - "zod @ plugins/feishu/.crabpot-package/package.json" + "typebox @ plugins/feishu/.crabpot-package/package.json" ] }, - { - "fixture": "feishu", - "code": "registration-capture-gap", - "level": "suggestion", - "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", - "evidence": [ - "registerChannel @ plugins/feishu/.crabpot-package/index.ts:55" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "feishu", "code": "channel-contract-probe", "level": "suggestion", "message": "add channel envelope, config-schema, and runtime metadata probes", "evidence": [ - "registerChannel @ plugins/feishu/.crabpot-package/index.ts:55" + "createChatChannelPlugin @ plugins/feishu/.crabpot-package/src/channel.ts:580" ], "compatRecord": "channel.runtime.envelope-config-metadata" }, - { - "fixture": "feishu", - "code": "runtime-tool-capture", - "level": "suggestion", - "message": "tool shape is only visible after runtime registration capture", - "evidence": [ - "registerTool @ plugins/feishu/.crabpot-package/src/bitable.ts:559", - "registerTool @ plugins/feishu/.crabpot-package/src/chat.ts:95", - "registerTool @ plugins/feishu/.crabpot-package/src/docx.ts:1262", - "registerTool @ plugins/feishu/.crabpot-package/src/docx.ts:1436", - "registerTool @ plugins/feishu/.crabpot-package/src/drive.ts:186", - "registerTool @ plugins/feishu/.crabpot-package/src/perm.ts:135", - "registerTool @ plugins/feishu/.crabpot-package/src/wiki.ts:174" - ] - }, { "fixture": "tlon", "code": "package-typescript-source-entrypoint", "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/tlon/.crabpot-package/index.ts" + "extension:plugins/tlon/.crabpot-package/index.ts", + "setupEntry:plugins/tlon/.crabpot-package/setup-entry.ts" ] }, { @@ -26490,26 +36080,19 @@ "level": "suggestion", "message": "package declares runtime dependencies that must be installed before cold import", "evidence": [ + "@aws-sdk/client-s3 @ plugins/tlon/.crabpot-package/package.json", + "@aws-sdk/s3-request-presigner @ plugins/tlon/.crabpot-package/package.json", + "@tloncorp/tlon-skill @ plugins/tlon/.crabpot-package/package.json", "@urbit/aura @ plugins/tlon/.crabpot-package/package.json" ] }, - { - "fixture": "tlon", - "code": "registration-capture-gap", - "level": "suggestion", - "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", - "evidence": [ - "registerChannel @ plugins/tlon/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "tlon", "code": "channel-contract-probe", "level": "suggestion", "message": "add channel envelope, config-schema, and runtime metadata probes", "evidence": [ - "registerChannel @ plugins/tlon/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/tlon/.crabpot-package/src/channel.ts:61" ], "compatRecord": "channel.runtime.envelope-config-metadata" }, @@ -26519,7 +36102,8 @@ "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/twitch/.crabpot-package/index.ts" + "extension:plugins/twitch/.crabpot-package/index.ts", + "setupEntry:plugins/twitch/.crabpot-package/setup-entry.ts" ] }, { @@ -26530,30 +36114,9 @@ "evidence": [ "@twurple/api @ plugins/twitch/.crabpot-package/package.json", "@twurple/auth @ plugins/twitch/.crabpot-package/package.json", - "@twurple/chat @ plugins/twitch/.crabpot-package/package.json", - "zod @ plugins/twitch/.crabpot-package/package.json" + "@twurple/chat @ plugins/twitch/.crabpot-package/package.json" ] }, - { - "fixture": "twitch", - "code": "registration-capture-gap", - "level": "suggestion", - "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", - "evidence": [ - "registerChannel @ plugins/twitch/.crabpot-package/index.ts:16" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "fixture": "twitch", - "code": "channel-contract-probe", - "level": "suggestion", - "message": "add channel envelope, config-schema, and runtime metadata probes", - "evidence": [ - "registerChannel @ plugins/twitch/.crabpot-package/index.ts:16" - ], - "compatRecord": "channel.runtime.envelope-config-metadata" - }, { "fixture": "mattermost", "code": "package-typescript-source-entrypoint", @@ -26589,7 +36152,8 @@ "level": "suggestion", "message": "package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout", "evidence": [ - "extension:plugins/synology-chat/.crabpot-package/index.ts" + "extension:plugins/synology-chat/.crabpot-package/index.ts", + "setupEntry:plugins/synology-chat/.crabpot-package/setup-entry.ts" ] }, { @@ -26601,23 +36165,13 @@ "zod @ plugins/synology-chat/.crabpot-package/package.json" ] }, - { - "fixture": "synology-chat", - "code": "registration-capture-gap", - "level": "suggestion", - "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", - "evidence": [ - "registerChannel @ plugins/synology-chat/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "synology-chat", "code": "channel-contract-probe", "level": "suggestion", "message": "add channel envelope, config-schema, and runtime metadata probes", "evidence": [ - "registerChannel @ plugins/synology-chat/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/synology-chat/.crabpot-package/src/channel.ts:209" ], "compatRecord": "channel.runtime.envelope-config-metadata" }, @@ -26707,32 +36261,25 @@ "level": "suggestion", "message": "future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations", "evidence": [ - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:631", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:652", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:674", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:686", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:704", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:722", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:703", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:724", "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:746", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:768", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:792", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:817", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:828", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:845", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:862", - "registerNodeHostCommand @ plugins/google-meet/.crabpot-package/index.ts:1018" + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:758", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:776", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:795", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:819", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:841", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:865", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:890", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:901", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:918", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:937", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:954", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:975", + "registerNodeHostCommand @ plugins/google-meet/.crabpot-package/index.ts:1143" ], "compatRecord": "api.capture.runtime-registrars" }, - { - "fixture": "google-meet", - "code": "runtime-tool-capture", - "level": "suggestion", - "message": "tool shape is only visible after runtime registration capture", - "evidence": [ - "registerTool @ plugins/google-meet/.crabpot-package/index.ts:883" - ] - }, { "fixture": "diffs", "code": "package-typescript-source-entrypoint", @@ -26764,15 +36311,6 @@ ], "compatRecord": "api.capture.runtime-registrars" }, - { - "fixture": "diffs", - "code": "runtime-tool-capture", - "level": "suggestion", - "message": "tool shape is only visible after runtime registration capture", - "evidence": [ - "registerTool @ plugins/diffs/.crabpot-package/src/plugin.ts:42" - ] - }, { "fixture": "memory-lancedb", "code": "package-typescript-source-entrypoint", @@ -26804,17 +36342,6 @@ ], "compatRecord": "api.capture.runtime-registrars" }, - { - "fixture": "memory-lancedb", - "code": "runtime-tool-capture", - "level": "suggestion", - "message": "tool shape is only visible after runtime registration capture", - "evidence": [ - "registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:643", - "registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:694", - "registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:757" - ] - }, { "fixture": "openclaw-qqbot", "code": "package-typescript-source-entrypoint", @@ -26848,16 +36375,6 @@ ], "compatRecord": "api.capture.runtime-registrars" }, - { - "fixture": "openclaw-qqbot", - "code": "runtime-tool-capture", - "level": "suggestion", - "message": "tool shape is only visible after runtime registration capture", - "evidence": [ - "registerTool @ plugins/openclaw-qqbot/.crabpot-package/src/bridge/tools/channel.ts:32", - "registerTool @ plugins/openclaw-qqbot/.crabpot-package/src/bridge/tools/remind.ts:90" - ] - }, { "fixture": "whatsapp", "code": "package-typescript-source-entrypoint", @@ -27498,36 +37015,6 @@ ], "compatRecord": "plugin-sdk-export-aliases" }, - { - "fixture": "bluebubbles", - "code": "missing-compat-record", - "level": "suggestion", - "message": "fixture depends on a compatibility behavior that is not represented in the target compat registry", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "fixture": "diagnostics-otel", - "code": "missing-compat-record", - "level": "suggestion", - "message": "fixture depends on a compatibility behavior that is not represented in the target compat registry", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "fixture": "lobster", - "code": "missing-compat-record", - "level": "suggestion", - "message": "fixture depends on a compatibility behavior that is not represented in the target compat registry", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, { "fixture": "matrix", "code": "missing-compat-record", @@ -27538,66 +37025,6 @@ ], "compatRecord": "plugin-sdk-export-aliases" }, - { - "fixture": "msteams", - "code": "missing-compat-record", - "level": "suggestion", - "message": "fixture depends on a compatibility behavior that is not represented in the target compat registry", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "fixture": "nextcloud-talk", - "code": "missing-compat-record", - "level": "suggestion", - "message": "fixture depends on a compatibility behavior that is not represented in the target compat registry", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "fixture": "nostr", - "code": "missing-compat-record", - "level": "suggestion", - "message": "fixture depends on a compatibility behavior that is not represented in the target compat registry", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "fixture": "voice-call", - "code": "missing-compat-record", - "level": "suggestion", - "message": "fixture depends on a compatibility behavior that is not represented in the target compat registry", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "fixture": "zalo", - "code": "missing-compat-record", - "level": "suggestion", - "message": "fixture depends on a compatibility behavior that is not represented in the target compat registry", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "fixture": "feishu", - "code": "missing-compat-record", - "level": "suggestion", - "message": "fixture depends on a compatibility behavior that is not represented in the target compat registry", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, { "fixture": "yuanbao", "code": "missing-compat-record", @@ -27620,54 +37047,6 @@ } ], "issues": [ - { - "id": "CRABPOT-3FC058B2", - "fixture": "bluebubbles", - "severity": "P0", - "owner": "core", - "code": "sdk-export-missing", - "decision": "core-compat-adapter", - "status": "blocking", - "issueClass": "live-issue", - "live": true, - "deprecated": false, - "compatStatus": "untracked", - "title": "bluebubbles: plugin SDK import aliases are missing from target package exports", - "evidence": [ - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/account-resolve.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/accounts.ts:2", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/actions.ts:13", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/attachments.ts:3", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/channel.ts:20", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/channel.ts:5", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/chat.ts:3", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/config-apply.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/config-schema.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/history.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/media-send.ts:6", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-debounce.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:19", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-shared.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor.ts:9", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/onboarding.ts:16", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/onboarding.ts:7", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/probe.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/reactions.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/request-url.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/runtime.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/send.ts:2", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/send.ts:3", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/targets.ts:8", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/types.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/types.ts:3" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, { "id": "CRABPOT-C3F02198", "fixture": "clawmetry", @@ -27684,85 +37063,8 @@ "evidence": [ "openclaw/plugin-sdk/diagnostics-otel @ plugins/clawmetry/clawhub-plugin/src/service.ts:2" ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-83E2D8D1", - "fixture": "diagnostics-otel", - "severity": "P0", - "owner": "core", - "code": "sdk-export-missing", - "decision": "core-compat-adapter", - "status": "blocking", - "issueClass": "live-issue", - "live": true, - "deprecated": false, - "compatStatus": "untracked", - "title": "diagnostics-otel: plugin SDK import aliases are missing from target package exports", - "evidence": [ - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/src/service.ts:15", - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/src/service.ts:20" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-F98F205D", - "fixture": "feishu", - "severity": "P0", - "owner": "core", - "code": "sdk-export-missing", - "decision": "core-compat-adapter", - "status": "blocking", - "issueClass": "live-issue", - "live": true, - "deprecated": false, - "compatStatus": "untracked", - "title": "feishu: plugin SDK import aliases are missing from target package exports", - "evidence": [ - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/accounts.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bitable.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bot.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bot.ts:15", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/card-action.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/channel.ts:13", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/channel.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/chat.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/dedup.ts:7", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/directory.ts:5", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/docx.ts:7", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/drive.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/dynamic-agent.ts:4", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/media.ts:4", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.account.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.startup.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.state.ts:9", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.transport.ts:9", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.webhook.test-helpers.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/onboarding.ts:20", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/onboarding.ts:8", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/outbound.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/perm.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/policy.ts:5", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/policy.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/reactions.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/reply-dispatcher.ts:8", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/send-target.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/send.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/streaming-card.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/tool-account.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/tool-factory-test-harness.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/types.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/typing.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/wiki.ts:2" - ], - "compatRecord": "plugin-sdk-export-aliases" + "compatRecord": "plugin-sdk-export-aliases", + "runtimeCoverage": null }, { "id": "CRABPOT-E2CB6C9A", @@ -27780,27 +37082,8 @@ "evidence": [ "openclaw/plugin-sdk/memory-core @ plugins/honcho/index.ts:11" ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-7C0D3290", - "fixture": "lobster", - "severity": "P0", - "owner": "core", - "code": "sdk-export-missing", - "decision": "core-compat-adapter", - "status": "blocking", - "issueClass": "live-issue", - "live": true, - "deprecated": false, - "compatStatus": "untracked", - "title": "lobster: plugin SDK import aliases are missing from target package exports", - "evidence": [ - "openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/index.ts:5", - "openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/src/lobster-tool.ts:4", - "openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/src/windows-spawn.ts:5" - ], - "compatRecord": "plugin-sdk-export-aliases" + "compatRecord": "plugin-sdk-export-aliases", + "runtimeCoverage": null }, { "id": "CRABPOT-05FB683E", @@ -27847,136 +37130,8 @@ "openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/tool-actions.ts:8", "openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/types.ts:1" ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-47353EE1", - "fixture": "msteams", - "severity": "P0", - "owner": "core", - "code": "sdk-export-missing", - "decision": "core-compat-adapter", - "status": "blocking", - "issueClass": "live-issue", - "live": true, - "deprecated": false, - "compatStatus": "untracked", - "title": "msteams: plugin SDK import aliases are missing from target package exports", - "evidence": [ - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/graph.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/payload.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/remote-media.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/shared.ts:7", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/shared.ts:8", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/channel.ts:18", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/channel.ts:9", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/directory-live.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/file-lock.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/graph.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/media-helpers.ts:11", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/messenger.ts:10", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor-handler.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:22", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor.ts:10", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/onboarding.ts:18", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/onboarding.ts:8", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/outbound.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/policy.ts:10", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/policy.ts:20", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/probe.ts:5", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/reply-dispatcher.ts:9", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/secret-input.ts:5", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send-context.ts:5", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/store-fs.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/test-runtime.ts:3", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/token.ts:1" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-6BADC9C5", - "fixture": "nextcloud-talk", - "severity": "P0", - "owner": "core", - "code": "sdk-export-missing", - "decision": "core-compat-adapter", - "status": "blocking", - "issueClass": "live-issue", - "live": true, - "deprecated": false, - "compatStatus": "untracked", - "title": "nextcloud-talk: plugin SDK import aliases are missing from target package exports", - "evidence": [ - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/accounts.ts:7", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/channel.ts:22", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts:10", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/inbound.ts:17", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/monitor.ts:8", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/onboarding.ts:16", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/policy.ts:14", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/policy.ts:6", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/replay-guard.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:3", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/types.ts:7" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-F1C9D4E1", - "fixture": "nostr", - "severity": "P0", - "owner": "core", - "code": "sdk-export-missing", - "decision": "core-compat-adapter", - "status": "blocking", - "issueClass": "live-issue", - "live": true, - "deprecated": false, - "compatStatus": "untracked", - "title": "nostr: plugin SDK import aliases are missing from target package exports", - "evidence": [ - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/channel.ts:9", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/config-schema.ts:2", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/nostr-profile-http.ts:16", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/types.ts:6" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-057A938D", - "fixture": "voice-call", - "severity": "P0", - "owner": "core", - "code": "sdk-export-missing", - "decision": "core-compat-adapter", - "status": "blocking", - "issueClass": "live-issue", - "live": true, - "deprecated": false, - "compatStatus": "untracked", - "title": "voice-call: plugin SDK import aliases are missing from target package exports", - "evidence": [ - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/index.ts:5", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/cli.ts:5", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/config.ts:6", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/providers/shared/guarded-json-api.ts:1", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/providers/tts-openai.ts:1", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/webhook.ts:7" - ], - "compatRecord": "plugin-sdk-export-aliases" + "compatRecord": "plugin-sdk-export-aliases", + "runtimeCoverage": null }, { "id": "CRABPOT-97F49BB1", @@ -27999,47 +37154,8 @@ "openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2", "openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2" ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-A0C67853", - "fixture": "zalo", - "severity": "P0", - "owner": "core", - "code": "sdk-export-missing", - "decision": "core-compat-adapter", - "status": "blocking", - "issueClass": "live-issue", - "live": true, - "deprecated": false, - "compatStatus": "untracked", - "title": "zalo: plugin SDK import aliases are missing from target package exports", - "evidence": [ - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/accounts.ts:2", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/actions.ts:5", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/actions.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/channel.ts:14", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/channel.ts:34", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/config-schema.ts:7", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/group-access.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/group-access.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.ts:22", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.webhook.ts:18", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.webhook.ts:3", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/onboarding.ts:18", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/onboarding.ts:7", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/probe.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/send.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/status-issues.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/token.ts:3", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/types.ts:1" - ], - "compatRecord": "plugin-sdk-export-aliases" + "compatRecord": "plugin-sdk-export-aliases", + "runtimeCoverage": null }, { "id": "CRABPOT-955F01E4", @@ -28062,43 +37178,8 @@ "registerGatewayMethod @ plugins/a2a-gateway/index.ts:669", "registerService @ plugins/a2a-gateway/index.ts:857" ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "id": "CRABPOT-8A581204", - "fixture": "bluebubbles", - "severity": "P1", - "owner": "core", - "code": "missing-compat-record", - "decision": "core-compat-adapter", - "status": "open", - "issueClass": "compat-gap", - "live": false, - "deprecated": false, - "compatStatus": "missing", - "title": "bluebubbles: compat-dependent behavior lacks registry coverage", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-4A1C71BD", - "fixture": "bluebubbles", - "severity": "P1", - "owner": "inspector", - "code": "registration-capture-gap", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "bluebubbles: runtime registrations need capture before contract judgment", - "evidence": [ - "registerChannel @ plugins/bluebubbles/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-08C6582D", @@ -28116,7 +37197,8 @@ "evidence": [ "plugin-sdk-export-aliases" ], - "compatRecord": "plugin-sdk-export-aliases" + "compatRecord": "plugin-sdk-export-aliases", + "runtimeCoverage": null }, { "id": "CRABPOT-FC01CA77", @@ -28134,7 +37216,8 @@ "evidence": [ "extension:./index.ts -> plugins/clawmetry/clawhub-plugin/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-CE344535", @@ -28152,7 +37235,8 @@ "evidence": [ "registerService @ plugins/clawmetry/clawhub-plugin/index.ts:9" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-F69491D6", @@ -28177,7 +37261,8 @@ "registerCommand @ plugins/clawrouter/src/index.ts:1800", "registerService @ plugins/clawrouter/src/index.ts:1809" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-8A2265CF", @@ -28195,7 +37280,8 @@ "evidence": [ "registerCommand @ plugins/codex/.crabpot-package/index.ts:33" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-5F421FDE", @@ -28216,7 +37302,8 @@ "registerInteractiveHandler @ plugins/codex-app-server/index.ts:38", "registerService @ plugins/codex-app-server/index.ts:12" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-FF26FA1F", @@ -28236,28 +37323,11 @@ "registerCommand @ plugins/connectclaw/packages/plugin/src/commands.ts:64", "registerService @ plugins/connectclaw/packages/plugin/src/hooks.ts:91" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { - "id": "CRABPOT-0589D758", - "fixture": "diagnostics-otel", - "severity": "P1", - "owner": "core", - "code": "missing-compat-record", - "decision": "core-compat-adapter", - "status": "open", - "issueClass": "compat-gap", - "live": false, - "deprecated": false, - "compatStatus": "missing", - "title": "diagnostics-otel: compat-dependent behavior lacks registry coverage", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-D2BBDA37", + "id": "CRABPOT-FEB27646", "fixture": "diagnostics-otel", "severity": "P1", "owner": "inspector", @@ -28270,9 +37340,10 @@ "compatStatus": "active", "title": "diagnostics-otel: runtime registrations need capture before contract judgment", "evidence": [ - "registerService @ plugins/diagnostics-otel/.crabpot-package/index.ts:11" + "registerService @ plugins/diagnostics-otel/.crabpot-package/index.ts:9" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-71B1EB35", @@ -28291,7 +37362,8 @@ "registerHttpRoute @ plugins/diagnostics-prometheus/.crabpot-package/index.ts:12", "registerService @ plugins/diagnostics-prometheus/.crabpot-package/index.ts:11" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-AF54D3F4", @@ -28309,7 +37381,8 @@ "evidence": [ "registerHttpRoute @ plugins/diffs/.crabpot-package/src/plugin.ts:57" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-CDA3D540", @@ -28340,64 +37413,11 @@ "registerGatewayMethod @ plugins/dingtalk-connector/src/gateway-methods.ts:652", "registerGatewayMethod @ plugins/dingtalk-connector/src/gateway-methods.ts:719" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { - "id": "CRABPOT-326A360C", - "fixture": "discord", - "severity": "P1", - "owner": "inspector", - "code": "registration-capture-gap", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "discord: runtime registrations need capture before contract judgment", - "evidence": [ - "registerChannel @ plugins/discord/.crabpot-package/index.ts:14" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "id": "CRABPOT-F33F32FD", - "fixture": "feishu", - "severity": "P1", - "owner": "core", - "code": "missing-compat-record", - "decision": "core-compat-adapter", - "status": "open", - "issueClass": "compat-gap", - "live": false, - "deprecated": false, - "compatStatus": "missing", - "title": "feishu: compat-dependent behavior lacks registry coverage", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-191C6050", - "fixture": "feishu", - "severity": "P1", - "owner": "inspector", - "code": "registration-capture-gap", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "feishu: runtime registrations need capture before contract judgment", - "evidence": [ - "registerChannel @ plugins/feishu/.crabpot-package/index.ts:55" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "id": "CRABPOT-ADD95FBB", + "id": "CRABPOT-E74EE868", "fixture": "google-meet", "severity": "P1", "owner": "inspector", @@ -28410,22 +37430,25 @@ "compatStatus": "active", "title": "google-meet: runtime registrations need capture before contract judgment", "evidence": [ - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:631", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:652", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:674", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:686", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:704", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:722", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:703", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:724", "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:746", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:768", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:792", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:817", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:828", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:845", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:862", - "registerNodeHostCommand @ plugins/google-meet/.crabpot-package/index.ts:1018" + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:758", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:776", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:795", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:819", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:841", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:865", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:890", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:901", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:918", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:937", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:954", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:975", + "registerNodeHostCommand @ plugins/google-meet/.crabpot-package/index.ts:1143" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-2D165A73", @@ -28444,7 +37467,8 @@ "agent_end @ plugins/honcho/hooks/capture.ts:151", "agent_end @ plugins/honcho/hooks/subagent.ts:34" ], - "compatRecord": "hook.llm-observer.privacy-payload" + "compatRecord": "hook.llm-observer.privacy-payload", + "runtimeCoverage": null }, { "id": "CRABPOT-EB60A808", @@ -28462,7 +37486,8 @@ "evidence": [ "plugin-sdk-export-aliases" ], - "compatRecord": "plugin-sdk-export-aliases" + "compatRecord": "plugin-sdk-export-aliases", + "runtimeCoverage": null }, { "id": "CRABPOT-C443A1E1", @@ -28481,7 +37506,8 @@ "registerMemoryPromptSection @ plugins/honcho/index.ts:97", "registerMemoryRuntime @ plugins/honcho/runtime.ts:274" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-644B7524", @@ -28504,7 +37530,8 @@ "registerCommand @ plugins/hyperspell/index.ts:57", "registerCommand @ plugins/hyperspell/index.ts:68" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-66F07BB5", @@ -28522,7 +37549,8 @@ "evidence": [ "before_tool_call @ plugins/kitchen-sink/src/generated-hooks.js:19" ], - "compatRecord": "hook.before_tool_call.terminal-block-approval" + "compatRecord": "hook.before_tool_call.terminal-block-approval", + "runtimeCoverage": null }, { "id": "CRABPOT-ADFE9067", @@ -28542,7 +37570,8 @@ "llm_input @ plugins/kitchen-sink/src/generated-hooks.js:25", "llm_output @ plugins/kitchen-sink/src/generated-hooks.js:26" ], - "compatRecord": "hook.llm-observer.privacy-payload" + "compatRecord": "hook.llm-observer.privacy-payload", + "runtimeCoverage": null }, { "id": "CRABPOT-427F399F", @@ -28594,7 +37623,8 @@ "registerService @ plugins/kitchen-sink/src/generated-registrars.js:42", "registerService @ plugins/kitchen-sink/src/kitchen-runtime.js:104" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-0E5CAC6E", @@ -28612,7 +37642,8 @@ "evidence": [ "registerChannel @ plugins/lightclawbot/.crabpot-package/dist/index.js:13" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-5D9C0F25", @@ -28631,25 +37662,8 @@ "llm_input @ plugins/llm-trace-phoenix/index.ts:154", "llm_output @ plugins/llm-trace-phoenix/index.ts:168" ], - "compatRecord": "hook.llm-observer.privacy-payload" - }, - { - "id": "CRABPOT-C21EC339", - "fixture": "lobster", - "severity": "P1", - "owner": "core", - "code": "missing-compat-record", - "decision": "core-compat-adapter", - "status": "open", - "issueClass": "compat-gap", - "live": false, - "deprecated": false, - "compatStatus": "missing", - "title": "lobster: compat-dependent behavior lacks registry coverage", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" + "compatRecord": "hook.llm-observer.privacy-payload", + "runtimeCoverage": null }, { "id": "CRABPOT-9F52FF3F", @@ -28668,7 +37682,8 @@ "registerCommand @ plugins/lossless-claw/src/plugin/index.ts:2055", "registerContextEngine @ plugins/lossless-claw/src/plugin/index.ts:2035" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-EF521B0C", @@ -28686,7 +37701,8 @@ "evidence": [ "plugin-sdk-export-aliases" ], - "compatRecord": "plugin-sdk-export-aliases" + "compatRecord": "plugin-sdk-export-aliases", + "runtimeCoverage": null }, { "id": "CRABPOT-6FE4C49C", @@ -28704,7 +37720,8 @@ "evidence": [ "registerChannel @ plugins/matrix/.crabpot-package/index.ts:18" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-C5C85DAF", @@ -28722,7 +37739,8 @@ "evidence": [ "registerChannel @ plugins/mattermost/.crabpot-package/index.ts:13" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-F6E89CBB", @@ -28740,7 +37758,8 @@ "evidence": [ "registerService @ plugins/mcp-adapter/index.ts:15" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-01AB7464", @@ -28758,7 +37777,8 @@ "evidence": [ "agent_end @ plugins/memory-lancedb/.crabpot-package/index.ts:1005" ], - "compatRecord": "hook.llm-observer.privacy-payload" + "compatRecord": "hook.llm-observer.privacy-payload", + "runtimeCoverage": null }, { "id": "CRABPOT-193E69FB", @@ -28777,7 +37797,8 @@ "registerService @ plugins/memory-lancedb/.crabpot-package/index.ts:1085", "registerService @ plugins/memory-lancedb/.crabpot-package/index.ts:586" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-8D2DD018", @@ -28795,7 +37816,8 @@ "evidence": [ "agent_end @ plugins/memory-tencentdb/.crabpot-package/index.ts:820" ], - "compatRecord": "hook.llm-observer.privacy-payload" + "compatRecord": "hook.llm-observer.privacy-payload", + "runtimeCoverage": null }, { "id": "CRABPOT-B1B58880", @@ -28813,7 +37835,8 @@ "evidence": [ "agent_end @ plugins/memos-cloud/index.js:515" ], - "compatRecord": "hook.llm-observer.privacy-payload" + "compatRecord": "hook.llm-observer.privacy-payload", + "runtimeCoverage": null }, { "id": "CRABPOT-2D2FD5A1", @@ -28831,7 +37854,8 @@ "evidence": [ "registerHook @ plugins/memos-cloud/index.js:467" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-B7E96EE7", @@ -28850,43 +37874,8 @@ "registerChannel @ plugins/mocrane-wecom/index.ts:31", "registerHttpRoute @ plugins/mocrane-wecom/index.ts:34" ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "id": "CRABPOT-F3AAB6DB", - "fixture": "msteams", - "severity": "P1", - "owner": "core", - "code": "missing-compat-record", - "decision": "core-compat-adapter", - "status": "open", - "issueClass": "compat-gap", - "live": false, - "deprecated": false, - "compatStatus": "missing", - "title": "msteams: compat-dependent behavior lacks registry coverage", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-33CA7705", - "fixture": "msteams", - "severity": "P1", - "owner": "inspector", - "code": "registration-capture-gap", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "msteams: runtime registrations need capture before contract judgment", - "evidence": [ - "registerChannel @ plugins/msteams/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-120FF1E0", @@ -28904,7 +37893,8 @@ "evidence": [ "before_tool_call @ plugins/nemoclaw/nemoclaw/src/index.ts:384" ], - "compatRecord": "hook.before_tool_call.terminal-block-approval" + "compatRecord": "hook.before_tool_call.terminal-block-approval", + "runtimeCoverage": null }, { "id": "CRABPOT-2DEF4272", @@ -28922,64 +37912,11 @@ "evidence": [ "registerCommand @ plugins/nemoclaw/nemoclaw/src/index.ts:336" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { - "id": "CRABPOT-4DB57CCE", - "fixture": "nextcloud-talk", - "severity": "P1", - "owner": "core", - "code": "missing-compat-record", - "decision": "core-compat-adapter", - "status": "open", - "issueClass": "compat-gap", - "live": false, - "deprecated": false, - "compatStatus": "missing", - "title": "nextcloud-talk: compat-dependent behavior lacks registry coverage", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-75AD4BFD", - "fixture": "nextcloud-talk", - "severity": "P1", - "owner": "inspector", - "code": "registration-capture-gap", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "nextcloud-talk: runtime registrations need capture before contract judgment", - "evidence": [ - "registerChannel @ plugins/nextcloud-talk/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "id": "CRABPOT-2B0BD203", - "fixture": "nostr", - "severity": "P1", - "owner": "core", - "code": "missing-compat-record", - "decision": "core-compat-adapter", - "status": "open", - "issueClass": "compat-gap", - "live": false, - "deprecated": false, - "compatStatus": "missing", - "title": "nostr: compat-dependent behavior lacks registry coverage", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-EB61F8D3", + "id": "CRABPOT-BF4A86FB", "fixture": "nostr", "severity": "P1", "owner": "inspector", @@ -28992,10 +37929,10 @@ "compatStatus": "active", "title": "nostr: runtime registrations need capture before contract judgment", "evidence": [ - "registerChannel @ plugins/nostr/.crabpot-package/index.ts:16", - "registerHttpRoute @ plugins/nostr/.crabpot-package/index.ts:64" + "registerHttpRoute @ plugins/nostr/.crabpot-package/index.ts:89" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-C22C5E7F", @@ -29013,7 +37950,8 @@ "evidence": [ "registerCommand @ plugins/openclaw-qqbot/.crabpot-package/src/bridge/commands/framework-registration.ts:23" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-6475B814", @@ -29031,7 +37969,8 @@ "evidence": [ "before_tool_call @ plugins/openclaw-telemetry/index.ts:12" ], - "compatRecord": "hook.before_tool_call.terminal-block-approval" + "compatRecord": "hook.before_tool_call.terminal-block-approval", + "runtimeCoverage": null }, { "id": "CRABPOT-F2AB8D9B", @@ -29049,7 +37988,8 @@ "evidence": [ "agent_end @ plugins/openclaw-telemetry/index.ts:62" ], - "compatRecord": "hook.llm-observer.privacy-payload" + "compatRecord": "hook.llm-observer.privacy-payload", + "runtimeCoverage": null }, { "id": "CRABPOT-1E70B745", @@ -29067,7 +38007,8 @@ "evidence": [ "registerService @ plugins/openclaw-telemetry/index.ts:10" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-AACD04BD", @@ -29085,7 +38026,8 @@ "evidence": [ "registerChannel @ plugins/openclaw-weixin/.crabpot-package/index.ts:22" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-88CD37FF", @@ -29103,7 +38045,8 @@ "evidence": [ "before_tool_call @ plugins/opik-openclaw/src/service/hooks/tool.ts:34" ], - "compatRecord": "hook.before_tool_call.terminal-block-approval" + "compatRecord": "hook.before_tool_call.terminal-block-approval", + "runtimeCoverage": null }, { "id": "CRABPOT-3B4F36FA", @@ -29123,7 +38066,8 @@ "llm_input @ plugins/opik-openclaw/src/service/hooks/llm.ts:39", "llm_output @ plugins/opik-openclaw/src/service/hooks/llm.ts:150" ], - "compatRecord": "hook.llm-observer.privacy-payload" + "compatRecord": "hook.llm-observer.privacy-payload", + "runtimeCoverage": null }, { "id": "CRABPOT-A8C0B484", @@ -29141,7 +38085,8 @@ "evidence": [ "registerService @ plugins/opik-openclaw/index.ts:16" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-2E059FBD", @@ -29159,7 +38104,8 @@ "evidence": [ "registerChannel @ plugins/qqbot/index.ts:16" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-77829940", @@ -29179,25 +38125,8 @@ "registerService @ plugins/secureclaw/secureclaw/src/index.ts:301", "registerService @ plugins/secureclaw/secureclaw/src/index.ts:307" ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "id": "CRABPOT-15EEF3F0", - "fixture": "synology-chat", - "severity": "P1", - "owner": "inspector", - "code": "registration-capture-gap", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "synology-chat: runtime registrations need capture before contract judgment", - "evidence": [ - "registerChannel @ plugins/synology-chat/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-5B7CB483", @@ -29215,64 +38144,11 @@ "evidence": [ "registerHttpRoute @ plugins/telnyx-sms/index.ts:259" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { - "id": "CRABPOT-20844AD1", - "fixture": "tlon", - "severity": "P1", - "owner": "inspector", - "code": "registration-capture-gap", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "tlon: runtime registrations need capture before contract judgment", - "evidence": [ - "registerChannel @ plugins/tlon/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "id": "CRABPOT-570BD5F1", - "fixture": "twitch", - "severity": "P1", - "owner": "inspector", - "code": "registration-capture-gap", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "twitch: runtime registrations need capture before contract judgment", - "evidence": [ - "registerChannel @ plugins/twitch/.crabpot-package/index.ts:16" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "id": "CRABPOT-B7991B31", - "fixture": "voice-call", - "severity": "P1", - "owner": "core", - "code": "missing-compat-record", - "decision": "core-compat-adapter", - "status": "open", - "issueClass": "compat-gap", - "live": false, - "deprecated": false, - "compatStatus": "missing", - "title": "voice-call: compat-dependent behavior lacks registry coverage", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-499BEE89", + "id": "CRABPOT-496CA7FD", "fixture": "voice-call", "severity": "P1", "owner": "inspector", @@ -29285,15 +38161,20 @@ "compatStatus": "active", "title": "voice-call: runtime registrations need capture before contract judgment", "evidence": [ - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:261", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:294", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:311", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:327", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:349", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:376", - "registerService @ plugins/voice-call/.crabpot-package/index.ts:532" + "registerConfigMigration @ plugins/voice-call/.crabpot-package/setup-api.ts:45", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:390", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:420", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:437", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:457", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:478", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:513", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:536", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:558", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:581", + "registerService @ plugins/voice-call/.crabpot-package/index.ts:748" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-5C061FD7", @@ -29311,7 +38192,8 @@ "evidence": [ "before_tool_call @ plugins/wecom/index.js:76" ], - "compatRecord": "hook.before_tool_call.terminal-block-approval" + "compatRecord": "hook.before_tool_call.terminal-block-approval", + "runtimeCoverage": null }, { "id": "CRABPOT-2B6998AF", @@ -29330,7 +38212,8 @@ "registerChannel @ plugins/wecom/index.js:27", "registerHttpRoute @ plugins/wecom/index.js:56" ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-FA6EA79E", @@ -29348,7 +38231,8 @@ "evidence": [ "plugin-sdk-export-aliases" ], - "compatRecord": "plugin-sdk-export-aliases" + "compatRecord": "plugin-sdk-export-aliases", + "runtimeCoverage": null }, { "id": "CRABPOT-16FB0ECC", @@ -29371,61 +38255,8 @@ "registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:32", "registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:33" ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "id": "CRABPOT-49B7B886", - "fixture": "zalo", - "severity": "P1", - "owner": "core", - "code": "missing-compat-record", - "decision": "core-compat-adapter", - "status": "open", - "issueClass": "compat-gap", - "live": false, - "deprecated": false, - "compatStatus": "missing", - "title": "zalo: compat-dependent behavior lacks registry coverage", - "evidence": [ - "plugin-sdk-export-aliases" - ], - "compatRecord": "plugin-sdk-export-aliases" - }, - { - "id": "CRABPOT-1EA89EC4", - "fixture": "zalo", - "severity": "P1", - "owner": "inspector", - "code": "registration-capture-gap", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "zalo: runtime registrations need capture before contract judgment", - "evidence": [ - "registerChannel @ plugins/zalo/.crabpot-package/index.ts:13" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "id": "CRABPOT-1F4272B9", - "fixture": "zalouser", - "severity": "P1", - "owner": "inspector", - "code": "registration-capture-gap", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "zalouser: runtime registrations need capture before contract judgment", - "evidence": [ - "registerChannel @ plugins/zalouser/.crabpot-package/index.ts:14" - ], - "compatRecord": "api.capture.runtime-registrars" + "compatRecord": "api.capture.runtime-registrars", + "runtimeCoverage": null }, { "id": "CRABPOT-6469330F", @@ -29443,7 +38274,8 @@ "evidence": [ "openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-892CF14F", @@ -29461,7 +38293,8 @@ "evidence": [ "defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-F5185BE0", @@ -29485,7 +38318,8 @@ "uuid @ plugins/a2a-gateway/package.json", "ws @ plugins/a2a-gateway/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-16E892BF", @@ -29504,7 +38338,8 @@ "package:1.4.0", "manifest:1.3.0" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-FDBB1C67", @@ -29522,7 +38357,8 @@ "evidence": [ "plugins/a2a-gateway/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-96D2E9F4", @@ -29540,7 +38376,8 @@ "evidence": [ "extension:plugins/a2a-gateway/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-654F01E7", @@ -29558,7 +38395,8 @@ "evidence": [ "registerTool @ plugins/a2a-gateway/index.ts:777" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-8A157BCD", @@ -29576,7 +38414,8 @@ "evidence": [ "defineChannelPluginEntry @ plugins/agentchat/integrations/openclaw-channel/src/channel.ts:333" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-90736EF4", @@ -29594,7 +38433,8 @@ "evidence": [ "agentchat" ], - "compatRecord": "channel-env-vars" + "compatRecord": "channel-env-vars", + "runtimeCoverage": null }, { "id": "CRABPOT-BEC462A4", @@ -29614,7 +38454,8 @@ "homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json", "icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-6A790CB4", @@ -29633,7 +38474,8 @@ "extension:./dist/index.js -> plugins/agentchat/integrations/openclaw-channel/dist/index.js", "setupEntry:./dist/setup-entry.js -> plugins/agentchat/integrations/openclaw-channel/dist/setup-entry.js" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-FD86481C", @@ -29655,7 +38497,8 @@ "ws @ plugins/agentchat/integrations/openclaw-channel/package.json", "zod @ plugins/agentchat/integrations/openclaw-channel/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-0CFF8B6F", @@ -29675,7 +38518,8 @@ "openclaw/plugin-sdk @ plugins/apify/src/index.ts:1", "openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-7BE519A9", @@ -29694,7 +38538,8 @@ "@sinclair/typebox @ plugins/apify/package.json", "apify-client @ plugins/apify/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-18D12186", @@ -29712,7 +38557,8 @@ "evidence": [ "extension:plugins/apify/src/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-93E9D53A", @@ -29730,64 +38576,50 @@ "evidence": [ "registerTool @ plugins/apify/src/index.ts:13" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-1B600CC1", - "fixture": "bluebubbles", - "severity": "P2", - "owner": "inspector", - "code": "channel-contract-probe", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "bluebubbles: channel runtime needs envelope/config probes", - "evidence": [ - "registerChannel @ plugins/bluebubbles/.crabpot-package/index.ts:13" - ], - "compatRecord": "channel.runtime.envelope-config-metadata" - }, - { - "id": "CRABPOT-384882C7", - "fixture": "bluebubbles", - "severity": "P2", - "owner": "inspector", - "code": "package-dependency-install-required", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "none", - "title": "bluebubbles: cold import requires dependency installation in an isolated workspace", - "evidence": [ - "zod @ plugins/bluebubbles/.crabpot-package/package.json" - ], - "compatRecord": null - }, - { - "id": "CRABPOT-61D83A25", + "id": "CRABPOT-63E8A4F5", "fixture": "bluebubbles", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "bluebubbles: plugin API compatibility range is missing", + "title": "bluebubbles: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/bluebubbles/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-06AF48C2", + "id": "CRABPOT-C92D259F", + "fixture": "bluebubbles", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "bluebubbles: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-1656B9D6", "fixture": "bluebubbles", "severity": "P2", "owner": "inspector", @@ -29800,9 +38632,11 @@ "compatStatus": "none", "title": "bluebubbles: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/bluebubbles/.crabpot-package/index.ts" + "extension:plugins/bluebubbles/.crabpot-package/index.ts", + "setupEntry:plugins/bluebubbles/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-B15AE8B8", @@ -29820,10 +38654,11 @@ "evidence": [ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-4D4E3CE7", + "id": "CRABPOT-43C95562", "fixture": "brave-plugin", "severity": "P2", "owner": "plugin", @@ -29837,9 +38672,10 @@ "title": "brave-plugin: OpenClaw package minimum host version drifts from build target", "evidence": [ "minHostVersion:>=2026.4.10", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-E6A66DD6", @@ -29857,7 +38693,8 @@ "evidence": [ "extension:plugins/brave-plugin/.crabpot-package/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-03806EC6", @@ -29875,7 +38712,8 @@ "evidence": [ "brave" ], - "compatRecord": "provider-auth-env-vars" + "compatRecord": "provider-auth-env-vars", + "runtimeCoverage": null }, { "id": "CRABPOT-4BCB1F63", @@ -29893,7 +38731,8 @@ "evidence": [ "runtimeExtension:./dist/index.js -> plugins/clawmetry/clawhub-plugin/dist/index.js" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-034E5504", @@ -29911,7 +38750,8 @@ "evidence": [ "node-fetch @ plugins/clawmetry/clawhub-plugin/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-94721C48", @@ -29930,7 +38770,8 @@ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec", "openclaw.release.publishToNpm requires openclaw.install.npmSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-EF6E7134", @@ -29948,7 +38789,8 @@ "evidence": [ "extension:plugins/clawmetry/clawhub-plugin/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-5B6D803B", @@ -29973,7 +38815,8 @@ "@x402/svm @ plugins/clawrouter/package.json", "viem @ plugins/clawrouter/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-66BDDE0E", @@ -29991,7 +38834,8 @@ "evidence": [ "plugins/clawrouter/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-0E8560B0", @@ -30009,7 +38853,8 @@ "evidence": [ "registerTool @ plugins/clawrouter/src/index.ts:1622" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-DDBC3CE5", @@ -30031,7 +38876,8 @@ "ws @ plugins/codex/.crabpot-package/package.json", "zod @ plugins/codex/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-082E8981", @@ -30049,10 +38895,11 @@ "evidence": [ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-5FDD79FF", + "id": "CRABPOT-332701E2", "fixture": "codex", "severity": "P2", "owner": "plugin", @@ -30066,9 +38913,10 @@ "title": "codex: OpenClaw package minimum host version drifts from build target", "evidence": [ "minHostVersion:>=2026.5.1-beta.1", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-4181BF87", @@ -30086,7 +38934,8 @@ "evidence": [ "extension:plugins/codex/.crabpot-package/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-A36ECE8E", @@ -30107,7 +38956,8 @@ "openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18", "openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-8654B213", @@ -30125,7 +38975,8 @@ "evidence": [ "ws @ plugins/codex-app-server/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-F8C8F1CD", @@ -30143,7 +38994,8 @@ "evidence": [ "extension:plugins/codex-app-server/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-B8753EFB", @@ -30164,7 +39016,8 @@ "openclaw/plugin-sdk @ plugins/composio/src/client.ts:1", "openclaw/plugin-sdk @ plugins/composio/src/tools.ts:1" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-D55F7CAE", @@ -30183,7 +39036,8 @@ "@modelcontextprotocol/sdk @ plugins/composio/package.json", "zod @ plugins/composio/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-9B97C0E4", @@ -30201,7 +39055,8 @@ "evidence": [ "plugins/composio/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-4701E507", @@ -30219,7 +39074,8 @@ "evidence": [ "extension:plugins/composio/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-17C49577", @@ -30237,7 +39093,8 @@ "evidence": [ "registerTool @ plugins/composio/src/tools.ts:89" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-52DE4B29", @@ -30255,7 +39112,8 @@ "evidence": [ "before_agent_start @ plugins/connectclaw/packages/plugin/src/hooks.ts:17" ], - "compatRecord": "legacy-before-agent-start" + "compatRecord": "legacy-before-agent-start", + "runtimeCoverage": null }, { "id": "CRABPOT-4320AA30", @@ -30277,7 +39135,8 @@ "openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/src/tools.ts:1", "openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/src/tools.ts:2" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-8DC3A4AE", @@ -30295,7 +39154,8 @@ "evidence": [ "plugins/connectclaw/packages/plugin/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-FF258127", @@ -30313,7 +39173,8 @@ "evidence": [ "extension:plugins/connectclaw/packages/plugin/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-3497E5D0", @@ -30331,7 +39192,8 @@ "evidence": [ "registerTool @ plugins/connectclaw/packages/plugin/src/tools.ts:6" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-48526384", @@ -30349,7 +39211,8 @@ "evidence": [ "defineChannelPluginEntry @ plugins/ddingtalk/index.ts:8" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-C5EBD95E", @@ -30368,7 +39231,8 @@ "dingtalk-stream @ plugins/ddingtalk/package.json", "zod @ plugins/ddingtalk/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-9464E307", @@ -30386,7 +39250,8 @@ "evidence": [ "plugins/ddingtalk/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-C5EE2B34", @@ -30404,7 +39269,8 @@ "evidence": [ "extension:plugins/ddingtalk/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-6A5F25AB", @@ -30432,25 +39298,28 @@ "@opentelemetry/sdk-trace-base @ plugins/diagnostics-otel/.crabpot-package/package.json", "@opentelemetry/semantic-conventions @ plugins/diagnostics-otel/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-7FCEFC3B", + "id": "CRABPOT-147A976B", "fixture": "diagnostics-otel", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-min-host-version-drift", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "diagnostics-otel: plugin API compatibility range is missing", + "title": "diagnostics-otel: OpenClaw package minimum host version drifts from build target", "evidence": [ - "plugins/diagnostics-otel/.crabpot-package/package.json" + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-824D24F1", @@ -30468,26 +39337,28 @@ "evidence": [ "extension:plugins/diagnostics-otel/.crabpot-package/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-BC649C37", + "id": "CRABPOT-8AC3D68B", "fixture": "diagnostics-prometheus", "severity": "P2", "owner": "plugin", - "code": "package-install-metadata-incomplete", + "code": "package-min-host-version-drift", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "diagnostics-prometheus: OpenClaw package install metadata is incomplete", + "title": "diagnostics-prometheus: OpenClaw package minimum host version drifts from build target", "evidence": [ - "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec", - "openclaw.release.publishToNpm requires openclaw.install.npmSpec" + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2-beta.2" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-9E6754A4", @@ -30505,7 +39376,8 @@ "evidence": [ "extension:plugins/diagnostics-prometheus/.crabpot-package/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-3B0D164B", @@ -30526,7 +39398,8 @@ "playwright-core @ plugins/diffs/.crabpot-package/package.json", "typebox @ plugins/diffs/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-DF8890AC", @@ -30544,10 +39417,11 @@ "evidence": [ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-2F164A9E", + "id": "CRABPOT-1BCD7FE0", "fixture": "diffs", "severity": "P2", "owner": "plugin", @@ -30561,9 +39435,10 @@ "title": "diffs: OpenClaw package minimum host version drifts from build target", "evidence": [ "minHostVersion:>=2026.4.30", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-4B8D8A36", @@ -30581,25 +39456,8 @@ "evidence": [ "extension:plugins/diffs/.crabpot-package/index.ts" ], - "compatRecord": null - }, - { - "id": "CRABPOT-E3D75074", - "fixture": "diffs", - "severity": "P2", - "owner": "inspector", - "code": "runtime-tool-capture", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "none", - "title": "diffs: runtime tool schema needs registration capture", - "evidence": [ - "registerTool @ plugins/diffs/.crabpot-package/src/plugin.ts:42" - ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-E7D8C35A", @@ -30617,7 +39475,8 @@ "evidence": [ "registerChannel @ plugins/dingtalk-connector/index.ts:74" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-54996C9F", @@ -30644,7 +39503,8 @@ "openclaw/plugin-sdk @ plugins/dingtalk-connector/src/runtime.ts:1", "openclaw/plugin-sdk @ plugins/dingtalk-connector/src/utils/agent.ts:8" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-F71CDAFE", @@ -30663,7 +39523,8 @@ "author @ plugins/dingtalk-connector/openclaw.plugin.json", "main @ plugins/dingtalk-connector/openclaw.plugin.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-88966F04", @@ -30681,7 +39542,8 @@ "evidence": [ "extension:./dist/index.mjs -> plugins/dingtalk-connector/dist/index.mjs" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-8D11BF11", @@ -30704,7 +39566,8 @@ "zod @ plugins/dingtalk-connector/package.json", "mammoth @ plugins/dingtalk-connector/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-6386F1CF", @@ -30722,46 +39585,94 @@ "evidence": [ "plugins/dingtalk-connector/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-7E191916", + "id": "CRABPOT-84EBFBCD", + "fixture": "discord", + "severity": "P2", + "owner": "core", + "code": "channel-env-vars", + "decision": "core-compat-adapter", + "status": "open", + "issueClass": "deprecation-warning", + "live": false, + "deprecated": true, + "compatStatus": "deprecated", + "title": "discord: channelEnvVars legacy manifest metadata must stay covered", + "evidence": [ + "discord" + ], + "compatRecord": "channel-env-vars", + "runtimeCoverage": null + }, + { + "id": "CRABPOT-DEA2B9D7", "fixture": "discord", "severity": "P2", "owner": "inspector", - "code": "channel-contract-probe", + "code": "package-dependency-install-required", "decision": "inspector-follow-up", "status": "open", "issueClass": "inspector-gap", "live": false, "deprecated": false, - "compatStatus": "active", - "title": "discord: channel runtime needs envelope/config probes", + "compatStatus": "none", + "title": "discord: cold import requires dependency installation in an isolated workspace", "evidence": [ - "registerChannel @ plugins/discord/.crabpot-package/index.ts:14" + "@discordjs/voice @ plugins/discord/.crabpot-package/package.json", + "discord-api-types @ plugins/discord/.crabpot-package/package.json", + "https-proxy-agent @ plugins/discord/.crabpot-package/package.json", + "opusscript @ plugins/discord/.crabpot-package/package.json", + "typebox @ plugins/discord/.crabpot-package/package.json", + "undici @ plugins/discord/.crabpot-package/package.json", + "ws @ plugins/discord/.crabpot-package/package.json" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-06ABF15C", + "id": "CRABPOT-C28C9288", "fixture": "discord", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "discord: plugin API compatibility range is missing", + "title": "discord: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/discord/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-92EF99FE", + "id": "CRABPOT-DF5DC758", + "fixture": "discord", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "discord: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-D1CA9E97", "fixture": "discord", "severity": "P2", "owner": "inspector", @@ -30774,12 +39685,14 @@ "compatStatus": "none", "title": "discord: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/discord/.crabpot-package/index.ts" + "extension:plugins/discord/.crabpot-package/index.ts", + "setupEntry:plugins/discord/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-A1DBDE3E", + "id": "CRABPOT-D4508761", "fixture": "feishu", "severity": "P2", "owner": "inspector", @@ -30792,12 +39705,32 @@ "compatStatus": "active", "title": "feishu: channel runtime needs envelope/config probes", "evidence": [ - "registerChannel @ plugins/feishu/.crabpot-package/index.ts:55" + "createChatChannelPlugin @ plugins/feishu/.crabpot-package/src/channel.ts:580" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { - "id": "CRABPOT-4A68714E", + "id": "CRABPOT-DE53593E", + "fixture": "feishu", + "severity": "P2", + "owner": "core", + "code": "channel-env-vars", + "decision": "core-compat-adapter", + "status": "open", + "issueClass": "deprecation-warning", + "live": false, + "deprecated": true, + "compatStatus": "deprecated", + "title": "feishu: channelEnvVars legacy manifest metadata must stay covered", + "evidence": [ + "feishu" + ], + "compatRecord": "channel-env-vars", + "runtimeCoverage": null + }, + { + "id": "CRABPOT-ADD8043B", "fixture": "feishu", "severity": "P2", "owner": "inspector", @@ -30811,32 +39744,52 @@ "title": "feishu: cold import requires dependency installation in an isolated workspace", "evidence": [ "@larksuiteoapi/node-sdk @ plugins/feishu/.crabpot-package/package.json", - "@sinclair/typebox @ plugins/feishu/.crabpot-package/package.json", - "https-proxy-agent @ plugins/feishu/.crabpot-package/package.json", - "zod @ plugins/feishu/.crabpot-package/package.json" + "typebox @ plugins/feishu/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-F22DA570", + "id": "CRABPOT-D2B6A60A", "fixture": "feishu", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "feishu: plugin API compatibility range is missing", + "title": "feishu: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/feishu/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-E720E234", + "id": "CRABPOT-53601C73", + "fixture": "feishu", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "feishu: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-8B9A082E", "fixture": "feishu", "severity": "P2", "owner": "inspector", @@ -30849,33 +39802,11 @@ "compatStatus": "none", "title": "feishu: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/feishu/.crabpot-package/index.ts" + "extension:plugins/feishu/.crabpot-package/index.ts", + "setupEntry:plugins/feishu/.crabpot-package/setup-entry.ts" ], - "compatRecord": null - }, - { - "id": "CRABPOT-030D7BDB", - "fixture": "feishu", - "severity": "P2", - "owner": "inspector", - "code": "runtime-tool-capture", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "none", - "title": "feishu: runtime tool schema needs registration capture", - "evidence": [ - "registerTool @ plugins/feishu/.crabpot-package/src/bitable.ts:559", - "registerTool @ plugins/feishu/.crabpot-package/src/chat.ts:95", - "registerTool @ plugins/feishu/.crabpot-package/src/docx.ts:1262", - "registerTool @ plugins/feishu/.crabpot-package/src/docx.ts:1436", - "registerTool @ plugins/feishu/.crabpot-package/src/drive.ts:186", - "registerTool @ plugins/feishu/.crabpot-package/src/perm.ts:135", - "registerTool @ plugins/feishu/.crabpot-package/src/wiki.ts:174" - ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-AF62E437", @@ -30894,7 +39825,8 @@ "commander @ plugins/google-meet/.crabpot-package/package.json", "typebox @ plugins/google-meet/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-59BF7ACE", @@ -30912,10 +39844,11 @@ "evidence": [ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-E464FF70", + "id": "CRABPOT-31A24289", "fixture": "google-meet", "severity": "P2", "owner": "plugin", @@ -30929,9 +39862,10 @@ "title": "google-meet: OpenClaw package minimum host version drifts from build target", "evidence": [ "minHostVersion:>=2026.4.20", - "buildOpenClawVersion:2026.5.1-beta.2" + "buildOpenClawVersion:2026.5.2-beta.2" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-6239C464", @@ -30949,25 +39883,8 @@ "evidence": [ "extension:plugins/google-meet/.crabpot-package/index.ts" ], - "compatRecord": null - }, - { - "id": "CRABPOT-B671591F", - "fixture": "google-meet", - "severity": "P2", - "owner": "inspector", - "code": "runtime-tool-capture", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "none", - "title": "google-meet: runtime tool schema needs registration capture", - "evidence": [ - "registerTool @ plugins/google-meet/.crabpot-package/index.ts:883" - ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-3DEA2CC2", @@ -30985,7 +39902,8 @@ "evidence": [ "@sinclair/typebox @ plugins/hasdata/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-1853BC94", @@ -31003,7 +39921,8 @@ "evidence": [ "extension:plugins/hasdata/src/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-1ABECD7E", @@ -31021,7 +39940,8 @@ "evidence": [ "hasdata" ], - "compatRecord": "provider-auth-env-vars" + "compatRecord": "provider-auth-env-vars", + "runtimeCoverage": null }, { "id": "CRABPOT-4A5B0532", @@ -31039,7 +39959,8 @@ "evidence": [ "before_agent_start @ plugins/honcho/hooks/subagent.ts:18" ], - "compatRecord": "legacy-before-agent-start" + "compatRecord": "legacy-before-agent-start", + "runtimeCoverage": null }, { "id": "CRABPOT-72D49A8F", @@ -31068,7 +39989,8 @@ "openclaw/plugin-sdk @ plugins/honcho/tools/search.ts:3", "openclaw/plugin-sdk @ plugins/honcho/tools/session.ts:3" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-DD3A3689", @@ -31086,7 +40008,8 @@ "evidence": [ "extension:./dist/index.js -> plugins/honcho/dist/index.js" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-3C107B65", @@ -31105,7 +40028,8 @@ "@honcho-ai/sdk @ plugins/honcho/package.json", "@sinclair/typebox @ plugins/honcho/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-8823C301", @@ -31129,7 +40053,8 @@ "registerTool @ plugins/honcho/tools/search.ts:8", "registerTool @ plugins/honcho/tools/session.ts:8" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-0FA8E73D", @@ -31149,7 +40074,8 @@ "openclaw/plugin-sdk @ plugins/hyperspell/graph/tools.ts:2", "openclaw/plugin-sdk @ plugins/hyperspell/index.ts:1" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-3D2F89ED", @@ -31169,7 +40095,8 @@ "@sinclair/typebox @ plugins/hyperspell/package.json", "hyperspell @ plugins/hyperspell/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-F12E15DE", @@ -31187,7 +40114,8 @@ "evidence": [ "extension:plugins/hyperspell/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-297E661B", @@ -31207,26 +40135,8 @@ "registerTool @ plugins/hyperspell/graph/tools.ts:52", "registerTool @ plugins/hyperspell/graph/tools.ts:95" ], - "compatRecord": null - }, - { - "id": "CRABPOT-D2C9AC0A", - "fixture": "inworld-tts", - "severity": "P2", - "owner": "plugin", - "code": "package-min-host-version-drift", - "decision": "plugin-upstream-fix", - "status": "open", - "issueClass": "upstream-metadata", - "live": false, - "deprecated": false, - "compatStatus": "none", - "title": "inworld-tts: OpenClaw package minimum host version drifts from build target", - "evidence": [ - "minHostVersion:>=2026.4.1", - "buildOpenClawVersion:2026.4.1" - ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-7C59D06F", @@ -31244,7 +40154,8 @@ "evidence": [ "extension:plugins/inworld-tts/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-CCABE384", @@ -31262,7 +40173,8 @@ "evidence": [ "inworld" ], - "compatRecord": "provider-auth-env-vars" + "compatRecord": "provider-auth-env-vars", + "runtimeCoverage": null }, { "id": "CRABPOT-313A25BE", @@ -31281,7 +40193,8 @@ "registerChannel @ plugins/kitchen-sink/src/generated-registrars.js:8", "registerChannel @ plugins/kitchen-sink/src/kitchen-runtime.js:55" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-AE96DE6C", @@ -31299,7 +40212,8 @@ "evidence": [ "before_agent_start @ plugins/kitchen-sink/src/generated-hooks.js:11" ], - "compatRecord": "legacy-before-agent-start" + "compatRecord": "legacy-before-agent-start", + "runtimeCoverage": null }, { "id": "CRABPOT-94CDB25C", @@ -31317,7 +40231,8 @@ "evidence": [ "openclaw/plugin-sdk @ plugins/kitchen-sink/src/generated-sdk-imports.ts:2" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-18604B74", @@ -31335,7 +40250,8 @@ "evidence": [ "registerChannel @ plugins/lightclawbot/.crabpot-package/dist/index.js:13" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-8B95396A", @@ -31353,7 +40269,8 @@ "evidence": [ "capabilities @ plugins/lightclawbot/.crabpot-package/openclaw.plugin.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-36ED5AB9", @@ -31371,7 +40288,8 @@ "evidence": [ "socket.io-client @ plugins/lightclawbot/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-84DB7953", @@ -31390,7 +40308,8 @@ "package:1.1.2", "manifest:1.0.0" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-A87C03BA", @@ -31408,7 +40327,8 @@ "evidence": [ "plugins/lightclawbot/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-4F060C14", @@ -31427,7 +40347,8 @@ "registerTool @ plugins/lightclawbot/.crabpot-package/dist/src/download-tool.js:49", "registerTool @ plugins/lightclawbot/.crabpot-package/dist/src/upload-tool.js:37" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-4CC6CA25", @@ -31445,7 +40366,8 @@ "evidence": [ "openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-15F8300A", @@ -31463,10 +40385,11 @@ "evidence": [ "extension:plugins/llm-trace-phoenix/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-BA76E1A3", + "id": "CRABPOT-41F87D36", "fixture": "lobster", "severity": "P2", "owner": "inspector", @@ -31479,27 +40402,51 @@ "compatStatus": "none", "title": "lobster: cold import requires dependency installation in an isolated workspace", "evidence": [ - "@sinclair/typebox @ plugins/lobster/.crabpot-package/package.json" + "@clawdbot/lobster @ plugins/lobster/.crabpot-package/package.json", + "ajv @ plugins/lobster/.crabpot-package/package.json", + "typebox @ plugins/lobster/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-45581B6F", + "id": "CRABPOT-1E31C55B", "fixture": "lobster", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "lobster: plugin API compatibility range is missing", + "title": "lobster: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/lobster/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-27F73333", + "fixture": "lobster", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "lobster: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-2977406C", @@ -31517,25 +40464,8 @@ "evidence": [ "extension:plugins/lobster/.crabpot-package/index.ts" ], - "compatRecord": null - }, - { - "id": "CRABPOT-6D4AE482", - "fixture": "lobster", - "severity": "P2", - "owner": "inspector", - "code": "runtime-tool-capture", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "none", - "title": "lobster: runtime tool schema needs registration capture", - "evidence": [ - "registerTool @ plugins/lobster/.crabpot-package/index.ts:9" - ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-B969EA17", @@ -31554,7 +40484,8 @@ "openclaw/plugin-sdk @ plugins/lossless-claw/src/openclaw-bridge.ts:21", "openclaw/plugin-sdk @ plugins/lossless-claw/src/openclaw-bridge.ts:26" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-1D5467C3", @@ -31572,7 +40503,8 @@ "evidence": [ "extension:./dist/index.js -> plugins/lossless-claw/dist/index.js" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-5D7CF58C", @@ -31593,7 +40525,8 @@ "@mariozechner/pi-ai @ plugins/lossless-claw/package.json", "@mariozechner/pi-coding-agent @ plugins/lossless-claw/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-8C83090A", @@ -31614,7 +40547,8 @@ "registerTool @ plugins/lossless-claw/src/plugin/index.ts:2043", "registerTool @ plugins/lossless-claw/src/plugin/index.ts:2046" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-AFC20078", @@ -31632,7 +40566,8 @@ "evidence": [ "registerChannel @ plugins/matrix/.crabpot-package/index.ts:18" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-81D45010", @@ -31655,7 +40590,8 @@ "music-metadata @ plugins/matrix/.crabpot-package/package.json", "zod @ plugins/matrix/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-0E6E830A", @@ -31673,7 +40609,8 @@ "evidence": [ "plugins/matrix/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-8830EFDA", @@ -31691,7 +40628,8 @@ "evidence": [ "extension:plugins/matrix/.crabpot-package/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-A4DB5E3B", @@ -31709,7 +40647,8 @@ "evidence": [ "registerChannel @ plugins/mattermost/.crabpot-package/index.ts:13" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-5C986716", @@ -31744,7 +40683,8 @@ "openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/runtime.ts:1", "openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/types.ts:1" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-58B58EAD", @@ -31762,7 +40702,8 @@ "evidence": [ "plugins/mattermost/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-22A6B3A6", @@ -31780,7 +40721,8 @@ "evidence": [ "extension:plugins/mattermost/.crabpot-package/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-22E35E29", @@ -31798,7 +40740,8 @@ "evidence": [ "@modelcontextprotocol/sdk @ plugins/mcp-adapter/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-4511EE11", @@ -31816,7 +40759,8 @@ "evidence": [ "plugins/mcp-adapter/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-6515DC5B", @@ -31834,7 +40778,8 @@ "evidence": [ "extension:plugins/mcp-adapter/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-B195BB7A", @@ -31852,7 +40797,8 @@ "evidence": [ "registerTool @ plugins/mcp-adapter/index.ts:30" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-BA46C5BB", @@ -31872,7 +40818,8 @@ "openai @ plugins/memory-lancedb/.crabpot-package/package.json", "typebox @ plugins/memory-lancedb/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-E01A7BFD", @@ -31890,10 +40837,11 @@ "evidence": [ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-4CB2E220", + "id": "CRABPOT-2B51C572", "fixture": "memory-lancedb", "severity": "P2", "owner": "plugin", @@ -31907,9 +40855,10 @@ "title": "memory-lancedb: OpenClaw package minimum host version drifts from build target", "evidence": [ "minHostVersion:>=2026.4.10", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-F481E229", @@ -31927,27 +40876,8 @@ "evidence": [ "extension:plugins/memory-lancedb/.crabpot-package/index.ts" ], - "compatRecord": null - }, - { - "id": "CRABPOT-A679E52B", - "fixture": "memory-lancedb", - "severity": "P2", - "owner": "inspector", - "code": "runtime-tool-capture", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "none", - "title": "memory-lancedb: runtime tool schema needs registration capture", - "evidence": [ - "registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:643", - "registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:694", - "registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:757" - ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-859F0FA0", @@ -31970,7 +40900,27 @@ "undici @ plugins/memory-tencentdb/.crabpot-package/package.json", "node-llama-cpp @ plugins/memory-tencentdb/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-F1491AEC", + "fixture": "memory-tencentdb", + "severity": "P2", + "owner": "plugin", + "code": "package-openclaw-unsupported-metadata", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "memory-tencentdb: package declares unsupported OpenClaw metadata", + "evidence": [ + "openclaw.bundle" + ], + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-C5CE2AD7", @@ -31988,7 +40938,8 @@ "evidence": [ "extension:plugins/memory-tencentdb/.crabpot-package/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-E4DFF1EE", @@ -32007,7 +40958,8 @@ "registerTool @ plugins/memory-tencentdb/.crabpot-package/index.ts:268", "registerTool @ plugins/memory-tencentdb/.crabpot-package/index.ts:365" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-C13A3115", @@ -32025,7 +40977,8 @@ "evidence": [ "before_agent_start @ plugins/memos-cloud/index.js:481" ], - "compatRecord": "legacy-before-agent-start" + "compatRecord": "legacy-before-agent-start", + "runtimeCoverage": null }, { "id": "CRABPOT-8063D1D1", @@ -32043,7 +40996,8 @@ "evidence": [ "main @ plugins/memos-cloud/openclaw.plugin.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-66D4DDD2", @@ -32061,7 +41015,8 @@ "evidence": [ "plugins/memos-cloud/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-67F01CBE", @@ -32079,7 +41034,8 @@ "evidence": [ "openclaw/plugin-sdk @ plugins/memu-engine/index.ts:1" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-34908E7A", @@ -32097,7 +41053,8 @@ "evidence": [ "plugins/memu-engine/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-334C8181", @@ -32115,7 +41072,8 @@ "evidence": [ "extension:plugins/memu-engine/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-364A2829", @@ -32133,7 +41091,8 @@ "evidence": [ "registerTool @ plugins/memu-engine/index.ts:1252" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-F90E7D63", @@ -32151,7 +41110,8 @@ "evidence": [ "registerChannel @ plugins/mocrane-wecom/index.ts:31" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-FF151B9D", @@ -32194,7 +41154,8 @@ "openclaw/plugin-sdk @ plugins/mocrane-wecom/src/shared/command-auth.ts:1", "openclaw/plugin-sdk @ plugins/mocrane-wecom/src/ws-adapter.ts:14" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-9D055C89", @@ -32216,7 +41177,8 @@ "undici @ plugins/mocrane-wecom/package.json", "zod @ plugins/mocrane-wecom/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-C2C0CF20", @@ -32234,7 +41196,8 @@ "evidence": [ "plugins/mocrane-wecom/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-7AE2275C", @@ -32252,7 +41215,8 @@ "evidence": [ "extension:plugins/mocrane-wecom/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-1C327002", @@ -32270,10 +41234,11 @@ "evidence": [ "registerTool @ plugins/mocrane-wecom/index.ts:43" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-F8051039", + "id": "CRABPOT-F9D3B332", "fixture": "msteams", "severity": "P2", "owner": "inspector", @@ -32286,12 +41251,32 @@ "compatStatus": "active", "title": "msteams: channel runtime needs envelope/config probes", "evidence": [ - "registerChannel @ plugins/msteams/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/msteams/.crabpot-package/src/channel.ts:406" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { - "id": "CRABPOT-990C4AEE", + "id": "CRABPOT-DE6D7DD7", + "fixture": "msteams", + "severity": "P2", + "owner": "core", + "code": "channel-env-vars", + "decision": "core-compat-adapter", + "status": "open", + "issueClass": "deprecation-warning", + "live": false, + "deprecated": true, + "compatStatus": "deprecated", + "title": "msteams: channelEnvVars legacy manifest metadata must stay covered", + "evidence": [ + "msteams" + ], + "compatRecord": "channel-env-vars", + "runtimeCoverage": null + }, + { + "id": "CRABPOT-FD490131", "fixture": "msteams", "severity": "P2", "owner": "inspector", @@ -32304,31 +41289,58 @@ "compatStatus": "none", "title": "msteams: cold import requires dependency installation in an isolated workspace", "evidence": [ - "@microsoft/agents-hosting @ plugins/msteams/.crabpot-package/package.json", - "express @ plugins/msteams/.crabpot-package/package.json" + "@azure/identity @ plugins/msteams/.crabpot-package/package.json", + "@microsoft/teams.api @ plugins/msteams/.crabpot-package/package.json", + "@microsoft/teams.apps @ plugins/msteams/.crabpot-package/package.json", + "express @ plugins/msteams/.crabpot-package/package.json", + "jsonwebtoken @ plugins/msteams/.crabpot-package/package.json", + "jwks-rsa @ plugins/msteams/.crabpot-package/package.json", + "typebox @ plugins/msteams/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-7381CCAA", + "id": "CRABPOT-216154B1", "fixture": "msteams", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "msteams: plugin API compatibility range is missing", + "title": "msteams: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/msteams/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-CA487B1B", + "id": "CRABPOT-51B1870D", + "fixture": "msteams", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "msteams: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-88577EEB", "fixture": "msteams", "severity": "P2", "owner": "inspector", @@ -32341,9 +41353,11 @@ "compatStatus": "none", "title": "msteams: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/msteams/.crabpot-package/index.ts" + "extension:plugins/msteams/.crabpot-package/index.ts", + "setupEntry:plugins/msteams/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-905635E3", @@ -32361,7 +41375,8 @@ "evidence": [ "before_agent_start @ plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474" ], - "compatRecord": "legacy-before-agent-start" + "compatRecord": "legacy-before-agent-start", + "runtimeCoverage": null }, { "id": "CRABPOT-8CD3E234", @@ -32379,7 +41394,8 @@ "evidence": [ "extension:./dist/index.js -> plugins/nemoclaw/nemoclaw/dist/index.js" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-0999AA2A", @@ -32401,7 +41417,8 @@ "tar @ plugins/nemoclaw/nemoclaw/package.json", "yaml @ plugins/nemoclaw/nemoclaw/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-3C95F2D4", @@ -32419,10 +41436,11 @@ "evidence": [ "plugins/nemoclaw/nemoclaw/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-4E152262", + "id": "CRABPOT-8AA051D6", "fixture": "nextcloud-talk", "severity": "P2", "owner": "inspector", @@ -32435,9 +41453,29 @@ "compatStatus": "active", "title": "nextcloud-talk: channel runtime needs envelope/config probes", "evidence": [ - "registerChannel @ plugins/nextcloud-talk/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/nextcloud-talk/.crabpot-package/src/channel.ts:69" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null + }, + { + "id": "CRABPOT-DB755455", + "fixture": "nextcloud-talk", + "severity": "P2", + "owner": "core", + "code": "channel-env-vars", + "decision": "core-compat-adapter", + "status": "open", + "issueClass": "deprecation-warning", + "live": false, + "deprecated": true, + "compatStatus": "deprecated", + "title": "nextcloud-talk: channelEnvVars legacy manifest metadata must stay covered", + "evidence": [ + "nextcloud-talk" + ], + "compatRecord": "channel-env-vars", + "runtimeCoverage": null }, { "id": "CRABPOT-1FA2566C", @@ -32455,28 +41493,50 @@ "evidence": [ "zod @ plugins/nextcloud-talk/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-69B8B52E", + "id": "CRABPOT-DFAE8350", "fixture": "nextcloud-talk", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "nextcloud-talk: plugin API compatibility range is missing", + "title": "nextcloud-talk: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/nextcloud-talk/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-7844B4E3", + "id": "CRABPOT-7D5A3EA8", + "fixture": "nextcloud-talk", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "nextcloud-talk: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-30AD9A03", "fixture": "nextcloud-talk", "severity": "P2", "owner": "inspector", @@ -32489,12 +41549,14 @@ "compatStatus": "none", "title": "nextcloud-talk: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/nextcloud-talk/.crabpot-package/index.ts" + "extension:plugins/nextcloud-talk/.crabpot-package/index.ts", + "setupEntry:plugins/nextcloud-talk/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-32C79F6A", + "id": "CRABPOT-D1C4AC21", "fixture": "nostr", "severity": "P2", "owner": "inspector", @@ -32507,9 +41569,29 @@ "compatStatus": "active", "title": "nostr: channel runtime needs envelope/config probes", "evidence": [ - "registerChannel @ plugins/nostr/.crabpot-package/index.ts:16" + "createChatChannelPlugin @ plugins/nostr/.crabpot-package/src/channel.ts:88" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null + }, + { + "id": "CRABPOT-3AB8335D", + "fixture": "nostr", + "severity": "P2", + "owner": "core", + "code": "channel-env-vars", + "decision": "core-compat-adapter", + "status": "open", + "issueClass": "deprecation-warning", + "live": false, + "deprecated": true, + "compatStatus": "deprecated", + "title": "nostr: channelEnvVars legacy manifest metadata must stay covered", + "evidence": [ + "nostr" + ], + "compatRecord": "channel-env-vars", + "runtimeCoverage": null }, { "id": "CRABPOT-18D68943", @@ -32528,28 +41610,50 @@ "nostr-tools @ plugins/nostr/.crabpot-package/package.json", "zod @ plugins/nostr/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-F87C0E5B", + "id": "CRABPOT-1EFB5A42", "fixture": "nostr", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "nostr: plugin API compatibility range is missing", + "title": "nostr: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/nostr/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-1993AA69", + "id": "CRABPOT-E83CD57B", + "fixture": "nostr", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "nostr: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-12B8387F", "fixture": "nostr", "severity": "P2", "owner": "inspector", @@ -32562,9 +41666,11 @@ "compatStatus": "none", "title": "nostr: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/nostr/.crabpot-package/index.ts" + "extension:plugins/nostr/.crabpot-package/index.ts", + "setupEntry:plugins/nostr/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-0D07667C", @@ -32582,7 +41688,8 @@ "evidence": [ "qqbot" ], - "compatRecord": "channel-env-vars" + "compatRecord": "channel-env-vars", + "runtimeCoverage": null }, { "id": "CRABPOT-97D3B902", @@ -32604,7 +41711,8 @@ "ws @ plugins/openclaw-qqbot/.crabpot-package/package.json", "zod @ plugins/openclaw-qqbot/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-E47E130F", @@ -32622,10 +41730,11 @@ "evidence": [ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-B0F02117", + "id": "CRABPOT-B88CF972", "fixture": "openclaw-qqbot", "severity": "P2", "owner": "plugin", @@ -32639,9 +41748,10 @@ "title": "openclaw-qqbot: OpenClaw package minimum host version drifts from build target", "evidence": [ "minHostVersion:>=2026.4.10", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-3FA3D61F", @@ -32660,26 +41770,8 @@ "extension:plugins/openclaw-qqbot/.crabpot-package/index.ts", "setupEntry:plugins/openclaw-qqbot/.crabpot-package/setup-entry.ts" ], - "compatRecord": null - }, - { - "id": "CRABPOT-C3AD2596", - "fixture": "openclaw-qqbot", - "severity": "P2", - "owner": "inspector", - "code": "runtime-tool-capture", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "none", - "title": "openclaw-qqbot: runtime tool schema needs registration capture", - "evidence": [ - "registerTool @ plugins/openclaw-qqbot/.crabpot-package/src/bridge/tools/channel.ts:32", - "registerTool @ plugins/openclaw-qqbot/.crabpot-package/src/bridge/tools/remind.ts:90" - ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-BAB79693", @@ -32697,7 +41789,8 @@ "evidence": [ "before_agent_start @ plugins/openclaw-telemetry/index.ts:53" ], - "compatRecord": "legacy-before-agent-start" + "compatRecord": "legacy-before-agent-start", + "runtimeCoverage": null }, { "id": "CRABPOT-BCDA5B47", @@ -32717,7 +41810,8 @@ "openclaw/plugin-sdk @ plugins/openclaw-telemetry/src/service.ts:1", "openclaw/plugin-sdk @ plugins/openclaw-telemetry/src/service.ts:2" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-A97EA054", @@ -32735,7 +41829,8 @@ "evidence": [ "plugins/openclaw-telemetry/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-5187C053", @@ -32753,7 +41848,8 @@ "evidence": [ "extension:plugins/openclaw-telemetry/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-2C061EE7", @@ -32771,7 +41867,8 @@ "evidence": [ "registerChannel @ plugins/openclaw-weixin/.crabpot-package/index.ts:22" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-D27E96E8", @@ -32790,7 +41887,8 @@ "qrcode-terminal @ plugins/openclaw-weixin/.crabpot-package/package.json", "zod @ plugins/openclaw-weixin/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-2EF6EB7E", @@ -32808,7 +41906,8 @@ "evidence": [ "plugins/openclaw-weixin/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-330EF0B5", @@ -32826,7 +41925,8 @@ "evidence": [ "extension:plugins/openclaw-weixin/.crabpot-package/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-F76EC24F", @@ -32852,7 +41952,8 @@ "openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1", "openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-5D328BF6", @@ -32870,7 +41971,8 @@ "evidence": [ "runtimeExtension:./dist/index.js -> plugins/opik-openclaw/dist/index.js" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-A11FBF07", @@ -32890,7 +41992,8 @@ "opik @ plugins/opik-openclaw/package.json", "zod @ plugins/opik-openclaw/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-FAEC3F71", @@ -32908,7 +42011,8 @@ "evidence": [ "extension:plugins/opik-openclaw/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-176DFA85", @@ -32926,7 +42030,8 @@ "evidence": [ "registerChannel @ plugins/qqbot/index.ts:16" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-3AB4ABC1", @@ -32952,7 +42057,8 @@ "openclaw/plugin-sdk @ plugins/qqbot/src/tools/channel.ts:1", "openclaw/plugin-sdk @ plugins/qqbot/src/tools/remind.ts:1" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "legacy-root-sdk-import", + "runtimeCoverage": null }, { "id": "CRABPOT-FD77FB14", @@ -32971,7 +42077,8 @@ "capabilities @ plugins/qqbot/openclaw.plugin.json", "extensions @ plugins/qqbot/openclaw.plugin.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-5D31D688", @@ -32991,7 +42098,8 @@ "silk-wasm @ plugins/qqbot/package.json", "ws @ plugins/qqbot/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-9752D007", @@ -33009,7 +42117,8 @@ "evidence": [ "plugins/qqbot/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-02A5199C", @@ -33028,7 +42137,8 @@ "registerTool @ plugins/qqbot/src/tools/channel.ts:138", "registerTool @ plugins/qqbot/src/tools/remind.ts:222" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-10F50B9B", @@ -33046,7 +42156,8 @@ "evidence": [ "extension:./dist/index.js -> plugins/secureclaw/secureclaw/dist/index.js" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-050D9934", @@ -33065,7 +42176,8 @@ "chokidar @ plugins/secureclaw/secureclaw/package.json", "node-forge @ plugins/secureclaw/secureclaw/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-690B4DC6", @@ -33083,10 +42195,11 @@ "evidence": [ "plugins/secureclaw/secureclaw/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-228C9EF1", + "id": "CRABPOT-973FE662", "fixture": "synology-chat", "severity": "P2", "owner": "inspector", @@ -33099,30 +42212,29 @@ "compatStatus": "active", "title": "synology-chat: channel runtime needs envelope/config probes", "evidence": [ - "registerChannel @ plugins/synology-chat/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/synology-chat/.crabpot-package/src/channel.ts:209" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { - "id": "CRABPOT-7BDE4D8C", + "id": "CRABPOT-F8F84AF5", "fixture": "synology-chat", "severity": "P2", "owner": "core", - "code": "legacy-root-sdk-import", + "code": "channel-env-vars", "decision": "core-compat-adapter", "status": "open", "issueClass": "deprecation-warning", "live": false, "deprecated": true, "compatStatus": "deprecated", - "title": "synology-chat: root plugin SDK barrel is still used by fixtures", + "title": "synology-chat: channelEnvVars legacy manifest metadata must stay covered", "evidence": [ - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/src/channel.ts:12", - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/src/runtime.ts:7" + "synology-chat" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "channel-env-vars", + "runtimeCoverage": null }, { "id": "CRABPOT-95803CD1", @@ -33140,28 +42252,50 @@ "evidence": [ "zod @ plugins/synology-chat/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-A506A157", + "id": "CRABPOT-E81DF8CF", "fixture": "synology-chat", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "synology-chat: plugin API compatibility range is missing", + "title": "synology-chat: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/synology-chat/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-81F17C11", + "id": "CRABPOT-9BAB465E", + "fixture": "synology-chat", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "synology-chat: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-BE0E8262", "fixture": "synology-chat", "severity": "P2", "owner": "inspector", @@ -33174,9 +42308,11 @@ "compatStatus": "none", "title": "synology-chat: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/synology-chat/.crabpot-package/index.ts" + "extension:plugins/synology-chat/.crabpot-package/index.ts", + "setupEntry:plugins/synology-chat/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-CB5664FE", @@ -33194,7 +42330,8 @@ "evidence": [ "defineChannelPluginEntry @ plugins/telnyx-sms/index.ts:207" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-9F01FE83", @@ -33212,7 +42349,8 @@ "evidence": [ "telnyx-sms" ], - "compatRecord": "channel-env-vars" + "compatRecord": "channel-env-vars", + "runtimeCoverage": null }, { "id": "CRABPOT-2ADE15EA", @@ -33231,10 +42369,11 @@ "extension:./dist/index.js -> plugins/telnyx-sms/dist/index.js", "setupEntry:./dist/setup-entry.js -> plugins/telnyx-sms/dist/setup-entry.js" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-916823B1", + "id": "CRABPOT-070E8FA6", "fixture": "tlon", "severity": "P2", "owner": "inspector", @@ -33247,50 +42386,13 @@ "compatStatus": "active", "title": "tlon: channel runtime needs envelope/config probes", "evidence": [ - "registerChannel @ plugins/tlon/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/tlon/.crabpot-package/src/channel.ts:61" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { - "id": "CRABPOT-8D2CDB70", - "fixture": "tlon", - "severity": "P2", - "owner": "core", - "code": "legacy-root-sdk-import", - "decision": "core-compat-adapter", - "status": "open", - "issueClass": "deprecation-warning", - "live": false, - "deprecated": true, - "compatStatus": "deprecated", - "title": "tlon: root plugin SDK barrel is still used by fixtures", - "evidence": [ - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/channel.ts:12", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/channel.ts:7", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/config-schema.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/discovery.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/history.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/index.ts:2", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/index.ts:3", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/onboarding.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/onboarding.ts:9", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/runtime.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/types.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/auth.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/base-url.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/channel-client.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/channel-ops.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/context.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/fetch.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/fetch.ts:2", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/sse-client.ts:2" - ], - "compatRecord": "legacy-root-sdk-import" - }, - { - "id": "CRABPOT-F10BE1F3", + "id": "CRABPOT-91929DB1", "fixture": "tlon", "severity": "P2", "owner": "inspector", @@ -33303,30 +42405,55 @@ "compatStatus": "none", "title": "tlon: cold import requires dependency installation in an isolated workspace", "evidence": [ + "@aws-sdk/client-s3 @ plugins/tlon/.crabpot-package/package.json", + "@aws-sdk/s3-request-presigner @ plugins/tlon/.crabpot-package/package.json", + "@tloncorp/tlon-skill @ plugins/tlon/.crabpot-package/package.json", "@urbit/aura @ plugins/tlon/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-28709048", + "id": "CRABPOT-30179476", "fixture": "tlon", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "tlon: plugin API compatibility range is missing", + "title": "tlon: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/tlon/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-2EE89866", + "id": "CRABPOT-7C68D10A", + "fixture": "tlon", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "tlon: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-BF33D452", "fixture": "tlon", "severity": "P2", "owner": "inspector", @@ -33339,63 +42466,33 @@ "compatStatus": "none", "title": "tlon: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/tlon/.crabpot-package/index.ts" + "extension:plugins/tlon/.crabpot-package/index.ts", + "setupEntry:plugins/tlon/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-C4C372DE", - "fixture": "twitch", - "severity": "P2", - "owner": "inspector", - "code": "channel-contract-probe", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "active", - "title": "twitch: channel runtime needs envelope/config probes", - "evidence": [ - "registerChannel @ plugins/twitch/.crabpot-package/index.ts:16" - ], - "compatRecord": "channel.runtime.envelope-config-metadata" - }, - { - "id": "CRABPOT-3EDA3F11", + "id": "CRABPOT-5D2F5A8A", "fixture": "twitch", "severity": "P2", "owner": "core", - "code": "legacy-root-sdk-import", + "code": "channel-env-vars", "decision": "core-compat-adapter", "status": "open", "issueClass": "deprecation-warning", "live": false, "deprecated": true, "compatStatus": "deprecated", - "title": "twitch: root plugin SDK barrel is still used by fixtures", + "title": "twitch: channelEnvVars legacy manifest metadata must stay covered", "evidence": [ - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/config-schema.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/config.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/monitor.ts:8", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/monitor.ts:9", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/onboarding.ts:12", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/onboarding.ts:5", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/plugin.ts:8", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/plugin.ts:9", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/probe.ts:3", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/runtime.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/send.ts:8", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/status.ts:7", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/test-fixtures.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/twitch-client.ts:3" + "twitch" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "channel-env-vars", + "runtimeCoverage": null }, { - "id": "CRABPOT-F1025A4F", + "id": "CRABPOT-46C3CA13", "fixture": "twitch", "severity": "P2", "owner": "inspector", @@ -33410,31 +42507,52 @@ "evidence": [ "@twurple/api @ plugins/twitch/.crabpot-package/package.json", "@twurple/auth @ plugins/twitch/.crabpot-package/package.json", - "@twurple/chat @ plugins/twitch/.crabpot-package/package.json", - "zod @ plugins/twitch/.crabpot-package/package.json" + "@twurple/chat @ plugins/twitch/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-FCDCE136", + "id": "CRABPOT-F4A96CED", "fixture": "twitch", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "twitch: plugin API compatibility range is missing", + "title": "twitch: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/twitch/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-C6B525CE", + "id": "CRABPOT-6E220B29", + "fixture": "twitch", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "twitch: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-B66571D2", "fixture": "twitch", "severity": "P2", "owner": "inspector", @@ -33447,12 +42565,33 @@ "compatStatus": "none", "title": "twitch: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/twitch/.crabpot-package/index.ts" + "extension:plugins/twitch/.crabpot-package/index.ts", + "setupEntry:plugins/twitch/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-C3CD69F7", + "id": "CRABPOT-F597EBE7", + "fixture": "voice-call", + "severity": "P2", + "owner": "core", + "code": "channel-env-vars", + "decision": "core-compat-adapter", + "status": "open", + "issueClass": "deprecation-warning", + "live": false, + "deprecated": true, + "compatStatus": "deprecated", + "title": "voice-call: channelEnvVars legacy manifest metadata must stay covered", + "evidence": [ + "voice-call" + ], + "compatRecord": "channel-env-vars", + "runtimeCoverage": null + }, + { + "id": "CRABPOT-CDA69D87", "fixture": "voice-call", "severity": "P2", "owner": "inspector", @@ -33465,30 +42604,51 @@ "compatStatus": "none", "title": "voice-call: cold import requires dependency installation in an isolated workspace", "evidence": [ - "@sinclair/typebox @ plugins/voice-call/.crabpot-package/package.json", "commander @ plugins/voice-call/.crabpot-package/package.json", - "ws @ plugins/voice-call/.crabpot-package/package.json", - "zod @ plugins/voice-call/.crabpot-package/package.json" + "typebox @ plugins/voice-call/.crabpot-package/package.json", + "ws @ plugins/voice-call/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-07E7F4F4", + "id": "CRABPOT-BF6AC1F1", "fixture": "voice-call", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "voice-call: plugin API compatibility range is missing", + "title": "voice-call: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/voice-call/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-A14A9662", + "fixture": "voice-call", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "voice-call: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-FB41AC01", @@ -33506,25 +42666,8 @@ "evidence": [ "extension:plugins/voice-call/.crabpot-package/index.ts" ], - "compatRecord": null - }, - { - "id": "CRABPOT-A178770F", - "fixture": "voice-call", - "severity": "P2", - "owner": "inspector", - "code": "runtime-tool-capture", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "none", - "title": "voice-call: runtime tool schema needs registration capture", - "evidence": [ - "registerTool @ plugins/voice-call/.crabpot-package/index.ts:399" - ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-5C1BD071", @@ -33542,7 +42685,8 @@ "evidence": [ "displayName @ plugins/web-search-plus/openclaw.plugin.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-E55C4521", @@ -33560,7 +42704,8 @@ "evidence": [ "extension:plugins/web-search-plus/index.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-AF929F22", @@ -33579,7 +42724,8 @@ "registerTool @ plugins/web-search-plus/index.ts:815", "registerTool @ plugins/web-search-plus/index.ts:947" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-DA6A82C2", @@ -33597,7 +42743,8 @@ "evidence": [ "registerChannel @ plugins/wecom/index.js:27" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-35BDCED8", @@ -33618,7 +42765,8 @@ "pinyin-pro @ plugins/wecom/package.json", "undici @ plugins/wecom/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-5E53BD07", @@ -33636,7 +42784,8 @@ "evidence": [ "plugins/wecom/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-76A40DAA", @@ -33656,7 +42805,8 @@ "registerTool @ plugins/wecom/index.js:40", "registerTool @ plugins/wecom/index.js:44" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-D75FC446", @@ -33678,7 +42828,8 @@ "typebox @ plugins/whatsapp/.crabpot-package/package.json", "undici @ plugins/whatsapp/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-2A350CBB", @@ -33696,10 +42847,11 @@ "evidence": [ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-615546E8", + "id": "CRABPOT-F42216BE", "fixture": "whatsapp", "severity": "P2", "owner": "plugin", @@ -33713,9 +42865,10 @@ "title": "whatsapp: OpenClaw package minimum host version drifts from build target", "evidence": [ "minHostVersion:>=2026.4.25", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-24C66750", @@ -33734,7 +42887,8 @@ "extension:plugins/whatsapp/.crabpot-package/index.ts", "setupEntry:plugins/whatsapp/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-D1877800", @@ -33753,7 +42907,8 @@ "createChatChannelPlugin @ plugins/yuanbao/.crabpot-package/dist/src/channel.js:11", "createChatChannelPlugin @ plugins/yuanbao/.crabpot-package/src/channel.ts:32" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { "id": "CRABPOT-D1B52D83", @@ -33771,7 +42926,8 @@ "evidence": [ "yuanbao" ], - "compatRecord": "channel-env-vars" + "compatRecord": "channel-env-vars", + "runtimeCoverage": null }, { "id": "CRABPOT-15BDDE32", @@ -33792,7 +42948,27 @@ "uuid @ plugins/yuanbao/.crabpot-package/package.json", "ws @ plugins/yuanbao/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-81B4A50D", + "fixture": "yuanbao", + "severity": "P2", + "owner": "plugin", + "code": "package-openclaw-unsupported-metadata", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "yuanbao: package declares unsupported OpenClaw metadata", + "evidence": [ + "openclaw.bundle" + ], + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-F9A99F1E", @@ -33810,7 +42986,8 @@ "evidence": [ "plugins/yuanbao/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-977DD34E", @@ -33829,7 +43006,8 @@ "extension:plugins/yuanbao/.crabpot-package/index.ts", "setupEntry:plugins/yuanbao/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-24B2FC67", @@ -33852,10 +43030,11 @@ "registerTool @ plugins/yuanbao/.crabpot-package/src/business/tools/member.ts:198", "registerTool @ plugins/yuanbao/.crabpot-package/src/business/tools/remind.ts:395" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-BCAB47DC", + "id": "CRABPOT-219C008C", "fixture": "zalo", "severity": "P2", "owner": "inspector", @@ -33868,12 +43047,32 @@ "compatStatus": "active", "title": "zalo: channel runtime needs envelope/config probes", "evidence": [ - "registerChannel @ plugins/zalo/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/zalo/.crabpot-package/src/channel.ts:159" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { - "id": "CRABPOT-2C4D773F", + "id": "CRABPOT-5873C524", + "fixture": "zalo", + "severity": "P2", + "owner": "core", + "code": "channel-env-vars", + "decision": "core-compat-adapter", + "status": "open", + "issueClass": "deprecation-warning", + "live": false, + "deprecated": true, + "compatStatus": "deprecated", + "title": "zalo: channelEnvVars legacy manifest metadata must stay covered", + "evidence": [ + "zalo" + ], + "compatRecord": "channel-env-vars", + "runtimeCoverage": null + }, + { + "id": "CRABPOT-91EA2659", "fixture": "zalo", "severity": "P2", "owner": "inspector", @@ -33886,31 +43085,52 @@ "compatStatus": "none", "title": "zalo: cold import requires dependency installation in an isolated workspace", "evidence": [ - "undici @ plugins/zalo/.crabpot-package/package.json", - "zod @ plugins/zalo/.crabpot-package/package.json" + "undici @ plugins/zalo/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-4FE3BF06", + "id": "CRABPOT-2A17CCAC", "fixture": "zalo", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "zalo: plugin API compatibility range is missing", + "title": "zalo: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/zalo/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-7795A68C", + "id": "CRABPOT-C7F40F79", + "fixture": "zalo", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "zalo: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-EA9EC812", "fixture": "zalo", "severity": "P2", "owner": "inspector", @@ -33923,12 +43143,14 @@ "compatStatus": "none", "title": "zalo: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/zalo/.crabpot-package/index.ts" + "extension:plugins/zalo/.crabpot-package/index.ts", + "setupEntry:plugins/zalo/.crabpot-package/setup-entry.ts" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-9A5E9CD9", + "id": "CRABPOT-69F5B4D7", "fixture": "zalouser", "severity": "P2", "owner": "inspector", @@ -33941,12 +43163,32 @@ "compatStatus": "active", "title": "zalouser: channel runtime needs envelope/config probes", "evidence": [ - "registerChannel @ plugins/zalouser/.crabpot-package/index.ts:14" + "createChatChannelPlugin @ plugins/zalouser/.crabpot-package/src/channel.ts:68" ], - "compatRecord": "channel.runtime.envelope-config-metadata" + "compatRecord": "channel.runtime.envelope-config-metadata", + "runtimeCoverage": null }, { - "id": "CRABPOT-9A5B0460", + "id": "CRABPOT-2292935E", + "fixture": "zalouser", + "severity": "P2", + "owner": "core", + "code": "channel-env-vars", + "decision": "core-compat-adapter", + "status": "open", + "issueClass": "deprecation-warning", + "live": false, + "deprecated": true, + "compatStatus": "deprecated", + "title": "zalouser: channelEnvVars legacy manifest metadata must stay covered", + "evidence": [ + "zalouser" + ], + "compatRecord": "channel-env-vars", + "runtimeCoverage": null + }, + { + "id": "CRABPOT-F32BA827", "fixture": "zalouser", "severity": "P2", "owner": "inspector", @@ -33959,32 +43201,53 @@ "compatStatus": "none", "title": "zalouser: cold import requires dependency installation in an isolated workspace", "evidence": [ - "@sinclair/typebox @ plugins/zalouser/.crabpot-package/package.json", - "zca-js @ plugins/zalouser/.crabpot-package/package.json", - "zod @ plugins/zalouser/.crabpot-package/package.json" + "typebox @ plugins/zalouser/.crabpot-package/package.json", + "zca-js @ plugins/zalouser/.crabpot-package/package.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-2ADD62F3", + "id": "CRABPOT-7FA021C3", "fixture": "zalouser", "severity": "P2", "owner": "plugin", - "code": "package-plugin-api-compat-missing", + "code": "package-install-metadata-incomplete", "decision": "plugin-upstream-fix", "status": "open", "issueClass": "upstream-metadata", "live": false, "deprecated": false, "compatStatus": "none", - "title": "zalouser: plugin API compatibility range is missing", + "title": "zalouser: OpenClaw package install metadata is incomplete", "evidence": [ - "plugins/zalouser/.crabpot-package/package.json" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { - "id": "CRABPOT-EBAC8583", + "id": "CRABPOT-FAD9990F", + "fixture": "zalouser", + "severity": "P2", + "owner": "plugin", + "code": "package-min-host-version-drift", + "decision": "plugin-upstream-fix", + "status": "open", + "issueClass": "upstream-metadata", + "live": false, + "deprecated": false, + "compatStatus": "none", + "title": "zalouser: OpenClaw package minimum host version drifts from build target", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ], + "compatRecord": null, + "runtimeCoverage": null + }, + { + "id": "CRABPOT-46CF91D4", "fixture": "zalouser", "severity": "P2", "owner": "inspector", @@ -33997,27 +43260,11 @@ "compatStatus": "none", "title": "zalouser: cold import needs TypeScript source entrypoint support", "evidence": [ - "extension:plugins/zalouser/.crabpot-package/index.ts" + "extension:plugins/zalouser/.crabpot-package/index.ts", + "setupEntry:plugins/zalouser/.crabpot-package/setup-entry.ts" ], - "compatRecord": null - }, - { - "id": "CRABPOT-EF533E16", - "fixture": "zalouser", - "severity": "P2", - "owner": "inspector", - "code": "runtime-tool-capture", - "decision": "inspector-follow-up", - "status": "open", - "issueClass": "inspector-gap", - "live": false, - "deprecated": false, - "compatStatus": "none", - "title": "zalouser: runtime tool schema needs registration capture", - "evidence": [ - "registerTool @ plugins/zalouser/.crabpot-package/index.ts:16" - ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-CB326D97", @@ -34035,7 +43282,8 @@ "evidence": [ "plugins/clawrouter/openclaw.security.json:$schema=https://openclaw.ai/schemas/plugin-security.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null }, { "id": "CRABPOT-0FE0A4E3", @@ -34053,7 +43301,8 @@ "evidence": [ "plugins/clawrouter/openclaw.security.json" ], - "compatRecord": null + "compatRecord": null, + "runtimeCoverage": null } ], "contractProbes": [ @@ -34072,16 +43321,6 @@ "registerService @ plugins/a2a-gateway/index.ts:857" ] }, - { - "id": "api.capture.runtime-registrars:bluebubbles", - "fixture": "bluebubbles", - "priority": "P1", - "target": "inspector-capture-api", - "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", - "evidence": [ - "registerChannel @ plugins/bluebubbles/.crabpot-package/index.ts:13" - ] - }, { "id": "api.capture.runtime-registrars:clawmetry", "fixture": "clawmetry", @@ -34151,7 +43390,7 @@ "target": "inspector-capture-api", "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", "evidence": [ - "registerService @ plugins/diagnostics-otel/.crabpot-package/index.ts:11" + "registerService @ plugins/diagnostics-otel/.crabpot-package/index.ts:9" ] }, { @@ -34198,26 +43437,6 @@ "registerGatewayMethod @ plugins/dingtalk-connector/src/gateway-methods.ts:719" ] }, - { - "id": "api.capture.runtime-registrars:discord", - "fixture": "discord", - "priority": "P1", - "target": "inspector-capture-api", - "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", - "evidence": [ - "registerChannel @ plugins/discord/.crabpot-package/index.ts:14" - ] - }, - { - "id": "api.capture.runtime-registrars:feishu", - "fixture": "feishu", - "priority": "P1", - "target": "inspector-capture-api", - "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", - "evidence": [ - "registerChannel @ plugins/feishu/.crabpot-package/index.ts:55" - ] - }, { "id": "api.capture.runtime-registrars:google-meet", "fixture": "google-meet", @@ -34225,20 +43444,22 @@ "target": "inspector-capture-api", "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", "evidence": [ - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:631", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:652", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:674", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:686", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:704", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:722", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:703", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:724", "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:746", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:768", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:792", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:817", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:828", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:845", - "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:862", - "registerNodeHostCommand @ plugins/google-meet/.crabpot-package/index.ts:1018" + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:758", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:776", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:795", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:819", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:841", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:865", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:890", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:901", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:918", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:937", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:954", + "registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:975", + "registerNodeHostCommand @ plugins/google-meet/.crabpot-package/index.ts:1143" ] }, { @@ -34394,16 +43615,6 @@ "registerHttpRoute @ plugins/mocrane-wecom/index.ts:34" ] }, - { - "id": "api.capture.runtime-registrars:msteams", - "fixture": "msteams", - "priority": "P1", - "target": "inspector-capture-api", - "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", - "evidence": [ - "registerChannel @ plugins/msteams/.crabpot-package/index.ts:13" - ] - }, { "id": "api.capture.runtime-registrars:nemoclaw", "fixture": "nemoclaw", @@ -34414,16 +43625,6 @@ "registerCommand @ plugins/nemoclaw/nemoclaw/src/index.ts:336" ] }, - { - "id": "api.capture.runtime-registrars:nextcloud-talk", - "fixture": "nextcloud-talk", - "priority": "P1", - "target": "inspector-capture-api", - "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", - "evidence": [ - "registerChannel @ plugins/nextcloud-talk/.crabpot-package/index.ts:13" - ] - }, { "id": "api.capture.runtime-registrars:nostr", "fixture": "nostr", @@ -34431,8 +43632,7 @@ "target": "inspector-capture-api", "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", "evidence": [ - "registerChannel @ plugins/nostr/.crabpot-package/index.ts:16", - "registerHttpRoute @ plugins/nostr/.crabpot-package/index.ts:64" + "registerHttpRoute @ plugins/nostr/.crabpot-package/index.ts:89" ] }, { @@ -34497,16 +43697,6 @@ "registerService @ plugins/secureclaw/secureclaw/src/index.ts:307" ] }, - { - "id": "api.capture.runtime-registrars:synology-chat", - "fixture": "synology-chat", - "priority": "P1", - "target": "inspector-capture-api", - "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", - "evidence": [ - "registerChannel @ plugins/synology-chat/.crabpot-package/index.ts:13" - ] - }, { "id": "api.capture.runtime-registrars:telnyx-sms", "fixture": "telnyx-sms", @@ -34517,26 +43707,6 @@ "registerHttpRoute @ plugins/telnyx-sms/index.ts:259" ] }, - { - "id": "api.capture.runtime-registrars:tlon", - "fixture": "tlon", - "priority": "P1", - "target": "inspector-capture-api", - "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", - "evidence": [ - "registerChannel @ plugins/tlon/.crabpot-package/index.ts:13" - ] - }, - { - "id": "api.capture.runtime-registrars:twitch", - "fixture": "twitch", - "priority": "P1", - "target": "inspector-capture-api", - "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", - "evidence": [ - "registerChannel @ plugins/twitch/.crabpot-package/index.ts:16" - ] - }, { "id": "api.capture.runtime-registrars:voice-call", "fixture": "voice-call", @@ -34544,13 +43714,17 @@ "target": "inspector-capture-api", "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", "evidence": [ - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:261", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:294", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:311", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:327", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:349", - "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:376", - "registerService @ plugins/voice-call/.crabpot-package/index.ts:532" + "registerConfigMigration @ plugins/voice-call/.crabpot-package/setup-api.ts:45", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:390", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:420", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:437", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:457", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:478", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:513", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:536", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:558", + "registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:581", + "registerService @ plugins/voice-call/.crabpot-package/index.ts:748" ] }, { @@ -34579,26 +43753,6 @@ "registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:33" ] }, - { - "id": "api.capture.runtime-registrars:zalo", - "fixture": "zalo", - "priority": "P1", - "target": "inspector-capture-api", - "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", - "evidence": [ - "registerChannel @ plugins/zalo/.crabpot-package/index.ts:13" - ] - }, - { - "id": "api.capture.runtime-registrars:zalouser", - "fixture": "zalouser", - "priority": "P1", - "target": "inspector-capture-api", - "contract": "External inspector capture records service, route, gateway, command, and interactive registrations.", - "evidence": [ - "registerChannel @ plugins/zalouser/.crabpot-package/index.ts:14" - ] - }, { "id": "hook.before_tool_call.terminal-block-approval:kitchen-sink", "fixture": "kitchen-sink", @@ -34735,46 +43889,6 @@ "llm_output @ plugins/opik-openclaw/src/service/hooks/llm.ts:150" ] }, - { - "id": "sdk.import.package-export-cold-import:bluebubbles", - "fixture": "bluebubbles", - "priority": "P1", - "target": "sdk-alias", - "contract": "Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package.", - "evidence": [ - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/account-resolve.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/accounts.ts:2", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/actions.ts:13", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/attachments.ts:3", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/channel.ts:20", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/channel.ts:5", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/chat.ts:3", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/config-apply.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/config-schema.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/history.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/media-send.ts:6", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-debounce.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:19", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-shared.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor.ts:9", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/onboarding.ts:16", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/onboarding.ts:7", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/probe.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/reactions.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/request-url.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/runtime.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/send.ts:2", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/send.ts:3", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/targets.ts:8", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/types.ts:1", - "openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/types.ts:3" - ] - }, { "id": "sdk.import.package-export-cold-import:clawmetry", "fixture": "clawmetry", @@ -34785,68 +43899,6 @@ "openclaw/plugin-sdk/diagnostics-otel @ plugins/clawmetry/clawhub-plugin/src/service.ts:2" ] }, - { - "id": "sdk.import.package-export-cold-import:diagnostics-otel", - "fixture": "diagnostics-otel", - "priority": "P1", - "target": "sdk-alias", - "contract": "Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package.", - "evidence": [ - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/src/service.ts:15", - "openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/src/service.ts:20" - ] - }, - { - "id": "sdk.import.package-export-cold-import:feishu", - "fixture": "feishu", - "priority": "P1", - "target": "sdk-alias", - "contract": "Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package.", - "evidence": [ - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/accounts.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bitable.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bot.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bot.ts:15", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/card-action.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/channel.ts:13", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/channel.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/chat.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/dedup.ts:7", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/directory.ts:5", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/docx.ts:7", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/drive.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/dynamic-agent.ts:4", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/media.ts:4", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.account.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.startup.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.state.ts:9", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.transport.ts:9", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.webhook.test-helpers.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/onboarding.ts:20", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/onboarding.ts:8", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/outbound.ts:3", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/perm.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/policy.ts:5", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/policy.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/reactions.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/reply-dispatcher.ts:8", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/send-target.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/send.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/streaming-card.ts:6", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/tool-account.ts:2", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/tool-factory-test-harness.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/types.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/typing.ts:1", - "openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/wiki.ts:2" - ] - }, { "id": "sdk.import.package-export-cold-import:honcho", "fixture": "honcho", @@ -34857,18 +43909,6 @@ "openclaw/plugin-sdk/memory-core @ plugins/honcho/index.ts:11" ] }, - { - "id": "sdk.import.package-export-cold-import:lobster", - "fixture": "lobster", - "priority": "P1", - "target": "sdk-alias", - "contract": "Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package.", - "evidence": [ - "openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/index.ts:5", - "openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/src/lobster-tool.ts:4", - "openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/src/windows-spawn.ts:5" - ] - }, { "id": "sdk.import.package-export-cold-import:matrix", "fixture": "matrix", @@ -34908,103 +43948,6 @@ "openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/types.ts:1" ] }, - { - "id": "sdk.import.package-export-cold-import:msteams", - "fixture": "msteams", - "priority": "P1", - "target": "sdk-alias", - "contract": "Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package.", - "evidence": [ - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/graph.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/payload.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/remote-media.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/shared.ts:7", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/shared.ts:8", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/channel.ts:18", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/channel.ts:9", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/directory-live.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/file-lock.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/graph.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/media-helpers.ts:11", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/messenger.ts:10", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor-handler.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:22", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor.ts:10", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/onboarding.ts:18", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/onboarding.ts:8", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/outbound.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/policy.ts:10", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/policy.ts:20", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/probe.ts:5", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/reply-dispatcher.ts:9", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/secret-input.ts:5", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send-context.ts:5", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send.ts:1", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/store-fs.ts:2", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/test-runtime.ts:3", - "openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/token.ts:1" - ] - }, - { - "id": "sdk.import.package-export-cold-import:nextcloud-talk", - "fixture": "nextcloud-talk", - "priority": "P1", - "target": "sdk-alias", - "contract": "Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package.", - "evidence": [ - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/accounts.ts:7", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/channel.ts:22", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts:10", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/inbound.ts:17", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/monitor.ts:8", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/onboarding.ts:16", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/policy.ts:14", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/policy.ts:6", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/replay-guard.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:3", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/types.ts:7" - ] - }, - { - "id": "sdk.import.package-export-cold-import:nostr", - "fixture": "nostr", - "priority": "P1", - "target": "sdk-alias", - "contract": "Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package.", - "evidence": [ - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/channel.ts:9", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/config-schema.ts:2", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/nostr-profile-http.ts:16", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/types.ts:6" - ] - }, - { - "id": "sdk.import.package-export-cold-import:voice-call", - "fixture": "voice-call", - "priority": "P1", - "target": "sdk-alias", - "contract": "Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package.", - "evidence": [ - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/index.ts:5", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/cli.ts:5", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/config.ts:6", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/providers/shared/guarded-json-api.ts:1", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/providers/tts-openai.ts:1", - "openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/webhook.ts:7" - ] - }, { "id": "sdk.import.package-export-cold-import:yuanbao", "fixture": "yuanbao", @@ -35020,38 +43963,6 @@ "openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2" ] }, - { - "id": "sdk.import.package-export-cold-import:zalo", - "fixture": "zalo", - "priority": "P1", - "target": "sdk-alias", - "contract": "Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package.", - "evidence": [ - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/accounts.ts:2", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/actions.ts:5", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/actions.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/channel.ts:14", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/channel.ts:34", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/config-schema.ts:7", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/group-access.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/group-access.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.ts:22", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.webhook.ts:18", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.webhook.ts:3", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/onboarding.ts:18", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/onboarding.ts:7", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/probe.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/runtime.ts:2", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/secret-input.ts:6", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/send.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/status-issues.ts:1", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/token.ts:3", - "openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/types.ts:1" - ] - }, { "id": "channel.runtime.envelope-config-metadata:agentchat", "fixture": "agentchat", @@ -36181,26 +45092,6 @@ "registerTool @ plugins/yuanbao/.crabpot-package/src/business/tools/remind.ts:395" ] }, - { - "id": "channel.runtime.envelope-config-metadata:bluebubbles", - "fixture": "bluebubbles", - "priority": "P3", - "target": "channel-runtime", - "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", - "evidence": [ - "registerChannel @ plugins/bluebubbles/.crabpot-package/index.ts:13" - ] - }, - { - "id": "channel.runtime.envelope-config-metadata:discord", - "fixture": "discord", - "priority": "P3", - "target": "channel-runtime", - "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", - "evidence": [ - "registerChannel @ plugins/discord/.crabpot-package/index.ts:14" - ] - }, { "id": "channel.runtime.envelope-config-metadata:feishu", "fixture": "feishu", @@ -36208,7 +45099,7 @@ "target": "channel-runtime", "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", "evidence": [ - "registerChannel @ plugins/feishu/.crabpot-package/index.ts:55" + "createChatChannelPlugin @ plugins/feishu/.crabpot-package/src/channel.ts:580" ] }, { @@ -36248,7 +45139,7 @@ "target": "channel-runtime", "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", "evidence": [ - "registerChannel @ plugins/msteams/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/msteams/.crabpot-package/src/channel.ts:406" ] }, { @@ -36258,7 +45149,7 @@ "target": "channel-runtime", "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", "evidence": [ - "registerChannel @ plugins/nextcloud-talk/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/nextcloud-talk/.crabpot-package/src/channel.ts:69" ] }, { @@ -36268,7 +45159,7 @@ "target": "channel-runtime", "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", "evidence": [ - "registerChannel @ plugins/nostr/.crabpot-package/index.ts:16" + "createChatChannelPlugin @ plugins/nostr/.crabpot-package/src/channel.ts:88" ] }, { @@ -36278,7 +45169,7 @@ "target": "channel-runtime", "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", "evidence": [ - "registerChannel @ plugins/synology-chat/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/synology-chat/.crabpot-package/src/channel.ts:209" ] }, { @@ -36298,17 +45189,7 @@ "target": "channel-runtime", "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", "evidence": [ - "registerChannel @ plugins/tlon/.crabpot-package/index.ts:13" - ] - }, - { - "id": "channel.runtime.envelope-config-metadata:twitch", - "fixture": "twitch", - "priority": "P3", - "target": "channel-runtime", - "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", - "evidence": [ - "registerChannel @ plugins/twitch/.crabpot-package/index.ts:16" + "createChatChannelPlugin @ plugins/tlon/.crabpot-package/src/channel.ts:61" ] }, { @@ -36318,7 +45199,7 @@ "target": "channel-runtime", "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", "evidence": [ - "registerChannel @ plugins/zalo/.crabpot-package/index.ts:13" + "createChatChannelPlugin @ plugins/zalo/.crabpot-package/src/channel.ts:159" ] }, { @@ -36328,7 +45209,7 @@ "target": "channel-runtime", "contract": "Channel setup, message envelope, sender metadata, and config schema remain stable.", "evidence": [ - "registerChannel @ plugins/zalouser/.crabpot-package/index.ts:14" + "createChatChannelPlugin @ plugins/zalouser/.crabpot-package/src/channel.ts:68" ] }, { @@ -36341,6 +45222,56 @@ "before_agent_start @ plugins/memos-cloud/index.js:481" ] }, + { + "id": "manifest.compat.channel-env-vars:discord", + "fixture": "discord", + "priority": "P3", + "target": "manifest-loader", + "contract": "Legacy channel env metadata continues to map into channel setup/help surfaces.", + "evidence": [ + "discord" + ] + }, + { + "id": "manifest.compat.channel-env-vars:feishu", + "fixture": "feishu", + "priority": "P3", + "target": "manifest-loader", + "contract": "Legacy channel env metadata continues to map into channel setup/help surfaces.", + "evidence": [ + "feishu" + ] + }, + { + "id": "manifest.compat.channel-env-vars:msteams", + "fixture": "msteams", + "priority": "P3", + "target": "manifest-loader", + "contract": "Legacy channel env metadata continues to map into channel setup/help surfaces.", + "evidence": [ + "msteams" + ] + }, + { + "id": "manifest.compat.channel-env-vars:nextcloud-talk", + "fixture": "nextcloud-talk", + "priority": "P3", + "target": "manifest-loader", + "contract": "Legacy channel env metadata continues to map into channel setup/help surfaces.", + "evidence": [ + "nextcloud-talk" + ] + }, + { + "id": "manifest.compat.channel-env-vars:nostr", + "fixture": "nostr", + "priority": "P3", + "target": "manifest-loader", + "contract": "Legacy channel env metadata continues to map into channel setup/help surfaces.", + "evidence": [ + "nostr" + ] + }, { "id": "manifest.compat.channel-env-vars:openclaw-qqbot", "fixture": "openclaw-qqbot", @@ -36351,6 +45282,16 @@ "qqbot" ] }, + { + "id": "manifest.compat.channel-env-vars:synology-chat", + "fixture": "synology-chat", + "priority": "P3", + "target": "manifest-loader", + "contract": "Legacy channel env metadata continues to map into channel setup/help surfaces.", + "evidence": [ + "synology-chat" + ] + }, { "id": "manifest.compat.channel-env-vars:telnyx-sms", "fixture": "telnyx-sms", @@ -36361,6 +45302,46 @@ "telnyx-sms" ] }, + { + "id": "manifest.compat.channel-env-vars:twitch", + "fixture": "twitch", + "priority": "P3", + "target": "manifest-loader", + "contract": "Legacy channel env metadata continues to map into channel setup/help surfaces.", + "evidence": [ + "twitch" + ] + }, + { + "id": "manifest.compat.channel-env-vars:voice-call", + "fixture": "voice-call", + "priority": "P3", + "target": "manifest-loader", + "contract": "Legacy channel env metadata continues to map into channel setup/help surfaces.", + "evidence": [ + "voice-call" + ] + }, + { + "id": "manifest.compat.channel-env-vars:zalo", + "fixture": "zalo", + "priority": "P3", + "target": "manifest-loader", + "contract": "Legacy channel env metadata continues to map into channel setup/help surfaces.", + "evidence": [ + "zalo" + ] + }, + { + "id": "manifest.compat.channel-env-vars:zalouser", + "fixture": "zalouser", + "priority": "P3", + "target": "manifest-loader", + "contract": "Legacy channel env metadata continues to map into channel setup/help surfaces.", + "evidence": [ + "zalouser" + ] + }, { "id": "manifest.compat.provider-auth-env-vars:brave-plugin", "fixture": "brave-plugin", @@ -36411,16 +45392,6 @@ "displayName @ plugins/web-search-plus/openclaw.plugin.json" ] }, - { - "id": "package.compat.plugin-api-range:bluebubbles", - "fixture": "bluebubbles", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/bluebubbles/.crabpot-package/package.json" - ] - }, { "id": "package.compat.plugin-api-range:clawrouter", "fixture": "clawrouter", @@ -36431,36 +45402,6 @@ "plugins/clawrouter/package.json" ] }, - { - "id": "package.compat.plugin-api-range:diagnostics-otel", - "fixture": "diagnostics-otel", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/diagnostics-otel/.crabpot-package/package.json" - ] - }, - { - "id": "package.compat.plugin-api-range:discord", - "fixture": "discord", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/discord/.crabpot-package/package.json" - ] - }, - { - "id": "package.compat.plugin-api-range:feishu", - "fixture": "feishu", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/feishu/.crabpot-package/package.json" - ] - }, { "id": "package.compat.plugin-api-range:lightclawbot", "fixture": "lightclawbot", @@ -36471,16 +45412,6 @@ "plugins/lightclawbot/.crabpot-package/package.json" ] }, - { - "id": "package.compat.plugin-api-range:lobster", - "fixture": "lobster", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/lobster/.crabpot-package/package.json" - ] - }, { "id": "package.compat.plugin-api-range:matrix", "fixture": "matrix", @@ -36521,36 +45452,6 @@ "plugins/memu-engine/package.json" ] }, - { - "id": "package.compat.plugin-api-range:msteams", - "fixture": "msteams", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/msteams/.crabpot-package/package.json" - ] - }, - { - "id": "package.compat.plugin-api-range:nextcloud-talk", - "fixture": "nextcloud-talk", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/nextcloud-talk/.crabpot-package/package.json" - ] - }, - { - "id": "package.compat.plugin-api-range:nostr", - "fixture": "nostr", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/nostr/.crabpot-package/package.json" - ] - }, { "id": "package.compat.plugin-api-range:secureclaw", "fixture": "secureclaw", @@ -36561,66 +45462,6 @@ "plugins/secureclaw/secureclaw/package.json" ] }, - { - "id": "package.compat.plugin-api-range:synology-chat", - "fixture": "synology-chat", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/synology-chat/.crabpot-package/package.json" - ] - }, - { - "id": "package.compat.plugin-api-range:tlon", - "fixture": "tlon", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/tlon/.crabpot-package/package.json" - ] - }, - { - "id": "package.compat.plugin-api-range:twitch", - "fixture": "twitch", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/twitch/.crabpot-package/package.json" - ] - }, - { - "id": "package.compat.plugin-api-range:voice-call", - "fixture": "voice-call", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/voice-call/.crabpot-package/package.json" - ] - }, - { - "id": "package.compat.plugin-api-range:zalo", - "fixture": "zalo", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/zalo/.crabpot-package/package.json" - ] - }, - { - "id": "package.compat.plugin-api-range:zalouser", - "fixture": "zalouser", - "priority": "P3", - "target": "package-loader", - "contract": "Package metadata declares the OpenClaw plugin API range used by the plugin.", - "evidence": [ - "plugins/zalouser/.crabpot-package/package.json" - ] - }, { "id": "package.entrypoint.build-before-cold-import:clawmetry", "fixture": "clawmetry", @@ -36663,16 +45504,6 @@ "apify-client @ plugins/apify/package.json" ] }, - { - "id": "package.entrypoint.isolated-dependency-install:bluebubbles", - "fixture": "bluebubbles", - "priority": "P3", - "target": "package-loader", - "contract": "Inspector installs package dependencies in an isolated workspace before cold import.", - "evidence": [ - "zod @ plugins/bluebubbles/.crabpot-package/package.json" - ] - }, { "id": "package.entrypoint.isolated-dependency-install:clawmetry", "fixture": "clawmetry", @@ -36757,6 +45588,22 @@ "typebox @ plugins/diffs/.crabpot-package/package.json" ] }, + { + "id": "package.entrypoint.isolated-dependency-install:discord", + "fixture": "discord", + "priority": "P3", + "target": "package-loader", + "contract": "Inspector installs package dependencies in an isolated workspace before cold import.", + "evidence": [ + "@discordjs/voice @ plugins/discord/.crabpot-package/package.json", + "discord-api-types @ plugins/discord/.crabpot-package/package.json", + "https-proxy-agent @ plugins/discord/.crabpot-package/package.json", + "opusscript @ plugins/discord/.crabpot-package/package.json", + "typebox @ plugins/discord/.crabpot-package/package.json", + "undici @ plugins/discord/.crabpot-package/package.json", + "ws @ plugins/discord/.crabpot-package/package.json" + ] + }, { "id": "package.entrypoint.isolated-dependency-install:feishu", "fixture": "feishu", @@ -36765,9 +45612,7 @@ "contract": "Inspector installs package dependencies in an isolated workspace before cold import.", "evidence": [ "@larksuiteoapi/node-sdk @ plugins/feishu/.crabpot-package/package.json", - "@sinclair/typebox @ plugins/feishu/.crabpot-package/package.json", - "https-proxy-agent @ plugins/feishu/.crabpot-package/package.json", - "zod @ plugins/feishu/.crabpot-package/package.json" + "typebox @ plugins/feishu/.crabpot-package/package.json" ] }, { @@ -36798,7 +45643,9 @@ "target": "package-loader", "contract": "Inspector installs package dependencies in an isolated workspace before cold import.", "evidence": [ - "@sinclair/typebox @ plugins/lobster/.crabpot-package/package.json" + "@clawdbot/lobster @ plugins/lobster/.crabpot-package/package.json", + "ajv @ plugins/lobster/.crabpot-package/package.json", + "typebox @ plugins/lobster/.crabpot-package/package.json" ] }, { @@ -36835,8 +45682,13 @@ "target": "package-loader", "contract": "Inspector installs package dependencies in an isolated workspace before cold import.", "evidence": [ - "@microsoft/agents-hosting @ plugins/msteams/.crabpot-package/package.json", - "express @ plugins/msteams/.crabpot-package/package.json" + "@azure/identity @ plugins/msteams/.crabpot-package/package.json", + "@microsoft/teams.api @ plugins/msteams/.crabpot-package/package.json", + "@microsoft/teams.apps @ plugins/msteams/.crabpot-package/package.json", + "express @ plugins/msteams/.crabpot-package/package.json", + "jsonwebtoken @ plugins/msteams/.crabpot-package/package.json", + "jwks-rsa @ plugins/msteams/.crabpot-package/package.json", + "typebox @ plugins/msteams/.crabpot-package/package.json" ] }, { @@ -36902,6 +45754,9 @@ "target": "package-loader", "contract": "Inspector installs package dependencies in an isolated workspace before cold import.", "evidence": [ + "@aws-sdk/client-s3 @ plugins/tlon/.crabpot-package/package.json", + "@aws-sdk/s3-request-presigner @ plugins/tlon/.crabpot-package/package.json", + "@tloncorp/tlon-skill @ plugins/tlon/.crabpot-package/package.json", "@urbit/aura @ plugins/tlon/.crabpot-package/package.json" ] }, @@ -36914,8 +45769,7 @@ "evidence": [ "@twurple/api @ plugins/twitch/.crabpot-package/package.json", "@twurple/auth @ plugins/twitch/.crabpot-package/package.json", - "@twurple/chat @ plugins/twitch/.crabpot-package/package.json", - "zod @ plugins/twitch/.crabpot-package/package.json" + "@twurple/chat @ plugins/twitch/.crabpot-package/package.json" ] }, { @@ -36925,10 +45779,9 @@ "target": "package-loader", "contract": "Inspector installs package dependencies in an isolated workspace before cold import.", "evidence": [ - "@sinclair/typebox @ plugins/voice-call/.crabpot-package/package.json", "commander @ plugins/voice-call/.crabpot-package/package.json", - "ws @ plugins/voice-call/.crabpot-package/package.json", - "zod @ plugins/voice-call/.crabpot-package/package.json" + "typebox @ plugins/voice-call/.crabpot-package/package.json", + "ws @ plugins/voice-call/.crabpot-package/package.json" ] }, { @@ -36952,8 +45805,7 @@ "target": "package-loader", "contract": "Inspector installs package dependencies in an isolated workspace before cold import.", "evidence": [ - "undici @ plugins/zalo/.crabpot-package/package.json", - "zod @ plugins/zalo/.crabpot-package/package.json" + "undici @ plugins/zalo/.crabpot-package/package.json" ] }, { @@ -36963,9 +45815,8 @@ "target": "package-loader", "contract": "Inspector installs package dependencies in an isolated workspace before cold import.", "evidence": [ - "@sinclair/typebox @ plugins/zalouser/.crabpot-package/package.json", - "zca-js @ plugins/zalouser/.crabpot-package/package.json", - "zod @ plugins/zalouser/.crabpot-package/package.json" + "typebox @ plugins/zalouser/.crabpot-package/package.json", + "zca-js @ plugins/zalouser/.crabpot-package/package.json" ] }, { @@ -36985,7 +45836,8 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/bluebubbles/.crabpot-package/index.ts" + "extension:plugins/bluebubbles/.crabpot-package/index.ts", + "setupEntry:plugins/bluebubbles/.crabpot-package/setup-entry.ts" ] }, { @@ -37065,7 +45917,8 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/discord/.crabpot-package/index.ts" + "extension:plugins/discord/.crabpot-package/index.ts", + "setupEntry:plugins/discord/.crabpot-package/setup-entry.ts" ] }, { @@ -37075,7 +45928,8 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/feishu/.crabpot-package/index.ts" + "extension:plugins/feishu/.crabpot-package/index.ts", + "setupEntry:plugins/feishu/.crabpot-package/setup-entry.ts" ] }, { @@ -37155,7 +46009,8 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/msteams/.crabpot-package/index.ts" + "extension:plugins/msteams/.crabpot-package/index.ts", + "setupEntry:plugins/msteams/.crabpot-package/setup-entry.ts" ] }, { @@ -37165,7 +46020,8 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/nextcloud-talk/.crabpot-package/index.ts" + "extension:plugins/nextcloud-talk/.crabpot-package/index.ts", + "setupEntry:plugins/nextcloud-talk/.crabpot-package/setup-entry.ts" ] }, { @@ -37175,7 +46031,8 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/nostr/.crabpot-package/index.ts" + "extension:plugins/nostr/.crabpot-package/index.ts", + "setupEntry:plugins/nostr/.crabpot-package/setup-entry.ts" ] }, { @@ -37196,7 +46053,8 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/synology-chat/.crabpot-package/index.ts" + "extension:plugins/synology-chat/.crabpot-package/index.ts", + "setupEntry:plugins/synology-chat/.crabpot-package/setup-entry.ts" ] }, { @@ -37206,7 +46064,8 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/tlon/.crabpot-package/index.ts" + "extension:plugins/tlon/.crabpot-package/index.ts", + "setupEntry:plugins/tlon/.crabpot-package/setup-entry.ts" ] }, { @@ -37216,7 +46075,8 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/twitch/.crabpot-package/index.ts" + "extension:plugins/twitch/.crabpot-package/index.ts", + "setupEntry:plugins/twitch/.crabpot-package/setup-entry.ts" ] }, { @@ -37257,7 +46117,8 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/zalo/.crabpot-package/index.ts" + "extension:plugins/zalo/.crabpot-package/index.ts", + "setupEntry:plugins/zalo/.crabpot-package/setup-entry.ts" ] }, { @@ -37267,7 +46128,18 @@ "target": "package-loader", "contract": "Inspector can compile or load TypeScript source entrypoints before registration capture.", "evidence": [ - "extension:plugins/zalouser/.crabpot-package/index.ts" + "extension:plugins/zalouser/.crabpot-package/index.ts", + "setupEntry:plugins/zalouser/.crabpot-package/setup-entry.ts" + ] + }, + { + "id": "package.metadata.install-release:bluebubbles", + "fixture": "bluebubbles", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { @@ -37302,19 +46174,28 @@ ] }, { - "id": "package.metadata.install-release:diagnostics-prometheus", - "fixture": "diagnostics-prometheus", + "id": "package.metadata.install-release:diffs", + "fixture": "diffs", "priority": "P3", "target": "package-loader", "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", "evidence": [ - "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec", - "openclaw.release.publishToNpm requires openclaw.install.npmSpec" + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, { - "id": "package.metadata.install-release:diffs", - "fixture": "diffs", + "id": "package.metadata.install-release:discord", + "fixture": "discord", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, + { + "id": "package.metadata.install-release:feishu", + "fixture": "feishu", "priority": "P3", "target": "package-loader", "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", @@ -37332,6 +46213,16 @@ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, + { + "id": "package.metadata.install-release:lobster", + "fixture": "lobster", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, { "id": "package.metadata.install-release:memory-lancedb", "fixture": "memory-lancedb", @@ -37342,6 +46233,36 @@ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, + { + "id": "package.metadata.install-release:msteams", + "fixture": "msteams", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, + { + "id": "package.metadata.install-release:nextcloud-talk", + "fixture": "nextcloud-talk", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, + { + "id": "package.metadata.install-release:nostr", + "fixture": "nostr", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, { "id": "package.metadata.install-release:openclaw-qqbot", "fixture": "openclaw-qqbot", @@ -37352,6 +46273,46 @@ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, + { + "id": "package.metadata.install-release:synology-chat", + "fixture": "synology-chat", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, + { + "id": "package.metadata.install-release:tlon", + "fixture": "tlon", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, + { + "id": "package.metadata.install-release:twitch", + "fixture": "twitch", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, + { + "id": "package.metadata.install-release:voice-call", + "fixture": "voice-call", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, { "id": "package.metadata.install-release:whatsapp", "fixture": "whatsapp", @@ -37362,6 +46323,37 @@ "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" ] }, + { + "id": "package.metadata.install-release:zalo", + "fixture": "zalo", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, + { + "id": "package.metadata.install-release:zalouser", + "fixture": "zalouser", + "priority": "P3", + "target": "package-loader", + "contract": "Release publishing metadata declares canonical ClawHub and npm install specs.", + "evidence": [ + "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + ] + }, + { + "id": "package.metadata.min-host-version:bluebubbles", + "fixture": "bluebubbles", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, { "id": "package.metadata.min-host-version:brave-plugin", "fixture": "brave-plugin", @@ -37370,7 +46362,7 @@ "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", "evidence": [ "minHostVersion:>=2026.4.10", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { @@ -37381,7 +46373,29 @@ "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", "evidence": [ "minHostVersion:>=2026.5.1-beta.1", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" + ] + }, + { + "id": "package.metadata.min-host-version:diagnostics-otel", + "fixture": "diagnostics-otel", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "id": "package.metadata.min-host-version:diagnostics-prometheus", + "fixture": "diagnostics-prometheus", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { @@ -37392,7 +46406,29 @@ "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", "evidence": [ "minHostVersion:>=2026.4.30", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" + ] + }, + { + "id": "package.metadata.min-host-version:discord", + "fixture": "discord", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "id": "package.metadata.min-host-version:feishu", + "fixture": "feishu", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2" ] }, { @@ -37403,18 +46439,18 @@ "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", "evidence": [ "minHostVersion:>=2026.4.20", - "buildOpenClawVersion:2026.5.1-beta.2" + "buildOpenClawVersion:2026.5.2-beta.2" ] }, { - "id": "package.metadata.min-host-version:inworld-tts", - "fixture": "inworld-tts", + "id": "package.metadata.min-host-version:lobster", + "fixture": "lobster", "priority": "P3", "target": "package-loader", "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", "evidence": [ - "minHostVersion:>=2026.4.1", - "buildOpenClawVersion:2026.4.1" + "minHostVersion:>=2026.4.25", + "buildOpenClawVersion:2026.5.2" ] }, { @@ -37425,7 +46461,40 @@ "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", "evidence": [ "minHostVersion:>=2026.4.10", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" + ] + }, + { + "id": "package.metadata.min-host-version:msteams", + "fixture": "msteams", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "id": "package.metadata.min-host-version:nextcloud-talk", + "fixture": "nextcloud-talk", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "id": "package.metadata.min-host-version:nostr", + "fixture": "nostr", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" ] }, { @@ -37436,7 +46505,51 @@ "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", "evidence": [ "minHostVersion:>=2026.4.10", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" + ] + }, + { + "id": "package.metadata.min-host-version:synology-chat", + "fixture": "synology-chat", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "id": "package.metadata.min-host-version:tlon", + "fixture": "tlon", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "id": "package.metadata.min-host-version:twitch", + "fixture": "twitch", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "id": "package.metadata.min-host-version:voice-call", + "fixture": "voice-call", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" ] }, { @@ -37447,7 +46560,29 @@ "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", "evidence": [ "minHostVersion:>=2026.4.25", - "buildOpenClawVersion:2026.5.1-beta.1" + "buildOpenClawVersion:2026.5.2-beta.2" + ] + }, + { + "id": "package.metadata.min-host-version:zalo", + "fixture": "zalo", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" + ] + }, + { + "id": "package.metadata.min-host-version:zalouser", + "fixture": "zalouser", + "priority": "P3", + "target": "package-loader", + "contract": "Install minimum host version matches the OpenClaw package surface targeted by the plugin.", + "evidence": [ + "minHostVersion:>=2026.4.10", + "buildOpenClawVersion:2026.5.2" ] }, { @@ -37533,74 +46668,6 @@ "openclaw/plugin-sdk @ plugins/memu-engine/index.ts:1" ] }, - { - "id": "sdk.import.root-barrel-cold-import:synology-chat", - "fixture": "synology-chat", - "priority": "P3", - "target": "sdk-alias", - "contract": "Root plugin SDK barrel remains importable or has a machine-readable migration path.", - "evidence": [ - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/src/channel.ts:12", - "openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/src/runtime.ts:7" - ] - }, - { - "id": "sdk.import.root-barrel-cold-import:tlon", - "fixture": "tlon", - "priority": "P3", - "target": "sdk-alias", - "contract": "Root plugin SDK barrel remains importable or has a machine-readable migration path.", - "evidence": [ - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/channel.ts:12", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/channel.ts:7", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/config-schema.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/discovery.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/history.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/index.ts:2", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/index.ts:3", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/onboarding.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/onboarding.ts:9", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/runtime.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/types.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/auth.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/base-url.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/channel-client.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/channel-ops.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/context.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/fetch.ts:1", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/fetch.ts:2", - "openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/sse-client.ts:2" - ] - }, - { - "id": "sdk.import.root-barrel-cold-import:twitch", - "fixture": "twitch", - "priority": "P3", - "target": "sdk-alias", - "contract": "Root plugin SDK barrel remains importable or has a machine-readable migration path.", - "evidence": [ - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/index.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/index.ts:2", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/config-schema.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/config.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/monitor.ts:8", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/monitor.ts:9", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/onboarding.ts:12", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/onboarding.ts:5", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/plugin.ts:8", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/plugin.ts:9", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/probe.ts:3", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/runtime.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/send.ts:8", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/status.ts:7", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/test-fixtures.ts:1", - "openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/twitch-client.ts:3" - ] - }, { "id": "tool.registration.schema-capture:apify", "fixture": "apify", @@ -37621,42 +46688,6 @@ "registerTool @ plugins/clawrouter/src/index.ts:1622" ] }, - { - "id": "tool.registration.schema-capture:diffs", - "fixture": "diffs", - "priority": "P3", - "target": "tool-runtime", - "contract": "Registered runtime tools expose stable names, input schemas, and result metadata.", - "evidence": [ - "registerTool @ plugins/diffs/.crabpot-package/src/plugin.ts:42" - ] - }, - { - "id": "tool.registration.schema-capture:feishu", - "fixture": "feishu", - "priority": "P3", - "target": "tool-runtime", - "contract": "Registered runtime tools expose stable names, input schemas, and result metadata.", - "evidence": [ - "registerTool @ plugins/feishu/.crabpot-package/src/bitable.ts:559", - "registerTool @ plugins/feishu/.crabpot-package/src/chat.ts:95", - "registerTool @ plugins/feishu/.crabpot-package/src/docx.ts:1262", - "registerTool @ plugins/feishu/.crabpot-package/src/docx.ts:1436", - "registerTool @ plugins/feishu/.crabpot-package/src/drive.ts:186", - "registerTool @ plugins/feishu/.crabpot-package/src/perm.ts:135", - "registerTool @ plugins/feishu/.crabpot-package/src/wiki.ts:174" - ] - }, - { - "id": "tool.registration.schema-capture:google-meet", - "fixture": "google-meet", - "priority": "P3", - "target": "tool-runtime", - "contract": "Registered runtime tools expose stable names, input schemas, and result metadata.", - "evidence": [ - "registerTool @ plugins/google-meet/.crabpot-package/index.ts:883" - ] - }, { "id": "tool.registration.schema-capture:lightclawbot", "fixture": "lightclawbot", @@ -37668,28 +46699,6 @@ "registerTool @ plugins/lightclawbot/.crabpot-package/dist/src/upload-tool.js:37" ] }, - { - "id": "tool.registration.schema-capture:lobster", - "fixture": "lobster", - "priority": "P3", - "target": "tool-runtime", - "contract": "Registered runtime tools expose stable names, input schemas, and result metadata.", - "evidence": [ - "registerTool @ plugins/lobster/.crabpot-package/index.ts:9" - ] - }, - { - "id": "tool.registration.schema-capture:memory-lancedb", - "fixture": "memory-lancedb", - "priority": "P3", - "target": "tool-runtime", - "contract": "Registered runtime tools expose stable names, input schemas, and result metadata.", - "evidence": [ - "registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:643", - "registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:694", - "registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:757" - ] - }, { "id": "tool.registration.schema-capture:memu-engine", "fixture": "memu-engine", @@ -37700,27 +46709,6 @@ "registerTool @ plugins/memu-engine/index.ts:1252" ] }, - { - "id": "tool.registration.schema-capture:openclaw-qqbot", - "fixture": "openclaw-qqbot", - "priority": "P3", - "target": "tool-runtime", - "contract": "Registered runtime tools expose stable names, input schemas, and result metadata.", - "evidence": [ - "registerTool @ plugins/openclaw-qqbot/.crabpot-package/src/bridge/tools/channel.ts:32", - "registerTool @ plugins/openclaw-qqbot/.crabpot-package/src/bridge/tools/remind.ts:90" - ] - }, - { - "id": "tool.registration.schema-capture:voice-call", - "fixture": "voice-call", - "priority": "P3", - "target": "tool-runtime", - "contract": "Registered runtime tools expose stable names, input schemas, and result metadata.", - "evidence": [ - "registerTool @ plugins/voice-call/.crabpot-package/index.ts:399" - ] - }, { "id": "tool.registration.schema-capture:web-search-plus", "fixture": "web-search-plus", @@ -37731,16 +46719,6 @@ "registerTool @ plugins/web-search-plus/index.ts:815", "registerTool @ plugins/web-search-plus/index.ts:947" ] - }, - { - "id": "tool.registration.schema-capture:zalouser", - "fixture": "zalouser", - "priority": "P3", - "target": "tool-runtime", - "contract": "Registered runtime tools expose stable names, input schemas, and result metadata.", - "evidence": [ - "registerTool @ plugins/zalouser/.crabpot-package/index.ts:16" - ] } ], "logs": [ @@ -39128,7 +48106,7 @@ "evidence": [ "plugins/kitchen-sink/package.json", "@openclaw/kitchen-sink", - "version:0.2.2" + "version:0.2.5" ] }, { @@ -39162,7 +48140,7 @@ "level": "log", "message": "observed 0 hooks, 1 registrations, and 0 manifest contracts", "evidence": [ - "registration:registerChannel" + "registration:defineBundledChannelEntry" ] }, { @@ -39177,8 +48155,70 @@ "code": "api-registrars-present", "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", + "evidence": [] + }, + { + "fixture": "bluebubbles", + "code": "sdk-exports-present", + "level": "log", + "message": "all observed plugin SDK imports exist in target OpenClaw package exports", "evidence": [ - "registerChannel" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/agent-runtime", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/boolean-param", + "openclaw/plugin-sdk/channel-actions", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-feedback", + "openclaw/plugin-sdk/channel-inbound", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-status", + "openclaw/plugin-sdk/channel-streaming", + "openclaw/plugin-sdk/channel-targets", + "openclaw/plugin-sdk/channel-test-helpers", + "openclaw/plugin-sdk/command-auth", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/context-visibility-runtime", + "openclaw/plugin-sdk/conversation-runtime", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/file-access-runtime", + "openclaw/plugin-sdk/json-store", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/media-runtime", + "openclaw/plugin-sdk/number-runtime", + "openclaw/plugin-sdk/persistent-dedupe", + "openclaw/plugin-sdk/reply-history", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/request-url", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-fetch", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/state-paths", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/string-coerce-runtime", + "openclaw/plugin-sdk/temp-path", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/thread-bindings-runtime", + "openclaw/plugin-sdk/tool-send", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/webhook-path", + "openclaw/plugin-sdk/zod" ] }, { @@ -39198,15 +48238,16 @@ "evidence": [ "plugins/bluebubbles/.crabpot-package/package.json", "@openclaw/bluebubbles", - "version:2026.3.13" + "version:2026.5.2" ] }, { "fixture": "diagnostics-otel", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 1 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 2 registrations, and 0 manifest contracts", "evidence": [ + "registration:definePluginEntry", "registration:registerService" ] }, @@ -39226,6 +48267,17 @@ "registerService" ] }, + { + "fixture": "diagnostics-otel", + "code": "sdk-exports-present", + "level": "log", + "message": "all observed plugin SDK imports exist in target OpenClaw package exports", + "evidence": [ + "openclaw/plugin-sdk/diagnostic-runtime", + "openclaw/plugin-sdk/plugin-entry", + "openclaw/plugin-sdk/security-runtime" + ] + }, { "fixture": "diagnostics-otel", "code": "manifest-fields-checked", @@ -39243,7 +48295,7 @@ "evidence": [ "plugins/diagnostics-otel/.crabpot-package/package.json", "@openclaw/diagnostics-otel", - "version:2026.3.13" + "version:2026.5.2" ] }, { @@ -39255,7 +48307,7 @@ "hook:subagent_delivery_target", "hook:subagent_ended", "hook:subagent_spawning", - "registration:registerChannel" + "registration:defineBundledChannelEntry" ] }, { @@ -39274,9 +48326,7 @@ "code": "api-registrars-present", "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", - "evidence": [ - "registerChannel" - ] + "evidence": [] }, { "fixture": "discord", @@ -39284,8 +48334,115 @@ "level": "log", "message": "all observed plugin SDK imports exist in target OpenClaw package exports", "evidence": [ - "openclaw/plugin-sdk/compat", - "openclaw/plugin-sdk/discord" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/acp-runtime", + "openclaw/plugin-sdk/agent-runtime", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/allowlist-config-edit", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/approval-client-runtime", + "openclaw/plugin-sdk/approval-delivery-runtime", + "openclaw/plugin-sdk/approval-gateway-runtime", + "openclaw/plugin-sdk/approval-handler-adapter-runtime", + "openclaw/plugin-sdk/approval-handler-runtime", + "openclaw/plugin-sdk/approval-native-runtime", + "openclaw/plugin-sdk/approval-reply-runtime", + "openclaw/plugin-sdk/approval-runtime", + "openclaw/plugin-sdk/boolean-param", + "openclaw/plugin-sdk/bundled-channel-config-schema", + "openclaw/plugin-sdk/channel-actions", + "openclaw/plugin-sdk/channel-activity-runtime", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-feedback", + "openclaw/plugin-sdk/channel-inbound", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-plugin-common", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-runtime-context", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-secret-tts-runtime", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/channel-status", + "openclaw/plugin-sdk/channel-streaming", + "openclaw/plugin-sdk/channel-targets", + "openclaw/plugin-sdk/command-auth", + "openclaw/plugin-sdk/command-auth-native", + "openclaw/plugin-sdk/command-detection", + "openclaw/plugin-sdk/command-status-runtime", + "openclaw/plugin-sdk/command-surface", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/context-visibility-runtime", + "openclaw/plugin-sdk/conversation-binding-runtime", + "openclaw/plugin-sdk/conversation-runtime", + "openclaw/plugin-sdk/dangerous-name-runtime", + "openclaw/plugin-sdk/directory-config-runtime", + "openclaw/plugin-sdk/directory-runtime", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/fetch-runtime", + "openclaw/plugin-sdk/file-lock", + "openclaw/plugin-sdk/gateway-runtime", + "openclaw/plugin-sdk/global-singleton", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/inbound-reply-dispatch", + "openclaw/plugin-sdk/interactive-runtime", + "openclaw/plugin-sdk/json-store", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/markdown-table-runtime", + "openclaw/plugin-sdk/media-mime", + "openclaw/plugin-sdk/media-runtime", + "openclaw/plugin-sdk/messaging-targets", + "openclaw/plugin-sdk/model-session-runtime", + "openclaw/plugin-sdk/models-provider-runtime", + "openclaw/plugin-sdk/native-command-config-runtime", + "openclaw/plugin-sdk/native-command-registry", + "openclaw/plugin-sdk/outbound-media", + "openclaw/plugin-sdk/outbound-runtime", + "openclaw/plugin-sdk/outbound-send-deps", + "openclaw/plugin-sdk/persistent-dedupe", + "openclaw/plugin-sdk/plugin-config-runtime", + "openclaw/plugin-sdk/plugin-runtime", + "openclaw/plugin-sdk/plugin-test-runtime", + "openclaw/plugin-sdk/provider-model-shared", + "openclaw/plugin-sdk/proxy-capture", + "openclaw/plugin-sdk/reply-chunking", + "openclaw/plugin-sdk/reply-dispatch-runtime", + "openclaw/plugin-sdk/reply-history", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/reply-reference", + "openclaw/plugin-sdk/reply-runtime", + "openclaw/plugin-sdk/request-url", + "openclaw/plugin-sdk/retry-runtime", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime-config-snapshot", + "openclaw/plugin-sdk/runtime-doctor", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/session-store-runtime", + "openclaw/plugin-sdk/setup-adapter-runtime", + "openclaw/plugin-sdk/setup-runtime", + "openclaw/plugin-sdk/setup-tools", + "openclaw/plugin-sdk/simple-completion-runtime", + "openclaw/plugin-sdk/speech", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/state-paths", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/string-normalization-runtime", + "openclaw/plugin-sdk/system-event-runtime", + "openclaw/plugin-sdk/target-resolver-runtime", + "openclaw/plugin-sdk/temp-path", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/tool-send", + "openclaw/plugin-sdk/web-media" ] }, { @@ -39305,16 +48462,18 @@ "evidence": [ "plugins/discord/.crabpot-package/package.json", "@openclaw/discord", - "version:2026.3.13" + "version:2026.5.2" ] }, { "fixture": "lobster", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 1 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 2 registrations, and 1 manifest contracts", "evidence": [ - "registration:registerTool" + "registration:definePluginEntry", + "registration:registerTool", + "manifestContract:tools" ] }, { @@ -39333,6 +48492,17 @@ "registerTool" ] }, + { + "fixture": "lobster", + "code": "sdk-exports-present", + "level": "log", + "message": "all observed plugin SDK imports exist in target OpenClaw package exports", + "evidence": [ + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/plugin-entry", + "openclaw/plugin-sdk/windows-spawn" + ] + }, { "fixture": "lobster", "code": "manifest-fields-checked", @@ -39350,7 +48520,16 @@ "evidence": [ "plugins/lobster/.crabpot-package/package.json", "@openclaw/lobster", - "version:2026.3.13" + "version:2026.5.2" + ] + }, + { + "fixture": "lobster", + "code": "declarative-contracts", + "level": "log", + "message": "fixture declares manifest contracts that can be checked without executing plugin code", + "evidence": [ + "tools" ] }, { @@ -39402,9 +48581,10 @@ "fixture": "msteams", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 1 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 2 registrations, and 0 manifest contracts", "evidence": [ - "registration:registerChannel" + "registration:createChatChannelPlugin", + "registration:defineBundledChannelEntry" ] }, { @@ -39419,8 +48599,70 @@ "code": "api-registrars-present", "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", + "evidence": [] + }, + { + "fixture": "msteams", + "code": "sdk-exports-present", + "level": "log", + "message": "all observed plugin SDK imports exist in target OpenClaw package exports", "evidence": [ - "registerChannel" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/bundled-channel-config-schema", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-inbound", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-logging", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/channel-status", + "openclaw/plugin-sdk/channel-targets", + "openclaw/plugin-sdk/command-gating", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/context-visibility-runtime", + "openclaw/plugin-sdk/dangerous-name-runtime", + "openclaw/plugin-sdk/directory-runtime", + "openclaw/plugin-sdk/file-lock", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/inbound-reply-dispatch", + "openclaw/plugin-sdk/interactive-runtime", + "openclaw/plugin-sdk/json-store", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/markdown-table-runtime", + "openclaw/plugin-sdk/media-runtime", + "openclaw/plugin-sdk/outbound-media", + "openclaw/plugin-sdk/outbound-runtime", + "openclaw/plugin-sdk/outbound-send-deps", + "openclaw/plugin-sdk/provider-auth", + "openclaw/plugin-sdk/provider-auth-runtime", + "openclaw/plugin-sdk/reply-chunking", + "openclaw/plugin-sdk/reply-history", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/setup-tools", + "openclaw/plugin-sdk/ssrf-policy", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/string-normalization-runtime", + "openclaw/plugin-sdk/text-chunking", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/web-media", + "openclaw/plugin-sdk/webhook-ingress" ] }, { @@ -39440,16 +48682,17 @@ "evidence": [ "plugins/msteams/.crabpot-package/package.json", "@openclaw/msteams", - "version:2026.3.13" + "version:2026.5.2" ] }, { "fixture": "nextcloud-talk", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 1 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 2 registrations, and 0 manifest contracts", "evidence": [ - "registration:registerChannel" + "registration:createChatChannelPlugin", + "registration:defineBundledChannelEntry" ] }, { @@ -39464,8 +48707,55 @@ "code": "api-registrars-present", "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", + "evidence": [] + }, + { + "fixture": "nextcloud-talk", + "code": "sdk-exports-present", + "level": "log", + "message": "all observed plugin SDK imports exist in target OpenClaw package exports", "evidence": [ - "registerChannel" + "openclaw/plugin-sdk/account-core", + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-logging", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-plugin-common", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-setup", + "openclaw/plugin-sdk/channel-targets", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/inbound-reply-dispatch", + "openclaw/plugin-sdk/markdown-table-runtime", + "openclaw/plugin-sdk/persistent-dedupe", + "openclaw/plugin-sdk/plugin-config-runtime", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-file-runtime", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/setup-runtime", + "openclaw/plugin-sdk/setup-tools", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/zod" ] }, { @@ -39485,16 +48775,17 @@ "evidence": [ "plugins/nextcloud-talk/.crabpot-package/package.json", "@openclaw/nextcloud-talk", - "version:2026.3.13" + "version:2026.5.2" ] }, { "fixture": "nostr", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 2 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 3 registrations, and 0 manifest contracts", "evidence": [ - "registration:registerChannel", + "registration:createChatChannelPlugin", + "registration:defineBundledChannelEntry", "registration:registerHttpRoute" ] }, @@ -39511,10 +48802,48 @@ "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", "evidence": [ - "registerChannel", "registerHttpRoute" ] }, + { + "fixture": "nostr", + "code": "sdk-exports-present", + "level": "log", + "message": "all observed plugin SDK imports exist in target OpenClaw package exports", + "evidence": [ + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-primitives", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-plugin-common", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/channel-setup", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/direct-dm", + "openclaw/plugin-sdk/direct-dm-access", + "openclaw/plugin-sdk/direct-dm-guard-policy", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/plugin-runtime", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/setup-runtime", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/webhook-request-guards", + "openclaw/plugin-sdk/zod" + ] + }, { "fixture": "nostr", "code": "manifest-fields-checked", @@ -39532,19 +48861,22 @@ "evidence": [ "plugins/nostr/.crabpot-package/package.json", "@openclaw/nostr", - "version:2026.3.13" + "version:2026.5.2" ] }, { "fixture": "voice-call", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 4 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 6 registrations, and 1 manifest contracts", "evidence": [ + "registration:definePluginEntry", "registration:registerCli", + "registration:registerConfigMigration", "registration:registerGatewayMethod", "registration:registerService", - "registration:registerTool" + "registration:registerTool", + "manifestContract:tools" ] }, { @@ -39561,11 +48893,40 @@ "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", "evidence": [ "registerCli", + "registerConfigMigration", "registerGatewayMethod", "registerService", "registerTool" ] }, + { + "fixture": "voice-call", + "code": "sdk-exports-present", + "level": "log", + "message": "all observed plugin SDK imports exist in target OpenClaw package exports", + "evidence": [ + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/gateway-runtime", + "openclaw/plugin-sdk/memory-host-search", + "openclaw/plugin-sdk/model-session-runtime", + "openclaw/plugin-sdk/plugin-entry", + "openclaw/plugin-sdk/provider-selection-runtime", + "openclaw/plugin-sdk/realtime-transcription", + "openclaw/plugin-sdk/realtime-voice", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/session-store-runtime", + "openclaw/plugin-sdk/speech", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/tts-runtime", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/webhook-request-guards", + "openclaw/plugin-sdk/zod" + ] + }, { "fixture": "voice-call", "code": "manifest-fields-checked", @@ -39583,16 +48944,26 @@ "evidence": [ "plugins/voice-call/.crabpot-package/package.json", "@openclaw/voice-call", - "version:2026.3.13" + "version:2026.5.2" + ] + }, + { + "fixture": "voice-call", + "code": "declarative-contracts", + "level": "log", + "message": "fixture declares manifest contracts that can be checked without executing plugin code", + "evidence": [ + "tools" ] }, { "fixture": "zalo", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 1 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 2 registrations, and 0 manifest contracts", "evidence": [ - "registration:registerChannel" + "registration:createChatChannelPlugin", + "registration:defineBundledChannelEntry" ] }, { @@ -39607,8 +48978,64 @@ "code": "api-registrars-present", "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", + "evidence": [] + }, + { + "fixture": "zalo", + "code": "sdk-exports-present", + "level": "log", + "message": "all observed plugin SDK imports exist in target OpenClaw package exports", "evidence": [ - "registerChannel" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/channel-actions", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-feedback", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/channel-status", + "openclaw/plugin-sdk/channel-test-helpers", + "openclaw/plugin-sdk/command-auth", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/conversation-runtime", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/directory-runtime", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/inbound-envelope", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/outbound-media", + "openclaw/plugin-sdk/persistent-dedupe", + "openclaw/plugin-sdk/plugin-test-runtime", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/reply-runtime", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/temp-path", + "openclaw/plugin-sdk/text-chunking", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/tool-send", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/zod" ] }, { @@ -39628,17 +49055,19 @@ "evidence": [ "plugins/zalo/.crabpot-package/package.json", "@openclaw/zalo", - "version:2026.3.13" + "version:2026.5.2" ] }, { "fixture": "zalouser", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 2 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 3 registrations, and 1 manifest contracts", "evidence": [ - "registration:registerChannel", - "registration:registerTool" + "registration:createChatChannelPlugin", + "registration:defineBundledChannelEntry", + "registration:registerTool", + "manifestContract:tools" ] }, { @@ -39654,7 +49083,6 @@ "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", "evidence": [ - "registerChannel", "registerTool" ] }, @@ -39664,9 +49092,45 @@ "level": "log", "message": "all observed plugin SDK imports exist in target OpenClaw package exports", "evidence": [ - "openclaw/plugin-sdk/account-id", - "openclaw/plugin-sdk/compat", - "openclaw/plugin-sdk/zalouser" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-inbound", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/command-auth", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/conversation-runtime", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/dangerous-name-runtime", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/outbound-media", + "openclaw/plugin-sdk/reply-history", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/reply-runtime", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/setup-runtime", + "openclaw/plugin-sdk/state-paths", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/temp-path", + "openclaw/plugin-sdk/text-chunking", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/zod" ] }, { @@ -39686,17 +49150,31 @@ "evidence": [ "plugins/zalouser/.crabpot-package/package.json", "@openclaw/zalouser", - "version:2026.3.13" + "version:2026.5.2" + ] + }, + { + "fixture": "zalouser", + "code": "declarative-contracts", + "level": "log", + "message": "fixture declares manifest contracts that can be checked without executing plugin code", + "evidence": [ + "tools" ] }, { "fixture": "feishu", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 2 registrations, and 0 manifest contracts", + "message": "observed 3 hooks, 3 registrations, and 1 manifest contracts", "evidence": [ - "registration:registerChannel", - "registration:registerTool" + "hook:subagent_delivery_target", + "hook:subagent_ended", + "hook:subagent_spawning", + "registration:createChatChannelPlugin", + "registration:defineBundledChannelEntry", + "registration:registerTool", + "manifestContract:tools" ] }, { @@ -39704,7 +49182,11 @@ "code": "hook-names-present", "level": "log", "message": "all observed hooks exist in the target OpenClaw hook registry", - "evidence": [] + "evidence": [ + "subagent_delivery_target", + "subagent_ended", + "subagent_spawning" + ] }, { "fixture": "feishu", @@ -39712,10 +49194,76 @@ "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", "evidence": [ - "registerChannel", "registerTool" ] }, + { + "fixture": "feishu", + "code": "sdk-exports-present", + "level": "log", + "message": "all observed plugin SDK imports exist in target OpenClaw package exports", + "evidence": [ + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/agent-media-payload", + "openclaw/plugin-sdk/allow-from", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/channel-actions", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-primitives", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-feedback", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-secret-basic-runtime", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/channel-status", + "openclaw/plugin-sdk/channel-test-helpers", + "openclaw/plugin-sdk/command-primitives-runtime", + "openclaw/plugin-sdk/config-mutation", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/context-visibility-runtime", + "openclaw/plugin-sdk/conversation-runtime", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/directory-runtime", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/group-access", + "openclaw/plugin-sdk/interactive-runtime", + "openclaw/plugin-sdk/json-store", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/markdown-table-runtime", + "openclaw/plugin-sdk/media-mime", + "openclaw/plugin-sdk/media-runtime", + "openclaw/plugin-sdk/outbound-runtime", + "openclaw/plugin-sdk/persistent-dedupe", + "openclaw/plugin-sdk/plugin-test-runtime", + "openclaw/plugin-sdk/provider-auth", + "openclaw/plugin-sdk/reply-history", + "openclaw/plugin-sdk/reply-payload", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-group-policy", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/secret-input", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/session-store-runtime", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/setup-runtime", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/temp-path", + "openclaw/plugin-sdk/text-chunking", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/webhook-request-guards", + "openclaw/plugin-sdk/zod" + ] + }, { "fixture": "feishu", "code": "manifest-fields-checked", @@ -39733,16 +49281,28 @@ "evidence": [ "plugins/feishu/.crabpot-package/package.json", "@openclaw/feishu", - "version:2026.3.13" + "version:2026.5.2" + ] + }, + { + "fixture": "feishu", + "code": "declarative-contracts", + "level": "log", + "message": "fixture declares manifest contracts that can be checked without executing plugin code", + "evidence": [ + "tools" ] }, { "fixture": "tlon", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 1 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 3 registrations, and 1 manifest contracts", "evidence": [ - "registration:registerChannel" + "registration:createChatChannelPlugin", + "registration:defineBundledChannelEntry", + "registration:registerTool", + "manifestContract:tools" ] }, { @@ -39758,7 +49318,7 @@ "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", "evidence": [ - "registerChannel" + "registerTool" ] }, { @@ -39767,7 +49327,31 @@ "level": "log", "message": "all observed plugin SDK imports exist in target OpenClaw package exports", "evidence": [ - "openclaw/plugin-sdk" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/lazy-runtime", + "openclaw/plugin-sdk/media-runtime", + "openclaw/plugin-sdk/outbound-runtime", + "openclaw/plugin-sdk/plugin-runtime", + "openclaw/plugin-sdk/reply-runtime", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-logger", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/zod" ] }, { @@ -39787,7 +49371,16 @@ "evidence": [ "plugins/tlon/.crabpot-package/package.json", "@openclaw/tlon", - "version:2026.2.21" + "version:2026.5.2" + ] + }, + { + "fixture": "tlon", + "code": "declarative-contracts", + "level": "log", + "message": "fixture declares manifest contracts that can be checked without executing plugin code", + "evidence": [ + "tools" ] }, { @@ -39796,7 +49389,7 @@ "level": "log", "message": "observed 0 hooks, 1 registrations, and 0 manifest contracts", "evidence": [ - "registration:registerChannel" + "registration:defineBundledChannelEntry" ] }, { @@ -39811,9 +49404,7 @@ "code": "api-registrars-present", "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", - "evidence": [ - "registerChannel" - ] + "evidence": [] }, { "fixture": "twitch", @@ -39821,7 +49412,29 @@ "level": "log", "message": "all observed plugin SDK imports exist in target OpenClaw package exports", "evidence": [ - "openclaw/plugin-sdk" + "openclaw/plugin-sdk/account-helpers", + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/channel-config-primitives", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-contract", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-pairing", + "openclaw/plugin-sdk/channel-reply-pipeline", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/core", + "openclaw/plugin-sdk/error-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/reply-runtime", + "openclaw/plugin-sdk/runtime", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/status-helpers", + "openclaw/plugin-sdk/text-runtime", + "openclaw/plugin-sdk/zod" ] }, { @@ -39841,7 +49454,7 @@ "evidence": [ "plugins/twitch/.crabpot-package/package.json", "@openclaw/twitch", - "version:2026.2.21" + "version:2026.5.2" ] }, { @@ -39903,9 +49516,10 @@ "fixture": "synology-chat", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 1 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 2 registrations, and 0 manifest contracts", "evidence": [ - "registration:registerChannel" + "registration:createChatChannelPlugin", + "registration:defineBundledChannelEntry" ] }, { @@ -39920,9 +49534,7 @@ "code": "api-registrars-present", "level": "log", "message": "all observed api.register* calls exist in the target OpenClaw plugin API builder", - "evidence": [ - "registerChannel" - ] + "evidence": [] }, { "fixture": "synology-chat", @@ -39930,7 +49542,27 @@ "level": "log", "message": "all observed plugin SDK imports exist in target OpenClaw package exports", "evidence": [ - "openclaw/plugin-sdk" + "openclaw/plugin-sdk/account-id", + "openclaw/plugin-sdk/account-resolution", + "openclaw/plugin-sdk/approval-auth-runtime", + "openclaw/plugin-sdk/channel-config-helpers", + "openclaw/plugin-sdk/channel-config-schema", + "openclaw/plugin-sdk/channel-core", + "openclaw/plugin-sdk/channel-entry-contract", + "openclaw/plugin-sdk/channel-lifecycle", + "openclaw/plugin-sdk/channel-policy", + "openclaw/plugin-sdk/channel-send-result", + "openclaw/plugin-sdk/config-types", + "openclaw/plugin-sdk/dangerous-name-runtime", + "openclaw/plugin-sdk/directory-runtime", + "openclaw/plugin-sdk/extension-shared", + "openclaw/plugin-sdk/routing", + "openclaw/plugin-sdk/runtime-store", + "openclaw/plugin-sdk/security-runtime", + "openclaw/plugin-sdk/setup", + "openclaw/plugin-sdk/ssrf-runtime", + "openclaw/plugin-sdk/webhook-ingress", + "openclaw/plugin-sdk/zod" ] }, { @@ -39950,7 +49582,7 @@ "evidence": [ "plugins/synology-chat/.crabpot-package/package.json", "@openclaw/synology-chat", - "version:2026.2.22" + "version:2026.5.2" ] }, { @@ -39986,9 +49618,12 @@ "level": "log", "message": "all observed plugin SDK imports exist in target OpenClaw package exports", "evidence": [ + "openclaw/plugin-sdk/diagnostic-runtime", "openclaw/plugin-sdk/plugin-entry", "openclaw/plugin-sdk/provider-web-search", "openclaw/plugin-sdk/provider-web-search-config-contract", + "openclaw/plugin-sdk/runtime-env", + "openclaw/plugin-sdk/ssrf-runtime", "openclaw/plugin-sdk/text-runtime" ] }, @@ -40009,7 +49644,7 @@ "evidence": [ "plugins/brave-plugin/.crabpot-package/package.json", "@openclaw/brave-plugin", - "version:2026.5.1-beta.1" + "version:2026.5.2-beta.2" ] }, { @@ -40101,7 +49736,7 @@ "evidence": [ "plugins/codex/.crabpot-package/package.json", "@openclaw/codex", - "version:2026.5.1-beta.1" + "version:2026.5.2-beta.2" ] }, { @@ -40170,20 +49805,21 @@ "evidence": [ "plugins/diagnostics-prometheus/.crabpot-package/package.json", "@openclaw/diagnostics-prometheus", - "version:2026.5.1-beta.2" + "version:2026.5.2-beta.2" ] }, { "fixture": "google-meet", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 5 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 5 registrations, and 1 manifest contracts", "evidence": [ "registration:definePluginEntry", "registration:registerCli", "registration:registerGatewayMethod", "registration:registerNodeHostCommand", - "registration:registerTool" + "registration:registerTool", + "manifestContract:tools" ] }, { @@ -40242,19 +49878,29 @@ "evidence": [ "plugins/google-meet/.crabpot-package/package.json", "@openclaw/google-meet", - "version:2026.5.1-beta.2" + "version:2026.5.2-beta.2" + ] + }, + { + "fixture": "google-meet", + "code": "declarative-contracts", + "level": "log", + "message": "fixture declares manifest contracts that can be checked without executing plugin code", + "evidence": [ + "tools" ] }, { "fixture": "diffs", "code": "seam-inventory", "level": "log", - "message": "observed 1 hooks, 3 registrations, and 0 manifest contracts", + "message": "observed 1 hooks, 3 registrations, and 1 manifest contracts", "evidence": [ "hook:before_prompt_build", "registration:definePluginEntry", "registration:registerHttpRoute", - "registration:registerTool" + "registration:registerTool", + "manifestContract:tools" ] }, { @@ -40310,14 +49956,23 @@ "evidence": [ "plugins/diffs/.crabpot-package/package.json", "@openclaw/diffs", - "version:2026.5.1-beta.1" + "version:2026.5.2-beta.2" + ] + }, + { + "fixture": "diffs", + "code": "declarative-contracts", + "level": "log", + "message": "fixture declares manifest contracts that can be checked without executing plugin code", + "evidence": [ + "tools" ] }, { "fixture": "memory-lancedb", "code": "seam-inventory", "level": "log", - "message": "observed 3 hooks, 4 registrations, and 0 manifest contracts", + "message": "observed 3 hooks, 4 registrations, and 1 manifest contracts", "evidence": [ "hook:agent_end", "hook:before_prompt_build", @@ -40325,7 +49980,8 @@ "registration:definePluginEntry", "registration:registerCli", "registration:registerService", - "registration:registerTool" + "registration:registerTool", + "manifestContract:tools" ] }, { @@ -40385,17 +50041,28 @@ "evidence": [ "plugins/memory-lancedb/.crabpot-package/package.json", "@openclaw/memory-lancedb", - "version:2026.5.1-beta.1" + "version:2026.5.2-beta.2" + ] + }, + { + "fixture": "memory-lancedb", + "code": "declarative-contracts", + "level": "log", + "message": "fixture declares manifest contracts that can be checked without executing plugin code", + "evidence": [ + "tools" ] }, { "fixture": "openclaw-qqbot", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 2 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 3 registrations, and 1 manifest contracts", "evidence": [ + "registration:defineBundledChannelEntry", "registration:registerCommand", - "registration:registerTool" + "registration:registerTool", + "manifestContract:tools" ] }, { @@ -40468,15 +50135,26 @@ "evidence": [ "plugins/openclaw-qqbot/.crabpot-package/package.json", "@openclaw/qqbot", - "version:2026.5.1-beta.1" + "version:2026.5.2-beta.2" + ] + }, + { + "fixture": "openclaw-qqbot", + "code": "declarative-contracts", + "level": "log", + "message": "fixture declares manifest contracts that can be checked without executing plugin code", + "evidence": [ + "tools" ] }, { "fixture": "whatsapp", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 0 registrations, and 0 manifest contracts", - "evidence": [] + "message": "observed 0 hooks, 1 registrations, and 0 manifest contracts", + "evidence": [ + "registration:defineBundledChannelEntry" + ] }, { "fixture": "whatsapp", @@ -40523,7 +50201,6 @@ "openclaw/plugin-sdk/channel-reply-pipeline", "openclaw/plugin-sdk/channel-send-result", "openclaw/plugin-sdk/channel-streaming", - "openclaw/plugin-sdk/channel-targets", "openclaw/plugin-sdk/channel-test-helpers", "openclaw/plugin-sdk/cli-runtime", "openclaw/plugin-sdk/command-detection", @@ -40536,7 +50213,6 @@ "openclaw/plugin-sdk/fetch-runtime", "openclaw/plugin-sdk/gateway-runtime", "openclaw/plugin-sdk/group-activation", - "openclaw/plugin-sdk/heartbeat-runtime", "openclaw/plugin-sdk/hook-runtime", "openclaw/plugin-sdk/inbound-reply-dispatch", "openclaw/plugin-sdk/lazy-runtime", @@ -40593,7 +50269,7 @@ "evidence": [ "plugins/whatsapp/.crabpot-package/package.json", "@openclaw/whatsapp", - "version:2026.5.1-beta.1" + "version:2026.5.2-beta.2" ] }, { @@ -40774,8 +50450,9 @@ "fixture": "dingtalk-connector", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 2 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 3 registrations, and 0 manifest contracts", "evidence": [ + "registration:defineBundledChannelEntry", "registration:registerChannel", "registration:registerGatewayMethod" ] @@ -40896,9 +50573,10 @@ "fixture": "yuanbao", "code": "seam-inventory", "level": "log", - "message": "observed 0 hooks, 3 registrations, and 0 manifest contracts", + "message": "observed 0 hooks, 4 registrations, and 0 manifest contracts", "evidence": [ "registration:createChatChannelPlugin", + "registration:defineBundledChannelEntry", "registration:registerCommand", "registration:registerTool" ] @@ -41847,15 +51525,92 @@ "compatRecord": "legacy-before-agent-start" }, { - "fixture": "tlon", + "fixture": "discord", "code": "compat-record-present", "level": "log", "message": "target OpenClaw checkout has a matching compat registry record", "evidence": [ - "legacy-root-sdk-import", + "channel-env-vars", "status:deprecated" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "channel-env-vars" + }, + { + "fixture": "msteams", + "code": "compat-record-present", + "level": "log", + "message": "target OpenClaw checkout has a matching compat registry record", + "evidence": [ + "channel-env-vars", + "status:deprecated" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "nextcloud-talk", + "code": "compat-record-present", + "level": "log", + "message": "target OpenClaw checkout has a matching compat registry record", + "evidence": [ + "channel-env-vars", + "status:deprecated" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "nostr", + "code": "compat-record-present", + "level": "log", + "message": "target OpenClaw checkout has a matching compat registry record", + "evidence": [ + "channel-env-vars", + "status:deprecated" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "voice-call", + "code": "compat-record-present", + "level": "log", + "message": "target OpenClaw checkout has a matching compat registry record", + "evidence": [ + "channel-env-vars", + "status:deprecated" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "zalo", + "code": "compat-record-present", + "level": "log", + "message": "target OpenClaw checkout has a matching compat registry record", + "evidence": [ + "channel-env-vars", + "status:deprecated" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "zalouser", + "code": "compat-record-present", + "level": "log", + "message": "target OpenClaw checkout has a matching compat registry record", + "evidence": [ + "channel-env-vars", + "status:deprecated" + ], + "compatRecord": "channel-env-vars" + }, + { + "fixture": "feishu", + "code": "compat-record-present", + "level": "log", + "message": "target OpenClaw checkout has a matching compat registry record", + "evidence": [ + "channel-env-vars", + "status:deprecated" + ], + "compatRecord": "channel-env-vars" }, { "fixture": "twitch", @@ -41863,10 +51618,10 @@ "level": "log", "message": "target OpenClaw checkout has a matching compat registry record", "evidence": [ - "legacy-root-sdk-import", + "channel-env-vars", "status:deprecated" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "channel-env-vars" }, { "fixture": "mattermost", @@ -41885,10 +51640,10 @@ "level": "log", "message": "target OpenClaw checkout has a matching compat registry record", "evidence": [ - "legacy-root-sdk-import", + "channel-env-vars", "status:deprecated" ], - "compatRecord": "legacy-root-sdk-import" + "compatRecord": "channel-env-vars" }, { "fixture": "brave-plugin", @@ -42264,28 +52019,6 @@ ], "compatRecord": "channel.runtime.envelope-config-metadata" }, - { - "fixture": "bluebubbles", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "api.capture.runtime-registrars", - "status:active" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "fixture": "bluebubbles", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "channel.runtime.envelope-config-metadata", - "status:active" - ], - "compatRecord": "channel.runtime.envelope-config-metadata" - }, { "fixture": "diagnostics-otel", "code": "compat-record-present", @@ -42297,28 +52030,6 @@ ], "compatRecord": "api.capture.runtime-registrars" }, - { - "fixture": "discord", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "api.capture.runtime-registrars", - "status:active" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "fixture": "discord", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "channel.runtime.envelope-config-metadata", - "status:active" - ], - "compatRecord": "channel.runtime.envelope-config-metadata" - }, { "fixture": "matrix", "code": "compat-record-present", @@ -42341,17 +52052,6 @@ ], "compatRecord": "channel.runtime.envelope-config-metadata" }, - { - "fixture": "msteams", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "api.capture.runtime-registrars", - "status:active" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "msteams", "code": "compat-record-present", @@ -42363,17 +52063,6 @@ ], "compatRecord": "channel.runtime.envelope-config-metadata" }, - { - "fixture": "nextcloud-talk", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "api.capture.runtime-registrars", - "status:active" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "nextcloud-talk", "code": "compat-record-present", @@ -42418,17 +52107,6 @@ ], "compatRecord": "api.capture.runtime-registrars" }, - { - "fixture": "zalo", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "api.capture.runtime-registrars", - "status:active" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "zalo", "code": "compat-record-present", @@ -42440,17 +52118,6 @@ ], "compatRecord": "channel.runtime.envelope-config-metadata" }, - { - "fixture": "zalouser", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "api.capture.runtime-registrars", - "status:active" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "zalouser", "code": "compat-record-present", @@ -42462,17 +52129,6 @@ ], "compatRecord": "channel.runtime.envelope-config-metadata" }, - { - "fixture": "feishu", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "api.capture.runtime-registrars", - "status:active" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "feishu", "code": "compat-record-present", @@ -42489,39 +52145,6 @@ "code": "compat-record-present", "level": "log", "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "api.capture.runtime-registrars", - "status:active" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "fixture": "tlon", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "channel.runtime.envelope-config-metadata", - "status:active" - ], - "compatRecord": "channel.runtime.envelope-config-metadata" - }, - { - "fixture": "twitch", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "api.capture.runtime-registrars", - "status:active" - ], - "compatRecord": "api.capture.runtime-registrars" - }, - { - "fixture": "twitch", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", "evidence": [ "channel.runtime.envelope-config-metadata", "status:active" @@ -42550,17 +52173,6 @@ ], "compatRecord": "channel.runtime.envelope-config-metadata" }, - { - "fixture": "synology-chat", - "code": "compat-record-present", - "level": "log", - "message": "target OpenClaw checkout has a matching compat registry record", - "evidence": [ - "api.capture.runtime-registrars", - "status:active" - ], - "compatRecord": "api.capture.runtime-registrars" - }, { "fixture": "synology-chat", "code": "compat-record-present", @@ -43478,16 +53090,16 @@ }, { "fixture": "bluebubbles", - "decision": "core-compat-adapter", - "seam": "sdk-alias", - "action": "Restore the package export alias or publish a versioned migration map before cold-importing old plugins.", - "evidence": "openclaw/plugin-sdk/bluebubbles" + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" }, { "fixture": "bluebubbles", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/bluebubbles/.crabpot-package/package.json" }, { @@ -43495,41 +53107,13 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/bluebubbles/.crabpot-package/index.ts" - }, - { - "fixture": "bluebubbles", - "decision": "inspector-follow-up", - "seam": "cold-import", - "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", - "evidence": "zod" - }, - { - "fixture": "bluebubbles", - "decision": "inspector-follow-up", - "seam": "registration-capture", - "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel" - }, - { - "fixture": "bluebubbles", - "decision": "inspector-follow-up", - "seam": "channel-runtime", - "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" - }, - { - "fixture": "diagnostics-otel", - "decision": "core-compat-adapter", - "seam": "sdk-alias", - "action": "Restore the package export alias or publish a versioned migration map before cold-importing old plugins.", - "evidence": "openclaw/plugin-sdk/diagnostics-otel" + "evidence": "plugins/bluebubbles/.crabpot-package/index.ts, plugins/bluebubbles/.crabpot-package/setup-entry.ts" }, { "fixture": "diagnostics-otel", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/diagnostics-otel/.crabpot-package/package.json" }, { @@ -43557,7 +53141,14 @@ "fixture": "discord", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "discord", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/discord/.crabpot-package/package.json" }, { @@ -43565,34 +53156,34 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/discord/.crabpot-package/index.ts" + "evidence": "plugins/discord/.crabpot-package/index.ts, plugins/discord/.crabpot-package/setup-entry.ts" }, { "fixture": "discord", "decision": "inspector-follow-up", - "seam": "registration-capture", - "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel" + "seam": "cold-import", + "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", + "evidence": "@discordjs/voice, discord-api-types, https-proxy-agent, opusscript, typebox, undici, ws" }, { "fixture": "discord", - "decision": "inspector-follow-up", - "seam": "channel-runtime", - "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" - }, - { - "fixture": "lobster", "decision": "core-compat-adapter", - "seam": "sdk-alias", - "action": "Restore the package export alias or publish a versioned migration map before cold-importing old plugins.", - "evidence": "openclaw/plugin-sdk/lobster" + "seam": "channel-env", + "action": "Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path.", + "evidence": "discord" }, { "fixture": "lobster", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "lobster", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/lobster/.crabpot-package/package.json" }, { @@ -43607,14 +53198,14 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", - "evidence": "@sinclair/typebox" + "evidence": "@clawdbot/lobster, ajv, typebox" }, { "fixture": "lobster", - "decision": "inspector-follow-up", - "seam": "tool-schema", - "action": "Capture registered tool schemas from plugin register() before judging tool compatibility.", - "evidence": "registerTool without manifest contracts.tools" + "decision": "no-action", + "seam": "manifest-contract", + "action": "Keep checking this declarative contract in default offline CI.", + "evidence": "tools" }, { "fixture": "matrix", @@ -43660,16 +53251,16 @@ }, { "fixture": "msteams", - "decision": "core-compat-adapter", - "seam": "sdk-alias", - "action": "Restore the package export alias or publish a versioned migration map before cold-importing old plugins.", - "evidence": "openclaw/plugin-sdk/msteams" + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" }, { "fixture": "msteams", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/msteams/.crabpot-package/package.json" }, { @@ -43677,41 +53268,41 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/msteams/.crabpot-package/index.ts" + "evidence": "plugins/msteams/.crabpot-package/index.ts, plugins/msteams/.crabpot-package/setup-entry.ts" }, { "fixture": "msteams", "decision": "inspector-follow-up", "seam": "cold-import", "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", - "evidence": "@microsoft/agents-hosting, express" + "evidence": "@azure/identity, @microsoft/teams.api, @microsoft/teams.apps, express, jsonwebtoken, jwks-rsa, typebox" }, { "fixture": "msteams", - "decision": "inspector-follow-up", - "seam": "registration-capture", - "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel" + "decision": "core-compat-adapter", + "seam": "channel-env", + "action": "Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path.", + "evidence": "msteams" }, { "fixture": "msteams", "decision": "inspector-follow-up", "seam": "channel-runtime", "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" - }, - { - "fixture": "nextcloud-talk", - "decision": "core-compat-adapter", - "seam": "sdk-alias", - "action": "Restore the package export alias or publish a versioned migration map before cold-importing old plugins.", - "evidence": "openclaw/plugin-sdk/nextcloud-talk" + "evidence": "createChatChannelPlugin" }, { "fixture": "nextcloud-talk", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "nextcloud-talk", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/nextcloud-talk/.crabpot-package/package.json" }, { @@ -43719,7 +53310,7 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/nextcloud-talk/.crabpot-package/index.ts" + "evidence": "plugins/nextcloud-talk/.crabpot-package/index.ts, plugins/nextcloud-talk/.crabpot-package/setup-entry.ts" }, { "fixture": "nextcloud-talk", @@ -43730,30 +53321,30 @@ }, { "fixture": "nextcloud-talk", - "decision": "inspector-follow-up", - "seam": "registration-capture", - "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel" + "decision": "core-compat-adapter", + "seam": "channel-env", + "action": "Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path.", + "evidence": "nextcloud-talk" }, { "fixture": "nextcloud-talk", "decision": "inspector-follow-up", "seam": "channel-runtime", "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" - }, - { - "fixture": "nostr", - "decision": "core-compat-adapter", - "seam": "sdk-alias", - "action": "Restore the package export alias or publish a versioned migration map before cold-importing old plugins.", - "evidence": "openclaw/plugin-sdk/nostr" + "evidence": "createChatChannelPlugin" }, { "fixture": "nostr", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "nostr", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/nostr/.crabpot-package/package.json" }, { @@ -43761,7 +53352,7 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/nostr/.crabpot-package/index.ts" + "evidence": "plugins/nostr/.crabpot-package/index.ts, plugins/nostr/.crabpot-package/setup-entry.ts" }, { "fixture": "nostr", @@ -43770,32 +53361,39 @@ "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", "evidence": "nostr-tools, zod" }, + { + "fixture": "nostr", + "decision": "core-compat-adapter", + "seam": "channel-env", + "action": "Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path.", + "evidence": "nostr" + }, { "fixture": "nostr", "decision": "inspector-follow-up", "seam": "registration-capture", "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel, registerHttpRoute" + "evidence": "registerHttpRoute" }, { "fixture": "nostr", "decision": "inspector-follow-up", "seam": "channel-runtime", "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" - }, - { - "fixture": "voice-call", - "decision": "core-compat-adapter", - "seam": "sdk-alias", - "action": "Restore the package export alias or publish a versioned migration map before cold-importing old plugins.", - "evidence": "openclaw/plugin-sdk/voice-call" + "evidence": "createChatChannelPlugin" }, { "fixture": "voice-call", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "voice-call", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/voice-call/.crabpot-package/package.json" }, { @@ -43810,34 +53408,41 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", - "evidence": "@sinclair/typebox, commander, ws, zod" + "evidence": "commander, typebox, ws" + }, + { + "fixture": "voice-call", + "decision": "core-compat-adapter", + "seam": "channel-env", + "action": "Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path.", + "evidence": "voice-call" }, { "fixture": "voice-call", "decision": "inspector-follow-up", "seam": "registration-capture", "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerGatewayMethod, registerService" + "evidence": "registerConfigMigration, registerGatewayMethod, registerService" }, { "fixture": "voice-call", - "decision": "inspector-follow-up", - "seam": "tool-schema", - "action": "Capture registered tool schemas from plugin register() before judging tool compatibility.", - "evidence": "registerTool without manifest contracts.tools" - }, - { - "fixture": "zalo", - "decision": "core-compat-adapter", - "seam": "sdk-alias", - "action": "Restore the package export alias or publish a versioned migration map before cold-importing old plugins.", - "evidence": "openclaw/plugin-sdk/zalo" + "decision": "no-action", + "seam": "manifest-contract", + "action": "Keep checking this declarative contract in default offline CI.", + "evidence": "tools" }, { "fixture": "zalo", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "zalo", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/zalo/.crabpot-package/package.json" }, { @@ -43845,34 +53450,41 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/zalo/.crabpot-package/index.ts" + "evidence": "plugins/zalo/.crabpot-package/index.ts, plugins/zalo/.crabpot-package/setup-entry.ts" }, { "fixture": "zalo", "decision": "inspector-follow-up", "seam": "cold-import", "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", - "evidence": "undici, zod" + "evidence": "undici" }, { "fixture": "zalo", - "decision": "inspector-follow-up", - "seam": "registration-capture", - "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel" + "decision": "core-compat-adapter", + "seam": "channel-env", + "action": "Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path.", + "evidence": "zalo" }, { "fixture": "zalo", "decision": "inspector-follow-up", "seam": "channel-runtime", "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" + "evidence": "createChatChannelPlugin" }, { "fixture": "zalouser", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "zalouser", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/zalouser/.crabpot-package/package.json" }, { @@ -43880,48 +53492,48 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/zalouser/.crabpot-package/index.ts" + "evidence": "plugins/zalouser/.crabpot-package/index.ts, plugins/zalouser/.crabpot-package/setup-entry.ts" }, { "fixture": "zalouser", "decision": "inspector-follow-up", "seam": "cold-import", "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", - "evidence": "@sinclair/typebox, zca-js, zod" + "evidence": "typebox, zca-js" }, { "fixture": "zalouser", - "decision": "inspector-follow-up", - "seam": "registration-capture", - "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel" + "decision": "core-compat-adapter", + "seam": "channel-env", + "action": "Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path.", + "evidence": "zalouser" }, { "fixture": "zalouser", "decision": "inspector-follow-up", "seam": "channel-runtime", "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" + "evidence": "createChatChannelPlugin" }, { "fixture": "zalouser", - "decision": "inspector-follow-up", - "seam": "tool-schema", - "action": "Capture registered tool schemas from plugin register() before judging tool compatibility.", - "evidence": "registerTool without manifest contracts.tools" - }, - { - "fixture": "feishu", - "decision": "core-compat-adapter", - "seam": "sdk-alias", - "action": "Restore the package export alias or publish a versioned migration map before cold-importing old plugins.", - "evidence": "openclaw/plugin-sdk/feishu" + "decision": "no-action", + "seam": "manifest-contract", + "action": "Keep checking this declarative contract in default offline CI.", + "evidence": "tools" }, { "fixture": "feishu", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "feishu", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/feishu/.crabpot-package/package.json" }, { @@ -43929,41 +53541,48 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/feishu/.crabpot-package/index.ts" + "evidence": "plugins/feishu/.crabpot-package/index.ts, plugins/feishu/.crabpot-package/setup-entry.ts" }, { "fixture": "feishu", "decision": "inspector-follow-up", "seam": "cold-import", "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", - "evidence": "@larksuiteoapi/node-sdk, @sinclair/typebox, https-proxy-agent, zod" + "evidence": "@larksuiteoapi/node-sdk, typebox" }, { "fixture": "feishu", - "decision": "inspector-follow-up", - "seam": "registration-capture", - "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel" + "decision": "core-compat-adapter", + "seam": "channel-env", + "action": "Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path.", + "evidence": "feishu" }, { "fixture": "feishu", "decision": "inspector-follow-up", "seam": "channel-runtime", "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" + "evidence": "createChatChannelPlugin" }, { "fixture": "feishu", - "decision": "inspector-follow-up", - "seam": "tool-schema", - "action": "Capture registered tool schemas from plugin register() before judging tool compatibility.", - "evidence": "registerTool without manifest contracts.tools" + "decision": "no-action", + "seam": "manifest-contract", + "action": "Keep checking this declarative contract in default offline CI.", + "evidence": "tools" }, { "fixture": "tlon", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "tlon", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/tlon/.crabpot-package/package.json" }, { @@ -43971,41 +53590,41 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/tlon/.crabpot-package/index.ts" + "evidence": "plugins/tlon/.crabpot-package/index.ts, plugins/tlon/.crabpot-package/setup-entry.ts" }, { "fixture": "tlon", "decision": "inspector-follow-up", "seam": "cold-import", "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", - "evidence": "@urbit/aura" - }, - { - "fixture": "tlon", - "decision": "core-compat-adapter", - "seam": "sdk-import", - "action": "Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases.", - "evidence": "openclaw/plugin-sdk" - }, - { - "fixture": "tlon", - "decision": "inspector-follow-up", - "seam": "registration-capture", - "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel" + "evidence": "@aws-sdk/client-s3, @aws-sdk/s3-request-presigner, @tloncorp/tlon-skill, @urbit/aura" }, { "fixture": "tlon", "decision": "inspector-follow-up", "seam": "channel-runtime", "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" + "evidence": "createChatChannelPlugin" + }, + { + "fixture": "tlon", + "decision": "no-action", + "seam": "manifest-contract", + "action": "Keep checking this declarative contract in default offline CI.", + "evidence": "tools" }, { "fixture": "twitch", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "twitch", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/twitch/.crabpot-package/package.json" }, { @@ -44013,35 +53632,21 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/twitch/.crabpot-package/index.ts" + "evidence": "plugins/twitch/.crabpot-package/index.ts, plugins/twitch/.crabpot-package/setup-entry.ts" }, { "fixture": "twitch", "decision": "inspector-follow-up", "seam": "cold-import", "action": "Install runtime dependencies in an isolated workspace before executing this fixture entrypoint.", - "evidence": "@twurple/api, @twurple/auth, @twurple/chat, zod" + "evidence": "@twurple/api, @twurple/auth, @twurple/chat" }, { "fixture": "twitch", "decision": "core-compat-adapter", - "seam": "sdk-import", - "action": "Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases.", - "evidence": "openclaw/plugin-sdk" - }, - { - "fixture": "twitch", - "decision": "inspector-follow-up", - "seam": "registration-capture", - "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel" - }, - { - "fixture": "twitch", - "decision": "inspector-follow-up", - "seam": "channel-runtime", - "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" + "seam": "channel-env", + "action": "Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path.", + "evidence": "twitch" }, { "fixture": "mattermost", @@ -44082,7 +53687,14 @@ "fixture": "synology-chat", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to declare the plugin API range it was built against.", + "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", + "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec" + }, + { + "fixture": "synology-chat", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/synology-chat/.crabpot-package/package.json" }, { @@ -44090,7 +53702,7 @@ "decision": "inspector-follow-up", "seam": "cold-import", "action": "Compile TypeScript source or run a loader before cold-importing this fixture entrypoint.", - "evidence": "plugins/synology-chat/.crabpot-package/index.ts" + "evidence": "plugins/synology-chat/.crabpot-package/index.ts, plugins/synology-chat/.crabpot-package/setup-entry.ts" }, { "fixture": "synology-chat", @@ -44102,23 +53714,16 @@ { "fixture": "synology-chat", "decision": "core-compat-adapter", - "seam": "sdk-import", - "action": "Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases.", - "evidence": "openclaw/plugin-sdk" - }, - { - "fixture": "synology-chat", - "decision": "inspector-follow-up", - "seam": "registration-capture", - "action": "Expose or mirror a full public API capture shim before treating these runtime-only seams as covered.", - "evidence": "registerChannel" + "seam": "channel-env", + "action": "Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path.", + "evidence": "synology-chat" }, { "fixture": "synology-chat", "decision": "inspector-follow-up", "seam": "channel-runtime", "action": "Probe channel setup and message envelope contracts before changing channel runtime payloads.", - "evidence": "registerChannel" + "evidence": "createChatChannelPlugin" }, { "fixture": "brave-plugin", @@ -44131,7 +53736,7 @@ "fixture": "brave-plugin", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets.", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/brave-plugin/.crabpot-package/package.json" }, { @@ -44166,7 +53771,7 @@ "fixture": "codex", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets.", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/codex/.crabpot-package/package.json" }, { @@ -44201,8 +53806,8 @@ "fixture": "diagnostics-prometheus", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets.", - "evidence": "openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec, openclaw.release.publishToNpm requires openclaw.install.npmSpec" + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", + "evidence": "plugins/diagnostics-prometheus/.crabpot-package/package.json" }, { "fixture": "diagnostics-prometheus", @@ -44229,7 +53834,7 @@ "fixture": "google-meet", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets.", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/google-meet/.crabpot-package/package.json" }, { @@ -44255,10 +53860,10 @@ }, { "fixture": "google-meet", - "decision": "inspector-follow-up", - "seam": "tool-schema", - "action": "Capture registered tool schemas from plugin register() before judging tool compatibility.", - "evidence": "registerTool without manifest contracts.tools" + "decision": "no-action", + "seam": "manifest-contract", + "action": "Keep checking this declarative contract in default offline CI.", + "evidence": "tools" }, { "fixture": "diffs", @@ -44271,7 +53876,7 @@ "fixture": "diffs", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets.", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/diffs/.crabpot-package/package.json" }, { @@ -44297,10 +53902,10 @@ }, { "fixture": "diffs", - "decision": "inspector-follow-up", - "seam": "tool-schema", - "action": "Capture registered tool schemas from plugin register() before judging tool compatibility.", - "evidence": "registerTool without manifest contracts.tools" + "decision": "no-action", + "seam": "manifest-contract", + "action": "Keep checking this declarative contract in default offline CI.", + "evidence": "tools" }, { "fixture": "memory-lancedb", @@ -44313,7 +53918,7 @@ "fixture": "memory-lancedb", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets.", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/memory-lancedb/.crabpot-package/package.json" }, { @@ -44346,10 +53951,10 @@ }, { "fixture": "memory-lancedb", - "decision": "inspector-follow-up", - "seam": "tool-schema", - "action": "Capture registered tool schemas from plugin register() before judging tool compatibility.", - "evidence": "registerTool without manifest contracts.tools" + "decision": "no-action", + "seam": "manifest-contract", + "action": "Keep checking this declarative contract in default offline CI.", + "evidence": "tools" }, { "fixture": "openclaw-qqbot", @@ -44362,7 +53967,7 @@ "fixture": "openclaw-qqbot", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets.", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/openclaw-qqbot/.crabpot-package/package.json" }, { @@ -44395,10 +54000,10 @@ }, { "fixture": "openclaw-qqbot", - "decision": "inspector-follow-up", - "seam": "tool-schema", - "action": "Capture registered tool schemas from plugin register() before judging tool compatibility.", - "evidence": "registerTool without manifest contracts.tools" + "decision": "no-action", + "seam": "manifest-contract", + "action": "Keep checking this declarative contract in default offline CI.", + "evidence": "tools" }, { "fixture": "whatsapp", @@ -44411,7 +54016,7 @@ "fixture": "whatsapp", "decision": "plugin-upstream-fix", "seam": "package-metadata", - "action": "Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets.", + "action": "Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets.", "evidence": "plugins/whatsapp/.crabpot-package/package.json" }, { @@ -44470,6 +54075,13 @@ "action": "Probe before_tool_call return shapes before changing tool-call approval or block behavior.", "evidence": "before_tool_call" }, + { + "fixture": "memory-tencentdb", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Remove unsupported OpenClaw metadata; native plugins use openclaw.plugin.json plus supported package openclaw fields.", + "evidence": "openclaw.bundle" + }, { "fixture": "memory-tencentdb", "decision": "inspector-follow-up", @@ -44638,6 +54250,13 @@ "action": "Ask the plugin to declare the plugin API range it was built against.", "evidence": "plugins/yuanbao/.crabpot-package/package.json" }, + { + "fixture": "yuanbao", + "decision": "plugin-upstream-fix", + "seam": "package-metadata", + "action": "Remove unsupported OpenClaw metadata; native plugins use openclaw.plugin.json plus supported package openclaw fields.", + "evidence": "openclaw.bundle" + }, { "fixture": "yuanbao", "decision": "inspector-follow-up", @@ -45051,13 +54670,6 @@ "action": "Capture registered tool schemas from plugin register() before judging tool compatibility.", "evidence": "registerTool without manifest contracts.tools" }, - { - "fixture": "inworld-tts", - "decision": "plugin-upstream-fix", - "seam": "package-metadata", - "action": "Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets.", - "evidence": "plugins/inworld-tts/package.json" - }, { "fixture": "inworld-tts", "decision": "inspector-follow-up", @@ -45086,27 +54698,6 @@ "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", "evidence": "plugin-sdk-export-aliases" }, - { - "fixture": "bluebubbles", - "decision": "core-compat-adapter", - "seam": "compat-registry", - "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", - "evidence": "plugin-sdk-export-aliases" - }, - { - "fixture": "diagnostics-otel", - "decision": "core-compat-adapter", - "seam": "compat-registry", - "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", - "evidence": "plugin-sdk-export-aliases" - }, - { - "fixture": "lobster", - "decision": "core-compat-adapter", - "seam": "compat-registry", - "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", - "evidence": "plugin-sdk-export-aliases" - }, { "fixture": "matrix", "decision": "core-compat-adapter", @@ -45114,48 +54705,6 @@ "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", "evidence": "plugin-sdk-export-aliases" }, - { - "fixture": "msteams", - "decision": "core-compat-adapter", - "seam": "compat-registry", - "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", - "evidence": "plugin-sdk-export-aliases" - }, - { - "fixture": "nextcloud-talk", - "decision": "core-compat-adapter", - "seam": "compat-registry", - "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", - "evidence": "plugin-sdk-export-aliases" - }, - { - "fixture": "nostr", - "decision": "core-compat-adapter", - "seam": "compat-registry", - "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", - "evidence": "plugin-sdk-export-aliases" - }, - { - "fixture": "voice-call", - "decision": "core-compat-adapter", - "seam": "compat-registry", - "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", - "evidence": "plugin-sdk-export-aliases" - }, - { - "fixture": "zalo", - "decision": "core-compat-adapter", - "seam": "compat-registry", - "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", - "evidence": "plugin-sdk-export-aliases" - }, - { - "fixture": "feishu", - "decision": "core-compat-adapter", - "seam": "compat-registry", - "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", - "evidence": "plugin-sdk-export-aliases" - }, { "fixture": "yuanbao", "decision": "core-compat-adapter", @@ -45170,5 +54719,70 @@ "action": "Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior.", "evidence": "plugin-sdk-export-aliases" } - ] + ], + "crabpotContext": { + "fixtureSet": "all", + "fixtureIds": [ + "agentchat", + "wecom", + "qqbot", + "a2a-gateway", + "hasdata", + "mcp-adapter", + "llm-trace-phoenix", + "opik-openclaw", + "openclaw-telemetry", + "lossless-claw", + "connectclaw", + "hyperspell", + "honcho", + "composio", + "kitchen-sink", + "bluebubbles", + "diagnostics-otel", + "discord", + "lobster", + "matrix", + "msteams", + "nextcloud-talk", + "nostr", + "voice-call", + "zalo", + "zalouser", + "feishu", + "tlon", + "twitch", + "mattermost", + "synology-chat", + "brave-plugin", + "codex", + "diagnostics-prometheus", + "google-meet", + "diffs", + "memory-lancedb", + "openclaw-qqbot", + "whatsapp", + "nemoclaw", + "memory-tencentdb", + "ddingtalk", + "dingtalk-connector", + "mocrane-wecom", + "yuanbao", + "openclaw-weixin", + "lightclawbot", + "telnyx-sms", + "clawrouter", + "memu-engine", + "secureclaw", + "memos-cloud", + "clawmetry", + "codex-app-server", + "web-search-plus", + "apify", + "inworld-tts" + ], + "openclawTarget": "explicit", + "pluginTrack": "manifest", + "runtimeEvidence": null + } } diff --git a/reports/crabpot-report.md b/reports/crabpot-report.md index 3c0af32..fd28ec3 100644 --- a/reports/crabpot-report.md +++ b/reports/crabpot-report.md @@ -3,150 +3,65 @@ Generated: deterministic Status: PASS + +## Crabpot Target Context + +- **OpenClaw host track:** `explicit` +- **Plugin artifact track:** `manifest` +- **Fixture set:** `all (57 fixtures)` ## Summary -| Metric | Value | -| ------------------------- | ----- | -| Fixtures | 57 | -| High-priority fixtures | 22 | -| Hard breakages | 0 | -| Warnings | 117 | -| Compatibility suggestions | 208 | -| Issue findings | 325 | -| P0 issues | 13 | -| P1 issues | 71 | -| Live issues | 13 | -| Live P0 issues | 13 | -| Compat gaps | 13 | -| Deprecation warnings | 33 | -| Inspector gaps | 203 | -| Upstream metadata | 63 | -| Contract probes | 310 | -| Decision rows | 330 | +| Metric | Value | +| -------------------------- | ----- | +| Fixtures | 57 | +| High-priority fixtures | 22 | +| Hard breakages | 0 | +| Warnings | 129 | +| Compatibility suggestions | 178 | +| Issue findings | 307 | +| Open issue findings | 307 | +| Runtime-covered findings | 0 | +| Runtime-partial findings | 0 | +| P0 issues | 4 | +| P1 issues | 52 | +| Open P0 issues | 4 | +| Open P1 issues | 52 | +| Live issues | 4 | +| Live P0 issues | 4 | +| Compat gaps | 4 | +| Deprecation warnings | 40 | +| Inspector gaps | 182 | +| Open inspector gaps | 182 | +| Runtime coverage artifacts | 0 | +| Upstream metadata | 77 | +| Contract probes | 299 | +| Decision rows | 321 | ## Triage Overview -| Class | Count | P0 | Meaning | -| ------------------- | ----- | -- | --------------------------------------------------------------------------------------------------------------- | -| live-issue | 13 | 13 | Potential runtime breakage in the target OpenClaw/plugin pair. P0 only when it is not a deprecated compat seam. | -| compat-gap | 13 | - | Compatibility behavior is needed but missing from the target OpenClaw compat registry. | -| deprecation-warning | 33 | - | Plugin uses a supported but deprecated compatibility seam; keep it wired while migration exists. | -| inspector-gap | 203 | - | Plugin Inspector needs stronger capture/probe evidence before making contract judgments. | -| upstream-metadata | 63 | - | Plugin package or manifest metadata should improve upstream; not a target OpenClaw live break by itself. | -| fixture-regression | 0 | - | Fixture no longer exposes an expected seam; investigate fixture pin or scanner drift. | +| Class | Count | P0 | Meaning | +| ------------------- | ----- | -- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| live-issue | 4 | 4 | Potential runtime breakage in the target OpenClaw/plugin pair. P0 only when it is not a deprecated compat seam. | +| compat-gap | 4 | - | Compatibility behavior is needed but missing from the target OpenClaw compat registry. | +| deprecation-warning | 40 | - | Plugin uses a supported but deprecated compatibility seam; keep it wired while migration exists. | +| inspector-gap | 182 | - | Plugin Inspector needs stronger capture/probe evidence before making contract judgments. Runtime-covered rows are proof-backed and not open report work. | +| upstream-metadata | 77 | - | Plugin package or manifest metadata should improve upstream; not a target OpenClaw live break by itself. | +| fixture-regression | 0 | - | Fixture no longer exposes an expected seam; investigate fixture pin or scanner drift. | ## P0 Live Issues -- 🔴 P0 **bluebubbles** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: bluebubbles: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/bluebubbles @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ account-resolve.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/account-resolve.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/accounts.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ actions.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/actions.ts#L13) - - [openclaw/plugin-sdk/bluebubbles @ attachments.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/attachments.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L20) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L5) - - [openclaw/plugin-sdk/bluebubbles @ chat.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/chat.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ config-apply.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-apply.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-schema.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ history.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/history.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ media-send.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/media-send.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ monitor-debounce.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-debounce.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-normalize.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-normalize.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:19](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L19) - - [openclaw/plugin-sdk/bluebubbles @ monitor-shared.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-shared.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor.ts#L9) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/bluebubbles @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/probe.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/reactions.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ request-url.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/request-url.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/runtime.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ targets.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/targets.ts#L8) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L3) - - 🔴 P0 **clawmetry** `live-issue` `core-compat-adapter` - **sdk-export-missing**: clawmetry: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:2](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/src/service.ts#L2) -- 🔴 P0 **diagnostics-otel** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: diagnostics-otel: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L1) - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L2) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L15) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L20) - -- 🔴 P0 **feishu** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: feishu: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/feishu @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L1) - - [openclaw/plugin-sdk/feishu @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L2) - - [openclaw/plugin-sdk/feishu @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/accounts.ts#L2) - - [openclaw/plugin-sdk/feishu @ bitable.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L3) - - [openclaw/plugin-sdk/feishu @ bot.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L1) - - [openclaw/plugin-sdk/feishu @ bot.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L15) - - [openclaw/plugin-sdk/feishu @ card-action.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/card-action.ts#L1) - - [openclaw/plugin-sdk/feishu @ channel.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L13) - - [openclaw/plugin-sdk/feishu @ channel.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L6) - - [openclaw/plugin-sdk/feishu @ chat.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L2) - - [openclaw/plugin-sdk/feishu @ dedup.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dedup.ts#L7) - - [openclaw/plugin-sdk/feishu @ directory.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/directory.ts#L5) - - [openclaw/plugin-sdk/feishu @ docx.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L7) - - [openclaw/plugin-sdk/feishu @ drive.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L2) - - [openclaw/plugin-sdk/feishu @ dynamic-agent.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dynamic-agent.ts#L4) - - [openclaw/plugin-sdk/feishu @ media.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/media.ts#L4) - - [openclaw/plugin-sdk/feishu @ monitor.account.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.account.ts#L3) - - [openclaw/plugin-sdk/feishu @ monitor.startup.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.startup.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.state.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.state.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.transport.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.transport.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.webhook.test-helpers.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.webhook.test-helpers.ts#L3) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L20) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/feishu @ outbound.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/outbound.ts#L3) - - [openclaw/plugin-sdk/feishu @ perm.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L2) - - [openclaw/plugin-sdk/feishu @ policy.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L5) - - [openclaw/plugin-sdk/feishu @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L6) - - [openclaw/plugin-sdk/feishu @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reactions.ts#L1) - - [openclaw/plugin-sdk/feishu @ reply-dispatcher.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reply-dispatcher.ts#L8) - - [openclaw/plugin-sdk/feishu @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/runtime.ts#L2) - - [openclaw/plugin-sdk/feishu @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/feishu @ send-target.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send-target.ts#L1) - - [openclaw/plugin-sdk/feishu @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send.ts#L1) - - [openclaw/plugin-sdk/feishu @ streaming-card.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/streaming-card.ts#L6) - - [openclaw/plugin-sdk/feishu @ tool-account.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-account.ts#L2) - - [openclaw/plugin-sdk/feishu @ tool-factory-test-harness.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-factory-test-harness.ts#L1) - - [openclaw/plugin-sdk/feishu @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/types.ts#L1) - - [openclaw/plugin-sdk/feishu @ typing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/typing.ts#L1) - - [openclaw/plugin-sdk/feishu @ wiki.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L2) - - 🔴 P0 **honcho** `live-issue` `core-compat-adapter` - **sdk-export-missing**: honcho: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11) -- 🔴 P0 **lobster** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: lobster: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/lobster @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L5) - - [openclaw/plugin-sdk/lobster @ lobster-tool.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/lobster-tool.ts#L4) - - [openclaw/plugin-sdk/lobster @ windows-spawn.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/windows-spawn.ts#L5) - - 🔴 P0 **matrix** `live-issue` `core-compat-adapter` - **sdk-export-missing**: matrix: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -182,87 +97,6 @@ Status: PASS - [openclaw/plugin-sdk/matrix @ tool-actions.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/tool-actions.ts#L8) - [openclaw/plugin-sdk/matrix @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/types.ts#L1) -- 🔴 P0 **msteams** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: msteams: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/msteams @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L1) - - [openclaw/plugin-sdk/msteams @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L2) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ payload.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/payload.ts#L1) - - [openclaw/plugin-sdk/msteams @ remote-media.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/remote-media.ts#L1) - - [openclaw/plugin-sdk/msteams @ shared.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L7) - - [openclaw/plugin-sdk/msteams @ shared.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L8) - - [openclaw/plugin-sdk/msteams @ channel.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L18) - - [openclaw/plugin-sdk/msteams @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L9) - - [openclaw/plugin-sdk/msteams @ directory-live.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/directory-live.ts#L1) - - [openclaw/plugin-sdk/msteams @ file-lock.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/file-lock.ts#L1) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ media-helpers.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/media-helpers.ts#L11) - - [openclaw/plugin-sdk/msteams @ messenger.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/messenger.ts#L10) - - [openclaw/plugin-sdk/msteams @ monitor-handler.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler.ts#L1) - - [openclaw/plugin-sdk/msteams @ message-handler.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler/message-handler.ts#L22) - - [openclaw/plugin-sdk/msteams @ monitor.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor.ts#L10) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/msteams @ outbound.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/outbound.ts#L1) - - [openclaw/plugin-sdk/msteams @ policy.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L10) - - [openclaw/plugin-sdk/msteams @ policy.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L20) - - [openclaw/plugin-sdk/msteams @ probe.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/probe.ts#L5) - - [openclaw/plugin-sdk/msteams @ reply-dispatcher.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/reply-dispatcher.ts#L9) - - [openclaw/plugin-sdk/msteams @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/runtime.ts#L2) - - [openclaw/plugin-sdk/msteams @ secret-input.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/secret-input.ts#L5) - - [openclaw/plugin-sdk/msteams @ send-context.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send-context.ts#L5) - - [openclaw/plugin-sdk/msteams @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L1) - - [openclaw/plugin-sdk/msteams @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L2) - - [openclaw/plugin-sdk/msteams @ store-fs.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/store-fs.ts#L2) - - [openclaw/plugin-sdk/msteams @ test-runtime.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/test-runtime.ts#L3) - - [openclaw/plugin-sdk/msteams @ token.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/token.ts#L1) - -- 🔴 P0 **nextcloud-talk** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nextcloud-talk: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L1) - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ accounts.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/accounts.ts#L7) - - [openclaw/plugin-sdk/nextcloud-talk @ channel.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/channel.ts#L22) - - [openclaw/plugin-sdk/nextcloud-talk @ config-schema.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/config-schema.ts#L10) - - [openclaw/plugin-sdk/nextcloud-talk @ inbound.ts:17](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/inbound.ts#L17) - - [openclaw/plugin-sdk/nextcloud-talk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/monitor.ts#L8) - - [openclaw/plugin-sdk/nextcloud-talk @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L14) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ replay-guard.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/replay-guard.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L3) - - [openclaw/plugin-sdk/nextcloud-talk @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ types.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/types.ts#L7) - -- 🔴 P0 **nostr** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nostr: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nostr @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L1) - - [openclaw/plugin-sdk/nostr @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L2) - - [openclaw/plugin-sdk/nostr @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/channel.ts#L9) - - [openclaw/plugin-sdk/nostr @ config-schema.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/config-schema.ts#L2) - - [openclaw/plugin-sdk/nostr @ nostr-profile-http.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/nostr-profile-http.ts#L16) - - [openclaw/plugin-sdk/nostr @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nostr @ types.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/types.ts#L6) - -- 🔴 P0 **voice-call** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: voice-call: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/voice-call @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L5) - - [openclaw/plugin-sdk/voice-call @ cli.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/cli.ts#L5) - - [openclaw/plugin-sdk/voice-call @ config.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/config.ts#L6) - - [openclaw/plugin-sdk/voice-call @ guarded-json-api.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/shared/guarded-json-api.ts#L1) - - [openclaw/plugin-sdk/voice-call @ tts-openai.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/tts-openai.ts#L1) - - [openclaw/plugin-sdk/voice-call @ webhook.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/webhook.ts#L7) - - 🔴 P0 **yuanbao** `live-issue` `core-compat-adapter` - **sdk-export-missing**: yuanbao: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -274,146 +108,20 @@ Status: PASS - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2 - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 -- 🔴 P0 **zalo** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: zalo: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/zalo @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L1) - - [openclaw/plugin-sdk/zalo @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L2) - - [openclaw/plugin-sdk/zalo @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/accounts.ts#L2) - - [openclaw/plugin-sdk/zalo @ actions.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L5) - - [openclaw/plugin-sdk/zalo @ actions.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L6) - - [openclaw/plugin-sdk/zalo @ channel.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L14) - - [openclaw/plugin-sdk/zalo @ channel.ts:34](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L34) - - [openclaw/plugin-sdk/zalo @ config-schema.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/config-schema.ts#L7) - - [openclaw/plugin-sdk/zalo @ group-access.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L1) - - [openclaw/plugin-sdk/zalo @ group-access.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L22) - - [openclaw/plugin-sdk/zalo @ monitor.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L18) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L3) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/zalo @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/probe.ts#L1) - - [openclaw/plugin-sdk/zalo @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/runtime.ts#L2) - - [openclaw/plugin-sdk/zalo @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/zalo @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/send.ts#L1) - - [openclaw/plugin-sdk/zalo @ status-issues.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/status-issues.ts#L1) - - [openclaw/plugin-sdk/zalo @ token.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/token.ts#L3) - - [openclaw/plugin-sdk/zalo @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/types.ts#L1) - ## Live Issues -- 🔴 P0 **bluebubbles** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: bluebubbles: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/bluebubbles @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ account-resolve.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/account-resolve.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/accounts.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ actions.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/actions.ts#L13) - - [openclaw/plugin-sdk/bluebubbles @ attachments.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/attachments.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L20) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L5) - - [openclaw/plugin-sdk/bluebubbles @ chat.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/chat.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ config-apply.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-apply.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-schema.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ history.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/history.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ media-send.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/media-send.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ monitor-debounce.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-debounce.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-normalize.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-normalize.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:19](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L19) - - [openclaw/plugin-sdk/bluebubbles @ monitor-shared.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-shared.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor.ts#L9) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/bluebubbles @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/probe.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/reactions.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ request-url.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/request-url.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/runtime.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ targets.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/targets.ts#L8) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L3) - - 🔴 P0 **clawmetry** `live-issue` `core-compat-adapter` - **sdk-export-missing**: clawmetry: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:2](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/src/service.ts#L2) -- 🔴 P0 **diagnostics-otel** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: diagnostics-otel: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L1) - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L2) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L15) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L20) - -- 🔴 P0 **feishu** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: feishu: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/feishu @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L1) - - [openclaw/plugin-sdk/feishu @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L2) - - [openclaw/plugin-sdk/feishu @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/accounts.ts#L2) - - [openclaw/plugin-sdk/feishu @ bitable.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L3) - - [openclaw/plugin-sdk/feishu @ bot.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L1) - - [openclaw/plugin-sdk/feishu @ bot.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L15) - - [openclaw/plugin-sdk/feishu @ card-action.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/card-action.ts#L1) - - [openclaw/plugin-sdk/feishu @ channel.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L13) - - [openclaw/plugin-sdk/feishu @ channel.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L6) - - [openclaw/plugin-sdk/feishu @ chat.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L2) - - [openclaw/plugin-sdk/feishu @ dedup.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dedup.ts#L7) - - [openclaw/plugin-sdk/feishu @ directory.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/directory.ts#L5) - - [openclaw/plugin-sdk/feishu @ docx.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L7) - - [openclaw/plugin-sdk/feishu @ drive.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L2) - - [openclaw/plugin-sdk/feishu @ dynamic-agent.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dynamic-agent.ts#L4) - - [openclaw/plugin-sdk/feishu @ media.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/media.ts#L4) - - [openclaw/plugin-sdk/feishu @ monitor.account.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.account.ts#L3) - - [openclaw/plugin-sdk/feishu @ monitor.startup.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.startup.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.state.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.state.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.transport.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.transport.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.webhook.test-helpers.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.webhook.test-helpers.ts#L3) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L20) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/feishu @ outbound.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/outbound.ts#L3) - - [openclaw/plugin-sdk/feishu @ perm.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L2) - - [openclaw/plugin-sdk/feishu @ policy.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L5) - - [openclaw/plugin-sdk/feishu @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L6) - - [openclaw/plugin-sdk/feishu @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reactions.ts#L1) - - [openclaw/plugin-sdk/feishu @ reply-dispatcher.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reply-dispatcher.ts#L8) - - [openclaw/plugin-sdk/feishu @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/runtime.ts#L2) - - [openclaw/plugin-sdk/feishu @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/feishu @ send-target.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send-target.ts#L1) - - [openclaw/plugin-sdk/feishu @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send.ts#L1) - - [openclaw/plugin-sdk/feishu @ streaming-card.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/streaming-card.ts#L6) - - [openclaw/plugin-sdk/feishu @ tool-account.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-account.ts#L2) - - [openclaw/plugin-sdk/feishu @ tool-factory-test-harness.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-factory-test-harness.ts#L1) - - [openclaw/plugin-sdk/feishu @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/types.ts#L1) - - [openclaw/plugin-sdk/feishu @ typing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/typing.ts#L1) - - [openclaw/plugin-sdk/feishu @ wiki.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L2) - - 🔴 P0 **honcho** `live-issue` `core-compat-adapter` - **sdk-export-missing**: honcho: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11) -- 🔴 P0 **lobster** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: lobster: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/lobster @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L5) - - [openclaw/plugin-sdk/lobster @ lobster-tool.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/lobster-tool.ts#L4) - - [openclaw/plugin-sdk/lobster @ windows-spawn.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/windows-spawn.ts#L5) - - 🔴 P0 **matrix** `live-issue` `core-compat-adapter` - **sdk-export-missing**: matrix: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -449,87 +157,6 @@ Status: PASS - [openclaw/plugin-sdk/matrix @ tool-actions.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/tool-actions.ts#L8) - [openclaw/plugin-sdk/matrix @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/types.ts#L1) -- 🔴 P0 **msteams** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: msteams: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/msteams @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L1) - - [openclaw/plugin-sdk/msteams @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L2) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ payload.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/payload.ts#L1) - - [openclaw/plugin-sdk/msteams @ remote-media.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/remote-media.ts#L1) - - [openclaw/plugin-sdk/msteams @ shared.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L7) - - [openclaw/plugin-sdk/msteams @ shared.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L8) - - [openclaw/plugin-sdk/msteams @ channel.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L18) - - [openclaw/plugin-sdk/msteams @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L9) - - [openclaw/plugin-sdk/msteams @ directory-live.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/directory-live.ts#L1) - - [openclaw/plugin-sdk/msteams @ file-lock.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/file-lock.ts#L1) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ media-helpers.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/media-helpers.ts#L11) - - [openclaw/plugin-sdk/msteams @ messenger.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/messenger.ts#L10) - - [openclaw/plugin-sdk/msteams @ monitor-handler.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler.ts#L1) - - [openclaw/plugin-sdk/msteams @ message-handler.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler/message-handler.ts#L22) - - [openclaw/plugin-sdk/msteams @ monitor.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor.ts#L10) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/msteams @ outbound.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/outbound.ts#L1) - - [openclaw/plugin-sdk/msteams @ policy.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L10) - - [openclaw/plugin-sdk/msteams @ policy.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L20) - - [openclaw/plugin-sdk/msteams @ probe.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/probe.ts#L5) - - [openclaw/plugin-sdk/msteams @ reply-dispatcher.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/reply-dispatcher.ts#L9) - - [openclaw/plugin-sdk/msteams @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/runtime.ts#L2) - - [openclaw/plugin-sdk/msteams @ secret-input.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/secret-input.ts#L5) - - [openclaw/plugin-sdk/msteams @ send-context.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send-context.ts#L5) - - [openclaw/plugin-sdk/msteams @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L1) - - [openclaw/plugin-sdk/msteams @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L2) - - [openclaw/plugin-sdk/msteams @ store-fs.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/store-fs.ts#L2) - - [openclaw/plugin-sdk/msteams @ test-runtime.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/test-runtime.ts#L3) - - [openclaw/plugin-sdk/msteams @ token.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/token.ts#L1) - -- 🔴 P0 **nextcloud-talk** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nextcloud-talk: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L1) - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ accounts.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/accounts.ts#L7) - - [openclaw/plugin-sdk/nextcloud-talk @ channel.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/channel.ts#L22) - - [openclaw/plugin-sdk/nextcloud-talk @ config-schema.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/config-schema.ts#L10) - - [openclaw/plugin-sdk/nextcloud-talk @ inbound.ts:17](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/inbound.ts#L17) - - [openclaw/plugin-sdk/nextcloud-talk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/monitor.ts#L8) - - [openclaw/plugin-sdk/nextcloud-talk @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L14) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ replay-guard.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/replay-guard.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L3) - - [openclaw/plugin-sdk/nextcloud-talk @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ types.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/types.ts#L7) - -- 🔴 P0 **nostr** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nostr: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nostr @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L1) - - [openclaw/plugin-sdk/nostr @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L2) - - [openclaw/plugin-sdk/nostr @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/channel.ts#L9) - - [openclaw/plugin-sdk/nostr @ config-schema.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/config-schema.ts#L2) - - [openclaw/plugin-sdk/nostr @ nostr-profile-http.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/nostr-profile-http.ts#L16) - - [openclaw/plugin-sdk/nostr @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nostr @ types.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/types.ts#L6) - -- 🔴 P0 **voice-call** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: voice-call: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/voice-call @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L5) - - [openclaw/plugin-sdk/voice-call @ cli.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/cli.ts#L5) - - [openclaw/plugin-sdk/voice-call @ config.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/config.ts#L6) - - [openclaw/plugin-sdk/voice-call @ guarded-json-api.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/shared/guarded-json-api.ts#L1) - - [openclaw/plugin-sdk/voice-call @ tts-openai.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/tts-openai.ts#L1) - - [openclaw/plugin-sdk/voice-call @ webhook.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/webhook.ts#L7) - - 🔴 P0 **yuanbao** `live-issue` `core-compat-adapter` - **sdk-export-missing**: yuanbao: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -541,114 +168,32 @@ Status: PASS - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2 - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 -- 🔴 P0 **zalo** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: zalo: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/zalo @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L1) - - [openclaw/plugin-sdk/zalo @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L2) - - [openclaw/plugin-sdk/zalo @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/accounts.ts#L2) - - [openclaw/plugin-sdk/zalo @ actions.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L5) - - [openclaw/plugin-sdk/zalo @ actions.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L6) - - [openclaw/plugin-sdk/zalo @ channel.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L14) - - [openclaw/plugin-sdk/zalo @ channel.ts:34](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L34) - - [openclaw/plugin-sdk/zalo @ config-schema.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/config-schema.ts#L7) - - [openclaw/plugin-sdk/zalo @ group-access.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L1) - - [openclaw/plugin-sdk/zalo @ group-access.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L22) - - [openclaw/plugin-sdk/zalo @ monitor.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L18) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L3) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/zalo @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/probe.ts#L1) - - [openclaw/plugin-sdk/zalo @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/runtime.ts#L2) - - [openclaw/plugin-sdk/zalo @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/zalo @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/send.ts#L1) - - [openclaw/plugin-sdk/zalo @ status-issues.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/status-issues.ts#L1) - - [openclaw/plugin-sdk/zalo @ token.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/token.ts#L3) - - [openclaw/plugin-sdk/zalo @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/types.ts#L1) - ## Compat Gaps -- 🟠 P1 **bluebubbles** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: bluebubbles: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **clawmetry** `compat-gap` `core-compat-adapter` - **missing-compat-record**: clawmetry: compat-dependent behavior lacks registry coverage - state: open · compat:missing - evidence: - plugin-sdk-export-aliases -- 🟠 P1 **diagnostics-otel** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: diagnostics-otel: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **feishu** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: feishu: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **honcho** `compat-gap` `core-compat-adapter` - **missing-compat-record**: honcho: compat-dependent behavior lacks registry coverage - state: open · compat:missing - evidence: - plugin-sdk-export-aliases -- 🟠 P1 **lobster** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: lobster: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **matrix** `compat-gap` `core-compat-adapter` - **missing-compat-record**: matrix: compat-dependent behavior lacks registry coverage - state: open · compat:missing - evidence: - plugin-sdk-export-aliases -- 🟠 P1 **msteams** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: msteams: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **nextcloud-talk** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: nextcloud-talk: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **nostr** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: nostr: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **voice-call** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: voice-call: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **yuanbao** `compat-gap` `core-compat-adapter` - **missing-compat-record**: yuanbao: compat-dependent behavior lacks registry coverage - state: open · compat:missing - evidence: - plugin-sdk-export-aliases -- 🟠 P1 **zalo** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: zalo: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - ## Deprecation Warnings - 🟡 P2 **a2a-gateway** `deprecation-warning` `core-compat-adapter` @@ -726,6 +271,18 @@ Status: PASS - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/runtime.ts#L1) - [openclaw/plugin-sdk @ agent.ts:8](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/utils/agent.ts#L8) +- 🟡 P2 **discord** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: discord: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - discord + +- 🟡 P2 **feishu** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: feishu: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - feishu + - 🟡 P2 **hasdata** `deprecation-warning` `core-compat-adapter` - **provider-auth-env-vars**: hasdata: providerAuthEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated @@ -773,13 +330,13 @@ Status: PASS - **legacy-before-agent-start**: kitchen-sink: legacy before_agent_start hook compatibility is still used - state: open · compat:deprecated · deprecated - evidence: - - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L11) + - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L11) - 🟡 P2 **kitchen-sink** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: kitchen-sink: root plugin SDK barrel is still used by fixtures - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-sdk-imports.ts#L2) + - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-sdk-imports.ts#L2) - 🟡 P2 **llm-trace-phoenix** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: llm-trace-phoenix: root plugin SDK barrel is still used by fixtures @@ -860,12 +417,30 @@ Status: PASS - [openclaw/plugin-sdk @ command-auth.ts:1](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/src/shared/command-auth.ts#L1) - [openclaw/plugin-sdk @ ws-adapter.ts:14](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/src/ws-adapter.ts#L14) +- 🟡 P2 **msteams** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: msteams: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - msteams + - 🟡 P2 **nemoclaw** `deprecation-warning` `core-compat-adapter` - **legacy-before-agent-start**: nemoclaw: legacy before_agent_start hook compatibility is still used - state: open · compat:deprecated · deprecated - evidence: - [before_agent_start @ runtime-context.ts:474](https://github.com/NVIDIA/NemoClaw/blob/f9d21afa193c2b67cb55e79eca03db40f0fbe836/nemoclaw/src/runtime-context.ts#L474) +- 🟡 P2 **nextcloud-talk** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: nextcloud-talk: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - nextcloud-talk + +- 🟡 P2 **nostr** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: nostr: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - nostr + - 🟡 P2 **openclaw-qqbot** `deprecation-warning` `core-compat-adapter` - **channel-env-vars**: openclaw-qqbot: channelEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated @@ -915,13 +490,10 @@ Status: PASS - [openclaw/plugin-sdk @ remind.ts:1](https://github.com/tencent-connect/openclaw-qqbot/blob/3eee78922ed0b19af5c4c55f1dfe7d1c848e31f5/src/tools/remind.ts#L1) - 🟡 P2 **synology-chat** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: synology-chat: root plugin SDK barrel is still used by fixtures + - **channel-env-vars**: synology-chat: channelEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/channel.ts#L12) - - [openclaw/plugin-sdk @ runtime.ts:7](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/runtime.ts#L7) + - synology-chat - 🟡 P2 **telnyx-sms** `deprecation-warning` `core-compat-adapter` - **channel-env-vars**: telnyx-sms: channelEnvVars legacy manifest metadata must stay covered @@ -929,52 +501,17 @@ Status: PASS - evidence: - telnyx-sms -- 🟡 P2 **tlon** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: tlon: root plugin SDK barrel is still used by fixtures - - state: open · compat:deprecated · deprecated - - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L12) - - [openclaw/plugin-sdk @ channel.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L7) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ discovery.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/discovery.ts#L1) - - [openclaw/plugin-sdk @ history.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/history.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L2) - - [openclaw/plugin-sdk @ index.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L3) - - [openclaw/plugin-sdk @ onboarding.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L1) - - [openclaw/plugin-sdk @ onboarding.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L9) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ types.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/types.ts#L1) - - [openclaw/plugin-sdk @ auth.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/auth.ts#L1) - - [openclaw/plugin-sdk @ base-url.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/base-url.ts#L1) - - [openclaw/plugin-sdk @ channel-client.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-client.ts#L1) - - [openclaw/plugin-sdk @ channel-ops.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-ops.ts#L1) - - [openclaw/plugin-sdk @ context.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/context.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L2) - - [openclaw/plugin-sdk @ sse-client.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/sse-client.ts#L2) - - 🟡 P2 **twitch** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: twitch: root plugin SDK barrel is still used by fixtures + - **channel-env-vars**: twitch: channelEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L2) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ config.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config.ts#L1) - - [openclaw/plugin-sdk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L8) - - [openclaw/plugin-sdk @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L9) - - [openclaw/plugin-sdk @ onboarding.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L12) - - [openclaw/plugin-sdk @ onboarding.ts:5](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L5) - - [openclaw/plugin-sdk @ plugin.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L8) - - [openclaw/plugin-sdk @ plugin.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L9) - - [openclaw/plugin-sdk @ probe.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/probe.ts#L3) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ send.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/send.ts#L8) - - [openclaw/plugin-sdk @ status.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/status.ts#L7) - - [openclaw/plugin-sdk @ test-fixtures.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/test-fixtures.ts#L1) - - [openclaw/plugin-sdk @ twitch-client.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/twitch-client.ts#L3) + - twitch + +- 🟡 P2 **voice-call** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: voice-call: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - voice-call - 🟡 P2 **yuanbao** `deprecation-warning` `core-compat-adapter` - **channel-env-vars**: yuanbao: channelEnvVars legacy manifest metadata must stay covered @@ -982,6 +519,18 @@ Status: PASS - evidence: - yuanbao +- 🟡 P2 **zalo** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: zalo: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - zalo + +- 🟡 P2 **zalouser** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: zalouser: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - zalouser + ## Inspector Proof Gaps - 🟠 P1 **a2a-gateway** `inspector-gap` `inspector-follow-up` @@ -995,12 +544,6 @@ Status: PASS - [registerGatewayMethod @ index.ts:669](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L669) - [registerService @ index.ts:857](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L857) -- 🟠 P1 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: bluebubbles: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - - 🟠 P1 **clawmetry** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: clawmetry: runtime registrations need capture before contract judgment - state: open · compat:active @@ -1024,7 +567,7 @@ Status: PASS - **registration-capture-gap**: codex: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts#L33) + - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts#L33) - 🟠 P1 **codex-app-server** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: codex-app-server: runtime registrations need capture before contract judgment @@ -1047,20 +590,20 @@ Status: PASS - **registration-capture-gap**: diagnostics-otel: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L11) + - [registerService @ index.ts:9](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts#L9) - 🟠 P1 **diagnostics-prometheus** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: diagnostics-prometheus: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L12) - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L11) + - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L12) + - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L11) - 🟠 P1 **diffs** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: diffs: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L57) + - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/src/plugin.ts#L57) - 🟠 P1 **dingtalk-connector** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: dingtalk-connector: runtime registrations need capture before contract judgment @@ -1081,36 +624,26 @@ Status: PASS - [registerGatewayMethod @ gateway-methods.ts:652](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L652) - [registerGatewayMethod @ gateway-methods.ts:719](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L719) -- 🟠 P1 **discord** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: discord: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) - -- 🟠 P1 **feishu** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: feishu: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) - - 🟠 P1 **google-meet** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: google-meet: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerGatewayMethod @ index.ts:631](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L631) - - [registerGatewayMethod @ index.ts:652](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L652) - - [registerGatewayMethod @ index.ts:674](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L674) - - [registerGatewayMethod @ index.ts:686](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L686) - - [registerGatewayMethod @ index.ts:704](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L704) - - [registerGatewayMethod @ index.ts:722](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L722) - - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L746) - - [registerGatewayMethod @ index.ts:768](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L768) - - [registerGatewayMethod @ index.ts:792](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L792) - - [registerGatewayMethod @ index.ts:817](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L817) - - [registerGatewayMethod @ index.ts:828](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L828) - - [registerGatewayMethod @ index.ts:845](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L845) - - [registerGatewayMethod @ index.ts:862](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L862) - - [registerNodeHostCommand @ index.ts:1018](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L1018) + - [registerGatewayMethod @ index.ts:703](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L703) + - [registerGatewayMethod @ index.ts:724](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L724) + - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L746) + - [registerGatewayMethod @ index.ts:758](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L758) + - [registerGatewayMethod @ index.ts:776](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L776) + - [registerGatewayMethod @ index.ts:795](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L795) + - [registerGatewayMethod @ index.ts:819](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L819) + - [registerGatewayMethod @ index.ts:841](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L841) + - [registerGatewayMethod @ index.ts:865](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L865) + - [registerGatewayMethod @ index.ts:890](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L890) + - [registerGatewayMethod @ index.ts:901](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L901) + - [registerGatewayMethod @ index.ts:918](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L918) + - [registerGatewayMethod @ index.ts:937](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L937) + - [registerGatewayMethod @ index.ts:954](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L954) + - [registerGatewayMethod @ index.ts:975](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L975) + - [registerNodeHostCommand @ index.ts:1143](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L1143) - 🟠 P1 **honcho** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: honcho: conversation-access hooks need privacy-boundary probes @@ -1141,55 +674,55 @@ Status: PASS - **before-tool-call-probe**: kitchen-sink: before_tool_call needs terminal/block/approval probes - state: open · compat:active - evidence: - - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L19) + - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L19) - 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: kitchen-sink: conversation-access hooks need privacy-boundary probes - state: open · compat:active - evidence: - - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L7) - - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L25) - - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L26) + - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L7) + - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L25) + - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L26) - 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: kitchen-sink: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L7) - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) - - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L12) - - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L50) - - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L51) - - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L13) - - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L95) - - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L14) - - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L15) - - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/scripts/sync-surface.mjs#L113) - - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L17) - - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L86) - - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L18) - - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L19) - - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L107) - - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L20) - - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L21) - - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L105) - - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L23) - - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L53) - - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L25) - - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L26) - - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L92) - - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L28) - - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L29) - - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L30) - - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L111) - - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L31) - - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L34) - - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L35) - - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L39) - - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L41) - - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L42) - - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L104) + - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L7) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) + - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L12) + - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L50) + - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L51) + - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L13) + - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L95) + - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L14) + - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L15) + - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/scripts/sync-surface.mjs#L113) + - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L17) + - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L86) + - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L18) + - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L19) + - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L107) + - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L20) + - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L21) + - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L105) + - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L23) + - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L53) + - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L25) + - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L26) + - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L92) + - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L28) + - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L29) + - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L30) + - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L111) + - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L31) + - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L34) + - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L35) + - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L39) + - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L41) + - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L42) + - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L104) - 🟠 P1 **lightclawbot** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: lightclawbot: runtime registrations need capture before contract judgment @@ -1233,14 +766,14 @@ Status: PASS - **conversation-access-hook**: memory-lancedb: conversation-access hooks need privacy-boundary probes - state: open · compat:active - evidence: - - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1005) + - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1005) - 🟠 P1 **memory-lancedb** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: memory-lancedb: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1085) - - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L586) + - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1085) + - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L586) - 🟠 P1 **memory-tencentdb** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: memory-tencentdb: conversation-access hooks need privacy-boundary probes @@ -1267,12 +800,6 @@ Status: PASS - [registerChannel @ index.ts:31](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L31) - [registerHttpRoute @ index.ts:34](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L34) -- 🟠 P1 **msteams** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: msteams: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) - - 🟠 P1 **nemoclaw** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: nemoclaw: before_tool_call needs terminal/block/approval probes - state: open · compat:active @@ -1285,24 +812,17 @@ Status: PASS - evidence: - [registerCommand @ index.ts:336](https://github.com/NVIDIA/NemoClaw/blob/f9d21afa193c2b67cb55e79eca03db40f0fbe836/nemoclaw/src/index.ts#L336) -- 🟠 P1 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: nextcloud-talk: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) - - 🟠 P1 **nostr** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: nostr: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) - - [registerHttpRoute @ index.ts:64](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L64) + - [registerHttpRoute @ index.ts:89](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts#L89) - 🟠 P1 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: openclaw-qqbot: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) + - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) - 🟠 P1 **openclaw-telemetry** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: openclaw-telemetry: before_tool_call needs terminal/block/approval probes @@ -1362,41 +882,27 @@ Status: PASS - [registerService @ index.ts:301](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L301) - [registerService @ index.ts:307](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L307) -- 🟠 P1 **synology-chat** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: synology-chat: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) - - 🟠 P1 **telnyx-sms** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: telnyx-sms: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - [registerHttpRoute @ index.ts:259](https://github.com/team-telnyx/telnyx-openclaw-sms-channel/blob/dee567716ca56d49464bf6354393f3656d92a2b3/index.ts#L259) -- 🟠 P1 **tlon** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: tlon: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) - -- 🟠 P1 **twitch** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: twitch: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) - - 🟠 P1 **voice-call** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: voice-call: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerGatewayMethod @ index.ts:261](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L261) - - [registerGatewayMethod @ index.ts:294](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L294) - - [registerGatewayMethod @ index.ts:311](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L311) - - [registerGatewayMethod @ index.ts:327](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L327) - - [registerGatewayMethod @ index.ts:349](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L349) - - [registerGatewayMethod @ index.ts:376](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L376) - - [registerService @ index.ts:532](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L532) + - [registerConfigMigration @ setup-api.ts:45](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/setup-api.ts#L45) + - [registerGatewayMethod @ index.ts:390](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L390) + - [registerGatewayMethod @ index.ts:420](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L420) + - [registerGatewayMethod @ index.ts:437](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L437) + - [registerGatewayMethod @ index.ts:457](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L457) + - [registerGatewayMethod @ index.ts:478](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L478) + - [registerGatewayMethod @ index.ts:513](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L513) + - [registerGatewayMethod @ index.ts:536](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L536) + - [registerGatewayMethod @ index.ts:558](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L558) + - [registerGatewayMethod @ index.ts:581](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L581) + - [registerService @ index.ts:748](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L748) - 🟠 P1 **wecom** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: wecom: before_tool_call needs terminal/block/approval probes @@ -1422,18 +928,6 @@ Status: PASS - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:32 - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:33 -- 🟠 P1 **zalo** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: zalo: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) - -- 🟠 P1 **zalouser** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: zalouser: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) - - 🟡 P2 **a2a-gateway** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: a2a-gateway: cold import requires dependency installation in an isolated workspace - state: open · compat:none @@ -1500,29 +994,18 @@ Status: PASS - evidence: - [registerTool @ index.ts:13](https://github.com/apify/apify-openclaw-plugin/blob/41f49794d230f7ad092d1c699ee4d91fecf6ba91/src/index.ts#L13) -- 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: bluebubbles: channel runtime needs envelope/config probes - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - -- 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **package-dependency-install-required**: bluebubbles: cold import requires dependency installation in an isolated workspace - - state: open · compat:none - - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) - - 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: bluebubbles: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/setup-entry.ts) - 🟡 P2 **brave-plugin** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: brave-plugin: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/brave/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/brave/index.ts) - 🟡 P2 **clawmetry** `inspector-gap` `inspector-follow-up` - **package-build-artifact-entrypoint**: clawmetry: cold import requires package build output @@ -1565,17 +1048,17 @@ Status: PASS - **package-dependency-install-required**: codex: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) + - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) - 🟡 P2 **codex** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: codex: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts) - 🟡 P2 **codex-app-server** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: codex-app-server: cold import requires dependency installation in an isolated workspace @@ -1643,50 +1126,44 @@ Status: PASS - **package-dependency-install-required**: diagnostics-otel: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) - 🟡 P2 **diagnostics-otel** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diagnostics-otel: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts) - 🟡 P2 **diagnostics-prometheus** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diagnostics-prometheus: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts) - 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: diffs: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) + - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) - 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diffs: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/index.ts) - -- 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: diffs: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ plugin.ts:42](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L42) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/index.ts) - 🟡 P2 **dingtalk-connector** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: dingtalk-connector: channel runtime needs envelope/config probes @@ -1712,68 +1189,56 @@ Status: PASS - [mammoth @ package.json](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/package.json) - 🟡 P2 **discord** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: discord: channel runtime needs envelope/config probes - - state: open · compat:active + - **package-dependency-install-required**: discord: cold import requires dependency installation in an isolated workspace + - state: open · compat:none - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) + - [@discordjs/voice @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [discord-api-types @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [opusscript @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) - 🟡 P2 **discord** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: discord: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/setup-entry.ts) - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: feishu: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) + - [createChatChannelPlugin @ channel.ts:580](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/src/channel.ts#L580) - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: feishu: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) + - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: feishu: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts) - -- 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: feishu: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ bitable.ts:559](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L559) - - [registerTool @ chat.ts:95](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L95) - - [registerTool @ docx.ts:1262](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1262) - - [registerTool @ docx.ts:1436](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1436) - - [registerTool @ drive.ts:186](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L186) - - [registerTool @ perm.ts:135](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L135) - - [registerTool @ wiki.ts:174](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L174) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/setup-entry.ts) - 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: google-meet: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) - 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: google-meet: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts) - -- 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: google-meet: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:883](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L883) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts) - 🟡 P2 **hasdata** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: hasdata: cold import requires dependency installation in an isolated workspace @@ -1844,8 +1309,8 @@ Status: PASS - **channel-contract-probe**: kitchen-sink: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) - 🟡 P2 **lightclawbot** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: lightclawbot: channel runtime needs envelope/config probes @@ -1876,19 +1341,15 @@ Status: PASS - **package-dependency-install-required**: lobster: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) + - [@clawdbot/lobster @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) - 🟡 P2 **lobster** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: lobster: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts) - -- 🟡 P2 **lobster** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: lobster: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L9) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/index.ts) - 🟡 P2 **lossless-claw** `inspector-gap` `inspector-follow-up` - **package-build-artifact-entrypoint**: lossless-claw: cold import requires package build output @@ -1971,23 +1432,15 @@ Status: PASS - **package-dependency-install-required**: memory-lancedb: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [openai @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) + - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [openai @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) - 🟡 P2 **memory-lancedb** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: memory-lancedb: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts) - -- 🟡 P2 **memory-lancedb** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: memory-lancedb: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:643](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L643) - - [registerTool @ index.ts:694](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L694) - - [registerTool @ index.ts:757](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L757) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts) - 🟡 P2 **memory-tencentdb** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: memory-tencentdb: cold import requires dependency installation in an isolated workspace @@ -2057,20 +1510,26 @@ Status: PASS - **channel-contract-probe**: msteams: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:406](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/src/channel.ts#L406) - 🟡 P2 **msteams** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: msteams: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@microsoft/agents-hosting @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) - - [express @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) + - [@azure/identity @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.apps @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [express @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jsonwebtoken @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jwks-rsa @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) - 🟡 P2 **msteams** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: msteams: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/setup-entry.ts) - 🟡 P2 **nemoclaw** `inspector-gap` `inspector-follow-up` - **package-build-artifact-entrypoint**: nemoclaw: cold import requires package build output @@ -2092,62 +1551,57 @@ Status: PASS - **channel-contract-probe**: nextcloud-talk: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:69](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/src/channel.ts#L69) - 🟡 P2 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: nextcloud-talk: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/package.json) - 🟡 P2 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: nextcloud-talk: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/setup-entry.ts) - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: nostr: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) + - [createChatChannelPlugin @ channel.ts:88](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/src/channel.ts#L88) - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: nostr: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) + - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: nostr: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/setup-entry.ts) - 🟡 P2 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: openclaw-qqbot: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) + - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) - 🟡 P2 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: openclaw-qqbot: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/setup-entry.ts) - -- 🟡 P2 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: openclaw-qqbot: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ channel.ts:32](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/channel.ts#L32) - - [registerTool @ remind.ts:90](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/remind.ts#L90) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/setup-entry.ts) - 🟡 P2 **openclaw-telemetry** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: openclaw-telemetry: cold import needs TypeScript source entrypoint support @@ -2232,19 +1686,20 @@ Status: PASS - **channel-contract-probe**: synology-chat: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:209](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/src/channel.ts#L209) - 🟡 P2 **synology-chat** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: synology-chat: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/package.json) - 🟡 P2 **synology-chat** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: synology-chat: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/setup-entry.ts) - 🟡 P2 **telnyx-sms** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: telnyx-sms: channel runtime needs envelope/config probes @@ -2263,61 +1718,52 @@ Status: PASS - **channel-contract-probe**: tlon: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:61](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/src/channel.ts#L61) - 🟡 P2 **tlon** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: tlon: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) + - [@aws-sdk/client-s3 @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@aws-sdk/s3-request-presigner @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@tloncorp/tlon-skill @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) - 🟡 P2 **tlon** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: tlon: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts) - -- 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: twitch: channel runtime needs envelope/config probes - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/setup-entry.ts) - 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: twitch: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) + - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) - 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: twitch: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/setup-entry.ts) - 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: voice-call: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) - 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: voice-call: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts) - -- 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: voice-call: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:399](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L399) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts) - 🟡 P2 **web-search-plus** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: web-search-plus: cold import needs TypeScript source entrypoint support @@ -2359,18 +1805,18 @@ Status: PASS - **package-dependency-install-required**: whatsapp: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) + - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) - 🟡 P2 **whatsapp** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: whatsapp: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/setup-entry.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/setup-entry.ts) - 🟡 P2 **yuanbao** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: yuanbao: channel runtime needs envelope/config probes @@ -2410,46 +1856,44 @@ Status: PASS - **channel-contract-probe**: zalo: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:159](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/src/channel.ts#L159) - 🟡 P2 **zalo** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: zalo: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/package.json) - 🟡 P2 **zalo** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: zalo: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/setup-entry.ts) - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: zalouser: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) + - [createChatChannelPlugin @ channel.ts:68](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/src/channel.ts#L68) - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: zalouser: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) + - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: zalouser: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/setup-entry.ts) -- 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: zalouser: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L16) +## Runtime-Covered Inspector Gaps + +_none_ ## Upstream Metadata Issues @@ -2487,10 +1931,17 @@ Status: PASS - [icon @ openclaw.plugin.json](https://github.com/agentchatme/agentchat/blob/1460cece00ebd3829fb39d5db5ee23050937ed02/integrations/openclaw-channel/openclaw.plugin.json) - 🟡 P2 **bluebubbles** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: bluebubbles: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: bluebubbles: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **bluebubbles** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: bluebubbles: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **brave-plugin** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: brave-plugin: OpenClaw package install metadata is incomplete @@ -2503,7 +1954,7 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **clawmetry** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: clawmetry: OpenClaw package install metadata is incomplete @@ -2529,7 +1980,7 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.5.1-beta.1 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **composio** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: composio: plugin API compatibility range is missing @@ -2550,17 +2001,18 @@ Status: PASS - [package.json](https://github.com/largezhou/openclaw-dingtalk/blob/74d22da7335f261ec5febe2663bed6b81068b7ec/package.json) - 🟡 P2 **diagnostics-otel** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: diagnostics-otel: plugin API compatibility range is missing + - **package-min-host-version-drift**: diagnostics-otel: OpenClaw package minimum host version drifts from build target - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **diagnostics-prometheus** `upstream-metadata` `plugin-upstream-fix` - - **package-install-metadata-incomplete**: diagnostics-prometheus: OpenClaw package install metadata is incomplete + - **package-min-host-version-drift**: diagnostics-prometheus: OpenClaw package minimum host version drifts from build target - state: open · compat:none - evidence: - - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec - - openclaw.release.publishToNpm requires openclaw.install.npmSpec + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **diffs** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: diffs: OpenClaw package install metadata is incomplete @@ -2573,7 +2025,7 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.30 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **dingtalk-connector** `upstream-metadata` `plugin-upstream-fix` - **manifest-unknown-fields**: dingtalk-connector: manifest uses unsupported top-level fields @@ -2589,16 +2041,30 @@ Status: PASS - [package.json](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/package.json) - 🟡 P2 **discord** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: discord: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: discord: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **discord** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: discord: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **feishu** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: feishu: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: feishu: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **feishu** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: feishu: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **google-meet** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: google-meet: OpenClaw package install metadata is incomplete @@ -2611,14 +2077,7 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.20 - - buildOpenClawVersion:2026.5.1-beta.2 - -- 🟡 P2 **inworld-tts** `upstream-metadata` `plugin-upstream-fix` - - **package-min-host-version-drift**: inworld-tts: OpenClaw package minimum host version drifts from build target - - state: open · compat:none - - evidence: - - minHostVersion:>=2026.4.1 - - buildOpenClawVersion:2026.4.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **lightclawbot** `upstream-metadata` `plugin-upstream-fix` - **manifest-unknown-fields**: lightclawbot: manifest uses unsupported top-level fields @@ -2640,10 +2099,17 @@ Status: PASS - plugins/lightclawbot/.crabpot-package/package.json - 🟡 P2 **lobster** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: lobster: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: lobster: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **lobster** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: lobster: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **matrix** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: matrix: plugin API compatibility range is missing @@ -2674,7 +2140,13 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟡 P2 **memory-tencentdb** `upstream-metadata` `plugin-upstream-fix` + - **package-openclaw-unsupported-metadata**: memory-tencentdb: package declares unsupported OpenClaw metadata + - state: open · compat:none + - evidence: + - openclaw.bundle - 🟡 P2 **memos-cloud** `upstream-metadata` `plugin-upstream-fix` - **manifest-unknown-fields**: memos-cloud: manifest uses unsupported top-level fields @@ -2701,10 +2173,17 @@ Status: PASS - [package.json](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/package.json) - 🟡 P2 **msteams** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: msteams: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: msteams: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **msteams** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: msteams: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **nemoclaw** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: nemoclaw: plugin API compatibility range is missing @@ -2713,16 +2192,30 @@ Status: PASS - [package.json](https://github.com/NVIDIA/NemoClaw/blob/f9d21afa193c2b67cb55e79eca03db40f0fbe836/nemoclaw/package.json) - 🟡 P2 **nextcloud-talk** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: nextcloud-talk: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: nextcloud-talk: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **nextcloud-talk** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: nextcloud-talk: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **nostr** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: nostr: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: nostr: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **nostr** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: nostr: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **openclaw-qqbot** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: openclaw-qqbot: OpenClaw package install metadata is incomplete @@ -2735,7 +2228,7 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **openclaw-telemetry** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: openclaw-telemetry: plugin API compatibility range is missing @@ -2769,28 +2262,56 @@ Status: PASS - [package.json](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/package.json) - 🟡 P2 **synology-chat** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: synology-chat: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: synology-chat: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **synology-chat** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: synology-chat: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **tlon** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: tlon: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: tlon: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **tlon** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: tlon: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **twitch** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: twitch: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: twitch: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **twitch** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: twitch: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **voice-call** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: voice-call: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: voice-call: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **voice-call** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: voice-call: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **web-search-plus** `upstream-metadata` `plugin-upstream-fix` - **manifest-unknown-fields**: web-search-plus: manifest uses unsupported top-level fields @@ -2815,7 +2336,13 @@ Status: PASS - state: open · compat:none - evidence: - minHostVersion:>=2026.4.25 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟡 P2 **yuanbao** `upstream-metadata` `plugin-upstream-fix` + - **package-openclaw-unsupported-metadata**: yuanbao: package declares unsupported OpenClaw metadata + - state: open · compat:none + - evidence: + - openclaw.bundle - 🟡 P2 **yuanbao** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: yuanbao: plugin API compatibility range is missing @@ -2824,16 +2351,30 @@ Status: PASS - plugins/yuanbao/.crabpot-package/package.json - 🟡 P2 **zalo** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: zalo: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: zalo: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **zalo** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: zalo: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **zalouser** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: zalouser: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: zalouser: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **zalouser** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: zalouser: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **clawrouter** `upstream-metadata` `plugin-upstream-fix` - **security-manifest-schema-unavailable**: clawrouter: plugin security manifest references an unavailable schema @@ -2853,147 +2394,159 @@ _none_ ## Target OpenClaw Compat Records -| Metric | Value | -| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Configured path | ./openclaw | -| Status | ok | -| Compat registry | openclaw/src/plugins/compat/registry.ts | -| Compat records | 61 | -| Compat status counts | active:18, deprecated:43 | -| Record ids | activation-agent-harness-hint, activation-capability-hint, activation-channel-hint, activation-command-hint, activation-config-path-hint, activation-provider-hint, activation-route-hint, agent-harness-id-alias, agent-harness-sdk-alias, agent-tool-result-harness-alias, api.capture.runtime-registrars, approval-capability-approvals-alias, bundled-channel-config-schema-legacy, bundled-channel-sdk-compat-facades, bundled-plugin-allowlist, bundled-plugin-enablement, bundled-plugin-load-path-aliases, bundled-plugin-vitest-defaults, channel-env-vars, channel-exposure-legacy-aliases, channel-mention-gating-legacy-helpers, channel-native-message-schema-helpers, channel-route-key-aliases, channel-runtime-sdk-alias, channel-target-comparable-aliases, channel.runtime.envelope-config-metadata, clawdbot-config-type-alias, command-auth-status-builders, disable-persisted-plugin-registry-env, embedded-harness-config-alias, generated-bundled-channel-config-fallback, hook-only-plugin-shape, hook.before_tool_call.terminal-block-approval, hook.llm-observer.privacy-payload, legacy-before-agent-start, legacy-extension-api-import, legacy-implicit-startup-sidecar, legacy-root-sdk-import, memory-split-registration, openclaw-schema-type-alias, plugin-activate-entrypoint-alias, plugin-install-config-ledger, plugin-owned-web-fetch-config, plugin-owned-web-search-config, plugin-owned-x-search-config, plugin-registry-install-migration-env, plugin-sdk-test-utils-alias, plugin-sdk-testing-barrel, provider-auth-env-vars, provider-discovery-hook-alias, provider-discovery-type-aliases, provider-external-oauth-profiles-hook, provider-static-capabilities-bag, provider-thinking-policy-hooks, provider-web-search-core-wrapper, runtime-config-load-write, runtime-inbound-envelope-alias, runtime-stt-alias, runtime-subagent-get-session-alias, runtime-taskflow-legacy-alias, setup-runtime-fallback | -| Hook registry | openclaw/src/plugins/hook-types.ts | -| Hook names | 35 | -| API builder | openclaw/src/plugins/api-builder.ts | -| API registrars | 49 | -| Captured registration | openclaw/src/plugins/captured-registration.ts | -| Captured registrars | 26 | -| Package metadata | openclaw/package.json | -| Plugin SDK exports | 294 | -| Manifest types | openclaw/src/plugins/manifest.ts | -| Manifest fields | 35 | -| Manifest contract fields | 17 | +| Metric | Value | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Configured path | | +| Status | ok | +| Compat registry | ../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugins/compat/registry.ts | +| Compat records | 60 | +| Compat status counts | active:18, deprecated:42 | +| Record ids | activation-agent-harness-hint, activation-capability-hint, activation-channel-hint, activation-command-hint, activation-config-path-hint, activation-provider-hint, activation-route-hint, agent-harness-id-alias, agent-harness-sdk-alias, agent-tool-result-harness-alias, api.capture.runtime-registrars, approval-capability-approvals-alias, bundled-channel-config-schema-legacy, bundled-channel-sdk-compat-facades, bundled-plugin-allowlist, bundled-plugin-enablement, bundled-plugin-load-path-aliases, bundled-plugin-vitest-defaults, channel-env-vars, channel-exposure-legacy-aliases, channel-mention-gating-legacy-helpers, channel-native-message-schema-helpers, channel-route-key-aliases, channel-runtime-sdk-alias, channel-target-comparable-aliases, channel.runtime.envelope-config-metadata, clawdbot-config-type-alias, command-auth-status-builders, disable-persisted-plugin-registry-env, embedded-harness-config-alias, generated-bundled-channel-config-fallback, hook-only-plugin-shape, hook.before_tool_call.terminal-block-approval, hook.llm-observer.privacy-payload, legacy-before-agent-start, legacy-extension-api-import, legacy-root-sdk-import, memory-split-registration, openclaw-schema-type-alias, plugin-activate-entrypoint-alias, plugin-install-config-ledger, plugin-owned-web-fetch-config, plugin-owned-web-search-config, plugin-owned-x-search-config, plugin-registry-install-migration-env, plugin-sdk-test-utils-alias, plugin-sdk-testing-barrel, provider-auth-env-vars, provider-discovery-hook-alias, provider-discovery-type-aliases, provider-external-oauth-profiles-hook, provider-static-capabilities-bag, provider-thinking-policy-hooks, provider-web-search-core-wrapper, runtime-config-load-write, runtime-inbound-envelope-alias, runtime-stt-alias, runtime-subagent-get-session-alias, runtime-taskflow-legacy-alias, setup-runtime-fallback | +| Hook registry | ../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugins/hook-types.ts | +| Hook names | 35 | +| API builder | ../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugins/api-builder.ts | +| API registrars | 49 | +| Captured registration | ../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugins/captured-registration.ts | +| Captured registrars | 26 | +| Package metadata | ../../openclaw-openclaw/qa-kitchen-sink-crabbox/package.json | +| Plugin SDK exports | 294 | +| Manifest types | ../../openclaw-openclaw/qa-kitchen-sink-crabbox/src/plugins/manifest.ts | +| Manifest fields | 39 | +| Manifest contract fields | 17 | ## Warnings -| Fixture | Code | Level | Message | Evidence | Compat record | -| ---------------------- | ------------------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | -| agentchat | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json | - | -| agentchat | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | agentchat | channel-env-vars | -| wecom | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/wecom/package.json | - | -| qqbot | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | capabilities @ plugins/qqbot/openclaw.plugin.json, extensions @ plugins/qqbot/openclaw.plugin.json | - | -| qqbot | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/qqbot/package.json | - | -| qqbot | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/qqbot/index.ts:1, openclaw/plugin-sdk @ plugins/qqbot/index.ts:2, openclaw/plugin-sdk @ plugins/qqbot/src/approval-handler.ts:12, openclaw/plugin-sdk @ plugins/qqbot/src/config.ts:2, openclaw/plugin-sdk @ plugins/qqbot/src/onboarding.ts:13, openclaw/plugin-sdk @ plugins/qqbot/src/proactive.ts:67, openclaw/plugin-sdk @ plugins/qqbot/src/runtime.ts:1, openclaw/plugin-sdk @ plugins/qqbot/src/tools/channel.ts:1, openclaw/plugin-sdk @ plugins/qqbot/src/tools/remind.ts:1 | legacy-root-sdk-import | -| a2a-gateway | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json | - | -| a2a-gateway | package-manifest-version-drift | warning | package.json and openclaw.plugin.json publish different versions | package:1.4.0, manifest:1.3.0 | - | -| a2a-gateway | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/a2a-gateway/package.json | - | -| a2a-gateway | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 | legacy-root-sdk-import | -| hasdata | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | hasdata | provider-auth-env-vars | -| mcp-adapter | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/mcp-adapter/package.json | - | -| llm-trace-phoenix | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 | hook.llm-observer.privacy-payload | -| llm-trace-phoenix | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 | legacy-root-sdk-import | -| opik-openclaw | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/opik-openclaw/src/service.ts:560, llm_input @ plugins/opik-openclaw/src/service/hooks/llm.ts:39, llm_output @ plugins/opik-openclaw/src/service/hooks/llm.ts:150 | hook.llm-observer.privacy-payload | -| opik-openclaw | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1 | legacy-root-sdk-import | -| openclaw-telemetry | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/openclaw-telemetry/package.json | - | -| openclaw-telemetry | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/openclaw-telemetry/index.ts:62 | hook.llm-observer.privacy-payload | -| openclaw-telemetry | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/openclaw-telemetry/index.ts:1, openclaw/plugin-sdk @ plugins/openclaw-telemetry/src/service.ts:1, openclaw/plugin-sdk @ plugins/openclaw-telemetry/src/service.ts:2 | legacy-root-sdk-import | -| openclaw-telemetry | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/openclaw-telemetry/index.ts:53 | legacy-before-agent-start | -| lossless-claw | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/lossless-claw/src/openclaw-bridge.ts:21, openclaw/plugin-sdk @ plugins/lossless-claw/src/openclaw-bridge.ts:26 | legacy-root-sdk-import | -| connectclaw | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/connectclaw/packages/plugin/package.json | - | -| connectclaw | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/index.ts:1, openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/src/commands.ts:1, openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/src/hooks.ts:1, openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/src/tools.ts:1, openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/src/tools.ts:2 | legacy-root-sdk-import | -| connectclaw | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/connectclaw/packages/plugin/src/hooks.ts:17 | legacy-before-agent-start | -| hyperspell | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/hyperspell/commands/slash.ts:1, openclaw/plugin-sdk @ plugins/hyperspell/graph/tools.ts:2, openclaw/plugin-sdk @ plugins/hyperspell/index.ts:1 | legacy-root-sdk-import | -| honcho | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/memory-core @ plugins/honcho/index.ts:11 | plugin-sdk-export-aliases | -| honcho | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/honcho/hooks/capture.ts:151, agent_end @ plugins/honcho/hooks/subagent.ts:34 | hook.llm-observer.privacy-payload | -| honcho | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/honcho/commands/cli.ts:8, openclaw/plugin-sdk @ plugins/honcho/hooks/capture.ts:2, openclaw/plugin-sdk @ plugins/honcho/hooks/context.ts:2, openclaw/plugin-sdk @ plugins/honcho/hooks/gateway.ts:2, openclaw/plugin-sdk @ plugins/honcho/hooks/subagent.ts:2, openclaw/plugin-sdk @ plugins/honcho/state.ts:9, openclaw/plugin-sdk @ plugins/honcho/tools/ask.ts:3, openclaw/plugin-sdk @ plugins/honcho/tools/context.ts:3, openclaw/plugin-sdk @ plugins/honcho/tools/memory-passthrough.ts:3, openclaw/plugin-sdk @ plugins/honcho/tools/message-search.ts:3, openclaw/plugin-sdk @ plugins/honcho/tools/search.ts:3, openclaw/plugin-sdk @ plugins/honcho/tools/session.ts:3 | legacy-root-sdk-import | -| honcho | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/honcho/hooks/subagent.ts:18 | legacy-before-agent-start | -| composio | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/composio/package.json | - | -| composio | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/composio/index.ts:1, openclaw/plugin-sdk @ plugins/composio/src/cli.ts:6, openclaw/plugin-sdk @ plugins/composio/src/client.ts:1, openclaw/plugin-sdk @ plugins/composio/src/tools.ts:1 | legacy-root-sdk-import | -| kitchen-sink | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/kitchen-sink/src/generated-hooks.js:7, llm_input @ plugins/kitchen-sink/src/generated-hooks.js:25, llm_output @ plugins/kitchen-sink/src/generated-hooks.js:26 | hook.llm-observer.privacy-payload | -| kitchen-sink | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/kitchen-sink/src/generated-sdk-imports.ts:2 | legacy-root-sdk-import | -| kitchen-sink | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/kitchen-sink/src/generated-hooks.js:11 | legacy-before-agent-start | -| bluebubbles | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/index.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/index.ts:2, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/account-resolve.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/accounts.ts:2, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/actions.ts:13, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/attachments.ts:3, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/channel.ts:20, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/channel.ts:5, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/chat.ts:3, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/config-apply.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/config-schema.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/history.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/media-send.ts:6, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-debounce.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-normalize.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-processing.ts:19, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor-shared.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/monitor.ts:9, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/onboarding.ts:16, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/onboarding.ts:7, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/probe.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/reactions.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/request-url.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/runtime.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/secret-input.ts:6, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/send.ts:2, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/send.ts:3, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/targets.ts:8, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/types.ts:1, openclaw/plugin-sdk/bluebubbles @ plugins/bluebubbles/.crabpot-package/src/types.ts:3 | plugin-sdk-export-aliases | -| bluebubbles | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/bluebubbles/.crabpot-package/package.json | - | -| diagnostics-otel | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/index.ts:1, openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/index.ts:2, openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/src/service.ts:15, openclaw/plugin-sdk/diagnostics-otel @ plugins/diagnostics-otel/.crabpot-package/src/service.ts:20 | plugin-sdk-export-aliases | -| diagnostics-otel | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/diagnostics-otel/.crabpot-package/package.json | - | -| discord | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/discord/.crabpot-package/package.json | - | -| lobster | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/index.ts:5, openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/src/lobster-tool.ts:4, openclaw/plugin-sdk/lobster @ plugins/lobster/.crabpot-package/src/windows-spawn.ts:5 | plugin-sdk-export-aliases | -| lobster | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/lobster/.crabpot-package/package.json | - | -| matrix | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/index.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/index.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/actions.ts:9, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/channel.ts:17, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/config-schema.ts:7, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/directory-live.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/group-mentions.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/accounts.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/client/config.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/deps.ts:5, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/access-policy.ts:7, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/allowlist.ts:6, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/auto-join.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/events.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/handler.ts:17, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/index.ts:10, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/location.ts:6, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/replies.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/rooms.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/poll-types.ts:10, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/probe.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/send.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/onboarding.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/onboarding.ts:16, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/outbound.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/resolve-targets.ts:7, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/runtime.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/secret-input.ts:6, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/tool-actions.ts:8, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/types.ts:1 | plugin-sdk-export-aliases | -| matrix | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/matrix/.crabpot-package/package.json | - | -| msteams | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/index.ts:1, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/index.ts:2, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/graph.ts:1, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/payload.ts:1, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/remote-media.ts:1, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/shared.ts:7, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/attachments/shared.ts:8, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/channel.ts:18, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/channel.ts:9, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/directory-live.ts:1, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/file-lock.ts:1, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/graph.ts:1, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/media-helpers.ts:11, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/messenger.ts:10, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor-handler.ts:1, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor-handler/message-handler.ts:22, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/monitor.ts:10, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/onboarding.ts:18, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/onboarding.ts:8, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/outbound.ts:1, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/policy.ts:10, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/policy.ts:20, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/probe.ts:5, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/reply-dispatcher.ts:9, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/runtime.ts:2, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/secret-input.ts:5, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send-context.ts:5, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send.ts:1, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/send.ts:2, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/store-fs.ts:2, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/test-runtime.ts:3, openclaw/plugin-sdk/msteams @ plugins/msteams/.crabpot-package/src/token.ts:1 | plugin-sdk-export-aliases | -| msteams | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/msteams/.crabpot-package/package.json | - | -| nextcloud-talk | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/index.ts:1, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/index.ts:2, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/accounts.ts:7, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/channel.ts:22, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/config-schema.ts:10, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/inbound.ts:17, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/monitor.ts:8, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/onboarding.ts:16, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/policy.ts:14, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/policy.ts:6, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/replay-guard.ts:2, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:2, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/room-info.ts:3, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/runtime.ts:2, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/secret-input.ts:6, openclaw/plugin-sdk/nextcloud-talk @ plugins/nextcloud-talk/.crabpot-package/src/types.ts:7 | plugin-sdk-export-aliases | -| nextcloud-talk | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/nextcloud-talk/.crabpot-package/package.json | - | -| nostr | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/index.ts:1, openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/index.ts:2, openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/channel.ts:9, openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/config-schema.ts:2, openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/nostr-profile-http.ts:16, openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/runtime.ts:2, openclaw/plugin-sdk/nostr @ plugins/nostr/.crabpot-package/src/types.ts:6 | plugin-sdk-export-aliases | -| nostr | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/nostr/.crabpot-package/package.json | - | -| voice-call | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/index.ts:5, openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/cli.ts:5, openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/config.ts:6, openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/providers/shared/guarded-json-api.ts:1, openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/providers/tts-openai.ts:1, openclaw/plugin-sdk/voice-call @ plugins/voice-call/.crabpot-package/src/webhook.ts:7 | plugin-sdk-export-aliases | -| voice-call | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/voice-call/.crabpot-package/package.json | - | -| zalo | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/index.ts:1, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/index.ts:2, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/accounts.ts:2, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/actions.ts:5, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/actions.ts:6, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/channel.ts:14, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/channel.ts:34, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/config-schema.ts:7, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/group-access.ts:1, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/group-access.ts:6, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.ts:22, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.ts:6, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.webhook.ts:18, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/monitor.webhook.ts:3, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/onboarding.ts:18, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/onboarding.ts:7, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/probe.ts:1, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/runtime.ts:2, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/secret-input.ts:6, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/send.ts:1, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/status-issues.ts:1, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/token.ts:3, openclaw/plugin-sdk/zalo @ plugins/zalo/.crabpot-package/src/types.ts:1 | plugin-sdk-export-aliases | -| zalo | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/zalo/.crabpot-package/package.json | - | -| zalouser | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/zalouser/.crabpot-package/package.json | - | -| feishu | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/index.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/index.ts:2, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/accounts.ts:2, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bitable.ts:3, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bot.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/bot.ts:15, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/card-action.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/channel.ts:13, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/channel.ts:6, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/chat.ts:2, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/dedup.ts:7, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/directory.ts:5, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/docx.ts:7, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/drive.ts:2, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/dynamic-agent.ts:4, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/media.ts:4, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.account.ts:3, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.startup.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.state.ts:9, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.transport.ts:9, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/monitor.webhook.test-helpers.ts:3, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/onboarding.ts:20, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/onboarding.ts:8, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/outbound.ts:3, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/perm.ts:2, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/policy.ts:5, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/policy.ts:6, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/reactions.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/reply-dispatcher.ts:8, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/runtime.ts:2, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/secret-input.ts:6, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/send-target.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/send.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/streaming-card.ts:6, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/tool-account.ts:2, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/tool-factory-test-harness.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/types.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/typing.ts:1, openclaw/plugin-sdk/feishu @ plugins/feishu/.crabpot-package/src/wiki.ts:2 | plugin-sdk-export-aliases | -| feishu | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/feishu/.crabpot-package/package.json | - | -| tlon | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/tlon/.crabpot-package/package.json | - | -| tlon | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/index.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/index.ts:2, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/channel.ts:12, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/channel.ts:7, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/config-schema.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/discovery.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/history.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/index.ts:2, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/monitor/index.ts:3, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/onboarding.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/onboarding.ts:9, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/runtime.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/types.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/auth.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/base-url.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/channel-client.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/channel-ops.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/context.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/fetch.ts:1, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/fetch.ts:2, openclaw/plugin-sdk @ plugins/tlon/.crabpot-package/src/urbit/sse-client.ts:2 | legacy-root-sdk-import | -| twitch | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/twitch/.crabpot-package/package.json | - | -| twitch | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/index.ts:1, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/index.ts:2, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/config-schema.ts:1, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/config.ts:1, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/monitor.ts:8, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/monitor.ts:9, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/onboarding.ts:12, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/onboarding.ts:5, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/plugin.ts:8, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/plugin.ts:9, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/probe.ts:3, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/runtime.ts:1, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/send.ts:8, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/status.ts:7, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/test-fixtures.ts:1, openclaw/plugin-sdk @ plugins/twitch/.crabpot-package/src/twitch-client.ts:3 | legacy-root-sdk-import | -| mattermost | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/mattermost/.crabpot-package/package.json | - | -| mattermost | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/index.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/index.ts:2, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/channel.ts:13, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/config-schema.ts:7, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/group-mentions.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/accounts.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/monitor-helpers.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/monitor-helpers.ts:2, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/monitor-websocket.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/monitor.ts:21, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/monitor.ts:7, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/probe.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/reactions.test-helpers.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/reactions.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/onboarding-helpers.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/onboarding.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/runtime.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/types.ts:1 | legacy-root-sdk-import | -| synology-chat | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/synology-chat/.crabpot-package/package.json | - | -| synology-chat | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/index.ts:1, openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/index.ts:2, openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/src/channel.ts:12, openclaw/plugin-sdk @ plugins/synology-chat/.crabpot-package/src/runtime.ts:7 | legacy-root-sdk-import | -| brave-plugin | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | -| brave-plugin | package-min-host-version-drift | warning | package openclaw.install.minHostVersion does not match the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.1-beta.1 | - | -| brave-plugin | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | brave | provider-auth-env-vars | -| codex | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | -| codex | package-min-host-version-drift | warning | package openclaw.install.minHostVersion does not match the target OpenClaw build version | minHostVersion:>=2026.5.1-beta.1, buildOpenClawVersion:2026.5.1-beta.1 | - | -| diagnostics-prometheus | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec, openclaw.release.publishToNpm requires openclaw.install.npmSpec | - | -| google-meet | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | -| google-meet | package-min-host-version-drift | warning | package openclaw.install.minHostVersion does not match the target OpenClaw build version | minHostVersion:>=2026.4.20, buildOpenClawVersion:2026.5.1-beta.2 | - | -| diffs | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | -| diffs | package-min-host-version-drift | warning | package openclaw.install.minHostVersion does not match the target OpenClaw build version | minHostVersion:>=2026.4.30, buildOpenClawVersion:2026.5.1-beta.1 | - | -| memory-lancedb | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | -| memory-lancedb | package-min-host-version-drift | warning | package openclaw.install.minHostVersion does not match the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.1-beta.1 | - | -| memory-lancedb | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/memory-lancedb/.crabpot-package/index.ts:1005 | hook.llm-observer.privacy-payload | -| openclaw-qqbot | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | -| openclaw-qqbot | package-min-host-version-drift | warning | package openclaw.install.minHostVersion does not match the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.1-beta.1 | - | -| openclaw-qqbot | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | qqbot | channel-env-vars | -| whatsapp | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | -| whatsapp | package-min-host-version-drift | warning | package openclaw.install.minHostVersion does not match the target OpenClaw build version | minHostVersion:>=2026.4.25, buildOpenClawVersion:2026.5.1-beta.1 | - | -| nemoclaw | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/nemoclaw/nemoclaw/package.json | - | -| nemoclaw | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474 | legacy-before-agent-start | -| memory-tencentdb | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/memory-tencentdb/.crabpot-package/index.ts:820 | hook.llm-observer.privacy-payload | -| ddingtalk | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/ddingtalk/package.json | - | -| dingtalk-connector | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | author @ plugins/dingtalk-connector/openclaw.plugin.json, main @ plugins/dingtalk-connector/openclaw.plugin.json | - | -| dingtalk-connector | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/dingtalk-connector/package.json | - | -| dingtalk-connector | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/dingtalk-connector/index.ts:17, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/channel.ts:4, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/config/accounts.ts:2, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/core/connection.ts:16, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/core/provider.ts:14, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/directory.ts:1, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/gateway-methods.ts:7, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/onboarding.ts:5, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/runtime.ts:1, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/utils/agent.ts:8 | legacy-root-sdk-import | -| mocrane-wecom | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/mocrane-wecom/package.json | - | -| mocrane-wecom | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/mocrane-wecom/index.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/accounts.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/agent/handler.ts:9, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/channel.ts:5, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:17, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:18, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:19, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:20, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:21, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:22, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:23, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:27, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:30, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/config/accounts.ts:5, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/config/media.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/config/network.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/config/routing.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/dynamic-agent.ts:8, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/gateway-monitor.ts:5, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/monitor.ts:6, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/monitor/types.ts:2, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/onboarding.ts:9, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/outbound.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/runtime.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/shared/command-auth.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/ws-adapter.ts:14 | legacy-root-sdk-import | -| yuanbao | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/dist/src/business/commands/log-upload/extractor.js:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/dist/src/business/commands/upgrade/env.js:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/dist/src/business/commands/upgrade/utils.js:1, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/log-upload/extractor.ts:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 | plugin-sdk-export-aliases | -| yuanbao | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/yuanbao/.crabpot-package/package.json | - | -| yuanbao | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | yuanbao | channel-env-vars | -| openclaw-weixin | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/openclaw-weixin/.crabpot-package/package.json | - | -| lightclawbot | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | capabilities @ plugins/lightclawbot/.crabpot-package/openclaw.plugin.json | - | -| lightclawbot | package-manifest-version-drift | warning | package.json and openclaw.plugin.json publish different versions | package:1.1.2, manifest:1.0.0 | - | -| lightclawbot | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/lightclawbot/.crabpot-package/package.json | - | -| telnyx-sms | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | telnyx-sms | channel-env-vars | -| clawrouter | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/clawrouter/package.json | - | -| clawrouter | unrecognized-security-manifest | warning | openclaw.security.json is not a supported OpenClaw or ClawHub security contract and is ignored by install safety checks | plugins/clawrouter/openclaw.security.json | - | -| clawrouter | security-manifest-schema-unavailable | warning | openclaw.security.json references an OpenClaw schema URL that is not currently published | plugins/clawrouter/openclaw.security.json:$schema=https://openclaw.ai/schemas/plugin-security.json | - | -| memu-engine | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/memu-engine/package.json | - | -| memu-engine | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/memu-engine/index.ts:1 | legacy-root-sdk-import | -| secureclaw | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/secureclaw/secureclaw/package.json | - | -| memos-cloud | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | main @ plugins/memos-cloud/openclaw.plugin.json | - | -| memos-cloud | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/memos-cloud/package.json | - | -| memos-cloud | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/memos-cloud/index.js:515 | hook.llm-observer.privacy-payload | -| memos-cloud | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/memos-cloud/index.js:481 | legacy-before-agent-start | -| clawmetry | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/diagnostics-otel @ plugins/clawmetry/clawhub-plugin/src/service.ts:2 | plugin-sdk-export-aliases | -| clawmetry | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec, openclaw.release.publishToNpm requires openclaw.install.npmSpec | - | -| clawmetry | package-npm-pack-entrypoint-missing | warning | advertised npm artifact would not include declared OpenClaw entrypoints | extension:./index.ts -> plugins/clawmetry/clawhub-plugin/index.ts | - | -| codex-app-server | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 | legacy-root-sdk-import | -| web-search-plus | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | displayName @ plugins/web-search-plus/openclaw.plugin.json | - | -| apify | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 | legacy-root-sdk-import | -| inworld-tts | package-min-host-version-drift | warning | package openclaw.install.minHostVersion does not match the target OpenClaw build version | minHostVersion:>=2026.4.1, buildOpenClawVersion:2026.4.1 | - | -| inworld-tts | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | inworld | provider-auth-env-vars | +| Fixture | Code | Level | Message | Evidence | Compat record | +| ---------------------- | ------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | +| agentchat | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | displayName @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, homepage @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json, icon @ plugins/agentchat/integrations/openclaw-channel/openclaw.plugin.json | - | +| agentchat | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | agentchat | channel-env-vars | +| wecom | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/wecom/package.json | - | +| qqbot | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | capabilities @ plugins/qqbot/openclaw.plugin.json, extensions @ plugins/qqbot/openclaw.plugin.json | - | +| qqbot | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/qqbot/package.json | - | +| qqbot | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/qqbot/index.ts:1, openclaw/plugin-sdk @ plugins/qqbot/index.ts:2, openclaw/plugin-sdk @ plugins/qqbot/src/approval-handler.ts:12, openclaw/plugin-sdk @ plugins/qqbot/src/config.ts:2, openclaw/plugin-sdk @ plugins/qqbot/src/onboarding.ts:13, openclaw/plugin-sdk @ plugins/qqbot/src/proactive.ts:67, openclaw/plugin-sdk @ plugins/qqbot/src/runtime.ts:1, openclaw/plugin-sdk @ plugins/qqbot/src/tools/channel.ts:1, openclaw/plugin-sdk @ plugins/qqbot/src/tools/remind.ts:1 | legacy-root-sdk-import | +| a2a-gateway | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | defaultConfig @ plugins/a2a-gateway/openclaw.plugin.json | - | +| a2a-gateway | package-manifest-version-drift | warning | package.json and openclaw.plugin.json publish different versions | package:1.4.0, manifest:1.3.0 | - | +| a2a-gateway | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/a2a-gateway/package.json | - | +| a2a-gateway | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/a2a-gateway/src/types.ts:14 | legacy-root-sdk-import | +| hasdata | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | hasdata | provider-auth-env-vars | +| mcp-adapter | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/mcp-adapter/package.json | - | +| llm-trace-phoenix | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | llm_input @ plugins/llm-trace-phoenix/index.ts:154, llm_output @ plugins/llm-trace-phoenix/index.ts:168 | hook.llm-observer.privacy-payload | +| llm-trace-phoenix | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/llm-trace-phoenix/index.ts:12 | legacy-root-sdk-import | +| opik-openclaw | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/opik-openclaw/src/service.ts:560, llm_input @ plugins/opik-openclaw/src/service/hooks/llm.ts:39, llm_output @ plugins/opik-openclaw/src/service/hooks/llm.ts:150 | hook.llm-observer.privacy-payload | +| opik-openclaw | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/index.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/cli.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/configure.ts:2, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:5, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service.ts:6, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/llm.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/subagent.ts:1, openclaw/plugin-sdk @ plugins/opik-openclaw/src/service/hooks/tool.ts:1 | legacy-root-sdk-import | +| openclaw-telemetry | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/openclaw-telemetry/package.json | - | +| openclaw-telemetry | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/openclaw-telemetry/index.ts:62 | hook.llm-observer.privacy-payload | +| openclaw-telemetry | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/openclaw-telemetry/index.ts:1, openclaw/plugin-sdk @ plugins/openclaw-telemetry/src/service.ts:1, openclaw/plugin-sdk @ plugins/openclaw-telemetry/src/service.ts:2 | legacy-root-sdk-import | +| openclaw-telemetry | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/openclaw-telemetry/index.ts:53 | legacy-before-agent-start | +| lossless-claw | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/lossless-claw/src/openclaw-bridge.ts:21, openclaw/plugin-sdk @ plugins/lossless-claw/src/openclaw-bridge.ts:26 | legacy-root-sdk-import | +| connectclaw | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/connectclaw/packages/plugin/package.json | - | +| connectclaw | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/index.ts:1, openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/src/commands.ts:1, openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/src/hooks.ts:1, openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/src/tools.ts:1, openclaw/plugin-sdk @ plugins/connectclaw/packages/plugin/src/tools.ts:2 | legacy-root-sdk-import | +| connectclaw | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/connectclaw/packages/plugin/src/hooks.ts:17 | legacy-before-agent-start | +| hyperspell | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/hyperspell/commands/slash.ts:1, openclaw/plugin-sdk @ plugins/hyperspell/graph/tools.ts:2, openclaw/plugin-sdk @ plugins/hyperspell/index.ts:1 | legacy-root-sdk-import | +| honcho | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/memory-core @ plugins/honcho/index.ts:11 | plugin-sdk-export-aliases | +| honcho | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/honcho/hooks/capture.ts:151, agent_end @ plugins/honcho/hooks/subagent.ts:34 | hook.llm-observer.privacy-payload | +| honcho | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/honcho/commands/cli.ts:8, openclaw/plugin-sdk @ plugins/honcho/hooks/capture.ts:2, openclaw/plugin-sdk @ plugins/honcho/hooks/context.ts:2, openclaw/plugin-sdk @ plugins/honcho/hooks/gateway.ts:2, openclaw/plugin-sdk @ plugins/honcho/hooks/subagent.ts:2, openclaw/plugin-sdk @ plugins/honcho/state.ts:9, openclaw/plugin-sdk @ plugins/honcho/tools/ask.ts:3, openclaw/plugin-sdk @ plugins/honcho/tools/context.ts:3, openclaw/plugin-sdk @ plugins/honcho/tools/memory-passthrough.ts:3, openclaw/plugin-sdk @ plugins/honcho/tools/message-search.ts:3, openclaw/plugin-sdk @ plugins/honcho/tools/search.ts:3, openclaw/plugin-sdk @ plugins/honcho/tools/session.ts:3 | legacy-root-sdk-import | +| honcho | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/honcho/hooks/subagent.ts:18 | legacy-before-agent-start | +| composio | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/composio/package.json | - | +| composio | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/composio/index.ts:1, openclaw/plugin-sdk @ plugins/composio/src/cli.ts:6, openclaw/plugin-sdk @ plugins/composio/src/client.ts:1, openclaw/plugin-sdk @ plugins/composio/src/tools.ts:1 | legacy-root-sdk-import | +| kitchen-sink | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/kitchen-sink/src/generated-hooks.js:7, llm_input @ plugins/kitchen-sink/src/generated-hooks.js:25, llm_output @ plugins/kitchen-sink/src/generated-hooks.js:26 | hook.llm-observer.privacy-payload | +| kitchen-sink | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/kitchen-sink/src/generated-sdk-imports.ts:2 | legacy-root-sdk-import | +| kitchen-sink | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/kitchen-sink/src/generated-hooks.js:11 | legacy-before-agent-start | +| bluebubbles | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| bluebubbles | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| diagnostics-otel | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.25, buildOpenClawVersion:2026.5.2 | - | +| discord | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| discord | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| discord | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | discord | channel-env-vars | +| lobster | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| lobster | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.25, buildOpenClawVersion:2026.5.2 | - | +| matrix | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/index.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/index.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/actions.ts:9, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/channel.ts:17, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/config-schema.ts:7, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/directory-live.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/group-mentions.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/accounts.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/client/config.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/deps.ts:5, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/access-policy.ts:7, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/allowlist.ts:6, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/auto-join.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/events.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/handler.ts:17, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/index.ts:10, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/location.ts:6, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/replies.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/monitor/rooms.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/poll-types.ts:10, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/probe.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/matrix/send.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/onboarding.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/onboarding.ts:16, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/outbound.ts:1, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/resolve-targets.ts:7, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/runtime.ts:2, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/secret-input.ts:6, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/tool-actions.ts:8, openclaw/plugin-sdk/matrix @ plugins/matrix/.crabpot-package/src/types.ts:1 | plugin-sdk-export-aliases | +| matrix | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/matrix/.crabpot-package/package.json | - | +| msteams | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| msteams | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| msteams | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | msteams | channel-env-vars | +| nextcloud-talk | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| nextcloud-talk | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| nextcloud-talk | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | nextcloud-talk | channel-env-vars | +| nostr | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| nostr | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| nostr | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | nostr | channel-env-vars | +| voice-call | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| voice-call | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| voice-call | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | voice-call | channel-env-vars | +| zalo | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| zalo | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| zalo | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | zalo | channel-env-vars | +| zalouser | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| zalouser | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| zalouser | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | zalouser | channel-env-vars | +| feishu | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| feishu | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.25, buildOpenClawVersion:2026.5.2 | - | +| feishu | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | feishu | channel-env-vars | +| tlon | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| tlon | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| twitch | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| twitch | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| twitch | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | twitch | channel-env-vars | +| mattermost | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/mattermost/.crabpot-package/package.json | - | +| mattermost | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/index.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/index.ts:2, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/channel.ts:13, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/config-schema.ts:7, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/group-mentions.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/accounts.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/monitor-helpers.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/monitor-helpers.ts:2, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/monitor-websocket.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/monitor.ts:21, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/monitor.ts:7, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/probe.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/reactions.test-helpers.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/mattermost/reactions.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/onboarding-helpers.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/onboarding.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/runtime.ts:1, openclaw/plugin-sdk @ plugins/mattermost/.crabpot-package/src/types.ts:1 | legacy-root-sdk-import | +| synology-chat | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| synology-chat | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2 | - | +| synology-chat | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | synology-chat | channel-env-vars | +| brave-plugin | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| brave-plugin | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2-beta.2 | - | +| brave-plugin | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | brave | provider-auth-env-vars | +| codex | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| codex | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.5.1-beta.1, buildOpenClawVersion:2026.5.2-beta.2 | - | +| diagnostics-prometheus | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.25, buildOpenClawVersion:2026.5.2-beta.2 | - | +| google-meet | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| google-meet | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.20, buildOpenClawVersion:2026.5.2-beta.2 | - | +| diffs | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| diffs | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.30, buildOpenClawVersion:2026.5.2-beta.2 | - | +| memory-lancedb | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| memory-lancedb | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2-beta.2 | - | +| memory-lancedb | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/memory-lancedb/.crabpot-package/index.ts:1005 | hook.llm-observer.privacy-payload | +| openclaw-qqbot | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| openclaw-qqbot | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.10, buildOpenClawVersion:2026.5.2-beta.2 | - | +| openclaw-qqbot | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | qqbot | channel-env-vars | +| whatsapp | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | - | +| whatsapp | package-min-host-version-drift | warning | package openclaw.install.minHostVersion is not a semver floor for the target OpenClaw build version | minHostVersion:>=2026.4.25, buildOpenClawVersion:2026.5.2-beta.2 | - | +| nemoclaw | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/nemoclaw/nemoclaw/package.json | - | +| nemoclaw | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474 | legacy-before-agent-start | +| memory-tencentdb | package-openclaw-unsupported-metadata | warning | package declares unsupported OpenClaw metadata | openclaw.bundle | - | +| memory-tencentdb | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/memory-tencentdb/.crabpot-package/index.ts:820 | hook.llm-observer.privacy-payload | +| ddingtalk | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/ddingtalk/package.json | - | +| dingtalk-connector | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | author @ plugins/dingtalk-connector/openclaw.plugin.json, main @ plugins/dingtalk-connector/openclaw.plugin.json | - | +| dingtalk-connector | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/dingtalk-connector/package.json | - | +| dingtalk-connector | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/dingtalk-connector/index.ts:17, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/channel.ts:4, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/config/accounts.ts:2, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/core/connection.ts:16, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/core/provider.ts:14, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/directory.ts:1, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/gateway-methods.ts:7, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/onboarding.ts:5, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/runtime.ts:1, openclaw/plugin-sdk @ plugins/dingtalk-connector/src/utils/agent.ts:8 | legacy-root-sdk-import | +| mocrane-wecom | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/mocrane-wecom/package.json | - | +| mocrane-wecom | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/mocrane-wecom/index.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/accounts.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/agent/handler.ts:9, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/channel.ts:5, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:17, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:18, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:19, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:20, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:21, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:22, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:23, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:27, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/compat/plugin-sdk-shim.ts:30, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/config/accounts.ts:5, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/config/media.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/config/network.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/config/routing.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/dynamic-agent.ts:8, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/gateway-monitor.ts:5, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/monitor.ts:6, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/monitor/types.ts:2, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/onboarding.ts:9, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/outbound.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/runtime.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/shared/command-auth.ts:1, openclaw/plugin-sdk @ plugins/mocrane-wecom/src/ws-adapter.ts:14 | legacy-root-sdk-import | +| yuanbao | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/dist/src/business/commands/log-upload/extractor.js:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/dist/src/business/commands/upgrade/env.js:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/dist/src/business/commands/upgrade/utils.js:1, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/log-upload/extractor.ts:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2, openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 | plugin-sdk-export-aliases | +| yuanbao | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/yuanbao/.crabpot-package/package.json | - | +| yuanbao | package-openclaw-unsupported-metadata | warning | package declares unsupported OpenClaw metadata | openclaw.bundle | - | +| yuanbao | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | yuanbao | channel-env-vars | +| openclaw-weixin | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/openclaw-weixin/.crabpot-package/package.json | - | +| lightclawbot | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | capabilities @ plugins/lightclawbot/.crabpot-package/openclaw.plugin.json | - | +| lightclawbot | package-manifest-version-drift | warning | package.json and openclaw.plugin.json publish different versions | package:1.1.2, manifest:1.0.0 | - | +| lightclawbot | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/lightclawbot/.crabpot-package/package.json | - | +| telnyx-sms | channel-env-vars | warning | manifest uses channelEnvVars legacy compatibility metadata | telnyx-sms | channel-env-vars | +| clawrouter | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/clawrouter/package.json | - | +| clawrouter | unrecognized-security-manifest | warning | openclaw.security.json is not a supported OpenClaw or ClawHub security contract and is ignored by install safety checks | plugins/clawrouter/openclaw.security.json | - | +| clawrouter | security-manifest-schema-unavailable | warning | openclaw.security.json references an OpenClaw schema URL that is not currently published | plugins/clawrouter/openclaw.security.json:$schema=https://openclaw.ai/schemas/plugin-security.json | - | +| memu-engine | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/memu-engine/package.json | - | +| memu-engine | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/memu-engine/index.ts:1 | legacy-root-sdk-import | +| secureclaw | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/secureclaw/secureclaw/package.json | - | +| memos-cloud | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | main @ plugins/memos-cloud/openclaw.plugin.json | - | +| memos-cloud | package-plugin-api-compat-missing | warning | package openclaw metadata does not declare compat.pluginApi | plugins/memos-cloud/package.json | - | +| memos-cloud | conversation-access-hook | warning | fixture observes raw model or conversation content and needs privacy-boundary contract probes | agent_end @ plugins/memos-cloud/index.js:515 | hook.llm-observer.privacy-payload | +| memos-cloud | legacy-before-agent-start | warning | fixture uses deprecated before_agent_start hook compatibility | before_agent_start @ plugins/memos-cloud/index.js:481 | legacy-before-agent-start | +| clawmetry | sdk-export-missing | warning | fixture imports plugin SDK aliases that are not exported by the target OpenClaw package | openclaw/plugin-sdk/diagnostics-otel @ plugins/clawmetry/clawhub-plugin/src/service.ts:2 | plugin-sdk-export-aliases | +| clawmetry | package-install-metadata-incomplete | warning | package OpenClaw install metadata does not match advertised release targets | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec, openclaw.release.publishToNpm requires openclaw.install.npmSpec | - | +| clawmetry | package-npm-pack-entrypoint-missing | warning | advertised npm artifact would not include declared OpenClaw entrypoints | extension:./index.ts -> plugins/clawmetry/clawhub-plugin/index.ts | - | +| codex-app-server | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/codex-app-server/index.ts:1, openclaw/plugin-sdk @ plugins/codex-app-server/src/client.ts:6, openclaw/plugin-sdk @ plugins/codex-app-server/src/controller.ts:18, openclaw/plugin-sdk @ plugins/codex-app-server/src/types.ts:1 | legacy-root-sdk-import | +| web-search-plus | manifest-unknown-fields | warning | manifest uses top-level fields that are not present in the target OpenClaw PluginManifest type | displayName @ plugins/web-search-plus/openclaw.plugin.json | - | +| apify | legacy-root-sdk-import | warning | fixture imports the root plugin SDK barrel | openclaw/plugin-sdk @ plugins/apify/src/cli.ts:2, openclaw/plugin-sdk @ plugins/apify/src/index.ts:1, openclaw/plugin-sdk @ plugins/apify/src/tools/apify-scraper-tool.ts:4 | legacy-root-sdk-import | +| inworld-tts | provider-auth-env-vars | warning | manifest uses providerAuthEnvVars legacy compatibility metadata | inworld | provider-auth-env-vars | ## Suggestions To OpenClaw Compat Layer @@ -3051,68 +2604,51 @@ _none_ | kitchen-sink | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerAutoEnableProbe @ plugins/kitchen-sink/src/generated-registrars.js:7, registerChannel @ plugins/kitchen-sink/src/generated-registrars.js:8, registerChannel @ plugins/kitchen-sink/src/kitchen-runtime.js:55, registerCommand @ plugins/kitchen-sink/src/generated-registrars.js:12, registerCommand @ plugins/kitchen-sink/src/kitchen-runtime.js:50, registerCommand @ plugins/kitchen-sink/src/kitchen-runtime.js:51, registerCompactionProvider @ plugins/kitchen-sink/src/generated-registrars.js:13, registerCompactionProvider @ plugins/kitchen-sink/src/kitchen-runtime.js:95, registerConfigMigration @ plugins/kitchen-sink/src/generated-registrars.js:14, registerContextEngine @ plugins/kitchen-sink/src/generated-registrars.js:15, registerDetachedTaskRuntime @ plugins/kitchen-sink/scripts/sync-surface.mjs:113, registerDetachedTaskRuntime @ plugins/kitchen-sink/src/generated-registrars.js:17, registerDetachedTaskRuntime @ plugins/kitchen-sink/src/kitchen-runtime.js:86, registerGatewayDiscoveryService @ plugins/kitchen-sink/src/generated-registrars.js:18, registerGatewayMethod @ plugins/kitchen-sink/src/generated-registrars.js:19, registerGatewayMethod @ plugins/kitchen-sink/src/kitchen-runtime.js:107, registerHook @ plugins/kitchen-sink/src/generated-registrars.js:20, registerHttpRoute @ plugins/kitchen-sink/src/generated-registrars.js:21, registerHttpRoute @ plugins/kitchen-sink/src/kitchen-runtime.js:105, registerInteractiveHandler @ plugins/kitchen-sink/src/generated-registrars.js:23, registerInteractiveHandler @ plugins/kitchen-sink/src/kitchen-runtime.js:53, registerMemoryCapability @ plugins/kitchen-sink/src/generated-registrars.js:25, registerMemoryCorpusSupplement @ plugins/kitchen-sink/src/generated-registrars.js:26, registerMemoryCorpusSupplement @ plugins/kitchen-sink/src/kitchen-runtime.js:92, registerMemoryFlushPlan @ plugins/kitchen-sink/src/generated-registrars.js:28, registerMemoryPromptSection @ plugins/kitchen-sink/src/generated-registrars.js:29, registerMemoryPromptSupplement @ plugins/kitchen-sink/src/generated-registrars.js:30, registerMemoryPromptSupplement @ plugins/kitchen-sink/src/kitchen-runtime.js:111, registerMemoryRuntime @ plugins/kitchen-sink/src/generated-registrars.js:31, registerNodeHostCommand @ plugins/kitchen-sink/src/generated-registrars.js:34, registerNodeInvokePolicy @ plugins/kitchen-sink/src/generated-registrars.js:35, registerReload @ plugins/kitchen-sink/src/generated-registrars.js:39, registerSecurityAuditCollector @ plugins/kitchen-sink/src/generated-registrars.js:41, registerService @ plugins/kitchen-sink/src/generated-registrars.js:42, registerService @ plugins/kitchen-sink/src/kitchen-runtime.js:104 | api.capture.runtime-registrars | | kitchen-sink | before-tool-call-probe | suggestion | add contract probes for before_tool_call terminal, block, and approval semantics | before_tool_call @ plugins/kitchen-sink/src/generated-hooks.js:19 | hook.before_tool_call.terminal-block-approval | | kitchen-sink | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/kitchen-sink/src/generated-registrars.js:8, registerChannel @ plugins/kitchen-sink/src/kitchen-runtime.js:55 | channel.runtime.envelope-config-metadata | -| bluebubbles | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/bluebubbles/.crabpot-package/index.ts | - | -| bluebubbles | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | zod @ plugins/bluebubbles/.crabpot-package/package.json | - | -| bluebubbles | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/bluebubbles/.crabpot-package/index.ts:13 | api.capture.runtime-registrars | -| bluebubbles | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/bluebubbles/.crabpot-package/index.ts:13 | channel.runtime.envelope-config-metadata | +| bluebubbles | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/bluebubbles/.crabpot-package/index.ts, setupEntry:plugins/bluebubbles/.crabpot-package/setup-entry.ts | - | | diagnostics-otel | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/diagnostics-otel/.crabpot-package/index.ts | - | | diagnostics-otel | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @opentelemetry/api @ plugins/diagnostics-otel/.crabpot-package/package.json, @opentelemetry/api-logs @ plugins/diagnostics-otel/.crabpot-package/package.json, @opentelemetry/exporter-logs-otlp-proto @ plugins/diagnostics-otel/.crabpot-package/package.json, @opentelemetry/exporter-metrics-otlp-proto @ plugins/diagnostics-otel/.crabpot-package/package.json, @opentelemetry/exporter-trace-otlp-proto @ plugins/diagnostics-otel/.crabpot-package/package.json, @opentelemetry/resources @ plugins/diagnostics-otel/.crabpot-package/package.json, @opentelemetry/sdk-logs @ plugins/diagnostics-otel/.crabpot-package/package.json, @opentelemetry/sdk-metrics @ plugins/diagnostics-otel/.crabpot-package/package.json, @opentelemetry/sdk-node @ plugins/diagnostics-otel/.crabpot-package/package.json, @opentelemetry/sdk-trace-base @ plugins/diagnostics-otel/.crabpot-package/package.json, @opentelemetry/semantic-conventions @ plugins/diagnostics-otel/.crabpot-package/package.json | - | -| diagnostics-otel | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerService @ plugins/diagnostics-otel/.crabpot-package/index.ts:11 | api.capture.runtime-registrars | -| discord | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/discord/.crabpot-package/index.ts | - | -| discord | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/discord/.crabpot-package/index.ts:14 | api.capture.runtime-registrars | -| discord | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/discord/.crabpot-package/index.ts:14 | channel.runtime.envelope-config-metadata | +| diagnostics-otel | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerService @ plugins/diagnostics-otel/.crabpot-package/index.ts:9 | api.capture.runtime-registrars | +| discord | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/discord/.crabpot-package/index.ts, setupEntry:plugins/discord/.crabpot-package/setup-entry.ts | - | +| discord | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @discordjs/voice @ plugins/discord/.crabpot-package/package.json, discord-api-types @ plugins/discord/.crabpot-package/package.json, https-proxy-agent @ plugins/discord/.crabpot-package/package.json, opusscript @ plugins/discord/.crabpot-package/package.json, typebox @ plugins/discord/.crabpot-package/package.json, undici @ plugins/discord/.crabpot-package/package.json, ws @ plugins/discord/.crabpot-package/package.json | - | | lobster | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/lobster/.crabpot-package/index.ts | - | -| lobster | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @sinclair/typebox @ plugins/lobster/.crabpot-package/package.json | - | -| lobster | runtime-tool-capture | suggestion | tool shape is only visible after runtime registration capture | registerTool @ plugins/lobster/.crabpot-package/index.ts:9 | - | +| lobster | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @clawdbot/lobster @ plugins/lobster/.crabpot-package/package.json, ajv @ plugins/lobster/.crabpot-package/package.json, typebox @ plugins/lobster/.crabpot-package/package.json | - | | matrix | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/matrix/.crabpot-package/index.ts | - | | matrix | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @mariozechner/pi-agent-core @ plugins/matrix/.crabpot-package/package.json, @matrix-org/matrix-sdk-crypto-nodejs @ plugins/matrix/.crabpot-package/package.json, @vector-im/matrix-bot-sdk @ plugins/matrix/.crabpot-package/package.json, markdown-it @ plugins/matrix/.crabpot-package/package.json, music-metadata @ plugins/matrix/.crabpot-package/package.json, zod @ plugins/matrix/.crabpot-package/package.json | - | | matrix | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/matrix/.crabpot-package/index.ts:18 | api.capture.runtime-registrars | | matrix | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/matrix/.crabpot-package/index.ts:18 | channel.runtime.envelope-config-metadata | -| msteams | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/msteams/.crabpot-package/index.ts | - | -| msteams | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @microsoft/agents-hosting @ plugins/msteams/.crabpot-package/package.json, express @ plugins/msteams/.crabpot-package/package.json | - | -| msteams | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/msteams/.crabpot-package/index.ts:13 | api.capture.runtime-registrars | -| msteams | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/msteams/.crabpot-package/index.ts:13 | channel.runtime.envelope-config-metadata | -| nextcloud-talk | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/nextcloud-talk/.crabpot-package/index.ts | - | +| msteams | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/msteams/.crabpot-package/index.ts, setupEntry:plugins/msteams/.crabpot-package/setup-entry.ts | - | +| msteams | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @azure/identity @ plugins/msteams/.crabpot-package/package.json, @microsoft/teams.api @ plugins/msteams/.crabpot-package/package.json, @microsoft/teams.apps @ plugins/msteams/.crabpot-package/package.json, express @ plugins/msteams/.crabpot-package/package.json, jsonwebtoken @ plugins/msteams/.crabpot-package/package.json, jwks-rsa @ plugins/msteams/.crabpot-package/package.json, typebox @ plugins/msteams/.crabpot-package/package.json | - | +| msteams | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | createChatChannelPlugin @ plugins/msteams/.crabpot-package/src/channel.ts:406 | channel.runtime.envelope-config-metadata | +| nextcloud-talk | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/nextcloud-talk/.crabpot-package/index.ts, setupEntry:plugins/nextcloud-talk/.crabpot-package/setup-entry.ts | - | | nextcloud-talk | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | zod @ plugins/nextcloud-talk/.crabpot-package/package.json | - | -| nextcloud-talk | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/nextcloud-talk/.crabpot-package/index.ts:13 | api.capture.runtime-registrars | -| nextcloud-talk | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/nextcloud-talk/.crabpot-package/index.ts:13 | channel.runtime.envelope-config-metadata | -| nostr | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/nostr/.crabpot-package/index.ts | - | +| nextcloud-talk | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | createChatChannelPlugin @ plugins/nextcloud-talk/.crabpot-package/src/channel.ts:69 | channel.runtime.envelope-config-metadata | +| nostr | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/nostr/.crabpot-package/index.ts, setupEntry:plugins/nostr/.crabpot-package/setup-entry.ts | - | | nostr | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | nostr-tools @ plugins/nostr/.crabpot-package/package.json, zod @ plugins/nostr/.crabpot-package/package.json | - | -| nostr | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/nostr/.crabpot-package/index.ts:16, registerHttpRoute @ plugins/nostr/.crabpot-package/index.ts:64 | api.capture.runtime-registrars | -| nostr | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/nostr/.crabpot-package/index.ts:16 | channel.runtime.envelope-config-metadata | +| nostr | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerHttpRoute @ plugins/nostr/.crabpot-package/index.ts:89 | api.capture.runtime-registrars | +| nostr | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | createChatChannelPlugin @ plugins/nostr/.crabpot-package/src/channel.ts:88 | channel.runtime.envelope-config-metadata | | voice-call | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/voice-call/.crabpot-package/index.ts | - | -| voice-call | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @sinclair/typebox @ plugins/voice-call/.crabpot-package/package.json, commander @ plugins/voice-call/.crabpot-package/package.json, ws @ plugins/voice-call/.crabpot-package/package.json, zod @ plugins/voice-call/.crabpot-package/package.json | - | -| voice-call | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:261, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:294, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:311, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:327, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:349, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:376, registerService @ plugins/voice-call/.crabpot-package/index.ts:532 | api.capture.runtime-registrars | -| voice-call | runtime-tool-capture | suggestion | tool shape is only visible after runtime registration capture | registerTool @ plugins/voice-call/.crabpot-package/index.ts:399 | - | -| zalo | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/zalo/.crabpot-package/index.ts | - | -| zalo | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | undici @ plugins/zalo/.crabpot-package/package.json, zod @ plugins/zalo/.crabpot-package/package.json | - | -| zalo | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/zalo/.crabpot-package/index.ts:13 | api.capture.runtime-registrars | -| zalo | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/zalo/.crabpot-package/index.ts:13 | channel.runtime.envelope-config-metadata | -| zalouser | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/zalouser/.crabpot-package/index.ts | - | -| zalouser | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @sinclair/typebox @ plugins/zalouser/.crabpot-package/package.json, zca-js @ plugins/zalouser/.crabpot-package/package.json, zod @ plugins/zalouser/.crabpot-package/package.json | - | -| zalouser | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/zalouser/.crabpot-package/index.ts:14 | api.capture.runtime-registrars | -| zalouser | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/zalouser/.crabpot-package/index.ts:14 | channel.runtime.envelope-config-metadata | -| zalouser | runtime-tool-capture | suggestion | tool shape is only visible after runtime registration capture | registerTool @ plugins/zalouser/.crabpot-package/index.ts:16 | - | -| feishu | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/feishu/.crabpot-package/index.ts | - | -| feishu | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @larksuiteoapi/node-sdk @ plugins/feishu/.crabpot-package/package.json, @sinclair/typebox @ plugins/feishu/.crabpot-package/package.json, https-proxy-agent @ plugins/feishu/.crabpot-package/package.json, zod @ plugins/feishu/.crabpot-package/package.json | - | -| feishu | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/feishu/.crabpot-package/index.ts:55 | api.capture.runtime-registrars | -| feishu | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/feishu/.crabpot-package/index.ts:55 | channel.runtime.envelope-config-metadata | -| feishu | runtime-tool-capture | suggestion | tool shape is only visible after runtime registration capture | registerTool @ plugins/feishu/.crabpot-package/src/bitable.ts:559, registerTool @ plugins/feishu/.crabpot-package/src/chat.ts:95, registerTool @ plugins/feishu/.crabpot-package/src/docx.ts:1262, registerTool @ plugins/feishu/.crabpot-package/src/docx.ts:1436, registerTool @ plugins/feishu/.crabpot-package/src/drive.ts:186, registerTool @ plugins/feishu/.crabpot-package/src/perm.ts:135, registerTool @ plugins/feishu/.crabpot-package/src/wiki.ts:174 | - | -| tlon | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/tlon/.crabpot-package/index.ts | - | -| tlon | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @urbit/aura @ plugins/tlon/.crabpot-package/package.json | - | -| tlon | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/tlon/.crabpot-package/index.ts:13 | api.capture.runtime-registrars | -| tlon | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/tlon/.crabpot-package/index.ts:13 | channel.runtime.envelope-config-metadata | -| twitch | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/twitch/.crabpot-package/index.ts | - | -| twitch | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @twurple/api @ plugins/twitch/.crabpot-package/package.json, @twurple/auth @ plugins/twitch/.crabpot-package/package.json, @twurple/chat @ plugins/twitch/.crabpot-package/package.json, zod @ plugins/twitch/.crabpot-package/package.json | - | -| twitch | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/twitch/.crabpot-package/index.ts:16 | api.capture.runtime-registrars | -| twitch | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/twitch/.crabpot-package/index.ts:16 | channel.runtime.envelope-config-metadata | +| voice-call | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | commander @ plugins/voice-call/.crabpot-package/package.json, typebox @ plugins/voice-call/.crabpot-package/package.json, ws @ plugins/voice-call/.crabpot-package/package.json | - | +| voice-call | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerConfigMigration @ plugins/voice-call/.crabpot-package/setup-api.ts:45, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:390, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:420, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:437, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:457, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:478, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:513, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:536, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:558, registerGatewayMethod @ plugins/voice-call/.crabpot-package/index.ts:581, registerService @ plugins/voice-call/.crabpot-package/index.ts:748 | api.capture.runtime-registrars | +| zalo | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/zalo/.crabpot-package/index.ts, setupEntry:plugins/zalo/.crabpot-package/setup-entry.ts | - | +| zalo | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | undici @ plugins/zalo/.crabpot-package/package.json | - | +| zalo | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | createChatChannelPlugin @ plugins/zalo/.crabpot-package/src/channel.ts:159 | channel.runtime.envelope-config-metadata | +| zalouser | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/zalouser/.crabpot-package/index.ts, setupEntry:plugins/zalouser/.crabpot-package/setup-entry.ts | - | +| zalouser | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | typebox @ plugins/zalouser/.crabpot-package/package.json, zca-js @ plugins/zalouser/.crabpot-package/package.json | - | +| zalouser | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | createChatChannelPlugin @ plugins/zalouser/.crabpot-package/src/channel.ts:68 | channel.runtime.envelope-config-metadata | +| feishu | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/feishu/.crabpot-package/index.ts, setupEntry:plugins/feishu/.crabpot-package/setup-entry.ts | - | +| feishu | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @larksuiteoapi/node-sdk @ plugins/feishu/.crabpot-package/package.json, typebox @ plugins/feishu/.crabpot-package/package.json | - | +| feishu | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | createChatChannelPlugin @ plugins/feishu/.crabpot-package/src/channel.ts:580 | channel.runtime.envelope-config-metadata | +| tlon | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/tlon/.crabpot-package/index.ts, setupEntry:plugins/tlon/.crabpot-package/setup-entry.ts | - | +| tlon | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @aws-sdk/client-s3 @ plugins/tlon/.crabpot-package/package.json, @aws-sdk/s3-request-presigner @ plugins/tlon/.crabpot-package/package.json, @tloncorp/tlon-skill @ plugins/tlon/.crabpot-package/package.json, @urbit/aura @ plugins/tlon/.crabpot-package/package.json | - | +| tlon | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | createChatChannelPlugin @ plugins/tlon/.crabpot-package/src/channel.ts:61 | channel.runtime.envelope-config-metadata | +| twitch | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/twitch/.crabpot-package/index.ts, setupEntry:plugins/twitch/.crabpot-package/setup-entry.ts | - | +| twitch | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @twurple/api @ plugins/twitch/.crabpot-package/package.json, @twurple/auth @ plugins/twitch/.crabpot-package/package.json, @twurple/chat @ plugins/twitch/.crabpot-package/package.json | - | | mattermost | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/mattermost/.crabpot-package/index.ts | - | | mattermost | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/mattermost/.crabpot-package/index.ts:13 | api.capture.runtime-registrars | | mattermost | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/mattermost/.crabpot-package/index.ts:13 | channel.runtime.envelope-config-metadata | -| synology-chat | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/synology-chat/.crabpot-package/index.ts | - | +| synology-chat | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/synology-chat/.crabpot-package/index.ts, setupEntry:plugins/synology-chat/.crabpot-package/setup-entry.ts | - | | synology-chat | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | zod @ plugins/synology-chat/.crabpot-package/package.json | - | -| synology-chat | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerChannel @ plugins/synology-chat/.crabpot-package/index.ts:13 | api.capture.runtime-registrars | -| synology-chat | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | registerChannel @ plugins/synology-chat/.crabpot-package/index.ts:13 | channel.runtime.envelope-config-metadata | +| synology-chat | channel-contract-probe | suggestion | add channel envelope, config-schema, and runtime metadata probes | createChatChannelPlugin @ plugins/synology-chat/.crabpot-package/src/channel.ts:209 | channel.runtime.envelope-config-metadata | | brave-plugin | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/brave-plugin/.crabpot-package/index.ts | - | | codex | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/codex/.crabpot-package/index.ts | - | | codex | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @mariozechner/pi-coding-agent @ plugins/codex/.crabpot-package/package.json, @openai/codex @ plugins/codex/.crabpot-package/package.json, ajv @ plugins/codex/.crabpot-package/package.json, ws @ plugins/codex/.crabpot-package/package.json, zod @ plugins/codex/.crabpot-package/package.json | - | @@ -3121,20 +2657,16 @@ _none_ | diagnostics-prometheus | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerHttpRoute @ plugins/diagnostics-prometheus/.crabpot-package/index.ts:12, registerService @ plugins/diagnostics-prometheus/.crabpot-package/index.ts:11 | api.capture.runtime-registrars | | google-meet | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/google-meet/.crabpot-package/index.ts | - | | google-meet | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | commander @ plugins/google-meet/.crabpot-package/package.json, typebox @ plugins/google-meet/.crabpot-package/package.json | - | -| google-meet | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:631, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:652, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:674, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:686, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:704, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:722, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:746, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:768, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:792, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:817, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:828, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:845, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:862, registerNodeHostCommand @ plugins/google-meet/.crabpot-package/index.ts:1018 | api.capture.runtime-registrars | -| google-meet | runtime-tool-capture | suggestion | tool shape is only visible after runtime registration capture | registerTool @ plugins/google-meet/.crabpot-package/index.ts:883 | - | +| google-meet | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:703, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:724, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:746, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:758, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:776, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:795, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:819, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:841, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:865, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:890, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:901, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:918, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:937, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:954, registerGatewayMethod @ plugins/google-meet/.crabpot-package/index.ts:975, registerNodeHostCommand @ plugins/google-meet/.crabpot-package/index.ts:1143 | api.capture.runtime-registrars | | diffs | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/diffs/.crabpot-package/index.ts | - | | diffs | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @pierre/diffs @ plugins/diffs/.crabpot-package/package.json, @pierre/theme @ plugins/diffs/.crabpot-package/package.json, playwright-core @ plugins/diffs/.crabpot-package/package.json, typebox @ plugins/diffs/.crabpot-package/package.json | - | | diffs | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerHttpRoute @ plugins/diffs/.crabpot-package/src/plugin.ts:57 | api.capture.runtime-registrars | -| diffs | runtime-tool-capture | suggestion | tool shape is only visible after runtime registration capture | registerTool @ plugins/diffs/.crabpot-package/src/plugin.ts:42 | - | | memory-lancedb | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/memory-lancedb/.crabpot-package/index.ts | - | | memory-lancedb | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @lancedb/lancedb @ plugins/memory-lancedb/.crabpot-package/package.json, openai @ plugins/memory-lancedb/.crabpot-package/package.json, typebox @ plugins/memory-lancedb/.crabpot-package/package.json | - | | memory-lancedb | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerService @ plugins/memory-lancedb/.crabpot-package/index.ts:1085, registerService @ plugins/memory-lancedb/.crabpot-package/index.ts:586 | api.capture.runtime-registrars | -| memory-lancedb | runtime-tool-capture | suggestion | tool shape is only visible after runtime registration capture | registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:643, registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:694, registerTool @ plugins/memory-lancedb/.crabpot-package/index.ts:757 | - | | openclaw-qqbot | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/openclaw-qqbot/.crabpot-package/index.ts, setupEntry:plugins/openclaw-qqbot/.crabpot-package/setup-entry.ts | - | | openclaw-qqbot | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @tencent-connect/qqbot-connector @ plugins/openclaw-qqbot/.crabpot-package/package.json, mpg123-decoder @ plugins/openclaw-qqbot/.crabpot-package/package.json, silk-wasm @ plugins/openclaw-qqbot/.crabpot-package/package.json, ws @ plugins/openclaw-qqbot/.crabpot-package/package.json, zod @ plugins/openclaw-qqbot/.crabpot-package/package.json | - | | openclaw-qqbot | registration-capture-gap | suggestion | future inspector capture API should record lifecycle, route, gateway, command, and interactive registrations | registerCommand @ plugins/openclaw-qqbot/.crabpot-package/src/bridge/commands/framework-registration.ts:23 | api.capture.runtime-registrars | -| openclaw-qqbot | runtime-tool-capture | suggestion | tool shape is only visible after runtime registration capture | registerTool @ plugins/openclaw-qqbot/.crabpot-package/src/bridge/tools/channel.ts:32, registerTool @ plugins/openclaw-qqbot/.crabpot-package/src/bridge/tools/remind.ts:90 | - | | whatsapp | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/whatsapp/.crabpot-package/index.ts, setupEntry:plugins/whatsapp/.crabpot-package/setup-entry.ts | - | | whatsapp | package-dependency-install-required | suggestion | package declares runtime dependencies that must be installed before cold import | @whiskeysockets/baileys @ plugins/whatsapp/.crabpot-package/package.json, https-proxy-agent @ plugins/whatsapp/.crabpot-package/package.json, jimp @ plugins/whatsapp/.crabpot-package/package.json, typebox @ plugins/whatsapp/.crabpot-package/package.json, undici @ plugins/whatsapp/.crabpot-package/package.json | - | | nemoclaw | package-build-artifact-entrypoint | suggestion | package OpenClaw entrypoint points at build output that is not present in the source fixture checkout | extension:./dist/index.js -> plugins/nemoclaw/nemoclaw/dist/index.js | - | @@ -3195,131 +2727,24 @@ _none_ | apify | runtime-tool-capture | suggestion | tool shape is only visible after runtime registration capture | registerTool @ plugins/apify/src/index.ts:13 | - | | inworld-tts | package-typescript-source-entrypoint | suggestion | package OpenClaw entrypoint resolves to TypeScript source in this fixture checkout | extension:plugins/inworld-tts/index.ts | - | | honcho | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | -| bluebubbles | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | -| diagnostics-otel | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | -| lobster | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | | matrix | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | -| msteams | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | -| nextcloud-talk | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | -| nostr | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | -| voice-call | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | -| zalo | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | -| feishu | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | | yuanbao | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | | clawmetry | missing-compat-record | suggestion | fixture depends on a compatibility behavior that is not represented in the target compat registry | plugin-sdk-export-aliases | plugin-sdk-export-aliases | ## Issue Findings -- 🔴 P0 **bluebubbles** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: bluebubbles: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/bluebubbles @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ account-resolve.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/account-resolve.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/accounts.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ actions.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/actions.ts#L13) - - [openclaw/plugin-sdk/bluebubbles @ attachments.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/attachments.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L20) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L5) - - [openclaw/plugin-sdk/bluebubbles @ chat.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/chat.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ config-apply.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-apply.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-schema.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ history.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/history.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ media-send.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/media-send.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ monitor-debounce.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-debounce.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-normalize.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-normalize.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:19](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L19) - - [openclaw/plugin-sdk/bluebubbles @ monitor-shared.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-shared.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor.ts#L9) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/bluebubbles @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/probe.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/reactions.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ request-url.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/request-url.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/runtime.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ targets.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/targets.ts#L8) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L3) - - 🔴 P0 **clawmetry** `live-issue` `core-compat-adapter` - **sdk-export-missing**: clawmetry: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:2](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/src/service.ts#L2) -- 🔴 P0 **diagnostics-otel** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: diagnostics-otel: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L1) - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L2) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L15) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L20) - -- 🔴 P0 **feishu** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: feishu: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/feishu @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L1) - - [openclaw/plugin-sdk/feishu @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L2) - - [openclaw/plugin-sdk/feishu @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/accounts.ts#L2) - - [openclaw/plugin-sdk/feishu @ bitable.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L3) - - [openclaw/plugin-sdk/feishu @ bot.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L1) - - [openclaw/plugin-sdk/feishu @ bot.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L15) - - [openclaw/plugin-sdk/feishu @ card-action.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/card-action.ts#L1) - - [openclaw/plugin-sdk/feishu @ channel.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L13) - - [openclaw/plugin-sdk/feishu @ channel.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L6) - - [openclaw/plugin-sdk/feishu @ chat.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L2) - - [openclaw/plugin-sdk/feishu @ dedup.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dedup.ts#L7) - - [openclaw/plugin-sdk/feishu @ directory.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/directory.ts#L5) - - [openclaw/plugin-sdk/feishu @ docx.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L7) - - [openclaw/plugin-sdk/feishu @ drive.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L2) - - [openclaw/plugin-sdk/feishu @ dynamic-agent.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dynamic-agent.ts#L4) - - [openclaw/plugin-sdk/feishu @ media.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/media.ts#L4) - - [openclaw/plugin-sdk/feishu @ monitor.account.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.account.ts#L3) - - [openclaw/plugin-sdk/feishu @ monitor.startup.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.startup.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.state.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.state.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.transport.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.transport.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.webhook.test-helpers.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.webhook.test-helpers.ts#L3) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L20) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/feishu @ outbound.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/outbound.ts#L3) - - [openclaw/plugin-sdk/feishu @ perm.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L2) - - [openclaw/plugin-sdk/feishu @ policy.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L5) - - [openclaw/plugin-sdk/feishu @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L6) - - [openclaw/plugin-sdk/feishu @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reactions.ts#L1) - - [openclaw/plugin-sdk/feishu @ reply-dispatcher.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reply-dispatcher.ts#L8) - - [openclaw/plugin-sdk/feishu @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/runtime.ts#L2) - - [openclaw/plugin-sdk/feishu @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/feishu @ send-target.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send-target.ts#L1) - - [openclaw/plugin-sdk/feishu @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send.ts#L1) - - [openclaw/plugin-sdk/feishu @ streaming-card.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/streaming-card.ts#L6) - - [openclaw/plugin-sdk/feishu @ tool-account.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-account.ts#L2) - - [openclaw/plugin-sdk/feishu @ tool-factory-test-harness.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-factory-test-harness.ts#L1) - - [openclaw/plugin-sdk/feishu @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/types.ts#L1) - - [openclaw/plugin-sdk/feishu @ typing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/typing.ts#L1) - - [openclaw/plugin-sdk/feishu @ wiki.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L2) - - 🔴 P0 **honcho** `live-issue` `core-compat-adapter` - **sdk-export-missing**: honcho: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live - evidence: - [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11) -- 🔴 P0 **lobster** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: lobster: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/lobster @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L5) - - [openclaw/plugin-sdk/lobster @ lobster-tool.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/lobster-tool.ts#L4) - - [openclaw/plugin-sdk/lobster @ windows-spawn.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/windows-spawn.ts#L5) - - 🔴 P0 **matrix** `live-issue` `core-compat-adapter` - **sdk-export-missing**: matrix: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -3355,87 +2780,6 @@ _none_ - [openclaw/plugin-sdk/matrix @ tool-actions.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/tool-actions.ts#L8) - [openclaw/plugin-sdk/matrix @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/types.ts#L1) -- 🔴 P0 **msteams** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: msteams: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/msteams @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L1) - - [openclaw/plugin-sdk/msteams @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L2) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ payload.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/payload.ts#L1) - - [openclaw/plugin-sdk/msteams @ remote-media.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/remote-media.ts#L1) - - [openclaw/plugin-sdk/msteams @ shared.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L7) - - [openclaw/plugin-sdk/msteams @ shared.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L8) - - [openclaw/plugin-sdk/msteams @ channel.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L18) - - [openclaw/plugin-sdk/msteams @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L9) - - [openclaw/plugin-sdk/msteams @ directory-live.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/directory-live.ts#L1) - - [openclaw/plugin-sdk/msteams @ file-lock.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/file-lock.ts#L1) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ media-helpers.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/media-helpers.ts#L11) - - [openclaw/plugin-sdk/msteams @ messenger.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/messenger.ts#L10) - - [openclaw/plugin-sdk/msteams @ monitor-handler.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler.ts#L1) - - [openclaw/plugin-sdk/msteams @ message-handler.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler/message-handler.ts#L22) - - [openclaw/plugin-sdk/msteams @ monitor.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor.ts#L10) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/msteams @ outbound.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/outbound.ts#L1) - - [openclaw/plugin-sdk/msteams @ policy.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L10) - - [openclaw/plugin-sdk/msteams @ policy.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L20) - - [openclaw/plugin-sdk/msteams @ probe.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/probe.ts#L5) - - [openclaw/plugin-sdk/msteams @ reply-dispatcher.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/reply-dispatcher.ts#L9) - - [openclaw/plugin-sdk/msteams @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/runtime.ts#L2) - - [openclaw/plugin-sdk/msteams @ secret-input.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/secret-input.ts#L5) - - [openclaw/plugin-sdk/msteams @ send-context.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send-context.ts#L5) - - [openclaw/plugin-sdk/msteams @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L1) - - [openclaw/plugin-sdk/msteams @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L2) - - [openclaw/plugin-sdk/msteams @ store-fs.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/store-fs.ts#L2) - - [openclaw/plugin-sdk/msteams @ test-runtime.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/test-runtime.ts#L3) - - [openclaw/plugin-sdk/msteams @ token.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/token.ts#L1) - -- 🔴 P0 **nextcloud-talk** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nextcloud-talk: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L1) - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ accounts.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/accounts.ts#L7) - - [openclaw/plugin-sdk/nextcloud-talk @ channel.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/channel.ts#L22) - - [openclaw/plugin-sdk/nextcloud-talk @ config-schema.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/config-schema.ts#L10) - - [openclaw/plugin-sdk/nextcloud-talk @ inbound.ts:17](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/inbound.ts#L17) - - [openclaw/plugin-sdk/nextcloud-talk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/monitor.ts#L8) - - [openclaw/plugin-sdk/nextcloud-talk @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L14) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ replay-guard.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/replay-guard.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L3) - - [openclaw/plugin-sdk/nextcloud-talk @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ types.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/types.ts#L7) - -- 🔴 P0 **nostr** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: nostr: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/nostr @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L1) - - [openclaw/plugin-sdk/nostr @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L2) - - [openclaw/plugin-sdk/nostr @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/channel.ts#L9) - - [openclaw/plugin-sdk/nostr @ config-schema.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/config-schema.ts#L2) - - [openclaw/plugin-sdk/nostr @ nostr-profile-http.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/nostr-profile-http.ts#L16) - - [openclaw/plugin-sdk/nostr @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nostr @ types.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/types.ts#L6) - -- 🔴 P0 **voice-call** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: voice-call: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/voice-call @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L5) - - [openclaw/plugin-sdk/voice-call @ cli.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/cli.ts#L5) - - [openclaw/plugin-sdk/voice-call @ config.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/config.ts#L6) - - [openclaw/plugin-sdk/voice-call @ guarded-json-api.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/shared/guarded-json-api.ts#L1) - - [openclaw/plugin-sdk/voice-call @ tts-openai.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/tts-openai.ts#L1) - - [openclaw/plugin-sdk/voice-call @ webhook.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/webhook.ts#L7) - - 🔴 P0 **yuanbao** `live-issue` `core-compat-adapter` - **sdk-export-missing**: yuanbao: plugin SDK import aliases are missing from target package exports - state: blocking · compat:untracked · live @@ -3447,34 +2791,6 @@ _none_ - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2 - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 -- 🔴 P0 **zalo** `live-issue` `core-compat-adapter` - - **sdk-export-missing**: zalo: plugin SDK import aliases are missing from target package exports - - state: blocking · compat:untracked · live - - evidence: - - [openclaw/plugin-sdk/zalo @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L1) - - [openclaw/plugin-sdk/zalo @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L2) - - [openclaw/plugin-sdk/zalo @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/accounts.ts#L2) - - [openclaw/plugin-sdk/zalo @ actions.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L5) - - [openclaw/plugin-sdk/zalo @ actions.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L6) - - [openclaw/plugin-sdk/zalo @ channel.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L14) - - [openclaw/plugin-sdk/zalo @ channel.ts:34](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L34) - - [openclaw/plugin-sdk/zalo @ config-schema.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/config-schema.ts#L7) - - [openclaw/plugin-sdk/zalo @ group-access.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L1) - - [openclaw/plugin-sdk/zalo @ group-access.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L22) - - [openclaw/plugin-sdk/zalo @ monitor.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L18) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L3) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/zalo @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/probe.ts#L1) - - [openclaw/plugin-sdk/zalo @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/runtime.ts#L2) - - [openclaw/plugin-sdk/zalo @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/zalo @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/send.ts#L1) - - [openclaw/plugin-sdk/zalo @ status-issues.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/status-issues.ts#L1) - - [openclaw/plugin-sdk/zalo @ token.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/token.ts#L3) - - [openclaw/plugin-sdk/zalo @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/types.ts#L1) - - 🟠 P1 **a2a-gateway** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: a2a-gateway: runtime registrations need capture before contract judgment - state: open · compat:active @@ -3486,18 +2802,6 @@ _none_ - [registerGatewayMethod @ index.ts:669](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L669) - [registerService @ index.ts:857](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L857) -- 🟠 P1 **bluebubbles** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: bluebubbles: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: bluebubbles: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - - 🟠 P1 **clawmetry** `compat-gap` `core-compat-adapter` - **missing-compat-record**: clawmetry: compat-dependent behavior lacks registry coverage - state: open · compat:missing @@ -3533,7 +2837,7 @@ _none_ - **registration-capture-gap**: codex: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts#L33) + - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts#L33) - 🟠 P1 **codex-app-server** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: codex-app-server: runtime registrations need capture before contract judgment @@ -3552,30 +2856,24 @@ _none_ - [registerCommand @ commands.ts:64](https://github.com/osipov-anton/connectclaw/blob/6cd516650168890e9b850064afaaa5fe24df5950/packages/plugin/src/commands.ts#L64) - [registerService @ hooks.ts:91](https://github.com/osipov-anton/connectclaw/blob/6cd516650168890e9b850064afaaa5fe24df5950/packages/plugin/src/hooks.ts#L91) -- 🟠 P1 **diagnostics-otel** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: diagnostics-otel: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **diagnostics-otel** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: diagnostics-otel: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L11) + - [registerService @ index.ts:9](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts#L9) - 🟠 P1 **diagnostics-prometheus** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: diagnostics-prometheus: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L12) - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L11) + - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L12) + - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L11) - 🟠 P1 **diffs** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: diffs: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L57) + - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/src/plugin.ts#L57) - 🟠 P1 **dingtalk-connector** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: dingtalk-connector: runtime registrations need capture before contract judgment @@ -3596,42 +2894,26 @@ _none_ - [registerGatewayMethod @ gateway-methods.ts:652](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L652) - [registerGatewayMethod @ gateway-methods.ts:719](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L719) -- 🟠 P1 **discord** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: discord: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) - -- 🟠 P1 **feishu** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: feishu: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **feishu** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: feishu: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) - - 🟠 P1 **google-meet** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: google-meet: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerGatewayMethod @ index.ts:631](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L631) - - [registerGatewayMethod @ index.ts:652](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L652) - - [registerGatewayMethod @ index.ts:674](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L674) - - [registerGatewayMethod @ index.ts:686](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L686) - - [registerGatewayMethod @ index.ts:704](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L704) - - [registerGatewayMethod @ index.ts:722](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L722) - - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L746) - - [registerGatewayMethod @ index.ts:768](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L768) - - [registerGatewayMethod @ index.ts:792](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L792) - - [registerGatewayMethod @ index.ts:817](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L817) - - [registerGatewayMethod @ index.ts:828](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L828) - - [registerGatewayMethod @ index.ts:845](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L845) - - [registerGatewayMethod @ index.ts:862](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L862) - - [registerNodeHostCommand @ index.ts:1018](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L1018) + - [registerGatewayMethod @ index.ts:703](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L703) + - [registerGatewayMethod @ index.ts:724](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L724) + - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L746) + - [registerGatewayMethod @ index.ts:758](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L758) + - [registerGatewayMethod @ index.ts:776](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L776) + - [registerGatewayMethod @ index.ts:795](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L795) + - [registerGatewayMethod @ index.ts:819](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L819) + - [registerGatewayMethod @ index.ts:841](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L841) + - [registerGatewayMethod @ index.ts:865](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L865) + - [registerGatewayMethod @ index.ts:890](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L890) + - [registerGatewayMethod @ index.ts:901](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L901) + - [registerGatewayMethod @ index.ts:918](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L918) + - [registerGatewayMethod @ index.ts:937](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L937) + - [registerGatewayMethod @ index.ts:954](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L954) + - [registerGatewayMethod @ index.ts:975](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L975) + - [registerNodeHostCommand @ index.ts:1143](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L1143) - 🟠 P1 **honcho** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: honcho: conversation-access hooks need privacy-boundary probes @@ -3668,55 +2950,55 @@ _none_ - **before-tool-call-probe**: kitchen-sink: before_tool_call needs terminal/block/approval probes - state: open · compat:active - evidence: - - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L19) + - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L19) - 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: kitchen-sink: conversation-access hooks need privacy-boundary probes - state: open · compat:active - evidence: - - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L7) - - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L25) - - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L26) + - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L7) + - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L25) + - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L26) - 🟠 P1 **kitchen-sink** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: kitchen-sink: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L7) - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) - - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L12) - - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L50) - - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L51) - - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L13) - - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L95) - - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L14) - - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L15) - - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/scripts/sync-surface.mjs#L113) - - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L17) - - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L86) - - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L18) - - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L19) - - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L107) - - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L20) - - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L21) - - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L105) - - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L23) - - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L53) - - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L25) - - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L26) - - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L92) - - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L28) - - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L29) - - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L30) - - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L111) - - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L31) - - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L34) - - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L35) - - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L39) - - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L41) - - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L42) - - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L104) + - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L7) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) + - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L12) + - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L50) + - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L51) + - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L13) + - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L95) + - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L14) + - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L15) + - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/scripts/sync-surface.mjs#L113) + - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L17) + - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L86) + - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L18) + - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L19) + - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L107) + - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L20) + - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L21) + - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L105) + - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L23) + - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L53) + - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L25) + - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L26) + - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L92) + - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L28) + - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L29) + - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L30) + - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L111) + - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L31) + - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L34) + - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L35) + - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L39) + - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L41) + - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L42) + - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L104) - 🟠 P1 **lightclawbot** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: lightclawbot: runtime registrations need capture before contract judgment @@ -3731,12 +3013,6 @@ _none_ - [llm_input @ index.ts:154](https://github.com/pingshian0131/openclaw-plugin-llm-trace-phoenix/blob/05bc0f4ba67281c10fad7be356d32a54b00c59fd/index.ts#L154) - [llm_output @ index.ts:168](https://github.com/pingshian0131/openclaw-plugin-llm-trace-phoenix/blob/05bc0f4ba67281c10fad7be356d32a54b00c59fd/index.ts#L168) -- 🟠 P1 **lobster** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: lobster: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **lossless-claw** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: lossless-claw: runtime registrations need capture before contract judgment - state: open · compat:active @@ -3772,14 +3048,14 @@ _none_ - **conversation-access-hook**: memory-lancedb: conversation-access hooks need privacy-boundary probes - state: open · compat:active - evidence: - - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1005) + - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1005) - 🟠 P1 **memory-lancedb** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: memory-lancedb: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1085) - - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L586) + - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1085) + - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L586) - 🟠 P1 **memory-tencentdb** `inspector-gap` `inspector-follow-up` - **conversation-access-hook**: memory-tencentdb: conversation-access hooks need privacy-boundary probes @@ -3806,18 +3082,6 @@ _none_ - [registerChannel @ index.ts:31](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L31) - [registerHttpRoute @ index.ts:34](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L34) -- 🟠 P1 **msteams** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: msteams: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **msteams** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: msteams: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) - - 🟠 P1 **nemoclaw** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: nemoclaw: before_tool_call needs terminal/block/approval probes - state: open · compat:active @@ -3830,36 +3094,17 @@ _none_ - evidence: - [registerCommand @ index.ts:336](https://github.com/NVIDIA/NemoClaw/blob/f9d21afa193c2b67cb55e79eca03db40f0fbe836/nemoclaw/src/index.ts#L336) -- 🟠 P1 **nextcloud-talk** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: nextcloud-talk: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: nextcloud-talk: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) - -- 🟠 P1 **nostr** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: nostr: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **nostr** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: nostr: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) - - [registerHttpRoute @ index.ts:64](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L64) + - [registerHttpRoute @ index.ts:89](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts#L89) - 🟠 P1 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: openclaw-qqbot: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) + - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) - 🟠 P1 **openclaw-telemetry** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: openclaw-telemetry: before_tool_call needs terminal/block/approval probes @@ -3919,47 +3164,27 @@ _none_ - [registerService @ index.ts:301](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L301) - [registerService @ index.ts:307](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L307) -- 🟠 P1 **synology-chat** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: synology-chat: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) - - 🟠 P1 **telnyx-sms** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: telnyx-sms: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - [registerHttpRoute @ index.ts:259](https://github.com/team-telnyx/telnyx-openclaw-sms-channel/blob/dee567716ca56d49464bf6354393f3656d92a2b3/index.ts#L259) -- 🟠 P1 **tlon** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: tlon: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) - -- 🟠 P1 **twitch** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: twitch: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) - -- 🟠 P1 **voice-call** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: voice-call: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - - 🟠 P1 **voice-call** `inspector-gap` `inspector-follow-up` - **registration-capture-gap**: voice-call: runtime registrations need capture before contract judgment - state: open · compat:active - evidence: - - [registerGatewayMethod @ index.ts:261](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L261) - - [registerGatewayMethod @ index.ts:294](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L294) - - [registerGatewayMethod @ index.ts:311](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L311) - - [registerGatewayMethod @ index.ts:327](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L327) - - [registerGatewayMethod @ index.ts:349](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L349) - - [registerGatewayMethod @ index.ts:376](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L376) - - [registerService @ index.ts:532](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L532) + - [registerConfigMigration @ setup-api.ts:45](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/setup-api.ts#L45) + - [registerGatewayMethod @ index.ts:390](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L390) + - [registerGatewayMethod @ index.ts:420](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L420) + - [registerGatewayMethod @ index.ts:437](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L437) + - [registerGatewayMethod @ index.ts:457](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L457) + - [registerGatewayMethod @ index.ts:478](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L478) + - [registerGatewayMethod @ index.ts:513](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L513) + - [registerGatewayMethod @ index.ts:536](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L536) + - [registerGatewayMethod @ index.ts:558](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L558) + - [registerGatewayMethod @ index.ts:581](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L581) + - [registerService @ index.ts:748](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L748) - 🟠 P1 **wecom** `inspector-gap` `inspector-follow-up` - **before-tool-call-probe**: wecom: before_tool_call needs terminal/block/approval probes @@ -3991,24 +3216,6 @@ _none_ - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:32 - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:33 -- 🟠 P1 **zalo** `compat-gap` `core-compat-adapter` - - **missing-compat-record**: zalo: compat-dependent behavior lacks registry coverage - - state: open · compat:missing - - evidence: - - plugin-sdk-export-aliases - -- 🟠 P1 **zalo** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: zalo: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) - -- 🟠 P1 **zalouser** `inspector-gap` `inspector-follow-up` - - **registration-capture-gap**: zalouser: runtime registrations need capture before contract judgment - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) - - 🟡 P2 **a2a-gateway** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: a2a-gateway: root plugin SDK barrel is still used by fixtures - state: open · compat:deprecated · deprecated @@ -4122,29 +3329,25 @@ _none_ - evidence: - [registerTool @ index.ts:13](https://github.com/apify/apify-openclaw-plugin/blob/41f49794d230f7ad092d1c699ee4d91fecf6ba91/src/index.ts#L13) -- 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: bluebubbles: channel runtime needs envelope/config probes - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - -- 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - - **package-dependency-install-required**: bluebubbles: cold import requires dependency installation in an isolated workspace +- 🟡 P2 **bluebubbles** `upstream-metadata` `plugin-upstream-fix` + - **package-install-metadata-incomplete**: bluebubbles: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec - 🟡 P2 **bluebubbles** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: bluebubbles: plugin API compatibility range is missing + - **package-min-host-version-drift**: bluebubbles: OpenClaw package minimum host version drifts from build target - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **bluebubbles** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: bluebubbles: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/setup-entry.ts) - 🟡 P2 **brave-plugin** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: brave-plugin: OpenClaw package install metadata is incomplete @@ -4157,13 +3360,13 @@ _none_ - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **brave-plugin** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: brave-plugin: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/brave/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/brave/index.ts) - 🟡 P2 **brave-plugin** `deprecation-warning` `core-compat-adapter` - **provider-auth-env-vars**: brave-plugin: providerAuthEnvVars legacy manifest metadata must stay covered @@ -4225,11 +3428,11 @@ _none_ - **package-dependency-install-required**: codex: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) + - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) - 🟡 P2 **codex** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: codex: OpenClaw package install metadata is incomplete @@ -4242,13 +3445,13 @@ _none_ - state: open · compat:none - evidence: - minHostVersion:>=2026.5.1-beta.1 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **codex** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: codex: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts) - 🟡 P2 **codex-app-server** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: codex-app-server: root plugin SDK barrel is still used by fixtures @@ -4368,51 +3571,52 @@ _none_ - **package-dependency-install-required**: diagnostics-otel: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) - 🟡 P2 **diagnostics-otel** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: diagnostics-otel: plugin API compatibility range is missing + - **package-min-host-version-drift**: diagnostics-otel: OpenClaw package minimum host version drifts from build target - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **diagnostics-otel** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diagnostics-otel: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts) - 🟡 P2 **diagnostics-prometheus** `upstream-metadata` `plugin-upstream-fix` - - **package-install-metadata-incomplete**: diagnostics-prometheus: OpenClaw package install metadata is incomplete + - **package-min-host-version-drift**: diagnostics-prometheus: OpenClaw package minimum host version drifts from build target - state: open · compat:none - evidence: - - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec - - openclaw.release.publishToNpm requires openclaw.install.npmSpec + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **diagnostics-prometheus** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diagnostics-prometheus: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts) - 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: diffs: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) + - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) - 🟡 P2 **diffs** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: diffs: OpenClaw package install metadata is incomplete @@ -4425,19 +3629,13 @@ _none_ - state: open · compat:none - evidence: - minHostVersion:>=2026.4.30 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: diffs: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/index.ts) - -- 🟡 P2 **diffs** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: diffs: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ plugin.ts:42](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L42) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/index.ts) - 🟡 P2 **dingtalk-connector** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: dingtalk-connector: channel runtime needs envelope/config probes @@ -4490,69 +3688,89 @@ _none_ - evidence: - [package.json](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/package.json) -- 🟡 P2 **discord** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: discord: channel runtime needs envelope/config probes - - state: open · compat:active +- 🟡 P2 **discord** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: discord: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) + - discord -- 🟡 P2 **discord** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: discord: plugin API compatibility range is missing +- 🟡 P2 **discord** `inspector-gap` `inspector-follow-up` + - **package-dependency-install-required**: discord: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/package.json) + - [@discordjs/voice @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [discord-api-types @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [opusscript @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + +- 🟡 P2 **discord** `upstream-metadata` `plugin-upstream-fix` + - **package-install-metadata-incomplete**: discord: OpenClaw package install metadata is incomplete + - state: open · compat:none + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **discord** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: discord: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **discord** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: discord: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/setup-entry.ts) - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: feishu: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) + - [createChatChannelPlugin @ channel.ts:580](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/src/channel.ts#L580) + +- 🟡 P2 **feishu** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: feishu: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - feishu - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: feishu: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) + - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) - 🟡 P2 **feishu** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: feishu: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: feishu: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **feishu** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: feishu: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: feishu: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts) - -- 🟡 P2 **feishu** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: feishu: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ bitable.ts:559](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L559) - - [registerTool @ chat.ts:95](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L95) - - [registerTool @ docx.ts:1262](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1262) - - [registerTool @ docx.ts:1436](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1436) - - [registerTool @ drive.ts:186](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L186) - - [registerTool @ perm.ts:135](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L135) - - [registerTool @ wiki.ts:174](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L174) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/setup-entry.ts) - 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: google-meet: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) - 🟡 P2 **google-meet** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: google-meet: OpenClaw package install metadata is incomplete @@ -4565,19 +3783,13 @@ _none_ - state: open · compat:none - evidence: - minHostVersion:>=2026.4.20 - - buildOpenClawVersion:2026.5.1-beta.2 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: google-meet: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts) - -- 🟡 P2 **google-meet** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: google-meet: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:883](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L883) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts) - 🟡 P2 **hasdata** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: hasdata: cold import requires dependency installation in an isolated workspace @@ -4675,13 +3887,6 @@ _none_ - [registerTool @ tools.ts:52](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L52) - [registerTool @ tools.ts:95](https://github.com/hyperspell/hyperspell-openclaw/blob/a04d35176c4ffbe99d906f7d8075fc8671e7968d/graph/tools.ts#L95) -- 🟡 P2 **inworld-tts** `upstream-metadata` `plugin-upstream-fix` - - **package-min-host-version-drift**: inworld-tts: OpenClaw package minimum host version drifts from build target - - state: open · compat:none - - evidence: - - minHostVersion:>=2026.4.1 - - buildOpenClawVersion:2026.4.1 - - 🟡 P2 **inworld-tts** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: inworld-tts: cold import needs TypeScript source entrypoint support - state: open · compat:none @@ -4698,20 +3903,20 @@ _none_ - **channel-contract-probe**: kitchen-sink: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) - 🟡 P2 **kitchen-sink** `deprecation-warning` `core-compat-adapter` - **legacy-before-agent-start**: kitchen-sink: legacy before_agent_start hook compatibility is still used - state: open · compat:deprecated · deprecated - evidence: - - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L11) + - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L11) - 🟡 P2 **kitchen-sink** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: kitchen-sink: root plugin SDK barrel is still used by fixtures - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-sdk-imports.ts#L2) + - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-sdk-imports.ts#L2) - 🟡 P2 **lightclawbot** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: lightclawbot: channel runtime needs envelope/config probes @@ -4767,25 +3972,28 @@ _none_ - **package-dependency-install-required**: lobster: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) + - [@clawdbot/lobster @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) - 🟡 P2 **lobster** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: lobster: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: lobster: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **lobster** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: lobster: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **lobster** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: lobster: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts) - -- 🟡 P2 **lobster** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: lobster: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L9) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/index.ts) - 🟡 P2 **lossless-claw** `deprecation-warning` `core-compat-adapter` - **legacy-root-sdk-import**: lossless-claw: root plugin SDK barrel is still used by fixtures @@ -4916,9 +4124,9 @@ _none_ - **package-dependency-install-required**: memory-lancedb: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [openai @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) + - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [openai @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) - 🟡 P2 **memory-lancedb** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: memory-lancedb: OpenClaw package install metadata is incomplete @@ -4931,21 +4139,13 @@ _none_ - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **memory-lancedb** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: memory-lancedb: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts) - -- 🟡 P2 **memory-lancedb** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: memory-lancedb: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:643](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L643) - - [registerTool @ index.ts:694](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L694) - - [registerTool @ index.ts:757](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L757) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts) - 🟡 P2 **memory-tencentdb** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: memory-tencentdb: cold import requires dependency installation in an isolated workspace @@ -4958,6 +4158,12 @@ _none_ - undici @ plugins/memory-tencentdb/.crabpot-package/package.json - node-llama-cpp @ plugins/memory-tencentdb/.crabpot-package/package.json +- 🟡 P2 **memory-tencentdb** `upstream-metadata` `plugin-upstream-fix` + - **package-openclaw-unsupported-metadata**: memory-tencentdb: package declares unsupported OpenClaw metadata + - state: open · compat:none + - evidence: + - openclaw.bundle + - 🟡 P2 **memory-tencentdb** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: memory-tencentdb: cold import needs TypeScript source entrypoint support - state: open · compat:none @@ -5082,26 +4288,45 @@ _none_ - **channel-contract-probe**: msteams: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:406](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/src/channel.ts#L406) + +- 🟡 P2 **msteams** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: msteams: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - msteams - 🟡 P2 **msteams** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: msteams: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@microsoft/agents-hosting @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) - - [express @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) + - [@azure/identity @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.apps @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [express @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jsonwebtoken @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jwks-rsa @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) - 🟡 P2 **msteams** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: msteams: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: msteams: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **msteams** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: msteams: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **msteams** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: msteams: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/setup-entry.ts) - 🟡 P2 **nemoclaw** `deprecation-warning` `core-compat-adapter` - **legacy-before-agent-start**: nemoclaw: legacy before_agent_start hook compatibility is still used @@ -5135,50 +4360,78 @@ _none_ - **channel-contract-probe**: nextcloud-talk: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:69](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/src/channel.ts#L69) + +- 🟡 P2 **nextcloud-talk** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: nextcloud-talk: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - nextcloud-talk - 🟡 P2 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: nextcloud-talk: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/package.json) - 🟡 P2 **nextcloud-talk** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: nextcloud-talk: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: nextcloud-talk: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **nextcloud-talk** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: nextcloud-talk: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **nextcloud-talk** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: nextcloud-talk: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/setup-entry.ts) - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: nostr: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) + - [createChatChannelPlugin @ channel.ts:88](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/src/channel.ts#L88) + +- 🟡 P2 **nostr** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: nostr: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - nostr - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: nostr: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) + - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) - 🟡 P2 **nostr** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: nostr: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: nostr: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **nostr** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: nostr: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **nostr** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: nostr: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/setup-entry.ts) - 🟡 P2 **openclaw-qqbot** `deprecation-warning` `core-compat-adapter` - **channel-env-vars**: openclaw-qqbot: channelEnvVars legacy manifest metadata must stay covered @@ -5190,11 +4443,11 @@ _none_ - **package-dependency-install-required**: openclaw-qqbot: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) + - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) - 🟡 P2 **openclaw-qqbot** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: openclaw-qqbot: OpenClaw package install metadata is incomplete @@ -5207,21 +4460,14 @@ _none_ - state: open · compat:none - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: openclaw-qqbot: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/setup-entry.ts) - -- 🟡 P2 **openclaw-qqbot** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: openclaw-qqbot: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ channel.ts:32](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/channel.ts#L32) - - [registerTool @ remind.ts:90](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/remind.ts#L90) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/setup-entry.ts) - 🟡 P2 **openclaw-telemetry** `deprecation-warning` `core-compat-adapter` - **legacy-before-agent-start**: openclaw-telemetry: legacy before_agent_start hook compatibility is still used @@ -5379,34 +4625,39 @@ _none_ - **channel-contract-probe**: synology-chat: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:209](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/src/channel.ts#L209) - 🟡 P2 **synology-chat** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: synology-chat: root plugin SDK barrel is still used by fixtures + - **channel-env-vars**: synology-chat: channelEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/channel.ts#L12) - - [openclaw/plugin-sdk @ runtime.ts:7](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/runtime.ts#L7) + - synology-chat - 🟡 P2 **synology-chat** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: synology-chat: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/package.json) - 🟡 P2 **synology-chat** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: synology-chat: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: synology-chat: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **synology-chat** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: synology-chat: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **synology-chat** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: synology-chat: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/setup-entry.ts) - 🟡 P2 **telnyx-sms** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: telnyx-sms: channel runtime needs envelope/config probes @@ -5431,126 +4682,103 @@ _none_ - **channel-contract-probe**: tlon: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) - -- 🟡 P2 **tlon** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: tlon: root plugin SDK barrel is still used by fixtures - - state: open · compat:deprecated · deprecated - - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L12) - - [openclaw/plugin-sdk @ channel.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L7) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ discovery.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/discovery.ts#L1) - - [openclaw/plugin-sdk @ history.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/history.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L2) - - [openclaw/plugin-sdk @ index.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L3) - - [openclaw/plugin-sdk @ onboarding.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L1) - - [openclaw/plugin-sdk @ onboarding.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L9) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ types.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/types.ts#L1) - - [openclaw/plugin-sdk @ auth.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/auth.ts#L1) - - [openclaw/plugin-sdk @ base-url.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/base-url.ts#L1) - - [openclaw/plugin-sdk @ channel-client.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-client.ts#L1) - - [openclaw/plugin-sdk @ channel-ops.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-ops.ts#L1) - - [openclaw/plugin-sdk @ context.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/context.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L2) - - [openclaw/plugin-sdk @ sse-client.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/sse-client.ts#L2) + - [createChatChannelPlugin @ channel.ts:61](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/src/channel.ts#L61) - 🟡 P2 **tlon** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: tlon: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) + - [@aws-sdk/client-s3 @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@aws-sdk/s3-request-presigner @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@tloncorp/tlon-skill @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) - 🟡 P2 **tlon** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: tlon: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: tlon: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **tlon** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: tlon: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **tlon** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: tlon: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts) - -- 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - - **channel-contract-probe**: twitch: channel runtime needs envelope/config probes - - state: open · compat:active - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/setup-entry.ts) - 🟡 P2 **twitch** `deprecation-warning` `core-compat-adapter` - - **legacy-root-sdk-import**: twitch: root plugin SDK barrel is still used by fixtures + - **channel-env-vars**: twitch: channelEnvVars legacy manifest metadata must stay covered - state: open · compat:deprecated · deprecated - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L2) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ config.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config.ts#L1) - - [openclaw/plugin-sdk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L8) - - [openclaw/plugin-sdk @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L9) - - [openclaw/plugin-sdk @ onboarding.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L12) - - [openclaw/plugin-sdk @ onboarding.ts:5](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L5) - - [openclaw/plugin-sdk @ plugin.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L8) - - [openclaw/plugin-sdk @ plugin.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L9) - - [openclaw/plugin-sdk @ probe.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/probe.ts#L3) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ send.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/send.ts#L8) - - [openclaw/plugin-sdk @ status.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/status.ts#L7) - - [openclaw/plugin-sdk @ test-fixtures.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/test-fixtures.ts#L1) - - [openclaw/plugin-sdk @ twitch-client.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/twitch-client.ts#L3) + - twitch - 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: twitch: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) + - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) - 🟡 P2 **twitch** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: twitch: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: twitch: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **twitch** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: twitch: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **twitch** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: twitch: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/setup-entry.ts) + +- 🟡 P2 **voice-call** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: voice-call: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - voice-call - 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: voice-call: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) - 🟡 P2 **voice-call** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: voice-call: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: voice-call: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **voice-call** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: voice-call: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: voice-call: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts) - -- 🟡 P2 **voice-call** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: voice-call: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:399](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L399) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts) - 🟡 P2 **web-search-plus** `upstream-metadata` `plugin-upstream-fix` - **manifest-unknown-fields**: web-search-plus: manifest uses unsupported top-level fields @@ -5604,11 +4832,11 @@ _none_ - **package-dependency-install-required**: whatsapp: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) + - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) - 🟡 P2 **whatsapp** `upstream-metadata` `plugin-upstream-fix` - **package-install-metadata-incomplete**: whatsapp: OpenClaw package install metadata is incomplete @@ -5621,14 +4849,14 @@ _none_ - state: open · compat:none - evidence: - minHostVersion:>=2026.4.25 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟡 P2 **whatsapp** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: whatsapp: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/setup-entry.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/setup-entry.ts) - 🟡 P2 **yuanbao** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: yuanbao: channel runtime needs envelope/config probes @@ -5652,6 +4880,12 @@ _none_ - uuid @ plugins/yuanbao/.crabpot-package/package.json - ws @ plugins/yuanbao/.crabpot-package/package.json +- 🟡 P2 **yuanbao** `upstream-metadata` `plugin-upstream-fix` + - **package-openclaw-unsupported-metadata**: yuanbao: package declares unsupported OpenClaw metadata + - state: open · compat:none + - evidence: + - openclaw.bundle + - 🟡 P2 **yuanbao** `upstream-metadata` `plugin-upstream-fix` - **package-plugin-api-compat-missing**: yuanbao: plugin API compatibility range is missing - state: open · compat:none @@ -5680,58 +4914,78 @@ _none_ - **channel-contract-probe**: zalo: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:159](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/src/channel.ts#L159) + +- 🟡 P2 **zalo** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: zalo: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - zalo - 🟡 P2 **zalo** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: zalo: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/package.json) - 🟡 P2 **zalo** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: zalo: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: zalo: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **zalo** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: zalo: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **zalo** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: zalo: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/setup-entry.ts) - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **channel-contract-probe**: zalouser: channel runtime needs envelope/config probes - state: open · compat:active - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) + - [createChatChannelPlugin @ channel.ts:68](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/src/channel.ts#L68) + +- 🟡 P2 **zalouser** `deprecation-warning` `core-compat-adapter` + - **channel-env-vars**: zalouser: channelEnvVars legacy manifest metadata must stay covered + - state: open · compat:deprecated · deprecated + - evidence: + - zalouser - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **package-dependency-install-required**: zalouser: cold import requires dependency installation in an isolated workspace - state: open · compat:none - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) + - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) - 🟡 P2 **zalouser** `upstream-metadata` `plugin-upstream-fix` - - **package-plugin-api-compat-missing**: zalouser: plugin API compatibility range is missing + - **package-install-metadata-incomplete**: zalouser: OpenClaw package install metadata is incomplete - state: open · compat:none - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟡 P2 **zalouser** `upstream-metadata` `plugin-upstream-fix` + - **package-min-host-version-drift**: zalouser: OpenClaw package minimum host version drifts from build target + - state: open · compat:none + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - **package-typescript-source-entrypoint**: zalouser: cold import needs TypeScript source entrypoint support - state: open · compat:none - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts) - -- 🟡 P2 **zalouser** `inspector-gap` `inspector-follow-up` - - **runtime-tool-capture**: zalouser: runtime tool schema needs registration capture - - state: open · compat:none - - evidence: - - [registerTool @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L16) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/setup-entry.ts) - 🟢 P3 **clawrouter** `upstream-metadata` `plugin-upstream-fix` - **security-manifest-schema-unavailable**: clawrouter: plugin security manifest references an unavailable schema @@ -5758,12 +5012,6 @@ _none_ - [registerGatewayMethod @ index.ts:669](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L669) - [registerService @ index.ts:857](https://github.com/win4r/openclaw-a2a-gateway/blob/a335e59e926f7e1a8913e6cd7b1cbf2d44c33cb7/index.ts#L857) -- 🟠 P1 **bluebubbles** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:bluebubbles` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - - 🟠 P1 **clawmetry** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:clawmetry` @@ -5787,7 +5035,7 @@ _none_ - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:codex` - evidence: - - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts#L33) + - [registerCommand @ index.ts:33](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts#L33) - 🟠 P1 **codex-app-server** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5810,20 +5058,20 @@ _none_ - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:diagnostics-otel` - evidence: - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L11) + - [registerService @ index.ts:9](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts#L9) - 🟠 P1 **diagnostics-prometheus** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:diagnostics-prometheus` - evidence: - - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L12) - - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts#L11) + - [registerHttpRoute @ index.ts:12](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L12) + - [registerService @ index.ts:11](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts#L11) - 🟠 P1 **diffs** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:diffs` - evidence: - - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L57) + - [registerHttpRoute @ plugin.ts:57](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/src/plugin.ts#L57) - 🟠 P1 **dingtalk-connector** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5844,36 +5092,26 @@ _none_ - [registerGatewayMethod @ gateway-methods.ts:652](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L652) - [registerGatewayMethod @ gateway-methods.ts:719](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/3441bcffc4dee15936ede406ce001ffcf9e2efc3/src/gateway-methods.ts#L719) -- 🟠 P1 **discord** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:discord` - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) - -- 🟠 P1 **feishu** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:feishu` - - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) - - 🟠 P1 **google-meet** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:google-meet` - evidence: - - [registerGatewayMethod @ index.ts:631](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L631) - - [registerGatewayMethod @ index.ts:652](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L652) - - [registerGatewayMethod @ index.ts:674](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L674) - - [registerGatewayMethod @ index.ts:686](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L686) - - [registerGatewayMethod @ index.ts:704](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L704) - - [registerGatewayMethod @ index.ts:722](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L722) - - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L746) - - [registerGatewayMethod @ index.ts:768](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L768) - - [registerGatewayMethod @ index.ts:792](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L792) - - [registerGatewayMethod @ index.ts:817](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L817) - - [registerGatewayMethod @ index.ts:828](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L828) - - [registerGatewayMethod @ index.ts:845](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L845) - - [registerGatewayMethod @ index.ts:862](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L862) - - [registerNodeHostCommand @ index.ts:1018](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L1018) + - [registerGatewayMethod @ index.ts:703](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L703) + - [registerGatewayMethod @ index.ts:724](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L724) + - [registerGatewayMethod @ index.ts:746](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L746) + - [registerGatewayMethod @ index.ts:758](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L758) + - [registerGatewayMethod @ index.ts:776](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L776) + - [registerGatewayMethod @ index.ts:795](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L795) + - [registerGatewayMethod @ index.ts:819](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L819) + - [registerGatewayMethod @ index.ts:841](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L841) + - [registerGatewayMethod @ index.ts:865](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L865) + - [registerGatewayMethod @ index.ts:890](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L890) + - [registerGatewayMethod @ index.ts:901](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L901) + - [registerGatewayMethod @ index.ts:918](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L918) + - [registerGatewayMethod @ index.ts:937](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L937) + - [registerGatewayMethod @ index.ts:954](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L954) + - [registerGatewayMethod @ index.ts:975](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L975) + - [registerNodeHostCommand @ index.ts:1143](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts#L1143) - 🟠 P1 **honcho** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5897,41 +5135,41 @@ _none_ - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:kitchen-sink` - evidence: - - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L7) - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) - - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L12) - - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L50) - - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L51) - - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L13) - - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L95) - - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L14) - - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L15) - - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/scripts/sync-surface.mjs#L113) - - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L17) - - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L86) - - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L18) - - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L19) - - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L107) - - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L20) - - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L21) - - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L105) - - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L23) - - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L53) - - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L25) - - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L26) - - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L92) - - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L28) - - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L29) - - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L30) - - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L111) - - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L31) - - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L34) - - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L35) - - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L39) - - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L41) - - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L42) - - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L104) + - [registerAutoEnableProbe @ generated-registrars.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L7) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) + - [registerCommand @ generated-registrars.js:12](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L12) + - [registerCommand @ kitchen-runtime.js:50](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L50) + - [registerCommand @ kitchen-runtime.js:51](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L51) + - [registerCompactionProvider @ generated-registrars.js:13](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L13) + - [registerCompactionProvider @ kitchen-runtime.js:95](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L95) + - [registerConfigMigration @ generated-registrars.js:14](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L14) + - [registerContextEngine @ generated-registrars.js:15](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L15) + - [registerDetachedTaskRuntime @ sync-surface.mjs:113](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/scripts/sync-surface.mjs#L113) + - [registerDetachedTaskRuntime @ generated-registrars.js:17](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L17) + - [registerDetachedTaskRuntime @ kitchen-runtime.js:86](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L86) + - [registerGatewayDiscoveryService @ generated-registrars.js:18](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L18) + - [registerGatewayMethod @ generated-registrars.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L19) + - [registerGatewayMethod @ kitchen-runtime.js:107](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L107) + - [registerHook @ generated-registrars.js:20](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L20) + - [registerHttpRoute @ generated-registrars.js:21](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L21) + - [registerHttpRoute @ kitchen-runtime.js:105](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L105) + - [registerInteractiveHandler @ generated-registrars.js:23](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L23) + - [registerInteractiveHandler @ kitchen-runtime.js:53](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L53) + - [registerMemoryCapability @ generated-registrars.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L25) + - [registerMemoryCorpusSupplement @ generated-registrars.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L26) + - [registerMemoryCorpusSupplement @ kitchen-runtime.js:92](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L92) + - [registerMemoryFlushPlan @ generated-registrars.js:28](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L28) + - [registerMemoryPromptSection @ generated-registrars.js:29](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L29) + - [registerMemoryPromptSupplement @ generated-registrars.js:30](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L30) + - [registerMemoryPromptSupplement @ kitchen-runtime.js:111](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L111) + - [registerMemoryRuntime @ generated-registrars.js:31](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L31) + - [registerNodeHostCommand @ generated-registrars.js:34](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L34) + - [registerNodeInvokePolicy @ generated-registrars.js:35](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L35) + - [registerReload @ generated-registrars.js:39](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L39) + - [registerSecurityAuditCollector @ generated-registrars.js:41](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L41) + - [registerService @ generated-registrars.js:42](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L42) + - [registerService @ kitchen-runtime.js:104](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L104) - 🟠 P1 **lightclawbot** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5968,8 +5206,8 @@ _none_ - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:memory-lancedb` - evidence: - - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1085) - - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L586) + - [registerService @ index.ts:1085](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1085) + - [registerService @ index.ts:586](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L586) - 🟠 P1 **memos-cloud** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -5984,36 +5222,23 @@ _none_ - [registerChannel @ index.ts:31](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L31) - [registerHttpRoute @ index.ts:34](https://github.com/TencentCloud-Lighthouse/openclaw-wecom/blob/5edda565415e29e30f6388c2160f750bb026ec32/index.ts#L34) -- 🟠 P1 **msteams** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:msteams` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) - - 🟠 P1 **nemoclaw** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:nemoclaw` - evidence: - [registerCommand @ index.ts:336](https://github.com/NVIDIA/NemoClaw/blob/f9d21afa193c2b67cb55e79eca03db40f0fbe836/nemoclaw/src/index.ts#L336) -- 🟠 P1 **nextcloud-talk** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:nextcloud-talk` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) - - 🟠 P1 **nostr** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:nostr` - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) - - [registerHttpRoute @ index.ts:64](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L64) + - [registerHttpRoute @ index.ts:89](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts#L89) - 🟠 P1 **openclaw-qqbot** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:openclaw-qqbot` - evidence: - - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) + - [registerCommand @ framework-registration.ts:23](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/src/bridge/commands/framework-registration.ts#L23) - 🟠 P1 **openclaw-telemetry** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -6047,41 +5272,27 @@ _none_ - [registerService @ index.ts:301](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L301) - [registerService @ index.ts:307](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/src/index.ts#L307) -- 🟠 P1 **synology-chat** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:synology-chat` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) - - 🟠 P1 **telnyx-sms** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:telnyx-sms` - evidence: - [registerHttpRoute @ index.ts:259](https://github.com/team-telnyx/telnyx-openclaw-sms-channel/blob/dee567716ca56d49464bf6354393f3656d92a2b3/index.ts#L259) -- 🟠 P1 **tlon** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:tlon` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) - -- 🟠 P1 **twitch** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:twitch` - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) - - 🟠 P1 **voice-call** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - id: `api.capture.runtime-registrars:voice-call` - evidence: - - [registerGatewayMethod @ index.ts:261](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L261) - - [registerGatewayMethod @ index.ts:294](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L294) - - [registerGatewayMethod @ index.ts:311](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L311) - - [registerGatewayMethod @ index.ts:327](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L327) - - [registerGatewayMethod @ index.ts:349](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L349) - - [registerGatewayMethod @ index.ts:376](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L376) - - [registerService @ index.ts:532](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L532) + - [registerConfigMigration @ setup-api.ts:45](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/setup-api.ts#L45) + - [registerGatewayMethod @ index.ts:390](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L390) + - [registerGatewayMethod @ index.ts:420](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L420) + - [registerGatewayMethod @ index.ts:437](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L437) + - [registerGatewayMethod @ index.ts:457](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L457) + - [registerGatewayMethod @ index.ts:478](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L478) + - [registerGatewayMethod @ index.ts:513](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L513) + - [registerGatewayMethod @ index.ts:536](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L536) + - [registerGatewayMethod @ index.ts:558](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L558) + - [registerGatewayMethod @ index.ts:581](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L581) + - [registerService @ index.ts:748](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts#L748) - 🟠 P1 **wecom** `inspector-capture-api` - contract: External inspector capture records service, route, gateway, command, and interactive registrations. @@ -6101,23 +5312,11 @@ _none_ - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:32 - registerCommand @ plugins/yuanbao/.crabpot-package/index.ts:33 -- 🟠 P1 **zalo** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:zalo` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) - -- 🟠 P1 **zalouser** `inspector-capture-api` - - contract: External inspector capture records service, route, gateway, command, and interactive registrations. - - id: `api.capture.runtime-registrars:zalouser` - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) - - 🟠 P1 **kitchen-sink** `hook-runner` - contract: Hook returns preserve terminal, block, and approval semantics. - id: `hook.before_tool_call.terminal-block-approval:kitchen-sink` - evidence: - - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L19) + - [before_tool_call @ generated-hooks.js:19](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L19) - 🟠 P1 **nemoclaw** `hook-runner` - contract: Hook returns preserve terminal, block, and approval semantics. @@ -6154,9 +5353,9 @@ _none_ - contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior. - id: `hook.llm-observer.privacy-payload:kitchen-sink` - evidence: - - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L7) - - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L25) - - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L26) + - [agent_end @ generated-hooks.js:7](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L7) + - [llm_input @ generated-hooks.js:25](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L25) + - [llm_output @ generated-hooks.js:26](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L26) - 🟠 P1 **llm-trace-phoenix** `hook-runner` - contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior. @@ -6169,7 +5368,7 @@ _none_ - contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior. - id: `hook.llm-observer.privacy-payload:memory-lancedb` - evidence: - - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L1005) + - [agent_end @ index.ts:1005](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts#L1005) - 🟠 P1 **memory-tencentdb** `hook-runner` - contract: LLM observer hooks receive documented prompt/output fields with expected redaction behavior. @@ -6197,116 +5396,18 @@ _none_ - [llm_input @ llm.ts:39](https://github.com/comet-ml/opik-openclaw/blob/f8987269d3f2121f52ace4f60c80629266c0dfd7/src/service/hooks/llm.ts#L39) - [llm_output @ llm.ts:150](https://github.com/comet-ml/opik-openclaw/blob/f8987269d3f2121f52ace4f60c80629266c0dfd7/src/service/hooks/llm.ts#L150) -- 🟠 P1 **bluebubbles** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:bluebubbles` - - evidence: - - [openclaw/plugin-sdk/bluebubbles @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ account-resolve.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/account-resolve.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/accounts.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ actions.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/actions.ts#L13) - - [openclaw/plugin-sdk/bluebubbles @ attachments.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/attachments.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L20) - - [openclaw/plugin-sdk/bluebubbles @ channel.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/channel.ts#L5) - - [openclaw/plugin-sdk/bluebubbles @ chat.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/chat.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ config-apply.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-apply.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/config-schema.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ history.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/history.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ media-send.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/media-send.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ monitor-debounce.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-debounce.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-normalize.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-normalize.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor-processing.ts:19](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-processing.ts#L19) - - [openclaw/plugin-sdk/bluebubbles @ monitor-shared.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor-shared.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/monitor.ts#L9) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/bluebubbles @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/bluebubbles @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/probe.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/reactions.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ request-url.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/request-url.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/runtime.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L2) - - [openclaw/plugin-sdk/bluebubbles @ send.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/send.ts#L3) - - [openclaw/plugin-sdk/bluebubbles @ targets.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/targets.ts#L8) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L1) - - [openclaw/plugin-sdk/bluebubbles @ types.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/src/types.ts#L3) - - 🟠 P1 **clawmetry** `sdk-alias` - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - id: `sdk.import.package-export-cold-import:clawmetry` - evidence: - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:2](https://github.com/vivekchand/clawmetry/blob/d747787e334cc39dd1192e4af03be8adf8260361/clawhub-plugin/src/service.ts#L2) -- 🟠 P1 **diagnostics-otel** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:diagnostics-otel` - - evidence: - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L1) - - [openclaw/plugin-sdk/diagnostics-otel @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts#L2) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L15) - - [openclaw/plugin-sdk/diagnostics-otel @ service.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/src/service.ts#L20) - -- 🟠 P1 **feishu** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:feishu` - - evidence: - - [openclaw/plugin-sdk/feishu @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L1) - - [openclaw/plugin-sdk/feishu @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L2) - - [openclaw/plugin-sdk/feishu @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/accounts.ts#L2) - - [openclaw/plugin-sdk/feishu @ bitable.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L3) - - [openclaw/plugin-sdk/feishu @ bot.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L1) - - [openclaw/plugin-sdk/feishu @ bot.ts:15](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bot.ts#L15) - - [openclaw/plugin-sdk/feishu @ card-action.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/card-action.ts#L1) - - [openclaw/plugin-sdk/feishu @ channel.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L13) - - [openclaw/plugin-sdk/feishu @ channel.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/channel.ts#L6) - - [openclaw/plugin-sdk/feishu @ chat.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L2) - - [openclaw/plugin-sdk/feishu @ dedup.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dedup.ts#L7) - - [openclaw/plugin-sdk/feishu @ directory.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/directory.ts#L5) - - [openclaw/plugin-sdk/feishu @ docx.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L7) - - [openclaw/plugin-sdk/feishu @ drive.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L2) - - [openclaw/plugin-sdk/feishu @ dynamic-agent.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/dynamic-agent.ts#L4) - - [openclaw/plugin-sdk/feishu @ media.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/media.ts#L4) - - [openclaw/plugin-sdk/feishu @ monitor.account.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.account.ts#L3) - - [openclaw/plugin-sdk/feishu @ monitor.startup.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.startup.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.state.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.state.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.transport.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.transport.ts#L9) - - [openclaw/plugin-sdk/feishu @ monitor.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.ts#L1) - - [openclaw/plugin-sdk/feishu @ monitor.webhook.test-helpers.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/monitor.webhook.test-helpers.ts#L3) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L20) - - [openclaw/plugin-sdk/feishu @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/feishu @ outbound.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/outbound.ts#L3) - - [openclaw/plugin-sdk/feishu @ perm.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L2) - - [openclaw/plugin-sdk/feishu @ policy.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L5) - - [openclaw/plugin-sdk/feishu @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/policy.ts#L6) - - [openclaw/plugin-sdk/feishu @ reactions.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reactions.ts#L1) - - [openclaw/plugin-sdk/feishu @ reply-dispatcher.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/reply-dispatcher.ts#L8) - - [openclaw/plugin-sdk/feishu @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/runtime.ts#L2) - - [openclaw/plugin-sdk/feishu @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/feishu @ send-target.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send-target.ts#L1) - - [openclaw/plugin-sdk/feishu @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/send.ts#L1) - - [openclaw/plugin-sdk/feishu @ streaming-card.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/streaming-card.ts#L6) - - [openclaw/plugin-sdk/feishu @ tool-account.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-account.ts#L2) - - [openclaw/plugin-sdk/feishu @ tool-factory-test-harness.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/tool-factory-test-harness.ts#L1) - - [openclaw/plugin-sdk/feishu @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/types.ts#L1) - - [openclaw/plugin-sdk/feishu @ typing.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/typing.ts#L1) - - [openclaw/plugin-sdk/feishu @ wiki.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L2) - - 🟠 P1 **honcho** `sdk-alias` - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - id: `sdk.import.package-export-cold-import:honcho` - evidence: - [openclaw/plugin-sdk/memory-core @ index.ts:11](https://github.com/plastic-labs/openclaw-honcho/blob/9580d37d95ef63b0e8b64578fbfc8abfcfc745e4/index.ts#L11) -- 🟠 P1 **lobster** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:lobster` - - evidence: - - [openclaw/plugin-sdk/lobster @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L5) - - [openclaw/plugin-sdk/lobster @ lobster-tool.ts:4](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/lobster-tool.ts#L4) - - [openclaw/plugin-sdk/lobster @ windows-spawn.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/src/windows-spawn.ts#L5) - - 🟠 P1 **matrix** `sdk-alias` - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - id: `sdk.import.package-export-cold-import:matrix` @@ -6342,87 +5443,6 @@ _none_ - [openclaw/plugin-sdk/matrix @ tool-actions.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/tool-actions.ts#L8) - [openclaw/plugin-sdk/matrix @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/matrix/src/types.ts#L1) -- 🟠 P1 **msteams** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:msteams` - - evidence: - - [openclaw/plugin-sdk/msteams @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L1) - - [openclaw/plugin-sdk/msteams @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L2) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ payload.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/payload.ts#L1) - - [openclaw/plugin-sdk/msteams @ remote-media.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/remote-media.ts#L1) - - [openclaw/plugin-sdk/msteams @ shared.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L7) - - [openclaw/plugin-sdk/msteams @ shared.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/attachments/shared.ts#L8) - - [openclaw/plugin-sdk/msteams @ channel.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L18) - - [openclaw/plugin-sdk/msteams @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/channel.ts#L9) - - [openclaw/plugin-sdk/msteams @ directory-live.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/directory-live.ts#L1) - - [openclaw/plugin-sdk/msteams @ file-lock.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/file-lock.ts#L1) - - [openclaw/plugin-sdk/msteams @ graph.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/graph.ts#L1) - - [openclaw/plugin-sdk/msteams @ media-helpers.ts:11](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/media-helpers.ts#L11) - - [openclaw/plugin-sdk/msteams @ messenger.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/messenger.ts#L10) - - [openclaw/plugin-sdk/msteams @ monitor-handler.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler.ts#L1) - - [openclaw/plugin-sdk/msteams @ message-handler.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor-handler/message-handler.ts#L22) - - [openclaw/plugin-sdk/msteams @ monitor.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/monitor.ts#L10) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/msteams @ onboarding.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/onboarding.ts#L8) - - [openclaw/plugin-sdk/msteams @ outbound.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/outbound.ts#L1) - - [openclaw/plugin-sdk/msteams @ policy.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L10) - - [openclaw/plugin-sdk/msteams @ policy.ts:20](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/policy.ts#L20) - - [openclaw/plugin-sdk/msteams @ probe.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/probe.ts#L5) - - [openclaw/plugin-sdk/msteams @ reply-dispatcher.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/reply-dispatcher.ts#L9) - - [openclaw/plugin-sdk/msteams @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/runtime.ts#L2) - - [openclaw/plugin-sdk/msteams @ secret-input.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/secret-input.ts#L5) - - [openclaw/plugin-sdk/msteams @ send-context.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send-context.ts#L5) - - [openclaw/plugin-sdk/msteams @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L1) - - [openclaw/plugin-sdk/msteams @ send.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/send.ts#L2) - - [openclaw/plugin-sdk/msteams @ store-fs.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/store-fs.ts#L2) - - [openclaw/plugin-sdk/msteams @ test-runtime.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/test-runtime.ts#L3) - - [openclaw/plugin-sdk/msteams @ token.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/src/token.ts#L1) - -- 🟠 P1 **nextcloud-talk** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:nextcloud-talk` - - evidence: - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L1) - - [openclaw/plugin-sdk/nextcloud-talk @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ accounts.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/accounts.ts#L7) - - [openclaw/plugin-sdk/nextcloud-talk @ channel.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/channel.ts#L22) - - [openclaw/plugin-sdk/nextcloud-talk @ config-schema.ts:10](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/config-schema.ts#L10) - - [openclaw/plugin-sdk/nextcloud-talk @ inbound.ts:17](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/inbound.ts#L17) - - [openclaw/plugin-sdk/nextcloud-talk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/monitor.ts#L8) - - [openclaw/plugin-sdk/nextcloud-talk @ onboarding.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/onboarding.ts#L16) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L14) - - [openclaw/plugin-sdk/nextcloud-talk @ policy.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/policy.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ replay-guard.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/replay-guard.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ room-info.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/room-info.ts#L3) - - [openclaw/plugin-sdk/nextcloud-talk @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nextcloud-talk @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/nextcloud-talk @ types.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/src/types.ts#L7) - -- 🟠 P1 **nostr** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:nostr` - - evidence: - - [openclaw/plugin-sdk/nostr @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L1) - - [openclaw/plugin-sdk/nostr @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L2) - - [openclaw/plugin-sdk/nostr @ channel.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/channel.ts#L9) - - [openclaw/plugin-sdk/nostr @ config-schema.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/config-schema.ts#L2) - - [openclaw/plugin-sdk/nostr @ nostr-profile-http.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/nostr-profile-http.ts#L16) - - [openclaw/plugin-sdk/nostr @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/runtime.ts#L2) - - [openclaw/plugin-sdk/nostr @ types.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/src/types.ts#L6) - -- 🟠 P1 **voice-call** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:voice-call` - - evidence: - - [openclaw/plugin-sdk/voice-call @ index.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L5) - - [openclaw/plugin-sdk/voice-call @ cli.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/cli.ts#L5) - - [openclaw/plugin-sdk/voice-call @ config.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/config.ts#L6) - - [openclaw/plugin-sdk/voice-call @ guarded-json-api.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/shared/guarded-json-api.ts#L1) - - [openclaw/plugin-sdk/voice-call @ tts-openai.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/providers/tts-openai.ts#L1) - - [openclaw/plugin-sdk/voice-call @ webhook.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/src/webhook.ts#L7) - - 🟠 P1 **yuanbao** `sdk-alias` - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - id: `sdk.import.package-export-cold-import:yuanbao` @@ -6434,34 +5454,6 @@ _none_ - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/env.ts:2 - openclaw/plugin-sdk/matrix @ plugins/yuanbao/.crabpot-package/src/business/commands/upgrade/utils.ts:2 -- 🟠 P1 **zalo** `sdk-alias` - - contract: Every observed OpenClaw plugin SDK import remains exported by the target OpenClaw package. - - id: `sdk.import.package-export-cold-import:zalo` - - evidence: - - [openclaw/plugin-sdk/zalo @ index.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L1) - - [openclaw/plugin-sdk/zalo @ index.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L2) - - [openclaw/plugin-sdk/zalo @ accounts.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/accounts.ts#L2) - - [openclaw/plugin-sdk/zalo @ actions.ts:5](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L5) - - [openclaw/plugin-sdk/zalo @ actions.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/actions.ts#L6) - - [openclaw/plugin-sdk/zalo @ channel.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L14) - - [openclaw/plugin-sdk/zalo @ channel.ts:34](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/channel.ts#L34) - - [openclaw/plugin-sdk/zalo @ config-schema.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/config-schema.ts#L7) - - [openclaw/plugin-sdk/zalo @ group-access.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L1) - - [openclaw/plugin-sdk/zalo @ group-access.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/group-access.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.ts:22](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L22) - - [openclaw/plugin-sdk/zalo @ monitor.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.ts#L6) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L18) - - [openclaw/plugin-sdk/zalo @ monitor.webhook.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/monitor.webhook.ts#L3) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:18](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L18) - - [openclaw/plugin-sdk/zalo @ onboarding.ts:7](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/onboarding.ts#L7) - - [openclaw/plugin-sdk/zalo @ probe.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/probe.ts#L1) - - [openclaw/plugin-sdk/zalo @ runtime.ts:2](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/runtime.ts#L2) - - [openclaw/plugin-sdk/zalo @ secret-input.ts:6](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/secret-input.ts#L6) - - [openclaw/plugin-sdk/zalo @ send.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/send.ts#L1) - - [openclaw/plugin-sdk/zalo @ status-issues.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/status-issues.ts#L1) - - [openclaw/plugin-sdk/zalo @ token.ts:3](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/token.ts#L3) - - [openclaw/plugin-sdk/zalo @ types.ts:1](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/src/types.ts#L1) - - 🟡 P2 **agentchat** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:agentchat` @@ -6484,8 +5476,8 @@ _none_ - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:kitchen-sink` - evidence: - - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-registrars.js#L8) - - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/kitchen-runtime.js#L55) + - [registerChannel @ generated-registrars.js:8](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-registrars.js#L8) + - [registerChannel @ kitchen-runtime.js:55](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/kitchen-runtime.js#L55) - 🟡 P2 **mocrane-wecom** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. @@ -6534,7 +5526,7 @@ _none_ - contract: Legacy before_agent_start remains wired until plugins migrate to before_model_resolve and before_prompt_build. - id: `hook.compat.before-agent-start-migration:kitchen-sink` - evidence: - - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-hooks.js#L11) + - [before_agent_start @ generated-hooks.js:11](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-hooks.js#L11) - 🟡 P2 **nemoclaw** `hook-runner` - contract: Legacy before_agent_start remains wired until plugins migrate to before_model_resolve and before_prompt_build. @@ -7025,7 +6017,7 @@ _none_ - contract: Root plugin SDK barrel remains importable or has a machine-readable migration path. - id: `sdk.import.root-barrel-cold-import:kitchen-sink` - evidence: - - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/89449910b4dfa70a09d5d1e421037f88ceb8589b/src/generated-sdk-imports.ts#L2) + - [openclaw/plugin-sdk @ generated-sdk-imports.ts:2](https://github.com/openclaw/kitchen-sink/blob/998901973d5ce083764a77861a4839f4f184aaa3/src/generated-sdk-imports.ts#L2) - 🟡 P2 **llm-trace-phoenix** `sdk-alias` - contract: Root plugin SDK barrel remains importable or has a machine-readable migration path. @@ -7199,23 +6191,11 @@ _none_ - registerTool @ plugins/yuanbao/.crabpot-package/src/business/tools/member.ts:198 - registerTool @ plugins/yuanbao/.crabpot-package/src/business/tools/remind.ts:395 -- 🟢 P3 **bluebubbles** `channel-runtime` - - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - - id: `channel.runtime.envelope-config-metadata:bluebubbles` - - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts#L13) - -- 🟢 P3 **discord** `channel-runtime` - - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - - id: `channel.runtime.envelope-config-metadata:discord` - - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts#L14) - - 🟢 P3 **feishu** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:feishu` - evidence: - - [registerChannel @ index.ts:55](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts#L55) + - [createChatChannelPlugin @ channel.ts:580](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/src/channel.ts#L580) - 🟢 P3 **lightclawbot** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. @@ -7239,25 +6219,25 @@ _none_ - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:msteams` - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:406](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/src/channel.ts#L406) - 🟢 P3 **nextcloud-talk** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:nextcloud-talk` - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:69](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/src/channel.ts#L69) - 🟢 P3 **nostr** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:nostr` - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts#L16) + - [createChatChannelPlugin @ channel.ts:88](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/src/channel.ts#L88) - 🟢 P3 **synology-chat** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:synology-chat` - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:209](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/src/channel.ts#L209) - 🟢 P3 **telnyx-sms** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. @@ -7269,25 +6249,19 @@ _none_ - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:tlon` - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L13) - -- 🟢 P3 **twitch** `channel-runtime` - - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - - id: `channel.runtime.envelope-config-metadata:twitch` - - evidence: - - [registerChannel @ index.ts:16](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L16) + - [createChatChannelPlugin @ channel.ts:61](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/src/channel.ts#L61) - 🟢 P3 **zalo** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:zalo` - evidence: - - [registerChannel @ index.ts:13](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts#L13) + - [createChatChannelPlugin @ channel.ts:159](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/src/channel.ts#L159) - 🟢 P3 **zalouser** `channel-runtime` - contract: Channel setup, message envelope, sender metadata, and config schema remain stable. - id: `channel.runtime.envelope-config-metadata:zalouser` - evidence: - - [registerChannel @ index.ts:14](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L14) + - [createChatChannelPlugin @ channel.ts:68](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/src/channel.ts#L68) - 🟢 P3 **memos-cloud** `hook-runner` - contract: Legacy before_agent_start remains wired until plugins migrate to before_model_resolve and before_prompt_build. @@ -7295,18 +6269,78 @@ _none_ - evidence: - [before_agent_start @ index.js:481](https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin/blob/03fcc33c5fd285971d4b3dbaa8bbb31cb727db7c/index.js#L481) +- 🟢 P3 **discord** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:discord` + - evidence: + - discord + +- 🟢 P3 **feishu** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:feishu` + - evidence: + - feishu + +- 🟢 P3 **msteams** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:msteams` + - evidence: + - msteams + +- 🟢 P3 **nextcloud-talk** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:nextcloud-talk` + - evidence: + - nextcloud-talk + +- 🟢 P3 **nostr** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:nostr` + - evidence: + - nostr + - 🟢 P3 **openclaw-qqbot** `manifest-loader` - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. - id: `manifest.compat.channel-env-vars:openclaw-qqbot` - evidence: - qqbot +- 🟢 P3 **synology-chat** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:synology-chat` + - evidence: + - synology-chat + - 🟢 P3 **telnyx-sms** `manifest-loader` - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. - id: `manifest.compat.channel-env-vars:telnyx-sms` - evidence: - telnyx-sms +- 🟢 P3 **twitch** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:twitch` + - evidence: + - twitch + +- 🟢 P3 **voice-call** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:voice-call` + - evidence: + - voice-call + +- 🟢 P3 **zalo** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:zalo` + - evidence: + - zalo + +- 🟢 P3 **zalouser** `manifest-loader` + - contract: Legacy channel env metadata continues to map into channel setup/help surfaces. + - id: `manifest.compat.channel-env-vars:zalouser` + - evidence: + - zalouser + - 🟢 P3 **brave-plugin** `manifest-loader` - contract: Legacy provider auth env metadata continues to map into config/help surfaces. - id: `manifest.compat.provider-auth-env-vars:brave-plugin` @@ -7337,48 +6371,18 @@ _none_ - evidence: - [displayName @ openclaw.plugin.json](https://github.com/robbyczgw-cla/web-search-plus-plugin/blob/6e4c765cd04eb449c806748c3130793fe0b05e5e/openclaw.plugin.json) -- 🟢 P3 **bluebubbles** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:bluebubbles` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) - - 🟢 P3 **clawrouter** `package-loader` - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - id: `package.compat.plugin-api-range:clawrouter` - evidence: - [package.json](https://github.com/BlockRunAI/ClawRouter/blob/44bc6beced9add67b009cb57d9f84136c5369985/package.json) -- 🟢 P3 **diagnostics-otel** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:diagnostics-otel` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - -- 🟢 P3 **discord** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:discord` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/package.json) - -- 🟢 P3 **feishu** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:feishu` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - 🟢 P3 **lightclawbot** `package-loader` - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - id: `package.compat.plugin-api-range:lightclawbot` - evidence: - plugins/lightclawbot/.crabpot-package/package.json -- 🟢 P3 **lobster** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:lobster` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) - - 🟢 P3 **matrix** `package-loader` - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - id: `package.compat.plugin-api-range:matrix` @@ -7403,66 +6407,12 @@ _none_ - evidence: - [package.json](https://github.com/duxiaoxiong/memu-engine-for-OpenClaw/blob/a5a22c5faf21e30d17a1b47635829e7dd0728ae5/package.json) -- 🟢 P3 **msteams** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:msteams` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) - -- 🟢 P3 **nextcloud-talk** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:nextcloud-talk` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) - -- 🟢 P3 **nostr** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:nostr` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) - - 🟢 P3 **secureclaw** `package-loader` - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - id: `package.compat.plugin-api-range:secureclaw` - evidence: - [package.json](https://github.com/adversa-ai/secureclaw/blob/bf17e2b3deb989e348b3a98080e33a7047e90ac3/secureclaw/package.json) -- 🟢 P3 **synology-chat** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:synology-chat` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) - -- 🟢 P3 **tlon** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:tlon` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) - -- 🟢 P3 **twitch** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:twitch` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - -- 🟢 P3 **voice-call** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:voice-call` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - -- 🟢 P3 **zalo** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:zalo` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) - -- 🟢 P3 **zalouser** `package-loader` - - contract: Package metadata declares the OpenClaw plugin API range used by the plugin. - - id: `package.compat.plugin-api-range:zalouser` - - evidence: - - [package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - 🟢 P3 **clawmetry** `package-loader` - contract: Inspector can build or resolve source aliases before cold importing package entrypoints. - id: `package.entrypoint.build-before-cold-import:clawmetry` @@ -7489,12 +6439,6 @@ _none_ - [@sinclair/typebox @ package.json](https://github.com/apify/apify-openclaw-plugin/blob/41f49794d230f7ad092d1c699ee4d91fecf6ba91/package.json) - [apify-client @ package.json](https://github.com/apify/apify-openclaw-plugin/blob/41f49794d230f7ad092d1c699ee4d91fecf6ba91/package.json) -- 🟢 P3 **bluebubbles** `package-loader` - - contract: Inspector installs package dependencies in an isolated workspace before cold import. - - id: `package.entrypoint.isolated-dependency-install:bluebubbles` - - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/package.json) - - 🟢 P3 **clawmetry** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:clawmetry` @@ -7518,11 +6462,11 @@ _none_ - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:codex` - evidence: - - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/package.json) + - [@mariozechner/pi-coding-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [@openai/codex @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/package.json) - 🟢 P3 **codex-app-server** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. @@ -7534,42 +6478,52 @@ _none_ - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:diagnostics-otel` - evidence: - - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) - - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/api-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-logs-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-metrics-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/exporter-trace-otlp-proto @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/resources @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-logs @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-metrics @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-node @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/sdk-trace-base @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) + - [@opentelemetry/semantic-conventions @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/package.json) - 🟢 P3 **diffs** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:diffs` - evidence: - - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/package.json) + - [@pierre/diffs @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [@pierre/theme @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [playwright-core @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/package.json) + +- 🟢 P3 **discord** `package-loader` + - contract: Inspector installs package dependencies in an isolated workspace before cold import. + - id: `package.entrypoint.isolated-dependency-install:discord` + - evidence: + - [@discordjs/voice @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [discord-api-types @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [opusscript @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/package.json) - 🟢 P3 **feishu** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:feishu` - evidence: - - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/package.json) + - [@larksuiteoapi/node-sdk @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/package.json) - 🟢 P3 **google-meet** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:google-meet` - evidence: - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/package.json) - 🟢 P3 **lightclawbot** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. @@ -7581,7 +6535,9 @@ _none_ - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:lobster` - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/package.json) + - [@clawdbot/lobster @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [ajv @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/package.json) - 🟢 P3 **matrix** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. @@ -7598,39 +6554,44 @@ _none_ - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:memory-lancedb` - evidence: - - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [openai @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/package.json) + - [@lancedb/lancedb @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [openai @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/package.json) - 🟢 P3 **msteams** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:msteams` - evidence: - - [@microsoft/agents-hosting @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) - - [express @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/package.json) + - [@azure/identity @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [@microsoft/teams.apps @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [express @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jsonwebtoken @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [jwks-rsa @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/package.json) - 🟢 P3 **nextcloud-talk** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:nextcloud-talk` - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/package.json) - 🟢 P3 **nostr** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:nostr` - evidence: - - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/package.json) + - [nostr-tools @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/package.json) - 🟢 P3 **openclaw-qqbot** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:openclaw-qqbot` - evidence: - - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/package.json) + - [@tencent-connect/qqbot-connector @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [mpg123-decoder @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [silk-wasm @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/package.json) - 🟢 P3 **secureclaw** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. @@ -7643,56 +6604,55 @@ _none_ - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:synology-chat` - evidence: - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/package.json) + - [zod @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/package.json) - 🟢 P3 **tlon** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:tlon` - evidence: - - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/package.json) + - [@aws-sdk/client-s3 @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@aws-sdk/s3-request-presigner @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@tloncorp/tlon-skill @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) + - [@urbit/aura @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/package.json) - 🟢 P3 **twitch** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:twitch` - evidence: - - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/package.json) + - [@twurple/api @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/auth @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) + - [@twurple/chat @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/package.json) - 🟢 P3 **voice-call** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:voice-call` - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [commander @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [ws @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/package.json) + - [commander @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) + - [ws @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/package.json) - 🟢 P3 **whatsapp** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:whatsapp` - evidence: - - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/package.json) + - [@whiskeysockets/baileys @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [https-proxy-agent @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [jimp @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/package.json) - 🟢 P3 **zalo** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:zalo` - evidence: - - [undici @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/package.json) + - [undici @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/package.json) - 🟢 P3 **zalouser** `package-loader` - contract: Inspector installs package dependencies in an isolated workspace before cold import. - id: `package.entrypoint.isolated-dependency-install:zalouser` - evidence: - - [@sinclair/typebox @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) - - [zod @ package.json](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/package.json) + - [typebox @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) + - [zca-js @ package.json](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/package.json) - 🟢 P3 **apify** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7704,13 +6664,14 @@ _none_ - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:bluebubbles` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/bluebubbles/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/bluebubbles/setup-entry.ts) - 🟢 P3 **brave-plugin** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:brave-plugin` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/brave/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/brave/index.ts) - 🟢 P3 **clawmetry** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7722,7 +6683,7 @@ _none_ - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:codex` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/a22f06504376e7203a2bec8fde094b7cdcb06c02/extensions/codex/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/codex/index.ts) - 🟢 P3 **codex-app-server** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7734,37 +6695,39 @@ _none_ - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:diagnostics-otel` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/diagnostics-otel/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/diagnostics-otel/index.ts) - 🟢 P3 **diagnostics-prometheus** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:diagnostics-prometheus` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/diagnostics-prometheus/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diagnostics-prometheus/index.ts) - 🟢 P3 **diffs** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:diffs` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/diffs/index.ts) - 🟢 P3 **discord** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:discord` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/discord/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/discord/setup-entry.ts) - 🟢 P3 **feishu** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:feishu` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/feishu/setup-entry.ts) - 🟢 P3 **google-meet** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:google-meet` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/google-meet/index.ts) - 🟢 P3 **inworld-tts** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7776,7 +6739,7 @@ _none_ - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:lobster` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/lobster/index.ts) - 🟢 P3 **matrix** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7794,7 +6757,7 @@ _none_ - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:memory-lancedb` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/memory-lancedb/index.ts) - 🟢 P3 **memu-engine** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7806,50 +6769,56 @@ _none_ - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:msteams` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/msteams/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/msteams/setup-entry.ts) - 🟢 P3 **nextcloud-talk** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:nextcloud-talk` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nextcloud-talk/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nextcloud-talk/setup-entry.ts) - 🟢 P3 **nostr** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:nostr` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/nostr/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/nostr/setup-entry.ts) - 🟢 P3 **openclaw-qqbot** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:openclaw-qqbot` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/setup-entry.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/qqbot/setup-entry.ts) - 🟢 P3 **synology-chat** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:synology-chat` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/synology-chat/setup-entry.ts) - 🟢 P3 **tlon** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:tlon` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/tlon/setup-entry.ts) - 🟢 P3 **twitch** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:twitch` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/twitch/setup-entry.ts) - 🟢 P3 **voice-call** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:voice-call` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/voice-call/index.ts) - 🟢 P3 **web-search-plus** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. @@ -7861,20 +6830,28 @@ _none_ - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:whatsapp` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/index.ts) - - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/whatsapp/setup-entry.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/347baa1e3955ca4722fe46d15b651f41ca6c91cb/extensions/whatsapp/setup-entry.ts) - 🟢 P3 **zalo** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:zalo` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalo/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalo/setup-entry.ts) - 🟢 P3 **zalouser** `package-loader` - contract: Inspector can compile or load TypeScript source entrypoints before registration capture. - id: `package.entrypoint.typescript-loader:zalouser` - evidence: - - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts) + - [extension @ index.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/index.ts) + - [setupEntry @ setup-entry.ts](https://github.com/openclaw/openclaw/blob/8842a5bd43a6874c86645d00dab80611a94d5850/extensions/zalouser/setup-entry.ts) + +- 🟢 P3 **bluebubbles** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:bluebubbles` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec - 🟢 P3 **brave-plugin** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. @@ -7895,98 +6872,261 @@ _none_ - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec -- 🟢 P3 **diagnostics-prometheus** `package-loader` - - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - - id: `package.metadata.install-release:diagnostics-prometheus` - - evidence: - - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec - - openclaw.release.publishToNpm requires openclaw.install.npmSpec - - 🟢 P3 **diffs** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - id: `package.metadata.install-release:diffs` - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec +- 🟢 P3 **discord** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:discord` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **feishu** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:feishu` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + - 🟢 P3 **google-meet** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - id: `package.metadata.install-release:google-meet` - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec +- 🟢 P3 **lobster** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:lobster` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + - 🟢 P3 **memory-lancedb** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - id: `package.metadata.install-release:memory-lancedb` - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec +- 🟢 P3 **msteams** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:msteams` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **nextcloud-talk** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:nextcloud-talk` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **nostr** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:nostr` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + - 🟢 P3 **openclaw-qqbot** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - id: `package.metadata.install-release:openclaw-qqbot` - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec +- 🟢 P3 **synology-chat** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:synology-chat` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **tlon** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:tlon` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **twitch** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:twitch` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **voice-call** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:voice-call` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + - 🟢 P3 **whatsapp** `package-loader` - contract: Release publishing metadata declares canonical ClawHub and npm install specs. - id: `package.metadata.install-release:whatsapp` - evidence: - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec +- 🟢 P3 **zalo** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:zalo` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **zalouser** `package-loader` + - contract: Release publishing metadata declares canonical ClawHub and npm install specs. + - id: `package.metadata.install-release:zalouser` + - evidence: + - openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec + +- 🟢 P3 **bluebubbles** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:bluebubbles` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + - 🟢 P3 **brave-plugin** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:brave-plugin` - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟢 P3 **codex** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:codex` - evidence: - minHostVersion:>=2026.5.1-beta.1 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟢 P3 **diagnostics-otel** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:diagnostics-otel` + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **diagnostics-prometheus** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:diagnostics-prometheus` + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2-beta.2 - 🟢 P3 **diffs** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:diffs` - evidence: - minHostVersion:>=2026.4.30 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟢 P3 **discord** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:discord` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **feishu** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:feishu` + - evidence: + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **google-meet** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:google-meet` - evidence: - minHostVersion:>=2026.4.20 - - buildOpenClawVersion:2026.5.1-beta.2 + - buildOpenClawVersion:2026.5.2-beta.2 -- 🟢 P3 **inworld-tts** `package-loader` +- 🟢 P3 **lobster** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - - id: `package.metadata.min-host-version:inworld-tts` + - id: `package.metadata.min-host-version:lobster` - evidence: - - minHostVersion:>=2026.4.1 - - buildOpenClawVersion:2026.4.1 + - minHostVersion:>=2026.4.25 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **memory-lancedb** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:memory-lancedb` - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟢 P3 **msteams** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:msteams` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **nextcloud-talk** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:nextcloud-talk` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **nostr** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:nostr` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **openclaw-qqbot** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:openclaw-qqbot` - evidence: - minHostVersion:>=2026.4.10 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟢 P3 **synology-chat** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:synology-chat` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **tlon** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:tlon` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **twitch** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:twitch` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **voice-call** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:voice-call` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **whatsapp** `package-loader` - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. - id: `package.metadata.min-host-version:whatsapp` - evidence: - minHostVersion:>=2026.4.25 - - buildOpenClawVersion:2026.5.1-beta.1 + - buildOpenClawVersion:2026.5.2-beta.2 + +- 🟢 P3 **zalo** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:zalo` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 + +- 🟢 P3 **zalouser** `package-loader` + - contract: Install minimum host version matches the OpenClaw package surface targeted by the plugin. + - id: `package.metadata.min-host-version:zalouser` + - evidence: + - minHostVersion:>=2026.4.10 + - buildOpenClawVersion:2026.5.2 - 🟢 P3 **lightclawbot** `package-loader` - contract: Package and OpenClaw manifest versions stay aligned for release compatibility reporting. @@ -8047,62 +7187,6 @@ _none_ - evidence: - [openclaw/plugin-sdk @ index.ts:1](https://github.com/duxiaoxiong/memu-engine-for-OpenClaw/blob/a5a22c5faf21e30d17a1b47635829e7dd0728ae5/index.ts#L1) -- 🟢 P3 **synology-chat** `sdk-alias` - - contract: Root plugin SDK barrel remains importable or has a machine-readable migration path. - - id: `sdk.import.root-barrel-cold-import:synology-chat` - - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/channel.ts#L12) - - [openclaw/plugin-sdk @ runtime.ts:7](https://github.com/openclaw/openclaw/blob/b19a6ee62db342d400a233903adcaf17f67246c5/extensions/synology-chat/src/runtime.ts#L7) - -- 🟢 P3 **tlon** `sdk-alias` - - contract: Root plugin SDK barrel remains importable or has a machine-readable migration path. - - id: `sdk.import.root-barrel-cold-import:tlon` - - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/index.ts#L2) - - [openclaw/plugin-sdk @ channel.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L12) - - [openclaw/plugin-sdk @ channel.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/channel.ts#L7) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ discovery.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/discovery.ts#L1) - - [openclaw/plugin-sdk @ history.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/history.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L2) - - [openclaw/plugin-sdk @ index.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/monitor/index.ts#L3) - - [openclaw/plugin-sdk @ onboarding.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L1) - - [openclaw/plugin-sdk @ onboarding.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/onboarding.ts#L9) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ types.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/types.ts#L1) - - [openclaw/plugin-sdk @ auth.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/auth.ts#L1) - - [openclaw/plugin-sdk @ base-url.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/base-url.ts#L1) - - [openclaw/plugin-sdk @ channel-client.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-client.ts#L1) - - [openclaw/plugin-sdk @ channel-ops.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/channel-ops.ts#L1) - - [openclaw/plugin-sdk @ context.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/context.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L1) - - [openclaw/plugin-sdk @ fetch.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/fetch.ts#L2) - - [openclaw/plugin-sdk @ sse-client.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/tlon/src/urbit/sse-client.ts#L2) - -- 🟢 P3 **twitch** `sdk-alias` - - contract: Root plugin SDK barrel remains importable or has a machine-readable migration path. - - id: `sdk.import.root-barrel-cold-import:twitch` - - evidence: - - [openclaw/plugin-sdk @ index.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L1) - - [openclaw/plugin-sdk @ index.ts:2](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/index.ts#L2) - - [openclaw/plugin-sdk @ config-schema.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config-schema.ts#L1) - - [openclaw/plugin-sdk @ config.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/config.ts#L1) - - [openclaw/plugin-sdk @ monitor.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L8) - - [openclaw/plugin-sdk @ monitor.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/monitor.ts#L9) - - [openclaw/plugin-sdk @ onboarding.ts:12](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L12) - - [openclaw/plugin-sdk @ onboarding.ts:5](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/onboarding.ts#L5) - - [openclaw/plugin-sdk @ plugin.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L8) - - [openclaw/plugin-sdk @ plugin.ts:9](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/plugin.ts#L9) - - [openclaw/plugin-sdk @ probe.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/probe.ts#L3) - - [openclaw/plugin-sdk @ runtime.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/runtime.ts#L1) - - [openclaw/plugin-sdk @ send.ts:8](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/send.ts#L8) - - [openclaw/plugin-sdk @ status.ts:7](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/status.ts#L7) - - [openclaw/plugin-sdk @ test-fixtures.ts:1](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/test-fixtures.ts#L1) - - [openclaw/plugin-sdk @ twitch-client.ts:3](https://github.com/openclaw/openclaw/blob/35a57bc940833a6c1f594b2308e349e5ee0148db/extensions/twitch/src/twitch-client.ts#L3) - - 🟢 P3 **apify** `tool-runtime` - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - id: `tool.registration.schema-capture:apify` @@ -8115,30 +7199,6 @@ _none_ - evidence: - [registerTool @ index.ts:1622](https://github.com/BlockRunAI/ClawRouter/blob/44bc6beced9add67b009cb57d9f84136c5369985/src/index.ts#L1622) -- 🟢 P3 **diffs** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:diffs` - - evidence: - - [registerTool @ plugin.ts:42](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/diffs/src/plugin.ts#L42) - -- 🟢 P3 **feishu** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:feishu` - - evidence: - - [registerTool @ bitable.ts:559](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/bitable.ts#L559) - - [registerTool @ chat.ts:95](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/chat.ts#L95) - - [registerTool @ docx.ts:1262](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1262) - - [registerTool @ docx.ts:1436](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/docx.ts#L1436) - - [registerTool @ drive.ts:186](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/drive.ts#L186) - - [registerTool @ perm.ts:135](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/perm.ts#L135) - - [registerTool @ wiki.ts:174](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/feishu/src/wiki.ts#L174) - -- 🟢 P3 **google-meet** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:google-meet` - - evidence: - - [registerTool @ index.ts:883](https://github.com/openclaw/openclaw/blob/f4ef1bf04e9637958418428db0ff9e75e6698159/extensions/google-meet/index.ts#L883) - - 🟢 P3 **lightclawbot** `tool-runtime` - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - id: `tool.registration.schema-capture:lightclawbot` @@ -8146,39 +7206,12 @@ _none_ - registerTool @ plugins/lightclawbot/.crabpot-package/dist/src/download-tool.js:49 - registerTool @ plugins/lightclawbot/.crabpot-package/dist/src/upload-tool.js:37 -- 🟢 P3 **lobster** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:lobster` - - evidence: - - [registerTool @ index.ts:9](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/lobster/index.ts#L9) - -- 🟢 P3 **memory-lancedb** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:memory-lancedb` - - evidence: - - [registerTool @ index.ts:643](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L643) - - [registerTool @ index.ts:694](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L694) - - [registerTool @ index.ts:757](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/memory-lancedb/index.ts#L757) - - 🟢 P3 **memu-engine** `tool-runtime` - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - id: `tool.registration.schema-capture:memu-engine` - evidence: - [registerTool @ index.ts:1252](https://github.com/duxiaoxiong/memu-engine-for-OpenClaw/blob/a5a22c5faf21e30d17a1b47635829e7dd0728ae5/index.ts#L1252) -- 🟢 P3 **openclaw-qqbot** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:openclaw-qqbot` - - evidence: - - [registerTool @ channel.ts:32](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/channel.ts#L32) - - [registerTool @ remind.ts:90](https://github.com/openclaw/openclaw/blob/355680f1f21af3782c8ffbb5f3cec281dc584af6/extensions/qqbot/src/bridge/tools/remind.ts#L90) - -- 🟢 P3 **voice-call** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:voice-call` - - evidence: - - [registerTool @ index.ts:399](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/voice-call/index.ts#L399) - - 🟢 P3 **web-search-plus** `tool-runtime` - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - id: `tool.registration.schema-capture:web-search-plus` @@ -8186,12 +7219,6 @@ _none_ - [registerTool @ index.ts:815](https://github.com/robbyczgw-cla/web-search-plus-plugin/blob/6e4c765cd04eb449c806748c3130793fe0b05e5e/index.ts#L815) - [registerTool @ index.ts:947](https://github.com/robbyczgw-cla/web-search-plus-plugin/blob/6e4c765cd04eb449c806748c3130793fe0b05e5e/index.ts#L947) -- 🟢 P3 **zalouser** `tool-runtime` - - contract: Registered runtime tools expose stable names, input schemas, and result metadata. - - id: `tool.registration.schema-capture:zalouser` - - evidence: - - [registerTool @ index.ts:16](https://github.com/openclaw/openclaw/blob/2ce6b77205187c76ce7cde6cb0913de14d4452fa/extensions/zalouser/index.ts#L16) - ## Fixture Seam Inventory | Fixture | Priority | Seams | Hooks | Registrations | Manifest contracts | @@ -8211,36 +7238,36 @@ _none_ | honcho | high | memory-runtime, prompt-mutation, gateway-lifecycle, subagent-routing, sdk-compat | agent_end, before_agent_start, before_compaction, before_prompt_build, before_reset, gateway_start, subagent_spawned | definePluginEntry, registerCli, registerMemoryPromptSection, registerMemoryRuntime, registerTool | - | | composio | high | dynamic-tool, mcp, external-api, prompt-mutation, cli | before_prompt_build | registerCli, registerTool | - | | kitchen-sink | high | plugin-api-surface, hook, registration-surface, manifest-contracts, provider-capability, credential-free | after_compaction, after_tool_call, agent_end, agent_turn_prepare, before_agent_finalize, before_agent_reply, before_agent_start, before_compaction, before_dispatch, before_install, before_message_write, before_model_resolve, before_prompt_build, before_reset, before_tool_call, cron_changed, gateway_start, gateway_stop, heartbeat_prompt_contribution, inbound_claim, llm_input, llm_output, message_received, message_sending, message_sent, model_call_ended, model_call_started, reply_dispatch, session_end, session_start, subagent_delivery_target, subagent_ended, subagent_spawned, subagent_spawning, tool_result_persist | registerAgentEventSubscription, registerAgentHarness, registerAgentToolResultMiddleware, registerAutoEnableProbe, registerChannel, registerCli, registerCliBackend, registerCodexAppServerExtensionFactory, registerCommand, registerCompactionProvider, registerConfigMigration, registerContextEngine, registerControlUiDescriptor, registerDetachedTaskRuntime, registerGatewayDiscoveryService, registerGatewayMethod, registerHook, registerHttpRoute, registerImageGenerationProvider, registerInteractiveHandler, registerMediaUnderstandingProvider, registerMemoryCapability, registerMemoryCorpusSupplement, registerMemoryEmbeddingProvider, registerMemoryFlushPlan, registerMemoryPromptSection, registerMemoryPromptSupplement, registerMemoryRuntime, registerMigrationProvider, registerMusicGenerationProvider, registerNodeHostCommand, registerNodeInvokePolicy, registerProvider, registerRealtimeTranscriptionProvider, registerRealtimeVoiceProvider, registerReload, registerRuntimeLifecycle, registerSecurityAuditCollector, registerService, registerSessionExtension, registerSessionSchedulerJob, registerSpeechProvider, registerTextTransforms, registerTool, registerToolMetadata, registerTrustedToolPolicy, registerVideoGenerationProvider, registerWebFetchProvider, registerWebSearchProvider | agentToolResultMiddleware, documentExtractors, embeddedExtensionFactories, externalAuthProviders, imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, migrationProviders, musicGenerationProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, speechProviders, tools, videoGenerationProviders, webContentExtractors, webFetchProviders, webSearchProviders | -| bluebubbles | medium | channel, account-auth, media, macos-bridge, npm-artifact | - | registerChannel | - | -| diagnostics-otel | medium | diagnostics, telemetry, otel-export, service, npm-artifact | - | registerService | - | -| discord | medium | channel, subagent-routing, message-policy, account-auth, npm-artifact | subagent_delivery_target, subagent_ended, subagent_spawning | registerChannel | - | -| lobster | medium | tool, workflow, approval, async-job, npm-artifact | - | registerTool | - | +| bluebubbles | medium | channel, account-auth, media, macos-bridge, npm-artifact | - | defineBundledChannelEntry | - | +| diagnostics-otel | medium | diagnostics, telemetry, otel-export, service, npm-artifact | - | definePluginEntry, registerService | - | +| discord | medium | channel, subagent-routing, message-policy, account-auth, npm-artifact | subagent_delivery_target, subagent_ended, subagent_spawning | defineBundledChannelEntry | - | +| lobster | medium | tool, workflow, approval, async-job, npm-artifact | - | definePluginEntry, registerTool | tools | | matrix | medium | channel, gateway-method, subagent-routing, cli, npm-artifact | - | registerChannel | - | -| msteams | medium | channel, account-auth, enterprise-chat, message-policy, npm-artifact | - | registerChannel | - | -| nextcloud-talk | medium | channel, account-auth, self-hosted-chat, message-policy, npm-artifact | - | registerChannel | - | -| nostr | medium | channel, encrypted-dm, http-routes, account-auth, npm-artifact | - | registerChannel, registerHttpRoute | - | -| voice-call | medium | tool, gateway-method, service, config-migration, cli | - | registerCli, registerGatewayMethod, registerService, registerTool | - | -| zalo | medium | channel, account-auth, media, message-policy, npm-artifact | - | registerChannel | - | -| zalouser | medium | channel, native-integration, account-auth, tool, npm-artifact | - | registerChannel, registerTool | - | -| feishu | medium | channel, subagent-routing, tool, account-auth, npm-artifact | - | registerChannel, registerTool | - | -| tlon | medium | channel, federated-network, account-auth, tool, npm-artifact | - | registerChannel | - | -| twitch | medium | channel, streaming-chat, account-auth, message-policy, npm-artifact | - | registerChannel | - | +| msteams | medium | channel, account-auth, enterprise-chat, message-policy, npm-artifact | - | createChatChannelPlugin, defineBundledChannelEntry | - | +| nextcloud-talk | medium | channel, account-auth, self-hosted-chat, message-policy, npm-artifact | - | createChatChannelPlugin, defineBundledChannelEntry | - | +| nostr | medium | channel, encrypted-dm, http-routes, account-auth, npm-artifact | - | createChatChannelPlugin, defineBundledChannelEntry, registerHttpRoute | - | +| voice-call | medium | tool, gateway-method, service, config-migration, cli | - | definePluginEntry, registerCli, registerConfigMigration, registerGatewayMethod, registerService, registerTool | tools | +| zalo | medium | channel, account-auth, media, message-policy, npm-artifact | - | createChatChannelPlugin, defineBundledChannelEntry | - | +| zalouser | medium | channel, native-integration, account-auth, tool, npm-artifact | - | createChatChannelPlugin, defineBundledChannelEntry, registerTool | tools | +| feishu | medium | channel, subagent-routing, tool, account-auth, npm-artifact | subagent_delivery_target, subagent_ended, subagent_spawning | createChatChannelPlugin, defineBundledChannelEntry, registerTool | tools | +| tlon | medium | channel, federated-network, account-auth, tool, npm-artifact | - | createChatChannelPlugin, defineBundledChannelEntry, registerTool | tools | +| twitch | medium | channel, streaming-chat, account-auth, message-policy, npm-artifact | - | defineBundledChannelEntry | - | | mattermost | medium | channel, http-routes, self-hosted-chat, account-auth, npm-artifact | - | registerChannel | - | -| synology-chat | medium | channel, self-hosted-chat, account-auth, message-policy, npm-artifact | - | registerChannel | - | +| synology-chat | medium | channel, self-hosted-chat, account-auth, message-policy, npm-artifact | - | createChatChannelPlugin, defineBundledChannelEntry | - | | brave-plugin | medium | provider-capability, web-search-provider, external-api, env-auth, npm-artifact | - | definePluginEntry, registerWebSearchProvider | webSearchProviders | | codex | medium | agent-harness, provider-capability, media-understanding, migration-provider, channel-bridge | inbound_claim | definePluginEntry, registerAgentHarness, registerCommand, registerMediaUnderstandingProvider, registerMigrationProvider, registerProvider | mediaUnderstandingProviders, migrationProviders | | diagnostics-prometheus | medium | diagnostics, telemetry, prometheus-export, http-routes, service | - | definePluginEntry, registerHttpRoute, registerService | - | -| google-meet | medium | tool, gateway-method, node-host-command, meeting, cli | - | definePluginEntry, registerCli, registerGatewayMethod, registerNodeHostCommand, registerTool | - | -| diffs | medium | tool, http-routes, prompt-mutation, diff-viewer, npm-artifact | before_prompt_build | definePluginEntry, registerHttpRoute, registerTool | - | -| memory-lancedb | medium | memory-runtime, prompt-mutation, session-lifecycle, vector-store, cli | agent_end, before_prompt_build, session_end | definePluginEntry, registerCli, registerService, registerTool | - | -| openclaw-qqbot | medium | channel, command, tool, media, npm-artifact | - | registerCommand, registerTool | - | -| whatsapp | medium | channel, account-auth, media, message-policy, npm-artifact | - | - | - | +| google-meet | medium | tool, gateway-method, node-host-command, meeting, cli | - | definePluginEntry, registerCli, registerGatewayMethod, registerNodeHostCommand, registerTool | tools | +| diffs | medium | tool, http-routes, prompt-mutation, diff-viewer, npm-artifact | before_prompt_build | definePluginEntry, registerHttpRoute, registerTool | tools | +| memory-lancedb | medium | memory-runtime, prompt-mutation, session-lifecycle, vector-store, cli | agent_end, before_prompt_build, session_end | definePluginEntry, registerCli, registerService, registerTool | tools | +| openclaw-qqbot | medium | channel, command, tool, media, npm-artifact | - | defineBundledChannelEntry, registerCommand, registerTool | tools | +| whatsapp | medium | channel, account-auth, media, message-policy, npm-artifact | - | defineBundledChannelEntry | - | | nemoclaw | high | provider-capability, prompt-mutation, security-audit, process-spawn, command, config-schema | before_agent_start, before_tool_call | registerCommand, registerProvider | - | | memory-tencentdb | high | memory-runtime, prompt-mutation, session-lifecycle, vector-store, cli | agent_end, before_prompt_build, gateway_stop | registerCli, registerTool | - | | ddingtalk | high | channel, media, account-auth, webhook, config-schema | - | defineChannelPluginEntry | - | -| dingtalk-connector | high | channel, streaming, account-auth, interactive-card, gateway-method | - | registerChannel, registerGatewayMethod | - | +| dingtalk-connector | high | channel, streaming, account-auth, interactive-card, gateway-method | - | defineBundledChannelEntry, registerChannel, registerGatewayMethod | - | | mocrane-wecom | high | channel, dynamic-agent-routing, mcp, skills, sdk-compat | before_prompt_build | registerChannel, registerHttpRoute, registerTool | - | -| yuanbao | high | channel, media, command, account-auth, sdk-compat | - | createChatChannelPlugin, registerCommand, registerTool | - | +| yuanbao | high | channel, media, command, account-auth, sdk-compat | - | createChatChannelPlugin, defineBundledChannelEntry, registerCommand, registerTool | - | | openclaw-weixin | high | channel, media, account-auth, pairing, sdk-subpaths | - | registerChannel | - | | lightclawbot | medium | channel, cron, proactive-messaging, media, bundled-deps | - | registerChannel, registerTool | - | | telnyx-sms | medium | channel, media, account-auth, http-routes, cli | - | defineChannelPluginEntry, registerCli, registerHttpRoute | - | @@ -8346,140 +7373,139 @@ _none_ | kitchen-sink | inspector-follow-up | tool-policy | Probe before_tool_call return shapes before changing tool-call approval or block behavior. | before_tool_call | | kitchen-sink | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | | kitchen-sink | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | agentToolResultMiddleware, documentExtractors, embeddedExtensionFactories, externalAuthProviders, imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, migrationProviders, musicGenerationProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, speechProviders, tools, videoGenerationProviders, webContentExtractors, webFetchProviders, webSearchProviders | -| bluebubbles | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/bluebubbles | -| bluebubbles | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/bluebubbles/.crabpot-package/package.json | -| bluebubbles | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/bluebubbles/.crabpot-package/index.ts | -| bluebubbles | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | zod | -| bluebubbles | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | -| bluebubbles | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| diagnostics-otel | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/diagnostics-otel | -| diagnostics-otel | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/diagnostics-otel/.crabpot-package/package.json | +| bluebubbles | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| bluebubbles | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/bluebubbles/.crabpot-package/package.json | +| bluebubbles | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/bluebubbles/.crabpot-package/index.ts, plugins/bluebubbles/.crabpot-package/setup-entry.ts | +| diagnostics-otel | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/diagnostics-otel/.crabpot-package/package.json | | diagnostics-otel | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/diagnostics-otel/.crabpot-package/index.ts | | diagnostics-otel | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @opentelemetry/api, @opentelemetry/api-logs, @opentelemetry/exporter-logs-otlp-proto, @opentelemetry/exporter-metrics-otlp-proto, @opentelemetry/exporter-trace-otlp-proto, @opentelemetry/resources, @opentelemetry/sdk-logs, @opentelemetry/sdk-metrics, @opentelemetry/sdk-node, @opentelemetry/sdk-trace-base, @opentelemetry/semantic-conventions | | diagnostics-otel | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerService | -| discord | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/discord/.crabpot-package/package.json | -| discord | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/discord/.crabpot-package/index.ts | -| discord | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | -| discord | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| lobster | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/lobster | -| lobster | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/lobster/.crabpot-package/package.json | +| discord | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| discord | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/discord/.crabpot-package/package.json | +| discord | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/discord/.crabpot-package/index.ts, plugins/discord/.crabpot-package/setup-entry.ts | +| discord | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @discordjs/voice, discord-api-types, https-proxy-agent, opusscript, typebox, undici, ws | +| discord | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | discord | +| lobster | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| lobster | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/lobster/.crabpot-package/package.json | | lobster | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/lobster/.crabpot-package/index.ts | -| lobster | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @sinclair/typebox | -| lobster | inspector-follow-up | tool-schema | Capture registered tool schemas from plugin register() before judging tool compatibility. | registerTool without manifest contracts.tools | +| lobster | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @clawdbot/lobster, ajv, typebox | +| lobster | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | tools | | matrix | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/matrix | | matrix | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/matrix/.crabpot-package/package.json | | matrix | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/matrix/.crabpot-package/index.ts | | matrix | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @mariozechner/pi-agent-core, @matrix-org/matrix-sdk-crypto-nodejs, @vector-im/matrix-bot-sdk, markdown-it, music-metadata, zod | | matrix | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | | matrix | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| msteams | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/msteams | -| msteams | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/msteams/.crabpot-package/package.json | -| msteams | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/msteams/.crabpot-package/index.ts | -| msteams | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @microsoft/agents-hosting, express | -| msteams | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | -| msteams | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| nextcloud-talk | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/nextcloud-talk | -| nextcloud-talk | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/nextcloud-talk/.crabpot-package/package.json | -| nextcloud-talk | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/nextcloud-talk/.crabpot-package/index.ts | +| msteams | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| msteams | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/msteams/.crabpot-package/package.json | +| msteams | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/msteams/.crabpot-package/index.ts, plugins/msteams/.crabpot-package/setup-entry.ts | +| msteams | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @azure/identity, @microsoft/teams.api, @microsoft/teams.apps, express, jsonwebtoken, jwks-rsa, typebox | +| msteams | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | msteams | +| msteams | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | createChatChannelPlugin | +| nextcloud-talk | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| nextcloud-talk | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/nextcloud-talk/.crabpot-package/package.json | +| nextcloud-talk | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/nextcloud-talk/.crabpot-package/index.ts, plugins/nextcloud-talk/.crabpot-package/setup-entry.ts | | nextcloud-talk | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | zod | -| nextcloud-talk | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | -| nextcloud-talk | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| nostr | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/nostr | -| nostr | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/nostr/.crabpot-package/package.json | -| nostr | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/nostr/.crabpot-package/index.ts | +| nextcloud-talk | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | nextcloud-talk | +| nextcloud-talk | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | createChatChannelPlugin | +| nostr | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| nostr | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/nostr/.crabpot-package/package.json | +| nostr | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/nostr/.crabpot-package/index.ts, plugins/nostr/.crabpot-package/setup-entry.ts | | nostr | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | nostr-tools, zod | -| nostr | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel, registerHttpRoute | -| nostr | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| voice-call | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/voice-call | -| voice-call | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/voice-call/.crabpot-package/package.json | +| nostr | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | nostr | +| nostr | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerHttpRoute | +| nostr | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | createChatChannelPlugin | +| voice-call | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| voice-call | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/voice-call/.crabpot-package/package.json | | voice-call | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/voice-call/.crabpot-package/index.ts | -| voice-call | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @sinclair/typebox, commander, ws, zod | -| voice-call | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerGatewayMethod, registerService | -| voice-call | inspector-follow-up | tool-schema | Capture registered tool schemas from plugin register() before judging tool compatibility. | registerTool without manifest contracts.tools | -| zalo | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/zalo | -| zalo | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/zalo/.crabpot-package/package.json | -| zalo | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/zalo/.crabpot-package/index.ts | -| zalo | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | undici, zod | -| zalo | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | -| zalo | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| zalouser | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/zalouser/.crabpot-package/package.json | -| zalouser | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/zalouser/.crabpot-package/index.ts | -| zalouser | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @sinclair/typebox, zca-js, zod | -| zalouser | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | -| zalouser | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| zalouser | inspector-follow-up | tool-schema | Capture registered tool schemas from plugin register() before judging tool compatibility. | registerTool without manifest contracts.tools | -| feishu | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/feishu | -| feishu | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/feishu/.crabpot-package/package.json | -| feishu | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/feishu/.crabpot-package/index.ts | -| feishu | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @larksuiteoapi/node-sdk, @sinclair/typebox, https-proxy-agent, zod | -| feishu | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | -| feishu | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| feishu | inspector-follow-up | tool-schema | Capture registered tool schemas from plugin register() before judging tool compatibility. | registerTool without manifest contracts.tools | -| tlon | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/tlon/.crabpot-package/package.json | -| tlon | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/tlon/.crabpot-package/index.ts | -| tlon | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @urbit/aura | -| tlon | core-compat-adapter | sdk-import | Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases. | openclaw/plugin-sdk | -| tlon | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | -| tlon | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| twitch | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/twitch/.crabpot-package/package.json | -| twitch | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/twitch/.crabpot-package/index.ts | -| twitch | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @twurple/api, @twurple/auth, @twurple/chat, zod | -| twitch | core-compat-adapter | sdk-import | Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases. | openclaw/plugin-sdk | -| twitch | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | -| twitch | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | +| voice-call | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | commander, typebox, ws | +| voice-call | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | voice-call | +| voice-call | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerConfigMigration, registerGatewayMethod, registerService | +| voice-call | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | tools | +| zalo | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| zalo | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/zalo/.crabpot-package/package.json | +| zalo | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/zalo/.crabpot-package/index.ts, plugins/zalo/.crabpot-package/setup-entry.ts | +| zalo | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | undici | +| zalo | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | zalo | +| zalo | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | createChatChannelPlugin | +| zalouser | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| zalouser | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/zalouser/.crabpot-package/package.json | +| zalouser | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/zalouser/.crabpot-package/index.ts, plugins/zalouser/.crabpot-package/setup-entry.ts | +| zalouser | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | typebox, zca-js | +| zalouser | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | zalouser | +| zalouser | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | createChatChannelPlugin | +| zalouser | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | tools | +| feishu | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| feishu | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/feishu/.crabpot-package/package.json | +| feishu | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/feishu/.crabpot-package/index.ts, plugins/feishu/.crabpot-package/setup-entry.ts | +| feishu | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @larksuiteoapi/node-sdk, typebox | +| feishu | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | feishu | +| feishu | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | createChatChannelPlugin | +| feishu | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | tools | +| tlon | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| tlon | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/tlon/.crabpot-package/package.json | +| tlon | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/tlon/.crabpot-package/index.ts, plugins/tlon/.crabpot-package/setup-entry.ts | +| tlon | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @aws-sdk/client-s3, @aws-sdk/s3-request-presigner, @tloncorp/tlon-skill, @urbit/aura | +| tlon | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | createChatChannelPlugin | +| tlon | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | tools | +| twitch | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| twitch | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/twitch/.crabpot-package/package.json | +| twitch | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/twitch/.crabpot-package/index.ts, plugins/twitch/.crabpot-package/setup-entry.ts | +| twitch | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @twurple/api, @twurple/auth, @twurple/chat | +| twitch | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | twitch | | mattermost | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/mattermost/.crabpot-package/package.json | | mattermost | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/mattermost/.crabpot-package/index.ts | | mattermost | core-compat-adapter | sdk-import | Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases. | openclaw/plugin-sdk | | mattermost | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | | mattermost | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | -| synology-chat | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/synology-chat/.crabpot-package/package.json | -| synology-chat | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/synology-chat/.crabpot-package/index.ts | +| synology-chat | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | +| synology-chat | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/synology-chat/.crabpot-package/package.json | +| synology-chat | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/synology-chat/.crabpot-package/index.ts, plugins/synology-chat/.crabpot-package/setup-entry.ts | | synology-chat | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | zod | -| synology-chat | core-compat-adapter | sdk-import | Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases. | openclaw/plugin-sdk | -| synology-chat | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerChannel | -| synology-chat | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | registerChannel | +| synology-chat | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | synology-chat | +| synology-chat | inspector-follow-up | channel-runtime | Probe channel setup and message envelope contracts before changing channel runtime payloads. | createChatChannelPlugin | | brave-plugin | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | -| brave-plugin | plugin-upstream-fix | package-metadata | Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets. | plugins/brave-plugin/.crabpot-package/package.json | +| brave-plugin | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/brave-plugin/.crabpot-package/package.json | | brave-plugin | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/brave-plugin/.crabpot-package/index.ts | | brave-plugin | core-compat-adapter | env-auth | Keep providerAuthEnvVars compatibility active while the inspector recommends manifest-schema migration upstream. | brave | | brave-plugin | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | webSearchProviders | | codex | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | -| codex | plugin-upstream-fix | package-metadata | Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets. | plugins/codex/.crabpot-package/package.json | +| codex | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/codex/.crabpot-package/package.json | | codex | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/codex/.crabpot-package/index.ts | | codex | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @mariozechner/pi-coding-agent, @openai/codex, ajv, ws, zod | | codex | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerCommand | | codex | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | mediaUnderstandingProviders, migrationProviders | -| diagnostics-prometheus | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec, openclaw.release.publishToNpm requires openclaw.install.npmSpec | +| diagnostics-prometheus | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/diagnostics-prometheus/.crabpot-package/package.json | | diagnostics-prometheus | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/diagnostics-prometheus/.crabpot-package/index.ts | | diagnostics-prometheus | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerHttpRoute, registerService | | google-meet | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | -| google-meet | plugin-upstream-fix | package-metadata | Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets. | plugins/google-meet/.crabpot-package/package.json | +| google-meet | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/google-meet/.crabpot-package/package.json | | google-meet | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/google-meet/.crabpot-package/index.ts | | google-meet | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | commander, typebox | | google-meet | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerGatewayMethod, registerNodeHostCommand | -| google-meet | inspector-follow-up | tool-schema | Capture registered tool schemas from plugin register() before judging tool compatibility. | registerTool without manifest contracts.tools | +| google-meet | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | tools | | diffs | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | -| diffs | plugin-upstream-fix | package-metadata | Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets. | plugins/diffs/.crabpot-package/package.json | +| diffs | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/diffs/.crabpot-package/package.json | | diffs | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/diffs/.crabpot-package/index.ts | | diffs | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @pierre/diffs, @pierre/theme, playwright-core, typebox | | diffs | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerHttpRoute | -| diffs | inspector-follow-up | tool-schema | Capture registered tool schemas from plugin register() before judging tool compatibility. | registerTool without manifest contracts.tools | +| diffs | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | tools | | memory-lancedb | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | -| memory-lancedb | plugin-upstream-fix | package-metadata | Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets. | plugins/memory-lancedb/.crabpot-package/package.json | +| memory-lancedb | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/memory-lancedb/.crabpot-package/package.json | | memory-lancedb | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/memory-lancedb/.crabpot-package/index.ts | | memory-lancedb | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @lancedb/lancedb, openai, typebox | | memory-lancedb | inspector-follow-up | conversation-access | Add synthetic llm_input/llm_output/agent_end probes before tightening hook payloads or redaction behavior. | agent_end | | memory-lancedb | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerService | -| memory-lancedb | inspector-follow-up | tool-schema | Capture registered tool schemas from plugin register() before judging tool compatibility. | registerTool without manifest contracts.tools | +| memory-lancedb | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | tools | | openclaw-qqbot | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | -| openclaw-qqbot | plugin-upstream-fix | package-metadata | Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets. | plugins/openclaw-qqbot/.crabpot-package/package.json | +| openclaw-qqbot | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/openclaw-qqbot/.crabpot-package/package.json | | openclaw-qqbot | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/openclaw-qqbot/.crabpot-package/index.ts, plugins/openclaw-qqbot/.crabpot-package/setup-entry.ts | | openclaw-qqbot | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @tencent-connect/qqbot-connector, mpg123-decoder, silk-wasm, ws, zod | | openclaw-qqbot | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | qqbot | | openclaw-qqbot | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerCommand | -| openclaw-qqbot | inspector-follow-up | tool-schema | Capture registered tool schemas from plugin register() before judging tool compatibility. | registerTool without manifest contracts.tools | +| openclaw-qqbot | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | tools | | whatsapp | plugin-upstream-fix | package-metadata | Ask the plugin to align openclaw.install metadata with openclaw.release publishing targets. | openclaw.release.publishToClawHub requires openclaw.install.clawhubSpec | -| whatsapp | plugin-upstream-fix | package-metadata | Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets. | plugins/whatsapp/.crabpot-package/package.json | +| whatsapp | plugin-upstream-fix | package-metadata | Ask the plugin to publish install.minHostVersion as a semver floor for the OpenClaw package surface it targets. | plugins/whatsapp/.crabpot-package/package.json | | whatsapp | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/whatsapp/.crabpot-package/index.ts, plugins/whatsapp/.crabpot-package/setup-entry.ts | | whatsapp | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @whiskeysockets/baileys, https-proxy-agent, jimp, typebox, undici | | nemoclaw | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/nemoclaw/nemoclaw/package.json | @@ -8488,6 +7514,7 @@ _none_ | nemoclaw | core-compat-adapter | hook-compat | Keep before_agent_start wired while plugin authors migrate to before_model_resolve and before_prompt_build. | before_agent_start @ plugins/nemoclaw/nemoclaw/src/runtime-context.ts:474 | | nemoclaw | inspector-follow-up | registration-capture | Expose or mirror a full public API capture shim before treating these runtime-only seams as covered. | registerCommand | | nemoclaw | inspector-follow-up | tool-policy | Probe before_tool_call return shapes before changing tool-call approval or block behavior. | before_tool_call | +| memory-tencentdb | plugin-upstream-fix | package-metadata | Remove unsupported OpenClaw metadata; native plugins use openclaw.plugin.json plus supported package openclaw fields. | openclaw.bundle | | memory-tencentdb | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/memory-tencentdb/.crabpot-package/index.ts | | memory-tencentdb | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @node-rs/jieba, @tencentdb-agent-memory/tcvdb-text, json5, sqlite-vec, undici, node-llama-cpp | | memory-tencentdb | inspector-follow-up | conversation-access | Add synthetic llm_input/llm_output/agent_end probes before tightening hook payloads or redaction behavior. | agent_end | @@ -8512,6 +7539,7 @@ _none_ | mocrane-wecom | inspector-follow-up | tool-schema | Capture registered tool schemas from plugin register() before judging tool compatibility. | registerTool without manifest contracts.tools | | yuanbao | core-compat-adapter | sdk-alias | Restore the package export alias or publish a versioned migration map before cold-importing old plugins. | openclaw/plugin-sdk/matrix | | yuanbao | plugin-upstream-fix | package-metadata | Ask the plugin to declare the plugin API range it was built against. | plugins/yuanbao/.crabpot-package/package.json | +| yuanbao | plugin-upstream-fix | package-metadata | Remove unsupported OpenClaw metadata; native plugins use openclaw.plugin.json plus supported package openclaw fields. | openclaw.bundle | | yuanbao | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/yuanbao/.crabpot-package/index.ts, plugins/yuanbao/.crabpot-package/setup-entry.ts | | yuanbao | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | cos-nodejs-sdk-v5, protobufjs, uuid, ws | | yuanbao | core-compat-adapter | channel-env | Keep channelEnvVars compatibility active until channel setup metadata has a stable replacement path. | yuanbao | @@ -8571,21 +7599,11 @@ _none_ | apify | inspector-follow-up | cold-import | Install runtime dependencies in an isolated workspace before executing this fixture entrypoint. | @sinclair/typebox, apify-client | | apify | core-compat-adapter | sdk-import | Keep the root SDK barrel stable or expose a machine-readable migration map before removing aliases. | openclaw/plugin-sdk | | apify | inspector-follow-up | tool-schema | Capture registered tool schemas from plugin register() before judging tool compatibility. | registerTool without manifest contracts.tools | -| inworld-tts | plugin-upstream-fix | package-metadata | Ask the plugin to keep install.minHostVersion aligned with the OpenClaw package surface it targets. | plugins/inworld-tts/package.json | | inworld-tts | inspector-follow-up | cold-import | Compile TypeScript source or run a loader before cold-importing this fixture entrypoint. | plugins/inworld-tts/index.ts | | inworld-tts | core-compat-adapter | env-auth | Keep providerAuthEnvVars compatibility active while the inspector recommends manifest-schema migration upstream. | inworld | | inworld-tts | no-action | manifest-contract | Keep checking this declarative contract in default offline CI. | speechProviders | | honcho | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | -| bluebubbles | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | -| diagnostics-otel | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | -| lobster | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | | matrix | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | -| msteams | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | -| nextcloud-talk | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | -| nostr | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | -| voice-call | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | -| zalo | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | -| feishu | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | | yuanbao | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | | clawmetry | core-compat-adapter | compat-registry | Add or restore a machine-readable OpenClaw compat record before changing this plugin-facing behavior. | plugin-sdk-export-aliases | @@ -8680,144 +7698,162 @@ _none_ | kitchen-sink | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerAgentEventSubscription, registerAgentHarness, registerAgentToolResultMiddleware, registerAutoEnableProbe, registerChannel, registerCli, registerCliBackend, registerCodexAppServerExtensionFactory, registerCommand, registerCompactionProvider, registerConfigMigration, registerContextEngine, registerControlUiDescriptor, registerDetachedTaskRuntime, registerGatewayDiscoveryService, registerGatewayMethod, registerHook, registerHttpRoute, registerImageGenerationProvider, registerInteractiveHandler, registerMediaUnderstandingProvider, registerMemoryCapability, registerMemoryCorpusSupplement, registerMemoryEmbeddingProvider, registerMemoryFlushPlan, registerMemoryPromptSection, registerMemoryPromptSupplement, registerMemoryRuntime, registerMigrationProvider, registerMusicGenerationProvider, registerNodeHostCommand, registerNodeInvokePolicy, registerProvider, registerRealtimeTranscriptionProvider, registerRealtimeVoiceProvider, registerReload, registerRuntimeLifecycle, registerSecurityAuditCollector, registerService, registerSessionExtension, registerSessionSchedulerJob, registerSpeechProvider, registerTextTransforms, registerTool, registerToolMetadata, registerTrustedToolPolicy, registerVideoGenerationProvider, registerWebFetchProvider, registerWebSearchProvider | - | | kitchen-sink | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk, openclaw/plugin-sdk/account-core, openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/account-resolution-runtime, openclaw/plugin-sdk/acp-binding-resolve-runtime, openclaw/plugin-sdk/acp-binding-runtime, openclaw/plugin-sdk/acp-runtime, openclaw/plugin-sdk/acp-runtime-backend, openclaw/plugin-sdk/agent-config-primitives, openclaw/plugin-sdk/agent-harness, openclaw/plugin-sdk/agent-harness-runtime, openclaw/plugin-sdk/agent-media-payload, openclaw/plugin-sdk/agent-runtime, openclaw/plugin-sdk/agent-runtime-test-contracts, openclaw/plugin-sdk/allow-from, openclaw/plugin-sdk/allowlist-config-edit, openclaw/plugin-sdk/approval-auth-runtime, openclaw/plugin-sdk/approval-client-runtime, openclaw/plugin-sdk/approval-delivery-runtime, openclaw/plugin-sdk/approval-gateway-runtime, openclaw/plugin-sdk/approval-handler-adapter-runtime, openclaw/plugin-sdk/approval-handler-runtime, openclaw/plugin-sdk/approval-native-runtime, openclaw/plugin-sdk/approval-reply-runtime, openclaw/plugin-sdk/approval-runtime, openclaw/plugin-sdk/async-lock-runtime, openclaw/plugin-sdk/boolean-param, openclaw/plugin-sdk/browser-config, openclaw/plugin-sdk/bundled-channel-config-schema, openclaw/plugin-sdk/channel-actions, openclaw/plugin-sdk/channel-activity-runtime, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-config-primitives, openclaw/plugin-sdk/channel-config-schema, openclaw/plugin-sdk/channel-config-schema-legacy, openclaw/plugin-sdk/channel-config-writes, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-contract-testing, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-envelope, openclaw/plugin-sdk/channel-feedback, openclaw/plugin-sdk/channel-inbound, openclaw/plugin-sdk/channel-inbound-debounce, openclaw/plugin-sdk/channel-inbound-roots, openclaw/plugin-sdk/channel-lifecycle, openclaw/plugin-sdk/channel-location, openclaw/plugin-sdk/channel-logging, openclaw/plugin-sdk/channel-mention-gating, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-pairing-paths, openclaw/plugin-sdk/channel-plugin-common, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-reply-options-runtime, openclaw/plugin-sdk/channel-reply-pipeline, openclaw/plugin-sdk/channel-route, openclaw/plugin-sdk/channel-runtime, openclaw/plugin-sdk/channel-runtime-context, openclaw/plugin-sdk/channel-secret-basic-runtime, openclaw/plugin-sdk/channel-secret-runtime, openclaw/plugin-sdk/channel-secret-tts-runtime, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/channel-setup, openclaw/plugin-sdk/channel-status, openclaw/plugin-sdk/channel-streaming, openclaw/plugin-sdk/channel-target-testing, openclaw/plugin-sdk/channel-targets, openclaw/plugin-sdk/channel-test-helpers, openclaw/plugin-sdk/cli-backend, openclaw/plugin-sdk/cli-runtime, openclaw/plugin-sdk/collection-runtime, openclaw/plugin-sdk/command-auth, openclaw/plugin-sdk/command-auth-native, openclaw/plugin-sdk/command-detection, openclaw/plugin-sdk/command-gating, openclaw/plugin-sdk/command-primitives-runtime, openclaw/plugin-sdk/command-status, openclaw/plugin-sdk/command-status-runtime, openclaw/plugin-sdk/command-surface, openclaw/plugin-sdk/compat, openclaw/plugin-sdk/concurrency-runtime, openclaw/plugin-sdk/config-mutation, openclaw/plugin-sdk/config-runtime, openclaw/plugin-sdk/config-schema, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/context-visibility-runtime, openclaw/plugin-sdk/conversation-binding-runtime, openclaw/plugin-sdk/conversation-runtime, openclaw/plugin-sdk/core, openclaw/plugin-sdk/cron-store-runtime, openclaw/plugin-sdk/dangerous-name-runtime, openclaw/plugin-sdk/dedupe-runtime, openclaw/plugin-sdk/delivery-queue-runtime, openclaw/plugin-sdk/device-bootstrap, openclaw/plugin-sdk/diagnostic-runtime, openclaw/plugin-sdk/direct-dm, openclaw/plugin-sdk/direct-dm-access, openclaw/plugin-sdk/direct-dm-guard-policy, openclaw/plugin-sdk/directory-config-runtime, openclaw/plugin-sdk/directory-runtime, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/document-extractor, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/extension-shared, openclaw/plugin-sdk/fetch-runtime, openclaw/plugin-sdk/file-access-runtime, openclaw/plugin-sdk/file-lock, openclaw/plugin-sdk/gateway-runtime, openclaw/plugin-sdk/global-singleton, openclaw/plugin-sdk/group-access, openclaw/plugin-sdk/group-activation, openclaw/plugin-sdk/heartbeat-runtime, openclaw/plugin-sdk/hook-runtime, openclaw/plugin-sdk/host-runtime, openclaw/plugin-sdk/image-generation, openclaw/plugin-sdk/image-generation-core, openclaw/plugin-sdk/image-generation-runtime, openclaw/plugin-sdk/inbound-envelope, openclaw/plugin-sdk/inbound-reply-dispatch, openclaw/plugin-sdk/infra-runtime, openclaw/plugin-sdk/interactive-runtime, openclaw/plugin-sdk/json-store, openclaw/plugin-sdk/keyed-async-queue, openclaw/plugin-sdk/lazy-runtime, openclaw/plugin-sdk/lmstudio, openclaw/plugin-sdk/lmstudio-runtime, openclaw/plugin-sdk/logging-core, openclaw/plugin-sdk/markdown-table-runtime, openclaw/plugin-sdk/media-generation-runtime, openclaw/plugin-sdk/media-generation-runtime-shared, openclaw/plugin-sdk/media-mime, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/media-store, openclaw/plugin-sdk/media-understanding, openclaw/plugin-sdk/media-understanding-runtime, openclaw/plugin-sdk/memory-core-engine-runtime, openclaw/plugin-sdk/memory-core-host-engine-embeddings, openclaw/plugin-sdk/memory-core-host-engine-foundation, openclaw/plugin-sdk/memory-core-host-engine-qmd, openclaw/plugin-sdk/memory-core-host-engine-storage, openclaw/plugin-sdk/memory-core-host-events, openclaw/plugin-sdk/memory-core-host-multimodal, openclaw/plugin-sdk/memory-core-host-query, openclaw/plugin-sdk/memory-core-host-runtime-cli, openclaw/plugin-sdk/memory-core-host-runtime-core, openclaw/plugin-sdk/memory-core-host-runtime-files, openclaw/plugin-sdk/memory-core-host-secret, openclaw/plugin-sdk/memory-core-host-status, openclaw/plugin-sdk/memory-host-core, openclaw/plugin-sdk/memory-host-events, openclaw/plugin-sdk/memory-host-files, openclaw/plugin-sdk/memory-host-markdown, openclaw/plugin-sdk/memory-host-search, openclaw/plugin-sdk/memory-host-status, openclaw/plugin-sdk/messaging-targets, openclaw/plugin-sdk/migration, openclaw/plugin-sdk/migration-runtime, openclaw/plugin-sdk/model-session-runtime, openclaw/plugin-sdk/models-provider-runtime, openclaw/plugin-sdk/music-generation, openclaw/plugin-sdk/music-generation-core, openclaw/plugin-sdk/native-command-config-runtime, openclaw/plugin-sdk/native-command-registry, openclaw/plugin-sdk/number-runtime, openclaw/plugin-sdk/outbound-media, openclaw/plugin-sdk/outbound-runtime, openclaw/plugin-sdk/outbound-send-deps, openclaw/plugin-sdk/param-readers, openclaw/plugin-sdk/persistent-dedupe, openclaw/plugin-sdk/plugin-config-runtime, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/plugin-runtime, openclaw/plugin-sdk/plugin-test-api, openclaw/plugin-sdk/plugin-test-contracts, openclaw/plugin-sdk/plugin-test-runtime, openclaw/plugin-sdk/poll-runtime, openclaw/plugin-sdk/process-runtime, openclaw/plugin-sdk/provider-auth, openclaw/plugin-sdk/provider-auth-api-key, openclaw/plugin-sdk/provider-auth-login, openclaw/plugin-sdk/provider-auth-result, openclaw/plugin-sdk/provider-auth-runtime, openclaw/plugin-sdk/provider-catalog-runtime, openclaw/plugin-sdk/provider-catalog-shared, openclaw/plugin-sdk/provider-entry, openclaw/plugin-sdk/provider-env-vars, openclaw/plugin-sdk/provider-http, openclaw/plugin-sdk/provider-http-test-mocks, openclaw/plugin-sdk/provider-model-shared, openclaw/plugin-sdk/provider-model-types, openclaw/plugin-sdk/provider-onboard, openclaw/plugin-sdk/provider-selection-runtime, openclaw/plugin-sdk/provider-setup, openclaw/plugin-sdk/provider-stream, openclaw/plugin-sdk/provider-stream-family, openclaw/plugin-sdk/provider-stream-shared, openclaw/plugin-sdk/provider-test-contracts, openclaw/plugin-sdk/provider-tools, openclaw/plugin-sdk/provider-transport-runtime, openclaw/plugin-sdk/provider-usage, openclaw/plugin-sdk/provider-web-fetch, openclaw/plugin-sdk/provider-web-fetch-contract, openclaw/plugin-sdk/provider-web-search, openclaw/plugin-sdk/provider-web-search-config-contract, openclaw/plugin-sdk/provider-web-search-contract, openclaw/plugin-sdk/provider-zai-endpoint, openclaw/plugin-sdk/proxy-capture, openclaw/plugin-sdk/qa-runner-runtime, openclaw/plugin-sdk/realtime-transcription, openclaw/plugin-sdk/realtime-voice, openclaw/plugin-sdk/reply-chunking, openclaw/plugin-sdk/reply-dedupe, openclaw/plugin-sdk/reply-dispatch-runtime, openclaw/plugin-sdk/reply-history, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/reply-reference, openclaw/plugin-sdk/reply-runtime, openclaw/plugin-sdk/request-url, openclaw/plugin-sdk/response-limit-runtime, openclaw/plugin-sdk/retry-runtime, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/run-command, openclaw/plugin-sdk/runtime, openclaw/plugin-sdk/runtime-config-snapshot, openclaw/plugin-sdk/runtime-doctor, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/runtime-fetch, openclaw/plugin-sdk/runtime-group-policy, openclaw/plugin-sdk/runtime-logger, openclaw/plugin-sdk/runtime-secret-resolution, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/sandbox, openclaw/plugin-sdk/secret-file-runtime, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/secret-input-runtime, openclaw/plugin-sdk/secret-ref-runtime, openclaw/plugin-sdk/secure-random-runtime, openclaw/plugin-sdk/security-runtime, openclaw/plugin-sdk/self-hosted-provider-setup, openclaw/plugin-sdk/session-binding-runtime, openclaw/plugin-sdk/session-key-runtime, openclaw/plugin-sdk/session-store-runtime, openclaw/plugin-sdk/session-transcript-hit, openclaw/plugin-sdk/session-visibility, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/setup-adapter-runtime, openclaw/plugin-sdk/setup-runtime, openclaw/plugin-sdk/setup-tools, openclaw/plugin-sdk/simple-completion-runtime, openclaw/plugin-sdk/skill-commands-runtime, openclaw/plugin-sdk/skills-runtime, openclaw/plugin-sdk/speech, openclaw/plugin-sdk/speech-core, openclaw/plugin-sdk/ssrf-dispatcher, openclaw/plugin-sdk/ssrf-policy, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/state-paths, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/string-coerce-runtime, openclaw/plugin-sdk/string-normalization-runtime, openclaw/plugin-sdk/system-event-runtime, openclaw/plugin-sdk/talk-config-runtime, openclaw/plugin-sdk/target-resolver-runtime, openclaw/plugin-sdk/telegram-account, openclaw/plugin-sdk/telegram-command-config, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/test-env, openclaw/plugin-sdk/test-fixtures, openclaw/plugin-sdk/test-node-mocks, openclaw/plugin-sdk/testing, openclaw/plugin-sdk/text-autolink-runtime, openclaw/plugin-sdk/text-chunking, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/thread-bindings-runtime, openclaw/plugin-sdk/thread-bindings-session-runtime, openclaw/plugin-sdk/time-runtime, openclaw/plugin-sdk/tool-payload, openclaw/plugin-sdk/tool-send, openclaw/plugin-sdk/transport-ready-runtime, openclaw/plugin-sdk/tts-runtime, openclaw/plugin-sdk/video-generation, openclaw/plugin-sdk/video-generation-core, openclaw/plugin-sdk/video-generation-runtime, openclaw/plugin-sdk/web-content-extractor, openclaw/plugin-sdk/web-media, openclaw/plugin-sdk/webhook-ingress, openclaw/plugin-sdk/webhook-path, openclaw/plugin-sdk/webhook-request-guards, openclaw/plugin-sdk/webhook-targets, openclaw/plugin-sdk/windows-spawn, openclaw/plugin-sdk/zod | - | | kitchen-sink | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/kitchen-sink/openclaw.plugin.json | - | -| kitchen-sink | package-metadata | log | selected package metadata for plugin contract checks | plugins/kitchen-sink/package.json, @openclaw/kitchen-sink, version:0.2.2 | - | +| kitchen-sink | package-metadata | log | selected package metadata for plugin contract checks | plugins/kitchen-sink/package.json, @openclaw/kitchen-sink, version:0.2.5 | - | | kitchen-sink | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | agentToolResultMiddleware, documentExtractors, embeddedExtensionFactories, externalAuthProviders, imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, migrationProviders, musicGenerationProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, speechProviders, tools, videoGenerationProviders, webContentExtractors, webFetchProviders, webSearchProviders | - | -| bluebubbles | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerChannel | - | +| bluebubbles | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:defineBundledChannelEntry | - | | bluebubbles | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| bluebubbles | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel | - | +| bluebubbles | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - | +| bluebubbles | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/agent-runtime, openclaw/plugin-sdk/allow-from, openclaw/plugin-sdk/boolean-param, openclaw/plugin-sdk/channel-actions, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-config-schema, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-feedback, openclaw/plugin-sdk/channel-inbound, openclaw/plugin-sdk/channel-lifecycle, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-reply-pipeline, openclaw/plugin-sdk/channel-secret-basic-runtime, openclaw/plugin-sdk/channel-status, openclaw/plugin-sdk/channel-streaming, openclaw/plugin-sdk/channel-targets, openclaw/plugin-sdk/channel-test-helpers, openclaw/plugin-sdk/command-auth, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/context-visibility-runtime, openclaw/plugin-sdk/conversation-runtime, openclaw/plugin-sdk/core, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/file-access-runtime, openclaw/plugin-sdk/json-store, openclaw/plugin-sdk/lazy-runtime, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/number-runtime, openclaw/plugin-sdk/persistent-dedupe, openclaw/plugin-sdk/reply-history, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/request-url, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/runtime-fetch, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/security-runtime, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/state-paths, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/string-coerce-runtime, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/thread-bindings-runtime, openclaw/plugin-sdk/tool-send, openclaw/plugin-sdk/webhook-ingress, openclaw/plugin-sdk/webhook-path, openclaw/plugin-sdk/zod | - | | bluebubbles | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/bluebubbles/.crabpot-package/openclaw.plugin.json | - | -| bluebubbles | package-metadata | log | selected package metadata for plugin contract checks | plugins/bluebubbles/.crabpot-package/package.json, @openclaw/bluebubbles, version:2026.3.13 | - | -| diagnostics-otel | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerService | - | +| bluebubbles | package-metadata | log | selected package metadata for plugin contract checks | plugins/bluebubbles/.crabpot-package/package.json, @openclaw/bluebubbles, version:2026.5.2 | - | +| diagnostics-otel | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:definePluginEntry, registration:registerService | - | | diagnostics-otel | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | diagnostics-otel | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerService | - | +| diagnostics-otel | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/diagnostic-runtime, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/security-runtime | - | | diagnostics-otel | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/diagnostics-otel/.crabpot-package/openclaw.plugin.json | - | -| diagnostics-otel | package-metadata | log | selected package metadata for plugin contract checks | plugins/diagnostics-otel/.crabpot-package/package.json, @openclaw/diagnostics-otel, version:2026.3.13 | - | -| discord | seam-inventory | log | observed 3 hooks, 1 registrations, and 0 manifest contracts | hook:subagent_delivery_target, hook:subagent_ended, hook:subagent_spawning, registration:registerChannel | - | +| diagnostics-otel | package-metadata | log | selected package metadata for plugin contract checks | plugins/diagnostics-otel/.crabpot-package/package.json, @openclaw/diagnostics-otel, version:2026.5.2 | - | +| discord | seam-inventory | log | observed 3 hooks, 1 registrations, and 0 manifest contracts | hook:subagent_delivery_target, hook:subagent_ended, hook:subagent_spawning, registration:defineBundledChannelEntry | - | | discord | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | subagent_delivery_target, subagent_ended, subagent_spawning | - | -| discord | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel | - | -| discord | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/compat, openclaw/plugin-sdk/discord | - | +| discord | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - | +| discord | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/acp-runtime, openclaw/plugin-sdk/agent-runtime, openclaw/plugin-sdk/allow-from, openclaw/plugin-sdk/allowlist-config-edit, openclaw/plugin-sdk/approval-auth-runtime, openclaw/plugin-sdk/approval-client-runtime, openclaw/plugin-sdk/approval-delivery-runtime, openclaw/plugin-sdk/approval-gateway-runtime, openclaw/plugin-sdk/approval-handler-adapter-runtime, openclaw/plugin-sdk/approval-handler-runtime, openclaw/plugin-sdk/approval-native-runtime, openclaw/plugin-sdk/approval-reply-runtime, openclaw/plugin-sdk/approval-runtime, openclaw/plugin-sdk/boolean-param, openclaw/plugin-sdk/bundled-channel-config-schema, openclaw/plugin-sdk/channel-actions, openclaw/plugin-sdk/channel-activity-runtime, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-feedback, openclaw/plugin-sdk/channel-inbound, openclaw/plugin-sdk/channel-lifecycle, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-plugin-common, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-reply-pipeline, openclaw/plugin-sdk/channel-runtime-context, openclaw/plugin-sdk/channel-secret-basic-runtime, openclaw/plugin-sdk/channel-secret-tts-runtime, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/channel-status, openclaw/plugin-sdk/channel-streaming, openclaw/plugin-sdk/channel-targets, openclaw/plugin-sdk/command-auth, openclaw/plugin-sdk/command-auth-native, openclaw/plugin-sdk/command-detection, openclaw/plugin-sdk/command-status-runtime, openclaw/plugin-sdk/command-surface, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/context-visibility-runtime, openclaw/plugin-sdk/conversation-binding-runtime, openclaw/plugin-sdk/conversation-runtime, openclaw/plugin-sdk/dangerous-name-runtime, openclaw/plugin-sdk/directory-config-runtime, openclaw/plugin-sdk/directory-runtime, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/fetch-runtime, openclaw/plugin-sdk/file-lock, openclaw/plugin-sdk/gateway-runtime, openclaw/plugin-sdk/global-singleton, openclaw/plugin-sdk/group-access, openclaw/plugin-sdk/inbound-reply-dispatch, openclaw/plugin-sdk/interactive-runtime, openclaw/plugin-sdk/json-store, openclaw/plugin-sdk/lazy-runtime, openclaw/plugin-sdk/markdown-table-runtime, openclaw/plugin-sdk/media-mime, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/messaging-targets, openclaw/plugin-sdk/model-session-runtime, openclaw/plugin-sdk/models-provider-runtime, openclaw/plugin-sdk/native-command-config-runtime, openclaw/plugin-sdk/native-command-registry, openclaw/plugin-sdk/outbound-media, openclaw/plugin-sdk/outbound-runtime, openclaw/plugin-sdk/outbound-send-deps, openclaw/plugin-sdk/persistent-dedupe, openclaw/plugin-sdk/plugin-config-runtime, openclaw/plugin-sdk/plugin-runtime, openclaw/plugin-sdk/plugin-test-runtime, openclaw/plugin-sdk/provider-model-shared, openclaw/plugin-sdk/proxy-capture, openclaw/plugin-sdk/reply-chunking, openclaw/plugin-sdk/reply-dispatch-runtime, openclaw/plugin-sdk/reply-history, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/reply-reference, openclaw/plugin-sdk/reply-runtime, openclaw/plugin-sdk/request-url, openclaw/plugin-sdk/retry-runtime, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime-config-snapshot, openclaw/plugin-sdk/runtime-doctor, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/runtime-group-policy, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/security-runtime, openclaw/plugin-sdk/session-store-runtime, openclaw/plugin-sdk/setup-adapter-runtime, openclaw/plugin-sdk/setup-runtime, openclaw/plugin-sdk/setup-tools, openclaw/plugin-sdk/simple-completion-runtime, openclaw/plugin-sdk/speech, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/state-paths, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/string-normalization-runtime, openclaw/plugin-sdk/system-event-runtime, openclaw/plugin-sdk/target-resolver-runtime, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/tool-send, openclaw/plugin-sdk/web-media | - | | discord | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/discord/.crabpot-package/openclaw.plugin.json | - | -| discord | package-metadata | log | selected package metadata for plugin contract checks | plugins/discord/.crabpot-package/package.json, @openclaw/discord, version:2026.3.13 | - | -| lobster | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerTool | - | +| discord | package-metadata | log | selected package metadata for plugin contract checks | plugins/discord/.crabpot-package/package.json, @openclaw/discord, version:2026.5.2 | - | +| lobster | seam-inventory | log | observed 0 hooks, 2 registrations, and 1 manifest contracts | registration:definePluginEntry, registration:registerTool, manifestContract:tools | - | | lobster | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | lobster | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerTool | - | +| lobster | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/core, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/windows-spawn | - | | lobster | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/lobster/.crabpot-package/openclaw.plugin.json | - | -| lobster | package-metadata | log | selected package metadata for plugin contract checks | plugins/lobster/.crabpot-package/package.json, @openclaw/lobster, version:2026.3.13 | - | +| lobster | package-metadata | log | selected package metadata for plugin contract checks | plugins/lobster/.crabpot-package/package.json, @openclaw/lobster, version:2026.5.2 | - | +| lobster | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - | | matrix | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerChannel | - | | matrix | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | matrix | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel | - | | matrix | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/matrix/.crabpot-package/openclaw.plugin.json | - | | matrix | package-metadata | log | selected package metadata for plugin contract checks | plugins/matrix/.crabpot-package/package.json, @openclaw/matrix, version:2026.3.13 | - | -| msteams | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerChannel | - | +| msteams | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:createChatChannelPlugin, registration:defineBundledChannelEntry | - | | msteams | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| msteams | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel | - | +| msteams | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - | +| msteams | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/allow-from, openclaw/plugin-sdk/approval-auth-runtime, openclaw/plugin-sdk/bundled-channel-config-schema, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-inbound, openclaw/plugin-sdk/channel-lifecycle, openclaw/plugin-sdk/channel-logging, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-reply-pipeline, openclaw/plugin-sdk/channel-secret-basic-runtime, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/channel-status, openclaw/plugin-sdk/channel-targets, openclaw/plugin-sdk/command-gating, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/context-visibility-runtime, openclaw/plugin-sdk/dangerous-name-runtime, openclaw/plugin-sdk/directory-runtime, openclaw/plugin-sdk/file-lock, openclaw/plugin-sdk/group-access, openclaw/plugin-sdk/inbound-reply-dispatch, openclaw/plugin-sdk/interactive-runtime, openclaw/plugin-sdk/json-store, openclaw/plugin-sdk/lazy-runtime, openclaw/plugin-sdk/markdown-table-runtime, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/outbound-media, openclaw/plugin-sdk/outbound-runtime, openclaw/plugin-sdk/outbound-send-deps, openclaw/plugin-sdk/provider-auth, openclaw/plugin-sdk/provider-auth-runtime, openclaw/plugin-sdk/reply-chunking, openclaw/plugin-sdk/reply-history, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/runtime-group-policy, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/setup-tools, openclaw/plugin-sdk/ssrf-policy, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/string-normalization-runtime, openclaw/plugin-sdk/text-chunking, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/web-media, openclaw/plugin-sdk/webhook-ingress | - | | msteams | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/msteams/.crabpot-package/openclaw.plugin.json | - | -| msteams | package-metadata | log | selected package metadata for plugin contract checks | plugins/msteams/.crabpot-package/package.json, @openclaw/msteams, version:2026.3.13 | - | -| nextcloud-talk | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerChannel | - | +| msteams | package-metadata | log | selected package metadata for plugin contract checks | plugins/msteams/.crabpot-package/package.json, @openclaw/msteams, version:2026.5.2 | - | +| nextcloud-talk | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:createChatChannelPlugin, registration:defineBundledChannelEntry | - | | nextcloud-talk | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| nextcloud-talk | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel | - | +| nextcloud-talk | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - | +| nextcloud-talk | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-core, openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/allow-from, openclaw/plugin-sdk/approval-auth-runtime, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-config-schema, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-lifecycle, openclaw/plugin-sdk/channel-logging, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-plugin-common, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-secret-basic-runtime, openclaw/plugin-sdk/channel-setup, openclaw/plugin-sdk/channel-targets, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/extension-shared, openclaw/plugin-sdk/group-access, openclaw/plugin-sdk/inbound-reply-dispatch, openclaw/plugin-sdk/markdown-table-runtime, openclaw/plugin-sdk/persistent-dedupe, openclaw/plugin-sdk/plugin-config-runtime, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime, openclaw/plugin-sdk/runtime-group-policy, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/secret-file-runtime, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/setup-runtime, openclaw/plugin-sdk/setup-tools, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/webhook-ingress, openclaw/plugin-sdk/zod | - | | nextcloud-talk | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/nextcloud-talk/.crabpot-package/openclaw.plugin.json | - | -| nextcloud-talk | package-metadata | log | selected package metadata for plugin contract checks | plugins/nextcloud-talk/.crabpot-package/package.json, @openclaw/nextcloud-talk, version:2026.3.13 | - | -| nostr | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:registerChannel, registration:registerHttpRoute | - | +| nextcloud-talk | package-metadata | log | selected package metadata for plugin contract checks | plugins/nextcloud-talk/.crabpot-package/package.json, @openclaw/nextcloud-talk, version:2026.5.2 | - | +| nostr | seam-inventory | log | observed 0 hooks, 3 registrations, and 0 manifest contracts | registration:createChatChannelPlugin, registration:defineBundledChannelEntry, registration:registerHttpRoute | - | | nostr | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| nostr | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel, registerHttpRoute | - | +| nostr | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerHttpRoute | - | +| nostr | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-config-primitives, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-plugin-common, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/channel-setup, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/core, openclaw/plugin-sdk/direct-dm, openclaw/plugin-sdk/direct-dm-access, openclaw/plugin-sdk/direct-dm-guard-policy, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/extension-shared, openclaw/plugin-sdk/plugin-runtime, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/setup-runtime, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/webhook-ingress, openclaw/plugin-sdk/webhook-request-guards, openclaw/plugin-sdk/zod | - | | nostr | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/nostr/.crabpot-package/openclaw.plugin.json | - | -| nostr | package-metadata | log | selected package metadata for plugin contract checks | plugins/nostr/.crabpot-package/package.json, @openclaw/nostr, version:2026.3.13 | - | -| voice-call | seam-inventory | log | observed 0 hooks, 4 registrations, and 0 manifest contracts | registration:registerCli, registration:registerGatewayMethod, registration:registerService, registration:registerTool | - | +| nostr | package-metadata | log | selected package metadata for plugin contract checks | plugins/nostr/.crabpot-package/package.json, @openclaw/nostr, version:2026.5.2 | - | +| voice-call | seam-inventory | log | observed 0 hooks, 6 registrations, and 1 manifest contracts | registration:definePluginEntry, registration:registerCli, registration:registerConfigMigration, registration:registerGatewayMethod, registration:registerService, registration:registerTool, manifestContract:tools | - | | voice-call | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| voice-call | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCli, registerGatewayMethod, registerService, registerTool | - | +| voice-call | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCli, registerConfigMigration, registerGatewayMethod, registerService, registerTool | - | +| voice-call | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/gateway-runtime, openclaw/plugin-sdk/memory-host-search, openclaw/plugin-sdk/model-session-runtime, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/provider-selection-runtime, openclaw/plugin-sdk/realtime-transcription, openclaw/plugin-sdk/realtime-voice, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/security-runtime, openclaw/plugin-sdk/session-store-runtime, openclaw/plugin-sdk/speech, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/tts-runtime, openclaw/plugin-sdk/webhook-ingress, openclaw/plugin-sdk/webhook-request-guards, openclaw/plugin-sdk/zod | - | | voice-call | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/voice-call/.crabpot-package/openclaw.plugin.json | - | -| voice-call | package-metadata | log | selected package metadata for plugin contract checks | plugins/voice-call/.crabpot-package/package.json, @openclaw/voice-call, version:2026.3.13 | - | -| zalo | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerChannel | - | +| voice-call | package-metadata | log | selected package metadata for plugin contract checks | plugins/voice-call/.crabpot-package/package.json, @openclaw/voice-call, version:2026.5.2 | - | +| voice-call | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - | +| zalo | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:createChatChannelPlugin, registration:defineBundledChannelEntry | - | | zalo | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| zalo | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel | - | +| zalo | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - | +| zalo | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/allow-from, openclaw/plugin-sdk/approval-auth-runtime, openclaw/plugin-sdk/channel-actions, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-config-schema, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-feedback, openclaw/plugin-sdk/channel-lifecycle, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-reply-pipeline, openclaw/plugin-sdk/channel-secret-basic-runtime, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/channel-status, openclaw/plugin-sdk/channel-test-helpers, openclaw/plugin-sdk/command-auth, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/conversation-runtime, openclaw/plugin-sdk/core, openclaw/plugin-sdk/directory-runtime, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/extension-shared, openclaw/plugin-sdk/group-access, openclaw/plugin-sdk/inbound-envelope, openclaw/plugin-sdk/lazy-runtime, openclaw/plugin-sdk/outbound-media, openclaw/plugin-sdk/persistent-dedupe, openclaw/plugin-sdk/plugin-test-runtime, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/reply-runtime, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/runtime-group-policy, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/security-runtime, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/text-chunking, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/tool-send, openclaw/plugin-sdk/webhook-ingress, openclaw/plugin-sdk/zod | - | | zalo | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/zalo/.crabpot-package/openclaw.plugin.json | - | -| zalo | package-metadata | log | selected package metadata for plugin contract checks | plugins/zalo/.crabpot-package/package.json, @openclaw/zalo, version:2026.3.13 | - | -| zalouser | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:registerChannel, registration:registerTool | - | +| zalo | package-metadata | log | selected package metadata for plugin contract checks | plugins/zalo/.crabpot-package/package.json, @openclaw/zalo, version:2026.5.2 | - | +| zalouser | seam-inventory | log | observed 0 hooks, 3 registrations, and 1 manifest contracts | registration:createChatChannelPlugin, registration:defineBundledChannelEntry, registration:registerTool, manifestContract:tools | - | | zalouser | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| zalouser | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel, registerTool | - | -| zalouser | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/compat, openclaw/plugin-sdk/zalouser | - | +| zalouser | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerTool | - | +| zalouser | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/allow-from, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-config-schema, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-inbound, openclaw/plugin-sdk/channel-lifecycle, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-reply-pipeline, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/command-auth, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/conversation-runtime, openclaw/plugin-sdk/core, openclaw/plugin-sdk/dangerous-name-runtime, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/extension-shared, openclaw/plugin-sdk/group-access, openclaw/plugin-sdk/lazy-runtime, openclaw/plugin-sdk/outbound-media, openclaw/plugin-sdk/reply-history, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/reply-runtime, openclaw/plugin-sdk/runtime, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/runtime-group-policy, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/setup-runtime, openclaw/plugin-sdk/state-paths, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/text-chunking, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/zod | - | | zalouser | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/zalouser/.crabpot-package/openclaw.plugin.json | - | -| zalouser | package-metadata | log | selected package metadata for plugin contract checks | plugins/zalouser/.crabpot-package/package.json, @openclaw/zalouser, version:2026.3.13 | - | -| feishu | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:registerChannel, registration:registerTool | - | -| feishu | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| feishu | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel, registerTool | - | +| zalouser | package-metadata | log | selected package metadata for plugin contract checks | plugins/zalouser/.crabpot-package/package.json, @openclaw/zalouser, version:2026.5.2 | - | +| zalouser | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - | +| feishu | seam-inventory | log | observed 3 hooks, 3 registrations, and 1 manifest contracts | hook:subagent_delivery_target, hook:subagent_ended, hook:subagent_spawning, registration:createChatChannelPlugin, registration:defineBundledChannelEntry, registration:registerTool, manifestContract:tools | - | +| feishu | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | subagent_delivery_target, subagent_ended, subagent_spawning | - | +| feishu | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerTool | - | +| feishu | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/agent-media-payload, openclaw/plugin-sdk/allow-from, openclaw/plugin-sdk/approval-auth-runtime, openclaw/plugin-sdk/channel-actions, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-config-primitives, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-feedback, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-reply-pipeline, openclaw/plugin-sdk/channel-secret-basic-runtime, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/channel-status, openclaw/plugin-sdk/channel-test-helpers, openclaw/plugin-sdk/command-primitives-runtime, openclaw/plugin-sdk/config-mutation, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/context-visibility-runtime, openclaw/plugin-sdk/conversation-runtime, openclaw/plugin-sdk/core, openclaw/plugin-sdk/directory-runtime, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/extension-shared, openclaw/plugin-sdk/group-access, openclaw/plugin-sdk/interactive-runtime, openclaw/plugin-sdk/json-store, openclaw/plugin-sdk/lazy-runtime, openclaw/plugin-sdk/markdown-table-runtime, openclaw/plugin-sdk/media-mime, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/outbound-runtime, openclaw/plugin-sdk/persistent-dedupe, openclaw/plugin-sdk/plugin-test-runtime, openclaw/plugin-sdk/provider-auth, openclaw/plugin-sdk/reply-history, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime, openclaw/plugin-sdk/runtime-group-policy, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/security-runtime, openclaw/plugin-sdk/session-store-runtime, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/setup-runtime, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/text-chunking, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/webhook-ingress, openclaw/plugin-sdk/webhook-request-guards, openclaw/plugin-sdk/zod | - | | feishu | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/feishu/.crabpot-package/openclaw.plugin.json | - | -| feishu | package-metadata | log | selected package metadata for plugin contract checks | plugins/feishu/.crabpot-package/package.json, @openclaw/feishu, version:2026.3.13 | - | -| tlon | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerChannel | - | +| feishu | package-metadata | log | selected package metadata for plugin contract checks | plugins/feishu/.crabpot-package/package.json, @openclaw/feishu, version:2026.5.2 | - | +| feishu | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - | +| tlon | seam-inventory | log | observed 0 hooks, 3 registrations, and 1 manifest contracts | registration:createChatChannelPlugin, registration:defineBundledChannelEntry, registration:registerTool, manifestContract:tools | - | | tlon | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| tlon | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel | - | -| tlon | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk | - | +| tlon | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerTool | - | +| tlon | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-config-schema, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/core, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/lazy-runtime, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/outbound-runtime, openclaw/plugin-sdk/plugin-runtime, openclaw/plugin-sdk/reply-runtime, openclaw/plugin-sdk/runtime, openclaw/plugin-sdk/runtime-logger, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/zod | - | | tlon | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/tlon/.crabpot-package/openclaw.plugin.json | - | -| tlon | package-metadata | log | selected package metadata for plugin contract checks | plugins/tlon/.crabpot-package/package.json, @openclaw/tlon, version:2026.2.21 | - | -| twitch | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerChannel | - | +| tlon | package-metadata | log | selected package metadata for plugin contract checks | plugins/tlon/.crabpot-package/package.json, @openclaw/tlon, version:2026.5.2 | - | +| tlon | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - | +| twitch | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:defineBundledChannelEntry | - | | twitch | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| twitch | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel | - | -| twitch | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk | - | +| twitch | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - | +| twitch | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/channel-config-primitives, openclaw/plugin-sdk/channel-config-schema, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-reply-pipeline, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/core, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/extension-shared, openclaw/plugin-sdk/reply-runtime, openclaw/plugin-sdk/runtime, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/zod | - | | twitch | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/twitch/.crabpot-package/openclaw.plugin.json | - | -| twitch | package-metadata | log | selected package metadata for plugin contract checks | plugins/twitch/.crabpot-package/package.json, @openclaw/twitch, version:2026.2.21 | - | +| twitch | package-metadata | log | selected package metadata for plugin contract checks | plugins/twitch/.crabpot-package/package.json, @openclaw/twitch, version:2026.5.2 | - | | mattermost | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerChannel | - | | mattermost | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | mattermost | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel | - | | mattermost | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk, openclaw/plugin-sdk/account-id | - | | mattermost | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/mattermost/.crabpot-package/openclaw.plugin.json | - | | mattermost | package-metadata | log | selected package metadata for plugin contract checks | plugins/mattermost/.crabpot-package/package.json, @openclaw/mattermost, version:2026.2.21 | - | -| synology-chat | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:registerChannel | - | +| synology-chat | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:createChatChannelPlugin, registration:defineBundledChannelEntry | - | | synology-chat | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | -| synology-chat | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel | - | -| synology-chat | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk | - | +| synology-chat | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - | +| synology-chat | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/approval-auth-runtime, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-config-schema, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-lifecycle, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/dangerous-name-runtime, openclaw/plugin-sdk/directory-runtime, openclaw/plugin-sdk/extension-shared, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/security-runtime, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/webhook-ingress, openclaw/plugin-sdk/zod | - | | synology-chat | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/synology-chat/.crabpot-package/openclaw.plugin.json | - | -| synology-chat | package-metadata | log | selected package metadata for plugin contract checks | plugins/synology-chat/.crabpot-package/package.json, @openclaw/synology-chat, version:2026.2.22 | - | +| synology-chat | package-metadata | log | selected package metadata for plugin contract checks | plugins/synology-chat/.crabpot-package/package.json, @openclaw/synology-chat, version:2026.5.2 | - | | brave-plugin | seam-inventory | log | observed 0 hooks, 2 registrations, and 1 manifest contracts | registration:definePluginEntry, registration:registerWebSearchProvider, manifestContract:webSearchProviders | - | | brave-plugin | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | brave-plugin | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerWebSearchProvider | - | -| brave-plugin | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/provider-web-search, openclaw/plugin-sdk/provider-web-search-config-contract, openclaw/plugin-sdk/text-runtime | - | +| brave-plugin | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/diagnostic-runtime, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/provider-web-search, openclaw/plugin-sdk/provider-web-search-config-contract, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/text-runtime | - | | brave-plugin | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/brave-plugin/.crabpot-package/openclaw.plugin.json | - | -| brave-plugin | package-metadata | log | selected package metadata for plugin contract checks | plugins/brave-plugin/.crabpot-package/package.json, @openclaw/brave-plugin, version:2026.5.1-beta.1 | - | +| brave-plugin | package-metadata | log | selected package metadata for plugin contract checks | plugins/brave-plugin/.crabpot-package/package.json, @openclaw/brave-plugin, version:2026.5.2-beta.2 | - | | brave-plugin | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | webSearchProviders | - | | codex | seam-inventory | log | observed 1 hooks, 6 registrations, and 2 manifest contracts | hook:inbound_claim, registration:definePluginEntry, registration:registerAgentHarness, registration:registerCommand, registration:registerMediaUnderstandingProvider, registration:registerMigrationProvider, registration:registerProvider, manifestContract:mediaUnderstandingProviders, manifestContract:migrationProviders | - | | codex | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | inbound_claim | - | | codex | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerAgentHarness, registerCommand, registerMediaUnderstandingProvider, registerMigrationProvider, registerProvider | - | | codex | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/agent-harness, openclaw/plugin-sdk/agent-harness-runtime, openclaw/plugin-sdk/agent-runtime, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/core, openclaw/plugin-sdk/diagnostic-runtime, openclaw/plugin-sdk/media-understanding, openclaw/plugin-sdk/migration, openclaw/plugin-sdk/migration-runtime, openclaw/plugin-sdk/plugin-config-runtime, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/provider-auth, openclaw/plugin-sdk/provider-catalog-shared, openclaw/plugin-sdk/provider-model-shared, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/windows-spawn | - | | codex | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/codex/.crabpot-package/openclaw.plugin.json | - | -| codex | package-metadata | log | selected package metadata for plugin contract checks | plugins/codex/.crabpot-package/package.json, @openclaw/codex, version:2026.5.1-beta.1 | - | +| codex | package-metadata | log | selected package metadata for plugin contract checks | plugins/codex/.crabpot-package/package.json, @openclaw/codex, version:2026.5.2-beta.2 | - | | codex | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | mediaUnderstandingProviders, migrationProviders | - | | diagnostics-prometheus | seam-inventory | log | observed 0 hooks, 3 registrations, and 0 manifest contracts | registration:definePluginEntry, registration:registerHttpRoute, registration:registerService | - | | diagnostics-prometheus | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | diagnostics-prometheus | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerHttpRoute, registerService | - | | diagnostics-prometheus | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/diagnostic-runtime, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/security-runtime | - | | diagnostics-prometheus | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/diagnostics-prometheus/.crabpot-package/openclaw.plugin.json | - | -| diagnostics-prometheus | package-metadata | log | selected package metadata for plugin contract checks | plugins/diagnostics-prometheus/.crabpot-package/package.json, @openclaw/diagnostics-prometheus, version:2026.5.1-beta.2 | - | -| google-meet | seam-inventory | log | observed 0 hooks, 5 registrations, and 0 manifest contracts | registration:definePluginEntry, registration:registerCli, registration:registerGatewayMethod, registration:registerNodeHostCommand, registration:registerTool | - | +| diagnostics-prometheus | package-metadata | log | selected package metadata for plugin contract checks | plugins/diagnostics-prometheus/.crabpot-package/package.json, @openclaw/diagnostics-prometheus, version:2026.5.2-beta.2 | - | +| google-meet | seam-inventory | log | observed 0 hooks, 5 registrations, and 1 manifest contracts | registration:definePluginEntry, registration:registerCli, registration:registerGatewayMethod, registration:registerNodeHostCommand, registration:registerTool, manifestContract:tools | - | | google-meet | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | google-meet | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCli, registerGatewayMethod, registerNodeHostCommand, registerTool | - | | google-meet | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/gateway-runtime, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/plugin-runtime, openclaw/plugin-sdk/plugin-test-api, openclaw/plugin-sdk/provider-auth, openclaw/plugin-sdk/provider-auth-runtime, openclaw/plugin-sdk/realtime-voice, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/ssrf-runtime, openclaw/plugin-sdk/text-runtime | - | | google-meet | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/google-meet/.crabpot-package/openclaw.plugin.json | - | -| google-meet | package-metadata | log | selected package metadata for plugin contract checks | plugins/google-meet/.crabpot-package/package.json, @openclaw/google-meet, version:2026.5.1-beta.2 | - | -| diffs | seam-inventory | log | observed 1 hooks, 3 registrations, and 0 manifest contracts | hook:before_prompt_build, registration:definePluginEntry, registration:registerHttpRoute, registration:registerTool | - | +| google-meet | package-metadata | log | selected package metadata for plugin contract checks | plugins/google-meet/.crabpot-package/package.json, @openclaw/google-meet, version:2026.5.2-beta.2 | - | +| google-meet | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - | +| diffs | seam-inventory | log | observed 1 hooks, 3 registrations, and 1 manifest contracts | hook:before_prompt_build, registration:definePluginEntry, registration:registerHttpRoute, registration:registerTool, manifestContract:tools | - | | diffs | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | before_prompt_build | - | | diffs | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerHttpRoute, registerTool | - | | diffs | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/error-runtime, openclaw/plugin-sdk/extension-shared, openclaw/plugin-sdk/plugin-config-runtime, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/webhook-ingress, openclaw/plugin-sdk/zod | - | | diffs | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/diffs/.crabpot-package/openclaw.plugin.json | - | -| diffs | package-metadata | log | selected package metadata for plugin contract checks | plugins/diffs/.crabpot-package/package.json, @openclaw/diffs, version:2026.5.1-beta.1 | - | -| memory-lancedb | seam-inventory | log | observed 3 hooks, 4 registrations, and 0 manifest contracts | hook:agent_end, hook:before_prompt_build, hook:session_end, registration:definePluginEntry, registration:registerCli, registration:registerService, registration:registerTool | - | +| diffs | package-metadata | log | selected package metadata for plugin contract checks | plugins/diffs/.crabpot-package/package.json, @openclaw/diffs, version:2026.5.2-beta.2 | - | +| diffs | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - | +| memory-lancedb | seam-inventory | log | observed 3 hooks, 4 registrations, and 1 manifest contracts | hook:agent_end, hook:before_prompt_build, hook:session_end, registration:definePluginEntry, registration:registerCli, registration:registerService, registration:registerTool, manifestContract:tools | - | | memory-lancedb | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | agent_end, before_prompt_build, session_end | - | | memory-lancedb | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCli, registerService, registerTool | - | | memory-lancedb | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/core, openclaw/plugin-sdk/memory-core-host-engine-embeddings, openclaw/plugin-sdk/memory-host-core, openclaw/plugin-sdk/plugin-config-runtime, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/state-paths, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/text-runtime | - | | memory-lancedb | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/memory-lancedb/.crabpot-package/openclaw.plugin.json | - | -| memory-lancedb | package-metadata | log | selected package metadata for plugin contract checks | plugins/memory-lancedb/.crabpot-package/package.json, @openclaw/memory-lancedb, version:2026.5.1-beta.1 | - | -| openclaw-qqbot | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:registerCommand, registration:registerTool | - | +| memory-lancedb | package-metadata | log | selected package metadata for plugin contract checks | plugins/memory-lancedb/.crabpot-package/package.json, @openclaw/memory-lancedb, version:2026.5.2-beta.2 | - | +| memory-lancedb | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - | +| openclaw-qqbot | seam-inventory | log | observed 0 hooks, 3 registrations, and 1 manifest contracts | registration:defineBundledChannelEntry, registration:registerCommand, registration:registerTool, manifestContract:tools | - | | openclaw-qqbot | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | openclaw-qqbot | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCommand, registerTool | - | | openclaw-qqbot | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/agent-harness-runtime, openclaw/plugin-sdk/approval-auth-runtime, openclaw/plugin-sdk/approval-client-runtime, openclaw/plugin-sdk/approval-delivery-runtime, openclaw/plugin-sdk/approval-gateway-runtime, openclaw/plugin-sdk/approval-handler-adapter-runtime, openclaw/plugin-sdk/approval-handler-runtime, openclaw/plugin-sdk/approval-native-runtime, openclaw/plugin-sdk/approval-runtime, openclaw/plugin-sdk/channel-config-schema, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-mention-gating, openclaw/plugin-sdk/cli-runtime, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/core, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/plugin-entry, openclaw/plugin-sdk/reply-history, openclaw/plugin-sdk/reply-runtime, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime-config-snapshot, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/secret-input, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/setup-tools, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/text-runtime | - | | openclaw-qqbot | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/openclaw-qqbot/.crabpot-package/openclaw.plugin.json | - | -| openclaw-qqbot | package-metadata | log | selected package metadata for plugin contract checks | plugins/openclaw-qqbot/.crabpot-package/package.json, @openclaw/qqbot, version:2026.5.1-beta.1 | - | -| whatsapp | seam-inventory | log | observed 0 hooks, 0 registrations, and 0 manifest contracts | - | - | +| openclaw-qqbot | package-metadata | log | selected package metadata for plugin contract checks | plugins/openclaw-qqbot/.crabpot-package/package.json, @openclaw/qqbot, version:2026.5.2-beta.2 | - | +| openclaw-qqbot | declarative-contracts | log | fixture declares manifest contracts that can be checked without executing plugin code | tools | - | +| whatsapp | seam-inventory | log | observed 0 hooks, 1 registrations, and 0 manifest contracts | registration:defineBundledChannelEntry | - | | whatsapp | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | whatsapp | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | - | - | -| whatsapp | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-core, openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/agent-runtime, openclaw/plugin-sdk/allowlist-config-edit, openclaw/plugin-sdk/approval-auth-runtime, openclaw/plugin-sdk/bundled-channel-config-schema, openclaw/plugin-sdk/channel-actions, openclaw/plugin-sdk/channel-activity-runtime, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-envelope, openclaw/plugin-sdk/channel-feedback, openclaw/plugin-sdk/channel-inbound, openclaw/plugin-sdk/channel-inbound-debounce, openclaw/plugin-sdk/channel-location, openclaw/plugin-sdk/channel-mention-gating, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-reply-pipeline, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/channel-streaming, openclaw/plugin-sdk/channel-targets, openclaw/plugin-sdk/channel-test-helpers, openclaw/plugin-sdk/cli-runtime, openclaw/plugin-sdk/command-detection, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/context-visibility-runtime, openclaw/plugin-sdk/conversation-runtime, openclaw/plugin-sdk/core, openclaw/plugin-sdk/delivery-queue-runtime, openclaw/plugin-sdk/directory-config-runtime, openclaw/plugin-sdk/fetch-runtime, openclaw/plugin-sdk/gateway-runtime, openclaw/plugin-sdk/group-activation, openclaw/plugin-sdk/heartbeat-runtime, openclaw/plugin-sdk/hook-runtime, openclaw/plugin-sdk/inbound-reply-dispatch, openclaw/plugin-sdk/lazy-runtime, openclaw/plugin-sdk/logging-core, openclaw/plugin-sdk/markdown-table-runtime, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/media-store, openclaw/plugin-sdk/outbound-runtime, openclaw/plugin-sdk/outbound-send-deps, openclaw/plugin-sdk/persistent-dedupe, openclaw/plugin-sdk/plugin-config-runtime, openclaw/plugin-sdk/plugin-runtime, openclaw/plugin-sdk/poll-runtime, openclaw/plugin-sdk/reply-chunking, openclaw/plugin-sdk/reply-dedupe, openclaw/plugin-sdk/reply-history, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/reply-reference, openclaw/plugin-sdk/reply-runtime, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime-config-snapshot, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/runtime-group-policy, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/security-runtime, openclaw/plugin-sdk/session-store-runtime, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/setup-runtime, openclaw/plugin-sdk/setup-tools, openclaw/plugin-sdk/state-paths, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/string-coerce-runtime, openclaw/plugin-sdk/system-event-runtime, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/test-env, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/web-media | - | +| whatsapp | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/account-core, openclaw/plugin-sdk/account-helpers, openclaw/plugin-sdk/account-id, openclaw/plugin-sdk/account-resolution, openclaw/plugin-sdk/agent-runtime, openclaw/plugin-sdk/allowlist-config-edit, openclaw/plugin-sdk/approval-auth-runtime, openclaw/plugin-sdk/bundled-channel-config-schema, openclaw/plugin-sdk/channel-actions, openclaw/plugin-sdk/channel-activity-runtime, openclaw/plugin-sdk/channel-config-helpers, openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-core, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-envelope, openclaw/plugin-sdk/channel-feedback, openclaw/plugin-sdk/channel-inbound, openclaw/plugin-sdk/channel-inbound-debounce, openclaw/plugin-sdk/channel-location, openclaw/plugin-sdk/channel-mention-gating, openclaw/plugin-sdk/channel-pairing, openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/channel-reply-pipeline, openclaw/plugin-sdk/channel-send-result, openclaw/plugin-sdk/channel-streaming, openclaw/plugin-sdk/channel-test-helpers, openclaw/plugin-sdk/cli-runtime, openclaw/plugin-sdk/command-detection, openclaw/plugin-sdk/config-types, openclaw/plugin-sdk/context-visibility-runtime, openclaw/plugin-sdk/conversation-runtime, openclaw/plugin-sdk/core, openclaw/plugin-sdk/delivery-queue-runtime, openclaw/plugin-sdk/directory-config-runtime, openclaw/plugin-sdk/fetch-runtime, openclaw/plugin-sdk/gateway-runtime, openclaw/plugin-sdk/group-activation, openclaw/plugin-sdk/hook-runtime, openclaw/plugin-sdk/inbound-reply-dispatch, openclaw/plugin-sdk/lazy-runtime, openclaw/plugin-sdk/logging-core, openclaw/plugin-sdk/markdown-table-runtime, openclaw/plugin-sdk/media-runtime, openclaw/plugin-sdk/media-store, openclaw/plugin-sdk/outbound-runtime, openclaw/plugin-sdk/outbound-send-deps, openclaw/plugin-sdk/persistent-dedupe, openclaw/plugin-sdk/plugin-config-runtime, openclaw/plugin-sdk/plugin-runtime, openclaw/plugin-sdk/poll-runtime, openclaw/plugin-sdk/reply-chunking, openclaw/plugin-sdk/reply-dedupe, openclaw/plugin-sdk/reply-history, openclaw/plugin-sdk/reply-payload, openclaw/plugin-sdk/reply-reference, openclaw/plugin-sdk/reply-runtime, openclaw/plugin-sdk/routing, openclaw/plugin-sdk/runtime-config-snapshot, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/runtime-group-policy, openclaw/plugin-sdk/runtime-store, openclaw/plugin-sdk/security-runtime, openclaw/plugin-sdk/session-store-runtime, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/setup-runtime, openclaw/plugin-sdk/setup-tools, openclaw/plugin-sdk/state-paths, openclaw/plugin-sdk/status-helpers, openclaw/plugin-sdk/string-coerce-runtime, openclaw/plugin-sdk/system-event-runtime, openclaw/plugin-sdk/temp-path, openclaw/plugin-sdk/test-env, openclaw/plugin-sdk/text-runtime, openclaw/plugin-sdk/web-media | - | | whatsapp | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/whatsapp/.crabpot-package/openclaw.plugin.json | - | -| whatsapp | package-metadata | log | selected package metadata for plugin contract checks | plugins/whatsapp/.crabpot-package/package.json, @openclaw/whatsapp, version:2026.5.1-beta.1 | - | +| whatsapp | package-metadata | log | selected package metadata for plugin contract checks | plugins/whatsapp/.crabpot-package/package.json, @openclaw/whatsapp, version:2026.5.2-beta.2 | - | | nemoclaw | seam-inventory | log | observed 2 hooks, 2 registrations, and 0 manifest contracts | hook:before_agent_start, hook:before_tool_call, registration:registerCommand, registration:registerProvider | - | | nemoclaw | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | before_agent_start, before_tool_call | - | | nemoclaw | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCommand, registerProvider | - | @@ -8835,7 +7871,7 @@ _none_ | ddingtalk | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk/channel-contract, openclaw/plugin-sdk/channel-feedback, openclaw/plugin-sdk/conversation-runtime, openclaw/plugin-sdk/core, openclaw/plugin-sdk/runtime-env, openclaw/plugin-sdk/setup, openclaw/plugin-sdk/setup-tools, openclaw/plugin-sdk/web-media | - | | ddingtalk | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/ddingtalk/openclaw.plugin.json | - | | ddingtalk | package-metadata | log | selected package metadata for plugin contract checks | plugins/ddingtalk/package.json, @largezhou/ddingtalk, version:2.0.1 | - | -| dingtalk-connector | seam-inventory | log | observed 0 hooks, 2 registrations, and 0 manifest contracts | registration:registerChannel, registration:registerGatewayMethod | - | +| dingtalk-connector | seam-inventory | log | observed 0 hooks, 3 registrations, and 0 manifest contracts | registration:defineBundledChannelEntry, registration:registerChannel, registration:registerGatewayMethod | - | | dingtalk-connector | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | dingtalk-connector | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerChannel, registerGatewayMethod | - | | dingtalk-connector | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk, openclaw/plugin-sdk/channel-entry-contract, openclaw/plugin-sdk/channel-runtime, openclaw/plugin-sdk/config-runtime, openclaw/plugin-sdk/core, openclaw/plugin-sdk/setup | - | @@ -8847,7 +7883,7 @@ _none_ | mocrane-wecom | sdk-exports-present | log | all observed plugin SDK imports exist in target OpenClaw package exports | openclaw/plugin-sdk | - | | mocrane-wecom | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/mocrane-wecom/openclaw.plugin.json | - | | mocrane-wecom | package-metadata | log | selected package metadata for plugin contract checks | plugins/mocrane-wecom/package.json, @mocrane/wecom, version:2026.3.24-beta | - | -| yuanbao | seam-inventory | log | observed 0 hooks, 3 registrations, and 0 manifest contracts | registration:createChatChannelPlugin, registration:registerCommand, registration:registerTool | - | +| yuanbao | seam-inventory | log | observed 0 hooks, 4 registrations, and 0 manifest contracts | registration:createChatChannelPlugin, registration:defineBundledChannelEntry, registration:registerCommand, registration:registerTool | - | | yuanbao | hook-names-present | log | all observed hooks exist in the target OpenClaw hook registry | - | - | | yuanbao | api-registrars-present | log | all observed api.register* calls exist in the target OpenClaw plugin API builder | registerCommand, registerTool | - | | yuanbao | manifest-fields-checked | log | plugin manifest fields were compared with target OpenClaw manifest types | plugins/yuanbao/.crabpot-package/openclaw.plugin.json | - | @@ -8941,10 +7977,17 @@ _none_ | kitchen-sink | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | hook.llm-observer.privacy-payload, status:active | hook.llm-observer.privacy-payload | | kitchen-sink | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import, status:deprecated | legacy-root-sdk-import | | kitchen-sink | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-before-agent-start, status:deprecated | legacy-before-agent-start | -| tlon | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import, status:deprecated | legacy-root-sdk-import | -| twitch | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import, status:deprecated | legacy-root-sdk-import | +| discord | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | +| msteams | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | +| nextcloud-talk | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | +| nostr | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | +| voice-call | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | +| zalo | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | +| zalouser | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | +| feishu | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | +| twitch | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | | mattermost | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import, status:deprecated | legacy-root-sdk-import | -| synology-chat | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | legacy-root-sdk-import, status:deprecated | legacy-root-sdk-import | +| synology-chat | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | | brave-plugin | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | provider-auth-env-vars, status:deprecated | provider-auth-env-vars | | memory-lancedb | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | hook.llm-observer.privacy-payload, status:active | hook.llm-observer.privacy-payload | | openclaw-qqbot | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel-env-vars, status:deprecated | channel-env-vars | @@ -8979,33 +8022,20 @@ _none_ | kitchen-sink | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | kitchen-sink | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | hook.before_tool_call.terminal-block-approval, status:active | hook.before_tool_call.terminal-block-approval | | kitchen-sink | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | -| bluebubbles | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | -| bluebubbles | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | | diagnostics-otel | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | -| discord | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | -| discord | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | | matrix | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | matrix | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | -| msteams | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | msteams | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | -| nextcloud-talk | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | nextcloud-talk | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | | nostr | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | nostr | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | | voice-call | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | -| zalo | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | zalo | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | -| zalouser | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | zalouser | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | -| feishu | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | feishu | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | -| tlon | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | tlon | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | -| twitch | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | -| twitch | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | | mattermost | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | mattermost | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | -| synology-chat | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | synology-chat | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | channel.runtime.envelope-config-metadata, status:active | channel.runtime.envelope-config-metadata | | codex | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | | diagnostics-prometheus | compat-record-present | log | target OpenClaw checkout has a matching compat registry record | api.capture.runtime-registrars, status:active | api.capture.runtime-registrars | diff --git a/scripts/check-openclaw-plugin-contracts.mjs b/scripts/check-openclaw-plugin-contracts.mjs index fc1dd3a..4c15748 100644 --- a/scripts/check-openclaw-plugin-contracts.mjs +++ b/scripts/check-openclaw-plugin-contracts.mjs @@ -14,13 +14,14 @@ const retiredTerms = [ const ignoredPaths = new Set([path.relative(repoRoot, import.meta.filename)]); -const trackedFiles = execFileSync("git", ["ls-files", "-z"], { +const trackedFiles = execFileSync("git", ["-c", "safe.directory=*", "ls-files", "-z"], { cwd: repoRoot, encoding: "utf8", }) .split("\0") .filter(Boolean) - .filter((filePath) => !ignoredPaths.has(filePath)); + .filter((filePath) => !ignoredPaths.has(filePath)) + .filter((filePath) => !filePath.startsWith("reports/")); const offenders = []; for (const filePath of trackedFiles) { diff --git a/scripts/generate-report.mjs b/scripts/generate-report.mjs index 3d79bb2..cf19dee 100644 --- a/scripts/generate-report.mjs +++ b/scripts/generate-report.mjs @@ -21,6 +21,7 @@ async function main() { const report = await buildReport({ executionResultsPath: parsedArgs.executionResultsPath, + fixtureSet: parsedArgs.fixtureSet, openclawPath: parsedArgs.openclawPath, }); @@ -51,6 +52,7 @@ function parseArgs(argv) { const flags = []; let openclawPath; let executionResultsPath; + let fixtureSet; for (let index = 0; index < argv.length; index += 1) { const arg = argv[index]; @@ -68,8 +70,13 @@ function parseArgs(argv) { index += 1; continue; } + if (arg === "--fixture-set") { + fixtureSet = argv[index + 1]; + index += 1; + continue; + } flags.push(arg); } - return { executionResultsPath, flags, openclawPath }; + return { executionResultsPath, fixtureSet, flags, openclawPath }; } diff --git a/scripts/manifest-lib.mjs b/scripts/manifest-lib.mjs index c48b33d..f7059f5 100644 --- a/scripts/manifest-lib.mjs +++ b/scripts/manifest-lib.mjs @@ -27,12 +27,9 @@ export async function selectManifestFixtures(manifest, options = {}) { return manifest; } const policy = JSON.parse(await readFile(options.policyPath ?? defaultCiPolicyPath, "utf8")); - const ids = policy.fixtureSets?.[fixtureSet]; - if (!Array.isArray(ids) || ids.length === 0) { - throw new Error(`fixture set ${fixtureSet} is not defined in ${path.relative(repoRoot, options.policyPath ?? defaultCiPolicyPath)}`); - } - const wanted = new Set(ids); - const fixtures = manifest.fixtures.filter((fixture) => wanted.has(fixture.id)); + const ids = policy.fixtureSets?.[fixtureSet] ?? fixtureSet.split(",").map((value) => value.trim()).filter(Boolean); + const fixturesById = new Map(manifest.fixtures.map((fixture) => [fixture.id, fixture])); + const fixtures = ids.map((id) => fixturesById.get(id)).filter(Boolean); const missing = ids.filter((id) => !fixtures.some((fixture) => fixture.id === id)); if (missing.length > 0) { throw new Error(`fixture set ${fixtureSet} references unknown fixture(s): ${missing.join(", ")}`); diff --git a/scripts/plugin-inspector-source.mjs b/scripts/plugin-inspector-source.mjs index b8582d6..61df10b 100644 --- a/scripts/plugin-inspector-source.mjs +++ b/scripts/plugin-inspector-source.mjs @@ -4,7 +4,7 @@ import path from "node:path"; import { pathToFileURL } from "node:url"; import { repoRoot } from "./manifest-lib.mjs"; -export const pluginInspectorRef = "2eda65a8a9bb70ab872b51383abb775c9765192d"; +export const pluginInspectorRef = "06cc55ce517a0c53c6a42ad6f3b00b58fd87879f"; export const pluginInspectorPackage = "@openclaw/plugin-inspector@0.3.5"; export async function loadPluginInspector() { diff --git a/scripts/sync-fixtures.mjs b/scripts/sync-fixtures.mjs index 299c37f..a9ae06b 100644 --- a/scripts/sync-fixtures.mjs +++ b/scripts/sync-fixtures.mjs @@ -100,7 +100,12 @@ async function materializeNpmFixture(fixture, target) { await mkdir(target, { recursive: true }); await rm(payloadDir, { recursive: true, force: true }); await mkdir(payloadDir, { recursive: true }); - run("tar", ["-xzf", path.join(tempDir, packed.filename), "-C", payloadDir, "--strip-components", "1"]); + const tarballPath = path.join(tempDir, packed.filename); + const tarArgs = ["-xzf", tarPath(tarballPath), "-C", tarPath(payloadDir), "--strip-components", "1"]; + if (process.platform === "win32") { + tarArgs.unshift("--force-local"); + } + run("tar", tarArgs); await writePackageSourceMetadata(payloadDir, { gitHead: packed.gitHead || (await npmPackageGitHead(dependency.name, dependency.version)), name: dependency.name, @@ -263,3 +268,10 @@ function run(command, args) { throw new Error(`${command} ${args.join(" ")} failed with ${result.status}${detail}`); } } + +function tarPath(filePath) { + if (process.platform !== "win32") { + return filePath; + } + return filePath.replaceAll("\\", "/").replace(/^([A-Za-z]):\//, (_, drive) => `/${drive.toLowerCase()}/`); +} diff --git a/test/ci-policy.test.mjs b/test/ci-policy.test.mjs index 88aa159..08f8f36 100644 --- a/test/ci-policy.test.mjs +++ b/test/ci-policy.test.mjs @@ -86,6 +86,28 @@ test("default ci policy classifies opt-in kitchen-sink blockers", async () => { ); }); +test("default ci policy classifies generated kitchen-sink callable stubs", async () => { + const report = await buildCiPolicyReport({ + compatibilityReport: compatibilityReport(), + executionResults: executionResults([ + { + seam: "before_tool_call", + reason: "captured hook has no callable handler", + }, + { + seam: "registerCommand", + reason: "captured registration has no supported callable probe", + }, + ]), + }); + + assert.equal(report.status, "pass"); + assert.deepEqual( + report.checks.filter((check) => check.id.startsWith("execution-results.blocked.")).map((check) => check.action), + ["warn", "warn"], + ); +}); + test("ci policy fails ref diff hard regressions", async () => { const report = await buildCiPolicyReport({ policy, diff --git a/test/ci-workflows.test.mjs b/test/ci-workflows.test.mjs index 252ede8..d46b378 100644 --- a/test/ci-workflows.test.mjs +++ b/test/ci-workflows.test.mjs @@ -121,7 +121,7 @@ test("default check workflow resolves changed submodules into an isolated fixtur assert.match(workflow, /changed-isolated-fixture:/); assert.match(workflow, /matrix: \$\{\{ fromJson\(needs\.changed-fixture-plan\.outputs\.matrix\) \}\}/); assert.match(workflow, /npm run workspace:execute -- --fixture "\$\{\{ matrix\.id \}\}" --allow-empty/); - assert.match(workflow, /node scripts\/generate-report\.mjs --openclaw \.\/openclaw --execution-results reports\/crabpot-execution-results\.json/); + assert.match(workflow, /node scripts\/generate-report\.mjs --openclaw \.\/openclaw --execution-results reports\/crabpot-execution-results\.json --fixture-set "\$\{\{ matrix\.id \}\}"/); assert.match(workflow, /Fail if isolated policy failed/); assert.match(workflow, /steps\.policy\.outcome == 'failure'/); assert.doesNotMatch(workflow, /steps\.execute\.outcome == 'failure' \|\| steps\.policy\.outcome == 'failure'/); @@ -204,7 +204,7 @@ test("manual workflow keeps isolated execution artifacts and failure policy wire /id: execute[\s\S]*continue-on-error: true[\s\S]*CRABPOT_EXECUTE_ISOLATED: "1"[\s\S]*npm run workspace:execute -- --fixture "\$\{\{ matrix\.id \}\}" --allow-empty/, ); assert.match(workflow, /id: policy[\s\S]*continue-on-error: true[\s\S]*node scripts\/check-ci-policy\.mjs/); - assert.match(workflow, /node scripts\/generate-report\.mjs --openclaw \.\/openclaw --execution-results reports\/crabpot-execution-results\.json/); + assert.match(workflow, /node scripts\/generate-report\.mjs --openclaw \.\/openclaw --execution-results reports\/crabpot-execution-results\.json --fixture-set "\$\{\{ matrix\.id \}\}"/); assert.match(workflow, /path: \|[\s\S]*\.crabpot\/results\/[\s\S]*reports\/crabpot-execution-results\.\*[\s\S]*reports\/crabpot-ci-policy\.\*[\s\S]*reports\/crabpot-ci-summary\.\*/); assert.match(workflow, /steps\.execute\.outcome == 'failure' \|\| steps\.policy\.outcome == 'failure'/); }); diff --git a/test/cold-import-readiness.test.mjs b/test/cold-import-readiness.test.mjs index 2a757f9..6a2ee04 100644 --- a/test/cold-import-readiness.test.mjs +++ b/test/cold-import-readiness.test.mjs @@ -15,8 +15,8 @@ test("cold import readiness classifies entrypoint blockers", async () => { assert.ok(readiness.summary.dependencyInstallRequiredCount > 0); assertHasBlocker(readiness, "wecom", "dependency-install-required"); - assertHasStatus(readiness, "agentchat", "build-required"); - assertHasStatus(readiness, "a2a-gateway", "ts-loader-required"); + assertHasBlocker(readiness, "agentchat", "build-required"); + assertHasBlocker(readiness, "a2a-gateway", "ts-loader-required"); if (report.issues.some((issue) => issue.code === "sdk-export-missing")) { assert.ok(readiness.summary.sdkAliasRequiredCount > 0); assertHasAnyStatus(readiness, "sdk-alias-required"); diff --git a/test/fixture-inspection.test.mjs b/test/fixture-inspection.test.mjs index f5e9fb9..c3e02e2 100644 --- a/test/fixture-inspection.test.mjs +++ b/test/fixture-inspection.test.mjs @@ -16,7 +16,7 @@ test("fixture inspections satisfy expected hooks and registrations", async () => for (const registration of fixture.expect?.registrations ?? []) { assert.ok( - inspection.registrations.includes(registration), + satisfiesRegistration(registration, inspection.registrations), `${fixture.id} should use ${registration}`, ); } @@ -29,3 +29,15 @@ test("fixture inspections satisfy expected hooks and registrations", async () => } } }); + +function satisfiesRegistration(expected, observed) { + if (observed.includes(expected)) { + return true; + } + if (expected !== "registerChannel") { + return false; + } + return observed.some((registration) => + ["createChatChannelPlugin", "defineBundledChannelEntry", "defineChannelPluginEntry"].includes(registration), + ); +} diff --git a/test/manifest.test.mjs b/test/manifest.test.mjs index 7180ffd..1b06d1c 100644 --- a/test/manifest.test.mjs +++ b/test/manifest.test.mjs @@ -51,6 +51,16 @@ test("openclaw beta fixture set narrows to beta npm packages", async () => { assert.ok(manifest.fixtures.every((fixture) => fixture.package?.tag === "beta")); }); +test("explicit fixture set narrows to named fixtures", async () => { + const manifest = await readConfiguredManifest({ fixtureSet: "kitchen-sink,wecom" }); + + assert.deepEqual(manifest.fixtures.map((fixture) => fixture.id), ["kitchen-sink", "wecom"]); + assert.deepEqual(manifest.fixtureSelection, { + fixtureSet: "kitchen-sink,wecom", + ids: ["kitchen-sink", "wecom"], + }); +}); + test("fixture paths are stable plugin submodule paths", async () => { const manifest = await readManifest(); diff --git a/test/report.test.mjs b/test/report.test.mjs index 7a5acd4..aedf60d 100644 --- a/test/report.test.mjs +++ b/test/report.test.mjs @@ -49,16 +49,18 @@ test("compatibility report classifies current fixture seams", async () => { assertHasFinding(report.suggestions, "wecom", "package-dependency-install-required"); assertHasFinding(report.warnings, "honcho", "conversation-access-hook"); assertHasFinding(report.warnings, "composio", "package-plugin-api-compat-missing"); - assertHasFinding(report.warnings, "memos-cloud", "manifest-unknown-fields"); assertHasFinding(report.suggestions, "secureclaw", "registration-capture-gap"); if (hasTargetOpenClaw) { assertHasFindingCode(report.warnings, "sdk-export-missing"); assertHasFindingCode(report.suggestions, "missing-compat-record"); + assertHasFinding(report.warnings, "memos-cloud", "manifest-unknown-fields"); } assertHasDecision(report.decisions, "core-compat-adapter", "env-auth"); assertHasDecision(report.decisions, "inspector-follow-up", "registration-capture"); - assertHasDecision(report.decisions, "core-compat-adapter", "compat-registry"); + if (hasTargetOpenClaw) { + assertHasDecision(report.decisions, "core-compat-adapter", "compat-registry"); + } assertHasIssue(report.issues, "P1", "registration-capture-gap"); assertHasIssue(report.issues, "P1", "conversation-access-hook"); @@ -198,7 +200,7 @@ test("issue report maps npm payload evidence to monorepo source links", () => { assert.match( markdown, - /https:\/\/github\.com\/openclaw\/openclaw\/blob\/2ce6b77205187c76ce7cde6cb0913de14d4452fa\/extensions\/bluebubbles\/index\.js#L12/, + /https:\/\/github\.com\/openclaw\/openclaw\/blob\/[0-9a-f]{40}\/extensions\/bluebubbles\/index\.js#L12/, ); });