Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
37e529f
FE-1518: Constraint schemas, boolean surfaces, and lowering (WIP)
kube Aug 27, 2026
5b515de
FE-1518: Constraints lower to HIR, ride the protocol, and evaluate fr…
kube Aug 27, 2026
46361c6
FE-1518: Author constraints in the optimization drawer
kube Aug 27, 2026
096c722
FE-1518: Strict margins go negative at the boundary; string nodes eva…
kube Aug 31, 2026
d25f259
FE-1518: Arithmetic matches ECMAScript at domain, overflow, and pow e…
kube Aug 31, 2026
8283ec7
FE-1518: Ruff conformance for the new evaluator tests
kube Aug 31, 2026
c481430
FE-1518: A NaN slack resolves at the comparison leaf with the boolean…
kube Aug 31, 2026
16b68ca
FE-1518: Margins short-circuit and keep their sign when a slack cancels
kube Sep 1, 2026
701e7a9
FE-1518: Constraints become a concept of their own, with a runtime HI…
kube Sep 2, 2026
2bd4244
FE-1518: The Python binding types the HIR and reads constraints as ca…
kube Sep 2, 2026
d1d58b0
FE-1518: Name the constraint layer past D2's reserved words
kube Sep 2, 2026
942cea5
FE-1518: Format the README's Python examples
kube Sep 2, 2026
ec673dc
FE-1518: Harden the evaluator's error paths and keep the symbolic vie…
kube Sep 2, 2026
78e63e4
FE-1518: Document constraints in the CLI usage manual
kube Sep 2, 2026
ca7930b
FE-1518: The lockstep assertion compares key sets as well as assignab…
kube Sep 2, 2026
e7e50f7
FE-1518: An overflowing backward range is empty, as in TypeScript
kube Sep 2, 2026
e3338c4
Remove the ignored CLI package from the optimization constraints chan…
kube Sep 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/optimization-constraints.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@hashintel/petrinaut": patch
"@hashintel/petrinaut-core": patch
---

Constraints are a concept of their own: boolean conditions over the parameter space or the simulation state, authored as TypeScript, lowered to serializable HIR, and validated against a runtime schema of the full HIR grammar. Optimization studies carry a list of them, authored in the create-optimization drawer and exposed through the describe protocol, where the Python binding reads them as callables with a boolean, a signed margin, a pydantic validator, and a SymPy view. Declarative only: nothing enforces them yet.
7 changes: 6 additions & 1 deletion apps/petrinaut-opt/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading