tesla-cli 4.8.0__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 (235) hide show
  1. tesla_cli-4.8.0/.dockerignore +9 -0
  2. tesla_cli-4.8.0/.env.example +17 -0
  3. tesla_cli-4.8.0/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
  4. tesla_cli-4.8.0/.github/ISSUE_TEMPLATE/feature_request.md +18 -0
  5. tesla_cli-4.8.0/.github/workflows/ci.yml +36 -0
  6. tesla_cli-4.8.0/.github/workflows/publish.yml +31 -0
  7. tesla_cli-4.8.0/.gitignore +71 -0
  8. tesla_cli-4.8.0/.python-version +1 -0
  9. tesla_cli-4.8.0/CHANGELOG.md +1170 -0
  10. tesla_cli-4.8.0/CLAUDE.md +90 -0
  11. tesla_cli-4.8.0/CONTRIBUTING.md +140 -0
  12. tesla_cli-4.8.0/Dockerfile +34 -0
  13. tesla_cli-4.8.0/Formula/tesla-cli.rb +58 -0
  14. tesla_cli-4.8.0/LICENSE +21 -0
  15. tesla_cli-4.8.0/Makefile +78 -0
  16. tesla_cli-4.8.0/PKG-INFO +208 -0
  17. tesla_cli-4.8.0/README.md +156 -0
  18. tesla_cli-4.8.0/SECURITY.md +29 -0
  19. tesla_cli-4.8.0/docker-compose.full.yml +67 -0
  20. tesla_cli-4.8.0/docker-compose.yml +22 -0
  21. tesla_cli-4.8.0/docs/api-reference.md +281 -0
  22. tesla_cli-4.8.0/docs/architecture.md +198 -0
  23. tesla_cli-4.8.0/docs/configuration.md +152 -0
  24. tesla_cli-4.8.0/docs/data-sources.md +256 -0
  25. tesla_cli-4.8.0/docs/research/competitive-analysis.md +1462 -0
  26. tesla_cli-4.8.0/docs/roadmap.md +130 -0
  27. tesla_cli-4.8.0/docs/user-guide.md +525 -0
  28. tesla_cli-4.8.0/docs/why-tesla-cli.md +115 -0
  29. tesla_cli-4.8.0/plugins/claude-code/.claude-plugin/marketplace.json +31 -0
  30. tesla_cli-4.8.0/plugins/claude-code/.claude-plugin/plugin.json +14 -0
  31. tesla_cli-4.8.0/plugins/claude-code/.gitignore +5 -0
  32. tesla_cli-4.8.0/plugins/claude-code/CHANGELOG.md +50 -0
  33. tesla_cli-4.8.0/plugins/claude-code/CLAUDE.md +44 -0
  34. tesla_cli-4.8.0/plugins/claude-code/LICENSE +21 -0
  35. tesla_cli-4.8.0/plugins/claude-code/README.md +142 -0
  36. tesla_cli-4.8.0/plugins/claude-code/bin/tesla-check +63 -0
  37. tesla_cli-4.8.0/plugins/claude-code/docs/design.md +87 -0
  38. tesla_cli-4.8.0/plugins/claude-code/skills/analytics/SKILL.md +100 -0
  39. tesla_cli-4.8.0/plugins/claude-code/skills/automations/SKILL.md +98 -0
  40. tesla_cli-4.8.0/plugins/claude-code/skills/charge/SKILL.md +88 -0
  41. tesla_cli-4.8.0/plugins/claude-code/skills/control/SKILL.md +101 -0
  42. tesla_cli-4.8.0/plugins/claude-code/skills/dossier/SKILL.md +80 -0
  43. tesla_cli-4.8.0/plugins/claude-code/skills/order/SKILL.md +86 -0
  44. tesla_cli-4.8.0/plugins/claude-code/skills/serve/SKILL.md +58 -0
  45. tesla_cli-4.8.0/plugins/claude-code/skills/setup/SKILL.md +90 -0
  46. tesla_cli-4.8.0/plugins/claude-code/skills/status/SKILL.md +100 -0
  47. tesla_cli-4.8.0/plugins/claude-code/skills/telemetry/SKILL.md +68 -0
  48. tesla_cli-4.8.0/plugins/claude-code/skills/tesla-context/SKILL.md +60 -0
  49. tesla_cli-4.8.0/pyproject.toml +82 -0
  50. tesla_cli-4.8.0/src/tesla_cli/__init__.py +3 -0
  51. tesla_cli-4.8.0/src/tesla_cli/__main__.py +5 -0
  52. tesla_cli-4.8.0/src/tesla_cli/api/__init__.py +0 -0
  53. tesla_cli-4.8.0/src/tesla_cli/api/app.py +594 -0
  54. tesla_cli-4.8.0/src/tesla_cli/api/auth.py +50 -0
  55. tesla_cli-4.8.0/src/tesla_cli/api/routes/__init__.py +1 -0
  56. tesla_cli-4.8.0/src/tesla_cli/api/routes/auth.py +389 -0
  57. tesla_cli-4.8.0/src/tesla_cli/api/routes/charge.py +178 -0
  58. tesla_cli-4.8.0/src/tesla_cli/api/routes/climate.py +69 -0
  59. tesla_cli-4.8.0/src/tesla_cli/api/routes/colombia.py +138 -0
  60. tesla_cli-4.8.0/src/tesla_cli/api/routes/dossier.py +140 -0
  61. tesla_cli-4.8.0/src/tesla_cli/api/routes/geofence.py +135 -0
  62. tesla_cli-4.8.0/src/tesla_cli/api/routes/notify.py +86 -0
  63. tesla_cli-4.8.0/src/tesla_cli/api/routes/order.py +25 -0
  64. tesla_cli-4.8.0/src/tesla_cli/api/routes/security.py +119 -0
  65. tesla_cli-4.8.0/src/tesla_cli/api/routes/sources.py +107 -0
  66. tesla_cli-4.8.0/src/tesla_cli/api/routes/teslaMate.py +344 -0
  67. tesla_cli-4.8.0/src/tesla_cli/api/routes/vehicle.py +322 -0
  68. tesla_cli-4.8.0/src/tesla_cli/cli/__init__.py +0 -0
  69. tesla_cli-4.8.0/src/tesla_cli/cli/app.py +255 -0
  70. tesla_cli-4.8.0/src/tesla_cli/cli/commands/__init__.py +0 -0
  71. tesla_cli-4.8.0/src/tesla_cli/cli/commands/abrp.py +278 -0
  72. tesla_cli-4.8.0/src/tesla_cli/cli/commands/automations.py +772 -0
  73. tesla_cli-4.8.0/src/tesla_cli/cli/commands/ble.py +235 -0
  74. tesla_cli-4.8.0/src/tesla_cli/cli/commands/charge.py +1213 -0
  75. tesla_cli-4.8.0/src/tesla_cli/cli/commands/climate.py +316 -0
  76. tesla_cli-4.8.0/src/tesla_cli/cli/commands/config_cmd.py +1158 -0
  77. tesla_cli-4.8.0/src/tesla_cli/cli/commands/data_cmd.py +584 -0
  78. tesla_cli-4.8.0/src/tesla_cli/cli/commands/dossier.py +2208 -0
  79. tesla_cli-4.8.0/src/tesla_cli/cli/commands/energy.py +298 -0
  80. tesla_cli-4.8.0/src/tesla_cli/cli/commands/geofence.py +252 -0
  81. tesla_cli-4.8.0/src/tesla_cli/cli/commands/ha.py +316 -0
  82. tesla_cli-4.8.0/src/tesla_cli/cli/commands/media.py +161 -0
  83. tesla_cli-4.8.0/src/tesla_cli/cli/commands/mqtt_cmd.py +413 -0
  84. tesla_cli-4.8.0/src/tesla_cli/cli/commands/notify.py +249 -0
  85. tesla_cli-4.8.0/src/tesla_cli/cli/commands/order.py +1352 -0
  86. tesla_cli-4.8.0/src/tesla_cli/cli/commands/providers_cmd.py +194 -0
  87. tesla_cli-4.8.0/src/tesla_cli/cli/commands/scenes.py +299 -0
  88. tesla_cli-4.8.0/src/tesla_cli/cli/commands/security.py +158 -0
  89. tesla_cli-4.8.0/src/tesla_cli/cli/commands/serve.py +475 -0
  90. tesla_cli-4.8.0/src/tesla_cli/cli/commands/setup.py +886 -0
  91. tesla_cli-4.8.0/src/tesla_cli/cli/commands/telemetry.py +323 -0
  92. tesla_cli-4.8.0/src/tesla_cli/cli/commands/teslaMate.py +2411 -0
  93. tesla_cli-4.8.0/src/tesla_cli/cli/commands/vehicle.py +3000 -0
  94. tesla_cli-4.8.0/src/tesla_cli/cli/i18n.py +604 -0
  95. tesla_cli-4.8.0/src/tesla_cli/cli/output.py +156 -0
  96. tesla_cli-4.8.0/src/tesla_cli/core/__init__.py +0 -0
  97. tesla_cli-4.8.0/src/tesla_cli/core/auth/__init__.py +0 -0
  98. tesla_cli-4.8.0/src/tesla_cli/core/auth/browser_login.py +233 -0
  99. tesla_cli-4.8.0/src/tesla_cli/core/auth/encryption.py +70 -0
  100. tesla_cli-4.8.0/src/tesla_cli/core/auth/oauth.py +275 -0
  101. tesla_cli-4.8.0/src/tesla_cli/core/auth/portal_scrape.py +113 -0
  102. tesla_cli-4.8.0/src/tesla_cli/core/auth/tessie.py +12 -0
  103. tesla_cli-4.8.0/src/tesla_cli/core/auth/tokens.py +41 -0
  104. tesla_cli-4.8.0/src/tesla_cli/core/automation.py +370 -0
  105. tesla_cli-4.8.0/src/tesla_cli/core/backends/__init__.py +54 -0
  106. tesla_cli-4.8.0/src/tesla_cli/core/backends/base.py +116 -0
  107. tesla_cli-4.8.0/src/tesla_cli/core/backends/dossier.py +1073 -0
  108. tesla_cli-4.8.0/src/tesla_cli/core/backends/energy.py +111 -0
  109. tesla_cli-4.8.0/src/tesla_cli/core/backends/fleet.py +343 -0
  110. tesla_cli-4.8.0/src/tesla_cli/core/backends/fleet_signed.py +445 -0
  111. tesla_cli-4.8.0/src/tesla_cli/core/backends/fleet_telemetry.py +150 -0
  112. tesla_cli-4.8.0/src/tesla_cli/core/backends/http.py +82 -0
  113. tesla_cli-4.8.0/src/tesla_cli/core/backends/order.py +487 -0
  114. tesla_cli-4.8.0/src/tesla_cli/core/backends/owner.py +213 -0
  115. tesla_cli-4.8.0/src/tesla_cli/core/backends/runt.py +73 -0
  116. tesla_cli-4.8.0/src/tesla_cli/core/backends/simit.py +65 -0
  117. tesla_cli-4.8.0/src/tesla_cli/core/backends/teslaMate.py +557 -0
  118. tesla_cli-4.8.0/src/tesla_cli/core/backends/tessie.py +141 -0
  119. tesla_cli-4.8.0/src/tesla_cli/core/config.py +185 -0
  120. tesla_cli-4.8.0/src/tesla_cli/core/exceptions.py +104 -0
  121. tesla_cli-4.8.0/src/tesla_cli/core/models/__init__.py +0 -0
  122. tesla_cli-4.8.0/src/tesla_cli/core/models/automation.py +39 -0
  123. tesla_cli-4.8.0/src/tesla_cli/core/models/charge.py +152 -0
  124. tesla_cli-4.8.0/src/tesla_cli/core/models/climate.py +23 -0
  125. tesla_cli-4.8.0/src/tesla_cli/core/models/dossier.py +450 -0
  126. tesla_cli-4.8.0/src/tesla_cli/core/models/drive.py +33 -0
  127. tesla_cli-4.8.0/src/tesla_cli/core/models/energy.py +35 -0
  128. tesla_cli-4.8.0/src/tesla_cli/core/models/order.py +88 -0
  129. tesla_cli-4.8.0/src/tesla_cli/core/models/vehicle.py +26 -0
  130. tesla_cli-4.8.0/src/tesla_cli/core/providers/__init__.py +52 -0
  131. tesla_cli-4.8.0/src/tesla_cli/core/providers/base.py +180 -0
  132. tesla_cli-4.8.0/src/tesla_cli/core/providers/impl/__init__.py +1 -0
  133. tesla_cli-4.8.0/src/tesla_cli/core/providers/impl/abrp.py +93 -0
  134. tesla_cli-4.8.0/src/tesla_cli/core/providers/impl/apprise_notify.py +93 -0
  135. tesla_cli-4.8.0/src/tesla_cli/core/providers/impl/ble.py +113 -0
  136. tesla_cli-4.8.0/src/tesla_cli/core/providers/impl/ha.py +137 -0
  137. tesla_cli-4.8.0/src/tesla_cli/core/providers/impl/mqtt.py +162 -0
  138. tesla_cli-4.8.0/src/tesla_cli/core/providers/impl/teslaMate.py +133 -0
  139. tesla_cli-4.8.0/src/tesla_cli/core/providers/impl/vehicle_api.py +126 -0
  140. tesla_cli-4.8.0/src/tesla_cli/core/providers/loader.py +64 -0
  141. tesla_cli-4.8.0/src/tesla_cli/core/providers/registry.py +228 -0
  142. tesla_cli-4.8.0/src/tesla_cli/core/sources.py +740 -0
  143. tesla_cli-4.8.0/src/tesla_cli/endpoints.json +3121 -0
  144. tesla_cli-4.8.0/src/tesla_cli/infra/__init__.py +0 -0
  145. tesla_cli-4.8.0/src/tesla_cli/infra/fleet_telemetry_stack.py +490 -0
  146. tesla_cli-4.8.0/src/tesla_cli/infra/teslamate_stack.py +494 -0
  147. tesla_cli-4.8.0/src/tesla_cli/py.typed +0 -0
  148. tesla_cli-4.8.0/tesla-config-backup.json +70 -0
  149. tesla_cli-4.8.0/tests/__init__.py +1 -0
  150. tesla_cli-4.8.0/tests/conftest.py +139 -0
  151. tesla_cli-4.8.0/tests/test_api_routes.py +1088 -0
  152. tesla_cli-4.8.0/tests/test_api_routes_new.py +465 -0
  153. tesla_cli-4.8.0/tests/test_auth.py +436 -0
  154. tesla_cli-4.8.0/tests/test_browser_login.py +129 -0
  155. tesla_cli-4.8.0/tests/test_commands.py +800 -0
  156. tesla_cli-4.8.0/tests/test_models.py +274 -0
  157. tesla_cli-4.8.0/tests/test_new_commands.py +9429 -0
  158. tesla_cli-4.8.0/tests/test_order_backend.py +530 -0
  159. tesla_cli-4.8.0/tests/test_pipeline.py +174 -0
  160. tesla_cli-4.8.0/tests/test_providers.py +693 -0
  161. tesla_cli-4.8.0/tests/test_providers_new.py +918 -0
  162. tesla_cli-4.8.0/tests/test_runt.py +198 -0
  163. tesla_cli-4.8.0/tests/test_runt_integration.py +68 -0
  164. tesla_cli-4.8.0/tests/test_server.py +633 -0
  165. tesla_cli-4.8.0/tests/test_simit.py +212 -0
  166. tesla_cli-4.8.0/tests/test_simit_integration.py +73 -0
  167. tesla_cli-4.8.0/tests/test_sources.py +896 -0
  168. tesla_cli-4.8.0/tests/test_teslamate_stack.py +367 -0
  169. tesla_cli-4.8.0/tests/test_v260.py +529 -0
  170. tesla_cli-4.8.0/tests/test_v270.py +259 -0
  171. tesla_cli-4.8.0/tests/test_v280.py +475 -0
  172. tesla_cli-4.8.0/tests/test_v290.py +541 -0
  173. tesla_cli-4.8.0/tests/test_v300.py +495 -0
  174. tesla_cli-4.8.0/tests/test_v310.py +398 -0
  175. tesla_cli-4.8.0/tests/test_v320.py +476 -0
  176. tesla_cli-4.8.0/tests/test_v330.py +417 -0
  177. tesla_cli-4.8.0/tests/test_v340.py +452 -0
  178. tesla_cli-4.8.0/ui/.browserslistrc +6 -0
  179. tesla_cli-4.8.0/ui/.gitignore +31 -0
  180. tesla_cli-4.8.0/ui/cypress/e2e/test.cy.ts +6 -0
  181. tesla_cli-4.8.0/ui/cypress/fixtures/example.json +5 -0
  182. tesla_cli-4.8.0/ui/cypress/support/commands.ts +37 -0
  183. tesla_cli-4.8.0/ui/cypress/support/e2e.ts +20 -0
  184. tesla_cli-4.8.0/ui/cypress.config.ts +10 -0
  185. tesla_cli-4.8.0/ui/eslint.config.js +30 -0
  186. tesla_cli-4.8.0/ui/index.html +31 -0
  187. tesla_cli-4.8.0/ui/ionic.config.json +5 -0
  188. tesla_cli-4.8.0/ui/ionic.starter.json +12 -0
  189. tesla_cli-4.8.0/ui/package-lock.json +11123 -0
  190. tesla_cli-4.8.0/ui/package.json +54 -0
  191. tesla_cli-4.8.0/ui/public/favicon.png +0 -0
  192. tesla_cli-4.8.0/ui/public/manifest.json +24 -0
  193. tesla_cli-4.8.0/ui/src/App.test.tsx +8 -0
  194. tesla_cli-4.8.0/ui/src/App.tsx +119 -0
  195. tesla_cli-4.8.0/ui/src/api/client.ts +673 -0
  196. tesla_cli-4.8.0/ui/src/components/BatteryGauge.tsx +136 -0
  197. tesla_cli-4.8.0/ui/src/components/CommandButton.tsx +84 -0
  198. tesla_cli-4.8.0/ui/src/components/ExploreContainer.css +24 -0
  199. tesla_cli-4.8.0/ui/src/components/ExploreContainer.tsx +14 -0
  200. tesla_cli-4.8.0/ui/src/components/ModelYSilhouette.tsx +328 -0
  201. tesla_cli-4.8.0/ui/src/components/RecentCharges.tsx +64 -0
  202. tesla_cli-4.8.0/ui/src/components/SeatHeaterGrid.tsx +152 -0
  203. tesla_cli-4.8.0/ui/src/components/StatusBadge.tsx +50 -0
  204. tesla_cli-4.8.0/ui/src/components/VehicleMap.tsx +72 -0
  205. tesla_cli-4.8.0/ui/src/components/dossier/CollapsibleSection.tsx +43 -0
  206. tesla_cli-4.8.0/ui/src/components/dossier/LogisticsCard.tsx +127 -0
  207. tesla_cli-4.8.0/ui/src/components/dossier/OptionCodesPills.tsx +64 -0
  208. tesla_cli-4.8.0/ui/src/components/dossier/RuntCard.tsx +114 -0
  209. tesla_cli-4.8.0/ui/src/components/dossier/SimitCard.tsx +90 -0
  210. tesla_cli-4.8.0/ui/src/components/dossier/SpecsGrid.tsx +65 -0
  211. tesla_cli-4.8.0/ui/src/components/dossier/StatusPipeline.tsx +71 -0
  212. tesla_cli-4.8.0/ui/src/components/icons/Icons.tsx +273 -0
  213. tesla_cli-4.8.0/ui/src/components/icons/Spinner.tsx +25 -0
  214. tesla_cli-4.8.0/ui/src/hooks/useDossierData.ts +105 -0
  215. tesla_cli-4.8.0/ui/src/hooks/useVehicleData.ts +110 -0
  216. tesla_cli-4.8.0/ui/src/main.tsx +11 -0
  217. tesla_cli-4.8.0/ui/src/pages/Action.tsx +301 -0
  218. tesla_cli-4.8.0/ui/src/pages/Analytics.tsx +652 -0
  219. tesla_cli-4.8.0/ui/src/pages/Dashboard.tsx +692 -0
  220. tesla_cli-4.8.0/ui/src/pages/Dossier.tsx +350 -0
  221. tesla_cli-4.8.0/ui/src/pages/Home.css +0 -0
  222. tesla_cli-4.8.0/ui/src/pages/Navigation.tsx +367 -0
  223. tesla_cli-4.8.0/ui/src/pages/Settings.tsx +756 -0
  224. tesla_cli-4.8.0/ui/src/pages/Vehicle.tsx +95 -0
  225. tesla_cli-4.8.0/ui/src/pages/vehicle/ChargeContent.tsx +271 -0
  226. tesla_cli-4.8.0/ui/src/pages/vehicle/ClimateContent.tsx +314 -0
  227. tesla_cli-4.8.0/ui/src/pages/vehicle/ControlsContent.tsx +118 -0
  228. tesla_cli-4.8.0/ui/src/pages/vehicle/ScheduleContent.tsx +264 -0
  229. tesla_cli-4.8.0/ui/src/setupTests.ts +14 -0
  230. tesla_cli-4.8.0/ui/src/theme/variables.css +805 -0
  231. tesla_cli-4.8.0/ui/src/vite-env.d.ts +1 -0
  232. tesla_cli-4.8.0/ui/tsconfig.json +21 -0
  233. tesla_cli-4.8.0/ui/tsconfig.node.json +9 -0
  234. tesla_cli-4.8.0/ui/vite.config.ts +31 -0
  235. tesla_cli-4.8.0/uv.lock +3874 -0
