openbase-coder 0.1.3__tar.gz → 0.1.4__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 (116) hide show
  1. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/PKG-INFO +1 -1
  2. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/_version.py +2 -2
  3. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/node.py +13 -2
  4. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/setup.py +55 -0
  5. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/.gitignore +0 -0
  6. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/LICENSE +0 -0
  7. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/README.md +0 -0
  8. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/__init__.py +0 -0
  9. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/__main__.py +0 -0
  10. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cartesia_voice_catalog.py +0 -0
  11. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/__init__.py +0 -0
  12. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/auth.py +0 -0
  13. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/boilersync.py +0 -0
  14. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/bootstrap.py +0 -0
  15. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/claude_chrome.py +0 -0
  16. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/codex_sync.py +0 -0
  17. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/computer_use.py +0 -0
  18. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/doctor.py +0 -0
  19. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/local_server.py +0 -0
  20. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/plugins.py +0 -0
  21. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/restart.py +0 -0
  22. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/routines.py +0 -0
  23. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/server.py +0 -0
  24. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/services.py +0 -0
  25. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/super_agent_name.py +0 -0
  26. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/user.py +0 -0
  27. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli/utils.py +0 -0
  28. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/cli_helpers.py +0 -0
  29. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/__init__.py +0 -0
  30. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/asgi.py +0 -0
  31. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/authentication.py +0 -0
  32. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/jwt_validation.py +0 -0
  33. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/proxy.py +0 -0
  34. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/serializers.py +0 -0
  35. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/settings.py +0 -0
  36. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/token_manager.py +0 -0
  37. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/urls.py +0 -0
  38. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/viewsets.py +0 -0
  39. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/config/wsgi.py +0 -0
  40. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/dispatcher_config.py +0 -0
  41. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/entrypoint/manage.py +0 -0
  42. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/errors.py +0 -0
  43. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_agent/__init__.py +0 -0
  44. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_agent/codex_app_client.py +0 -0
  45. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_agent/codex_thread_state.py +0 -0
  46. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_agent/codex_transport.py +0 -0
  47. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_agent/codex_turns.py +0 -0
  48. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_agent/livekit.py +0 -0
  49. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_agent/speech_formatter.py +0 -0
  50. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_agent/speech_replacements.py +0 -0
  51. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_announcer.py +0 -0
  52. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_start_announcer.py +0 -0
  53. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_voice_history.py +0 -0
  54. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/livekit_voice_route.py +0 -0
  55. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/logging.py +0 -0
  56. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/mcp/__init__.py +0 -0
  57. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/mcp/apps.py +0 -0
  58. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/mcp/mcp.py +0 -0
  59. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/mcp/models.py +0 -0
  60. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/mcp/projects.py +0 -0
  61. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/mcp/session_manager.py +0 -0
  62. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/mcp/thread_import.py +0 -0
  63. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/multi_config.py +0 -0
  64. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/__init__.py +0 -0
  65. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/agents_md.py +0 -0
  66. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/approvals.py +0 -0
  67. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/apps.py +0 -0
  68. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/auth.py +0 -0
  69. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/brain_readiness.py +0 -0
  70. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/common.py +0 -0
  71. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/consumers.py +0 -0
  72. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/diagnostics.py +0 -0
  73. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/livekit.py +0 -0
  74. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/middleware.py +0 -0
  75. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/migrations/0001_initial.py +0 -0
  76. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/migrations/0002_remove_cron_models.py +0 -0
  77. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/migrations/__init__.py +0 -0
  78. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/models.py +0 -0
  79. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/plugins_tools.py +0 -0
  80. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/projects.py +0 -0
  81. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/reports.py +0 -0
  82. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/routines.py +0 -0
  83. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/routing.py +0 -0
  84. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/serializers.py +0 -0
  85. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/services_views.py +0 -0
  86. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/skills.py +0 -0
  87. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/thread_cache.py +0 -0
  88. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/thread_metadata.py +0 -0
  89. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/threads.py +0 -0
  90. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/urls.py +0 -0
  91. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/openbase_coder_cli_app/views.py +0 -0
  92. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/paths.py +0 -0
  93. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/plugins/__init__.py +0 -0
  94. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/plugins/api.py +0 -0
  95. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/plugins/console.py +0 -0
  96. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/plugins/install.py +0 -0
  97. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/plugins/manager.py +0 -0
  98. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/plugins/models.py +0 -0
  99. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/plugins/skills.py +0 -0
  100. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/plugins/sources.py +0 -0
  101. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/plugins/spec.py +0 -0
  102. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/plugins/store.py +0 -0
  103. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/__init__.py +0 -0
  104. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/boilersync.py +0 -0
  105. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/console_settings.py +0 -0
  106. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/definitions.py +0 -0
  107. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/installation.py +0 -0
  108. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/launchctl_tools.py +0 -0
  109. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/launchd.py +0 -0
  110. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/openbase_services.py +0 -0
  111. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/registry.py +0 -0
  112. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/restart.py +0 -0
  113. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/tailnet_devices.py +0 -0
  114. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/uv_tools.py +0 -0
  115. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/openbase_coder_cli/services/voice_warning.py +0 -0
  116. {openbase_coder-0.1.3 → openbase_coder-0.1.4}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openbase-coder
