opencode-samcp 0.0.1__tar.gz → 0.0.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,18 +29,20 @@ jobs:
29
29
  - uses: actions/checkout@v4
30
30
  - uses: astral-sh/setup-uv@v5
31
31
  - run: uv build
32
- - run: uv publish --trusted-publishing always
32
+ - run: uv publish --trusted-publishing always --check-url https://pypi.org/simple/
33
33
 
34
34
  npm:
35
35
  needs: verify
36
36
  runs-on: ubuntu-latest
37
37
  environment: npm
38
+ permissions:
39
+ id-token: write # npm trusted publishing (OIDC)
40
+ contents: read
38
41
  steps:
39
42
  - uses: actions/checkout@v4
40
43
  - uses: actions/setup-node@v4
41
44
  with:
42
- node-version: 22
43
- registry-url: https://registry.npmjs.org
45
+ node-version: 24
46
+ - name: Trusted publishing needs npm >= 11.5.1
47
+ run: npm install -g npm@latest
44
48
  - run: npm publish --access public
45
- env:
46
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: opencode-samcp
3
- Version: 0.0.1
3
+ Version: 0.0.4
4
4
  Summary: Sub-agent MCP: let Devin, Codex, Claude Code and other agents spawn opencode sessions to do work
5
5
  Project-URL: Homepage, https://github.com/amirdaraby/opencode-samcp
6
6
  Project-URL: Repository, https://github.com/amirdaraby/opencode-samcp
@@ -110,11 +110,14 @@ There is **no authentication** and the sub-agent can edit files and run commands
110
110
 
111
111
  ## Publishing (maintainers)
112
112
 
113
+ Releases are automated: pushing a `vX.Y.Z` tag runs `.github/workflows/publish.yml`, which publishes to PyPI and npm (both via trusted publishing, no tokens). Use the helper so versions and tag never drift apart:
114
+
113
115
  ```bash
114
- npm publish # npm / npx
115
- uv build && uv publish # PyPI / uvx / pip
116
+ scripts/release.sh 0.0.4
116
117
  ```
117
118
 
119
+ It bumps `pyproject.toml`, `package.json` and `uv.lock`, runs the tests, commits, pushes `main`, then tags and pushes `v0.0.4`.
120
+
118
121
  ## Development
119
122
 
120
123
  ```bash
@@ -92,11 +92,14 @@ There is **no authentication** and the sub-agent can edit files and run commands
92
92
 
93
93
  ## Publishing (maintainers)
94
94
 
95
+ Releases are automated: pushing a `vX.Y.Z` tag runs `.github/workflows/publish.yml`, which publishes to PyPI and npm (both via trusted publishing, no tokens). Use the helper so versions and tag never drift apart:
96
+
95
97
  ```bash
96
- npm publish # npm / npx
97
- uv build && uv publish # PyPI / uvx / pip
98
+ scripts/release.sh 0.0.4
98
99
  ```
99
100
 
101
+ It bumps `pyproject.toml`, `package.json` and `uv.lock`, runs the tests, commits, pushes `main`, then tags and pushes `v0.0.4`.
102
+
100
103
  ## Development
101
104
 
102
105
  ```bash
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-samcp",
3
- "version": "0.0.1",
3
+ "version": "0.0.4",
4
4
  "description": "Sub-agent MCP: let Devin, Codex, Claude Code and other agents spawn opencode sessions to do work",
5
5
  "license": "MIT",
6
6
  "author": "Amir Daraby",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "opencode-samcp"
3
- version = "0.0.1"
3
+ version = "0.0.4"
4
4
  description = "Sub-agent MCP: let Devin, Codex, Claude Code and other agents spawn opencode sessions to do work"
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env bash
2
+ # Usage: scripts/release.sh 0.0.4
3
+ # Bumps the version in pyproject.toml, package.json and uv.lock, commits, pushes main,
4
+ # then tags vX.Y.Z and pushes the tag, which triggers the publish workflow (npm + PyPI).
5
+ set -euo pipefail
6
+ cd "$(dirname "$0")/.."
7
+
8
+ V="${1:-}"
9
+ [[ "$V" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || { echo "usage: $0 X.Y.Z" >&2; exit 1; }
10
+ [[ "$(git branch --show-current)" == "main" ]] || { echo "must be on main" >&2; exit 1; }
11
+ [[ -z "$(git status --porcelain)" ]] || { echo "working tree not clean" >&2; exit 1; }
12
+ git rev-parse "v$V" >/dev/null 2>&1 && { echo "tag v$V already exists" >&2; exit 1; }
13
+ git ls-remote --exit-code --tags origin "v$V" >/dev/null 2>&1 && { echo "tag v$V already exists on origin" >&2; exit 1; }
14
+
15
+ sed -i -E "s/^version = \"[^\"]+\"/version = \"$V\"/" pyproject.toml
16
+ sed -i -E "0,/\"version\": \"[^\"]+\"/s//\"version\": \"$V\"/" package.json
17
+ uv lock -q
18
+ uv run --group dev pytest -q
19
+
20
+ git commit -am "Release $V"
21
+ git push origin main
22
+ git tag "v$V"
23
+ git push origin "v$V"
24
+ echo "Tagged v$V. Watch the publish run in GitHub Actions."
@@ -394,7 +394,7 @@ wheels = [
394
394
 
395
395
  [[package]]
396
396
  name = "opencode-samcp"
397
- version = "0.0.1"
397
+ version = "0.0.4"
398
398
  source = { editable = "." }
399
399
  dependencies = [
400
400
  { name = "mcp" },
File without changes