@tscircuit/capacity-autorouter 0.0.285 → 0.0.287

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.
package/dist/index.d.ts CHANGED
@@ -4,8 +4,8 @@ import { ConnectivityMap } from 'circuit-json-to-connectivity-map';
4
4
  import { RectDiffPipeline } from '@tscircuit/rectdiff';
5
5
  import { BaseSolver as BaseSolver$1 } from '@tscircuit/solver-utils';
6
6
  import { Point3, Polygon } from '@tscircuit/math-utils';
7
- import { JumperGraphSolver, JRegion, JPort, Region, RegionPort, HyperGraphSolver, HyperGraph, Connection, Candidate as Candidate$3, RegionPortAssignment, SolvedRoute } from '@tscircuit/hypergraph';
8
7
  import { CurvyTraceSolver } from '@tscircuit/curvy-trace-solver';
8
+ import { JumperGraphSolver, JRegion, JPort, Region, RegionPort, HyperGraphSolver, HyperGraph, Connection, Candidate as Candidate$3, RegionPortAssignment, SolvedRoute } from '@tscircuit/hypergraph';
9
9
  import { ConnectivityMap as ConnectivityMap$1 } from 'connectivity-map';
10
10
 
11
11
  type TraceId = string;
@@ -3496,6 +3496,45 @@ declare class SimpleHighDensitySolver extends BaseSolver {
3496
3496
  visualize(): GraphicsObject;
3497
3497
  }
3498
3498
 
