@tscircuit/capacity-autorouter 0.0.267 → 0.0.269

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
@@ -40,6 +40,7 @@ type Jumper$1 = {
40
40
  height: number;
41
41
  pads: Obstacle[];
42
42
  };
43
+ type JumperType = "1206x4" | "0603";
43
44
  interface SimpleRouteJson {
44
45
  layerCount: number;
45
46
  minTraceWidth: number;
@@ -61,6 +62,8 @@ interface SimpleRouteJson {
61
62
  traces?: SimplifiedPcbTraces;
62
63
  jumpers?: Jumper$1[];
63
64
  allowJumpers?: boolean;
65
+ /** Available jumper types for routing. Defaults to ["0603"] */
66
+ availableJumperTypes?: JumperType[];
64
67
  }
65
68
  interface Obstacle {
66
69
  obstacleId?: string;
@@ -3471,6 +3474,8 @@ interface JumperPrepatternSolver2HyperParameters {
3471
3474
  ROWS?: number;
3472
3475
  /** Orientation of jumpers - "horizontal" or "vertical" */
3473
3476
  ORIENTATION?: "horizontal" | "vertical";
3477
+ /** Jumper type - "1206x4" or "0603". Defaults to "1206x4" */
3478
+ JUMPER_TYPE?: JumperType;
3474
3479
  }
3475
3480
  interface JumperPrepatternSolver2Params {
3476
3481
  nodeWithPortPoints: NodeWithPortPoints;
@@ -3555,6 +3560,13 @@ declare class JumperPrepatternSolver2_HyperGraph extends BaseSolver {
3555
3560
  getConstructorParams(): JumperPrepatternSolver2Params;
3556
3561
  private _buildColorMap;
3557
3562
  private _getPatternConfig;
3563
+ /**
3564
+ * Generate a 0603 jumper grid sized to fit the node bounds.
3565
+ * generateJumperGrid doesn't support bounds/orientation, so we calculate
3566
+ * the outer padding dynamically to ensure the grid extends to the node boundaries.
3567
+ * NO SCALING - the outer padding is calculated to fill the space.
3568
+ */
3569
+ private _generate0603Grid;
3558
3570
  private _initializeGraph;
3559
3571
  _step(): void;
3560
3572
  private _stepJumperGraph;
@@ -3586,11 +3598,14 @@ interface HyperJumperPrepatternSolver2Params {
3586
3598
  traceWidth?: number;
3587
3599
  connMap?: ConnectivityMap;
3588
3600
  hyperParameters?: JumperPrepatternSolver2HyperParameters;
3601
+ /** Available jumper types. Defaults to ["0603"] */
3602
+ availableJumperTypes?: JumperType[];
3589
3603
  }
3590
3604
  type VariantHyperParameters = {
3591
3605
  COLS: number;
3592
3606
  ROWS: number;
3593
3607
  ORIENTATION: "horizontal" | "vertical";
3608
+ JUMPER_TYPE: JumperType;
3594
3609
  };
3595
3610
  /**
3596
3611
  * HyperJumperPrepatternSolver2 runs multiple variants of JumperPrepatternSolver2_HyperGraph
@@ -3609,27 +3624,28 @@ declare class HyperJumperPrepatternSolver2 extends HyperParameterSupervisorSolve
3609
3624
  traceWidth: number;
3610
3625
  connMap?: ConnectivityMap;
3611
3626
  baseHyperParameters?: JumperPrepatternSolver2HyperParameters;
3627
+ availableJumperTypes: JumperType[];
3612
3628
  solvedRoutes: HighDensityIntraNodeRouteWithJumpers[];
3613
3629
  jumpers: Jumper$1[];
3614
3630
  constructor(params: HyperJumperPrepatternSolver2Params);
3615
3631
  getConstructorParams(): HyperJumperPrepatternSolver2Params;
3616
- getHyperParameterDefs(): ({
3617
- name: string;
3618
- possibleValues: {
3619
- COLS: number;
3620
- }[];
3621
- } | {
3622
- name: string;
3623
- possibleValues: {
3624
- ROWS: number;
3625
- }[];
3626
- } | {
3632
+ getHyperParameterDefs(): {
3627
3633
  name: string;
3628
- possibleValues: {
3629
- ORIENTATION: string;
3630
- }[];
3631
- })[];
3634
+ possibleValues: Array<Record<string, any>>;
3635
+ }[];
3636
+ /**
3637
+ * Filter out invalid row/col combinations for each jumper type.
3638
+ * For 0603: only allow 1, 2, 4, 6, 8 for both rows and cols
3639
+ * For 1206x4: allow existing values (1, 2, 3, 4, 6, 8, 10 for cols; 1, 2, 3, 4, 8 for rows)
3640
+ */
3641
+ isValidCombination(hyperParameters: VariantHyperParameters): boolean;
3632
3642
  getCombinationDefs(): string[][];
3643
+ /**
3644
+ * Override initializeSolvers to use getCombinationDefs for both 0603 and 1206x4.
3645
+ * For 0603: uses pre-calculated max rows/cols per orientation (2 configs total)
3646
+ * For 1206x4: uses full combination of cols, rows, and orientation
3647
+ */
3648
+ initializeSolvers(): void;
3633
3649
  generateSolver(hyperParameters: VariantHyperParameters): JumperPrepatternSolver2_HyperGraph;
3634
3650
  computeG(solver: JumperPrepatternSolver2_HyperGraph): number;
3635
3651
  computeH(solver: JumperPrepatternSolver2_HyperGraph): number;
@@ -3701,6 +3717,7 @@ declare class JumperHighDensitySolver extends BaseSolver {
3701
3717
  viaDiameter: number;
3702
3718
  connMap?: ConnectivityMap;
3703
3719
  hyperParameters?: Partial<HighDensityHyperParameters>;
3720
+ availableJumperTypes: JumperType[];
3704
3721
  capacityMeshNodes: CapacityMeshNode[];
3705
3722
  capacityMeshEdges: CapacityMeshEdge[];
3706
3723
  capacityMeshNodeMap: Map<string, CapacityMeshNode>;
@@ -3713,7 +3730,7 @@ declare class JumperHighDensitySolver extends BaseSolver {
3713
3730
  currentJumperSolverIndex: number;
3714
3731
  phase: "analyzing" | "curvy" | "jumpers" | "done";
3715
3732
  jumpers: Jumper$1[];
3716
- constructor({ nodePortPoints, colorMap, traceWidth, viaDiameter, connMap, hyperParameters, capacityMeshNodes, capacityMeshEdges, }: {
3733
+ constructor({ nodePortPoints, colorMap, traceWidth, viaDiameter, connMap, hyperParameters, capacityMeshNodes, capacityMeshEdges, availableJumperTypes, }: {
3717
3734
  nodePortPoints: NodeWithPortPoints[];
3718
3735
  colorMap?: Record<string, string>;
3719
3736
  traceWidth?: number;
@@ -3722,6 +3739,8 @@ declare class JumperHighDensitySolver extends BaseSolver {
3722
3739
  hyperParameters?: Partial<HighDensityHyperParameters>;
3723
3740
  capacityMeshNodes?: CapacityMeshNode[];
3724
3741
  capacityMeshEdges?: CapacityMeshEdge[];
3742
+ /** Available jumper types. Defaults to ["0603"] */
3743
+ availableJumperTypes?: JumperType[];
3725
3744
  });
3726
3745
  /**
3727
3746
  * Build adjacency map from edges for quick lookup of adjacent nodes
@@ -3766,6 +3785,7 @@ declare class JumperHighDensitySolver extends BaseSolver {
3766
3785
  hyperParameters: Partial<HighDensityHyperParameters> | undefined;
3767
3786
  capacityMeshNodes: CapacityMeshNode[];
3768
3787
  capacityMeshEdges: CapacityMeshEdge[];
3788
+ availableJumperTypes: JumperType[];
3769
3789
  };
3770
3790
  /**
3771
3791
  * Returns ALL jumpers collected from the jumper solvers.