openbase-coder 0.1.1__tar.gz → 0.1.3__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 (191) hide show
  1. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/PKG-INFO +52 -26
  2. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/README.md +32 -20
  3. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/_version.py +2 -2
  4. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/node.py +22 -1
  5. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/setup.py +24 -1
  6. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/asgi.py +4 -4
  7. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/authentication.py +2 -1
  8. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_agent/livekit.py +13 -14
  9. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/apps.py +0 -2
  10. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/middleware.py +1 -0
  11. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/serializers.py +0 -1
  12. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/boilersync.py +0 -1
  13. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/installation.py +0 -1
  14. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/pyproject.toml +31 -7
  15. openbase_coder-0.1.1/.boilersync +0 -15
  16. openbase_coder-0.1.1/.cursor/rules/project-description.mdc +0 -6
  17. openbase_coder-0.1.1/.github/workflows/docs-pages.yml +0 -47
  18. openbase_coder-0.1.1/.vscode/launch.json +0 -19
  19. openbase_coder-0.1.1/.vscode/settings.json +0 -3
  20. openbase_coder-0.1.1/.vscode/tasks.json +0 -51
  21. openbase_coder-0.1.1/AGENTS.md +0 -1
  22. openbase_coder-0.1.1/CLAUDE.md +0 -1
  23. openbase_coder-0.1.1/SECURITY.md +0 -25
  24. openbase_coder-0.1.1/docs/commands/bootstrap.md +0 -50
  25. openbase_coder-0.1.1/docs/commands/doctor.md +0 -25
  26. openbase_coder-0.1.1/docs/commands/index.md +0 -59
  27. openbase_coder-0.1.1/docs/commands/login.md +0 -21
  28. openbase_coder-0.1.1/docs/commands/logout.md +0 -11
  29. openbase_coder-0.1.1/docs/commands/plugins.md +0 -78
  30. openbase_coder-0.1.1/docs/commands/restart.md +0 -35
  31. openbase_coder-0.1.1/docs/commands/server.md +0 -59
  32. openbase_coder-0.1.1/docs/commands/services-install.md +0 -23
  33. openbase_coder-0.1.1/docs/commands/services-logs.md +0 -17
  34. openbase_coder-0.1.1/docs/commands/services-regenerate.md +0 -15
  35. openbase_coder-0.1.1/docs/commands/services-restart.md +0 -17
  36. openbase_coder-0.1.1/docs/commands/services-start.md +0 -19
  37. openbase_coder-0.1.1/docs/commands/services-status.md +0 -15
  38. openbase_coder-0.1.1/docs/commands/services-stop.md +0 -17
  39. openbase_coder-0.1.1/docs/commands/services-uninstall.md +0 -16
  40. openbase_coder-0.1.1/docs/commands/services.md +0 -37
  41. openbase_coder-0.1.1/docs/commands/setup.md +0 -52
  42. openbase_coder-0.1.1/docs/configuration.md +0 -45
  43. openbase_coder-0.1.1/docs/files-and-paths.md +0 -90
  44. openbase_coder-0.1.1/docs/getting-started.md +0 -100
  45. openbase_coder-0.1.1/docs/index.md +0 -36
  46. openbase_coder-0.1.1/docs/ios-tabs.md +0 -77
  47. openbase_coder-0.1.1/docs/plugins/brain-score-concurrency.md +0 -18
  48. openbase_coder-0.1.1/docs/plugins/index.md +0 -7
  49. openbase_coder-0.1.1/docs/troubleshooting.md +0 -92
  50. openbase_coder-0.1.1/manage.py +0 -36
  51. openbase_coder-0.1.1/scripts/build.sh +0 -38
  52. openbase_coder-0.1.1/tests/test_agents_md.py +0 -250
  53. openbase_coder-0.1.1/tests/test_brain_readiness_api.py +0 -71
  54. openbase_coder-0.1.1/tests/test_cartesia_voice_settings.py +0 -85
  55. openbase_coder-0.1.1/tests/test_claude_chrome_cli.py +0 -128
  56. openbase_coder-0.1.1/tests/test_codex_sync_cli.py +0 -60
  57. openbase_coder-0.1.1/tests/test_computer_use_cli.py +0 -187
  58. openbase_coder-0.1.1/tests/test_ios_logs_api.py +0 -105
  59. openbase_coder-0.1.1/tests/test_jwt_validation.py +0 -128
  60. openbase_coder-0.1.1/tests/test_launchctl_tools.py +0 -219
  61. openbase_coder-0.1.1/tests/test_launchd_wrapper.py +0 -26
  62. openbase_coder-0.1.1/tests/test_livekit_agent_announcer.py +0 -765
  63. openbase_coder-0.1.1/tests/test_livekit_agent_codex_app_client.py +0 -931
  64. openbase_coder-0.1.1/tests/test_livekit_announcer.py +0 -619
  65. openbase_coder-0.1.1/tests/test_livekit_route_api.py +0 -371
  66. openbase_coder-0.1.1/tests/test_livekit_start_announcer.py +0 -65
  67. openbase_coder-0.1.1/tests/test_livekit_voice_route.py +0 -466
  68. openbase_coder-0.1.1/tests/test_node_package_manager.py +0 -86
  69. openbase_coder-0.1.1/tests/test_openbase_services.py +0 -205
  70. openbase_coder-0.1.1/tests/test_projects.py +0 -337
  71. openbase_coder-0.1.1/tests/test_reports_api.py +0 -191
  72. openbase_coder-0.1.1/tests/test_restart.py +0 -152
  73. openbase_coder-0.1.1/tests/test_routines_cli.py +0 -90
  74. openbase_coder-0.1.1/tests/test_service_definitions.py +0 -119
  75. openbase_coder-0.1.1/tests/test_service_status.py +0 -54
  76. openbase_coder-0.1.1/tests/test_session_manager.py +0 -951
  77. openbase_coder-0.1.1/tests/test_setup_cli.py +0 -185
  78. openbase_coder-0.1.1/tests/test_skills_api.py +0 -194
  79. openbase_coder-0.1.1/tests/test_speech_formatter.py +0 -101
  80. openbase_coder-0.1.1/tests/test_tailnet_devices.py +0 -53
  81. openbase_coder-0.1.1/tests/test_thread_cache.py +0 -91
  82. openbase_coder-0.1.1/tests/test_thread_import.py +0 -665
  83. openbase_coder-0.1.1/tests/test_thread_metadata.py +0 -245
  84. openbase_coder-0.1.1/tests/test_threads_api.py +0 -161
  85. openbase_coder-0.1.1/tests/test_user_cli.py +0 -411
  86. openbase_coder-0.1.1/tests/test_uv_tools.py +0 -121
  87. openbase_coder-0.1.1/tests/test_voice_warning.py +0 -59
  88. openbase_coder-0.1.1/uv.lock +0 -3428
  89. openbase_coder-0.1.1/zensical.toml +0 -47
  90. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/.gitignore +0 -0
  91. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/LICENSE +0 -0
  92. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/__init__.py +0 -0
  93. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/__main__.py +0 -0
  94. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cartesia_voice_catalog.py +0 -0
  95. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/__init__.py +0 -0
  96. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/auth.py +0 -0
  97. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/boilersync.py +0 -0
  98. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/bootstrap.py +0 -0
  99. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/claude_chrome.py +0 -0
  100. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/codex_sync.py +0 -0
  101. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/computer_use.py +0 -0
  102. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/doctor.py +0 -0
  103. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/local_server.py +0 -0
  104. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/plugins.py +0 -0
  105. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/restart.py +0 -0
  106. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/routines.py +0 -0
  107. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/server.py +0 -0
  108. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/services.py +0 -0
  109. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/super_agent_name.py +0 -0
  110. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/user.py +0 -0
  111. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli/utils.py +0 -0
  112. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/cli_helpers.py +0 -0
  113. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/__init__.py +0 -0
  114. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/jwt_validation.py +0 -0
  115. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/proxy.py +0 -0
  116. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/serializers.py +0 -0
  117. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/settings.py +0 -0
  118. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/token_manager.py +0 -0
  119. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/urls.py +0 -0
  120. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/viewsets.py +0 -0
  121. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/config/wsgi.py +0 -0
  122. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/dispatcher_config.py +0 -0
  123. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/entrypoint/manage.py +0 -0
  124. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/errors.py +0 -0
  125. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_agent/__init__.py +0 -0
  126. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_agent/codex_app_client.py +0 -0
  127. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_agent/codex_thread_state.py +0 -0
  128. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_agent/codex_transport.py +0 -0
  129. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_agent/codex_turns.py +0 -0
  130. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_agent/speech_formatter.py +0 -0
  131. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_agent/speech_replacements.py +0 -0
  132. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_announcer.py +0 -0
  133. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_start_announcer.py +0 -0
  134. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_voice_history.py +0 -0
  135. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/livekit_voice_route.py +0 -0
  136. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/logging.py +0 -0
  137. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/mcp/__init__.py +0 -0
  138. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/mcp/apps.py +0 -0
  139. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/mcp/mcp.py +0 -0
  140. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/mcp/models.py +0 -0
  141. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/mcp/projects.py +0 -0
  142. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/mcp/session_manager.py +0 -0
  143. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/mcp/thread_import.py +0 -0
  144. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/multi_config.py +0 -0
  145. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/__init__.py +0 -0
  146. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/agents_md.py +0 -0
  147. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/approvals.py +0 -0
  148. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/auth.py +0 -0
  149. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/brain_readiness.py +0 -0
  150. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/common.py +0 -0
  151. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/consumers.py +0 -0
  152. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/diagnostics.py +0 -0
  153. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/livekit.py +0 -0
  154. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/migrations/0001_initial.py +0 -0
  155. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/migrations/0002_remove_cron_models.py +0 -0
  156. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/migrations/__init__.py +0 -0
  157. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/models.py +0 -0
  158. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/plugins_tools.py +0 -0
  159. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/projects.py +0 -0
  160. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/reports.py +0 -0
  161. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/routines.py +0 -0
  162. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/routing.py +0 -0
  163. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/services_views.py +0 -0
  164. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/skills.py +0 -0
  165. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/thread_cache.py +0 -0
  166. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/thread_metadata.py +0 -0
  167. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/threads.py +0 -0
  168. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/urls.py +0 -0
  169. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/openbase_coder_cli_app/views.py +0 -0
  170. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/paths.py +0 -0
  171. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/plugins/__init__.py +0 -0
  172. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/plugins/api.py +0 -0
  173. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/plugins/console.py +0 -0
  174. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/plugins/install.py +0 -0
  175. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/plugins/manager.py +0 -0
  176. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/plugins/models.py +0 -0
  177. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/plugins/skills.py +0 -0
  178. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/plugins/sources.py +0 -0
  179. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/plugins/spec.py +0 -0
  180. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/plugins/store.py +0 -0
  181. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/__init__.py +0 -0
  182. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/console_settings.py +0 -0
  183. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/definitions.py +0 -0
  184. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/launchctl_tools.py +0 -0
  185. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/launchd.py +0 -0
  186. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/openbase_services.py +0 -0
  187. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/registry.py +0 -0
  188. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/restart.py +0 -0
  189. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/tailnet_devices.py +1 -1
  190. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/uv_tools.py +0 -0
  191. {openbase_coder-0.1.1 → openbase_coder-0.1.3}/openbase_coder_cli/services/voice_warning.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openbase-coder
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: OpenBase Coder CLI with embedded server
5
5
  Project-URL: Repository, https://github.com/openbase-community/openbase-coder
