Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/pyautolabs/pyautoarray/jax_and_decoratorsgit clone --depth 1 https://github.com/PyAutoLabs/PyAutoArrayWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.03124 |
| Opus 5 | $0.00000 | $0.01562 |
| Sonnet 5 | $0.00000 | $0.00625 |
| Haiku 4.5 | $0.00000 | $0.00312 |
Grade A, and why
jax_and_decorators scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 270 lines — stays where its author put it; the contents beside it link to each section on GitHub.
JAX & the decorator system — deep dive
Long-form reference for the grid decorators, the xp (NumPy/JAX) backend
pattern, and how autoarray types cross the jax.jit boundary. The per-repo
AGENTS.md files keep only a short summary and link here. This is the single
canonical source for the detail — PyAutoGalaxy and PyAutoLens point at it
rather than re-explaining.
Everything below is grounded in the installed source under
autoarray/, autogalaxy/, and autolens/. Where a class or function is
named, it exists in the current tree.
1. The decorator system
autoarray/structures/decorators/ contains the output-wrapping decorators
used on all grid-consuming functions. They ensure the type of the output
structure matches the type of the input grid.
Import them as aa.decorators.*. (aa.grid_dec still resolves as a
deprecated alias — autoarray/__init__.py defines
from .structures import decorators as grid_dec # deprecated alias — but
every shipped profile uses aa.decorators.*, so write that form.)
| Decorator | Grid2D input → |
Grid2DIrregular input → |
|---|---|---|
@aa.decorators.to_array |
Array2D |
ArrayIrregular |
@aa.decorators.to_grid |
Grid2D |
Grid2DIrregular |
@aa.decorators.to_vector_yx |
VectorYX2D |
VectorYX2DIrregular |
How they work
All three share AbstractMaker (decorators/abstract.py). The decorator:
- Wraps the function in a
wrapper(obj, grid, xp=np, *args, **kwargs)signature. - Instantiates the relevant
*Makerclass with the function, object, grid, andxp. AbstractMaker.resultchecks the grid type and calls the appropriatevia_grid_2d/via_grid_2d_irrmethod to wrap the raw result.
The function body receives the grid as-is and must return a raw array (not an autoarray wrapper). The decorator does the wrapping:
@aa.decorators.to_array
def convergence_2d_from(self, grid, xp=np, **kwargs):
# grid is Grid2D or Grid2DIrregular — access raw values via grid.array[:, 0]
y = grid.array[:, 0]
x = grid.array[:, 1]
return xp.sqrt(y**2 + x**2) # return raw array; decorator wraps it
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 270 lines · 0 tokens per session scan A 3480ae24b144
jax_and_decorators is an agent published in the GitHub repository PyAutoLabs/PyAutoArray (10 stars, last pushed 3d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 3,124 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
SciTeXTranslatorAgent
MUST BE USED. Knows SciTeX usage with proper formats. Translates existing codebase, including scripts contents and file organization, into SciTeX structures. Not applicable to src or tests but to ./scripts and ./examples. For examples development, please call at the final stage as this agent can translate working…
ResearcherAgent
MUST BE USED. A prospective researcher in a scientic fields.
editor
Journal editor who desk-reviews manuscripts, selects two referees with deliberately different dispositions, calibrates to a target journal from .claude/references/journal-profiles.md, and synthesizes an editorial decision (FATAL / ADDRESSABLE / TASTE). Used by /review-paper --peer [journal].
algorithm-expert
RL algorithm expert. Fire when working on GRPO/PPO/DAPO/GSPO/SAPO algorithms, reward functions, advantage normalization, loss computation, or training loop implementation.
by-epitope
Deep epitope analysis agent. Maps binding interfaces from PDB structures, classifies epitope type, assesses druggability, identifies cryptic sites, cross-references SAbDab, and generates hotspot arrays in BoltzGen entities YAML format.
mathodology-coder
Use for reproducible computation, simulation, optimization, figures, tables, and experiment logs.