summaryrefslogtreecommitdiff
path: root/continuedev/src
diff options
context:
space:
mode:
Diffstat (limited to 'continuedev/src')
-rw-r--r--continuedev/src/continuedev/core/agent.py4
-rw-r--r--continuedev/src/continuedev/core/config.py4
-rw-r--r--continuedev/src/continuedev/libs/util/telemetry.py12
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)