github Python re-analysis due deep scan · partial (287/3,388 files)

Abilityai/trinity

github

Self-hosted AI Agents Platform supporting Claude Code, Codex, Gemini agents. Apache 2.0.

maintainer
Abilityai
licence
Apache-2.0
first seen
2026-09-04
last seen
2026-09-17
releases · 30d
4
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 2 tools
transport stdio · http counts 2 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • ask_trinity
  • get_agent_requirements
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit e38c1c0 · analyzer v33 · 3h ago

skills & prompt files 40

danger signals56

code evidence vv0.9.5-rc4 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 2032

filesystem 294

  • fs Abilityai-trinity-e38c1c0/config/hooks/read-only-guard.py :39 with open(CONFIG_PATH) as f:
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/auto_sync.py :18 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/config.py :5 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/heartbeat.py :23 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/mcp_template.py :52 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/plugins_reinstall.py :63 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/routers/brain_orb.py :14 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/routers/credentials.py :8 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/routers/dashboard.py :7 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/routers/files.py :6 import shutil
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/routers/git.py :9 import shutil
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/routers/info.py :9 from pathlib import Path
show 28 more
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/routers/skills.py :9 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/routers/snapshot.py :22 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/_runtime_config.py :28 with open(path) as f:
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/claude_code.py :22 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/codex_runtime.py :45 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/execution_env.py :49 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/gemini_runtime.py :15 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/headless_executor.py :30 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/jsonl_recovery.py :56 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/pull_worker.py :47 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/result_callback.py :33 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/trinity_mcp.py :11 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/utils/credential_sanitizer.py :15 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/utils/orphan_allowlist.py :63 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/utils/orphan_sweep.py :43 from pathlib import Path
  • fs Abilityai-trinity-e38c1c0/docker/base-image/agent_server/utils/thread_diagnostics.py :6 grandchild's write end open (#1502), inside a catastrophic sanitizer regex
  • fs Abilityai-trinity-e38c1c0/docker/base-image/hooks/lib.py :33 with open(LOG_PATH, "a") as f:
  • fs Abilityai-trinity-e38c1c0/docker/base-image/hooks/read-only-guard.py :35 with open(_CONFIG_PATH) as f:
  • fs Abilityai-trinity-e38c1c0/docker/base-image/hooks/write-runtime-config.py :45 with open(BASELINE_PATH) as f:
  • fs (weak) Abilityai-trinity-e38c1c0/scripts/ci/check-failure-baseline.py :44 from pathlib import Path
  • fs (weak) Abilityai-trinity-e38c1c0/scripts/ci/check_alembic_heads.py :73 from pathlib import Path
  • fs (weak) Abilityai-trinity-e38c1c0/scripts/ci/check_journey_impact.py :18 from pathlib import Path
  • fs (weak) Abilityai-trinity-e38c1c0/scripts/ci/check_screenshots.py :40 from pathlib import Path
  • fs (weak) Abilityai-trinity-e38c1c0/scripts/ci/diff-pytest-failures.py :36 from pathlib import Path
  • fs (weak) Abilityai-trinity-e38c1c0/scripts/ci/generate_journeys_md.py :24 from pathlib import Path
  • fs (weak) Abilityai-trinity-e38c1c0/scripts/deploy/rotate-credential-key.py :37 from pathlib import Path
  • fs (weak) Abilityai-trinity-e38c1c0/scripts/dev/audit_headless_tools.py :45 from pathlib import Path
  • fs (weak) Abilityai-trinity-e38c1c0/scripts/docs/architecture_map.py :29 from pathlib import Path

254 more not shown — this panel samples each group; the count above is the real total.

shell / exec 97

  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/plugins_reinstall.py :61 import subprocess # noqa: S404 — arg-list only, never shell=True
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/routers/git.py :11 import subprocess
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/claude_code.py :17 import subprocess
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/codex_runtime.py :40 import subprocess
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/gemini_runtime.py :10 import subprocess
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/headless_executor.py :23 import subprocess
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/process_registry.py :11 import subprocess
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/subprocess_lifecycle.py :15 import subprocess
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/trinity_mcp.py :9 import subprocess
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/state.py :5 import subprocess
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/utils/registered_run.py :28 import subprocess
  • shell Abilityai-trinity-e38c1c0/docker/base-image/agent_server/utils/subprocess_pgroup.py :32 import subprocess
