@openclaw/plugin-inspector 0.3.18 → 0.3.19

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,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.19 - 2026-07-27
4
+
5
+ ### Highlights
6
+
7
+ - Restore silently-lost manifest contract findings after OpenClaw moved its public manifest types into `manifest-types.ts`.
8
+
9
+ ### Changed
10
+
11
+ - Refresh generated and repository GitHub Actions workflows to the current checkout, setup-node, upload-artifact, and pnpm/action-setup releases.
12
+
3
13
  ## 0.3.18 - 2026-07-21
4
14
 
5
15
  ### Highlights
package/README.md CHANGED
@@ -256,14 +256,14 @@ jobs:
256
256
  check:
257
257
  runs-on: ubuntu-latest
258
258
  steps:
259
- - uses: actions/checkout@v5
260
- - uses: actions/setup-node@v5
259
+ - uses: actions/checkout@v7
260
+ - uses: actions/setup-node@v7
261
261
  with:
262
262
  node-version: 24
263
263
  cache: npm
264
264
  - run: npm ci
265
265
  - run: npx @openclaw/plugin-inspector ci --no-openclaw --runtime --mock-sdk --allow-execute
266
- - uses: actions/upload-artifact@v5
266
+ - uses: actions/upload-artifact@v7
267
267
  if: always()
268
268
  with:
269
269
  name: plugin-inspector-reports
@@ -13,8 +13,8 @@ jobs:
13
13
  check:
14
14
  runs-on: ubuntu-latest
15
15
  steps:
16
- - uses: actions/checkout@v5
17
- - uses: actions/setup-node@v5
16
+ - uses: actions/checkout@v7
17
+ - uses: actions/setup-node@v7
18
18
  with:
19
19
  node-version: 24
20
20
  cache: npm
@@ -24,7 +24,7 @@ jobs:
24
24
  if: always()
25
25
  with:
26
26
  sarif_file: reports/plugin-inspector.sarif
27
- - uses: actions/upload-artifact@v5
27
+ - uses: actions/upload-artifact@v7
28
28
  if: always()
29
29
  with:
30
30
  name: plugin-inspector-reports
@@ -9,14 +9,14 @@ jobs:
9
9
  check:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
- - uses: actions/checkout@v5
13
- - uses: actions/setup-node@v5
12
+ - uses: actions/checkout@v7
13
+ - uses: actions/setup-node@v7
14
14
  with:
15
15
  node-version: 24
16
16
  cache: npm
17
17
  - run: npm ci
18
18
  - run: npx @openclaw/plugin-inspector ci --no-openclaw --runtime --mock-sdk --allow-execute
19
- - uses: actions/upload-artifact@v5
19
+ - uses: actions/upload-artifact@v7
20
20
  if: always()
21
21
  with:
22
22
  name: plugin-inspector-reports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/plugin-inspector",
3
- "version": "0.3.18",
3
+ "version": "0.3.19",
4
4
  "private": false,
5
5
  "description": "Offline compatibility inspector for OpenClaw plugins.",
6
6
  "type": "module",
package/src/init.js CHANGED
@@ -108,14 +108,14 @@ jobs:
108
108
  check:
109
109
  runs-on: ubuntu-latest
110
110
  steps:
111
- - uses: actions/checkout@v5
112
- - uses: actions/setup-node@v5
111
+ - uses: actions/checkout@v7
112
+ - uses: actions/setup-node@v7
113
113
  with:
114
114
  node-version: 24
115
115
  cache: ${setup.cache}
116
116
  ${setup.corepack ? " - run: corepack enable\n" : ""} - run: ${setup.install}
117
117
  - run: ${setup.exec} @openclaw/plugin-inspector ci --no-openclaw --runtime --mock-sdk --allow-execute
118
- - uses: actions/upload-artifact@v5
118
+ - uses: actions/upload-artifact@v7
119
119
  if: always()
120
120
  with:
121
121
  name: plugin-inspector-reports
