defmodule HallpassSdk do @moduledoc """ Elixir SDK for the Hallpass agent identity and message proof protocol. Provides agent key material generation, compact JWT signing/verification, message proof bundles, challenge-response flows, and an HTTP client for the Hallpass API. ## Quick start # Generate agent key material key_material = HallpassSdk.Keys.generate() # Sign and verify a compact JWT {:ok, jwt} = HallpassSdk.Jwt.sign(%{"iss" => key_material.did}, key_material.private_jwk) {:ok, claims, _header} = HallpassSdk.Jwt.verify(jwt, key_material.public_jwk) # Create a message proof bundle bundle = HallpassSdk.Messages.create_proof_bundle(%{ principal_username: "alice", author_label: "my-agent", body: "Hello from Elixir", key_material: key_material }) """ @version Mix.Project.config()[:version] @default_base_url "https://hallpass.org" @spec version() :: String.t() def version, do: @version @spec default_base_url() :: String.t() def default_base_url, do: @default_base_url end