An AI guardian that remembers, watches, and acts.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http counts 1 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
http_request
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit bfdf8a3 · analyzer v33 · 6d ago
skills & prompt files 8
- skill seraph-quest-seraph-bfdf8a3/.codex/skills/commit/SKILL.md
- skill seraph-quest-seraph-bfdf8a3/.codex/skills/land/SKILL.md
- skill seraph-quest-seraph-bfdf8a3/.codex/skills/pull/SKILL.md
- skill seraph-quest-seraph-bfdf8a3/.codex/skills/push/SKILL.md
- agent-rules seraph-quest-seraph-bfdf8a3/AGENTS.md
- agent-rules seraph-quest-seraph-bfdf8a3/CLAUDE.md
- prompt-file seraph-quest-seraph-bfdf8a3/backend/src/defaults/catalog-extensions/hermes-multimodal-review/prompts/vision-triage.md
- prompt-file seraph-quest-seraph-bfdf8a3/backend/src/defaults/catalog-extensions/hermes-speech-ops/prompts/voice-relay.md
danger signals5
- suspicious endpoint 8.8.8.8 seraph-quest-seraph-bfdf8a3/backend/tests/test_http_mcp_server.py :60
assert _is_internal_url("http://8.8.8.8/dns") is False - suspicious endpoint 8.8.8.8 seraph-quest-seraph-bfdf8a3/backend/tests/test_llm_runtime.py :1890
"https://8.8.8.8/v1", - suspicious endpoint 169.254.169.254 (cloud metadata) seraph-quest-seraph-bfdf8a3/backend/tests/test_mcp_api.py :367
"url": "http://169.254.169.254/latest/meta-data", - suspicious endpoint 169.254.169.254 (cloud metadata) seraph-quest-seraph-bfdf8a3/backend/tests/test_mcp_manager.py :275
mgr.update_server("gh", url="http://169.254.169.254/latest/meta-data") - committed secret OpenAI key seraph-quest-seraph-bfdf8a3/backend/tests/test_screenshot_analysis_contract.py :116
sk-sup…(24 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 743
filesystem 154
- fs seraph-quest-seraph-bfdf8a3/backend/config/settings.py :1
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/production_preflight.py :23
from pathlib import Path - fs (weak) seraph-quest-seraph-bfdf8a3/backend/scripts/backend_test_shards.py :7
from pathlib import Path - fs (weak) seraph-quest-seraph-bfdf8a3/backend/scripts/run_backend_test_shard.py :9
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/api/capabilities.py :2110
with open(draft_path, "w", encoding="utf-8") as handle: - fs seraph-quest-seraph-bfdf8a3/backend/src/api/catalog.py :9
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/api/evolution.py :9
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/api/extensions.py :10
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/api/observer.py :8
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/api/settings.py :9
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/api/skills.py :128
with open(skill.file_path, "r", encoding="utf-8") as handle: - fs seraph-quest-seraph-bfdf8a3/backend/src/api/workflows.py :4031
with open(workflow.file_path, "r", encoding="utf-8") as handle:
show 28 more
- fs seraph-quest-seraph-bfdf8a3/backend/src/app.py :422
import shutil - fs seraph-quest-seraph-bfdf8a3/backend/src/artifacts/registry.py :6
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/browser/sessions.py :9
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/cockpit/dense_operator_recovery.py :14
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/cockpit/post_dp_operator_debugging_recovery.py :17
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/evals/final_parity_audit.py :11
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/evals/harness.py :10
import shutil - fs seraph-quest-seraph-bfdf8a3/backend/src/evolution/benchmark.py :7
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/evolution/engine.py :12
from pathlib import Path, PureWindowsPath - fs seraph-quest-seraph-bfdf8a3/backend/src/evolution/runtime.py :18
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/browser_providers.py :6
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/capability_contributions.py :6
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/capability_execution.py :31
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/capability_pack.py :26
from pathlib import Path, PurePosixPath - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/channels.py :6
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/connectors.py :6
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/doctor.py :6
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/governance.py :6
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/layout.py :6
from pathlib import Path, PurePosixPath - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/lifecycle.py :10
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/manifest.py :6
from pathlib import Path, PurePosixPath - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/observers.py :6
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/post_dp_browser_computer_use_reliability.py :17
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/post_dp_marketplace_lifecycle_gap_closure.py :17
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/registry.py :9
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/safe_browser_computer_use.py :15
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/scaffold.py :8
from pathlib import Path - fs seraph-quest-seraph-bfdf8a3/backend/src/extensions/state.py :183
with open(path, "r", encoding="utf-8") as handle:
114 more not shown — this panel samples each group; the count above is the real total.
shell / exec 21
- shell (weak) seraph-quest-seraph-bfdf8a3/backend/scripts/run_backend_test_shard.py :6
import subprocess - shell seraph-quest-seraph-bfdf8a3/backend/src/cockpit/post_dp_operator_debugging_recovery.py :13
import subprocess - shell seraph-quest-seraph-bfdf8a3/backend/src/extensions/post_dp_browser_computer_use_reliability.py :16
import subprocess - shell seraph-quest-seraph-bfdf8a3/backend/src/extensions/post_dp_marketplace_lifecycle_gap_closure.py :15
import subprocess - shell seraph-quest-seraph-bfdf8a3/backend/src/guardian/audio_worker.py :33
import subprocess - shell seraph-quest-seraph-bfdf8a3/backend/src/guardian/post_dp_guardian_memory_gap_closure.py :16
import subprocess - shell seraph-quest-seraph-bfdf8a3/backend/src/tools/process_tools.py :12
import subprocess - shell seraph-quest-seraph-bfdf8a3/backend/src/tools/shell_tool.py :22
For bash commands, wrap them in subprocess.run(). - shell (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_conversation_identity_outbox.py :8
import subprocess - shell (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_docs_contract.py :3
import subprocess - shell (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_durable_workflow_remediation.py :15
import subprocess - shell (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_native_swe_operator_journey.py :433
"""import subprocess
show 9 more
- shell (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_process_tools.py :163
process_tools_module.subprocess.run( - shell (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_production_topology.py :8
import subprocess - shell (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_run_backend_test_shard.py :3
from subprocess import CompletedProcess, TimeoutExpired - shell (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_strategy_claims.py :3
import subprocess - shell (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_workspace_production.py :7
import subprocess - shell seraph-quest-seraph-bfdf8a3/daemon/ocr/screenshot.py :8
import subprocess - shell seraph-quest-seraph-bfdf8a3/daemon/seraph_daemon.py :28
import subprocess - shell (weak) seraph-quest-seraph-bfdf8a3/daemon/tests/test_screenshot.py :6
import subprocess - shell (weak) seraph-quest-seraph-bfdf8a3/scripts/epic_736_health.py :27
import subprocess
network 68
- net seraph-quest-seraph-bfdf8a3/backend/production_preflight.py :25
from urllib.parse import urlsplit - net seraph-quest-seraph-bfdf8a3/backend/src/api/mcp.py :6
from urllib.parse import urlparse - net seraph-quest-seraph-bfdf8a3/backend/src/api/model_fabric_settings.py :15
import httpx - net seraph-quest-seraph-bfdf8a3/backend/src/app.py :4
from urllib.parse import urlparse, urlsplit, urlunsplit - net seraph-quest-seraph-bfdf8a3/backend/src/auth/middleware.py :6
from urllib.parse import urlsplit - net seraph-quest-seraph-bfdf8a3/backend/src/browser/sessions.py :11
from urllib.parse import urlsplit, urlunsplit - net seraph-quest-seraph-bfdf8a3/backend/src/evals/harness.py :11
import socket - net seraph-quest-seraph-bfdf8a3/backend/src/extensions/capability_execution.py :33
from urllib.parse import urlsplit, urlunsplit - net seraph-quest-seraph-bfdf8a3/backend/src/extensions/capability_pack.py :34
from urllib.parse import urlparse - net seraph-quest-seraph-bfdf8a3/backend/src/extensions/lifecycle.py :15
from urllib.parse import urlparse - net seraph-quest-seraph-bfdf8a3/backend/src/extensions/source_operations.py :8
from urllib.parse import urlparse - net seraph-quest-seraph-bfdf8a3/backend/src/llm_runtime.py :21
from urllib.parse import urlparse, urlsplit, urlunsplit
show 28 more
- net seraph-quest-seraph-bfdf8a3/backend/src/local_runtime_profile_verifier.py :13
import httpx - net seraph-quest-seraph-bfdf8a3/backend/src/memory/embedder.py :18
import httpx - net seraph-quest-seraph-bfdf8a3/backend/src/model_fabric/configuration.py :12
from urllib.parse import urlsplit - net seraph-quest-seraph-bfdf8a3/backend/src/model_fabric/contracts.py :10
from urllib.parse import urlsplit, urlunsplit - net seraph-quest-seraph-bfdf8a3/backend/src/model_fabric/receipts.py :10
from urllib.parse import urlsplit, urlunsplit - net seraph-quest-seraph-bfdf8a3/backend/src/model_fabric/selector.py :10
from urllib.parse import urlparse - net seraph-quest-seraph-bfdf8a3/backend/src/observer/screenshot_semantic_analysis.py :14
import httpx - net seraph-quest-seraph-bfdf8a3/backend/src/scheduler/jobs/end_of_day_goal_report.py :20
import httpx - net seraph-quest-seraph-bfdf8a3/backend/src/security/authority_envelope.py :27
from urllib.parse import unquote, urlsplit - net seraph-quest-seraph-bfdf8a3/backend/src/security/site_policy.py :6
import socket - net seraph-quest-seraph-bfdf8a3/backend/src/tools/browser_tool.py :6
from urllib.parse import urlparse, urlunparse - net seraph-quest-seraph-bfdf8a3/backend/src/tools/mcp_manager.py :18
from urllib.parse import urlparse - net seraph-quest-seraph-bfdf8a3/backend/src/tools/process_tools.py :159
"import socket", - net seraph-quest-seraph-bfdf8a3/backend/src/tools/secret_ref_tools.py :5
from urllib.parse import urlparse - net seraph-quest-seraph-bfdf8a3/backend/src/tools/shell_tool.py :5
import httpx - net seraph-quest-seraph-bfdf8a3/backend/src/vlm_runtime.py :5
from urllib.parse import urlparse - net seraph-quest-seraph-bfdf8a3/backend/src/workflows/native_software_engineering.py :142
"import socket", - net seraph-quest-seraph-bfdf8a3/backend/src/workspace/state_registry.py :29
from urllib.parse import quote - net (weak) seraph-quest-seraph-bfdf8a3/backend/tests/conftest.py :10
from httpx import ASGITransport, AsyncClient - net (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_agent.py :137
@patch("src.tools.shell_tool.httpx.Client") - net (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_capabilities_api.py :5
from httpx import ASGITransport, AsyncClient - net (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_capability_pack_v2.py :579
import httpx - net (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_embedder.py :7
import httpx - net (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_end_of_day_goal_report.py :11
import httpx - net (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_epic_736_health_receipt.py :9
import socket - net (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_guardian_local_journeys.py :19
from urllib.parse import parse_qs, quote, urlparse - net (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_http_mcp_server.py :82
@patch("server.httpx.Client") - net (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_llm_runtime.py :54
patch("httpx.Client") as client,
28 more not shown — this panel samples each group; the count above is the real total.
secrets 7
- secrets seraph-quest-seraph-bfdf8a3/backend/src/api/model_fabric_settings.py :288
return str(settings.openrouter_api_key or os.getenv("OPENROUTER_API_KEY", "") or "").strip() - secrets seraph-quest-seraph-bfdf8a3/backend/src/app.py :202
else str(settings.openrouter_api_key or os.getenv("OPENROUTER_API_KEY", "") or "").strip() - secrets seraph-quest-seraph-bfdf8a3/backend/src/model_fabric/configuration.py :168
configured = str(settings.openrouter_api_key or os.getenv("OPENROUTER_API_KEY", "") or "").strip() - secrets (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_mcp_manager.py :188
os.environ["TEST_GH_TOKEN"] = "ghp_abc123" - secrets seraph-quest-seraph-bfdf8a3/daemon/seraph_daemon.py :1285
default=os.environ.get("OPENROUTER_API_KEY"), - secrets (weak) seraph-quest-seraph-bfdf8a3/scripts/diagnose_gpu_vlm_route.py :28
os.getenv("SERAPH_VLM_API_KEY") - secrets (weak) seraph-quest-seraph-bfdf8a3/scripts/vlm_benchmark.py :47
api_key = os.environ.get("OPENROUTER_API_KEY", "").strip().strip("'\"")
database 54
- db seraph-quest-seraph-bfdf8a3/backend/src/agent/session.py :9
from sqlalchemy import func, or_, text, update - db seraph-quest-seraph-bfdf8a3/backend/src/api/goals.py :9
from sqlalchemy.exc import SQLAlchemyError - db seraph-quest-seraph-bfdf8a3/backend/src/api/settings.py :13
from sqlalchemy import func, update - db seraph-quest-seraph-bfdf8a3/backend/src/approval/repository.py :9
from sqlalchemy import or_, update - db seraph-quest-seraph-bfdf8a3/backend/src/auth/service.py :11
from sqlalchemy import select, update - db seraph-quest-seraph-bfdf8a3/backend/src/db/engine.py :6
from sqlalchemy import event, text - db seraph-quest-seraph-bfdf8a3/backend/src/db/models.py :6
from sqlalchemy import Index, text - db seraph-quest-seraph-bfdf8a3/backend/src/evals/harness.py :26
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine - db seraph-quest-seraph-bfdf8a3/backend/src/extensions/telegram_transport.py :23
from sqlalchemy import select, update - db seraph-quest-seraph-bfdf8a3/backend/src/goals/repository.py :7
from sqlalchemy import delete, update - db seraph-quest-seraph-bfdf8a3/backend/src/guardian/audio_worker.py :41
from sqlalchemy import select, update - db seraph-quest-seraph-bfdf8a3/backend/src/memory/control.py :9
from sqlalchemy import update
show 28 more
- db seraph-quest-seraph-bfdf8a3/backend/src/memory/decay.py :8
from sqlalchemy import exists, func - db seraph-quest-seraph-bfdf8a3/backend/src/memory/flush.py :9
from sqlalchemy import func - db seraph-quest-seraph-bfdf8a3/backend/src/memory/hybrid_retrieval.py :10
from sqlalchemy import func, or_ - db seraph-quest-seraph-bfdf8a3/backend/src/memory/repository.py :18
from sqlalchemy import exists, func, or_, text, update - db seraph-quest-seraph-bfdf8a3/backend/src/memory/retrieval_planner.py :8
from sqlalchemy.exc import SQLAlchemyError - db seraph-quest-seraph-bfdf8a3/backend/src/memory/snapshots.py :6
from sqlalchemy.exc import SQLAlchemyError - db seraph-quest-seraph-bfdf8a3/backend/src/memory/superiority.py :7
from sqlalchemy import exists, func - db seraph-quest-seraph-bfdf8a3/backend/src/model_fabric/repository.py :12
from sqlalchemy.ext.asyncio import AsyncSession - db seraph-quest-seraph-bfdf8a3/backend/src/observer/native_notification_queue.py :36
from sqlalchemy import and_, delete, func, or_, select, text, update - db seraph-quest-seraph-bfdf8a3/backend/src/observer/screenshot_folder_source.py :14
from sqlalchemy import or_, update - db seraph-quest-seraph-bfdf8a3/backend/src/profile/service.py :9
from sqlalchemy import update - db seraph-quest-seraph-bfdf8a3/backend/src/scheduler/jobs/screenshot_observation_digest.py :13
from sqlalchemy import or_ - db seraph-quest-seraph-bfdf8a3/backend/src/scheduler/jobs/strategist_tick.py :46
from sqlalchemy import func - db seraph-quest-seraph-bfdf8a3/backend/src/scheduler/scheduled_jobs.py :11
from sqlalchemy import and_, or_ - db seraph-quest-seraph-bfdf8a3/backend/src/workflows/durable_state.py :17
from sqlalchemy import or_ - db seraph-quest-seraph-bfdf8a3/backend/src/workflows/job_runtime.py :21
from sqlalchemy import false, func, or_, text, update - db seraph-quest-seraph-bfdf8a3/backend/src/workspace/lifecycle.py :32
import sqlite3 - db seraph-quest-seraph-bfdf8a3/backend/src/workspace/production.py :552
import sqlite3 - db seraph-quest-seraph-bfdf8a3/backend/src/workspace/state_registry.py :26
import sqlite3 - db (weak) seraph-quest-seraph-bfdf8a3/backend/tests/conftest.py :11
from sqlalchemy import event - db (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_capability_host_integration.py :13
from sqlalchemy.sql.dml import Update - db (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_consolidator.py :8
from sqlalchemy import select, text - db (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_conversation_identity_outbox.py :15
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine - db (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_db_engine.py :1
from sqlalchemy import event - db (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_durable_job_runtime.py :6
import sqlite3 - db (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_durable_workflow_remediation.py :743
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine - db (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_goal_tree_integrity.py :3
from sqlalchemy import text - db (weak) seraph-quest-seraph-bfdf8a3/backend/tests/test_guardian_local_journeys.py :23
from sqlalchemy import event
14 more not shown — this panel samples each group; the count above is the real total.
tool registrations 1
- http_request seraph-quest-seraph-bfdf8a3/mcp-servers/http-request/server.py :97
declared dependencies 24
- mcp@>=1.7.0
- fastapi@>=0.115.0
- uvicorn@>=0.32.0
- litellm@>=1.50.0
- smolagents@>=1.24.0
- packaging@>=24.2
- pydantic@>=2.10.0
- pydantic-settings@>=2.6.0
- ddgs@>=7.0.0
- websockets@>=14.0
- sqlmodel@>=0.0.22
- aiosqlite@>=0.21.0
show 12 more
- alembic@>=1.14.0
- lancedb@>=0.17.0
- httpx@>=0.28.0
- playwright@>=1.49.0
- gcsa@>=2.6.0
- google-auth-oauthlib@>=1.2.0
- simplegmail@>=4.1.0
- apscheduler@>=3.11.0,<4.0.0
- Pillow@>=11.0.0
- tiktoken@>=0.8
- cryptography@>=43.0.0
- slowapi@>=0.1.9
transport_posture 3
- network-listening, binds all interfaces, no auth detected seraph-quest-seraph-bfdf8a3/backend/main.py :8
uvicorn.run("main:app", host="0.0.0.0", port=8003, reload=True) - network-listening, binds all interfaces, no auth detected seraph-quest-seraph-bfdf8a3/mcp-servers/http-request/server.py :10
mcp = FastMCP("http-request", host="0.0.0.0", port=9200) - network-listening, binds all interfaces, no auth detected seraph-quest-seraph-bfdf8a3/mcp-servers/stdio-proxy/proxy.py :127
host="0.0.0.0",