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) |