> ## Documentation Index
> Fetch the complete documentation index at: https://icrl.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# TrajectoryDatabase

> Python trajectory store, embedding index, and curation metadata

## Constructor

```python theme={null}
TrajectoryDatabase(
    path: str | Path,
    embedder: Embedder | None = None,
)
```

If `embedder` is omitted, `default_embedder()` is used.

## Core Methods

```python theme={null}
db.add(trajectory, working_dir=None, extract_artifacts=True)
db.get(trajectory_id)
db.get_all()
len(db)
db.remove(trajectory_id)
```

## Search

```python theme={null}
db.search(query, k=3, include_deprecated=False)          # trajectory-level
db.search_steps(query, k=3)                              # step-level
```

## Retrieval Feedback

```python theme={null}
db.record_retrieval(trajectory_ids, led_to_success)
db.get_curation_metadata(trajectory_id)
```

## Deferred Validation and Deprecation

```python theme={null}
db.validate_trajectory(trajectory_id, working_dir=None)
db.validate_all(working_dir=None, include_deprecated=False)
db.get_superseded_trajectories()
db.get_deprecated_trajectories()
db.get_active_trajectories()
```

Python DB also tracks code artifacts and supersession metadata for trajectories.
