ConstEach value is the section's content only; the structural heading (e.g.
RESPONSE FORMATTING:) is added by composeSystemPrompt. So an override
passes just the body — composeSystemPrompt({ responseFormatting: 'Reply in Spanish.' })
still renders under the RESPONSE FORMATTING: heading.
The behavioral prose is split so each concern is overridable on its own:
identity — who the assistant is and its tone of voice; the natural hook to
rebrand or set a persona.capabilities — the map environment plus a compact summary of what the
toolkit can do. Kept at the group level (not per-tool) so it does not drift
as tools change; the exact mechanics live in each tool's description and the
classifier prompt. It also gives rejectionRules something concrete to steer
the user back toward.rejectionRules — how to handle in-scope / mixed / out-of-scope / illegal
requests, and the requirement to always explain a rejection.dataConfidence — how to surface incomplete, partial, stale, or conflicting
data instead of presenting it as complete.Location-reference routing ("near me" → getCurrentLocation, "here" → getViewport) is intentionally NOT a section: it is a tool-selection rule already owned by the classifier prompt and the two tools' cross-referencing descriptions.
This map is the canonical source of the default body text, exported so a consumer can read a default and override with a derived value (extend, prefix, or rewrite it) — see SystemPromptSectionOverrides.
The default body text for each base-prompt section — heading excluded.