MCPcopy Create free account
hub / github.com/compozy/agh / doSessionPrompt

Method doSessionPrompt

internal/cli/client.go:5429–5482  ·  view source on GitHub ↗
(
	ctx context.Context,
	method string,
	path string,
	query url.Values,
	requestBody any,
)

Source from the content-addressed store, hash-verified

5427}
5428
5429func (c *unixSocketClient) doSessionPrompt(
5430 ctx context.Context,
5431 method string,
5432 path string,
5433 query url.Values,
5434 requestBody any,
5435) (SessionPromptRecord, error) {
5436 response, err := c.doRequestWithCredentialsAndClient(
5437 ctx,
5438 method,
5439 path,
5440 query,
5441 requestBody,
5442 "",
5443 agentidentity.Credentials{},
5444 c.streamHTTPClient(),
5445 )
5446 if err != nil {
5447 return SessionPromptRecord{}, err
5448 }
5449 defer func() {
5450 _ = response.Body.Close()
5451 }()
5452
5453 if response.StatusCode < 200 || response.StatusCode >= 300 {
5454 return SessionPromptRecord{}, readAPIError(response)
5455 }
5456
5457 if strings.Contains(strings.ToLower(response.Header.Get("Content-Type")), "text/event-stream") {
5458 var events []AgentEventRecord
5459 if err := decodeSSE(ctx, response.Body, func(event SSEEvent) error {
5460 var payload AgentEventRecord
5461 if len(event.Data) > 0 {
5462 if err := json.Unmarshal(event.Data, &payload); err != nil {
5463 return fmt.Errorf("cli: decode prompt event: %w", err)
5464 }
5465 }
5466 if payload.Type == "" {
5467 payload.Type = event.Event
5468 }
5469 events = append(events, payload)
5470 return nil
5471 }); err != nil {
5472 return SessionPromptRecord{}, err
5473 }
5474 return SessionPromptRecord{Events: events}, nil
5475 }
5476
5477 var responseBody contract.SendPromptResultResponse
5478 if err := json.NewDecoder(response.Body).Decode(&responseBody); err != nil {
5479 return SessionPromptRecord{}, fmt.Errorf("cli: decode %s %s response: %w", method, path, err)
5480 }
5481 return SessionPromptRecord{Prompt: responseBody.Prompt}, nil
5482}
5483
5484func (c *unixSocketClient) doRequest(
5485 ctx context.Context,

Callers 3

SendSessionPromptMethod · 0.95
SteerSessionPromptMethod · 0.95

Calls 8

streamHTTPClientMethod · 0.95
readAPIErrorFunction · 0.85
decodeSSEFunction · 0.85
appendFunction · 0.85
ContainsMethod · 0.80
CloseMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected