# car-ir

Agent intermediate representation types for the [Common Agent Runtime](https://github.com/Parslee-ai/car).

## What it does

Defines the typed IR that sits between model intent and runtime execution. Encodes richer
semantics than raw function-call JSON: preconditions, expected effects, idempotency keys,
failure behavior, state dependencies, and DAG construction. This is the shared vocabulary
that all other CAR crates depend on.

## Usage

```rust
use car_ir::{Action, ActionProposal, ActionType, Precondition, FailureBehavior, build_dag};

let action = Action {
    id: "a1".into(),
    action_type: ActionType::ToolCall,
    tool: Some("search".into()),
    preconditions: vec![],
    state_dependencies: vec![],
    failure_behavior: FailureBehavior::Abort,
    ..Default::default()
};
let levels = build_dag(&[action]);
```

Part of [CAR](https://github.com/Parslee-ai/car) -- see the main repo for full documentation.
