# sekuire-protocol
Shared protocol types and data structures for the [Sekuire](https://sekuire.com) Agent Identity Protocol. Used by the registry API, CLI, and SDKs.
## Installation
```toml
[dependencies]
sekuire-protocol = "0.1"
```
For backend (SQLx) integration:
```toml
[dependencies]
sekuire-protocol = { version = "0.1", features = ["backend"] }
```
## What's in the box
- `Manifest` - Agent identity manifest (project metadata, identity config, capabilities, discovery, A2A, deployment)
- `PublishRequest` / `AgentResponse` - Registry API request/response types
- `HandshakeHello` / `HandshakeWelcome` / `HandshakeAuth` - Mutual authentication handshake
- `VerificationStatus` / `AgentVisibility` - Status enums (with optional SQLx type mappings via `backend` feature)
- Reputation, leaderboard, policy, and audit log types
- `JsonSchema` derive on all types via `schemars`
## Usage
```rust
use sekuire_protocol::{Manifest, ProjectMetadata, IdentityConfig};
let manifest = Manifest {
project: ProjectMetadata {
name: "my-agent".to_string(),
version: "1.0.0".to_string(),
description: Some("A helpful AI assistant".to_string()),
authors: vec![],
license: Some("Apache-2.0".to_string()),
},
identity: IdentityConfig {
model: "gpt-4".to_string(),
system_prompt_path: "prompts/system.txt".to_string(),
tools_path: "tools/tools.json".to_string(),
system_prompt_hash: None,
tools_hash: None,
},
capabilities: None,
discovery: None,
a2a: None,
deployment: None,
};
let json = serde_json::to_string_pretty(&manifest).unwrap();
```
## License
Apache-2.0
## Links
- [Documentation](https://docs.sekuire.ai)
- [Source](https://github.com/sekuire/sekuire/tree/master/packages/protocol)
- [Issue Tracker](https://github.com/sekuire/sekuire/issues)