81 lines
2.3 KiB
Go
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)
|
|
}
|