6
6
  Project-URL: Issues, https://github.com/openbase-community/openbase-coder/issues
@@ -9,20 +9,34 @@ License-Expression: AGPL-3.0-only
9
9
  License-File: LICENSE
10
10
  Requires-Python: >=3.13
11
11
  Requires-Dist: aiohttp>=3.13.3
12
+ Requires-Dist: anthropic==0.107.0
13
+ Requires-Dist: anyio>=4.13.0
12
14
  Requires-Dist: channels>=4.2.0
13
15
  Requires-Dist: click>=8.2.0
14
16
  Requires-Dist: cryptography>=43.0.0
15
- Requires-Dist: deepagents>=0.3.12
17
+ Requires-Dist: deepagents==0.6.7
18
+ Requires-Dist: distro>=1.9.0
16
19
  Requires-Dist: django-cors-headers>=4.6.0
17
20
  Requires-Dist: django-mcp-server
18
21
  Requires-Dist: django==5.2.6
19
22
  Requires-Dist: djangorestframework==3.16.1
23
+ Requires-Dist: docstring-parser>=0.18.0
24
+ Requires-Dist: google-auth>=2.53.0
25
+ Requires-Dist: google-genai>=2.8.0
20
26
  Requires-Dist: gunicorn>=23.0.0
27
+ Requires-Dist: httpcore>=1.0.9
21
28
  Requires-Dist: httpx>=0.28.1
