@tscircuit/capacity-autorouter 0.0.571 → 0.0.573

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
@@ -5543,119 +5543,19 @@ declare class ComponentDetectionSolver extends BasePipelineSolver<ComponentDetec
5543
5543
  initialVisualize(): GraphicsObject | null;
5544
5544
  }
5545
5545
 
5546
- interface BgaTopologyGeneratorSolverParams {
5547
- inputSrj: SimpleRouteJson;
5548
- componentId?: string;
5549
- replacementObstacleId?: string;
5550
- }
5551
- interface BgaTopologyGeneratorSolverOutput {
5552
- /** Exact obstacle rectangles cloned from the input SRJ. This is the geometry source of truth. */
5553
- obstacles: Obstacle[];
5554
- /** Routing regions derived from obstacle layout. These are not obstacle rectangles. */
5555
- routingRegions: CapacityMeshNode[];
5556
- }
5557
- /**
5558
- * Builds a coarse topology for BGA-style routing from an SRJ obstacle field.
5559
- *
5560
- * Important:
5561
- * - `obstacles` in the output preserve the original SRJ geometry exactly.
5562
- * - `routingRegions` are derived routing cells and may be larger than pads.
5563
- * - obstacle-overlapping regions are split per layer instead of being emitted
5564
- * as one multi-layer region.
5565
- */
5566
- declare class BgaTopologyGeneratorSolver extends BaseSolver$1 {
5567
- readonly inputProblem: BgaTopologyGeneratorSolverParams;
5568
- private output;
5569
- constructor(inputProblem: BgaTopologyGeneratorSolverParams);
5570
- getConstructorParams(): readonly [BgaTopologyGeneratorSolverParams];
5571
- /** Solves in one pass because the topology is derived directly from the input SRJ. */
5572
- _step(): void;
5573
- getOutput(): BgaTopologyGeneratorSolverOutput;
5574
- }
5575
-
5576
- interface QfpThermalPadTopologyGeneratorSolverParams {
5577
- inputSrj: SimpleRouteJson;
5578
- componentId?: string;
5579
- replacementObstacleId?: string;
5580
- viaDiameter?: number;
5581
- obstacleMargin?: number;
5582
- }
5583
- interface QfpThermalPadTopologyGeneratorSolverOutput {
5584
- /** Exact obstacle rectangles cloned from the input SRJ. This is the geometry source of truth. */
5585
- obstacles: Obstacle[];
5586
- /** Routing regions derived from the QFP pad ring and central thermal pad. */
5587
- routingRegions: CapacityMeshNode[];
5588
- }
5589
- /**
5590
- * Builds the fixed QFP-with-thermal-pad topology. The central region is an
5591
- * obstacle, so free space is modeled as perimeter gaps, inner pad clearances,
5592
- * outer corners, and three rectangular regions around each thermal-pad corner.
5593
- */
5594
- declare class QfpThermalPadTopologyGeneratorSolver extends BaseSolver$1 {
5595
- readonly inputProblem: QfpThermalPadTopologyGeneratorSolverParams;
5596
- private output;
5597
- constructor(inputProblem: QfpThermalPadTopologyGeneratorSolverParams);
5598
- getConstructorParams(): readonly [QfpThermalPadTopologyGeneratorSolverParams];
5599
- _step(): void;
5600
- getOutput(): QfpThermalPadTopologyGeneratorSolverOutput;
5601
- }
5602
-
5603
- interface QfpTopologyGeneratorSolverParams {
5604
- inputSrj: SimpleRouteJson;
5605
- componentId?: string;
5606
- replacementObstacleId?: string;
5607
- viaDiameter?: number;
5608
- obstacleMargin?: number;
5609
- }
5610
- interface QfpTopologyGeneratorSolverOutput {
5611
- /** Exact obstacle rectangles cloned from the input SRJ. This is the geometry source of truth. */
5612
- obstacles: Obstacle[];
5613
- /** Routing regions derived from the QFP pad ring. These are not obstacle rectangles. */
5614
- routingRegions: CapacityMeshNode[];
5615
- }
5616
- /**
5617
- * Builds the fixed QFP topology: one large central region plus perimeter gap
5618
- * and corner regions between the package pads.
5619
- */
5620
- declare class QfpTopologyGeneratorSolver extends BaseSolver$1 {
5621
- readonly inputProblem: QfpTopologyGeneratorSolverParams;
5622
- private output;
5623
- constructor(inputProblem: QfpTopologyGeneratorSolverParams);
5624
- getConstructorParams(): readonly [QfpTopologyGeneratorSolverParams];
5625
- _step(): void;
5626
- getOutput(): QfpTopologyGeneratorSolverOutput;
5627
- }
5628
-
5629
- interface SoicTopologyGeneratorSolverParams {
5630
- inputSrj: SimpleRouteJson;
5631
- componentId?: string;
5632
- replacementObstacleId?: string;
5633
- viaDiameter?: number;
5634
- obstacleMargin?: number;
5635
- }
5636
- interface SoicTopologyGeneratorSolverOutput {
5637
- /** Exact obstacle rectangles cloned from the input SRJ. This is the geometry source of truth. */
5546
+ /** Shared output collected from each component-specific topology generator. */
5547
+ interface TopologyGeneratorSolverOutput {
5638
5548
  obstacles: Obstacle[];
5639
- /** Routing regions derived from the SOIC pad rows/columns. These are not obstacle rectangles. */
5640
5549
  routingRegions: CapacityMeshNode[];
5641
5550
  }
5642
- /**
5643
- * Builds a fixed SOIC topology: a central body-gap region plus the routable
5644
- * regions between adjacent pads on the two populated sides.
5645
- */
5646
- declare class SoicTopologyGeneratorSolver extends BaseSolver$1 {
5647
- readonly inputProblem: SoicTopologyGeneratorSolverParams;
5648
- private output;
5649
- constructor(inputProblem: SoicTopologyGeneratorSolverParams);
5650
- getConstructorParams(): readonly [SoicTopologyGeneratorSolverParams];
5651
- _step(): void;
5652
- getOutput(): SoicTopologyGeneratorSolverOutput;
5653
- }
5551
+ type TopologyGeneratorSolver = BaseSolver$1 & {
5552
+ getOutput(): TopologyGeneratorSolverOutput;
5553
+ };
5654
5554
 
5655
5555
  interface ComponentTopologyBatchSolverParams {
5656
5556
  componentSrjs: SimpleRouteJson[];
5657
5557
  componentIds: string[];
5658
- componentKinds: Array<"bga" | "qfp" | "qfp_thermalpad" | "soic" | undefined>;
5558
+ componentKinds: Array<ComponentKind | undefined>;
5659
5559
  replacementObstacleIds: Array<string | undefined>;
5660
5560
  viaDiameter?: number;
5661
5561
  obstacleMargin?: number;
@@ -5666,7 +5566,7 @@ interface ComponentTopologyBatchSolverOutput {
5666
5566
  /** Runs one component-local topology solve per component SRJ and collects the routing regions. */
5667
5567
  declare class ComponentTopologyBatchSolver extends BaseSolver$1 {
5668
5568
  readonly inputProblem: ComponentTopologyBatchSolverParams;
5669
- activeSubSolver?: BgaTopologyGeneratorSolver | QfpTopologyGeneratorSolver | QfpThermalPadTopologyGeneratorSolver | SoicTopologyGeneratorSolver | null;
5569
+ activeSubSolver?: TopologyGeneratorSolver | null;
5670
5570
  currentIndex: number;
5671
5571
  componentMeshNodes: CapacityMeshNode[][];
5672
5572
  constructor(inputProblem: ComponentTopologyBatchSolverParams);
@@ -5678,7 +5578,7 @@ declare class ComponentTopologyBatchSolver extends BaseSolver$1 {
5678
5578
 
5679
5579
  interface SerializedTopologyComponentInput {
5680
5580
  componentId: string;
5681
- componentKind?: "bga" | "qfp" | "qfp_thermalpad" | "soic";
5581
+ componentKind?: ComponentKind;
5682
5582
  memberObstacleIds: string[];
5683
5583
  memberObstacles: Obstacle[];
5684
5584
  replacementObstacle: Obstacle;