Skip to main content

E1: KOR Protocol Specification

Source: E1_ KOR Protocol Specification.pdf Status: 🚧 Extraction in Progress Roadmap: Protocol Specifications Roadmap

Overview​

The KOR (Knowledge Object Repository) Protocol defines the standard for component exchange, discovery, and quality assurance in the Radium ecosystem. This specification provides detailed protocol definitions.

Protocol Core​

Component Identification​

Component ID Format

component-id = namespace "/" name "@" version
namespace = domain-name | uuid
name = identifier
version = semver

Examples

github.com/user/component@1.0.0
radium.io/official/agent@2.1.3
550e8400-e29b-41d4-a716-446655440000/my-component@0.1.0

Component Addressing

pub struct ComponentAddress {
pub namespace: Namespace,
pub name: ComponentName,
pub version: Version,
}

pub enum Namespace {
Domain(String),
Uuid(Uuid),
Local(String),
}

Component Metadata Schema​

Core Metadata

{
"id": "namespace/name@version",
"name": "Component Name",
"version": "1.0.0",
"description": "Component description",
"author": {
"name": "Author Name",
"email": "author@example.com",
"organization": "Organization Name"
},
"license": "MIT",
"created": "2025-01-01T00:00:00Z",
"updated": "2025-01-01T00:00:00Z",
"checksum": "sha256:...",
"signature": "gpg:..."
}

Extended Metadata

{
"category": "agent|tool|workflow|data|integration",
"tags": ["tag1", "tag2"],
"interfaces": {
"input": { "schema": "..." },
"output": { "schema": "..." }
},
"dependencies": [
{
"id": "dependency-id",
"version_range": "^1.0.0",
"type": "required|optional|peer"
}
],
"capabilities": ["capability1", "capability2"],
"resources": {
"cpu": "1",
"memory": "100MB",
"storage": "10MB"
}
}

Protocol Message Formats​

Message Structure

pub struct ProtocolMessage {
pub version: ProtocolVersion,
pub message_type: MessageType,
pub message_id: MessageId,
pub timestamp: DateTime<Utc>,
pub payload: MessagePayload,
pub signature: Option<Signature>,
}

pub enum MessageType {
Publish,
Discover,
Retrieve,
Update,
Delete,
Query,
Response,
Error,
}

Publish Message

{
"type": "publish",
"component": {
"metadata": { ... },
"content": "base64-encoded-content",
"manifest": { ... }
},
"options": {
"public": true,
"indexed": true,
"cached": false
}
}

Discover Message

{
"type": "discover",
"query": {
"text": "search terms",
"tags": ["tag1", "tag2"],
"category": "agent",
"filters": {
"min_rating": 4.0,
"min_downloads": 100
}
},
"pagination": {
"page": 1,
"limit": 20
}
}

Retrieve Message

{
"type": "retrieve",
"component_id": "namespace/name@version",
"options": {
"include_metadata": true,
"include_content": true,
"verify_signature": true
}
}

Authentication and Authorization​

Authentication Methods

  • API key authentication
  • OAuth 2.0
  • JWT tokens
  • Certificate-based

Authorization Model

pub struct Authorization {
pub principal: Principal,
pub permissions: Vec<Permission>,
pub scope: Scope,
}

pub enum Permission {
Publish,
Read,
Update,
Delete,
Admin,
}

Access Control

pub trait AccessControl {
fn check_permission(&self, principal: &Principal, action: &Action, resource: &Resource) -> bool;
fn grant_permission(&mut self, principal: &Principal, permission: Permission) -> Result<()>;
}

Exchange Mechanisms​

Component Publishing Protocol​

Publishing Flow

  1. Validate component
  2. Generate metadata
  3. Sign component
  4. Upload to repository
  5. Index component
  6. Notify subscribers

Publish API

pub trait PublishingProtocol {
async fn publish(&self, component: Component, options: PublishOptions) -> Result<PublishResult>;
async fn update(&self, component_id: &ComponentId, component: Component) -> Result<()>;
async fn unpublish(&self, component_id: &ComponentId) -> Result<()>;
}

Component Discovery Protocol​

Discovery Flow

  1. Submit discovery query
  2. Search indexes
  3. Rank results
  4. Return results

Discovery API

pub trait DiscoveryProtocol {
async fn discover(&self, query: DiscoveryQuery) -> Result<DiscoveryResult>;
async fn search(&self, text: &str, filters: &[Filter]) -> Result<SearchResult>;
async fn browse(&self, category: &Category, pagination: &Pagination) -> Result<BrowseResult>;
}

Component Retrieval Protocol​

