@tscircuit/capacity-autorouter 0.0.848 → 0.0.850

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
@@ -2540,6 +2540,9 @@ declare class TraceSimplificationSolver extends BaseSolver {
2540
2540
  * - enableCrossingViaReduction: Enables coordinated crossing layer swaps
2541
2541
  * - preserveRouteEndpoints: Prevents simplification from moving endpoint
2542
2542
  * coordinates or layers when routes represent spliceable local sections
2543
+ * - terminalLayerIndicesByPcbPortId: Physical copper-layer indices on
2544
+ * which each PCB-port terminal can directly accept a route endpoint
2545
+ * without a via
2543
2546
  * - iterations: Number of complete simplification iterations (default: 2)
2544
2547
  */
2545
2548
  constructor(simplificationConfig: {
@@ -2559,6 +2562,7 @@ declare class TraceSimplificationSolver extends BaseSolver {
2559
2562
  readonly netByConnectionName?: ReadonlyMap<string, string>;
2560
2563
  readonly enableCrossingViaReduction?: boolean;
2561
2564
  readonly preserveRouteEndpoints?: boolean;
2565
+ readonly terminalLayerIndicesByPcbPortId?: ReadonlyMap<string, ReadonlySet<number>>;
2562
2566
  });
2563
2567
  private validatePreservedRouteEndpoints;
2564
2568
  private isSameNetObstacle;
@@ -6136,6 +6140,36 @@ declare class AutoroutingPipelineSolver8 extends BaseSolver {
6136
6140
  getOutputSimpleRouteJson(): SimpleRouteJson;
6137
6141
  }
6138
6142
 
6143
+ type LengthMatchingPostProcessingSolverParams = {
6144
+ hdRoutes: HighDensityRoute$1[];
6145
+ differentialPairs: DifferentialPair[];
6146
+ buses: SimpleRouteBus[];
6147
+ connections: SimpleRouteConnection[];
6148
+ obstacles: Obstacle[];
6149
+ bounds: {
6150
+ minX: number;
6151
+ maxX: number;
6152
+ minY: number;
6153
+ maxY: number;
6154
+ };
6155
+ layerCount: number;
6156
+ obstacleMargin: number;
6157
+ };
6158
+ /** Runs existing differential-pair post-processing, then tunes bus roots. */
6159
+ declare class LengthMatchingPostProcessingSolver extends BaseSolver {
6160
+ private readonly params;
6161
+ private readonly differentialPairSolver;
6162
+ private busLengthMatchingSolver?;
6163
+ private outputHdRoutes?;
6164
+ constructor(params: LengthMatchingPostProcessingSolverParams);
6165
+ getSolverName(): string;
6166
+ _step(): void;
6167
+ getOutput(): {
6168
+ hdRoutes: HighDensityRoute$1[];
6169
+ };
6170
+ visualize(): GraphicsObject;
6171
+ }
6172
+
6139
6173
  type PreloadedHighDensityRoute = HighDensityRoute$1 & {
6140
6174
  preloadedTraceIndex: number;
6141
6175
  preloadedRouteIndex: number;
@@ -6396,7 +6430,7 @@ declare class AutoroutingPipelineSolver9_PreloadedTraceGraph extends BaseSolver
6396
6430
  deadEndSolver?: DeadEndSolver;
6397
6431
  traceSimplificationSolver?: TraceSimplificationSolver;
6398
6432
  mutatedPreloadedTraceSimplificationSolver?: TraceSimplificationSolver;
6399
- lengthMatchingPostProcessingSolver?: PostProcessingSolver;
6433
+ lengthMatchingPostProcessingSolver?: LengthMatchingPostProcessingSolver;
6400
6434
  powerTraceExpansionSolver?: PowerTraceExpansionSolver;
6401
6435
  availableSegmentPointSolver?: AvailableSegmentPointSolver;
6402
6436
  portPointPathingSolver?: TinyHypergraphPortPointPathingSolver;
@@ -6428,7 +6462,7 @@ declare class AutoroutingPipelineSolver9_PreloadedTraceGraph extends BaseSolver
6428
6462
  sharedEdgeSegmentsWithNecessaryCrampedPortPoints?: SharedEdgeSegment[];
6429
6463
  highDensityNodePortPoints?: NodeWithPortPoints[];
6430
6464
  cacheProvider: CacheProvider | null;
6431
- pipelineDef: (PipelineStep$1<typeof PreprocessSimpleRouteJsonWithoutTraceObstaclesSolver> | PipelineStep$1<typeof ComponentDetectionSolver> | PipelineStep$1<typeof EscapeViaLocationSolver> | PipelineStep$1<typeof NetToPointPairsSolver2_OffBoardConnection> | PipelineStep$1<typeof MultiGraphTopologyPlannerSolver> | PipelineStep$1<typeof TopologyMergingSolver> | PipelineStep$1<typeof NodeDimensionSubdivisionSolver> | PipelineStep$1<typeof CapacityMeshEdgeSolver2_NodeTreeOptimization> | PipelineStep$1<typeof AvailableSegmentPointSolver> | PipelineStep$1<typeof MultiTargetNecessaryCrampedPortPointSolver> | PipelineStep$1<typeof PreloadedTraceGraphSolver> | PipelineStep$1<typeof TinyHypergraphPortPointPathingSolver> | PipelineStep$1<typeof UniformPortDistributionSolver> | PipelineStep$1<typeof Pipeline9HighDensitySolver> | PipelineStep$1<typeof HighDensityForceImproveSolver> | PipelineStep$1<typeof Pipeline4HighDensityRepairSolver> | PipelineStep$1<typeof MultipleHighDensityRouteStitchSolver3> | PipelineStep$1<typeof TraceSimplificationSolver> | PipelineStep$1<typeof TraceWidthSolver> | PipelineStep$1<typeof GlobalDrcForceImproveSolver> | PipelineStep$1<typeof Pipeline9JointDrcRepairSolver> | PipelineStep$1<typeof PostProcessingSolver> | PipelineStep$1<typeof PowerTraceExpansionSolver>)[];
6465
+ pipelineDef: (PipelineStep$1<typeof PreprocessSimpleRouteJsonWithoutTraceObstaclesSolver> | PipelineStep$1<typeof ComponentDetectionSolver> | PipelineStep$1<typeof EscapeViaLocationSolver> | PipelineStep$1<typeof NetToPointPairsSolver2_OffBoardConnection> | PipelineStep$1<typeof MultiGraphTopologyPlannerSolver> | PipelineStep$1<typeof TopologyMergingSolver> | PipelineStep$1<typeof NodeDimensionSubdivisionSolver> | PipelineStep$1<typeof CapacityMeshEdgeSolver2_NodeTreeOptimization> | PipelineStep$1<typeof AvailableSegmentPointSolver> | PipelineStep$1<typeof MultiTargetNecessaryCrampedPortPointSolver> | PipelineStep$1<typeof PreloadedTraceGraphSolver> | PipelineStep$1<typeof TinyHypergraphPortPointPathingSolver> | PipelineStep$1<typeof UniformPortDistributionSolver> | PipelineStep$1<typeof Pipeline9HighDensitySolver> | PipelineStep$1<typeof HighDensityForceImproveSolver> | PipelineStep$1<typeof Pipeline4HighDensityRepairSolver> | PipelineStep$1<typeof MultipleHighDensityRouteStitchSolver3> | PipelineStep$1<typeof TraceSimplificationSolver> | PipelineStep$1<typeof TraceWidthSolver> | PipelineStep$1<typeof GlobalDrcForceImproveSolver> | PipelineStep$1<typeof Pipeline9JointDrcRepairSolver> | PipelineStep$1<typeof LengthMatchingPostProcessingSolver> | PipelineStep$1<typeof PowerTraceExpansionSolver>)[];
6432
6466
  constructor(srj: SimpleRouteJson, opts?: CapacityMeshSolverOptions$1);
6433
6467
  private setSimpleRouteJson;
6434
6468
  getConstructorParams(): readonly [SimpleRouteJson, CapacityMeshSolverOptions$1];
@@ -6815,12 +6849,13 @@ declare class SingleRouteUselessViaRemovalSolver extends BaseSolver {
6815
6849
  getSolverName(): string;
6816
6850
  obstacleSHI: ObstacleSpatialHashIndex;
6817
6851
  hdRouteSHI: HighDensityRouteSpatialIndex;
6818
- unsimplifiedRoute: HighDensityRoute;
6852
+ unsimplifiedRoute: HighDensityRoute$1;
6819
6853
  connMap: ConnectivityMap;
6820
6854
  outline?: Array<{
6821
6855
  x: number;
6822
6856
  y: number;
6823
6857
  }>;
6858
+ terminalLayerIndicesByPcbPortId?: ReadonlyMap<string, ReadonlySet<number>>;
6824
6859
  routeSections: Array<RouteSection>;
6825
6860
  currentSectionIndex: number;
6826
6861
  TRACE_THICKNESS: number;
@@ -6837,7 +6872,7 @@ declare class SingleRouteUselessViaRemovalSolver extends BaseSolver {
6837
6872
  constructor(params: {
6838
6873
  obstacleSHI: ObstacleSpatialHashIndex;
6839
6874
  hdRouteSHI: HighDensityRouteSpatialIndex;
6840
- unsimplifiedRoute: HighDensityRoute;
6875
+ unsimplifiedRoute: HighDensityRoute$1;
6841
6876
  connMap: ConnectivityMap;
6842
6877
  outline?: Array<{
6843
6878
  x: number;
@@ -6848,6 +6883,7 @@ declare class SingleRouteUselessViaRemovalSolver extends BaseSolver {
6848
6883
  enableGeometryShortcuts?: boolean;
6849
6884
  enableObstacleDetourShortcuts?: boolean;
6850
6885
  preserveRouteEndpoints?: boolean;
6886
+ terminalLayerIndicesByPcbPortId?: ReadonlyMap<string, ReadonlySet<number>>;
6851
6887
  });
6852
6888
  private getPathLength;
6853
6889
  private normalizeShortcutPath;
@@ -6863,7 +6899,7 @@ declare class SingleRouteUselessViaRemovalSolver extends BaseSolver {
6863
6899
  getConstructorParams(): {
6864
6900
  obstacleSHI: ObstacleSpatialHashIndex;
6865
6901
  hdRouteSHI: HighDensityRouteSpatialIndex;
6866
- unsimplifiedRoute: HighDensityIntraNodeRoute;
6902
+ unsimplifiedRoute: HighDensityIntraNodeRoute$1;
6867
6903
  connMap: ConnectivityMap;
6868
6904
  outline: {
6869
6905
  x: number;
@@ -6874,8 +6910,9 @@ declare class SingleRouteUselessViaRemovalSolver extends BaseSolver {
6874
6910
  enableGeometryShortcuts: boolean;
6875
6911
  enableObstacleDetourShortcuts: boolean;
6876
6912
  preserveRouteEndpoints: boolean;
6913
+ terminalLayerIndicesByPcbPortId: ReadonlyMap<string, ReadonlySet<number>> | undefined;
6877
6914
  };
6878
- getOptimizedHdRoute(): HighDensityRoute;
6915
+ getOptimizedHdRoute(): HighDensityRoute$1;
6879
6916
  visualize(): GraphicsObject;
6880
6917
  }
6881
6918
 
@@ -6897,6 +6934,11 @@ interface UselessViaRemovalSolverInput {
6897
6934
  enableObstacleDetourShortcuts?: boolean;
6898
6935
  /** Keep the first and last route points on their original layers. */
6899
6936
  preserveRouteEndpoints?: boolean;
6937
+ /**
6938
+ * Physical copper-layer indices on which each PCB-port terminal can directly
6939
+ * accept a route endpoint without a via, keyed by PCB port id.
6940
+ */
6941
+ terminalLayerIndicesByPcbPortId?: ReadonlyMap<string, ReadonlySet<number>>;
6900
6942
  }
6901
6943
  declare class UselessViaRemovalSolver extends BaseSolver {
6902
6944
  private input;