22
- Requires-Dist: livekit-agents[silero,turn-detector]>=1.4.1
29
+ Requires-Dist: jiter>=0.15.0
30
+ Requires-Dist: langchain-anthropic==1.4.4
31
+ Requires-Dist: langchain-core==1.4.1
32
+ Requires-Dist: langchain-google-genai==4.2.4
33
+ Requires-Dist: langchain==1.3.2
34
+ Requires-Dist: langgraph-sdk==0.3.15
35
+ Requires-Dist: langgraph==1.2.2
36
+ Requires-Dist: livekit-agents[silero,turn-detector]==1.5.17
23
37
  Requires-Dist: livekit-api>=1.1.0
24
- Requires-Dist: livekit-plugins-assemblyai>=1.4.2
25
- Requires-Dist: livekit-plugins-cartesia>=1.4.1
38
+ Requires-Dist: livekit-plugins-assemblyai==1.5.17
39
+ Requires-Dist: livekit-plugins-cartesia==1.5.17
26
40
  Requires-Dist: livekit-plugins-deepgram==1.5.4
27
41
  Requires-Dist: livekit-plugins-noise-cancellation>=0.2.5
28
42
  Requires-Dist: mcp[cli]>=1.25.0
@@ -30,7 +44,7 @@ Requires-Dist: multi-workspace>=3.2.2
30
44
  Requires-Dist: pydantic>=2.12.5
31
45
  Requires-Dist: pyjwt>=2.9.0
32
46
  Requires-Dist: python-dotenv>=1.0.0
33
- Requires-Dist: super-agents
47
+ Requires-Dist: super-agents>=0.1.0
34
48
  Requires-Dist: uv>=0.9.22
35
49
  Requires-Dist: uvicorn[standard]>=0.32.0
36
50
  Requires-Dist: websockets>=16.0
@@ -73,25 +87,35 @@ runtime.
73
87
  - macOS for full setup and launchd service management
74
88
  - Python 3.13+
75
89
  - Git
76
- - `uv` recommended for install and local development
90
+ - `uv` for the recommended install/setup flow and local development
77
91
  - Node package tooling for the bundled console build
78
92
  - `livekit-server` on `PATH` for voice services
79
93
 
80
- ## Install
94
+ ## Quick Start
81
95
 
82
- With `uv`:
96
+ Recommended one-line setup with `uvx`:
83
97
 
84
98
  ```bash
85
- uv tool install openbase-coder
99
+ uvx --python 3.13 openbase-coder setup
86
100
  ```
87
101
 
88
- With `pipx`:
102
+ This runs the latest published `openbase-coder` package in an isolated `uv`
103
+ tool environment and starts the normal first-time setup flow.
104
+
105
+ For a persistent command on your `PATH` after setup, install with `uv tool`:
106
+
107
+ ```bash
108
+ uv tool install --python 3.13 openbase-coder
109
+ openbase-coder setup
110
+ ```
111
+
112
+ `pipx` is also supported when you already manage Python tools that way:
89
113
 
90
114
  ```bash
91
- pipx install openbase-coder
115
+ pipx install --python python3.13 openbase-coder
92
116
  ```
93
117
 
94
- Verify the install:
118
+ Verify a persistent install:
95
119
 
96
120
  ```bash
97
121
  openbase-coder --version
@@ -99,7 +123,7 @@ openbase-coder --version
99
123
 
100
124
  ## First-Time Setup
101
125
 
102
- Run:
126
+ If you already installed the persistent `openbase-coder` command, run:
103
127
 
104
128
  ```bash
105
129
  openbase-coder setup
@@ -113,8 +137,8 @@ used by voice sessions.
113
137
  After setup, check the local runtime:
114
138
 
115
139
  ```bash
116
- openbase-coder doctor
117
- openbase-coder services status
140
+ uvx --python 3.13 openbase-coder doctor
141
+ uvx --python 3.13 openbase-coder services status
118
142
  ```
119
143
 
120
144
  ## Run The Server
@@ -122,28 +146,30 @@ openbase-coder services status
122
146
  For foreground development:
123
147
 
124
148
  ```bash
125
- openbase-coder server --host 0.0.0.0 --port 7999
149
+ uvx --python 3.13 openbase-coder server --host 0.0.0.0 --port 7999
126
150
  ```
127
151
 
128
152
  For normal macOS background operation:
129
153
 
130
154
  ```bash
131
- openbase-coder services start
132
- openbase-coder services status
155
+ uvx --python 3.13 openbase-coder services start
156
+ uvx --python 3.13 openbase-coder services status
133
157
  ```
134
158
 
135
159
  ## Common Commands
136
160
 
137
161
  ```bash
138
- openbase-coder setup
139
- openbase-coder doctor
140
- openbase-coder login
141
- openbase-coder services status
142
- openbase-coder services logs django-cli
143
- openbase-coder plugins list
144
- openbase-coder bootstrap --help
162
+ uvx --python 3.13 openbase-coder setup
163
+ uvx --python 3.13 openbase-coder doctor
164
+ uvx --python 3.13 openbase-coder login
165
+ uvx --python 3.13 openbase-coder services status
166
+ uvx --python 3.13 openbase-coder services logs django-cli
167
+ uvx --python 3.13 openbase-coder plugins list
168
+ uvx --python 3.13 openbase-coder bootstrap --help
145
169
  ```
146
170
 
171
+ If you installed with `uv tool`, omit `uvx --python 3.13` from those commands.
172
+
147
173
  ## Documentation
148
174
 
149
175
  - [Getting Started](docs/getting-started.md)
@@ -27,25 +27,35 @@ runtime.
27
27
  - macOS for full setup and launchd service management
28
28
  - Python 3.13+
