Skip to content
Closed
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
15 changes: 15 additions & 0 deletions src/ucode/constants.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,30 @@
"""Shared UCode constants."""

import os
from collections.abc import Mapping

LOCALHOST = "localhost"
LOOPBACK_HOST = "127.0.0.1"

# Values an on/off env var may use to mean "on" (compare after .strip().lower()).
TRUTHY_ENV_VALUES = frozenset({"1", "true"})

ENABLE_SMART_ROUTING_ENV_VAR = "ENABLE_SMART_ROUTING_V2"
ENABLE_SUBAGENT_ROUTING_ENV_VAR = "ENABLE_SMART_ROUTING_SUBAGENT_ONLY"
SMART_ROUTING_ENV_KEYS = (
ENABLE_SMART_ROUTING_ENV_VAR,
ENABLE_SUBAGENT_ROUTING_ENV_VAR,
)

ENABLE_CLAUDE_CODE_MODS_ENV_VAR = "ENABLE_CLAUDE_CODE_MODS"


def claude_code_mods_enabled(env: Mapping[str, str] | None = None) -> bool:
"""Whether the Claude Code mods experience is enabled."""
source = os.environ if env is None else env
return source.get(ENABLE_CLAUDE_CODE_MODS_ENV_VAR, "").strip().lower() in TRUTHY_ENV_VALUES


MODEL_PROVIDER_SERVICE_HEADER = "Databricks-Model-Provider-Service"
MODEL_SERVICE_PARENT_SCHEMA_HEADER = "Databricks-Model-Service-Parent-Schema"
# Names the smart-router recipe (e.g. `task_v3`) in use; sent only when smart routing is enabled.
Expand Down
12 changes: 11 additions & 1 deletion tests/test_agent_claude.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@

import pytest

from ucode import constants, managed_files
from ucode import databricks as db_mod
from ucode import managed_files
from ucode.agents import LaunchOptions, claude
from ucode.smart_routing import claude_routing, v2
from ucode.state import MANAGED_OVERLAY_KEY
Expand Down Expand Up @@ -83,6 +83,16 @@ def test_unknown_version_does_not_block(self, monkeypatch):
assert claude.minimum_version_error() is None


class TestClaudeCodeModsFlag:
def test_enabled_for_one_or_true_case_insensitively(self):
assert constants.claude_code_mods_enabled({"ENABLE_CLAUDE_CODE_MODS": "1"})
assert constants.claude_code_mods_enabled({"ENABLE_CLAUDE_CODE_MODS": "true"})
assert constants.claude_code_mods_enabled({"ENABLE_CLAUDE_CODE_MODS": "TRUE"})
assert not constants.claude_code_mods_enabled({"ENABLE_CLAUDE_CODE_MODS": "yes"})
assert not constants.claude_code_mods_enabled({"ENABLE_CLAUDE_CODE_MODS": "0"})
assert not constants.claude_code_mods_enabled({})


class TestRenderOverlay:
def test_long_context_suffix_supports_major_only_claude_versions(self):
assert claude._maybe_add_1m_suffix("system.ai.claude-sonnet-5") == (
Expand Down
Loading