Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 6 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-24.04, macos-15]
python: ["3.12", "3.13"]
python: ["3.12", "3.13", "3.14"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand All @@ -41,13 +41,17 @@ jobs:
"$GITHUB_WORKSPACE/.installed-check/bin/python" -I "$GITHUB_WORKSPACE/tools/smoke_installed.py" --output "$RUNNER_TEMP/agentqit-smoke"

browser:
strategy:
fail-fast: false
matrix:
python: ["3.12", "3.13", "3.14"]
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
version: "0.13.6"
python-version: "3.12"
python-version: ${{ matrix.python }}
- run: uv sync --frozen --extra browser
- run: uv run playwright install --with-deps chromium --only-shell
- run: uv run pytest -m browser
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project

AgentQit is a public source preview. Read [the roadmap](docs/roadmap.md),
AgentQit provides application testing tools for AI agents. Read [the roadmap](docs/roadmap.md),
[compatibility](docs/compatibility.md), and [the release guide](docs/releases.md) before changing code.
Package publication requires an explicit maintainer instruction. Source changes
use pull requests and the required CI checks.
Expand Down
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Changelog

## 0.1.0 - Unreleased
## 0.1.0 - 2026-11-02

- CPython 3.12, 3.13, and 3.14 support on macOS and Linux.
- Product-neutral runtime and CLI with public dependency sources.
- Local YAML workspaces and independently installed product plugins.
- Local stdio MCP with bounded discovery, plans, observations, invocation, and checkpoints.
Expand All @@ -17,4 +18,4 @@
reviewed schema snapshots, and a documented compatibility/upgrade policy.
- Reproducible CLI/MCP context accounting against synthetic local backend workflows.
- Manual release preparation, source/tag/version checks, retained artifact hashes,
strict package metadata validation, and disabled-by-default Trusted Publishing.
strict package metadata validation, and protected Trusted Publishing.
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,20 @@ and local MCP. The agent selects checks from requirements; the runtime validates
inputs, enforces execution limits, and returns observations with evidence.
UI, API, database, and messaging observations can share a task journal.

**Availability:** source preview on GitHub. The PyPI package is not published.
Python 3.12+, macOS and Linux.
CPython 3.12, 3.13, and 3.14; macOS and Linux.

## Install

With uv installed:

```sh
uv tool install --python 3.12 'agentqit[browser] @ git+https://github.com/akimovWare/AgentQit.git@main'
uv tool install --python 3.12 'agentqit[browser]>=0.1,<0.2'
qa browser install --headless-only
qa workspace init --directory ./my-qa --name sample
```

For backend-only use, omit `[browser]` and the browser provisioning command.
Pin a commit instead of `main` for a repeatable source installation.
For a reproducible installation, pin a reviewed version such as `==0.1.0`.

The workspace contains your operation YAML, profile, and credential references.
Configure reviewed operations, QA endpoints, and an explicit credential provider
Expand Down
11 changes: 5 additions & 6 deletions README.pypi.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,20 @@ AgentQit exposes typed browser actions, reviewed backend operations, and observa
with evidence. The agent selects checks from requirements and compares the returned
facts with expected behavior. CLI and local stdio MCP share one execution runtime.

**Availability:** source preview on GitHub. The PyPI package is not published.
Python 3.12+, macOS and Linux.
CPython 3.12, 3.13, and 3.14; macOS and Linux.

## Install from Git
## Install

With uv installed:

```sh
uv tool install --python 3.12 'agentqit[browser] @ git+https://github.com/akimovWare/AgentQit.git@main'
uv tool install --python 3.12 'agentqit[browser]>=0.1,<0.2'
qa browser install --headless-only
qa workspace init --directory ./my-qa --name sample
```

For backend-only use, omit `[browser]` and browser provisioning. Pin a commit for
a repeatable source installation.
For backend-only use, omit `[browser]` and browser provisioning. Pin a reviewed
version such as `==0.1.0` for a reproducible installation.

Configure the workspace with reviewed operation YAML, your QA endpoints, and
explicit credential references. Ordinary integrations use YAML; reusable catalogs
Expand Down
8 changes: 8 additions & 0 deletions docs/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ Package updates and configuration migrations are separate actions.
AgentQit preserves workspace files during installation, startup, planning, and
upgrade.

## Python and platforms

Supported interpreters are standard CPython 3.12, 3.13, and 3.14 on macOS and
Linux. CI validates the offline suite, package build, and isolated installation
on both platforms for each version. Chromium acceptance runs on Linux for all
three versions. Free-threaded Python, PyPy, and Windows are outside the tested
support matrix. See [verification](verification.md).

## Versioned contracts

| Surface | Current contract | Promise |
Expand Down
37 changes: 23 additions & 14 deletions docs/distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,27 @@ and shared runtime. Configuration lives in a separate workspace containing YAML
catalogs, a profile, and credential references. Ordinary integrations require no
Python code or runtime checkout.

The source is available on GitHub. The PyPI package is not published.
Supported interpreters are standard CPython 3.12, 3.13, and 3.14 on macOS and Linux.
The commands below select Python 3.12; use `--python 3.13` or `--python 3.14` to
select another supported version.

## Install from PyPI

With uv installed:

```sh
uv tool install --python 3.12 'agentqit[browser]>=0.1,<0.2'
qa browser install --headless-only
qa workspace init --directory ./my-service-qa --name my-service
```

For backend-only use, select `'agentqit>=0.1,<0.2'` and omit browser provisioning.
The version range accepts compatible 0.1.x updates. Adopt a new minor series
after reading its migration notes. CI integrations should pin a reviewed version.

uv installs executables on `PATH` and isolates dependencies from other projects.
`uv tool update-shell` adds its executable directory when needed. See
[uv tools](https://docs.astral.sh/uv/guides/tools/).

## Install from Git

Expand All @@ -18,9 +38,7 @@ qa workspace init --directory ./my-service-qa --name my-service
```

For backend-only use, omit `[browser]` and browser provisioning. Use a commit SHA
instead of `main` to pin a source revision. uv installs executables on `PATH` and
isolates dependencies from other projects. `uv tool update-shell` adds its executable
directory when needed. See [uv tools](https://docs.astral.sh/uv/guides/tools/).
instead of `main` to pin a source revision.

## Install a built wheel

Expand Down Expand Up @@ -74,16 +92,7 @@ qa browser install --headless-only
See [Playwright browser versions](https://playwright.dev/python/docs/browsers).
There is no background auto-updater or update-notification service.

## Package-index releases

Index commands require a published package. The compatible 0.1 series uses:

```sh
uv tool install --python 3.12 'agentqit[browser]>=0.1,<0.2'
```

For backend-only use, select `'agentqit>=0.1,<0.2'`. Adopt a new minor series after
reading its migration notes. CI integrations should pin a reviewed version.
## Pinning and rollback

To select or roll back to a specific published version:

Expand Down
14 changes: 14 additions & 0 deletions docs/releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,20 @@ page. Keep their installation instructions and availability accurate. The index
page uses absolute documentation URLs. Verify that its rendered Markdown and the
built wheel description match. Include both files in the sdist.

## One-time PyPI setup

Sign in to a personal PyPI account, verify its email address, and enable two-factor
authentication. Under [account publishing](https://pypi.org/manage/account/publishing/),
add a pending GitHub publisher using the exact values in the table above. The
workflow field is the filename `release.yml`, not its path or display name.

The first successful upload creates the `agentqit` project under that account
and converts the pending publisher into a regular publisher. A pending publisher
does not reserve the package name. OIDC publishing needs no stored PyPI API token.

The GitHub `pypi` environment must allow version tags and require a maintainer
review. After validation, the publishing job waits for that review before upload.

## Validate a release

Use an empty artifact directory and a new benchmark output directory:
Expand Down
5 changes: 3 additions & 2 deletions docs/verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ stale and changed references, credential input, screenshots, traces, native
dialogs, and UI/API observations. Orders Lab supplies correct and deliberately
defective UI behavior. Business assertions belong to the acceptance tests.

The standard suite runs without browser binaries. CI covers Python 3.12/3.13 on
macOS/Linux, plus Chromium, interface-payload, and publication-content checks.
The standard suite runs without browser binaries. CI covers CPython 3.12, 3.13,
and 3.14 on macOS/Linux, plus Chromium on all three Python versions on Linux.
Interface-payload and publication-content checks run separately.
See [GitHub Actions](https://github.com/akimovWare/AgentQit/actions/workflows/ci.yml)
for results on each commit. Windows is unsupported by the POSIX journal/artifact
implementation. Model reasoning and independent LLM evaluations are outside the
Expand Down
10 changes: 8 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,13 @@ description = "Application testing tools for AI agents"
readme = "README.pypi.md"
license = "MIT"
requires-python = ">=3.12"
classifiers = ["Operating System :: POSIX", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13"]
classifiers = [
"Operating System :: POSIX",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
]
dependencies = [
"aiokafka>=0.12,<1",
"anyio>=4.8,<5",
Expand Down Expand Up @@ -44,7 +50,7 @@ agentqit-mcp = "qa_mcp.__main__:main"
dev = [
"packaging>=24,<27",
"pre-commit>=4.6,<5",
"pytest>=8.3,<9",
"pytest>=9.0.3,<10",
"pytest-cov>=7.1,<8",
"ruff>=0.9,<1",
"tiktoken>=0.12,<1",
Expand Down
8 changes: 4 additions & 4 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading