Skip to main content

A naming convention that lets AI agents understand your data without being told what it means.

Project description

Agent-First Data for Python

pip install agent-first-data
from agent_first_data import json_result, output_json, output_plain

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

print(output_json(value))
print(output_plain(value))

Useful names use Python casing: output_json, output_yaml, output_plain (each takes an optional keyword-only options=), redacted_value, redact_secrets_in_place, redact_url_secrets, normalize_utc_offset, is_valid_rfc3339_date, is_valid_rfc3339_time, is_valid_rfc3339, is_valid_bcp47, cli_parse_output, cli_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/plain quote and escape keys as well as values, sort by UTF-16 code unit order, and render nested objects in 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.17.2.tar.gz (45.8 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.17.2-py3-none-any.whl (41.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: agent_first_data-0.17.2.tar.gz
  • Upload date:
  • Size: 45.8 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.17.2.tar.gz
Algorithm Hash digest
SHA256 a501a8701c04d5f3bc829276d6e8d1c0b3bb7e61928b74ae4be785003f1d38b0
MD5 38a8daf25a12c12d27ad2f0d29e4939e
BLAKE2b-256 fb1ed002d0b6061c12f1db14e162895a64eff7737c57fd9bc5a17321a98f79a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for agent_first_data-0.17.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d405b80954d5d1bbfde482dd122af58430e22231547391d2c60fe2381160dfad
MD5 9e0222974da2d02886d937de9f8c0f20
BLAKE2b-256 d6432f45598bdf1366e1d3240eccd748d165deb0316766baf06f05212bd37f2f

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