29
29
  - Git
30
- - `uv` recommended for install and local development
30
+ - `uv` for the recommended install/setup flow and local development
31
31
  - Node package tooling for the bundled console build
32
32
  - `livekit-server` on `PATH` for voice services
33
33
 
34
- ## Install
34
+ ## Quick Start
35
35
 
36
- With `uv`:
36
+ Recommended one-line setup with `uvx`:
37
37
 
38
38
  ```bash
39
- uv tool install openbase-coder
39
+ uvx --python 3.13 openbase-coder setup
40
40
  ```
41
41
 
42
- With `pipx`:
42
+ This runs the latest published `openbase-coder` package in an isolated `uv`
43
+ tool environment and starts the normal first-time setup flow.
44
+
45
+ For a persistent command on your `PATH` after setup, install with `uv tool`:
46
+
47
+ ```bash
48
+ uv tool install --python 3.13 openbase-coder
49
+ openbase-coder setup
50
+ ```
51
+
52
+ `pipx` is also supported when you already manage Python tools that way:
43
53
 
44
54
  ```bash
45
- pipx install openbase-coder
55
+ pipx install --python python3.13 openbase-coder
46
56
  ```
47
57
 
48
- Verify the install:
58
+ Verify a persistent install:
49
59
 
50
60
  ```bash
51
61
  openbase-coder --version
@@ -53,7 +63,7 @@ openbase-coder --version
53
63
 
54
64
  ## First-Time Setup
55
65
 
56
- Run:
66
+ If you already installed the persistent `openbase-coder` command, run:
57
67
 
58
68
  ```bash
59
69
  openbase-coder setup
@@ -67,8 +77,8 @@ used by voice sessions.
67
77
  After setup, check the local runtime:
68
78
 
69
79
  ```bash
70
- openbase-coder doctor
71
- openbase-coder services status
80
+ uvx --python 3.13 openbase-coder doctor
81
+ uvx --python 3.13 openbase-coder services status
72
82
  ```
73
83
 
74
84
  ## Run The Server
@@ -76,28 +86,30 @@ openbase-coder services status
76
86
  For foreground development:
77
87
 
78
88
  ```bash
79
- openbase-coder server --host 0.0.0.0 --port 7999
89
+ uvx --python 3.13 openbase-coder server --host 0.0.0.0 --port 7999
80
90
  ```
81
91
 
82
92
  For normal macOS background operation:
83
93
 
84
94
  ```bash
85
- openbase-coder services start
86
- openbase-coder services status
95
+ uvx --python 3.13 openbase-coder services start
96
+ uvx --python 3.13 openbase-coder services status
87
97
  ```
88
98
 
89
99
  ## Common Commands
90
100
 
91
101
  ```bash
92
- openbase-coder setup
93
- openbase-coder doctor
94
- openbase-coder login
95
- openbase-coder services status
96
- openbase-coder services logs django-cli
97
- openbase-coder plugins list
98
- openbase-coder bootstrap --help
102
+ uvx --python 3.13 openbase-coder setup
103
+ uvx --python 3.13 openbase-coder doctor
104
+ uvx --python 3.13 openbase-coder login
105
+ uvx --python 3.13 openbase-coder services status
106
+ uvx --python 3.13 openbase-coder services logs django-cli
107
+ uvx --python 3.13 openbase-coder plugins list
108
+ uvx --python 3.13 openbase-coder bootstrap --help
99
109
  ```
100
110
 
111
+ If you installed with `uv tool`, omit `uvx --python 3.13` from those commands.
112
+
101
113
  ## Documentation
102
114
 
