SDK / Python
The experiment stays
in your environment.
Nisayon qualifies a declared software change against native checks. Freeze the question and its inputs, execute in the owner's environment, and retain the evidence behind the decision.
Install the developer preview
Use Python 3.12 on macOS or Linux in a new directory. No Git checkout, model, simulator or GPU is needed. The installation file pins the SDK wheel and runtime dependencies with hashes.
python3.12 -m venv .venv
.venv/bin/python -m pip install --require-hashes -r \
https://github.com/manfromnowhere143/nisayon/releases/download/v0.2.0/requirements-install.txt
.venv/bin/nisayon-qualify example owner-projectFreeze the comparison
The installed example contains a reference, candidate and deliberately wrong control, two exposed inputs, and an exact expected relation. Inspect owner-project/policy.py and case.json before running them.
.venv/bin/nisayon-qualify plan owner-project/case.json \
--project owner-project --out run-001 --plan plan-001.jsonPlanning does not run the owner code or create the run directory.
Run and inspect
.venv/bin/nisayon-qualify run plan-001.json
.venv/bin/nisayon-qualify inspect run-001Expect a valid software adopt and an unresolved deployment decision. The deliberate wrong-sign control must be detected. This is a software demonstration, not a robot task benchmark.
Carry the evidence
.venv/bin/nisayon-qualify export run-001 --out review-001.nisayon.zip
.venv/bin/nisayon-qualify review review-001.nisayon.zipPython review recomputes the assessment without the original owner environment. The browser checks transport bytes and displays the saved assessment. Neither executes owner code during review.
Use the Python SDK
The example includes a complete executable Python script:
.venv/bin/python owner-project/sdk_example.py --out python-result-001Its core imports are ordinary Python:
from nisayon.qualification import (
CaseSpec, ExecutionContext, plan_change, run_plan, assess_change,
)
case = CaseSpec.read("owner-project/case.json")
context = ExecutionContext.from_project("owner-project", output_dir="python-run-002")
plan = plan_change(case, context=context)
evidence = run_plan(plan, context=context)
assessment = assess_change(case, evidence)
print(assessment.record())What the run retains
plan.json binds the question, probes, code and environment. Each of six attempt directories contains the request, pre-execution intent, observations, native-call and read witnesses, completion record and original logs. completion.json, manifest.json and seal.json bind the completed store. Inspect computes its scoped assessment.
Keep new assessments and exported reviews outside that sealed directory. Missing human effort and provider costs stay unknown; nested time measurements must not be added together.
Prepare your own comparison
Declare trusted synchronous Python functions, source and data dependencies, a competent reference, a deliberate failure control, justified expected outputs and the population the claim covers. The current adapter supports exact or numerical software relations. Robot deployment acceptance remains unresolved. General dependency discovery, complete-cost savings and enterprise tenancy remain unestablished.
All available operations and research interfaces ↗ · Review format and privacy boundary ↗
Review files contain original logs, inputs and paths. Opening one in the instrument stays in browser memory; exporting does not redact it. Inspect your own package before sharing.