@jetta/cargo-stabilizer 0.1.0-15 → 0.1.0-5

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.
Files changed (172) hide show
  1. package/CHANGELOG.md +2 -16
  2. package/README.md +12 -18
  3. package/build/core/adapters/axle_adapter.d.ts +0 -1
  4. package/build/core/adapters/axle_adapter.d.ts.map +1 -1
  5. package/build/core/adapters/axle_adapter.js +22 -3
  6. package/build/core/adapters/coordinate_mapper.d.ts +1 -1
  7. package/build/core/adapters/coordinate_mapper.js +3 -3
  8. package/build/core/candidates/candidate_generator.d.ts +1 -1
  9. package/build/core/candidates/candidate_generator.js +7 -21
  10. package/build/core/candidates/candidate_validation.d.ts.map +1 -1
  11. package/build/core/candidates/candidate_validation.js +0 -8
  12. package/build/core/evaluation/state_evaluator.d.ts +10 -2
  13. package/build/core/evaluation/state_evaluator.d.ts.map +1 -1
  14. package/build/core/evaluation/state_evaluator.js +26 -7
  15. package/build/core/factory/read_stabilizer_config.d.ts +2 -3
  16. package/build/core/factory/read_stabilizer_config.d.ts.map +1 -1
  17. package/build/core/factory/read_stabilizer_config_helpers.d.ts +5 -9
  18. package/build/core/factory/read_stabilizer_config_helpers.d.ts.map +1 -1
  19. package/build/core/factory/read_stabilizer_config_helpers.js +1 -12
  20. package/build/core/move/apply_move.d.ts +0 -2
  21. package/build/core/move/apply_move.d.ts.map +1 -1
  22. package/build/core/orchestration/StabilizerFlow.d.ts.map +1 -1
  23. package/build/core/orchestration/StabilizerFlow.js +1 -1
  24. package/build/core/orchestration/build_reorder_context.d.ts.map +1 -1
  25. package/build/core/orchestration/build_reorder_context.js +5 -3
  26. package/build/core/strategies/reorder/BeamSearchReorder.d.ts.map +1 -1
  27. package/build/core/strategies/reorder/BeamSearchReorder.js +13 -12
  28. package/build/core/strategies/reorder/GeneticReorder.d.ts.map +1 -1
  29. package/build/core/strategies/reorder/GeneticReorder.js +1 -2
  30. package/build/core/strategies/reorder/SimulatedAnnealingReorder.d.ts.map +1 -1
  31. package/build/core/strategies/reorder/SimulatedAnnealingReorder.js +5 -14
  32. package/build/core/strategies/reorder/beam_context.d.ts +0 -1
  33. package/build/core/strategies/reorder/beam_context.d.ts.map +1 -1
  34. package/build/core/strategies/reorder/greedy_improvement.d.ts.map +1 -1
  35. package/build/core/strategies/reorder/greedy_improvement.js +2 -3
  36. package/build/core/validation/contract/cargo_movement_wire_field_map.d.ts +1 -51
  37. package/build/core/validation/contract/cargo_movement_wire_field_map.d.ts.map +1 -1
  38. package/build/core/validation/contract/cargo_movement_wire_field_map.js +3 -53
  39. package/build/core/validation/contract/cargo_movement_wire_mapper.d.ts.map +1 -1
  40. package/build/core/validation/contract/cargo_movement_wire_mapper.js +1 -10
  41. package/build/core/validation/contract/map_contract_to_wire_shape.d.ts.map +1 -1
  42. package/build/core/validation/contract/map_contract_to_wire_shape.js +13 -18
  43. package/build/core/validation/contract/map_wire_input_to_contract_shape.d.ts.map +1 -1
  44. package/build/core/validation/contract/map_wire_input_to_contract_shape.js +22 -26
  45. package/build/core/validation/contract/parse_stabilizer_input.d.ts +4 -49
  46. package/build/core/validation/contract/parse_stabilizer_input.d.ts.map +1 -1
  47. package/build/core/validation/contract/parse_stabilizer_input.js +0 -2
  48. package/build/core/validation/contract/parse_stabilizer_output.d.ts +2 -34
  49. package/build/core/validation/contract/parse_stabilizer_output.d.ts.map +1 -1
  50. package/build/core/validation/contract/stabilizer_domain_schema.d.ts +56 -36
  51. package/build/core/validation/contract/stabilizer_domain_schema.d.ts.map +1 -1
  52. package/build/core/validation/contract/stabilizer_domain_schema.js +35 -16
  53. package/build/core/validation/contract/stabilizer_input_schema.d.ts +4 -51
  54. package/build/core/validation/contract/stabilizer_input_schema.d.ts.map +1 -1
  55. package/build/core/validation/contract/stabilizer_input_schema.js +2 -2
  56. package/build/core/validation/contract/stabilizer_output_schema.d.ts +4 -68
  57. package/build/core/validation/contract/stabilizer_output_schema.d.ts.map +1 -1
  58. package/build/core/validation/contract/wire_mapper_record_utils.d.ts +0 -14
  59. package/build/core/validation/contract/wire_mapper_record_utils.d.ts.map +1 -1
  60. package/build/core/validation/contract/wire_mapper_record_utils.js +0 -30
  61. package/build/core/validation/schemas/stabilizer_config_schema.d.ts +1 -2
  62. package/build/core/validation/schemas/stabilizer_config_schema.d.ts.map +1 -1
  63. package/build/core/validation/schemas/stabilizer_config_schema.js +1 -2
  64. package/build/index.d.ts +12 -11
  65. package/build/index.d.ts.map +1 -1
  66. package/build/index.js +21 -29
  67. package/package.json +10 -12
  68. package/build/core/adapters/axle_load_evaluation.d.ts +0 -8
  69. package/build/core/adapters/axle_load_evaluation.d.ts.map +0 -1
  70. package/build/core/adapters/axle_load_evaluation.js +0 -1
  71. package/build/core/adapters/build_axle_request.d.ts +0 -8
  72. package/build/core/adapters/build_axle_request.d.ts.map +0 -1
  73. package/build/core/adapters/build_axle_request.js +0 -67
  74. package/build/core/adapters/compute_axle_excess_kg.d.ts +0 -8
  75. package/build/core/adapters/compute_axle_excess_kg.d.ts.map +0 -1
  76. package/build/core/adapters/compute_axle_excess_kg.js +0 -19
  77. package/build/core/adapters/evaluate_axle_load.d.ts +0 -10
  78. package/build/core/adapters/evaluate_axle_load.d.ts.map +0 -1
  79. package/build/core/adapters/evaluate_axle_load.js +0 -32
  80. package/build/core/adapters/map_item_to_stacking_item.d.ts +0 -14
  81. package/build/core/adapters/map_item_to_stacking_item.d.ts.map +0 -1
  82. package/build/core/adapters/map_item_to_stacking_item.js +0 -40
  83. package/build/core/adapters/run_axle_calculator.d.ts +0 -16
  84. package/build/core/adapters/run_axle_calculator.d.ts.map +0 -1
  85. package/build/core/adapters/run_axle_calculator.js +0 -37
  86. package/build/core/candidates/collect_container_slots.d.ts +0 -16
  87. package/build/core/candidates/collect_container_slots.d.ts.map +0 -1
  88. package/build/core/candidates/collect_container_slots.js +0 -20
  89. package/build/core/candidates/enumerate_supporter_top_slots.d.ts +0 -11
  90. package/build/core/candidates/enumerate_supporter_top_slots.d.ts.map +0 -1
  91. package/build/core/candidates/enumerate_supporter_top_slots.js +0 -36
  92. package/build/core/candidates/is_candidate_stacking_valid.d.ts +0 -14
  93. package/build/core/candidates/is_candidate_stacking_valid.d.ts.map +0 -1
  94. package/build/core/candidates/is_candidate_stacking_valid.js +0 -43
  95. package/build/core/candidates/is_elevated_on_supporter_origin.d.ts +0 -14
  96. package/build/core/candidates/is_elevated_on_supporter_origin.d.ts.map +0 -1
  97. package/build/core/candidates/is_elevated_on_supporter_origin.js +0 -28
  98. package/build/core/constants/TieRatioOrientation.d.ts +0 -6
  99. package/build/core/constants/TieRatioOrientation.d.ts.map +0 -1
  100. package/build/core/constants/TieRatioOrientation.js +0 -5
  101. package/build/core/evaluation/compare_search_states.d.ts +0 -12
  102. package/build/core/evaluation/compare_search_states.d.ts.map +0 -1
  103. package/build/core/evaluation/compare_search_states.js +0 -12
  104. package/build/core/evaluation/compute_reorder_objective.d.ts +0 -13
  105. package/build/core/evaluation/compute_reorder_objective.d.ts.map +0 -1
  106. package/build/core/evaluation/compute_reorder_objective.js +0 -13
  107. package/build/core/evaluation/evaluate_search_gates.d.ts +0 -18
  108. package/build/core/evaluation/evaluate_search_gates.d.ts.map +0 -1
  109. package/build/core/evaluation/evaluate_search_gates.js +0 -30
  110. package/build/core/evaluation/evaluation_result.d.ts +0 -15
  111. package/build/core/evaluation/evaluation_result.d.ts.map +0 -1
  112. package/build/core/evaluation/evaluation_result.js +0 -1
  113. package/build/core/evaluation/genetic_fitness.d.ts +0 -9
  114. package/build/core/evaluation/genetic_fitness.d.ts.map +0 -1
  115. package/build/core/evaluation/genetic_fitness.js +0 -16
  116. package/build/core/evaluation/is_non_axle_gates_pass.d.ts +0 -8
  117. package/build/core/evaluation/is_non_axle_gates_pass.d.ts.map +0 -1
  118. package/build/core/evaluation/is_non_axle_gates_pass.js +0 -8
  119. package/build/core/evaluation/is_search_trial_admissible.d.ts +0 -10
  120. package/build/core/evaluation/is_search_trial_admissible.d.ts.map +0 -1
  121. package/build/core/evaluation/is_search_trial_admissible.js +0 -17
  122. package/build/core/evaluation/is_waypoint_order_valid.d.ts +0 -10
  123. package/build/core/evaluation/is_waypoint_order_valid.d.ts.map +0 -1
  124. package/build/core/evaluation/is_waypoint_order_valid.js +0 -14
  125. package/build/core/exceptions/AxleCalculationError.d.ts +0 -4
  126. package/build/core/exceptions/AxleCalculationError.d.ts.map +0 -1
  127. package/build/core/exceptions/AxleCalculationError.js +0 -6
  128. package/build/core/filters/collect_movable_items.d.ts +0 -18
  129. package/build/core/filters/collect_movable_items.d.ts.map +0 -1
  130. package/build/core/filters/collect_movable_items.js +0 -53
  131. package/build/core/filters/collect_pinned_floor_tie_ratio_group_ids.d.ts +0 -8
  132. package/build/core/filters/collect_pinned_floor_tie_ratio_group_ids.d.ts.map +0 -1
  133. package/build/core/filters/collect_pinned_floor_tie_ratio_group_ids.js +0 -41
  134. package/build/core/filters/is_item_on_cm_floor.d.ts +0 -8
  135. package/build/core/filters/is_item_on_cm_floor.d.ts.map +0 -1
  136. package/build/core/filters/is_item_on_cm_floor.js +0 -9
  137. package/build/core/geometry/has_penetrating_overlap.d.ts +0 -9
  138. package/build/core/geometry/has_penetrating_overlap.d.ts.map +0 -1
  139. package/build/core/geometry/has_penetrating_overlap.js +0 -27
  140. package/build/core/strategies/reorder/append_admitted_trial.d.ts +0 -11
  141. package/build/core/strategies/reorder/append_admitted_trial.d.ts.map +0 -1
  142. package/build/core/strategies/reorder/append_admitted_trial.js +0 -22
  143. package/build/core/strategies/reorder/is_improving_greedy_trial.d.ts +0 -10
  144. package/build/core/strategies/reorder/is_improving_greedy_trial.d.ts.map +0 -1
  145. package/build/core/strategies/reorder/is_improving_greedy_trial.js +0 -17
  146. package/build/core/strategies/reorder/select_beam_expansion_candidates.d.ts +0 -9
  147. package/build/core/strategies/reorder/select_beam_expansion_candidates.d.ts.map +0 -1
  148. package/build/core/strategies/reorder/select_beam_expansion_candidates.js +0 -28
  149. package/build/core/strategies/reorder/select_surviving_beam.d.ts +0 -11
  150. package/build/core/strategies/reorder/select_surviving_beam.d.ts.map +0 -1
  151. package/build/core/strategies/reorder/select_surviving_beam.js +0 -13
  152. package/build/core/validation/contract/map_input_config.d.ts +0 -9
  153. package/build/core/validation/contract/map_input_config.d.ts.map +0 -1
  154. package/build/core/validation/contract/map_input_config.js +0 -40
  155. package/build/core/validation/contract/map_wire_item_stacking.d.ts +0 -7
  156. package/build/core/validation/contract/map_wire_item_stacking.d.ts.map +0 -1
  157. package/build/core/validation/contract/map_wire_item_stacking.js +0 -40
  158. package/build/core/validation/contract/map_wire_item_to_contract.d.ts +0 -8
  159. package/build/core/validation/contract/map_wire_item_to_contract.d.ts.map +0 -1
  160. package/build/core/validation/contract/map_wire_item_to_contract.js +0 -51
  161. package/build/core/validation/contract/reject_forbidden_input_fields.d.ts +0 -6
  162. package/build/core/validation/contract/reject_forbidden_input_fields.d.ts.map +0 -1
  163. package/build/core/validation/contract/reject_forbidden_input_fields.js +0 -53
  164. package/build/core/validation/contract/stabilizer_env_schema.d.ts +0 -112
  165. package/build/core/validation/contract/stabilizer_env_schema.d.ts.map +0 -1
  166. package/build/core/validation/contract/stabilizer_env_schema.js +0 -38
  167. package/build/core/validation/contract/stabilizer_item_schema.d.ts +0 -25
  168. package/build/core/validation/contract/stabilizer_item_schema.d.ts.map +0 -1
  169. package/build/core/validation/contract/stabilizer_item_schema.js +0 -23
  170. package/build/core/validation/contract/uniquify_contract_item_ids.d.ts +0 -14
  171. package/build/core/validation/contract/uniquify_contract_item_ids.d.ts.map +0 -1
  172. package/build/core/validation/contract/uniquify_contract_item_ids.js +0 -54
