@jetta/cargo-stabilizer 0.1.0-14 → 0.1.0-3
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/CHANGELOG.md +1 -26
- package/README.md +12 -53
- package/build/core/adapters/axle_adapter.d.ts +4 -4
- package/build/core/adapters/axle_adapter.d.ts.map +1 -1
- package/build/core/adapters/axle_adapter.js +11 -13
- package/build/core/adapters/coordinate_mapper.d.ts +5 -5
- package/build/core/adapters/coordinate_mapper.d.ts.map +1 -1
- package/build/core/adapters/coordinate_mapper.js +13 -13
- package/build/core/adapters/stability_adapter.d.ts +1 -1
- package/build/core/adapters/stability_adapter.d.ts.map +1 -1
- package/build/core/adapters/stability_adapter.js +1 -1
- package/build/core/candidates/build_candidate_context.d.ts +1 -1
- package/build/core/candidates/build_candidate_context.d.ts.map +1 -1
- package/build/core/candidates/build_candidate_context.js +1 -3
- package/build/core/candidates/candidate_context.d.ts +1 -4
- package/build/core/candidates/candidate_context.d.ts.map +1 -1
- package/build/core/candidates/candidate_generator.d.ts +1 -1
- package/build/core/candidates/candidate_generator.d.ts.map +1 -1
- package/build/core/candidates/candidate_generator.js +16 -33
- package/build/core/candidates/candidate_validation.d.ts +12 -0
- package/build/core/candidates/candidate_validation.d.ts.map +1 -1
- package/build/core/candidates/candidate_validation.js +26 -36
- package/build/core/candidates/rank_candidates.d.ts.map +1 -1
- package/build/core/candidates/rank_candidates.js +0 -3
- package/build/core/evaluation/evaluation_context.d.ts +1 -3
- package/build/core/evaluation/evaluation_context.d.ts.map +1 -1
- package/build/core/evaluation/state_evaluator.d.ts +1 -12
- package/build/core/evaluation/state_evaluator.d.ts.map +1 -1
- package/build/core/evaluation/state_evaluator.js +7 -31
- package/build/core/factory/read_stabilizer_config.d.ts +2 -4
- package/build/core/factory/read_stabilizer_config.d.ts.map +1 -1
- package/build/core/factory/read_stabilizer_config.js +25 -6
- package/build/core/filters/loose_item_filter.d.ts +2 -2
- package/build/core/filters/loose_item_filter.d.ts.map +1 -1
- package/build/core/filters/loose_item_filter.js +3 -3
- package/build/core/geometry/box_geometry.d.ts +1 -17
- package/build/core/geometry/box_geometry.d.ts.map +1 -1
- package/build/core/geometry/box_geometry.js +2 -67
- package/build/core/move/apply_move.d.ts +1 -3
- package/build/core/move/apply_move.d.ts.map +1 -1
- package/build/core/move/apply_move.js +1 -1
- package/build/core/orchestration/StabilizerFlow.d.ts +1 -2
- package/build/core/orchestration/StabilizerFlow.d.ts.map +1 -1
- package/build/core/orchestration/StabilizerFlow.js +2 -2
- package/build/core/orchestration/build_reorder_context.d.ts +1 -1
- package/build/core/orchestration/build_reorder_context.d.ts.map +1 -1
- package/build/core/orchestration/build_reorder_context.js +12 -10
- package/build/core/strategies/reorder/BeamSearchReorder.d.ts +1 -1
- package/build/core/strategies/reorder/BeamSearchReorder.d.ts.map +1 -1
- package/build/core/strategies/reorder/BeamSearchReorder.js +6 -7
- package/build/core/strategies/reorder/GeneticReorder.d.ts +1 -1
- package/build/core/strategies/reorder/GeneticReorder.d.ts.map +1 -1
- package/build/core/strategies/reorder/GravityCompaction.d.ts +1 -1
- package/build/core/strategies/reorder/GravityCompaction.d.ts.map +1 -1
- package/build/core/strategies/reorder/GravityCompaction.js +2 -2
- package/build/core/strategies/reorder/GreedyReorder.d.ts +1 -1
- package/build/core/strategies/reorder/GreedyReorder.d.ts.map +1 -1
- package/build/core/strategies/reorder/ReorderStrategy.d.ts +1 -3
- package/build/core/strategies/reorder/ReorderStrategy.d.ts.map +1 -1
- package/build/core/strategies/reorder/SimulatedAnnealingReorder.d.ts +1 -1
- package/build/core/strategies/reorder/SimulatedAnnealingReorder.d.ts.map +1 -1
- package/build/core/strategies/reorder/anneal_helpers.d.ts +1 -1
- package/build/core/strategies/reorder/anneal_helpers.d.ts.map +1 -1
- package/build/core/strategies/reorder/anneal_helpers.js +1 -1
- package/build/core/strategies/reorder/apply_if_gates_pass.d.ts +1 -1
- package/build/core/strategies/reorder/apply_if_gates_pass.d.ts.map +1 -1
- package/build/core/strategies/reorder/beam_context.d.ts +1 -1
- package/build/core/strategies/reorder/beam_context.d.ts.map +1 -1
- package/build/core/strategies/reorder/genetic/Chromosome.d.ts +1 -1
- package/build/core/strategies/reorder/genetic/Chromosome.d.ts.map +1 -1
- package/build/core/strategies/reorder/genetic/Chromosome.js +2 -2
- package/build/core/strategies/reorder/greedy_improvement.d.ts +1 -1
- package/build/core/strategies/reorder/greedy_improvement.d.ts.map +1 -1
- package/build/core/strategies/reorder/greedy_improvement.js +2 -2
- package/build/core/validation/parse_stabilizer_input.d.ts +8 -0
- package/build/core/validation/parse_stabilizer_input.d.ts.map +1 -0
- package/build/core/validation/parse_stabilizer_input.js +20 -0
- package/build/core/validation/schemas/stabilizer_config_schema.d.ts +1 -5
- package/build/core/validation/schemas/stabilizer_config_schema.d.ts.map +1 -1
- package/build/core/validation/schemas/stabilizer_config_schema.js +1 -5
- package/build/core/validation/schemas/stabilizer_input_schema.d.ts +110 -0
- package/build/core/validation/schemas/stabilizer_input_schema.d.ts.map +1 -0
- package/build/core/validation/schemas/stabilizer_input_schema.js +34 -0
- package/build/core/validation/schemas/stabilizer_output_schema.d.ts +13 -0
- package/build/core/validation/schemas/stabilizer_output_schema.d.ts.map +1 -0
- package/build/core/validation/schemas/stabilizer_output_schema.js +6 -0
- package/build/core/waypoint/build_waypoint_zones.d.ts +1 -1
- package/build/core/waypoint/build_waypoint_zones.d.ts.map +1 -1
- package/build/core/waypoint/build_waypoint_zones.js +2 -2
- package/build/core/waypoint/preserves_waypoint_order.d.ts +1 -1
- package/build/core/waypoint/preserves_waypoint_order.d.ts.map +1 -1
- package/build/core/waypoint/validate_waypoint_ids.d.ts +1 -1
- package/build/core/waypoint/validate_waypoint_ids.d.ts.map +1 -1
- package/build/index.d.ts +6 -15
- package/build/index.d.ts.map +1 -1
- package/build/index.js +7 -30
- package/package.json +1 -1
- package/build/core/adapters/build_axle_request.d.ts +0 -15
- package/build/core/adapters/build_axle_request.d.ts.map +0 -1
- package/build/core/adapters/build_axle_request.js +0 -39
- package/build/core/adapters/empty_space_adapter.d.ts +0 -10
- package/build/core/adapters/empty_space_adapter.d.ts.map +0 -1
- package/build/core/adapters/empty_space_adapter.js +0 -24
- package/build/core/adapters/map_item_to_positioned_cube.d.ts +0 -9
- package/build/core/adapters/map_item_to_positioned_cube.d.ts.map +0 -1
- package/build/core/adapters/map_item_to_positioned_cube.js +0 -16
- package/build/core/adapters/run_axle_calculator.d.ts +0 -16
- package/build/core/adapters/run_axle_calculator.d.ts.map +0 -1
- package/build/core/adapters/run_axle_calculator.js +0 -32
- package/build/core/candidates/collect_container_slots.d.ts +0 -16
- package/build/core/candidates/collect_container_slots.d.ts.map +0 -1
- package/build/core/candidates/collect_container_slots.js +0 -20
- package/build/core/candidates/enumerate_empty_space_slots.d.ts +0 -15
- package/build/core/candidates/enumerate_empty_space_slots.d.ts.map +0 -1
- package/build/core/candidates/enumerate_empty_space_slots.js +0 -44
- package/build/core/candidates/enumerate_supporter_top_slots.d.ts +0 -11
- package/build/core/candidates/enumerate_supporter_top_slots.d.ts.map +0 -1
- package/build/core/candidates/enumerate_supporter_top_slots.js +0 -36
- package/build/core/candidates/is_elevated_on_supporter_origin.d.ts +0 -14
- package/build/core/candidates/is_elevated_on_supporter_origin.d.ts.map +0 -1
- package/build/core/candidates/is_elevated_on_supporter_origin.js +0 -28
- package/build/core/constants/TieRatioOrientation.d.ts +0 -6
- package/build/core/constants/TieRatioOrientation.d.ts.map +0 -1
- package/build/core/constants/TieRatioOrientation.js +0 -5
- package/build/core/evaluation/compute_reorder_objective.d.ts +0 -13
- package/build/core/evaluation/compute_reorder_objective.d.ts.map +0 -1
- package/build/core/evaluation/compute_reorder_objective.js +0 -13
- package/build/core/exceptions/AxleCalculationError.d.ts +0 -4
- package/build/core/exceptions/AxleCalculationError.d.ts.map +0 -1
- package/build/core/exceptions/AxleCalculationError.js +0 -6
- package/build/core/exceptions/InvalidStabilizerOutputError.d.ts +0 -4
- package/build/core/exceptions/InvalidStabilizerOutputError.d.ts.map +0 -1
- package/build/core/exceptions/InvalidStabilizerOutputError.js +0 -6
- package/build/core/factory/read_stabilizer_config_helpers.d.ts +0 -29
- package/build/core/factory/read_stabilizer_config_helpers.d.ts.map +0 -1
- package/build/core/factory/read_stabilizer_config_helpers.js +0 -73
- package/build/core/filters/collect_movable_items.d.ts +0 -18
- package/build/core/filters/collect_movable_items.d.ts.map +0 -1
- package/build/core/filters/collect_movable_items.js +0 -53
- package/build/core/filters/collect_pinned_floor_tie_ratio_group_ids.d.ts +0 -8
- package/build/core/filters/collect_pinned_floor_tie_ratio_group_ids.d.ts.map +0 -1
- package/build/core/filters/collect_pinned_floor_tie_ratio_group_ids.js +0 -41
- package/build/core/filters/is_item_on_cm_floor.d.ts +0 -8
- package/build/core/filters/is_item_on_cm_floor.d.ts.map +0 -1
- package/build/core/filters/is_item_on_cm_floor.js +0 -9
- package/build/core/geometry/has_penetrating_overlap.d.ts +0 -9
- package/build/core/geometry/has_penetrating_overlap.d.ts.map +0 -1
- package/build/core/geometry/has_penetrating_overlap.js +0 -27
- package/build/core/orchestration/build_milkrun_bands_from_config.d.ts +0 -13
- package/build/core/orchestration/build_milkrun_bands_from_config.d.ts.map +0 -1
- package/build/core/orchestration/build_milkrun_bands_from_config.js +0 -14
- package/build/core/orchestration/read_primary_env.d.ts +0 -9
- package/build/core/orchestration/read_primary_env.d.ts.map +0 -1
- package/build/core/orchestration/read_primary_env.js +0 -13
- package/build/core/strategies/reorder/select_beam_expansion_candidates.d.ts +0 -9
- package/build/core/strategies/reorder/select_beam_expansion_candidates.d.ts.map +0 -1
- package/build/core/strategies/reorder/select_beam_expansion_candidates.js +0 -28
- package/build/core/strategies/reorder/select_surviving_beam.d.ts +0 -10
- package/build/core/strategies/reorder/select_surviving_beam.d.ts.map +0 -1
- package/build/core/strategies/reorder/select_surviving_beam.js +0 -12
- package/build/core/validation/contract/cargo_movement_wire_field_map.d.ts +0 -37
- package/build/core/validation/contract/cargo_movement_wire_field_map.d.ts.map +0 -1
- package/build/core/validation/contract/cargo_movement_wire_field_map.js +0 -43
- package/build/core/validation/contract/cargo_movement_wire_mapper.d.ts +0 -14
- package/build/core/validation/contract/cargo_movement_wire_mapper.d.ts.map +0 -1
- package/build/core/validation/contract/cargo_movement_wire_mapper.js +0 -34
- package/build/core/validation/contract/format_zod_error.d.ts +0 -8
- package/build/core/validation/contract/format_zod_error.d.ts.map +0 -1
- package/build/core/validation/contract/format_zod_error.js +0 -11
- package/build/core/validation/contract/index.d.ts +0 -9
- package/build/core/validation/contract/index.d.ts.map +0 -1
- package/build/core/validation/contract/index.js +0 -8
- package/build/core/validation/contract/map_contract_to_wire_shape.d.ts +0 -3
- package/build/core/validation/contract/map_contract_to_wire_shape.d.ts.map +0 -1
- package/build/core/validation/contract/map_contract_to_wire_shape.js +0 -45
- package/build/core/validation/contract/map_wire_input_to_contract_shape.d.ts +0 -2
- package/build/core/validation/contract/map_wire_input_to_contract_shape.d.ts.map +0 -1
- package/build/core/validation/contract/map_wire_input_to_contract_shape.js +0 -61
- package/build/core/validation/contract/map_wire_item_to_contract.d.ts +0 -12
- package/build/core/validation/contract/map_wire_item_to_contract.d.ts.map +0 -1
- package/build/core/validation/contract/map_wire_item_to_contract.js +0 -57
- package/build/core/validation/contract/parse_stabilizer_input.d.ts +0 -48
- package/build/core/validation/contract/parse_stabilizer_input.d.ts.map +0 -1
- package/build/core/validation/contract/parse_stabilizer_input.js +0 -26
- package/build/core/validation/contract/parse_stabilizer_output.d.ts +0 -50
- package/build/core/validation/contract/parse_stabilizer_output.d.ts.map +0 -1
- package/build/core/validation/contract/parse_stabilizer_output.js +0 -24
- package/build/core/validation/contract/stabilizer_domain_schema.d.ts +0 -101
- package/build/core/validation/contract/stabilizer_domain_schema.d.ts.map +0 -1
- package/build/core/validation/contract/stabilizer_domain_schema.js +0 -64
- package/build/core/validation/contract/stabilizer_input_schema.d.ts +0 -36
- package/build/core/validation/contract/stabilizer_input_schema.d.ts.map +0 -1
- package/build/core/validation/contract/stabilizer_input_schema.js +0 -11
- package/build/core/validation/contract/stabilizer_output_schema.d.ts +0 -76
- package/build/core/validation/contract/stabilizer_output_schema.d.ts.map +0 -1
- package/build/core/validation/contract/stabilizer_output_schema.js +0 -16
- package/build/core/validation/contract/uniquify_contract_item_ids.d.ts +0 -8
- package/build/core/validation/contract/uniquify_contract_item_ids.d.ts.map +0 -1
- package/build/core/validation/contract/uniquify_contract_item_ids.js +0 -38
- package/build/core/validation/contract/wire_mapper_record_utils.d.ts +0 -34
- package/build/core/validation/contract/wire_mapper_record_utils.d.ts.map +0 -1
- package/build/core/validation/contract/wire_mapper_record_utils.js +0 -66
- package/build/core/waypoint/milkrun_wall_reservation.d.ts +0 -24
- package/build/core/waypoint/milkrun_wall_reservation.d.ts.map +0 -1
- package/build/core/waypoint/milkrun_wall_reservation.js +0 -57
- package/build/core/waypoint/milkrun_wall_reservation_helpers.d.ts +0 -15
- package/build/core/waypoint/milkrun_wall_reservation_helpers.d.ts.map +0 -1
- package/build/core/waypoint/milkrun_wall_reservation_helpers.js +0 -48
- package/build/core/waypoint/milkrun_wall_reservation_types.d.ts +0 -16
- package/build/core/waypoint/milkrun_wall_reservation_types.d.ts.map +0 -1
- package/build/core/waypoint/milkrun_wall_reservation_types.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anneal_helpers.d.ts","sourceRoot":"","sources":["../../../../src/core/strategies/reorder/anneal_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"anneal_helpers.d.ts","sourceRoot":"","sources":["../../../../src/core/strategies/reorder/anneal_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAA;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAI7D;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,mBAAmB,EAAE,GAC/B,aAAa,GAAG,SAAS,CAgB3B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAWvE"}
|
|
@@ -35,5 +35,5 @@ export function accept_move(delta, temperature) {
|
|
|
35
35
|
return Math.random() < Math.exp(-delta / temperature);
|
|
36
36
|
}
|
|
37
37
|
function find_container_index(containers, item_id) {
|
|
38
|
-
return containers.findIndex(container => container.items.some(item => item.
|
|
38
|
+
return containers.findIndex(container => container.items.some(item => item._id === item_id));
|
|
39
39
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StabilizerContainer } from '../../validation/
|
|
1
|
+
import type { StabilizerContainer } from '../../validation/schemas/stabilizer_input_schema.js';
|
|
2
2
|
import type { ReorderContext } from './ReorderStrategy.js';
|
|
3
3
|
import type { MoveCandidate } from '../../move/apply_move.js';
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply_if_gates_pass.d.ts","sourceRoot":"","sources":["../../../../src/core/strategies/reorder/apply_if_gates_pass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"apply_if_gates_pass.d.ts","sourceRoot":"","sources":["../../../../src/core/strategies/reorder/apply_if_gates_pass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAA;AAC9F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAO7D;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,SAAS,EAAE,aAAa,GACzB,OAAO,CAWT"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReorderContext } from './ReorderStrategy.js';
|
|
2
|
-
import type { StabilizerContainer } from '../../validation/
|
|
2
|
+
import type { StabilizerContainer } from '../../validation/schemas/stabilizer_input_schema.js';
|
|
3
3
|
import type { LooseItemRef } from '../../filters/loose_item_filter.js';
|
|
4
4
|
import type { StateEvaluationContext } from '../../evaluation/evaluation_context.js';
|
|
5
5
|
export interface BeamExpansionContext {
|
|
@@ -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,
|
|
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,qDAAqD,CAAA;AAC9F,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,6 +1,6 @@
|
|
|
1
1
|
import type { MoveCandidate } from '../../../move/apply_move.js';
|
|
2
2
|
import type { ReorderContext } from '../ReorderStrategy.js';
|
|
3
|
-
import type { StabilizerContainer } from '../../../validation/
|
|
3
|
+
import type { StabilizerContainer } from '../../../validation/schemas/stabilizer_input_schema.js';
|
|
4
4
|
export interface ChromosomeGene {
|
|
5
5
|
item_id: string;
|
|
6
6
|
candidate: MoveCandidate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chromosome.d.ts","sourceRoot":"","sources":["../../../../../src/core/strategies/reorder/genetic/Chromosome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Chromosome.d.ts","sourceRoot":"","sources":["../../../../../src/core/strategies/reorder/genetic/Chromosome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAA;AAEjG,MAAM,WAAW,cAAc;IAE3B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,aAAa,CAAA;CAC3B;AAED,MAAM,WAAW,eAAe;IAE5B,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,MAAM,GACxB,eAAe,EAAE,CAQnB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,GAAG,eAAe,CAMlG;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,MAAM,GACtB,IAAI,CAeN;AAsBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,QAAQ,EAAE,eAAe,GAC1B,mBAAmB,EAAE,CAgBvB"}
|
|
@@ -61,7 +61,7 @@ function build_identity_candidate(loose) {
|
|
|
61
61
|
export function materialize_organism(baseline, organism) {
|
|
62
62
|
const working = structuredClone(baseline);
|
|
63
63
|
for (const gene of organism.genes) {
|
|
64
|
-
const source_index = working.findIndex(container => container.items.some(item => item.
|
|
64
|
+
const source_index = working.findIndex(container => container.items.some(item => item._id === gene.item_id));
|
|
65
65
|
if (source_index < 0) {
|
|
66
66
|
continue;
|
|
67
67
|
}
|
|
@@ -72,7 +72,7 @@ export function materialize_organism(baseline, organism) {
|
|
|
72
72
|
}
|
|
73
73
|
function apply_gene(containers, candidate) {
|
|
74
74
|
const source = containers[candidate.source_container_index];
|
|
75
|
-
const item_index = source.items.findIndex(item => item.
|
|
75
|
+
const item_index = source.items.findIndex(item => item._id === candidate.item_id);
|
|
76
76
|
if (item_index < 0) {
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReorderContext } from './ReorderStrategy.js';
|
|
2
|
-
import type { StabilizerContainer } from '../../validation/
|
|
2
|
+
import type { StabilizerContainer } from '../../validation/schemas/stabilizer_input_schema.js';
|
|
3
3
|
import type { StateEvaluationContext } from '../../evaluation/evaluation_context.js';
|
|
4
4
|
/**
|
|
5
5
|
* Attempts one greedy improvement on the worst loose item.
|
|
@@ -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,
|
|
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,qDAAqD,CAAA;AAE9F,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"}
|
|
@@ -49,7 +49,7 @@ function find_worst_loose(context, containers, item_scores) {
|
|
|
49
49
|
let worst_score = Number.POSITIVE_INFINITY;
|
|
50
50
|
for (const loose of context.loose_items) {
|
|
51
51
|
const item_index = containers[loose.container_index].items
|
|
52
|
-
.findIndex(item => item.
|
|
52
|
+
.findIndex(item => item._id === loose.item_id);
|
|
53
53
|
const score = item_scores[loose.container_index]?.[item_index] ?? 0;
|
|
54
54
|
if (score < worst_score) {
|
|
55
55
|
worst_score = score;
|
|
@@ -59,5 +59,5 @@ function find_worst_loose(context, containers, item_scores) {
|
|
|
59
59
|
return worst;
|
|
60
60
|
}
|
|
61
61
|
function find_container_index(containers, item_id) {
|
|
62
|
-
return containers.findIndex(container => container.items.some(item => item.
|
|
62
|
+
return containers.findIndex(container => container.items.some(item => item._id === item_id));
|
|
63
63
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type StabilizerInput } from './schemas/stabilizer_input_schema.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parses stabilizer input at the public boundary.
|
|
4
|
+
* @param input_data - Unknown wire payload.
|
|
5
|
+
* @returns Validated stabilizer input.
|
|
6
|
+
*/
|
|
7
|
+
export declare function parse_stabilizer_input(input_data: unknown): StabilizerInput;
|
|
8
|
+
//# sourceMappingURL=parse_stabilizer_input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse_stabilizer_input.d.ts","sourceRoot":"","sources":["../../../src/core/validation/parse_stabilizer_input.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAA;AAEpG;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,CAS3E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { InvalidStabilizerInputError } from '../exceptions/InvalidStabilizerInputError.js';
|
|
2
|
+
import { stabilizer_input_schema } from './schemas/stabilizer_input_schema.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parses stabilizer input at the public boundary.
|
|
5
|
+
* @param input_data - Unknown wire payload.
|
|
6
|
+
* @returns Validated stabilizer input.
|
|
7
|
+
*/
|
|
8
|
+
export function parse_stabilizer_input(input_data) {
|
|
9
|
+
const result = stabilizer_input_schema.safeParse(input_data);
|
|
10
|
+
if (!result.success) {
|
|
11
|
+
throw new InvalidStabilizerInputError(format_zod_error(result.error));
|
|
12
|
+
}
|
|
13
|
+
return result.data;
|
|
14
|
+
}
|
|
15
|
+
function format_zod_error(error) {
|
|
16
|
+
return error.issues.map(issue => {
|
|
17
|
+
const path = issue.path.length > 0 ? issue.path.join('.') : '(root)';
|
|
18
|
+
return `${path}: ${issue.message}`;
|
|
19
|
+
}).join('; ');
|
|
20
|
+
}
|
|
@@ -10,11 +10,7 @@ export declare const stabilizer_config_schema: z.ZodObject<{
|
|
|
10
10
|
genetic_mutation_rate: z.ZodDefault<z.ZodNumber>;
|
|
11
11
|
beam_width: z.ZodDefault<z.ZodNumber>;
|
|
12
12
|
beam_top_k: z.ZodDefault<z.ZodNumber>;
|
|
13
|
-
|
|
14
|
-
preserve_tie_block_organization: z.ZodDefault<z.ZodBoolean>;
|
|
15
|
-
pin_tie_ratio_blocks: z.ZodDefault<z.ZodBoolean>;
|
|
16
|
-
enforce_milkrun_wall_reservation: z.ZodDefault<z.ZodBoolean>;
|
|
17
|
-
number_of_wall_to_allocate_from_last_waypoints: z.ZodDefault<z.ZodNumber>;
|
|
13
|
+
folga_de_peso_nos_eixos: z.ZodDefault<z.ZodNumber>;
|
|
18
14
|
}, z.core.$strip>;
|
|
19
15
|
export type StabilizerConfig = z.infer<typeof stabilizer_config_schema>;
|
|
20
16
|
//# sourceMappingURL=stabilizer_config_schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stabilizer_config_schema.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/schemas/stabilizer_config_schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"stabilizer_config_schema.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/schemas/stabilizer_config_schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,wBAAwB;;;;;;;;;;;;iBAUnC,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA"}
|
|
@@ -9,9 +9,5 @@ export const stabilizer_config_schema = z.object({
|
|
|
9
9
|
genetic_mutation_rate: z.number().min(0).max(1).default(0.15),
|
|
10
10
|
beam_width: z.number().int().positive().default(5),
|
|
11
11
|
beam_top_k: z.number().int().positive().default(3),
|
|
12
|
-
|
|
13
|
-
preserve_tie_block_organization: z.boolean().default(true),
|
|
14
|
-
pin_tie_ratio_blocks: z.boolean().default(false),
|
|
15
|
-
enforce_milkrun_wall_reservation: z.boolean().default(false),
|
|
16
|
-
number_of_wall_to_allocate_from_last_waypoints: z.number().int().min(0).default(0)
|
|
12
|
+
folga_de_peso_nos_eixos: z.number().min(0).default(0)
|
|
17
13
|
});
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const stabilizer_item_schema: z.ZodObject<{
|
|
3
|
+
_id: z.ZodString;
|
|
4
|
+
groupId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
5
|
+
waypoint_id: z.ZodOptional<z.ZodString>;
|
|
6
|
+
x: z.ZodNumber;
|
|
7
|
+
y: z.ZodNumber;
|
|
8
|
+
z: z.ZodNumber;
|
|
9
|
+
w: z.ZodNumber;
|
|
10
|
+
h: z.ZodNumber;
|
|
11
|
+
d: z.ZodNumber;
|
|
12
|
+
peso: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
}, z.core.$loose>;
|
|
14
|
+
export declare const stabilizer_container_schema: z.ZodObject<{
|
|
15
|
+
sequencia: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
largura: z.ZodNumber;
|
|
17
|
+
altura: z.ZodNumber;
|
|
18
|
+
comprimento: z.ZodNumber;
|
|
19
|
+
items: z.ZodArray<z.ZodObject<{
|
|
20
|
+
_id: z.ZodString;
|
|
21
|
+
groupId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
22
|
+
waypoint_id: z.ZodOptional<z.ZodString>;
|
|
23
|
+
x: z.ZodNumber;
|
|
24
|
+
y: z.ZodNumber;
|
|
25
|
+
z: z.ZodNumber;
|
|
26
|
+
w: z.ZodNumber;
|
|
27
|
+
h: z.ZodNumber;
|
|
28
|
+
d: z.ZodNumber;
|
|
29
|
+
peso: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
}, z.core.$loose>>;
|
|
31
|
+
}, z.core.$loose>;
|
|
32
|
+
export declare const stabilizer_env_schema: z.ZodObject<{
|
|
33
|
+
containers: z.ZodArray<z.ZodObject<{
|
|
34
|
+
sequencia: z.ZodOptional<z.ZodNumber>;
|
|
35
|
+
largura: z.ZodNumber;
|
|
36
|
+
altura: z.ZodNumber;
|
|
37
|
+
comprimento: z.ZodNumber;
|
|
38
|
+
items: z.ZodArray<z.ZodObject<{
|
|
39
|
+
_id: z.ZodString;
|
|
40
|
+
groupId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
41
|
+
waypoint_id: z.ZodOptional<z.ZodString>;
|
|
42
|
+
x: z.ZodNumber;
|
|
43
|
+
y: z.ZodNumber;
|
|
44
|
+
z: z.ZodNumber;
|
|
45
|
+
w: z.ZodNumber;
|
|
46
|
+
h: z.ZodNumber;
|
|
47
|
+
d: z.ZodNumber;
|
|
48
|
+
peso: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
}, z.core.$loose>>;
|
|
50
|
+
}, z.core.$loose>>;
|
|
51
|
+
eixos: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
52
|
+
}, z.core.$loose>;
|
|
53
|
+
export declare const stabilizer_cargo_state_schema: z.ZodObject<{
|
|
54
|
+
envs: z.ZodArray<z.ZodObject<{
|
|
55
|
+
containers: z.ZodArray<z.ZodObject<{
|
|
56
|
+
sequencia: z.ZodOptional<z.ZodNumber>;
|
|
57
|
+
largura: z.ZodNumber;
|
|
58
|
+
altura: z.ZodNumber;
|
|
59
|
+
comprimento: z.ZodNumber;
|
|
60
|
+
items: z.ZodArray<z.ZodObject<{
|
|
61
|
+
_id: z.ZodString;
|
|
62
|
+
groupId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
63
|
+
waypoint_id: z.ZodOptional<z.ZodString>;
|
|
64
|
+
x: z.ZodNumber;
|
|
65
|
+
y: z.ZodNumber;
|
|
66
|
+
z: z.ZodNumber;
|
|
67
|
+
w: z.ZodNumber;
|
|
68
|
+
h: z.ZodNumber;
|
|
69
|
+
d: z.ZodNumber;
|
|
70
|
+
peso: z.ZodOptional<z.ZodNumber>;
|
|
71
|
+
}, z.core.$loose>>;
|
|
72
|
+
}, z.core.$loose>>;
|
|
73
|
+
eixos: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
74
|
+
}, z.core.$loose>>;
|
|
75
|
+
}, z.core.$loose>;
|
|
76
|
+
export declare const stabilizer_input_schema: z.ZodObject<{
|
|
77
|
+
id: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
78
|
+
company: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
79
|
+
cargo_state: z.ZodObject<{
|
|
80
|
+
envs: z.ZodArray<z.ZodObject<{
|
|
81
|
+
containers: z.ZodArray<z.ZodObject<{
|
|
82
|
+
sequencia: z.ZodOptional<z.ZodNumber>;
|
|
83
|
+
largura: z.ZodNumber;
|
|
84
|
+
altura: z.ZodNumber;
|
|
85
|
+
comprimento: z.ZodNumber;
|
|
86
|
+
items: z.ZodArray<z.ZodObject<{
|
|
87
|
+
_id: z.ZodString;
|
|
88
|
+
groupId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
89
|
+
waypoint_id: z.ZodOptional<z.ZodString>;
|
|
90
|
+
x: z.ZodNumber;
|
|
91
|
+
y: z.ZodNumber;
|
|
92
|
+
z: z.ZodNumber;
|
|
93
|
+
w: z.ZodNumber;
|
|
94
|
+
h: z.ZodNumber;
|
|
95
|
+
d: z.ZodNumber;
|
|
96
|
+
peso: z.ZodOptional<z.ZodNumber>;
|
|
97
|
+
}, z.core.$loose>>;
|
|
98
|
+
}, z.core.$loose>>;
|
|
99
|
+
eixos: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
100
|
+
}, z.core.$loose>>;
|
|
101
|
+
}, z.core.$loose>;
|
|
102
|
+
original_input: z.ZodOptional<z.ZodUnknown>;
|
|
103
|
+
config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
104
|
+
}, z.core.$loose>;
|
|
105
|
+
export type StabilizerItem = z.infer<typeof stabilizer_item_schema>;
|
|
106
|
+
export type StabilizerContainer = z.infer<typeof stabilizer_container_schema>;
|
|
107
|
+
export type StabilizerEnv = z.infer<typeof stabilizer_env_schema>;
|
|
108
|
+
export type StabilizerCargoState = z.infer<typeof stabilizer_cargo_state_schema>;
|
|
109
|
+
export type StabilizerInput = z.infer<typeof stabilizer_input_schema>;
|
|
110
|
+
//# sourceMappingURL=stabilizer_input_schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stabilizer_input_schema.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/schemas/stabilizer_input_schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,sBAAsB;;;;;;;;;;;iBAWnB,CAAA;AAEhB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;iBAMxB,CAAA;AAEhB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;iBAGlB,CAAA;AAEhB,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;iBAE1B,CAAA;AAEhB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMpB,CAAA;AAEhB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACnE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC7E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAChF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const stabilizer_item_schema = z.object({
|
|
3
|
+
_id: z.string().min(1),
|
|
4
|
+
groupId: z.union([z.string(), z.null()]).optional(),
|
|
5
|
+
waypoint_id: z.string().optional(),
|
|
6
|
+
x: z.number(),
|
|
7
|
+
y: z.number(),
|
|
8
|
+
z: z.number(),
|
|
9
|
+
w: z.number().positive(),
|
|
10
|
+
h: z.number().positive(),
|
|
11
|
+
d: z.number().positive(),
|
|
12
|
+
peso: z.number().optional()
|
|
13
|
+
}).passthrough();
|
|
14
|
+
export const stabilizer_container_schema = z.object({
|
|
15
|
+
sequencia: z.number().optional(),
|
|
16
|
+
largura: z.number().positive(),
|
|
17
|
+
altura: z.number().positive(),
|
|
18
|
+
comprimento: z.number().positive(),
|
|
19
|
+
items: z.array(stabilizer_item_schema)
|
|
20
|
+
}).passthrough();
|
|
21
|
+
export const stabilizer_env_schema = z.object({
|
|
22
|
+
containers: z.array(stabilizer_container_schema).min(1),
|
|
23
|
+
eixos: z.array(z.record(z.string(), z.unknown())).optional()
|
|
24
|
+
}).passthrough();
|
|
25
|
+
export const stabilizer_cargo_state_schema = z.object({
|
|
26
|
+
envs: z.array(stabilizer_env_schema).min(1)
|
|
27
|
+
}).passthrough();
|
|
28
|
+
export const stabilizer_input_schema = z.object({
|
|
29
|
+
id: z.union([z.string(), z.number()]).optional(),
|
|
30
|
+
company: z.union([z.string(), z.number()]).optional(),
|
|
31
|
+
cargo_state: stabilizer_cargo_state_schema,
|
|
32
|
+
original_input: z.unknown().optional(),
|
|
33
|
+
config: z.record(z.string(), z.unknown()).optional()
|
|
34
|
+
}).passthrough();
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { stabilizer_cargo_state_schema } from './stabilizer_input_schema.js';
|
|
3
|
+
export declare const stabilizer_response_schema: z.ZodObject<{
|
|
4
|
+
status: z.ZodEnum<{
|
|
5
|
+
error: "error";
|
|
6
|
+
success: "success";
|
|
7
|
+
}>;
|
|
8
|
+
data: z.ZodUnknown;
|
|
9
|
+
messages: z.ZodArray<z.ZodString>;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
export type StabilizerResponse = z.infer<typeof stabilizer_response_schema>;
|
|
12
|
+
export type StabilizerSuccessData = z.infer<typeof stabilizer_cargo_state_schema>;
|
|
13
|
+
//# sourceMappingURL=stabilizer_output_schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stabilizer_output_schema.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/schemas/stabilizer_output_schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAA;AAE5E,eAAO,MAAM,0BAA0B;;;;;;;iBAIrC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAC3E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StabilizerContainer, StabilizerItem } from '../validation/
|
|
1
|
+
import type { StabilizerContainer, StabilizerItem } from '../validation/schemas/stabilizer_input_schema.js';
|
|
2
2
|
import type { WaypointMode, WaypointZone } from './WaypointMode.js';
|
|
3
3
|
/**
|
|
4
4
|
* Builds Z zones per waypoint per container from item extents.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_waypoint_zones.d.ts","sourceRoot":"","sources":["../../../src/core/waypoint/build_waypoint_zones.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"build_waypoint_zones.d.ts","sourceRoot":"","sources":["../../../src/core/waypoint/build_waypoint_zones.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAA;AAC3G,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGnE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,mBAAmB,EAAE,EACjC,IAAI,EAAE,YAAY,GACnB,YAAY,EAAE,CAmBhB;AAmCD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,OAAO,CAGT"}
|
|
@@ -29,7 +29,7 @@ function group_items_by_waypoint(items, mode) {
|
|
|
29
29
|
return groups;
|
|
30
30
|
}
|
|
31
31
|
function build_zone(waypoint_id, container_index, items) {
|
|
32
|
-
const z_values = items.flatMap(item => [item.z, item.z + item.
|
|
32
|
+
const z_values = items.flatMap(item => [item.z, item.z + item.d]);
|
|
33
33
|
return {
|
|
34
34
|
waypoint_id,
|
|
35
35
|
container_index,
|
|
@@ -44,5 +44,5 @@ function build_zone(waypoint_id, container_index, items) {
|
|
|
44
44
|
* @returns True when item fits inside zone on Z axis.
|
|
45
45
|
*/
|
|
46
46
|
export function is_position_in_zone(zone, item, position) {
|
|
47
|
-
return position.z >= zone.z_min && position.z + item.
|
|
47
|
+
return position.z >= zone.z_min && position.z + item.d <= zone.z_max;
|
|
48
48
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StabilizerContainer } from '../validation/
|
|
1
|
+
import type { StabilizerContainer } from '../validation/schemas/stabilizer_input_schema.js';
|
|
2
2
|
import type { WaypointMode } from './WaypointMode.js';
|
|
3
3
|
/**
|
|
4
4
|
* Builds macro waypoint order vector along Z for one container.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preserves_waypoint_order.d.ts","sourceRoot":"","sources":["../../../src/core/waypoint/preserves_waypoint_order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"preserves_waypoint_order.d.ts","sourceRoot":"","sources":["../../../src/core/waypoint/preserves_waypoint_order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAA;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACvC,SAAS,EAAE,mBAAmB,EAC9B,IAAI,EAAE,YAAY,GACnB,MAAM,EAAE,CAeV;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAQxE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACpC,MAAM,EAAE,mBAAmB,EAAE,EAC7B,KAAK,EAAE,mBAAmB,EAAE,EAC5B,IAAI,EAAE,YAAY,GACnB,OAAO,CAkBT"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StabilizerItem } from '../validation/
|
|
1
|
+
import type { StabilizerItem } from '../validation/schemas/stabilizer_input_schema.js';
|
|
2
2
|
import type { WaypointMode } from './WaypointMode.js';
|
|
3
3
|
/**
|
|
4
4
|
* Validates waypoint_id consistency across all items in an env.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate_waypoint_ids.d.ts","sourceRoot":"","sources":["../../../src/core/waypoint/validate_waypoint_ids.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validate_waypoint_ids.d.ts","sourceRoot":"","sources":["../../../src/core/waypoint/validate_waypoint_ids.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAA;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,YAAY,CAgB3E;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAQzF"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,26 +1,17 @@
|
|
|
1
|
+
import type { StabilizerInput } from './core/validation/schemas/stabilizer_input_schema.js';
|
|
2
|
+
import type { StabilizerResponse } from './core/validation/schemas/stabilizer_output_schema.js';
|
|
1
3
|
export { REORDER_STRATEGY, REORDER_STRATEGY_VALUES } from './core/constants/ReorderStrategy.js';
|
|
2
4
|
export type { ReorderStrategyValue } from './core/constants/ReorderStrategy.js';
|
|
3
5
|
export { MixedWaypointIdError } from './core/exceptions/MixedWaypointIdError.js';
|
|
4
6
|
export { UnknownReorderStrategyError } from './core/exceptions/UnknownReorderStrategyError.js';
|
|
5
7
|
export { InvalidStabilizerInputError } from './core/exceptions/InvalidStabilizerInputError.js';
|
|
6
|
-
export {
|
|
7
|
-
export type { StabilizerInput, StabilizerResponse, StabilizerSuccessResponse, StabilizerErrorResponse, StabilizerItem, StabilizerContainer, StabilizerEnv, StabilizerCargoState } from './core/validation/contract/index.js';
|
|
8
|
-
export { parse_stabilizer_input, safe_parse_stabilizer_input, parse_stabilizer_output, safe_parse_stabilizer_output, map_wire_input_to_contract, map_contract_to_wire_output } from './core/validation/contract/index.js';
|
|
9
|
-
export type StabilizerWireResponse = {
|
|
10
|
-
status: 'success';
|
|
11
|
-
data: unknown;
|
|
12
|
-
messages: string[];
|
|
13
|
-
} | {
|
|
14
|
-
status: 'error';
|
|
15
|
-
data: string;
|
|
16
|
-
messages: string[];
|
|
17
|
-
};
|
|
8
|
+
export type { StabilizerInput, StabilizerResponse };
|
|
18
9
|
/**
|
|
19
10
|
* Stabilizes cargo by reordering loose items (legacy CM-compatible response).
|
|
20
|
-
* @param input -
|
|
21
|
-
* @returns Success or error response with
|
|
11
|
+
* @param input - Stabilizer input matching cargo-movement wire shape.
|
|
12
|
+
* @returns Success or error response with messages array.
|
|
22
13
|
*/
|
|
23
|
-
export declare function stabilize(input:
|
|
14
|
+
export declare function stabilize(input: StabilizerInput): Promise<StabilizerResponse>;
|
|
24
15
|
export { run_stabilizer_flow_from_unknown } from './core/orchestration/StabilizerFlow.js';
|
|
25
16
|
export { create_reorder_strategy } from './core/factory/strategy_factory.js';
|
|
26
17
|
export { validate_waypoint_ids } from './core/waypoint/validate_waypoint_ids.js';
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sDAAsD,CAAA;AAC3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAA;AAE/F,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAC/F,YAAY,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAA;AAC9F,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAA;AAC9F,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA;AAKnD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAMnF;AA0CD,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAA;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAA"}
|
package/build/index.js
CHANGED
|
@@ -1,33 +1,21 @@
|
|
|
1
1
|
import { Logger } from '@jetta/logger';
|
|
2
2
|
import { run_stabilizer_flow_from_unknown } from './core/orchestration/StabilizerFlow.js';
|
|
3
3
|
import { stabilizer_logger } from './core/logging/stabilizer_logger.js';
|
|
4
|
-
import { map_contract_to_wire_output, parse_stabilizer_output } from './core/validation/contract/index.js';
|
|
5
4
|
export { REORDER_STRATEGY, REORDER_STRATEGY_VALUES } from './core/constants/ReorderStrategy.js';
|
|
6
5
|
export { MixedWaypointIdError } from './core/exceptions/MixedWaypointIdError.js';
|
|
7
6
|
export { UnknownReorderStrategyError } from './core/exceptions/UnknownReorderStrategyError.js';
|
|
8
7
|
export { InvalidStabilizerInputError } from './core/exceptions/InvalidStabilizerInputError.js';
|
|
9
|
-
export { InvalidStabilizerOutputError } from './core/exceptions/InvalidStabilizerOutputError.js';
|
|
10
|
-
export { parse_stabilizer_input, safe_parse_stabilizer_input, parse_stabilizer_output, safe_parse_stabilizer_output, map_wire_input_to_contract, map_contract_to_wire_output } from './core/validation/contract/index.js';
|
|
11
8
|
const messages = [];
|
|
12
9
|
const UNKNOWN_IDENTITY = 'UNKNOWN';
|
|
13
10
|
/**
|
|
14
11
|
* Stabilizes cargo by reordering loose items (legacy CM-compatible response).
|
|
15
|
-
* @param input -
|
|
16
|
-
* @returns Success or error response with
|
|
12
|
+
* @param input - Stabilizer input matching cargo-movement wire shape.
|
|
13
|
+
* @returns Success or error response with messages array.
|
|
17
14
|
*/
|
|
18
15
|
export async function stabilize(input) {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
function read_stabilizer_identity(input) {
|
|
23
|
-
if (typeof input !== 'object' || input === null) {
|
|
24
|
-
return { company: UNKNOWN_IDENTITY, cargo_id: UNKNOWN_IDENTITY };
|
|
25
|
-
}
|
|
26
|
-
const record = input;
|
|
27
|
-
return {
|
|
28
|
-
company: record.company !== undefined ? String(record.company) : UNKNOWN_IDENTITY,
|
|
29
|
-
cargo_id: record.id !== undefined ? String(record.id) : UNKNOWN_IDENTITY
|
|
30
|
-
};
|
|
16
|
+
const company = input.company !== undefined ? String(input.company) : UNKNOWN_IDENTITY;
|
|
17
|
+
const cargo_id = input.id !== undefined ? String(input.id) : UNKNOWN_IDENTITY;
|
|
18
|
+
return Logger.run_with_cargo_info(company, cargo_id, () => run_stabilize(input));
|
|
31
19
|
}
|
|
32
20
|
function run_stabilize(input) {
|
|
33
21
|
stabilizer_logger.log('cargo-stabilizer started');
|
|
@@ -41,20 +29,11 @@ function run_stabilize(input) {
|
|
|
41
29
|
}
|
|
42
30
|
}
|
|
43
31
|
function build_success_response(cargo_state) {
|
|
44
|
-
|
|
32
|
+
return {
|
|
45
33
|
status: 'success',
|
|
46
34
|
data: cargo_state,
|
|
47
35
|
messages: [...messages]
|
|
48
36
|
};
|
|
49
|
-
const validated = parse_stabilizer_output(english_response);
|
|
50
|
-
if (validated.status !== 'success') {
|
|
51
|
-
throw new Error('Expected success response after stabilizer flow');
|
|
52
|
-
}
|
|
53
|
-
return {
|
|
54
|
-
status: 'success',
|
|
55
|
-
data: map_contract_to_wire_output(validated.data),
|
|
56
|
-
messages: validated.messages
|
|
57
|
-
};
|
|
58
37
|
}
|
|
59
38
|
function build_error_response(err) {
|
|
60
39
|
stabilizer_logger.warn('cargo-stabilizer finished with error');
|
|
@@ -62,13 +41,11 @@ function build_error_response(err) {
|
|
|
62
41
|
if (err.stack) {
|
|
63
42
|
stabilizer_logger.error(err.stack);
|
|
64
43
|
}
|
|
65
|
-
|
|
44
|
+
return {
|
|
66
45
|
status: 'error',
|
|
67
46
|
data: err.message,
|
|
68
47
|
messages: [...messages, err.message]
|
|
69
48
|
};
|
|
70
|
-
parse_stabilizer_output(response);
|
|
71
|
-
return response;
|
|
72
49
|
}
|
|
73
50
|
export { run_stabilizer_flow_from_unknown } from './core/orchestration/StabilizerFlow.js';
|
|
74
51
|
export { create_reorder_strategy } from './core/factory/strategy_factory.js';
|
package/package.json
CHANGED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { StabilizerEnv } from '../validation/contract/stabilizer_domain_schema.js';
|
|
2
|
-
/**
|
|
3
|
-
* Builds the axle-load-calculator request for a single env.
|
|
4
|
-
*
|
|
5
|
-
* The calculator physics reads `peso`, `largura`, `altura` and `comprimento`
|
|
6
|
-
* (ItemTemplates and JavaMassCenter), none of which exist in the
|
|
7
|
-
* cargo-movement wire item shape (`wg`, `w`, `h`, `d`). Without these aliases
|
|
8
|
-
* every item weighs zero and the axle gate can never reject a layout, so the
|
|
9
|
-
* contract values are stamped onto each request item here. Longitudinal extent
|
|
10
|
-
* is `depth`, matching the wire `y` axis the calculator uses for equilibrium.
|
|
11
|
-
* @param env - Stabilizer env with containers and axles.
|
|
12
|
-
* @returns Calculator request payload.
|
|
13
|
-
*/
|
|
14
|
-
export declare function build_axle_request(env: StabilizerEnv): Record<string, unknown>;
|
|
15
|
-
//# sourceMappingURL=build_axle_request.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build_axle_request.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/build_axle_request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAER,aAAa,EAEhB,MAAM,oDAAoD,CAAA;AAE3D;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS9E"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { map_contract_to_wire_output } from '../validation/contract/cargo_movement_wire_mapper.js';
|
|
2
|
-
/**
|
|
3
|
-
* Builds the axle-load-calculator request for a single env.
|
|
4
|
-
*
|
|
5
|
-
* The calculator physics reads `peso`, `largura`, `altura` and `comprimento`
|
|
6
|
-
* (ItemTemplates and JavaMassCenter), none of which exist in the
|
|
7
|
-
* cargo-movement wire item shape (`wg`, `w`, `h`, `d`). Without these aliases
|
|
8
|
-
* every item weighs zero and the axle gate can never reject a layout, so the
|
|
9
|
-
* contract values are stamped onto each request item here. Longitudinal extent
|
|
10
|
-
* is `depth`, matching the wire `y` axis the calculator uses for equilibrium.
|
|
11
|
-
* @param env - Stabilizer env with containers and axles.
|
|
12
|
-
* @returns Calculator request payload.
|
|
13
|
-
*/
|
|
14
|
-
export function build_axle_request(env) {
|
|
15
|
-
const wire = map_contract_to_wire_output({ envs: [env] });
|
|
16
|
-
const wire_env = wire.envs[0];
|
|
17
|
-
const wire_containers = (wire_env.containers ?? []);
|
|
18
|
-
wire_env.containers = wire_containers.map((wire_container, index) => stamp_container_physics_aliases(wire_container, env.containers[index]));
|
|
19
|
-
return { envs: wire.envs };
|
|
20
|
-
}
|
|
21
|
-
function stamp_container_physics_aliases(wire_container, container) {
|
|
22
|
-
const wire_items = (wire_container.items ?? []);
|
|
23
|
-
return {
|
|
24
|
-
...wire_container,
|
|
25
|
-
items: wire_items.map((wire_item, index) => stamp_item_physics_aliases(wire_item, container?.items[index]))
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function stamp_item_physics_aliases(wire_item, item) {
|
|
29
|
-
if (item === undefined) {
|
|
30
|
-
return wire_item;
|
|
31
|
-
}
|
|
32
|
-
return {
|
|
33
|
-
...wire_item,
|
|
34
|
-
peso: item.weight ?? 0,
|
|
35
|
-
largura: item.width,
|
|
36
|
-
altura: item.height,
|
|
37
|
-
comprimento: item.depth
|
|
38
|
-
};
|
|
39
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Space } from '@jetta/empty-spaces-manager';
|
|
2
|
-
import type { StabilizerContainer } from '../validation/contract/stabilizer_domain_schema.js';
|
|
3
|
-
/**
|
|
4
|
-
* Finds empty regions in a container after allocating pinned and other items.
|
|
5
|
-
* @param container - Stabilizer container layout.
|
|
6
|
-
* @param exclude_item_id - Loose item id to omit from obstacles (virtual remove).
|
|
7
|
-
* @returns Empty space fragments from EmptySpaceFinder.
|
|
8
|
-
*/
|
|
9
|
-
export declare function find_empty_spaces_in_container(container: StabilizerContainer, exclude_item_id?: string): Space[];
|
|
10
|
-
//# sourceMappingURL=empty_space_adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empty_space_adapter.d.ts","sourceRoot":"","sources":["../../../src/core/adapters/empty_space_adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AAE7F;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC1C,SAAS,EAAE,mBAAmB,EAC9B,eAAe,CAAC,EAAE,MAAM,GACzB,KAAK,EAAE,CAgBT"}
|