diff options
Diffstat (limited to 'continuedev/src')
| -rw-r--r-- | continuedev/src/continuedev/core/agent.py | 4 | ||||
| -rw-r--r-- | continuedev/src/continuedev/core/config.py | 4 | ||||
| -rw-r--r-- | continuedev/src/continuedev/libs/util/telemetry.py | 12 | 
3 files changed, 20 insertions, 0 deletions
| diff --git a/continuedev/src/continuedev/core/agent.py b/continuedev/src/continuedev/core/agent.py index cf5c9781..29c695af 100644 --- a/continuedev/src/continuedev/core/agent.py +++ b/continuedev/src/continuedev/core/agent.py @@ -9,6 +9,7 @@ from ..libs.util.queue import AsyncSubscriptionQueue  from ..models.main import ContinueBaseModel  from .main import Policy, History, FullState, Step, HistoryNode  from ..libs.steps.core.core import ReversibleStep, ManualEditStep, UserInputStep +from ..libs.util.telemetry import capture_event  from .sdk import ContinueSDK  import asyncio @@ -77,6 +78,9 @@ class Agent(ContinueBaseModel):      _step_depth: int = 0      async def _run_singular_step(self, step: "Step", is_future_step: bool = False) -> Coroutine[Observation, None, None]: +        capture_event( +            'step run', {'step_name': step.name, 'params': step.dict()}) +          if not is_future_step:              # Check manual edits buffer, clear out if needed by creating a ManualEditStep              if len(self._manual_edits_buffer) > 0: diff --git a/continuedev/src/continuedev/core/config.py b/continuedev/src/continuedev/core/config.py index e62f0e4f..8ed41a82 100644 --- a/continuedev/src/continuedev/core/config.py +++ b/continuedev/src/continuedev/core/config.py @@ -11,12 +11,16 @@ class ContinueConfig(BaseModel):      """      steps_on_startup: Optional[Dict[str, Dict]] = {}      server_url: Optional[str] = None +    allow_anonymous_telemetry: Optional[bool] = True  def load_config(config_file: str) -> ContinueConfig:      """      Load the config file and return a ContinueConfig object.      """ +    if not os.path.exists(config_file): +        return ContinueConfig() +      _, ext = os.path.splitext(config_file)      if ext == '.yaml':          with open(config_file, 'r') as f: diff --git a/continuedev/src/continuedev/libs/util/telemetry.py b/continuedev/src/continuedev/libs/util/telemetry.py new file mode 100644 index 00000000..4bff3970 --- /dev/null +++ b/continuedev/src/continuedev/libs/util/telemetry.py @@ -0,0 +1,12 @@ +from posthog import Posthog +from ...core.config import load_config + +# The personal API key is necessary only if you want to use local evaluation of feature flags. +posthog = Posthog('phc_JS6XFROuNbhJtVCEdTSYk6gl5ArRrTNMpCcguAXlSPs', +                  host='https://app.posthog.com') + + +def capture_event(event_name, event_properties): +    config = load_config('~/.continue/continue.json') +    if config.allow_anonymous_telemetry: +        posthog.capture("not distinct :(", event_name, event_properties) | 
