g8e Protocol Constants and Models
Project description
g8e
Python protocol library for the g8e zero-trust execution platform. Provides protocol constants, dynamic enums, and Pydantic models for building g8e-compatible clients and services.
Installation
Requires Python 3.10 or later. Dependencies are pydantic>=2.0.0 and protobuf>=4.0.0.
pip install g8e
Usage
Constants
The g8e.constants module loads JSON protocol constants from protocol/constants/ at import time. It exports dicts for events, status, collections, headers, channels, pubsub, intents, prompts, timestamps, document IDs, platform configuration, agents, network, API paths, key-value keys, and sender identifiers. The module also exports the ComponentName StrEnum and individual HTTP header string constants for session, context, and g8e-specific headers.
Set the G8E_PROTOCOL_DIR environment variable to override the default protocol directory resolution. The loader checks this variable first, then falls back to the relative path from the package, then to /app/protocol/constants for containerized environments.
Enums
The g8e.enums module dynamically generates StrEnum and IntEnum classes from the STATUS and EVENTS protocol constants. Enum member names use SCREAMING_SNAKE_CASE; values preserve the raw protocol wire format. Integer-valued categories produce IntEnum; all others produce StrEnum. Access enums by PascalCase name via attribute lookup, for example g8e.enums.OperatorToolName or g8e.enums.EventType.
Models
The g8e.models package provides Pydantic v2 models for protocol data structures. All models extend G8eBaseModel, which configures populate_by_name and extra="ignore", and defaults exclude_none on serialization. The UTCDatetime annotated type serializes datetimes to ISO 8601 with a Z suffix.
g8e/models/base.py:G8eBaseModel,UTCDatetime, and re-exports of PydanticField,ConfigDict,field_validator,model_validator.g8e/models/context.py:RequestContextandBoundOperator.RequestContextvalidates session identity forCLIENTsource components, requiring eitherweb_session_idorcli_session_idand auser_id.g8e/models/events.py: SSE wire models (SessionEventWire,BackgroundEventWire) and AI event payload models for chat processing, tool lifecycle, citations, errors, thinking, turn completion, retry, and triage clarification.g8e/models/internal_api.py:ChatMessageRequest,ChatStartedResponse, andResourceCreationRequestfor internal API interactions.g8e/models/settings.py:G8eeUserSettings,PlatformSettings, and nested settings models for LLM providers, search, eval judge, command validation, and batch execution.
Examples
Working examples are in protocol/python/examples/. Run constants_example.py for constants and headers usage, or models_example.py for model instantiation, serialization, and validation.
Components
g8e/constants.py: Runtime loader for JSON protocol constants fromprotocol/constants/. Exports dict constants,ComponentNameenum, and HTTP header string constants.g8e/enums.py: DynamicStrEnumandIntEnumgeneration fromSTATUSandEVENTSprotocol constants.g8e/models/: Pydantic v2 models for protocol data structures, SSE events, internal API requests, and user settings.
Protocol Versioning
This package follows semantic versioning. Major version changes indicate breaking protocol changes. Minor version changes add new protocol features. Patch version changes include bug fixes and non-breaking enhancements.
License
Apache License 2.0. See protocol/LICENSE for details.
Contributing
Protocol changes require coordination across all g8e components. Submit protocol change proposals via GitHub issues with clear justification and impact analysis.
Support
For protocol questions and support, open a GitHub issue or visit https://github.com/g8e-ai/g8e
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file g8e-1.5.0.tar.gz.
File metadata
- Download URL: g8e-1.5.0.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a982707cc43582d56b24f554436b26cfc738d4bb7e55481302a3c455cb9d8d8f
|
|
| MD5 |
f612b0b220ea681c3f4e10d10afc52a0
|
|
| BLAKE2b-256 |
8e85565462bdd8e7591fa102dbd6c94e9b4b83bb2dc9cccb55950cbd65a3303c
|
Provenance
The following attestation bundles were made for g8e-1.5.0.tar.gz:
Publisher:
release-python-protocol.yml on g8e-ai/g8e
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
g8e-1.5.0.tar.gz -
Subject digest:
a982707cc43582d56b24f554436b26cfc738d4bb7e55481302a3c455cb9d8d8f - Sigstore transparency entry: 2163701994
- Sigstore integration time:
-
Permalink:
g8e-ai/g8e@08ff388fe7927b4b6c78686b8468ef044148d9af -
Branch / Tag:
refs/tags/protocol/v1.5.0 - Owner: https://github.com/g8e-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python-protocol.yml@08ff388fe7927b4b6c78686b8468ef044148d9af -
Trigger Event:
push
-
Statement type:
File details
Details for the file g8e-1.5.0-py3-none-any.whl.
File metadata
- Download URL: g8e-1.5.0-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8628fb1f1cd943bc38519e602178e0d966bc315132f3c77bd96bc30862e47987
|
|
| MD5 |
e51928ebb273a3baf72eacbcaa7280ee
|
|
| BLAKE2b-256 |
6bf305ac90182684137fc6f01d326c8a595006ee24259e6b59cbef972c700454
|
Provenance
The following attestation bundles were made for g8e-1.5.0-py3-none-any.whl:
Publisher:
release-python-protocol.yml on g8e-ai/g8e
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
g8e-1.5.0-py3-none-any.whl -
Subject digest:
8628fb1f1cd943bc38519e602178e0d966bc315132f3c77bd96bc30862e47987 - Sigstore transparency entry: 2163702006
- Sigstore integration time:
-
Permalink:
g8e-ai/g8e@08ff388fe7927b4b6c78686b8468ef044148d9af -
Branch / Tag:
refs/tags/protocol/v1.5.0 - Owner: https://github.com/g8e-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-python-protocol.yml@08ff388fe7927b4b6c78686b8468ef044148d9af -
Trigger Event:
push
-
Statement type: