Skip to content

Commit ecfb7ad

Browse files
committed
Merge remote-tracking branch 'origin/main' into agent/apache-2-license
# Conflicts: # package-lock.json
2 parents 0427181 + 711dc13 commit ecfb7ad

122 files changed

Lines changed: 6088 additions & 6870 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Changesets
2+
3+
Add a changeset for every pull request that changes a public PoseCode package:
4+
5+
```bash
6+
npm run changeset
7+
```
8+
9+
Choose the affected package and the SemVer impact, then commit the generated
10+
Markdown file with the code change. The five public packages are released as a
11+
fixed group so their versions and internal dependency ranges stay aligned.
12+
13+
Changes that only affect tests, internal tooling, or the private playground do
14+
not need a changeset.

.changeset/config.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json",
3+
"changelog": "@changesets/cli/changelog",
4+
"commit": false,
5+
"fixed": [
6+
[
7+
"posecode-parser",
8+
"posecode-render",
9+
"posecode-share",
10+
"posecode-embed",
11+
"posecode-mcp"
12+
]
13+
],
14+
"linked": [],
15+
"access": "public",
16+
"baseBranch": "main",
17+
"updateInternalDependencies": "patch",
18+
"ignore": []
19+
}

.changeset/fresh-poses-ship.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"posecode-mcp": patch
3+
---
4+
5+
Ship the current authoring guide with the MCP npm package and prepare all public packages for automated releases.

.github/dependabot.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
day: monday
8+
time: "09:00"
9+
timezone: Europe/Istanbul
10+
versioning-strategy: increase-if-necessary
11+
open-pull-requests-limit: 10
12+
groups:
13+
production-dependencies:
14+
dependency-type: production
15+
development-dependencies:
16+
dependency-type: development
17+
18+
- package-ecosystem: github-actions
19+
directory: /
20+
schedule:
21+
interval: weekly
22+
day: monday
23+
time: "09:15"
24+
timezone: Europe/Istanbul
25+
groups:
26+
github-actions:
27+
patterns:
28+
- "*"

.github/workflows/ci.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ jobs:
1212
runs-on: ubuntu-latest
1313
steps:
1414
- uses: actions/checkout@v4
15+
with:
16+
fetch-depth: 0
1517

1618
- name: Set up Node.js
1719
uses: actions/setup-node@v4
@@ -22,12 +24,19 @@ jobs:
2224
- name: Install dependencies
2325
run: npm ci
2426

25-
- name: Typecheck
26-
run: npm run typecheck
27+
- name: Require a changeset for public package changes
28+
if: github.event_name == 'pull_request' && github.head_ref != 'changeset-release/main'
29+
run: npx changeset status --since="${{ github.event.pull_request.base.sha }}"
2730

2831
- name: Build publishable packages
2932
run: npm run build:packages
3033

34+
- name: Typecheck
35+
run: npm run typecheck
36+
37+
- name: Validate package tarballs and MCP metadata
38+
run: npm run check:packages
39+
3140
- name: Build playground
3241
run: npm run build
3342

.github/workflows/release.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Release packages
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
8+
concurrency:
9+
group: release-${{ github.ref }}
10+
cancel-in-progress: false
11+
12+
permissions:
13+
contents: write
14+
pull-requests: write
15+
id-token: write
16+
17+
jobs:
18+
release:
19+
name: Version or publish
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Check out repository
23+
uses: actions/checkout@v5
24+
with:
25+
fetch-depth: 0
26+
27+
- name: Set up Node.js
28+
uses: actions/setup-node@v6
29+
with:
30+
node-version: 24
31+
registry-url: https://registry.npmjs.org
32+
package-manager-cache: false
33+
34+
- name: Install dependencies
35+
run: npm ci
36+
37+
- name: Create release pull request or publish to npm
38+
id: changesets
39+
uses: changesets/action@v1
40+
with:
41+
version: npm run version-packages
42+
publish: npm run release
43+
commit: "chore: release packages"
44+
title: "chore: release packages"
45+
createGithubReleases: true
46+
env:
47+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48+
49+
- name: Install MCP Registry publisher
50+
if: steps.changesets.outputs.published == 'true'
51+
working-directory: packages/posecode-mcp
52+
run: |
53+
curl --fail --location --silent --show-error \
54+
"https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_linux_amd64.tar.gz" \
55+
| tar xz mcp-publisher
56+
57+
- name: Authenticate to MCP Registry
58+
if: steps.changesets.outputs.published == 'true'
59+
working-directory: packages/posecode-mcp
60+
run: ./mcp-publisher login github-oidc
61+
62+
- name: Publish MCP Registry metadata
63+
if: steps.changesets.outputs.published == 'true'
64+
working-directory: packages/posecode-mcp
65+
run: ./mcp-publisher publish