Retrieval Flow

  1. Validate request
  2. Check permissions
  3. Locate component
  4. Verify integrity
  5. Return component

Retrieval API

pub trait RetrievalProtocol {
async fn retrieve(&self, component_id: &ComponentId, options: &RetrievalOptions) -> Result<Component>;
async fn retrieve_metadata(&self, component_id: &ComponentId) -> Result<ComponentMetadata>;
async fn retrieve_content(&self, component_id: &ComponentId) -> Result<ComponentContent>;
}

Version Negotiation​

Version Resolution

pub struct VersionNegotiator {
resolver: VersionResolver,
}

impl VersionNegotiator {
pub fn negotiate(&self, requirements: &[VersionRequirement]) -> Result<VersionResolution> {
// Resolve version conflicts
// Select compatible versions
// Generate resolution plan
}
}

Version Requirements

{
"component_id": "namespace/name",
"version_range": "^1.0.0",
"preferred": "1.2.0",
"constraints": {
"min": "1.0.0",
"max": "2.0.0"
}
}

Quality Assurance​

Component Validation Rules​

Validation Levels

  1. Syntax Validation: Structure and format
  2. Schema Validation: Metadata schema compliance
  3. Interface Validation: Interface specification compliance
  4. Security Validation: Security scanning
  5. Performance Validation: Performance benchmarks
  6. Compatibility Validation: Version compatibility

Validation Rules

pub struct ValidationRule {
pub id: RuleId,
pub name: String,
pub severity: Severity,
pub check: ValidationCheck,
}

pub trait ValidationCheck {
fn validate(&self, component: &Component) -> ValidationResult;
}

Quality Scoring System​

Quality Metrics

  • Functionality score
  • Performance score
  • Security score
  • Documentation score
  • Community score

Quality Calculation

pub struct QualityScorer {
weights: QualityWeights,
}

impl QualityScorer {
pub fn calculate(&self, component: &Component) -> QualityScore {
QualityScore {
overall: self.calculate_overall(component),
metrics: self.calculate_metrics(component),
}
}
}

Reputation Mechanisms​

Reputation Factors

  • Component usage
  • User ratings
  • Community feedback
  • Maintenance activity
  • Security record

Reputation System

pub struct ReputationSystem {
calculator: ReputationCalculator,
}

impl ReputationSystem {
pub fn calculate(&self, component_id: &ComponentId) -> ReputationScore {
// Calculate reputation based on factors
}
}

Dispute Resolution​

Dispute Types

  • Quality disputes
  • Ownership disputes
  • Compatibility disputes
  • Security disputes

Resolution Process

  1. Submit dispute
  2. Review evidence
  3. Mediation
  4. Resolution
  5. Appeal (if needed)

Protocol Implementation​

Transport Layer​

Supported Protocols

  • HTTP/HTTPS
  • gRPC
  • WebSocket
  • Message queue

Error Handling​

Error Codes

pub enum ProtocolError {
InvalidMessage(InvalidMessageError),
AuthenticationFailed,
AuthorizationDenied,
ComponentNotFound(ComponentId),
VersionConflict(VersionConflict),
ValidationFailed(ValidationError),
NetworkError(NetworkError),
ServerError(String),
}

Protocol Versioning​

Version Format: MAJOR.MINOR

  • MAJOR: Breaking changes
  • MINOR: Backward-compatible additions

Version Negotiation

pub struct ProtocolVersion {
pub major: u32,
pub minor: u32,
}

pub fn negotiate_version(client: &ProtocolVersion, server: &ProtocolVersion) -> Option<ProtocolVersion> {
// Negotiate compatible version
}

Security​

Cryptographic Verification​

Component Signing

  • GPG signatures
  • X.509 certificates
  • Blockchain verification

Integrity Verification

pub trait IntegrityVerifier {
fn verify(&self, component: &Component, signature: &Signature) -> Result<VerificationResult>;
fn calculate_checksum(&self, content: &[u8]) -> Checksum;
}

Security Requirements​

  • TLS for transport
  • Signed components
  • Verified checksums
  • Access control
  • Audit logging

Implementation Status​

πŸ“‹ Planned​

  • Component identification and addressing
  • Component metadata schema
  • Protocol message formats
  • Authentication and authorization
  • Component publishing protocol
  • Component discovery protocol
  • Component retrieval protocol
  • Version negotiation
  • Component validation rules
  • Quality scoring system
  • Reputation mechanisms
  • Dispute resolution

Note: This specification is extracted from the OpenKor E1 document. Detailed protocol message formats may need manual review from the source PDF.