codex-plugin-doctor 1.36.0 → 1.37.0

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/README.md CHANGED
@@ -402,9 +402,9 @@ jobs:
402
402
  runs-on: ubuntu-latest
403
403
  steps:
404
404
  - uses: actions/checkout@v5
405
- - uses: Esquetta/CodexPluginDoctor@v1.36.0
405
+ - uses: Esquetta/CodexPluginDoctor@v1.37.0
406
406
  with:
407
- version: "1.36.0"
407
+ version: "1.37.0"
408
408
  path: .
409
409
  runtime: "true"
410
410
  policy: codex-publish
@@ -406,6 +406,7 @@ export async function validatePlugin(targetPath, options = {}) {
406
406
  }
407
407
  const runtimeResult = options.runtime
408
408
  ? await probeRuntime(discoveredPackage, {
409
+ startupTimeoutMs: options.runtimeStartupTimeoutMs,
409
410
  transcript: options.runtimeTranscript
410
411
  })
411
412
  : null;
@@ -34,6 +34,7 @@ export interface CheckResult {
34
34
  export interface CheckOptions {
35
35
  runtime?: boolean;
36
36
  runtimeTranscript?: (line: string) => void;
37
+ runtimeStartupTimeoutMs?: number;
37
38
  }
38
39
  export interface PluginManifest {
39
40
  name?: string;
package/dist/run-cli.js CHANGED
@@ -742,19 +742,29 @@ function renderSelfTestReport(targetPath, validationStatus, findingsCount, compa
742
742
  ].join("\n");
743
743
  }
744
744
  async function resolveLatestNpmVersion() {
745
- return new Promise((resolve, reject) => {
746
- execFile("npm", ["view", "codex-plugin-doctor", "version"], { shell: process.platform === "win32" }, (error, stdout, stderr) => {
747
- if (error) {
748
- reject(new Error(stderr.trim() || error.message));
749
- return;
750
- }
751
- resolve(stdout.trim());
745
+ const controller = new AbortController();
746
+ const timeout = setTimeout(() => controller.abort(), 10_000);
747
+ try {
748
+ const response = await fetch("https://registry.npmjs.org/codex-plugin-doctor", {
749
+ signal: controller.signal
752
750
  });
753
- });
751
+ if (!response.ok) {
752
+ throw new Error(`npm registry returned ${response.status}`);
753
+ }
754
+ const data = await response.json();
755
+ const latestVersion = data["dist-tags"]?.latest;
756
+ if (!latestVersion) {
757
+ throw new Error("npm registry response did not include dist-tags.latest");
758
+ }
759
+ return latestVersion;
760
+ }
761
+ finally {
762
+ clearTimeout(timeout);
763
+ }
754
764
  }
755
765
  async function uploadGitHubReleaseAsset(args) {
756
766
  return new Promise((resolve, reject) => {
757
- execFile("gh", args, { shell: process.platform === "win32" }, (error, _stdout, stderr) => {
767
+ execFile("gh", args, (error, _stdout, stderr) => {
758
768
  if (error) {
759
769
  reject(new Error(stderr.trim() || error.message));
760
770
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-plugin-doctor",
3
- "version": "1.36.0",
3
+ "version": "1.37.0",
4
4
  "description": "CLI-first validator for Codex plugins, skills, and MCP package surfaces with runtime MCP protocol validation.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",