Self-hosted AI platform for companies: connect any provider and model, run and govern agents, track token spend, and ground every answer in your own knowledge. Postgres-only, no external calls.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http counts 1 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
search_knowledge
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 974bb46 · analyzer v33 · 2w ago
skills & prompt files 1
- agent-rules maestrokj-Achilles-974bb46/CLAUDE.md
danger signals4
- suspicious endpoint api.telegram.org maestrokj-Achilles-974bb46/backend/src/achilles/telegram/constants.py :6
TELEGRAM_API_BASE_URL = "https://api.telegram.org" - suspicious endpoint 8.8.8.8 maestrokj-Achilles-974bb46/backend/tests/telegram/test_service.py :15
("https://8.8.8.8", True), # a public literal IP - committed secret Slack token maestrokj-Achilles-974bb46/backend/tests/slack/test_admin_settings.py :81
xoxb-s…(22 chars, redacted) - committed secret Slack token maestrokj-Achilles-974bb46/frontend/src/features/admin/platform/__tests__/SlackCard.test.tsx :49
xoxb-n…(19 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 811
filesystem 21
- fs maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/tokenizer.py :16
from pathlib import Path - fs maestrokj-Achilles-974bb46/backend/src/achilles/auth/security/passwords.py :87
"""HIBP k-anonymity check; unavailable → fail open (length+zxcvbn still apply).""" - fs maestrokj-Achilles-974bb46/backend/src/achilles/config.py :2
from pathlib import Path - fs maestrokj-Achilles-974bb46/backend/src/achilles/harvester/pipeline/runner.py :67
dlq_keys: set[tuple[str, str]] = field(default_factory=set) # open (type, native id) - fs maestrokj-Achilles-974bb46/backend/src/achilles/knowledge_store/jobs.py :13
from pathlib import Path - fs maestrokj-Achilles-974bb46/backend/src/achilles/knowledge_store/services/backup_storage.py :9
import shutil - fs maestrokj-Achilles-974bb46/backend/src/achilles/knowledge_store/services/backups.py :10
from pathlib import Path - fs (weak) maestrokj-Achilles-974bb46/backend/tests/admin/integration/test_maintenance.py :33
# Login stays open (someone must be able to reach the client at all)… - fs (weak) maestrokj-Achilles-974bb46/backend/tests/ai_foundation/integration/test_tokenizer_seam.py :8
from pathlib import Path - fs (weak) maestrokj-Achilles-974bb46/backend/tests/conftest.py :23
from pathlib import Path # noqa: E402 - fs (weak) maestrokj-Achilles-974bb46/backend/tests/knowledge_store/api/test_api_admin_ops.py :3
from pathlib import Path - fs (weak) maestrokj-Achilles-974bb46/backend/tests/knowledge_store/conftest.py :8
from pathlib import Path
show 9 more
- fs (weak) maestrokj-Achilles-974bb46/backend/tests/knowledge_store/integration/test_backup_restore.py :8
import shutil - fs (weak) maestrokj-Achilles-974bb46/backend/tests/knowledge_store/integration/test_backup_s3.py :9
from pathlib import Path - fs (weak) maestrokj-Achilles-974bb46/backend/tests/knowledge_store/integration/test_jobs.py :8
import shutil - fs (weak) maestrokj-Achilles-974bb46/backend/tests/query_engine/integration/test_cache_gate.py :1
"""Exact RAG cache: per-identity keys, normalization, fail-open (P1).""" - fs (weak) maestrokj-Achilles-974bb46/docs/_tools/docs_seo.py :39
from pathlib import Path - fs (weak) maestrokj-Achilles-974bb46/docs/architecture/_tools/docs_map.py :53
from pathlib import Path - fs (weak) maestrokj-Achilles-974bb46/docs/ru/architecture/_tools/docs_map.py :53
from pathlib import Path - fs maestrokj-Achilles-974bb46/embeddings/app/manager.py :17
from pathlib import Path - fs maestrokj-Achilles-974bb46/embeddings/app/memory.py :14
from pathlib import Path
network 127
- net maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/discovery.py :11
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/embeddings_client.py :14
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/tokenizer.py :18
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/tools/fetch_url.py :11
import socket - net maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/tools/web_search.py :10
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/api/csrf.py :9
from urllib.parse import urlsplit - net maestrokj-Achilles-974bb46/backend/src/achilles/auth/security/passwords.py :13
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/harvester/connectors/gitlab.py :14
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/harvester/connectors/http.py :18
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/harvester/pipeline/throttle.py :22
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/knowledge_store/services/backup_storage.py :15
from urllib.parse import unquote, urlparse - net maestrokj-Achilles-974bb46/backend/src/achilles/mattermost/client.py :8
import httpx
show 28 more
- net maestrokj-Achilles-974bb46/backend/src/achilles/mattermost/jobs.py :14
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/mattermost/listener.py :25
from urllib.parse import urlsplit, urlunsplit - net maestrokj-Achilles-974bb46/backend/src/achilles/mattermost/schemas.py :10
from urllib.parse import urlparse - net maestrokj-Achilles-974bb46/backend/src/achilles/mattermost/service.py :8
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/notifications/webhooks.py :14
from urllib.parse import urlsplit - net maestrokj-Achilles-974bb46/backend/src/achilles/slack/client.py :9
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/slack/jobs.py :12
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/slack/service.py :5
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/telegram/client.py :8
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/telegram/jobs.py :13
import httpx - net maestrokj-Achilles-974bb46/backend/src/achilles/telegram/service.py :8
from urllib.parse import urlparse - net (weak) maestrokj-Achilles-974bb46/backend/tests/admin/integration/test_admin_access.py :4
from httpx import AsyncClient - net (weak) maestrokj-Achilles-974bb46/backend/tests/admin/integration/test_dashboard.py :7
from httpx import AsyncClient - net (weak) maestrokj-Achilles-974bb46/backend/tests/admin/integration/test_maintenance.py :4
from httpx import AsyncClient - net (weak) maestrokj-Achilles-974bb46/backend/tests/admin/integration/test_platform_settings.py :5
from httpx import AsyncClient - net (weak) maestrokj-Achilles-974bb46/backend/tests/agent_engine/api/test_api_access.py :4
from httpx import AsyncClient - net (weak) maestrokj-Achilles-974bb46/backend/tests/agent_engine/api/test_api_admin.py :5
from httpx import AsyncClient - net (weak) maestrokj-Achilles-974bb46/backend/tests/agent_engine/api/test_api_agents.py :5
from httpx import AsyncClient - net (weak) maestrokj-Achilles-974bb46/backend/tests/agent_engine/integration/test_run_agent.py :8
from httpx import Response - net (weak) maestrokj-Achilles-974bb46/backend/tests/ai_foundation/api/test_api_discovery.py :5
from httpx import AsyncClient, ConnectError, Response - net (weak) maestrokj-Achilles-974bb46/backend/tests/ai_foundation/api/test_api_registry.py :5
from httpx import AsyncClient - net (weak) maestrokj-Achilles-974bb46/backend/tests/ai_foundation/api/test_api_tools.py :3
import httpx - net (weak) maestrokj-Achilles-974bb46/backend/tests/ai_foundation/api/test_assignment_dim_guard.py :4
from httpx import AsyncClient - net (weak) maestrokj-Achilles-974bb46/backend/tests/ai_foundation/api/test_assignment_size_guard.py :9
import httpx - net (weak) maestrokj-Achilles-974bb46/backend/tests/ai_foundation/api/test_assignment_warmup.py :5
import httpx - net (weak) maestrokj-Achilles-974bb46/backend/tests/ai_foundation/api/test_prompt_settings.py :4
from httpx import AsyncClient - net (weak) maestrokj-Achilles-974bb46/backend/tests/ai_foundation/conftest.py :11
from httpx import Response - net (weak) maestrokj-Achilles-974bb46/backend/tests/ai_foundation/integration/test_token_usage.py :8
from httpx import AsyncClient
87 more not shown — this panel samples each group; the count above is the real total.
database 262
- db maestrokj-Achilles-974bb46/backend/alembic/env.py :9
from sqlalchemy import Connection, pool - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260702_120000-auth_security_schema.py :12
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260702_140000-knowledge_store_schema.py :17
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260703_120000-ai_foundation_schema.py :17
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260704_120000-knowledge_vectors.py :15
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260705_120000-query_engine_schema.py :15
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260706_120000-harvester_schema.py :17
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260707_120000-agent_engine_schema.py :18
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260708_120000-slack_settings.py :12
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260709_120000-smtp_settings.py :12
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260710_120000-notifications_schema.py :16
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260711_120000-telegram_settings.py :14
import sqlalchemy as sa
show 28 more
- db maestrokj-Achilles-974bb46/backend/alembic/versions/20260712_120000-mattermost_settings.py :14
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/alembic/versions/20260713_120000-user_last_chat_model.py :14
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/admin/dashboard.py :14
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/admin/maintenance.py :13
from redis.asyncio import Redis - db maestrokj-Achilles-974bb46/backend/src/achilles/admin/service.py :3
from redis.asyncio import Redis - db maestrokj-Achilles-974bb46/backend/src/achilles/agent_engine/jobs.py :13
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/agent_engine/models.py :12
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/agent_engine/router.py :12
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/agent_engine/runs.py :11
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/agent_engine/runtime/prompt.py :9
from sqlalchemy.ext.asyncio import AsyncSession - db maestrokj-Achilles-974bb46/backend/src/achilles/agent_engine/runtime/tools.py :14
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/agent_engine/scheduler/tick.py :13
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/agent_engine/service.py :14
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/models.py :15
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/embeddings_client.py :15
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/prompt.py :14
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/registry.py :10
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/tokenizer.py :19
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/tools_admin.py :12
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/usage.py :18
from sqlalchemy.dialects.postgresql import insert as pg_insert - db maestrokj-Achilles-974bb46/backend/src/achilles/ai_foundation/services/usage_read.py :18
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/api/health.py :8
from redis.asyncio import Redis - db maestrokj-Achilles-974bb46/backend/src/achilles/api/pagination.py :15
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/api/problems.py :13
import asyncpg - db maestrokj-Achilles-974bb46/backend/src/achilles/api/rate_limit.py :10
from redis.asyncio import Redis - db maestrokj-Achilles-974bb46/backend/src/achilles/auth/dependencies.py :14
from sqlalchemy.ext.asyncio import AsyncSession - db maestrokj-Achilles-974bb46/backend/src/achilles/auth/models.py :11
import sqlalchemy as sa - db maestrokj-Achilles-974bb46/backend/src/achilles/auth/routes/admin_users.py :12
import sqlalchemy as sa
222 more not shown — this panel samples each group; the count above is the real total.
tool registrations 1
- search_knowledge maestrokj-Achilles-974bb46/backend/src/achilles/mcp/server.py :45
declared dependencies 19
- fastapi@>=0.115
- uvicorn@>=0.30
- pydantic-settings@>=2.4
- sqlalchemy@>=2.0.20
- s@transitive dep
- websockets@>=14
- pytest@>=8.0
- pytest-asyncio@>=0.24
- pytest-cov@>=6.0
- pytest-xdist@>=3.6
- httpx@>=0.27
- asgi-lifespan@>=2.1
show 7 more
- testcontainers@>=4.9
- time-machine@>=2.16
- respx@>=0.22
- schemathesis@>=3.39
- ruff@>=0.8
- pyright@>=1.1
- pre-commit@>=4.0