github Python analyzed e9edd48

IFC-UIDAHO/Cambium_AI

github

A research institution you run with one sentence — from RFP to verified results, a human in the loop at every gate.

maintainer
IFC-UIDAHO
licence
NOASSERTION
first seen
2026-06-27
last seen
2026-06-27
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

capabilities 10 tools
transport stdio counts 10 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • cambium_agents
  • cambium_dispatch
  • cambium_doctor
  • cambium_fidelity
  • cambium_grade
  • cambium_graph
  • cambium_plan
  • cambium_provision
  • cambium_recall
  • cambium_validate
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit e9edd48 · analyzer v33 · 2w ago

skills & prompt files 40

danger signals1

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 291

filesystem 206

  • fs pkjaslam-Cambium_AI-e9edd48/assets/gen/gen_architecture.py :27 cards = {a["name"] for a in json.load(open(os.path.join(ROOT, "agent_cards.json")))["agents"]}
  • fs pkjaslam-Cambium_AI-e9edd48/assets/gen/gen_audience.py :90 open(os.path.join(ROOT,"assets","audience.svg"),"w").write("\n".join(s))
  • fs pkjaslam-Cambium_AI-e9edd48/assets/gen/gen_demo_gif.py :13 N = json.load(open(os.path.join(ROOT, "agent_cards.json")))["count"]
  • fs pkjaslam-Cambium_AI-e9edd48/assets/gen/gen_hero.py :96 open(os.path.join(ROOT,"assets","hero.svg"),"w").write("\n".join(s))
  • fs pkjaslam-Cambium_AI-e9edd48/assets/gen/gen_lifecycle.py :94 open(os.path.join(ROOT,"assets","lifecycle.svg"),"w").write("\n".join(s))
  • fs pkjaslam-Cambium_AI-e9edd48/assets/gen/gen_responsible_ai.py :102 open(os.path.join(ROOT,"assets","responsible-ai.svg"),"w").write("\n".join(s))
  • fs pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/analyze.py :53 with open(results, encoding="utf-8") as f:
  • fs pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/analyze_stage2.py :44 d = json.load(open(p, encoding="utf-8"))
  • fs pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/blind.py :48 tasks = {json.load(open(p, encoding="utf-8"))["task_id"]: json.load(open(p, encoding="utf-8"))
  • fs pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/judge_stage1.py :116 task = json.load(open(p, encoding="utf-8"))
  • fs pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/run_arm.py :86 sysf = os.path.join(td, "sys.txt"); open(sysf, "w", encoding="utf-8").write(system)
  • fs pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/run_study.py :81 with open(path, encoding="utf-8") as f:
show 28 more
  • fs pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/tasks/gen_tasks.py :78 d = json.load(open(p, encoding="utf-8"))
  • fs pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/verify_pipeline.py :52 packet = json.load(open(pkt_path, encoding="utf-8"))
  • fs pkjaslam-Cambium_AI-e9edd48/governance/validate.py :45 rows = list(csv.DictReader(open(LEDGER, newline="", encoding="utf-8")))
  • fs pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :34 return json.load(open(p, encoding="utf-8")) if os.path.exists(p) else {"agents": [], "count": 0}
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_academy_build.py :6 return json.load(open(os.path.join(ROOT, "academy", "courses.json"), encoding="utf-8"))
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_accessibility.py :44 f = tempfile.mktemp(suffix=".json"); json.dump(_STATE, open(f, "w")); return f
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_agent_scaffold.py :7 import pathlib
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_ai_disclosure.py :29 with open(os.path.join(gov, "GATES.md"), "w", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_ai_disclosure_json.py :16 with open(os.path.join(root, "governance", "GATES.md"), "w", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_api_stability.py :5 import pathlib
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_archive_project.py :70 os.remove(out / "projects" / "alpha" / "data.txt")
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_authorship_matrix.py :17 with open(path, "w", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_board_e2e.py :18 import shutil
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_board_pro.py :16 f = tempfile.mktemp(suffix=".json"); json.dump(STATE, open(f, "w"))
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_budget_narrative_match.py :27 with open(path, "w", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_budget_review.py :176 with open(path, "w", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_checklist_builder.py :27 with open(path, "w", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_compliance_matrix.py :111 with open(path, "w", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_concept_graph.py :26 from pathlib import Path
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_contract_check.py :65 with open(server_path, "w", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_cost_share_ledger.py :177 with open(out_path, encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_cost_telemetry.py :13 rows=list(csv.reader(open(p)))
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_countersign.py :25 with open(path, "w", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_coverage_map.py :25 with open(path, "w", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_deadline_radar.py :7 import pathlib
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_deterministic_checks.py :33 assert "deterministic" in open(out, encoding="utf-8").read()
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_effort_cert.py :106 with open(ledger, newline="", encoding="utf-8") as fh:
  • fs (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_enforce_all.py :15 json.dump({"gate": gate, "approver": "Jaslam", "ts": ts}, open(os.path.join(d, gate + ".json"), "w"))

166 more not shown — this panel samples each group; the count above is the real total.

shell / exec 75

  • shell pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/run_arm.py :70 r = subprocess.run(cmd, input=stdin, capture_output=True, text=True,
  • shell pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/run_pilot.py :23 r = subprocess.run([PY] + args, cwd=_HERE)
  • shell pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/verify_pipeline.py :45 rc = subprocess.run([sys.executable, os.path.join(_HERE, "blind.py")], capture_output=True, text=True)
  • shell pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :17 r = subprocess.run([sys.executable, rel, *args], cwd=REPO, capture_output=True, text=True)
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/scripts/precheck.py :20 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_agent_scaffold.py :8 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_api_stability.py :6 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_archive_project.py :8 return subprocess.run([sys.executable, os.path.join(ROOT, "tools", "archive_project.py"), *args],
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_audit_bundle.py :10 return subprocess.run([sys.executable, os.path.join(ROOT, "tools", "audit_bundle.py"), *args],
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_award_calendar.py :7 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_board_e2e.py :19 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_board_pro.py :43 r = subprocess.run([sys.executable, os.path.join(ROOT, "tools", "gen_board_pro.py"),
show 28 more
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_budget_narrative_match.py :10 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_checklist_builder.py :10 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_cite_export.py :6 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_common_forms_check.py :6 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_control_map.py :10 return subprocess.run([sys.executable, os.path.join(ROOT, "tools", "control_map.py"), *args],
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_cost_report.py :12 return subprocess.run([sys.executable, os.path.join(ROOT, "tools", "cost_report.py"), *args],
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_course_pack.py :3 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_deadline_radar.py :8 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_effort_reconciler.py :6 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_enforce_all.py :9 return subprocess.run([sys.executable, os.path.join(ROOT, "tools", tool), *a],
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_enforcement_study.py :15 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_env_doctor.py :9 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_flashcards.py :8 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_flashcards_export.py :10 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_framework.py :10 return subprocess.run([sys.executable, rel, *args], cwd=ROOT, capture_output=True, text=True)
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_funder_freshness.py :17 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_gate_and_audit.py :4 def run(tool,*a): return subprocess.run([sys.executable,os.path.join(ROOT,"tools",tool),*a],capture_output=True,text=True)
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_gate_lock.py :4 def run(*a): return subprocess.run([sys.executable, os.path.join(ROOT, "tools", "gate_lock.py"), *a], capture_output=True, text=True)
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_gate_simulator.py :3 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_gen_dashboard.py :38 import subprocess, sys, time
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_gen_readme.py :11 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_glossary_builder.py :3 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_glossary_gen.py :8 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_handoff.py :2 import subprocess, sys, json, pathlib
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_inline_board.py :74 r = subprocess.run([sys.executable, os.path.join(ROOT, "tools", "gen_inline_board.py"),
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_intake_guard.py :7 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_learning_delivery.py :8 import subprocess
  • shell (weak) pkjaslam-Cambium_AI-e9edd48/tests/test_new_agent.py :8 import subprocess

35 more not shown — this panel samples each group; the count above is the real total.

network 6

  • net pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/run_arm.py :17 import argparse, glob, json, os, shutil, subprocess, sys, tempfile, time, urllib.request
  • net pkjaslam-Cambium_AI-e9edd48/tools/cambium_run.py :136 import urllib.request, json as J
  • net pkjaslam-Cambium_AI-e9edd48/tools/deterministic_checks.py :21 import argparse, json, os, sys, urllib.request
  • net pkjaslam-Cambium_AI-e9edd48/tools/paper_search.py :26 import sys, json, urllib.request, urllib.parse, re
  • net pkjaslam-Cambium_AI-e9edd48/tools/retraction_check.py :55 import urllib.error
  • net pkjaslam-Cambium_AI-e9edd48/tools/url_health.py :92 import urllib.request, urllib.error, urllib.parse

secrets 4

  • secrets pkjaslam-Cambium_AI-e9edd48/evals/enforcement_study/run_arm.py :125 key = os.environ.get("ANTHROPIC_API_KEY")
  • secrets pkjaslam-Cambium_AI-e9edd48/tools/cambium_run.py :160 key = os.environ.get("ANTHROPIC_API_KEY")
  • secrets pkjaslam-Cambium_AI-e9edd48/web/server/app.py :46 return {"ok": True, "mode": "live" if (os.environ.get("CAMBIUM_LIVE") == "1" and os.environ.get("ANTHROPIC_API_KEY")) else "simulation",
  • secrets pkjaslam-Cambium_AI-e9edd48/web/server/engine.py :90 if os.environ.get("CAMBIUM_LIVE") == "1" and os.environ.get("ANTHROPIC_API_KEY"):

tool registrations 10

  • cambium_plan pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :20
  • cambium_provision pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :25
  • cambium_agents pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :30
  • cambium_doctor pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :36
  • cambium_grade pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :41
  • cambium_validate pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :46
  • cambium_dispatch pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :56
  • cambium_fidelity pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :61
  • cambium_recall pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :66
  • cambium_graph pkjaslam-Cambium_AI-e9edd48/mcp_server/cambium_mcp/server.py :71

declared dependencies 7

  • fastapi@>=0.110
  • uvicorn@>=0.29
  • pydantic@>=2.0
  • websockets@>=12.0
  • pytest@>=7.0
  • pytest-asyncio@>=0.21
  • httpx@>=0.27