pub enum Op {
Show 34 variants
RepoInit {
repo: String,
daemon_key: String,
human: String,
human_key: HumanKey,
policy: GitId,
trunk: GitId,
},
HumanEnroll {
human: String,
key: HumanKey,
},
HumanRotate {
human: String,
key: HumanKey,
},
HumanRevoke {
human: String,
reason: String,
},
HumanRecoveryKey {
human: String,
key: HumanKey,
},
HumanRecover {
human: String,
key: HumanKey,
},
DaemonRotate {
key: String,
},
DaemonRecover {
key: String,
recover: Option<Recovery>,
},
PolicyUpdate {
policy: GitId,
},
SessionStart {
session: String,
agent: String,
model: Option<String>,
task: String,
scope: Scope,
expires_ms: i64,
continues: Option<Continuation>,
harness: Option<String>,
},
SessionBind {
session: String,
checks: BindChecks,
level: ObservationLevel,
},
SessionIsolate {
session: String,
sandbox: String,
profile: String,
},
SessionEnd {
session: String,
reason: String,
},
CapAttenuate {
parent: String,
child: String,
agent: String,
scope: Scope,
expires_ms: i64,
leases: Vec<String>,
},
CapRevoke {
session: String,
reason: String,
},
LeaseAcquire {
set: String,
items: Vec<LeaseItem>,
intent: String,
ttl_ms: i64,
},
LeaseRelease {
set: String,
},
LeaseRenew {
set: String,
ttl_ms: i64,
},
LeaseInterest {
items: Vec<LeaseItem>,
intent: String,
},
ChangePropose {
change: ChangeId,
commit: GitId,
base: GitId,
claim: Claim,
},
ChangeWithdraw {
change: ChangeId,
},
ChangeIntegrate {
change: ChangeId,
trunk_before: GitId,
merged: Option<GitId>,
conflicts: Vec<String>,
},
ChangeIntegrateBatch {
trunk_before: GitId,
merged: Vec<(ChangeId, GitId)>,
},
Approve {
target_seq: u64,
note: String,
checks: Vec<String>,
},
Reject {
target_seq: u64,
reason: String,
},
Observe {
session: String,
events: Vec<Observation>,
},
Taint {
session: String,
reason: String,
},
ImportExternal {
remote: String,
commit: GitId,
trunk_before: GitId,
},
ImportUnmediated {
refname: String,
found: Option<GitId>,
expected: Option<GitId>,
},
BridgePush {
remote: String,
oplog_seq: u64,
oplog_hash: String,
},
Freeze {
reason: String,
},
Unfreeze {
reason: String,
},
Negotiate {
thread: String,
to_session: String,
message: NegotiationMsg,
},
Redact {
blob: GitId,
reason: String,
},
}Variants§
RepoInit
HumanEnroll
HumanRotate
Replaces the signer’s own key. Signed with the current key.
HumanRevoke
Withdraws a human’s keys and everything they set in motion.
HumanRecoveryKey
Sets (or replaces) the signer’s recovery key, kept off the machine. Signed with the current key.
HumanRecover
Replaces a lost key. Signed with the human’s recovery key, which is used up by it.
DaemonRotate
Replaces the daemon key (Ed25519, hex). Signed by the old daemon key and by a human; later entries are signed by the new key.
DaemonRecover
Re-anchors the log on a new daemon key when the old one is gone (or
belongs to a daemon that is being replaced). Signed by the new key
and by a human: with the human’s key, or, with recover, with
their recovery key, when the Mac that held both keys is lost (log
format 27).
PolicyUpdate
SessionStart
Fields
continues: Option<Continuation>The session whose workspace this one takes over.
SessionBind
SessionIsolate
A human’s word that the session runs in a sandbox Lonca built: what
gives it level: isolated. Never from the agent, and never from the
daemon, which can not see the sandbox: the launcher builds it and the
human who started the session signs for it.
Fields
SessionEnd
CapAttenuate
Fields
CapRevoke
LeaseAcquire
LeaseRelease
LeaseRenew
LeaseInterest
Holds nothing: when what conflicts with items is freed, the oldest
interest gets a short reservation. Until then, for a limited time,
no new lease can be taken that conflicts with items.
ChangePropose
ChangeWithdraw
ChangeIntegrate
Fields
ChangeIntegrateBatch
Changes at the head of the queue, integrated at once. One entry, so that a crash can not leave trunk at a state nothing verified: the evidence is of the last commit, and trunk moves straight to it. The commits before it are in its history and were never trunk.
Fields
Approve
checks: named checks of verification.checks the change owes from
here on, besides what it owed already; only on a proposal (log
format 25). Sorted, each name once.
Reject
A human declines an escalated operation; the reason is for the requester (a worker fixes and proposes again) and is never interpreted.
Observe
Taint
ImportExternal
ImportUnmediated
BridgePush
Freeze
Unfreeze
Negotiate
Redact
Implementations§
Source§impl Op
impl Op
pub fn kind(&self) -> OpKind
Sourcepub fn signed_by_recovery_key(&self) -> bool
pub fn signed_by_recovery_key(&self) -> bool
Whether the human’s recovery key signs this operation, not their
current key: human.recover, and daemon.recover with recover.
Sourcepub fn daemon_key_switch(&self) -> Option<&str>
pub fn daemon_key_switch(&self) -> Option<&str>
The daemon key this operation installs, if it is a key switch.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Op
impl<'de> Deserialize<'de> for Op
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Op
impl StructuralPartialEq for Op
Auto Trait Implementations§
impl Forget for Op
impl Freeze for Op
impl RefUnwindSafe for Op
impl Send for Op
impl Sync for Op
impl Unpin for Op
impl UnsafeUnpin for Op
impl UnwindSafe for Op
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.