show 28 more
  • shell (weak) Abilityai-trinity-e38c1c0/scripts/ci/check_alembic_parity.py :52 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/scripts/ci/check_journey_impact.py :16 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/scripts/ci/check_screenshots.py :38 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/scripts/dev/audit_headless_tools.py :42 import subprocess
  • shell Abilityai-trinity-e38c1c0/src/backend/services/skill_service.py :1526 proc = subprocess.run(
  • shell Abilityai-trinity-e38c1c0/src/backend/services/skill_source_clone.py :43 import subprocess
  • shell Abilityai-trinity-e38c1c0/src/backend/services/ssh_service.py :540 import subprocess
  • shell Abilityai-trinity-e38c1c0/src/backend/services/template_service.py :12 import subprocess
  • shell Abilityai-trinity-e38c1c0/src/cli/trinity_cli/commands/deploy.py :7 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_817_subprocess_leak.py :29 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_access_control.py :13 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_channel_access_control.py :50 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_circuit_breaker_reset.py :12 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_operator_queue.py :12 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_ops_clear_all.py :17 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_public_links.py :285 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_slack_integration.py :44 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_ssh_access.py :33 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_watchdog.py :18 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/test_whatsapp_integration.py :21 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/unit/test_1028_settings_package.py :30 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/unit/test_1094_stall_termination_reason.py :27 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/unit/test_1501_hook_sweep_protection.py :33 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/unit/test_1595_git_maintenance.py :25 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/unit/test_1616_ssh.py :27 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/unit/test_1704_plugins_reinstall.py :34 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/unit/test_1898_sys_modules_isolation.py :31 import subprocess
  • shell (weak) Abilityai-trinity-e38c1c0/tests/unit/test_2036_claude_settings_leak.py :48 import subprocess

57 more not shown — this panel samples each group; the count above is the real total.

network 183

  • net Abilityai-trinity-e38c1c0/docker/base-image/agent_server/heartbeat.py :26 import httpx
  • net Abilityai-trinity-e38c1c0/docker/base-image/agent_server/mcp_validator.py :39 import socket
  • net Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/pull_worker.py :50 import httpx
  • net Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/result_callback.py :36 import httpx
  • net Abilityai-trinity-e38c1c0/docker/base-image/agent_server/utils/helpers.py :35 from urllib.parse import urlparse
  • net (weak) Abilityai-trinity-e38c1c0/docs/archive/testing/run_integration_test.py :22 import requests
  • net Abilityai-trinity-e38c1c0/src/backend/adapters/telegram_adapter.py :23 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/adapters/transports/telegram_webhook.py :136 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/adapters/whatsapp_adapter.py :18 from urllib.parse import urlparse
  • net Abilityai-trinity-e38c1c0/src/backend/client_portal/router.py :22 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/client_portal/service.py :1579 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/client_portal/work/pipeline_state.py :39 import httpx
show 28 more
  • net Abilityai-trinity-e38c1c0/src/backend/config.py :5 from urllib.parse import urlparse
  • net Abilityai-trinity-e38c1c0/src/backend/db/schedules/git_config.py :375 keeps hitting removed containers forever — each `httpx.ConnectError`
  • net Abilityai-trinity-e38c1c0/src/backend/main.py :25 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/a2a.py :39 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/agent_brain_orb.py :21 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/agent_files.py :63 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/chat.py :8 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/credentials.py :14 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/files.py :24 from urllib.parse import quote
  • net Abilityai-trinity-e38c1c0/src/backend/routers/observability.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/ops.py :19 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/public.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/schedules.py :17 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/settings/agent_defaults.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/settings/credentials.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/settings/flags.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/settings/generic.py :17 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/settings/integrations.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/settings/mcp_url.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/settings/ops.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/settings/retention.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/settings/templates.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/settings/whitelist.py :12 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/telegram.py :23 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/voip.py :17 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/webhooks.py :22 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/routers/whatsapp.py :24 import httpx
  • net Abilityai-trinity-e38c1c0/src/backend/services/a2a_client.py :69 from urllib.parse import urlsplit, urlunsplit

143 more not shown — this panel samples each group; the count above is the real total.

secrets 44

  • secrets Abilityai-trinity-e38c1c0/docker/base-image/agent_server/heartbeat.py :182 mcp_key = os.getenv("TRINITY_MCP_API_KEY")
  • secrets Abilityai-trinity-e38c1c0/docker/base-image/agent_server/routers/credentials.py :109 os.environ["CLAUDE_CODE_OAUTH_TOKEN"] = request.token
  • secrets Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/error_classifier.py :146 has_api_key = bool(os.environ.get("ANTHROPIC_API_KEY"))
  • secrets Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/gemini_runtime.py :193 api_key = os.getenv("GEMINI_API_KEY")
  • secrets Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/pull_worker.py :173 return bool(os.getenv("TRINITY_BACKEND_URL") and os.getenv("TRINITY_MCP_API_KEY"))
  • secrets Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/result_callback.py :99 return bool(os.getenv("TRINITY_BACKEND_URL") and os.getenv("TRINITY_MCP_API_KEY"))
  • secrets Abilityai-trinity-e38c1c0/docker/base-image/agent_server/services/trinity_mcp.py :27 trinity_mcp_api_key = os.getenv("TRINITY_MCP_API_KEY")
  • secrets (weak) Abilityai-trinity-e38c1c0/docs/archive/testing/run_integration_test.py :30 ADMIN_PASS = os.getenv("ADMIN_PASSWORD", "changeme")
  • secrets Abilityai-trinity-e38c1c0/src/backend/config.py :68 _secret_key = os.getenv("SECRET_KEY", "")
  • secrets Abilityai-trinity-e38c1c0/src/backend/database.py :853 admin_password = os.getenv("ADMIN_PASSWORD", "")
  • secrets Abilityai-trinity-e38c1c0/src/backend/main.py :471 if not os.getenv("AGENT_AUTH_SECRET"):
  • secrets Abilityai-trinity-e38c1c0/src/backend/routers/credentials.py :621 key = os.getenv("CREDENTIAL_ENCRYPTION_KEY")
show 28 more
  • secrets Abilityai-trinity-e38c1c0/src/backend/routers/internal.py :43 return os.getenv("INTERNAL_API_SECRET") or SECRET_KEY
  • secrets Abilityai-trinity-e38c1c0/src/backend/routers/settings/credentials.py :333 env_key = os.getenv('ANTHROPIC_API_KEY', '')
  • secrets Abilityai-trinity-e38c1c0/src/backend/routers/settings/provider_keys.py :100 "fallback_configured": bool(os.getenv('RESEND_API_KEY', '')),
  • secrets Abilityai-trinity-e38c1c0/src/backend/routers/setup.py :152 if not os.getenv("ADMIN_PASSWORD") and os.getenv("ADMIN_PASSWORD_SOURCE") == "unset":
  • secrets Abilityai-trinity-e38c1c0/src/backend/routers/subscriptions.py :46 key = os.getenv("CREDENTIAL_ENCRYPTION_KEY")
  • secrets Abilityai-trinity-e38c1c0/src/backend/services/agent_auth.py :51 secret = os.getenv("AGENT_AUTH_SECRET")
  • secrets Abilityai-trinity-e38c1c0/src/backend/services/event_dispatch_service.py :82 return os.getenv("INTERNAL_API_SECRET") or SECRET_KEY
  • secrets Abilityai-trinity-e38c1c0/src/backend/services/settings_service.py :362 return os.getenv('ELEVENLABS_API_KEY', '')
  • secrets Abilityai-trinity-e38c1c0/src/backend/services/subscription_auto_switch.py :989 The agent server mutates its own ``os.environ["CLAUDE_CODE_OAUTH_TOKEN"]``,
  • secrets Abilityai-trinity-e38c1c0/src/backend/services/subscription_service.py :312 row, then the legacy cleartext row, then ``os.getenv('ANTHROPIC_API_KEY')``.
  • secrets Abilityai-trinity-e38c1c0/src/cli/trinity_cli/config.py :110 key = os.environ.get("TRINITY_API_KEY")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/agent_server/conftest.py :50 if api_config.test_agent_name and os.getenv("AGENT_AUTH_SECRET"):
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/integration/conftest.py :122 password = os.environ.get("REDIS_BACKEND_PASSWORD")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/integration/test_1557_autonomy_inbound.py :106 password = os.environ.get("TRINITY_ADMIN_PASSWORD") or _env_value("ADMIN_PASSWORD")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/integration/test_1560_breaker_lifecycle.py :235 password = os.environ.get("TRINITY_ADMIN_PASSWORD") or _env_value("ADMIN_PASSWORD")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/security/test_agent_auth_isolation.py :40 if not os.environ.get("AGENT_AUTH_SECRET"):
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/security/test_redis_network_isolation.py :40 pwd = os.environ.get("REDIS_BACKEND_PASSWORD")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/test_github_pat.py :121 if not os.getenv("CREDENTIAL_ENCRYPTION_KEY"):
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/test_internal.py :25 secret = os.getenv("INTERNAL_API_SECRET", "")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/test_ip_rate_limit_fix.py :242 password = os.getenv("TRINITY_TEST_PASSWORD", "password")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/test_platform_default_model.py :20 PASSWORD = os.getenv("TRINITY_TEST_PASSWORD", "password")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/test_public_chat_history.py :16 password = os.getenv("TRINITY_TEST_PASSWORD", "password")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/test_public_links.py :20 password = os.getenv("TRINITY_TEST_PASSWORD", "password")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/test_public_user_memory.py :36 password = os.getenv("TRINITY_TEST_PASSWORD", "password")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/test_reset_preserve_state_integration.py :22 TRINITY_TEST_TOKEN = os.environ.get("TRINITY_TEST_TOKEN")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/test_slack_integration.py :30 password = os.getenv("TRINITY_TEST_PASSWORD", "password")
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/testing_utils/api_client.py :32 password=os.getenv("TRINITY_TEST_PASSWORD", "password"),
  • secrets (weak) Abilityai-trinity-e38c1c0/tests/unit/test_1775_no_import_time_env_mutation.py :232 ' os.environ["REDIS_PASSWORD"] = "test"\n'

4 more not shown — this panel samples each group; the count above is the real total.

database 277

  • db (weak) Abilityai-trinity-e38c1c0/scripts/deploy/rotate-credential-key.py :43 from sqlalchemy import text # noqa: E402
  • db (weak) Abilityai-trinity-e38c1c0/scripts/management/migrate_prefixes_to_tags.py :18 import sqlite3
  • db Abilityai-trinity-e38c1c0/src/backend/adapters/transports/twilio_media_stream.py :57 import redis.asyncio as aioredis
  • db Abilityai-trinity-e38c1c0/src/backend/canary/snapshot.py :479 from sqlalchemy import func, select
  • db Abilityai-trinity-e38c1c0/src/backend/client_portal/db.py :14 from sqlalchemy import select, func, and_, or_, text, bindparam
  • db Abilityai-trinity-e38c1c0/src/backend/client_portal/service.py :37 from sqlalchemy.exc import IntegrityError
  • db Abilityai-trinity-e38c1c0/src/backend/database.py :512 from sqlalchemy import func, select
  • db Abilityai-trinity-e38c1c0/src/backend/db/access_requests.py :19 from sqlalchemy import select, update, delete, func
  • db Abilityai-trinity-e38c1c0/src/backend/db/activities.py :17 from sqlalchemy import select, insert, update, and_, case
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_cleanup.py :336 from sqlalchemy import inspect as sa_inspect
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/a2a_exposure.py :14 from sqlalchemy import and_, func, select, update
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/access_policy.py :10 from sqlalchemy import select, update, and_, func
show 28 more
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/autonomy.py :9 from sqlalchemy import select, update, func
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/avatar.py :9 from sqlalchemy import select, update
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/display_label.py :21 from sqlalchemy import and_, select, update
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/ephemeral.py :24 from sqlalchemy import and_, case, delete, func, or_, select, update
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/file_sharing.py :13 from sqlalchemy import select, update, func, and_
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/git_pat.py :11 from sqlalchemy import select, update
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/mcp_exposure.py :19 from sqlalchemy import select, update, func, and_
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/metadata.py :9 from sqlalchemy import select, update, text
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/operator_resume.py :24 from sqlalchemy import and_, func, select, update
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/resources.py :14 from sqlalchemy import select, update, func
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/security.py :14 from sqlalchemy import select, update, and_, func
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/sharing.py :10 from sqlalchemy import select, insert, update, delete, and_, func
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_settings/tts.py :17 from sqlalchemy import select, update, func, and_
  • db Abilityai-trinity-e38c1c0/src/backend/db/agent_shared_files.py :28 from sqlalchemy import select, insert, update, delete, func, or_, and_
  • db Abilityai-trinity-e38c1c0/src/backend/db/agents.py :18 from sqlalchemy import select, insert, update, delete, func, and_, or_
  • db Abilityai-trinity-e38c1c0/src/backend/db/alembic_runner.py :27 from sqlalchemy import inspect, text
  • db Abilityai-trinity-e38c1c0/src/backend/db/audit.py :20 from sqlalchemy import select, insert, func, and_, text
  • db Abilityai-trinity-e38c1c0/src/backend/db/backup_primitives.py :44 import sqlite3
  • db Abilityai-trinity-e38c1c0/src/backend/db/canary.py :19 from sqlalchemy import select, insert, func, and_
  • db Abilityai-trinity-e38c1c0/src/backend/db/canvas.py :20 from sqlalchemy import and_, delete, func, insert, select, update
  • db Abilityai-trinity-e38c1c0/src/backend/db/canvas_shares.py :24 from sqlalchemy import and_, select, update
  • db Abilityai-trinity-e38c1c0/src/backend/db/chat.py :16 from sqlalchemy import select, insert, update, delete, and_
  • db Abilityai-trinity-e38c1c0/src/backend/db/compatibility.py :24 from sqlalchemy import select, insert, update, func, and_
  • db Abilityai-trinity-e38c1c0/src/backend/db/connection.py :8 import sqlite3
  • db Abilityai-trinity-e38c1c0/src/backend/db/connector.py :19 from sqlalchemy import select, insert, update, delete
  • db Abilityai-trinity-e38c1c0/src/backend/db/dashboard_history.py :15 from sqlalchemy import select, insert, delete
  • db Abilityai-trinity-e38c1c0/src/backend/db/email_auth.py :20 from sqlalchemy import select, insert, update, delete, func, and_, cast, Text
  • db Abilityai-trinity-e38c1c0/src/backend/db/engine.py :23 from sqlalchemy import create_engine

237 more not shown — this panel samples each group; the count above is the real total.

tool registrations 2

  • ask_trinity Abilityai-trinity-e38c1c0/src/helper-mcp/src/server.ts :19
  • get_agent_requirements Abilityai-trinity-e38c1c0/src/helper-mcp/src/server.ts :53

declared dependencies 13

  • APScheduler@==3.11.0
  • croniter@>=2.0.1
  • httpx@>=0.27.0
  • aiohttp@>=3.9.0
  • redis@>=5.0.0
  • pytz@>=2024.1
  • tzdata@>=2024.1
  • psycopg2-binary@>=2.9.0
  • pytest@>=8.0.0
  • pytest-asyncio@>=0.23.0
  • pytest-cov@>=4.1.0
  • pytest-mock@>=3.12.0
show 1 more
  • typing-extensions@>=4.9.0

perm:untrusted 1

  • untrusted (weak) Abilityai-trinity-e38c1c0/docs/archive/testing/run_integration_test.py :117 agents = requests.get(f"{BASE_URL}/api/agents", headers=headers).json()

transport_posture 7

  • network-listening, binds all interfaces, no auth detected Abilityai-trinity-e38c1c0/docker/base-image/agent_server/main.py :151 host="0.0.0.0",
  • binds all interfaces (0.0.0.0) Abilityai-trinity-e38c1c0/src/backend/main.py :1860 uvicorn.run(app, host="0.0.0.0", port=8000)
  • punycode (IDN homograph) host in endpoint Abilityai-trinity-e38c1c0/tests/unit/test_2691_public_url_reachability.py :126 ask = _load_ask_gate("https://xn--mnchen-3ya.example.com")
  • punycode (IDN homograph) host in endpoint Abilityai-trinity-e38c1c0/tests/unit/test_736_a2a_outbound_transport.py :754 "https://xn--e1afmkfd.com/a2a", "https://пример.com/a2a"
  • punycode (IDN homograph) host in endpoint Abilityai-trinity-e38c1c0/tests/unit/test_ent127_setup_url.py :49 got = describe_setup_url("https://xn--pple-43d.com/")
  • punycode (IDN homograph) host in endpoint Abilityai-trinity-e38c1c0/tests/unit/test_ent399_ipv6_origin.py :162 "https://xn--bcher-kva.example.com/a2a") is True
  • punycode (IDN homograph) host in endpoint Abilityai-trinity-e38c1c0/tests/unit/test_whatsapp_adapter.py :205 assert not _is_twilio_media_url("https://xn--mms-twiliocdn.com/x")