diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 028e4eb3..c2e0acc8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -130,3 +130,32 @@ jobs: working-directory: vscode-extension run: npm test if: runner.os == 'macOS' + + zed-dev-wrapper: + name: Update Zed Dev Wrapper + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + permissions: + contents: write + + steps: + - uses: actions/checkout@v4 + + - name: Build wrapper archives + working-directory: zed-extension/dev/wrapper + run: ./build-archives.sh + + - name: Update zed-dev-wrapper release + uses: softprops/action-gh-release@v2 + with: + tag_name: zed-dev-wrapper + name: Zed Dev Wrapper + body: | + Wrapper scripts for the Symposium Dev Zed extension. + These delegate to your locally installed `symposium-acp-agent`. + + Updated automatically on each push to main. + files: | + zed-extension/dev/wrapper/symposium-dev-darwin.tar.gz + zed-extension/dev/wrapper/symposium-dev-linux.tar.gz + prerelease: true diff --git a/release-plz.toml b/release-plz.toml new file mode 100644 index 00000000..bdaba833 --- /dev/null +++ b/release-plz.toml @@ -0,0 +1 @@ +[workspace] diff --git a/vendor/mynah-ui/.gitignore b/vendor/mynah-ui/.gitignore index 0f5b4729..6eac8e40 100644 --- a/vendor/mynah-ui/.gitignore +++ b/vendor/mynah-ui/.gitignore @@ -7,9 +7,9 @@ node_modules *.zip **/.DS_Store .idea -package-lock.json +# package-lock.json - we track this for reproducible builds .gitcommit .vscode __results__/ e2e-results/ -coverage/ \ No newline at end of file +coverage/ diff --git a/zed-extension/dev/README.md b/zed-extension/dev/README.md new file mode 100644 index 00000000..3c65b024 --- /dev/null +++ b/zed-extension/dev/README.md @@ -0,0 +1,21 @@ +# Symposium Dev Extension + +Development version of the Symposium Zed extension that uses your locally installed `symposium-acp-agent` instead of downloading release binaries. + +## Prerequisites + +Install symposium-acp-agent locally: + +```bash +cargo install --path crates/symposium-acp-agent +``` + +## How it works + +The extension downloads a tiny wrapper script that simply calls `symposium-acp-agent` from your PATH. This means you can `cargo install` new versions and they take effect immediately without updating the extension. + +The wrapper archives are automatically updated on each push to main via CI. + +## Installing the extension + +Add this directory as a dev extension in Zed. diff --git a/zed-extension/dev/extension.toml b/zed-extension/dev/extension.toml new file mode 100644 index 00000000..6fdbba54 --- /dev/null +++ b/zed-extension/dev/extension.toml @@ -0,0 +1,31 @@ +id = "symposium-dev" +name = "Symposium Dev" +version = "0.1.0" +schema_version = 1 +authors = ["Niko Matsakis "] +description = "Development version - uses locally installed symposium-acp-agent" +repository = "https://github.com/symposium-dev/symposium" + +[agent_servers.symposium-dev] +name = "Symposium Dev" +icon = "./icons/symposium.svg" + +[agent_servers.symposium-dev.targets.darwin-aarch64] +archive = "https://github.com/symposium-dev/symposium/releases/download/zed-dev-wrapper/symposium-dev-darwin.tar.gz" +cmd = "./symposium-dev" +args = ["--", "npx", "-y", "@anthropic-ai/claude-code@latest"] + +[agent_servers.symposium-dev.targets.darwin-x86_64] +archive = "https://github.com/symposium-dev/symposium/releases/download/zed-dev-wrapper/symposium-dev-darwin.tar.gz" +cmd = "./symposium-dev" +args = ["--", "npx", "-y", "@anthropic-ai/claude-code@latest"] + +[agent_servers.symposium-dev.targets.linux-x86_64] +archive = "https://github.com/symposium-dev/symposium/releases/download/zed-dev-wrapper/symposium-dev-linux.tar.gz" +cmd = "./symposium-dev" +args = ["--", "npx", "-y", "@anthropic-ai/claude-code@latest"] + +[agent_servers.symposium-dev.targets.linux-aarch64] +archive = "https://github.com/symposium-dev/symposium/releases/download/zed-dev-wrapper/symposium-dev-linux.tar.gz" +cmd = "./symposium-dev" +args = ["--", "npx", "-y", "@anthropic-ai/claude-code@latest"] diff --git a/zed-extension/icons/symposium.svg b/zed-extension/dev/icons/symposium.svg similarity index 100% rename from zed-extension/icons/symposium.svg rename to zed-extension/dev/icons/symposium.svg diff --git a/zed-extension/dev/wrapper/.gitignore b/zed-extension/dev/wrapper/.gitignore new file mode 100644 index 00000000..335ec957 --- /dev/null +++ b/zed-extension/dev/wrapper/.gitignore @@ -0,0 +1 @@ +*.tar.gz diff --git a/zed-extension/dev/wrapper/build-archives.sh b/zed-extension/dev/wrapper/build-archives.sh new file mode 100755 index 00000000..28dec99f --- /dev/null +++ b/zed-extension/dev/wrapper/build-archives.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# Build wrapper archives for the Symposium Dev Zed extension + +set -e +cd "$(dirname "$0")" + +# Darwin (macOS) - same script works for both architectures +tar -czvf symposium-dev-darwin.tar.gz symposium-dev + +# Linux - same script works for both architectures +tar -czvf symposium-dev-linux.tar.gz symposium-dev + +echo "Built archives:" +ls -la *.tar.gz diff --git a/zed-extension/dev/wrapper/symposium-dev b/zed-extension/dev/wrapper/symposium-dev new file mode 100755 index 00000000..85514801 --- /dev/null +++ b/zed-extension/dev/wrapper/symposium-dev @@ -0,0 +1,2 @@ +#!/bin/bash +exec symposium-acp-agent "$@" diff --git a/zed-extension/LICENSE b/zed-extension/prod/LICENSE similarity index 100% rename from zed-extension/LICENSE rename to zed-extension/prod/LICENSE diff --git a/zed-extension/README.md b/zed-extension/prod/README.md similarity index 100% rename from zed-extension/README.md rename to zed-extension/prod/README.md diff --git a/zed-extension/extension.toml b/zed-extension/prod/extension.toml similarity index 100% rename from zed-extension/extension.toml rename to zed-extension/prod/extension.toml diff --git a/zed-extension/prod/icons/symposium.svg b/zed-extension/prod/icons/symposium.svg new file mode 100644 index 00000000..15862117 --- /dev/null +++ b/zed-extension/prod/icons/symposium.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file