Skip to main content

beam_core/
lib.rs

1pub mod api;
2pub mod ask;
3pub mod config;
4pub mod i18n;
5pub mod ipc;
6pub mod logging;
7pub mod paths;
8pub mod permissions;
9pub mod persist;
10pub mod schedule_parser;
11pub mod schedule_store;
12pub mod session;
13pub mod workflow;
14pub mod workflow_actions;
15pub mod workflow_binding;
16pub mod workflow_cold_scan;
17pub mod workflow_definition;
18pub mod workflow_orchestrator;
19pub mod workflow_output;
20pub mod workflow_projection;
21pub mod workflow_resume;
22pub mod workflow_run;
23pub mod workflow_runtime;
24pub mod workflow_sidecar;
25pub mod workflow_snapshot;
26
27/// Default terminal columns used by beam when creating zellij sessions
28/// and for reset-to-default resize operations (reference: botmux 160×50).
29pub const DEFAULT_TERMINAL_COLS: u16 = 160;
30
31/// Default terminal rows used by beam when creating zellij sessions
32/// and for reset-to-default resize operations.
33pub const DEFAULT_TERMINAL_ROWS: u16 = 50;
34
35pub use api::{
36    ApiHealth, AttemptResumeEndResponse, AttemptResumeRequest, AttemptResumeStartResponse,
37    AttentionRequest, BotSummary, CreateSessionRequest, DaemonOverview, DaemonRuntimeState,
38    FinalOutputRequest, MentionTarget, RestartSessionRequest, ResumeSessionRequest, SessionGroup,
39    SessionInputRequest, SessionLocateInfo, SessionSummary, TerminalInfo,
40};
41pub use ask::{AskOption, AskQuestion, AskRequest, AskResult, legacy_selected};
42pub use config::{
43    BotConfig, Config, DaemonConfig, LarkConfig, MessageQuotaConfig, OncallChatBinding, QuotaEntry,
44    ScreenAnalyzerConfig, WebConfig,
45};
46pub use ipc::{
47    CliUsageLimitKind, CliUsageLimitState, DaemonToWorker, DisplayMode, FinalOutputKind,
48    InitConfig, ScreenStatus, TermActionKey, TranscriptChoice, TuiPromptOption, WorkerToDaemon,
49};
50pub use paths::BeamPaths;
51pub use permissions::{
52    TalkEvaluation, TalkReason, can_operate, evaluate_talk, get_owner_open_id, grant_restricted,
53    is_owner,
54};
55pub use schedule_parser::{ParsedNaturalSchedule, parse_natural_schedule, parse_schedule};
56pub use schedule_store::{
57    CreateTaskInput, ParsedSchedule, ParsedScheduleKind, ScheduleChatType, ScheduleDeliver,
58    ScheduleRepeat, ScheduleStoreError, ScheduleTaskUpdate, ScheduledTask, append_output_log,
59    create_task, get_task, list_tasks, mark_run, remove_task, update_task,
60};
61pub use session::{
62    AdoptedFrom, AgentAttention, ChatMode, PendingResponseCardState, Session, SessionScope,
63    SessionStatus,
64};
65pub use workflow::{EventDraft, EventLog, WorkflowActor, WorkflowEventEnvelope};
66pub use workflow_actions::{
67    CompleteActivityCancelInput, CompleteNodeCancelInput, CompleteRunCancelInput, CreateWaitInput,
68    DeliverCancelInput, ExpireWaitInput, RequestCancelInput, ResolveWaitInput, WaitKind,
69    WaitOnTimeout, WaitResolution, complete_activity_cancel, complete_node_cancel,
70    complete_run_cancel, create_wait, deliver_cancel, expire_wait, request_cancel, resolve_wait,
71};
72pub use workflow_binding::{
73    BindingContext, BindingError, LoopContext, resolve_bindings, resolve_bound_string,
74};
75pub use workflow_cold_scan::{ColdScanStats, ColdWorkflowRun, scan_cold_workflow_runs};
76pub use workflow_definition::{
77    DecisionNode, HostExecutorNode, HumanGate, LoopNode, LoopOutputProjection, LoopTerminate,
78    ParamDef, RetryPolicy, SubagentNode, WorkflowDefaults, WorkflowDefinition, WorkflowNode,
79    parse_workflow_definition,
80};
81pub use workflow_orchestrator::{OrchestratorAction, decide_next_actions, topological_order};
82pub use workflow_output::{
83    WORKFLOW_OUTPUT_BEGIN, WORKFLOW_OUTPUT_END, parse_workflow_output,
84    with_workflow_output_protocol,
85};
86pub use workflow_projection::{
87    EventWindow, EventWindowOpts, event_seq_from_id, infer_run_status, read_event_window,
88    read_run_events_pure,
89};
90pub use workflow_resume::{
91    PriorReconcileRecoveryOutcome, ScheduleResumeOutcome, ScheduleResumeResult,
92    recover_prior_reconcile_result, resume_schedule_dangling_effects,
93};
94pub use workflow_run::{
95    BootstrapWorkflowRunInput, RunChatBinding, WorkflowOutputRef, WorkflowRunBootstrap,
96    bootstrap_workflow_run, mint_workflow_run_id, normalize_workflow_params,
97};
98pub use workflow_runtime::{
99    HostExecutorPrepareResult, RecoveryResult, RunLoopResult, RunLoopStopReason, RunTickResult,
100    WorkflowDispatchOutcome, WorkflowDispatchRun, WorkflowDispatchSession, WorkflowExecutionHooks,
101    WorkflowRuntimeContext, complete_node_failed, complete_node_succeeded, complete_run_failed,
102    complete_run_succeeded, derive_workflow_idempotency_key, dispatch_gate, dispatch_work,
103    finish_loop, finish_loop_iteration, get_host_executor_provider_meta, run_loop, run_tick,
104    start_loop, start_loop_iteration,
105};
106pub use workflow_sidecar::{load_effect_input_sidecar, write_effect_input_sidecar};
107pub use workflow_snapshot::{
108    ActivityState, ActivityStatus, AttemptIODTO, AttemptState, AttemptTerminalDTO, BlobPreviewDTO,
109    BotSnapshot, CancelIntent, DanglingSnapshot, EffectAttemptedState, LoopIterationState,
110    LoopIterationStatus, LoopSnapshotDTO, LoopState, LoopStatus, NodeState, NodeStatus,
111    ReconcileResultState, RunSnapshotDTO, RunState, RunStatus, WaitResolutionState, WaitState,
112    read_run_snapshot,
113};