@tscircuit/capacity-autorouter 0.0.813 → 0.0.815

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
@@ -10,13 +10,14 @@ import { CurvyTraceSolver } from '@tscircuit/curvy-trace-solver';
10
10
  import { JumperGraphSolver, JRegion, JPort, HyperGraph, RegionPort, Region, RegionPortAssignment, Connection, SolvedRoute, Candidate as Candidate$3, HyperGraphSolver, HyperGraphSectionOptimizer } from '@tscircuit/hypergraph';
11
11
  import { ConnectivityMap as ConnectivityMap$1 } from 'connectivity-map';
12
12
  import { HighDensityForceImproveSolver } from 'high-density-repair01/lib/HighDensityForceImproveSolver';
13
- import { GlobalDrcForceImproveSolver, GlobalDrcBranchPortfolioSolver } from 'high-density-repair03/lib';
13
+ import { GlobalDrcForceImproveSolver, GlobalDrcBranchPortfolioSolverParams, HighDensityRoute as HighDensityRoute$2, GlobalDrcBranchPortfolioSolver } from 'high-density-repair03/lib';
14
14
  export { DrcError, DrcEvaluator, DrcSnapshot, GlobalDrcBranchPortfolioSolver, GlobalDrcBranchPortfolioSolverParams, GlobalDrcForceImproveSolver, GlobalDrcForceImproveSolverParams, HighDensityRoute } from 'high-density-repair03/lib';
15
15
  import { DatasetSample, HighDensityRepairSolver } from 'high-density-repair02';
16
16
  import { LayerMergeMode, ConvexRegionsComputeResult, SerializedPolyHyperGraph } from 'pcb-poly-hyper-graph';
17
17
  import { PolyHyperGraphLoadResult, PolyHyperGraphSolver } from 'tiny-hypergraph-poly/lib/index';
18
18
  import { PostProcessingSolver } from '@tscircuit/length-matching-solver';
19
19
  import { PowerTraceExpanderOptions, PowerTraceExpanderSolver } from '@tscircuit/power-trace-expander';
20
+ import * as high_density_repair03_types_high_density_types from 'high-density-repair03/types/high-density-types';
20
21
  import { HighDensitySolverB01 } from '@tscircuit/high-density-b01';
21
22
 
22
23
  interface CacheProvider {
@@ -255,6 +256,7 @@ interface SimplifiedPcbTrace {
255
256
  from_layer: string;
256
257
  to_layer: string;
257
258
  width: number;
259
+ circuitJsonMetadata?: CircuitJsonMetadata;
258
260
  }>;
259
261
  }
260
262
  type SimplifiedPcbTraces = Array<SimplifiedPcbTrace>;
@@ -362,6 +364,7 @@ type HighDensityIntraNodeRoute$1 = {
362
364
  pcb_port_id?: string;
363
365
  insideJumperPad?: boolean;
364
366
  toNextSegmentType?: "through_obstacle";
367
+ toNextSegmentCircuitJsonMetadata?: CircuitJsonMetadata;
365
368
  }>;
