tools

package
v0.0.0-...-de693e6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2026 License: MIT Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BashParams

type BashParams struct {
	Command        string `json:"command"                   description:"The bash command to execute"`
	TimeoutSeconds int    `json:"timeout_seconds,omitempty" description:"Timeout in seconds (default 30)"`
}

type BashTool

type BashTool struct{}

func NewBash

func NewBash() *BashTool

func (*BashTool) Info

func (t *BashTool) Info() tool.ToolInfo

func (*BashTool) Run

func (t *BashTool) Run(ctx context.Context, params tool.ToolCall) (tool.ToolResponse, error)

type CVELookupParams

type CVELookupParams struct {
	Product string `json:"product"           desc:"Product name to search for (e.g. 'apache http_server', 'openssl')"`
	Version string `json:"version,omitempty"  desc:"Product version to narrow results (e.g. '2.4.49'). Omit for all versions."`
	Limit   int    `json:"limit,omitempty"    desc:"Max CVEs to return sorted by severity (default 10, max 50)"`
}

type CVELookupTool

type CVELookupTool struct {
	// contains filtered or unexported fields
}

func NewCVELookup

func NewCVELookup() *CVELookupTool

func NewCVELookupWithURL

func NewCVELookupWithURL(baseURL string) *CVELookupTool

func (*CVELookupTool) Info

func (t *CVELookupTool) Info() tool.ToolInfo

func (*CVELookupTool) Run

type DNSLookupParams

type DNSLookupParams struct {
	Host          string `json:"host"                      desc:"Target hostname or IP address (IP for PTR lookups)"`
	RecordType    string `json:"record_type,omitempty"     desc:"DNS record type: A, AAAA, MX, TXT, CNAME, NS, SOA, PTR, SRV, or AXFR (default: A)"`
	SubdomainEnum bool   `json:"subdomain_enum,omitempty"  desc:"Enumerate subdomains using built-in wordlist"`
	Resolver      string `json:"resolver,omitempty"        desc:"Custom DNS resolver (e.g. 8.8.8.8:53). Defaults to 8.8.8.8:53"`
	Timeout       int    `json:"timeout_seconds,omitempty" desc:"Max duration in seconds (default: 30, max: 120)"`
}

type DNSLookupTool

type DNSLookupTool struct{}

func NewDNSLookup

func NewDNSLookup() *DNSLookupTool

func (*DNSLookupTool) Info

func (t *DNSLookupTool) Info() tool.ToolInfo

func (*DNSLookupTool) Run

type FetchParams

type FetchParams struct {
	URL string `json:"url" description:"The URL to fetch"`
}

type FetchTool

type FetchTool struct{}

func NewFetch

func NewFetch() *FetchTool

func (*FetchTool) Info

func (t *FetchTool) Info() tool.ToolInfo

func (*FetchTool) Run

func (t *FetchTool) Run(ctx context.Context, params tool.ToolCall) (tool.ToolResponse, error)

type HTTPProbeParams

type HTTPProbeParams struct {
	URL             string            `json:"url"                       desc:"The URL to send the request to"`
	Method          string            `json:"method,omitempty"          desc:"HTTP method (default: GET)"`
	Headers         map[string]string `json:"headers,omitempty"         desc:"Custom request headers"`
	Body            string            `json:"body,omitempty"            desc:"Raw request body"`
	FollowRedirects bool              `json:"followRedirects,omitempty" desc:"Follow redirects (default: false, returns 3xx as-is)"`
	TimeoutSeconds  int               `json:"timeoutSeconds,omitempty"  desc:"Timeout in seconds (default: 30, max: 120)"`
	ClearCookies    bool              `json:"clearCookies,omitempty"    desc:"Clear the cookie jar before sending"`
}

type HTTPProbeTool

type HTTPProbeTool struct {
	// contains filtered or unexported fields
}

func NewHTTPProbe

func NewHTTPProbe() *HTTPProbeTool

