Self-hosted AI Agents Platform supporting Claude Code, Codex, Gemini agents. Apache 2.0.
- capability exposure inferred + 35
- tool safety inferred + 12
- trust mitigators mixed − 3
inferred mixed
The A–E grade is our heuristic synthesis — a "review this" prompt, not a verdict. Each factor is tagged by what backs it: attested (a verifiable record), reported (a third party's claim), or inferred (our own heuristic, e.g. permissions). See methodology.
grade last moved 1w ago · see ecosystem CVEs →
No known CVEs for this server.
- high dangerous code
committed secret: Slack token, Google API key, Anthropic key, GitHub fine-grained PAT, GitHub token, OpenAI key, Slack app token · dynamic exec: eval()/exec(), __import__ sink, __…
analyzed commit e38c1c0 · analyzer v33 · 4h ago
skills & prompt files 69
- agent-rules Abilityai-trinity-e38c1c0/AGENTS.md
- agent-rules Abilityai-trinity-e38c1c0/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-bizmodel/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-captable/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-competitor/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-compliance/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-founder/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-intake/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-lead/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-legal/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-market/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-tech/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/dd-traction/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/default/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/demo-analyst/.claude/commands/ask.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/demo-analyst/.claude/commands/briefing.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/demo-analyst/.claude/commands/opportunities.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/demo-analyst/.claude/commands/request-research.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/demo-analyst/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/demo-researcher/.claude/commands/research.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/demo-researcher/.claude/commands/status.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/demo-researcher/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/sage/.claude/commands/analyze.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/sage/.claude/commands/briefing.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/sage/.claude/commands/framework.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/sage/.claude/commands/recommend.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/sage/.claude/commands/request-research.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/sage/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scout/.claude/commands/competitors.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scout/.claude/commands/opportunities.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scout/.claude/commands/research.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scout/.claude/commands/status.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scout/.claude/commands/trends.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scout/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scribe/.claude/commands/deliverable.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scribe/.claude/commands/proposal.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scribe/.claude/commands/report.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scribe/.claude/commands/status.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scribe/.claude/commands/summary.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/scribe/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/sleep-echo/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/test-codex/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/test-counter/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/test-delegator/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/test-echo/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/test-gemini/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/test-leak-hook/CLAUDE.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/compatibility-audit.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/costs.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/executions/list.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/executions/status.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/health.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/restart-all.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/restart.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/schedules.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/schedules/list.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/schedules/pause.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/schedules/resume.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/service-check.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/status.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/stop.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/.claude/commands/ops/update-dashboard.md
- agent-rules Abilityai-trinity-e38c1c0/config/agent-templates/trinity-system/CLAUDE.md
- skill Abilityai-trinity-e38c1c0/docs/demos/vc-due-diligence/skills/dd-report-format/SKILL.md
- skill Abilityai-trinity-e38c1c0/docs/demos/vc-due-diligence/skills/dd-risk-scoring/SKILL.md
- skill Abilityai-trinity-e38c1c0/docs/demos/vc-due-diligence/skills/dd-sourcing/SKILL.md
- skill Abilityai-trinity-e38c1c0/docs/demos/vc-due-diligence/skills/dd-synthesis/SKILL.md
- skill Abilityai-trinity-e38c1c0/docs/demos/vc-due-diligence/skills/dd-verification/SKILL.md
- agent-rules Abilityai-trinity-e38c1c0/docs/user-docs/faq/agents.md
danger signals56
- dynamic code execution eval()/exec() Abilityai-trinity-e38c1c0/tests/test_rate_limits.py :77
exec(func_source, ns) - dynamic code execution eval()/exec() Abilityai-trinity-e38c1c0/tests/unit/test_1068_task_timeout_demotion.py :51
exec(compile(module, filename=str(_CHAT_SRC), mode="exec"), ns) # noqa: S102 - dynamic code execution eval()/exec() Abilityai-trinity-e38c1c0/tests/unit/test_1810_1814_version_truth.py :53
exec(snippet, ns) - dynamic code execution __import__ sink Abilityai-trinity-e38c1c0/tests/unit/test_2247_calendar_rot_detector.py :66
"PATH": __import__("os").environ.get("PATH", ""), - dynamic code execution __import__() Abilityai-trinity-e38c1c0/tests/unit/test_2323_machine_identities.py :96
mod = __import__(module_name, fromlist=["router"]) - dynamic code execution eval()/exec() Abilityai-trinity-e38c1c0/tests/unit/test_2380_install_provenance.py :1180
exec(snippet, ns) - dynamic code execution eval()/exec() Abilityai-trinity-e38c1c0/tests/unit/test_2380_provision_single_source.py :322
exec(snippet, ns) - dynamic code execution eval()/exec() Abilityai-trinity-e38c1c0/tests/unit/test_2691_public_url_reachability.py :73
exec(_slice(src, "_ASK_HOSTS = "), ns) - dynamic code execution eval()/exec() Abilityai-trinity-e38c1c0/tests/unit/test_926_version_endpoint.py :47
exec(snippet, ns) - dynamic code execution eval()/exec() Abilityai-trinity-e38c1c0/tests/unit/test_guardrails.py :132
exec(snippet, ns) - dynamic code execution eval()/exec() Abilityai-trinity-e38c1c0/tests/unit/test_session_inflight_sentinel.py :321
exec(compile(ast.Module(body=[fn], type_ignores=[]), "<ast>", "exec"), ns) - suspicious endpoint api.telegram.org Abilityai-trinity-e38c1c0/src/backend/adapters/telegram_adapter.py :35
TELEGRAM_API_BASE = "https://api.telegram.org" - suspicious endpoint api.telegram.org Abilityai-trinity-e38c1c0/src/backend/adapters/transports/telegram_webhook.py :151
url = f"https://api.telegram.org/bot{bot_token}/setWebhook" - suspicious endpoint t.me Abilityai-trinity-e38c1c0/src/backend/routers/telegram.py :121
bot_link=f"https://t.me/{bot_username}" if bot_username else None, - suspicious endpoint api.telegram.org Abilityai-trinity-e38c1c0/src/backend/routers/telegram.py :188
resp = await client.get(f"https://api.telegram.org/bot{bot_token}/getMe") - suspicious endpoint api.telegram.org Abilityai-trinity-e38c1c0/src/backend/services/telegram_media.py :25
TELEGRAM_API_BASE = "https://api.telegram.org" - suspicious endpoint 169.254.169.254 (cloud metadata) Abilityai-trinity-e38c1c0/tests/test_mcp_validator_endpoint.py :159
{"e": {"type": "http", "url": "https://169.254.169.254/"}}, - suspicious endpoint 169.254.169.254 (cloud metadata) Abilityai-trinity-e38c1c0/tests/unit/test_1951_slack_inbound_media.py :166
"https://169.254.169.254/latest/meta-data/", # cloud metadata - suspicious endpoint 1.2.3.4 Abilityai-trinity-e38c1c0/tests/unit/test_2380_install_provenance.py :726
"https://1.2.3.4", - suspicious endpoint 1.2.3.4 Abilityai-trinity-e38c1c0/tests/unit/test_736_a2a_outbound_edges.py :711
client, "GET", "https://1.2.3.4/x", - suspicious endpoint 169.254.169.254 (cloud metadata) Abilityai-trinity-e38c1c0/tests/unit/test_736_a2a_outbound_transport.py :369
return httpx.Response(307, headers={"location": "http://169.254.169.254/"}) - suspicious endpoint 93.184.216.34 Abilityai-trinity-e38c1c0/tests/unit/test_736_a2a_outbound_transport.py :662
assert pinned == "https://93.184.216.34/a2a" - suspicious endpoint 169.254.169.254 (cloud metadata) Abilityai-trinity-e38c1c0/tests/unit/test_ent14_catalog_failopen.py :283
"redirect": lambda r: httpx.Response(302, headers={"location": "http://169.254.169.254/"}), - suspicious endpoint 169.254.169.254 (cloud metadata) Abilityai-trinity-e38c1c0/tests/unit/test_ent14_registry_fetch.py :387
return httpx.Response(status_code, headers={"location": "http://169.254.169.254/"}) - suspicious endpoint 169.254.169.254 (cloud metadata) Abilityai-trinity-e38c1c0/tests/unit/test_ent346_skills_source_injection.py :147
"http://169.254.169.254/latest/meta-data", # SSRF classic - suspicious endpoint 93.184.216.34 Abilityai-trinity-e38c1c0/tests/unit/test_ent399_ipv6_origin.py :113
("https://93.184.216.34/a2a", "https://[::ffff:93.184.216.34]/a2a", - suspicious endpoint 93.184.216.034 Abilityai-trinity-e38c1c0/tests/unit/test_ent399_ipv6_origin.py :129
assert same_origin("https://93.184.216.034/a2a", "https://93.184.216.34/a2a") is False - suspicious endpoint 169.254.169.254 (cloud metadata) Abilityai-trinity-e38c1c0/tests/unit/test_mcp_validator.py :529
cfg = _wrap({"r": {"type": "http", "url": "https://169.254.169.254/latest/meta-data/"}}) - suspicious endpoint 169.254.169.254 (cloud metadata) Abilityai-trinity-e38c1c0/tests/unit/test_ssrf_skills_library.py :100
validate_skills_library_url("https://169.254.169.254/latest/meta-data/") - over-broad OAuth scope https://www.googleapis.com/auth/drive Abilityai-trinity-e38c1c0/src/backend/routers/credentials.py :271
"google": "openid email profile https://www.googleapis.com/auth/drive", - committed secret Slack token Abilityai-trinity-e38c1c0/docs/testing/phases/PHASE_24_CREDENTIAL_MANAGEMENT.md :173
xoxb-s…(21 chars, redacted) - committed secret Google API key Abilityai-trinity-e38c1c0/src/frontend/tests/unit/reportSummary.spec.js :130
AIzaSy…(39 chars, redacted) - committed secret Anthropic key Abilityai-trinity-e38c1c0/tests/test_settings.py :542
sk-ant…(41 chars, redacted) - committed secret GitHub fine-grained PAT Abilityai-trinity-e38c1c0/tests/test_settings.py :826
github…(34 chars, redacted) - committed secret Anthropic key Abilityai-trinity-e38c1c0/tests/test_subscription_auto_switch.py :25
sk-ant…(36 chars, redacted) - committed secret Anthropic key Abilityai-trinity-e38c1c0/tests/test_subscription_usage.py :22
sk-ant…(39 chars, redacted) - committed secret Anthropic key Abilityai-trinity-e38c1c0/tests/test_subscriptions.py :32
sk-ant…(36 chars, redacted) - committed secret Anthropic key Abilityai-trinity-e38c1c0/tests/unit/test_1816_system_agent_adoption.py :1328
sk-ant…(45 chars, redacted) - committed secret Anthropic key Abilityai-trinity-e38c1c0/tests/unit/test_1853_error_telemetry_salvage.py :66
sk-ant…(39 chars, redacted) - committed secret GitHub fine-grained PAT Abilityai-trinity-e38c1c0/tests/unit/test_2007_mcp_template_render.py :396
github…(43 chars, redacted) - committed secret Slack token Abilityai-trinity-e38c1c0/tests/unit/test_267_credential_key_rotation.py :36
xoxb-s…(17 chars, redacted) - committed secret GitHub token Abilityai-trinity-e38c1c0/tests/unit/test_2744_skills_adoption_alert_idempotency.py :78
ghp_AA…(40 chars, redacted) - committed secret Anthropic key Abilityai-trinity-e38c1c0/tests/unit/test_credential_sanitizer_agent.py :57
sk-ant…(43 chars, redacted) - committed secret GitHub fine-grained PAT Abilityai-trinity-e38c1c0/tests/unit/test_credential_sanitizer_agent.py :71
github…(57 chars, redacted) - committed secret GitHub token Abilityai-trinity-e38c1c0/tests/unit/test_credential_sanitizer_agent.py :271
ghp_98…(44 chars, redacted) - committed secret OpenAI key Abilityai-trinity-e38c1c0/tests/unit/test_credential_sanitizer_agent.py :282
sk-222…(33 chars, redacted) - committed secret Anthropic key Abilityai-trinity-e38c1c0/tests/unit/test_credential_sanitizer_backend.py :65
sk-ant…(43 chars, redacted) - committed secret GitHub fine-grained PAT Abilityai-trinity-e38c1c0/tests/unit/test_credential_sanitizer_backend.py :79
github…(57 chars, redacted) - committed secret GitHub token Abilityai-trinity-e38c1c0/tests/unit/test_credential_sanitizer_backend.py :279
ghp_98…(44 chars, redacted) - committed secret OpenAI key Abilityai-trinity-e38c1c0/tests/unit/test_credential_sanitizer_backend.py :290
sk-222…(33 chars, redacted) - committed secret GitHub token Abilityai-trinity-e38c1c0/tests/unit/test_ent125_resilient_system_deploy.py :335
ghp_01…(42 chars, redacted) - committed secret Slack app token Abilityai-trinity-e38c1c0/tests/unit/test_ent435_secret_settings.py :378
xapp-1…(19 chars, redacted) - committed secret Anthropic key Abilityai-trinity-e38c1c0/tests/unit/test_ent457_portal_completion_report.py :274
sk-ant…(37 chars, redacted) - committed secret Anthropic key Abilityai-trinity-e38c1c0/tests/unit/test_error_classifier_dict_body.py :116
sk-ant…(76 chars, redacted) - committed secret Slack token Abilityai-trinity-e38c1c0/tests/unit/test_slack_token_encryption.py :120
xoxb-2…(30 chars, redacted) - committed secret Slack token Abilityai-trinity-e38c1c0/tests/unit/test_slack_workspaces_encryption.py :118
xoxb-a…(23 chars, redacted)
Heuristic, inferred signals — false positives (legitimately powerful tools, forks, language ports) are expected. Treat each as "review this", not a verdict. See the ecosystem-wide picture on the security hub, or the fleet security of Abilityai.