package webmcp

// Code generated by cdproto-gen. DO NOT EDIT.

import (
	"github.com/chromedp/cdproto/cdp"
	"github.com/chromedp/cdproto/runtime"
	"github.com/go-json-experiment/json/jsontext"
)

// Annotation tool annotations.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/WebMCP#type-Annotation
type Annotation struct {
	ReadOnly   bool `json:"readOnly"`   // A hint indicating that the tool does not modify any state.
	Autosubmit bool `json:"autosubmit"` // If the declarative tool was declared with the autosubmit attribute.
}

// Tool definition of a tool that can be invoked.
//
// See: https://chromedevtools.github.io/devtools-protocol/tot/WebMCP#type-Tool
type Tool struct {
	Name          string              `json:"name"`        // Tool name.
	Description   string              `json:"description"` // Tool description.
	InputSchema   jsontext.Value      `json:"inputSchema,omitempty,omitzero"`
	Annotations   *Annotation         `json:"annotations,omitempty,omitzero"`   // Optional annotations for the tool.
	FrameID       cdp.FrameID         `json:"frameId"`                          // Frame identifier associated with the tool registration.
	BackendNodeID cdp.BackendNodeID   `json:"backendNodeId,omitempty,omitzero"` // Optional node ID for declarative tools.
	StackTrace    *runtime.StackTrace `json:"stackTrace,omitempty,omitzero"`    // The stack trace at the time of the registration.
}
