Skip to content

docs(specs): align the Python emitter and LiteLLM drafts with AID-EMIT-1 1.2.0 - #604

Merged
Levaj2000 merged 1 commit into
mainfrom
docs/aid-emit-py-1.2.0
Oct 13, 2026
Merged

Levaj2000 merged 1 commit into
mainfrom
docs/aid-emit-py-1.2.0

Conversation

@Levaj2000

Copy link
Copy Markdown
Owner

Summary

The drafts merged in #600 were written against the two-vocabulary proposal, aid.* for emitters that target the AI Identity platform and cpex.* for the CPEX host family. #603 replaced it: AID-EMIT-1 1.2.0-draft retires cpex.* for every emitter (section 1.1), fixes one member table (section 1.2), and widens the section 4 value space to the whole of RFC 8785. This brings both drafts in line.

docs/specs/aid-emit-py.md:

  • Implements AID-EMIT-1 1.2.0-draft. Section 4.1 is now "Field names": the section 1.2 members, who writes each, and no vocabulary option. LiteLLM does not speak CMF, so its adapter writes aid.request_id and aid.litellm.* (section 1.2, rule 2).
  • Section 5, step 1: the value-space check rejects only what JSON cannot carry (non-finite floats, non-string keys, lone surrogates). Floats, non-ASCII keys and integers of any size are in the 1.2.0 value space.
  • Section 9: RFC 8785 is a full in-tree implementation ported from scripts/aid_emit1_validator.py. Sorted, compact json.dumps no longer matches (code point key order, Python float form), and the rfc8785 package rejects integers beyond 2^53, which every stream epoch is.
  • Section 6 keeps the whole-second epoch, now justified by consumers that read JSON numbers as doubles rather than by the withdrawn value-space constraint.
  • Section 10: the dispatch vector carries no aid.* or cpex.* member, so T1 is unchanged by the rename; the decision and provenance vectors need their aid-named copies. T7 needs ingest to read aid.stream and the epoch's exact digits.
  • Section 11, finding 2: settled by 1.2.0 the other way (exact integers), with the implementer note that a verifier built on the rfc8785 Python package refuses every stream-stamped record.

docs/specs/litellm-aid-emit.md: header and decision bullet use the 1.2.0 field names.

One CHANGELOG line under Changed, since the #600 entry describes the superseded proposal.

Testing

  • The edit script refuses to write unless every replaced passage matches exactly once and no superseded wording ("vocabulary profile", "cpex vocabulary", "proposed 1.2.0") is left; run twice, the second run refuses.
  • ruff format --check . with the pinned ruff 0.16.9: clean (no Python code block changed).
  • Docs only.

…T-1 1.2.0

The #600 drafts were written against the two-vocabulary proposal
(aid.* for AI Identity emitters, cpex.* for the CPEX family) that #603
replaced: 1.2.0 retires cpex.* for every emitter and widens the section
4 value space to the whole of RFC 8785.

aid-emit-py.md: implements 1.2.0-draft; section 4.1 is now the section
1.2 member table with no vocabulary option (LiteLLM, a non-CMF host,
writes aid.request_id and aid.litellm.*); the value-space check rejects
only what JSON cannot carry; the in-tree canonicalizer is a full RFC
8785, ported from the validator, since sorted json.dumps no longer
matches and the rfc8785 package rejects the stream epoch; the T1 note
says the dispatch vector is unchanged by the rename; finding 2 is
settled the other way by 1.2.0.

litellm-aid-emit.md: field names per 1.2.0 section 1.2; the decision
bullet records that 1.2.0 settled it.

Docs only.
@Levaj2000
Levaj2000 marked this pull request as ready for review October 13, 2026 14:36
@Levaj2000
Levaj2000 merged commit 6a328b6 into main Oct 13, 2026
9 checks passed
@Levaj2000
Levaj2000 deleted the docs/aid-emit-py-1.2.0 branch October 13, 2026 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant