Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/skills/manage-ci/references/current-inventory.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ the commands at the end before operational changes.
| `windows-warm-caches.yml` | Main path push, dispatch | Trusted Windows ABI cache warming |
| `website-pages.yml` | Main website path push, dispatch | Public website Pages build/deploy |
| `fly-deploy-console.yml` | Dispatch | `fly-console` environment deployment |
| `release.yml` | `v*` tag, dispatch | Release builds, attestations, publishing, downstream image dispatch |
| `release.yml` | `v*` tag, dispatch | Release builds, attestations, publishing, downstream package/image/npm dispatch |
| `reset-caches.yml` | Confirmed dispatch | Destructive repository cache reset |
| `stale-prs.yml` | Schedule, dispatch | PR warning/closure maintenance |

Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1432,7 +1432,8 @@ jobs:
version: $version,
dry_run: false,
publish_images: true,
publish_release_assets: true
publish_release_assets: true,
publish_npm: true

@i386 i386 Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ignore this comment. The concern is addressed once Mesh-LLM/mesh-packaging#5 is merged, because that workflow then consumes client_payload.publish_npm.

}
}' |
gh api \
Expand Down
5 changes: 3 additions & 2 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ manifest, packages SDK console assets, creates and pushes the release tag,
builds all platform bundles, and publishes the GitHub release. After a complete
non-canary release succeeds, it dispatches `Mesh-LLM/mesh-packaging` to
package the verified release archives, publish the native package release
assets, and publish the supported GHCR image matrix. Dispatch inputs include
assets, publish the supported GHCR image matrix, and assemble and publish the
Node SDK to npm. Dispatch inputs include
`skip_gpu_bundles` and `canary` (dry-run: build and smoke everything without
publishing). Releases that intentionally skip GPU bundles do not dispatch the
full packaging matrix.
Expand Down Expand Up @@ -178,7 +179,7 @@ Verify:

Push a `v*` tag to run `.github/workflows/release.yml`. The upstream release
workflow owns release archive production, but it does not publish OCI images.
`Mesh-LLM/mesh-packaging` is the canonical GHCR producer and starts only
`Mesh-LLM/mesh-packaging` is the canonical package, GHCR, and npm producer and starts only
after the GitHub release and its complete archive set have published
successfully. The upstream `docker.yml` workflow performs Dockerfile validation
only and is not a distribution channel.
Expand Down
12 changes: 6 additions & 6 deletions ci/ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ subgraph PRCI["pr_builds.yml · PR Builds"]
MainCI["ci.yml\npush main / dispatch"]
WebsiteDeploy["website-pages.yml\nActions Pages deploy\nPublic Website environment"]
DockerValidate["docker.yml\nmanual client Dockerfile validation"]
Release["release.yml\nrelease artifacts + packaging dispatch"]
Release["release.yml\nrelease artifacts + package/image/npm dispatch"]
FlyConsole["fly-deploy-console.yml\nmanual Fly console deploy"]
end

Expand Down Expand Up @@ -197,11 +197,11 @@ subgraph PRCI["pr_builds.yml · PR Builds"]
serial and rate-limited; a final summary aggregates cache shard results plus
artifact cleanup. Cleanup-only workflow edits do not fan out into
Rust/build/smoke jobs.
- Docker image validation and publishing are intentionally not part of pull
request CI. `docker.yml` is a manual, non-publishing client Dockerfile
validation workflow. `release.yml` owns release archives and dispatches the
completed full release to `Mesh-LLM/mesh-agent-images`, which is the sole
GHCR publisher.
- Docker image and npm publishing are intentionally not part of pull request
CI. `docker.yml` is a manual, non-publishing client Dockerfile validation
workflow. `release.yml` owns release archives and dispatches the completed
full release to `Mesh-LLM/mesh-packaging`, which owns package, GHCR, and npm
publication.
- `fly-deploy-console.yml` is a manual (`workflow_dispatch`) deploy of the
`mesh-llm-console` Fly app. It builds the image on Fly's remote builders from
`fly/Dockerfile` and authenticates with the app-scoped `FLY_API_TOKEN` repo
Expand Down
8 changes: 2 additions & 6 deletions docs/SDK.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,8 @@ See [Kotlin SDK examples](sdk/kotlin.md).

Install the Node package in a Node.js or Electron app:

```json
{
"dependencies": {
"@meshllm/sdk": "0.72.1"
}
}
```bash
npm install @meshllm/sdk
```

When building from this repository, build the native N-API addon first:
Expand Down
8 changes: 2 additions & 6 deletions docs/sdk/node.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,8 @@ Use `@meshllm/sdk` from npm for Node.js and Electron applications.

## Install

```json
{
"dependencies": {
"@meshllm/sdk": "0.72.1"
}
}
```bash
npm install @meshllm/sdk
```

When building from this repository, build the native N-API addon first:
Expand Down
9 changes: 9 additions & 0 deletions sdk/node/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ The package uses a native N-API addon built from `crates/mesh-llm-nodejs`. It is
not a mock wrapper around the CLI. Local serving uses the same embedded runtime
path as the Swift and Kotlin SDKs.

## Install

```bash
npm install @meshllm/sdk
```

Release packages include prebuilt addons for macOS arm64/x64, Linux arm64/x64,
and Windows x64.

## Build From Source

```bash
Expand Down
16 changes: 15 additions & 1 deletion sdk/node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,21 @@
"description": "Node.js SDK for MeshLLM client and local serving applications",
"main": "index.js",
"types": "index.d.ts",
"repository": {
"type": "git",
"url": "git+https://github.com/Mesh-LLM/mesh-packaging.git"
},
Comment thread
coderabbitai[bot] marked this conversation as resolved.
"homepage": "https://github.com/Mesh-LLM/mesh-llm/tree/main/sdk/node",
"bugs": {
"url": "https://github.com/Mesh-LLM/mesh-llm/issues"
},
"files": [
"index.js",
"index.d.ts",
"native-runtime.js",
"console/",
"native/",
"LICENSE",
"README.md"
],
"scripts": {
Expand All @@ -28,5 +37,10 @@
"arm64",
"x64"
],
"license": "MIT OR Apache-2.0"
"license": "MIT OR Apache-2.0",
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/",
"provenance": true
}
}
6 changes: 6 additions & 0 deletions sdk/node/scripts/build-native.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,19 @@ const repoRoot = resolve(fileURLToPath(new URL('../../..', import.meta.url)))
const profile = process.env.MESH_NODE_PROFILE || 'release'
const cargoArgs = [
'build',
'--locked',
'-p',
'mesh-llm-nodejs',
'--no-default-features',
'--features',
'embedded-runtime'
]
if (profile === 'release') cargoArgs.push('--release')
if (profile === 'release' && process.platform === 'darwin') {
// Avoid llvm-objcopy corrupting the LINKEDIT string pool in large Mach-O
// addons on current macOS runners.
cargoArgs.push('--config', 'profile.release.strip=false')
}

const build = spawnSync('cargo', cargoArgs, {
cwd: repoRoot,
Expand Down
8 changes: 2 additions & 6 deletions website/src/docs/pages/sdk-node.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,8 @@ Use [`@meshllm/sdk`](https://www.npmjs.com/package/@meshllm/sdk) in Node.js serv

## Install

```json
{
"dependencies": {
"@meshllm/sdk": "{{ site.sdkVersion }}"
}
}
```bash
npm install @meshllm/sdk
```

When building from the repository, build the addon first:
Expand Down
Loading