feat: add release pipeline for crates.io and npm publishing

- Add --check, --publish-crates, --publish-npm-sdk, --publish-npm-cli flags to release script
- Create CI workflow with pre-release checks (cargo fmt, clippy, test, tsc)
- Update release workflow to run checks, build binaries, and publish packages
- Add @sandbox-agent/cli npm package with platform-specific binaries (esbuild pattern)
- Configure TypeScript SDK for npm publishing (exports, files, types)
- Add crates.io metadata to Cargo.toml (repository, description)
- Rename @sandbox-agent/web to @sandbox-agent/inspector
This commit is contained in:
Nathan Flurry 2026-01-25 14:11:39 -08:00
parent 6e1b13c242
commit 016024c04b
26 changed files with 360 additions and 48 deletions

View file

@ -4,11 +4,11 @@ RUN npm install -g pnpm
# Copy package files for all workspaces
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
COPY frontend/packages/web/package.json ./frontend/packages/web/
COPY frontend/packages/inspector/package.json ./frontend/packages/inspector/
COPY sdks/typescript/package.json ./sdks/typescript/
# Install dependencies
RUN pnpm install --filter @sandbox-agent/web...
RUN pnpm install --filter @sandbox-agent/inspector...
# Copy SDK source (with pre-generated types)
COPY sdks/typescript ./sdks/typescript
@ -16,14 +16,14 @@ COPY sdks/typescript ./sdks/typescript
# Build SDK (just tsc, skip generate since types are pre-generated)
RUN cd sdks/typescript && pnpm exec tsc -p tsconfig.json
# Copy web source
COPY frontend/packages/web ./frontend/packages/web
# Copy inspector source
COPY frontend/packages/inspector ./frontend/packages/inspector
# Build web
RUN cd frontend/packages/web && pnpm exec vite build
# Build inspector
RUN cd frontend/packages/inspector && pnpm exec vite build
FROM caddy:alpine
COPY --from=build /app/frontend/packages/web/dist /srv
COPY --from=build /app/frontend/packages/inspector/dist /srv
RUN cat > /etc/caddy/Caddyfile <<'EOF'
:80 {
root * /srv

View file

@ -1,5 +1,5 @@
{
"name": "@sandbox-agent/web",
"name": "@sandbox-agent/inspector",
"private": true,
"version": "0.0.0",
"license": "Apache-2.0",