Project Structure
icrl
pyproject.toml
uv.lock
README.md
docs
api-reference
core-concepts
examples
guides
src
icrl
cli
providers
harbor
validators
examples
codebase_patterns_demo
exception_handling_demo
it_support_demo
preference_learning_demo
tests
icrl-ts
src
providers
adapters
examples
tests
web-example
convex
src
web-landing
src
Key Directories
Development Setup
Prerequisites
- Python 3.12+
- uv for Python
- Node 18+ and bun for TypeScript
- API keys for demos:
OPENAI_API_KEYand/orANTHROPIC_API_KEY
Python (from repo root)
uv sync when developing from source.
TypeScript
Environment Variables
Create a.env file in the repo root (or in icrl-ts/ for TS demos):
GOOGLE_APPLICATION_CREDENTIALS, VERTEXAI_PROJECT, VERTEXAI_LOCATION.
Running Tests
Python
TypeScript
Linting and Formatting
Python
Uses ruff for linting and formatting:TypeScript
Submitting Changes
- Fork the repository and create a branch from
main. - Make changes with clear commits. Follow existing style (ruff for Python, project conventions for TS).
- Run tests before submitting. Ensure
uv run python tests/test_with_mock.pyanduv run --with pytest python -m pytest tests/pass for Python changes. - Open a pull request against
main. Describe the change and link any related issues.
Documentation
Docs live indocs/ and use Mintlify. To preview locally:

