From e4be39ac3f454fe7d15f2dcd6703130722af7052 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 29 Oct 2026 20:32:10 +0000 Subject: [PATCH] docs(design): plugin-distribution names esbuild, as os plugin build bundles The tree comment and section 5 step 1 named tsup; os plugin build bundles with esbuild into dist/index.mjs, externalizing @objectstack/* and inlining the rest. Claude-Session: https://claude.ai/code/session_01QSeKYmTYfaPbLQD4BJfomW Co-authored-by: Claude --- docs/design/plugin-distribution.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/design/plugin-distribution.md b/docs/design/plugin-distribution.md index 8fa58e0094f..81743d75553 100644 --- a/docs/design/plugin-distribution.md +++ b/docs/design/plugin-distribution.md @@ -110,7 +110,7 @@ A `tar.gz`: ``` -.osplugin ├── objectstack.plugin.json # compiled manifest (below) -├── dist/ # pre-built ESM bundle (tsup); @objectstack/* externalized +├── dist/ # pre-built ESM bundle (esbuild → dist/index.mjs); @objectstack/* externalized ├── assets/ README LICENSE icon └── SIGNATURE # detached signature + publisher cert chain ``` @@ -161,7 +161,8 @@ client-scoped `permissions` (data read/write via SDK, network → CSP, navigatio os plugin build → os plugin sign → os plugin publish ``` -1. **build** — run `tsup` (externalize `@objectstack/*`); validate the manifest +1. **build** — esbuild-bundle the entry to `dist/index.mjs` (externalize `@objectstack/*`, + inline every other dependency); validate the manifest (Zod + the new `permissions` schema); gate on protocol/engine compatibility; compute per-file `integrity`; emit `-.osplugin`. 2. **sign** — sign with the publisher key (`PluginMetadata.signature`); may be