BossOS DHost Agent v1 - inspection-bound registration

Requirements:
Python 3.10+ with venv and pip.
Run the services you select as provider capabilities.
Dogecoin providers: running Dogecoin Core and dogecoin-cli.
IPFS-only providers: a local IPFS daemon; Dogecoin Core is not required.
Combined providers: both services.
Indexer, RadioD and BossLedger verifier diagnostics are not yet implemented.

Linux/macOS installation:
1. Extract this archive and open its dhost-agent directory.
2. Create a virtual environment:
   python3 -m venv venv
3. Install dependencies:
   ./venv/bin/python -m pip install -r requirements.txt
4. On the BossOS /dhost page, select your operator OG Wallet,
   enter node details, and prepare the connection command.
5. Run the generated commands from this directory.
   Create the agent identity only on first setup; retain an existing key.
6. Upload the generated connection JSON on /dhost and review it.
7. Continue to OG Wallet To Sign and sign one registration.

Check available options:
./venv/bin/python -m utils.dhost_agent_cli connect --help

Use --dogecoin-cli and --dogecoin-datadir when your node requires
non-default paths. The agent runs with your current user's permissions.
Enable optional IPFS inspection with --ipfs.

Keep dhost-agent.pem private. Never upload or distribute it.
The connection JSON contains public evidence and agent authorization;
share it only through the intended registration workflow.

The agent contacts BossOS through outbound HTTPS.
Inspection observations are agent-reported, not independent verification.
Connecting prepares evidence; it does not activate a node or start
continuous monitoring, workloads, or rewards.
Registration requires a separate operator OG Wallet signature.
The node remains pending until Genesis Admin authorizes activation.

Standalone IPFS-only inspection:
./venv/bin/python -m utils.dhost_agent_cli inspect --key dhost-agent.pem --skip-dogecoin --ipfs

Registration connections select diagnostics from --capability.
On Linux/macOS the private agent key must be owned by the running user,
must not be a symlink, and must have no group/other access (chmod 600 dhost-agent.pem).

Approved provider operation
---------------------------
After your one operator registration signature, wait for the separate
Genesis Admin activation. Keep the registration request ID from To Sign.
Do not create a second registration or replace your existing agent key.

Check status (replace REGISTRATION_REQUEST_ID with your request ID):
./venv/bin/python -m utils.dhost_agent_cli status --key dhost-agent.pem --server https://bossbuilders.ca --registration-request REGISTRATION_REQUEST_ID

After ACTIVE approval, run in the foreground:
./venv/bin/python -m utils.dhost_agent_cli run --key dhost-agent.pem --server https://bossbuilders.ca --registration-request REGISTRATION_REQUEST_ID

Stop with Ctrl+C. Default heartbeat interval is 60 seconds.
--interval accepts 30 through 300 seconds.
Keep this process running to report availability. This command does not
install a background service. Pending or revoked providers stop.
Network failures retry with bounded backoff.

ACTIVE archival Dogecoin providers can receive bounded read-only raw
transaction retrieval jobs. The worker requires an archival mainnet node.
Historical lookup by TXID generally requires transaction indexing.
Retrieved bytes are checked against the requested TXID. Chain inclusion,
confirmations, and asset interpretation are NOT verified by this service.
The worker does not broadcast transactions or execute remote shell commands.

IPFS providers report availability; IPFS pin/retrieve jobs are not included.
Pruned Dogecoin providers report availability but do not receive archival jobs.
Availability is agent-reported, not independent infrastructure verification.
No rewards or payments are implemented by these commands.
Completed jobs queue BossLedger delivery; delivery is not proof of
Dogecoin or IPFS anchoring.

Block retrieval support
-----------------------
Archival providers advertise transaction and block-content job support.
Block retrieval uses getblock verbosity 2 (Dogecoin Core 1.14.7 or later).
Header hashes and transaction Merkle roots are checked. This does not
independently validate PoW, AuxPoW, or canonical-chain membership.
Existing registration and agent identity remain valid; upgrading does not
require another operator registration signature.

Chain discovery support
-----------------------
The agent advertises transaction, block-content, and chain-query job types.
Tip and height-to-hash answers are PROVIDER_REPORTED, not consensus proofs.
The server may target jobs to a selected provider and activation.
Existing agent keys and operator registrations remain valid.
