pen-stack 6.4.0__tar.gz → 6.4.1__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.4.0 → pen_stack-6.4.1}/PKG-INFO +1 -1
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/__init__.py +1 -1
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/oracles/status.py +9 -2
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/web/llm.py +45 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack.egg-info/PKG-INFO +1 -1
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pyproject.toml +1 -1
- {pen_stack-6.4.0 → pen_stack-6.4.1}/CHANGELOG.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/CITATION.cff +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/LICENSE +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/MANIFEST.in +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/README.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/bench/run.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/benchmarks/genome_writing_bench/LEADERBOARD.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/benchmarks/genome_writing_bench/README.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/benchmarks/genome_writing_bench/SHA256SUMS +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/benchmarks/genome_writing_bench/SUBMISSIONS.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/benchmarks/genome_writing_bench/tasks.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/benchmarks/genome_writing_challenge/README.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/benchmarks/genome_writing_challenge/SUBMISSIONS.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/antipeg.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/atlas_families.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/bridge_offtarget_profile.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/capsid_epitope_oracle.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/capsid_sequences.fasta +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/cargo_polish.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/cell_types.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/datasets.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/delivery_constraints.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/delivery_rules.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/delivery_vehicles.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/gates_v3.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/genotoxicity_oracle.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/gsh_validated_heldout.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/intent_weights.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/known_unknowns.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/llm.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/metric_guide.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/monitor_queries.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/oracles/execution.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/oracles/scope_cards.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/rules/delivery.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/rules/fold.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/rules/multiplex.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/rules/payload.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/rules/reachability.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/safety/hazard_registry.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/safety/policy.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/safety/probes.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/score_axes.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/seroprevalence.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/target_sites.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/universe_crosswalk.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/write_types.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/configs/wtkb_curated.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/data/curated/bridge_offtarget_energetics.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/data/curated/bridge_offtarget_profile_measured.parquet +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/data/curated/gene_coords.parquet +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/data/curated/unified_editor_universe.parquet +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/BACKLOG.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/DEPLOY.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/INFRA.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/MCP.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/RELEASING.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/REPRO.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/STABILITY.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/agent.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/alphagenome_feasibility.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/autonomy.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/benchmark_circularity.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/biosecurity.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/build_interface.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/cards/atlas.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/cards/durability.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/cards/safety.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/challenge.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/closed_loop.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/co_scientist.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/co_scientist_loop.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/delivery.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/delivery_immunology.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/digital_twin.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/dissemination.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/environment.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/experiment_design.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/generative_design.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/index.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/integrations.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/live_oracles.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/mechanistic_constraints.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/oracles.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/positioning.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/private_data_formats.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/quickstart.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/responsible_use.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/rules.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/scope.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/scorecard.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/tutorials/compare-families.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/tutorials/score-deliverability.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/tutorials/where-can-i-write.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/tutorials/which-writer-reaches-locus.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/uncertainty.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/verify.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/world_model.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/writer_verification.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/docs/wtkb.md +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/_resources.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/active/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/active/acquire.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/active/design.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/active/validate.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/adapt/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/adapt/finetune.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/adapt/ingest.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/adapt/pipeline.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/adapt/recalibrate.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/adapt/report.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/cite.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/co_scientist.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/epistemic.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/guardrails.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/mcp_server.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/orchestrator.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/orchestrator_live.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/pen_agent.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/scope.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/agent/tools.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/api/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/api/manifest.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/atlas/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/atlas/build_wtkb.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/atlas/crosslink.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/atlas/expand.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/atlas/schema.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/atlas/scorecard.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/atlas/universe.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/atlas/variant_propose.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/atlas/writer_verify.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/bridge/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/bridge/activity.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/bridge/cli.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/bridge/fold_qc.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/bridge/guide_qc.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/bridge/ingest.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/bridge/offtarget.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/bridge/offtarget_energetics.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/bridge/ortholog_screen.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/bridge/pipeline.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/build/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/build/ingest.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/build/protocol.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/build/simlab.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/cli.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/data/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/data/encode.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/data/genome.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/data/ingest_chromatin.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/data/ingest_integration.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/data/ingest_safety_annot.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/data/ingest_trip.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/design/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/design/generate.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/design/pareto.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/design/space.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/env/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/env/genome_writing_env.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/env/policies.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/graph/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/graph/build.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/graph/cell_types.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/graph/ingest.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/graph/query.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/graph/schema.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/loop/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/loop/continual.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/loop/cycle.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/loop/drift.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/mech/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/mech/classify_atlas.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/mech/whitelist.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/monitor/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/monitor/europepmc.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/monitor/run.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/monitor/triage.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/oracles/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/oracles/cache.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/oracles/energetics.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/oracles/genome.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/oracles/protein_design.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/oracles/rna.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/oracles/schema.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/oracles/structure.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/oracles/vcell.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/antipeg_oracle.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/capsid_epitope_oracle.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/cargo.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/cargo_polish.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/delivery.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/delivery_constraints.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/delivery_immunology.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/delivery_vehicles.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/genotoxicity_oracle.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/immune_profile.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/innate_sensing.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/multiplex.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/optimize.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/pipeline.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/report.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/router.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/seroprevalence_oracle.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/planner/target_site.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/rag/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/rag/index.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/rag/llm.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/rag/qa.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/rules/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/rules/evaluators.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/rules/loader.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/rules/schema.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/rules/solver.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/safety/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/safety/audit.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/safety/gate.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/safety/policy.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/safety/redteam.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/safety/registry.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/safety/screen.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/score/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/score/recalibrate.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/score/therapeutic.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/server/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/server/api.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/twin/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/twin/calibrate.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/twin/mechanistic.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/twin/outcome.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/ui/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/ui/app.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/adapt_demo.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/agent_eval.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/bench_adversarial_tasks.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/bench_coscientist_tasks.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/bench_graph_tasks.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/bench_rule_tasks.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/bench_trust_tasks.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/bench_writetype_tasks.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/blind_gsh_discovery.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/cargo_directionality.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/closed_loop.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/durability_baselines.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/experiment_design.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/forward_hypotheses.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/generative_design.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/guide_qc_demo.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/immune_calibration.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/intent_specification.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/offtarget_energetics_eval.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/out_of_scope_refusal.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/outcome_calibration.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/outcome_prediction.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/paper3_benchmark.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/paper4_real_validation.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/paper4_validation.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/protocol_safety.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/safety_screening.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/selective_prediction.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/seq_vs_measured.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/target_site_controls.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/uncertainty_eval.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/ungrounded_baseline.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/within_locus_ranking.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/validate/writer_recovery.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/verify/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/verify/schema.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/verify/service.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/web/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/web/guide.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/web/router.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/web/server.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/web/tools.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/__init__.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/chromatin_seq.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/durability.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/export_tracks.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/features.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/gsh_baseline.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/mesh_features.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/ood.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/providers.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/safety.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/structure3d.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/uncertainty.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack/wgenome/writability.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack.egg-info/SOURCES.txt +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack.egg-info/dependency_links.txt +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack.egg-info/entry_points.txt +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack.egg-info/requires.txt +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/pen_stack.egg-info/top_level.txt +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_phase0.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_phase1_5.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_phase2.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_phase3.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_a.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_acq.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_aldesign.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_alvalidate.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_atlas.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_b.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_ba.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_ba_v33.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_ba_v45.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_bench.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_c.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_cal.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_calib.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_challenge.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_chat.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_cite.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_continual.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_cosci2.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_crit.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_ct.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_d.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_drift.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_e.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_env.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_ep.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_epitope.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_f.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_frontend.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_g.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_gen.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_genotox.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_graph.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_h.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_hybrid.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_immune.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_ingest.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_innate.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_loop.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_manifest.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_mc.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_mcp.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_mech.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_mon.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_o.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_openapi.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_orch.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_outcome.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_pareto.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_peg.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_plan.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_policy.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_profile.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_proto.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_r.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_redteam.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_route.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_screen.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_seroprev.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_simlab.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_twincal.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_uq.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_v.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_vcell.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/SHA256_LOCK_ws_wv.json +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/paper1.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/paper2.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/paper3.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/paper4.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/phase0.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_a.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_acq.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_aldesign.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_alvalidate.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_atlas.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_b.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_ba.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_ba_v33.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_ba_v45.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_bench.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_c.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_cal.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_calib.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_challenge.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_chat.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_cite.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_continual.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_cosci2.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_crit.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_ct.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_d.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_drift.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_e.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_env.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_ep.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_epitope.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_f.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_frontend.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_g.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_gen.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_genotox.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_graph.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_h.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_hybrid.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_immune.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_ingest.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_innate.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_loop.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_manifest.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_mc.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_mcp.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_mech.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_mon.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_o.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_openapi.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_orch.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_outcome.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_pareto.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_peg.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_plan.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_policy.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_profile.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_proto.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_r.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_redteam.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_route.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_screen.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_seroprev.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_simlab.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_twincal.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_uq.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_v.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_vcell.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/prereg/ws_wv.yaml +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p1_build_atlas.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p1_build_durability.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p1_export_tracks.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p1_safety_concordance.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p1_train_safety.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p1_validation_report.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p2_build_atlas.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p3_benchmark_report.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p4_genome_scan.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p52_build_genotox_oracle.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/p53_build_epitope_oracle.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/ws_b_report.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/scripts/ws_c_report.py +0 -0
- {pen_stack-6.4.0 → pen_stack-6.4.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 6.4.
|
|
3
|
+
Version: 6.4.1
|
|
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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""PEN-STACK v3.0 - open infrastructure for genome writing."""
|
|
2
|
-
__version__ = "6.4.
|
|
2
|
+
__version__ = "6.4.1"
|
|
@@ -65,8 +65,15 @@ def _is_live(model: str, card: dict, probe: bool) -> tuple[bool, str]:
|
|
|
65
65
|
if ex == "hosted_api":
|
|
66
66
|
if not _net_on():
|
|
67
67
|
return False, "set PEN_STACK_ORACLE_NET=1 to enable live calls"
|
|
68
|
-
if model == "alphagenome"
|
|
69
|
-
|
|
68
|
+
if model == "alphagenome":
|
|
69
|
+
if not _alphagenome_key():
|
|
70
|
+
return False, "add configs/alphagenome_api_key.txt"
|
|
71
|
+
try:
|
|
72
|
+
from pen_stack.wgenome.providers import package_available
|
|
73
|
+
if not package_available():
|
|
74
|
+
return False, "pip install alphagenome"
|
|
75
|
+
except Exception: # noqa: BLE001
|
|
76
|
+
return False, "alphagenome package unavailable"
|
|
70
77
|
if model == "evo2" and not _nvidia_key():
|
|
71
78
|
return False, "add configs/nvidia_api_key.txt"
|
|
72
79
|
return True, "hosted API ready"
|
|
@@ -242,11 +242,56 @@ def _history_block(history):
|
|
|
242
242
|
return out
|
|
243
243
|
|
|
244
244
|
|
|
245
|
+
# -------------------------------------------------------------------------------------- pre-route safety screen
|
|
246
|
+
# Defence-in-depth: a hazard-adjacent message gets the Guardian (biosecurity gate) BEFORE lane routing, so a
|
|
247
|
+
# hazardous request that would route to general/explain/meta (no design signal) is still screened — not only the
|
|
248
|
+
# design lane. The Guardian is framing-stripped and is the AUTHORITY on the decision; this broad regex only
|
|
249
|
+
# decides WHETHER to invoke it (benign chat skips it, and a false-positive trigger is harmless — the Guardian
|
|
250
|
+
# clears generic biology). Aligned with configs/safety/hazard_registry.yaml.
|
|
251
|
+
_HAZARD_RE = re.compile(
|
|
252
|
+
r"\b(toxin|ricin|abrin|botulin(?:um)?|bont|anthrax|protective[- ]antigen|lethal[- ]factor|edema[- ]factor|"
|
|
253
|
+
r"shiga|verotoxin|conotoxin|saxitoxin|tetrodotoxin|tetanus|diphtheria|cholera|enterotoxin|superantigen|"
|
|
254
|
+
r"ribosome[- ]?inactivating|clostridial|nerve[- ]agent|sarin|soman|tabun|vx|novichok|smallpox|variola|"
|
|
255
|
+
r"ebola|marburg|nipah|hendra|lassa|h[ae]?morrhagic[- ]fever|select[- ]agent|bioweapon|biological[- ]weapon|"
|
|
256
|
+
r"biothreat|gain[- ]of[- ]function|pathogen|virulence)\b", re.I)
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
def _pre_route_safety(message: str):
|
|
260
|
+
"""If the message is hazard-adjacent, run the Guardian (framing-stripped) on it BEFORE lane routing. Returns a
|
|
261
|
+
SafetyVerdict when the decision is refuse/escalate (the caller short-circuits to a decline), else None."""
|
|
262
|
+
if not _HAZARD_RE.search(message or ""):
|
|
263
|
+
return None
|
|
264
|
+
try:
|
|
265
|
+
from pen_stack.safety import safety_gate
|
|
266
|
+
verdict = safety_gate({"cargo_function": (message or "").strip()}, actor="chat")
|
|
267
|
+
except Exception: # noqa: BLE001 - the screen must never crash the chat; design lane still screens via run_tools
|
|
268
|
+
return None
|
|
269
|
+
return verdict if getattr(verdict, "decision", None) in {"refuse", "escalate"} else None
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
def _safety_decline(verdict) -> dict:
|
|
273
|
+
reason = (getattr(verdict, "reason", None) or "matched a biosecurity hazard signature").strip()
|
|
274
|
+
reply = (
|
|
275
|
+
f"⛔ **Declined by the biosecurity screen (Guardian).** This request was assessed as **{verdict.decision}** "
|
|
276
|
+
f"— {reason}\n\nPEN-STACK is a genome-writing co-scientist with a dual-use safety gate; it does not help "
|
|
277
|
+
"design, express, or enhance select-agent toxins or pathogens. If this was a general scientific question, "
|
|
278
|
+
"please rephrase it without a build/express intent.")
|
|
279
|
+
return {"mode": "safety", "provenance": "pen-stack", "grounded": True, "reply": reply, "backend": "guardian",
|
|
280
|
+
"tool_results": {"safety": {"decision": verdict.decision, "reason": verdict.reason}},
|
|
281
|
+
"angles": None, "facts": None}
|
|
282
|
+
|
|
283
|
+
|
|
245
284
|
# -------------------------------------------------------------------------------------- the public entry point
|
|
246
285
|
def grounded_reply(message: str, history: list | None = None, *, allow_llm: bool = True) -> dict:
|
|
247
286
|
"""Route the message to a lane and answer it. Returns {reply, mode, provenance, grounded, backend,
|
|
248
287
|
tool_results?, facts?, angles?}. The first three lanes are engine-grounded (guard ON); the 'general' lane is
|
|
249
288
|
explicitly labelled trained-knowledge and never attributes a number to PEN-STACK."""
|
|
289
|
+
# Defence-in-depth: screen hazard-adjacent messages with the Guardian BEFORE routing, so a hazardous request
|
|
290
|
+
# that would land in general/explain/meta (no design signal) is still refused — not only the design lane.
|
|
291
|
+
verdict = _pre_route_safety(message)
|
|
292
|
+
if verdict is not None:
|
|
293
|
+
return _safety_decline(verdict)
|
|
294
|
+
|
|
250
295
|
mode = classify(message, history)
|
|
251
296
|
hist = _history_block(history)
|
|
252
297
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 6.4.
|
|
3
|
+
Version: 6.4.1
|
|
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
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pen-stack"
|
|
7
|
-
version = "6.4.
|
|
7
|
+
version = "6.4.1"
|
|
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
|
|
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
|