@@ -1,6 +1,5 @@
1
1
  import { build_initial_population, crossover_organisms, materialize_organism, mutate_organism } from './genetic/Chromosome.js';
2
2
  import { evaluate_trial_layout, evaluation_context_from_reorder } from '../../evaluation/state_evaluator.js';
3
- import { genetic_fitness } from '../../evaluation/genetic_fitness.js';
4
3
  /**
5
4
  * Genetic algorithm reorder optimizing loose-item stability sum.
6
5
  */
@@ -40,5 +39,5 @@ function score_population(context, eval_context, population) {
40
39
  function score_organism(context, eval_context, organism) {
41
40
  const layout = materialize_organism(context.baseline_containers, organism);
42
41
  const evaluation = evaluate_trial_layout(layout, eval_context);
43
- organism.fitness = genetic_fitness(evaluation);
42
+ organism.fitness = evaluation.all_gates_pass ? evaluation.objective : Number.NEGATIVE_INFINITY;
44
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SimulatedAnnealingReorder.d.ts","sourceRoot":"","sources":["../../../../src/core/strategies/reorder/SimulatedAnnealingReorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AA0BhG;;GAEG;AACH,qBAAa,yBAA0B,YAAW,eAAe;IAE7D,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,mBAAmB,EAAE;CAqBtD"}
1
+ {"version":3,"file":"SimulatedAnnealingReorder.d.ts","sourceRoot":"","sources":["../../../../src/core/strategies/reorder/SimulatedAnnealingReorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AAyBhG;;GAEG;AACH,qBAAa,yBAA0B,YAAW,eAAe;IAE7D,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,mBAAmB,EAAE;CAqBtD"}
@@ -1,7 +1,6 @@
1
1
  import { apply_move, clone_containers } from '../../move/apply_move.js';
2
2
  import { evaluate_trial_layout, evaluation_context_from_reorder } from '../../evaluation/state_evaluator.js';
3
3
  import { accept_move, propose_neighbor } from './anneal_helpers.js';
4
- import { is_search_trial_admissible } from '../../evaluation/is_search_trial_admissible.js';
5
4
  /**
6
5
  * Simulated annealing reorder with hard gate rejection on invalid neighbors.
7
6
  */
@@ -11,7 +10,7 @@ export class SimulatedAnnealingReorder {
11
10
  const state = {
12
11
  working: clone_containers(context.containers),
13
12
  best: clone_containers(context.containers),
14
- best_energy: search_energy(context.containers, eval_context)
13
+ best_energy: energy(context.containers, eval_context)
15
14
  };
16
15
  let temperature = 1.0;
17
16
  const cooling_rate = 0.995;
@@ -38,16 +37,12 @@ function anneal_step(step_context) {
38
37
  function evaluate_neighbor(step_context, neighbor) {
39
38
  const trial = clone_containers(step_context.state.working);
40
39
  apply_move(trial, neighbor);
41
- const working_eval = evaluate_trial_layout(step_context.state.working, step_context.evaluation);
42
40
  const evaluation = evaluate_trial_layout(trial, step_context.evaluation);
43
- if (!is_search_trial_admissible(working_eval, evaluation)) {
41
+ if (!evaluation.all_gates_pass) {
44
42
  return undefined;
45
43
  }
46
- if (!working_eval.axle_valid) {
47
- return evaluation.axle_excess_kg;
48
- }
49
44
  const trial_energy = -evaluation.objective;
50
- const delta = trial_energy - search_energy(step_context.state.working, step_context.evaluation);
45
+ const delta = trial_energy - energy(step_context.state.working, step_context.evaluation);
51
46
  if (!accept_move(delta, step_context.temperature)) {
52
47
  return undefined;
53
48
  }
@@ -61,10 +56,6 @@ function apply_accepted_neighbor(step_context, neighbor, trial_energy) {
61
56
  step_context.state.best = clone_containers(step_context.state.working);
62
57
  step_context.state.best_energy = trial_energy;
63
58
  }
64
- function search_energy(containers, eval_context) {
65
- const evaluation = evaluate_trial_layout(containers, eval_context);
66
- if (!evaluation.axle_valid) {
67
- return evaluation.axle_excess_kg;
68
- }
69
- return -evaluation.objective;
59
+ function energy(containers, eval_context) {
60
+ return -evaluate_trial_layout(containers, eval_context).objective;
70
61
  }
@@ -12,6 +12,5 @@ export interface BeamExpansionContext {
12
12
  export interface BeamState {
13
13
  containers: StabilizerContainer[];
14
14
  objective: number;
15
- axle_excess_kg: number;
16
15
  }
17
16
  //# sourceMappingURL=beam_context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"beam_context.d.ts","sourceRoot":"","sources":["../../../../src/core/strategies/reorder/beam_context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAEpF,MAAM,WAAW,oBAAoB;IAEjC,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,KAAK,EAAE,SAAS,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,SAAS;IAEtB,UAAU,EAAE,mBAAmB,EAAE,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;CACzB"}
1
+ {"version":3,"file":"beam_context.d.ts","sourceRoot":"","sources":["../../../../src/core/strategies/reorder/beam_context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAEpF,MAAM,WAAW,oBAAoB;IAEjC,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,KAAK,EAAE,SAAS,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,WAAW,SAAS;IAEtB,UAAU,EAAE,mBAAmB,EAAE,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;CACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"greedy_improvement.d.ts","sourceRoot":"","sources":["../../../../src/core/strategies/reorder/greedy_improvement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AAEhG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAiBpF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,YAAY,EAAE,sBAAsB,GACrC,OAAO,CAiBT"}
1
+ {"version":3,"file":"greedy_improvement.d.ts","sourceRoot":"","sources":["../../../../src/core/strategies/reorder/greedy_improvement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAA;AAEhG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAepF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,YAAY,EAAE,sBAAsB,GACrC,OAAO,CAiBT"}
@@ -2,7 +2,6 @@ import { generate_candidates } from '../../candidates/candidate_generator.js';
2
2
  import { candidate_context_for_loose } from '../../candidates/build_candidate_context.js';
3
3
  import { apply_move, clone_containers } from '../../move/apply_move.js';
4
4
  import { evaluate_trial_layout } from '../../evaluation/state_evaluator.js';
5
- import { is_improving_greedy_trial } from './is_improving_greedy_trial.js';
6
5
  /**
7
6
  * Attempts one greedy improvement on the worst loose item.
8
7
  * @param context - Reorder context.
@@ -22,7 +21,7 @@ export function improve_worst_loose(context, working, eval_context) {
22
21
  working,
23
22
  evaluation: eval_context,
24
23
  loose: worst,
25
- parent_eval: current_eval
24
+ baseline_objective: current_eval.objective
26
25
  });
27
26
  }
28
27
  function try_candidate_moves(move_context) {
@@ -38,7 +37,7 @@ function apply_improving_candidate(move_context, candidate) {
38
37
  const trial = clone_containers(move_context.working);
39
38
  apply_move(trial, candidate);
40
39
  const trial_eval = evaluate_trial_layout(trial, move_context.evaluation);
41
- if (!is_improving_greedy_trial(move_context.parent_eval, trial_eval)) {
40
+ if (!trial_eval.all_gates_pass || trial_eval.objective <= move_context.baseline_objective) {
42
41
  return false;
43
42
  }
44
43
  apply_move(move_context.working, candidate);
@@ -4,61 +4,13 @@ export declare const ITEM_WIRE_TO_CONTRACT: {
4
4
  readonly w: "width";
5
5
  readonly h: "height";
6
6
  readonly d: "depth";
7
+ readonly peso: "weight";
7
8
  };
8
- /**
9
- * Cargo-movement wire keys feeding each contract item field, in precedence
10
- * order. Only modelled stabilizer and dependency fields are read.
11
- */
12
- export declare const ITEM_CONTRACT_WIRE_KEYS: Readonly<{
13
- item_id: string[];
14
- group_id: string[];
15
- waypoint_id: string[];
16
- width: string[];
17
- height: string[];
18
- depth: string[];
19
- weight: string[];
20
- tie_ratio_orientation: string[];
21
- family: string[];
22
- supported_families: string[];
23
- constraint: string[];
24
- stack_families: string[];
25
- stack_same_item: string[];
26
- stack_same_area: string[];
27
- stacking_unit: string[];
28
- supported_weight: string[];
29
- priority: string[];
30
- }>;
31
- /** Item fields the stabilizer mutates, and therefore must emit itself. */
32
- export declare const ITEM_POSITION_KEYS: string[];
33
9
  export declare const CONTAINER_WIRE_TO_CONTRACT: {
34
10
  readonly sequencia: "sequence";
35
11
  readonly largura: "width";
36
12
  readonly altura: "height";
37
13
  readonly comprimento: "length";
38
- readonly distPinoRei: "kingpin_distance";
39
- readonly containerDistanceAhead: "container_distance_ahead";
40
- readonly pesoMaxSuportado: "max_supported_weight";
41
- readonly tara: "tare";
42
- readonly pesoDeCarga: "cargo_weight";
43
- readonly grouper: "grouper";
44
- };
45
- export declare const VEHICLE_WIRE_TO_CONTRACT: {
46
- readonly _id: "vehicle_id";
47
- readonly tipoVeiculo: "vehicle_type";
48
- readonly tipoVersao: "version_type";
49
- readonly tipoSuspensao: "suspension_type";
50
- readonly primeiroEixo: "first_axle";
51
- readonly tara: "tare";
52
- readonly pesoMaxSuportado: "max_supported_weight";
53
- readonly qtd: "quantity";
54
- };
55
- export declare const AXLE_WIRE_TO_CONTRACT: {
56
- readonly distanciaOrigem: "distance_from_origin";
57
- readonly pesoMaxSuportado: "max_supported_weight";
58
- readonly pesoDnit: "dnit_weight";
59
- readonly tara: "tare";
60
- readonly sequenciaContainer: "container_sequence";
61
- readonly sequence: "sequence";
62
14
  };
63
15
  export declare const ENV_WIRE_TO_CONTRACT: {
64
16
  readonly eixos: "axles";
@@ -66,6 +18,4 @@ export declare const ENV_WIRE_TO_CONTRACT: {
66
18
  export declare const CONTRACT_TO_ITEM_WIRE: Record<string, string>;
67
19
  export declare const CONTRACT_TO_CONTAINER_WIRE: Record<string, string>;
68
20
  export declare const CONTRACT_TO_ENV_WIRE: Record<string, string>;
69
- export declare const CONTRACT_TO_VEHICLE_WIRE: Record<string, string>;
70
- export declare const CONTRACT_TO_AXLE_WIRE: Record<string, string>;
71
21
  //# sourceMappingURL=cargo_movement_wire_field_map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cargo_movement_wire_field_map.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/cargo_movement_wire_field_map.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB;;;;;;CAMxB,CAAA;AAEV;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAkBlC,CAAA;AAEF,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,UAAkB,CAAA;AAEjD,eAAO,MAAM,0BAA0B;;;;;;;;;;;CAW7B,CAAA;AAEV,eAAO,MAAM,wBAAwB;;;;;;;;;CAS3B,CAAA;AAEV,eAAO,MAAM,qBAAqB;;;;;;;CAOxB,CAAA;AAEV,eAAO,MAAM,oBAAoB;;CAEvB,CAAA;AAEV,eAAO,MAAM,qBAAqB,wBAAoC,CAAA;AACtE,eAAO,MAAM,0BAA0B,wBAAyC,CAAA;AAChF,eAAO,MAAM,oBAAoB,wBAAmC,CAAA;AACpE,eAAO,MAAM,wBAAwB,wBAAuC,CAAA;AAC5E,eAAO,MAAM,qBAAqB,wBAAoC,CAAA"}
1
+ {"version":3,"file":"cargo_movement_wire_field_map.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/cargo_movement_wire_field_map.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB;;;;;;;CAOxB,CAAA;AAEV,eAAO,MAAM,0BAA0B;;;;;CAK7B,CAAA;AAEV,eAAO,MAAM,oBAAoB;;CAEvB,CAAA;AAEV,eAAO,MAAM,qBAAqB,wBAAoC,CAAA;AACtE,eAAO,MAAM,0BAA0B,wBAAyC,CAAA;AAChF,eAAO,MAAM,oBAAoB,wBAAmC,CAAA"}
@@ -3,62 +3,14 @@ export const ITEM_WIRE_TO_CONTRACT = {
3
3
  groupId: 'group_id',
4
4
  w: 'width',
5
5
  h: 'height',
6
- d: 'depth'
6
+ d: 'depth',
7
+ peso: 'weight'
7
8
  };
8
- /**
9
- * Cargo-movement wire keys feeding each contract item field, in precedence
10
- * order. Only modelled stabilizer and dependency fields are read.
11
- */
12
- export const ITEM_CONTRACT_WIRE_KEYS = Object.freeze({
13
- item_id: ['_id', 'item_id'],
14
- group_id: ['groupId', 'group_id'],
15
- waypoint_id: ['waypoint_id'],
16
- width: ['w', 'width'],
17
- height: ['h', 'height'],
18
- depth: ['d', 'depth'],
19
- weight: ['wg', 'peso', 'weight'],
20
- tie_ratio_orientation: ['tie_ratio_orientation'],
21
- family: ['family'],
22
- supported_families: ['supported_families'],
23
- constraint: ['constraint'],
24
- stack_families: ['stack_families'],
25
- stack_same_item: ['stack_same_item'],
26
- stack_same_area: ['stack_same_area'],
27
- stacking_unit: ['stacking_unit', 'stackingUnit'],
28
- supported_weight: ['supported_weight', 'pesoMaxSuportado'],
29
- priority: ['priority']
30
- });
31
- /** Item fields the stabilizer mutates, and therefore must emit itself. */
32
- export const ITEM_POSITION_KEYS = ['x', 'y', 'z'];
33
9
  export const CONTAINER_WIRE_TO_CONTRACT = {
34
10
  sequencia: 'sequence',
35
11
  largura: 'width',
36
12
  altura: 'height',
37
- comprimento: 'length',
38
- distPinoRei: 'kingpin_distance',
39
- containerDistanceAhead: 'container_distance_ahead',
40
- pesoMaxSuportado: 'max_supported_weight',
41
- tara: 'tare',
42
- pesoDeCarga: 'cargo_weight',
43
- grouper: 'grouper'
44
- };
45
- export const VEHICLE_WIRE_TO_CONTRACT = {
46
- _id: 'vehicle_id',
47
- tipoVeiculo: 'vehicle_type',
48
- tipoVersao: 'version_type',
49
- tipoSuspensao: 'suspension_type',
50
- primeiroEixo: 'first_axle',
51
- tara: 'tare',
52
- pesoMaxSuportado: 'max_supported_weight',
53
- qtd: 'quantity'
54
- };
55
- export const AXLE_WIRE_TO_CONTRACT = {
56
- distanciaOrigem: 'distance_from_origin',
57
- pesoMaxSuportado: 'max_supported_weight',
58
- pesoDnit: 'dnit_weight',
59
- tara: 'tare',
60
- sequenciaContainer: 'container_sequence',
61
- sequence: 'sequence'
13
+ comprimento: 'length'
62
14
  };
63
15
  export const ENV_WIRE_TO_CONTRACT = {
64
16
  eixos: 'axles'
@@ -66,8 +18,6 @@ export const ENV_WIRE_TO_CONTRACT = {
66
18
  export const CONTRACT_TO_ITEM_WIRE = invert_map(ITEM_WIRE_TO_CONTRACT);
67
19
  export const CONTRACT_TO_CONTAINER_WIRE = invert_map(CONTAINER_WIRE_TO_CONTRACT);
68
20
  export const CONTRACT_TO_ENV_WIRE = invert_map(ENV_WIRE_TO_CONTRACT);
69
- export const CONTRACT_TO_VEHICLE_WIRE = invert_map(VEHICLE_WIRE_TO_CONTRACT);
70
- export const CONTRACT_TO_AXLE_WIRE = invert_map(AXLE_WIRE_TO_CONTRACT);
71
21
  function invert_map(source) {
72
22
  const inverted = {};
73
23
  for (const [wire_key, contract_key] of Object.entries(source)) {
@@ -1 +1 @@
1
- {"version":3,"file":"cargo_movement_wire_mapper.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/cargo_movement_wire_mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAQzE;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAcvE;AAqBD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAGtF"}
1
+ {"version":3,"file":"cargo_movement_wire_mapper.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/cargo_movement_wire_mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAOzE;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,OAAO,GAAG,OAAO,CAsBvE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAGtF"}
@@ -1,8 +1,7 @@
1
1
  import { map_cargo_state_to_wire } from './map_contract_to_wire_shape.js';
2
2
  import { map_cargo_state_to_contract } from './map_wire_input_to_contract_shape.js';
3
- import { map_envelope_config } from './map_input_config.js';
4
3
  import { is_record } from './wire_mapper_record_utils.js';
5
- const INPUT_ENVELOPE_KEYS = new Set(['id', 'company', 'cargo_state', 'config']);
4
+ const INPUT_ENVELOPE_KEYS = new Set(['id', 'company', 'cargo_state', 'config', 'original_input']);
6
5
  /**
7
6
  * Maps a cargo-movement wire payload to the English contract shape.
8
7
  * @param input_data - Unknown CM wire payload.
@@ -12,14 +11,6 @@ export function map_wire_input_to_contract(input_data) {
12
11
  if (!is_record(input_data)) {
13
12
  return input_data;
14
13
  }
15
- const mapped = map_envelope_fields(input_data);
16
- const mapped_config = map_envelope_config(input_data.config, input_data.cargo_state);
17
- if (mapped_config !== undefined) {
18
- mapped.config = mapped_config;
19
- }
20
- return mapped;
21
- }
22
- function map_envelope_fields(input_data) {
23
14
  const mapped = {};
24
15
  for (const [key, value] of Object.entries(input_data)) {
25
16
  if (!INPUT_ENVELOPE_KEYS.has(key)) {
@@ -1 +1 @@
1
- {"version":3,"file":"map_contract_to_wire_shape.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/map_contract_to_wire_shape.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAIzE,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAKlF"}
1
+ {"version":3,"file":"map_contract_to_wire_shape.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/map_contract_to_wire_shape.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAGzE,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAUlF"}
@@ -1,33 +1,28 @@
1
- import { CONTRACT_TO_AXLE_WIRE, CONTRACT_TO_CONTAINER_WIRE, CONTRACT_TO_ITEM_WIRE, CONTRACT_TO_VEHICLE_WIRE } from './cargo_movement_wire_field_map.js';
2
- import { omit_keys, rename_keys } from './wire_mapper_record_utils.js';
3
- import { strip_uniquify_suffix } from './uniquify_contract_item_ids.js';
1
+ import { CONTRACT_TO_CONTAINER_WIRE, CONTRACT_TO_ITEM_WIRE } from './cargo_movement_wire_field_map.js';
2
+ import { rename_keys } from './wire_mapper_record_utils.js';
4
3
  export function map_cargo_state_to_wire(cargo_state) {
5
- return {
4
+ const wire = {
6
5
  envs: cargo_state.envs.map(map_env_to_wire)
7
6
  };
7
+ if (cargo_state.config !== undefined) {
8
+ wire.config = cargo_state.config;
9
+ }
10
+ return wire;
8
11
  }
9
12
  function map_env_to_wire(env) {
10
- const wire = env.vehicle === undefined
11
- ? {}
12
- : rename_keys(env.vehicle, CONTRACT_TO_VEHICLE_WIRE);
13
- wire.containers = env.containers.map(map_container_to_wire);
13
+ const wire = {
14
+ containers: env.containers.map(map_container_to_wire)
15
+ };
14
16
  if (env.axles !== undefined) {
15
- wire.eixos = env.axles.map(axle => rename_keys(axle, CONTRACT_TO_AXLE_WIRE));
17
+ wire.eixos = env.axles;
16
18
  }
17
19
  return wire;
18
20
  }
19
21
  function map_container_to_wire(container) {
20
- const modelled = omit_keys(container, ['items']);
21
- const wire = rename_keys(modelled, CONTRACT_TO_CONTAINER_WIRE);
22
+ const wire = rename_keys(container, CONTRACT_TO_CONTAINER_WIRE);
22
23
  wire.items = container.items.map(map_item_to_wire);
23
24
  return wire;
24
25
  }
25
- /**
26
- * Emits a contract item to CM wire keys. Position stays in contract axes
27
- * for English items; CM `w`-shaped callers swap y/z before parse.
28
- * @param item - Contract item.
29
- * @returns Wire item.
30
- */
31
26
  function map_item_to_wire(item) {
32
- return rename_keys({ ...item, item_id: strip_uniquify_suffix(item.item_id) }, CONTRACT_TO_ITEM_WIRE);
27
+ return rename_keys(item, CONTRACT_TO_ITEM_WIRE);
33
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"map_wire_input_to_contract_shape.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/map_wire_input_to_contract_shape.ts"],"names":[],"mappings":"AAkBA,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYnE"}
1
+ {"version":3,"file":"map_wire_input_to_contract_shape.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/map_wire_input_to_contract_shape.ts"],"names":[],"mappings":"AAOA,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAiBnE"}
@@ -1,19 +1,13 @@
1
- import { AXLE_WIRE_TO_CONTRACT, CONTAINER_WIRE_TO_CONTRACT, ENV_WIRE_TO_CONTRACT, VEHICLE_WIRE_TO_CONTRACT } from './cargo_movement_wire_field_map.js';
2
- import { map_wire_item_to_contract } from './map_wire_item_to_contract.js';
3
- import { uniquify_contract_item_ids } from './uniquify_contract_item_ids.js';
1
+ import { CONTAINER_WIRE_TO_CONTRACT, ENV_WIRE_TO_CONTRACT, ITEM_WIRE_TO_CONTRACT } from './cargo_movement_wire_field_map.js';
4
2
  import { is_record, pick_keys, rename_keys } from './wire_mapper_record_utils.js';
5
- const CONTAINER_CONTRACT_KEYS = [
6
- 'sequence', 'width', 'height', 'length', 'kingpin_distance',
7
- 'container_distance_ahead', 'max_supported_weight', 'tare', 'cargo_weight', 'grouper'
8
- ];
9
- const ENV_CONTRACT_KEYS = ['axles', 'vehicle'];
10
- const VEHICLE_CONTRACT_KEYS = Object.values(VEHICLE_WIRE_TO_CONTRACT);
11
- const AXLE_CONTRACT_KEYS = Object.values(AXLE_WIRE_TO_CONTRACT);
12
3
  export function map_cargo_state_to_contract(value) {
13
4
  if (!is_record(value)) {
14
5
  return value;
15
6
  }
16
7
  const mapped = {};
8
+ if (value.config !== undefined) {
9
+ mapped.config = value.config;
10
+ }
17
11
  if (Array.isArray(value.envs)) {
18
12
  mapped.envs = value.envs.map(map_env_to_contract);
19
13
  }
@@ -27,13 +21,6 @@ function map_env_to_contract(value) {
27
21
  if (Array.isArray(value.containers)) {
28
22
  mapped.containers = value.containers.map(map_container_to_contract);
29
23
  }
30
- if (Array.isArray(mapped.axles)) {
31
- mapped.axles = mapped.axles.map(map_axle_to_contract);
32
- }
33
- const vehicle = map_vehicle_to_contract(value);
34
- if (vehicle !== undefined) {
35
- mapped.vehicle = vehicle;
36
- }
37
24
  return pick_env_contract_keys(mapped);
38
25
  }
39
26
  function map_container_to_contract(value) {
@@ -42,23 +29,32 @@ function map_container_to_contract(value) {
42
29
  }
43
30
  const mapped = rename_keys(value, CONTAINER_WIRE_TO_CONTRACT);
44
31
  if (Array.isArray(value.items)) {
45
- mapped.items = uniquify_contract_item_ids(value.items.map(map_wire_item_to_contract));
32
+ mapped.items = value.items.map(map_item_to_contract);
46
33
  }
47
- return pick_keys(mapped, [...CONTAINER_CONTRACT_KEYS, 'items']);
34
+ return pick_container_contract_keys(mapped);
48
35
  }
49
- function map_axle_to_contract(value) {
36
+ function map_item_to_contract(value) {
50
37
  if (!is_record(value)) {
51
38
  return value;
52
39
  }
53
- return pick_keys(rename_keys(value, AXLE_WIRE_TO_CONTRACT), AXLE_CONTRACT_KEYS);
40
+ const mapped = rename_keys(value, ITEM_WIRE_TO_CONTRACT);
41
+ return pick_item_contract_keys(mapped);
54
42
  }
55
- function map_vehicle_to_contract(env) {
56
- const source = is_record(env.vehicle) ? env.vehicle : env;
57
- const mapped = pick_keys(rename_keys(source, VEHICLE_WIRE_TO_CONTRACT), VEHICLE_CONTRACT_KEYS);
58
- return Object.keys(mapped).length > 0 ? mapped : undefined;
43
+ function pick_item_contract_keys(source) {
44
+ return pick_keys(source, [
45
+ 'item_id', 'group_id', 'waypoint_id', 'x', 'y', 'z',
46
+ 'width', 'height', 'depth', 'weight'
47
+ ]);
48
+ }
49
+ function pick_container_contract_keys(source) {
50
+ const picked = pick_keys(source, ['sequence', 'width', 'height', 'length']);
51
+ if (Array.isArray(source.items)) {
52
+ picked.items = source.items;
53
+ }
54
+ return picked;
59
55
  }
60
56
  function pick_env_contract_keys(source) {
61
- const picked = pick_keys(source, ENV_CONTRACT_KEYS);
57
+ const picked = pick_keys(source, ['axles']);
62
58
  if (Array.isArray(source.containers)) {
63
59
  picked.containers = source.containers;
64
60
  }
@@ -23,62 +23,17 @@ export declare function safe_parse_stabilizer_input(input_data: unknown): import
23
23
  group_id?: string | null | undefined;
24
24
  waypoint_id?: string | undefined;
25
25
  weight?: number | undefined;
26
- tie_ratio_orientation?: string | undefined;
27
- family?: string | undefined;
28
- supported_families?: string[] | undefined;
29
- constraint?: string | undefined;
30
- stack_families?: boolean | undefined;
31
- stack_same_item?: boolean | undefined;
32
- stack_same_area?: boolean | undefined;
33
- stacking_unit?: string | undefined;
34
- supported_weight?: number | undefined;
35
- priority?: number | undefined;
36
26
  }[];
37
27
  sequence?: number | undefined;
38
- kingpin_distance?: number | undefined;
39
- container_distance_ahead?: number | undefined;
40
- max_supported_weight?: number | undefined;
41
- tare?: number | undefined;
42
- cargo_weight?: number | undefined;
43
- grouper?: number | undefined;
44
28
  }[];
45
- axles?: {
46
- distance_from_origin?: number | undefined;
47
- max_supported_weight?: number | undefined;
48
- dnit_weight?: number | undefined;
49
- tare?: number | undefined;
50
- container_sequence?: number | undefined;
51
- sequence?: number | undefined;
52
- }[] | undefined;
53
- vehicle?: {
54
- vehicle_id?: string | number | undefined;
55
- vehicle_type?: number | undefined;
56
- version_type?: number | undefined;
57
- suspension_type?: string | undefined;
58
- first_axle?: number | undefined;
59
- tare?: number | undefined;
60
- max_supported_weight?: number | undefined;
61
- quantity?: number | undefined;
62
- } | undefined;
29
+ axles?: Record<string, unknown>[] | undefined;
63
30
  }[];
31
+ config?: Record<string, unknown> | undefined;
64
32
  };
65
33
  id?: string | number | undefined;
66
34
  company?: string | number | undefined;
67
- config?: {
68
- reorder_strategy: string;
69
- transport_stability_floor: number;
70
- max_iteration: number;
71
- genetic_population: number;
72
- genetic_generations: number;
73
- genetic_mutation_rate: number;
74
- beam_width: number;
75
- beam_top_k: number;
76
- axle_load_margin_percent: number;
77
- preserve_tie_block_organization: boolean;
78
- pin_tie_ratio_blocks: boolean;
79
- enforce_milkrun_wall_reservation: boolean;
80
- number_of_wall_to_allocate_from_last_waypoints: number;
81
- } | undefined;
35
+ original_input?: unknown;
36
+ config?: Record<string, unknown> | undefined;
82
37
  }>;
83
38
  /**
84
39
  * Parses stabilizer input at the public boundary.
@@ -1 +1 @@
1
- {"version":3,"file":"parse_stabilizer_input.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/parse_stabilizer_input.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE5F;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAI9D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAU3E;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"parse_stabilizer_input.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/parse_stabilizer_input.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE5F;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAI9D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAS3E;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import { InvalidStabilizerInputError } from '../../exceptions/InvalidStabilizerInputError.js';
2
2
  import { map_wire_input_to_contract } from './cargo_movement_wire_mapper.js';
3
3
  import { format_zod_error } from './format_zod_error.js';
4
- import { reject_forbidden_input_fields } from './reject_forbidden_input_fields.js';
5
4
  import { stabilizer_input_schema } from './stabilizer_input_schema.js';
6
5
  /**
7
6
  * Safely parses stabilizer input after wire mapping.
@@ -18,7 +17,6 @@ export function safe_parse_stabilizer_input(input_data) {
18
17
  * @returns Validated stabilizer input in English contract shape.
19
18
  */
20
19
  export function parse_stabilizer_input(input_data) {
21
- reject_forbidden_input_fields(input_data);
22
20
  const result = safe_parse_stabilizer_input(input_data);
23
21
  if (!result.success) {
24
22
  throw new InvalidStabilizerInputError(format_zod_error(result.error));
@@ -24,44 +24,12 @@ export declare function safe_parse_stabilizer_output(output_data: unknown): impo
24
24
  group_id?: string | null | undefined;
25
25
  waypoint_id?: string | undefined;
26
26
  weight?: number | undefined;
27
- tie_ratio_orientation?: string | undefined;
28
- family?: string | undefined;
29
- supported_families?: string[] | undefined;
30
- constraint?: string | undefined;
31
- stack_families?: boolean | undefined;
32
- stack_same_item?: boolean | undefined;
33
- stack_same_area?: boolean | undefined;
34
- stacking_unit?: string | undefined;
35
- supported_weight?: number | undefined;
36
- priority?: number | undefined;
37
27
  }[];
38
28
  sequence?: number | undefined;
39
- kingpin_distance?: number | undefined;
40
- container_distance_ahead?: number | undefined;
41
- max_supported_weight?: number | undefined;
42
- tare?: number | undefined;
43
- cargo_weight?: number | undefined;
44
- grouper?: number | undefined;
45
29
  }[];
46
- axles?: {
47
- distance_from_origin?: number | undefined;
48
- max_supported_weight?: number | undefined;
49
- dnit_weight?: number | undefined;
50
- tare?: number | undefined;
51
- container_sequence?: number | undefined;
52
- sequence?: number | undefined;
53
- }[] | undefined;
54
- vehicle?: {
55
- vehicle_id?: string | number | undefined;
56
- vehicle_type?: number | undefined;
57
- version_type?: number | undefined;
58
- suspension_type?: string | undefined;
59
- first_axle?: number | undefined;
60
- tare?: number | undefined;
61
- max_supported_weight?: number | undefined;
62
- quantity?: number | undefined;
63
- } | undefined;
30
+ axles?: Record<string, unknown>[] | undefined;
64
31
  }[];
32
+ config?: Record<string, unknown> | undefined;
65
33
  };
66
34
  messages: string[];
67
35
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"parse_stabilizer_output.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/parse_stabilizer_output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAEH,KAAK,kBAAkB,EAC1B,MAAM,+BAA+B,CAAA;AAEtC;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGhE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,OAAO,GAAG,kBAAkB,CAShF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"parse_stabilizer_output.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/contract/parse_stabilizer_output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAEH,KAAK,kBAAkB,EAC1B,MAAM,+BAA+B,CAAA;AAEtC;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGhE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,OAAO,GAAG,kBAAkB,CAShF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}