Phase 1 of Conductor integration - DAG-based plan execution support:
Types:
- Add StepExecutionResult enum (Success, Failed, Skipped, Pending, InProgress)
- Add SkipReason enum for tracking why steps were skipped
- Add PauseReason enum for execution pause states
- Add DagValidationResult enum for validation outcomes
PlanStep extensions:
- Add depends_on: Vec<String> for explicit step dependencies
- Add execution_result: Option<StepExecutionResult> for tracking
- Add retry_count: u8 for failure retry tracking
AccumulatedPlanStatus extensions:
- Add ExecutingParallel { active_count, remaining } variant
- Add Paused(PauseReason) variant
- Add Aborted { reason } variant
DAG validation (Kahn's algorithm):
- validate_dag() returns execution order with parallelism levels
- Detects cycles and missing dependencies
- dependencies_satisfied() checks if step can execute
- get_ready_steps() returns executable steps
- skip_with_dependents() cascades failure through graph
Tests: 12 new DAG validation tests covering chains, parallelism,
diamonds, cycles, missing deps, and skip cascading.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Owlen CLI
The command-line interface for the Owlen AI agent.
Features
- Interactive Chat: Communicate with the AI agent directly from your terminal.
- Tool Integration: Built-in support for filesystem operations, bash execution, and more.
- Provider Management: Easily switch between different LLM providers (Ollama, Anthropic, OpenAI).
- Session Management: Persist conversation history and resume previous sessions.
- Secure Authentication: Managed authentication flows for major AI providers.
Usage
Direct Invocation
# Start an interactive chat session
owlen
# Ask a single question
owlen "How do I list files in Rust?"
Commands
owlen config: View or modify agent configuration.owlen login <provider>: Authenticate with a specific LLM provider.owlen session: Manage chat sessions.
Configuration
Owlen uses a global configuration file located at ~/.config/owlen/config.toml. You can also provide project-specific settings via an .owlen.toml file in your project root.