mirror of
https://github.com/instructkr/claw-code.git
synced 2026-04-07 08:34:49 +08:00
docs: describe the runtime public API surface
This adds crate-level and type-level Rustdoc to the runtime crate's core exported types so downstream crates and contributors can understand the session, prompt, permission, OAuth, usage, and tool I/O primitives without spelunking every implementation file. Constraint: The docs pass needed to stay focused on public runtime types without changing behavior Rejected: Add blanket docs to every public item in one sweep | larger churn than needed for a targeted docs pass Confidence: high Scope-risk: narrow Reversibility: clean Directive: When exporting new runtime primitives from lib.rs, add a short Rustdoc summary in the defining module at the same time Tested: cargo build --workspace; cargo test --workspace Not-tested: rustdoc HTML rendering beyond doc-test coverage
This commit is contained in:
@@ -14,6 +14,7 @@ const ROTATE_AFTER_BYTES: u64 = 256 * 1024;
|
||||
const MAX_ROTATED_FILES: usize = 3;
|
||||
static SESSION_ID_COUNTER: AtomicU64 = AtomicU64::new(0);
|
||||
|
||||
/// Speaker role associated with a persisted conversation message.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum MessageRole {
|
||||
System,
|
||||
@@ -22,6 +23,7 @@ pub enum MessageRole {
|
||||
Tool,
|
||||
}
|
||||
|
||||
/// Structured message content stored inside a [`Session`].
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
pub enum ContentBlock {
|
||||
Text {
|
||||
@@ -40,6 +42,7 @@ pub enum ContentBlock {
|
||||
},
|
||||
}
|
||||
|
||||
/// One conversation message with optional token-usage metadata.
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
pub struct ConversationMessage {
|
||||
pub role: MessageRole,
|
||||
@@ -47,6 +50,7 @@ pub struct ConversationMessage {
|
||||
pub usage: Option<TokenUsage>,
|
||||
}
|
||||
|
||||
/// Metadata describing the latest compaction that summarized a session.
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
pub struct SessionCompaction {
|
||||
pub count: u32,
|
||||
@@ -54,6 +58,7 @@ pub struct SessionCompaction {
|
||||
pub summary: String,
|
||||
}
|
||||
|
||||
/// Provenance recorded when a session is forked from another session.
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
pub struct SessionFork {
|
||||
pub parent_session_id: String,
|
||||
@@ -65,6 +70,7 @@ struct SessionPersistence {
|
||||
path: PathBuf,
|
||||
}
|
||||
|
||||
/// Persisted conversational state for the runtime and CLI session manager.
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct Session {
|
||||
pub version: u32,
|
||||
@@ -91,6 +97,7 @@ impl PartialEq for Session {
|
||||
|
||||
impl Eq for Session {}
|
||||
|
||||
/// Errors raised while loading, parsing, or saving sessions.
|
||||
#[derive(Debug)]
|
||||
pub enum SessionError {
|
||||
Io(std::io::Error),
|
||||
|
||||
Reference in New Issue
Block a user