@openclaw/plugin-inspector 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.1 - 2026-04-27
4
+
5
+ ### Changed
6
+
7
+ - Refresh npm package docs with the simplified CLI-first README and public API surface cleanup.
8
+
3
9
  ## 0.1.0 - 2026-04-27
4
10
 
5
11
  Initial public package release for `@openclaw/plugin-inspector`.
package/README.md CHANGED
@@ -1,25 +1,22 @@
1
- # plugin-inspector
1
+ <img src="docs/plugin-inspector-banner.jpg" alt="openclaw plugin inspector banner"/>
2
+
3
+ # 💊 OpenClaw Plugin Inspector
2
4
 
3
5
  `plugin-inspector` is the reusable OpenClaw plugin compatibility inspector. It
4
6
  wraps the static inspection, registration capture, and report model prototyped
5
7
  in crabpot into an npm-publishable package.
6
8
 
7
- No npm package has been published yet.
8
-
9
9
  ## Install
10
10
 
11
- During development, use a local checkout or packed tarball:
11
+ Install it as a dev dependency in a plugin repo:
12
12
 
13
13
  ```bash
14
- npm install --save-dev ../plugin-inspector
15
- npx plugin-inspector check --no-openclaw
14
+ npm install --save-dev @openclaw/plugin-inspector
16
15
  ```
17
16
 
18
- After the package is published, plugin repos should install it as a dev
19
- dependency and run it from the plugin root:
17
+ Then run it from the plugin root:
20
18
 
21
19
  ```bash
22
- npm install --save-dev @openclaw/plugin-inspector
23
20
  npx @openclaw/plugin-inspector check
24
21
  ```
25
22
 
@@ -143,101 +140,6 @@ jobs:
143
140
  path: reports/plugin-inspector-*