@@ -0,0 +1,9 @@
1
+ .git
2
+ .venv
3
+ __pycache__
4
+ *.pyc
5
+ .pytest_cache
6
+ .ruff_cache
7
+ node_modules
8
+ audit/
9
+ .env*
@@ -0,0 +1,17 @@
1
+ # Tesla CLI — Docker Configuration
2
+ # Copy to .env and fill in your values: cp .env.example .env
3
+
4
+ # ── Required ──────────────────────────────────────────────────
5
+ TESLA_VIN= # Your Tesla VIN (17 characters)
6
+ TESLA_RN= # Order reservation number (e.g. RNXXXXXXXXX)
7
+
8
+ # ── API Server ────────────────────────────────────────────────
9
+ TESLA_PORT=8080 # Dashboard + API port
10
+
11
+ # ── Full Stack (docker-compose.full.yml) ──────────────────────
12
+ DB_PASSWORD=teslamate # PostgreSQL password
13
+ ENCRYPTION_KEY=changeme # TeslaMate encryption key (generate a random string)
14
+ TM_PORT=4000 # TeslaMate web UI port
15
+ GRAFANA_PORT=3000 # Grafana dashboard port
16
+ GRAFANA_PASSWORD=admin # Grafana admin password
17
+ MQTT_PORT=1883 # Mosquitto MQTT port
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Report a bug in tesla-cli
4
+ title: "[Bug] "
5
+ labels: bug
6
+ ---
7
+
8
+ ## Describe the bug
9
+ A clear description of what the bug is.
10
+
11
+ ## To Reproduce
12
+ Steps to reproduce:
13
+ 1. Run `tesla ...`
14
+ 2. See error
15
+
16
+ ## Expected behavior
17
+ What you expected to happen.
18
+
19
+ ## Environment
20
+ - OS: [e.g. macOS 15, Ubuntu 24.04]
21
+ - Python: [e.g. 3.12]
22
+ - tesla-cli version: [e.g. 4.8.0]
23
+ - Backend: [owner / fleet / fleet-signed / tessie]
24
+
25
+ ## Logs
26
+ ```
27
+ Paste relevant output here
28
+ ```
29
+
30
+ ## Additional context
31
+ Any other context (screenshots, config, etc.)
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest a new feature
4
+ title: "[Feature] "
5
+ labels: enhancement
6
+ ---
7
+
8
+ ## Problem
9
+ What problem does this solve?
10
+
11
+ ## Proposed Solution
12
+ Describe the feature you'd like.
13
+
14
+ ## Alternatives Considered
15
+ Any alternatives you've thought about.
16
+
17
+ ## Additional context
18
+ Any other context (screenshots, links, etc.)
@@ -0,0 +1,36 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ lint:
11
+ name: Lint
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - uses: astral-sh/setup-uv@v4
16
+ with:
17
+ python-version: "3.12"
18
+ - run: uv sync --extra dev
19
+ - run: uv run ruff check src/ tests/
20
+ - run: uv run ruff format --check src/ tests/
21
+
22
+ test:
23
+ name: Test (Python ${{ matrix.python-version }})
24
+ runs-on: ubuntu-latest
25
+ strategy:
26
+ matrix:
27
+ python-version: ["3.12", "3.13"]
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+ - uses: astral-sh/setup-uv@v4
31
+ with:
32
+ python-version: ${{ matrix.python-version }}
33
+ - run: uv sync --extra dev --extra serve --extra fleet --extra teslaMate --extra pdf --extra query
34
+ - run: uv run pytest -m "not integration" -v --cov=tesla_cli --cov-report=xml
35
+ env:
36
+ NO_COLOR: "1"
@@ -0,0 +1,31 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ build-and-publish:
10
+ name: Build and publish to PyPI
11
+ runs-on: ubuntu-latest
12
+ environment:
13
+ name: pypi
14
+ url: https://pypi.org/p/tesla-cli
15
+ permissions:
16
+ id-token: write # Trusted Publishing (no API token needed)
17
+
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+
21
+ - name: Install uv
22
+ uses: astral-sh/setup-uv@v4
23
+
24
+ - name: Set up Python
25
+ run: uv python install 3.12
26
+
27
+ - name: Build package
28
+ run: uv build
29
+
30
+ - name: Publish to PyPI
31
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,71 @@
1
+ # Python
2
+ __pycache__/
3
+ *.pyc
4
+ *.pyo
5
+ *.egg-info/
6
+ dist/
7
+ build/
8
+ .venv/
9
+
10
+ # IDE
11
+ .idea/
12
+ .vscode/
13
+ *.swp
14
+ *.swo
15
+
16
+ # OS
17
+ .DS_Store
18
+ Thumbs.db
19
+
20
+ # Secrets & tokens (NEVER commit)
21
+ .tesla-cli/
22
+ mitm-captures/
23
+ *.flow
24
+
25
+ # Large data files (generated, not source)
26
+ references/
27
+ nhtsa-complaints.json
28
+ nhtsa-investigations.json
29
+ public-api-data.json
30
+ activity-log.json
31
+ mission-control-data.json
32
+ history/
33
+ *.pdf
34
+
35
+ # Personal automation scripts
36
+ refresh-mission-control.py
37
+ change-detector.py
38
+ build-activity-log.sh
39
+ mitm-tesla-capture.py
40
+
41
+ # Generated reports and data exports
42
+ dossier-report.html
43
+ design-studio-co.json
44
+ specs-sources.json
45
+ tesla-ssr-data.json
46
+ IMPLEMENTATION-PLAN.md
47
+
48
+ # Claude Code local settings
49
+ .claude/settings.local.json
50
+ .claude/
51
+
52
+ # UI (React frontend)
53
+ ui/node_modules/
54
+ ui/dist/
55
+ ui/.vscode/
56
+ src/tesla_cli/api/ui_dist/
57
+
58
+ # Test artifacts
59
+ .coverage
60
+
61
+ # OMC
62
+ missions/
63
+ .omx/
64
+
65
+ # Temp
66
+ fix-live-sources.py
67
+ superchargers-co.json
68
+ .env.local
69
+ .codex/
70
+ AGENTS.md
71
+ audit/
@@ -0,0 +1 @@
1
+ 3.12