mirror of
https://github.com/block/buzz.git
synced 2026-10-31 22:41:12 +00:00
Buzz desktop spawned the claude-agent-acp and codex-acp bridges from whatever the user had installed globally — an unpinned `npm install -g` surface with no integrity checking, which produced stale-bridge drift (the deprecated @zed-industries/codex-acp 0.16.x gate) and missing-tool failures. Bundle both bridges as app resources instead, pinned per target: - desktop/acp-tools.lock.json pins @agentclientprotocol/claude-agent-acp 0.58.1 and @agentclientprotocol/codex-acp 1.1.2 (npm `latest` at time of commit) for the four supported targets, with integrity hashes and Block Artifactory tarballs for the package, its claude-agent-sdk / @openai/codex dependency, and the per-target native package. - desktop/scripts/update-acp-tools-lock.mjs regenerates the lock from the registry's `latest` dist-tags, failing loudly on any unresolvable package — never silently pinning an older version. Ranged dependencies (codex-acp's ^0.144.0) resolve to the highest matching version when `npm view` returns an array. - desktop/scripts/ensure-acp-tools.sh installs the locked tools into a shared dev cache (~/Library/Caches/buzz-dev/acp-tools), validates versions + integrity against the lock, and stamps staged binaries next to the shared bin dir so any lock change — including a revert — forces a re-stage; binaries no longer in the lock are pruned. - desktop/scripts/prepare-acp-tools-resource.sh stages the vendored npm trees + node wrapper shims into desktop/src-tauri/resources/acp, writes the node-runtime.json manifest for the app's Node.js doctor check, and ad-hoc signs every nested Mach-O (file(1) scan — the codex package vendors rg, zsh, and codex-code-mode-host beyond the main CLIs) so Gatekeeper doesn't kill them in local builds. - desktop/scripts/lib/acp-node-wrapper.sh is the single wrapper-shim generator shared by both scripts, so the dev-cache and bundled wrappers (and the Node major they enforce) cannot drift. - Wiring: `just dev` / `just staging` stage the resources and export BUZZ_ACP_TOOLS_DIR; `just desktop-release-build` stages per target before `tauri build`; `just bump-acp-tools` reruns the lock updater; tauri.conf.json bundles resources/acp; staged artifacts are gitignored with a .gitkeep placeholder. Runtime resolution of the staged dir follows in the next commit. The sprout-releases internal pipeline will need the same staging step before its `tauri build`; that lives in a separate repo. Ports the build-time half of the Staged implementation in block/builderbot#876 (branch commits 16b115a7 bundle feature, f5c6bba9 re-stage after lock revert, 288fa7eb shared node wrapper lib, adea4017 node-runtime manifest, 5124302a sign all nested Mach-Os, de6a9782 ranged-dependency updater fix), itself ported from squareup/berd f07df1d2 + 1db993fb + 24d7518b + 07087303 + 737e33a5. Verified: update-acp-tools-lock.mjs regenerated the lock against the Block registry (byte-identical pins to the donor lock; both packages confirmed at npm `latest`); fresh stage installs both tools and the staged wrappers report 0.58.1 / 1.1.2; no-op re-run performs zero npm installs; a stamp/lock mismatch forces a re-stage and stray binaries are pruned; all five staged Mach-Os pass `codesign --verify`; cargo check on desktop/src-tauri passes with the new resources entry. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Matt Toohey <contact@matttoohey.com>
197 lines
11 KiB
JSON
197 lines
11 KiB
JSON
{
|
|
"tools": [
|
|
{
|
|
"id": "claude-acp",
|
|
"binary": "claude-agent-acp",
|
|
"source": "npm",
|
|
"package": "@agentclientprotocol/claude-agent-acp",
|
|
"version": "0.58.1",
|
|
"integrity": "sha512-F1/W6EJdoYbrEUluRUknx0Nn0MAKDOkn2C/9YcP/joVkmdFUGTAxlGDpwdYu239TOkpc8Qm4+ffGsQjPZdryTg==",
|
|
"tarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@agentclientprotocol/claude-agent-acp/-/claude-agent-acp-0.58.1.tgz",
|
|
"target": "aarch64-apple-darwin",
|
|
"npmOs": "darwin",
|
|
"npmCpu": "arm64",
|
|
"nodeEngine": ">=22",
|
|
"dependencyPackage": "@anthropic-ai/claude-agent-sdk",
|
|
"dependencyVersion": "0.3.205",
|
|
"dependencyIntegrity": "sha512-ft6iBw9kXudsusiXNpeybIPBJ07Z3tqp1ROSg5cEJqgA+9i+JJj2sRfQth+QD+lyenbbAU8yPieLxIimvfBhtw==",
|
|
"dependencyTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.3.205.tgz",
|
|
"claudeCodeVersion": "2.1.205",
|
|
"nativePackage": "@anthropic-ai/claude-agent-sdk-darwin-arm64",
|
|
"nativePackageName": "@anthropic-ai/claude-agent-sdk-darwin-arm64",
|
|
"nativeVersion": "0.3.205",
|
|
"nativeIntegrity": "sha512-lrfJ4eVtzfPkCpbSkBOGSMQCBbvmW6nbPzgHE4IwMN3scZlpuFMUFqh2aaJa/X2SAcWD9H2S0t2WWvSRgM7BjA==",
|
|
"nativeTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@anthropic-ai/claude-agent-sdk-darwin-arm64/-/claude-agent-sdk-darwin-arm64-0.3.205.tgz",
|
|
"nativeExecutable": "claude"
|
|
},
|
|
{
|
|
"id": "claude-acp",
|
|
"binary": "claude-agent-acp",
|
|
"source": "npm",
|
|
"package": "@agentclientprotocol/claude-agent-acp",
|
|
"version": "0.58.1",
|
|
"integrity": "sha512-F1/W6EJdoYbrEUluRUknx0Nn0MAKDOkn2C/9YcP/joVkmdFUGTAxlGDpwdYu239TOkpc8Qm4+ffGsQjPZdryTg==",
|
|
"tarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@agentclientprotocol/claude-agent-acp/-/claude-agent-acp-0.58.1.tgz",
|
|
"target": "aarch64-unknown-linux-gnu",
|
|
"npmOs": "linux",
|
|
"npmCpu": "arm64",
|
|
"npmLibc": "glibc",
|
|
"nodeEngine": ">=22",
|
|
"dependencyPackage": "@anthropic-ai/claude-agent-sdk",
|
|
"dependencyVersion": "0.3.205",
|
|
"dependencyIntegrity": "sha512-ft6iBw9kXudsusiXNpeybIPBJ07Z3tqp1ROSg5cEJqgA+9i+JJj2sRfQth+QD+lyenbbAU8yPieLxIimvfBhtw==",
|
|
"dependencyTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.3.205.tgz",
|
|
"claudeCodeVersion": "2.1.205",
|
|
"nativePackage": "@anthropic-ai/claude-agent-sdk-linux-arm64",
|
|
"nativePackageName": "@anthropic-ai/claude-agent-sdk-linux-arm64",
|
|
"nativeVersion": "0.3.205",
|
|
"nativeIntegrity": "sha512-CXzySK3PV3EizCRPXnxPqeaAtgrBFDnMFOVpMe36oC3U16yDb1b1tAJGqZi/7uFrVvAiaXvnSFxhUWnDDSaO+A==",
|
|
"nativeTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@anthropic-ai/claude-agent-sdk-linux-arm64/-/claude-agent-sdk-linux-arm64-0.3.205.tgz",
|
|
"nativeExecutable": "claude"
|
|
},
|
|
{
|
|
"id": "claude-acp",
|
|
"binary": "claude-agent-acp",
|
|
"source": "npm",
|
|
"package": "@agentclientprotocol/claude-agent-acp",
|
|
"version": "0.58.1",
|
|
"integrity": "sha512-F1/W6EJdoYbrEUluRUknx0Nn0MAKDOkn2C/9YcP/joVkmdFUGTAxlGDpwdYu239TOkpc8Qm4+ffGsQjPZdryTg==",
|
|
"tarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@agentclientprotocol/claude-agent-acp/-/claude-agent-acp-0.58.1.tgz",
|
|
"target": "x86_64-apple-darwin",
|
|
"npmOs": "darwin",
|
|
"npmCpu": "x64",
|
|
"nodeEngine": ">=22",
|
|
"dependencyPackage": "@anthropic-ai/claude-agent-sdk",
|
|
"dependencyVersion": "0.3.205",
|
|
"dependencyIntegrity": "sha512-ft6iBw9kXudsusiXNpeybIPBJ07Z3tqp1ROSg5cEJqgA+9i+JJj2sRfQth+QD+lyenbbAU8yPieLxIimvfBhtw==",
|
|
"dependencyTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.3.205.tgz",
|
|
"claudeCodeVersion": "2.1.205",
|
|
"nativePackage": "@anthropic-ai/claude-agent-sdk-darwin-x64",
|
|
"nativePackageName": "@anthropic-ai/claude-agent-sdk-darwin-x64",
|
|
"nativeVersion": "0.3.205",
|
|
"nativeIntegrity": "sha512-G6ETPmL5mNzJ2DFsWxG3jmsmrXgZX1N2ZCJvxaGUUpjTsKZJ4Tup1cWYvcd/m7o5fYZmx9REmgzTwsAIc1fdPQ==",
|
|
"nativeTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@anthropic-ai/claude-agent-sdk-darwin-x64/-/claude-agent-sdk-darwin-x64-0.3.205.tgz",
|
|
"nativeExecutable": "claude"
|
|
},
|
|
{
|
|
"id": "claude-acp",
|
|
"binary": "claude-agent-acp",
|
|
"source": "npm",
|
|
"package": "@agentclientprotocol/claude-agent-acp",
|
|
"version": "0.58.1",
|
|
"integrity": "sha512-F1/W6EJdoYbrEUluRUknx0Nn0MAKDOkn2C/9YcP/joVkmdFUGTAxlGDpwdYu239TOkpc8Qm4+ffGsQjPZdryTg==",
|
|
"tarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@agentclientprotocol/claude-agent-acp/-/claude-agent-acp-0.58.1.tgz",
|
|
"target": "x86_64-unknown-linux-gnu",
|
|
"npmOs": "linux",
|
|
"npmCpu": "x64",
|
|
"npmLibc": "glibc",
|
|
"nodeEngine": ">=22",
|
|
"dependencyPackage": "@anthropic-ai/claude-agent-sdk",
|
|
"dependencyVersion": "0.3.205",
|
|
"dependencyIntegrity": "sha512-ft6iBw9kXudsusiXNpeybIPBJ07Z3tqp1ROSg5cEJqgA+9i+JJj2sRfQth+QD+lyenbbAU8yPieLxIimvfBhtw==",
|
|
"dependencyTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@anthropic-ai/claude-agent-sdk/-/claude-agent-sdk-0.3.205.tgz",
|
|
"claudeCodeVersion": "2.1.205",
|
|
"nativePackage": "@anthropic-ai/claude-agent-sdk-linux-x64",
|
|
"nativePackageName": "@anthropic-ai/claude-agent-sdk-linux-x64",
|
|
"nativeVersion": "0.3.205",
|
|
"nativeIntegrity": "sha512-siS+1iNqBSlGFZZvJY6+mhzZ/6/ec/TbX9GMuwmTF0E6fxGhIIp797jJxR1q8r6FAq7d39mEoRNhC0Ffo60uNQ==",
|
|
"nativeTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@anthropic-ai/claude-agent-sdk-linux-x64/-/claude-agent-sdk-linux-x64-0.3.205.tgz",
|
|
"nativeExecutable": "claude"
|
|
},
|
|
{
|
|
"id": "codex-acp",
|
|
"binary": "codex-acp",
|
|
"source": "npm",
|
|
"package": "@agentclientprotocol/codex-acp",
|
|
"version": "1.1.2",
|
|
"integrity": "sha512-qE/R1WdqJJ9OFHsHGvbmVmS2j9iCMZzpWT3g2XIViXrGHu1fLOALLINBIlW+WzKDllCh131aB6cqcIWSt0otbw==",
|
|
"tarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@agentclientprotocol/codex-acp/-/codex-acp-1.1.2.tgz",
|
|
"target": "aarch64-apple-darwin",
|
|
"npmOs": "darwin",
|
|
"npmCpu": "arm64",
|
|
"nodeEngine": ">=22",
|
|
"dependencyPackage": "@openai/codex",
|
|
"dependencyVersion": "0.144.1",
|
|
"dependencyIntegrity": "sha512-Xir1zqPfpenhdoAoshN53uonzbBXj18COyzRkFlVZpSNyEl5XtkuYu9oddELePFN7K/0sXUcSO34Ad5IeCXPbw==",
|
|
"dependencyTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@openai/codex/-/codex-0.144.1.tgz",
|
|
"nativePackage": "@openai/codex-darwin-arm64",
|
|
"nativePackageName": "@openai/codex",
|
|
"nativeVersion": "0.144.1-darwin-arm64",
|
|
"nativeIntegrity": "sha512-dABeDK+ATqMG54MGBd3VjpKfh5EOoqx9PKVQB2QYDaEXx3F6CdUCXue5QIMfr4OxziUj8pUcLAQyd+KFqiTUFw==",
|
|
"nativeTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@openai/codex/-/codex-0.144.1-darwin-arm64.tgz",
|
|
"nativeExecutable": "vendor/aarch64-apple-darwin/bin/codex"
|
|
},
|
|
{
|
|
"id": "codex-acp",
|
|
"binary": "codex-acp",
|
|
"source": "npm",
|
|
"package": "@agentclientprotocol/codex-acp",
|
|
"version": "1.1.2",
|
|
"integrity": "sha512-qE/R1WdqJJ9OFHsHGvbmVmS2j9iCMZzpWT3g2XIViXrGHu1fLOALLINBIlW+WzKDllCh131aB6cqcIWSt0otbw==",
|
|
"tarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@agentclientprotocol/codex-acp/-/codex-acp-1.1.2.tgz",
|
|
"target": "aarch64-unknown-linux-gnu",
|
|
"npmOs": "linux",
|
|
"npmCpu": "arm64",
|
|
"npmLibc": "glibc",
|
|
"nodeEngine": ">=22",
|
|
"dependencyPackage": "@openai/codex",
|
|
"dependencyVersion": "0.144.1",
|
|
"dependencyIntegrity": "sha512-Xir1zqPfpenhdoAoshN53uonzbBXj18COyzRkFlVZpSNyEl5XtkuYu9oddELePFN7K/0sXUcSO34Ad5IeCXPbw==",
|
|
"dependencyTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@openai/codex/-/codex-0.144.1.tgz",
|
|
"nativePackage": "@openai/codex-linux-arm64",
|
|
"nativePackageName": "@openai/codex",
|
|
"nativeVersion": "0.144.1-linux-arm64",
|
|
"nativeIntegrity": "sha512-451o15+XtaXCCb35t/KCyyPqXHnTPxPxtdqEYOnE3e4sH5AfnI/uVJwfdjOksMG6vRLy6R+fLvSDOMguRFLmQw==",
|
|
"nativeTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@openai/codex/-/codex-0.144.1-linux-arm64.tgz",
|
|
"nativeExecutable": "vendor/aarch64-unknown-linux-musl/bin/codex"
|
|
},
|
|
{
|
|
"id": "codex-acp",
|
|
"binary": "codex-acp",
|
|
"source": "npm",
|
|
"package": "@agentclientprotocol/codex-acp",
|
|
"version": "1.1.2",
|
|
"integrity": "sha512-qE/R1WdqJJ9OFHsHGvbmVmS2j9iCMZzpWT3g2XIViXrGHu1fLOALLINBIlW+WzKDllCh131aB6cqcIWSt0otbw==",
|
|
"tarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@agentclientprotocol/codex-acp/-/codex-acp-1.1.2.tgz",
|
|
"target": "x86_64-apple-darwin",
|
|
"npmOs": "darwin",
|
|
"npmCpu": "x64",
|
|
"nodeEngine": ">=22",
|
|
"dependencyPackage": "@openai/codex",
|
|
"dependencyVersion": "0.144.1",
|
|
"dependencyIntegrity": "sha512-Xir1zqPfpenhdoAoshN53uonzbBXj18COyzRkFlVZpSNyEl5XtkuYu9oddELePFN7K/0sXUcSO34Ad5IeCXPbw==",
|
|
"dependencyTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@openai/codex/-/codex-0.144.1.tgz",
|
|
"nativePackage": "@openai/codex-darwin-x64",
|
|
"nativePackageName": "@openai/codex",
|
|
"nativeVersion": "0.144.1-darwin-x64",
|
|
"nativeIntegrity": "sha512-K2g3Q3tNxzFhV0SuzO6HcsYK7EQrp/o4HyeReyhkwVrwwUPoYwyIbB0IRjHIiDzRhbKriDccid2iyF5aPqdTcg==",
|
|
"nativeTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@openai/codex/-/codex-0.144.1-darwin-x64.tgz",
|
|
"nativeExecutable": "vendor/x86_64-apple-darwin/bin/codex"
|
|
},
|
|
{
|
|
"id": "codex-acp",
|
|
"binary": "codex-acp",
|
|
"source": "npm",
|
|
"package": "@agentclientprotocol/codex-acp",
|
|
"version": "1.1.2",
|
|
"integrity": "sha512-qE/R1WdqJJ9OFHsHGvbmVmS2j9iCMZzpWT3g2XIViXrGHu1fLOALLINBIlW+WzKDllCh131aB6cqcIWSt0otbw==",
|
|
"tarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@agentclientprotocol/codex-acp/-/codex-acp-1.1.2.tgz",
|
|
"target": "x86_64-unknown-linux-gnu",
|
|
"npmOs": "linux",
|
|
"npmCpu": "x64",
|
|
"npmLibc": "glibc",
|
|
"nodeEngine": ">=22",
|
|
"dependencyPackage": "@openai/codex",
|
|
"dependencyVersion": "0.144.1",
|
|
"dependencyIntegrity": "sha512-Xir1zqPfpenhdoAoshN53uonzbBXj18COyzRkFlVZpSNyEl5XtkuYu9oddELePFN7K/0sXUcSO34Ad5IeCXPbw==",
|
|
"dependencyTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@openai/codex/-/codex-0.144.1.tgz",
|
|
"nativePackage": "@openai/codex-linux-x64",
|
|
"nativePackageName": "@openai/codex",
|
|
"nativeVersion": "0.144.1-linux-x64",
|
|
"nativeIntegrity": "sha512-HNGVI+BulrOaC/0IzBvd6EL62j7LrlbFKibrhw6hZjjCjAeUYzRB2jB4qDzXN1NfqDi6Xrvniof3kwbwab24lg==",
|
|
"nativeTarball": "https://global.block-artifacts.com/artifactory/api/npm/square-npm/@openai/codex/-/codex-0.144.1-linux-x64.tgz",
|
|
"nativeExecutable": "vendor/x86_64-unknown-linux-musl/bin/codex"
|
|
}
|
|
]
|
|
}
|