Skip to main content

aeo

Internal answer-engine-optimization CLI + SDK for Agent Berlin staff (admin_users, role admin). Sibling of backend/sdk-python — same transport posture and the same OTP bootstrap, scoped to internal AEO work.

Status: scaffold. This release establishes the package on PyPI. The CLI has only aeo --version; the SDK surface is not implemented yet.

Auth

aeo authenticates with a project-scoped token, minted by exchanging a one-time OTP from the aeo MCP server's get_otp tool:

aeo configure --otp <OTP> --domain <project_domain> --title "<what this session is for>"

This reuses the customer MCP's bootstrap wholesale — the OTP is an mcp_sessions row and the exchange endpoint is the existing POST /cli/exchange-otp. There is no aeo-specific session table, exchange endpoint, or token type.

Two consequences follow, and both differ from how a platform-wide internal tool would behave:

  • aeo is project-scoped. --domain is required; the OTP is bound to that project when redeemed. An exchange without a domain cannot succeed.
  • SDK usage is billed to the project's owning org, not to us — the minted token carries the customer's org claim.

Access is gated to admin_users.role='admin'. That bound is set by /cli/exchange-otp, which authorizes via IsAuthorizedForOrg (admin, or an FDM assigned to that specific org) — marketing would receive an OTP that then fails at exchange, so the MCP refuses the role up front. Widening it means changing an endpoint shared with the customer MCP; it is not a local decision.

Release

Publishing is automated — see .github/workflows/aeo-publish.yml. Any push to main touching backend/aeo/** bumps the minor version, commits the bump with an [aeo-release] marker, builds with uv build, and publishes to PyPI via Trusted Publishers (OIDC — no API token stored anywhere).

Do not edit version in pyproject.toml or __version__ in src/aeo/__init__.py by hand; the workflow rewrites both.

Download files

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

Source Distribution

aeo-0.1.0.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

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

aeo-0.1.0-py3-none-any.whl (3.2 kB view details)

Uploaded Python 3

File details

Details for the file aeo-0.1.0.tar.gz.

File metadata

  • Download URL: aeo-0.1.0.tar.gz
  • Upload date:
  • Size: 2.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for aeo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f93f7d749a00e33fcf200aa3ac7cb22d52e9b7bbb8b62f8079107aedbb5eb93b
MD5 7960da1802b8b6ee90c134b4ba283baf
BLAKE2b-256 90d1e84b57837e0f5dae99efbceb0120fb9f211531a3f832108ad847818ab55a

See more details on using hashes here.

File details

Details for the file aeo-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aeo-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 3.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for aeo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ef744dd1ad8cd442ab68d625271eea79ad495dd9e4b964205b1817c37a471958
MD5 fe6083c05be604b5f27c840dc7b8f3a3
BLAKE2b-256 c82de892b26546f2191e638e21486b5f22b2362d07a42bbf8c40ceb2802e8eed

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 Sentry Error logging StatusPage Status page