feat: add rh Connect facade and tool coverage
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user