1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//! # pe-tasks — Task management for Potential Expectations.
//!
//! Structural primitives for agents to create, track, decompose, and
//! depend on work items. The library provides the mechanisms; users
//! build policies (event emission, calendar, kanban, markdown sync) on top.
//! The SurrealDB-backed registry is available with the `surreal` feature.
//!
//! ## Core types
//!
//! - [`Task`] — structured work item with ownership, hierarchy, and metadata
//! - [`TaskStatus`] — lifecycle states (Pending → InProgress → Completed/Failed)
//! - [`TaskType`] — discriminator (System/Agent/Human/Plan)
//! - [`TaskPriority`] — urgency level (Urgent/High/Medium/Low)
//!
//! ## Dependencies
//!
//! - [`TaskDependency`] — directed edge in the dependency DAG
//! - [`DependencyType`] — Blocks (hard), Requires (soft), Related (info)
//! - Cycle detection via BFS upstream traversal
//!
//! ## Lifecycle
//!
//! - [`TaskLifecycle`] trait — hooks for status transitions
//! - [`DefaultLifecycle`] — validates transitions, no side effects
//!
//! ## Registry
//!
//! - [`TaskRegistry`] trait — async CRUD + queries + dependencies
//! - [`InMemoryTaskRegistry`] — HashMap-backed implementation
//! - [`FileTaskRegistry`] — JSON-file-backed local persistence
//! - [`TaskFilter`] — query builder for listing tasks
//!
//! ## Tools
//!
//! - [`tools::task_create`] — create a task
//! - [`tools::task_list`] — list/filter tasks
//! - [`tools::task_complete`] — mark a task done
//! - [`tools::task_decompose`] — split into subtasks with dependencies
// === Re-exports: core types ===
pub use ;
// === Re-exports: dependencies ===
pub use ;
// === Re-exports: lifecycle ===
pub use ;
// === Re-exports: registry ===
pub use FileTaskRegistry;
pub use InMemoryTaskRegistry;
pub use ;
pub use SurrealTaskRegistry;