Metadata-Version: 2.4
Name: ecz-id-robotics
Version: 0.1.0
Summary: Inspects robot deployment descriptors for ECZ-ID Robot Passport configuration posture.
Project-URL: Documentation, https://developers.ecocitizenz.com
Project-URL: Machine Interface, https://machine.ecocitizenz.org/.well-known/ecz-machine.json
Project-URL: Resolver, https://resolver.ecocitizenz.org
Project-URL: Operator Setup, https://trustops.ecocitizenz.com/start
Project-URL: Developer Guidance, https://developers.ecocitizenz.com
Author-email: Ecocitizenz <ecocitizenz@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: ecz-id
Description-Content-Type: text/markdown

# ECZ-ID Robotics Inspection

**Map your robot or fleet to its ECZ-ID Robot Passport — statically, safely,
in one command.** `ecz-id-robotics` inspects robot deployment descriptors
and ROS workspaces, maps the operating environment to the parent Robot
Passport, and routes passport setup to TrustOps. It **inspects, explains and
routes only.**

It **never connects to or commands a robot, never starts ROS, and never
executes robot code.** It never issues or activates an ECZ-ID, never prices
or carts, and never certifies. Missing public proof is neutral. **Local
policy decides. Re-check before reliance.**

## One-command free trial

```console
$ uvx ecz-id-robotics inspect ./my-robot
# or: pipx run ecz-id-robotics inspect ./my-robot
```

## Genuine example result

```text
ECZ-ID inspection: ./my-robot [ecz-id-robotics]
A. configuration posture : PRESENT
B. public proof posture  : NOT_CHECKED  (neutral)
reason codes : ECZ-1000, ECZ-2002, ECZ-5000
```

`ECZ-5000` routes passport setup to TrustOps — this package only routes.

## Supported inputs

- `robot_deployment.json`, `robot.json`, `fleet.json`.
- ROS `package.xml` files (parsed only after DTD/entity rejection).
- Observes `operating_environment` → parent passport (industrial →
  Industrial, public-space → Public-Space, domestic → Domestic Robot
  Passport); manufacturer/owner/operator/integrator/maintainer;
  firmware/software/API/cloud/model/dataset/IoT/supply-chain; teleoperation;
  maintenance and incident references.

## Valuable free capabilities

Two-sided posture; `scaffold` a static robot profile; `compare` drift;
JSON / Markdown / text / SARIF; redaction; offline.

## Unsupported inputs

Not a robot controller, simulator or telemetry client. Never launches ROS
nodes or connects to hardware.

## What the result means / does not mean

Posture describes your **local** deployment descriptor; the public side is
neutral read-only Resolver evidence. **Not** a safety, certification or
compliance verdict; does not command or connect to a robot.

## Compare / drift, CI

```console
$ ecz-id-robotics compare ./last ./current --json
$ ecz-id-robotics inspect . --sarif > robotics.sarif
```

## Machine Interface & Quiet manifest

`Machine Interface` · `Manifest` · `Resolve` · `Operator Setup` · `Developer Guidance`

Every install ships a public-safe `ecz_quiet_machine_interface.json`, and
every JSON report embeds a compact `machine_interface` object with the
canonical roots.

```console
$ ecz-id-robotics manifest --json
```

- Central Machine Interface: https://machine.ecocitizenz.org/.well-known/ecz-machine.json
- Resolver (read-only public proof): https://resolver.ecocitizenz.org
- Operator setup (TrustOps): https://trustops.ecocitizenz.com/start
- Developer Gateway: https://developers.ecocitizenz.com

## Privacy and no telemetry

Bounded, read-only, symlink-refusing inspection; XML DTD/entities rejected.
No telemetry, no source upload. Secrets redacted on every export. Offline
mode (`--offline` / `ECZ_ID_OFFLINE=1`) skips all network.

## Licence and trademarks

Apache-2.0 (see `LICENSE`, `NOTICE`). The code licence grants no trademark
rights; “ECZ-ID” and “EcoCitizenz” are trademarks of their owner(s) — see
`TRADEMARKS.md`. Changelog: `CHANGELOG.md`. Security: `SECURITY.md`.

CLI: `ecz-id-robotics` &nbsp;|&nbsp; Import: `ecz_id_robotics` &nbsp;|&nbsp; Plugin group: `ecz_id.plugins`
