repr-cli 0.2.12__tar.gz → 0.2.13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. {repr_cli-0.2.12/repr_cli.egg-info → repr_cli-0.2.13}/PKG-INFO +1 -1
  2. {repr_cli-0.2.12 → repr_cli-0.2.13}/pyproject.toml +1 -1
  3. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/auth.py +17 -0
  4. {repr_cli-0.2.12 → repr_cli-0.2.13/repr_cli.egg-info}/PKG-INFO +1 -1
  5. {repr_cli-0.2.12 → repr_cli-0.2.13}/LICENSE +0 -0
  6. {repr_cli-0.2.12 → repr_cli-0.2.13}/README.md +0 -0
  7. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/__init__.py +0 -0
  8. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/__main__.py +0 -0
  9. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/api.py +0 -0
  10. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/cli.py +0 -0
  11. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/config.py +0 -0
  12. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/discovery.py +0 -0
  13. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/doctor.py +0 -0
  14. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/extractor.py +0 -0
  15. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/hooks.py +0 -0
  16. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/keychain.py +0 -0
  17. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/llm.py +0 -0
  18. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/openai_analysis.py +0 -0
  19. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/privacy.py +0 -0
  20. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/storage.py +0 -0
  21. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/telemetry.py +0 -0
  22. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/templates.py +0 -0
  23. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/tools.py +0 -0
  24. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/ui.py +0 -0
  25. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr/updater.py +0 -0
  26. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr_cli.egg-info/SOURCES.txt +0 -0
  27. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr_cli.egg-info/dependency_links.txt +0 -0
  28. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr_cli.egg-info/entry_points.txt +0 -0
  29. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr_cli.egg-info/requires.txt +0 -0
  30. {repr_cli-0.2.12 → repr_cli-0.2.13}/repr_cli.egg-info/top_level.txt +0 -0
  31. {repr_cli-0.2.12 → repr_cli-0.2.13}/setup.cfg +0 -0
  32. {repr_cli-0.2.12 → repr_cli-0.2.13}/setup.py +0 -0
  33. {repr_cli-0.2.12 → repr_cli-0.2.13}/tests/test_environment_variables.py +0 -0
  34. {repr_cli-0.2.12 → repr_cli-0.2.13}/tests/test_network_sandboxing.py +0 -0
  35. {repr_cli-0.2.12 → repr_cli-0.2.13}/tests/test_privacy_guarantees.py +0 -0
  36. {repr_cli-0.2.12 → repr_cli-0.2.13}/tests/test_profile_export.py +0 -0
  37. {repr_cli-0.2.12 → repr_cli-0.2.13}/tests/test_repo_identity.py +0 -0
  38. {repr_cli-0.2.12 → repr_cli-0.2.13}/tests/test_stories_review.py +0 -0
  39. {repr_cli-0.2.12 → repr_cli-0.2.13}/tests/test_token_budget.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: repr-cli
3
- Version: 0.2.12
3
+ Version: 0.2.13
4
4
  Summary: A beautiful, privacy-first CLI that analyzes your code repositories and generates a compelling developer profile
5
5
  Author-email: Repr <hello@repr.dev>
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "repr-cli"
7
- version = "0.2.12"
7
+ version = "0.2.13"
8
8
  description = "A beautiful, privacy-first CLI that analyzes your code repositories and generates a compelling developer profile"
9
9
  readme = "README.md"
10
10
  license = {file = "LICENSE"}
@@ -5,12 +5,15 @@ Tokens are stored securely in OS keychain (see keychain.py).
5
5
  """
6
6
 
7
7
  import asyncio
8
+ import platform
9
+ import socket
8
10
  import time
9
11
  from dataclasses import dataclass
10
12
 
11
13
  import httpx
12
14
 
13
15
  from .config import set_auth, clear_auth, get_auth, is_authenticated, get_api_base
16
+ from .telemetry import get_device_id
14
17
 
15
18
 
16
19
  def _get_device_code_url() -> str:
@@ -25,6 +28,16 @@ POLL_INTERVAL = 5 # seconds
25
28
  MAX_POLL_TIME = 600 # 10 minutes
26
29
 
27
30
 
31
+ def _get_device_name() -> str:
32
+ """Get a friendly device name for display."""
33
+ try:
34
+ hostname = socket.gethostname()
35
+ system = platform.system()
36
+ return f"{hostname} ({system})"
37
+ except Exception:
38
+ return "Unknown Device"
39
+
40
+
28
41
  @dataclass
29
42
  class DeviceCodeResponse:
30
43
  """Response from device code request."""
@@ -106,6 +119,8 @@ async def poll_for_token(device_code: str, interval: int = POLL_INTERVAL) -> Tok
106
119
  json={
107
120
  "device_code": device_code,
108
121
  "client_id": "repr-cli",
122
+ "device_id": get_device_id(),
123
+ "device_name": _get_device_name(),
109
124
  },
110
125
  timeout=30,
111
126
  )
@@ -314,6 +329,8 @@ class AuthFlow:
314
329
  json={
315
330
  "device_code": device_code_response.device_code,
316
331
  "client_id": "repr-cli",
332
+ "device_id": get_device_id(),
333
+ "device_name": _get_device_name(),
317
334
  },
318
335
  timeout=30,
319
336
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: repr-cli
3
- Version: 0.2.12
3
+ Version: 0.2.13
4
4
  Summary: A beautiful, privacy-first CLI that analyzes your code repositories and generates a compelling developer profile
5
5
  Author-email: Repr <hello@repr.dev>
6
6
  License: MIT License
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes