diff --git a/.env.example b/.env.example index 7cb430627..66a95c1d3 100644 --- a/.env.example +++ b/.env.example @@ -7,7 +7,7 @@ MODEL_ID=claude-sonnet-4-6 # Base URL (optional, for Anthropic-compatible providers) # ANTHROPIC_BASE_URL=https://api.anthropic.com - +#AUTH_TYPE=bearer( Authorization: Bearer) # ============================================================================= # Anthropic-compatible providers # diff --git a/agents/s01_agent_loop.py b/agents/s01_agent_loop.py index 9c953ef87..9d7c50397 100644 --- a/agents/s01_agent_loop.py +++ b/agents/s01_agent_loop.py @@ -35,7 +35,13 @@ if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +client = Anthropic( + api_key=os.getenv("ANTHROPIC_API_KEY"), + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers={ + "Authorization": f"Bearer {os.getenv('ANTHROPIC_API_KEY')}", + } +) MODEL = os.environ["MODEL_ID"] SYSTEM = f"You are a coding agent at {os.getcwd()}. Use bash to solve tasks. Act, don't explain." diff --git a/agents/s02_tool_use.py b/agents/s02_tool_use.py index 0f3a220af..c20357a75 100644 --- a/agents/s02_tool_use.py +++ b/agents/s02_tool_use.py @@ -31,9 +31,20 @@ if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] +WORKDIR = Path(os.getcwd()) SYSTEM = f"You are a coding agent at {WORKDIR}. Use tools to solve tasks. Act, don't explain." diff --git a/agents/s03_todo_write.py b/agents/s03_todo_write.py index af0109cba..0a2d8199e 100644 --- a/agents/s03_todo_write.py +++ b/agents/s03_todo_write.py @@ -39,9 +39,20 @@ if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] +WORKDIR = Path(os.getcwd()) SYSTEM = f"""You are a coding agent at {WORKDIR}. Use the todo tool to plan multi-step tasks. Mark in_progress before starting, completed when done. diff --git a/agents/s04_subagent.py b/agents/s04_subagent.py index 2cbf081fc..c28d82f28 100644 --- a/agents/s04_subagent.py +++ b/agents/s04_subagent.py @@ -35,9 +35,20 @@ if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] +WORKDIR = Path(os.getcwd()) SYSTEM = f"You are a coding agent at {WORKDIR}. Use the task tool to delegate exploration or subtasks." SUBAGENT_SYSTEM = f"You are a coding subagent at {WORKDIR}. Complete the given task, then summarize your findings." diff --git a/agents/s05_skill_loading.py b/agents/s05_skill_loading.py index 07e580e82..f1ca7dec0 100644 --- a/agents/s05_skill_loading.py +++ b/agents/s05_skill_loading.py @@ -48,9 +48,21 @@ if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] + +WORKDIR = Path(os.getcwd()) SKILLS_DIR = WORKDIR / "skills" diff --git a/agents/s06_context_compact.py b/agents/s06_context_compact.py index 04899b526..17804fd20 100644 --- a/agents/s06_context_compact.py +++ b/agents/s06_context_compact.py @@ -48,9 +48,20 @@ if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] +WORKDIR = Path(os.getcwd()) SYSTEM = f"You are a coding agent at {WORKDIR}. Use tools to solve tasks." diff --git a/agents/s07_task_system.py b/agents/s07_task_system.py index 7689be42b..ee60adce3 100644 --- a/agents/s07_task_system.py +++ b/agents/s07_task_system.py @@ -35,9 +35,20 @@ if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] +WORKDIR = Path(os.getcwd()) TASKS_DIR = WORKDIR / ".tasks" SYSTEM = f"You are a coding agent at {WORKDIR}. Use task tools to plan and track work." diff --git a/agents/s08_background_tasks.py b/agents/s08_background_tasks.py index e006cccb0..d0512102b 100644 --- a/agents/s08_background_tasks.py +++ b/agents/s08_background_tasks.py @@ -39,9 +39,20 @@ if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] +WORKDIR = Path(os.getcwd()) SYSTEM = f"You are a coding agent at {WORKDIR}. Use background_run for long-running commands." diff --git a/agents/s09_agent_teams.py b/agents/s09_agent_teams.py index a40427179..96750b640 100644 --- a/agents/s09_agent_teams.py +++ b/agents/s09_agent_teams.py @@ -54,12 +54,24 @@ from dotenv import load_dotenv load_dotenv(override=True) + if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] +WORKDIR = Path(os.getcwd()) TEAM_DIR = WORKDIR / ".team" INBOX_DIR = TEAM_DIR / "inbox" diff --git a/agents/s10_team_protocols.py b/agents/s10_team_protocols.py index 5f45c1f3d..19a77265b 100644 --- a/agents/s10_team_protocols.py +++ b/agents/s10_team_protocols.py @@ -59,12 +59,24 @@ from dotenv import load_dotenv load_dotenv(override=True) + if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] +WORKDIR = Path(os.getcwd()) TEAM_DIR = WORKDIR / ".team" INBOX_DIR = TEAM_DIR / "inbox" diff --git a/agents/s11_autonomous_agents.py b/agents/s11_autonomous_agents.py index 5eabdb91a..a7c2c8fdf 100644 --- a/agents/s11_autonomous_agents.py +++ b/agents/s11_autonomous_agents.py @@ -47,12 +47,24 @@ from dotenv import load_dotenv load_dotenv(override=True) + if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] +WORKDIR = Path(os.getcwd()) TEAM_DIR = WORKDIR / ".team" INBOX_DIR = TEAM_DIR / "inbox" TASKS_DIR = WORKDIR / ".tasks" diff --git a/agents/s12_worktree_task_isolation.py b/agents/s12_worktree_task_isolation.py index eb730315a..8a4df8449 100644 --- a/agents/s12_worktree_task_isolation.py +++ b/agents/s12_worktree_task_isolation.py @@ -45,9 +45,20 @@ if os.getenv("ANTHROPIC_BASE_URL"): os.environ.pop("ANTHROPIC_AUTH_TOKEN", None) -WORKDIR = Path.cwd() -client = Anthropic(base_url=os.getenv("ANTHROPIC_BASE_URL")) +api_key = os.getenv("ANTHROPIC_API_KEY") +auth_type = os.getenv("AUTH_TYPE", "x-api-key") + +extra_headers = {} +if auth_type == "bearer": + extra_headers["Authorization"] = f"Bearer {api_key}" + +client = Anthropic( + api_key=api_key, + base_url=os.getenv("ANTHROPIC_BASE_URL"), + default_headers=extra_headers, +) MODEL = os.environ["MODEL_ID"] +WORKDIR = Path(os.getcwd()) def detect_repo_root(cwd: Path) -> Path | None: