POST /solve/strict
Iterative autotuner. Same surface as
/solvebut searches overβand operator weights until the calibratederrorPctdrops below 0.1 %. Up to 40 iterations.
Method POST Path /api/framework/solve/strict Group Framework Precision ≤0.1%
How the tuner works
Three phases per iteration (mirrors hulyas_framework.py::autotune_until_pass):
| Phase | What it does |
|---|---|
| A — β update | First 6 iters: β = 0.15 + 0.15·iter. Thereafter: β + 5·excess, clamped to [0.05, 2.0]. |
| B — coord descent | Perturb the top-3 KO weights by ±15 %. Keep any perturbation that lowers errorPct. |
| C — random jitter | If Phase B made no progress, perturb one KO weight by ±10 % (deterministic PRNG, seed = 1287). |
Stops as soon as errorPct ≤ 0.1 % or after maxIterations iterations.
Request body
Identical to /solve plus one additional field:
| Field | Type | Default | Notes |
|---|---|---|---|
maxIterations | number | 10 | Max tuner iterations. Clamped to [1, 40]. |
If koSettings is omitted, the tuner starts from a reasonable Newtonian default { NM19: 1.0, NM23: 0.6, GR35: 0.3 }.
Response body — StrictSolverResult
Identical to SolverResult, with three additional fields:
{
// ... all SolverResult fields (errorPct, energy, registerDump, functionalEnergy, etc.)
"mode": "strict",
"betaFinal": 0.05,
"tuneIterations": 2,
"tuneStatus": "converged" // "converged" | "timeout"
}
When tuneStatus === "converged", errorPct is guaranteed ≤ 0.1 %. When "timeout", the result is the lowest-error candidate seen across all iterations.
Call it
Default autotune (10 iters max, model-mode comparison):
curl -X POST https://zeqapi.com/api/framework/solve/strict \
-H "Authorization: Bearer $ZEQ_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "feather drop autotune",
"mass": 1e-4,
"location": "earth",
"medium": "air",
"koSettings": { "KO42": 1.0 }
}'
Calibrated free-fall anchor (matches the validator calibration step):
curl -X POST https://zeqapi.com/api/framework/solve/strict \
-H "Authorization: Bearer $ZEQ_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "free-fall calibration",
"mass": 1.0,
"koSettings": { "NM19": 1.0, "NM24": 0.3 },
"tMax": 0.4,
"dt": 0.001,
"maxIterations": 40,
"referenceMode": "free-fall"
}'
Compose
- Chain after a
/solveexploratory pass: readkoSettingsfrom the response and POST to/solve/strictwithmaxIterationsraised to 40. - For multi-body autotune, run
/multibodywith explicitkoSettings; the multi-body endpoint does not auto-tune (the per-body coupling defeats the single-error-metric assumption).
Reference
- Source:
app/artifacts/api-server/src/routes/framework.ts(route) →src/lib/zeqSolver.ts:runStrictExperiment(autotune loop). - Original Python reference:
data/wizard-engine-reference.py::autotune_until_pass. - Spec:
master-equations.md§4–5.
Middleware active. Kernel on the 1.287 Hz HulyaPulse. Awaiting next Zeqond.