3
- Version: 0.1.3
3
+ Version: 0.1.4
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
@@ -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.3'
22
- __version_tuple__ = version_tuple = (0, 1, 3)
21
+ __version__ = version = '0.1.4'
22
+ __version_tuple__ = version_tuple = (0, 1, 4)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -24,6 +24,7 @@ def run_workspace_package_command(workspace_dir: Path, package_dir: Path, *args:
24
24
  subprocess.run(
25
25
  [executable, *command_prefix, *command_args],
26
26
  cwd=str(package_dir),
27
+ env=_package_manager_env(executable, command_args),
27
28
  check=True,
28
29
  )
29
30
  return True
@@ -93,12 +94,22 @@ def _normalize_package_manager_args(
93
94
  workspace_dir: Path,
94
95
  args: tuple[str, ...],
95
96
  ) -> tuple[str, ...]:
96
- """Keep managed workspace installs reproducible when using pnpm."""
97
+ """Avoid mutating or validating partial install-set lockfiles with pnpm."""
97
98
  if (
98
99
  Path(executable).name == "pnpm"
99
100
  and args == ("install",)
100
101
  and (workspace_dir / "pnpm-lock.yaml").is_file()
101
102
  ):
102
- return ("install", "--frozen-lockfile")
103
+ return ("install", "--no-lockfile", "--shamefully-hoist")
103
104
 
104
105
  return args
106
+
107
+
108
+ def _package_manager_env(
109
+ executable: str,
110
+ args: tuple[str, ...],
111
+ ) -> dict[str, str] | None:
112
+ if Path(executable).name == "pnpm" and args and args[0] == "install":
113
+ return {**os.environ, "CI": "true"}
114
+
115
+ return None
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import json
3
4
  import platform
4
5
  import secrets
5
6
  import shlex
@@ -142,7 +143,9 @@ def _clone_workspace(workspace_dir: str) -> None:
142
143
  if ws.exists() and (ws / ".git").is_dir():
143
144
  click.echo(f"Workspace already exists at {ws}, pulling latest...")
144
145
  _update_existing_workspace(ws)
146
+ _remove_managed_repo_symlinks(ws)
145
147
  _multi_sync(ws)
148
+ _update_install_set_repos(ws)
146
149
  return
147
150
 
148
151
  click.echo(f"Cloning workspace to {ws}...")
@@ -151,6 +154,7 @@ def _clone_workspace(workspace_dir: str) -> None:
151
154
  check=True,
152
155
  )
153
156
  _multi_sync(ws)
157
+ _update_install_set_repos(ws)
154
158
 
155
159
 
156
160
  def _update_existing_workspace(ws: Path) -> None:
@@ -176,6 +180,57 @@ def _update_existing_workspace(ws: Path) -> None:
176
180
  subprocess.run(["git", "-C", str(ws), "pull", "--ff-only"], check=True)
177
181
 
178
182
 
183
+ def _remove_managed_repo_symlinks(ws: Path) -> None:
184
+ if ws.resolve() != DEFAULT_WORKSPACE_DIR.resolve():
185
+ return
186
+
187
+ for repo_name in _install_set_repo_names(ws):
188
+ repo_path = ws / repo_name
189
+ if repo_path.is_symlink():
190
+ click.echo(f"Removing symlinked install repo at {repo_path}")
191
+ repo_path.unlink()
192
+
193
+
194
+ def _update_install_set_repos(ws: Path) -> None:
195
+ for repo_name in _install_set_repo_names(ws):
196
+ repo_path = ws / repo_name
197
+ if not (repo_path / ".git").exists():
198
+ continue
199
+
200
+ if ws.resolve() == DEFAULT_WORKSPACE_DIR.resolve():
201
+ click.echo(f"Updating managed install repo {repo_name}...")
202
+ subprocess.run(
203
+ ["git", "-C", str(repo_path), "fetch", "origin", "main"],
204
+ check=True,
205
+ )
206
+ subprocess.run(
207
+ ["git", "-C", str(repo_path), "reset", "--hard", "origin/main"],
208
+ check=True,
209
+ )
210
+ else:
211
+ subprocess.run(["git", "-C", str(repo_path), "pull", "--ff-only"], check=True)
212
+
213
+
214
+ def _install_set_repo_names(ws: Path) -> list[str]:
215
+ multi_json_path = ws / "multi.json"
216
+ if not multi_json_path.is_file():
217
+ return []
218
+
219
+ try:
220
+ multi_json = json.loads(multi_json_path.read_text(encoding="utf-8"))
221
+ except (OSError, json.JSONDecodeError):
222
+ return []
223
+
224
+ names = []
225
+ for repo in multi_json.get("repos", []):
226
+ install_sets = repo.get("installSets")
227
+ if install_sets is not None and WORKSPACE_INSTALL_SET not in install_sets:
228
+ continue
229
+ if name := repo.get("name"):
230
+ names.append(name)
231
+ return names
232
+
233
+
179
234
  def _multi_sync(ws_path: Path) -> None:
180
235
  click.echo(f"Running multi sync --install-set {WORKSPACE_INSTALL_SET}...")
181
236
  sync_workspace(ws_path, install_set=WORKSPACE_INSTALL_SET)
File without changes
File without changes