Metadata-Version: 2.4
Name: codecraftai-restclient-pychestrate
Version: 1.2.0
Summary: Code Craft AI - Rest Client for Pychestrate
License-Expression: LicenseRef-CodeCraftAI-Source-Available
License-File: LICENSE.md
Keywords: python
Author: Myron Walker
Author-email: myron.walker@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: POSIX
Requires-Dist: codecraftai-credentials (<2.0.0)
Requires-Dist: codecraftai-foundations (<2.0.0)
Requires-Dist: codecraftai-restclient-base (<2.0.0)
Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
Requires-Dist: requests (>=2.32.4,<3.0.0)
Project-URL: Issues, https://github.com/code-craft-ai-company/codecraftai-restclient-pychestrate/issues
Project-URL: Repository, https://github.com/code-craft-ai-company/codecraftai-restclient-pychestrate
Description-Content-Type: text/x-rst

==================================================
Code Craft AI RestClient Pychestrate
==================================================

The ``codecraftai-restclient-pychestrate`` package is the typed Python REST
client for the Pychestrate continuous integration and orchestration
service. It is auto-generated from the OpenAPI 3.1 contract published
by ``pychestrate-service`` at
``specs/openapi/pychestrate.yaml`` and is built on top of
``codecraftai-restclient-base``.

Highlights
==========

- ``PychestrateRestClient`` as the top-level client for the Pychestrate REST API.
- Generated schema catalogue under ``pychestrate/models/`` modelling each
  Pychestrate resource type with ``SchemaObject`` / ``SchemaField`` bindings.
- Endpoint groupings under ``pychestrate/groups/`` covering runs, dispatch,
  progress, results, agents, pods, projects, and the rest of the Pychestrate
  REST surface.
- ``PychestrateRestClientGenerator`` under ``pychestrate/generation/`` to
  regenerate schema and group modules from the OpenAPI specification.
- Authentication via cookie session, API key header, and mTLS material — wired
  through ``codecraftai-credentials``.

Source of Truth
===============

The OpenAPI specification at
``pychestrate-service/specs/openapi/pychestrate.yaml`` is the single source
of truth for this client. To regenerate the client after a spec change:

.. code-block:: bash

   make generate

Repository Structure
====================

- ``development/`` - Runtime environment scripts.
- ``repository-setup/`` - Repository homing and setup scripts.
- ``source/packages/`` - Package source code.
- ``source/testroots/testbase/`` - TestBase test roots.

Environment Setup
=================

When working in a Codex container:

.. code-block:: bash

   ./development/setup-agent-container

For local development:

.. code-block:: bash

   ./repository-setup/rehome-repository
   ./development/setup-environment

Running Tests
=============

Activate the virtual environment:

.. code-block:: bash

   source .venv/bin/activate

Run the smoke tests:

.. code-block:: bash

   python -m unittest discover -s source/testroots/testbase/tests -v

