Skip to main content

libbrat_grite/
lib.rs

1//! Grite integration library for Brat.
2//!
3//! This crate provides a client for interacting with the Grite CLI
4//! to manage convoys and tasks.
5//!
6//! # Example
7//!
8//! ```ignore
9//! use libbrat_grite::{GriteClient, TaskStatus};
10//!
11//! let client = GriteClient::new("/path/to/repo");
12//!
13//! // Create a convoy
14//! let convoy = client.convoy_create("Feature: Dark mode", None)?;
15//!
16//! // Create a task in the convoy
17//! let task = client.task_create(&convoy.convoy_id, "Implement toggle", None)?;
18//!
19//! // Update task status
20//! client.task_update_status(&task.task_id, TaskStatus::Running)?;
21//! ```
22
23mod client;
24mod error;
25mod id;
26pub mod reconcile;
27pub mod state_machine;
28mod types;
29
30pub use client::{GriteClient, LockResult};
31pub use error::GriteError;
32pub use id::{
33    generate_convoy_id, generate_session_id, generate_task_id, is_valid_convoy_id,
34    is_valid_session_id, is_valid_task_id, parse_convoy_id, parse_session_id, parse_task_id,
35};
36pub use state_machine::{State, StateMachine, Transition, TransitionError};
37pub use types::{
38    ContextIndexResult, Convoy, ConvoyStatus, DependencyType, FileContext, GriteIssue,
39    GriteIssueSummary, ProjectContextEntry, Session, SessionRole, SessionStatus, SessionType,
40    Symbol, SymbolMatch, Task, TaskDependency, TaskStatus,
41};