pen-stack 6.2.3__tar.gz → 6.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pen_stack-6.2.3 → pen_stack-6.2.4}/CHANGELOG.md +17 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/CITATION.cff +1 -1
- {pen_stack-6.2.3 → pen_stack-6.2.4}/PKG-INFO +2 -2
- {pen_stack-6.2.3 → pen_stack-6.2.4}/README.md +1 -1
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/__init__.py +1 -1
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/web/llm.py +15 -8
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack.egg-info/PKG-INFO +2 -2
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pyproject.toml +1 -1
- {pen_stack-6.2.3 → pen_stack-6.2.4}/LICENSE +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/MANIFEST.in +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/bench/run.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/benchmarks/genome_writing_bench/LEADERBOARD.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/benchmarks/genome_writing_bench/README.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/benchmarks/genome_writing_bench/SHA256SUMS +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/benchmarks/genome_writing_bench/SUBMISSIONS.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/benchmarks/genome_writing_bench/tasks.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/benchmarks/genome_writing_challenge/README.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/benchmarks/genome_writing_challenge/SUBMISSIONS.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/antipeg.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/atlas_families.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/bridge_offtarget_profile.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/capsid_epitope_oracle.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/capsid_sequences.fasta +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/cargo_polish.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/cell_types.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/datasets.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/delivery_constraints.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/delivery_rules.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/delivery_vehicles.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/gates_v3.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/genotoxicity_oracle.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/gsh_validated_heldout.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/intent_weights.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/known_unknowns.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/llm.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/monitor_queries.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/oracles/scope_cards.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/rules/delivery.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/rules/fold.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/rules/multiplex.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/rules/payload.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/rules/reachability.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/safety/hazard_registry.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/safety/policy.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/safety/probes.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/score_axes.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/seroprevalence.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/target_sites.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/universe_crosswalk.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/write_types.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/configs/wtkb_curated.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/data/curated/bridge_offtarget_energetics.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/data/curated/bridge_offtarget_profile_measured.parquet +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/data/curated/gene_coords.parquet +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/data/curated/unified_editor_universe.parquet +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/BACKLOG.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/DEPLOY.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/INFRA.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/MCP.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/RELEASING.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/REPRO.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/STABILITY.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/agent.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/alphagenome_feasibility.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/autonomy.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/benchmark_circularity.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/biosecurity.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/build_interface.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/cards/atlas.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/cards/durability.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/cards/safety.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/challenge.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/closed_loop.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/co_scientist.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/co_scientist_loop.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/delivery.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/delivery_immunology.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/digital_twin.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/dissemination.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/environment.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/experiment_design.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/generative_design.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/index.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/integrations.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/mechanistic_constraints.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/oracles.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/positioning.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/private_data_formats.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/quickstart.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/responsible_use.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/rules.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/scope.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/scorecard.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/tutorials/compare-families.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/tutorials/score-deliverability.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/tutorials/where-can-i-write.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/tutorials/which-writer-reaches-locus.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/uncertainty.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/verify.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/world_model.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/writer_verification.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/docs/wtkb.md +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/_resources.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/active/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/active/acquire.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/active/design.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/active/validate.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/adapt/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/adapt/finetune.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/adapt/ingest.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/adapt/pipeline.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/adapt/recalibrate.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/adapt/report.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/cite.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/co_scientist.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/epistemic.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/guardrails.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/mcp_server.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/orchestrator.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/orchestrator_live.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/pen_agent.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/scope.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/agent/tools.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/api/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/api/manifest.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/atlas/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/atlas/build_wtkb.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/atlas/crosslink.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/atlas/expand.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/atlas/schema.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/atlas/scorecard.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/atlas/universe.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/atlas/variant_propose.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/atlas/writer_verify.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/bridge/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/bridge/activity.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/bridge/cli.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/bridge/fold_qc.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/bridge/guide_qc.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/bridge/ingest.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/bridge/offtarget.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/bridge/offtarget_energetics.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/bridge/ortholog_screen.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/bridge/pipeline.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/build/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/build/ingest.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/build/protocol.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/build/simlab.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/cli.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/data/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/data/encode.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/data/genome.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/data/ingest_chromatin.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/data/ingest_integration.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/data/ingest_safety_annot.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/data/ingest_trip.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/design/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/design/generate.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/design/pareto.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/design/space.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/env/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/env/genome_writing_env.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/env/policies.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/graph/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/graph/build.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/graph/cell_types.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/graph/ingest.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/graph/query.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/graph/schema.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/loop/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/loop/continual.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/loop/cycle.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/loop/drift.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/mech/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/mech/classify_atlas.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/mech/whitelist.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/monitor/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/monitor/europepmc.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/monitor/run.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/monitor/triage.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/oracles/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/oracles/cache.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/oracles/energetics.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/oracles/genome.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/oracles/protein_design.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/oracles/rna.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/oracles/schema.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/oracles/structure.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/oracles/vcell.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/antipeg_oracle.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/capsid_epitope_oracle.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/cargo.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/cargo_polish.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/delivery.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/delivery_constraints.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/delivery_immunology.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/delivery_vehicles.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/genotoxicity_oracle.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/immune_profile.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/innate_sensing.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/multiplex.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/optimize.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/pipeline.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/report.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/router.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/seroprevalence_oracle.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/planner/target_site.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/rag/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/rag/index.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/rag/llm.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/rag/qa.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/rules/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/rules/evaluators.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/rules/loader.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/rules/schema.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/rules/solver.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/safety/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/safety/audit.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/safety/gate.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/safety/policy.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/safety/redteam.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/safety/registry.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/safety/screen.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/score/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/score/recalibrate.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/score/therapeutic.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/server/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/server/api.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/twin/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/twin/calibrate.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/twin/mechanistic.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/twin/outcome.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/ui/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/ui/app.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/adapt_demo.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/agent_eval.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/bench_adversarial_tasks.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/bench_coscientist_tasks.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/bench_graph_tasks.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/bench_rule_tasks.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/bench_trust_tasks.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/bench_writetype_tasks.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/blind_gsh_discovery.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/cargo_directionality.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/closed_loop.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/durability_baselines.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/experiment_design.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/forward_hypotheses.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/generative_design.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/guide_qc_demo.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/immune_calibration.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/intent_specification.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/offtarget_energetics_eval.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/out_of_scope_refusal.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/outcome_calibration.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/outcome_prediction.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/paper3_benchmark.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/paper4_real_validation.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/paper4_validation.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/protocol_safety.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/safety_screening.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/selective_prediction.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/seq_vs_measured.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/target_site_controls.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/uncertainty_eval.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/ungrounded_baseline.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/within_locus_ranking.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/validate/writer_recovery.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/verify/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/verify/schema.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/verify/service.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/web/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/web/server.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/web/tools.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/__init__.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/chromatin_seq.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/durability.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/export_tracks.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/features.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/gsh_baseline.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/mesh_features.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/ood.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/providers.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/safety.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/structure3d.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/uncertainty.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack/wgenome/writability.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack.egg-info/SOURCES.txt +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack.egg-info/dependency_links.txt +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack.egg-info/entry_points.txt +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack.egg-info/requires.txt +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/pen_stack.egg-info/top_level.txt +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_phase0.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_phase1_5.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_phase2.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_phase3.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_a.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_acq.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_aldesign.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_alvalidate.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_atlas.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_b.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_ba.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_ba_v33.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_ba_v45.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_bench.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_c.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_cal.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_calib.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_challenge.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_chat.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_cite.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_continual.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_cosci2.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_crit.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_ct.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_d.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_drift.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_e.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_env.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_ep.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_epitope.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_f.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_frontend.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_g.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_gen.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_genotox.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_graph.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_h.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_immune.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_ingest.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_innate.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_loop.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_manifest.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_mc.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_mcp.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_mech.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_mon.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_o.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_openapi.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_orch.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_outcome.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_pareto.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_peg.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_plan.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_policy.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_profile.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_proto.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_r.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_redteam.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_route.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_screen.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_seroprev.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_simlab.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_twincal.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_uq.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_v.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_vcell.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/SHA256_LOCK_ws_wv.json +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/paper1.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/paper2.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/paper3.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/paper4.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/phase0.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_a.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_acq.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_aldesign.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_alvalidate.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_atlas.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_b.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_ba.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_ba_v33.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_ba_v45.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_bench.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_c.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_cal.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_calib.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_challenge.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_chat.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_cite.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_continual.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_cosci2.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_crit.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_ct.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_d.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_drift.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_e.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_env.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_ep.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_epitope.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_f.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_frontend.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_g.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_gen.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_genotox.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_graph.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_h.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_immune.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_ingest.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_innate.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_loop.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_manifest.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_mc.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_mcp.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_mech.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_mon.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_o.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_openapi.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_orch.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_outcome.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_pareto.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_peg.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_plan.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_policy.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_profile.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_proto.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_r.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_redteam.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_route.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_screen.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_seroprev.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_simlab.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_twincal.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_uq.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_v.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_vcell.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/prereg/ws_wv.yaml +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p1_build_atlas.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p1_build_durability.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p1_export_tracks.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p1_safety_concordance.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p1_train_safety.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p1_validation_report.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p2_build_atlas.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p3_benchmark_report.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p4_genome_scan.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p52_build_genotox_oracle.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/p53_build_epitope_oracle.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/ws_b_report.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/scripts/ws_c_report.py +0 -0
- {pen_stack-6.2.3 → pen_stack-6.2.4}/setup.cfg +0 -0
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
All notable changes to PEN-STACK are documented here. This file follows
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/) and the program's phase structure.
|
|
5
5
|
|
|
6
|
+
## [6.2.4] - 2026-06-12 - v6.2.4: faster grounded narration (LLM backends) (patch)
|
|
7
|
+
|
|
8
|
+
**Performance + a real fix, from benchmarking the narration backends on the deployment GPU (RTX A4000).** The
|
|
9
|
+
LLM only narrates over engine tool results (the grounding guard runs regardless), so latency is the thing to
|
|
10
|
+
tune. Measured (real grounded prompt): Ollama qwen2.5:**7b** = ~50s warm / 120s cold (3.4 tok/s — a workstation
|
|
11
|
+
GPU is slow for LLM); qwen2.5:**3b** = ~27s; llama3.2:3b = ~17s; hosted **Nemotron‑49B = ~5s**. All keep the
|
|
12
|
+
grounding guard clean (0 ungrounded). The old Nemotron fallback model (`llama-3.1-nemotron-70b-instruct`) now
|
|
13
|
+
**404s** — i.e. the fallback was silently broken.
|
|
14
|
+
|
|
15
|
+
### Fixed / changed (`pen_stack/web/llm.py`)
|
|
16
|
+
- **Nemotron model corrected** to `nvidia/llama-3.3-nemotron-super-49b-v1` (the 70B name was retired → the
|
|
17
|
+
fallback 404'd). Restores a working, ~5s hosted backend.
|
|
18
|
+
- **Default local model qwen2.5:7b → qwen2.5:3b‑instruct** (~2× faster narration, grounding unchanged).
|
|
19
|
+
- **`keep_alive` (default 30m)** so the model stays resident on the GPU and idle calls don't pay the cold start.
|
|
20
|
+
- **Configurable backend order** `PEN_STACK_LLM_ORDER` (default `ollama,nemotron` = local/private‑first;
|
|
21
|
+
`nemotron,ollama` = speed‑first ~5s). `web/.env.example` documents all knobs.
|
|
22
|
+
|
|
6
23
|
## [6.2.3] - 2026-06-12 - v6.2.3: scope matcher covers functional titer + durability (patch)
|
|
7
24
|
|
|
8
25
|
**Honesty-coverage fix (from the 20-query acceptance suite, `phase_6.2/PEN-STACK_ACCEPTANCE_TESTS.md`).** The
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 6.2.
|
|
3
|
+
Version: 6.2.4
|
|
4
4
|
Summary: Open infrastructure for genome writing: the Writable Genome atlas, the Writer Atlas, and the Write Planner.
|
|
5
5
|
Author-email: Anees Ahmed Mahaboob Ali <ahmedaneesm@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -90,7 +90,7 @@ every design against rule-grounded mechanism, reports calibrated confidence, cit
|
|
|
90
90
|
[](https://codecov.io/gh/ahmedanees-m/pen-stack)
|
|
91
91
|
[](LICENSE)
|
|
92
92
|
[](https://www.python.org/)
|
|
93
|
-
[](CHANGELOG.md)
|
|
94
94
|
[](docs/STABILITY.md)
|
|
95
95
|
[](tests/)
|
|
96
96
|
[](https://github.com/astral-sh/ruff)
|
|
@@ -15,7 +15,7 @@ every design against rule-grounded mechanism, reports calibrated confidence, cit
|
|
|
15
15
|
[](https://codecov.io/gh/ahmedanees-m/pen-stack)
|
|
16
16
|
[](LICENSE)
|
|
17
17
|
[](https://www.python.org/)
|
|
18
|
-
[](CHANGELOG.md)
|
|
19
19
|
[](docs/STABILITY.md)
|
|
20
20
|
[](tests/)
|
|
21
21
|
[](https://github.com/astral-sh/ruff)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""PEN-STACK v3.0 - open infrastructure for genome writing."""
|
|
2
|
-
__version__ = "6.2.
|
|
2
|
+
__version__ = "6.2.4"
|
|
@@ -147,10 +147,11 @@ def _call_ollama(prompt: str) -> str:
|
|
|
147
147
|
|
|
148
148
|
r = requests.post(
|
|
149
149
|
f"{_ollama_base()}/api/generate",
|
|
150
|
-
json={"model": os.getenv("OLLAMA_MODEL", "qwen2.5:
|
|
150
|
+
json={"model": os.getenv("OLLAMA_MODEL", "qwen2.5:3b-instruct"), # 3B narrates ~2x faster than 7B
|
|
151
151
|
"prompt": prompt, "system": SYSTEM, "stream": False,
|
|
152
|
+
"keep_alive": os.getenv("OLLAMA_KEEP_ALIVE", "30m"), # keep warm -> avoid the cold start
|
|
152
153
|
"options": {"temperature": 0.2,
|
|
153
|
-
"num_predict": int(os.getenv("OLLAMA_NUM_PREDICT", "
|
|
154
|
+
"num_predict": int(os.getenv("OLLAMA_NUM_PREDICT", "400"))}},
|
|
154
155
|
timeout=_llm_timeout())
|
|
155
156
|
r.raise_for_status()
|
|
156
157
|
return r.json()["response"]
|
|
@@ -174,9 +175,9 @@ def _call_nemotron(prompt: str) -> str:
|
|
|
174
175
|
r = requests.post(
|
|
175
176
|
"https://integrate.api.nvidia.com/v1/chat/completions",
|
|
176
177
|
headers={"Authorization": f"Bearer {key}"},
|
|
177
|
-
json={"model": os.getenv("NEMOTRON_MODEL", "nvidia/llama-3.
|
|
178
|
+
json={"model": os.getenv("NEMOTRON_MODEL", "nvidia/llama-3.3-nemotron-super-49b-v1"),
|
|
178
179
|
"messages": [{"role": "system", "content": SYSTEM}, {"role": "user", "content": prompt}],
|
|
179
|
-
"temperature": 0.2, "max_tokens":
|
|
180
|
+
"temperature": 0.2, "max_tokens": 600},
|
|
180
181
|
timeout=_llm_timeout())
|
|
181
182
|
r.raise_for_status()
|
|
182
183
|
return r.json()["choices"][0]["message"]["content"]
|
|
@@ -207,11 +208,17 @@ def grounded_reply(message: str, history: list | None = None, *, allow_llm: bool
|
|
|
207
208
|
prompt = _prompt(message, tool_results, history)
|
|
208
209
|
|
|
209
210
|
if allow_llm and os.getenv("PEN_STACK_NO_LLM") != "1":
|
|
210
|
-
|
|
211
|
+
# configurable order: "ollama,nemotron" (privacy/local-first, the default) or "nemotron,ollama"
|
|
212
|
+
# (speed-first — the hosted 49B answers in ~5s vs ~25-50s on a workstation GPU). Either way the guard runs.
|
|
213
|
+
backends = {"ollama": _call_ollama, "nemotron": _call_nemotron}
|
|
214
|
+
order = [b.strip().lower() for b in os.getenv("PEN_STACK_LLM_ORDER", "ollama,nemotron").split(",")]
|
|
215
|
+
for name in order:
|
|
216
|
+
fn = backends.get(name)
|
|
217
|
+
if fn is None:
|
|
218
|
+
continue
|
|
211
219
|
try:
|
|
212
|
-
text = _enforce_grounding(
|
|
213
|
-
return {"reply": text, "tool_results": tool_results, "grounded": True,
|
|
214
|
-
"backend": backend.__name__.removeprefix("_call_")}
|
|
220
|
+
text = _enforce_grounding(fn(prompt), grounded) # HARD GATE
|
|
221
|
+
return {"reply": text, "tool_results": tool_results, "grounded": True, "backend": name}
|
|
215
222
|
except Exception: # any backend failure → next, then deterministic
|
|
216
223
|
continue
|
|
217
224
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 6.2.
|
|
3
|
+
Version: 6.2.4
|
|
4
4
|
Summary: Open infrastructure for genome writing: the Writable Genome atlas, the Writer Atlas, and the Write Planner.
|
|
5
5
|
Author-email: Anees Ahmed Mahaboob Ali <ahmedaneesm@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -90,7 +90,7 @@ every design against rule-grounded mechanism, reports calibrated confidence, cit
|
|
|
90
90
|
[](https://codecov.io/gh/ahmedanees-m/pen-stack)
|
|
91
91
|
[](LICENSE)
|
|
92
92
|
[](https://www.python.org/)
|
|
93
|
-
[](CHANGELOG.md)
|
|
94
94
|
[](docs/STABILITY.md)
|
|
95
95
|
[](tests/)
|
|
96
96
|
[](https://github.com/astral-sh/ruff)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pen-stack"
|
|
7
|
-
version = "6.2.
|
|
7
|
+
version = "6.2.4"
|
|
8
8
|
description = "Open infrastructure for genome writing: the Writable Genome atlas, the Writer Atlas, and the Write Planner."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|