Skip to main content

ResultSeal

CI License: MIT Python

HTTP 200 is not an observation. Empty is not not-found. A tool call is not an effect.

ResultSeal is a small, framework-neutral Python toolkit that prevents AI-agent workflows from promoting empty, partial, stale, source-mismatched, or unverified tool results into factual claims. Shipped adapters cover raw JSON, HTTP responses, MCP-style tool results (structuredContent / isError / outputSchema), and stdio process output — each establishing structural facts only (see docs/specs/ADAPTERS.md).

What it does

ResultSeal normalizes a tool result, applies a declarative contract, and produces a deterministic decision. Unknown and incomplete evidence is blocked by default.

Install

Not on PyPI yet — install from a clone:

git clone https://github.com/sx4im/resultseal.git
cd resultseal
pip install .

Requires Python 3.11+.

Try it

# Replay a self-contained fixture bundle against its recorded expectation
resultseal replay fixtures/empty-result.yaml         # empty response -> blocked/empty
resultseal replay fixtures/explicit-not-found.yaml   # approved sentinel -> sealed/not_found

# Evaluate a shipped example against a shipped contract (exit 0 = sealed, 1 = blocked)
resultseal check examples/mcp_result.json --contract examples/customer_contract.json
resultseal check examples/http_empty.json --contract examples/customer_contract.json

The last two are the toolkit's thesis side by side: a complete MCP result seals, while an HTTP 200 carrying an empty body blocks as empty — it can never be promoted to not_found. All four commands print the decision record with a verifiable deterministic_fingerprint.

Scope

ResultSeal is not an agent framework, proxy, dashboard, policy engine, retry middleware, signed receipt system, or LLM judge. It is an executable semantic boundary for tool observations.

Development

make install   # editable install with dev tools
make all       # test, lint, typecheck, build

Contributing

Bug reports, fixes, and spec feedback are welcome — see CONTRIBUTING.md for what a change is expected to include. The normative specifications live in docs/specs/, and changes that touch a documented invariant add a dated entry to the decision log.

Download files

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

Source Distribution

resultseal-0.1.1.tar.gz (52.7 kB view details)

Uploaded Source

Built Distribution

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

resultseal-0.1.1-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

Details for the file resultseal-0.1.1.tar.gz.

File metadata

  • Download URL: resultseal-0.1.1.tar.gz
  • Upload date:
  • Size: 52.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for resultseal-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c6d9f12316d8ec5018d37ac757bbb2b115a28ceef24d30bb01f57bcd5401af92
MD5 9636ad1adfe133db1b71905900d87b70
BLAKE2b-256 4acd42df5c52e581b9f01d53728eed4112b64a94d2c939b8c9c2d3d30ad5a5da

See more details on using hashes here.

Provenance

The following attestation bundles were made for resultseal-0.1.1.tar.gz:

Publisher: publish.yml on sx4im/resultseal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file resultseal-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: resultseal-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for resultseal-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1d999a1f32b6628b243dc6f29357cabd39e7df3c93ce4aae827db82b60f8ebb8
MD5 6b751a5862a83d8d1bc2fe941d703c38
BLAKE2b-256 9688bba14ea5e15e6189c1328495135ad5574a50f31f97df92d665d732044731

See more details on using hashes here.

Provenance

The following attestation bundles were made for resultseal-0.1.1-py3-none-any.whl:

Publisher: publish.yml on sx4im/resultseal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page