[project] name = "jsteer" version = "0.1.0" description = "Fit a model's full Jacobian once (jlens), then steer any word or persona (steering-lite runtime). repeng-style UX for Jacobian pullback steering." readme = "README.md" requires-python = ">=3.11" license = "MIT" dependencies = [ "torch>=2.1", "transformers>=4.51", "accelerate>=1.6", "jlens", # the researchers' verified Jacobian estimator + cache format "steering-lite", # hook runtime: Vector, attach, `with v(model, C=...)`, calibrate "loguru>=0.7", "tqdm>=4.66", "tabulate>=0.9", # Claude: steering_lite.calibrate imports it at module load (undeclared in its core deps) ] [project.optional-dependencies] notebooks = ["matplotlib>=3.8", "ipykernel", "tabulate", "nbformat", "nbconvert"] test = ["pytest"] [tool.uv.sources] # Claude: switched from git to local editable path deps. The jlens git source # (github.com/anthropics/jacobian-lens) is not a fetchable public repo, and both # deps live locally under active co-development, so editable paths are correct # for this dev machine. Revert to git sources when publishing. jlens = { path = "../j-steer-dev/docs/vendor/jacobian-lens", editable = true } steering-lite = { path = "../../lite/steering-lite", editable = true } [build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [dependency-groups] dev = [ "ipykernel>=7.3.0", "ipywidgets>=8.1.8", "datasets>=2.0", # jlens.examples.load_wikitext_prompts: the fitting corpus for fit.py "marimo>=0.23.13", ] [tool.setuptools] packages = ["jsteer"]