github Python analyzed 9893493 deep scan · partial (315/2,422 files)
unconfirmed MCP
Kiln-AI/Kiln
Build, Evaluate, and Optimize AI Systems. Includes evals, RAG, agents, fine-tuning, synthetic data generation, dataset management, MCP, and more.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×3 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution ×2 in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution in Kiln-AI/Kiln
- HIGH code analysis flagged dynamic code execution in Kiln-AI/Kiln
transport stdio · streamable-http · http · sse 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 9893493 · analyzer v33 · 2h ago
skills & prompt files 11
- skill Kiln-AI-Kiln-9893493/.agents/playwright_project/skills/197586632641 - escalation-and-reply-tone/SKILL.md
- skill Kiln-AI-Kiln-9893493/.agents/playwright_project/skills/255490964102 - ticket-routing-playbook/SKILL.md
- skill Kiln-AI-Kiln-9893493/.agents/skills/claude-maintain-models/SKILL.md
- skill Kiln-AI-Kiln-9893493/.agents/skills/kiln-check-deprecation/SKILL.md
- skill Kiln-AI-Kiln-9893493/.agents/skills/kiln-check-finetune-deprecation/SKILL.md
- skill Kiln-AI-Kiln-9893493/.agents/skills/kiln-prerelease-check/SKILL.md
- skill Kiln-AI-Kiln-9893493/.agents/skills/open-pr/SKILL.md
- skill Kiln-AI-Kiln-9893493/.agents/skills/playwright/SKILL.md
- skill Kiln-AI-Kiln-9893493/.agents/skills/qa/SKILL.md
- skill Kiln-AI-Kiln-9893493/.agents/skills/release-digest/SKILL.md
- agent-rules Kiln-AI-Kiln-9893493/AGENTS.md
danger signals5
- dynamic code execution eval()/exec() Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/eval/sandbox_worker.py :57
exec(compile(code, "<code_eval>", "exec"), namespace) - dynamic code execution pickle.loads() Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/eval/test_g_eval.py :248
run_output = pickle.loads(serialized_run_output) - dynamic code execution pickle.loads() Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/eval/test_g_eval_characterization.py :166
run_output = pickle.loads(serialized_run_output) - dynamic code execution pickle.loads() Kiln-AI-Kiln-9893493/libs/core/kiln_ai/datamodel/test_usage.py :64
restored = pickle.loads(legacy_bytes) - dynamic code execution eval()/exec() Kiln-AI-Kiln-9893493/libs/core/kiln_ai/sandbox/worker.py :46
exec(compile(code, "<code_tool>", "exec"), namespace)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 1106
filesystem 118
- fs (weak) Kiln-AI-Kiln-9893493/.agents/scripts/provider_utils.py :15
from pathlib import Path - fs (weak) Kiln-AI-Kiln-9893493/.agents/skills/kiln-check-deprecation/scripts/check_provider.py :43
from pathlib import Path - fs (weak) Kiln-AI-Kiln-9893493/.agents/skills/kiln-check-finetune-deprecation/scripts/check_finetune.py :22
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/desktop.py :97
webbrowser.open(f"http://localhost:{self.port}") - fs Kiln-AI-Kiln-9893493/app/desktop/desktop_server.py :9
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/clone.py :5
import shutil - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/conftest.py :1
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/git_sync_api.py :5
import shutil - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/git_sync_manager.py :8
from pathlib import Path - fs (weak) Kiln-AI-Kiln-9893493/app/desktop/git_sync/integration_tests/conftest.py :12
from pathlib import Path - fs (weak) Kiln-AI-Kiln-9893493/app/desktop/git_sync/integration_tests/test_file_operations.py :35
os.remove(p / "to_delete.kiln") - fs (weak) Kiln-AI-Kiln-9893493/app/desktop/git_sync/integration_tests/test_no_write_lock_batch.py :7
from pathlib import Path
show 28 more
- fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/middleware.py :6
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/registry.py :5
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/save_context.py :3
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/test_background_sync.py :2
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/test_clone.py :3
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/test_end_to_end.py :8
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/test_git_sync_api.py :2
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/test_git_sync_manager.py :3
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/git_sync/test_save_context.py :4
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/test_kiln_server_client.py :2
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/chat/test_integration.py :6
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/finetune_api.py :760
return StreamingResponse(open(path, "rb"), headers=headers) - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/jobs/error_log.py :5
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/jobs/test_error_log.py :36
with error_log.error_log_path(run_id).open("a", encoding="utf-8") as f: - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/prompt_optimization_job_api.py :5
from pathlib import Path as PathlibPath - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/test_finetune_api.py :2
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/test_prompt_optimization_job_api.py :2984
# Mock shutil.rmtree (which delete() uses internally) to raise an error - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/test_server.py :142
with open(full_path, "w") as f: - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/test_settings_api.py :44
with open(settings_file, "w") as f: - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/test_tool_api.py :4
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/studio_server/test_webhost.py :22
with open(os.path.join(d, "404.html"), "w", encoding="utf-8") as f: - fs Kiln-AI-Kiln-9893493/app/desktop/test_dev_server.py :7
from pathlib import Path - fs Kiln-AI-Kiln-9893493/app/desktop/test_start_background_syncs.py :1
from pathlib import Path - fs Kiln-AI-Kiln-9893493/conftest.py :2
import shutil - fs Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/chunkers/test_semantic_chunker.py :3
from pathlib import Path - fs Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/eval/test_code_eval_bridge.py :312
" open(os.path.join(RENDEZVOUS, output), 'w').close()\n" - fs Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/eval/test_sandbox_worker_perf.py :18
from pathlib import Path - fs Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/eval/trace_index.py :17
from pathlib import Path
78 more not shown — this panel samples each group; the count above is the real total.
shell / exec 14
- shell (weak) Kiln-AI-Kiln-9893493/.agents/scripts/provider_utils.py :13
import subprocess - shell (weak) Kiln-AI-Kiln-9893493/.agents/skills/release-digest/scripts/gather_changes.py :13
import subprocess - shell Kiln-AI-Kiln-9893493/app/desktop/git_sync/git_sync_manager.py :3
import subprocess - shell Kiln-AI-Kiln-9893493/app/desktop/test_dev_server.py :4
import subprocess - shell Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/eval/test_sandbox_worker_perf.py :16
import subprocess - shell Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/test_remote_config.py :6
import subprocess - shell Kiln-AI-Kiln-9893493/libs/core/kiln_ai/tools/mcp_session_manager.py :4
import subprocess - shell Kiln-AI-Kiln-9893493/libs/core/kiln_ai/tools/test_mcp_session_manager.py :2
import subprocess - shell Kiln-AI-Kiln-9893493/libs/core/kiln_ai/utils/filesystem.py :2
import subprocess - shell Kiln-AI-Kiln-9893493/libs/core/kiln_ai/utils/test_import_layering.py :16
import subprocess - shell (weak) Kiln-AI-Kiln-9893493/specs/projects/eval_splits_v1_v2/phase2_mutation_sweep.py :12
import subprocess - shell (weak) Kiln-AI-Kiln-9893493/specs/projects/eval_splits_v1_v2/phase3_mutation_sweep.py :12
import subprocess
show 2 more
- shell (weak) Kiln-AI-Kiln-9893493/specs/projects/eval_splits_v1_v2/phase4_mutation_sweep.py :26
import subprocess - shell (weak) Kiln-AI-Kiln-9893493/specs/projects/eval_splits_v1_v2/phase6_mutation_sweep.py :15
import subprocess
network 76
- net (weak) Kiln-AI-Kiln-9893493/.agents/scripts/provider_utils.py :17
from urllib.error import HTTPError, URLError - net (weak) Kiln-AI-Kiln-9893493/.agents/skills/kiln-check-deprecation/scripts/check_provider.py :44
from urllib.error import HTTPError, URLError - net (weak) Kiln-AI-Kiln-9893493/.agents/skills/kiln-check-deprecation/scripts/extract_models.py :18
from urllib.request import Request, urlopen - net Kiln-AI-Kiln-9893493/app/desktop/git_sync/oauth.py :9
from urllib.parse import urlencode - net Kiln-AI-Kiln-9893493/app/desktop/git_sync/test_oauth.py :5
from urllib.parse import parse_qs, urlparse - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/auth/check_entitlements_v1_check_entitlements_get.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/auth/create_api_key_v1_create_api_key_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/auth/secure_ping_v1_ping_get.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/auth/verify_api_key_v1_verify_api_key_get.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/chat/delete_session_v1_chat_sessions_session_id_delete.py :3
from urllib.parse import quote - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/chat/get_client_version_policy_v1_chat_version_policy_get.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/chat/get_session_v1_chat_sessions_session_id_get.py :3
from urllib.parse import quote
show 28 more
- net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/chat/handle_chat_v1_chat_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/chat/list_sessions_v1_chat_sessions_get.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/copilot/batch_plan_v1_copilot_batch_plan_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/copilot/clarify_spec_v1_copilot_clarify_spec_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/copilot/draft_input_data_guide_v1_copilot_draft_input_data_guide_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/copilot/generate_batch_v1_copilot_generate_batch_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/copilot/question_spec_v1_copilot_question_spec_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/copilot/refine_spec_v1_copilot_refine_spec_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/copilot/refine_spec_with_answers_v1_copilot_refine_spec_with_answers_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/health/health_health_get.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/health/ping_ping_get.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/jobs/check_prompt_optimization_model_supported_v1_jobs_prompt_optimization_job_check_model_supported_get.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/jobs/get_data_guide_job_result_v1_jobs_data_guide_job_job_id_result_get.py :3
from urllib.parse import quote - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/jobs/get_job_status_v1_jobs_job_type_job_id_status_get.py :3
from urllib.parse import quote - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/jobs/get_prompt_optimization_job_result_v1_jobs_prompt_optimization_job_job_id_result_get.py :3
from urllib.parse import quote - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/jobs/get_sample_job_result_v1_jobs_sample_job_job_id_result_get.py :3
from urllib.parse import quote - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/jobs/start_data_guide_job_v1_jobs_data_guide_job_start_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/jobs/start_prompt_optimization_job_v1_jobs_prompt_optimization_job_start_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/api/jobs/start_sample_job_v1_jobs_sample_job_start_post.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/client.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_ai_server_client/types.py :17
# The types that `httpx.Client(files=)` can accept, copied from that library. - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/kiln_server_client.py :3
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/api_client/test_kiln_server_client.py :5
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/batch_plan_api.py :4
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/chat/constants.py :3
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/chat/helpers.py :4
PATCH_ASYNC_CLIENT = "app.desktop.studio_server.chat.stream_session.httpx.AsyncClient" - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/chat/routes.py :6
import httpx - net Kiln-AI-Kiln-9893493/app/desktop/studio_server/chat/stream_session.py :7
import httpx
36 more not shown — this panel samples each group; the count above is the real total.
secrets 7
- secrets Kiln-AI-Kiln-9893493/app/desktop/studio_server/chat/test_integration.py :315
if key := os.environ.get("KILN_COPILOT_API_KEY"): - secrets Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/repair/test_repair_task.py :222
if os.getenv("GROQ_API_KEY") is None: - secrets Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/test_prompt_adaptors.py :35
if os.getenv("GROQ_API_KEY") is None: - secrets Kiln-AI-Kiln-9893493/libs/core/kiln_ai/adapters/vector_store_loaders/test_lancedb_loader.py :205
lancedb_api_key = os.getenv("LANCE_DB_API_KEY") - secrets Kiln-AI-Kiln-9893493/libs/core/kiln_ai/utils/config.py :2
import getpass - secrets Kiln-AI-Kiln-9893493/libs/core/kiln_ai/utils/test_config.py :1
import getpass - secrets Kiln-AI-Kiln-9893493/libs/server/kiln_server/test_run_api.py :2279
if not os.environ.get("OPENROUTER_API_KEY"):
declared dependencies 5
- certifi@>=2024.8.30
- jq@>=1.11.0
- kiln-ai@==0.5.3
- kiln-server@*
- kiln-studio-desktop@*
perm:untrusted 1
- untrusted Kiln-AI-Kiln-9893493/app/desktop/studio_server/provider_api.py :77
tags = requests.get(base_url + "/api/tags", timeout=5).json()