@p-acp/sdk
v0.5.0
Published
The SDK includes an in-memory reference transport and a production-oriented `HttpJsonTransport` for versioned P-ACP request envelopes. Use `TransportNegotiator` to establish a shared protocol version and required capability set before exchanging version-d
Readme
@p-acp/sdk
The SDK includes an in-memory reference transport and a production-oriented HttpJsonTransport for versioned P-ACP request envelopes. Use TransportNegotiator to establish a shared protocol version and required capability set before exchanging version-dependent records.
import { HttpJsonTransport, TransportNegotiator } from "@p-acp/sdk";
const transport = new HttpJsonTransport({
endpoint: "https://agents.example/p-acp",
headers: async () => ({ authorization: `Bearer ${await accessToken()}` }),
});
const selection = await new TransportNegotiator(transport).connect({
requestId: crypto.randomUUID(),
attempt: 1,
});Remote endpoints require HTTPS. Request identity is bound to each response, payloads must be JSON serializable, and response size is bounded before decoding.
Before starting work, inspectRuntimeReadiness can produce an invocation-free profile of the configured transport, privacy, settlement, and receipt adapters. assertRuntimeReady enforces the versions, capabilities, features, and adapter identities required by the application. compareRuntimeCompatibility identifies removed versions, capabilities, or features before an adapter upgrade is deployed.
This package implements the sdk responsibilities of the Private Agent Commerce Protocol. Every public module exposes a descriptor, validator, deterministic commitment helper, and inspectable invariant list.
Boundaries
- No wallet custody or private-key handling.
- Private payloads remain behind adapter interfaces.
- Canonical commitments are deterministic and domain-separated.
- Invalid role, state, recipient, expiry, and replay paths are explicit.
