@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 +111 -24
- package/dist/index.js +564 -164
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
-
|
|
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
|
|
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<
|
|
558
|
-
constructorParams: ConstructorParameters<typeof
|
|
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
|
|
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:
|
|
601
|
-
computeH(solver:
|
|
602
|
-
generateSolver(hyperParameters: any):
|
|
603
|
-
onSolve(solver: SupervisedSolver<
|
|
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
|
|
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: (
|
|
613
|
-
activeSubSolver:
|
|
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?:
|
|
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
|
|