Files
Imhotep/packages/imhotep-core
John Dvorak 7f40224f0f fix: propagate compound state through toAst() and canonical lowering
ast.ts: Add optional compoundOperator and compoundParts fields to
  RelationAssertion, allowing compound fluent assertions to carry
  their .and / .or structure through the AST layer.

fluent.ts: toAst() now emits compoundOperator/compoundParts when
  isCompound, closing the gap where compound state was silently
  dropped in canonical extraction, preset building, and validation.

lower-to-canonical.ts: Handle RelationAssertion with compound metadata
  by lowering each part as a separate grouped clause (same groupId,
  same compoundOperator), matching DSL parser compound behavior.

validator.ts: Validate options on each compound part, closing the
  false-positive validation gap where only the final relation was checked.

3 lossy code paths (extractCanonicalFromAssertion, presets.toPresetResult,
validateRelation) now preserve compound structure. Primary FOL evaluation
path was already correct (fol-compiler reads compoundParts directly).

658 tests pass.
2026-05-22 13:46:54 -07:00
..

imhotep-core

Foundation types and contracts for Imhotep. Defines the AST/IR, geometry world schema, diagnostic taxonomy, pipeline contracts, FOL AST/IR representations, domain/value types, scene target descriptors, property contract/results types, and geometry snapshot caching.

Key Exports

Module Description
types Core type definitions (positions, IDs, results, proofs)
ast Unist-style AST node definitions
ir Semantic IR and execution IR
world Geometry world schema tables
contracts Extractor, solver, compiler, reporter interfaces
diagnostics Diagnostic categories, error codes, traces, shrinking
logic-ast FOL AST types (quantifiers, connectives, predicates)
logic-ir Lowered FOL IR for logic engine
canonical Canonical world adapter for solver
geometry-cache Disk-based extraction caching