Skip to content
Open

bump #14

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 .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "haiai",
"version": "0.2.2",
"version": "0.2.3",
"description": "JACS cryptographic provenance for AI agents -- sign, verify, email, trust, and HAI platform integration",
"author": {
"name": "HAI.AI",
Expand Down
99 changes: 99 additions & 0 deletions .github/workflows/publish-rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -296,3 +296,102 @@ jobs:
artifacts/**/*.tar.gz
artifacts/**/*.zip
sha256sums.txt

bump-homebrew:
needs: [verify-version, release]
runs-on: ubuntu-latest
steps:
- name: Download sha256sums from release
env:
VERSION: ${{ needs.verify-version.outputs.version }}
run: |
curl -fsSL -o sha256sums.txt \
"https://github.com/HumanAssisted/haiai/releases/download/rust/v${VERSION}/sha256sums.txt"
cat sha256sums.txt

- name: Parse per-platform sha256s
id: sha
env:
VERSION: ${{ needs.verify-version.outputs.version }}
run: |
pick() { grep "haiai-cli-${VERSION}-$1\\.tar\\.gz\$" sha256sums.txt | awk '{print $1}'; }
DARWIN_ARM=$(pick darwin-arm64)
DARWIN_X64=$(pick darwin-x64)
LINUX_ARM=$(pick linux-arm64)
LINUX_X64=$(pick linux-x64)
for name in DARWIN_ARM DARWIN_X64 LINUX_ARM LINUX_X64; do
val="$(eval echo \$$name)"
if [ -z "$val" ]; then
echo "::error::Missing sha256 for $name"
exit 1
fi
echo "$name=$val" >> "$GITHUB_OUTPUT"
done

- name: Checkout main
uses: actions/checkout@v4
with:
ref: main
token: ${{ secrets.GITHUB_TOKEN }}

- name: Regenerate Formula/haiai.rb
env:
VERSION: ${{ needs.verify-version.outputs.version }}
DARWIN_ARM: ${{ steps.sha.outputs.DARWIN_ARM }}
DARWIN_X64: ${{ steps.sha.outputs.DARWIN_X64 }}
LINUX_ARM: ${{ steps.sha.outputs.LINUX_ARM }}
LINUX_X64: ${{ steps.sha.outputs.LINUX_X64 }}
run: |
mkdir -p Formula
cat > Formula/haiai.rb <<EOF
class Haiai < Formula
desc "CLI for HAI.AI agent identity, @hai.ai email, and MCP server"
homepage "https://hai.ai"
version "${VERSION}"
license "MIT"

on_macos do
on_arm do
url "https://github.com/HumanAssisted/haiai/releases/download/rust/v#{version}/haiai-cli-#{version}-darwin-arm64.tar.gz"
sha256 "${DARWIN_ARM}"
end
on_intel do
url "https://github.com/HumanAssisted/haiai/releases/download/rust/v#{version}/haiai-cli-#{version}-darwin-x64.tar.gz"
sha256 "${DARWIN_X64}"
end
end

on_linux do
on_arm do
url "https://github.com/HumanAssisted/haiai/releases/download/rust/v#{version}/haiai-cli-#{version}-linux-arm64.tar.gz"
sha256 "${LINUX_ARM}"
end
on_intel do
url "https://github.com/HumanAssisted/haiai/releases/download/rust/v#{version}/haiai-cli-#{version}-linux-x64.tar.gz"
sha256 "${LINUX_X64}"
end
end

def install
bin.install "haiai-cli" => "haiai"
end

test do
assert_match "haiai", shell_output("#{bin}/haiai --version")
end
end
EOF

- name: Commit and push Formula/haiai.rb
env:
VERSION: ${{ needs.verify-version.outputs.version }}
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add Formula/haiai.rb
if git diff --cached --quiet; then
echo "Formula already at v${VERSION} — nothing to push"
exit 0
fi
git commit -m "Bump Homebrew formula to ${VERSION}"
git push origin HEAD:main
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ dist/
.vitest/
node/jacs.config.json
node/jacs_data/
*.node

# Go
go/haiai
Expand Down
2 changes: 2 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ scripts/ci/ # CI enforcement (crypto policy denylist)

## Gotchas

- **JACS lives at `~/personal/JACS/jacs` for local dev.** Never re-implement JACS functionality. Rust patches via the commented `[patch.crates-io]` block in `rust/Cargo.toml`; Node uses `npm run deps:local` (rewrites `@hai.ai/jacs` to `file:../../JACS/jacsnpm`); Python uses `pip install -e ../../JACS/jacspy`. See "Local JACS Development" in AGENTS.md.
- **Version bumps must touch lockfiles too.** All 10 manifests plus `rust/Cargo.lock`, `node/package-lock.json`, and `python/uv.lock`. CI fails with `lock file's @hai.ai/jacs@X.Y.Z does not satisfy A.B.C` otherwise.
- **JACS filenames use `:`** (`{id}:{version}.json`) -- illegal on Windows. Rust CI uses sparse checkout for Windows builds.
- **CLI and MCP server are Rust-only.** `cli.ts`, `mcp-server.ts`, `cli.py`, `mcp_server.py`, `go/cmd/haiai/`, and `go/cmd/hai-mcp/` have been deleted. The `haiai` CLI binary and `haiai mcp` subcommand are the canonical implementations.
- **Python test deps.** Use `pip install -e ".[dev,mcp]"` not just `.[dev]` -- MCP tests need the `mcp` package.
Expand Down
36 changes: 36 additions & 0 deletions Formula/haiai.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
class Haiai < Formula
desc "CLI for HAI.AI agent identity, @hai.ai email, and MCP server"
homepage "https://hai.ai"
version "0.2.2"
license "MIT"

on_macos do
on_arm do
url "https://github.com/HumanAssisted/haiai/releases/download/rust/v#{version}/haiai-cli-#{version}-darwin-arm64.tar.gz"
sha256 "7443fbd1840e85e47ede81c0629fb82410490369ddde734a455b237256145b1e"
end
on_intel do
url "https://github.com/HumanAssisted/haiai/releases/download/rust/v#{version}/haiai-cli-#{version}-darwin-x64.tar.gz"
sha256 "7c57c28761e23b39a56bf98f76cdec521a38b8b9877c6a90aa478751fddbfdbc"
end
end

on_linux do
on_arm do
url "https://github.com/HumanAssisted/haiai/releases/download/rust/v#{version}/haiai-cli-#{version}-linux-arm64.tar.gz"
sha256 "8b8ae9b0b536d46bbaa7126578095e566230664e34c9ec60af3b82b0e28119d3"
end
on_intel do
url "https://github.com/HumanAssisted/haiai/releases/download/rust/v#{version}/haiai-cli-#{version}-linux-x64.tar.gz"
sha256 "752aa1d261f56b53dad80f2ee3703d005fe1aa0359b44cbe85692e89b9994b4f"
end
end

def install
bin.install "haiai-cli" => "haiai"
end

test do
assert_match "haiai", shell_output("#{bin}/haiai --version")
end
end
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Register your agent, get a `@hai.ai` address, send and receive cryptographically
### Homebrew (macOS)

```bash
brew tap HumanAssisted/homebrew-jacs
brew tap HumanAssisted/haiai https://github.com/HumanAssisted/haiai
brew install haiai
```

Expand Down
7 changes: 6 additions & 1 deletion fixtures/cli_command_parity.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"description": "CLI command parity contract. The haiai binary must expose exactly these subcommands. Tests verify bidirectional parity between this fixture and the Commands enum.",
"version": "1.0.0",
"total_command_count": 26,
"total_command_count": 27,
"commands": [
{
"name": "init",
Expand Down Expand Up @@ -108,6 +108,11 @@
"name": "keychain",
"args": ["agent_id:string"],
"subcommands": ["set", "get", "delete", "status"]
},
{
"name": "deploy",
"args": [],
"subcommands": ["anthropic", "list-sessions", "list-versions", "message"]
}
]
}
3 changes: 2 additions & 1 deletion fixtures/mcp_cli_parity.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
{ "name": "search-documents", "reason": "Local document storage" },
{ "name": "get-document", "reason": "Local document storage" },
{ "name": "remove-document", "reason": "Local document storage" },
{ "name": "keychain", "reason": "OS keychain management" }
{ "name": "keychain", "reason": "OS keychain management" },
{ "name": "deploy", "reason": "Managed platform deployment (Anthropic Claude Agents)" }
]
}
2 changes: 1 addition & 1 deletion node/bin/haiai.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const { existsSync } = require("fs");
const path = require("path");

