@tscircuit/capacity-autorouter 0.0.280 → 0.0.282

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
@@ -1208,7 +1208,7 @@ type Phase$1 = "via_removal" | "via_merging" | "path_simplification";
1208
1208
  * Each iteration consists of all phases executed sequentially.
1209
1209
  */
1210
1210
  declare class TraceSimplificationSolver extends BaseSolver {
1211
- private simplificationConfig;
1211
+ private readonly simplificationConfig;
1212
1212
  getSolverName(): string;
1213
1213
  hdRoutes: HighDensityRoute$1[];
1214
1214
  simplificationPipelineLoops: number;
@@ -1232,16 +1232,16 @@ declare class TraceSimplificationSolver extends BaseSolver {
1232
1232
  * - iterations: Number of complete simplification iterations (default: 2)
1233
1233
  */
1234
1234
  constructor(simplificationConfig: {
1235
- hdRoutes: HighDensityRoute$1[];
1236
- obstacles: Obstacle[];
1237
- connMap: ConnectivityMap;
1238
- colorMap: Record<string, string>;
1239
- outline?: Array<{
1235
+ readonly hdRoutes: ReadonlyArray<HighDensityRoute$1>;
1236
+ readonly obstacles: ReadonlyArray<Obstacle>;
1237
+ readonly connMap: ConnectivityMap;
1238
+ readonly colorMap: Readonly<Record<string, string>>;
1239
+ readonly outline?: ReadonlyArray<{
1240
1240
  x: number;
1241
1241
  y: number;
1242
1242
  }>;
1243
- defaultViaDiameter: number;
1244
- layerCount: number;
1243
+ readonly defaultViaDiameter: number;
1244
+ readonly layerCount: number;
1245
1245
  });
1246
1246
  _step(): void;
1247
1247
  visualize(): GraphicsObject;
@@ -2243,6 +2243,7 @@ interface TraceWidthSolverInput {
2243
2243
  colorMap?: Record<string, string>;
2244
2244
  minTraceWidth: number;
2245
2245
  obstacleMargin?: number;
2246
+ layerCount: number;
2246
2247
  }
2247
2248
  /**
2248
2249
  * TraceWidthSolver determines the optimal trace width for each route.
@@ -2328,8 +2329,8 @@ type PipelineStep$5<T extends new (...args: any[]) => BaseSolver> = {
2328
2329
  onSolved?: (instance: AutoroutingPipelineSolver2_PortPointPathing) => void;
2329
2330
  };
2330
2331
  declare class AutoroutingPipelineSolver2_PortPointPathing extends BaseSolver {
2331
- srj: SimpleRouteJson;
2332
- opts: CapacityMeshSolverOptions$5;
2332
+ readonly srj: SimpleRouteJson;
2333
+ readonly opts: CapacityMeshSolverOptions$5;
2333
2334
  getSolverName(): string;
2334
2335
  netToPointPairsSolver?: NetToPointPairsSolver;
2335
2336
  nodeSolver?: RectDiffPipeline;
@@ -2439,6 +2440,7 @@ declare class CapacityMeshNodeSolver extends BaseSolver {
2439
2440
  targets: Target[];
2440
2441
  targetTree: TargetTree;
2441
2442
  obstacleTree: ObstacleSpatialHashIndex;
2443
+ readonly obstacleZLayersByObstacle: WeakMap<Obstacle, number[]>;
2442
2444
  constructor(srj: SimpleRouteJson, opts?: CapacityMeshNodeSolverOptions$2);
2443
2445
  computeTargets(): Target[];
2444
2446
  protected getNodeBounds(node: CapacityMeshNode): {
@@ -2484,6 +2486,7 @@ declare class CapacityMeshNodeSolver extends BaseSolver {
2484
2486
  * - Points for each connection’s pointsToConnect are drawn in a unique color.
2485
2487
  */
2486
2488
  visualize(): GraphicsObject;
2489
+ private getObstacleZLayers;
2487
2490
  }
2488
2491
 
2489
2492
  interface CapacityMeshNodeSolverOptions$1 {
@@ -3361,8 +3364,8 @@ type PipelineStep$4<T extends new (...args: any[]) => BaseSolver> = {
3361
3364
  onSolved?: (instance: AutoroutingPipeline1_OriginalUnravel) => void;
3362
3365
  };
3363
3366
  declare class AutoroutingPipeline1_OriginalUnravel extends BaseSolver {
3364
- srj: SimpleRouteJson;
3365
- opts: CapacityMeshSolverOptions$4;
3367
+ readonly srj: SimpleRouteJson;
3368
+ readonly opts: CapacityMeshSolverOptions$4;
3366
3369
  getSolverName(): string;
3367
3370
  netToPointPairsSolver?: NetToPointPairsSolver;
3368
3371
  nodeSolver?: CapacityMeshNodeSolver;
@@ -4096,8 +4099,8 @@ type PipelineStep$3<T extends new (...args: any[]) => BaseSolver> = {
4096
4099
  onSolved?: (instance: AssignableAutoroutingPipeline2) => void;
4097
4100
  };
4098
4101
  declare class AssignableAutoroutingPipeline2 extends BaseSolver {
4099
- srj: SimpleRouteJson;
4100
- opts: CapacityMeshSolverOptions$3;
4102
+ readonly srj: SimpleRouteJson;
4103
+ readonly opts: CapacityMeshSolverOptions$3;
4101
4104
  getSolverName(): string;
4102
4105
  netToPointPairsSolver?: NetToPointPairsSolver;
4103
4106
  nodeSolver?: RectDiffPipeline;
@@ -4240,8 +4243,8 @@ type PipelineStep$2<T extends new (...args: any[]) => BaseSolver> = {
4240
4243
  onSolved?: (instance: AssignableAutoroutingPipeline3) => void;
4241
4244
  };
4242
4245
  declare class AssignableAutoroutingPipeline3 extends BaseSolver {
4243
- srj: SimpleRouteJson;
4244
- opts: CapacityMeshSolverOptions$2;
4246
+ readonly srj: SimpleRouteJson;
4247
+ readonly opts: CapacityMeshSolverOptions$2;
4245
4248
  getSolverName(): string;
4246
4249
  netToPointPairsSolver?: NetToPointPairsSolver;
4247
4250
  traceKeepoutSolver?: TraceKeepoutSolver;
@@ -4317,33 +4320,37 @@ type HgPort = RegionPort & {
4317
4320
  d: InputPortPoint;
4318
4321
  };
4319
4322
 
4323
+ type RegionId = CapacityMeshNodeId;
4324
+ type RegionMemoryPfMap = Map<RegionId, number>;
4325
+ type RegionRipCountMap = Map<RegionId, number>;
4320
4326
  interface HgPortPointPathingSolverParams {
4321
4327
  inputGraph: HyperGraph;
4322
4328
  inputConnections: Connection[];
4323
4329
  connectionsWithResults: ConnectionPathResult[];
4324
4330
  inputNodes: InputNodeWithPortPoints[];
4325
4331
  portPointMap: Map<string, InputPortPoint>;
4326
- nodeMemoryPfMap: Map<CapacityMeshNodeId, number>;
4332
+ regionMemoryPfMap: RegionMemoryPfMap;
4327
4333
  rippingEnabled: boolean;
4328
4334
  forceCenterFirst: boolean;
4329
4335
  weights: {
4330
- greedyMultiplier: number;
4331
- ripCost: number;
4332
- portUsagePenalty: number;
4333
- regionTransitionPenalty: number;
4334
- memoryPfFactor: number;
4335
- straightLineDeviationPenaltyFactor: number;
4336
- ripNodePfThresholdStart: number;
4337
- maxNodeRips: number;
4338
- randomRipFraction: number;
4339
- maxRips: number;
4336
+ GREEDY_MULTIPLIER: number;
4337
+ RIP_COST: number;
4338
+ PORT_USAGE_PENALTY: number;
4339
+ REGION_TRANSITION_PENALTY: number;
4340
+ MEMORY_PF_FACTOR: number;
4341
+ CENTER_OFFSET_DIST_PENALTY_FACTOR: number;
4342
+ STRAIGHT_LINE_DEVIATION_PENALTY_FACTOR: number;
4343
+ RIP_REGION_PF_THRESHOLD_START: number;
4344
+ MAX_REGION_RIPS: number;
4345
+ RANDOM_RIP_FRACTION: number;
4346
+ MAX_RIPS: number;
4347
+ MIN_ALLOWED_BOARD_SCORE: number;
4340
4348
  };
4341
- MIN_ALLOWED_BOARD_SCORE: number;
4342
4349
  }
4343
4350
  declare class HgPortPointPathingSolver extends HyperGraphSolver<HgRegion, HgPort> {
4344
4351
  inputNodes: InputNodeWithPortPoints[];
4345
- nodeMap: Map<CapacityMeshNodeId, InputNodeWithPortPoints>;
4346
- regionMap: Map<CapacityMeshNodeId, HgRegion>;
4352
+ regionNodeMap: Map<RegionId, InputNodeWithPortPoints>;
4353
+ regionById: Map<RegionId, HgRegion>;
4347
4354
  portPointMap: Map<string, InputPortPoint>;
4348
4355
  connectionsWithResults: ConnectionPathResult[];
4349
4356
  assignedPortPoints: Map<string, {
@@ -4354,22 +4361,23 @@ declare class HgPortPointPathingSolver extends HyperGraphSolver<HgRegion, HgPort
4354
4361
  assignmentsBuilt: boolean;
4355
4362
  portUsagePenalty: number;
4356
4363
  regionTransitionPenalty: number;
4357
- ripNodePfThresholdStart: number;
4358
- maxNodeRips: number;
4364
+ ripRegionPfThresholdStart: number;
4365
+ maxRegionRips: number;
4359
4366
  memoryPfFactor: number;
4367
+ centerOffsetDistPenaltyFactor: number;
4360
4368
  forceCenterFirst: boolean;
4361
4369
  straightLineDeviationPenaltyFactor: number;
4362
- connectionResultByConnectionId: Map<string, ConnectionPathResult>;
4363
- nodeRipCountMap: Map<CapacityMeshNodeId, number>;
4364
- nodeMemoryPfMap: Map<CapacityMeshNodeId, number>;
4370
+ connectionResultByName: Map<string, ConnectionPathResult>;
4371
+ regionRipCountMap: RegionRipCountMap;
4372
+ regionMemoryPfMap: RegionMemoryPfMap;
4365
4373
  totalRipCount: number;
4366
4374
  randomRipFraction: number;
4367
4375
  maxRips: number;
4368
4376
  MIN_ALLOWED_BOARD_SCORE: number;
4369
- constructor({ inputGraph, inputConnections, connectionsWithResults, inputNodes, portPointMap, nodeMemoryPfMap, rippingEnabled, weights, forceCenterFirst, MIN_ALLOWED_BOARD_SCORE, }: HgPortPointPathingSolverParams);
4377
+ constructor({ inputGraph, inputConnections, connectionsWithResults, inputNodes, portPointMap, regionMemoryPfMap, rippingEnabled, weights, forceCenterFirst, }: HgPortPointPathingSolverParams);
4370
4378
  private clampPf;
4371
4379
  private pfToFailureCost;
4372
- private recordNodeMemoryPf;
4380
+ private recordRegionMemoryPf;
4373
4381
  estimateCostToEnd(port: HgPort): number;
4374
4382
  computeH(candidate: Candidate$3<HgRegion, HgPort>): number;
4375
4383
  private getStraightLineDeviationPenalty;
@@ -4377,22 +4385,23 @@ declare class HgPortPointPathingSolver extends HyperGraphSolver<HgRegion, HgPort
4377
4385
  getPortUsagePenalty(port: HgPort): number;
4378
4386
  getRipsRequiredForPortUsage(region: HgRegion, port1: HgPort, port2: HgPort): RegionPortAssignment[];
4379
4387
  private isPortAvailableForCurrentNet;
4380
- private getCenterFirstCandidatesForRegion;
4388
+ private getCenterFirstEnteringRegionCandidates;
4381
4389
  selectCandidatesForEnteringRegion(candidates: Candidate$3<HgRegion, HgPort>[]): Candidate$3<HgRegion, HgPort>[];
4382
4390
  routeSolvedHook(solvedRoute: SolvedRoute): void;
4383
4391
  _step(): void;
4384
4392
  private enforceBoardScoreGuardrail;
4385
4393
  private buildAssignmentsIfSolved;
4386
- private getNodeRippingPfThreshold;
4394
+ private getRegionRippingPfThreshold;
4387
4395
  private getPortPointsFromRegionAssignments;
4388
4396
  private getPortPointsFromNewlySolvedRouteInRegion;
4389
- private computeNodePfForRegion;
4390
- private computeNodePfFromAssignments;
4397
+ private computeRegionPf;
4398
+ private computeRegionPfFromAssignments;
4391
4399
  private getDerivedCapacityMeshNode;
4392
- private getCrossingRoutesByNodeForPath;
4393
- private getCandidateRoutesForNodeRipping;
4394
- private getNodeIdsTraversedByRoute;
4395
- private maybeAddRandomRips;
4400
+ private getCrossingRoutesByRegionForRoute;
4401
+ private getRoutesInRegionForRipping;
4402
+ private getTraversedRegionIds;
4403
+ private processRandomRips;
4404
+ private processRippingForRoute;
4396
4405
  computeRoutesToRip(newlySolvedRoute: SolvedRoute): Set<SolvedRoute>;
4397
4406
  getNodesWithPortPoints(): NodeWithPortPoints[];
4398
4407
  computeBoardScore(): number;
@@ -4413,8 +4422,8 @@ type PipelineStep$1<T extends new (...args: any[]) => BaseSolver> = {
4413
4422
  onSolved?: (instance: AutoroutingPipelineSolver3_HgPortPointPathing) => void;
4414
4423
  };
4415
4424
  declare class AutoroutingPipelineSolver3_HgPortPointPathing extends BaseSolver {
4416
- srj: SimpleRouteJson;
4417
- opts: CapacityMeshSolverOptions$1;
4425
+ readonly srj: SimpleRouteJson;
4426
+ readonly opts: CapacityMeshSolverOptions$1;
4418
4427
  netToPointPairsSolver?: NetToPointPairsSolver;
4419
4428
  nodeSolver?: RectDiffPipeline;
4420
4429
  nodeTargetMerger?: CapacityNodeTargetMerger;
@@ -5023,8 +5032,8 @@ type PipelineStep<T extends new (...args: any[]) => BaseSolver> = {
5023
5032
  onSolved?: (instance: AssignableAutoroutingPipeline1Solver) => void;
5024
5033
  };
5025
5034
  declare class AssignableAutoroutingPipeline1Solver extends BaseSolver {
5026
- srj: SimpleRouteJson;
5027
- opts: CapacityMeshSolverOptions;
5035
+ readonly srj: SimpleRouteJson;
5036
+ readonly opts: CapacityMeshSolverOptions;
5028
5037
  getSolverName(): string;
5029
5038
  netToPointPairsSolver?: NetToPointPairsSolver;
5030
5039
  nodeSolver?: CapacityMeshNodeSolver;