/* * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals. * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace QuantConnect.Packets { /// /// Base class for packet messaging system /// public class Packet { /// /// Packet type defined by a string enum /// public PacketType Type { get; set; } = PacketType.None; /// /// User unique specific channel endpoint to send the packets /// public virtual string Channel { get; set; } = ""; /// /// Initialize the base class and setup the packet type. /// /// PacketType for the class. public Packet(PacketType type) { Channel = ""; Type = type; } } /// /// Classifications of internal packet system /// [JsonConverter(typeof(StringEnumConverter))] public enum PacketType { /// /// Default, unset: /// None, /// /// Base type for backtest and live work /// AlgorithmNode, /// /// Autocomplete Work Packet /// AutocompleteWork, /// /// Result of the Autocomplete Job: /// AutocompleteResult, /// /// Controller->Backtest Node Packet: /// BacktestNode, /// /// Packet out of backtest node: /// BacktestResult, /// /// API-> Controller Work Packet: /// BacktestWork, /// /// Controller -> Live Node Packet: /// LiveNode, /// /// Live Node -> User Packet: /// LiveResult, /// /// API -> Controller Packet: /// LiveWork, /// /// Node -> User Algo Security Types /// SecurityTypes, /// /// Controller -> User Error in Backtest Settings: /// BacktestError, /// /// Nodes -> User Algorithm Status Packet: /// AlgorithmStatus, /// /// API -> Compiler Work Packet: /// BuildWork, /// /// Compiler -> User Build Success /// BuildSuccess, /// /// Compiler -> User, Compile Error /// BuildError, /// /// Node -> User Algorithm Runtime Error /// RuntimeError, /// /// Error is an internal handled error packet inside users algorithm /// HandledError, /// /// Nodes -> User Log Message /// Log, /// /// Nodes -> User Debug Message /// Debug, /// /// Nodes -> User, Order Update Event /// OrderEvent, /// /// Boolean true/false success /// Success, /// /// History live job packets /// History, /// /// Result from a command /// CommandResult, /// /// Hook from git hub /// GitHubHook, /// /// Documentation result from docs server /// DocumentationResult, /// /// Documentation request to the docs server /// Documentation, /// /// Debug packet generated by Lean /// SystemDebug, /// /// Packet containing insights generated by the algorithm /// AlphaResult, /// /// Alpha API -> Controller packet /// AlphaWork, /// /// Alpha Controller -> Alpha Node packet /// AlphaNode, /// /// Packet containing list of algorithms to run as a regression test /// RegressionAlgorithm, /// /// Packet containing a heartbeat /// AlphaHeartbeat, /// /// Used when debugging to send status updates /// DebuggingStatus, /// /// Optimization Node Packet: /// OptimizationNode, /// /// Optimization Estimate Packet: /// OptimizationEstimate, /// /// Optimization work status update /// OptimizationStatus, /// /// Optimization work result /// OptimizationResult, /// /// Aggregated packets /// Aggregated, /// /// Query the language model /// LanguageModelQuery, /// /// Send feedback to a language model response /// LanguageModelFeedback, /// /// The language models response /// LanguageModelResponse, /// /// Language model code analysis /// LanguageModelCodeAnalysis, /// /// Language model chat work /// LanguageModelChatWork, /// /// Language model chat response /// LanguageModelChatResponse, /// /// Algorithm name update /// AlgorithmNameUpdate, /// /// Algorithm tags update /// AlgorithmTagsUpdate, /// /// Research job packet /// ResearchNode, /// /// Organization update /// OrganizationUpdate, /// /// Compiler -> User Build Warnings /// BuildWarning, /// /// Language model function call related packet /// LanguageModelFunctionCall, /// /// Language model agent message /// LanguageModelAgentMessage, /// /// Agent job packet /// AgentNode } }