Pinakes — a portable, agent-first knowledge base. One directory = one KB.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio 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 ce219cd · analyzer v33 · 1d ago
skills & prompt files 1
- agent-rules lucagattoni-pinakes-ce219cd/CLAUDE.md
danger signals3
- dynamic code execution __import__() lucagattoni-pinakes-ce219cd/src/pinakes/embed.py :144
return __import__(module, fromlist=["_"]) - dynamic code execution __import__() lucagattoni-pinakes-ce219cd/src/pinakes/extract/__init__.py :210
return __import__(module, fromlist=["_"]) - dynamic code execution pickle.loads() lucagattoni-pinakes-ce219cd/tests/test_cli.py :126
restored = pickle.loads(pickle.dumps(PinakesError("broke", remedy="fix it")))
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 188
filesystem 138
- fs lucagattoni-pinakes-ce219cd/src/pinakes/_toml.py :13
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/budget/accountant.py :24
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/budget/ledger.py :53
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/budget/summary.py :20
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/calibrate.py :132
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/ci.py :18
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/cli.py :25
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/deep/suggest.py :51
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/deep/transcript.py :36
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/doctor.py :22
from pathlib import Path, PurePosixPath - fs lucagattoni-pinakes-ce219cd/src/pinakes/embed.py :22
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/errors.py :13
from pathlib import Path
show 28 more
- fs lucagattoni-pinakes-ce219cd/src/pinakes/eval.py :38
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/extract/__init__.py :43
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/extract/cache.py :41
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/extract/claude.py :66
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/extract/pageyield.py :27
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/extract/pdfium.py :42
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/extract/quality.py :37
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/hooks.py :30
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/init.py :10
import shutil - fs lucagattoni-pinakes-ce219cd/src/pinakes/link.py :22
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/linkscan.py :42
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/lock.py :24
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/manifest.py :34
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/paths.py :20
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/serve.py :23
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/sidecar.py :36
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/store.py :14
tier loads them into one contiguous array at open (§3.1); `load_vectors` is that loader, and it - fs lucagattoni-pinakes-ce219cd/src/pinakes/sync.py :28
from pathlib import Path, PurePosixPath - fs lucagattoni-pinakes-ce219cd/src/pinakes/template.py :14
from pathlib import Path - fs lucagattoni-pinakes-ce219cd/src/pinakes/upgrade.py :39
from pathlib import Path - fs (weak) lucagattoni-pinakes-ce219cd/tests/conftest.py :16
from pathlib import Path - fs (weak) lucagattoni-pinakes-ce219cd/tests/free_path_run.py :37
from pathlib import Path - fs (weak) lucagattoni-pinakes-ce219cd/tests/pdf-corpus/generate.py :20
from pathlib import Path - fs (weak) lucagattoni-pinakes-ce219cd/tests/pdf-corpus/pdfwriter.py :45
from pathlib import Path - fs (weak) lucagattoni-pinakes-ce219cd/tests/test_agent_spend.py :19
from pathlib import Path - fs (weak) lucagattoni-pinakes-ce219cd/tests/test_batteries.py :21
from pathlib import Path - fs (weak) lucagattoni-pinakes-ce219cd/tests/test_budget_core.py :13
from pathlib import Path - fs (weak) lucagattoni-pinakes-ce219cd/tests/test_build_rfc_corpus.py :33
from pathlib import Path
98 more not shown — this panel samples each group; the count above is the real total.
shell / exec 42
- shell lucagattoni-pinakes-ce219cd/src/pinakes/init.py :11
import subprocess - shell lucagattoni-pinakes-ce219cd/src/pinakes/sync.py :22
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_build_rfc_corpus.py :30
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_check_script.py :16
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_deep_reservation.py :41
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_eval.py :10
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_fragments.py :16
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_graph_channel.py :29
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_hooks.py :6
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_init.py :4
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_land.py :14
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_ledger.py :5
import subprocess
show 28 more
- shell (weak) lucagattoni-pinakes-ce219cd/tests/test_markdown_link_gate.py :21
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_mcp_handshake_gate.py :19
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_measure_sync_cpu.py :17
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_mutate.py :39
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_paid_path.py :21
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_partner_kb.py :14
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_pdf_corpus.py :10
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_register_gate.py :10
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_release_order_gate.py :16
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_release_tag_gate.py :24
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_review_ledger.py :27
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_review_pass_gate.py :22
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_rfc_golden_set.py :164
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_search.py :4
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_shared_file_overlap.py :12
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_status_header_gate.py :20
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_sync.py :8
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_template_drift.py :21
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_two_leg_gate.py :13
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_vacuous_injection_audit.py :24
import subprocess - shell (weak) lucagattoni-pinakes-ce219cd/tests/test_wheel_import_gate.py :19
import subprocess - shell lucagattoni-pinakes-ce219cd/tools/land.py :28
import subprocess - shell lucagattoni-pinakes-ce219cd/tools/markdown_link_gate.py :61
import subprocess - shell lucagattoni-pinakes-ce219cd/tools/measure_sync_cpu.py :41
import subprocess - shell lucagattoni-pinakes-ce219cd/tools/mutate.py :134
import subprocess - shell lucagattoni-pinakes-ce219cd/tools/release_tag_gate.py :58
import subprocess - shell lucagattoni-pinakes-ce219cd/tools/review_ledger.py :93
import subprocess - shell lucagattoni-pinakes-ce219cd/tools/shared_file_overlap.py :38
import subprocess
2 more not shown — this panel samples each group; the count above is the real total.
network 6
- net lucagattoni-pinakes-ce219cd/src/pinakes/lock.py :20
import socket - net (weak) lucagattoni-pinakes-ce219cd/tests/test_doctor.py :700
import socket - net (weak) lucagattoni-pinakes-ce219cd/tests/test_lock.py :5
import socket - net (weak) lucagattoni-pinakes-ce219cd/tests/test_sync.py :613
import socket - net lucagattoni-pinakes-ce219cd/tools/build_rfc_corpus.py :60
import urllib.error - net lucagattoni-pinakes-ce219cd/tools/markdown_link_gate.py :66
from urllib.parse import unquote
secrets 2
- secrets (weak) lucagattoni-pinakes-ce219cd/tests/conftest.py :68
and bool(os.environ.get("PINAKES_ANTHROPIC_API_KEY")) - secrets (weak) lucagattoni-pinakes-ce219cd/tests/test_deep_client.py :398
reached for `os.environ["ANTHROPIC_API_KEY"]` on its own — and a second paid entry point is
database 23
- db lucagattoni-pinakes-ce219cd/src/pinakes/calibrate.py :24
import sqlite3 - db lucagattoni-pinakes-ce219cd/src/pinakes/cli.py :29
import sqlite3 - db lucagattoni-pinakes-ce219cd/src/pinakes/doctor.py :15
import sqlite3 - db lucagattoni-pinakes-ce219cd/src/pinakes/eval.py :35
import sqlite3 - db lucagattoni-pinakes-ce219cd/src/pinakes/graph/channel.py :101
import sqlite3 - db lucagattoni-pinakes-ce219cd/src/pinakes/graph/edges.py :89
import sqlite3 - db lucagattoni-pinakes-ce219cd/src/pinakes/graph/provider.py :19
import sqlite3 - db lucagattoni-pinakes-ce219cd/src/pinakes/search.py :19
import sqlite3 - db lucagattoni-pinakes-ce219cd/src/pinakes/serve.py :20
import sqlite3 - db lucagattoni-pinakes-ce219cd/src/pinakes/store.py :19
import sqlite3 - db lucagattoni-pinakes-ce219cd/src/pinakes/sync.py :21
import sqlite3 - db (weak) lucagattoni-pinakes-ce219cd/tests/test_cli_links.py :11
import sqlite3
show 11 more
- db (weak) lucagattoni-pinakes-ce219cd/tests/test_doctor.py :15
import sqlite3 - db (weak) lucagattoni-pinakes-ce219cd/tests/test_edges.py :16
import sqlite3 - db (weak) lucagattoni-pinakes-ce219cd/tests/test_graph_channel.py :28
import sqlite3 - db (weak) lucagattoni-pinakes-ce219cd/tests/test_graph_present.py :12
import sqlite3 - db (weak) lucagattoni-pinakes-ce219cd/tests/test_links_surface.py :24
import sqlite3 - db (weak) lucagattoni-pinakes-ce219cd/tests/test_search.py :3
import sqlite3 - db (weak) lucagattoni-pinakes-ce219cd/tests/test_search_reproducibility.py :39
import sqlite3 - db (weak) lucagattoni-pinakes-ce219cd/tests/test_serve.py :3
import sqlite3 - db (weak) lucagattoni-pinakes-ce219cd/tests/test_store.py :4
import sqlite3 - db (weak) lucagattoni-pinakes-ce219cd/tests/test_sync.py :7
import sqlite3 - db lucagattoni-pinakes-ce219cd/tools/reachable_ceiling_probe.py :110
import sqlite3
declared dependencies 10
- mcp@>=2
- jinja2@>=3.1
- numpy@>=2.0
- python-ulid@>=3.0
- ruamel.yaml@>=0.19
- sentence-transformers@>=5.0
- fastembed@>=0.8
- pypdfium2@>=5.12
- anthropic@>=0.116
- pinakes@*