Remove obsolete root scripts
This commit is contained in:
@@ -1,95 +0,0 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import shlex
|
||||
|
||||
from harbor.agents.installed.base import BaseInstalledAgent, CliFlag, EnvVar, with_prompt_template
|
||||
from harbor.environments.base import BaseEnvironment
|
||||
from harbor.models.agent.context import AgentContext
|
||||
|
||||
|
||||
class ClawCodeInstalledAgent(BaseInstalledAgent):
|
||||
"""
|
||||
Harbor installed-agent adapter for claw-code-agent.
|
||||
|
||||
This installs the published GitHub repo inside the Harbor environment and
|
||||
runs the CLI in one-shot mode against the task working directory.
|
||||
"""
|
||||
|
||||
CLI_FLAGS = [
|
||||
CliFlag("max_turns", cli="--max-turns", type="int"),
|
||||
CliFlag("append_system_prompt", cli="--append-system-prompt", type="str"),
|
||||
CliFlag("system_prompt", cli="--system-prompt", type="str"),
|
||||
CliFlag("stream", cli="--stream", type="bool"),
|
||||
CliFlag("allow_write", cli="--allow-write", type="bool", default=True),
|
||||
CliFlag("allow_shell", cli="--allow-shell", type="bool", default=True),
|
||||
]
|
||||
|
||||
ENV_VARS = [
|
||||
EnvVar("openai_api_key", env="OPENAI_API_KEY", type="str", env_fallback="OPENAI_API_KEY"),
|
||||
EnvVar("openai_base_url", env="OPENAI_BASE_URL", type="str", env_fallback="OPENAI_BASE_URL"),
|
||||
EnvVar("openai_model", env="OPENAI_MODEL", type="str", env_fallback="OPENAI_MODEL"),
|
||||
]
|
||||
|
||||
@staticmethod
|
||||
def name() -> str:
|
||||
return "claw-code-agent"
|
||||
|
||||
def get_version_command(self) -> str | None:
|
||||
return "claw-code-agent --help >/dev/null 2>&1 && echo installed"
|
||||
|
||||
async def install(self, environment: BaseEnvironment) -> None:
|
||||
await self.exec_as_root(
|
||||
environment,
|
||||
command=(
|
||||
"if command -v apk >/dev/null 2>&1; then "
|
||||
"apk add --no-cache python3 py3-pip bash curl git; "
|
||||
"elif command -v apt-get >/dev/null 2>&1; then "
|
||||
"apt-get update && apt-get install -y python3 python3-pip bash curl git; "
|
||||
"elif command -v yum >/dev/null 2>&1; then "
|
||||
"yum install -y python3 python3-pip bash curl git; "
|
||||
"fi"
|
||||
),
|
||||
env={"DEBIAN_FRONTEND": "noninteractive"},
|
||||
)
|
||||
version_spec = f"@{self._version}" if self._version else ""
|
||||
repo_spec = (
|
||||
f"git+https://github.com/HarnessLab/claw-code-agent.git{version_spec}"
|
||||
if version_spec
|
||||
else "git+https://github.com/HarnessLab/claw-code-agent.git"
|
||||
)
|
||||
await self.exec_as_agent(
|
||||
environment,
|
||||
command=(
|
||||
"set -euo pipefail; "
|
||||
f"python3 -m pip install --upgrade pip && python3 -m pip install {shlex.quote(repo_spec)} && "
|
||||
"claw-code-agent --help >/dev/null"
|
||||
),
|
||||
)
|
||||
|
||||
def populate_context_post_run(self, context: AgentContext) -> None:
|
||||
del context
|
||||
|
||||
@with_prompt_template
|
||||
async def run(
|
||||
self,
|
||||
instruction: str,
|
||||
environment: BaseEnvironment,
|
||||
context: AgentContext,
|
||||
) -> None:
|
||||
del context
|
||||
env = self.resolve_env_vars()
|
||||
if self.model_name and "OPENAI_MODEL" not in env:
|
||||
env["OPENAI_MODEL"] = self.model_name
|
||||
|
||||
cli_flags = self.build_cli_flags()
|
||||
extra_flags = (cli_flags + " ") if cli_flags else ""
|
||||
escaped_instruction = shlex.quote(instruction)
|
||||
|
||||
# Harbor executes in the task working directory; keep cwd anchored there.
|
||||
command = (
|
||||
f"claw-code-agent agent {escaped_instruction} "
|
||||
f"--cwd $(pwd) {extra_flags}"
|
||||
"2>&1 | stdbuf -oL tee /logs/agent/claw-code-agent.txt"
|
||||
)
|
||||
await self.exec_as_agent(environment, command=command, env=env)
|
||||
@@ -1,36 +0,0 @@
|
||||
# everything stays under $SCRATCH
|
||||
export DROOT="$SCRATCH/docker-rootless"
|
||||
mkdir -p "$DROOT"/{bin,home,config/docker,run,data}
|
||||
chmod 700 "$DROOT/run"
|
||||
|
||||
# read-only checks; these do not modify the system
|
||||
command -v newuidmap newgidmap
|
||||
grep "^$(whoami):" /etc/subuid /etc/subgid
|
||||
cat /proc/sys/kernel/unprivileged_userns_clone 2>/dev/null || true
|
||||
cat /proc/sys/user/max_user_namespaces 2>/dev/null || true
|
||||
df -T "$SCRATCH"
|
||||
|
||||
# keep Docker files in $SCRATCH
|
||||
export HOME="$DROOT/home"
|
||||
export DOCKER_BIN="$DROOT/bin"
|
||||
export XDG_CONFIG_HOME="$DROOT/config"
|
||||
export XDG_RUNTIME_DIR="$DROOT/run"
|
||||
export PATH="$DOCKER_BIN:$PATH"
|
||||
export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/docker.sock"
|
||||
|
||||
# install rootless Docker binaries into $SCRATCH
|
||||
curl -fsSL https://get.docker.com/rootless | sh
|
||||
|
||||
# store Docker images/layers in $SCRATCH too
|
||||
cat > "$XDG_CONFIG_HOME/docker/daemon.json" <<EOF
|
||||
{
|
||||
"data-root": "$DROOT/data"
|
||||
}
|
||||
EOF
|
||||
|
||||
# start daemon manually (no systemd)
|
||||
nohup dockerd-rootless.sh > "$DROOT/dockerd.log" 2>&1 &
|
||||
sleep 5
|
||||
|
||||
docker --version
|
||||
docker info
|
||||
@@ -1,15 +0,0 @@
|
||||
annotated-doc==0.0.4
|
||||
annotated-types==0.7.0
|
||||
anyio==4.13.0
|
||||
-e git+https://github.com/HarnessLab/claw-code-agent.git@30de15b6d52dd4942924e92f3fffdee0063cc9d4#egg=claw_code_agent
|
||||
click==8.3.2
|
||||
exceptiongroup==1.3.1
|
||||
fastapi==0.136.0
|
||||
h11==0.16.0
|
||||
idna==3.12
|
||||
pydantic==2.13.3
|
||||
pydantic_core==2.46.3
|
||||
starlette==1.0.0
|
||||
typing-inspection==0.4.2
|
||||
typing_extensions==4.15.0
|
||||
uvicorn==0.45.0
|
||||
Reference in New Issue
Block a user