Wave 7 interlude: prober tool-call chrome + live rename cluster labels
Graph tool-call visibility — the prober's list_sessions /
list_propositions rendered like nothing happened in the transcript
(the registry default is silence for unregistered tools). They now join
the EXACT read/ls/find/grep discipline: artifactRenderers maps both to
the ToolCallCard — collapsed one-liner, expandable Input/Output card.
The results ride the card's string path verbatim (the tools' own
compact name/level/date line format), exactly how read results render.
- list_propositions gets a headline arg: the session id is the call's
subject — the collapsed line reads "list_propositions chat_…".
Shown as given, never resolved (the same no-resolution rule as
read's path). list_sessions carries no arg (empty input — the
ls-with-no-path discipline).
- No bespoke row-layout card: the outputs are pre-formatted strings
(the model-facing format IS the learner-facing format here), and
the dispatch's "SAME look" directive settles the shape question.
Live rename labels — renaming a session anywhere (sidebar inline row,
chat header) already announces lh:chat-renamed {id, title}; the graph
view now listens. The birth-session partition means the title IS the
cluster label, so the patch is targeted and in-place, no refetch: the
snapshot's sessions map (the detail card's provenance line) and the
one matching cluster. The new snapshot object flows the existing
setData → geoVersion → rebuild chain, so the wrapped label (wave 7's
wrapRegionLabel) re-wraps for the new text. Unlabeled clusters keep
their hull-only silence — a null label is a GONE record, the guard
holds the line.
Tests: registry pins for both tools + the prober-card render (collapsed
headline, verbatim rows, no-arg discipline). 855/855; live-verified on
:3001 with fillText instrumentation: both cards render collapsed and
expandable in the transcript, and a sidebar rename flipped the canvas
cluster label old→new with the old label's draws stopping cold.
This commit is contained in:
@@ -37,4 +37,11 @@ export const artifactRenderers: Record<string, ComponentType<ArtifactPartProps>>
|
||||
ls: ToolCallCard,
|
||||
find: ToolCallCard,
|
||||
grep: ToolCallCard,
|
||||
// The prober's graph tools (wave 7): same quiet expandable card —
|
||||
// collapsed one-liner (tool name + the session id for
|
||||
// list_propositions), the tool's own compact row-per-line output
|
||||
// (name / level / date) verbatim on expand, exactly the read/ls
|
||||
// discipline (their results are pre-formatted strings too).
|
||||
list_sessions: ToolCallCard,
|
||||
list_propositions: ToolCallCard,
|
||||
};
|
||||
|
||||
@@ -33,6 +33,12 @@ function headlineArg(tool: string, input: unknown): string {
|
||||
return p;
|
||||
}
|
||||
if (typeof inp.pattern === "string") return inp.pattern;
|
||||
// list_propositions: the session id is the call's subject — the
|
||||
// collapsed line reads "list_propositions chat_…". Shown as given
|
||||
// (the id is exactly what list_sessions reported to the model).
|
||||
if (tool === "list_propositions" && typeof inp.session === "string" && inp.session.length > 0) {
|
||||
return inp.session;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user