103
115
  - [Getting Started](docs/getting-started.md)
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.1.1'
22
- __version_tuple__ = version_tuple = (0, 1, 1)
21
+ __version__ = version = '0.1.3'
22
+ __version_tuple__ = version_tuple = (0, 1, 3)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -16,8 +16,13 @@ def run_workspace_package_command(workspace_dir: Path, package_dir: Path, *args:
16
16
  return False
17
17
 
18
18
  executable, command_prefix = package_manager
19
+ command_args = _normalize_package_manager_args(
20
+ executable,
21
+ workspace_dir,
22
+ args,
23
+ )
19
24
  subprocess.run(
20
- [executable, *command_prefix, *args],
25
+ [executable, *command_prefix, *command_args],
21
26
  cwd=str(package_dir),
22
27
  check=True,
23
28
  )
@@ -81,3 +86,19 @@ def _which_node_binary(name: str) -> str | None:
81
86
  return str(candidate)
82
87
 
83
88
  return None
89
+
90
+
91
+ def _normalize_package_manager_args(
92
+ executable: str,
93
+ workspace_dir: Path,
94
+ args: tuple[str, ...],
95
+ ) -> tuple[str, ...]:
96
+ """Keep managed workspace installs reproducible when using pnpm."""
97
+ if (
98
+ Path(executable).name == "pnpm"
99
+ and args == ("install",)
100
+ and (workspace_dir / "pnpm-lock.yaml").is_file()
101
+ ):
102
+ return ("install", "--frozen-lockfile")
103
+
104
+ return args
@@ -141,7 +141,7 @@ def _clone_workspace(workspace_dir: str) -> None:
141
141
  ws = Path(workspace_dir)
142
142
  if ws.exists() and (ws / ".git").is_dir():
143
143
  click.echo(f"Workspace already exists at {ws}, pulling latest...")
144
- subprocess.run(["git", "-C", str(ws), "pull", "--ff-only"], check=True)
144
+ _update_existing_workspace(ws)
145
145
  _multi_sync(ws)
146
146
  return
147
147
 
@@ -153,6 +153,29 @@ def _clone_workspace(workspace_dir: str) -> None:
153
153
  _multi_sync(ws)
154
154
 
155
155
 
156
+ def _update_existing_workspace(ws: Path) -> None:
157
+ if ws.resolve() == DEFAULT_WORKSPACE_DIR.resolve():
158
+ dirty = subprocess.run(
159
+ ["git", "-C", str(ws), "status", "--porcelain"],
160
+ check=True,
161
+ capture_output=True,
162
+ text=True,
163
+ ).stdout.strip()
164
+ if dirty:
165
+ click.echo(
166
+ "Resetting managed install workspace before update; "
167
+ "local generated changes are discarded."
168
+ )
169
+ subprocess.run(["git", "-C", str(ws), "fetch", "origin", "main"], check=True)
170
+ subprocess.run(
171
+ ["git", "-C", str(ws), "reset", "--hard", "origin/main"],
172
+ check=True,
173
+ )
174
+ return
175
+
176
+ subprocess.run(["git", "-C", str(ws), "pull", "--ff-only"], check=True)
177
+
178
+
156
179
  def _multi_sync(ws_path: Path) -> None:
157
180
  click.echo(f"Running multi sync --install-set {WORKSPACE_INSTALL_SET}...")
158
181
  sync_workspace(ws_path, install_set=WORKSPACE_INSTALL_SET)
@@ -18,11 +18,11 @@ django_asgi_app = get_asgi_application()
18
18
 
19
19
  from channels.routing import ProtocolTypeRouter, URLRouter # noqa: E402
20
20
 
21
- from openbase_coder_cli.openbase_coder_cli_app.middleware import (
22
- TokenAuthMiddleware, # noqa: E402
21
+ from openbase_coder_cli.openbase_coder_cli_app.middleware import ( # noqa: E402
22
+ TokenAuthMiddleware,
23
23
  )
24
- from openbase_coder_cli.openbase_coder_cli_app.routing import (
25
- websocket_urlpatterns, # noqa: E402
24
+ from openbase_coder_cli.openbase_coder_cli_app.routing import ( # noqa: E402
25
+ websocket_urlpatterns,
26
26
  )
27
27
 
28
28
  _inner = ProtocolTypeRouter(
@@ -7,9 +7,10 @@ import logging
7
7
  import httpx
8
8
  from django.conf import settings
9
9
  from django.contrib.auth import get_user_model
10
- from openbase_coder_cli.config.jwt_validation import InvalidTokenError, JWKSValidator
11
10
  from rest_framework import authentication, exceptions
12
11
 
12
+ from openbase_coder_cli.config.jwt_validation import InvalidTokenError, JWKSValidator
13
+
13
14
  logger = logging.getLogger(__name__)
14
15
 
15
16
  _validator: JWKSValidator | None = None
@@ -1688,20 +1688,19 @@ class SpeechFormattingSynthesizeStream:
1688
1688
  if self._buffer:
1689
1689
  spoken_text = format_for_speech(self._buffer)
1690
1690
  final_text = spoken_text or "Technical output omitted, shown on screen."
1691
- if LIVEKIT_VERBOSE_LOGGING:
1692
- logger.info(
1693
- "dispatch_timing stage=tts_stream_flush role=%s voice_id=%s "
1694
- "voice_name=%s flush_count=%d original_len=%d text_len=%d "
1695
- "text_hash=%s text_excerpt=%r",
1696
- self._role,
1697
- self._voice_id or "",
1698
- self._voice_name or "",
1699
- self._flush_count,
1700
- len(self._buffer),
1701
- len(final_text),
1702
- hashlib.sha256(final_text.encode("utf-8")).hexdigest()[:12],
1703
- final_text[:160],
1704
- )
1691
+ logger.info(
1692
+ "dispatch_timing stage=tts_stream_flush role=%s voice_id=%s "
1693
+ "voice_name=%s flush_count=%d original_len=%d text_len=%d "
1694
+ "text_hash=%s text_excerpt=%r",
1695
+ self._role,
1696
+ self._voice_id or "",
1697
+ self._voice_name or "",
1698
+ self._flush_count,
1699
+ len(self._buffer),
1700
+ len(final_text),
1701
+ hashlib.sha256(final_text.encode("utf-8")).hexdigest()[:12],
1702
+ final_text[:160],
1703
+ )
1705
1704
  self._stream.push_text(final_text)
1706
1705
  self._buffer = ""
1707
1706
  elif LIVEKIT_VERBOSE_LOGGING:
@@ -4,8 +4,6 @@ Django app configuration for openbase_coder_cli_app.
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- import os
8
-
9
7
  from django.apps import AppConfig
10
8
 
11
9
 
@@ -8,6 +8,7 @@ from urllib.parse import parse_qs
8
8
  import httpx
9
9
  from channels.middleware import BaseMiddleware
10
10
  from django.conf import settings
11
+
11
12
  from openbase_coder_cli.config.jwt_validation import InvalidTokenError, JWKSValidator
12
13
 
13
14
  logger = logging.getLogger(__name__)
@@ -6,7 +6,6 @@ Add your DRF serializers here.
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
- from openbase_coder_cli.config.serializers import TimestampedModelSerializer
10
9
 
11
10
  # Example serializer - replace with your own serializers
12
11
  # from openbase_coder_cli.openbase_coder_cli_app.models import Item
@@ -9,7 +9,6 @@ from typing import Any
9
9
 
10
10
  from openbase_coder_cli.services.installation import InstallationConfig
11
11
 
12
-
13
12
  BOILERSYNC_TIMEOUT_SECONDS = 30
14
13
 
15
14
 
@@ -2,7 +2,6 @@ from __future__ import annotations
2
2
 
3
3
  import json
4
4
  from dataclasses import asdict, dataclass
5
- from pathlib import Path
6
5
 
7
6
  from openbase_coder_cli.paths import INSTALLATION_JSON_PATH
8
7
 
@@ -20,19 +20,33 @@ dependencies = [
20
20
  "pydantic>=2.12.5",
21
21
  "PyJWT>=2.9.0",
22
22
  "cryptography>=43.0.0",
23
+ "anyio>=4.13.0",
24
+ "anthropic==0.107.0",
25
+ "distro>=1.9.0",
26
+ "docstring-parser>=0.18.0",
27
+ "httpcore>=1.0.9",
23
28
  "httpx>=0.28.1",
24
29
  "mcp[cli]>=1.25.0",
25
- "deepagents>=0.3.12",
30
+ "deepagents==0.6.7",
31
+ "google-auth>=2.53.0",
32
+ "google-genai>=2.8.0",
33
+ "jiter>=0.15.0",
34
+ "langchain==1.3.2",
35
+ "langchain-anthropic==1.4.4",
36
+ "langchain-core==1.4.1",
37
+ "langchain-google-genai==4.2.4",
38
+ "langgraph==1.2.2",
39
+ "langgraph-sdk==0.3.15",
26
40
  "uv>=0.9.22",
27
- "livekit-agents[silero,turn-detector]>=1.4.1",
41
+ "livekit-agents[silero,turn-detector]==1.5.17",
28
42
  "livekit-api>=1.1.0",
29
- "livekit-plugins-assemblyai>=1.4.2",
30
- "livekit-plugins-cartesia>=1.4.1",
43
+ "livekit-plugins-assemblyai==1.5.17",
44
+ "livekit-plugins-cartesia==1.5.17",
31
45
  "livekit-plugins-deepgram==1.5.4",
32
46
  "livekit-plugins-noise-cancellation>=0.2.5",
33
47
  "aiohttp>=3.13.3",
34
48
  "multi-workspace>=3.2.2",
35
- "super-agents",
49
+ "super-agents>=0.1.0",
36
50
  "websockets>=16.0",
37
51
  ]
38
52
 
@@ -66,15 +80,25 @@ super-agents = { path = "../super-agents", editable = true }
66
80
  [tool.hatch.version]
67
81
  source = "vcs"
68
82
 
83
+ [tool.hatch.build.targets.wheel]
84
+ packages = ["openbase_coder_cli"]
85
+
86
+ [tool.hatch.build.targets.sdist]
87
+ include = [
88
+ "/openbase_coder_cli",
89
+ "/README.md",
90
+ "/pyproject.toml",
91
+ ]
92
+
69
93
  [tool.hatch.build.hooks.vcs]
70
94
  version-file = "openbase_coder_cli/_version.py"
71
95
 
72
96
  [tool.ruff]
73
97
  target-version = "py313"
74
- select = ["E", "F", "I", "B", "W", "C90"]
75
- ignore = ["C901", "E501", "F821"]
76
98
 
77
99
  [tool.ruff.lint]
100
+ select = ["E", "F", "I", "B", "W", "C90"]
101
+ ignore = ["C901", "E501", "F821"]
78
102
  fixable = ["ALL"]
79
103
  unfixable = []
80
104
 
@@ -1,15 +0,0 @@
1
- {
2
- "template": "cli-with-db",
3
- "name_snake": "openbase_coder_cli",
4
- "name_pretty": "Openbase Coder Cli",
5
- "variables": {
6
- "cli_command": "openbase-coder",
7
- "description": "OpenBase Coder CLI with embedded server",
8
- "author_name": "Gabe Montague",
9
- "author_email": "gabe@openbase.com",
10
- "author_github_name": "gabemontague",
11
- "python_version": 3.12,
12
- "homebrew_tap_location": "gabemontague/homebrew-tap",
13
- "publish": false
14
- }
15
- }
@@ -1,6 +0,0 @@
1
- ---
2
- description:
3
- globs:
4
- alwaysApply: true
5
- ---
6
- `openbase-coder-cli` is a CLI tool.
@@ -1,47 +0,0 @@
1
- name: Deploy Docs to GitHub Pages
2
-
3
- on:
4
- push:
5
- branches: ["main"]
6
- workflow_dispatch:
7
-
8
- permissions:
9
- contents: read
10
- pages: write
11
- id-token: write
12
-
13
- concurrency:
14
- group: pages
15
- cancel-in-progress: true
16
-
17
- jobs:
18
- build:
19
- runs-on: ubuntu-latest
20
- steps:
21
- - name: Checkout
22
- uses: actions/checkout@v4
23
-
24
- - name: Setup uv
25
- uses: astral-sh/setup-uv@v6
26
-
27
- - name: Build docs
28
- run: uvx zensical build
29
-
30
- - name: Configure custom domain
31
- run: echo docs.openbase.cloud > site/CNAME
32
-
33
- - name: Upload Pages artifact
34
- uses: actions/upload-pages-artifact@v3
35
- with:
36
- path: site
37
-
38
- deploy:
39
- needs: build
40
- runs-on: ubuntu-latest
41
- environment:
42
- name: github-pages
43
- url: ${{ steps.deployment.outputs.page_url }}
44
- steps:
45
- - name: Deploy to GitHub Pages
46
- id: deployment
47
- uses: actions/deploy-pages@v4
@@ -1,19 +0,0 @@
1
- {
2
- "version": "0.2.0",
3
- "configurations": [
4
- {
5
- "name": "Coder CLI Server",
6
- "consoleName": "Coder CLI Server",
7
- "type": "debugpy",
8
- "request": "launch",
9
- "module": "uvicorn",
10
- "args": "openbase_coder_cli.config.asgi:application --host 0.0.0.0 --port 7999 --reload",
11
- "django": true,
12
- "justMyCode": false,
13
- "env": {
14
- "DEBUG": "1",
15
- "ALLOWED_HOSTS": "0.0.0.0"
16
- }
17
- }
18
- ]
19
- }
@@ -1,3 +0,0 @@
1
- {
2
- "workbench.colorCustomizations": {}
3
- }
@@ -1,51 +0,0 @@
1
- {
2
- "version": "2.0.0",
3
- "tasks": [
4
- {
5
- "label": "Run MCP Inspector",
6
- "type": "shell",
7
- "command": "npx",
8
- "args": [
9
- "@modelcontextprotocol/inspector"
10
- ],
11
- "options": {
12
- "cwd": "${workspaceFolder}"
13
- },
14
- "problemMatcher": [],
15
- "presentation": {
16
- "reveal": "always",
17
- "panel": "dedicated"
18
- }
19
- },
20
- {
21
- "label": "Make migrations",
22
- "type": "shell",
23
- "command": "${command:python.interpreterPath}",
24
- "args": [
25
- "manage.py",
26
- "makemigrations"
27
- ],
28
- "presentation": {
29
- "reveal": "always",
30
- "focus": true,
31
- "panel": "new"
32
- },
33
- "problemMatcher": []
34
- },
35
- {
36
- "label": "Migrate",
37
- "type": "shell",
38
- "command": "${command:python.interpreterPath}",
39
- "args": [
40
- "manage.py",
41
- "migrate"
42
- ],
43
- "presentation": {
44
- "reveal": "always",
45
- "focus": true,
46
- "panel": "new"
47
- },
48
- "problemMatcher": []
49
- }
50
- ]
51
- }