README.md

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ Posecode includes a Model Context Protocol server for AI agents.
287287
Run it with:
288288

289289
```bash
290-
npx posecode-mcp
290+
npx -y posecode-mcp@latest
291291
```
292292

293293
Example MCP client configuration:
@@ -297,22 +297,16 @@ Example MCP client configuration:
297297
"mcpServers": {
298298
"posecode": {
299299
"command": "npx",
300-
"args": ["-y", "posecode-mcp"]
300+
"args": ["-y", "posecode-mcp@latest"]
301301
}
302302
}
303303
}
304304
```
305305

306-
Depending on the final Build Week implementation, the MCP server can expose tools such as:
306+
The MCP server exposes:
307307

308308
- `validate_posecode`
309309
- `render_posecode`
310-
- `share_posecode`
311-
- `generate_posecode`
312-
- `critique_posecode`
313-
- `revise_posecode`
314-
315-
> Only list tools that are actually implemented before submitting.
316310

317311
See [`packages/posecode-mcp`](packages/posecode-mcp) for the complete configuration and tool documentation.
318312

RELEASING.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Releasing PoseCode packages
2+
3+
PoseCode publishes five npm packages as one fixed-version release:
4+
5+
- `posecode-parser`
6+
- `posecode-render`
7+
- `posecode-share`
8+
- `posecode-embed`
9+
- `posecode-mcp`
10+
11+
The release workflow also publishes `packages/posecode-mcp/server.json` to the
12+
official MCP Registry after npm publication succeeds.
13+
14+
## One-time repository setup
15+
16+
For each npm package above, configure an npm trusted publisher with:
17+
18+
- Provider: GitHub Actions
19+
- Organization: `posecode-dev`
20+
- Repository: `posecode`
21+
- Workflow filename: `release.yml`
22+
- Allowed action: npm publish
23+
24+
The workflow uses GitHub OIDC, so no long-lived npm token is required. In the
25+
GitHub repository Actions settings, allow GitHub Actions to create pull
26+
requests. The workflow also needs the permissions declared in
27+
`.github/workflows/release.yml`.
28+
29+
## Normal release flow
30+
31+
1. Run `npm run changeset` in each pull request that changes a public package.
32+
2. Merge the pull request into `main`.
33+
3. Review and merge the automatically maintained `chore: release packages`
34+
pull request.
35+
4. The next release workflow publishes the npm packages, creates GitHub
36+
releases, and updates the official MCP Registry through GitHub OIDC.
37+
38+
The first run can be started from the Actions tab with **Release packages → Run
39+
workflow** after trusted publishing is configured. If changesets are waiting,
40+
merge the generated release pull request; the following run publishes every
41+
local package version that is newer than npm.
42+
43+
## Local verification
44+
45+
```bash
46+
npm ci
47+
npm run typecheck
48+
npm run build:packages
49+
npm run check:packages
50+
npm test
51+
```
52+
53+
`npm run check:packages` fails if public package versions drift, built entry
54+
points are missing from a tarball, internal dependency versions disagree, or
55+
the MCP Registry manifest does not match `posecode-mcp`.

editors/vscode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"devDependencies": {
4040
"@types/node": "^22.10.2",
4141
"@types/vscode": "^1.85.0",
42-
"esbuild": "^0.24.2",
42+
"esbuild": "^0.28.1",
4343
"typescript": "^5.7.2"
4444
}
4545
}

0 commit comments

Comments
 (0)