366
369
  vias: Array<{
367
370
  x: number;
@@ -4784,13 +4787,6 @@ type MultiTargetNecessaryCrampedPortPointSolverInput = {
4784
4787
  sharedEdgeSegments: SharedEdgeSegment[];
4785
4788
  capacityMeshNodes: CapacityMeshNode[];
4786
4789
  simpleRouteJson: SimpleRouteJson;
4787
- /**
4788
- * The number of cramped port points to keep.
4789
- * This is useful when there are multiple connections.
4790
- * Setting this to more than one (e.g., 2) ensures that at least two connections can be routed.
4791
- * Higher values may be beneficial, but can lead to more DRC errors.
4792
- */
4793
- numberOfCrampedPortPointsToKeep: number;
4794
4790
  };
4795
4791
  /**
4796
4792
  * This solver filters out cramped port points that are not necessary.
@@ -4816,6 +4812,8 @@ declare class MultiTargetNecessaryCrampedPortPointSolver extends BaseSolver$1 {
4816
4812
  _setup(): void;
4817
4813
  _step(): void;
4818
4814
  getOutput(): SharedEdgeSegment[];
4815
+ private getCandidateExitCapacity;
4816
+ private keepCandidatePath;
4819
4817
  private isMultilayerEscapePort;
4820
4818
  visualize(): GraphicsObject;
4821
4819
  }
@@ -5313,7 +5311,6 @@ declare class MultipleHighDensityRouteStitchSolver3 extends BaseSolver {
5313
5311
  type TraceColorMode = "layer" | "net";
5314
5312
  type ConvertSrjToGraphicsObjectOptions = {
5315
5313
  traceColorMode?: TraceColorMode;
5316
- includeBoardOutline?: boolean;
5317
5314
  };
5318
5315
  declare const convertSrjToGraphicsObject: (srj: SimpleRouteJson, options?: ConvertSrjToGraphicsObjectOptions) => {
5319
5316
  rects: Rect[];
@@ -5910,6 +5907,35 @@ declare class MergedComponentTopologyView extends BaseSolver {
5910
5907
  preview(): GraphicsObject;
5911
5908
  }
5912
5909
 
5910
+ /**
5911
+ * Tries Pipeline7's inexpensive two-layer repair portfolio first, then accepts
5912
+ * it only when the same DRC evaluator used for candidate scoring reports a
5913
+ * clean result. Failed probes are discarded before the original full
5914
+ * portfolio runs, so routing behavior is selected by the result rather than
5915
+ * board-size thresholds.
5916
+ */
5917
+ declare class Pipeline7AdaptiveDrcBranchPortfolioSolver extends BaseSolver$1 {
5918
+ readonly params: GlobalDrcBranchPortfolioSolverParams;
5919
+ readonly inputHdRoutes: HighDensityRoute$2[];
5920
+ outputHdRoutes: HighDensityRoute$2[];
5921
+ private phase;
5922
+ private fastProbeSolver?;
5923
+ private fallbackSolver?;
5924
+ private selectedSolver?;
5925
+ private fastProbeDrcIssueCount?;
5926
+ private fastProbeAttempted;
5927
+ constructor(params: GlobalDrcBranchPortfolioSolverParams);
5928
+ getConstructorParams(): [GlobalDrcBranchPortfolioSolverParams];
5929
+ private startFastProbe;
5930
+ private startFallback;
5931
+ private evaluateFastProbeDrcIssueCount;
5932
+ private finish;
5933
+ _step(): void;
5934
+ getOutput(): high_density_repair03_types_high_density_types.HighDensityIntraNodeRoute[];
5935
+ visualize(): GraphicsObject;
5936
+ preview(): GraphicsObject;
5937
+ }
5938
+
5913
5939
  declare class PowerTraceExpansionSolver extends BaseSolver {
5914
5940
  readonly inputSrj: SimpleRouteJson;
5915
5941
  readonly options: PowerTraceExpanderOptions;
@@ -5961,7 +5987,7 @@ declare class AutoroutingPipelineSolver7_MultiGraph extends BaseSolver {
5961
5987
  highDensityRepairSolver?: Pipeline4HighDensityRepairSolver;
5962
5988
  highDensityStitchSolver?: MultipleHighDensityRouteStitchSolver3;
5963
5989
  globalDrcForceImproveSolver?: GlobalDrcForceImproveSolver;
5964
- exactGeometryDrcForceImproveSolver?: GlobalDrcBranchPortfolioSolver;
5990
+ exactGeometryDrcForceImproveSolver?: Pipeline7AdaptiveDrcBranchPortfolioSolver;
5965
5991
  singleLayerNodeMerger?: SingleLayerNodeMergerSolver;
5966
5992
  strawSolver?: StrawSolver;
5967
5993
  deadEndSolver?: DeadEndSolver;
@@ -5997,7 +6023,7 @@ declare class AutoroutingPipelineSolver7_MultiGraph extends BaseSolver {
5997
6023
  sharedEdgeSegmentsWithNecessaryCrampedPortPoints?: SharedEdgeSegment[];
5998
6024
  highDensityNodePortPoints?: NodeWithPortPoints[];
5999
6025
  cacheProvider: CacheProvider | null;
6000
- pipelineDef: (PipelineStep$3<typeof PreprocessSimpleRouteJsonSolver$1> | PipelineStep$3<typeof ComponentDetectionSolver> | PipelineStep$3<typeof EscapeViaLocationSolver> | PipelineStep$3<typeof NetToPointPairsSolver2_OffBoardConnection> | PipelineStep$3<typeof MultiGraphTopologyPlannerSolver> | PipelineStep$3<typeof TopologyMergingSolver> | PipelineStep$3<typeof NodeDimensionSubdivisionSolver> | PipelineStep$3<typeof CapacityMeshEdgeSolver2_NodeTreeOptimization> | PipelineStep$3<typeof AvailableSegmentPointSolver> | PipelineStep$3<typeof MultiTargetNecessaryCrampedPortPointSolver> | PipelineStep$3<typeof TinyHypergraphPortPointPathingSolver> | PipelineStep$3<typeof UniformPortDistributionSolver> | PipelineStep$3<typeof HighDensitySolver> | PipelineStep$3<typeof HighDensityForceImproveSolver> | PipelineStep$3<typeof Pipeline4HighDensityRepairSolver> | PipelineStep$3<typeof MultipleHighDensityRouteStitchSolver3> | PipelineStep$3<typeof TraceSimplificationSolver> | PipelineStep$3<typeof TraceWidthSolver> | PipelineStep$3<typeof GlobalDrcForceImproveSolver> | PipelineStep$3<typeof GlobalDrcBranchPortfolioSolver> | PipelineStep$3<typeof PostProcessingSolver> | PipelineStep$3<typeof PowerTraceExpansionSolver>)[];
6026
+ pipelineDef: (PipelineStep$3<typeof PreprocessSimpleRouteJsonSolver$1> | PipelineStep$3<typeof ComponentDetectionSolver> | PipelineStep$3<typeof EscapeViaLocationSolver> | PipelineStep$3<typeof NetToPointPairsSolver2_OffBoardConnection> | PipelineStep$3<typeof MultiGraphTopologyPlannerSolver> | PipelineStep$3<typeof TopologyMergingSolver> | PipelineStep$3<typeof NodeDimensionSubdivisionSolver> | PipelineStep$3<typeof CapacityMeshEdgeSolver2_NodeTreeOptimization> | PipelineStep$3<typeof AvailableSegmentPointSolver> | PipelineStep$3<typeof MultiTargetNecessaryCrampedPortPointSolver> | PipelineStep$3<typeof TinyHypergraphPortPointPathingSolver> | PipelineStep$3<typeof UniformPortDistributionSolver> | PipelineStep$3<typeof HighDensitySolver> | PipelineStep$3<typeof HighDensityForceImproveSolver> | PipelineStep$3<typeof Pipeline4HighDensityRepairSolver> | PipelineStep$3<typeof MultipleHighDensityRouteStitchSolver3> | PipelineStep$3<typeof TraceSimplificationSolver> | PipelineStep$3<typeof TraceWidthSolver> | PipelineStep$3<typeof GlobalDrcForceImproveSolver> | PipelineStep$3<typeof Pipeline7AdaptiveDrcBranchPortfolioSolver> | PipelineStep$3<typeof PostProcessingSolver> | PipelineStep$3<typeof PowerTraceExpansionSolver>)[];
6001
6027
  constructor(srj: SimpleRouteJson, opts?: CapacityMeshSolverOptions$3);
6002
6028
  private setSimpleRouteJson;
6003
6029
  getConstructorParams(): readonly [SimpleRouteJson, CapacityMeshSolverOptions$3];
@@ -6125,46 +6151,6 @@ declare class AutoroutingPipelineSolver8 extends BaseSolver {
6125
6151
  getOutputSimpleRouteJson(): SimpleRouteJson;
6126
6152
  }
6127
6153
 
6128
- type NativePipelineOptions = {
6129
- effort?: number;
6130
- [key: string]: unknown;
6131
- };
6132
- declare class RustNativePipelineStage {
6133
- }
6134
- /**
6135
- * Full native replacement for Pipeline 7.
6136
- *
6137
- * The wrapper intentionally owns no routing algorithm. It presents the
6138
- * familiar BaseSolver/pipeline surface to callers and delegates one complete
6139
- * typed pipeline invocation to Rust, so the high-density router and every
6140
- * surrounding stage share one board model and one process boundary.
6141
- */
6142
- declare class AutoroutingPipelineSolverRust extends BaseSolver {
6143
- MAX_ITERATIONS: number;
6144
- readonly originalSrj: SimpleRouteJson;
6145
- readonly opts: NativePipelineOptions;
6146
- readonly pipelineDef: {
6147
- solverName: "netToPointPairsSolver" | "edgeSolver" | "highDensityRouteSolver" | "highDensityStitchSolver" | "traceSimplificationSolver" | "availableSegmentPointSolver" | "portPointPathingSolver" | "uniformPortDistributionSolver" | "traceWidthSolver" | "necessaryCrampedPortPointSolver" | "preprocessSimpleRouteJsonSolver" | "escapeViaLocationSolver" | "nodeDimensionSubdivisionSolver" | "highDensityForceImproveSolver" | "highDensityRepairSolver" | "globalDrcForceImproveSolver" | "topologyPlanningSolver" | "topologyMergingSolver" | "exactGeometryDrcForceImproveSolver" | "lengthMatchingPostProcessingSolver" | "powerTraceExpansionSolver" | "componentDetectionSolver";
6148
- solverClass: typeof RustNativePipelineStage;
6149
- }[];
6150
- currentPipelineStepIndex: number;
6151
- timeSpentOnPhase: Record<string, number>;
6152
- srjWithPointPairs?: SimpleRouteJson;
6153
- private outputSrj?;
6154
- constructor(srj: SimpleRouteJson, opts?: NativePipelineOptions);
6155
- _step(): void;
6156
- getConstructorParams(): readonly [SimpleRouteJson, NativePipelineOptions];
6157
- getSolverName(): string;
6158
- getOutputSimplifiedPcbTraces(): SimplifiedPcbTraces;
6159
- getOutputSimpleRouteJson(): SimpleRouteJson;
6160
- visualize(): graphics_debug.GraphicsObject | {
6161
- rects: graphics_debug.Rect[];
6162
- circles: graphics_debug.Circle[];
6163
- lines: graphics_debug.Line[];
6164
- points: graphics_debug.Point[];
6165
- };
6166
- }
6167
-
6168
6154
  type PreloadedHighDensityRoute = HighDensityRoute$1 & {
6169
6155
  preloadedTraceIndex: number;
6170
6156
  preloadedRouteIndex: number;
@@ -7534,4 +7520,4 @@ declare const HyperSingleIntraNodeSolver: typeof PortfolioSingleIntraNodeSolver;
7534
7520
  */
7535
7521
  type HyperSingleIntraNodeSolver = InstanceType<typeof PortfolioSingleIntraNodeSolver>;
7536
7522
 
7537
- export { AssignableAutoroutingPipeline1Solver, AssignableAutoroutingPipeline2, AssignableAutoroutingPipeline3, AttachProjectedRectsSolver, AutoroutingPipeline1_OriginalUnravel, AutoroutingPipelineSolver7_MultiGraph as AutoroutingPipelineSolver, AutoroutingPipelineSolver2_PortPointPathing, AutoroutingPipelineSolver3_HgPortPointPathing, AutoroutingPipelineSolver4_TinyHypergraph as AutoroutingPipelineSolver4, AutoroutingPipelineSolver4_TinyHypergraph, AutoroutingPipelineSolver5_HdCache as AutoroutingPipelineSolver5, AutoroutingPipelineSolver5_HdCache, AutoroutingPipelineSolver6_PolyHypergraph as AutoroutingPipelineSolver6, AutoroutingPipelineSolver6_PolyHypergraph, AutoroutingPipelineSolver7_MultiGraph, AutoroutingPipelineSolver8, AutoroutingPipelineSolver9_PreloadedTraceGraph, type AutoroutingPipelineSolverOptions, AutoroutingPipelineSolverRust, type BusId, type CachableSolver, type CacheProvider, CapacityMeshSolver, type ConnectionPoint$1 as ConnectionPoint, type ConvertSrjToGraphicsObjectOptions, CurvyIntraNodeSolver, type DifferentialPair, GrowShrinkHighDensityIntraNodeSolver, type HighDensityIntraNodeRouteWithJumpers, JumperHighDensitySolver as HighDensitySolver, HyperSingleIntraNodeSolver, InMemoryCache, IntraNodeSolverWithJumpers, type Jumper, LocalStorageCache, type MultiLayerConnectionPoint, type Obstacle, PolyHighDensitySolver, PolySingleIntraNodeSolver as PolyIntraNodeSolver, PolySingleIntraNodeSolver, PortfolioSingleIntraNodeSolver, ProjectHighDensityToPolygonSolver, type RerouteRectRegion, type SimpleRouteBus, type SimpleRouteConnection, type SimpleRouteJson, type SimplifiedPcbTrace, type SimplifiedPcbTraces, SingleHighDensityRouteWithJumpersSolver, type SingleLayerConnectionPoint, type TerminalViaHint, type TraceColorMode, calculateOptimalCapacityDepth, convertSrjToGraphicsObject, getGlobalInMemoryCache, getGlobalLocalStorageCache, getRerouteSimpleRouteJson, getTunedTotalCapacity1, reconnectReroutedSimpleRouteJsonRegion, setupGlobalCaches };
7523
+ export { AssignableAutoroutingPipeline1Solver, AssignableAutoroutingPipeline2, AssignableAutoroutingPipeline3, AttachProjectedRectsSolver, AutoroutingPipeline1_OriginalUnravel, AutoroutingPipelineSolver7_MultiGraph as AutoroutingPipelineSolver, AutoroutingPipelineSolver2_PortPointPathing, AutoroutingPipelineSolver3_HgPortPointPathing, AutoroutingPipelineSolver4_TinyHypergraph as AutoroutingPipelineSolver4, AutoroutingPipelineSolver4_TinyHypergraph, AutoroutingPipelineSolver5_HdCache as AutoroutingPipelineSolver5, AutoroutingPipelineSolver5_HdCache, AutoroutingPipelineSolver6_PolyHypergraph as AutoroutingPipelineSolver6, AutoroutingPipelineSolver6_PolyHypergraph, AutoroutingPipelineSolver7_MultiGraph, AutoroutingPipelineSolver8, AutoroutingPipelineSolver9_PreloadedTraceGraph, type AutoroutingPipelineSolverOptions, type BusId, type CachableSolver, type CacheProvider, CapacityMeshSolver, type ConnectionPoint$1 as ConnectionPoint, type ConvertSrjToGraphicsObjectOptions, CurvyIntraNodeSolver, type DifferentialPair, GrowShrinkHighDensityIntraNodeSolver, type HighDensityIntraNodeRouteWithJumpers, JumperHighDensitySolver as HighDensitySolver, HyperSingleIntraNodeSolver, InMemoryCache, IntraNodeSolverWithJumpers, type Jumper, LocalStorageCache, type MultiLayerConnectionPoint, type Obstacle, PolyHighDensitySolver, PolySingleIntraNodeSolver as PolyIntraNodeSolver, PolySingleIntraNodeSolver, PortfolioSingleIntraNodeSolver, ProjectHighDensityToPolygonSolver, type RerouteRectRegion, type SimpleRouteBus, type SimpleRouteConnection, type SimpleRouteJson, type SimplifiedPcbTrace, type SimplifiedPcbTraces, SingleHighDensityRouteWithJumpersSolver, type SingleLayerConnectionPoint, type TerminalViaHint, type TraceColorMode, calculateOptimalCapacityDepth, convertSrjToGraphicsObject, getGlobalInMemoryCache, getGlobalLocalStorageCache, getRerouteSimpleRouteJson, getTunedTotalCapacity1, reconnectReroutedSimpleRouteJsonRegion, setupGlobalCaches };