// Must match the version in package.json.
const SDK_VERSION = "0.2.2";
const SDK_VERSION = "0.2.3";
const SDK_MAJOR_MINOR = SDK_VERSION.split(".").slice(0, 2).join(".");

const PLATFORMS = {
Expand Down
2 changes: 1 addition & 1 deletion node/npm/@haiai/cli-darwin-arm64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@haiai/cli-darwin-arm64",
"version": "0.2.2",
"version": "0.2.3",
"description": "Platform-specific binary for haiai CLI (macOS ARM64)",
"os": ["darwin"],
"cpu": ["arm64"],
Expand Down
2 changes: 1 addition & 1 deletion node/npm/@haiai/cli-darwin-x64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@haiai/cli-darwin-x64",
"version": "0.2.2",
"version": "0.2.3",
"description": "Platform-specific binary for haiai CLI (macOS x64)",
"os": ["darwin"],
"cpu": ["x64"],
Expand Down
2 changes: 1 addition & 1 deletion node/npm/@haiai/cli-linux-arm64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@haiai/cli-linux-arm64",
"version": "0.2.2",
"version": "0.2.3",
"description": "Platform-specific binary for haiai CLI (Linux ARM64)",
"os": ["linux"],
"cpu": ["arm64"],
Expand Down
2 changes: 1 addition & 1 deletion node/npm/@haiai/cli-linux-x64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@haiai/cli-linux-x64",
"version": "0.2.2",
"version": "0.2.3",
"description": "Platform-specific binary for haiai CLI (Linux x64)",
"os": ["linux"],
"cpu": ["x64"],
Expand Down
2 changes: 1 addition & 1 deletion node/npm/@haiai/cli-win32-x64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@haiai/cli-win32-x64",
"version": "0.2.2",
"version": "0.2.3",
"description": "Platform-specific binary for haiai CLI (Windows x64)",
"os": ["win32"],
"cpu": ["x64"],
Expand Down
14 changes: 7 additions & 7 deletions node/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@haiai/haiai",
"version": "0.2.2",
"version": "0.2.3",
"description": "Official Node.js SDK for the HAI agent benchmarking platform",
"type": "module",
"main": "./dist/cjs/index.js",
Expand Down Expand Up @@ -34,15 +34,15 @@
"dependencies": {
"@hai.ai/jacs": "0.9.14",
"@modelcontextprotocol/sdk": "^1.0.0",
"haiinpm": "0.2.2",
"haiinpm": "0.2.3",
"ws": "^8.16.0"
},
"optionalDependencies": {
"@haiai/cli-darwin-arm64": "0.2.2",
"@haiai/cli-darwin-x64": "0.2.2",
"@haiai/cli-linux-x64": "0.2.2",
"@haiai/cli-linux-arm64": "0.2.2",
"@haiai/cli-win32-x64": "0.2.2"
"@haiai/cli-darwin-arm64": "0.2.3",
"@haiai/cli-darwin-x64": "0.2.3",
"@haiai/cli-linux-x64": "0.2.3",
"@haiai/cli-linux-arm64": "0.2.3",
"@haiai/cli-win32-x64": "0.2.3"
},
"devDependencies": {
"@types/node": "^20.11.0",
Expand Down
Loading
Loading