Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion coworker/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ def _enabled_connector_tools(secrets: SecretStore) -> tuple[set[str], set[str]]:


def _skill_dirs(workspace: Optional[Path]) -> list[Path]:
dirs = [state_dir() / "skills"]
dirs = [Path(__file__).parent / "skills" / "builtin", state_dir() / "skills"]
if workspace is not None:
dirs.append(workspace / ".coworker" / "skills")
return dirs
Expand Down
4 changes: 2 additions & 2 deletions coworker/audit.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,8 @@ def _sanitize_args(tool: str, args: dict[str, Any]) -> dict[str, Any]:
lk = str(key).lower()
if any(s in lk for s in _SECRET_KEYS):
out[key] = "[redacted]"
elif tool == "browser_type" and lk == "text":
out[key] = "[redacted input]"
elif tool == "browser_exec" and lk == "code":
out[key] = "[redacted browser code]"
elif any(b == lk or lk.endswith("_" + b) for b in _BODY_KEYS):
out[key] = "[redacted body]"
else:
Expand Down
11 changes: 10 additions & 1 deletion coworker/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ class Config:
port: int = 8765
# Web search provider: "duckduckgo" (keyless default) | "tavily" | "brave" (need a key).
web_search_provider: str = "duckduckgo"
# Where the browser tools run. "local" drives the user's own Chrome; "cloud" routes
# every call to a Browser Use Cloud browser (needs `browser-use auth login`).
# Cloud is off for now
browser_backend: str = "local"
# Daemon name for the cloud browser
browser_cloud_name: str = "coworker"
# OpenWorker Cloud (sign-in + managed connectors). Config, never constants:
# dev/staging/BYO-VPC deployments point these at their own instances.
cloud_base_url: str = "https://api.openworker.com"
Expand Down Expand Up @@ -67,6 +73,8 @@ class Config:
"host",
"port",
"web_search_provider",
"browser_backend",
"browser_cloud_name",
"cloud_base_url",
"cloud_auth_domain",
"cloud_client_id",
Expand All @@ -77,7 +85,8 @@ class Config:
# These fields change what consequential actions can run without a prompt, so the normal
# workspace override pass never applies them. `allowed_commands` is added separately only
# for a canonically trusted workspace; `auto_allow` remains user-global only.
_GLOBAL_ONLY_FIELDS = {"allowed_commands", "auto_allow"}

_GLOBAL_ONLY_FIELDS = {"allowed_commands", "auto_allow", "browser_backend", "browser_cloud_name"}
_WORKSPACE_FIELDS = _FIELDS - _GLOBAL_ONLY_FIELDS


Expand Down
Loading