feat: npm publish pipeline + package versioning (0.0.1-alpha.1)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful

Publish pipeline:
- Add publish-npm step to .woodpecker/publish.yml — publishes all
  @mosaic/* packages to Gitea npm registry on main push/tag
- Requires gitea_npm_token Woodpecker secret (package:write scope)
- publish-npm runs after build, parallel with Docker image builds
- pnpm publish resolves workspace:* to concrete versions automatically

Package configuration:
- All 20 packages versioned at 0.0.1-alpha.1
- publishConfig added to all packages (Gitea registry, public access)
- files field added to all packages (ship only dist/)
- @mosaic/forge includes pipeline/ assets in published package

Meta package (@mosaic/mosaic):
- Now depends on @mosaic/forge, @mosaic/macp, @mosaic/prdy,
  @mosaic/quality-rails, @mosaic/types
- npm install @mosaic/mosaic pulls in the standalone framework

Build fixes:
- Fix forge and macp tsconfig rootDir: '.' -> 'src' so dist/index.js
  resolves correctly (was dist/src/index.js)
- Exclude __tests__ and vitest.config from build includes
- Clean stale build artifacts from old rootDir config

Required Woodpecker secret:
  woodpecker secret add mosaic/mosaic-stack \
    --name gitea_npm_token --value '<token>' \
    --event push,manual,tag
This commit is contained in:
Jason Woltje
2026-04-01 12:46:13 -05:00
parent aa80013811
commit 13934d4879
24 changed files with 243 additions and 99 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "@mosaic/discord-plugin",
"version": "0.0.0",
"version": "0.0.1-alpha.1",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"exports": {
@@ -24,5 +24,12 @@
"tsx": "^4.0.0",
"typescript": "^5.8.0",
"vitest": "^2.0.0"
}
},
"publishConfig": {
"registry": "https://git.mosaicstack.dev/api/packages/mosaic/npm/",
"access": "public"
},
"files": [
"dist"
]
}

View File

@@ -1,6 +1,6 @@
{
"name": "@mosaic/oc-macp-plugin",
"version": "0.1.0",
"version": "0.0.1-alpha.1",
"type": "module",
"main": "src/index.ts",
"description": "OpenClaw ACP runtime backend that routes sessions_spawn(runtime:\"macp\") to the Pi MACP runner.",
@@ -16,5 +16,12 @@
},
"devDependencies": {
"openclaw": "*"
}
},
"publishConfig": {
"registry": "https://git.mosaicstack.dev/api/packages/mosaic/npm/",
"access": "public"
},
"files": [
"dist"
]
}

View File

@@ -1,6 +1,6 @@
{
"name": "@mosaic/oc-framework-plugin",
"version": "0.1.0",
"version": "0.0.1-alpha.1",
"type": "module",
"main": "src/index.ts",
"description": "Injects Mosaic framework rails, runtime contract, and active mission context into all OpenClaw agent sessions and ACP subagent spawns.",
@@ -11,5 +11,12 @@
},
"devDependencies": {
"openclaw": "*"
}
},
"publishConfig": {
"registry": "https://git.mosaicstack.dev/api/packages/mosaic/npm/",
"access": "public"
},
"files": [
"dist"
]
}

View File

@@ -1,6 +1,6 @@
{
"name": "@mosaic/telegram-plugin",
"version": "0.0.0",
"version": "0.0.1-alpha.1",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"exports": {
@@ -22,5 +22,12 @@
"dependencies": {
"socket.io-client": "^4.8.0",
"telegraf": "^4.16.3"
}
},
"publishConfig": {
"registry": "https://git.mosaicstack.dev/api/packages/mosaic/npm/",
"access": "public"
},
"files": [
"dist"
]
}