Files
robinhood-agentic-mcp/rh.go
T

81 lines
2.3 KiB
Go

package rh
import (
"context"
"s1d3sw1ped/robinhood-agentic-mcp/accounts"
"s1d3sw1ped/robinhood-agentic-mcp/auth"
"s1d3sw1ped/robinhood-agentic-mcp/client"
"s1d3sw1ped/robinhood-agentic-mcp/crypto"
"s1d3sw1ped/robinhood-agentic-mcp/equity"
"s1d3sw1ped/robinhood-agentic-mcp/market"
"s1d3sw1ped/robinhood-agentic-mcp/options"
"s1d3sw1ped/robinhood-agentic-mcp/scanner"
"s1d3sw1ped/robinhood-agentic-mcp/watchlists"
)
const DefaultURL = auth.DefaultURL
// Config is Login/Connect identity and the token file.
type Config = auth.Config
// Side is an order side. Values are Robinhood wire strings.
type Side = client.Side
const (
Buy Side = client.Buy
Sell Side = client.Sell
)
// OrderType is an order type. Values are Robinhood wire strings.
type OrderType = client.OrderType
const (
Market OrderType = client.Market
Limit OrderType = client.Limit
Stop OrderType = client.Stop // equity + options; crypto uses StopLoss
StopLimit OrderType = client.StopLimit
StopLoss OrderType = client.StopLoss // crypto only
)
// TimeInForce is an order duration. Values are Robinhood wire strings.
type TimeInForce = client.TimeInForce
const (
GFD TimeInForce = client.GFD
GTC TimeInForce = client.GTC
GFW TimeInForce = client.GFW // crypto
GFM TimeInForce = client.GFM // crypto
)
// MarketHours is a trading-session window. Values are Robinhood wire strings.
type MarketHours = client.MarketHours
const (
RegularHours MarketHours = client.RegularHours
ExtendedHours MarketHours = client.ExtendedHours
AllDayHours MarketHours = client.AllDayHours
RegularCurbHours MarketHours = client.RegularCurbHours
RegularCurbOvernightHours MarketHours = client.RegularCurbOvernightHours
)
// ToolError is a failed MCP tool call or a parse of its result.
type ToolError = client.ToolError
// API is a connected Robinhood Agentic MCP client with every asset package wired.
type API struct {
Client *client.Client
Accounts *accounts.Client
Equity *equity.Client
Options *options.Client
Crypto *crypto.Client
Watchlists *watchlists.Client
Market *market.Client
Scanner *scanner.Client
}
// Login authenticates to Robinhood Agentic MCP and writes tokens.
func Login(ctx context.Context, cfg Config) (string, error) {
return auth.Login(ctx, cfg)
}