AI-powered legal assistant with explicit multi-agent planning and execution supporting sequential, parallel, and hybrid workflows.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport streamable-http · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 6015d8e · analyzer v33 · 15h ago
danger signals2
- dynamic code execution __import__() bharatkse-juris-ai-6015d8e/server/tests/unit/agentic/agents/runtime/test_agent_continuation_decision_quality.py :226
retry_policy=__import__( - dynamic code execution __import__() bharatkse-juris-ai-6015d8e/server/tests/unit/agentic/planning/test_planner.py :86
__import__(
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 685
filesystem 21
- fs (weak) bharatkse-juris-ai-6015d8e/server/scripts/python/calibrate_answer_quality_thresholds.py :27
from pathlib import Path - fs (weak) bharatkse-juris-ai-6015d8e/server/scripts/python/evaluate_rag_retrieval.py :4
from pathlib import Path - fs (weak) bharatkse-juris-ai-6015d8e/server/scripts/python/evaluate_rag_retrieval_comparison.py :2
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/adapters/clients/storage/file_system.py :3
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/adapters/clients/storage/paths.py :7
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/adapters/observability/logger.py :13
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/env.py :12
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/agentic/agents/prompts/base.py :8
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/agentic/planning/prompts/base.py :8
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/api/dependencies/authorization.py :30
failing open (a real information-disclosure incident). - fs bharatkse-juris-ai-6015d8e/server/src/application/services/offline_ingestion.py :29
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/application/services/rag_index_persistence.py :38
from pathlib import PurePosixPath
show 9 more
- fs bharatkse-juris-ai-6015d8e/server/src/core/utils/file_system.py :9
import shutil - fs bharatkse-juris-ai-6015d8e/server/src/rag/chunk_mapper.py :21
from pathlib import PurePosixPath - fs bharatkse-juris-ai-6015d8e/server/src/rag/evaluation/datasets/loader.py :20
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/rag/evaluation/ragas_offline.py :30
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/rag/ingestion/ingest_offline.py :67
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/rag/ingestion/parsers/file.py :5
from pathlib import Path - fs bharatkse-juris-ai-6015d8e/server/src/rag/ingestion/readers/file_reader.py :6
from pathlib import Path - fs (weak) bharatkse-juris-ai-6015d8e/server/tests/smoke/conftest.py :5
from pathlib import Path - fs (weak) bharatkse-juris-ai-6015d8e/server/tests/unit/rag/ingestion/test_parsers_file.py :14
from pathlib import Path
network 11
- net bharatkse-juris-ai-6015d8e/server/src/adapters/clients/http.py :10
import httpx - net bharatkse-juris-ai-6015d8e/server/src/adapters/clients/search_engine/brave.py :9
from httpx import ConnectError, HTTPStatusError, TimeoutException - net bharatkse-juris-ai-6015d8e/server/src/adapters/clients/search_engine/searxng.py :14
import httpx - net bharatkse-juris-ai-6015d8e/server/src/agentic/tools/search_engine/content_fetch.py :9
Fix from the previous version: a new httpx.AsyncClient was opened and - net bharatkse-juris-ai-6015d8e/server/src/agentic/tools/search_engine/url_normalizer.py :12
from urllib.parse import parse_qsl, urlencode, urlparse, urlunparse - net (weak) bharatkse-juris-ai-6015d8e/server/tests/e2e/conftest.py :5
real Postgres-backed LangGraph checkpointer) over httpx.AsyncClient -- - net (weak) bharatkse-juris-ai-6015d8e/server/tests/e2e/test_agent_decision_compliance_log.py :41
from httpx import AsyncClient - net (weak) bharatkse-juris-ai-6015d8e/server/tests/e2e/test_chat_stream.py :49
from httpx import AsyncClient - net (weak) bharatkse-juris-ai-6015d8e/server/tests/e2e/test_hitl_approval_flow.py :58
from httpx import AsyncClient - net (weak) bharatkse-juris-ai-6015d8e/server/tests/e2e/test_rate_limit_and_quota.py :25
from httpx import AsyncClient - net (weak) bharatkse-juris-ai-6015d8e/server/tests/unit/fixtures/api/client.py :10
from httpx import ASGITransport, AsyncClient
secrets 2
- secrets bharatkse-juris-ai-6015d8e/server/src/adapters/observability/langsmith.py :32
os.environ["LANGSMITH_API_KEY"] = settings.llm.langsmith_key - secrets (weak) bharatkse-juris-ai-6015d8e/server/tests/unit/adapters/observability/test_langsmith.py :66
assert os.getenv("LANGSMITH_API_KEY") is None
database 95
- db (weak) bharatkse-juris-ai-6015d8e/server/scripts/python/verify_compliance_log_privileges.py :58
from sqlalchemy import text - db bharatkse-juris-ai-6015d8e/server/src/adapters/cache/redis_cache.py :13
from redis.asyncio import Redis - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/base.py :6
from sqlalchemy import MetaData - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/env.py :15
from sqlalchemy import engine_from_config, pool - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/0d2e20be1fc3_add_unique_constraint.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/1f607177d72f_update_user_fields.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/2ceb9121ef13_init_hitl_models.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/437f76f8ffb3_add_compliance_log_table.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/726400d95008_init_conversation_event.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/8473ede09ced_fix_naive_timestamp_columns_on_.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/8f3a1c2e7b91_init_checkpoints.py :17
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/9338dbb3a96f_restrict_compliance_log_to_insert_.py :50
import sqlalchemy as sa
show 28 more
- db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/9f0da93604ae_init_chunk_embed.py :10
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/a92c7e1f5d34_add_conversation_rolling_summary.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/b6e2a4c9f018_rolling_summary_timestamp_boundary.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/c1d8f4a6b023_init_agent_policies.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/c32228f9bd67_init_library.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/c7a91e4b2d63_init_knowledge_sources.py :10
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/cd2984cd9ff9_add_citations_to_conversation_events.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/d500cf7ad1ef_init_db.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/d5e381b7f8c7_init_chunk.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/dd110a14caf1_restrict_compliance_log_to_insert_.py :44
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/e6da27efce86_add_plan_snapshot_to_agent_actions.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/f2b43ec1b2ec_add_rolling_summary.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/migrations/versions/f3d8a91c4b27_init_usage_records.py :11
import sqlalchemy as sa - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/mixins.py :7
from sqlalchemy import DateTime, String, event - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/agent_action.py :10
from sqlalchemy import JSON as JSONB - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/agent_policy.py :16
from sqlalchemy import JSON, Boolean, String - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/approval.py :10
from sqlalchemy import JSON as JSONB - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/compliance_log.py :10
from sqlalchemy import JSON as JSONB - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/conversation.py :8
from sqlalchemy import DateTime, ForeignKey, String, Text - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/conversation_event.py :10
from sqlalchemy import JSON, Enum, ForeignKey, String, UniqueConstraint - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/knowledge_chunk.py :17
from sqlalchemy import Computed, ForeignKey, Index, String, Text - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/knowledge_embedding.py :16
from sqlalchemy import ForeignKey, Index, Integer, String, UniqueConstraint - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/knowledge_sources.py :5
from sqlalchemy import Enum, Integer, String - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/library.py :5
from sqlalchemy import Enum, ForeignKey, Integer, String - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/usage_record.py :13
from sqlalchemy import DateTime, ForeignKey, Integer, String, UniqueConstraint - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/models/user.py :8
from sqlalchemy import Boolean, Date, String - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/repositories/agent_action.py :7
from sqlalchemy import select - db bharatkse-juris-ai-6015d8e/server/src/adapters/persistence/sqlalchemy/repositories/agent_policy.py :7
from sqlalchemy import select
55 more not shown — this panel samples each group; the count above is the real total.
declared dependencies 58
- mcp@{ extras = [
- fastapi@^0.116.0
- uvicorn@{ extras = [
- pwdlib@{ extras = [
- python-jose@^3.5.0
- python-multipart@^0.0.9
- pydantic@{ version =
- pydantic-settings@^2.2.1
- python-dotenv@^1.0.1
- sqlalchemy@^2.0.29
- psycopg@{ version =
- asyncpg@^0.31.0
show 28 more
- alembic@^1.13.1
- pypdf@^6.15.0
- python-docx@^1.2.0
- beautifulsoup4@^4.12.3
- pgvector@>=0.3,<1.0
- sentence-transformers@5.1.2
- torch@{ version =
- tiktoken@^0.14.0
- presidio-analyzer@{ version =
- presidio-anonymizer@{ version =
- en-core-web-sm@{ url =
- onnxruntime@^1.22
- optimum@{ extras = [
- groq@^1.5.0
- ollama@^0.6.2
- langgraph@^1.2.9
- langgraph-checkpoint-postgres@^3.0.0
- scikit-learn@^1.9.0
- redis@^5.0.4
- aiofiles@^23.2.1
- httpx@{ extras = [
- trafilatura@^2.0.0
- boto3@^1.34.101
- opentelemetry-api@^1.44.0
- opentelemetry-sdk@^1.44.0
- opentelemetry-exporter-otlp-proto-http@^1.44.0
- opentelemetry-exporter-otlp@^1.44.0
- opentelemetry-instrumentation-fastapi@^0.65b0
18 more not shown — this panel samples each group; the count above is the real total.