question tools: phase-visible names, hardened teach schemas, context-slim seams
The tools_fails_2 diagnosis (glm-5.3 dropping trailing required fields):
- probe-phase quiz/explain renamed to probe/recall — a shared name carried
the probe call shape into teaching (the first teach quiz dropped nodeId);
display seams accept the old names forever
- teach quiz+explain schemas lead with the required pair (type, nodeId);
explain gains the predict/check type and joins the reveal law (checks
collapse, predictions arrive open; no-type records render check-style)
- plan_init/probe_done results go context-slim (owner, context diet):
content = validated nodeIds + binding-id reminder / fixed ack; details
keeps the tree for the popup and {ok:true} — serializer-verified that
details never reaches the model; failure echoes dropped
- the cards carry the tool's own name (Probe/Recall) and the quiz type
reads on the label (Prediction/Check) in composer and transcript
This commit is contained in:
@@ -33,7 +33,10 @@ export function ProbeDoneCard({ part }: { part: { input?: unknown; output?: unkn
|
||||
// fallback branch. Output stays a cast: OUR execute authored it.
|
||||
const input = parseProbeDoneInput(part.input);
|
||||
|
||||
const assessment = output?.ok ? output.assessment : input?.assessment;
|
||||
// The assessment is the CALL's input (owner, context diet 2026-10-09):
|
||||
// the result's echo is gone — details is {ok:true} only, and the refusal
|
||||
// branch below still reads output.error.
|
||||
const assessment = input?.assessment;
|
||||
const strands = assessment && Array.isArray(assessment.strands) ? assessment.strands : null;
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user