144
141
  ```
145
142
 
146
- ## API
147
-
148
- ```js
149
- import {
150
- buildCiSummary,
151
- buildCiPolicyReport,
152
- buildColdImportReadiness,
153
- buildContractCapture,
154
- buildExecutionResultsReport,
155
- buildImportLoopProfile,
156
- buildPlatformProbes,
157
- buildProfileDiff,
158
- buildRefDiff,
159
- buildRuntimeProfile,
160
- buildRuntimeCaptureReport,
161
- buildWorkspacePlan,
162
- createCaptureApi,
163
- inspectFixtureSet,
164
- loadInspectorConfig,
165
- readOpenClawTargetSurface,
166
- renderCiPolicyMarkdown,
167
- renderColdImportReadinessMarkdown,
168
- renderContractCaptureMarkdown,
169
- renderExecutionResultsMarkdown,
170
- renderImportLoopProfileMarkdown,
171
- renderPlatformProbesMarkdown,
172
- renderProfileDiffMarkdown,
173
- renderRefDiffMarkdown,
174
- renderRuntimeProfileMarkdown,
175
- renderRuntimeCaptureMarkdown,
176
- renderWorkspacePlanMarkdown,
177
- renderMarkdownReport,
178
- validateCiPolicyReport,
179
- validateContractCoverage,
180
- writeCiSummary,
181
- writeCiPolicyReport,
182
- writeColdImportReadiness,
183
- writeContractCapture,
184
- writeExecutionResultsReport,
185
- writeImportLoopProfile,
186
- writePlatformProbes,
187
- writeProfileDiff,
188
- writeRefDiff,
189
- writeRuntimeProfile,
190
- writeRuntimeCaptureReport,
191
- writeWorkspacePlan,
192
- writeReport,
193
- } from "@openclaw/plugin-inspector";
194
-
195
- const config = await loadInspectorConfig("crabpot.config.json");
196
- const report = await inspectFixtureSet(config);
197
- await writeReport(report, { outDir: "reports" });
198
-
199
- const summary = await buildCiSummary({ reportsDir: "reports" });
200
- await writeCiSummary(summary);
201
-
202
- const policyReport = buildCiPolicyReport({ policy, compatibilityReport: report });
203
- await writeCiPolicyReport(policyReport);
204
-
205
- const capture = buildContractCapture({ report });
206
- await writeContractCapture(capture);
207
- const coverageErrors = validateContractCoverage(report);
208
-
209
- const readiness = buildColdImportReadiness({ report });
210
- await writeColdImportReadiness(readiness);
211
-
212
- const target = await readOpenClawTargetSurface({ manifest: config });
213
-
214
- const workspacePlan = await buildWorkspacePlan({ report, readiness });
215
- await writeWorkspacePlan(workspacePlan);
216
-
217
- const platformProbes = buildPlatformProbes({ plan: workspacePlan });
218
- await writePlatformProbes(platformProbes);
219
-
220
- const executionResults = await buildExecutionResultsReport({ resultsDir: ".plugin-inspector/results" });
221
- await writeExecutionResultsReport(executionResults);
222
-
223
- const importLoop = await buildImportLoopProfile({ entrypoint: "dist/index.js", runs: 3 });
224
- await writeImportLoopProfile(importLoop);
225
-
226
- const runtimeProfile = await buildRuntimeProfile({
227
- commands: [{ id: "node-boot", label: "Node boot", category: "baseline", args: ["-e", "0"] }],
228
- });
229
- await writeRuntimeProfile(runtimeProfile);
230
-
231
- const runtimeCapture = await buildRuntimeCaptureReport({ report, rootDir: process.cwd() });
232
- await writeRuntimeCaptureReport(runtimeCapture);
233
-
234
- const refDiff = await buildRefDiff({ baseReport, headReport });
235
- await writeRefDiff(refDiff);
236
-
237
- const profileDiff = await buildProfileDiff({ current, baseline, policy });
238
- await writeProfileDiff(profileDiff);
239
- ```
240
-
241
143
  ## Scope
242
144
 
243
145
  Default inspection is offline and credential-free. It reads manifests, package
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/plugin-inspector",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "private": false,
5
5
  "description": "Offline compatibility inspector for OpenClaw plugins.",
6
6
  "type": "module",
@@ -22,6 +22,7 @@
22
22
  },
23
23
  "exports": {
24
24
  ".": "./src/index.js",
25
+ "./advanced": "./src/advanced.js",
25
26
  "./capture-api": "./src/capture-api.js",
26
27
  "./ci-policy": "./src/ci-policy.js",
27
28
  "./cold-import-readiness": "./src/cold-import-readiness.js",
@@ -45,7 +46,7 @@
45
46
  "LICENSE"
46
47
  ],
47
48
  "scripts": {
48
- "check": "npm test && npm pack --dry-run && npm publish --dry-run --access public",
49
+ "check": "npm test && npm pack --dry-run",
49
50
  "release:local": "npm run check",
50
51
  "test": "node --test test/*.test.js"
51
52
  },
@@ -0,0 +1,186 @@
1
+ export {
2
+ escapeMarkdownTableCell,
3
+ renderArtifactContent,
4
+ renderMarkdownTable,
5
+ renderPaddedMarkdownTable,
6
+ writeArtifacts,
7
+ writeJsonMarkdownArtifacts,
8
+ } from "./artifacts.js";
9
+ export {
10
+ normalizeRepoPath,
11
+ posixJoin,
12
+ resolveFromRoot,
13
+ resolveRequiredFromRoot,
14
+ slugForArtifact,
15
+ toRepoPath,
16
+ } from "./path-utils.js";
17
+ export { readJsonFile, readOptionalJsonFile } from "./json-file.js";
18
+ export { assertRunCount, percentile } from "./stats.js";
19
+ export { createCaptureApi } from "./capture-api.js";
20
+ export {
21
+ buildCiPolicyReport,
22
+ defaultCiPolicyReportOptions,
23
+ renderCiPolicyMarkdown,
24
+ validateCiPolicy,
25
+ validateCiPolicyReport,
26
+ writeCiPolicyReport,
27
+ } from "./ci-policy.js";
28
+ export {
29
+ buildCiSummary,
30
+ defaultCiReportPaths,
31
+ deriveCiStatus,
32
+ readCiReports,
33
+ renderCiSummaryMarkdown,
34
+ writeCiSummary,
35
+ } from "./ci-summary.js";
36
+ export {
37
+ buildContractProbes,
38
+ contractProbeRules,
39
+ probePriority,
40
+ } from "./contract-probes.js";
41
+ export {
42
+ buildContractCapture,
43
+ defaultHookAssertions,
44
+ defaultHookContexts,
45
+ defaultHookEvents,
46
+ defaultRegistrationArguments,
47
+ defaultRegistrationAssertions,
48
+ renderContractCaptureMarkdown,
49
+ validateContractCapture,
50
+ writeContractCapture,
51
+ } from "./contract-capture.js";
52
+ export {
53
+ renderCompatibilityIssuesReport,
54
+ renderCompatibilityMarkdownReport,
55
+ } from "./compatibility-report.js";
56
+ export {
57
+ knownIssueClasses,
58
+ validateContractCoverage,
59
+ } from "./contract-coverage.js";
60
+ export {
61
+ buildColdImportReadiness,
62
+ renderColdImportReadinessMarkdown,
63
+ validateColdImportReadiness,
64
+ writeColdImportReadiness,
65
+ } from "./cold-import-readiness.js";
66
+ export {
67
+ buildIssues,
68
+ classifyIssueFinding,
69
+ deprecatedCompatRecords,
70
+ issueId,
71
+ issueMetadata,
72
+ issueMetadataByCode,
73
+ knownIssueCodes,
74
+ summarizeIssueClasses,
75
+ } from "./issues.js";
76
+ export {
77
+ buildExecutionResultsReport,
78
+ defaultExecutionResultsOptions,
79
+ renderExecutionResultsMarkdown,
80
+ writeExecutionResultsReport,
81
+ } from "./execution-results.js";
82
+ export {
83
+ buildCompatibilityFixtureReport,
84
+ classifyCompatibilityFixture,
85
+ classifyPackageContracts,
86
+ classifyTargetOpenClawCoverage,
87
+ readPackageSummaries,
88
+ readPluginManifests,
89
+ summarizePackage,
90
+ } from "./fixture-summary.js";
91
+ export {
92
+ buildImportLoopProfile,
93
+ defaultImportLoopProfileOptions,
94
+ renderImportLoopProfileMarkdown,
95
+ validateImportLoopProfile,
96
+ writeImportLoopProfile,
97
+ } from "./import-loop-profile.js";
98
+ export {
99
+ defaultOpenClawCheckoutPaths,
100
+ openClawTargetPathCandidates,
101
+ parseCompatRecordEntries,
102
+ parseExportedStringArray,
103
+ parsePluginSdkExports,
104
+ parseTypeFields,
105
+ readOpenClawTargetSurface,
106
+ } from "./openclaw-target.js";
107
+ export {
108
+ captureEntrypoint,
109
+ captureEntrypointWithMockSdk,
110
+ inspectCompatibilityFixtureSet,
111
+ inspectFixtureSet,
112
+ inspectPlugin,
113
+ inspectSourceText,
114
+ } from "./inspector.js";
115
+ export {
116
+ defaultPluginRootConfigFiles,
117
+ fixtureCheckoutPath,
118
+ fixtureSourceRoot,
119
+ loadInspectorConfig,
120
+ loadPluginRootConfig,
121
+ normalizeInspectorConfig,
122
+ normalizePluginRootConfig,
123
+ validateInspectorConfig,
124
+ } from "./config.js";
125
+ export {
126
+ buildPlatformProbes,
127
+ defaultPlatformTargets,
128
+ renderPlatformProbesMarkdown,
129
+ validatePlatformProbes,
130
+ writePlatformProbes,
131
+ } from "./platform-probes.js";
132
+ export {
133
+ buildProfileDiff,
134
+ defaultProfileDiffOptions,
135
+ renderProfileDiffMarkdown,
136
+ validateProfileDiff,
137
+ writeProfileDiff,
138
+ } from "./profile-diff.js";
139
+ export {
140
+ buildRefDiff,
141
+ defaultRefDiffDimensions,
142
+ defaultRefDiffOptions,
143
+ renderRefDiffMarkdown,
144
+ validateRefDiff,
145
+ writeRefDiff,
146
+ } from "./ref-diff.js";
147
+ export {
148
+ buildCompatibilityReport,
149
+ classifyCompatRecordCoverage,
150
+ renderMarkdownReport,
151
+ renderTextSummary,
152
+ writeCompatibilityReport,
153
+ writeReport,
154
+ } from "./report.js";
155
+ export {
156
+ buildRuntimeProfile,
157
+ defaultRuntimeProfileCommands,
158
+ defaultRuntimeProfileOptions,
159
+ renderRuntimeProfileMarkdown,
160
+ validateRuntimeProfile,
161
+ writeRuntimeProfile,
162
+ } from "./runtime-profile.js";
163
+ export {
164
+ buildRuntimeCaptureReport,
165
+ renderRuntimeCaptureMarkdown,
166
+ writeRuntimeCaptureReport,
167
+ } from "./runtime-capture-report.js";
168
+ export { createMockSdkPackage } from "./sdk-mock.js";
169
+ export {
170
+ buildSyntheticProbePlan,
171
+ defaultSyntheticHookContexts,
172
+ defaultSyntheticHookEvents,
173
+ defaultSyntheticRegistrationArguments,
174
+ renderSyntheticProbeMarkdown,
175
+ runCapturedSyntheticProbes,
176
+ syntheticRegistrationExecutionProfiles,
177
+ validateSyntheticProbePlan,
178
+ writeSyntheticProbePlan,
179
+ } from "./synthetic-probes.js";
180
+ export {
181
+ buildWorkspacePlan,
182
+ defaultWorkspacePlanOptions,
183
+ renderWorkspacePlanMarkdown,
184
+ validateWorkspacePlan,
185
+ writeWorkspacePlan,
186
+ } from "./workspace-plan.js";
package/src/api.js ADDED
@@ -0,0 +1,85 @@
1
+ import path from "node:path";
2
+ import { createCaptureApi } from "./capture-api.js";
3
+ import { loadInspectorConfig, loadPluginRootConfig } from "./config.js";
4
+ import { captureEntrypoint } from "./inspector.js";
5
+ import { renderTextSummary, writeCompatibilityReport } from "./report.js";
6
+ import { buildRuntimeCaptureReport, writeRuntimeCaptureReport } from "./runtime-capture-report.js";
7
+ import { inspectCompatibilityFixtureSet, inspectFixtureSet } from "./inspector.js";
8
+
9
+ export async function loadPluginConfig(options = {}) {
10
+ if (options.config) {
11
+ return options.config;
12
+ }
13
+ const cwd = options.pluginRoot ?? options.cwd;
14
+ if (options.configPath) {
15
+ return options.fixtureSet === true
16
+ ? loadInspectorConfig(options.configPath, { cwd })
17
+ : loadPluginRootConfig(options.configPath, { cwd });
18
+ }
19
+ return loadPluginRootConfig(null, { cwd });
20
+ }
21
+
22
+ export async function inspectPluginRoot(options = {}) {
23
+ const config = await loadPluginConfig(options);
24
+ return inspectCompatibilityFixtureSet(config, {
25
+ generatedAt: options.generatedAt,
26
+ openclawPath: options.openclawPath,
27
+ targetOpenClaw: options.targetOpenClaw,
28
+ });
29
+ }
30
+
31
+ export async function inspectFixtureSetConfig(options = {}) {
32
+ const config = options.config ?? (await loadInspectorConfig(options.configPath, { cwd: options.cwd }));
33
+ return inspectFixtureSet(config, { generatedAt: options.generatedAt });
34
+ }
35
+
36
+ export async function writePluginReports(report, options = {}) {
37
+ return writeCompatibilityReport(report, {
38
+ basename: options.basename,
39
+ check: options.check,
40
+ cwd: options.cwd ?? options.pluginRoot,
41
+ issuesBasename: options.issuesBasename,
42
+ outDir: options.outDir,
43
+ });
44
+ }
45
+
46
+ export async function runPluginCheck(options = {}) {
47
+ const outDir = options.outDir ?? "reports";
48
+ const report = await inspectPluginRoot(options);
49
+ const paths = await writePluginReports(report, { ...options, outDir });
50
+ const result = { report, paths };
51
+
52
+ if (options.capture === true) {
53
+ if (process.env.PLUGIN_INSPECTOR_EXECUTE_ISOLATED !== "1") {
54
+ throw new Error("runtime capture imports plugin code; rerun with PLUGIN_INSPECTOR_EXECUTE_ISOLATED=1 in an isolated workspace");
55
+ }
56
+ const config = await loadPluginConfig(options);
57
+ const runtimeCapture = await buildRuntimeCaptureReport({
58
+ mockSdk: options.mockSdk ?? true,
59
+ report,
60
+ rootDir: config.rootDir,
61
+ });
62
+ const outputRoot = options.cwd ?? options.pluginRoot ?? process.cwd();
63
+ const runtimeCapturePaths = await writeRuntimeCaptureReport(runtimeCapture, {
64
+ jsonPath: path.resolve(outputRoot, outDir, "plugin-inspector-runtime-capture.json"),
65
+ markdownPath: path.resolve(outputRoot, outDir, "plugin-inspector-runtime-capture.md"),
66
+ });
67
+ result.runtimeCapture = runtimeCapture;
68
+ result.runtimeCapturePaths = runtimeCapturePaths;
69
+ if (runtimeCapture.summary.failedCount > 0) {
70
+ throw new Error(`plugin-inspector runtime capture failed for ${runtimeCapture.summary.failedCount} entrypoints`);
71
+ }
72
+ }
73
+
74
+ if (options.failOnBreakages === true && report.status !== "pass") {
75
+ throw new Error(`plugin-inspector found ${report.summary.breakageCount} breakages`);
76
+ }
77
+
78
+ return result;
79
+ }
80
+
81
+ export async function capturePluginEntrypoint(entrypoint, options = {}) {
82
+ return captureEntrypoint(entrypoint, options);
83
+ }
84
+
85
+ export { createCaptureApi, renderTextSummary };
package/src/cli.js CHANGED
@@ -1,17 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
- buildRuntimeCaptureReport,
3
+ renderTextSummary,
4
+ runPluginCheck,
5
+ } from "./index.js";
6
+ import {
4
7
  captureEntrypoint,
5
- inspectCompatibilityFixtureSet,
6
8
  inspectFixtureSet,
7
9
  loadInspectorConfig,
8
- loadPluginRootConfig,
9
- renderTextSummary,
10
10
  writeArtifacts,
11
- writeCompatibilityReport,
12
11
  writeReport,
13
- writeRuntimeCaptureReport,
14
- } from "./index.js";
12
+ } from "./advanced.js";
15
13
 
16
14
  const args = process.argv.slice(2);
17
15
  const command = args[0]?.startsWith("-") ? "check" : (args[0] ?? "check");
@@ -40,22 +38,7 @@ async function runCheck(commandArgs) {
40
38
  const openclawPath = commandArgs.includes("--no-openclaw") ? false : readFlag(commandArgs, "--openclaw");
41
39
  const json = commandArgs.includes("--json");
42
40
  const capture = commandArgs.includes("--capture");
43
- const config = configPath ? await loadInspectorConfig(configPath) : await loadPluginRootConfig();
44
- const report = await inspectCompatibilityFixtureSet(config, { openclawPath });
45
- await writeCompatibilityReport(report, { outDir });
46
- if (capture) {
47
- if (process.env.PLUGIN_INSPECTOR_EXECUTE_ISOLATED !== "1") {
48
- throw new Error("check --capture imports plugin code; rerun with PLUGIN_INSPECTOR_EXECUTE_ISOLATED=1 in an isolated workspace");
49
- }
50
- const captureReport = await buildRuntimeCaptureReport({ report, rootDir: config.rootDir, mockSdk: true });
51
- await writeRuntimeCaptureReport(captureReport, {
52
- jsonPath: `${outDir}/plugin-inspector-runtime-capture.json`,
53
- markdownPath: `${outDir}/plugin-inspector-runtime-capture.md`,
54
- });
55
- if (captureReport.summary.failedCount > 0) {
56
- throw new Error(`plugin-inspector runtime capture failed for ${captureReport.summary.failedCount} entrypoints`);
57
- }
58
- }
41
+ const { report } = await runPluginCheck({ configPath, outDir, openclawPath, capture });
59
42
 
60
43
  if (json) {
61
44
  console.log(JSON.stringify(report, null, 2));
package/src/index.js CHANGED
@@ -1,186 +1,10 @@
1
1
  export {
2
- escapeMarkdownTableCell,
3
- renderArtifactContent,
4
- renderMarkdownTable,
5
- renderPaddedMarkdownTable,
6
- writeArtifacts,
7
- writeJsonMarkdownArtifacts,
8
- } from "./artifacts.js";
9
- export {
10
- normalizeRepoPath,
11
- posixJoin,
12
- resolveFromRoot,
13
- resolveRequiredFromRoot,
14
- slugForArtifact,
15
- toRepoPath,
16
- } from "./path-utils.js";
17
- export { readJsonFile, readOptionalJsonFile } from "./json-file.js";
18
- export { assertRunCount, percentile } from "./stats.js";
19
- export { createCaptureApi } from "./capture-api.js";
20
- export {
21
- buildCiPolicyReport,
22
- defaultCiPolicyReportOptions,
23
- renderCiPolicyMarkdown,
24
- validateCiPolicy,
25
- validateCiPolicyReport,
26
- writeCiPolicyReport,
27
- } from "./ci-policy.js";
28
- export {
29
- buildCiSummary,
30
- defaultCiReportPaths,
31
- deriveCiStatus,
32
- readCiReports,
33
- renderCiSummaryMarkdown,
34
- writeCiSummary,
35
- } from "./ci-summary.js";
36
- export {
37
- buildContractProbes,
38
- contractProbeRules,
39
- probePriority,
40
- } from "./contract-probes.js";
41
- export {
42
- buildContractCapture,
43
- defaultHookAssertions,
44
- defaultHookContexts,
45
- defaultHookEvents,
46
- defaultRegistrationArguments,
47
- defaultRegistrationAssertions,
48
- renderContractCaptureMarkdown,
49
- validateContractCapture,
50
- writeContractCapture,
51
- } from "./contract-capture.js";
52
- export {
53
- renderCompatibilityIssuesReport,
54
- renderCompatibilityMarkdownReport,
55
- } from "./compatibility-report.js";
56
- export {
57
- knownIssueClasses,
58
- validateContractCoverage,
59
- } from "./contract-coverage.js";
60
- export {
61
- buildColdImportReadiness,
62
- renderColdImportReadinessMarkdown,
63
- validateColdImportReadiness,
64
- writeColdImportReadiness,
65
- } from "./cold-import-readiness.js";
66
- export {
67
- buildIssues,
68
- classifyIssueFinding,
69
- deprecatedCompatRecords,
70
- issueId,
71
- issueMetadata,
72
- issueMetadataByCode,
73
- knownIssueCodes,
74
- summarizeIssueClasses,
75
- } from "./issues.js";
76
- export {
77
- buildExecutionResultsReport,
78
- defaultExecutionResultsOptions,
79
- renderExecutionResultsMarkdown,
80
- writeExecutionResultsReport,
81
- } from "./execution-results.js";
82
- export {
83
- buildCompatibilityFixtureReport,
84
- classifyCompatibilityFixture,
85
- classifyPackageContracts,
86
- classifyTargetOpenClawCoverage,
87
- readPackageSummaries,
88
- readPluginManifests,
89
- summarizePackage,
90
- } from "./fixture-summary.js";
91
- export {
92
- buildImportLoopProfile,
93
- defaultImportLoopProfileOptions,
94
- renderImportLoopProfileMarkdown,
95
- validateImportLoopProfile,
96
- writeImportLoopProfile,
97
- } from "./import-loop-profile.js";
98
- export {
99
- defaultOpenClawCheckoutPaths,
100
- openClawTargetPathCandidates,
101
- parseCompatRecordEntries,
102
- parseExportedStringArray,
103
- parsePluginSdkExports,
104
- parseTypeFields,
105
- readOpenClawTargetSurface,
106
- } from "./openclaw-target.js";
107
- export {
108
- captureEntrypoint,
109
- captureEntrypointWithMockSdk,
110
- inspectCompatibilityFixtureSet,
111
- inspectFixtureSet,
112
- inspectPlugin,
113
- inspectSourceText,
114
- } from "./inspector.js";
115
- export {
116
- defaultPluginRootConfigFiles,
117
- fixtureCheckoutPath,
118
- fixtureSourceRoot,
119
- loadInspectorConfig,
120
- loadPluginRootConfig,
121
- normalizeInspectorConfig,
122
- normalizePluginRootConfig,
123
- validateInspectorConfig,
124
- } from "./config.js";
125
- export {
126
- buildPlatformProbes,
127
- defaultPlatformTargets,
128
- renderPlatformProbesMarkdown,
129
- validatePlatformProbes,
130
- writePlatformProbes,
131
- } from "./platform-probes.js";
132
- export {
133
- buildProfileDiff,
134
- defaultProfileDiffOptions,
135
- renderProfileDiffMarkdown,
136
- validateProfileDiff,
137
- writeProfileDiff,
138
- } from "./profile-diff.js";
139
- export {
140
- buildRefDiff,
141
- defaultRefDiffDimensions,
142
- defaultRefDiffOptions,
143
- renderRefDiffMarkdown,
144
- validateRefDiff,
145
- writeRefDiff,
146
- } from "./ref-diff.js";
147
- export {
148
- buildCompatibilityReport,
149
- classifyCompatRecordCoverage,
150
- renderMarkdownReport,
2
+ capturePluginEntrypoint,
3
+ createCaptureApi,
4
+ inspectFixtureSetConfig,
5
+ inspectPluginRoot,
6
+ loadPluginConfig,
151
7
  renderTextSummary,
152
- writeCompatibilityReport,
153
- writeReport,
154
- } from "./report.js";
155
- export {
156
- buildRuntimeProfile,
157
- defaultRuntimeProfileCommands,
158
- defaultRuntimeProfileOptions,
159
- renderRuntimeProfileMarkdown,
160
- validateRuntimeProfile,
161
- writeRuntimeProfile,
162
- } from "./runtime-profile.js";
163
- export {
164
- buildRuntimeCaptureReport,
165
- renderRuntimeCaptureMarkdown,
166
- writeRuntimeCaptureReport,
167
- } from "./runtime-capture-report.js";
168
- export { createMockSdkPackage } from "./sdk-mock.js";
169
- export {
170
- buildSyntheticProbePlan,
171
- defaultSyntheticHookContexts,
172
- defaultSyntheticHookEvents,
173
- defaultSyntheticRegistrationArguments,
174
- renderSyntheticProbeMarkdown,
175
- runCapturedSyntheticProbes,
176
- syntheticRegistrationExecutionProfiles,
177
- validateSyntheticProbePlan,
178
- writeSyntheticProbePlan,
179
- } from "./synthetic-probes.js";
180
- export {
181
- buildWorkspacePlan,
182
- defaultWorkspacePlanOptions,
183
- renderWorkspacePlanMarkdown,
184
- validateWorkspacePlan,
185
- writeWorkspacePlan,
186
- } from "./workspace-plan.js";
8
+ runPluginCheck,
9
+ writePluginReports,
10
+ } from "./api.js";