Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
dd8b840
Add exception hierarchy and a real public API
folathecoder Jul 7, 2026
233f067
Split Agent into immutable config and a per-run AgentSession
folathecoder Jul 7, 2026
e751282
Add project README with usage, architecture, and the session API
folathecoder Jul 7, 2026
1c332f6
Recover from malformed streamed tool calls instead of crashing
folathecoder Jul 7, 2026
84d38a2
Add tool and model timeouts, and prompt cancellation
folathecoder Jul 7, 2026
3cef708
Harden tool execution: threads, metadata, truncation, redaction
folathecoder Jul 7, 2026
6b49352
Harden memory: load validation, cumulative usage, context hook, error…
folathecoder Jul 7, 2026
213d676
Add terminal run status and a redirectable print_events
folathecoder Jul 7, 2026
fab8ec8
Adopt ruff format and mypy config, wire CI, bump to 0.1.0
folathecoder Jul 7, 2026
3fc412b
Document the production API and add project docs
folathecoder Jul 7, 2026
1c8f035
Adopt ruff format and mypy config, wire CI, bump to 0.1.0
folathecoder Jul 7, 2026
029d58f
Reject id-less streamed tool calls and validate skill frontmatter
folathecoder Jul 7, 2026
2582da0
Document the production API and add project docs
folathecoder Jul 7, 2026
76408c0
Reject id-less streamed tool calls and validate skill frontmatter
folathecoder Jul 7, 2026
160702a
Fix stale docs and comments; add project docs
folathecoder Jul 7, 2026
21391a5
Address PR review: reserve load_skill name and fix truncation edge
folathecoder Jul 7, 2026
30c4aac
Add a runnable examples suite covering the feature set
folathecoder Jul 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,16 @@ jobs:
run: uv sync

- name: Lint (ruff)
run: uv run --with ruff ruff check src tests
run: uv run ruff check src tests examples

- name: Format check (ruff)
run: uv run ruff format --check src tests examples

- name: Type-check (mypy)
run: uv run --with mypy mypy src tests
run: uv run mypy src tests examples

- name: Test (pytest)
run: uv run pytest

- name: Build (verify the package builds)
run: uv build
29 changes: 29 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Changelog

All notable changes to agentling are documented here. The format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project aims
to follow [semantic versioning](https://semver.org/).

## [0.1.0] - 2026-07-07

The first real release: the core framework plus a production-hardening pass.

### Added

- Async ReAct agent loop with a single streaming code path (`Agent` config and
factory, `AgentSession` run state); blocking and streaming `run()`.
- Provider-neutral model layer and an OpenAI-compatible adapter with retries.
- `@tool` decorator with JSON Schema generation, argument validation, and
per-tool metadata (`timeout`, `parallel_safe`, `max_output_chars`).
- Typed memory (`TaskStep` / `ActionStep` / `FinalStep`) with JSON persistence
and load validation (`MemoryLoadError`).
- Streaming events, a `print_events` renderer, and a terminal run `status`
(completed / interrupted / max_steps).
- Progressive-disclosure skills (`SKILL.md`) with a built-in `load_skill` tool.
- An exception hierarchy under `AgentlingError`, public API exports, and
`__all__`.
- Timeouts (`tool_timeout`, `model_timeout`), prompt cancellation, sync tools
run off the event loop, optional error redaction (`redact_errors`), cumulative
token usage on the final event, and a `context_manager` hook for long runs.

[0.1.0]: https://github.com/folathecoder/agentling/releases/tag/v0.1.0
35 changes: 35 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Contributing to agentling

Thanks for your interest in improving agentling.

## Development setup

agentling uses [uv](https://docs.astral.sh/uv/):

```bash
uv sync # create the environment and install all dependencies
```

## The checks

These all run in CI and must pass. Run them locally before opening a PR:

```bash
uv run pytest # tests
uv run ruff check src tests # lint
uv run ruff format --check src tests # formatting (run `ruff format` to fix)
uv run mypy src tests # type-check
uv build # the package builds
```

## Guidelines

- Keep the framework small and readable; prefer clarity over cleverness.
- Add tests for new behavior, including the failure paths.
- Type everything; the codebase is checked with mypy.
- Match the surrounding style; `ruff format` is the source of truth.
- Avoid new runtime dependencies unless they clearly earn their place.

## Reporting bugs and vulnerabilities

Open a GitHub issue for bugs. For security reports, see [SECURITY.md](SECURITY.md).
Loading
Loading