Python (Pydantic v2) distribution of @intentsolutions/core — the canonical contracts kernel for the Intent Eval Platform. The same entity + predicate contracts the TypeScript package exposes as Zod validators + JSON Schemas, as Pydantic v2 models.
Project description
intent-eval-core (Python)
Python (Pydantic v2) distribution of
@intentsolutions/core —
the canonical contracts kernel for the
Intent Eval Platform.
The same entity + predicate contracts the TypeScript package exposes as Zod
validators and JSON Schemas, here as Pydantic v2 models for Python
consumers. The models are code-generated from the canonical schemas/v1/*.json
JSON Schemas and validated for parity against the same golden fixtures the
TypeScript/AJV side validates — a payload accepted by the Zod validator is
accepted here, and one rejected there is rejected here.
Install
pip install intent-eval-core
Requires Python 3.10+. Runtime dependency: pydantic>=2.5,<3.
Usage
from intent_eval_core import GateResultV1, EvalSpec
from pydantic import ValidationError
row = {
"gate_id": "audit-harness:ci:escape-scan",
"gate_name": "escape-scan",
"gate_version": "0.3.0",
"gate_decision": "pass",
"gate_reasons": [],
"coverage": {"dimensions_evaluated": ["credential-leak"], "dimensions_skipped": []},
"policy_ref": "sha256:" + "e" * 64 + ":tests/TESTING.md",
"policy_hash": "sha256:" + "e" * 64,
"input_hash": "sha256:" + "3" * 64,
"evaluated_at": "2026-05-17T00:00:10Z",
"runner": "audit-harness@0.3.0",
"commit_sha": "abc1234",
}
gate = GateResultV1.model_validate(row) # raises pydantic.ValidationError on drift
print(gate.gate_decision) # GateDecision.pass_
What's exported
13 canonical entities + 3 predicate bodies (Blueprint B § 2 / § 7):
| Entity models | Predicate-body models |
|---|---|
EvalSpec, EvalRun, MatcherMap, EvidenceBundle, JudgeDecision, RuntimeReceipt, RegressionPack, RolloutGate, SkillSnapshot, SessionTrace, ToolInvocation, CostRecord, FailureTaxonomy |
GateResultV1, RetractionV1, DashboardRenderV1 |
Plus GATE_RESULT_V1_URI (the canonical predicate URI at
evals.intentsolutions.io).
How it stays in lockstep with the TypeScript kernel
- Codegen, not hand-port —
scripts/codegen_pydantic.pyrunsdatamodel-code-generator(pinned) over the canonicalschemas/v1/*.json. The output lives inintent_eval_core/_generated/(reference material; never import from it directly). - Cross-field rules — the JSON Schema
allOf/if-thenconditional rules (e.g. gate-result/v1's "advisory requires advisory_severity", "fail/advisory/error requires a non-empty reason") cannot be expressed by the generator, so the canonical public surface (intent_eval_core/models.py) layers a hand-written Pydanticmodel_validatoron top — the exact mirror of the Zod.superRefine()blocks in the TypeScript validators. - Parity tests —
tests/test_parity.pyruns the shared golden fixtures (tests/fixtures/v1/, the same set the TypeScript suite consumes) through the Python models and asserts identical accept/reject behavior. - Version lockstep — the package version tracks the npm
@intentsolutions/corepackage.json#version(the JSON Schemas are the shared source of truth). CI gate:scripts/check_version_lockstep.py.
License
Apache-2.0. See LICENSE and NOTICE.
Project details
Release history Release notifications | RSS feed
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 intent_eval_core-0.7.0.tar.gz.
File metadata
- Download URL: intent_eval_core-0.7.0.tar.gz
- Upload date:
- Size: 28.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
550570994bef2bd4f343b84547dd00961f1b9b24e0e5a09a34e88f4545a617b4
|
|
| MD5 |
6c0c94e90473050e3fe450e180f2efd2
|
|
| BLAKE2b-256 |
f6e9710ec03110a451e3193f7e1667901faddd21c357a2299162f808674ca688
|
File details
Details for the file intent_eval_core-0.7.0-py3-none-any.whl.
File metadata
- Download URL: intent_eval_core-0.7.0-py3-none-any.whl
- Upload date:
- Size: 38.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a58c99d2079e1cfb5687638e028658225bb101469fa9b5c8edbd7a39d00abf55
|
|
| MD5 |
c9fe838a900d2fc8d21ad9cb92639de3
|
|
| BLAKE2b-256 |
889de573862a5ae29b2734544ce8c4f969b7e2abc3b97583c8e32bc8679e84ec
|