wave 7: the prober reads its map — graph-context injection dies whole
The owner's zero-configuration ruling (2026-09-23): nothing configures the graph beyond chat models. The prior-knowledge injection — its budget dial, its runner, its marker part, its dock/dispatch entries — is removed across all bands; the prober now reads the learner's persistent knowledge map on demand through two gated tools instead: - list_sessions: every birth session, names + kinds + counts + dates (graphSessionIndex, Platform's core seam) - list_propositions(session): what was born there + the session's own latest understanding level + that evaluation's date (graphSessionPropositions) — names/levels/dating ONLY, no statement text (owner ruling: the map's organization is the prober's business, its prose is not) Registered via createProberTools when chat-handler passes graphStore (the graphToolsEnabled gate decided server-side, per-turn fresh); the prober doctrine gains the map-review nudge at session start. Also: runner's JobKind special-casing collapses (KIND_ROLE/KIND_RUNNERS are plain records again), semantic-clusters.ts dies with its test, the embedder dep's doc tells the wave-7 stub story, and ports.ts's readClusterLabels/readNamingRuns surface stays untouched for Platform's ledger-port interlude. 848/848 tests, typecheck/lint/build green.
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
import type { ThinkingLevel } from "@earendil-works/pi-agent-core";
|
||||
import { GRAPH_CONTEXT_TOKENS_MAX, isHexColor, type ChatSettings } from "../core";
|
||||
import { isHexColor, type ChatSettings } from "../core";
|
||||
import type {
|
||||
AgentSettings,
|
||||
AppearanceSettings,
|
||||
@@ -37,7 +37,6 @@ export function parseSettingsBody(body: unknown): SettingsBodyResult<ChatSetting
|
||||
const raw = body as {
|
||||
model?: { provider?: unknown; id?: unknown };
|
||||
thinkingLevel?: unknown;
|
||||
graphContextTokens?: unknown;
|
||||
};
|
||||
const settings: ChatSettings = {};
|
||||
if (raw.model !== undefined) {
|
||||
@@ -57,23 +56,10 @@ export function parseSettingsBody(body: unknown): SettingsBodyResult<ChatSetting
|
||||
}
|
||||
settings.thinkingLevel = raw.thinkingLevel as ThinkingLevel;
|
||||
}
|
||||
// Graph context injection budget (vision-context-injection.md): integer
|
||||
// tokens, 0 (off) to GRAPH_CONTEXT_TOKENS_MAX, no silent clamping — the
|
||||
// slider is the only writer, and it only ever sends multiples of the step.
|
||||
if (raw.graphContextTokens !== undefined) {
|
||||
if (
|
||||
typeof raw.graphContextTokens !== "number" ||
|
||||
!Number.isInteger(raw.graphContextTokens) ||
|
||||
raw.graphContextTokens < 0 ||
|
||||
raw.graphContextTokens > GRAPH_CONTEXT_TOKENS_MAX
|
||||
) {
|
||||
return {
|
||||
ok: false,
|
||||
error: `graphContextTokens must be an integer between 0 and ${GRAPH_CONTEXT_TOKENS_MAX}`,
|
||||
};
|
||||
}
|
||||
settings.graphContextTokens = raw.graphContextTokens;
|
||||
}
|
||||
// Wave 7 killed the graph-context injection (owner: zero configuration
|
||||
// beyond chat models — the prober reads its map through tools now); its
|
||||
// budget dial is gone with it. A stale client sending the old key has
|
||||
// it silently dropped here (forward-compatible, like any unknown key).
|
||||
return { ok: true, settings };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user