Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [Unreleased]

### Changed
- **AID-EMIT-1 1.2.0-draft renames the format's own members from `cpex.*` to `aid.*`, keeps `cmf.*`, and widens the section 4 value space to the whole of RFC 8785.** Section 1.1 now defines two prefixes: `aid.*` for the facts this format owns (`aid.stream`, `aid.decision`, `aid.span`, `aid.taint.input_labels`, `aid.content`) and `cmf.*` for Common Message Format gap fields and the join key, since CMF is a message format shared across hosts and `cpex` named one product that the reference emitter's new home, the in-tree praxis port, is not. The rename lands before the first release ships these records (praxis 0.5.0), so no consumer has keyed on the old names; section 13 records why the 1.x line is kept. `cpex.*` is retired: emitters must not produce it and verifiers may read it as the `aid` member of the same name. Section 1.2 is the member table with the host-prefix rules, replacing the two-vocabulary design, and names `aid.<host>.*` for hosts that do not speak CMF. Section 4 drops the ASCII-key and integer-only constraint: keys sort by UTF-16 code units, floats take the ES6 form, integers keep their exact digits and a verifier must parse them exactly, which the reference emitter now implements. Section 12 lists all three vectors, the provenance vector included, and says where the `aid` vectors live. `scripts/aid_emit1_validator.py` canonicalizes with a full RFC 8785 implementation (UTF-16 key order, ES6 numbers, exact integers; a non-finite number is `E-JCS-NUMBER`), reads `aid.stream` first and warns `W-VOCAB-RETIRED` on the retired name; the copies under `integrations/cpex-ocsf-audit/` still validate. The decision and provenance vectors change under the rename; the dispatch vector does not.

### Added
- **A Python emitter library and a LiteLLM adapter are specified (draft, not implemented).** `docs/specs/aid-emit-py.md` designs `aid-emit`, a second, independent AID-EMIT-1 emitter in Python: canonical bytes, DSSE signing, chain and stream state, a durable spool and an ingest shipper, with a conformance plan against the section 12 vectors. `scripts/aid_emit_py_vector_check.py` shows the core reproduces the reference output: it re-derives both signed records of the `cpex-ocsf-audit` dispatch vector in Python, fingerprint and signature byte-identical. `docs/specs/litellm-aid-emit.md` outlines a LiteLLM proxy adapter in three phases (observe, shadow, enforce) with its hook plan, verdict and field mappings, security requirements and open questions. Both target the AI Identity platform and OCSF: native OCSF fields first, and an AI Identity `aid.*` vocabulary under `unmapped` for facts OCSF has no home for, proposed for AID-EMIT-1 as a 1.2.0 vocabulary profile. The emitter spec also records that the reference emitter's `metadata.uid` repeats after a restart, against AID-EMIT-1 section 6. Docs and a check script only, no behavior change.
- **AID-EMIT-1 1.2.0-draft: an `aid` vocabulary for emitters outside the CPEX host family.** Section 1.1 pinned the `cpex.*` / `cmf.*` field names to the CPEX host family and pointed any other host at AID-EMIT-2. The new section 1.2 resolves that additively: a vocabulary names the `unmapped` members that carry the format's own facts, and `aid` (`aid.stream`, `aid.decision`, `aid.span`, `aid.content`, `aid.request_id`, `aid.<host>.*`) joins `cpex` for emitters that target the AI Identity platform and OCSF rather than a gateway. Members keep the same structure and rules; an emitter uses one vocabulary per record; verifiers read `aid` first and surface a record carrying stream stamps under both; under `aid`, facts with a native OCSF field must use it. Sections 7, 8, 9, 12 and 13 name the `aid` counterparts. MINOR: no covered byte, existing record or vector changes. Spec text only; the validator already reads both vocabularies.
Expand Down
Loading
Loading