[BREAKGLASS] Offline compatibility inspector for OpenClaw plugins
Go to file
Vincent Koc 7348aadd78
Some checks are pending
Check / Node 22 (push) Waiting to run
ci: add package check workflow
2026-04-26 10:56:18 -07:00
.github/workflows ci: add package check workflow 2026-04-26 10:56:18 -07:00
src feat: scaffold plugin inspector package 2026-04-26 10:55:03 -07:00
test feat: scaffold plugin inspector package 2026-04-26 10:55:03 -07:00
.gitignore feat: scaffold plugin inspector package 2026-04-26 10:55:03 -07:00
AGENTS.md feat: scaffold plugin inspector package 2026-04-26 10:55:03 -07:00
LICENSE feat: scaffold plugin inspector package 2026-04-26 10:55:03 -07:00
package.json feat: scaffold plugin inspector package 2026-04-26 10:55:03 -07:00
README.md feat: scaffold plugin inspector package 2026-04-26 10:55:03 -07:00

plugin-inspector

plugin-inspector is the reusable OpenClaw plugin compatibility inspector. It wraps the static inspection, registration capture, and report model prototyped in crabpot into an npm-publishable package.

No npm package has been published yet.

Install

During development, use a local checkout or packed tarball:

npm install --save-dev ../plugin-inspector

Future package name:

npm install --save-dev @openclaw/plugin-inspector

CLI

Inspect a crabpot-compatible fixture config:

plugin-inspector report --config crabpot.config.json --out reports

Fail if expected hooks, registrations, or manifest contracts are missing:

plugin-inspector ci --config crabpot.config.json --out reports --check

Capture a plugin entrypoint in an explicitly isolated execution lane:

PLUGIN_INSPECTOR_EXECUTE_ISOLATED=1 plugin-inspector capture ./dist/index.js

API

import {
  createCaptureApi,
  inspectFixtureSet,
  loadInspectorConfig,
  renderMarkdownReport,
  writeReport,
} from "@openclaw/plugin-inspector";

const config = await loadInspectorConfig("crabpot.config.json");
const report = await inspectFixtureSet(config);
await writeReport(report, { outDir: "reports" });

Scope

Default inspection is offline and credential-free. It reads manifests, package metadata, and source files, then reports observed api.on(...), api.register*, define*, SDK imports, and manifest contracts.

Cold import, SDK mocking, synthetic contract probes, and live lanes will be added behind explicit opt-in modes. Live checks must never run in default CI.