From a3b5f1b15ce78cca46b509ad1667ae661a34256d Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 6 Feb 2026 18:43:11 -0800 Subject: [PATCH] fix(build): unblock pnpm build dts --- package.json | 3 ++- scripts/write-plugin-sdk-entry-dts.ts | 9 +++++++++ tsconfig.plugin-sdk.dts.json | 15 +++++++++++++++ tsdown.config.ts | 1 - 4 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 scripts/write-plugin-sdk-entry-dts.ts create mode 100644 tsconfig.plugin-sdk.dts.json diff --git a/package.json b/package.json index 558c1f484a..55b84e2234 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,8 @@ "android:install": "cd apps/android && ./gradlew :app:installDebug", "android:run": "cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity", "android:test": "cd apps/android && ./gradlew :app:testDebugUnitTest", - "build": "pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts", + "build": "pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts", + "build:plugin-sdk:dts": "tsc -p tsconfig.plugin-sdk.dts.json", "canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh", "check": "pnpm tsgo && pnpm lint && pnpm format", "check:docs": "pnpm format:docs && pnpm lint:docs && pnpm docs:build", diff --git a/scripts/write-plugin-sdk-entry-dts.ts b/scripts/write-plugin-sdk-entry-dts.ts new file mode 100644 index 0000000000..25d0631590 --- /dev/null +++ b/scripts/write-plugin-sdk-entry-dts.ts @@ -0,0 +1,9 @@ +import fs from "node:fs"; +import path from "node:path"; + +// `tsc` emits the entry d.ts at `dist/plugin-sdk/plugin-sdk/index.d.ts` because +// the source lives at `src/plugin-sdk/index.ts` and `rootDir` is `src/`. +// Keep a stable `dist/plugin-sdk/index.d.ts` alongside `index.js` for TS users. +const out = path.join(process.cwd(), "dist/plugin-sdk/index.d.ts"); +fs.mkdirSync(path.dirname(out), { recursive: true }); +fs.writeFileSync(out, 'export * from "./plugin-sdk/index";\n', "utf8"); diff --git a/tsconfig.plugin-sdk.dts.json b/tsconfig.plugin-sdk.dts.json new file mode 100644 index 0000000000..4883a7809d --- /dev/null +++ b/tsconfig.plugin-sdk.dts.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "declaration": true, + "declarationMap": false, + "emitDeclarationOnly": true, + "noEmit": false, + "noEmitOnError": true, + "outDir": "dist/plugin-sdk", + "rootDir": "src", + "tsBuildInfoFile": "dist/plugin-sdk/.tsbuildinfo" + }, + "include": ["src/plugin-sdk/index.ts", "src/types/**/*.d.ts"], + "exclude": ["node_modules", "dist", "src/**/*.test.ts"] +} diff --git a/tsdown.config.ts b/tsdown.config.ts index 137ce4b6a8..d4c11bd53f 100644 --- a/tsdown.config.ts +++ b/tsdown.config.ts @@ -18,7 +18,6 @@ export default defineConfig([ platform: "node", }, { - dts: true, entry: "src/plugin-sdk/index.ts", outDir: "dist/plugin-sdk", env,