package/src/issues.js CHANGED
@@ -583,10 +583,6 @@ export function classifyIssueFinding(finding, targetOpenClaw, metadata = {}) {
583
583
  };
584
584
  }
585
585
 
586
- export function isInspectorGapFinding(finding, targetOpenClaw) {
587
- return issueMetadata(finding, targetOpenClaw).issueClass === "inspector-gap";
588
- }
589
-
590
586
  export function isAuthorFacingFinding(finding, targetOpenClaw) {
591
587
  return Boolean(issueMetadata(finding, targetOpenClaw).authorRemediation);
592
588
  }
@@ -30,7 +30,8 @@ export async function readOpenClawTargetSurface(options = {}) {
30
30
  const hookTypesPath = path.join(resolvedPath, "src/plugins/hook-types.ts");
31
31
  const apiBuilderPath = path.join(resolvedPath, "src/plugins/api-builder.ts");
32
32
  const capturedRegistrationPath = path.join(resolvedPath, "src/plugins/captured-registration.ts");
33
- const manifestTypesPath = path.join(resolvedPath, "src/plugins/manifest.ts");
33
+ const currentManifestTypesPath = path.join(resolvedPath, "src/plugins/manifest-types.ts");
34
+ const legacyManifestTypesPath = path.join(resolvedPath, "src/plugins/manifest.ts");
34
35
  const pluginSdkEntrypointsPath = path.join(resolvedPath, "src/plugin-sdk/entrypoints.ts");
35
36
  const packagePath = path.join(resolvedPath, "package.json");
36
37
 
@@ -40,9 +41,21 @@ export async function readOpenClawTargetSurface(options = {}) {
40
41
  const hookNames = hookTypesSource ? parseConstStringArray(hookTypesSource, "PLUGIN_HOOK_NAMES") : [];
41
42
  const apiBuilderSource = existsSync(apiBuilderPath) ? await readFile(apiBuilderPath, "utf8") : "";
42
43
  const apiRegistrars = apiBuilderSource ? parseApiRegistrars(apiBuilderSource) : [];
43
- const manifestTypesSource = existsSync(manifestTypesPath) ? await readFile(manifestTypesPath, "utf8") : "";
44
- const manifestFields = manifestTypesSource ? parseTypeFields(manifestTypesSource, "PluginManifest") : [];
45
- const manifestContractFields = manifestTypesSource ? parseTypeFields(manifestTypesSource, "PluginManifestContracts") : [];
44
+ const currentManifestTypesSource = existsSync(currentManifestTypesPath)
45
+ ? await readFile(currentManifestTypesPath, "utf8")
46
+ : "";
47
+ const legacyManifestTypesSource = existsSync(legacyManifestTypesPath)
48
+ ? await readFile(legacyManifestTypesPath, "utf8")
49
+ : "";
50
+ const currentManifestFields = parseTypeFields(currentManifestTypesSource, "PluginManifest");
51
+ const legacyManifestFields = parseTypeFields(legacyManifestTypesSource, "PluginManifest");
52
+ const currentManifestContractFields = parseTypeFields(currentManifestTypesSource, "PluginManifestContracts");
53
+ const legacyManifestContractFields = parseTypeFields(legacyManifestTypesSource, "PluginManifestContracts");
54
+ const useCurrentManifestTypes = currentManifestFields.length > 0;
55
+ const manifestTypesPath = useCurrentManifestTypes ? currentManifestTypesPath : legacyManifestTypesPath;
56
+ const manifestFields = useCurrentManifestTypes ? currentManifestFields : legacyManifestFields;
57
+ const manifestContractFields =
58
+ currentManifestContractFields.length > 0 ? currentManifestContractFields : legacyManifestContractFields;
46
59
  const capturedRegistrars = existsSync(capturedRegistrationPath)
47
60
  ? parseCapturedRegistrars(await readFile(capturedRegistrationPath, "utf8"))
48
61
  : [];