Metadata-Version: 2.4
Name: codecraftai-interop-ext-upnp
Version: 1.3.0
Summary: Code Craft AI - Upnp InterOp Extensions
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-foundations (<2.0.0)
Requires-Dist: codecraftai-interop (<2.0.0)
Requires-Dist: codecraftai-landscaping (<2.0.0)
Requires-Dist: codecraftai-this-app (<2.0.0)
Requires-Dist: defusedxml (>=0.7.1,<0.8.0)
Requires-Dist: requests (>=2.32,<3.0.0)
Project-URL: Issues, https://github.com/code-craft-ai-company/codecraftai-interop-ext-upnp/issues
Project-URL: Repository, https://github.com/code-craft-ai-company/codecraftai-interop-ext-upnp
Description-Content-Type: text/x-rst

=========================================
Code Craft AI Interop Extension: UPnP
=========================================

The ``codecraftai-interop-ext-upnp`` package is a UPnP extension for the ``codecraftai-interop`` and ``codecraftai-landscaping`` frameworks. It plugs into the extension points exposed by ``codecraftai-extension``, ``codecraftai-interop``, and ``codecraftai-landscaping`` to add UPnP-aware protocol handlers, device discovery, service proxies, and landscaping coordinators without modifying the host packages.

Highlights
==========

- UPnP model under ``interop/protocols/upnp/``: ``upnpdevicebase``, ``upnprootdevice``, ``upnpembeddeddevice``, ``upnpserviceproxy``, service state tables, and action descriptions.
- Discovery and presence: ``upnppresence``, ``upnpsearchwindow``, ``devicequerymanager``, and ``devicemetadatamanager``.
- SOAP helper and DIDL-Lite content support.
- Service-proxy and device-class generator that produces typed bindings from device descriptions.
- ``UpnpCoordinatorCoupling`` under ``landscaping/`` so UPnP devices show up as first-class landscape resources, plus manufacturer-specific mappings (for example, Bose).
- ``cli/cmdtree/upnp/`` command group for operator tooling.

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

- ``development/`` - Runtime environment scripts.
- ``repository-setup/`` - Repository homing and setup scripts.
- ``source/packages/`` - Package source code.
- ``source/testroots/ccai/`` - TestBase test roots.
- ``source/examples/`` - Example UPnP usage.
- ``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 the single-host test suite:

.. code-block:: bash

   testbase testing run --root source/testroots/ccai --includes=ccai.tests.singlehost --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``

