Metadata-Version: 2.4
Name: codecraftai-provisioning
Version: 1.3.1
Summary: Code Craft AI - Provisioning Package
License-Expression: LicenseRef-CodeCraftAI-Source-Available
License-File: LICENSE.md
Keywords: python,automation,ccai,provisioning,cloud
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-configuration (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-credentials (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-foundations (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-landscaping (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-aws (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-azure (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-base (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-coreweave (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-crusoe (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-digitalocean (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-google (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-hetzner (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-lambdalabs (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-linode (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-nebius (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-nutanix (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-oracle (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-proxmox (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-runpod (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-restclient-vsphere (>=1.0.0,<2.0.0)
Requires-Dist: codecraftai-testbase (>=1.0.0,<2.0.0)
Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
Requires-Dist: requests (>=2.32.5,<3.0.0)
Project-URL: Issues, https://github.com/code-craft-ai-company/codecraftai-provisioning/issues
Project-URL: Repository, https://github.com/code-craft-ai-company/codecraftai-provisioning
Description-Content-Type: text/x-rst

============================
Code Craft AI Provisioning
============================

The ``codecraftai-provisioning`` package provides the cloud-provisioning layer for the ccai suite. It defines a vendor-neutral model for declaring cloud resources and a set of venue-specific provisioner implementations that can realise those resources on the three major public clouds.

Highlights
==========

- Vendor-neutral ``CloudResourceProfile``, ``CloudDevice``, ``CloudGroup``, ``CloudVenue``, and abstract ``CloudProvisioner`` under ``provisioning/model/cloud/``.
- Concrete provisioners under ``provisioning/venues/``: ``AwsCloudProvisioner``, ``AzureCloudProvisioner``, and ``GoogleCloudProvisioner``.
- Top-level ``ProvisioningEngine`` that drives a provisioning run end-to-end.
- Integrates with ``codecraftai-landscaping`` so cloud-provisioned hosts can be folded into a landscape once they exist.
- Cloud authentication via ``codecraftai-credentials``.

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

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

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-envrionment

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

Activate the virtual environment:

.. code-block:: bash

   source .venv/bin/activate

Run TestBase tests (when test roots are populated):

.. code-block:: bash

   testbase testing run --root source/testroots/testbase --includes=ccai --output=./.output

Standards and Conventions
=========================

- Naming conventions: ``userguide/10-02-naming-conventions.rst``
- Code organization: ``userguide/10-01-code-organization.rst``
- Coding standards: ``userguide/10-00-coding-standards.rst``

Additional Resources
====================

- User guide entry point: ``userguide/userguide.rst``

