[go: up one dir, main page]

Crate cuenv_events

Crate cuenv_events 

Source
Expand description

Structured event system for cuenv.

This crate provides a unified event system that enables multiple UI frontends (CLI, TUI, Web) to subscribe to a single event stream. Events are emitted using tracing macros and captured by a custom tracing Layer.

§Architecture

┌─────────────────────────────────────────────────────────────────────────┐
│                           cuenv-events crate                            │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐  ┌─────────────┐ │
│  │ Event Schema │  │ EventBus     │  │ Tracing Layer│  │ Renderers   │ │
│  │ (typed)      │  │ (broadcast)  │  │ (capture)    │  │ (CLI/JSON)  │ │
│  └──────────────┘  └──────────────┘  └──────────────┘  └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘

§Usage

use cuenv_events::{EventBus, CuenvEventLayer, emit_task_started};
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;

// Create event bus and layer
let bus = EventBus::new();
let layer = CuenvEventLayer::new(bus.sender().inner);

// Initialize tracing with the layer
tracing_subscriber::registry()
    .with(layer)
    .init();

// Emit events using macros
emit_task_started!("build", "cargo build", false);

Re-exports§

pub use bus::EventBus;
pub use bus::EventReceiver;
pub use bus::EventSender;
pub use bus::SendError;
pub use event::CiEvent;
pub use event::CommandEvent;
pub use event::CuenvEvent;
pub use event::EventCategory;
pub use event::EventSource;
pub use event::InteractiveEvent;
pub use event::OutputEvent;
pub use event::Stream;
pub use event::SystemEvent;
pub use event::TaskEvent;
pub use layer::CuenvEventLayer;
pub use metadata::MetadataContext;
pub use metadata::correlation_id;
pub use metadata::set_correlation_id;
pub use renderers::CliRenderer;
pub use renderers::JsonRenderer;

Modules§

bus
Multi-subscriber EventBus for cuenv events.
event
Event type definitions for structured cuenv events.
layer
Custom tracing Layer for capturing cuenv events.
metadata
Metadata management for cuenv events.
renderers
Event renderers for different output formats.

Macros§

emit_ci_changed_files
Emit a CI changed files found event.
emit_ci_context
Emit a CI context detected event.
emit_ci_project_skipped
Emit a CI project skipped event.
emit_ci_projects_discovered
Emit a CI projects discovered event.
emit_ci_report
Emit a CI report generated event.
emit_ci_task_executing
Emit a CI task executing event.
emit_ci_task_result
Emit a CI task result event.
emit_command_completed
Emit a command completed event.
emit_command_progress
Emit a command progress event.
emit_command_started
Emit a command started event.
emit_prompt_requested
Emit a prompt requested event.
emit_prompt_resolved
Emit a prompt resolved event.
emit_shutdown
Emit a system shutdown event.
emit_stderr
Emit a stderr output event.
emit_stdout
Emit a stdout output event.
emit_supervisor_log
Emit a supervisor log event.
emit_task_cache_hit
Emit a task cache hit event.
emit_task_cache_miss
Emit a task cache miss event.
emit_task_completed
Emit a task completed event.
emit_task_group_completed
Emit a task group completed event.
emit_task_group_started
Emit a task group started event.
emit_task_output
Emit a task output event.
emit_task_started
Emit a task started event.
emit_wait_progress
Emit a wait progress event.