openclaw - ✅(Solved) Fix [Bug] @openclaw/brave-plugin: stable @2026.5.2 ships source-only, @2026.5.3-beta.2 ships dist-only — both fail plugin validator [1 pull requests, 2 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#77083Fetched 2026-05-05 05:52:32
View on GitHub
Comments
2
Participants
3
Timeline
7
Reactions
3
Timeline (top)
commented ×2cross-referenced ×2referenced ×2closed ×1

After brave was externalized to @openclaw/brave-plugin in 2026.5.2, both the stable release and the latest beta ship broken: @2026.5.2 contains only TypeScript source with no compiled output, while @2026.5.3-beta.2 contains only compiled dist/ with no source index.ts. The plugin runtime validator demands both, so the gateway fails to start with Config invalid: plugins: plugin: installed plugin package requires compiled runtime output for TypeScript entry index.ts.

Error Message

◇ Plugin diagnostics ──────────────────────────────────────────────────────────────────────╮ │ - ERROR: installed plugin package requires compiled runtime output for TypeScript entry │ │ index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js, │ │ index.mjs, index.cjs │ │ (~/.openclaw/npm/node_modules/@openclaw/brave-plugin) │ ├───────────────────────────────────────────────────────────────────────────────────────────╯ Error: Config validation failed: plugins: plugin: installed plugin package requires compiled runtime output for TypeScript entry index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs

Root Cause

Both fail validation because package.json declares "openclaw": { "extensions": ["./index.ts"] } and the validator wants the index.ts source plus a sibling compiled artifact at one of ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs.

Fix Action

Fix / Workaround

Steps to reproduce

  1. openclaw config has tools.web.search.provider: "brave" and plugins.entries.brave.enabled: true (typical setup carried over from when brave was bundled).
  2. Upgrade to openclaw 2026.5.2 or 2026.5.3-beta.x via npm install -g.
  3. openclaw doctor --fix --non-interactive (auto-installs @openclaw/[email protected]).
  4. openclaw gateway restart --force → fails with config invalid.

Additional information

  • Last known good: 2026.5.1 (brave bundled in core)
  • First known bad: 2026.5.2 (brave externalized; published tarball missing dist/)
  • Workaround used: disable plugins.entries.brave, switch tools.web.search.provider to firecrawl.
  • Both failure modes look like the publish workflow stripping the wrong files — 2026.5.2 stripped dist/, beta.2 stripped source. A correct publish should include both, or the plugin manifest should be updated to point extensions directly at the compiled output (e.g. ./dist/index.js) so the source is no longer required.

PR fix notes

PR #77100: fix #77083: [Bug] @openclaw/brave-plugin: stable @2026.5.2 ships source-only, @2026.5.3-beta.2 ships dist-only —

Description (problem / solution / changelog)

Summary

Fixes #77083

Issue

[Bug] @openclaw/brave-plugin: stable @2026.5.2 ships source-only, @2026.5.3-beta.2 ships dist-only — both fail plugin validator

Changes

  • fix(tests): add src/** coverage for plugin npm package files manifest
  • fix: resolve issue #77083

Changed Files

CHANGELOG.md                             |  1 +
 scripts/lib/plugin-npm-runtime-build.mjs |  6 ++++++
 test/plugin-npm-package-manifest.test.ts | 15 ++++++++++++++-
 3 files changed, 21 insertions(+), 1 deletion(-)

Changed files

  • CHANGELOG.md (modified, +1/-0)
  • scripts/lib/plugin-npm-runtime-build.mjs (modified, +6/-0)
  • test/plugin-npm-package-manifest.test.ts (modified, +14/-1)
  • test/plugin-npm-runtime-build.test.ts (modified, +4/-0)

Code Example

package/openclaw.plugin.json
package/package.json
package/tsconfig.json
package/src/brave-web-search-provider.runtime.ts
package/src/brave-web-search-provider.shared.ts
package/src/brave-web-search-provider.test.ts
package/src/brave-web-search-provider.ts
package/index.ts
package/test-api.ts
package/web-search-contract-api.ts
package/web-search-provider.ts

---

package/dist/brave-web-search-provider-CGCUaRRN.js
package/dist/brave-web-search-provider.runtime-Zj1jGbhx.js
package/dist/brave-web-search-provider.shared-Dca5ya1G.js
package/dist/index.js
package/dist/test-api.js
package/dist/web-search-contract-api.js
package/dist/web-search-provider.js
package/openclaw.plugin.json
package/package.json

---

Plugin diagnostics ──────────────────────────────────────────────────────────────────────╮
- ERROR: installed plugin package requires compiled runtime output for TypeScript entry  │
│    index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js,│    index.mjs, index.cjs    (~/.openclaw/npm/node_modules/@openclaw/brave-plugin)├───────────────────────────────────────────────────────────────────────────────────────────╯
Error: Config validation failed: plugins: plugin: installed plugin package requires compiled runtime output for TypeScript entry index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

Yes

Summary

After brave was externalized to @openclaw/brave-plugin in 2026.5.2, both the stable release and the latest beta ship broken: @2026.5.2 contains only TypeScript source with no compiled output, while @2026.5.3-beta.2 contains only compiled dist/ with no source index.ts. The plugin runtime validator demands both, so the gateway fails to start with Config invalid: plugins: plugin: installed plugin package requires compiled runtime output for TypeScript entry index.ts.

Steps to reproduce

  1. openclaw config has tools.web.search.provider: "brave" and plugins.entries.brave.enabled: true (typical setup carried over from when brave was bundled).
  2. Upgrade to openclaw 2026.5.2 or 2026.5.3-beta.x via npm install -g.
  3. openclaw doctor --fix --non-interactive (auto-installs @openclaw/[email protected]).
  4. openclaw gateway restart --force → fails with config invalid.

Expected behavior

Published @openclaw/brave-plugin tarball should contain both the source index.ts (or whatever the manifest declares as the entry) and the compiled dist/index.js so the runtime validator can resolve the entry. This was the case implicitly in 2026.5.1 when brave was bundled.

Actual behavior

Tarball inspection from npm registry:

@openclaw/[email protected]only .ts source, no compiled output:

package/openclaw.plugin.json
package/package.json
package/tsconfig.json
package/src/brave-web-search-provider.runtime.ts
package/src/brave-web-search-provider.shared.ts
package/src/brave-web-search-provider.test.ts
package/src/brave-web-search-provider.ts
package/index.ts
package/test-api.ts
package/web-search-contract-api.ts
package/web-search-provider.ts

@openclaw/[email protected]only dist/, no index.ts source:

package/dist/brave-web-search-provider-CGCUaRRN.js
package/dist/brave-web-search-provider.runtime-Zj1jGbhx.js
package/dist/brave-web-search-provider.shared-Dca5ya1G.js
package/dist/index.js
package/dist/test-api.js
package/dist/web-search-contract-api.js
package/dist/web-search-provider.js
package/openclaw.plugin.json
package/package.json

Both fail validation because package.json declares "openclaw": { "extensions": ["./index.ts"] } and the validator wants the index.ts source plus a sibling compiled artifact at one of ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs.

OpenClaw version

2026.5.3-beta.3 (also reproduced on 2026.5.2)

Operating system

macOS 26.4.1 (arm64)

Install method

npm global

Model

openai-codex/gpt-5.5

Provider / routing chain

openclaw -> openai-codex

Logs, screenshots, and evidence

◇  Plugin diagnostics ──────────────────────────────────────────────────────────────────────╮
│  - ERROR: installed plugin package requires compiled runtime output for TypeScript entry  │
│    index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js,      │
│    index.mjs, index.cjs                                                                   │
│    (~/.openclaw/npm/node_modules/@openclaw/brave-plugin)                                  │
├───────────────────────────────────────────────────────────────────────────────────────────╯
Error: Config validation failed: plugins: plugin: installed plugin package requires compiled runtime output for TypeScript entry index.ts: expected ./dist/index.js, ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs

Impact and severity

  • Affected: any user who configured brave web search before the externalization (i.e. carried tools.web.search.provider: brave from 2026.5.1 or earlier).
  • Severity: blocking — gateway will not start, so all bot channels (Telegram, Discord, etc.) go offline.
  • Frequency: 100% deterministic for affected configs.
  • Consequence: gateway flapping (auto-restore last-good loop) until user manually disables brave or migrates to a different web-search provider.

Additional information

  • Last known good: 2026.5.1 (brave bundled in core)
  • First known bad: 2026.5.2 (brave externalized; published tarball missing dist/)
  • Workaround used: disable plugins.entries.brave, switch tools.web.search.provider to firecrawl.
  • Both failure modes look like the publish workflow stripping the wrong files — 2026.5.2 stripped dist/, beta.2 stripped source. A correct publish should include both, or the plugin manifest should be updated to point extensions directly at the compiled output (e.g. ./dist/index.js) so the source is no longer required.

extent analysis

TL;DR

The @openclaw/brave-plugin package needs to include both the TypeScript source and compiled output to fix the validation error.

Guidance

  • Verify that the @openclaw/brave-plugin package includes both the source index.ts and compiled dist/index.js files.
  • Check the publish workflow to ensure it's not stripping the wrong files, causing the issue.
  • Consider updating the plugin manifest to point extensions directly at the compiled output (e.g., ./dist/index.js) to avoid requiring the source.
  • As a temporary workaround, disable plugins.entries.brave and switch tools.web.search.provider to firecrawl to allow the gateway to start.

Example

No code snippet is provided as it's not necessary for this issue.

Notes

The issue seems to be related to the publish workflow stripping the wrong files, causing the package to be missing either the source or compiled output. Updating the plugin manifest to point to the compiled output could be a more robust solution.

Recommendation

Apply a workaround by disabling plugins.entries.brave and switching tools.web.search.provider to firecrawl until the @openclaw/brave-plugin package is updated to include both the source and compiled output.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

Published @openclaw/brave-plugin tarball should contain both the source index.ts (or whatever the manifest declares as the entry) and the compiled dist/index.js so the runtime validator can resolve the entry. This was the case implicitly in 2026.5.1 when brave was bundled.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix [Bug] @openclaw/brave-plugin: stable @2026.5.2 ships source-only, @2026.5.3-beta.2 ships dist-only — both fail plugin validator [1 pull requests, 2 comments, 3 participants]