3499
+ interface AdjacentObstacle {
3500
+ minX: number;
3501
+ minY: number;
3502
+ maxX: number;
3503
+ maxY: number;
3504
+ networkId?: string;
3505
+ }
3506
+ interface CurvyIntraNodeSolverParams {
3507
+ nodeWithPortPoints: NodeWithPortPoints;
3508
+ colorMap?: Record<string, string>;
3509
+ traceWidth?: number;
3510
+ viaDiameter?: number;
3511
+ /** Obstacles from adjacent/solved nodes that might affect routing */
3512
+ adjacentObstacles?: AdjacentObstacle[];
3513
+ }
3514
+ /**
3515
+ * A solver that uses CurvyTraceSolver to create curved traces within a node.
3516
+ * It converts port points to waypoint pairs and generates smooth curved traces
3517
+ * that maximize distance between traces and obstacles.
3518
+ */
3519
+ declare class CurvyIntraNodeSolver extends BaseSolver {
3520
+ getSolverName(): string;
3521
+ nodeWithPortPoints: NodeWithPortPoints;
3522
+ colorMap: Record<string, string>;
3523
+ traceWidth: number;
3524
+ viaDiameter: number;
3525
+ adjacentObstacles: AdjacentObstacle[];
3526
+ routes: HighDensityIntraNodeRoute$1[];
3527
+ curvyTraceSolver?: CurvyTraceSolver;
3528
+ phase: "initializing" | "solving" | "done";
3529
+ constructor(params: CurvyIntraNodeSolverParams);
3530
+ _step(): void;
3531
+ _initializeCurvySolver(): void;
3532
+ _stepCurvySolver(): void;
3533
+ _convertOutputTraces(): void;
3534
+ getConstructorParams(): CurvyIntraNodeSolverParams;
3535
+ visualize(): GraphicsObject;
3536
+ }
3537
+
3499
3538
  interface JumperPrepatternSolver2HyperParameters {
3500
3539
  /** Number of columns in the jumper grid */
3501
3540
  COLS?: number;
@@ -3505,11 +3544,16 @@ interface JumperPrepatternSolver2HyperParameters {
3505
3544
  ORIENTATION?: "horizontal" | "vertical";
3506
3545
  /** Jumper type - "1206x4" or "0603". Defaults to "1206x4" */
3507
3546
  JUMPER_TYPE?: JumperType;
3547
+ /** Number of traces to reserve space for between adjacent jumpers (0603 only) */
3548
+ TRACE_CHANNELS_BETWEEN_JUMPERS?: number;
3549
+ /** 0603 topology pattern. Defaults to "grid" */
3550
+ PATTERN?: "grid" | "staggered";
3508
3551
  }
3509
3552
  interface JumperPrepatternSolver2Params {
3510
3553
  nodeWithPortPoints: NodeWithPortPoints;
3511
3554
  colorMap?: Record<string, string>;
3512
3555
  traceWidth?: number;
3556
+ obstacleMargin?: number;
3513
3557
  hyperParameters?: JumperPrepatternSolver2HyperParameters;
3514
3558
  connMap?: ConnectivityMap;
3515
3559
  }
@@ -3530,6 +3574,7 @@ declare class JumperPrepatternSolver2_HyperGraph extends BaseSolver {
3530
3574
  nodeWithPortPoints: NodeWithPortPoints;
3531
3575
  colorMap: Record<string, string>;
3532
3576
  traceWidth: number;
3577
+ obstacleMargin: number;
3533
3578
  hyperParameters: JumperPrepatternSolver2HyperParameters;
3534
3579
  jumperGraphSolver: JumperGraphSolver | null;
3535
3580
  xyConnections: XYConnection[];
@@ -3588,6 +3633,7 @@ declare class JumperPrepatternSolver2_HyperGraph extends BaseSolver {
3588
3633
  constructor(params: JumperPrepatternSolver2Params);
3589
3634
  getConstructorParams(): JumperPrepatternSolver2Params;
3590
3635
  private _buildColorMap;
3636
+ private _normalizeRegionPolygonsToBounds;
3591
3637
  private _getPatternConfig;
3592
3638
  /**
3593
3639
  * Generate a 0603 jumper grid sized to fit the node bounds.
@@ -3625,6 +3671,7 @@ interface HyperJumperPrepatternSolver2Params {
3625
3671
  nodeWithPortPoints: NodeWithPortPoints;
3626
3672
  colorMap?: Record<string, string>;
3627
3673
  traceWidth?: number;
3674
+ obstacleMargin?: number;
3628
3675
  connMap?: ConnectivityMap;
3629
3676
  hyperParameters?: JumperPrepatternSolver2HyperParameters;
3630
3677
  /** Available jumper types. Defaults to ["0603"] */
@@ -3635,6 +3682,8 @@ type VariantHyperParameters = {
3635
3682
  ROWS: number;
3636
3683
  ORIENTATION: "horizontal" | "vertical";
3637
3684
  JUMPER_TYPE: JumperType;
3685
+ PATTERN?: "grid" | "staggered";
3686
+ TRACE_CHANNELS_BETWEEN_JUMPERS?: number;
3638
3687
  };
3639
3688
  /**
3640
3689
  * HyperJumperPrepatternSolver2 runs multiple variants of JumperPrepatternSolver2_HyperGraph
@@ -3651,6 +3700,7 @@ declare class HyperJumperPrepatternSolver2 extends HyperParameterSupervisorSolve
3651
3700
  nodeWithPortPoints: NodeWithPortPoints;
3652
3701
  colorMap: Record<string, string>;
3653
3702
  traceWidth: number;
3703
+ obstacleMargin: number;
3654
3704
  connMap?: ConnectivityMap;
3655
3705
  baseHyperParameters?: JumperPrepatternSolver2HyperParameters;
3656
3706
  availableJumperTypes: JumperType[];
@@ -3669,10 +3719,12 @@ declare class HyperJumperPrepatternSolver2 extends HyperParameterSupervisorSolve
3669
3719
  */
3670
3720
  isValidCombination(hyperParameters: VariantHyperParameters): boolean;
3671
3721
  getCombinationDefs(): string[][];
3722
+ private calculateMax0603ConfigWithTraceChannels;
3672
3723
  /**
3673
3724
  * Override initializeSolvers to use getCombinationDefs for both 0603 and 1206x4.
3674
- * For 0603: uses pre-calculated max rows/cols per orientation (2 configs total)
3675
- * For 1206x4: uses full combination of cols, rows, and orientation
3725
+ * For 0603: uses pre-calculated max rows/cols for each orientation, trace channel count,
3726
+ * and pattern (grid/staggered).
3727
+ * For 1206x4: uses full combination of cols, rows, and orientation.
3676
3728
  */
3677
3729
  initializeSolvers(): void;
3678
3730
  generateSolver(hyperParameters: VariantHyperParameters): JumperPrepatternSolver2_HyperGraph;
@@ -3684,45 +3736,6 @@ declare class HyperJumperPrepatternSolver2 extends HyperParameterSupervisorSolve
3684
3736
  visualize(): GraphicsObject;
3685
3737
  }
3686
3738
 
3687
- interface AdjacentObstacle {
3688
- minX: number;
3689
- minY: number;
3690
- maxX: number;
3691
- maxY: number;
3692
- networkId?: string;
3693
- }
3694
- interface CurvyIntraNodeSolverParams {
3695
- nodeWithPortPoints: NodeWithPortPoints;
3696
- colorMap?: Record<string, string>;
3697
- traceWidth?: number;
3698
- viaDiameter?: number;
3699
- /** Obstacles from adjacent/solved nodes that might affect routing */
3700
- adjacentObstacles?: AdjacentObstacle[];
3701
- }
3702
- /**
3703
- * A solver that uses CurvyTraceSolver to create curved traces within a node.
3704
- * It converts port points to waypoint pairs and generates smooth curved traces
3705
- * that maximize distance between traces and obstacles.
3706
- */
3707
- declare class CurvyIntraNodeSolver extends BaseSolver {
3708
- getSolverName(): string;
3709
- nodeWithPortPoints: NodeWithPortPoints;
3710
- colorMap: Record<string, string>;
3711
- traceWidth: number;
3712
- viaDiameter: number;
3713
- adjacentObstacles: AdjacentObstacle[];
3714
- routes: HighDensityIntraNodeRoute$1[];
3715
- curvyTraceSolver?: CurvyTraceSolver;
3716
- phase: "initializing" | "solving" | "done";
3717
- constructor(params: CurvyIntraNodeSolverParams);
3718
- _step(): void;
3719
- _initializeCurvySolver(): void;
3720
- _stepCurvySolver(): void;
3721
- _convertOutputTraces(): void;
3722
- getConstructorParams(): CurvyIntraNodeSolverParams;
3723
- visualize(): GraphicsObject;
3724
- }
3725
-
3726
3739
  interface NodeAnalysis {
3727
3740
  node: NodeWithPortPoints;
3728
3741
  hasCrossings: boolean;
@@ -3743,6 +3756,7 @@ declare class JumperHighDensitySolver extends BaseSolver {
3743
3756
  routes: HighDensityIntraNodeRoute$1[];
3744
3757
  colorMap: Record<string, string>;
3745
3758
  traceWidth: number;
3759
+ obstacleMargin: number;
3746
3760
  viaDiameter: number;
3747
3761
  connMap?: ConnectivityMap;
3748
3762
  hyperParameters?: Partial<HighDensityHyperParameters>;
@@ -3759,10 +3773,11 @@ declare class JumperHighDensitySolver extends BaseSolver {
3759
3773
  currentJumperSolverIndex: number;
3760
3774
  phase: "analyzing" | "curvy" | "jumpers" | "done";
3761
3775
  jumpers: Jumper$1[];
3762
- constructor({ nodePortPoints, colorMap, traceWidth, viaDiameter, connMap, hyperParameters, capacityMeshNodes, capacityMeshEdges, availableJumperTypes, }: {
3776
+ constructor({ nodePortPoints, colorMap, traceWidth, obstacleMargin, viaDiameter, connMap, hyperParameters, capacityMeshNodes, capacityMeshEdges, availableJumperTypes, }: {
3763
3777
  nodePortPoints: NodeWithPortPoints[];
3764
3778
  colorMap?: Record<string, string>;
3765
3779
  traceWidth?: number;
3780
+ obstacleMargin?: number;
3766
3781
  viaDiameter?: number;
3767
3782
  connMap?: ConnectivityMap;
3768
3783
  hyperParameters?: Partial<HighDensityHyperParameters>;
@@ -3809,6 +3824,7 @@ declare class JumperHighDensitySolver extends BaseSolver {
3809
3824
  nodePortPoints: NodeWithPortPoints[];
3810
3825
  colorMap: Record<string, string>;
3811
3826
  traceWidth: number;
3827
+ obstacleMargin: number;
3812
3828
  viaDiameter: number;
3813
3829
  connMap: ConnectivityMap | undefined;
3814
3830
  hyperParameters: Partial<HighDensityHyperParameters> | undefined;