package mcp

import (
	"encoding/json"
	"strings"
)

type kbUpstreamEnvelope struct {
	MessageID string          `json:"message_id"`
	Method    string          `json:"method"`
	Path      string          `json:"path"`
	Body      json.RawMessage `json:"body"`
}

func kbModelResult(raw json.RawMessage) (string, any, error) {
	text := strings.TrimSpace(string(raw))
	if text == "" {
		text = "{}"
		raw = json.RawMessage(text)
	}
	var structured json.RawMessage
	if err := json.Unmarshal(raw, &structured); err != nil {
		return "", nil, err
	}
	return text, structured, nil
}
