github Python analyzed e0d1e88

iowarp/clio-agent

github

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.

maintainer
iowarp
license
NOASSERTION
first seen
2026-06-17
last seen
2026-07-29
releases · 30d
18
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution ×2 in iowarp/clio-agent
capabilities 4 tools
transport stdio · http counts 4 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • apply_edit_write
  • bash
  • propose_edit
  • read_file
skills & danger signals github-tarball
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

danger signals2

code evidence vv0.8.1 · github-tarball
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