services/pulse/pulse
Pulse service — time-driven periodic task execution. Reads PULSE.md on a fixed interval, parses task checklists, and executes active tasks through the full agent conversation loop.
Two-phase mode (configurable): Phase 1 asks the LLM to decide which tasks to run; Phase 2 executes the selected tasks. Single-phase mode runs all active tasks directly.
Types
Values
pub fn extract_metadata(text: String) -> #(Priority, String)
pub fn parse_priority(s: String) -> Priority
pub fn parse_tasks(content: String) -> List(PulseTask)
pub fn service(
client: client.Client,
persona: String,
tool_defs: List(tool_def.ToolDefinition),
tools: List(tool.Tool),
max_rounds: Int,
db_path: String,
user_key: String,
llm_client: behaviours.LLMClient,
memory_store: behaviours.MemoryStore,
) -> service.Service
Service shape — supervised: True. The timer loop runs in a spawned process. Opens its own SQLite connection inside the spawned process because SQLite NIFs are process-specific.