Skip to main content

A naming convention that lets AI agents understand your data without being told what it means, plus a CLI and library for reading and safely editing structured JSON, TOML, YAML, dotenv, and INI documents.

Project description

Agent-First Data for Python

pip install agent-first-data
from agent_first_data import json_result, render, OutputFormat

value = json_result(
    {
        "api_key_secret": "sk-123",
        "latency_ms": 1280,
        "db_url": "postgres://user:p@ss@db/app?token_secret=abc",
    }
).build()

print(render(value, OutputFormat.JSON))
print(render(value, OutputFormat.PLAIN))

Useful names use Python casing: render (the single value x format x options -> str entry point; takes an OutputFormat and an optional keyword-only options=), redacted_value, redact_url_secrets, normalize_utc_offset, is_valid_rfc3339_date, is_valid_rfc3339_time, is_valid_rfc3339, is_valid_bcp47, cli_parse_output, build_cli_error, build_cli_version, cli_handle_version_or_continue, decode_protocol_event. Skill admin and stream-redirect helpers live in agent_first_data.skill and agent_first_data.stream_redirect (import the submodule directly).

Logging is available through init_logging_json, init_logging_plain, init_logging_yaml, span, and get_logger.

from agent_first_data import init_logging_json

init_logging_json("INFO", secret_names=("authorization",))

Behavior Notes

  • Default redaction replaces every _secret or configured secret-name subtree with ***, including objects and arrays.
  • _url fields scrub userinfo passwords and secret-named query parameters; surrounding whitespace is trimmed and internal whitespace redacts the whole field.
  • YAML keeps original keys and values (structure-preserving, like JSON), sorting keys by UTF-16 code unit order and quoting/escaping unsafe keys and string scalars. Plain strips formatting suffixes, formats values, sorts the same way, and renders nested objects/arrays as canonical JSON.
  • Logging records use kind:"log" with a nested log payload and a separate level field, so error-level logs are not terminal protocol errors.
  • build_cli_error(message, hint?) returns a strict-ready CLI error with error.retryable:false and trace:{}.
  • Use cli_handle_version_or_continue() before argument parsing so bare --version stays conventional and --version --output json|yaml|plain stays structured.
  • Use agent_first_data.stream_redirect.install_from_raw_args() before version/help handling if a CLI exposes --stdout-file or --stderr-file; stderr is redirected as native diagnostics, not JSON.

Reference

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agent_first_data-0.19.0.tar.gz (61.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_first_data-0.19.0-py3-none-any.whl (52.6 kB view details)

Uploaded Python 3

File details

Details for the file agent_first_data-0.19.0.tar.gz.

File metadata

  • Download URL: agent_first_data-0.19.0.tar.gz
  • Upload date:
  • Size: 61.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for agent_first_data-0.19.0.tar.gz
Algorithm Hash digest
SHA256 4ba136ed3bec7023acb63482970d13d5a4d40eaa48eb8b6ca7907c7feb7cc2db
MD5 e000979a57c442eead9950fafcb53c97
BLAKE2b-256 dfafcb91650dbdc6008dd047a1c7d3e64786a9452b6654a6f8c5687f4838e603

See more details on using hashes here.

File details

Details for the file agent_first_data-0.19.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agent_first_data-0.19.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a5b2276951a0d92ed91de0225b60fdefa138a1599cc4e17eb105cad29d7d723e
MD5 e4c7ae81f829fa10e7dc02dc1b551475
BLAKE2b-256 f25f9994b81f1e8395af42034463156a950e93c741e4325e27c7213b3f717145

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page