@tscircuit/capacity-autorouter 0.0.9 → 0.0.11

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
@@ -28,6 +28,7 @@ interface Obstacle {
28
28
  }
29
29
  interface SimpleRouteConnection {
30
30
  name: string;
31
+ netConnectionName?: string;
31
32
  pointsToConnect: Array<{
32
33
  x: number;
33
34
  y: number;
@@ -35,7 +36,7 @@ interface SimpleRouteConnection {
35
36
  pcb_port_id?: string;
36
37
  }>;
37
38
  }
38
- type SimplifiedPcbTraces = Array<{
39
+ interface SimplifiedPcbTrace {
39
40
  type: "pcb_trace";
40
41
  pcb_trace_id: TraceId;
41
42
  connection_name: string;
@@ -52,7 +53,8 @@ type SimplifiedPcbTraces = Array<{
52
53
  to_layer: string;
53
54
  from_layer: string;
54
55
  }>;
55
- }>;
56
+ }
57
+ type SimplifiedPcbTraces = Array<SimplifiedPcbTrace>;
56
58
 
57
59
  type CapacityMeshNodeId = string;
58
60
  interface CapacityMeshNode {
@@ -489,7 +491,7 @@ declare class SingleHighDensityRouteSolver extends BaseSolver {
489
491
  visualize(): GraphicsObject;
490
492
  }
491
493
 
492
- declare class SingleIntraNodeRouteSolver extends BaseSolver {
494
+ declare class IntraNodeRouteSolver extends BaseSolver {
493
495
  nodeWithPortPoints: NodeWithPortPoints;
494
496
  colorMap: Record<string, string>;
495
497
  unsolvedConnections: {
@@ -554,11 +556,11 @@ declare class HyperParameterSupervisorSolver<T extends BaseSolver> extends BaseS
554
556
  visualize(): GraphicsObject;
555
557
  }
556
558
 
557
- declare class HyperSingleIntraNodeSolver extends HyperParameterSupervisorSolver<SingleIntraNodeRouteSolver> {
558
- constructorParams: ConstructorParameters<typeof SingleIntraNodeRouteSolver>[0];
559
+ declare class HyperSingleIntraNodeSolver extends HyperParameterSupervisorSolver<IntraNodeRouteSolver> {
560
+ constructorParams: ConstructorParameters<typeof IntraNodeRouteSolver>[0];
559
561
  solvedRoutes: HighDensityIntraNodeRoute[];
560
562
  nodeWithPortPoints: NodeWithPortPoints;
561
- constructor(opts: ConstructorParameters<typeof SingleIntraNodeRouteSolver>[0]);
563
+ constructor(opts: ConstructorParameters<typeof IntraNodeRouteSolver>[0]);
562
564
  getCombinationDefs(): string[][];
563
565
  getHyperParameterDefs(): ({
564
566
  name: string;
@@ -597,20 +599,20 @@ declare class HyperSingleIntraNodeSolver extends HyperParameterSupervisorSolver<
597
599
  VIA_PENALTY_FACTOR_2: number;
598
600
  }[];
599
601
  })[];
600
- computeG(solver: SingleIntraNodeRouteSolver): number;
601
- computeH(solver: SingleIntraNodeRouteSolver): number;
602
- generateSolver(hyperParameters: any): SingleIntraNodeRouteSolver;
603
- onSolve(solver: SupervisedSolver<SingleIntraNodeRouteSolver>): void;
602
+ computeG(solver: IntraNodeRouteSolver): number;
603
+ computeH(solver: IntraNodeRouteSolver): number;
604
+ generateSolver(hyperParameters: any): IntraNodeRouteSolver;
605
+ onSolve(solver: SupervisedSolver<IntraNodeRouteSolver>): void;
604
606
  }
605
607
 
606
- declare class HighDensityRouteSolver extends BaseSolver {
608
+ declare class HighDensitySolver extends BaseSolver {
607
609
  unsolvedNodePortPoints: NodeWithPortPoints[];
608
610
  routes: HighDensityIntraNodeRoute[];
609
611
  colorMap: Record<string, string>;
610
612
  readonly defaultViaDiameter = 0.6;
611
613
  readonly defaultTraceThickness = 0.15;
612
- failedSolvers: (SingleIntraNodeRouteSolver | HyperSingleIntraNodeSolver)[];
613
- activeSubSolver: SingleIntraNodeRouteSolver | HyperSingleIntraNodeSolver | null;
614
+ failedSolvers: (IntraNodeRouteSolver | HyperSingleIntraNodeSolver)[];
615
+ activeSubSolver: IntraNodeRouteSolver | HyperSingleIntraNodeSolver | null;
614
616
  connMap?: ConnectivityMap;
615
617
  constructor({ nodePortPoints, colorMap, connMap, }: {
616
618
  nodePortPoints: NodeWithPortPoints[];
@@ -625,6 +627,29 @@ declare class HighDensityRouteSolver extends BaseSolver {
625
627
  visualize(): GraphicsObject;
626
628
  }
627
629
 
630
+ declare class CapacityPathingSolver4_FlexibleNegativeCapacity extends CapacityPathingSolver {
631
+ NEGATIVE_CAPACITY_PENALTY_FACTOR: number;
632
+ REDUCED_CAPACITY_PENALTY_FACTOR: number;
633
+ get maxCapacityFactor(): number;
634
+ /**
635
+ * In the FlexibleNegativeCapacity mode, we allow negative capacity
636
+ */
637
+ doesNodeHaveCapacityForTrace(node: CapacityMeshNode): boolean;
638
+ getTotalCapacity(node: CapacityMeshNode): number;
639
+ /**
640
+ * Penalty you pay for using this node
641
+ */
642
+ getNodeCapacityPenalty(node: CapacityMeshNode): number;
643
+ /**
644
+ * We're rewarding travel into big nodes.
645
+ *
646
+ * To minimize shortest path, you'd want to comment this out.
647
+ */
648
+ getDistanceBetweenNodes(A: CapacityMeshNode, B: CapacityMeshNode): number;
649
+ computeG(prevCandidate: Candidate, node: CapacityMeshNode, endGoal: CapacityMeshNode): number;
650
+ computeH(prevCandidate: Candidate, node: CapacityMeshNode, endGoal: CapacityMeshNode): number;
651
+ }
652
+
628
653
  declare class CapacityNodeTargetMerger extends BaseSolver {
629
654
  nodes: CapacityMeshNode[];
630
655
  connMap: ConnectivityMap;
@@ -798,10 +823,73 @@ declare class NetToPointPairsSolver extends BaseSolver {
798
823
  visualize(): GraphicsObject;
799
824
  }
800
825
 
826
+ declare class SingleHighDensityRouteStitchSolver extends BaseSolver {
827
+ mergedHdRoute: HighDensityIntraNodeRoute;
828
+ remainingHdRoutes: HighDensityIntraNodeRoute[];
829
+ start: {
830
+ x: number;
831
+ y: number;
832
+ z: number;
833
+ };
834
+ end: {
835
+ x: number;
836
+ y: number;
837
+ z: number;
838
+ };
839
+ constructor(opts: {
840
+ hdRoutes: HighDensityIntraNodeRoute[];
841
+ start: {
842
+ x: number;
843
+ y: number;
844
+ z: number;
845
+ };
846
+ end: {
847
+ x: number;
848
+ y: number;
849
+ z: number;
850
+ };
851
+ });
852
+ _step(): void;
853
+ visualize(): GraphicsObject;
854
+ }
855
+
856
+ type UnsolvedRoute = {
857
+ connectionName: string;
858
+ hdRoutes: HighDensityIntraNodeRoute[];
859
+ start: {
860
+ x: number;
861
+ y: number;
862
+ z: number;
863
+ };
864
+ end: {
865
+ x: number;
866
+ y: number;
867
+ z: number;
868
+ };
869
+ };
870
+ declare class MultipleHighDensityRouteStitchSolver extends BaseSolver {
871
+ unsolvedRoutes: UnsolvedRoute[];
872
+ activeSolver: SingleHighDensityRouteStitchSolver | null;
873
+ mergedHdRoutes: HighDensityIntraNodeRoute[];
874
+ constructor(opts: {
875
+ connections: SimpleRouteConnection[];
876
+ hdRoutes: HighDensityIntraNodeRoute[];
877
+ layerCount: number;
878
+ });
879
+ _step(): void;
880
+ visualize(): GraphicsObject;
881
+ }
882
+
801
883
  interface CapacityMeshSolverOptions {
802
884
  capacityDepth?: number;
803
885
  targetMinCapacity?: number;
804
886
  }
887
+ type PipelineStep<T extends new (...args: any[]) => BaseSolver> = {
888
+ solverName: string;
889
+ solverClass: T;
890
+ getConstructorParams: (instance: CapacityMeshSolver) => ConstructorParameters<T>;
891
+ onSolved?: (instance: CapacityMeshSolver) => void;
892
+ };
805
893
  declare class CapacityMeshSolver extends BaseSolver {
806
894
  srj: SimpleRouteJson;
807
895
  opts: CapacityMeshSolverOptions;
@@ -814,22 +902,20 @@ declare class CapacityMeshSolver extends BaseSolver {
814
902
  colorMap: Record<string, string>;
815
903
  segmentToPointSolver?: CapacitySegmentToPointSolver;
816
904
  segmentToPointOptimizer?: CapacitySegmentPointOptimizer;
817
- highDensityRouteSolver?: HighDensityRouteSolver;
905
+ highDensityRouteSolver?: HighDensitySolver;
906
+ highDensityStitchSolver?: MultipleHighDensityRouteStitchSolver;
907
+ startTimeOfPhase: Record<string, number>;
908
+ endTimeOfPhase: Record<string, number>;
909
+ timeSpentOnPhase: Record<string, number>;
818
910
  activeSolver?: BaseSolver | null;
819
911
  connMap: ConnectivityMap;
912
+ srjWithPointPairs?: SimpleRouteJson;
913
+ pipelineDef: (PipelineStep<typeof NetToPointPairsSolver> | PipelineStep<typeof CapacityMeshNodeSolver> | PipelineStep<typeof CapacityNodeTargetMerger> | PipelineStep<typeof CapacityMeshEdgeSolver> | PipelineStep<typeof CapacityPathingSolver4_FlexibleNegativeCapacity> | PipelineStep<typeof CapacityEdgeToPortSegmentSolver> | PipelineStep<typeof CapacitySegmentToPointSolver> | PipelineStep<typeof CapacitySegmentPointOptimizer> | PipelineStep<typeof HighDensitySolver> | PipelineStep<typeof MultipleHighDensityRouteStitchSolver>)[];
820
914
  constructor(srj: SimpleRouteJson, opts?: CapacityMeshSolverOptions);
915
+ currentPipelineStepIndex: number;
821
916
  _step(): void;
917
+ getCurrentPhase(): string;
822
918
  visualize(): GraphicsObject;
823
- /**
824
- * Simplifies a route by merging consecutive points along the same line
825
- */
826
- private simplifyRoute;
827
- /**
828
- * Maps numeric layer to named layer
829
- * @param layer Numeric layer (0, 1, etc)
830
- * @returns Named layer ("top", "bottom", etc)
831
- */
832
- private mapLayer;
833
919
  /**
834
920
  * Get original connection name from connection name with MST suffix
835
921
  * @param mstConnectionName The MST-suffixed connection name (e.g. "connection1_mst0")
@@ -839,6 +925,7 @@ declare class CapacityMeshSolver extends BaseSolver {
839
925
  /**
840
926
  * Returns the SimpleRouteJson with routes converted to SimplifiedPcbTraces
841
927
  */
928
+ getOutputSimplifiedPcbTraces(): SimplifiedPcbTraces;
842
929
  getOutputSimpleRouteJson(): SimpleRouteJson;
843
930
  }
844
931