github Python analyzed bfdf8a3 deep scan · partial (146/1,062 files)

seraph-quest/seraph

github

An AI guardian that remembers, watches, and acts.

maintainer
seraph-quest
licence
MIT
first seen
2026-06-09
last seen
2026-09-11
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

capabilities 1 tools
transport stdio · streamable-http · http counts 1 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • http_request
skills & danger signals github-tarball
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

danger signals5

code evidence vv2026.7.5 · github-tarball
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",