A science agent supporting any general AI agent in performing data management operations at scale. Builds upon the heritage of the IOWarp platform and proudly represents work done at Gnosis Research Center at Illinois Tech. Supported by NSF.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution ×2 in iowarp/clio-agent
transport stdio · http counts 4 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
apply_edit_write
-
bash
-
propose_edit
-
read_file
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit e0d1e88 · analyzer v28 · 19h ago
skills & prompt files 6
- agent-rules iowarp-clio-agent-e0d1e88/.claude/CLAUDE.md
- skill iowarp-clio-agent-e0d1e88/.claude/skills/grind-clio-case/SKILL.md
- skill iowarp-clio-agent-e0d1e88/.claude/skills/release-clio/SKILL.md
- agent-rules iowarp-clio-agent-e0d1e88/AGENTS.md
- prompt-file iowarp-clio-agent-e0d1e88/ai-docs/claude-agent-sdk/system-prompt.md
- skill iowarp-clio-agent-e0d1e88/src/clio_agent/gact/builtin_skills/planning/SKILL.md
danger signals2
- dynamic code execution __import__() iowarp-clio-agent-e0d1e88/tests/test_gact/test_agent_blueprints.py :3166
if __import__( - dynamic code execution eval()/exec() iowarp-clio-agent-e0d1e88/tests/test_gact/test_artifacts_s7_export.py :590
exec(first_cell, {"__name__": "__main__"}) # noqa: S102
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 725
filesystem 105
- fs iowarp-clio-agent-e0d1e88/src/clio_agent/arc/clio_core_config.py :54
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/arc/clio_core_file_capacity.py :12
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/arc/clio_core_liveness.py :55
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/arc/lsm.py :23
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/arc/memory.py :22
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/arc/storage.py :40
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/conf.py :69
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/config.py :33
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/agent_blueprint_refresh.py :26
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/agent_blueprints.py :15
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/agents/resolution.py :27
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/agents/skill_runtime.py :37
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/app.py :46
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/cas.py :38
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/cas_gc.py :26
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/designation.py :20
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/environment.py :33
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/export.py :35
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/grounding.py :47
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/minting.py :27
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/proposal_effects.py :27
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/proposals.py :32
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/registry.py :24
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/registry_boot.py :19
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/reproduce.py :201
" with open(_out, 'wb') as _f:", - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/transform_edges.py :28
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/transform_exclusivity.py :19
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/transform_types.py :15
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/transforms.py :33
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/versions.py :571
from pathlib import Path # noqa: PLC0415 - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/violations.py :34
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/catalog.py :12
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/diagnostics.py :74
with open(f"/proc/{os.getpid()}/status") as _f: - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/enrichment.py :49
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/expert_packs.py :32
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/git_source.py :4
URI -- notably ``pathlib.Path.as_uri()`` produces ``file:///C:/Users/...`` on - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/hooks/adapters.py :119
# but record a diagnosable reason — never a silent fail-open (C7/C8). - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/hooks/config.py :24
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/hooks/dispatcher.py :32
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/hooks/trust.py :34
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/messages.py :9
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/plan_mode.py :42
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/plan_reuse.py :36
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/agents.py :36
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/artifacts.py :31
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/blueprints.py :45
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/deps.py :20
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/diffs.py :50
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/expert_packs.py :29
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/mcp.py :45
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/misc.py :30
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/providers.py :42
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/workspaces.py :27
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/runtime/commands.py :24
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/runtime/constants.py :22
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/runtime/context_tokens.py :283
from pathlib import Path # noqa: PLC0415 - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/runtime/grant_resolver.py :38
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/runtime/grants.py :488
from pathlib import Path # noqa: PLC0415 - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/runtime/permission_policies.py :37
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/runtime/plan_acl.py :22
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/scheduler.py :50
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/semantic_events.py :19
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/session_store.py :34
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/sessions.py :42
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/skills.py :36
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/trace_backfill.py :30
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/user_agents.py :16
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/workflow_state/merge.py :4
pure stdlib (``re``, ``pathlib.Path``, ``collections.abc.Mapping``) and call - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/workflow_state/schema.py :14
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/workspace_scope.py :7
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/gact/workspaces.py :21
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/harness.py :13
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/lm/adapters.py :162
with open(path, "a", encoding="utf-8") as fh: - fs iowarp-clio-agent-e0d1e88/src/clio_agent/optimizer/variants.py :20
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/paths.py :25
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/prompts.py :27
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/providers/argonne_auth.py :39
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/providers/codex_litellm.py :42
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/providers/handshake/sources/db.py :32
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/providers/handshake/sources/models_dev.py :28
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/clio_core_health.py :22
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/disk_gc.py :32
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/landlock_exec.py :157
fd = os.open(path, os.O_PATH) - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/lm_provider_probe.py :22
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/mcp_launcher.py :19
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/sandbox.py :26
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/sandbox_cli.py :34
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/sandbox_codex.py :43
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/sandbox_codex_profile.py :23
from pathlib import Path, PureWindowsPath - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/sandbox_landlock.py :28
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/sandbox_net.py :20
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/sandbox_roots.py :17
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/status.py :15
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/stream_audit.py :9
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/serve.py :41
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/tools/execution.py :20
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/tools/file_policy.py :21
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/tools/fs_write.py :6
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/tools/listing_cache.py :35
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/tools/mcp_cache.py :40
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/tools/mcp_config.py :32
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/tools/servers/fs_server.py :25
from pathlib import Path - fs iowarp-clio-agent-e0d1e88/src/clio_agent/tools/servers/shell_server.py :15
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/tools/spawn_diet.py :50
import shutil - fs iowarp-clio-agent-e0d1e88/src/clio_agent/ui/cli.py :43
from pathlib import Path
shell / exec 11
- shell iowarp-clio-agent-e0d1e88/src/clio_agent/arc/storage.py :35
import subprocess - shell iowarp-clio-agent-e0d1e88/src/clio_agent/gact/agent_blueprints.py :16
import subprocess - shell iowarp-clio-agent-e0d1e88/src/clio_agent/gact/hooks/adapters.py :17
import subprocess - shell iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/blueprints.py :41
import subprocess - shell iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/providers.py :43
import subprocess - shell iowarp-clio-agent-e0d1e88/src/clio_agent/providers/codex_app_server.py :73
import subprocess - shell iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/disk_gc.py :33
import subprocess - shell iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/sandbox_cli.py :293
import subprocess # noqa: PLC0415 - only on the live-gate path - shell iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/sandbox_codex.py :154
import subprocess # noqa: PLC0415 - only needed on the detection path - shell iowarp-clio-agent-e0d1e88/src/clio_agent/serve.py :38
import subprocess - shell iowarp-clio-agent-e0d1e88/src/clio_agent/tools/servers/shell_server.py :16
import subprocess
network 19
- net iowarp-clio-agent-e0d1e88/src/clio_agent/arc/clio_core_liveness.py :51
import socket - net iowarp-clio-agent-e0d1e88/src/clio_agent/config.py :35
from urllib.parse import urlparse - net iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/ingest_edges.py :44
from urllib.parse import urlsplit - net iowarp-clio-agent-e0d1e88/src/clio_agent/gact/artifacts/reproduce.py :7
(a staged download → ``requests.get`` of the recorded source url; a pandas filter - net iowarp-clio-agent-e0d1e88/src/clio_agent/gact/git_source.py :21
from urllib.parse import unquote, urlsplit - net iowarp-clio-agent-e0d1e88/src/clio_agent/gact/mcp_apps.py :22
from urllib.parse import urlparse - net iowarp-clio-agent-e0d1e88/src/clio_agent/gact/providers/lmstudio.py :33
from urllib.parse import urlsplit, urlunsplit # noqa: PLC0415 - net iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/providers.py :738
import requests # noqa: PLC0415 - net iowarp-clio-agent-e0d1e88/src/clio_agent/lm/factory.py :11
from urllib.parse import urlparse - net iowarp-clio-agent-e0d1e88/src/clio_agent/providers/handshake/base.py :3
The base class owns the cross-cutting concerns (an ``httpx.AsyncClient`` with - net iowarp-clio-agent-e0d1e88/src/clio_agent/providers/handshake/sources/models_dev.py :109
import httpx # noqa: PLC0415 - net iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/lm_provider_probe.py :24
from urllib.parse import urlparse - net iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/net_chokepoint.py :48
import socket - net iowarp-clio-agent-e0d1e88/src/clio_agent/runtime/status.py :18
import requests - net iowarp-clio-agent-e0d1e88/src/clio_agent/sdk/client.py :28
import httpx - net iowarp-clio-agent-e0d1e88/src/clio_agent/sdk/errors.py :28
import httpx - net iowarp-clio-agent-e0d1e88/src/clio_agent/sdk/events.py :34
import httpx - net iowarp-clio-agent-e0d1e88/src/clio_agent/serve.py :44
import httpx - net iowarp-clio-agent-e0d1e88/src/clio_agent/tools/execution.py :22
from urllib.parse import urlsplit
secrets 4
- secrets iowarp-clio-agent-e0d1e88/src/clio_agent/config.py :488
api_key = os.environ.get("CLIO_LM_API_KEY", "") - secrets iowarp-clio-agent-e0d1e88/src/clio_agent/gact/providers/lmstudio.py :44
os.environ.get("LM_STUDIO_API_TOKEN", "").strip() - secrets iowarp-clio-agent-e0d1e88/src/clio_agent/gact/routes/providers.py :168
return ["api_key"], bool(os.environ.get(env_var) or os.environ.get("CLIO_LM_API_KEY")) - secrets iowarp-clio-agent-e0d1e88/src/clio_agent/providers/credentials.py :95
os.environ.get("CLIO_ARGONNE_TOKEN", "").strip()
tool registrations 4
- read_file iowarp-clio-agent-e0d1e88/src/clio_agent/tools/servers/fs_server.py :75
- propose_edit iowarp-clio-agent-e0d1e88/src/clio_agent/tools/servers/fs_server.py :102
- apply_edit_write iowarp-clio-agent-e0d1e88/src/clio_agent/tools/servers/fs_server.py :148
- bash iowarp-clio-agent-e0d1e88/src/clio_agent/tools/servers/shell_server.py :294
declared dependencies 37
- fastmcp@>=3.2.4
- dspy@==3.3.0b1
- litellm@==1.91.3
- requests@>=2.31.0
- h5py@>=3.10.0
- pyarrow@>=14.0.0
- rich@>=14.2.0
- prompt-toolkit@>=3.0.0
- sortedcontainers@>=2.4.0
- lru-dict@>=1.3.0
- msgspec@>=0.18.0
- platformdirs@>=4.0.0
- matplotlib@>=3.8.0
- iowarp-core@>=2.1.0
- filelock@>=3.12.0
- psutil@>=5.9.0
- fastapi@>=0.104.0
- uvicorn@>=0.24.0
- sse-starlette@>=1.6.0
- s@dependency tree).
- 0@9 * * *
- tzdata@>=2024.1
- tzlocal@>=5.2
- scipy@>=1.11.0
- numpy@>=1.24.0
- adios2@>=2.10.0; platform_system !=
- globus-sdk@>=3.0.0
- sdk@*
- pytest@>=7.4.0
- pytest-cov@>=4.1.0
- pytest-asyncio@>=0.21.0
- pytest-xdist@>=3.5.0
- pytest-repeat@>=0.9.3
- hypothesis@>=6
- pandas@>=2.0.0
- ruff@>=0.1.0
- mypy@>=1.7.0