@@ -37,28 +37,14 @@ func (s *Session) ReplaceMCPTools(tools []agentcore.Tool) {
3737 s .prompts .replaceMCPTools (tools )
3838}
3939
40- func (s * Session ) SetSystemSuffix (suffix string ) {
41- s .prompts .setApprovedPlanPrompt (suffix )
42- }
43-
4440func (s * Session ) SetMCPInstructions (text string ) {
45- s .prompts .setMCPInstructions (text )
46- }
47-
48- func (s * Session ) SetPlanModePrompt (text string ) {
49- s .prompts .setPlanModePrompt (text )
50- }
51-
52- func (s * Session ) ClearPlanModePrompt () {
53- s .prompts .setPlanModePrompt ("" )
54- }
55-
56- func (s * Session ) SetApprovedPlanPrompt (text string ) {
57- s .prompts .setApprovedPlanPrompt (text )
41+ s .prompts .overlayPrompt ("mcp" , text )
5842}
5943
60- func (s * Session ) ClearApprovedPlanPrompt () {
61- s .prompts .setApprovedPlanPrompt ("" )
44+ // OverlayPrompt registers or removes a named instructions overlay.
45+ // Pass empty text to remove. Overlays are rendered in insertion order.
46+ func (s * Session ) OverlayPrompt (key , text string ) {
47+ s .prompts .overlayPrompt (key , text )
6248}
6349
6450func (s * Session ) Skills () []skill.Spec {
@@ -152,18 +138,8 @@ func (m *sessionPromptManager) replaceMCPTools(tools []agentcore.Tool) {
152138 m .rebuildPrompt ()
153139}
154140
155- func (m * sessionPromptManager ) setMCPInstructions (text string ) {
156- m .session .overlays .MCP = text
157- m .rebuildPrompt ()
158- }
159-
160- func (m * sessionPromptManager ) setPlanModePrompt (text string ) {
161- m .session .overlays .PlanMode = text
162- m .rebuildPrompt ()
163- }
164-
165- func (m * sessionPromptManager ) setApprovedPlanPrompt (text string ) {
166- m .session .overlays .ApprovedPlan = text
141+ func (m * sessionPromptManager ) overlayPrompt (key , text string ) {
142+ m .session .overlays .set (key , text )
167143 m .rebuildPrompt ()
168144}
169145
@@ -208,14 +184,8 @@ func (m *sessionPromptManager) rebuildPrompt() {
208184
209185 // Build two-block system prompt (identity + instructions) for cache stability.
210186 identity , instructions := config .BuildSystemBlockTexts (m .session .cwd , m .session .contextFiles , visibleInfos )
211- for _ , overlay := range []string {
212- m .session .overlays .MCP ,
213- m .session .overlays .PlanMode ,
214- m .session .overlays .ApprovedPlan ,
215- } {
216- if strings .TrimSpace (overlay ) != "" {
217- instructions += "\n \n " + overlay
218- }
187+ for _ , overlay := range m .session .overlays .texts () {
188+ instructions += "\n \n " + overlay
219189 }
220190 blocks := []agentcore.SystemBlock {
221191 {Text : identity , CacheControl : "ephemeral" },
0 commit comments