<!doctype html>
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Retrieval inspector</title><link rel="icon" type="image/svg+xml" href="/inspector-assets/favicon.svg"><link rel="stylesheet" href="/inspector-assets/inspector.css"><script type="module" src="/inspector-assets/inspector.js"></script></head>
<body><header><a class="wordmark" href="/inspector" aria-label="aiml retrieval inspector">ai<span>ml</span></a><span class="scope">Local retrieval lab</span></header>
<main><p class="eyebrow">Application integration</p><h1>Inspect the retrieval run</h1><p class="intro">Send a question to the local FastAPI service. Inspect its scripted searches, admission decisions and source paragraphs. This lab generates no answer.</p>
<section class="request" aria-labelledby="request-heading"><h2 id="request-heading">Set the request</h2>
<form id="retrieval-form"><fieldset id="request-fields" disabled><label for="question">Question</label><textarea id="question" name="question" rows="3" maxlength="512" required>Will write_text replace the contents of an existing file?</textarea>
<div class="fields"><div><label for="version">Documentation version</label><input id="version" name="version" value="3.12" pattern="[0-9]+\.[0-9]+" maxlength="16" required></div><div><label for="max_steps">Step allowance</label><input id="max_steps" name="max_steps" type="number" value="6" min="0" max="12" step="1" required></div><div><label for="max_searches">Search allowance</label><input id="max_searches" name="max_searches" type="number" value="2" min="0" max="3" step="1" required></div><div><label for="max_reads">Read allowance</label><input id="max_reads" name="max_reads" type="number" value="2" min="0" max="3" step="1" required></div><div><label for="max_source_bytes">Source-text bytes</label><input id="max_source_bytes" name="max_source_bytes" type="number" value="4096" min="0" max="4096" step="1" required></div></div>
<p class="hint">Allowances count admitted tool attempts and planned UTF-8 source-text bytes. They do not bound model tokens or wall-clock time.</p><button type="submit" id="submit">Run retrieval</button></fieldset></form>
<p id="status" role="status" aria-live="polite" aria-atomic="true" data-state="connecting">Connecting to the local service…</p><p class="corpus">Pinned corpus: <code id="corpus-id">not loaded</code></p><p id="reconnect" hidden><a href="/inspector">Reload the inspector</a></p></section>
<section id="result" aria-labelledby="result-heading" hidden><h2 id="result-heading">Inspect the result</h2><p id="outcome"></p><p id="request-id" class="hash"></p><p id="returned-question"></p><dl id="usage" class="usage"></dl><h3>Tool decisions</h3><div class="table-scroll" tabindex="0" role="region" aria-label="Actual tool decisions; scroll horizontally"><table><thead><tr><th>Action</th><th>Request</th><th>Decision</th><th>Result</th></tr></thead><tbody id="trace"></tbody></table></div><h3>Read source paragraphs</h3><p id="no-evidence" hidden>No validated read evidence was returned for this run.</p><div id="evidence"></div>
<details id="raw-details"><summary>Inspect the complete API response</summary><button type="button" id="copy">Copy response JSON</button><pre id="raw" tabindex="0"></pre></details></section>
<section class="boundary"><h2>Read the boundary</h2><p>A completed scripted run means its configured passage marker was found. It does not prove an answer is correct. Missing evidence, admission limits and HTTP errors stay visible.</p><p>Use this loopback lab with the supplied public teaching summaries. It has no user authentication, permission-aware search, production deployment or capacity measurements.</p></section></main>
<footer>aiml · source evidence before conclusions</footer></body></html>