func (*HTTPProbeTool) Info

func (t *HTTPProbeTool) Info() tool.ToolInfo

func (*HTTPProbeTool) Run

type JWTInspectParams

type JWTInspectParams struct {
	Token       string `json:"token"                   description:"The JWT to decode and analyse"`
	TestAlgNone bool   `` /* 154-byte string literal not displayed */
}

type JWTInspectTool

type JWTInspectTool struct{}

func NewJWTInspect

func NewJWTInspect() *JWTInspectTool

func (*JWTInspectTool) Info

func (t *JWTInspectTool) Info() tool.ToolInfo

func (*JWTInspectTool) Run

type PortScanParams

type PortScanParams struct {
	Target      string `json:"target"                   desc:"Target host — IP address or hostname"`
	Ports       string `` /* 137-byte string literal not displayed */
	ServiceScan bool   `json:"service_scan,omitempty"    desc:"Enable service/version detection (-sV). Slower but returns service and version info."`
	Timeout     int    `json:"timeout_seconds,omitempty" desc:"Max scan duration in seconds (default: 120, max: 600)"`
}

type PortScanTool

type PortScanTool struct{}

func NewPortScan

func NewPortScan() *PortScanTool

func (*PortScanTool) Info

func (t *PortScanTool) Info() tool.ToolInfo

func (*PortScanTool) Run

type SSLInfoParams

type SSLInfoParams struct {
	Host               string `json:"host"                          desc:"Hostname or IP address to connect to"`
	Port               int    `json:"port,omitempty"                desc:"Port to connect on (default: 443)"`
	CheckWeakProtocols bool   `json:"check_weak_protocols,omitempty" desc:"Probe for weak protocol support: TLS 1.0 and TLS 1.1"`
}

type SSLInfoTool

type SSLInfoTool struct{}

func NewSSLInfo

func NewSSLInfo() *SSLInfoTool

func (*SSLInfoTool) Info

func (t *SSLInfoTool) Info() tool.ToolInfo

func (*SSLInfoTool) Run

func (t *SSLInfoTool) Run(ctx context.Context, params tool.ToolCall) (tool.ToolResponse, error)

type TechFingerprintParams

type TechFingerprintParams struct {
	URL            string `json:"url"                      description:"The URL to fingerprint"`
	TimeoutSeconds int    `json:"timeout_seconds,omitempty" description:"Request timeout in seconds (default: 30)"`
}

type TechFingerprintTool

type TechFingerprintTool struct{}

func NewTechFingerprint

func NewTechFingerprint() *TechFingerprintTool

func (*TechFingerprintTool) Info

func (t *TechFingerprintTool) Info() tool.ToolInfo

func (*TechFingerprintTool) Run

type WebSearchParams

type WebSearchParams struct {
	Query string `json:"query"           description:"The search query"`
	Limit int    `json:"limit,omitempty" description:"Max results to return (default 5)"`
}

type WebSearchTool

type WebSearchTool struct {
	// contains filtered or unexported fields
}

func NewWebSearch

func NewWebSearch() *WebSearchTool

func NewWebSearchWithEndpoints

func NewWebSearchWithEndpoints(_, searchURL string) *WebSearchTool

func (*WebSearchTool) Info

func (t *WebSearchTool) Info() tool.ToolInfo

func (*WebSearchTool) Run

type WhoisParams

type WhoisParams struct {
	Target string `json:"target" desc:"Domain name or IP address to look up"`
}

type WhoisTool

type WhoisTool struct {
	// contains filtered or unexported fields
}

func NewWhois

func NewWhois() *WhoisTool

func NewWhoisWithURLs

func NewWhoisWithURLs(bootstrapURL, arinURL string) *WhoisTool

func (*WhoisTool) Info

func (t *WhoisTool) Info() tool.ToolInfo

func (*WhoisTool) Run

func (t *WhoisTool) Run(ctx context.Context, params tool.ToolCall) (tool.ToolResponse, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL