SYMBOL INDEX (2816 symbols across 330 files) FILE: .github/workflows/scripts/calculate_coverage.py function parse_coverage_file (line 15) | def parse_coverage_file(coverage_file: str) -> Tuple[float, Dict[str, fl... function get_coverage_status (line 90) | def get_coverage_status(coverage: float) -> Tuple[str, str, str]: function generate_coverage_report (line 110) | def generate_coverage_report(coverage_file: str, output_file: str) -> None: function set_github_output (line 138) | def set_github_output(name: str, value: str) -> None: function main (line 154) | def main(): FILE: .github/workflows/scripts/comment_pr.py function read_file (line 16) | def read_file(file_path: str) -> str: function generate_comment_body (line 26) | def generate_comment_body(coverage: str, emoji: str, status: str, function find_existing_comment (line 71) | def find_existing_comment(token: str, repo: str, pr_number: int) -> Opti... function post_comment (line 106) | def post_comment(token: str, repo: str, pr_number: int, body: str) -> bool: function update_comment (line 138) | def update_comment(token: str, repo: str, comment_id: int, body: str) ->... function is_fork_pr (line 170) | def is_fork_pr(event_path: str) -> bool: function main (line 194) | def main(): FILE: api/crypto_handler.go type CryptoHandler (line 13) | type CryptoHandler struct method HandleGetCryptoConfig (line 27) | func (h *CryptoHandler) HandleGetCryptoConfig(c *gin.Context) { method HandleGetPublicKey (line 37) | func (h *CryptoHandler) HandleGetPublicKey(c *gin.Context) { method HandleDecryptSensitiveData (line 59) | func (h *CryptoHandler) HandleDecryptSensitiveData(c *gin.Context) { function NewCryptoHandler (line 18) | func NewCryptoHandler(cryptoService *crypto.CryptoService) *CryptoHandler { function isValidPrivateKey (line 86) | func isValidPrivateKey(key string) bool { FILE: api/errors.go function SafeError (line 13) | func SafeError(c *gin.Context, statusCode int, publicMsg string, interna... function SafeInternalError (line 23) | func SafeInternalError(c *gin.Context, operation string, err error) { function SafeBadRequest (line 30) | func SafeBadRequest(c *gin.Context, msg string) { function SafeNotFound (line 35) | func SafeNotFound(c *gin.Context, resource string) { function SafeUnauthorized (line 40) | func SafeUnauthorized(c *gin.Context) { function SafeForbidden (line 45) | func SafeForbidden(c *gin.Context, msg string) { function IsSensitiveError (line 50) | func IsSensitiveError(err error) bool { function SanitizeError (line 87) | func SanitizeError(err error, fallbackMsg string) string { FILE: api/handler_ai_model.go type ModelConfig (line 17) | type ModelConfig struct type SafeModelConfig (line 27) | type SafeModelConfig struct type UpdateModelConfigRequest (line 36) | type UpdateModelConfigRequest struct method handleGetModelConfigs (line 46) | func (s *Server) handleGetModelConfigs(c *gin.Context) { method handleUpdateModelConfigs (line 92) | func (s *Server) handleUpdateModelConfigs(c *gin.Context) { method handleGetSupportedModels (line 194) | func (s *Server) handleGetSupportedModels(c *gin.Context) { FILE: api/handler_competition.go method handleDecisions (line 17) | func (s *Server) handleDecisions(c *gin.Context) { method handleLatestDecisions (line 41) | func (s *Server) handleLatestDecisions(c *gin.Context) { method handleStatistics (line 81) | func (s *Server) handleStatistics(c *gin.Context) { method handleCompetition (line 104) | func (s *Server) handleCompetition(c *gin.Context) { method handleEquityHistory (line 124) | func (s *Server) handleEquityHistory(c *gin.Context) { method handlePublicTraderList (line 184) | func (s *Server) handlePublicTraderList(c *gin.Context) { method handlePublicCompetition (line 228) | func (s *Server) handlePublicCompetition(c *gin.Context) { method handleTopTraders (line 239) | func (s *Server) handleTopTraders(c *gin.Context) { method handleEquityHistoryBatch (line 251) | func (s *Server) handleEquityHistoryBatch(c *gin.Context) { method getEquityHistoryForTraders (line 321) | func (s *Server) getEquityHistoryForTraders(traderIDs []string, hours in... method handleGetPublicTraderConfig (line 441) | func (s *Server) handleGetPublicTraderConfig(c *gin.Context) { FILE: api/handler_exchange.go type ExchangeConfig (line 15) | type ExchangeConfig struct type SafeExchangeConfig (line 26) | type SafeExchangeConfig struct type UpdateExchangeConfigRequest (line 40) | type UpdateExchangeConfigRequest struct type CreateExchangeRequest (line 60) | type CreateExchangeRequest struct method handleGetExchangeConfigs (line 80) | func (s *Server) handleGetExchangeConfigs(c *gin.Context) { method handleUpdateExchangeConfigs (line 120) | func (s *Server) handleUpdateExchangeConfigs(c *gin.Context) { method handleCreateExchange (line 213) | func (s *Server) handleCreateExchange(c *gin.Context) { method handleDeleteExchange (line 295) | func (s *Server) handleDeleteExchange(c *gin.Context) { method handleGetSupportedExchanges (line 335) | func (s *Server) handleGetSupportedExchanges(c *gin.Context) { FILE: api/handler_klines.go method handleKlines (line 23) | func (s *Server) handleKlines(c *gin.Context) { method getKlinesFromCoinank (line 84) | func (s *Server) getKlinesFromCoinank(symbol, interval, exchange string,... method getKlinesFromAlpaca (line 209) | func (s *Server) getKlinesFromAlpaca(symbol, interval string, limit int)... method getKlinesFromTwelveData (line 242) | func (s *Server) getKlinesFromTwelveData(symbol, interval string, limit ... method getKlinesFromHyperliquid (line 284) | func (s *Server) getKlinesFromHyperliquid(symbol, interval string, limit... method handleSymbols (line 324) | func (s *Server) handleSymbols(c *gin.Context) { FILE: api/handler_order.go method handleTraderList (line 14) | func (s *Server) handleTraderList(c *gin.Context) { method handleGetTraderConfig (line 60) | func (s *Server) handleGetTraderConfig(c *gin.Context) { method handleStatus (line 111) | func (s *Server) handleStatus(c *gin.Context) { method handleAccount (line 129) | func (s *Server) handleAccount(c *gin.Context) { method handlePositions (line 159) | func (s *Server) handlePositions(c *gin.Context) { method handlePositionHistory (line 182) | func (s *Server) handlePositionHistory(c *gin.Context) { method handleTrades (line 234) | func (s *Server) handleTrades(c *gin.Context) { method handleOrders (line 289) | func (s *Server) handleOrders(c *gin.Context) { method handleOrderFills (line 334) | func (s *Server) handleOrderFills(c *gin.Context) { method handleOpenOrders (line 371) | func (s *Server) handleOpenOrders(c *gin.Context) { FILE: api/handler_telegram.go method handleGetTelegramConfig (line 10) | func (s *Server) handleGetTelegramConfig(c *gin.Context) { method handleUpdateTelegramConfig (line 44) | func (s *Server) handleUpdateTelegramConfig(c *gin.Context) { method handleUnbindTelegram (line 75) | func (s *Server) handleUnbindTelegram(c *gin.Context) { method handleUpdateTelegramModel (line 84) | func (s *Server) handleUpdateTelegramModel(c *gin.Context) { FILE: api/handler_trader.go type CreateTraderRequest (line 26) | type CreateTraderRequest struct type UpdateTraderRequest (line 47) | type UpdateTraderRequest struct method handleCreateTrader (line 66) | func (s *Server) handleCreateTrader(c *gin.Context) { method handleUpdateTrader (line 303) | func (s *Server) handleUpdateTrader(c *gin.Context) { method handleDeleteTrader (line 448) | func (s *Server) handleDeleteTrader(c *gin.Context) { method handleStartTrader (line 476) | func (s *Server) handleStartTrader(c *gin.Context) { method handleStopTrader (line 565) | func (s *Server) handleStopTrader(c *gin.Context) { FILE: api/handler_trader_config.go method handleUpdateTraderPrompt (line 12) | func (s *Server) handleUpdateTraderPrompt(c *gin.Context) { method handleToggleCompetition (line 45) | func (s *Server) handleToggleCompetition(c *gin.Context) { FILE: api/handler_trader_status.go method handleGetGridRiskInfo (line 26) | func (s *Server) handleGetGridRiskInfo(c *gin.Context) { method handleSyncBalance (line 40) | func (s *Server) handleSyncBalance(c *gin.Context) { method handleClosePosition (line 195) | func (s *Server) handleClosePosition(c *gin.Context) { method recordClosePositionOrder (line 354) | func (s *Server) recordClosePositionOrder(traderID, exchangeID, exchange... method pollAndUpdateOrderStatus (line 461) | func (s *Server) pollAndUpdateOrderStatus(orderRecordID int64, traderID,... method pollLighterTradeHistory (line 549) | func (s *Server) pollLighterTradeHistory(orderRecordID int64, traderID, ... function getSideFromAction (line 556) | func getSideFromAction(action string) string { FILE: api/handler_user.go method handleLogout (line 17) | func (s *Server) handleLogout(c *gin.Context) { method handleRegister (line 47) | func (s *Server) handleRegister(c *gin.Context) { method handleLogin (line 119) | func (s *Server) handleLogin(c *gin.Context) { method handleChangePassword (line 159) | func (s *Server) handleChangePassword(c *gin.Context) { method handleResetPassword (line 181) | func (s *Server) handleResetPassword(c *gin.Context) { method initUserDefaultConfigs (line 218) | func (s *Server) initUserDefaultConfigs(userID string) error { FILE: api/handler_wallet.go type walletValidateRequest (line 18) | type walletValidateRequest struct type walletValidateResponse (line 22) | type walletValidateResponse struct constant baseRPCURL (line 31) | baseRPCURL = "https://mainnet.base.org" constant usdcContractBase (line 32) | usdcContractBase = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" constant usdcDecimals (line 33) | usdcDecimals = 6 method handleWalletValidate (line 36) | func (s *Server) handleWalletValidate(c *gin.Context) { function queryUSDCBalance (line 101) | func queryUSDCBalance(address string) string { function checkClaw402Health (line 162) | func checkClaw402Health() string { FILE: api/route_registry.go type RouteDoc (line 11) | type RouteDoc struct method route (line 22) | func (s *Server) route(g *gin.RouterGroup, method, path, description str... method routeWithSchema (line 28) | func (s *Server) routeWithSchema(g *gin.RouterGroup, method, path, descr... function GetAPIDocs (line 50) | func GetAPIDocs() string { FILE: api/server.go type Server (line 20) | type Server struct method setupRoutes (line 74) | func (s *Server) setupRoutes() { method handleHealth (line 350) | func (s *Server) handleHealth(c *gin.Context) { method handleGetSystemConfig (line 358) | func (s *Server) handleGetSystemConfig(c *gin.Context) { method handleGetServerIP (line 368) | func (s *Server) handleGetServerIP(c *gin.Context) { method getTraderFromQuery (line 497) | func (s *Server) getTraderFromQuery(c *gin.Context) (*manager.TraderMa... method authMiddleware (line 527) | func (s *Server) authMiddleware() gin.HandlerFunc { method Start (line 570) | func (s *Server) Start() error { method Shutdown (line 606) | func (s *Server) Shutdown() error { method SetTelegramReloadCh (line 616) | func (s *Server) SetTelegramReloadCh(ch chan<- struct{}) { function NewServer (line 31) | func NewServer(traderManager *manager.TraderManager, st *store.Store, cr... function corsMiddleware (line 58) | func corsMiddleware() gin.HandlerFunc { function getPublicIPFromAPI (line 390) | func getPublicIPFromAPI() string { function getPublicIPFromInterface (line 430) | func getPublicIPFromInterface() string { function isPrivateIP (line 475) | func isPrivateIP(ip net.IP) bool { FILE: api/server_test.go function TestUpdateTraderRequest_SystemPromptTemplate (line 11) | func TestUpdateTraderRequest_SystemPromptTemplate(t *testing.T) { function TestGetTraderConfigResponse_SystemPromptTemplate (line 100) | func TestGetTraderConfigResponse_SystemPromptTemplate(t *testing.T) { function TestUpdateTraderRequest_CompleteFields (line 193) | func TestUpdateTraderRequest_CompleteFields(t *testing.T) { function TestTraderListResponse_SystemPromptTemplate (line 230) | func TestTraderListResponse_SystemPromptTemplate(t *testing.T) { function TestPublicTraderListResponse_SystemPromptTemplate (line 266) | func TestPublicTraderListResponse_SystemPromptTemplate(t *testing.T) { FILE: api/strategy.go function validateStrategyConfig (line 21) | func validateStrategyConfig(config *store.StrategyConfig) []string { method handlePublicStrategies (line 35) | func (s *Server) handlePublicStrategies(c *gin.Context) { method handleGetStrategies (line 72) | func (s *Server) handleGetStrategies(c *gin.Context) { method handleGetStrategy (line 111) | func (s *Server) handleGetStrategy(c *gin.Context) { method handleCreateStrategy (line 143) | func (s *Server) handleCreateStrategy(c *gin.Context) { method handleUpdateStrategy (line 212) | func (s *Server) handleUpdateStrategy(c *gin.Context) { method handleDeleteStrategy (line 304) | func (s *Server) handleDeleteStrategy(c *gin.Context) { method handleActivateStrategy (line 322) | func (s *Server) handleActivateStrategy(c *gin.Context) { method handleDuplicateStrategy (line 340) | func (s *Server) handleDuplicateStrategy(c *gin.Context) { method handleGetActiveStrategy (line 371) | func (s *Server) handleGetActiveStrategy(c *gin.Context) { method handleGetDefaultStrategyConfig (line 401) | func (s *Server) handleGetDefaultStrategyConfig(c *gin.Context) { method handlePreviewPrompt (line 414) | func (s *Server) handlePreviewPrompt(c *gin.Context) { method handleStrategyTestRun (line 463) | func (s *Server) handleStrategyTestRun(c *gin.Context) { method runRealAITest (line 627) | func (s *Server) runRealAITest(userID, modelID, systemPrompt, userPrompt... FILE: api/traderid_test.go function TestTraderIDUniqueness (line 13) | func TestTraderIDUniqueness(t *testing.T) { function generateTraderID (line 44) | func generateTraderID(exchangeID, aiModelID string) string { function isValidTraderIDFormat (line 49) | func isValidTraderIDFormat(traderID, expectedExchange, expectedModel str... function TestTraderIDFormat (line 72) | func TestTraderIDFormat(t *testing.T) { function TestTraderIDNoCollision (line 107) | func TestTraderIDNoCollision(t *testing.T) { FILE: api/utils.go function MaskSensitiveString (line 7) | func MaskSensitiveString(s string) string { function SanitizeModelConfigForLog (line 19) | func SanitizeModelConfigForLog(models map[string]struct { function SanitizeExchangeConfigForLog (line 38) | func SanitizeExchangeConfigForLog(exchanges map[string]struct { function MaskEmail (line 91) | func MaskEmail(email string) string { FILE: api/utils_test.go function TestMaskSensitiveString (line 7) | func TestMaskSensitiveString(t *testing.T) { function TestSanitizeModelConfigForLog (line 50) | func TestSanitizeModelConfigForLog(t *testing.T) { function TestSanitizeExchangeConfigForLog (line 90) | func TestSanitizeExchangeConfigForLog(t *testing.T) { function TestMaskEmail (line 163) | func TestMaskEmail(t *testing.T) { FILE: auth/auth.go constant maxBlacklistEntries (line 23) | maxBlacklistEntries = 100_000 function SetJWTSecret (line 26) | func SetJWTSecret(secret string) { function BlacklistToken (line 31) | func BlacklistToken(token string, exp time.Time) { function IsTokenBlacklisted (line 52) | func IsTokenBlacklisted(token string) bool { type Claims (line 66) | type Claims struct function HashPassword (line 73) | func HashPassword(password string) (string, error) { function CheckPassword (line 79) | func CheckPassword(password, hash string) bool { function GenerateJWT (line 85) | func GenerateJWT(userID, email string) (string, error) { function ValidateJWT (line 102) | func ValidateJWT(tokenString string) (*Claims, error) { FILE: config/config.go type Config (line 16) | type Config struct function Init (line 49) | func Init() { function Get (line 140) | func Get() *Config { FILE: crypto/crypto.go constant storagePrefix (line 23) | storagePrefix = "ENC:v1:" constant storageDelimiter (line 24) | storageDelimiter = ":" constant EnvDataEncryptionKey (line 29) | EnvDataEncryptionKey = "DATA_ENCRYPTION_KEY" constant EnvRSAPrivateKey (line 30) | EnvRSAPrivateKey = "RSA_PRIVATE_KEY" type EncryptedPayload (line 33) | type EncryptedPayload struct type AADData (line 42) | type AADData struct type CryptoService (line 49) | type CryptoService struct method HasDataKey (line 167) | func (cs *CryptoService) HasDataKey() bool { method GetPublicKeyPEM (line 171) | func (cs *CryptoService) GetPublicKeyPEM() string { method EncryptForStorage (line 185) | func (cs *CryptoService) EncryptForStorage(plaintext string, aadParts ... method DecryptFromStorage (line 219) | func (cs *CryptoService) DecryptFromStorage(value string, aadParts ...... method IsEncryptedStorageValue (line 269) | func (cs *CryptoService) IsEncryptedStorageValue(value string) bool { method DecryptPayload (line 284) | func (cs *CryptoService) DecryptPayload(payload *EncryptedPayload) ([]... method DecryptSensitiveData (line 351) | func (cs *CryptoService) DecryptSensitiveData(payload *EncryptedPayloa... function NewCryptoService (line 56) | func NewCryptoService() (*CryptoService, error) { function loadRSAPrivateKeyFromEnv (line 77) | func loadRSAPrivateKeyFromEnv() (*rsa.PrivateKey, error) { function loadDataKeyFromEnv (line 90) | func loadDataKeyFromEnv() ([]byte, error) { function ParseRSAPrivateKeyFromPEM (line 109) | func ParseRSAPrivateKeyFromPEM(pemBytes []byte) (*rsa.PrivateKey, error) { function decodePossibleKey (line 134) | func decodePossibleKey(value string) ([]byte, bool) { function normalizeAESKey (line 153) | func normalizeAESKey(raw []byte) ([]byte, bool) { function composeAAD (line 273) | func composeAAD(parts []string) []byte { function isEncryptedStorageValue (line 280) | func isEncryptedStorageValue(value string) bool { function GenerateKeyPair (line 361) | func GenerateKeyPair() (privateKeyPEM, publicKeyPEM string, err error) { function GenerateDataKey (line 389) | func GenerateDataKey() (string, error) { function SetGlobalCryptoService (line 405) | func SetGlobalCryptoService(cs *CryptoService) { type EncryptedString (line 411) | type EncryptedString method Scan (line 415) | func (es *EncryptedString) Scan(value interface{}) error { method Value (line 449) | func (es EncryptedString) Value() (driver.Value, error) { method String (line 467) | func (es EncryptedString) String() string { FILE: hook/hooks.go type HookFunc (line 7) | type HookFunc function HookExec (line 14) | func HookExec[T any](key string, args ...any) *T { function RegisterHook (line 30) | func RegisterHook(key string, hook HookFunc) { constant GETIP (line 36) | GETIP = "GETIP" constant NEW_BINANCE_TRADER (line 37) | NEW_BINANCE_TRADER = "NEW_BINANCE_TRADER" constant NEW_ASTER_TRADER (line 38) | NEW_ASTER_TRADER = "NEW_ASTER_TRADER" constant SET_HTTP_CLIENT (line 39) | SET_HTTP_CLIENT = "SET_HTTP_CLIENT" FILE: hook/http_client_hook.go type SetHttpClientResult (line 8) | type SetHttpClientResult struct method Error (line 13) | func (r *SetHttpClientResult) Error() error { method GetResult (line 20) | func (r *SetHttpClientResult) GetResult() *http.Client { FILE: hook/ip_hook.go type IpResult (line 5) | type IpResult struct method Error (line 10) | func (r *IpResult) Error() error { method GetResult (line 14) | func (r *IpResult) GetResult() string { FILE: hook/trader_hook.go type NewBinanceTraderResult (line 10) | type NewBinanceTraderResult struct method Error (line 15) | func (r *NewBinanceTraderResult) Error() error { method GetResult (line 22) | func (r *NewBinanceTraderResult) GetResult() *futures.Client { type NewAsterTraderResult (line 27) | type NewAsterTraderResult struct method Error (line 32) | func (r *NewAsterTraderResult) Error() error { method GetResult (line 39) | func (r *NewAsterTraderResult) GetResult() *http.Client { FILE: kernel/engine.go type PositionInfo (line 24) | type PositionInfo struct type AccountInfo (line 40) | type AccountInfo struct type CandidateCoin (line 52) | type CandidateCoin struct type OITopData (line 58) | type OITopData struct type TradingStats (line 66) | type TradingStats struct type RecentOrder (line 78) | type RecentOrder struct type Context (line 91) | type Context struct type Decision (line 114) | type Decision struct type FullDecision (line 138) | type FullDecision struct type QuantData (line 149) | type QuantData struct type NetflowData (line 157) | type NetflowData struct type FlowTypeData (line 162) | type FlowTypeData struct type OIData (line 167) | type OIData struct type OIDeltaData (line 172) | type OIDeltaData struct type StrategyEngine (line 183) | type StrategyEngine struct method GetRiskControlConfig (line 204) | func (e *StrategyEngine) GetRiskControlConfig() store.RiskControlConfig { method GetLanguage (line 209) | func (e *StrategyEngine) GetLanguage() Language { method GetConfig (line 222) | func (e *StrategyEngine) GetConfig() *store.StrategyConfig { method GetCandidateCoins (line 231) | func (e *StrategyEngine) GetCandidateCoins() ([]CandidateCoin, error) { method filterExcludedCoins (line 426) | func (e *StrategyEngine) filterExcludedCoins(candidates []CandidateCoi... method getAI500Coins (line 451) | func (e *StrategyEngine) getAI500Coins(limit int) ([]CandidateCoin, er... method getOITopCoins (line 471) | func (e *StrategyEngine) getOITopCoins(limit int) ([]CandidateCoin, er... method getOILowCoins (line 495) | func (e *StrategyEngine) getOILowCoins(limit int) ([]CandidateCoin, er... method getHyperAllCoins (line 520) | func (e *StrategyEngine) getHyperAllCoins() ([]CandidateCoin, error) { method getHyperMainCoins (line 541) | func (e *StrategyEngine) getHyperMainCoins(limit int) ([]CandidateCoin... method FetchMarketData (line 570) | func (e *StrategyEngine) FetchMarketData(symbol string) (*market.Data,... method FetchExternalData (line 575) | func (e *StrategyEngine) FetchExternalData() (map[string]interface{}, ... method fetchSingleExternalSource (line 590) | func (e *StrategyEngine) fetchSingleExternalSource(source store.Extern... method FetchQuantData (line 652) | func (e *StrategyEngine) FetchQuantData(symbol string) (*QuantData, er... method FetchQuantDataBatch (line 725) | func (e *StrategyEngine) FetchQuantDataBatch(symbols []string) map[str... method FetchOIRankingData (line 747) | func (e *StrategyEngine) FetchOIRankingData() *nofxos.OIRankingData { method FetchNetFlowRankingData (line 778) | func (e *StrategyEngine) FetchNetFlowRankingData() *nofxos.NetFlowRank... method FetchPriceRankingData (line 810) | func (e *StrategyEngine) FetchPriceRankingData() *nofxos.PriceRankingD... function NewStrategyEngine (line 189) | func NewStrategyEngine(config *store.StrategyConfig) *StrategyEngine { function extractJSONPath (line 636) | func extractJSONPath(data interface{}, path string) interface{} { function detectLanguage (line 845) | func detectLanguage(text string) Language { FILE: kernel/engine_analysis.go function GetFullDecision (line 38) | func GetFullDecision(ctx *Context, mcpClient mcp.AIClient) (*FullDecisio... function GetFullDecisionWithStrategy (line 45) | func GetFullDecisionWithStrategy(ctx *Context, mcpClient mcp.AIClient, e... function fetchMarketDataWithStrategy (line 122) | func fetchMarketDataWithStrategy(ctx *Context, engine *StrategyEngine) e... function parseFullDecisionResponse (line 203) | func parseFullDecisionResponse(aiResponse string, accountEquity float64,... function extractCoTTrace (line 227) | func extractCoTTrace(response string) string { function extractDecisions (line 247) | func extractDecisions(response string) ([]Decision, error) { function fixMissingQuotes (line 310) | func fixMissingQuotes(jsonStr string) string { function validateJSONFormat (line 334) | func validateJSONFormat(jsonStr string) error { function min (line 361) | func min(a, b int) int { function removeInvisibleRunes (line 368) | func removeInvisibleRunes(s string) string { function compactArrayOpen (line 372) | func compactArrayOpen(s string) string { FILE: kernel/engine_position.go function validateDecisions (line 12) | func validateDecisions(decisions []Decision, accountEquity float64, btcE... function validateDecision (line 21) | func validateDecision(d *Decision, accountEquity float64, btcEthLeverage... FILE: kernel/engine_prompt.go method BuildSystemPrompt (line 17) | func (e *StrategyEngine) BuildSystemPrompt(accountEquity float64, varian... method writeAvailableIndicators (line 155) | func (e *StrategyEngine) writeAvailableIndicators(sb *strings.Builder) { method BuildUserPrompt (line 228) | func (e *StrategyEngine) BuildUserPrompt(ctx *Context) string { method formatPositionInfo (line 402) | func (e *StrategyEngine) formatPositionInfo(index int, pos PositionInfo,... method formatCoinSourceTag (line 442) | func (e *StrategyEngine) formatCoinSourceTag(sources []string) string { method formatMarketData (line 503) | func (e *StrategyEngine) formatMarketData(data *market.Data) string { method formatTimeframeSeriesData (line 613) | func (e *StrategyEngine) formatTimeframeSeriesData(sb *strings.Builder, ... method formatQuantData (line 669) | func (e *StrategyEngine) formatQuantData(data *QuantData) string { function formatFlowValue (line 754) | func formatFlowValue(v float64) string { function formatFloatSlice (line 773) | func formatFloatSlice(values []float64) string { FILE: kernel/formatter.go function FormatContextForAI (line 20) | func FormatContextForAI(ctx *Context, lang Language) string { function FormatContextDataOnly (line 34) | func FormatContextDataOnly(ctx *Context, lang Language) string { function formatContextData (line 39) | func formatContextData(ctx *Context, lang Language) string { function formatHeaderZH (line 107) | func formatHeaderZH(ctx *Context) string { function formatAccountZH (line 113) | func formatAccountZH(ctx *Context) string { function formatTradingStatsZH (line 135) | func formatTradingStatsZH(stats *TradingStats) string { function formatRecentTradesZH (line 196) | func formatRecentTradesZH(orders []RecentOrder) string { function formatCurrentPositionsZH (line 227) | func formatCurrentPositionsZH(ctx *Context) string { function formatCandidateCoinsZH (line 270) | func formatCandidateCoinsZH(ctx *Context) string { function formatKlineDataZH (line 319) | func formatKlineDataZH(symbol string, tfData map[string]*market.Timefram... function getOIInterpretationZH (line 361) | func getOIInterpretationZH(oiChange, priceChange string) string { function formatHeaderEN (line 376) | func formatHeaderEN(ctx *Context) string { function formatAccountEN (line 382) | func formatAccountEN(ctx *Context) string { function formatTradingStatsEN (line 404) | func formatTradingStatsEN(stats *TradingStats) string { function formatRecentTradesEN (line 465) | func formatRecentTradesEN(orders []RecentOrder) string { function formatCurrentPositionsEN (line 495) | func formatCurrentPositionsEN(ctx *Context) string { function formatCandidateCoinsEN (line 536) | func formatCandidateCoinsEN(ctx *Context) string { function formatKlineDataEN (line 581) | func formatKlineDataEN(symbol string, tfData map[string]*market.Timefram... function getOIInterpretationEN (line 626) | func getOIInterpretationEN(oiChange, priceChange string) string { FILE: kernel/grid_engine.go type GridLevelInfo (line 19) | type GridLevelInfo struct type GridContext (line 33) | type GridContext struct function BuildGridSystemPrompt (line 97) | func BuildGridSystemPrompt(config *store.GridStrategyConfig, lang string... function buildGridSystemPromptZh (line 104) | func buildGridSystemPromptZh(config *store.GridStrategyConfig) string { function buildGridSystemPromptEn (line 156) | func buildGridSystemPromptEn(config *store.GridStrategyConfig) string { function BuildGridUserPrompt (line 209) | func BuildGridUserPrompt(ctx *GridContext, lang string) string { function buildGridUserPromptZh (line 216) | func buildGridUserPromptZh(ctx *GridContext) string { function buildGridUserPromptEn (line 327) | func buildGridUserPromptEn(ctx *GridContext) string { function GetGridDecisions (line 443) | func GetGridDecisions(ctx *GridContext, mcpClient mcp.AIClient, config *... function parseGridDecisions (line 489) | func parseGridDecisions(response string, symbol string) ([]Decision, err... function extractJSONArray (line 516) | func extractJSONArray(response string) string { function isValidGridAction (line 533) | func isValidGridAction(action string) bool { function BuildGridContextFromMarketData (line 557) | func BuildGridContextFromMarketData(mktData *market.Data, config *store.... function max (line 613) | func max(a, b int) int { FILE: kernel/prompt_builder.go type PromptBuilder (line 15) | type PromptBuilder struct method BuildSystemPrompt (line 25) | func (pb *PromptBuilder) BuildSystemPrompt() string { method BuildUserPrompt (line 33) | func (pb *PromptBuilder) BuildUserPrompt(ctx *Context) string { method buildSystemPromptZH (line 46) | func (pb *PromptBuilder) buildSystemPromptZH() string { method getDecisionRequirementsZH (line 125) | func (pb *PromptBuilder) getDecisionRequirementsZH() string { method buildSystemPromptEN (line 181) | func (pb *PromptBuilder) buildSystemPromptEN() string { method getDecisionRequirementsEN (line 260) | func (pb *PromptBuilder) getDecisionRequirementsEN() string { function NewPromptBuilder (line 20) | func NewPromptBuilder(lang Language) *PromptBuilder { function FormatDecisionExample (line 317) | func FormatDecisionExample(lang Language) string { function ValidateDecisionFormat (line 334) | func ValidateDecisionFormat(decisions []Decision) error { FILE: kernel/prompt_builder_test.go function TestPromptBuilder (line 10) | func TestPromptBuilder(t *testing.T) { function TestValidateDecisionFormat (line 144) | func TestValidateDecisionFormat(t *testing.T) { function TestFormatDecisionExample (line 337) | func TestFormatDecisionExample(t *testing.T) { function BenchmarkBuildSystemPrompt (line 370) | func BenchmarkBuildSystemPrompt(b *testing.B) { function BenchmarkBuildUserPrompt (line 388) | func BenchmarkBuildUserPrompt(b *testing.B) { function createTestContext (line 407) | func createTestContext() *Context { FILE: kernel/schema.go constant SchemaVersion (line 11) | SchemaVersion = "1.0.0" type Language (line 15) | type Language constant LangChinese (line 18) | LangChinese Language = "zh-CN" constant LangEnglish (line 19) | LangEnglish Language = "en-US" type BilingualFieldDef (line 25) | type BilingualFieldDef struct method GetName (line 36) | func (d BilingualFieldDef) GetName(lang Language) string { method GetFormula (line 44) | func (d BilingualFieldDef) GetFormula(lang Language) string { method GetDesc (line 52) | func (d BilingualFieldDef) GetDesc(lang Language) string { type BilingualRuleDef (line 223) | type BilingualRuleDef struct method GetDesc (line 232) | func (d BilingualRuleDef) GetDesc(lang Language) string { method GetReason (line 240) | func (d BilingualRuleDef) GetReason(lang Language) string { type OIInterpretationType (line 346) | type OIInterpretationType struct type CommonMistake (line 399) | type CommonMistake struct function GetSchemaPrompt (line 446) | func GetSchemaPrompt(lang Language) string { function getSchemaPromptZH (line 454) | func getSchemaPromptZH() string { function getSchemaPromptEN (line 493) | func getSchemaPromptEN() string { function formatFieldDefZH (line 532) | func formatFieldDefZH(key string, field BilingualFieldDef) string { function formatFieldDefEN (line 545) | func formatFieldDefEN(key string, field BilingualFieldDef) string { FILE: kernel/validate_test.go function TestLeverageFallback (line 8) | func TestLeverageFallback(t *testing.T) { function contains (line 105) | func contains(s, substr string) bool { function stringContains (line 110) | func stringContains(s, substr string) bool { FILE: logger/config.go type Config (line 4) | type Config struct method SetDefaults (line 9) | func (c *Config) SetDefaults() { FILE: logger/logger.go type compactFormatter (line 23) | type compactFormatter struct method Format (line 27) | func (f *compactFormatter) Format(entry *logrus.Entry) ([]byte, error) { function init (line 52) | func init() { function Init (line 66) | func Init(cfg *Config) error { function InitWithSimpleConfig (line 110) | func InitWithSimpleConfig(level string) error { function Shutdown (line 115) | func Shutdown() { function WithFields (line 127) | func WithFields(fields logrus.Fields) *logrus.Entry { function WithField (line 132) | func WithField(key string, value interface{}) *logrus.Entry { function Debug (line 137) | func Debug(args ...interface{}) { function Info (line 141) | func Info(args ...interface{}) { function Warn (line 145) | func Warn(args ...interface{}) { function Debugf (line 149) | func Debugf(format string, args ...interface{}) { function Infof (line 153) | func Infof(format string, args ...interface{}) { function Warnf (line 157) | func Warnf(format string, args ...interface{}) { function Error (line 161) | func Error(args ...interface{}) { function Errorf (line 165) | func Errorf(format string, args ...interface{}) { function Fatal (line 169) | func Fatal(args ...interface{}) { function Fatalf (line 173) | func Fatalf(format string, args ...interface{}) { function Panic (line 177) | func Panic(args ...interface{}) { function Panicf (line 181) | func Panicf(format string, args ...interface{}) { type MCPLogger (line 191) | type MCPLogger struct method Debugf (line 198) | func (l *MCPLogger) Debugf(format string, args ...any) { method Infof (line 202) | func (l *MCPLogger) Infof(format string, args ...any) { method Warnf (line 206) | func (l *MCPLogger) Warnf(format string, args ...any) { method Errorf (line 210) | func (l *MCPLogger) Errorf(format string, args ...any) { function NewMCPLogger (line 194) | func NewMCPLogger() *MCPLogger { FILE: main.go function main (line 24) | func main() { function initInstallationID (line 160) | func initInstallationID(st *store.Store) { FILE: manager/trader_manager.go type CompetitionCache (line 15) | type CompetitionCache struct type TraderManager (line 22) | type TraderManager struct method GetLoadError (line 41) | func (tm *TraderManager) GetLoadError(traderID string) error { method GetTrader (line 48) | func (tm *TraderManager) GetTrader(id string) (*trader.AutoTrader, err... method GetAllTraders (line 60) | func (tm *TraderManager) GetAllTraders() map[string]*trader.AutoTrader { method GetTraderIDs (line 72) | func (tm *TraderManager) GetTraderIDs() []string { method StartAll (line 84) | func (tm *TraderManager) StartAll() { method StopAll (line 100) | func (tm *TraderManager) StopAll() { method AutoStartRunningTraders (line 111) | func (tm *TraderManager) AutoStartRunningTraders(st *store.Store) { method GetComparisonData (line 154) | func (tm *TraderManager) GetComparisonData() (map[string]interface{}, ... method GetCompetitionData (line 191) | func (tm *TraderManager) GetCompetitionData() (map[string]interface{},... method getConcurrentTraderData (line 260) | func (tm *TraderManager) getConcurrentTraderData(traders []*trader.Aut... method GetTopTradersData (line 359) | func (tm *TraderManager) GetTopTradersData() (map[string]interface{}, ... method RemoveTrader (line 390) | func (tm *TraderManager) RemoveTrader(traderID string) { method LoadUserTradersFromStore (line 407) | func (tm *TraderManager) LoadUserTradersFromStore(st *store.Store, use... method LoadTradersFromStore (line 503) | func (tm *TraderManager) LoadTradersFromStore(st *store.Store) error { method addTraderFromStore (line 605) | func (tm *TraderManager) addTraderFromStore(traderCfg *store.Trader, a... function NewTraderManager (line 30) | func NewTraderManager() *TraderManager { FILE: market/api_client.go constant baseURL (line 15) | baseURL = "https://fapi.binance.com" type APIClient (line 18) | type APIClient struct method GetExchangeInfo (line 38) | func (c *APIClient) GetExchangeInfo() (*ExchangeInfo, error) { method GetKlines (line 59) | func (c *APIClient) GetKlines(symbol, interval string, limit int) ([]K... method GetCurrentPrice (line 126) | func (c *APIClient) GetCurrentPrice(symbol string) (float64, error) { function NewAPIClient (line 22) | func NewAPIClient() *APIClient { function parseKline (line 103) | func parseKline(kr KlineResponse) (Kline, error) { FILE: market/data.go type FundingRateCache (line 17) | type FundingRateCache struct function Get (line 28) | func Get(symbol string) (*Data, error) { function GetWithExchange (line 33) | func GetWithExchange(symbol, exchange string) (*Data, error) { function GetWithTimeframes (line 147) | func GetWithTimeframes(symbol string, timeframes []string, primaryTimefr... function getOpenInterestData (line 259) | func getOpenInterestData(symbol string) (*OIData, error) { function getFundingRate (line 293) | func getFundingRate(symbol string) (float64, error) { function Format (line 345) | func Format(data *Data) string { function formatTimeframeData (line 433) | func formatTimeframeData(sb *strings.Builder, data *TimeframeSeriesData) { function formatPriceWithDynamicPrecision (line 486) | func formatPriceWithDynamicPrecision(price float64) string { function formatFloatSlice (line 516) | func formatFloatSlice(values []float64) string { function IsXyzDexAsset (line 541) | func IsXyzDexAsset(symbol string) bool { function Normalize (line 557) | func Normalize(symbol string) string { function parseFloat (line 590) | func parseFloat(v interface{}) (float64, error) { function BuildDataFromKlines (line 606) | func BuildDataFromKlines(symbol string, primary []Kline, longer []Kline)... function priceChangeFromSeries (line 636) | func priceChangeFromSeries(series []Kline, duration time.Duration) float... function isStaleData (line 656) | func isStaleData(klines []Kline, symbol string) bool { FILE: market/data_indicators.go function calculateEMA (line 6) | func calculateEMA(klines []Kline, period int) float64 { function calculateMACD (line 28) | func calculateMACD(klines []Kline) float64 { function calculateRSI (line 42) | func calculateRSI(klines []Kline, period int) float64 { function calculateATR (line 86) | func calculateATR(klines []Kline, period int) float64 { function calculateBOLL (line 121) | func calculateBOLL(klines []Kline, period int, multiplier float64) (uppe... function calculateDonchian (line 150) | func calculateDonchian(klines []Kline, period int) (upper, lower float64) { constant ShortBoxPeriod (line 178) | ShortBoxPeriod = 72 constant MidBoxPeriod (line 179) | MidBoxPeriod = 240 constant LongBoxPeriod (line 180) | LongBoxPeriod = 500 function calculateBoxData (line 184) | func calculateBoxData(klines []Kline, currentPrice float64) *BoxData { function ExportCalculateEMA (line 203) | func ExportCalculateEMA(klines []Kline, period int) float64 { function ExportCalculateMACD (line 208) | func ExportCalculateMACD(klines []Kline) float64 { function ExportCalculateRSI (line 213) | func ExportCalculateRSI(klines []Kline, period int) float64 { function ExportCalculateATR (line 218) | func ExportCalculateATR(klines []Kline, period int) float64 { function ExportCalculateBOLL (line 223) | func ExportCalculateBOLL(klines []Kline, period int, multiplier float64)... function ExportCalculateDonchian (line 228) | func ExportCalculateDonchian(klines []Kline, period int) (float64, float... function ExportCalculateBoxData (line 233) | func ExportCalculateBoxData(klines []Kline, currentPrice float64) *BoxDa... FILE: market/data_klines.go function getKlinesFromCoinAnk (line 18) | func getKlinesFromCoinAnk(symbol, interval, exchange string, limit int) ... function getKlinesFromHyperliquid (line 112) | func getKlinesFromHyperliquid(symbol, interval string, limit int) ([]Kli... function calculateTimeframeSeries (line 153) | func calculateTimeframeSeries(klines []Kline, timeframe string, count in... function calculatePriceChangeByBars (line 238) | func calculatePriceChangeByBars(klines []Kline, timeframe string, target... function parseTimeframeToMinutes (line 269) | func parseTimeframeToMinutes(tf string) int { function calculateIntradaySeries (line 305) | func calculateIntradaySeries(klines []Kline) *IntradayData { function calculateLongerTermData (line 355) | func calculateLongerTermData(klines []Kline) *LongerTermData { function GetBoxData (line 401) | func GetBoxData(symbol string) (*BoxData, error) { FILE: market/data_test.go function generateTestKlines (line 9) | func generateTestKlines(count int) []Kline { function TestCalculateIntradaySeries_VolumeCollection (line 35) | func TestCalculateIntradaySeries_VolumeCollection(t *testing.T) { function TestCalculateIntradaySeries_VolumeValues (line 102) | func TestCalculateIntradaySeries_VolumeValues(t *testing.T) { function TestCalculateIntradaySeries_ATR14 (line 132) | func TestCalculateIntradaySeries_ATR14(t *testing.T) { function TestCalculateATR (line 187) | func TestCalculateATR(t *testing.T) { function TestCalculateATR_TrueRange (line 253) | func TestCalculateATR_TrueRange(t *testing.T) { function TestCalculateIntradaySeries_ConsistencyWithOtherIndicators (line 282) | func TestCalculateIntradaySeries_ConsistencyWithOtherIndicators(t *testi... function TestCalculateIntradaySeries_EmptyKlines (line 309) | func TestCalculateIntradaySeries_EmptyKlines(t *testing.T) { function TestCalculateIntradaySeries_VolumePrecision (line 332) | func TestCalculateIntradaySeries_VolumePrecision(t *testing.T) { function TestIsStaleData_NormalData (line 352) | func TestIsStaleData_NormalData(t *testing.T) { function TestIsStaleData_PriceFreezeWithZeroVolume (line 369) | func TestIsStaleData_PriceFreezeWithZeroVolume(t *testing.T) { function TestIsStaleData_PriceFreezeWithVolume (line 386) | func TestIsStaleData_PriceFreezeWithVolume(t *testing.T) { function TestIsStaleData_InsufficientData (line 403) | func TestIsStaleData_InsufficientData(t *testing.T) { function TestIsStaleData_ExactlyFiveKlines (line 418) | func TestIsStaleData_ExactlyFiveKlines(t *testing.T) { function TestIsStaleData_WithinTolerance (line 449) | func TestIsStaleData_WithinTolerance(t *testing.T) { function TestIsStaleData_MixedScenario (line 472) | func TestIsStaleData_MixedScenario(t *testing.T) { function TestIsStaleData_EmptyKlines (line 494) | func TestIsStaleData_EmptyKlines(t *testing.T) { function TestCalculateDonchian (line 504) | func TestCalculateDonchian(t *testing.T) { function TestCalculateDonchian_PartialPeriod (line 524) | func TestCalculateDonchian_PartialPeriod(t *testing.T) { function TestCalculateDonchian_InvalidPeriod (line 541) | func TestCalculateDonchian_InvalidPeriod(t *testing.T) { function TestCalculateBoxData (line 559) | func TestCalculateBoxData(t *testing.T) { FILE: market/historical.go constant binanceFuturesKlinesURL (line 12) | binanceFuturesKlinesURL = "https://fapi.binance.com/fapi/v1/klines" constant binanceMaxKlineLimit (line 13) | binanceMaxKlineLimit = 1500 function GetKlinesRange (line 17) | func GetKlinesRange(symbol string, timeframe string, start, end time.Tim... FILE: market/timeframe.go function NormalizeTimeframe (line 26) | func NormalizeTimeframe(tf string) (string, error) { function TFDuration (line 38) | func TFDuration(tf string) (time.Duration, error) { function MustNormalizeTimeframe (line 47) | func MustNormalizeTimeframe(tf string) string { function SupportedTimeframes (line 56) | func SupportedTimeframes() []string { FILE: market/types.go type Data (line 6) | type Data struct type KlineBar (line 23) | type KlineBar struct type TimeframeSeriesData (line 33) | type TimeframeSeriesData struct type OIData (line 51) | type OIData struct type IntradayData (line 57) | type IntradayData struct type LongerTermData (line 68) | type LongerTermData struct type ExchangeInfo (line 80) | type ExchangeInfo struct type SymbolInfo (line 84) | type SymbolInfo struct type Kline (line 94) | type Kline struct type KlineResponse (line 108) | type KlineResponse type PriceTicker (line 110) | type PriceTicker struct type Ticker24hr (line 115) | type Ticker24hr struct type SymbolFeatures (line 124) | type SymbolFeatures struct type Alert (line 145) | type Alert struct type Config (line 154) | type Config struct type AlertThresholds (line 160) | type AlertThresholds struct type CleanupConfig (line 167) | type CleanupConfig struct type BoxData (line 192) | type BoxData struct type RegimeLevel (line 210) | type RegimeLevel constant RegimeLevelNarrow (line 213) | RegimeLevelNarrow RegimeLevel = "narrow" constant RegimeLevelStandard (line 214) | RegimeLevelStandard RegimeLevel = "standard" constant RegimeLevelWide (line 215) | RegimeLevelWide RegimeLevel = "wide" constant RegimeLevelVolatile (line 216) | RegimeLevelVolatile RegimeLevel = "volatile" constant RegimeLevelTrending (line 217) | RegimeLevelTrending RegimeLevel = "trending" type BreakoutLevel (line 221) | type BreakoutLevel constant BreakoutNone (line 224) | BreakoutNone BreakoutLevel = "none" constant BreakoutShort (line 225) | BreakoutShort BreakoutLevel = "short" constant BreakoutMid (line 226) | BreakoutMid BreakoutLevel = "mid" constant BreakoutLong (line 227) | BreakoutLong BreakoutLevel = "long" type GridDirection (line 231) | type GridDirection method GetBuySellRatio (line 243) | func (d GridDirection) GetBuySellRatio(biasRatio float64) (buyRatio, s... constant GridDirectionNeutral (line 234) | GridDirectionNeutral GridDirection = "neutral" constant GridDirectionLong (line 235) | GridDirectionLong GridDirection = "long" constant GridDirectionShort (line 236) | GridDirectionShort GridDirection = "short" constant GridDirectionLongBias (line 237) | GridDirectionLongBias GridDirection = "long_bias" constant GridDirectionShortBias (line 238) | GridDirectionShortBias GridDirection = "short_bias" FILE: mcp/client.go constant ProviderCustom (line 16) | ProviderCustom = "custom" constant MCPClientTemperature (line 18) | MCPClientTemperature = 0.5 type TokenUsage (line 46) | type TokenUsage struct method Channel (line 56) | func (u TokenUsage) Channel() string { type Client (line 68) | type Client struct method SetAPIKey (line 148) | func (client *Client) SetAPIKey(apiKey, apiURL, customModel string) { method SetTimeout (line 164) | func (client *Client) SetTimeout(timeout time.Duration) { method CallWithMessages (line 169) | func (client *Client) CallWithMessages(systemPrompt, userPrompt string... method SetAuthHeader (line 209) | func (client *Client) SetAuthHeader(reqHeader http.Header) { method BuildMCPRequestBody (line 213) | func (client *Client) BuildMCPRequestBody(systemPrompt, userPrompt str... method MarshalRequestBody (line 256) | func (client *Client) MarshalRequestBody(requestBody map[string]any) (... method ParseMCPResponse (line 264) | func (client *Client) ParseMCPResponse(body []byte) (string, error) { method ParseMCPResponseFull (line 274) | func (client *Client) ParseMCPResponseFull(body []byte) (*LLMResponse,... method BuildUrl (line 315) | func (client *Client) BuildUrl() string { method BuildRequest (line 322) | func (client *Client) BuildRequest(url string, jsonData []byte) (*http... method Call (line 338) | func (client *Client) Call(systemPrompt, userPrompt string) (string, e... method String (line 392) | func (client *Client) String() string { method IsRetryableError (line 398) | func (client *Client) IsRetryableError(err error) bool { method CallWithRequest (line 414) | func (client *Client) CallWithRequest(req *Request) (string, error) { method CallWithRequestFull (line 460) | func (client *Client) CallWithRequestFull(req *Request) (*LLMResponse,... method callWithRequestFull (line 491) | func (client *Client) callWithRequestFull(req *Request) (*LLMResponse,... method callWithRequest (line 524) | func (client *Client) callWithRequest(req *Request) (string, error) { method BuildRequestBodyFromRequest (line 568) | func (client *Client) BuildRequestBodyFromRequest(req *Request) map[st... method CallWithRequestStream (line 665) | func (client *Client) CallWithRequestStream(req *Request, onChunk func... function New (line 89) | func New() AIClient { function NewClient (line 112) | func NewClient(opts ...ClientOption) AIClient { function ParseSSEStream (line 740) | func ParseSSEStream(body io.Reader, onChunk func(string), onLine func())... FILE: mcp/client_test.go function TestNewClient_Default (line 14) | func TestNewClient_Default(t *testing.T) { function TestNewClient_WithOptions (line 43) | func TestNewClient_WithOptions(t *testing.T) { function TestClient_CallWithMessages_Success (line 78) | func TestClient_CallWithMessages_Success(t *testing.T) { function TestClient_CallWithMessages_NoAPIKey (line 117) | func TestClient_CallWithMessages_NoAPIKey(t *testing.T) { function TestClient_CallWithMessages_HTTPError (line 131) | func TestClient_CallWithMessages_HTTPError(t *testing.T) { function TestClient_Retry_Success (line 153) | func TestClient_Retry_Success(t *testing.T) { function TestClient_Retry_NonRetryableError (line 213) | func TestClient_Retry_NonRetryableError(t *testing.T) { function TestClient_BuildMCPRequestBody (line 241) | func TestClient_BuildMCPRequestBody(t *testing.T) { function TestClient_BuildUrl (line 273) | func TestClient_BuildUrl(t *testing.T) { function TestClient_SetAuthHeader (line 311) | func TestClient_SetAuthHeader(t *testing.T) { function TestClient_IsRetryableError (line 324) | func TestClient_IsRetryableError(t *testing.T) { function TestClient_SetTimeout (line 374) | func TestClient_SetTimeout(t *testing.T) { function TestClient_String (line 390) | func TestClient_String(t *testing.T) { function contains (line 408) | func contains(s, substr string) bool { function findSubstring (line 412) | func findSubstring(s, substr string) bool { FILE: mcp/config.go type Config (line 14) | type Config struct function DefaultConfig (line 41) | func DefaultConfig() *Config { function getEnvInt (line 58) | func getEnvInt(key string, defaultValue int) int { function getEnvString (line 68) | func getEnvString(key string, defaultValue string) string { FILE: mcp/config_usage_test.go function TestConfig_MaxRetries_IsUsed (line 17) | func TestConfig_MaxRetries_IsUsed(t *testing.T) { function TestConfig_Temperature_IsUsed (line 69) | func TestConfig_Temperature_IsUsed(t *testing.T) { function TestConfig_RetryWaitBase_IsUsed (line 124) | func TestConfig_RetryWaitBase_IsUsed(t *testing.T) { function TestConfig_RetryableErrors_IsUsed (line 188) | func TestConfig_RetryableErrors_IsUsed(t *testing.T) { function TestConfig_DefaultValues (line 242) | func TestConfig_DefaultValues(t *testing.T) { FILE: mcp/context_guard.go function estimateMessageTokens (line 11) | func estimateMessageTokens(messages []map[string]string) int { function estimateMessageTokensAny (line 23) | func estimateMessageTokensAny(messages []map[string]any) int { function truncateMessages (line 42) | func truncateMessages(messages []map[string]string, maxContext, maxToken... function truncateMessagesAny (line 97) | func truncateMessagesAny(messages []map[string]any, maxContext, maxToken... FILE: mcp/context_guard_test.go function TestEstimateMessageTokens (line 8) | func TestEstimateMessageTokens(t *testing.T) { function TestTruncateMessages_NoTruncationNeeded (line 25) | func TestTruncateMessages_NoTruncationNeeded(t *testing.T) { function TestTruncateMessages_NoLimit (line 39) | func TestTruncateMessages_NoLimit(t *testing.T) { function TestTruncateMessages_TruncatesOldest (line 52) | func TestTruncateMessages_TruncatesOldest(t *testing.T) { function TestTruncateMessages_PreservesSystemMessages (line 86) | func TestTruncateMessages_PreservesSystemMessages(t *testing.T) { function TestTruncateMessages_KeepsAtLeastOneNonSystem (line 108) | func TestTruncateMessages_KeepsAtLeastOneNonSystem(t *testing.T) { FILE: mcp/examples_test.go function Example_backward_compatible (line 16) | func Example_backward_compatible() { function Example_deepseek_backward_compatible (line 26) | func Example_deepseek_backward_compatible() { function Example_new_client_basic (line 39) | func Example_new_client_basic() { function Example_new_client_with_options (line 56) | func Example_new_client_with_options() { type CustomLogger (line 75) | type CustomLogger struct method Debugf (line 77) | func (l *CustomLogger) Debugf(format string, args ...any) { method Infof (line 81) | func (l *CustomLogger) Infof(format string, args ...any) { method Warnf (line 85) | func (l *CustomLogger) Warnf(format string, args ...any) { method Errorf (line 89) | func (l *CustomLogger) Errorf(format string, args ...any) { function Example_custom_logger (line 93) | func Example_custom_logger() { function Example_no_logger_for_testing (line 106) | func Example_no_logger_for_testing() { function Example_custom_http_client (line 120) | func Example_custom_http_client() { function Example_deepseek_new_api (line 143) | func Example_deepseek_new_api() { function Example_qwen_new_api (line 165) | func Example_qwen_new_api() { function Example_trader_migration (line 186) | func Example_trader_migration() { type MockHTTPClient (line 221) | type MockHTTPClient struct method Do (line 225) | func (m *MockHTTPClient) Do(req *http.Request) (*http.Response, error) { function Example_testing_with_mock (line 233) | func Example_testing_with_mock() { function Example_environment_specific (line 246) | func Example_environment_specific() { function Example_real_world_usage (line 268) | func Example_real_world_usage() { FILE: mcp/hooks.go type ClientHooks (line 13) | type ClientHooks interface FILE: mcp/interface.go type ClientEmbedder (line 9) | type ClientEmbedder interface type AIClient (line 14) | type AIClient interface FILE: mcp/logger.go type Logger (line 6) | type Logger interface type noopLogger (line 14) | type noopLogger struct method Debugf (line 16) | func (l *noopLogger) Debugf(format string, args ...any) {} method Infof (line 17) | func (l *noopLogger) Infof(format string, args ...any) {} method Warnf (line 18) | func (l *noopLogger) Warnf(format string, args ...any) {} method Errorf (line 19) | func (l *noopLogger) Errorf(format string, args ...any) {} function NewNoopLogger (line 22) | func NewNoopLogger() Logger { FILE: mcp/mock_test.go type MockLogger (line 17) | type MockLogger struct method Debugf (line 38) | func (m *MockLogger) Debugf(format string, args ...any) { method Infof (line 42) | func (m *MockLogger) Infof(format string, args ...any) { method Warnf (line 46) | func (m *MockLogger) Warnf(format string, args ...any) { method Errorf (line 50) | func (m *MockLogger) Errorf(format string, args ...any) { method log (line 54) | func (m *MockLogger) log(level, format string, args ...any) { method GetLogs (line 72) | func (m *MockLogger) GetLogs() []LogEntry { method GetLogsByLevel (line 79) | func (m *MockLogger) GetLogsByLevel(level string) []LogEntry { method Clear (line 93) | func (m *MockLogger) Clear() { method HasLog (line 100) | func (m *MockLogger) HasLog(level, message string) bool { type LogEntry (line 24) | type LogEntry struct function NewMockLogger (line 31) | func NewMockLogger() *MockLogger { type MockHTTPClient (line 117) | type MockHTTPClient struct method ToHTTPClient (line 138) | func (m *MockHTTPClient) ToHTTPClient() *http.Client { method RoundTrip (line 145) | func (m *MockHTTPClient) RoundTrip(req *http.Request) (*http.Response,... method GetRequests (line 173) | func (m *MockHTTPClient) GetRequests() []*http.Request { method GetLastRequest (line 180) | func (m *MockHTTPClient) GetLastRequest() *http.Request { method Reset (line 191) | func (m *MockHTTPClient) Reset() { method SetSuccessResponse (line 198) | func (m *MockHTTPClient) SetSuccessResponse(content string) { method SetErrorResponse (line 208) | func (m *MockHTTPClient) SetErrorResponse(statusCode int, message stri... method SetNetworkError (line 218) | func (m *MockHTTPClient) SetNetworkError(err error) { function NewMockHTTPClient (line 130) | func NewMockHTTPClient() *MockHTTPClient { type MockClientHooks (line 230) | type MockClientHooks struct method BuildMCPRequestBody (line 250) | func (m *MockClientHooks) BuildMCPRequestBody(systemPrompt, userPrompt... method BuildUrl (line 264) | func (m *MockClientHooks) BuildUrl() string { method SetAuthHeader (line 272) | func (m *MockClientHooks) SetAuthHeader(headers http.Header) { method MarshalRequestBody (line 277) | func (m *MockClientHooks) MarshalRequestBody(body map[string]any) ([]b... method ParseMCPResponse (line 285) | func (m *MockClientHooks) ParseMCPResponse(body []byte) (string, error) { method ParseMCPResponseFull (line 293) | func (m *MockClientHooks) ParseMCPResponseFull(body []byte) (*LLMRespo... method IsRetryableError (line 301) | func (m *MockClientHooks) IsRetryableError(err error) bool { method BuildRequest (line 309) | func (m *MockClientHooks) BuildRequest(url string, jsonData []byte) (*... method Call (line 316) | func (m *MockClientHooks) Call(systemPrompt, userPrompt string) (strin... method BuildRequestBodyFromRequest (line 320) | func (m *MockClientHooks) BuildRequestBodyFromRequest(req *Request) ma... function NewMockClientHooks (line 246) | func NewMockClientHooks() *MockClientHooks { FILE: mcp/options.go type ClientOption (line 9) | type ClientOption function WithLogger (line 19) | func WithLogger(logger Logger) ClientOption { function WithHTTPClient (line 34) | func WithHTTPClient(client *http.Client) ClientOption { function WithTimeout (line 48) | func WithTimeout(timeout time.Duration) ClientOption { function WithMaxRetries (line 59) | func WithMaxRetries(maxRetries int) ClientOption { function WithRetryWaitBase (line 69) | func WithRetryWaitBase(waitTime time.Duration) ClientOption { function WithMaxTokens (line 83) | func WithMaxTokens(maxTokens int) ClientOption { function WithMaxContext (line 96) | func WithMaxContext(maxContext int) ClientOption { function WithTemperature (line 106) | func WithTemperature(temperature float64) ClientOption { function WithAPIKey (line 117) | func WithAPIKey(apiKey string) ClientOption { function WithBaseURL (line 124) | func WithBaseURL(baseURL string) ClientOption { function WithModel (line 131) | func WithModel(model string) ClientOption { function WithProvider (line 138) | func WithProvider(provider string) ClientOption { function WithUseFullURL (line 145) | func WithUseFullURL(useFullURL bool) ClientOption { function WithDeepSeekConfig (line 159) | func WithDeepSeekConfig(apiKey string) ClientOption { function WithQwenConfig (line 172) | func WithQwenConfig(apiKey string) ClientOption { function WithMiniMaxConfig (line 186) | func WithMiniMaxConfig(apiKey string) ClientOption { FILE: mcp/options_test.go function TestWithProvider (line 13) | func TestWithProvider(t *testing.T) { function TestWithAPIKey (line 22) | func TestWithAPIKey(t *testing.T) { function TestWithBaseURL (line 31) | func TestWithBaseURL(t *testing.T) { function TestWithModel (line 40) | func TestWithModel(t *testing.T) { function TestWithMaxTokens (line 49) | func TestWithMaxTokens(t *testing.T) { function TestWithTemperature (line 58) | func TestWithTemperature(t *testing.T) { function TestWithUseFullURL (line 67) | func TestWithUseFullURL(t *testing.T) { function TestWithMaxRetries (line 76) | func TestWithMaxRetries(t *testing.T) { function TestWithTimeout (line 85) | func TestWithTimeout(t *testing.T) { function TestWithLogger (line 94) | func TestWithLogger(t *testing.T) { function TestWithHTTPClient (line 104) | func TestWithHTTPClient(t *testing.T) { function TestWithDeepSeekConfig (line 122) | func TestWithDeepSeekConfig(t *testing.T) { function TestWithQwenConfig (line 143) | func TestWithQwenConfig(t *testing.T) { function TestMultipleOptions (line 168) | func TestMultipleOptions(t *testing.T) { function TestOptionsOverride (line 223) | func TestOptionsOverride(t *testing.T) { function TestOptionsWithNewClient (line 256) | func TestOptionsWithNewClient(t *testing.T) { FILE: mcp/payment/blockrun_base.go constant DefaultBlockRunBaseURL (line 22) | DefaultBlockRunBaseURL = "https://blockrun.ai" constant DefaultBlockRunModel (line 23) | DefaultBlockRunModel = "gpt-5.4" constant BlockRunChatEndpoint (line 24) | BlockRunChatEndpoint = "/api/v1/chat/completions" constant BaseUSDCContract (line 25) | BaseUSDCContract = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" constant BaseChainID (line 26) | BaseChainID int64 = 8453 constant BaseNetwork (line 27) | BaseNetwork = "eip155:8453" function init (line 36) | func init() { function keccak256String (line 42) | func keccak256String(s string) []byte { function keccak256Bytes (line 48) | func keccak256Bytes(data ...[]byte) []byte { type BlockRunBaseClient (line 57) | type BlockRunBaseClient struct method BaseClient (line 62) | func (c *BlockRunBaseClient) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 89) | func (c *BlockRunBaseClient) SetAPIKey(apiKey string, customURL string... method SetAuthHeader (line 108) | func (c *BlockRunBaseClient) SetAuthHeader(h http.Header) { X402SetAut... method Call (line 110) | func (c *BlockRunBaseClient) Call(systemPrompt, userPrompt string) (st... method CallWithRequestFull (line 114) | func (c *BlockRunBaseClient) CallWithRequestFull(req *mcp.Request) (*m... method signPayment (line 119) | func (c *BlockRunBaseClient) signPayment(paymentHeaderB64 string) (str... method BuildUrl (line 346) | func (c *BlockRunBaseClient) BuildUrl() string { method BuildRequest (line 350) | func (c *BlockRunBaseClient) BuildRequest(url string, jsonData []byte)... function NewBlockRunBaseClient (line 65) | func NewBlockRunBaseClient() mcp.AIClient { function NewBlockRunBaseClientWithOptions (line 70) | func NewBlockRunBaseClientWithOptions(opts ...mcp.ClientOption) mcp.AICl... function SignX402Payment (line 125) | func SignX402Payment(privateKey *ecdsa.PrivateKey, senderAddr string, op... function buildDomainSeparatorDynamic (line 236) | func buildDomainSeparatorDynamic(name, version, network, asset string) (... function buildTransferWithAuthHashDynamic (line 268) | func buildTransferWithAuthHashDynamic(from, to string, value *big.Int, v... function hexToAddress (line 297) | func hexToAddress(s string) ([]byte, error) { function hexToBytes32 (line 309) | func hexToBytes32(s string) ([]byte, error) { function parseBigInt (line 321) | func parseBigInt(s string) (*big.Int, error) { function leftPad32 (line 336) | func leftPad32(b []byte) []byte { FILE: mcp/payment/blockrun_sol.go constant DefaultBlockRunSolURL (line 20) | DefaultBlockRunSolURL = "https://sol.blockrun.ai" constant SolanaUSDCMint (line 21) | SolanaUSDCMint = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" constant SolanaNetwork (line 22) | SolanaNetwork = "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp" constant SolanaMainnetRPC (line 23) | SolanaMainnetRPC = "https://api.mainnet-beta.solana.com" constant computeUnitLimit (line 26) | computeUnitLimit = uint32(8000) constant computeUnitPrice (line 27) | computeUnitPrice = uint64(1) function init (line 30) | func init() { type BlockRunSolClient (line 37) | type BlockRunSolClient struct method BaseClient (line 42) | func (c *BlockRunSolClient) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 69) | func (c *BlockRunSolClient) SetAPIKey(apiKey string, customURL string,... method SetAuthHeader (line 87) | func (c *BlockRunSolClient) SetAuthHeader(h http.Header) { X402SetAuth... method Call (line 89) | func (c *BlockRunSolClient) Call(systemPrompt, userPrompt string) (str... method CallWithRequestFull (line 93) | func (c *BlockRunSolClient) CallWithRequestFull(req *mcp.Request) (*mc... method signSolanaPayment (line 98) | func (c *BlockRunSolClient) signSolanaPayment(paymentHeaderB64 string)... method buildSolanaTransferTx (line 187) | func (c *BlockRunSolClient) buildSolanaTransferTx(recipient, feePayer,... method BuildUrl (line 270) | func (c *BlockRunSolClient) BuildUrl() string { method BuildRequest (line 274) | func (c *BlockRunSolClient) BuildRequest(url string, jsonData []byte) ... function NewBlockRunSolClient (line 45) | func NewBlockRunSolClient() mcp.AIClient { function NewBlockRunSolClientWithOptions (line 50) | func NewBlockRunSolClientWithOptions(opts ...mcp.ClientOption) mcp.AICli... FILE: mcp/payment/claw402.go constant DefaultClaw402URL (line 15) | DefaultClaw402URL = "https://claw402.ai" constant DefaultClaw402Model (line 16) | DefaultClaw402Model = "deepseek" function init (line 44) | func init() { type Claw402Client (line 53) | type Claw402Client struct method BaseClient (line 59) | func (c *Claw402Client) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 86) | func (c *Claw402Client) SetAPIKey(apiKey string, _ string, customModel... method resolveEndpoint (line 114) | func (c *Claw402Client) resolveEndpoint() string { method SetAuthHeader (line 125) | func (c *Claw402Client) SetAuthHeader(h http.Header) { X402SetAuthHead... method Call (line 127) | func (c *Claw402Client) Call(systemPrompt, userPrompt string) (string,... method CallWithRequestFull (line 131) | func (c *Claw402Client) CallWithRequestFull(req *mcp.Request) (*mcp.LL... method signPayment (line 136) | func (c *Claw402Client) signPayment(paymentHeaderB64 string) (string, ... method BuildMCPRequestBody (line 142) | func (c *Claw402Client) BuildMCPRequestBody(systemPrompt, userPrompt s... method BuildRequestBodyFromRequest (line 149) | func (c *Claw402Client) BuildRequestBodyFromRequest(req *mcp.Request) ... method ParseMCPResponse (line 156) | func (c *Claw402Client) ParseMCPResponse(body []byte) (string, error) { method ParseMCPResponseFull (line 163) | func (c *Claw402Client) ParseMCPResponseFull(body []byte) (*mcp.LLMRes... method BuildUrl (line 171) | func (c *Claw402Client) BuildUrl() string { method BuildRequest (line 175) | func (c *Claw402Client) BuildRequest(url string, jsonData []byte) (*ht... function NewClaw402Client (line 62) | func NewClaw402Client() mcp.AIClient { function NewClaw402ClientWithOptions (line 67) | func NewClaw402ClientWithOptions(opts ...mcp.ClientOption) mcp.AIClient { FILE: mcp/payment/x402.go constant X402MaxPaymentRetries (line 22) | X402MaxPaymentRetries = 5 constant X402RetryBaseWait (line 25) | X402RetryBaseWait = 3 * time.Second constant X402Timeout (line 30) | X402Timeout = 5 * time.Minute type X402v2PaymentRequired (line 36) | type X402v2PaymentRequired struct type X402AcceptOption (line 43) | type X402AcceptOption struct type X402Resource (line 54) | type X402Resource struct type X402SignFunc (line 62) | type X402SignFunc function X402DecodeHeader (line 68) | func X402DecodeHeader(b64 string) ([]byte, error) { function SignBasePaymentHeader (line 81) | func SignBasePaymentHeader(privateKey *ecdsa.PrivateKey, paymentHeaderB6... function DoX402Request (line 104) | func DoX402Request( function DoX402RequestStream (line 239) | func DoX402RequestStream( constant x402StreamIdleTimeout (line 372) | x402StreamIdleTimeout = 90 * time.Second function X402CallStream (line 380) | func X402CallStream(c *mcp.Client, signFn X402SignFunc, tag string, syst... function X402BuildRequest (line 467) | func X402BuildRequest(url string, jsonData []byte) (*http.Request, error) { function X402SetAuthHeader (line 478) | func X402SetAuthHeader(_ http.Header) {} function X402Call (line 481) | func X402Call(c *mcp.Client, signFn X402SignFunc, tag string, systemProm... function X402CallFull (line 500) | func X402CallFull(c *mcp.Client, signFn X402SignFunc, tag string, req *m... FILE: mcp/provider/claude.go constant DefaultClaudeBaseURL (line 28) | DefaultClaudeBaseURL = "https://api.anthropic.com/v1" constant DefaultClaudeModel (line 29) | DefaultClaudeModel = "claude-opus-4-6" function init (line 32) | func init() { type ClaudeClient (line 41) | type ClaudeClient struct method BaseClient (line 45) | func (c *ClaudeClient) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 68) | func (c *ClaudeClient) SetAPIKey(apiKey, customURL, customModel string) { method SetAuthHeader (line 84) | func (c *ClaudeClient) SetAuthHeader(h http.Header) { method BuildUrl (line 90) | func (c *ClaudeClient) BuildUrl() string { method BuildMCPRequestBody (line 96) | func (c *ClaudeClient) BuildMCPRequestBody(systemPrompt, userPrompt st... method BuildRequestBodyFromRequest (line 109) | func (c *ClaudeClient) BuildRequestBodyFromRequest(req *mcp.Request) m... method ParseMCPResponse (line 227) | func (c *ClaudeClient) ParseMCPResponse(body []byte) (string, error) { method ParseMCPResponseFull (line 237) | func (c *ClaudeClient) ParseMCPResponseFull(body []byte) (*mcp.LLMResp... function NewClaudeClient (line 48) | func NewClaudeClient() mcp.AIClient { function NewClaudeClientWithOptions (line 53) | func NewClaudeClientWithOptions(opts ...mcp.ClientOption) mcp.AIClient { function ConvertMessagesToAnthropic (line 165) | func ConvertMessagesToAnthropic(msgs []mcp.Message) []map[string]any { FILE: mcp/provider/deepseek.go function init (line 9) | func init() { type DeepSeekClient (line 15) | type DeepSeekClient struct method BaseClient (line 19) | func (c *DeepSeekClient) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 47) | func (dsClient *DeepSeekClient) SetAPIKey(apiKey string, customURL str... method SetAuthHeader (line 67) | func (dsClient *DeepSeekClient) SetAuthHeader(reqHeaders http.Header) { function NewDeepSeekClient (line 24) | func NewDeepSeekClient() mcp.AIClient { function NewDeepSeekClientWithOptions (line 29) | func NewDeepSeekClientWithOptions(opts ...mcp.ClientOption) mcp.AIClient { FILE: mcp/provider/gemini.go constant DefaultGeminiBaseURL (line 10) | DefaultGeminiBaseURL = "https://generativelanguage.googleapis.com/v1beta... constant DefaultGeminiModel (line 11) | DefaultGeminiModel = "gemini-3-pro-preview" function init (line 14) | func init() { type GeminiClient (line 20) | type GeminiClient struct method BaseClient (line 24) | func (c *GeminiClient) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 50) | func (c *GeminiClient) SetAPIKey(apiKey string, customURL string, cust... method SetAuthHeader (line 71) | func (c *GeminiClient) SetAuthHeader(reqHeaders http.Header) { function NewGeminiClient (line 27) | func NewGeminiClient() mcp.AIClient { function NewGeminiClientWithOptions (line 32) | func NewGeminiClientWithOptions(opts ...mcp.ClientOption) mcp.AIClient { FILE: mcp/provider/grok.go constant DefaultGrokBaseURL (line 10) | DefaultGrokBaseURL = "https://api.x.ai/v1" constant DefaultGrokModel (line 11) | DefaultGrokModel = "grok-3-latest" function init (line 14) | func init() { type GrokClient (line 20) | type GrokClient struct method BaseClient (line 24) | func (c *GrokClient) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 50) | func (c *GrokClient) SetAPIKey(apiKey string, customURL string, custom... method SetAuthHeader (line 71) | func (c *GrokClient) SetAuthHeader(reqHeaders http.Header) { function NewGrokClient (line 27) | func NewGrokClient() mcp.AIClient { function NewGrokClientWithOptions (line 32) | func NewGrokClientWithOptions(opts ...mcp.ClientOption) mcp.AIClient { FILE: mcp/provider/kimi.go constant DefaultKimiBaseURL (line 10) | DefaultKimiBaseURL = "https://api.moonshot.ai/v1" constant DefaultKimiModel (line 11) | DefaultKimiModel = "moonshot-v1-auto" function init (line 14) | func init() { type KimiClient (line 20) | type KimiClient struct method BaseClient (line 24) | func (c *KimiClient) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 50) | func (c *KimiClient) SetAPIKey(apiKey string, customURL string, custom... method SetAuthHeader (line 71) | func (c *KimiClient) SetAuthHeader(reqHeaders http.Header) { function NewKimiClient (line 27) | func NewKimiClient() mcp.AIClient { function NewKimiClientWithOptions (line 32) | func NewKimiClientWithOptions(opts ...mcp.ClientOption) mcp.AIClient { FILE: mcp/provider/minimax.go constant DefaultMiniMaxBaseURL (line 10) | DefaultMiniMaxBaseURL = "https://api.minimax.io/v1" constant DefaultMiniMaxModel (line 11) | DefaultMiniMaxModel = "MiniMax-M2.5" function init (line 14) | func init() { type MiniMaxClient (line 20) | type MiniMaxClient struct method BaseClient (line 24) | func (c *MiniMaxClient) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 50) | func (c *MiniMaxClient) SetAPIKey(apiKey string, customURL string, cus... method SetAuthHeader (line 71) | func (c *MiniMaxClient) SetAuthHeader(reqHeaders http.Header) { function NewMiniMaxClient (line 27) | func NewMiniMaxClient() mcp.AIClient { function NewMiniMaxClientWithOptions (line 32) | func NewMiniMaxClientWithOptions(opts ...mcp.ClientOption) mcp.AIClient { FILE: mcp/provider/openai.go constant DefaultOpenAIBaseURL (line 10) | DefaultOpenAIBaseURL = "https://api.openai.com/v1" constant DefaultOpenAIModel (line 11) | DefaultOpenAIModel = "gpt-5.4" function init (line 14) | func init() { type OpenAIClient (line 20) | type OpenAIClient struct method BaseClient (line 24) | func (c *OpenAIClient) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 50) | func (c *OpenAIClient) SetAPIKey(apiKey string, customURL string, cust... method SetAuthHeader (line 71) | func (c *OpenAIClient) SetAuthHeader(reqHeaders http.Header) { function NewOpenAIClient (line 27) | func NewOpenAIClient() mcp.AIClient { function NewOpenAIClientWithOptions (line 32) | func NewOpenAIClientWithOptions(opts ...mcp.ClientOption) mcp.AIClient { FILE: mcp/provider/options_test.go function TestOptionsWithDeepSeekClient (line 9) | func TestOptionsWithDeepSeekClient(t *testing.T) { function TestOptionsWithQwenClient (line 47) | func TestOptionsWithQwenClient(t *testing.T) { FILE: mcp/provider/qwen.go constant DefaultQwenBaseURL (line 10) | DefaultQwenBaseURL = "https://dashscope.aliyuncs.com/compatible-mode/v1" constant DefaultQwenModel (line 11) | DefaultQwenModel = "qwen3-max" function init (line 14) | func init() { type QwenClient (line 20) | type QwenClient struct method BaseClient (line 24) | func (c *QwenClient) BaseClient() *mcp.Client { return c.Client } method SetAPIKey (line 52) | func (qwenClient *QwenClient) SetAPIKey(apiKey string, customURL strin... method SetAuthHeader (line 72) | func (qwenClient *QwenClient) SetAuthHeader(reqHeaders http.Header) { function NewQwenClient (line 29) | func NewQwenClient() mcp.AIClient { function NewQwenClientWithOptions (line 34) | func NewQwenClientWithOptions(opts ...mcp.ClientOption) mcp.AIClient { FILE: mcp/providers.go constant ProviderDeepSeek (line 7) | ProviderDeepSeek = "deepseek" constant ProviderOpenAI (line 8) | ProviderOpenAI = "openai" constant ProviderClaude (line 9) | ProviderClaude = "claude" constant ProviderQwen (line 10) | ProviderQwen = "qwen" constant ProviderGemini (line 11) | ProviderGemini = "gemini" constant ProviderGrok (line 12) | ProviderGrok = "grok" constant ProviderKimi (line 13) | ProviderKimi = "kimi" constant ProviderMiniMax (line 14) | ProviderMiniMax = "minimax" constant ProviderBlockRunBase (line 16) | ProviderBlockRunBase = "blockrun-base" constant ProviderBlockRunSol (line 17) | ProviderBlockRunSol = "blockrun-sol" constant ProviderClaw402 (line 18) | ProviderClaw402 = "claw402" constant DefaultDeepSeekBaseURL (line 21) | DefaultDeepSeekBaseURL = "https://api.deepseek.com" constant DefaultDeepSeekModel (line 22) | DefaultDeepSeekModel = "deepseek-chat" constant DefaultQwenBaseURL (line 25) | DefaultQwenBaseURL = "https://dashscope.aliyuncs.com/compatible-mode/v1" constant DefaultQwenModel (line 26) | DefaultQwenModel = "qwen3-max" constant DefaultMiniMaxBaseURL (line 29) | DefaultMiniMaxBaseURL = "https://api.minimax.io/v1" constant DefaultMiniMaxModel (line 30) | DefaultMiniMaxModel = "MiniMax-M2.5" FILE: mcp/registry.go function RegisterProvider (line 8) | func RegisterProvider(name string, factory func(...ClientOption) AIClien... function NewAIClientByProvider (line 14) | func NewAIClientByProvider(name string, opts ...ClientOption) AIClient { FILE: mcp/request.go type Message (line 6) | type Message struct type ToolCall (line 14) | type ToolCall struct type ToolCallFunction (line 21) | type ToolCallFunction struct type LLMResponse (line 29) | type LLMResponse struct type Tool (line 35) | type Tool struct type FunctionDef (line 41) | type FunctionDef struct type Request (line 48) | type Request struct function NewMessage (line 68) | func NewMessage(role, content string) Message { function NewSystemMessage (line 76) | func NewSystemMessage(content string) Message { function NewUserMessage (line 84) | func NewUserMessage(content string) Message { function NewAssistantMessage (line 92) | func NewAssistantMessage(content string) Message { FILE: mcp/request_builder.go type RequestBuilder (line 8) | type RequestBuilder struct method WithModel (line 42) | func (b *RequestBuilder) WithModel(model string) *RequestBuilder { method WithStream (line 48) | func (b *RequestBuilder) WithStream(stream bool) *RequestBuilder { method WithSystemPrompt (line 58) | func (b *RequestBuilder) WithSystemPrompt(prompt string) *RequestBuild... method WithUserPrompt (line 66) | func (b *RequestBuilder) WithUserPrompt(prompt string) *RequestBuilder { method AddSystemMessage (line 74) | func (b *RequestBuilder) AddSystemMessage(content string) *RequestBuil... method AddUserMessage (line 79) | func (b *RequestBuilder) AddUserMessage(content string) *RequestBuilder { method AddAssistantMessage (line 84) | func (b *RequestBuilder) AddAssistantMessage(content string) *RequestB... method AddMessage (line 92) | func (b *RequestBuilder) AddMessage(role, content string) *RequestBuil... method AddMessages (line 100) | func (b *RequestBuilder) AddMessages(messages ...Message) *RequestBuil... method AddConversationHistory (line 106) | func (b *RequestBuilder) AddConversationHistory(history []Message) *Re... method ClearMessages (line 112) | func (b *RequestBuilder) ClearMessages() *RequestBuilder { method WithTemperature (line 123) | func (b *RequestBuilder) WithTemperature(t float64) *RequestBuilder { method WithMaxTokens (line 138) | func (b *RequestBuilder) WithMaxTokens(tokens int) *RequestBuilder { method WithTopP (line 147) | func (b *RequestBuilder) WithTopP(p float64) *RequestBuilder { method WithFrequencyPenalty (line 156) | func (b *RequestBuilder) WithFrequencyPenalty(penalty float64) *Reques... method WithPresencePenalty (line 165) | func (b *RequestBuilder) WithPresencePenalty(penalty float64) *Request... method WithStopSequences (line 174) | func (b *RequestBuilder) WithStopSequences(sequences []string) *Reques... method AddStopSequence (line 180) | func (b *RequestBuilder) AddStopSequence(sequence string) *RequestBuil... method AddTool (line 192) | func (b *RequestBuilder) AddTool(tool Tool) *RequestBuilder { method AddFunction (line 198) | func (b *RequestBuilder) AddFunction(name, description string, paramet... method WithToolChoice (line 215) | func (b *RequestBuilder) WithToolChoice(choice string) *RequestBuilder { method Build (line 225) | func (b *RequestBuilder) Build() (*Request, error) { method MustBuild (line 263) | func (b *RequestBuilder) MustBuild() *Request { function NewRequestBuilder (line 30) | func NewRequestBuilder() *RequestBuilder { function ForChat (line 276) | func ForChat() *RequestBuilder { function ForCodeGeneration (line 288) | func ForCodeGeneration() *RequestBuilder { function ForCreativeWriting (line 302) | func ForCreativeWriting() *RequestBuilder { FILE: mcp/request_builder_test.go function TestRequestBuilder_BasicUsage (line 12) | func TestRequestBuilder_BasicUsage(t *testing.T) { function TestRequestBuilder_EmptyMessages (line 35) | func TestRequestBuilder_EmptyMessages(t *testing.T) { function TestRequestBuilder_MultipleMessages (line 51) | func TestRequestBuilder_MultipleMessages(t *testing.T) { function TestRequestBuilder_AddConversationHistory (line 71) | func TestRequestBuilder_AddConversationHistory(t *testing.T) { function TestRequestBuilder_WithTemperature (line 91) | func TestRequestBuilder_WithTemperature(t *testing.T) { function TestRequestBuilder_WithMaxTokens (line 106) | func TestRequestBuilder_WithMaxTokens(t *testing.T) { function TestRequestBuilder_WithTopP (line 121) | func TestRequestBuilder_WithTopP(t *testing.T) { function TestRequestBuilder_WithPenalties (line 136) | func TestRequestBuilder_WithPenalties(t *testing.T) { function TestRequestBuilder_WithStopSequences (line 152) | func TestRequestBuilder_WithStopSequences(t *testing.T) { function TestRequestBuilder_AddTool (line 171) | func TestRequestBuilder_AddTool(t *testing.T) { function TestRequestBuilder_AddFunction (line 205) | func TestRequestBuilder_AddFunction(t *testing.T) { function TestRequestBuilder_ForChat (line 235) | func TestRequestBuilder_ForChat(t *testing.T) { function TestRequestBuilder_ForCodeGeneration (line 257) | func TestRequestBuilder_ForCodeGeneration(t *testing.T) { function TestRequestBuilder_ForCreativeWriting (line 271) | func TestRequestBuilder_ForCreativeWriting(t *testing.T) { function TestClient_CallWithRequest_Success (line 293) | func TestClient_CallWithRequest_Success(t *testing.T) { function TestClient_CallWithRequest_MultiRound (line 345) | func TestClient_CallWithRequest_MultiRound(t *testing.T) { function TestClient_CallWithRequest_WithTools (line 386) | func TestClient_CallWithRequest_WithTools(t *testing.T) { function TestClient_CallWithRequest_NoAPIKey (line 430) | func TestClient_CallWithRequest_NoAPIKey(t *testing.T) { function TestClient_CallWithRequest_UsesClientModel (line 448) | func TestClient_CallWithRequest_UsesClientModel(t *testing.T) { FILE: provider/alpaca/kline.go constant DataAPIURL (line 15) | DataAPIURL = "https://data.alpaca.markets/v2" type Bar (line 19) | type Bar struct type BarsResponse (line 31) | type BarsResponse struct type Client (line 38) | type Client struct method GetBars (line 69) | func (c *Client) GetBars(ctx context.Context, symbol string, timeframe... function NewClient (line 45) | func NewClient() *Client { function NewClientWithKeys (line 57) | func NewClientWithKeys(apiKey, secretKey string) *Client { function MapTimeframe (line 134) | func MapTimeframe(interval string) string { FILE: provider/coinank/base_coin.go method ListCoin (line 10) | func (c *CoinankClient) ListCoin(ctx context.Context, productType coinan... method ListSymbols (line 33) | func (c *CoinankClient) ListSymbols(ctx context.Context, exchange coinan... type SymbolResp (line 56) | type SymbolResp struct FILE: provider/coinank/coinank_api/base_coin.go function BaseCoinSymbols (line 11) | func BaseCoinSymbols(ctx context.Context, exchangeName coinank_enum.Exch... type BaseCoinResponse (line 37) | type BaseCoinResponse struct FILE: provider/coinank/coinank_api/base_coin_test.go function TestBaseCoinSymbolsNoArgs (line 9) | func TestBaseCoinSymbolsNoArgs(t *testing.T) { function TestBaseCoinSymbolsBTC (line 21) | func TestBaseCoinSymbolsBTC(t *testing.T) { function TestBaseCoinSymbolsBTCUSDT (line 33) | func TestBaseCoinSymbolsBTCUSDT(t *testing.T) { FILE: provider/coinank/coinank_api/depth_ws.go constant MainDepthWsUrl (line 11) | MainDepthWsUrl = "wss://ws.coinank.com/wsDepth/wsKline" type DepthWs (line 13) | type DepthWs struct method Subscribe (line 32) | func (ws *DepthWs) Subscribe(symbol string, exchange coinank_enum.Exch... method UnSubscribe (line 50) | func (ws *DepthWs) UnSubscribe(symbol string, exchange coinank_enum.Ex... method Close (line 68) | func (ws *DepthWs) Close() error { function DepthWsConn (line 19) | func DepthWsConn(ctx context.Context) (*DepthWs, error) { function depth_ws (line 72) | func depth_ws(ctx context.Context) (*websocket.Conn, <-chan *WsResult[De... function depth_read (line 86) | func depth_read(conn *websocket.Conn, ch chan *WsResult[DepthV3]) { type DepthV3 (line 103) | type DepthV3 struct FILE: provider/coinank/coinank_api/depth_ws_test.go function TestDepthWs (line 12) | func TestDepthWs(t *testing.T) { FILE: provider/coinank/coinank_api/kline.go constant MainApiUrl (line 16) | MainApiUrl = "https://api.coinank.com" function Kline (line 19) | func Kline(ctx context.Context, symbol string, exchange coinank_enum.Exc... function get (line 55) | func get(ctx context.Context, path string, paramsMap map[string]string) ... FILE: provider/coinank/coinank_api/kline_test.go function TestKline (line 12) | func TestKline(t *testing.T) { function TestKlineDaily (line 24) | func TestKlineDaily(t *testing.T) { FILE: provider/coinank/coinank_api/kline_ws.go constant MainWsUrl (line 14) | MainWsUrl = "wss://ws.coinank.com/ws" type KlineWs (line 16) | type KlineWs struct method Subscribe (line 38) | func (ws *KlineWs) Subscribe(symbol string, exchange coinank_enum.Exch... method UnSubscribe (line 56) | func (ws *KlineWs) UnSubscribe(symbol string, exchange coinank_enum.Ex... method Close (line 74) | func (ws *KlineWs) Close() error { function WsConn (line 23) | func WsConn(ctx context.Context, needKline bool, needTicker bool) (*Klin... function ws (line 78) | func ws(ctx context.Context) (*websocket.Conn, <-chan string, error) { function read (line 92) | func read(conn *websocket.Conn, ch chan string) { function handleResponse (line 105) | func handleResponse(ch <-chan string, needKline bool, needTicker bool) (... function toInt64 (line 154) | func toInt64(v any) int64 { function toFloat64 (line 159) | func toFloat64(v any) float64 { type SubscribeInfo (line 173) | type SubscribeInfo struct type KlineTickers (line 178) | type KlineTickers struct type WsResult (line 198) | type WsResult struct FILE: provider/coinank/coinank_api/kline_ws_test.go function TestKlineWs (line 12) | func TestKlineWs(t *testing.T) { FILE: provider/coinank/coinank_enum/exchange.go type Exchange (line 3) | type Exchange constant Binance (line 6) | Binance Exchange = "Binance" constant Huobi (line 7) | Huobi Exchange = "Huobi" constant Okex (line 8) | Okex Exchange = "Okex" constant Bitmex (line 9) | Bitmex Exchange = "Bitmex" constant FTX (line 10) | FTX Exchange = "FTX" constant Bybit (line 11) | Bybit Exchange = "Bybit" constant Gate (line 12) | Gate Exchange = "Gate" constant Bitget (line 13) | Bitget Exchange = "Bitget" constant dYdX (line 14) | dYdX Exchange = "dYdX" constant Deribit (line 15) | Deribit Exchange = "Deribit" constant Kraken (line 16) | Kraken Exchange = "Kraken" constant Bitfinex (line 17) | Bitfinex Exchange = "Bitfinex" constant AAX (line 18) | AAX Exchange = "AAX" constant CME (line 19) | CME Exchange = "CME" constant Upbit (line 20) | Upbit Exchange = "Upbit" constant Coinbase (line 21) | Coinbase Exchange = "Coinbase" constant Hyperliquid (line 22) | Hyperliquid Exchange = "Hyperliquid" constant Bitunix (line 23) | Bitunix Exchange = "Bitunix" constant Aster (line 24) | Aster Exchange = "Aster" FILE: provider/coinank/coinank_enum/instrument_agg_sort_by.go type InstrumentAggSortBy (line 3) | type InstrumentAggSortBy constant OpenInterest (line 6) | OpenInterest InstrumentAggSortBy = "openInterest" constant Price (line 7) | Price InstrumentAggSortBy = "price" constant PriceChangeM5 (line 8) | PriceChangeM5 InstrumentAggSortBy = "priceChangeM5" constant PriceChangeM15 (line 9) | PriceChangeM15 InstrumentAggSortBy = "priceChangeM15" constant PriceChangeM30 (line 10) | PriceChangeM30 InstrumentAggSortBy = "priceChangeM30" constant PriceChangeH4 (line 11) | PriceChangeH4 InstrumentAggSortBy = "priceChangeH4" constant PriceChangeH24 (line 12) | PriceChangeH24 InstrumentAggSortBy = "priceChangeH24" constant PriceChangeH1 (line 13) | PriceChangeH1 InstrumentAggSortBy = "priceChangeH1" constant PriceChangeH6 (line 14) | PriceChangeH6 InstrumentAggSortBy = "priceChangeH6" constant PriceChangeH12 (line 15) | PriceChangeH12 InstrumentAggSortBy = "priceChangeH12" constant OpenInterestChM15 (line 16) | OpenInterestChM15 InstrumentAggSortBy = "openInterestChM15" constant OpenInterestChM5 (line 17) | OpenInterestChM5 InstrumentAggSortBy = "openInterestChM5" constant OpenInterestChM30 (line 18) | OpenInterestChM30 InstrumentAggSortBy = "openInterestChM30" constant OpenInterestCh1 (line 19) | OpenInterestCh1 InstrumentAggSortBy = "openInterestCh1" constant OpenInterestCh4 (line 20) | OpenInterestCh4 InstrumentAggSortBy = "openInterestCh4" constant OpenInterestCh24 (line 21) | OpenInterestCh24 InstrumentAggSortBy = "openInterestCh24" constant OpenInterestCh2D (line 22) | OpenInterestCh2D InstrumentAggSortBy = "openInterestCh2D" constant OpenInterestCh3D (line 23) | OpenInterestCh3D InstrumentAggSortBy = "openInterestCh3D" constant OpenInterestCh7D (line 24) | OpenInterestCh7D InstrumentAggSortBy = "openInterestCh7D" constant LiquidationH1 (line 25) | LiquidationH1 InstrumentAggSortBy = "liquidationH1" constant LiquidationH1Long (line 26) | LiquidationH1Long InstrumentAggSortBy = "liquidationH1Long" constant LiquidationH1Short (line 27) | LiquidationH1Short InstrumentAggSortBy = "liquidationH1Short" constant LiquidationH4Long (line 28) | LiquidationH4Long InstrumentAggSortBy = "liquidationH4Long" constant LiquidationH4Short (line 29) | LiquidationH4Short InstrumentAggSortBy = "liquidationH4Short" constant LiquidationH24Short (line 30) | LiquidationH24Short InstrumentAggSortBy = "liquidationH24Short" constant LiquidationH24Long (line 31) | LiquidationH24Long InstrumentAggSortBy = "liquidationH24Long" constant LiquidationH4 (line 32) | LiquidationH4 InstrumentAggSortBy = "liquidationH4" constant FundingRate (line 33) | FundingRate InstrumentAggSortBy = "fundingRate" constant LiquidationH12 (line 34) | LiquidationH12 InstrumentAggSortBy = "liquidationH12" constant LiquidationH12Long (line 35) | LiquidationH12Long InstrumentAggSortBy = "liquidationH12Long" constant LiquidationH12Short (line 36) | LiquidationH12Short InstrumentAggSortBy = "liquidationH12Short" constant LiquidationH24 (line 37) | LiquidationH24 InstrumentAggSortBy = "liquidationH24" constant Turnover24h (line 38) | Turnover24h InstrumentAggSortBy = "turnover24h" constant TurnoverChg24h (line 39) | TurnoverChg24h InstrumentAggSortBy = "turnoverChg24h" constant LongShortAccount (line 40) | LongShortAccount InstrumentAggSortBy = "longShortAccount" constant LsPersonChg5m (line 41) | LsPersonChg5m InstrumentAggSortBy = "lsPersonChg5m" constant LsPersonChg15m (line 42) | LsPersonChg15m InstrumentAggSortBy = "lsPersonChg15m" constant LsPersonChg30m (line 43) | LsPersonChg30m InstrumentAggSortBy = "lsPersonChg30m" constant LsPersonChg1h (line 44) | LsPersonChg1h InstrumentAggSortBy = "lsPersonChg1h" constant LsPersonChg4h (line 45) | LsPersonChg4h InstrumentAggSortBy = "lsPersonChg4h" constant LongShortPerson (line 46) | LongShortPerson InstrumentAggSortBy = "longShortPerson" constant LongShortPosition (line 47) | LongShortPosition InstrumentAggSortBy = "longShortPosition" constant LongShortRatio (line 48) | LongShortRatio InstrumentAggSortBy = "longShortRatio" constant MarketCap (line 49) | MarketCap InstrumentAggSortBy = "marketCap" constant MarketCapChange24H (line 50) | MarketCapChange24H InstrumentAggSortBy = "marketCapChange24H" constant MarketCapChangeValue24H (line 51) | MarketCapChangeValue24H InstrumentAggSortBy = "marketCapChangeValue24H" constant TotalSupply (line 52) | TotalSupply InstrumentAggSortBy = "totalSupply" constant MaxSupply (line 53) | MaxSupply InstrumentAggSortBy = "maxSupply" constant CirculatingSupply (line 54) | CirculatingSupply InstrumentAggSortBy = "circulatingSupply" constant Buy5m (line 55) | Buy5m InstrumentAggSortBy = "buy5m" constant Sell5m (line 56) | Sell5m InstrumentAggSortBy = "sell5m" constant Buy15m (line 57) | Buy15m InstrumentAggSortBy = "buy15m" constant Sell15m (line 58) | Sell15m InstrumentAggSortBy = "sell15m" constant Buy30m (line 59) | Buy30m InstrumentAggSortBy = "buy30m" constant Sell30m (line 60) | Sell30m InstrumentAggSortBy = "sell30m" constant Buy1h (line 61) | Buy1h InstrumentAggSortBy = "buy1h" constant Sell1h (line 62) | Sell1h InstrumentAggSortBy = "sell1h" constant Buy2h (line 63) | Buy2h InstrumentAggSortBy = "buy2h" constant Sell2h (line 64) | Sell2h InstrumentAggSortBy = "sell2h" constant Buy4h (line 65) | Buy4h InstrumentAggSortBy = "buy4h" constant Sell4h (line 66) | Sell4h InstrumentAggSortBy = "sell4h" constant Buy6h (line 67) | Buy6h InstrumentAggSortBy = "buy6h" constant Sell6h (line 68) | Sell6h InstrumentAggSortBy = "sell6h" constant Buy8h (line 69) | Buy8h InstrumentAggSortBy = "buy8h" constant Sell8h (line 70) | Sell8h InstrumentAggSortBy = "sell8h" constant Buy12h (line 71) | Buy12h InstrumentAggSortBy = "buy12h" constant Sell12h (line 72) | Sell12h InstrumentAggSortBy = "sell12h" constant Buy24h (line 73) | Buy24h InstrumentAggSortBy = "buy24h" constant Sell24h (line 74) | Sell24h InstrumentAggSortBy = "sell24h" constant TurnoverChg15m (line 75) | TurnoverChg15m InstrumentAggSortBy = "turnoverChg15m" constant TurnoverChg30m (line 76) | TurnoverChg30m InstrumentAggSortBy = "turnoverChg30m" constant TurnoverChg1h (line 77) | TurnoverChg1h InstrumentAggSortBy = "turnoverChg1h" constant TurnoverChg4h (line 78) | TurnoverChg4h InstrumentAggSortBy = "turnoverChg4h" constant VolatilityM5 (line 79) | VolatilityM5 InstrumentAggSortBy = "volatilityM5" constant VolatilityM15 (line 80) | VolatilityM15 InstrumentAggSortBy = "volatilityM15" constant VolatilityH1 (line 81) | VolatilityH1 InstrumentAggSortBy = "volatilityH1" constant OiVsMar (line 82) | OiVsMar InstrumentAggSortBy = "oiVsMar" constant OiVsVol (line 83) | OiVsVol InstrumentAggSortBy = "oiVsVol" constant VolVsMar (line 84) | VolVsMar InstrumentAggSortBy = "volVsMar" FILE: provider/coinank/coinank_enum/interval.go type Interval (line 3) | type Interval constant Second1 (line 6) | Second1 Interval = "1s" constant Second4 (line 7) | Second4 Interval = "4s" constant Second5 (line 8) | Second5 Interval = "5s" constant Second10 (line 9) | Second10 Interval = "10s" constant Second30 (line 10) | Second30 Interval = "30s" constant Minute1 (line 11) | Minute1 Interval = "1m" constant Minute3 (line 12) | Minute3 Interval = "3m" constant Minute5 (line 13) | Minute5 Interval = "5m" constant Minute10 (line 14) | Minute10 Interval = "10m" constant Minute15 (line 15) | Minute15 Interval = "15m" constant Minute30 (line 16) | Minute30 Interval = "30m" constant Hour1 (line 17) | Hour1 Interval = "1h" constant Hour2 (line 18) | Hour2 Interval = "2h" constant Hour4 (line 19) | Hour4 Interval = "4h" constant Hour5 (line 20) | Hour5 Interval = "5h" constant Hour6 (line 21) | Hour6 Interval = "6h" constant Hour8 (line 22) | Hour8 Interval = "8h" constant Hour12 (line 23) | Hour12 Interval = "12h" constant Day1 (line 24) | Day1 Interval = "1d" constant Day2 (line 25) | Day2 Interval = "2d" constant Day3 (line 26) | Day3 Interval = "3d" constant Day5 (line 27) | Day5 Interval = "5d" constant Week1 (line 28) | Week1 Interval = "1w" constant Week2 (line 29) | Week2 Interval = "2w" constant Month1 (line 30) | Month1 Interval = "1M" constant Month3 (line 31) | Month3 Interval = "3M" constant Month6 (line 32) | Month6 Interval = "6M" constant Year1 (line 33) | Year1 Interval = "1y" FILE: provider/coinank/coinank_enum/product_type.go type ProductType (line 3) | type ProductType constant SWAP (line 5) | SWAP ProductType = "SWAP" constant SPOT (line 6) | SPOT ProductType = "SPOT" FILE: provider/coinank/coinank_enum/side.go type Side (line 3) | type Side constant To (line 6) | To Side = "to" constant From (line 7) | From Side = "from" FILE: provider/coinank/coinank_enum/sort_type.go type SortType (line 3) | type SortType constant Asc (line 6) | Asc SortType = "asc" constant Desc (line 7) | Desc SortType = "desc" FILE: provider/coinank/coinank_http.go type CoinankClient (line 16) | type CoinankClient struct method Get (line 46) | func (c *CoinankClient) Get(ctx context.Context, path string, paramsMa... method Post (line 70) | func (c *CoinankClient) Post(ctx context.Context, path string, data an... type CoinankResponse (line 22) | type CoinankResponse struct type PageData (line 29) | type PageData struct function NewCoinankClient (line 41) | func NewCoinankClient(url, apikey string) *CoinankClient { FILE: provider/coinank/instrument_agg_rank.go method VisualScreener (line 11) | func (c *CoinankClient) VisualScreener(ctx context.Context, interval coi... method OiRank (line 30) | func (c *CoinankClient) OiRank(ctx context.Context, sortBy coinank_enum.... method LongShortRank (line 51) | func (c *CoinankClient) LongShortRank(ctx context.Context, sortBy coinan... method LiquidationRank (line 72) | func (c *CoinankClient) LiquidationRank(ctx context.Context, sortBy coin... method PriceRank (line 93) | func (c *CoinankClient) PriceRank(ctx context.Context, sortBy coinank_en... method VolumeRank (line 114) | func (c *CoinankClient) VolumeRank(ctx context.Context, sortBy coinank_e... method rankParam (line 134) | func (c *CoinankClient) rankParam(sortBy coinank_enum.InstrumentAggSortBy, type VisualScreenerResponse (line 156) | type VisualScreenerResponse struct type LongShortRankResponse (line 163) | type LongShortRankResponse struct type OiRankResponse (line 179) | type OiRankResponse struct type LiquidationRankResponse (line 200) | type LiquidationRankResponse struct type PriceRankResponse (line 221) | type PriceRankResponse struct type VolumeRankResponse (line 241) | type VolumeRankResponse struct FILE: provider/coinank/instruments.go method GetLastPrice (line 10) | func (c *CoinankClient) GetLastPrice(ctx context.Context, method GetCoinMarketCap (line 32) | func (c *CoinankClient) GetCoinMarketCap(ctx context.Context, type GetLastPriceResponse (line 51) | type GetLastPriceResponse struct type GetCoinMarketResponse (line 82) | type GetCoinMarketResponse struct FILE: provider/coinank/kline.go method Kline (line 11) | func (c *CoinankClient) Kline(ctx context.Context, symbol string, exchan... type KlineResult (line 53) | type KlineResult struct FILE: provider/coinank/liquidation.go method LiquidationExchangeStatistics (line 11) | func (c *CoinankClient) LiquidationExchangeStatistics(ctx context.Contex... method LiquidationCoinAggHistory (line 30) | func (c *CoinankClient) LiquidationCoinAggHistory(ctx context.Context, b... method LiquidationHistory (line 53) | func (c *CoinankClient) LiquidationHistory(ctx context.Context, exchange... method LiquidationOrders (line 77) | func (c *CoinankClient) LiquidationOrders(ctx context.Context, baseCoin ... type LiquidationOrdersResponse (line 110) | type LiquidationOrdersResponse struct type LiquidationSymbol (line 122) | type LiquidationSymbol struct type LiquidationStatistic (line 132) | type LiquidationStatistic struct type LiquidationExchangeStatisticsResponse (line 142) | type LiquidationExchangeStatisticsResponse struct FILE: provider/coinank/net_positions.go method NetPositions (line 11) | func (c *CoinankClient) NetPositions(ctx context.Context, exchange coina... type NetPositionsResponse (line 37) | type NetPositionsResponse struct FILE: provider/coinank/open_interest.go method OpenInterestAll (line 11) | func (c *CoinankClient) OpenInterestAll(ctx context.Context, baseCoin st... method OpenInterestChartV2 (line 30) | func (c *CoinankClient) OpenInterestChartV2(ctx context.Context, method OpenInterestSymbolChart (line 58) | func (c *CoinankClient) OpenInterestSymbolChart(ctx context.Context, method OpenInterestKline (line 85) | func (c *CoinankClient) OpenInterestKline(ctx context.Context, method OpenInterestAggKline (line 112) | func (c *CoinankClient) OpenInterestAggKline(ctx context.Context, method TickersTopOIByEx (line 138) | func (c *CoinankClient) TickersTopOIByEx(ctx context.Context, baseCoin s... method InstrumentsOiVsMc (line 157) | func (c *CoinankClient) InstrumentsOiVsMc(ctx context.Context, type OpenInterestAllResponse (line 181) | type OpenInterestAllResponse struct type OpenInterestChartV2Response (line 202) | type OpenInterestChartV2Response struct type OpenInterestSymbolChartResponse (line 208) | type OpenInterestSymbolChartResponse struct type OpenInterestKlineResponse (line 226) | type OpenInterestKlineResponse struct type OpenInterestAggKlineResponse (line 238) | type OpenInterestAggKlineResponse struct type TickersTopOIByExResponse (line 246) | type TickersTopOIByExResponse struct type InstrumentsOiVsMcResponse (line 252) | type InstrumentsOiVsMcResponse struct FILE: provider/hyperliquid/coins.go constant hyperliquidInfoURL (line 16) | hyperliquidInfoURL = "https://api.hyperliquid.xyz/info" constant cacheDuration (line 17) | cacheDuration = 24 * time.Hour type CoinInfo (line 21) | type CoinInfo struct type CoinProvider (line 27) | type CoinProvider struct method fetchCoins (line 63) | func (p *CoinProvider) fetchCoins(ctx context.Context) error { method ensureUpdated (line 142) | func (p *CoinProvider) ensureUpdated(ctx context.Context) error { method GetAllCoins (line 154) | func (p *CoinProvider) GetAllCoins(ctx context.Context) ([]CoinInfo, e... method GetMainCoins (line 169) | func (p *CoinProvider) GetMainCoins(ctx context.Context, limit int) ([... method ForceRefresh (line 221) | func (p *CoinProvider) ForceRefresh(ctx context.Context) error { function GetProvider (line 41) | func GetProvider() *CoinProvider { type metaResponse (line 51) | type metaResponse struct type assetCtx (line 58) | type assetCtx struct function GetAllCoinSymbols (line 193) | func GetAllCoinSymbols(ctx context.Context) ([]string, error) { function GetMainCoinSymbols (line 207) | func GetMainCoinSymbols(ctx context.Context, limit int) ([]string, error) { FILE: provider/hyperliquid/kline.go constant MainnetAPIURL (line 15) | MainnetAPIURL = "https://api.hyperliquid.xyz/info" constant TestnetAPIURL (line 16) | TestnetAPIURL = "https://api.hyperliquid-testnet.xyz/info" type Candle (line 20) | type Candle struct type CandleRequest (line 34) | type CandleRequest struct type CandleRequestBody (line 40) | type CandleRequestBody struct type Client (line 48) | type Client struct method GetCandles (line 77) | func (c *Client) GetCandles(ctx context.Context, coin string, interval... method GetAllMids (line 140) | func (c *Client) GetAllMids(ctx context.Context) (map[string]string, e... method GetAllMidsXYZ (line 145) | func (c *Client) GetAllMidsXYZ(ctx context.Context) (map[string]string... method GetAllMidsWithDex (line 150) | func (c *Client) GetAllMidsWithDex(ctx context.Context, dex string) (m... method GetMeta (line 190) | func (c *Client) GetMeta(ctx context.Context) (*Meta, error) { function NewClient (line 54) | func NewClient() *Client { function NewTestnetClient (line 64) | func NewTestnetClient() *Client { type Meta (line 227) | type Meta struct type AssetInfo (line 232) | type AssetInfo struct function NormalizeCoin (line 244) | func NormalizeCoin(symbol string) string { function MapTimeframe (line 249) | func MapTimeframe(interval string) string { function getIntervalDuration (line 287) | func getIntervalDuration(interval string) time.Duration { constant XYZDex (line 317) | XYZDex = "xyz" function IsStockPerp (line 357) | func IsStockPerp(symbol string) bool { function IsXYZAsset (line 368) | func IsXYZAsset(symbol string) bool { function NormalizeCoinBase (line 386) | func NormalizeCoinBase(symbol string) string { function FormatCoinForAPI (line 408) | func FormatCoinForAPI(symbol string) string { FILE: provider/hyperliquid/kline_test.go function TestGetCandles_BTC (line 11) | func TestGetCandles_BTC(t *testing.T) { function TestGetCandles_TSLA (line 38) | func TestGetCandles_TSLA(t *testing.T) { function TestGetCandles_StockPerps (line 66) | func TestGetCandles_StockPerps(t *testing.T) { function TestGetAllMids (line 92) | func TestGetAllMids(t *testing.T) { function TestGetAllMidsXYZ (line 115) | func TestGetAllMidsXYZ(t *testing.T) { function TestGetMeta (line 133) | func TestGetMeta(t *testing.T) { function TestNormalizeCoin (line 153) | func TestNormalizeCoin(t *testing.T) { function TestIsStockPerp (line 175) | func TestIsStockPerp(t *testing.T) { function TestFormatCoinForAPI (line 197) | func TestFormatCoinForAPI(t *testing.T) { FILE: provider/nofxos/ai500.go type CoinData (line 12) | type CoinData struct type AI500Response (line 25) | type AI500Response struct method GetAI500List (line 34) | func (c *Client) GetAI500List() ([]CoinData, error) { method fetchAI500 (line 59) | func (c *Client) fetchAI500() ([]CoinData, error) { method GetTopRatedCoins (line 93) | func (c *Client) GetTopRatedCoins(limit int) ([]string, error) { method GetAvailableCoins (line 137) | func (c *Client) GetAvailableCoins() ([]string, error) { function NormalizeSymbol (line 156) | func NormalizeSymbol(symbol string) string { FILE: provider/nofxos/client.go constant DefaultBaseURL (line 17) | DefaultBaseURL = "https://nofxos.ai" constant DefaultTimeout (line 18) | DefaultTimeout = 30 * time.Second constant DefaultAuthKey (line 19) | DefaultAuthKey = "cm_568c67eae410d912c54c" type Client (line 23) | type Client struct method SetConfig (line 63) | func (c *Client) SetConfig(baseURL, authKey string) { method GetBaseURL (line 75) | func (c *Client) GetBaseURL() string { method GetAuthKey (line 82) | func (c *Client) GetAuthKey() string { method doRequest (line 89) | func (c *Client) doRequest(endpoint string) ([]byte, error) { function DefaultClient (line 36) | func DefaultClient() *Client { function NewClient (line 48) | func NewClient(baseURL, authKey string) *Client { type APIError (line 127) | type APIError struct method Error (line 132) | func (e *APIError) Error() string { function ExtractAuthKey (line 137) | func ExtractAuthKey(url string) string { FILE: provider/nofxos/coin.go type QuantData (line 11) | type QuantData struct type NetflowData (line 20) | type NetflowData struct type FlowTypeData (line 26) | type FlowTypeData struct type OIData (line 32) | type OIData struct type OIDeltaData (line 40) | type OIDeltaData struct type CoinResponse (line 47) | type CoinResponse struct method GetCoinData (line 54) | func (c *Client) GetCoinData(symbol string, include string) (*QuantData,... method GetCoinDataBatch (line 87) | func (c *Client) GetCoinDataBatch(symbols []string, include string) map[... function FormatQuantDataForAI (line 107) | func FormatQuantDataForAI(symbol string, data *QuantData, lang Language)... function formatQuantDataZH (line 118) | func formatQuantDataZH(symbol string, data *QuantData) string { function formatQuantDataEN (line 168) | func formatQuantDataEN(symbol string, data *QuantData) string { FILE: provider/nofxos/netflow.go type NetFlowPosition (line 12) | type NetFlowPosition struct type NetFlowResponse (line 20) | type NetFlowResponse struct type NetFlowRankingData (line 34) | type NetFlowRankingData struct method GetNetFlowRanking (line 45) | func (c *Client) GetNetFlowRanking(duration string, limit int) (*NetFlow... method fetchNetFlowRanking (line 98) | func (c *Client) fetchNetFlowRanking(rankType, duration string, limit in... function FormatNetFlowRankingForAI (line 120) | func FormatNetFlowRankingForAI(data *NetFlowRankingData, lang Language) ... function formatNetFlowRankingZH (line 131) | func formatNetFlowRankingZH(data *NetFlowRankingData) string { function formatNetFlowRankingEN (line 198) | func formatNetFlowRankingEN(data *NetFlowRankingData) string { FILE: provider/nofxos/oi.go type OIPosition (line 12) | type OIPosition struct type OIRankingResponse (line 26) | type OIRankingResponse struct type OIRankingData (line 41) | type OIRankingData struct method GetOIRanking (line 50) | func (c *Client) GetOIRanking(duration string, limit int) (*OIRankingDat... method fetchOIRanking (line 86) | func (c *Client) fetchOIRanking(rankType, duration string, limit int) ([... method GetOITopPositions (line 108) | func (c *Client) GetOITopPositions() ([]OIPosition, error) { method GetOITopSymbols (line 117) | func (c *Client) GetOITopSymbols() ([]string, error) { method GetOILowPositions (line 133) | func (c *Client) GetOILowPositions() ([]OIPosition, error) { method GetOILowSymbols (line 142) | func (c *Client) GetOILowSymbols() ([]string, error) { function FormatOIRankingForAI (line 158) | func FormatOIRankingForAI(data *OIRankingData, lang Language) string { function formatOIRankingZH (line 169) | func formatOIRankingZH(data *OIRankingData) string { function formatOIRankingEN (line 204) | func formatOIRankingEN(data *OIRankingData) string { FILE: provider/nofxos/price.go type PriceRankingItem (line 12) | type PriceRankingItem struct type PriceRankingDuration (line 25) | type PriceRankingDuration struct type PriceRankingResponse (line 31) | type PriceRankingResponse struct type PriceRankingData (line 41) | type PriceRankingData struct method GetPriceRanking (line 47) | func (c *Client) GetPriceRanking(durations string, limit int) (*PriceRan... function FormatPriceRankingForAI (line 87) | func FormatPriceRankingForAI(data *PriceRankingData, lang Language) stri... function formatPriceRankingZH (line 98) | func formatPriceRankingZH(data *PriceRankingData) string { function formatPriceRankingEN (line 141) | func formatPriceRankingEN(data *PriceRankingData) string { FILE: provider/nofxos/util.go type Language (line 6) | type Language constant LangChinese (line 9) | LangChinese Language = "zh-CN" constant LangEnglish (line 10) | LangEnglish Language = "en-US" function formatValue (line 14) | func formatValue(v float64) string { FILE: provider/twelvedata/kline.go constant BaseURL (line 16) | BaseURL = "https://api.twelvedata.com" type Bar (line 20) | type Bar struct type TimeSeriesResponse (line 30) | type TimeSeriesResponse struct type Meta (line 39) | type Meta struct type QuoteResponse (line 50) | type QuoteResponse struct type Client (line 72) | type Client struct method GetTimeSeries (line 99) | func (c *Client) GetTimeSeries(ctx context.Context, symbol string, int... method GetQuote (line 148) | func (c *Client) GetQuote(ctx context.Context, symbol string) (*QuoteR... function NewClient (line 78) | func NewClient() *Client { function NewClientWithKey (line 88) | func NewClientWithKey(apiKey string) *Client { function MapTimeframe (line 195) | func MapTimeframe(interval string) string { function ParseBar (line 235) | func ParseBar(bar Bar) (open, high, low, close, volume float64, timestam... FILE: security/url_validator.go function init (line 17) | func init() { type SSRFError (line 43) | type SSRFError struct method Error (line 48) | func (e *SSRFError) Error() string { function isPrivateIP (line 53) | func isPrivateIP(ip net.IP) bool { function ValidateURL (line 85) | func ValidateURL(rawURL string) error { function SafeHTTPClient (line 158) | func SafeHTTPClient(timeout time.Duration) *http.Client { function SafeGet (line 208) | func SafeGet(rawURL string, timeout time.Duration) (*http.Response, erro... FILE: store/ai_model.go type AIModelStore (line 15) | type AIModelStore struct method initTables (line 40) | func (s *AIModelStore) initTables() error { method initDefaultData (line 52) | func (s *AIModelStore) initDefaultData() error { method List (line 58) | func (s *AIModelStore) List(userID string) ([]*AIModel, error) { method Get (line 68) | func (s *AIModelStore) Get(userID, modelID string) (*AIModel, error) { method GetByID (line 98) | func (s *AIModelStore) GetByID(modelID string) (*AIModel, error) { method GetDefault (line 112) | func (s *AIModelStore) GetDefault(userID string) (*AIModel, error) { method firstEnabled (line 129) | func (s *AIModelStore) firstEnabled(userID string) (*AIModel, error) { method GetAnyEnabled (line 142) | func (s *AIModelStore) GetAnyEnabled() (*AIModel, error) { method Update (line 155) | func (s *AIModelStore) Update(userID, id string, enabled bool, apiKey,... method Create (line 238) | func (s *AIModelStore) Create(userID, id, name, provider string, enabl... type AIModel (line 20) | type AIModel struct method TableName (line 33) | func (AIModel) TableName() string { return "ai_models" } function NewAIModelStore (line 36) | func NewAIModelStore(db *gorm.DB) *AIModelStore { FILE: store/decision.go type DecisionStore (line 12) | type DecisionStore struct method initTables (line 113) | func (s *DecisionStore) initTables() error { method LogDecision (line 148) | func (s *DecisionStore) LogDecision(record *DecisionRecord) error { method GetLatestRecords (line 185) | func (s *DecisionStore) GetLatestRecords(traderID string, n int) ([]*D... method GetAllLatestRecords (line 209) | func (s *DecisionStore) GetAllLatestRecords(n int) ([]*DecisionRecord,... method GetRecordsByDate (line 230) | func (s *DecisionStore) GetRecordsByDate(traderID string, date time.Ti... method CleanOldRecords (line 250) | func (s *DecisionStore) CleanOldRecords(traderID string, days int) (in... method GetStatistics (line 262) | func (s *DecisionStore) GetStatistics(traderID string) (*Statistics, e... method GetAllStatistics (line 281) | func (s *DecisionStore) GetAllStatistics() (*Statistics, error) { method GetLastCycleNumber (line 300) | func (s *DecisionStore) GetLastCycleNumber(traderID string) (int, erro... type DecisionRecordDB (line 17) | type DecisionRecordDB struct method TableName (line 36) | func (DecisionRecordDB) TableName() string { return "decision_records" } method toRecord (line 126) | func (db *DecisionRecordDB) toRecord() *DecisionRecord { type DecisionRecord (line 39) | type DecisionRecord struct type AccountSnapshot (line 60) | type AccountSnapshot struct type PositionSnapshot (line 70) | type PositionSnapshot struct type DecisionAction (line 82) | type DecisionAction struct type Statistics (line 99) | type Statistics struct function NewDecisionStore (line 108) | func NewDecisionStore(db *gorm.DB) *DecisionStore { FILE: store/driver.go type DBType (line 15) | type DBType constant DBTypeSQLite (line 18) | DBTypeSQLite DBType = "sqlite" constant DBTypePostgres (line 19) | DBTypePostgres DBType = "postgres" type DBConfig (line 23) | type DBConfig struct type DBDriver (line 35) | type DBDriver struct method DB (line 94) | func (d *DBDriver) DB() *sql.DB { method Close (line 99) | func (d *DBDriver) Close() error { method AutoIncrement (line 104) | func (d *DBDriver) AutoIncrement() string { method Placeholder (line 115) | func (d *DBDriver) Placeholder(index int) string { method ConvertPlaceholders (line 125) | func (d *DBDriver) ConvertPlaceholders(query string) string { method TableExists (line 141) | func (d *DBDriver) TableExists(tableName string) (bool, error) { method UpsertSyntax (line 167) | func (d *DBDriver) UpsertSyntax() string { function NewDBDriver (line 41) | func NewDBDriver(cfg DBConfig) (*DBDriver, error) { function NewDBDriverFromEnv (line 65) | func NewDBDriverFromEnv() (*DBDriver, error) { function openSQLite (line 172) | func openSQLite(path string) (*sql.DB, error) { function openPostgres (line 210) | func openPostgres(cfg DBConfig) (*sql.DB, error) { function getEnv (line 235) | func getEnv(key, defaultValue string) string { function convertQuery (line 244) | func convertQuery(query string, dbType DBType) string { function boolDefault (line 270) | func boolDefault(dbType DBType, value bool) string { FILE: store/equity.go type EquityStore (line 11) | type EquityStore struct method initTables (line 36) | func (s *EquityStore) initTables() error { method Save (line 49) | func (s *EquityStore) Save(snapshot *EquitySnapshot) error { method GetLatest (line 65) | func (s *EquityStore) GetLatest(traderID string, limit int) ([]*Equity... method GetByTimeRange (line 84) | func (s *EquityStore) GetByTimeRange(traderID string, start, end time.... method GetAllTradersLatest (line 96) | func (s *EquityStore) GetAllTradersLatest() (map[string]*EquitySnapsho... method CleanOldRecords (line 121) | func (s *EquityStore) CleanOldRecords(traderID string, days int) (int6... method GetCount (line 133) | func (s *EquityStore) GetCount(traderID string) (int, error) { method MigrateFromDecision (line 140) | func (s *EquityStore) MigrateFromDecision() (int64, error) { type EquitySnapshot (line 16) | type EquitySnapshot struct method TableName (line 28) | func (EquitySnapshot) TableName() string { return "trader_equity_snaps... function NewEquityStore (line 31) | func NewEquityStore(db *gorm.DB) *EquityStore { FILE: store/exchange.go type ExchangeStore (line 14) | type ExchangeStore struct method initTables (line 51) | func (s *ExchangeStore) initTables() error { method migrateToMultiAccount (line 80) | func (s *ExchangeStore) migrateToMultiAccount() error { method initDefaultData (line 135) | func (s *ExchangeStore) initDefaultData() error { method List (line 141) | func (s *ExchangeStore) List(userID string) ([]*Exchange, error) { method GetByID (line 151) | func (s *ExchangeStore) GetByID(userID, id string) (*Exchange, error) { method Create (line 185) | func (s *ExchangeStore) Create(userID, exchangeType, accountName strin... method Update (line 231) | func (s *ExchangeStore) Update(userID, id string, enabled bool, apiKey... method UpdateAccountName (line 280) | func (s *ExchangeStore) UpdateAccountName(userID, id, accountName stri... method Delete (line 297) | func (s *ExchangeStore) Delete(userID, id string) error { method CreateLegacy (line 311) | func (s *ExchangeStore) CreateLegacy(userID, id, name, typ string, ena... type Exchange (line 19) | type Exchange struct method TableName (line 44) | func (Exchange) TableName() string { return "exchanges" } function NewExchangeStore (line 47) | func NewExchangeStore(db *gorm.DB) *ExchangeStore { function getExchangeNameAndType (line 161) | func getExchangeNameAndType(exchangeType string) (name string, typ strin... FILE: store/gorm.go function DB (line 17) | func DB() *gorm.DB { function InitGorm (line 22) | func InitGorm(dbPath string) (*gorm.DB, error) { function InitGormPostgres (line 53) | func InitGormPostgres(host string, port int, user, password, dbname, ssl... function InitGormWithConfig (line 84) | func InitGormWithConfig(cfg DBConfig) (*gorm.DB, error) { function ForUser (line 109) | func ForUser(userID string) func(*gorm.DB) *gorm.DB { function ForTrader (line 116) | func ForTrader(traderID string) func(*gorm.DB) *gorm.DB { function OpenPositions (line 123) | func OpenPositions() func(*gorm.DB) *gorm.DB { function ClosedPositions (line 130) | func ClosedPositions() func(*gorm.DB) *gorm.DB { function OrderByCreatedDesc (line 137) | func OrderByCreatedDesc() func(*gorm.DB) *gorm.DB { function OrderByUpdatedDesc (line 144) | func OrderByUpdatedDesc() func(*gorm.DB) *gorm.DB { function Paginate (line 151) | func Paginate(limit, offset int) func(*gorm.DB) *gorm.DB { FILE: store/grid.go type GridConfigModel (line 15) | type GridConfigModel struct method TableName (line 72) | func (GridConfigModel) TableName() string { type GridInstanceModel (line 77) | type GridInstanceModel struct method TableName (line 132) | func (GridInstanceModel) TableName() string { type GridLevelModel (line 137) | type GridLevelModel struct method TableName (line 156) | func (GridLevelModel) TableName() string { type GridEventModel (line 161) | type GridEventModel struct method TableName (line 179) | func (GridEventModel) TableName() string { type GridRegimeAssessmentModel (line 184) | type GridRegimeAssessmentModel struct method TableName (line 205) | func (GridRegimeAssessmentModel) TableName() string { type GridStore (line 212) | type GridStore struct method InitTables (line 222) | func (s *GridStore) InitTables() error { method SaveGridConfig (line 258) | func (s *GridStore) SaveGridConfig(config *GridConfigModel) error { method LoadGridConfig (line 267) | func (s *GridStore) LoadGridConfig(id string) (*GridConfigModel, error) { method LoadGridConfigByTrader (line 277) | func (s *GridStore) LoadGridConfigByTrader(traderID string) (*GridConf... method ListGridConfigs (line 287) | func (s *GridStore) ListGridConfigs(userID string) ([]GridConfigModel,... method DeleteGridConfig (line 297) | func (s *GridStore) DeleteGridConfig(id string) error { method SaveGridInstance (line 331) | func (s *GridStore) SaveGridInstance(instance *GridInstanceModel) error { method LoadGridInstance (line 337) | func (s *GridStore) LoadGridInstance(configID string) (*GridInstanceMo... method LoadGridInstanceByID (line 349) | func (s *GridStore) LoadGridInstanceByID(id string) (*GridInstanceMode... method ListGridInstances (line 359) | func (s *GridStore) ListGridInstances(configID string) ([]GridInstance... method SaveGridLevel (line 373) | func (s *GridStore) SaveGridLevel(level *GridLevelModel) error { method SaveGridLevels (line 379) | func (s *GridStore) SaveGridLevels(levels []GridLevelModel) error { method LoadGridLevels (line 391) | func (s *GridStore) LoadGridLevels(instanceID string) ([]GridLevelMode... method DeleteGridLevels (line 403) | func (s *GridStore) DeleteGridLevels(instanceID string) error { method SaveGridEvent (line 410) | func (s *GridStore) SaveGridEvent(event *GridEventModel) error { method LoadRecentGridEvents (line 418) | func (s *GridStore) LoadRecentGridEvents(instanceID string, limit int)... method LoadGridEventsByType (line 433) | func (s *GridStore) LoadGridEventsByType(instanceID, eventType string,... method CountGridEvents (line 448) | func (s *GridStore) CountGridEvents(instanceID string) (int64, error) { method SaveGridRegimeAssessment (line 459) | func (s *GridStore) SaveGridRegimeAssessment(assessment *GridRegimeAss... method LoadLatestGridRegime (line 467) | func (s *GridStore) LoadLatestGridRegime(instanceID string) (*GridRegi... method LoadGridRegimeHistory (line 479) | func (s *GridStore) LoadGridRegimeHistory(instanceID string, limit int... method GetGridInstanceStatistics (line 496) | func (s *GridStore) GetGridInstanceStatistics(instanceID string) (map[... method GetGridPerformanceMetrics (line 551) | func (s *GridStore) GetGridPerformanceMetrics(instanceID string, from,... function NewGridStore (line 217) | func NewGridStore(db *gorm.DB) *GridStore { FILE: store/order.go type TraderOrder (line 13) | type TraderOrder struct method TableName (line 46) | func (TraderOrder) TableName() string { type TraderFill (line 52) | type TraderFill struct method TableName (line 73) | func (TraderFill) TableName() string { type OrderStore (line 78) | type OrderStore struct method InitTables (line 88) | func (s *OrderStore) InitTables() error { method CreateOrder (line 152) | func (s *OrderStore) CreateOrder(order *TraderOrder) error { method UpdateOrderStatus (line 169) | func (s *OrderStore) UpdateOrderStatus(id int64, status string, filled... method CreateFill (line 186) | func (s *OrderStore) CreateFill(fill *TraderFill) error { method GetFillByExchangeTradeID (line 202) | func (s *OrderStore) GetFillByExchangeTradeID(exchangeID, exchangeTrad... method GetOrderByExchangeID (line 215) | func (s *OrderStore) GetOrderByExchangeID(exchangeID, exchangeOrderID ... method GetTraderOrders (line 228) | func (s *OrderStore) GetTraderOrders(traderID string, limit int) ([]*T... method GetTraderOrdersFiltered (line 241) | func (s *OrderStore) GetTraderOrdersFiltered(traderID string, symbol s... method GetOrderFills (line 262) | func (s *OrderStore) GetOrderFills(orderID int64) ([]*TraderFill, erro... method GetTraderOrderStats (line 274) | func (s *OrderStore) GetTraderOrderStats(traderID string) (map[string]... method CleanupDuplicateOrders (line 306) | func (s *OrderStore) CleanupDuplicateOrders() (int, error) { method CleanupDuplicateFills (line 322) | func (s *OrderStore) CleanupDuplicateFills() (int, error) { method GetDuplicateOrdersCount (line 338) | func (s *OrderStore) GetDuplicateOrdersCount() (int, error) { method GetDuplicateFillsCount (line 353) | func (s *OrderStore) GetDuplicateFillsCount() (int, error) { method GetMaxTradeIDsByExchange (line 367) | func (s *OrderStore) GetMaxTradeIDsByExchange(exchangeID string) (map[... method GetLastFillTimeByExchange (line 401) | func (s *OrderStore) GetLastFillTimeByExchange(exchangeID string) (int... method GetRecentFillSymbolsByExchange (line 413) | func (s *OrderStore) GetRecentFillSymbolsByExchange(exchangeID string,... function NewOrderStore (line 83) | func NewOrderStore(db *gorm.DB) *OrderStore { FILE: store/position.go function adaptivePriceRound (line 16) | func adaptivePriceRound(price float64, referencePrices ...float64) float... function getPriceDecimalPlaces (line 51) | func getPriceDecimalPlaces(price float64) int { function formatDuration (line 64) | func formatDuration(d time.Duration) string { function formatDurationMs (line 69) | func formatDurationMs(ms int64) string { type TraderPosition (line 97) | type TraderPosition struct method TableName (line 124) | func (TraderPosition) TableName() string { type PositionStore (line 129) | type PositionStore struct method isPostgres (line 139) | func (s *PositionStore) isPostgres() bool { method InitTables (line 144) | func (s *PositionStore) InitTables() error { method Create (line 189) | func (s *PositionStore) Create(pos *TraderPosition) error { method ClosePosition (line 198) | func (s *PositionStore) ClosePosition(id int64, exitPrice float64, exi... method UpdatePositionQuantityAndPrice (line 213) | func (s *PositionStore) UpdatePositionQuantityAndPrice(id int64, addQt... method ReducePositionQuantity (line 243) | func (s *PositionStore) ReducePositionQuantity(id int64, reduceQty flo... method UpdatePositionExchangeInfo (line 291) | func (s *PositionStore) UpdatePositionExchangeInfo(id int64, exchangeI... method ClosePositionFully (line 302) | func (s *PositionStore) ClosePositionFully(id int64, exitPrice float64... method DeleteAllOpenPositions (line 327) | func (s *PositionStore) DeleteAllOpenPositions(traderID string) error { method GetOpenPositions (line 332) | func (s *PositionStore) GetOpenPositions(traderID string) ([]*TraderPo... method GetOpenPositionBySymbol (line 351) | func (s *PositionStore) GetOpenPositionBySymbol(traderID, symbol, side... method GetClosedPositions (line 384) | func (s *PositionStore) GetClosedPositions(traderID string, limit int)... method GetAllOpenPositions (line 403) | func (s *PositionStore) GetAllOpenPositions() ([]*TraderPosition, erro... method ExistsWithExchangePositionID (line 421) | func (s *PositionStore) ExistsWithExchangePositionID(exchangeID, excha... method GetOpenPositionByExchangePositionID (line 437) | func (s *PositionStore) GetOpenPositionByExchangePositionID(exchangeID... method CreateOpenPosition (line 459) | func (s *PositionStore) CreateOpenPosition(pos *TraderPosition) error { method ClosePositionWithAccurateData (line 507) | func (s *PositionStore) ClosePositionWithAccurateData(id int64, exitPr... function NewPositionStore (line 134) | func NewPositionStore(db *gorm.DB) *PositionStore { FILE: store/position_builder.go type PositionBuilder (line 16) | type PositionBuilder struct method ProcessTrade (line 29) | func (pb *PositionBuilder) ProcessTrade( method handleOpen (line 45) | func (pb *PositionBuilder) handleOpen( method handleClose (line 97) | func (pb *PositionBuilder) handleClose( function NewPositionBuilder (line 21) | func NewPositionBuilder(positionStore *PositionStore) *PositionBuilder { function quantitiesMatch (line 178) | func quantitiesMatch(a, b float64) bool { FILE: store/position_history.go type HistorySummary (line 12) | type HistorySummary struct method GetHistorySummary (line 38) | func (s *PositionStore) GetHistorySummary(traderID string) (*HistorySumm... method calculateStreaks (line 120) | func (s *PositionStore) calculateStreaks(traderID string, summary *Histo... type ClosedPnLRecord (line 176) | type ClosedPnLRecord struct method CreateFromClosedPnL (line 193) | func (s *PositionStore) CreateFromClosedPnL(traderID, exchangeID, exchan... method GetLastClosedPositionTime (line 276) | func (s *PositionStore) GetLastClosedPositionTime(traderID string) (int6... method SyncClosedPositions (line 293) | func (s *PositionStore) SyncClosedPositions(traderID, exchangeID, exchan... FILE: store/position_query.go type TraderStats (line 10) | type TraderStats struct method GetPositionStats (line 25) | func (s *PositionStore) GetPositionStats(traderID string) (map[string]in... method GetFullStats (line 58) | func (s *PositionStore) GetFullStats(traderID string) (*TraderStats, err... type RecentTrade (line 118) | type RecentTrade struct method GetRecentTrades (line 131) | func (s *PositionStore) GetRecentTrades(traderID string, limit int) ([]R... function calculateSharpeRatioFromPnls (line 173) | func calculateSharpeRatioFromPnls(pnls []float64) float64 { function calculateMaxDrawdownFromPnls (line 198) | func calculateMaxDrawdownFromPnls(pnls []float64) float64 { type SymbolStats (line 225) | type SymbolStats struct method GetSymbolStats (line 236) | func (s *PositionStore) GetSymbolStats(traderID string, limit int) ([]Sy... type HoldingTimeStats (line 298) | type HoldingTimeStats struct method GetHoldingTimeStats (line 306) | func (s *PositionStore) GetHoldingTimeStats(traderID string) ([]HoldingT... type DirectionStats (line 367) | type DirectionStats struct method GetDirectionStats (line 376) | func (s *PositionStore) GetDirectionStats(traderID string) ([]DirectionS... FILE: store/store.go type Store (line 15) | type Store struct method initTables (line 118) | func (s *Store) initTables() error { method initDefaultData (line 167) | func (s *Store) initDefaultData() error { method User (line 187) | func (s *Store) User() *UserStore { method AIModel (line 197) | func (s *Store) AIModel() *AIModelStore { method Exchange (line 207) | func (s *Store) Exchange() *ExchangeStore { method Trader (line 217) | func (s *Store) Trader() *TraderStore { method Decision (line 227) | func (s *Store) Decision() *DecisionStore { method Position (line 237) | func (s *Store) Position() *PositionStore { method Strategy (line 247) | func (s *Store) Strategy() *StrategyStore { method Equity (line 257) | func (s *Store) Equity() *EquityStore { method Order (line 267) | func (s *Store) Order() *OrderStore { method Grid (line 277) | func (s *Store) Grid() *GridStore { method TelegramConfig (line 287) | func (s *Store) TelegramConfig() TelegramConfigStore { method Close (line 297) | func (s *Store) Close() error { method GormDB (line 308) | func (s *Store) GormDB() *gorm.DB { method Driver (line 313) | func (s *Store) Driver() *DBDriver { method DBType (line 318) | func (s *Store) DBType() DBType { method q (line 335) | func (s *Store) q(query string) string { method DB (line 341) | func (s *Store) DB() *sql.DB { method GetSystemConfig (line 346) | func (s *Store) GetSystemConfig(key string) (string, error) { method SetSystemConfig (line 362) | func (s *Store) SetSystemConfig(key, value string) error { method Transaction (line 371) | func (s *Store) Transaction(fn func(tx *gorm.DB) error) error { method TransactionSQL (line 377) | func (s *Store) TransactionSQL(fn func(tx *sql.Tx) error) error { function New (line 37) | func New(dbPath string) (*Store, error) { function NewWithConfig (line 68) | func NewWithConfig(cfg DBConfig) (*Store, error) { function NewFromGorm (line 103) | func NewFromGorm(gdb *gorm.DB) (*Store, error) { function NewFromDB (line 113) | func NewFromDB(db *sql.DB) *Store { FILE: store/strategy.go type StrategyStore (line 12) | type StrategyStore struct method initTables (line 240) | func (s *StrategyStore) initTables() error { method initDefaultData (line 245) | func (s *StrategyStore) initDefaultData() error { method Create (line 369) | func (s *StrategyStore) Create(strategy *Strategy) error { method Update (line 374) | func (s *StrategyStore) Update(strategy *Strategy) error { method Delete (line 388) | func (s *StrategyStore) Delete(userID, id string) error { method List (line 399) | func (s *StrategyStore) List(userID string) ([]*Strategy, error) { method ListPublic (line 411) | func (s *StrategyStore) ListPublic() ([]*Strategy, error) { method Get (line 423) | func (s *StrategyStore) Get(userID, id string) (*Strategy, error) { method GetActive (line 434) | func (s *StrategyStore) GetActive(userID string) (*Strategy, error) { method GetDefault (line 448) | func (s *StrategyStore) GetDefault() (*Strategy, error) { method SetActive (line 458) | func (s *StrategyStore) SetActive(userID, strategyID string) error { method Duplicate (line 474) | func (s *StrategyStore) Duplicate(userID, sourceID, newID, newName str... type Strategy (line 17) | type Strategy struct method TableName (line 31) | func (Strategy) TableName() string { return "strategies" } method ParseConfig (line 496) | func (s *Strategy) ParseConfig() (*StrategyConfig, error) { method SetConfig (line 505) | func (s *Strategy) SetConfig(config *StrategyConfig) error { type StrategyConfig (line 34) | type StrategyConfig struct type GridStrategyConfig (line 57) | type GridStrategyConfig struct type PromptSectionsConfig (line 91) | type PromptSectionsConfig struct type CoinSourceConfig (line 103) | type CoinSourceConfig struct type IndicatorConfig (line 132) | type IndicatorConfig struct type KlineConfig (line 183) | type KlineConfig struct type ExternalDataSource (line 199) | type ExternalDataSource struct type RiskControlConfig (line 210) | type RiskControlConfig struct function NewStrategyStore (line 236) | func NewStrategyStore(db *gorm.DB) *StrategyStore { function GetDefaultStrategyConfig (line 251) | func GetDefaultStrategyConfig(lang string) StrategyConfig { FILE: store/telegram_config.go type TelegramConfig (line 13) | type TelegramConfig struct method String (line 26) | func (tc TelegramConfig) String() string { type TelegramConfigStore (line 36) | type TelegramConfigStore interface type telegramConfigStore (line 48) | type telegramConfigStore struct method initTables (line 58) | func (s *telegramConfigStore) initTables() error { method Get (line 62) | func (s *telegramConfigStore) Get() (*TelegramConfig, error) { method SaveToken (line 72) | func (s *telegramConfigStore) SaveToken(botToken string) error { method Save (line 76) | func (s *telegramConfigStore) Save(botToken, modelID string) error { method BindUser (line 90) | func (s *telegramConfigStore) BindUser(chatID int64, username string) ... method IsBound (line 105) | func (s *telegramConfigStore) IsBound() (bool, error) { method GetBoundChatID (line 118) | func (s *telegramConfigStore) GetBoundChatID() (int64, error) { method Unbind (line 131) | func (s *telegramConfigStore) Unbind() error { method SetLanguage (line 140) | func (s *telegramConfigStore) SetLanguage(lang string) error { method GetLanguage (line 153) | func (s *telegramConfigStore) GetLanguage() string { function NewTelegramConfigStore (line 54) | func NewTelegramConfigStore(db *gorm.DB) TelegramConfigStore { FILE: store/trader.go type TraderStore (line 11) | type TraderStore struct method initTables (line 60) | func (s *TraderStore) initTables() error { method Create (line 77) | func (s *TraderStore) Create(trader *Trader) error { method List (line 82) | func (s *TraderStore) List(userID string) ([]*Trader, error) { method UpdateStatus (line 94) | func (s *TraderStore) UpdateStatus(userID, id string, isRunning bool) ... method UpdateShowInCompetition (line 101) | func (s *TraderStore) UpdateShowInCompetition(userID, id string, showI... method Update (line 108) | func (s *TraderStore) Update(trader *Trader) error { method UpdateInitialBalance (line 138) | func (s *TraderStore) UpdateInitialBalance(userID, id string, newBalan... method UpdateCustomPrompt (line 145) | func (s *TraderStore) UpdateCustomPrompt(userID, id string, customProm... method Delete (line 155) | func (s *TraderStore) Delete(userID, id string) error { method GetFullConfig (line 164) | func (s *TraderStore) GetFullConfig(userID, traderID string) (*TraderF... method getStrategyByID (line 204) | func (s *TraderStore) getStrategyByID(userID, strategyID string) (*Str... method getActiveOrDefaultStrategy (line 215) | func (s *TraderStore) getActiveOrDefaultStrategy(userID string) (*Stra... method GetByID (line 233) | func (s *TraderStore) GetByID(traderID string) (*Trader, error) { method ListAll (line 243) | func (s *TraderStore) ListAll() ([]*Trader, error) { method ListByExchangeID (line 253) | func (s *TraderStore) ListByExchangeID(userID, exchangeID string) ([]*... method ListByAIModelID (line 263) | func (s *TraderStore) ListByAIModelID(userID, aiModelID string) ([]*Tr... function NewTraderStore (line 16) | func NewTraderStore(db *gorm.DB) *TraderStore { type Trader (line 21) | type Trader struct method TableName (line 48) | func (Trader) TableName() string { type TraderFullConfig (line 53) | type TraderFullConfig struct FILE: store/user.go type UserStore (line 10) | type UserStore struct method initTables (line 30) | func (s *UserStore) initTables() error { method Create (line 62) | func (s *UserStore) Create(user *User) error { method GetByEmail (line 67) | func (s *UserStore) GetByEmail(email string) (*User, error) { method GetByID (line 77) | func (s *UserStore) GetByID(userID string) (*User, error) { method Count (line 87) | func (s *UserStore) Count() (int, error) { method GetAllIDs (line 94) | func (s *UserStore) GetAllIDs() ([]string, error) { method GetAll (line 101) | func (s *UserStore) GetAll() ([]User, error) { method UpdatePassword (line 108) | func (s *UserStore) UpdatePassword(userID, passwordHash string) error { method EnsureAdmin (line 116) | func (s *UserStore) EnsureAdmin() error { type User (line 15) | type User struct method TableName (line 23) | func (User) TableName() string { return "users" } function NewUserStore (line 26) | func NewUserStore(db *gorm.DB) *UserStore { FILE: telegram/agent/agent.go constant maxIterations (line 13) | maxIterations = 10 type Agent (line 48) | type Agent struct method buildAccountContext (line 77) | func (a *Agent) buildAccountContext() string { method Run (line 194) | func (a *Agent) Run(userMessage string, onChunk func(string)) string { method ResetMemory (line 283) | func (a *Agent) ResetMemory() { function New (line 57) | func New(apiPort int, botToken, userID string, getLLM func() mcp.AIClien... function GenerateBotToken (line 70) | func GenerateBotToken(userID string) (string, error) { FILE: telegram/agent/agent_test.go type mockLLM (line 17) | type mockLLM struct method SetAPIKey (line 23) | func (m *mockLLM) SetAPIKey(_, _, _ string) {} method SetTimeout (line 24) | func (m *mockLLM) SetTimeout(_ time.Duration) {} method CallWithMessages (line 26) | func (m *mockLLM) CallWithMessages(_, _ string) (string, error) { retu... method CallWithRequest (line 28) | func (m *mockLLM) CallWithRequest(req *mcp.Request) (string, error) { method CallWithRequestStream (line 36) | func (m *mockLLM) CallWithRequestStream(req *mcp.Request, onChunk func... method CallWithRequestFull (line 47) | func (m *mockLLM) CallWithRequestFull(req *mcp.Request) (*mcp.LLMRespo... method next (line 52) | func (m *mockLLM) next() (*mcp.LLMResponse, error) { function toolCall (line 62) | func toolCall(id, method, path string, body string) *mcp.LLMResponse { function textReply (line 79) | func textReply(content string) *mcp.LLMResponse { function mockGetLLM (line 83) | func mockGetLLM(llm *mockLLM) func() mcp.AIClient { constant testPrompt (line 87) | testPrompt = "You are a test assistant." function mockAPIServer (line 90) | func mockAPIServer(handlers map[string]string) (*httptest.Server, int) { function TestAgentDirectReply (line 113) | func TestAgentDirectReply(t *testing.T) { function TestAgentAPICall (line 128) | func TestAgentAPICall(t *testing.T) { function TestAgentMultiStep (line 151) | func TestAgentMultiStep(t *testing.T) { function TestAgentAPIResultInContext (line 176) | func TestAgentAPIResultInContext(t *testing.T) { function TestNarrationStructurallyImpossible (line 208) | func TestNarrationStructurallyImpossible(t *testing.T) { function TestOnChunkCalledWithFinalReply (line 243) | func TestOnChunkCalledWithFinalReply(t *testing.T) { function TestCreateStrategyWorkflow (line 277) | func TestCreateStrategyWorkflow(t *testing.T) { function TestFullSetupWorkflow (line 302) | func TestFullSetupWorkflow(t *testing.T) { function TestStartExistingTrader (line 352) | func TestStartExistingTrader(t *testing.T) { function TestMaxIterations (line 389) | func TestMaxIterations(t *testing.T) { function TestToolCallIDPropagated (line 415) | func TestToolCallIDPropagated(t *testing.T) { FILE: telegram/agent/apicall.go type apiCallTool (line 16) | type apiCallTool struct method execute (line 38) | func (t *apiCallTool) execute(req *apiRequest) string { type apiRequest (line 23) | type apiRequest struct function newAPICallTool (line 29) | func newAPICallTool(port int, token string) *apiCallTool { FILE: telegram/agent/manager.go type Manager (line 12) | type Manager struct method Run (line 42) | func (m *Manager) Run(chatID int64, userMessage string, onChunk func(s... method Reset (line 55) | func (m *Manager) Reset(chatID int64) { method getOrCreate (line 64) | func (m *Manager) getOrCreate(chatID int64) (*Agent, chan struct{}) { function NewManager (line 26) | func NewManager(apiPort int, botToken, userEmail, userID string, getLLM ... FILE: telegram/agent/prompt.go function BuildAgentPrompt (line 9) | func BuildAgentPrompt(apiDocs, userEmail, userID string) string { FILE: telegram/bot.go function Start (line 23) | func Start(cfg *config.Config, st *store.Store, reloadCh <-chan struct{}) { function resolveToken (line 45) | func resolveToken(cfg *config.Config, st *store.Store) string { function runBot (line 54) | func runBot(token string, cfg *config.Config, st *store.Store) bool { function sendMsg (line 254) | func sendMsg(bot *tgbotapi.BotAPI, chatID int64, text string) { function sendMarkdownMsg (line 259) | func sendMarkdownMsg(bot *tgbotapi.BotAPI, chatID int64, text string) { function newLLMClient (line 270) | func newLLMClient(st *store.Store, userID string) mcp.AIClient { function isUSDCProvider (line 319) | func isUSDCProvider(provider string) bool { function clientForProvider (line 323) | func clientForProvider(provider string) mcp.AIClient { function statusMsg (line 335) | func statusMsg(st *store.Store, userID string, apiPort int, lang string)... function langMenuMsg (line 401) | func langMenuMsg() string { function parseLangChoice (line 405) | func parseLangChoice(text string) string { function helpMsg (line 417) | func helpMsg(lang string) string { FILE: telegram/session/memory.go constant compactionThresholdTokens (line 10) | compactionThresholdTokens = 3000 constant charsPerToken (line 11) | charsPerToken = 3 type Message (line 14) | type Message struct type Memory (line 22) | type Memory struct method Add (line 33) | func (m *Memory) Add(role, content string) { method BuildContext (line 41) | func (m *Memory) BuildContext() string { method Reset (line 58) | func (m *Memory) Reset() { method ResetFull (line 63) | func (m *Memory) ResetFull() { method estimateTokens (line 68) | func (m *Memory) estimateTokens() int { method compact (line 79) | func (m *Memory) compact() { function NewMemory (line 28) | func NewMemory(llm mcp.AIClient) *Memory { FILE: telemetry/experience.go constant telemetryEndpoint (line 13) | telemetryEndpoint = "https://www.google-analytics.com/mp/collect" constant tid (line 14) | tid = "G-14J8SY6F0J" constant tk (line 15) | tk = "sgPLmshGTPiF-X57rzEIKA" type Client (line 24) | type Client struct type TradeEvent (line 30) | type TradeEvent struct type AIUsageEvent (line 40) | type AIUsageEvent struct type telemetryPayload (line 50) | type telemetryPayload struct type telemetryEvent (line 55) | type telemetryEvent struct function Init (line 60) | func Init(enabled bool, installationID string) { function SetInstallationID (line 69) | func SetInstallationID(id string) { function GetInstallationID (line 78) | func GetInstallationID() string { function SetEnabled (line 87) | func SetEnabled(enabled bool) { function IsEnabled (line 96) | func IsEnabled() bool { function TrackTrade (line 105) | func TrackTrade(event TradeEvent) { function sendTradeEvent (line 117) | func sendTradeEvent(event TradeEvent) error { function TrackStartup (line 163) | func TrackStartup(version string) { function TrackAIUsage (line 200) | func TrackAIUsage(event AIUsageEvent) { FILE: trader/aster/trader.go type AsterTrader (line 27) | type AsterTrader struct method genNonce (line 83) | func (t *AsterTrader) genNonce() uint64 { method getPrecision (line 88) | func (t *AsterTrader) getPrecision(symbol string) (SymbolPrecision, er... method formatPrice (line 165) | func (t *AsterTrader) formatPrice(symbol string, price float64) (float... method formatQuantity (line 182) | func (t *AsterTrader) formatQuantity(symbol string, quantity float64) ... method formatFloatWithPrecision (line 199) | func (t *AsterTrader) formatFloatWithPrecision(value float64, precisio... method normalizeAndStringify (line 211) | func (t *AsterTrader) normalizeAndStringify(params map[string]interfac... method normalize (line 224) | func (t *AsterTrader) normalize(v interface{}) (interface{}, error) { method sign (line 268) | func (t *AsterTrader) sign(params map[string]interface{}, nonce uint64... method request (line 329) | func (t *AsterTrader) request(method, endpoint string, params map[stri... method doRequest (line 372) | func (t *AsterTrader) doRequest(method, endpoint string, params map[st... type SymbolPrecision (line 41) | type SymbolPrecision struct function NewAsterTrader (line 52) | func NewAsterTrader(user, signer, privateKeyHex string) (*AsterTrader, e... function roundToTickSize (line 152) | func roundToTickSize(value float64, tickSize float64) float64 { FILE: trader/aster/trader_account.go method GetBalance (line 16) | func (t *AsterTrader) GetBalance() (map[string]interface{}, error) { method GetMarketPrice (line 104) | func (t *AsterTrader) GetMarketPrice(symbol string) (float64, error) { method GetClosedPnL (line 133) | func (t *AsterTrader) GetClosedPnL(startTime time.Time, limit int) ([]ty... type AsterTradeRecord (line 188) | type AsterTradeRecord struct method GetTrades (line 204) | func (t *AsterTrader) GetTrades(startTime time.Time, limit int) ([]types... method GetOrderBook (line 254) | func (t *AsterTrader) GetOrderBook(symbol string, depth int) (bids, asks... FILE: trader/aster/trader_orders.go method OpenLong (line 13) | func (t *AsterTrader) OpenLong(symbol string, quantity float64, leverage... method OpenShort (line 86) | func (t *AsterTrader) OpenShort(symbol string, quantity float64, leverag... method CloseLong (line 159) | func (t *AsterTrader) CloseLong(symbol string, quantity float64) (map[st... method CloseShort (line 241) | func (t *AsterTrader) CloseShort(symbol string, quantity float64) (map[s... method SetStopLoss (line 324) | func (t *AsterTrader) SetStopLoss(symbol string, positionSide string, qu... method SetTakeProfit (line 365) | func (t *AsterTrader) SetTakeProfit(symbol string, positionSide string, ... method CancelStopLossOrders (line 406) | func (t *AsterTrader) CancelStopLossOrders(symbol string) error { method CancelTakeProfitOrders (line 465) | func (t *AsterTrader) CancelTakeProfitOrders(symbol string) error { method CancelAllOrders (line 524) | func (t *AsterTrader) CancelAllOrders(symbol string) error { method CancelStopOrders (line 534) | func (t *AsterTrader) CancelStopOrders(symbol string) error { method FormatQuantity (line 589) | func (t *AsterTrader) FormatQuantity(symbol string, quantity float64) (s... method GetOrderStatus (line 598) | func (t *AsterTrader) GetOrderStatus(symbol string, orderID string) (map... method GetOpenOrders (line 647) | func (t *AsterTrader) GetOpenOrders(symbol string) ([]types.OpenOrder, e... method PlaceLimitOrder (line 697) | func (t *AsterTrader) PlaceLimitOrder(req *types.LimitOrderRequest) (*ty... method CancelOrder (line 775) | func (t *AsterTrader) CancelOrder(symbol, orderID string) error { FILE: trader/aster/trader_positions.go method GetPositions (line 12) | func (t *AsterTrader) GetPositions() ([]map[string]interface{}, error) { method SetMarginMode (line 66) | func (t *AsterTrader) SetMarginMode(symbol string, isCrossMargin bool) e... method SetLeverage (line 113) | func (t *AsterTrader) SetLeverage(symbol string, leverage int) error { FILE: trader/aster/trader_sync.go method SyncOrdersFromAster (line 17) | func (t *AsterTrader) SyncOrdersFromAster(traderID string, exchangeID st... function deriveAsterOrderAction (line 149) | func deriveAsterOrderAction(side, positionSide string, realizedPnL float... method StartOrderSync (line 183) | func (t *AsterTrader) StartOrderSync(traderID string, exchangeID string,... FILE: trader/aster/trader_test.go type AsterTraderTestSuite (line 23) | type AsterTraderTestSuite struct method Cleanup (line 216) | func (s *AsterTraderTestSuite) Cleanup() { function NewAsterTraderTestSuite (line 29) | func NewAsterTraderTestSuite(t *testing.T) *AsterTraderTestSuite { function TestAsterTrader_InterfaceCompliance (line 228) | func TestAsterTrader_InterfaceCompliance(t *testing.T) { function TestAsterTrader_CommonInterface (line 233) | func TestAsterTrader_CommonInterface(t *testing.T) { function TestNewAsterTrader (line 247) | func TestNewAsterTrader(t *testing.T) { FILE: trader/auto_trader.go type AutoTraderConfig (line 26) | type AutoTraderConfig struct type AutoTrader (line 117) | type AutoTrader struct method Run (line 362) | func (at *AutoTrader) Run() error { method Stop (line 506) | func (at *AutoTrader) Stop() { method GetID (line 521) | func (at *AutoTrader) GetID() string { method GetUnderlyingTrader (line 527) | func (at *AutoTrader) GetUnderlyingTrader() Trader { method GetName (line 532) | func (at *AutoTrader) GetName() string { method GetAIModel (line 537) | func (at *AutoTrader) GetAIModel() string { method GetExchange (line 542) | func (at *AutoTrader) GetExchange() string { method GetShowInCompetition (line 547) | func (at *AutoTrader) GetShowInCompetition() bool { method SetShowInCompetition (line 552) | func (at *AutoTrader) SetShowInCompetition(show bool) { method SetCustomPrompt (line 557) | func (at *AutoTrader) SetCustomPrompt(prompt string) { method SetOverrideBasePrompt (line 562) | func (at *AutoTrader) SetOverrideBasePrompt(override bool) { method GetSystemPromptTemplate (line 567) | func (at *AutoTrader) GetSystemPromptTemplate() string { method GetStore (line 578) | func (at *AutoTrader) GetStore() *store.Store { function NewAutoTrader (line 152) | func NewAutoTrader(config AutoTraderConfig, st *store.Store, userID stri... function calculatePnLPercentage (line 584) | func calculatePnLPercentage(unrealizedPnl, marginUsed float64) float64 { FILE: trader/auto_trader_decision.go method saveEquitySnapshot (line 15) | func (at *AutoTrader) saveEquitySnapshot(ctx *kernel.Context) { method saveDecision (line 36) | func (at *AutoTrader) saveDecision(record *store.DecisionRecord) error { method GetStatus (line 59) | func (at *AutoTrader) GetStatus() map[string]interface{} { method GetAccountInfo (line 97) | func (at *AutoTrader) GetAccountInfo() (map[string]interface{}, error) { method GetPositions (line 194) | func (at *AutoTrader) GetPositions() ([]map[string]interface{}, error) { method recordAndConfirmOrder (line 244) | func (at *AutoTrader) recordAndConfirmOrder(orderResult map[string]inter... method recordPositionChange (line 360) | func (at *AutoTrader) recordPositionChange(orderID, symbol, side, action... method createOrderRecord (line 410) | func (at *AutoTrader) createOrderRecord(orderID, symbol, action, positio... method recordOrderFill (line 459) | func (at *AutoTrader) recordOrderFill(orderRecordID int64, exchangeOrder... method GetOpenOrders (line 525) | func (at *AutoTrader) GetOpenOrders(symbol string) ([]OpenOrder, error) { FILE: trader/auto_trader_grid.go type GridState (line 19) | type GridState struct function NewGridState (line 75) | func NewGridState(config *store.GridStrategyConfig) *GridState { type BreakoutType (line 89) | type BreakoutType constant BreakoutNone (line 92) | BreakoutNone BreakoutType = "none" constant BreakoutUpper (line 93) | BreakoutUpper BreakoutType = "upper" constant BreakoutLower (line 94) | BreakoutLower BreakoutType = "lower" method checkBreakout (line 99) | func (at *AutoTrader) checkBreakout() (BreakoutType, float64) { method checkMaxDrawdown (line 133) | func (at *AutoTrader) checkMaxDrawdown() (bool, float64) { method checkDailyLossLimit (line 185) | func (at *AutoTrader) checkDailyLossLimit() (bool, float64) { method updateDailyPnL (line 212) | func (at *AutoTrader) updateDailyPnL(realizedPnL float64) { method emergencyExit (line 220) | func (at *AutoTrader) emergencyExit(reason string) error { method handleBreakout (line 255) | func (at *AutoTrader) handleBreakout(breakoutType BreakoutType, breakout... method InitializeGrid (line 289) | func (at *AutoTrader) InitializeGrid() error { method RunGridCycle (line 342) | func (at *AutoTrader) RunGridCycle() error { method buildGridContext (line 454) | func (at *AutoTrader) buildGridContext() (*kernel.GridContext, error) { method executeGridDecision (line 519) | func (at *AutoTrader) executeGridDecision(d *kernel.Decision) error { method IsGridStrategy (line 552) | func (at *AutoTrader) IsGridStrategy() bool { method saveGridDecisionRecord (line 560) | func (at *AutoTrader) saveGridDecisionRecord(decision *kernel.FullDecisi... type GridRiskInfo (line 610) | type GridRiskInfo struct FILE: trader/auto_trader_grid_levels.go method calculateDefaultBounds (line 16) | func (at *AutoTrader) calculateDefaultBounds(price float64, config *stor... method calculateATRBounds (line 24) | func (at *AutoTrader) calculateATRBounds(price float64, mktData *market.... method initializeGridLevels (line 46) | func (at *AutoTrader) initializeGridLevels(currentPrice float64, config ... method applyGridDirection (line 98) | func (at *AutoTrader) applyGridDirection(currentPrice float64) { method checkGridSkew (line 186) | func (at *AutoTrader) checkGridSkew() (bool, int, int) { method autoAdjustGrid (line 228) | func (at *AutoTrader) autoAdjustGrid() { method calculateDefaultBoundsLocked (line 333) | func (at *AutoTrader) calculateDefaultBoundsLocked(price float64, config... method calculateATRBoundsLocked (line 341) | func (at *AutoTrader) calculateATRBoundsLocked(price float64, mktData *m... method initializeGridLevelsLocked (line 363) | func (at *AutoTrader) initializeGridLevelsLocked(currentPrice float64, c... method applyGridDirectionLocked (line 414) | func (at *AutoTrader) applyGridDirectionLocked(currentPrice float64) { FILE: trader/auto_trader_grid_orders.go method checkTotalPositionLimit (line 17) | func (at *AutoTrader) checkTotalPositionLimit(symbol string, additionalV... method placeGridLimitOrder (line 58) | func (at *AutoTrader) placeGridLimitOrder(d *kernel.Decision, side strin... method cancelGridOrder (line 154) | func (at *AutoTrader) cancelGridOrder(d *kernel.Decision) error { method cancelAllGridOrders (line 181) | func (at *AutoTrader) cancelAllGridOrders() error { method pauseGrid (line 205) | func (at *AutoTrader) pauseGrid(reason string) error { method resumeGrid (line 217) | func (at *AutoTrader) resumeGrid() error { method adjustGrid (line 227) | func (at *AutoTrader) adjustGrid(d *kernel.Decision) error { method syncGridState (line 247) | func (at *AutoTrader) syncGridState() { method closeAllPositions (line 324) | func (at *AutoTrader) closeAllPositions() error { method checkAndExecuteStopLoss (line 360) | func (at *AutoTrader) checkAndExecuteStopLoss() { FILE: trader/auto_trader_grid_regime.go method checkBoxBreakout (line 16) | func (at *AutoTrader) checkBoxBreakout() error { method executeBreakoutAction (line 79) | func (at *AutoTrader) executeBreakoutAction(action BreakoutAction) error { method executeDirectionAdjustment (line 119) | func (at *AutoTrader) executeDirectionAdjustment(newDirection market.Gri... method adjustGridDirection (line 140) | func (at *AutoTrader) adjustGridDirection(newDirection market.GridDirect... method checkFalseBreakoutRecovery (line 169) | func (at *AutoTrader) checkFalseBreakoutRecovery() error { method GetGridRiskInfo (line 227) | func (at *AutoTrader) GetGridRiskInfo() *GridRiskInfo { FILE: trader/auto_trader_loop.go method runCycle (line 14) | func (at *AutoTrader) runCycle() error { method buildTradingContext (line 232) | func (at *AutoTrader) buildTradingContext() (*kernel.Context, error) { function sortDecisionsByPriority (line 527) | func sortDecisionsByPriority(decisions []kernel.Decision) []kernel.Decis... FILE: trader/auto_trader_orders.go method executeDecisionWithRecord (line 13) | func (at *AutoTrader) executeDecisionWithRecord(decision *kernel.Decisio... method executeOpenLongWithRecord (line 32) | func (at *AutoTrader) executeOpenLongWithRecord(decision *kernel.Decisio... method executeOpenShortWithRecord (line 149) | func (at *AutoTrader) executeOpenShortWithRecord(decision *kernel.Decisi... method executeCloseLongWithRecord (line 266) | func (at *AutoTrader) executeCloseLongWithRecord(decision *kernel.Decisi... method executeCloseShortWithRecord (line 330) | func (at *AutoTrader) executeCloseShortWithRecord(decision *kernel.Decis... FILE: trader/auto_trader_risk.go method startDrawdownMonitor (line 11) | func (at *AutoTrader) startDrawdownMonitor() { method checkPositionDrawdown (line 34) | func (at *AutoTrader) checkPositionDrawdown() { method emergencyClosePosition (line 110) | func (at *AutoTrader) emergencyClosePosition(symbol, side string) error { method GetPeakPnLCache (line 132) | func (at *AutoTrader) GetPeakPnLCache() map[string]float64 { method UpdatePeakPnL (line 145) | func (at *AutoTrader) UpdatePeakPnL(symbol, side string, currentPnLPct f... method ClearPeakPnLCache (line 162) | func (at *AutoTrader) ClearPeakPnLCache(symbol, side string) { function isBTCETH (line 175) | func isBTCETH(symbol string) bool { method enforcePositionValueRatio (line 185) | func (at *AutoTrader) enforcePositionValueRatio(positionSizeUSD float64,... method enforceMinPositionSize (line 220) | func (at *AutoTrader) enforceMinPositionSize(positionSizeUSD float64) er... method enforceMaxPositions (line 237) | func (at *AutoTrader) enforceMaxPositions(currentPositionCount int) error { function getSideFromAction (line 254) | func getSideFromAction(action string) string { FILE: trader/binance/futures.go function getBrOrderID (line 21) | func getBrOrderID() string { type FuturesTrader (line 46) | type FuturesTrader struct method setDualSidePosition (line 89) | func (t *FuturesTrader) setDualSidePosition() error { function NewFuturesTrader (line 64) | func NewFuturesTrader(apiKey, secretKey string, userId string) *FuturesT... function syncBinanceServerTime (line 111) | func syncBinanceServerTime(client *futures.Client) { function contains (line 126) | func contains(s, substr string) bool { function stringContains (line 130) | func stringContains(s, substr string) bool { function calculatePrecision (line 140) | func calculatePrecision(stepSize string) int { function trimTrailingZeros (line 163) | func trimTrailingZeros(s string) string { FILE: trader/binance/futures_account.go method GetBalance (line 13) | func (t *FuturesTrader) GetBalance() (map[string]interface{}, error) { method GetClosedPnL (line 55) | func (t *FuturesTrader) GetClosedPnL(startTime time.Time, limit int) ([]... method GetTrades (line 112) | func (t *FuturesTrader) GetTrades(startTime time.Time, limit int) ([]typ... method GetTradesForSymbol (line 155) | func (t *FuturesTrader) GetTradesForSymbol(symbol string, startTime time... method GetTradesForSymbolFromID (line 198) | func (t *FuturesTrader) GetTradesForSymbolFromID(symbol string, fromID i... method GetCommissionSymbols (line 241) | func (t *FuturesTrader) GetCommissionSymbols(lastSyncTime time.Time) ([]... method GetPnLSymbols (line 268) | func (t *FuturesTrader) GetPnLSymbols(lastSyncTime time.Time) ([]string,... FILE: trader/binance/futures_orders.go method OpenLong (line 14) | func (t *FuturesTrader) OpenLong(symbol string, quantity float64, levera... method OpenShort (line 69) | func (t *FuturesTrader) OpenShort(symbol string, quantity float64, lever... method CloseLong (line 124) | func (t *FuturesTrader) CloseLong(symbol string, quantity float64) (map[... method CloseShort (line 179) | func (t *FuturesTrader) CloseShort(symbol string, quantity float64) (map... method CancelStopLossOrders (line 235) | func (t *FuturesTrader) CancelStopLossOrders(symbol string) error { method CancelTakeProfitOrders (line 311) | func (t *FuturesTrader) CancelTakeProfitOrders(symbol string) error { method CancelAllOrders (line 387) | func (t *FuturesTrader) CancelAllOrders(symbol string) error { method PlaceLimitOrder (line 418) | func (t *FuturesTrader) PlaceLimitOrder(req *types.LimitOrderRequest) (*... method CancelOrder (line 484) | func (t *FuturesTrader) CancelOrder(symbol, orderID string) error { method GetOrderBook (line 506) | func (t *FuturesTrader) GetOrderBook(symbol string, depth int) (bids, as... method CancelStopOrders (line 537) | func (t *FuturesTrader) CancelStopOrders(symbol string) error { method GetOpenOrders (line 596) | func (t *FuturesTrader) GetOpenOrders(symbol string) ([]types.OpenOrder,... method SetStopLoss (line 655) | func (t *FuturesTrader) SetStopLoss(symbol string, positionSide string, ... method SetTakeProfit (line 689) | func (t *FuturesTrader) SetTakeProfit(symbol string, positionSide string... method GetOrderStatus (line 722) | func (t *FuturesTrader) GetOrderStatus(symbol string, orderID string) (m... FILE: trader/binance/futures_positions.go method GetPositions (line 14) | func (t *FuturesTrader) GetPositions() ([]map[string]interface{}, error) { method SetMarginMode (line 69) | func (t *FuturesTrader) SetMarginMode(symbol string, isCrossMargin bool)... method SetLeverage (line 120) | func (t *FuturesTrader) SetLeverage(symbol string, leverage int) error { method GetMarketPrice (line 166) | func (t *FuturesTrader) GetMarketPrice(symbol string) (float64, error) { method CalculatePositionSize (line 185) | func (t *FuturesTrader) CalculatePositionSize(balance, riskPercent, pric... method GetMinNotional (line 193) | func (t *FuturesTrader) GetMinNotional(symbol string) float64 { method CheckMinNotional (line 199) | func (t *FuturesTrader) CheckMinNotional(symbol string, quantity float64... method GetSymbolPrecision (line 219) | func (t *FuturesTrader) GetSymbolPrecision(symbol string) (int, error) { method FormatQuantity (line 244) | func (t *FuturesTrader) FormatQuantity(symbol string, quantity float64) ... method GetSymbolPricePrecision (line 256) | func (t *FuturesTrader) GetSymbolPricePrecision(symbol string) (int, err... method FormatPrice (line 280) | func (t *FuturesTrader) FormatPrice(symbol string, price float64) (strin... FILE: trader/binance/futures_test.go type BinanceFuturesTestSuite (line 24) | type BinanceFuturesTestSuite struct method Cleanup (line 290) | func (s *BinanceFuturesTestSuite) Cleanup() { function NewBinanceFuturesTestSuite (line 30) | func NewBinanceFuturesTestSuite(t *testing.T) *BinanceFuturesTestSuite { function TestFuturesTrader_InterfaceCompliance (line 302) | func TestFuturesTrader_InterfaceCompliance(t *testing.T) { function TestFuturesTrader_CommonInterface (line 307) | func TestFuturesTrader_CommonInterface(t *testing.T) { function TestNewFuturesTrader (line 321) | func TestNewFuturesTrader(t *testing.T) { function TestCalculatePositionSize (line 360) | func TestCalculatePositionSize(t *testing.T) { function TestGetBrOrderID (line 406) | func TestGetBrOrderID(t *testing.T) { FILE: trader/binance/order_sync.go method SyncOrdersFromBinance (line 24) | func (t *FuturesTrader) SyncOrdersFromBinance(traderID string, exchangeI... method getPositionSymbols (line 295) | func (t *FuturesTrader) getPositionSymbols() []string { method determineOrderAction (line 311) | func (t *FuturesTrader) determineOrderAction(side, positionSide string, ... method StartOrderSync (line 352) | func (t *FuturesTrader) StartOrderSync(traderID string, exchangeID strin... FILE: trader/binance/order_sync_test.go function skipIfNoLiveTest (line 11) | func skipIfNoLiveTest(t *testing.T) { function getBinanceTestCredentials (line 17) | func getBinanceTestCredentials(t *testing.T) (string, string) { function createBinanceTestTrader (line 26) | func createBinanceTestTrader(t *testing.T) *FuturesTrader { function TestBinanceConnection (line 33) | func TestBinanceConnection(t *testing.T) { function TestBinanceGetPositions (line 45) | func TestBinanceGetPositions(t *testing.T) { function TestBinanceGetCommissionSymbols (line 68) | func TestBinanceGetCommissionSymbols(t *testing.T) { function TestBinanceGetPnLSymbols (line 95) | func TestBinanceGetPnLSymbols(t *testing.T) { function TestBinanceGetAllIncomeTypes (line 121) | func TestBinanceGetAllIncomeTypes(t *testing.T) { function TestBinanceGetTradesForSymbol (line 177) | func TestBinanceGetTradesForSymbol(t *testing.T) { function TestBinanceTimestampFormats (line 216) | func TestBinanceTimestampFormats(t *testing.T) { function TestBinanceFullSyncSimulation (line 250) | func TestBinanceFullSyncSimulation(t *testing.T) { function TestBinanceTradeIDRange (line 359) | func TestBinanceTradeIDRange(t *testing.T) { function TestBinanceIncomeAPIDirectCall (line 411) | func TestBinanceIncomeAPIDirectCall(t *testing.T) { FILE: trader/binance/sync_e2e_test.go function TestBinanceSyncE2E (line 11) | func TestBinanceSyncE2E(t *testing.T) { function TestBinanceSyncWithExistingData (line 143) | func TestBinanceSyncWithExistingData(t *testing.T) { FILE: trader/binance/sync_verify_test.go function repeatStr (line 14) | func repeatStr(s string, n int) string { function TestBinanceSyncVerification (line 19) | func TestBinanceSyncVerification(t *testing.T) { function floatEqual (line 410) | func floatEqual(a, b, tolerance float64) bool { function TestBinanceDetailedTradeComparison (line 415) | func TestBinanceDetailedTradeComparison(t *testing.T) { FILE: trader/bitget/order_sync.go type BitgetTrade (line 16) | type BitgetTrade struct method GetTrades (line 32) | func (t *BitgetTrader) GetTrades(startTime time.Time, limit int) ([]Bitg... method SyncOrdersFromBitget (line 159) | func (t *BitgetTrader) SyncOrdersFromBitget(traderID string, exchangeID ... method StartOrderSync (line 282) | func (t *BitgetTrader) StartOrderSync(traderID string, exchangeID string... FILE: trader/bitget/trader.go constant bitgetBaseURL (line 21) | bitgetBaseURL = "https://api.bitget.com" constant bitgetAccountPath (line 22) | bitgetAccountPath = "/api/v2/mix/account/accounts" constant bitgetPositionPath (line 23) | bitgetPositionPath = "/api/v2/mix/position/all-position" constant bitgetOrderPath (line 24) | bitgetOrderPath = "/api/v2/mix/order/place-order" constant bitgetLeveragePath (line 25) | bitgetLeveragePath = "/api/v2/mix/account/set-leverage" constant bitgetTickerPath (line 26) | bitgetTickerPath = "/api/v2/mix/market/ticker" constant bitgetContractsPath (line 27) | bitgetContractsPath = "/api/v2/mix/market/contracts" constant bitgetCancelOrderPath (line 28) | bitgetCancelOrderPath = "/api/v2/mix/order/cancel-order" constant bitgetPendingPath (line 29) | bitgetPendingPath = "/api/v2/mix/order/orders-pending" constant bitgetHistoryPath (line 30) | bitgetHistoryPath = "/api/v2/mix/order/orders-history" constant bitgetMarginModePath (line 31) | bitgetMarginModePath = "/api/v2/mix/account/set-margin-mode" constant bitgetPositionModePath (line 32) | bitgetPositionModePath = "/api/v2/mix/account/set-position-mode" type BitgetTrader (line 36) | type BitgetTrader struct method setPositionMode (line 110) | func (t *BitgetTrader) setPositionMode() error { method sign (line 129) | func (t *BitgetTrader) sign(timestamp, method, requestPath, body strin... method doRequest (line 138) | func (t *BitgetTrader) doRequest(method, path string, body interface{}... method convertSymbol (line 215) | func (t *BitgetTrader) convertSymbol(symbol string) string { method getContract (line 221) | func (t *BitgetTrader) getContract(symbol string) (*BitgetContract, er... method FormatQuantity (line 291) | func (t *BitgetTrader) FormatQuantity(symbol string, quantity float64)... method clearCache (line 303) | func (t *BitgetTrader) clearCache() { type BitgetContract (line 64) | type BitgetContract struct type BitgetResponse (line 76) | type BitgetResponse struct function NewBitgetTrader (line 84) | func NewBitgetTrader(apiKey, secretKey, passphrase string) *BitgetTrader { function genBitgetClientOid (line 314) | func genBitgetClientOid() string { FILE: trader/bitget/trader_account.go method GetBalance (line 13) | func (t *BitgetTrader) GetBalance() (map[string]interface{}, error) { method SetMarginMode (line 71) | func (t *BitgetTrader) SetMarginMode(symbol string, isCrossMargin bool) ... method SetLeverage (line 103) | func (t *BitgetTrader) SetLeverage(symbol string, leverage int) error { method GetMarketPrice (line 127) | func (t *BitgetTrader) GetMarketPrice(symbol string) (float64, error) { method GetOrderBook (line 162) | func (t *BitgetTrader) GetOrderBook(symbol string, depth int) (bids, ask... FILE: trader/bitget/trader_orders.go method OpenLong (line 13) | func (t *BitgetTrader) OpenLong(symbol string, quantity float64, leverag... method OpenShort (line 67) | func (t *BitgetTrader) OpenShort(symbol string, quantity float64, levera... method CloseLong (line 121) | func (t *BitgetTrader) CloseLong(symbol string, quantity float64) (map[s... method CloseShort (line 184) | func (t *BitgetTrader) CloseShort(symbol string, quantity float64) (map[... method SetStopLoss (line 252) | func (t *BitgetTrader) SetStopLoss(symbol string, positionSide string, q... method SetTakeProfit (line 291) | func (t *BitgetTrader) SetTakeProfit(symbol string, positionSide string,... method CancelStopLossOrders (line 330) | func (t *BitgetTrader) CancelStopLossOrders(symbol string) error { method CancelTakeProfitOrders (line 335) | func (t *BitgetTrader) CancelTakeProfitOrders(symbol string) error { method cancelPlanOrders (line 340) | func (t *BitgetTrader) cancelPlanOrders(symbol string, planType string) ... method CancelAllOrders (line 380) | func (t *BitgetTrader) CancelAllOrders(symbol string) error { method CancelStopOrders (line 423) | func (t *BitgetTrader) CancelStopOrders(symbol string) error { method GetOrderStatus (line 430) | func (t *BitgetTrader) GetOrderStatus(symbol string, orderID string) (ma... method GetOpenOrders (line 494) | func (t *BitgetTrader) GetOpenOrders(symbol string) ([]types.OpenOrder, ... method PlaceLimitOrder (line 625) | func (t *BitgetTrader) PlaceLimitOrder(req *types.LimitOrderRequest) (*t... method CancelOrder (line 695) | func (t *BitgetTrader) CancelOrder(symbol, orderID string) error { FILE: trader/bitget/trader_positions.go method GetPositions (line 12) | func (t *BitgetTrader) GetPositions() ([]map[string]interface{}, error) { method GetClosedPnL (line 96) | func (t *BitgetTrader) GetClosedPnL(startTime time.Time, limit int) ([]t... FILE: trader/bybit/order_sync.go type BybitTrade (line 21) | type BybitTrade struct method GetTrades (line 38) | func (t *BybitTrader) GetTrades(startTime time.Time, limit int) ([]Bybit... method getTradesViaHTTP (line 43) | func (t *BybitTrader) getTradesViaHTTP(startTime time.Time, limit int) (... method parseTradesResult (line 106) | func (t *BybitTrader) parseTradesResult(list []map[string]interface{}) (... method SyncOrdersFromBybit (line 178) | func (t *BybitTrader) SyncOrdersFromBybit(traderID string, exchangeID st... method StartOrderSync (line 301) | func (t *BybitTrader) StartOrderSync(traderID string, exchangeID string,... FILE: trader/bybit/trader.go type BybitTrader (line 19) | type BybitTrader struct method getQtyStep (line 86) | func (t *BybitTrader) getQtyStep(symbol string) float64 { method FormatQuantity (line 144) | func (t *BybitTrader) FormatQuantity(symbol string, quantity float64) ... method clearCache (line 169) | func (t *BybitTrader) clearCache() { method parseOrderResult (line 179) | func (t *BybitTrader) parseOrderResult(result *bybit.ServerResponse) (... function NewBybitTrader (line 43) | func NewBybitTrader(apiKey, secretKey string) *BybitTrader { type headerRoundTripper (line 75) | type headerRoundTripper struct method RoundTrip (line 80) | func (h *headerRoundTripper) RoundTrip(req *http.Request) (*http.Respo... FILE: trader/bybit/trader_account.go method GetBalance (line 18) | func (t *BybitTrader) GetBalance() (map[string]interface{}, error) { method GetClosedPnL (line 93) | func (t *BybitTrader) GetClosedPnL(startTime time.Time, limit int) ([]ty... method getClosedPnLViaHTTP (line 99) | func (t *BybitTrader) getClosedPnLViaHTTP(startTime time.Time, limit int... method parseClosedPnLResult (line 160) | func (t *BybitTrader) parseClosedPnLResult(resultData interface{}) ([]ty... FILE: trader/bybit/trader_orders.go method OpenLong (line 16) | func (t *BybitTrader) OpenLong(symbol string, quantity float64, leverage... method OpenShort (line 59) | func (t *BybitTrader) OpenShort(symbol string, quantity float64, leverag... method CloseLong (line 102) | func (t *BybitTrader) CloseLong(symbol string, quantity float64) (map[st... method CloseShort (line 147) | func (t *BybitTrader) CloseShort(symbol string, quantity float64) (map[s... method SetLeverage (line 192) | func (t *BybitTrader) SetLeverage(symbol string, leverage int) error { method SetMarginMode (line 217) | func (t *BybitTrader) SetMarginMode(symbol string, isCrossMargin bool) e... method GetMarketPrice (line 245) | func (t *BybitTrader) GetMarketPrice(symbol string) (float64, error) { method SetStopLoss (line 282) | func (t *BybitTrader) SetStopLoss(symbol string, positionSide string, qu... method SetTakeProfit (line 328) | func (t *BybitTrader) SetTakeProfit(symbol string, positionSide string, ... method CancelStopLossOrders (line 374) | func (t *BybitTrader) CancelStopLossOrders(symbol string) error { method CancelTakeProfitOrders (line 379) | func (t *BybitTrader) CancelTakeProfitOrders(symbol string) error { method CancelAllOrders (line 384) | func (t *BybitTrader) CancelAllOrders(symbol string) error { method CancelStopOrders (line 399) | func (t *BybitTrader) CancelStopOrders(symbol string) error { method cancelConditionalOrders (line 409) | func (t *BybitTrader) cancelConditionalOrders(symbol string, orderType s... method GetOrderStatus (line 466) | func (t *BybitTrader) GetOrderStatus(symbol string, orderID string) (map... method GetOpenOrders (line 527) | func (t *BybitTrader) GetOpenOrders(symbol string) ([]types.OpenOrder, e... method PlaceLimitOrder (line 589) | func (t *BybitTrader) PlaceLimitOrder(req *types.LimitOrderRequest) (*ty... method CancelOrder (line 664) | func (t *BybitTrader) CancelOrder(symbol, orderID string) error { method GetOrderBook (line 686) | func (t *BybitTrader) GetOrderBook(symbol string, depth int) (bids, asks... FILE: trader/bybit/trader_positions.go method GetPositions (line 13) | func (t *BybitTrader) GetPositions() ([]map[string]interface{}, error) { FILE: trader/exchange_sync_test.go type TestScenario (line 14) | type TestScenario struct type TestTrade (line 21) | type TestTrade struct type ExpectedPosition (line 32) | type ExpectedPosition struct function getStandardTestScenarios (line 40) | func getStandardTestScenarios() []TestScenario { function runStandardTests (line 114) | func runStandardTests(t *testing.T, exchangeName string) { function TestAllExchangesStandardScenarios (line 192) | func TestAllExchangesStandardScenarios(t *testing.T) { function TestPositionAccumulationBug (line 203) | func TestPositionAccumulationBug(t *testing.T) { function TestQuantityPrecision (line 288) | func TestQuantityPrecision(t *testing.T) { FILE: trader/gate/order_sync.go type GateTrade (line 18) | type GateTrade struct method GetTrades (line 34) | func (t *GateTrader) GetTrades(startTime time.Time, limit int) ([]GateTr... method SyncOrdersFromGate (line 153) | func (t *GateTrader) SyncOrdersFromGate(traderID string, exchangeID stri... method StartOrderSync (line 294) | func (t *GateTrader) StartOrderSync(traderID string, exchangeID string, ... FILE: trader/gate/trader.go type GateTrader (line 15) | type GateTrader struct method convertSymbol (line 58) | func (t *GateTrader) convertSymbol(symbol string) string { method revertSymbol (line 72) | func (t *GateTrader) revertSymbol(symbol string) string { method getContract (line 77) | func (t *GateTrader) getContract(symbol string) (*gateapi.Contract, er... method clearCache (line 103) | func (t *GateTrader) clearCache() { function NewGateTrader (line 34) | func NewGateTrader(apiKey, secretKey string) *GateTrader { FILE: trader/gate/trader_account.go method GetBalance (line 14) | func (t *GateTrader) GetBalance() (map[string]interface{}, error) { method GetPositions (line 50) | func (t *GateTrader) GetPositions() ([]map[string]interface{}, error) { method GetClosedPnL (line 126) | func (t *GateTrader) GetClosedPnL(startTime time.Time, limit int) ([]typ... FILE: trader/gate/trader_orders.go method SetLeverage (line 16) | func (t *GateTrader) SetLeverage(symbol string, leverage int) error { method SetMarginMode (line 34) | func (t *GateTrader) SetMarginMode(symbol string, isCrossMargin bool) er... method OpenLong (line 43) | func (t *GateTrader) OpenLong(symbol string, quantity float64, leverage ... method OpenShort (line 101) | func (t *GateTrader) OpenShort(symbol string, quantity float64, leverage... method CloseLong (line 158) | func (t *GateTrader) CloseLong(symbol string, quantity float64) (map[str... method CloseShort (line 226) | func (t *GateTrader) CloseShort(symbol string, quantity float64) (map[st... method GetMarketPrice (line 299) | func (t *GateTrader) GetMarketPrice(symbol string) (float64, error) { method SetStopLoss (line 320) | func (t *GateTrader) SetStopLoss(symbol string, positionSide string, qua... method SetTakeProfit (line 372) | func (t *GateTrader) SetTakeProfit(symbol string, positionSide string, q... method CancelStopLossOrders (line 423) | func (t *GateTrader) CancelStopLossOrders(symbol string) error { method CancelTakeProfitOrders (line 428) | func (t *GateTrader) CancelTakeProfitOrders(symbol string) error { method cancelTriggerOrders (line 433) | func (t *GateTrader) cancelTriggerOrders(symbol string, orderType string... method CancelAllOrders (line 458) | func (t *GateTrader) CancelAllOrders(symbol string) error { method CancelStopOrders (line 477) | func (t *GateTrader) CancelStopOrders(symbol string) error { method FormatQuantity (line 484) | func (t *GateTrader) FormatQuantity(symbol string, quantity float64) (st... method GetOrderStatus (line 502) | func (t *GateTrader) GetOrderStatus(symbol string, orderID string) (map[... method GetOpenOrders (line 563) | func (t *GateTrader) GetOpenOrders(symbol string) ([]types.OpenOrder, er... FILE: trader/gate/trader_test.go type GateTraderTestSuite (line 22) | type GateTraderTestSuite struct method Cleanup (line 164) | func (s *GateTraderTestSuite) Cleanup() { function NewGateTraderTestSuite (line 28) | func NewGateTraderTestSuite(t *testing.T) *GateTraderTestSuite { function TestGateTrader_InterfaceCompliance (line 176) | func TestGateTrader_InterfaceCompliance(t *testing.T) { function TestNewGateTrader (line 185) | func TestNewGateTrader(t *testing.T) { function TestGateTrader_SymbolConversion (line 229) | func TestGateTrader_SymbolConversion(t *testing.T) { function TestGateTrader_RevertSymbol (line 268) | func TestGateTrader_RevertSymbol(t *testing.T) { function TestGateTrader_CacheDuration (line 302) | func TestGateTrader_CacheDuration(t *testing.T) { function TestGateTrader_ClearCache (line 310) | func TestGateTrader_ClearCache(t *testing.T) { function TestGateTrader_MockServerResponseFormat (line 330) | func TestGateTrader_MockServerResponseFormat(t *testing.T) { FILE: trader/grid_regime.go function classifyRegimeLevel (line 16) | func classifyRegimeLevel(bollingerWidth, atr14Pct float64) market.Regime... function getRegimeLeverageLimit (line 37) | func getRegimeLeverageLimit(level market.RegimeLevel, config *store.Grid... function getRegimePositionLimit (line 65) | func getRegimePositionLimit(level market.RegimeLevel, config *store.Grid... function detectBoxBreakout (line 98) | func detectBoxBreakout(box *market.BoxData) (market.BreakoutLevel, strin... constant BreakoutConfirmRequired (line 136) | BreakoutConfirmRequired = 3 type BreakoutState (line 139) | type BreakoutState struct function confirmBreakout (line 147) | func confirmBreakout(state *BreakoutState, currentLevel market.BreakoutL... type BreakoutAction (line 175) | type BreakoutAction constant BreakoutActionNone (line 178) | BreakoutActionNone BreakoutAction = iota constant BreakoutActionReducePosition (line 179) | BreakoutActionReducePosition constant BreakoutActionPauseGrid (line 180) | BreakoutActionPauseGrid constant BreakoutActionCloseAll (line 181) | BreakoutActionCloseAll function getBreakoutAction (line 185) | func getBreakoutAction(level market.BreakoutLevel) BreakoutAction { constant BreakoutActionAdjustDirection (line 204) | BreakoutActionAdjustDirection BreakoutAction = 4 function determineGridDirection (line 212) | func determineGridDirection(box *market.BoxData, currentDirection market... function determineRecoveryDirection (line 252) | func determineRecoveryDirection(price float64, box *market.BoxData, curr... function getBreakoutActionWithDirection (line 282) | func getBreakoutActionWithDirection(level market.BreakoutLevel, enableDi... function shouldRecoverDirection (line 304) | func shouldRecoverDirection(box *market.BoxData, currentDirection market... FILE: trader/grid_regime_test.go function TestClassifyRegimeLevel (line 8) | func TestClassifyRegimeLevel(t *testing.T) { function TestDetectBoxBreakout (line 31) | func TestDetectBoxBreakout(t *testing.T) { function TestBreakoutConfirmation (line 70) | func TestBreakoutConfirmation(t *testing.T) { function TestGetBreakoutAction (line 103) | func TestGetBreakoutAction(t *testing.T) { function TestGetBuySellRatio (line 128) | func TestGetBuySellRatio(t *testing.T) { function TestDetermineGridDirection (line 161) | func TestDetermineGridDirection(t *testing.T) { function TestDetermineRecoveryDirection (line 237) | func TestDetermineRecoveryDirection(t *testing.T) { function TestGetBreakoutActionWithDirection (line 277) | func TestGetBreakoutActionWithDirection(t *testing.T) { function TestShouldRecoverDirection (line 307) | func TestShouldRecoverDirection(t *testing.T) { FILE: trader/helpers.go function SafeFloat64 (line 9) | func SafeFloat64(data map[string]interface{}, key string) (float64, erro... function SafeString (line 37) | func SafeString(data map[string]interface{}, key string) (string, error) { function SafeInt (line 54) | func SafeInt(data map[string]interface{}, key string) (int, error) { FILE: trader/hyperliquid/order_sync.go method SyncOrdersFromHyperliquid (line 17) | func (t *HyperliquidTrader) SyncOrdersFromHyperliquid(traderID string, e... method StartOrderSync (line 139) | func (t *HyperliquidTrader) StartOrderSync(traderID string, exchangeID s... FILE: trader/hyperliquid/sync_test.go function TestHyperliquidOrderDirectionParsing (line 15) | func TestHyperliquidOrderDirectionParsing(t *testing.T) { function TestHyperliquidPositionBuilding (line 77) | func TestHyperliquidPositionBuilding(t *testing.T) { function TestHyperliquidBugScenario (line 307) | func TestHyperliquidBugScenario(t *testing.T) { FILE: trader/hyperliquid/trader.go type HyperliquidTrader (line 17) | type HyperliquidTrader struct method FormatQuantity (line 233) | func (t *HyperliquidTrader) FormatQuantity(symbol string, quantity flo... method getSzDecimals (line 243) | func (t *HyperliquidTrader) getSzDecimals(coin string) int { method roundToSzDecimals (line 265) | func (t *HyperliquidTrader) roundToSzDecimals(coin string, quantity fl... method roundPriceToSigfigs (line 280) | func (t *HyperliquidTrader) roundPriceToSigfigs(price float64) float64 { type xyzDexMeta (line 33) | type xyzDexMeta struct type xyzAssetInfo (line 38) | type xyzAssetInfo struct function isXyzDexAsset (line 71) | func isXyzDexAsset(symbol string) bool { function convertSymbolToHyperliquid (line 88) | func convertSymbolToHyperliquid(symbol string) string { function absFloat (line 112) | func absFloat(x float64) float64 { function NewHyperliquidTrader (line 121) | func NewHyperliquidTrader(privateKeyHex string, walletAddr string, testn... FILE: trader/hyperliquid/trader_account.go method GetBalance (line 17) | func (t *HyperliquidTrader) GetBalance() (map[string]interface{}, error) { type xyzDexState (line 175) | type xyzDexState struct type xyzMarginSummary (line 182) | type xyzMarginSummary struct type xyzAssetPosition (line 187) | type xyzAssetPosition struct method getXYZDexBalance (line 203) | func (t *HyperliquidTrader) getXYZDexBalance() (accountValue float64, un... method GetMarketPrice (line 270) | func (t *HyperliquidTrader) GetMarketPrice(symbol string) (float64, erro... method getXyzMarketPrice (line 297) | func (t *HyperliquidTrader) getXyzMarketPrice(coin string) (float64, err... method GetOrderStatus (line 358) | func (t *HyperliquidTrader) GetOrderStatus(symbol string, orderID string... method GetClosedPnL (line 405) | func (t *HyperliquidTrader) GetClosedPnL(startTime time.Time, limit int)... method GetTrades (line 456) | func (t *HyperliquidTrader) GetTrades(startTime time.Time, limit int) ([... method GetOpenOrders (line 528) | func (t *HyperliquidTrader) GetOpenOrders(symbol string) ([]types.OpenOr... method GetOrderBook (line 563) | func (t *HyperliquidTrader) GetOrderBook(symbol string, depth int) (bids... FILE: trader/hyperliquid/trader_orders.go method OpenLong (line 19) | func (t *HyperliquidTrader) OpenLong(symbol string, quantity float64, le... method OpenShort (line 91) | func (t *HyperliquidTrader) OpenShort(symbol string, quantity float64, l... method CloseLong (line 163) | func (t *HyperliquidTrader) CloseLong(symbol string, quantity float64) (... method CloseShort (line 250) | func (t *HyperliquidTrader) CloseShort(symbol string, quantity float64) ... method CancelStopLossOrders (line 337) | func (t *HyperliquidTrader) CancelStopLossOrders(symbol string) error { method CancelTakeProfitOrders (line 345) | func (t *HyperliquidTrader) CancelTakeProfitOrders(symbol string) error { method CancelAllOrders (line 353) | func (t *HyperliquidTrader) CancelAllOrders(symbol string) error { method CancelStopOrders (line 385) | func (t *HyperliquidTrader) CancelStopOrders(symbol string) error { method cancelXyzOrders (line 427) | func (t *HyperliquidTrader) cancelXyzOrders(coin string) error { method cancelXyzOrder (line 495) | func (t *HyperliquidTrader) cancelXyzOrder(oid int64) error { function floatToWireStr (line 570) | func floatToWireStr(x float64) string { method placeXyzOrder (line 584) | func (t *HyperliquidTrader) placeXyzOrder(coin string, isBuy bool, size ... method placeXyzTriggerOrder (line 746) | func (t *HyperliquidTrader) placeXyzTriggerOrder(coin string, isBuy bool... method SetStopLoss (line 900) | func (t *HyperliquidTrader) SetStopLoss(symbol string, positionSide stri... method SetTakeProfit (line 948) | func (t *HyperliquidTrader) SetTakeProfit(symbol string, positionSide st... method PlaceLimitOrder (line 997) | func (t *HyperliquidTrader) PlaceLimitOrder(req *types.LimitOrderRequest... method CancelOrder (line 1059) | func (t *HyperliquidTrader) CancelOrder(symbol, orderID string) error { FILE: trader/hyperliquid/trader_positions.go method GetPositions (line 11) | func (t *HyperliquidTrader) GetPositions() ([]map[string]interface{}, er... method SetMarginMode (line 142) | func (t *HyperliquidTrader) SetMarginMode(symbol string, isCrossMargin b... method SetLeverage (line 154) | func (t *HyperliquidTrader) SetLeverage(symbol string, leverage int) err... FILE: trader/hyperliquid/trader_race_test.go function TestMetaConcurrentAccess (line 12) | func TestMetaConcurrentAccess(t *testing.T) { function TestMetaConcurrentReadWrite (line 46) | func TestMetaConcurrentReadWrite(t *testing.T) { function TestGetSzDecimals_NilMeta (line 97) | func TestGetSzDecimals_NilMeta(t *testing.T) { function TestGetSzDecimals_ValidMeta (line 113) | func TestGetSzDecimals_ValidMeta(t *testing.T) { function TestMetaMutex_NoRaceCondition (line 146) | func TestMetaMutex_NoRaceCondition(t *testing.T) { FILE: trader/hyperliquid/trader_sync.go method refreshMetaIfNeeded (line 15) | func (t *HyperliquidTrader) refreshMetaIfNeeded(coin string) error { method fetchXyzMeta (line 50) | func (t *HyperliquidTrader) fetchXyzMeta() error { method getXyzSzDecimals (line 100) | func (t *HyperliquidTrader) getXyzSzDecimals(coin string) int { method getXyzAssetIndex (line 127) | func (t *HyperliquidTrader) getXyzAssetIndex(baseCoin string) int { FILE: trader/indodax/trader.go constant indodaxBaseURL (line 21) | indodaxBaseURL = "https://indodax.com" constant indodaxPublicAPI (line 22) | indodaxPublicAPI = "/api" constant indodaxPrivateAPI (line 23) | indodaxPrivateAPI = "/tapi" type IndodaxTrader (line 30) | type IndodaxTrader struct method getNonce (line 105) | func (t *IndodaxTrader) getNonce() int64 { method sign (line 113) | func (t *IndodaxTrader) sign(body string) string { method doPublicRequest (line 120) | func (t *IndodaxTrader) doPublicRequest(path string) ([]byte, error) { method doPrivateRequest (line 147) | func (t *IndodaxTrader) doPrivateRequest(params url.Values) ([]byte, e... method convertSymbol (line 195) | func (t *IndodaxTrader) convertSymbol(symbol string) string { method convertSymbolBack (line 218) | func (t *IndodaxTrader) convertSymbolBack(indodaxSymbol string) string { method getCoinFromSymbol (line 224) | func (t *IndodaxTrader) getCoinFromSymbol(symbol string) string { method loadPairs (line 234) | func (t *IndodaxTrader) loadPairs() error { method getPair (line 269) | func (t *IndodaxTrader) getPair(symbol string) (*IndodaxPair, error) { method clearCache (line 293) | func (t *IndodaxTrader) clearCache() { type IndodaxPair (line 53) | type IndodaxPair struct type IndodaxResponse (line 70) | type IndodaxResponse struct type IndodaxTicker (line 78) | type IndodaxTicker struct type IndodaxTickerResponse (line 88) | type IndodaxTickerResponse struct function NewIndodaxTrader (line 93) | func NewIndodaxTrader(apiKey, secretKey string) *IndodaxTrader { function parseFloat (line 301) | func parseFloat(v interface{}) float64 { FILE: trader/indodax/trader_account.go method GetBalance (line 15) | func (t *IndodaxTrader) GetBalance() (map[string]interface{}, error) { method GetPositions (line 87) | func (t *IndodaxTrader) GetPositions() ([]map[string]interface{}, error) { method GetClosedPnL (line 163) | func (t *IndodaxTrader) GetClosedPnL(startTime time.Time, limit int) ([]... FILE: trader/indodax/trader_orders.go method OpenLong (line 15) | func (t *IndodaxTrader) OpenLong(symbol string, quantity float64, levera... method OpenShort (line 58) | func (t *IndodaxTrader) OpenShort(symbol string, quantity float64, lever... method CloseLong (line 63) | func (t *IndodaxTrader) CloseLong(symbol string, quantity float64) (map[... method CloseShort (line 119) | func (t *IndodaxTrader) CloseShort(symbol string, quantity float64) (map... method SetLeverage (line 124) | func (t *IndodaxTrader) SetLeverage(symbol string, leverage int) error { method SetMarginMode (line 130) | func (t *IndodaxTrader) SetMarginMode(symbol string, isCrossMargin bool)... method GetMarketPrice (line 136) | func (t *IndodaxTrader) GetMarketPrice(symbol string) (float64, error) { method SetStopLoss (line 158) | func (t *IndodaxTrader) SetStopLoss(symbol string, positionSide string, ... method SetTakeProfit (line 163) | func (t *IndodaxTrader) SetTakeProfit(symbol string, positionSide string... method CancelStopLossOrders (line 168) | func (t *IndodaxTrader) CancelStopLossOrders(symbol string) error { method CancelTakeProfitOrders (line 173) | func (t *IndodaxTrader) CancelTakeProfitOrders(symbol string) error { method CancelAllOrders (line 178) | func (t *IndodaxTrader) CancelAllOrders(symbol string) error { method CancelStopOrders (line 224) | func (t *IndodaxTrader) CancelStopOrders(symbol string) error { method FormatQuantity (line 229) | func (t *IndodaxTrader) FormatQuantity(symbol string, quantity float64) ... method GetOrderStatus (line 249) | func (t *IndodaxTrader) GetOrderStatus(symbol string, orderID string) (m... method GetOpenOrders (line 301) | func (t *IndodaxTrader) GetOpenOrders(symbol string) ([]types.OpenOrder,... FILE: trader/indodax/trader_test.go function getIndodaxTestCredentials (line 12) | func getIndodaxTestCredentials(t *testing.T) (string, string) { function createIndodaxTestTrader (line 23) | func createIndodaxTestTrader(t *testing.T) *IndodaxTrader { function TestIndodaxTrader_InterfaceCompliance (line 30) | func TestIndodaxTrader_InterfaceCompliance(t *testing.T) { function TestNewIndodaxTrader (line 35) | func TestNewIndodaxTrader(t *testing.T) { function TestIndodaxTrader_SymbolConversion (line 56) | func TestIndodaxTrader_SymbolConversion(t *testing.T) { function TestIndodaxTrader_SymbolConversionBack (line 82) | func TestIndodaxTrader_SymbolConversionBack(t *testing.T) { function TestIndodaxTrader_GetCoinFromSymbol (line 106) | func TestIndodaxTrader_GetCoinFromSymbol(t *testing.T) { function TestIndodaxTrader_Sign (line 130) | func TestIndodaxTrader_Sign(t *testing.T) { function TestIndodaxTrader_Nonce (line 157) | func TestIndodaxTrader_Nonce(t *testing.T) { function TestIndodaxTrader_SpotOnlyRestrictions (line 173) | func TestIndodaxTrader_SpotOnlyRestrictions(t *testing.T) { function TestIndodaxTrader_ParseFloat (line 214) | func TestIndodaxTrader_ParseFloat(t *testing.T) { function TestIndodaxTrader_ClearCache (line 240) | func TestIndodaxTrader_ClearCache(t *testing.T) { function TestIndodaxConnection (line 263) | func TestIndodaxConnection(t *testing.T) { function TestIndodaxGetPositions (line 280) | func TestIndodaxGetPositions(t *testing.T) { function TestIndodaxGetMarketPrice (line 301) | func TestIndodaxGetMarketPrice(t *testing.T) { function TestIndodaxGetOpenOrders (line 317) | func TestIndodaxGetOpenOrders(t *testing.T) { function TestIndodaxGetClosedPnL (line 333) | func TestIndodaxGetClosedPnL(t *testing.T) { function TestIndodaxLoadPairs (line 351) | func TestIndodaxLoadPairs(t *testing.T) { FILE: trader/interface.go type GridTraderAdapter (line 22) | type GridTraderAdapter struct method PlaceLimitOrder (line 33) | func (a *GridTraderAdapter) PlaceLimitOrder(req *LimitOrderRequest) (*... method CancelOrder (line 67) | func (a *GridTraderAdapter) CancelOrder(symbol, orderID string) error { method GetOrderBook (line 85) | func (a *GridTraderAdapter) GetOrderBook(symbol string, depth int) (bi... function NewGridTraderAdapter (line 27) | func NewGridTraderAdapter(t Trader) *GridTraderAdapter { FILE: trader/kucoin/order_sync.go type KuCoinTrade (line 15) | type KuCoinTrade struct method ToTradeRecord (line 254) | func (t *KuCoinTrade) ToTradeRecord() types.TradeRecord { method GetTrades (line 30) | func (t *KuCoinTrader) GetTrades(startTime time.Time, limit int) ([]KuCo... method GetRecentTrades (line 162) | func (t *KuCoinTrader) GetRecentTrades() ([]KuCoinTrade, error) { method SyncOrdersFromKuCoin (line 279) | func (t *KuCoinTrader) SyncOrdersFromKuCoin(traderID string, exchangeID ... method StartOrderSync (line 402) | func (t *KuCoinTrader) StartOrderSync(traderID string, exchangeID string... FILE: trader/kucoin/order_sync_test.go function getKuCoinTestCredentials (line 12) | func getKuCoinTestCredentials(t *testing.T) (string, string, string) { function createKuCoinTestTrader (line 24) | func createKuCoinTestTrader(t *testing.T) *KuCoinTrader { function TestKuCoinConnection (line 31) | func TestKuCoinConnection(t *testing.T) { function TestKuCoinGetPositions (line 47) | func TestKuCoinGetPositions(t *testing.T) { function TestKuCoinGetTrades (line 72) | func TestKuCoinGetTrades(t *testing.T) { function TestKuCoinGetRecentTrades (line 116) | func TestKuCoinGetRecentTrades(t *testing.T) { function TestKuCoinTradeToRecord (line 133) | func TestKuCoinTradeToRecord(t *testing.T) { function TestKuCoinOrderActionDetermination (line 202) | func TestKuCoinOrderActionDetermination(t *testing.T) { function TestKuCoinPositionBuilding (line 250) | func TestKuCoinPositionBuilding(t *testing.T) { function TestKuCoinRawAPIResponse (line 312) | func TestKuCoinRawAPIResponse(t *testing.T) { function TestKuCoinValueCalculation (line 334) | func TestKuCoinValueCalculation(t *testing.T) { function TestKuCoinEntryExitPrice (line 411) | func TestKuCoinEntryExitPrice(t *testing.T) { function TestKuCoinPnLCalculation (line 500) | func TestKuCoinPnLCalculation(t *testing.T) { function TestKuCoinGetTradesDebug (line 583) | func TestKuCoinGetTradesDebug(t *testing.T) { FILE: trader/kucoin/trader.go constant kucoinBaseURL (line 22) | kucoinBaseURL = "https://api-futures.kucoin.com" constant kucoinAccountPath (line 23) | kucoinAccountPath = "/api/v1/account-overview" constant kucoinPositionPath (line 24) | kucoinPositionPath = "/api/v1/positions" constant kucoinOrderPath (line 25) | kucoinOrderPath = "/api/v1/orders" constant kucoinLeveragePath (line 26) | kucoinLeveragePath = "/api/v1/position/margin/leverage" constant kucoinTickerPath (line 27) | kucoinTickerPath = "/api/v1/ticker" constant kucoinContractsPath (line 28) | kucoinContractsPath = "/api/v1/contracts/active" constant kucoinCancelOrderPath (line 29) | kucoinCancelOrderPath = "/api/v1/orders" constant kucoinStopOrderPath (line 30) | kucoinStopOrderPath = "/api/v1/stopOrders" constant kucoinCancelStopPath (line 31) | kucoinCancelStopPath = "/api/v1/stopOrders" constant kucoinPositionModePath (line 32) | kucoinPositionModePath = "/api/v1/position/margin/auto-deposit-status" constant kucoinFillsPath (line 33) | kucoinFillsPath = "/api/v1/fills" constant kucoinRecentFillsPath (line 34) | kucoinRecentFillsPath = "/api/v1/recentFills" constant kcPartnerID (line 39) | kcPartnerID = "NoFxFutures" constant kcPartnerKey (line 40) | kcPartnerKey = "d7c05b0c-c81b-4630-8fa8-ca6d049d3aae" type KuCoinTrader (line 44) | type KuCoinTrader struct method syncServerTime (line 123) | func (t *KuCoinTrader) syncServerTime() error { method getTimestamp (line 161) | func (t *KuCoinTrader) getTimestamp() string { method sign (line 172) | func (t *KuCoinTrader) sign(timestamp, method, requestPath, body strin... method signPassphrase (line 181) | func (t *KuCoinTrader) signPassphrase(passphrase string) string { method signPartner (line 188) | func (t *KuCoinTrader) signPartner(timestamp string) string { method doRequest (line 196) | func (t *KuCoinTrader) doRequest(method, path string, body interface{}... method convertSymbol (line 261) | func (t *KuCoinTrader) convertSymbol(symbol string) string { method convertSymbolBack (line 273) | func (t *KuCoinTrader) convertSymbolBack(kcSymbol string) string { method getContract (line 284) | func (t *KuCoinTrader) getContract(symbol string) (*KuCoinContract, er... method quantityToLots (line 350) | func (t *KuCoinTrader) quantityToLots(symbol string, quantity float64)... type KuCoinContract (line 76) | type KuCoinContract struct type KuCoinResponse (line 91) | type KuCoinResponse struct function NewKuCoinTrader (line 98) | func NewKuCoinTrader(apiKey, secretKey, passphrase string) *KuCoinTrader { FILE: trader/kucoin/trader_account.go method GetBalance (line 11) | func (t *KuCoinTrader) GetBalance() (map[string]interface{}, error) { FILE: trader/kucoin/trader_orders.go method OpenLong (line 15) | func (t *KuCoinTrader) OpenLong(symbol string, quantity float64, leverag... method OpenShort (line 70) | func (t *KuCoinTrader) OpenShort(symbol string, quantity float64, levera... method queryOrderFillPrice (line 125) | func (t *KuCoinTrader) queryOrderFillPrice(orderId string) float64 { method CloseLong (line 150) | func (t *KuCoinTrader) CloseLong(symbol string, quantity float64) (map[s... method CloseShort (line 231) | func (t *KuCoinTrader) CloseShort(symbol string, quantity float64) (map[... method GetMarketPrice (line 312) | func (t *KuCoinTrader) GetMarketPrice(symbol string) (float64, error) { method SetStopLoss (line 334) | func (t *KuCoinTrader) SetStopLoss(symbol string, positionSide string, q... method SetTakeProfit (line 374) | func (t *KuCoinTrader) SetTakeProfit(symbol string, positionSide string,... method CancelStopLossOrders (line 414) | func (t *KuCoinTrader) CancelStopLossOrders(symbol string) error { method CancelTakeProfitOrders (line 419) | func (t *KuCoinTrader) CancelTakeProfitOrders(symbol string) error { method cancelStopOrdersByType (line 424) | func (t *KuCoinTrader) cancelStopOrdersByType(symbol string, orderType s... method CancelStopOrders (line 476) | func (t *KuCoinTrader) CancelStopOrders(symbol string) error { method CancelAllOrders (line 494) | func (t *KuCoinTrader) CancelAllOrders(symbol string) error { method SetMarginMode (line 511) | func (t *KuCoinTrader) SetMarginMode(symbol string, isCrossMargin bool) ... method SetLeverage (line 518) | func (t *KuCoinTrader) SetLeverage(symbol string, leverage int) error { method FormatQuantity (line 541) | func (t *KuCoinTrader) FormatQuantity(symbol string, quantity float64) (... method GetOrderStatus (line 557) | func (t *KuCoinTrader) GetOrderStatus(symbol string, orderID string) (ma... method GetClosedPnL (line 597) | func (t *KuCoinTrader) GetClosedPnL(startTime time.Time, limit int) ([]t... method GetOpenOrders (line 678) | func (t *KuCoinTrader) GetOpenOrders(symbol string) ([]types.OpenOrder, ... FILE: trader/kucoin/trader_positions.go method GetPositions (line 10) | func (t *KuCoinTrader) GetPositions() ([]map[string]interface{}, error) { method InvalidatePositionCache (line 110) | func (t *KuCoinTrader) InvalidatePositionCache() { FILE: trader/lighter/account.go method getFullAccountInfo (line 15) | func (t *LighterTraderV2) getFullAccountInfo() (*AccountInfo, error) { method GetBalance (line 85) | func (t *LighterTraderV2) GetBalance() (map[string]interface{}, error) { method GetAccountBalance (line 108) | func (t *LighterTraderV2) GetAccountBalance() (*AccountBalance, error) { method GetPositions (line 160) | func (t *LighterTraderV2) GetPositions() ([]map[string]interface{}, erro... method GetPositionsRaw (line 186) | func (t *LighterTraderV2) GetPositionsRaw(symbol string) ([]Position, er... method GetPosition (line 267) | func (t *LighterTraderV2) GetPosition(symbol string) (*Position, error) { method GetMarketPrice (line 284) | func (t *LighterTraderV2) GetMarketPrice(symbol string) (float64, error) { method FormatQuantity (line 353) | func (t *LighterTraderV2) FormatQuantity(symbol string, quantity float64... method GetOrderBook (line 361) | func (t *LighterTraderV2) GetOrderBook(symbol string, depth int) (bids, ... FILE: trader/lighter/integration_test.go function getTestConfig (line 20) | func getTestConfig() (walletAddr, apiKey string, apiKeyIndex int) { function skipIfNoEnv (line 31) | func skipIfNoEnv(t *testing.T) { function skipIfJurisdictionRestricted (line 45) | func skipIfJurisdictionRestricted(t *testing.T, err error) { function createTestTrader (line 51) | func createTestTrader(t *testing.T) *LighterTraderV2 { function TestLighterAccountInit (line 62) | func TestLighterAccountInit(t *testing.T) { function TestLighterAPIKeyVerification (line 76) | func TestLighterAPIKeyVerification(t *testing.T) { function TestLighterGetBalance (line 91) | func TestLighterGetBalance(t *testing.T) { function TestLighterGetPositions (line 123) | func TestLighterGetPositions(t *testing.T) { function TestLighterGetMarketPrice (line 149) | func TestLighterGetMarketPrice(t *testing.T) { function TestLighterFetchMarketList (line 171) | func TestLighterFetchMarketList(t *testing.T) { function TestLighterGetTrades (line 199) | func TestLighterGetTrades(t *testing.T) { function TestLighterGetClosedPnL (line 224) | func TestLighterGetClosedPnL(t *testing.T) { function TestLighterCreateAndCancelLimitOrder (line 249) | func TestLighterCreateAndCancelLimitOrder(t *testing.T) { function TestLighterCancelAllOrders (line 295) | func TestLighterCancelAllOrders(t *testing.T) { function TestLighterOpenCloseLongFlow (line 333) | func TestLighterOpenCloseLongFlow(t *testing.T) { function TestLighterOpenCloseShortFlow (line 383) | func TestLighterOpenCloseShortFlow(t *testing.T) { function TestLighterSetLeverage (line 420) | func TestLighterSetLeverage(t *testing.T) { function TestLighterAuthTokenRefresh (line 443) | func TestLighterAuthTokenRefresh(t *testing.T) { function TestLighterInvalidSymbol (line 475) | func TestLighterInvalidSymbol(t *testing.T) { function TestLighterCancelNonExistentOrder (line 490) | func TestLighterCancelNonExistentOrder(t *testing.T) { function TestLighterOrderSync (line 507) | func TestLighterOrderSync(t *testing.T) { function BenchmarkLighterGetBalance (line 538) | func BenchmarkLighterGetBalance(b *testing.B) { function BenchmarkLighterGetMarketPrice (line 559) | func BenchmarkLighterGetMarketPrice(b *testing.B) { function TestLighterGetOpenOrders (line 582) | func TestLighterGetOpenOrders(t *testing.T) { function TestLighterGetActiveOrders (line 606) | func TestLighterGetActiveOrders(t *testing.T) { function TestLighterGetOrderBook (line 632) | func TestLighterGetOrderBook(t *testing.T) { function TestLighterPlaceLimitOrder (line 671) | func TestLighterPlaceLimitOrder(t *testing.T) { function TestLighterSetMarginMode (line 728) | func TestLighterSetMarginMode(t *testing.T) { function TestLighterStopLossOrder (line 752) | func TestLighterStopLossOrder(t *testing.T) { function TestLighterTakeProfitOrder (line 792) | func TestLighterTakeProfitOrder(t *testing.T) { function TestLighterFullTradingFlow (line 834) | func TestLighterFullTradingFlow(t *testing.T) { function TestLighterAPIKeyValid (line 955) | func TestLighterAPIKeyValid(t *testing.T) { function TestLighterMarketOrderBuy (line 979) | func TestLighterMarketOrderBuy(t *testing.T) { function TestLighterMarketOrderSell (line 1013) | func TestLighterMarketOrderSell(t *testing.T) { function TestLighterGetPosition (line 1049) | func TestLighterGetPosition(t *testing.T) { function TestLighterSymbolNormalization (line 1080) | func TestLighterSymbolNormalization(t *testing.T) { FILE: trader/lighter/order_sync.go method SyncOrdersFromLighter (line 17) | func (t *LighterTraderV2) SyncOrdersFromLighter(traderID string, exchang... method StartOrderSync (line 148) | func (t *LighterTraderV2) StartOrderSync(traderID string, exchangeID str... FILE: trader/lighter/orders.go method SetStopLoss (line 17) | func (t *LighterTraderV2) SetStopLoss(symbol string, positionSide string... method SetTakeProfit (line 39) | func (t *LighterTraderV2) SetTakeProfit(symbol string, positionSide stri... method CancelAllOrders (line 60) | func (t *LighterTraderV2) CancelAllOrders(symbol string) error { method GetOrderStatus (line 95) | func (t *LighterTraderV2) GetOrderStatus(symbol string, orderID string) ... method CancelStopLossOrders (line 159) | func (t *LighterTraderV2) CancelStopLossOrders(symbol string) error { method CancelTakeProfitOrders (line 166) | func (t *LighterTraderV2) CancelTakeProfitOrders(symbol string) error { method CancelStopOrders (line 173) | func (t *LighterTraderV2) CancelStopOrders(symbol string) error { method GetActiveOrders (line 204) | func (t *LighterTraderV2) GetActiveOrders(symbol string) ([]OrderRespons... method CancelOrder (line 270) | func (t *LighterTraderV2) CancelOrder(symbol, orderID string) error { method getOrderIndexByTxHash (line 329) | func (t *LighterTraderV2) getOrderIndexByTxHash(symbol, txHash string) (... FILE: trader/lighter/orders_test.go function TestGetActiveOrders_ParseResponse (line 15) | func TestGetActiveOrders_ParseResponse(t *testing.T) { function TestGetActiveOrders_EmptyResponse (line 112) | func TestGetActiveOrders_EmptyResponse(t *testing.T) { function TestGetActiveOrders_ErrorResponse (line 132) | func TestGetActiveOrders_ErrorResponse(t *testing.T) { function TestConvertOrderResponseToOpenOrder (line 151) | func TestConvertOrderResponseToOpenOrder(t *testing.T) { function TestGetActiveOrders_MockServer (line 270) | func TestGetActiveOrders_MockServer(t *testing.T) { function TestAuthTokenFormat (line 342) | func TestAuthTokenFormat(t *testing.T) { function TestOrderResponseStruct (line 359) | func TestOrderResponseStruct(t *testing.T) { function BenchmarkParseOrderResponse (line 401) | func BenchmarkParseOrderResponse(b *testing.B) { FILE: trader/lighter/trader.go type AccountInfo (line 23) | type AccountInfo struct type LighterPositionInfo (line 36) | type LighterPositionInfo struct type AccountResponse (line 53) | type AccountResponse struct type LighterTraderV2 (line 61) | type LighterTraderV2 struct method initializeAccount (line 183) | func (t *LighterTraderV2) initializeAccount() error { method getAccountByL1Address (line 200) | func (t *LighterTraderV2) getAccountByL1Address() (*AccountInfo, error) { method getApiKeyFromServer (line 274) | func (t *LighterTraderV2) getApiKeyFromServer() (string, error) { method checkClient (line 315) | func (t *LighterTraderV2) checkClient() error { method GenerateAndRegisterAPIKey (line 342) | func (t *LighterTraderV2) GenerateAndRegisterAPIKey(seed string) (priv... method refreshAuthToken (line 354) | func (t *LighterTraderV2) refreshAuthToken() error { method ensureAuthToken (line 376) | func (t *LighterTraderV2) ensureAuthToken() error { method GetExchangeType (line 390) | func (t *LighterTraderV2) GetExchangeType() string { method Cleanup (line 395) | func (t *LighterTraderV2) Cleanup() error { method GetClosedPnL (line 402) | func (t *LighterTraderV2) GetClosedPnL(startTime time.Time, limit int)... method GetTrades (line 451) | func (t *LighterTraderV2) GetTrades(startTime time.Time, limit int) ([... function NewLighterTraderV2 (line 102) | func NewLighterTraderV2(walletAddr, apiKeyPrivateKeyHex string, apiKeyIn... type ApiKeyResponse (line 262) | type ApiKeyResponse struct FILE: trader/lighter/trading.go method OpenLong (line 20) | func (t *LighterTraderV2) OpenLong(symbol string, quantity float64, leve... method OpenShort (line 61) | func (t *LighterTraderV2) OpenShort(symbol string, quantity float64, lev... method CloseLong (line 102) | func (t *LighterTraderV2) CloseLong(symbol string, quantity float64) (ma... method CloseShort (line 146) | func (t *LighterTraderV2) CloseShort(symbol string, quantity float64) (m... method CreateOrder (line 190) | func (t *LighterTraderV2) CreateOrder(symbol string, isAsk bool, quantit... type SendTxResponse (line 324) | type SendTxResponse struct type CreateOrderTxInfoAPI (line 333) | type CreateOrderTxInfoAPI struct method submitOrder (line 352) | func (t *LighterTraderV2) submitOrder(txType int, txInfo string) (map[st... method pollForOrderIndex (line 443) | func (t *LighterTraderV2) pollForOrderIndex(symbol string, txHash string... function normalizeSymbol (line 471) | func normalizeSymbol(symbol string) string { method getMarketInfo (line 482) | func (t *LighterTraderV2) getMarketInfo(symbol string) (*MarketInfo, err... method getMarketIndex (line 503) | func (t *LighterTraderV2) getMarketIndex(symbol string) (uint16, error) { type MarketInfo (line 515) | type MarketInfo struct method fetchMarketList (line 523) | func (t *LighterTraderV2) fetchMarketList() ([]MarketInfo, error) { method getFallbackMarketIndex (line 598) | func (t *LighterTraderV2) getFallbackMarketIndex(symbol string) (uint16,... method SetLeverage (line 625) | func (t *LighterTraderV2) SetLeverage(symbol string, leverage int) error { method SetMarginMode (line 687) | func (t *LighterTraderV2) SetMarginMode(symbol string, isCrossMargin boo... method CreateStopOrder (line 752) | func (t *LighterTraderV2) CreateStopOrder(symbol string, isAsk bool, qua... function boolToUint8 (line 843) | func boolToUint8(b bool) uint8 { function pow10 (line 851) | func pow10(n int) int64 { method GetOpenOrders (line 860) | func (t *LighterTraderV2) GetOpenOrders(symbol string) ([]tradertypes.Op... method PlaceLimitOrder (line 929) | func (t *LighterTraderV2) PlaceLimitOrder(req *tradertypes.LimitOrderReq... FILE: trader/lighter/types.go type SymbolPrecision (line 11) | type SymbolPrecision struct type AccountBalance (line 19) | type AccountBalance struct type Position (line 28) | type Position struct type CreateOrderRequest (line 41) | type CreateOrderRequest struct type OrderResponse (line 54) | type OrderResponse struct type LighterTradeResponse (line 73) | type LighterTradeResponse struct type LighterTrade (line 81) | type LighterTrade struct function parseFloat (line 107) | func parseFloat(s string) (float64, error) { function ToChecksumAddress (line 118) | func ToChecksumAddress(address string) string { FILE: trader/okx/order_sync.go type OKXTrade (line 16) | type OKXTrade struct method GetTrades (line 35) | func (t *OKXTrader) GetTrades(startTime time.Time, limit int) ([]OKXTrad... method SyncOrdersFromOKX (line 152) | func (t *OKXTrader) SyncOrdersFromOKX(traderID string, exchangeID string... method StartOrderSync (line 275) | func (t *OKXTrader) StartOrderSync(traderID string, exchangeID string, e... FILE: trader/okx/trader.go constant okxBaseURL (line 22) | okxBaseURL = "https://www.okx.com" constant okxAccountPath (line 23) | okxAccountPath = "/api/v5/account/balance" constant okxPositionPath (line 24) | okxPositionPath = "/api/v5/account/positions" constant okxOrderPath (line 25) | okxOrderPath = "/api/v5/trade/order" constant okxLeveragePath (line 26) | okxLeveragePath = "/api/v5/account/set-leverage" constant okxTickerPath (line 27) | okxTickerPath = "/api/v5/market/ticker" constant okxInstrumentsPath (line 28) | okxInstrumentsPath = "/api/v5/public/instruments" constant okxCancelOrderPath (line 29) | okxCancelOrderPath = "/api/v5/trade/cancel-order" constant okxPendingOrdersPath (line 30) | okxPendingOrdersPath = "/api/v5/trade/orders-pending" constant okxAlgoOrderPath (line 31) | okxAlgoOrderPath = "/api/v5/trade/order-algo" constant okxCancelAlgoPath (line 32) | okxCancelAlgoPath = "/api/v5/trade/cancel-algos" constant okxAlgoPendingPath (line 33) | okxAlgoPendingPath = "/api/v5/trade/orders-algo-pending" constant okxPositionModePath (line 34) | okxPositionModePath = "/api/v5/account/set-position-mode" constant okxAccountConfigPath (line 35) | okxAccountConfigPath = "/api/v5/account/config" type OKXTrader (line 39) | type OKXTrader struct method detectPositionMode (line 147) | func (t *OKXTrader) detectPositionMode() error { method setPositionMode (line 170) | func (t *OKXTrader) setPositionMode() error { method sign (line 190) | func (t *OKXTrader) sign(timestamp, method, requestPath, body string) ... method doRequest (line 198) | func (t *OKXTrader) doRequest(method, path string, body interface{}) (... method convertSymbol (line 252) | func (t *OKXTrader) convertSymbol(symbol string) string { method convertSymbolBack (line 260) | func (t *OKXTrader) convertSymbolBack(instId string) string { method FormatQuantity (line 269) | func (t *OKXTrader) FormatQuantity(symbol string, quantity float64) (s... method formatSize (line 281) | func (t *OKXTrader) formatSize(sz float64, inst *OKXInstrument) string { type OKXInstrument (line 73) | type OKXInstrument struct type OKXResponse (line 85) | type OKXResponse struct function genOkxClOrdID (line 98) | func genOkxClOrdID() string { function NewOKXTrader (line 112) | func NewOKXTrader(apiKey, secretKey, passphrase string) *OKXTrader { FILE: trader/okx/trader_account.go method GetBalance (line 14) | func (t *OKXTrader) GetBalance() (map[string]interface{}, error) { method SetMarginMode (line 84) | func (t *OKXTrader) SetMarginMode(symbol string, isCrossMargin bool) err... method SetLeverage (line 117) | func (t *OKXTrader) SetLeverage(symbol string, leverage int) error { method GetMarketPrice (line 144) | func (t *OKXTrader) GetMarketPrice(symbol string) (float64, error) { method GetClosedPnL (line 175) | func (t *OKXTrader) GetClosedPnL(startTime time.Time, limit int) ([]type... FILE: trader/okx/trader_orders.go method OpenLong (line 13) | func (t *OKXTrader) OpenLong(symbol string, quantity float64, leverage i... method OpenShort (line 90) | func (t *OKXTrader) OpenShort(symbol string, quantity float64, leverage ... method CloseLong (line 167) | func (t *OKXTrader) CloseLong(symbol string, quantity float64) (map[stri... method CloseShort (line 278) | func (t *OKXTrader) CloseShort(symbol string, quantity float64) (map[str... method SetStopLoss (line 392) | func (t *OKXTrader) SetStopLoss(symbol string, positionSide string, quan... method SetTakeProfit (line 435) | func (t *OKXTrader) SetTakeProfit(symbol string, positionSide string, qu... method CancelStopLossOrders (line 478) | func (t *OKXTrader) CancelStopLossOrders(symbol string) error { method CancelTakeProfitOrders (line 483) | func (t *OKXTrader) CancelTakeProfitOrders(symbol string) error { method cancelAlgoOrders (line 488) | func (t *OKXTrader) cancelAlgoOrders(symbol string, orderType string) er... method CancelAllOrders (line 532) | func (t *OKXTrader) CancelAllOrders(symbol string) error { method CancelStopOrders (line 571) | func (t *OKXTrader) CancelStopOrders(symbol string) error { method GetOrderStatus (line 576) | func (t *OKXTrader) GetOrderStatus(symbol string, orderID string) (map[s... method GetOpenOrders (line 649) | func (t *OKXTrader) GetOpenOrders(symbol string) ([]types.OpenOrder, err... method PlaceLimitOrder (line 790) | func (t *OKXTrader) PlaceLimitOrder(req *types.LimitOrderRequest) (*type... method CancelOrder (line 878) | func (t *OKXTrader) CancelOrder(symbol, orderID string) error { method GetOrderBook (line 897) | func (t *OKXTrader) GetOrderBook(symbol string, depth int) (bids, asks [... FILE: trader/okx/trader_positions.go method GetPositions (line 12) | func (t *OKXTrader) GetPositions() ([]map[string]interface{}, error) { method InvalidatePositionCache (line 121) | func (t *OKXTrader) InvalidatePositionCache() { method getInstrument (line 129) | func (t *OKXTrader) getInstrument(symbol string) (*OKXInstrument, error) { FILE: trader/position_rebuild.go type openTradeEntry (line 15) | type openTradeEntry struct type positionState (line 24) | type positionState struct function RebuildPositionsFromTrades (line 42) | func RebuildPositionsFromTrades(trades []TradeRecord) []ClosedPnLRecord { function determinePositionSide (line 92) | func determinePositionSide(trade TradeRecord) string { function buildClosedPosition (line 122) | func buildClosedPosition(trade TradeRecord, side string, state *position... FILE: trader/position_snapshot.go function CreatePositionSnapshot (line 16) | func CreatePositionSnapshot(traderID, exchangeID, exchangeType string, t... FILE: trader/testutil/test_suite.go type TraderTestSuite (line 18) | type TraderTestSuite struct method Cleanup (line 34) | func (s *TraderTestSuite) Cleanup() { method RunAllTests (line 42) | func (s *TraderTestSuite) RunAllTests() { method TestGetBalance (line 71) | func (s *TraderTestSuite) TestGetBalance() { method TestGetPositions (line 104) | func (s *TraderTestSuite) TestGetPositions() { method TestGetMarketPrice (line 141) | func (s *TraderTestSuite) TestGetMarketPrice() { method TestSetLeverage (line 180) | func (s *TraderTestSuite) TestSetLeverage() { method TestSetMarginMode (line 214) | func (s *TraderTestSuite) TestSetMarginMode() { method TestFormatQuantity (line 248) | func (s *TraderTestSuite) TestFormatQuantity() { method TestCancelAllOrders (line 292) | func (s *TraderTestSuite) TestCancelAllOrders() { method TestOpenLong (line 322) | func (s *TraderTestSuite) TestOpenLong() { method TestOpenShort (line 371) | func (s *TraderTestSuite) TestOpenShort() { method TestCloseLong (line 420) | func (s *TraderTestSuite) TestCloseLong() { method TestCloseShort (line 463) | func (s *TraderTestSuite) TestCloseShort() { method TestSetStopLoss (line 510) | func (s *TraderTestSuite) TestSetStopLoss() { method TestSetTakeProfit (line 550) | func (s *TraderTestSuite) TestSetTakeProfit() { method TestCancelStopOrders (line 590) | func (s *TraderTestSuite) TestCancelStopOrders() { method TestCancelStopLossOrders (line 616) | func (s *TraderTestSuite) TestCancelStopLossOrders() { method TestCancelTakeProfitOrders (line 642) | func (s *TraderTestSuite) TestCancelTakeProfitOrders() { function NewTraderTestSuite (line 25) | func NewTraderTestSuite(t *testing.T, trader types.Trader) *TraderTestSu... FILE: trader/types/interface.go type ClosedPnLRecord (line 10) | type ClosedPnLRecord struct type TradeRecord (line 28) | type TradeRecord struct type Trader (line 43) | type Trader interface type OpenOrder (line 108) | type OpenOrder struct type LimitOrderRequest (line 121) | type LimitOrderRequest struct type LimitOrderResult (line 134) | type LimitOrderResult struct type GridTrader (line 147) | type GridTrader interface type GridTraderAdapter (line 164) | type GridTraderAdapter struct method PlaceLimitOrder (line 175) | func (a *GridTraderAdapter) PlaceLimitOrder(req *LimitOrderRequest) (*... method CancelOrder (line 209) | func (a *GridTraderAdapter) CancelOrder(symbol, orderID string) error { method GetOrderBook (line 227) | func (a *GridTraderAdapter) GetOrderBook(symbol string, depth int) (bi... function NewGridTraderAdapter (line 169) | func NewGridTraderAdapter(t Trader) *GridTraderAdapter { FILE: web/src/App.tsx type Page (line 37) | type Page = function App (line 50) | function App() { function AppWithProviders (line 655) | function AppWithProviders() { FILE: web/src/components/auth/LoginPage.tsx function LoginPage (line 9) | function LoginPage() { FILE: web/src/components/auth/LoginRequiredOverlay.tsx type LoginRequiredOverlayProps (line 7) | interface LoginRequiredOverlayProps { function LoginRequiredOverlay (line 13) | function LoginRequiredOverlay({ isOpen, onClose, featureName }: LoginReq... FILE: web/src/components/auth/RegisterPage.tsx function RegisterPage (line 13) | function RegisterPage() { FILE: web/src/components/auth/RegistrationDisabled.tsx function RegistrationDisabled (line 4) | function RegistrationDisabled() { FILE: web/src/components/auth/ResetPasswordPage.tsx function ResetPasswordPage (line 11) | function ResetPasswordPage() { FILE: web/src/components/charts/AdvancedChart.tsx type OrderMarker (line 25) | interface OrderMarker { type OpenOrder (line 36) | interface OpenOrder { type AdvancedChartProps (line 48) | interface AdvancedChartProps { type IndicatorConfig (line 58) | interface IndicatorConfig { function AdvancedChart (line 98) | function AdvancedChart({ FILE: web/src/components/charts/ChartTabs.tsx type ChartTabsProps (line 10) | interface ChartTabsProps { type ChartTab (line 17) | type ChartTab = 'equity' | 'kline' type Interval (line 18) | type Interval = '1m' | '5m' | '15m' | '30m' | '1h' | '4h' | '1d' type MarketType (line 19) | type MarketType = 'hyperliquid' | 'crypto' | 'stocks' | 'forex' | 'metals' type SymbolInfo (line 21) | interface SymbolInfo { constant MARKET_CONFIG (line 28) | const MARKET_CONFIG = { constant INTERVALS (line 36) | const INTERVALS: { value: Interval; label: string }[] = [ function getMarketTypeFromExchange (line 47) | function getMarketTypeFromExchange(exchangeId: string | undefined): Mark... function ChartTabs (line 55) | function ChartTabs({ traderId, selectedSymbol, updateKey, exchangeId }: ... FILE: web/src/components/charts/ChartWithOrders.tsx type OrderMarker (line 16) | interface OrderMarker { type KlineData (line 26) | interface KlineData { type ChartWithOrdersProps (line 35) | interface ChartWithOrdersProps { function ChartWithOrders (line 43) | function ChartWithOrders({ FILE: web/src/components/charts/ChartWithOrdersSimple.tsx type ChartWithOrdersSimpleProps (line 4) | interface ChartWithOrdersSimpleProps { function ChartWithOrdersSimple (line 11) | function ChartWithOrdersSimple({ FILE: web/src/components/charts/ComparisonChart.tsx constant TIME_PERIODS (line 23) | const TIME_PERIODS = [ type ComparisonChartProps (line 31) | interface ComparisonChartProps { function ComparisonChart (line 35) | function ComparisonChart({ traders }: ComparisonChartProps) { FILE: web/src/components/charts/EquityChart.tsx type EquityPoint (line 26) | interface EquityPoint { type EquityChartProps (line 34) | interface EquityChartProps { function EquityChart (line 39) | function EquityChart({ traderId, embedded = false }: EquityChartProps) { FILE: web/src/components/charts/TradingViewChart.tsx constant EXCHANGES (line 7) | const EXCHANGES = [ constant POPULAR_SYMBOLS (line 17) | const POPULAR_SYMBOLS = [ constant INTERVALS (line 33) | const INTERVALS = [ type TradingViewChartProps (line 44) | interface TradingViewChartProps { function TradingViewChartComponent (line 52) | function TradingViewChartComponent({ FILE: web/src/components/common/ConfirmDialog.tsx type ConfirmOptions (line 19) | interface ConfirmOptions { type ConfirmDialogContextType (line 26) | interface ConfirmDialogContextType { function useConfirmDialog (line 34) | function useConfirmDialog() { type ConfirmState (line 44) | interface ConfirmState { function ConfirmDialogProvider (line 53) | function ConfirmDialogProvider({ FILE: web/src/components/common/Container.tsx type ContainerProps (line 3) | interface ContainerProps { function Container (line 21) | function Container({ FILE: web/src/components/common/DeepVoidBackground.tsx type DeepVoidBackgroundProps (line 3) | interface DeepVoidBackgroundProps extends React.HTMLAttributes = { FILE: web/src/components/common/Header.tsx type HeaderProps (line 5) | interface HeaderProps { function Header (line 9) | function Header({ simple = false }: HeaderProps) { FILE: web/src/components/common/HeaderBar.tsx type Page (line 8) | type Page = type HeaderBarProps (line 19) | interface HeaderBarProps { function HeaderBar (line 32) | function HeaderBar({ FILE: web/src/components/common/MetricTooltip.tsx type MetricDefinition (line 8) | interface MetricDefinition { constant METRIC_DEFINITIONS (line 18) | const METRIC_DEFINITIONS: Record = { type FormulaRendererProps (line 141) | interface FormulaRendererProps { function FormulaRenderer (line 146) | function FormulaRenderer({ formula, displayMode = true }: FormulaRendere... type TooltipPosition (line 167) | interface TooltipPosition { type MetricTooltipProps (line 173) | interface MetricTooltipProps { function MetricTooltip (line 180) | function MetricTooltip({ type MetricLabelProps (line 349) | interface MetricLabelProps { function MetricLabel (line 356) | function MetricLabel({ metricKey, label, language = 'en', className = ''... FILE: web/src/components/common/ModelIcons.tsx type IconProps (line 1) | interface IconProps { constant MODEL_COLORS (line 8) | const MODEL_COLORS: Record = { FILE: web/src/components/common/PunkAvatar.tsx type PunkAvatarProps (line 3) | interface PunkAvatarProps { function hashCode (line 10) | function hashCode(str: string): number { function getHashValue (line 21) | function getHashValue(hash: number, position: number, max: number): numb... constant BACKGROUNDS (line 26) | const BACKGROUNDS = [ constant SKIN_TONES (line 32) | const SKIN_TONES = [ constant HAIR_COLORS (line 37) | const HAIR_COLORS = [ constant ACCESSORY_COLORS (line 44) | const ACCESSORY_COLORS = [ function PunkAvatar (line 49) | function PunkAvatar({ seed, size = 40, className = '' }: PunkAvatarProps) { function getTraderAvatar (line 340) | function getTraderAvatar(traderId: string, traderName: string): string { FILE: web/src/components/common/WebCryptoEnvironmentCheck.tsx type WebCryptoCheckStatus (line 6) | type WebCryptoCheckStatus = type WebCryptoEnvironmentCheckProps (line 14) | interface WebCryptoEnvironmentCheckProps { function WebCryptoEnvironmentCheck (line 20) | function WebCryptoEnvironmentCheck({ FILE: web/src/components/common/WhitelistFullPage.tsx type WhitelistFullPageProps (line 5) | interface WhitelistFullPageProps { function WhitelistFullPage (line 9) | function WhitelistFullPage({ onBack }: WhitelistFullPageProps) { FILE: web/src/components/faq/FAQContent.tsx type FAQContentProps (line 6) | interface FAQContentProps { function FAQContent (line 12) | function FAQContent({ FILE: web/src/components/faq/FAQLayout.tsx type FAQLayoutProps (line 11) | interface FAQLayoutProps { function FAQLayout (line 15) | function FAQLayout({ language }: FAQLayoutProps) { FILE: web/src/components/faq/FAQSearchBar.tsx type FAQSearchBarProps (line 3) | interface FAQSearchBarProps { function FAQSearchBar (line 9) | function FAQSearchBar({ FILE: web/src/components/faq/FAQSidebar.tsx type FAQSidebarProps (line 4) | interface FAQSidebarProps { function FAQSidebar (line 11) | function FAQSidebar({ FILE: web/src/components/landing/AboutSection.tsx type AboutSectionProps (line 5) | interface AboutSectionProps { function AboutSection (line 9) | function AboutSection({ language }: AboutSectionProps) { FILE: web/src/components/landing/AnimatedSection.tsx function AnimatedSection (line 4) | function AnimatedSection({ FILE: web/src/components/landing/CommunitySection.tsx type TweetProps (line 5) | interface TweetProps { function TweetCard (line 14) | function TweetCard({ quote, authorName, handle, avatarUrl, tweetUrl, del... type CommunitySectionProps (line 93) | interface CommunitySectionProps { function CommunitySection (line 97) | function CommunitySection({ language }: CommunitySectionProps) { FILE: web/src/components/landing/FeaturesSection.tsx type FeaturesSectionProps (line 5) | interface FeaturesSectionProps { function FeaturesSection (line 9) | function FeaturesSection({ language }: FeaturesSectionProps) { FILE: web/src/components/landing/FooterSection.tsx type FooterSectionProps (line 5) | interface FooterSectionProps { function FooterSection (line 9) | function FooterSection({ language }: FooterSectionProps) { FILE: web/src/components/landing/HeroSection.tsx type HeroSectionProps (line 8) | interface HeroSectionProps { function HeroSection (line 12) | function HeroSection({ language }: HeroSectionProps) { FILE: web/src/components/landing/HowItWorksSection.tsx type HowItWorksSectionProps (line 5) | interface HowItWorksSectionProps { function HowItWorksSection (line 9) | function HowItWorksSection({ language }: HowItWorksSectionProps) { FILE: web/src/components/landing/LoginModal.tsx type LoginModalProps (line 4) | interface LoginModalProps { function LoginModal (line 9) | function LoginModal({ onClose, language }: LoginModalProps) { FILE: web/src/components/landing/brand/AgentTerminal.tsx function AgentTerminal (line 3) | function AgentTerminal() { FILE: web/src/components/landing/brand/BrandFeatures.tsx function BrandFeatures (line 37) | function BrandFeatures() { FILE: web/src/components/landing/brand/BrandHero.tsx function BrandHero (line 7) | function BrandHero() { FILE: web/src/components/landing/brand/BrandStats.tsx function BrandStats (line 10) | function BrandStats() { FILE: web/src/components/landing/brand/Marquee.tsx function Marquee (line 3) | function Marquee({ FILE: web/src/components/landing/core/AgentGrid.tsx function AgentGrid (line 46) | function AgentGrid() { FILE: web/src/components/landing/core/DeploymentHub.tsx function DeploymentHub (line 5) | function DeploymentHub() { FILE: web/src/components/landing/core/LiveFeed.tsx type LogEntry (line 4) | interface LogEntry { function LiveFeed (line 46) | function LiveFeed() { FILE: web/src/components/landing/core/TerminalHero.tsx function TerminalHero (line 7) | function TerminalHero() { function CommunityStats (line 295) | function CommunityStats() { FILE: web/src/components/modals/SetupPage.tsx function SetupPage (line 7) | function SetupPage() { FILE: web/src/components/modals/TwoStageKeyModal.tsx constant DEFAULT_LENGTH (line 7) | const DEFAULT_LENGTH = 64 function generateObfuscation (line 9) | function generateObfuscation(): string { function validatePrivateKeyFormat (line 17) | function validatePrivateKeyFormat( type TwoStageKeyModalResult (line 28) | interface TwoStageKeyModalResult { type TwoStageKeyModalProps (line 33) | interface TwoStageKeyModalProps { function TwoStageKeyModal (line 42) | function TwoStageKeyModal({ FILE: web/src/components/strategy/CoinSourceEditor.tsx type CoinSourceEditorProps (line 6) | interface CoinSourceEditorProps { function CoinSourceEditor (line 13) | function CoinSourceEditor({ FILE: web/src/components/strategy/GridConfigEditor.tsx type GridConfigEditorProps (line 5) | interface GridConfigEditorProps { function GridConfigEditor (line 31) | function GridConfigEditor({ FILE: web/src/components/strategy/GridRiskPanel.tsx type GridRiskPanelProps (line 6) | interface GridRiskPanelProps { function GridRiskPanel (line 12) | function GridRiskPanel({ FILE: web/src/components/strategy/IndicatorEditor.tsx constant DEFAULT_NOFXOS_API_KEY (line 6) | const DEFAULT_NOFXOS_API_KEY = 'cm_568c67eae410d912c54c' type IndicatorEditorProps (line 8) | interface IndicatorEditorProps { function IndicatorEditor (line 33) | function IndicatorEditor({ FILE: web/src/components/strategy/PromptSectionsEditor.tsx type PromptSectionsEditorProps (line 6) | interface PromptSectionsEditorProps { function PromptSectionsEditor (line 45) | function PromptSectionsEditor({ FILE: web/src/components/strategy/PublishSettingsEditor.tsx type PublishSettingsEditorProps (line 4) | interface PublishSettingsEditorProps { function PublishSettingsEditor (line 13) | function PublishSettingsEditor({ FILE: web/src/components/strategy/RiskControlEditor.tsx type RiskControlEditorProps (line 5) | interface RiskControlEditorProps { function RiskControlEditor (line 12) | function RiskControlEditor({ FILE: web/src/components/trader/AITradersPage.tsx type AITradersPageProps (line 29) | interface AITradersPageProps { function AITradersPage (line 33) | function AITradersPage({ onTraderSelect }: AITradersPageProps) { FILE: web/src/components/trader/CompetitionPage.tsx function CompetitionPage (line 14) | function CompetitionPage() { FILE: web/src/components/trader/ConfigStatusGrid.tsx type UsageInfo (line 20) | interface UsageInfo { type ConfigStatusGridProps (line 25) | interface ConfigStatusGridProps { function ConfigStatusGrid (line 41) | function ConfigStatusGrid({ FILE: web/src/components/trader/DecisionCard.tsx type DecisionCardProps (line 5) | interface DecisionCardProps { constant ACTION_CONFIG (line 12) | const ACTION_CONFIG: Record = { function getExchangeDisplayName (line 129) | function getExchangeDisplayName(exchangeId: string | undefined, exchange... function isPerpDexExchange (line 138) | function isPerpDexExchange(exchangeType: string | undefined): boolean { function getWalletAddress (line 145) | function getWalletAddress(exchange: { exchange_type?: string; hyperliqui... function truncateAddress (line 161) | function truncateAddress(address: string, startLen = 6, endLen = 4): str... FILE: web/src/components/trader/utils.ts function getModelDisplayName (line 2) | function getModelDisplayName(modelId: string): string { function getShortName (line 16) | function getShortName(fullName: string): string { FILE: web/src/components/ui/input.tsx type InputProps (line 4) | type InputProps = React.InputHTMLAttributes FILE: web/src/constants/branding.ts constant ENCODED_LINKS (line 9) | const ENCODED_LINKS = { constant CHECKSUMS (line 16) | const CHECKSUMS = { function simpleHash (line 23) | function simpleHash(str: string): number { function getVerifiedLink (line 34) | function getVerifiedLink(key: keyof typeof ENCODED_LINKS): string { constant OFFICIAL_LINKS (line 51) | const OFFICIAL_LINKS = { method twitter (line 52) | get twitter() { return getVerifiedLink('twitter') } method telegram (line 53) | get telegram() { return getVerifiedLink('telegram') } method github (line 54) | get github() { return getVerifiedLink('github') } constant BRAND_INFO (line 58) | const BRAND_INFO = { FILE: web/src/contexts/AuthContext.tsx type User (line 5) | interface User { type AuthContextType (line 10) | interface AuthContextType { function AuthProvider (line 39) | function AuthProvider({ children }: { children: React.ReactNode }) { function useAuth (line 310) | function useAuth() { FILE: web/src/contexts/LanguageContext.tsx type LanguageContextType (line 4) | interface LanguageContextType { function LanguageProvider (line 13) | function LanguageProvider({ children }: { children: ReactNode }) { function useLanguage (line 35) | function useLanguage() { FILE: web/src/hooks/useCounterAnimation.ts type UseCounterAnimationOptions (line 3) | interface UseCounterAnimationOptions { function useCounterAnimation (line 10) | function useCounterAnimation({ FILE: web/src/hooks/useGitHubStats.ts type GitHubStats (line 3) | interface GitHubStats { function useGitHubStats (line 13) | function useGitHubStats(owner: string, repo: string): GitHubStats { FILE: web/src/hooks/useSystemConfig.ts function useSystemConfig (line 4) | function useSystemConfig() { FILE: web/src/i18n/strategy-translations.ts function ts (line 287) | function ts(entry: { zh: string; en: string; [k: string]: string }, lang... FILE: web/src/i18n/translations.ts type Language (line 1) | type Language = 'en' | 'zh' | 'id' function t (line 3732) | function t( FILE: web/src/lib/api/config.ts method getModelConfigs (line 11) | async getModelConfigs(): Promise { method getSupportedModels (line 17) | async getSupportedModels(): Promise { method getPromptTemplates (line 25) | async getPromptTemplates(): Promise { method updateModelConfigs (line 35) | async updateModelConfigs(request: UpdateModelConfigRequest): Promise { method getSupportedExchanges (line 74) | async getSupportedExchanges(): Promise { method updateExchangeConfigs (line 82) | async updateExchangeConfigs( method createExchange (line 89) | async createExchange(request: CreateExchangeRequest): Promise<{ id: stri... method createExchangeEncrypted (line 95) | async createExchangeEncrypted(request: CreateExchangeRequest): Promise<{... method deleteExchange (line 132) | async deleteExchange(exchangeId: string): Promise { method updateExchangeConfigsEncrypted (line 137) | async updateExchangeConfigsEncrypted( method getServerIP (line 175) | async getServerIP(): Promise<{ FILE: web/src/lib/api/data.ts method getStatus (line 13) | async getStatus(traderId?: string): Promise { method getAccount (line 22) | async getAccount(traderId?: string): Promise { method getPositions (line 31) | async getPositions(traderId?: string): Promise { method getDecisions (line 40) | async getDecisions(traderId?: string): Promise { method getLatestDecisions (line 49) | async getLatestDecisions( method getStatistics (line 66) | async getStatistics(traderId?: string): Promise { method getEquityHistory (line 75) | async getEquityHistory(traderId?: string): Promise { method getEquityHistoryBatch (line 84) | async getEquityHistoryBatch(traderIds: string[], hours?: number): Promis... method getTopTraders (line 93) | async getTopTraders(): Promise { method getPublicTraderConfig (line 99) | async getPublicTraderConfig(traderId: string): Promise { method getCompetition (line 107) | async getCompetition(): Promise { method getPositionHistory (line 115) | async getPositionHistory(traderId: string, limit: number = 100): Promise... FILE: web/src/lib/api/helpers.ts constant API_BASE (line 4) | const API_BASE = '/api' function getAuthHeaders (line 9) | function getAuthHeaders(): Record { function handleJSONResponse (line 22) | async function handleJSONResponse(res: Response): Promise { FILE: web/src/lib/api/strategies.ts method getStrategies (line 8) | async getStrategies(): Promise { method getStrategy (line 15) | async getStrategy(strategyId: string): Promise { method getActiveStrategy (line 21) | async getActiveStrategy(): Promise { method getDefaultStrategyConfig (line 27) | async getDefaultStrategyConfig(): Promise { method createStrategy (line 33) | async createStrategy(data: { method updateStrategy (line 43) | async updateStrategy( method deleteStrategy (line 56) | async deleteStrategy(strategyId: string): Promise { method activateStrategy (line 61) | async activateStrategy(strategyId: string): Promise { method duplicateStrategy (line 67) | async duplicateStrategy(strategyId: string): Promise { FILE: web/src/lib/api/telegram.ts method getTelegramConfig (line 5) | async getTelegramConfig(): Promise { method updateTelegramConfig (line 11) | async updateTelegramConfig(token: string, modelId?: string): Promise { method updateTelegramModel (line 21) | async updateTelegramModel(modelId: string): Promise { FILE: web/src/lib/api/traders.ts method getTraders (line 9) | async getTraders(): Promise { method getPublicTraders (line 15) | async getPublicTraders(): Promise { method createTrader (line 21) | async createTrader(request: CreateTraderRequest): Promise { method deleteTrader (line 30) | async deleteTrader(traderId: string): Promise { method startTrader (line 35) | async startTrader(traderId: string): Promise { method stopTrader (line 42) | async stopTrader(traderId: string): Promise { method toggleCompetition (line 47) | async toggleCompetition(traderId: string, showInCompetition: boolean): P... method closePosition (line 55) | async closePosition(traderId: string, symbol: string, side: string): Pro... method updateTraderPrompt (line 64) | async updateTraderPrompt( method getTraderConfig (line 75) | async getTraderConfig(traderId: string): Promise { method updateTrader (line 83) | async updateTrader( FILE: web/src/lib/clipboard.ts function copyWithToast (line 6) | async function copyWithToast(text: string, successMsg = 'Copied') { FILE: web/src/lib/cn.ts function cn (line 5) | function cn(...inputs: ClassValue[]) { FILE: web/src/lib/config.ts type SystemConfig (line 1) | interface SystemConfig { function getSystemConfig (line 9) | function getSystemConfig(): Promise { function invalidateSystemConfig (line 26) | function invalidateSystemConfig() { FILE: web/src/lib/crypto.ts type EncryptedPayload (line 1) | interface EncryptedPayload { type CryptoConfig (line 10) | interface CryptoConfig { type WebCryptoEnvironmentInfo (line 14) | interface WebCryptoEnvironmentInfo { class CryptoService (line 24) | class CryptoService { method transportEncryption (line 29) | static get transportEncryption(): boolean { method initialize (line 33) | static async initialize(publicKeyPEM: string) { method fetchCryptoConfig (line 41) | static async fetchCryptoConfig(): Promise { method importPublicKey (line 51) | private static async importPublicKey(pem: string): Promise { method encryptSensitiveData (line 87) | static async encryptSensitiveData( method arrayBufferToBase64Url (line 157) | private static arrayBufferToBase64Url(buffer: ArrayBuffer): string { method fetchPublicKey (line 169) | static async fetchPublicKey(): Promise { method decryptSensitiveData (line 182) | static async decryptSensitiveData( function generateObfuscation (line 203) | function generateObfuscation(): string { function validatePrivateKeyFormat (line 212) | function validatePrivateKeyFormat( function diagnoseWebCryptoEnvironment (line 223) | function diagnoseWebCryptoEnvironment(): WebCryptoEnvironmentInfo { FILE: web/src/lib/httpClient.ts type ApiResponse (line 18) | interface ApiResponse { class HttpClient (line 27) | class HttpClient { method constructor (line 31) | constructor() { method reset401Flag (line 48) | public reset401Flag(): void { method setupInterceptors (line 55) | private setupInterceptors(): void { method handleError (line 87) | private async handleError(error: AxiosError): Promise { method request (line 167) | async request( method get (line 210) | async get( method post (line 221) | async post( method put (line 232) | async put( method delete (line 243) | async delete( method patch (line 253) | async patch( FILE: web/src/lib/notify.tsx type ConfirmOptions (line 4) | interface ConfirmOptions { function setGlobalConfirm (line 16) | function setGlobalConfirm( function confirmToast (line 23) | function confirmToast( type Message (line 39) | type Message = string | ReactNode function message (line 41) | function message(msg: Message, options?: Parameters[1]) { function success (line 45) | function success(msg: Message, options?: Parameters[1]) { function info (line 53) | function info(msg: Message, options?: Parameters[1]) { function warning (line 57) | function warning(msg: Message, options?: Parameters(p: Promise | (() => Promise), msgs: any) { FILE: web/src/lib/registrationToggle.test.ts type SystemConfig (line 80) | interface SystemConfig { FILE: web/src/lib/text.ts function stripLeadingIcons (line 11) | function stripLeadingIcons(input: string | undefined | null): string { FILE: web/src/pages/DataPage.tsx function DataPage (line 4) | function DataPage() { FILE: web/src/pages/FAQPage.tsx function FAQPage (line 17) | function FAQPage() { FILE: web/src/pages/LandingPage.tsx function LandingPage (line 13) | function LandingPage() { FILE: web/src/pages/PageNotFound.tsx function PageNotFound (line 4) | function PageNotFound() { FILE: web/src/pages/SettingsPage.tsx type Tab (line 12) | type Tab = 'account' | 'models' | 'exchanges' | 'telegram' function SettingsPage (line 14) | function SettingsPage() { FILE: web/src/pages/StrategyMarketPage.tsx type PublicStrategy (line 26) | interface PublicStrategy { function getStrategyStyle (line 93) | function getStrategyStyle(name: string) { function StrategyMarketPage (line 103) | function StrategyMarketPage() { FILE: web/src/pages/StrategyStudioPage.tsx constant API_BASE (line 44) | const API_BASE = import.meta.env.VITE_API_BASE || '' function StrategyStudioPage (line 46) | function StrategyStudioPage() { FILE: web/src/pages/TraderDashboardPage.tsx function getModelDisplayName (line 27) | function getModelDisplayName(modelId: string): string { function getExchangeDisplayNameFromList (line 41) | function getExchangeDisplayNameFromList( function getExchangeTypeFromList (line 55) | function getExchangeTypeFromList( function isPerpDexExchange (line 66) | function isPerpDexExchange(exchangeType: string | undefined): boolean { function getWalletAddress (line 73) | function getWalletAddress(exchange: Exchange | undefined): string | unde... function truncateAddress (line 89) | function truncateAddress(address: string, startLen = 6, endLen = 4): str... type TraderDashboardPageProps (line 96) | interface TraderDashboardPageProps { function TraderDashboardPage (line 115) | function TraderDashboardPage({ function StatCard (line 813) | function StatCard({ FILE: web/src/stores/tradersConfigStore.ts type TradersConfigState (line 5) | interface TradersConfigState { FILE: web/src/stores/tradersModalStore.ts type TradersModalState (line 4) | interface TradersModalState { FILE: web/src/types/config.ts type AIModel (line 1) | interface AIModel { type TelegramConfig (line 11) | interface TelegramConfig { type Exchange (line 18) | interface Exchange { type CreateExchangeRequest (line 42) | interface CreateExchangeRequest { type CreateTraderRequest (line 60) | interface CreateTraderRequest { type UpdateModelConfigRequest (line 80) | interface UpdateModelConfigRequest { type UpdateExchangeConfigRequest (line 91) | interface UpdateExchangeConfigRequest { FILE: web/src/types/strategy.ts type Strategy (line 2) | interface Strategy { type StrategyStats (line 16) | interface StrategyStats { type StrategyPerformer (line 23) | interface StrategyPerformer { type PromptSectionsConfig (line 34) | interface PromptSectionsConfig { type StrategyConfig (line 41) | interface StrategyConfig { type GridStrategyConfig (line 57) | interface GridStrategyConfig { type CoinSourceConfig (line 90) | interface CoinSourceConfig { type IndicatorConfig (line 103) | interface IndicatorConfig { type KlineConfig (line 147) | interface KlineConfig { type ExternalDataSource (line 157) | interface ExternalDataSource { type RiskControlConfig (line 167) | interface RiskControlConfig { FILE: web/src/types/trading.ts type SystemStatus (line 1) | interface SystemStatus { type AccountInfo (line 18) | interface AccountInfo { type Position (line 32) | interface Position { type DecisionAction (line 45) | interface DecisionAction { type AccountSnapshot (line 61) | interface AccountSnapshot { type DecisionRecord (line 69) | interface DecisionRecord { type Statistics (line 85) | interface Statistics { type TraderInfo (line 94) | interface TraderInfo { type CompetitionTraderData (line 110) | interface CompetitionTraderData { type CompetitionData (line 123) | interface CompetitionData { type TraderConfigData (line 129) | interface TraderConfigData { type HistoricalPosition (line 153) | interface HistoricalPosition { type TraderStats (line 178) | interface TraderStats { type SymbolStats (line 193) | interface SymbolStats { type DirectionStats (line 204) | interface DirectionStats { type PositionHistoryResponse (line 212) | interface PositionHistoryResponse { type GridRiskInfo (line 220) | interface GridRiskInfo { FILE: web/src/utils/format.ts function formatPrice (line 15) | function formatPrice(price: number | undefined | null, minDecimals = 2):... function formatQuantity (line 80) | function formatQuantity(quantity: number | undefined | null, minDecimals... function formatPercent (line 128) | function formatPercent(value: number | undefined | null, decimals = 2): ... FILE: web/src/utils/indicators.ts type Kline (line 3) | interface Kline { function calculateSMA (line 13) | function calculateSMA(data: Kline[], period: number): Array<{ time: numb... function calculateEMA (line 31) | function calculateEMA(data: Kline[], period: number): Array<{ time: numb... type MACDData (line 53) | interface MACDData { function calculateMACD (line 60) | function calculateMACD( function calculateEMAFromValues (line 102) | function calculateEMAFromValues( function calculateRSI (line 129) | function calculateRSI(data: Kline[], period = 14): Array<{ time: number;... type BollingerBands (line 178) | interface BollingerBands { function calculateBollingerBands (line 185) | function calculateBollingerBands( FILE: web/src/utils/traderColors.ts constant TRADER_COLORS (line 4) | const TRADER_COLORS = [ function getTraderColor (line 23) | function getTraderColor(