MCPcopy Create free account
hub / github.com/coder/agentapi / Prompt

Method Prompt

e2e/acp_echo.go:89–127  ·  view source on GitHub ↗
(ctx context.Context, params acp.PromptRequest)

Source from the content-addressed store, hash-verified

87}
88
89func (a *acpEchoAgent) Prompt(ctx context.Context, params acp.PromptRequest) (acp.PromptResponse, error) {
90 // Extract text from prompt
91 var promptText string
92 for _, block := range params.Prompt {
93 if block.Text != nil {
94 promptText = block.Text.Text
95 break
96 }
97 }
98 promptText = strings.TrimSpace(promptText)
99
100 if a.scriptIndex >= len(a.script) {
101 return acp.PromptResponse{
102 StopReason: acp.StopReasonEndTurn,
103 }, nil
104 }
105
106 entry := a.script[a.scriptIndex]
107 expected := strings.TrimSpace(entry.ExpectMessage)
108
109 // Empty ExpectMessage matches any prompt
110 if expected != "" && expected != promptText {
111 return acp.PromptResponse{}, fmt.Errorf("expected message %q but got %q", expected, promptText)
112 }
113
114 a.scriptIndex++
115
116 // Send response via session update
117 if err := a.conn.SessionUpdate(ctx, acp.SessionNotification{
118 SessionId: params.SessionId,
119 Update: acp.UpdateAgentMessageText(entry.ResponseMessage),
120 }); err != nil {
121 return acp.PromptResponse{}, err
122 }
123
124 return acp.PromptResponse{
125 StopReason: acp.StopReasonEndTurn,
126 }, nil
127}
128
129func (a *acpEchoAgent) SetSessionMode(_ context.Context, _ acp.SetSessionModeRequest) (acp.SetSessionModeResponse, error) {
130 return acp.SetSessionModeResponse{}, nil

Callers

nothing calls this directly

Calls 1

SessionUpdateMethod · 0.80

Tested by

no test coverage detected