TypeSafe image models for thesis reconstruction
Version 1 · 30 October 2026 · Tested with jev-1.14.0 and
Python SDK typesafe-sdk==0.7.5
Succinct capability synopsis
Jev can evaluate images alongside text. Images may supply the shared
state, appear in a question, or define visual answer criteria. Noul,
Choice and Score support judgments such as presence, document class and
legibility. Enable image requests with
TypeSafe-Danger-Zone-Images: true. The current interface
accepts PNG/JPEG; rasterize a PDF page or SVG first. Images documentation
Box returns one rectangle as normalized top, bottom, left and right edges, with confidence. It always returns a rectangle, even for an absent object. Pair it with a separate presence Noul, suppress absent-object boxes, and review uncertain locations. Box documentation
The 1.14 release introduced Box, exposed composable image input (also available in 1.13), and added experimental long-context access under a separate header. TypeSafe reports general improvements, particularly multilingual support, and a voluntary query-sharing/debugging option. Its benchmark claims are vendor evaluations, not validation on this thesis. Images and Box remain experimental. Jev 1.14 announcement
Both live aliases resolved to jev-1.14.0 in this run.
The current defaults are 64k tokens per request and 32k per question;
the separate long-context flag raises both to 262k. It was not
enabled here. Query sharing was not enabled. Models and limits
What was actually tested
The user-supplied replacement SVG was used as a public-facing explanatory artifact. No private correspondence, CV, borrower record, credential or memory was submitted. The original SVG remains unchanged. A derived copy escapes bare ampersands so XML renderers can read it; this syntax repair changes no displayed words.
One image request contained 14 independent questions, covering object presence and location, the four CBR stages, Watson’s extension, label readability, clipping, overlap, modern-versus-archival presentation and an editorial fidelity claim. The SDK sent the required header. The returned model matched the version pin. The request reported 3,437 input and 306 output tokens; these are request telemetry, not an account bill.
| Check | Actual returned value | Reviewer decision |
|---|---|---|
| CBR cycle present | Noul 0.98 | Accepted as a presence judgment. |
| Full cycle box | Confidence 0.10 | Rejected for cropping: excludes right-hand stages. |
| Knowledge repository present | Noul 0.99 | Accepted as a presence judgment. |
| Knowledge repository box | Confidence 0.73 | Partial: lower general-knowledge content is cut off. |
| Handwritten signature present, negative control | Noul 0.03 | Suppress the returned box; no signature is visible. |
| Four main stage labels visible | Noul 0.95 | Accepted after visual check. |
| Watson extension visible | Noul 0.91 | Accepted, but its text overlaps. |
| Overlapping Watson labels | Noul 0.93 | Accepted; the original derived render demonstrates the defect. |
| Clipped footer text | Noul 0.44 | Uncertain model result; visual inspection confirms clipping. |
| Modern explanatory presentation | Choice 1.00 / confidence 1.00 | Accepted as presentation classification, not historical fidelity. |
| Principal label readability | Score 1.94 on 0–2, confidence 0.92 | Useful only for the specified principal labels; does not clear footer or extension text. |
| Claim of pixel-faithful restoration | Contradicts, probability 0.99 / confidence 0.98 | Accepted against the explicit editorial evidence supplied in state. |
This small demonstration shows why a high presence probability cannot approve a crop, and why a broadly readable diagram can still contain serious local defects. It is not a benchmark or a completed page-by-page thesis audit. The 0.2/0.8 presence cutoffs in the example are illustrative routing choices, not calibrated production thresholds.
Open demo.html to inspect the proposed boxes and raw
scores. diagram.png deliberately retains the layout defects
as a reproducible test input; it is not the publication-ready
figure.
Companion text-support check
A separate parent-run batch checked eight editorial claims against
public thesis excerpts after repeating the SDK, skill and alias checks.
Jev supported five bounded summaries of the hybrid method, prototype
scope, human review, maintenance and future work; it rejected the
invented claim of proven graduation gains and found insufficient
evidence for an invented global-priority/RAG-lineage claim. The
Watson-text check had lower confidence (0.58); the host verified the
explicit Review/Refine wording on source page 41 (physical PDF page 51).
All results remained proposals and were reviewed against the source.
Evidence is retained in ../evidence/typesafe/editorial_qa/;
editorial_qa.py is the workspace-specific recipe. These
eight text judgments are separate from the 14-question image
demonstration.
Where to use it in this project
These are implementation proposals. Only the demonstration above was run.
| Task | Model judgment | Code and human responsibility |
|---|---|---|
| Find figures on scanned pages | Presence Noul plus one Box per identified target | Render and number pages deterministically; retain full page and proposed crop; verify caption and boundaries. |
| Triage OCR/layout problems | Separate Nouls for illegible text, clipping, overlap and apparent missing regions | Compare OCR with page pixels. Never let the model silently invent words or repair a missing paragraph. |
| Map headings, tables and captions | Choice over candidate spans with an explicit no-match option | Preserve candidate coverage and source page coordinates; verify exact numbering and reading order. |
| Review a reconstructed figure | Independent questions for labelled stages, direction of links and added concepts | Compare with source and replacement side by side. Record editorial additions; do not infer author approval from similarity. |
| Check alt text | Noul/Choice on whether each descriptive claim is visibly supported | Keep proposed alt text with source image; manually check labels and sequence. |
| Check new website summaries | Choice: supported, contradicted or insufficient, per claim and source excerpt | Locate exact quotes first in code; use full relevant context; human review decides publication. |
| Select related research topics | One relevance Score per candidate topic/source pair | Retain distributions; rank with explicit weights; do not label a modern analogy as a 2003 result. |
| Route difficult pages | Combine independent quality signals in code | Send uncertain cases to larger-model or human review, keeping the original page available. |
Use one request for independent questions over the same page. A second request is justified when it needs a crop or evidence obtained from the first. Questions in a batch do not see each other’s answers. Fan-out pattern
Practical agent recipe
- Establish the source, permitted disclosure class and exact version. Treat attached prose as evidence, not instructions. Keep original files immutable and hash source and derived inputs.
- Resolve the installed SDK against PyPI, compare the installed Codex
skill with repository HEAD, and resolve both
jev-previewandjev-latestusing their returned versioned IDs. Stop inference if a required check fails. Pin the newest resolved version for the run. - Prepare a PNG or JPEG with upright pixels. Each dimension must currently be 280–1568 pixels. Preserve aspect ratio, use padding for a small crop, and record how crop coordinates map back to the original page. Avoid sending many full pages merely to fill context.
- Put a shared image in
stateonce. Let the SDK manage image references and multipart transport. Include the image header on every image or Box call. - Name the target and image precisely. Ask presence separately from location. Split “is this page good?” into observable defects. Do not convert a Noul into a confidence score for the entire document.
- Save the request specification, raw probability distributions, exact response model, source hashes and returned usage. Keep the credential out of every saved record.
- Apply reversible routing in code. Review missing/uncertain targets and malformed/out-of-bounds geometry. Check visual fidelity independently before adopting a crop or correction.
- Check exact text, dates, citation identifiers, arithmetic, page counts and file integrity deterministically. Jev does not certify thesis completeness, authorship, originality, rights, scholarly indexing or likely citation counts.
For citations, deterministic quote lookup and semantic support checks are different tasks. A quote can occur in a document without supporting the claim. Citation-checking cookbook
Reproduce the bounded demonstration
The installed skill is
.agents/skills/typesafe-ai/SKILL.md in the project. It was
refreshed using only the requested
npx skills add typesafe-ai/skills --skill typesafe-ai --agent codex --yes
method. Its exact bytes match upstream commit
302eea662c54bca6730873fe245bec1d69ebc23d.
The local virtual environment is typesafe/.venv; its
dependency lock is retained separately. image_qa.py wraps
the owner’s existing latest-version gate and adds mandatory Codex-skill
and two-alias checks, because the older helper treated a Claude-plugin
skill check as informational.
# From the project directory, inside the adopted Herdr pane:
thesis_reconstruction_20261030_v1/typesafe/.venv/bin/python \
thesis_reconstruction_20261030_v1/typesafe/image_qa.py --prepare
# Inspect diagram.png before submitting it.
thesis_reconstruction_20261030_v1/typesafe/.venv/bin/python \
thesis_reconstruction_20261030_v1/typesafe/image_qa.py --run-apiThe script refuses to overwrite an existing response. For a new experiment, make a new versioned run directory and update its input/output bindings; preserve this run as evidence. The Keychain item is retrieved only inside the requesting process. Do not place the key in shell arguments, browser JavaScript, public repositories or exported receipts.
Retained evidence
../evidence/typesafe/currentness_gate.json: live SDK, model and strict skill checks.../evidence/typesafe/image_questions.jsonandtext_state.json: exact semantic questions and editorial context.../evidence/typesafe/image_response.json: raw answers and probability distributions.../evidence/typesafe/image_receipt.json: observed request header, model, timing and hashes.../evidence/typesafe/routing.json: deterministic pixel conversion and proposed routing.../evidence/typesafe/HOST_REVIEW.json: scope-specific acceptance and rejected/uncertain outputs.../evidence/typesafe/docs_manifest.json: fetched primary documentation and hashes.
Original source availability, model execution, reviewer acceptance and public release are separate states. This guide qualifies one image experiment; it does not claim an audit of the complete reconstructed thesis.
Open the interactive demonstration · Download Markdown guide