@tscircuit/schematic-trace-solver 0.0.108 → 0.0.109

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.
Files changed (23) hide show
  1. package/dist/index.d.ts +29 -1
  2. package/dist/index.js +502 -38
  3. package/lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts +3 -1
  4. package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +18 -3
  5. package/lib/solvers/UnroutedTraceRecoverySolver/UnroutedTraceRecoverySolver.ts +592 -0
  6. package/package.json +1 -1
  7. package/site/bug-reports/bug-report-20260724T175257Z.page.tsx +4 -0
  8. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +5 -9
  9. package/tests/bug-reports/bug-report-20260724T175257Z/__snapshots__/bug-report-20260724T175257Z.snap.svg +58 -0
  10. package/tests/bug-reports/bug-report-20260724T175257Z/bug-report-20260724T175257Z.json +138 -0
  11. package/tests/bug-reports/bug-report-20260724T175257Z/bug-report-20260724T175257Z.test.ts +12 -0
  12. package/tests/examples/__snapshots__/example04.snap.svg +7 -9
  13. package/tests/examples/__snapshots__/example08.snap.svg +16 -20
  14. package/tests/examples/__snapshots__/example13.snap.svg +2 -4
  15. package/tests/examples/__snapshots__/example32.snap.svg +64 -66
  16. package/tests/examples/__snapshots__/example46.snap.svg +1 -1
  17. package/tests/repros/__snapshots__/repro-netlabel-collision-687.snap.svg +81 -0
  18. package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +16 -18
  19. package/tests/repros/assets/repro-netlabel-collision-687.input.json +212 -0
  20. package/tests/repros/repro-netlabel-collision-687.test.ts +59 -0
  21. package/tests/solvers/UnroutedTraceRecoverySolver/paired-junction-recovery.test.ts +49 -0
  22. package/tests/solvers/UnroutedTraceRecoverySolver/skip-ground.test.ts +30 -0
  23. package/tests/solvers/UnroutedTraceRecoverySolver/skip-long-connection.test.ts +24 -0
package/dist/index.d.ts CHANGED
@@ -1017,6 +1017,33 @@ declare class NetLabelNetLabelCollisionSolver extends BaseSolver {
1017
1017
  visualize(): GraphicsObject;
1018
1018
  }
1019
1019
 
1020
+ declare class UnroutedTraceRecoverySolver extends BaseSolver {
1021
+ private params;
1022
+ private inputProblem;
1023
+ private alreadySolvedTraces;
1024
+ private failedConnectionPairs;
1025
+ private queuedConnectionPairs;
1026
+ private maxConnectionDistance;
1027
+ private groundGlobalConnNetId?;
1028
+ solvedUnroutedTraces: SolvedTracePath[];
1029
+ constructor(params: {
1030
+ inputProblem: InputProblem;
1031
+ failedConnectionPairs: MspConnectionPair[];
1032
+ alreadySolvedTraces: SolvedTracePath[];
1033
+ });
1034
+ getConstructorParams(): {
1035
+ inputProblem: InputProblem;
1036
+ failedConnectionPairs: MspConnectionPair[];
1037
+ alreadySolvedTraces: SolvedTracePath[];
1038
+ };
1039
+ _step(): void;
1040
+ getOutput(): {
1041
+ newTraces: SolvedTracePath[];
1042
+ allTracesMerged: SolvedTracePath[];
1043
+ };
1044
+ visualize(): graphics_debug.GraphicsObject;
1045
+ }
1046
+
1020
1047
  /**
1021
1048
  * Pipeline solver that runs a series of solvers to find the best schematic layout.
1022
1049
  * Coordinates the entire layout process from chip partitioning through final packing.
@@ -1036,6 +1063,7 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
1036
1063
  mspConnectionPairSolver?: MspConnectionPairSolver;
1037
1064
  schematicTraceLinesSolver?: SchematicTraceLinesSolver;
1038
1065
  longDistancePairSolver?: LongDistancePairSolver;
1066
+ unroutedTraceRecoverySolver?: UnroutedTraceRecoverySolver;
1039
1067
  traceOverlapShiftSolver?: TraceOverlapShiftSolver;
1040
1068
  netLabelPlacementSolver?: NetLabelPlacementSolver;
1041
1069
  labelMergingSolver?: MergedNetLabelObstacleSolver;
@@ -1055,7 +1083,7 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
1055
1083
  firstIterationOfPhase: Record<string, number>;
1056
1084
  inputProblem: InputProblem;
1057
1085
  hideRatsNet: boolean;
1058
- pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof LongDistancePairSolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver> | PipelineStep<typeof TraceLabelOverlapAvoidanceSolver> | PipelineStep<typeof TraceCleanupSolver> | PipelineStep<typeof Example28Solver> | PipelineStep<typeof AvailableNetOrientationSolver> | PipelineStep<typeof RailNetLabelCornerPlacementSolver> | PipelineStep<typeof TraceAnchoredNetLabelOverlapSolver> | PipelineStep<typeof NetLabelTraceCollisionSolver> | PipelineStep<typeof NetLabelNetLabelCollisionSolver>)[];
1086
+ pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof LongDistancePairSolver> | PipelineStep<typeof UnroutedTraceRecoverySolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver> | PipelineStep<typeof TraceLabelOverlapAvoidanceSolver> | PipelineStep<typeof TraceCleanupSolver> | PipelineStep<typeof Example28Solver> | PipelineStep<typeof AvailableNetOrientationSolver> | PipelineStep<typeof RailNetLabelCornerPlacementSolver> | PipelineStep<typeof TraceAnchoredNetLabelOverlapSolver> | PipelineStep<typeof NetLabelTraceCollisionSolver> | PipelineStep<typeof NetLabelNetLabelCollisionSolver>)[];
1059
1087
  constructor(inputProblem: InputProblem, opts?: Options);
1060
1088
  getConstructorParams(): ConstructorParameters<typeof SchematicTracePipelineSolver>;
1061
1089
  currentPipelineStepIndex: number;