github Python analyzed 6015d8e

bharatkse/juris-ai

github

AI-powered legal assistant with explicit multi-agent planning and execution supporting sequential, parallel, and hybrid workflows.

maintainer
bharatkse
licence
AGPL-3.0
first seen
2026-08-14
last seen
2026-09-18
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

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

No tools enumerated yet for this server.

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

code evidence vHEAD · github-tarball
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.