@aaif/goose-acp
v0.1.2
Published
Agent Client Protocol (ACP) SDK for Goose AI agent
Readme
@aaif/goose-acp
TypeScript client library for the Goose Agent Client Protocol (ACP).
This package provides:
- TypeScript types and Zod validators for Goose ACP extension methods
- A client for communicating with the Goose ACP server
Installation
npm install @aaif/goose-acpThe native goose binaries are distributed as optional dependencies
and will be automatically installed for your platform.
Development
Prerequisites
- Node.js 18+
- Rust toolchain
- (Optional) Cross-compilation toolchains for building all platforms
Building
# Build everything (schema + TypeScript)
npm run build
# Build just the schema (requires Rust)
npm run build:schema
# Build just the TypeScript
npm run build:ts
# Build native binary for current platform
npm run build:native
# Build native binaries for all platforms
npm run build:native:allLocal Development with npm link
To use this package locally in another project (e.g., @aaif/goose):
# In ui/acp
npm run build
npm link
# In ui/text (or another project)
npm link @aaif/goose-acpSchema Generation
The TypeScript types are generated from Rust schemas defined in crates/goose-acp.
The build process:
- Builds the
generate-acp-schemaRust binary - Runs it to generate
acp-schema.jsonandacp-meta.json - Uses
@hey-api/openapi-tsto generate TypeScript types and Zod validators - Generates a typed client in
src/generated/client.gen.ts
To regenerate schemas after changing Rust types:
npm run build:schemaNative Binary Packages
Platform-specific npm packages for the goose binary are located in
ui/goose-binary/:
| Package | Platform |
|---------|----------|
| @aaif/goose-binary-darwin-arm64 | macOS Apple Silicon |
| @aaif/goose-binary-darwin-x64 | macOS Intel |
| @aaif/goose-binary-linux-arm64 | Linux ARM64 |
| @aaif/goose-binary-linux-x64 | Linux x64 |
| @aaif/goose-binary-win32-x64 | Windows x64 |
These are published separately from @aaif/goose-acp.
Building Native Binaries
# Build for current platform
npm run build:native
# Build for all platforms (requires cross-compilation toolchains)
npm run build:native:all
# Build for specific platform(s)
npx tsx scripts/build-native.ts darwin-arm64 linux-x64Publishing
Publishing is handled by GitHub Actions. See .github/workflows/publish-npm.yml.
For manual publishing:
# From repository root
./ui/scripts/publish.sh --realThis will:
- Build and publish
@aaif/goose-acp - Publish all native binary packages
- Publish
@aaif/goose(which depends on the above)
Usage
import { GooseClient } from "@aaif/goose-acp";
const client = new GooseClient({
// ... configuration
});
// Use the client
const result = await client.someMethod({ ... });See the main documentation for more details.
