claw-vcs-core 0.1.1

Core object types and Claw Object Format encoding for Claw VCS.
Documentation
// This file is @generated by prost-build.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Blob {
    #[prost(bytes = "vec", tag = "1")]
    pub data: ::prost::alloc::vec::Vec<u8>,
    #[prost(string, tag = "2")]
    pub media_type: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TreeEntry {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(uint32, tag = "2")]
    pub mode: u32,
    #[prost(message, optional, tag = "3")]
    pub object_id: ::core::option::Option<super::common::ObjectId>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Tree {
    #[prost(message, repeated, tag = "1")]
    pub entries: ::prost::alloc::vec::Vec<TreeEntry>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PatchOp {
    #[prost(string, tag = "1")]
    pub address: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub op_type: ::prost::alloc::string::String,
    #[prost(bytes = "vec", tag = "3")]
    pub old_data: ::prost::alloc::vec::Vec<u8>,
    #[prost(bytes = "vec", tag = "4")]
    pub new_data: ::prost::alloc::vec::Vec<u8>,
    #[prost(uint64, tag = "5")]
    pub context_hash: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Patch {
    #[prost(string, tag = "1")]
    pub target_path: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub codec_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub base_object: ::core::option::Option<super::common::ObjectId>,
    #[prost(message, optional, tag = "4")]
    pub result_object: ::core::option::Option<super::common::ObjectId>,
    #[prost(message, repeated, tag = "5")]
    pub ops: ::prost::alloc::vec::Vec<PatchOp>,
    #[prost(bytes = "vec", tag = "6")]
    pub codec_payload: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Revision {
    #[prost(message, optional, tag = "1")]
    pub change_id: ::core::option::Option<super::common::Ulid>,
    #[prost(message, repeated, tag = "2")]
    pub parents: ::prost::alloc::vec::Vec<super::common::ObjectId>,
    #[prost(message, repeated, tag = "3")]
    pub patches: ::prost::alloc::vec::Vec<super::common::ObjectId>,
    #[prost(message, optional, tag = "4")]
    pub snapshot_base: ::core::option::Option<super::common::ObjectId>,
    #[prost(message, optional, tag = "5")]
    pub tree: ::core::option::Option<super::common::ObjectId>,
    #[prost(message, optional, tag = "6")]
    pub capsule_id: ::core::option::Option<super::common::ObjectId>,
    #[prost(string, tag = "7")]
    pub author: ::prost::alloc::string::String,
    #[prost(uint64, tag = "8")]
    pub created_at_ms: u64,
    #[prost(string, tag = "9")]
    pub summary: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "10")]
    pub policy_evidence: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Snapshot {
    #[prost(message, optional, tag = "1")]
    pub tree_root: ::core::option::Option<super::common::ObjectId>,
    #[prost(message, optional, tag = "2")]
    pub revision_id: ::core::option::Option<super::common::ObjectId>,
    #[prost(uint64, tag = "3")]
    pub created_at_ms: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Intent {
    #[prost(message, optional, tag = "1")]
    pub id: ::core::option::Option<super::common::Ulid>,
    #[prost(string, tag = "2")]
    pub title: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub goal: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "4")]
    pub constraints: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "5")]
    pub acceptance_tests: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "6")]
    pub links: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "7")]
    pub policy_refs: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "8")]
    pub agents: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "9")]
    pub change_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "10")]
    pub depends_on: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "11")]
    pub supersedes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, tag = "12")]
    pub status: ::prost::alloc::string::String,
    #[prost(uint64, tag = "13")]
    pub created_at_ms: u64,
    #[prost(uint64, tag = "14")]
    pub updated_at_ms: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Change {
    #[prost(message, optional, tag = "1")]
    pub id: ::core::option::Option<super::common::Ulid>,
    #[prost(message, optional, tag = "2")]
    pub intent_id: ::core::option::Option<super::common::Ulid>,
    #[prost(message, optional, tag = "3")]
    pub head_revision: ::core::option::Option<super::common::ObjectId>,
    #[prost(string, tag = "4")]
    pub workstream_id: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub status: ::prost::alloc::string::String,
    #[prost(uint64, tag = "6")]
    pub created_at_ms: u64,
    #[prost(uint64, tag = "7")]
    pub updated_at_ms: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Conflict {
    #[prost(message, optional, tag = "1")]
    pub base_revision: ::core::option::Option<super::common::ObjectId>,
    #[prost(message, optional, tag = "2")]
    pub left_revision: ::core::option::Option<super::common::ObjectId>,
    #[prost(message, optional, tag = "3")]
    pub right_revision: ::core::option::Option<super::common::ObjectId>,
    #[prost(string, tag = "4")]
    pub file_path: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub codec_id: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "6")]
    pub left_patch_ids: ::prost::alloc::vec::Vec<super::common::ObjectId>,
    #[prost(message, repeated, tag = "7")]
    pub right_patch_ids: ::prost::alloc::vec::Vec<super::common::ObjectId>,
    #[prost(message, repeated, tag = "8")]
    pub resolution_patch_ids: ::prost::alloc::vec::Vec<super::common::ObjectId>,
    #[prost(string, tag = "9")]
    pub status: ::prost::alloc::string::String,
    #[prost(uint64, tag = "10")]
    pub created_at_ms: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Evidence {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub status: ::prost::alloc::string::String,
    #[prost(uint64, tag = "3")]
    pub duration_ms: u64,
    #[prost(string, repeated, tag = "4")]
    pub artifact_refs: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, tag = "5")]
    pub summary: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "6")]
    pub revision_id: ::core::option::Option<super::common::ObjectId>,
    #[prost(string, optional, tag = "7")]
    pub command: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, optional, tag = "8")]
    pub exit_code: ::core::option::Option<i32>,
    #[prost(uint64, optional, tag = "9")]
    pub started_at_ms: ::core::option::Option<u64>,
    #[prost(uint64, optional, tag = "10")]
    pub ended_at_ms: ::core::option::Option<u64>,
    #[prost(string, optional, tag = "11")]
    pub environment_digest: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "12")]
    pub runner_identity: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "13")]
    pub log_digest: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "14")]
    pub artifact_digest: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(uint64, optional, tag = "15")]
    pub expires_at_ms: ::core::option::Option<u64>,
    #[prost(string, optional, tag = "16")]
    pub trust_domain: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(bytes = "vec", optional, tag = "17")]
    pub signature: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CapsulePublic {
    #[prost(string, tag = "1")]
    pub agent_id: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub agent_version: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub toolchain_digest: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub env_fingerprint: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "5")]
    pub evidence: ::prost::alloc::vec::Vec<Evidence>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CapsuleSignature {
    #[prost(string, tag = "1")]
    pub signer_id: ::prost::alloc::string::String,
    #[prost(bytes = "vec", tag = "2")]
    pub signature: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CapsuleRecipient {
    #[prost(string, tag = "1")]
    pub recipient_id: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub key_id: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub algorithm: ::prost::alloc::string::String,
    #[prost(bytes = "vec", tag = "4")]
    pub ephemeral_public_key: ::prost::alloc::vec::Vec<u8>,
    #[prost(bytes = "vec", tag = "5")]
    pub encrypted_content_key: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Capsule {
    #[prost(message, optional, tag = "1")]
    pub revision_id: ::core::option::Option<super::common::ObjectId>,
    #[prost(message, optional, tag = "2")]
    pub public_fields: ::core::option::Option<CapsulePublic>,
    #[prost(bytes = "vec", tag = "3")]
    pub encrypted_private: ::prost::alloc::vec::Vec<u8>,
    #[prost(string, tag = "4")]
    pub encryption: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub key_id: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "6")]
    pub signatures: ::prost::alloc::vec::Vec<CapsuleSignature>,
    #[prost(message, repeated, tag = "7")]
    pub recipients: ::prost::alloc::vec::Vec<CapsuleRecipient>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvidencePolicy {
    #[prost(bool, tag = "1")]
    pub require_fresh_evidence: bool,
    #[prost(bool, tag = "2")]
    pub require_revision_match: bool,
    #[prost(bool, tag = "3")]
    pub require_evidence_after_revision: bool,
    #[prost(bool, tag = "4")]
    pub require_expires_at: bool,
    #[prost(bool, tag = "5")]
    pub require_runner_identity: bool,
    #[prost(bool, tag = "6")]
    pub require_command: bool,
    #[prost(bool, tag = "7")]
    pub require_exit_code: bool,
    #[prost(bool, tag = "8")]
    pub require_log_or_artifact_digest: bool,
    #[prost(bool, tag = "9")]
    pub require_environment_digest: bool,
    #[prost(uint64, optional, tag = "10")]
    pub max_age_ms: ::core::option::Option<u64>,
    #[prost(string, repeated, tag = "11")]
    pub trusted_runner_identities: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Policy {
    #[prost(string, tag = "1")]
    pub policy_id: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "2")]
    pub required_checks: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "3")]
    pub required_reviewers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "4")]
    pub sensitive_paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(bool, tag = "5")]
    pub quarantine_lane: bool,
    #[prost(string, tag = "6")]
    pub min_trust_score: ::prost::alloc::string::String,
    #[prost(string, tag = "7")]
    pub visibility: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "8")]
    pub authorized_recipients: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "9")]
    pub evidence_policy: ::core::option::Option<EvidencePolicy>,
    #[prost(string, repeated, tag = "10")]
    pub revoked_recipients: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Workstream {
    #[prost(string, tag = "1")]
    pub workstream_id: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "2")]
    pub change_stack: ::prost::alloc::vec::Vec<super::common::Ulid>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RefLogEntry {
    #[prost(message, optional, tag = "1")]
    pub old_target: ::core::option::Option<super::common::ObjectId>,
    #[prost(message, optional, tag = "2")]
    pub new_target: ::core::option::Option<super::common::ObjectId>,
    #[prost(string, tag = "3")]
    pub author: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub message: ::prost::alloc::string::String,
    #[prost(uint64, tag = "5")]
    pub timestamp: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RefLog {
    #[prost(string, tag = "1")]
    pub ref_name: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "2")]
    pub entries: ::prost::alloc::vec::Vec<RefLogEntry>,
}