@solvice/routing 0.19.0-beta.0 → 0.19.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/runs.d.ts +70 -13
- package/dist/v3.d.ts +97 -21
- package/package.json +1 -1
package/dist/runs.d.ts
CHANGED
|
@@ -258,7 +258,7 @@ export interface components {
|
|
|
258
258
|
* New values may be added; clients must accept unknown values and handle
|
|
259
259
|
* them generically, for example by showing `message`.
|
|
260
260
|
*
|
|
261
|
-
* Known values: `unreachable`, `max_leg_travel`, `required_skills`, `serves_tags`, `capacity`, `time_window`, `eligible_vehicles`, `shift_end`, `max_distance`, `max_route_duration`, `max_stops`, `sequence`, `tag_order`, `shipment`, `break`, `multi_trip`, `same_vehicle`, `same_day`, `same_route`, `compatible_vehicles`, `synchronized`, `time_lag`, `all_or_none`, `period_limit`, `quota`, `unknown`. An open set: a later release may add values, so accept any string and handle the ones you know.
|
|
261
|
+
* Known values: `unreachable`, `max_leg_travel`, `required_skills`, `serves_tags`, `capacity`, `time_window`, `eligible_vehicles`, `shift_end`, `max_distance`, `max_route_duration`, `max_stops`, `sequence`, `tag_order`, `shipment`, `break`, `multi_trip`, `unload_before_end`, `same_vehicle`, `same_day`, `same_route`, `compatible_vehicles`, `synchronized`, `time_lag`, `all_or_none`, `period_limit`, `quota`, `max_intake`, `unknown`. An open set: a later release may add values, so accept any string and handle the ones you know.
|
|
262
262
|
* @example capacity
|
|
263
263
|
*/
|
|
264
264
|
ConstraintCode: string;
|
|
@@ -365,6 +365,24 @@ export interface components {
|
|
|
365
365
|
id: string;
|
|
366
366
|
/** @description Where the depot is. */
|
|
367
367
|
location: components["schemas"]["Place"];
|
|
368
|
+
/**
|
|
369
|
+
* @description The most load the depot may receive across the whole request, per
|
|
370
|
+
* named dimension: a tip site's intake limit. Not per day: it sums every
|
|
371
|
+
* shift of every day.
|
|
372
|
+
*
|
|
373
|
+
* Counted is the load on board on arrival at each reload here (including
|
|
374
|
+
* a shift's `initial_load` on its first trip and the final tip of
|
|
375
|
+
* `unload_before_end`), plus the load on board at the end of a shift
|
|
376
|
+
* whose `end` is this depot (not with `unload_before_end`, which unloads
|
|
377
|
+
* at a reload first). A shift's start never counts, and an unused shift
|
|
378
|
+
* receives nothing. A dimension left out is uncapped; `0` means the
|
|
379
|
+
* depot takes none of it. A hard limit: a task that would overfill every
|
|
380
|
+
* depot its trip can tip at stays unassigned (reason `max_intake`).
|
|
381
|
+
*
|
|
382
|
+
* Each dimension must be one a task or vehicle declares, and some shift
|
|
383
|
+
* must reload here, or end here without `unload_before_end`.
|
|
384
|
+
*/
|
|
385
|
+
max_intake?: null | components["schemas"]["Quantities"];
|
|
368
386
|
/**
|
|
369
387
|
* Format: double
|
|
370
388
|
* @description Money charged once per reload visit, in the objective's currency.
|
|
@@ -690,7 +708,10 @@ export interface components {
|
|
|
690
708
|
tags?: string[] | null;
|
|
691
709
|
/**
|
|
692
710
|
* @description Soft target for this task, measured at its arrival (default) or
|
|
693
|
-
* departure. On a shipment it is measured on the **delivery** leg
|
|
711
|
+
* departure. On a shipment it is measured on the **delivery** leg and
|
|
712
|
+
* cannot be combined with `delivery.target` (HTTP 400
|
|
713
|
+
* `conflicting_fields`); `pickup.target` adds a separate target on the
|
|
714
|
+
* pickup leg.
|
|
694
715
|
*/
|
|
695
716
|
target?: null | components["schemas"]["Target"];
|
|
696
717
|
/** @description Time windows for this visit. */
|
|
@@ -1819,9 +1840,9 @@ export interface components {
|
|
|
1819
1840
|
* @description Seconds past this task's `target.at`, measured at the stop's arrival
|
|
1820
1841
|
* (plus any `windowed` break taken on arrival there, idle before it
|
|
1821
1842
|
* included) or departure per `target.on`; `0` when met. Present only on a task
|
|
1822
|
-
* stop carrying a target. A shipment's target is measured on its
|
|
1823
|
-
* delivery leg, so it appears on the `:delivery` stop
|
|
1824
|
-
*
|
|
1843
|
+
* stop carrying a target. A shipment's own `target` is measured on its
|
|
1844
|
+
* delivery leg, so it appears on the `:delivery` stop; a `pickup.target`
|
|
1845
|
+
* or `delivery.target` appears on that leg's stop.
|
|
1825
1846
|
* @example 0
|
|
1826
1847
|
*/
|
|
1827
1848
|
target_lateness_s?: number | null;
|
|
@@ -2550,10 +2571,11 @@ export interface components {
|
|
|
2550
2571
|
/**
|
|
2551
2572
|
* Format: int32
|
|
2552
2573
|
* @description Maximum trips (depot legs) in this shift, across all reload depots.
|
|
2553
|
-
* Counts trips, not reloads: `trips = reloads_used + 1
|
|
2554
|
-
*
|
|
2555
|
-
*
|
|
2556
|
-
*
|
|
2574
|
+
* Counts trips, not reloads: `trips = reloads_used + 1`, where the final
|
|
2575
|
+
* unload of `unload_before_end` is not counted. `max_trips: 1` means a
|
|
2576
|
+
* single trip — reloads are permitted in `reloads` but the cap prevents
|
|
2577
|
+
* ever using one, other than that final unload. `reloads` present with
|
|
2578
|
+
* `max_trips` absent means unlimited trips. A single reload depot can only be
|
|
2557
2579
|
* revisited up to 8 times per shift regardless of `max_trips`;
|
|
2558
2580
|
* a `max_trips` beyond that against one depot
|
|
2559
2581
|
* is accepted but the extra headroom is unreachable — list more than
|
|
@@ -2607,6 +2629,19 @@ export interface components {
|
|
|
2607
2629
|
skills?: components["schemas"]["VehicleSkill"][] | null;
|
|
2608
2630
|
/** @description Where the shift starts. Absent = open start. */
|
|
2609
2631
|
start?: null | components["schemas"]["ShiftPlace"];
|
|
2632
|
+
/**
|
|
2633
|
+
* @description When `true`, the shift starts at its first task: travel from `start`
|
|
2634
|
+
* to the first task takes no time, so the first arrival is `from`
|
|
2635
|
+
* plus the `start` handling, and waiting there counts from `from`.
|
|
2636
|
+
* That travel's distance is still charged at `per_travel_km` and reported, so
|
|
2637
|
+
* vehicles that start closer to their work stay cheaper; its time is not
|
|
2638
|
+
* charged and counts toward no duration, break or leg limit.
|
|
2639
|
+
* `free_start_travel` instead makes the travel free altogether. `true`
|
|
2640
|
+
* without `start`, or together with `free_start_travel`, is rejected with
|
|
2641
|
+
* HTTP 400 `conflicting_fields`. Default `false`.
|
|
2642
|
+
* @example false
|
|
2643
|
+
*/
|
|
2644
|
+
start_at_first_task?: boolean | null;
|
|
2610
2645
|
/**
|
|
2611
2646
|
* Format: date-time
|
|
2612
2647
|
* @description Shift end (RFC 3339 instant, UTC offset required; hard unless `max_overtime_s` set). The
|
|
@@ -2614,6 +2649,16 @@ export interface components {
|
|
|
2614
2649
|
* @example 2026-07-01T17:00:00+02:00
|
|
2615
2650
|
*/
|
|
2616
2651
|
to: string;
|
|
2652
|
+
/**
|
|
2653
|
+
* @description When `true`, a route that would end with load on board first unloads
|
|
2654
|
+
* at one of this shift's `reloads` depots: a final `reload` stop, at the
|
|
2655
|
+
* depot the solver finds cheapest, taking that depot's
|
|
2656
|
+
* `service_duration_s` and `per_reload`. It does not count toward
|
|
2657
|
+
* `max_trips`. A route whose last trip carries no load ends without one.
|
|
2658
|
+
* `true` without `reloads` is rejected with HTTP 400
|
|
2659
|
+
* `conflicting_fields`. Default `false`.
|
|
2660
|
+
*/
|
|
2661
|
+
unload_before_end?: boolean | null;
|
|
2617
2662
|
};
|
|
2618
2663
|
/**
|
|
2619
2664
|
* @description The `Costs` fields for one shift, minus `per_used_vehicle`. A shift is one
|
|
@@ -2849,7 +2894,10 @@ export interface components {
|
|
|
2849
2894
|
tags?: string[] | null;
|
|
2850
2895
|
/**
|
|
2851
2896
|
* @description Soft target for this task, measured at its arrival (default) or
|
|
2852
|
-
* departure. On a shipment it is measured on the **delivery** leg
|
|
2897
|
+
* departure. On a shipment it is measured on the **delivery** leg and
|
|
2898
|
+
* cannot be combined with `delivery.target` (HTTP 400
|
|
2899
|
+
* `conflicting_fields`); `pickup.target` adds a separate target on the
|
|
2900
|
+
* pickup leg.
|
|
2853
2901
|
*/
|
|
2854
2902
|
target?: null | components["schemas"]["Target"];
|
|
2855
2903
|
};
|
|
@@ -2907,6 +2955,14 @@ export interface components {
|
|
|
2907
2955
|
* @example 60
|
|
2908
2956
|
*/
|
|
2909
2957
|
setup_duration_s?: number | null;
|
|
2958
|
+
/**
|
|
2959
|
+
* @description Soft target for this leg, measured at its arrival (default) or
|
|
2960
|
+
* departure. Same type, units and validation as the task-level
|
|
2961
|
+
* `target`. The shipment's own `target` is measured on the delivery
|
|
2962
|
+
* leg, so sending it with `delivery.target` is rejected with HTTP 400
|
|
2963
|
+
* (`conflicting_fields`).
|
|
2964
|
+
*/
|
|
2965
|
+
target?: null | components["schemas"]["Target"];
|
|
2910
2966
|
/** @description Time windows for this stop. */
|
|
2911
2967
|
time_windows?: components["schemas"]["TimeWindow"][] | null;
|
|
2912
2968
|
};
|
|
@@ -3918,15 +3974,16 @@ export interface components {
|
|
|
3918
3974
|
*/
|
|
3919
3975
|
code: components["schemas"]["ConstraintCode"];
|
|
3920
3976
|
/**
|
|
3921
|
-
* @description The capacity dimension over its limit. Only on `capacity
|
|
3977
|
+
* @description The capacity dimension over its limit. Only on `capacity`,
|
|
3978
|
+
* `unload_before_end` and `max_intake`.
|
|
3922
3979
|
* @example weight
|
|
3923
3980
|
*/
|
|
3924
3981
|
dimension?: string | null;
|
|
3925
3982
|
/**
|
|
3926
3983
|
* Format: int64
|
|
3927
3984
|
* @description How far over the limit, in `unit`. On `capacity`, `time_window` (the
|
|
3928
|
-
* seconds late), `shift_end`, `max_distance`, `max_route_duration
|
|
3929
|
-
* `quota`.
|
|
3985
|
+
* seconds late), `shift_end`, `max_distance`, `max_route_duration`,
|
|
3986
|
+
* `quota`, `unload_before_end` and `max_intake`.
|
|
3930
3987
|
* @example 15
|
|
3931
3988
|
*/
|
|
3932
3989
|
excess?: number | null;
|
package/dist/v3.d.ts
CHANGED
|
@@ -54,7 +54,7 @@ export interface paths {
|
|
|
54
54
|
put?: never;
|
|
55
55
|
/**
|
|
56
56
|
* Suggest best insertions for the tasks outside the plan
|
|
57
|
-
* @description Takes the same body as `POST /v3/routing/evaluate` (`problem` + committed `plan`), plus optional `options`. Every task of `problem` that is not in `plan` is a task to place: finds its feasible insertion positions and returns them as `insertions`, ranked by `delta.cost`, the change in the plan's cost in money. Each insertion lists the stops it adds (`placements`) and every plan route it changes, whole (`routes`): swap those routes into `plan` to apply it. An empty `insertions` carries a `reason` whose `code` is `time_limit`, `candidates_exhausted` or `infeasible` (an open set) and whose `message` says the same in English. The committed plan is never modified. Limitation: suggest never opens a new reload trip on a multi-trip vehicle.
|
|
57
|
+
* @description Takes the same body as `POST /v3/routing/evaluate` (`problem` + committed `plan`), plus optional `options`. Every task of `problem` that is not in `plan` is a task to place: finds its feasible insertion positions and returns them as `insertions`, ranked by `delta.cost`, the change in the plan's cost in money. The members of a `synchronized` or `time_lag` group outside `plan` are one task to place: each insertion places every member, and with the default `on: service_start` a crew's members start within `max_spread_s` of one another (`service_start`); a `time_lag` keeps its lag. Each insertion lists the stops it adds (`placements`) and every plan route it changes, whole (`routes`): swap those routes into `plan` to apply it. An empty `insertions` carries a `reason` whose `code` is `time_limit`, `candidates_exhausted` or `infeasible` (an open set) and whose `message` says the same in English. The committed plan is never modified. Limitation: suggest never opens a new reload trip on a multi-trip vehicle.
|
|
58
58
|
*/
|
|
59
59
|
post: operations["suggest"];
|
|
60
60
|
delete?: never;
|
|
@@ -296,7 +296,7 @@ export interface components {
|
|
|
296
296
|
* New values may be added; clients must accept unknown values and handle
|
|
297
297
|
* them generically, for example by showing `message`.
|
|
298
298
|
*
|
|
299
|
-
* Known values: `unreachable`, `max_leg_travel`, `required_skills`, `serves_tags`, `capacity`, `time_window`, `eligible_vehicles`, `shift_end`, `max_distance`, `max_route_duration`, `max_stops`, `sequence`, `tag_order`, `shipment`, `break`, `multi_trip`, `same_vehicle`, `same_day`, `same_route`, `compatible_vehicles`, `synchronized`, `time_lag`, `all_or_none`, `period_limit`, `quota`, `unknown`. An open set: a later release may add values, so accept any string and handle the ones you know.
|
|
299
|
+
* Known values: `unreachable`, `max_leg_travel`, `required_skills`, `serves_tags`, `capacity`, `time_window`, `eligible_vehicles`, `shift_end`, `max_distance`, `max_route_duration`, `max_stops`, `sequence`, `tag_order`, `shipment`, `break`, `multi_trip`, `unload_before_end`, `same_vehicle`, `same_day`, `same_route`, `compatible_vehicles`, `synchronized`, `time_lag`, `all_or_none`, `period_limit`, `quota`, `max_intake`, `unknown`. An open set: a later release may add values, so accept any string and handle the ones you know.
|
|
300
300
|
* @example capacity
|
|
301
301
|
*/
|
|
302
302
|
ConstraintCode: string;
|
|
@@ -403,6 +403,24 @@ export interface components {
|
|
|
403
403
|
id: string;
|
|
404
404
|
/** @description Where the depot is. */
|
|
405
405
|
location: components["schemas"]["Place"];
|
|
406
|
+
/**
|
|
407
|
+
* @description The most load the depot may receive across the whole request, per
|
|
408
|
+
* named dimension: a tip site's intake limit. Not per day: it sums every
|
|
409
|
+
* shift of every day.
|
|
410
|
+
*
|
|
411
|
+
* Counted is the load on board on arrival at each reload here (including
|
|
412
|
+
* a shift's `initial_load` on its first trip and the final tip of
|
|
413
|
+
* `unload_before_end`), plus the load on board at the end of a shift
|
|
414
|
+
* whose `end` is this depot (not with `unload_before_end`, which unloads
|
|
415
|
+
* at a reload first). A shift's start never counts, and an unused shift
|
|
416
|
+
* receives nothing. A dimension left out is uncapped; `0` means the
|
|
417
|
+
* depot takes none of it. A hard limit: a task that would overfill every
|
|
418
|
+
* depot its trip can tip at stays unassigned (reason `max_intake`).
|
|
419
|
+
*
|
|
420
|
+
* Each dimension must be one a task or vehicle declares, and some shift
|
|
421
|
+
* must reload here, or end here without `unload_before_end`.
|
|
422
|
+
*/
|
|
423
|
+
max_intake?: null | components["schemas"]["Quantities"];
|
|
406
424
|
/**
|
|
407
425
|
* Format: double
|
|
408
426
|
* @description Money charged once per reload visit, in the objective's currency.
|
|
@@ -650,6 +668,7 @@ export interface components {
|
|
|
650
668
|
* "arrival": "2026-07-01T09:30:00+02:00",
|
|
651
669
|
* "id": "job-2",
|
|
652
670
|
* "latest_arrival": "2026-07-01T10:15:00+02:00",
|
|
671
|
+
* "service_start": "2026-07-01T09:30:00+02:00",
|
|
653
672
|
* "shift": "mon",
|
|
654
673
|
* "type": "job",
|
|
655
674
|
* "vehicle": "v1"
|
|
@@ -876,7 +895,10 @@ export interface components {
|
|
|
876
895
|
tags?: string[] | null;
|
|
877
896
|
/**
|
|
878
897
|
* @description Soft target for this task, measured at its arrival (default) or
|
|
879
|
-
* departure. On a shipment it is measured on the **delivery** leg
|
|
898
|
+
* departure. On a shipment it is measured on the **delivery** leg and
|
|
899
|
+
* cannot be combined with `delivery.target` (HTTP 400
|
|
900
|
+
* `conflicting_fields`); `pickup.target` adds a separate target on the
|
|
901
|
+
* pickup leg.
|
|
880
902
|
*/
|
|
881
903
|
target?: null | components["schemas"]["Target"];
|
|
882
904
|
/** @description Time windows for this visit. */
|
|
@@ -1034,6 +1056,7 @@ export interface components {
|
|
|
1034
1056
|
* "arrival": "2026-07-01T09:30:00+02:00",
|
|
1035
1057
|
* "id": "s1:pickup",
|
|
1036
1058
|
* "latest_arrival": "2026-07-01T10:15:00+02:00",
|
|
1059
|
+
* "service_start": "2026-07-01T09:30:00+02:00",
|
|
1037
1060
|
* "shift": "mon",
|
|
1038
1061
|
* "type": "pickup",
|
|
1039
1062
|
* "vehicle": "v1"
|
|
@@ -1054,10 +1077,23 @@ export interface components {
|
|
|
1054
1077
|
* @description Latest arrival that still keeps the rest of the route feasible
|
|
1055
1078
|
* (RFC 3339, in the offset of `arrival`) — the smaller of the task's own time-window latest and
|
|
1056
1079
|
* the route's forward slack here. Under priced lateness it may be
|
|
1057
|
-
* **earlier** than `arrival`.
|
|
1080
|
+
* **earlier** than `arrival`. For a `synchronized` or `time_lag` member it
|
|
1081
|
+
* is at most `arrival` plus the wait before `service_start`: arriving
|
|
1082
|
+
* later would move the start its partners are booked to meet.
|
|
1058
1083
|
* @example 2026-07-01T10:15:00+02:00
|
|
1059
1084
|
*/
|
|
1060
1085
|
latest_arrival: string;
|
|
1086
|
+
/**
|
|
1087
|
+
* Format: date-time
|
|
1088
|
+
* @description Service start (RFC 3339, in the offset of `arrival`): `arrival` plus
|
|
1089
|
+
* any wait for the time window or a break, and for a `synchronized` or
|
|
1090
|
+
* `time_lag` member the hold for its partners, as `service_start` on the
|
|
1091
|
+
* route stop. With the default `on: service_start`, the members of a
|
|
1092
|
+
* crew start here within the relation's `max_spread_s`: the booking time
|
|
1093
|
+
* (`on: departure` aligns their ends instead; a `time_lag` keeps its lag).
|
|
1094
|
+
* @example 2026-07-01T09:30:00+02:00
|
|
1095
|
+
*/
|
|
1096
|
+
service_start: string;
|
|
1061
1097
|
/** @description Shift of that plan route. */
|
|
1062
1098
|
shift: string;
|
|
1063
1099
|
/**
|
|
@@ -2052,9 +2088,9 @@ export interface components {
|
|
|
2052
2088
|
* @description Seconds past this task's `target.at`, measured at the stop's arrival
|
|
2053
2089
|
* (plus any `windowed` break taken on arrival there, idle before it
|
|
2054
2090
|
* included) or departure per `target.on`; `0` when met. Present only on a task
|
|
2055
|
-
* stop carrying a target. A shipment's target is measured on its
|
|
2056
|
-
* delivery leg, so it appears on the `:delivery` stop
|
|
2057
|
-
*
|
|
2091
|
+
* stop carrying a target. A shipment's own `target` is measured on its
|
|
2092
|
+
* delivery leg, so it appears on the `:delivery` stop; a `pickup.target`
|
|
2093
|
+
* or `delivery.target` appears on that leg's stop.
|
|
2058
2094
|
* @example 0
|
|
2059
2095
|
*/
|
|
2060
2096
|
target_lateness_s?: number | null;
|
|
@@ -2451,10 +2487,11 @@ export interface components {
|
|
|
2451
2487
|
/**
|
|
2452
2488
|
* Format: int32
|
|
2453
2489
|
* @description Maximum trips (depot legs) in this shift, across all reload depots.
|
|
2454
|
-
* Counts trips, not reloads: `trips = reloads_used + 1
|
|
2455
|
-
*
|
|
2456
|
-
*
|
|
2457
|
-
*
|
|
2490
|
+
* Counts trips, not reloads: `trips = reloads_used + 1`, where the final
|
|
2491
|
+
* unload of `unload_before_end` is not counted. `max_trips: 1` means a
|
|
2492
|
+
* single trip — reloads are permitted in `reloads` but the cap prevents
|
|
2493
|
+
* ever using one, other than that final unload. `reloads` present with
|
|
2494
|
+
* `max_trips` absent means unlimited trips. A single reload depot can only be
|
|
2458
2495
|
* revisited up to 8 times per shift regardless of `max_trips`;
|
|
2459
2496
|
* a `max_trips` beyond that against one depot
|
|
2460
2497
|
* is accepted but the extra headroom is unreachable — list more than
|
|
@@ -2508,6 +2545,19 @@ export interface components {
|
|
|
2508
2545
|
skills?: components["schemas"]["VehicleSkill"][] | null;
|
|
2509
2546
|
/** @description Where the shift starts. Absent = open start. */
|
|
2510
2547
|
start?: null | components["schemas"]["ShiftPlace"];
|
|
2548
|
+
/**
|
|
2549
|
+
* @description When `true`, the shift starts at its first task: travel from `start`
|
|
2550
|
+
* to the first task takes no time, so the first arrival is `from`
|
|
2551
|
+
* plus the `start` handling, and waiting there counts from `from`.
|
|
2552
|
+
* That travel's distance is still charged at `per_travel_km` and reported, so
|
|
2553
|
+
* vehicles that start closer to their work stay cheaper; its time is not
|
|
2554
|
+
* charged and counts toward no duration, break or leg limit.
|
|
2555
|
+
* `free_start_travel` instead makes the travel free altogether. `true`
|
|
2556
|
+
* without `start`, or together with `free_start_travel`, is rejected with
|
|
2557
|
+
* HTTP 400 `conflicting_fields`. Default `false`.
|
|
2558
|
+
* @example false
|
|
2559
|
+
*/
|
|
2560
|
+
start_at_first_task?: boolean | null;
|
|
2511
2561
|
/**
|
|
2512
2562
|
* Format: date-time
|
|
2513
2563
|
* @description Shift end (RFC 3339 instant, UTC offset required; hard unless `max_overtime_s` set). The
|
|
@@ -2515,6 +2565,16 @@ export interface components {
|
|
|
2515
2565
|
* @example 2026-07-01T17:00:00+02:00
|
|
2516
2566
|
*/
|
|
2517
2567
|
to: string;
|
|
2568
|
+
/**
|
|
2569
|
+
* @description When `true`, a route that would end with load on board first unloads
|
|
2570
|
+
* at one of this shift's `reloads` depots: a final `reload` stop, at the
|
|
2571
|
+
* depot the solver finds cheapest, taking that depot's
|
|
2572
|
+
* `service_duration_s` and `per_reload`. It does not count toward
|
|
2573
|
+
* `max_trips`. A route whose last trip carries no load ends without one.
|
|
2574
|
+
* `true` without `reloads` is rejected with HTTP 400
|
|
2575
|
+
* `conflicting_fields`. Default `false`.
|
|
2576
|
+
*/
|
|
2577
|
+
unload_before_end?: boolean | null;
|
|
2518
2578
|
};
|
|
2519
2579
|
/**
|
|
2520
2580
|
* @description The `Costs` fields for one shift, minus `per_used_vehicle`. A shift is one
|
|
@@ -2763,7 +2823,10 @@ export interface components {
|
|
|
2763
2823
|
tags?: string[] | null;
|
|
2764
2824
|
/**
|
|
2765
2825
|
* @description Soft target for this task, measured at its arrival (default) or
|
|
2766
|
-
* departure. On a shipment it is measured on the **delivery** leg
|
|
2826
|
+
* departure. On a shipment it is measured on the **delivery** leg and
|
|
2827
|
+
* cannot be combined with `delivery.target` (HTTP 400
|
|
2828
|
+
* `conflicting_fields`); `pickup.target` adds a separate target on the
|
|
2829
|
+
* pickup leg.
|
|
2767
2830
|
*/
|
|
2768
2831
|
target?: null | components["schemas"]["Target"];
|
|
2769
2832
|
};
|
|
@@ -2821,6 +2884,14 @@ export interface components {
|
|
|
2821
2884
|
* @example 60
|
|
2822
2885
|
*/
|
|
2823
2886
|
setup_duration_s?: number | null;
|
|
2887
|
+
/**
|
|
2888
|
+
* @description Soft target for this leg, measured at its arrival (default) or
|
|
2889
|
+
* departure. Same type, units and validation as the task-level
|
|
2890
|
+
* `target`. The shipment's own `target` is measured on the delivery
|
|
2891
|
+
* leg, so sending it with `delivery.target` is rejected with HTTP 400
|
|
2892
|
+
* (`conflicting_fields`).
|
|
2893
|
+
*/
|
|
2894
|
+
target?: null | components["schemas"]["Target"];
|
|
2824
2895
|
/** @description Time windows for this stop. */
|
|
2825
2896
|
time_windows?: components["schemas"]["TimeWindow"][] | null;
|
|
2826
2897
|
};
|
|
@@ -3221,8 +3292,11 @@ export interface components {
|
|
|
3221
3292
|
* the range are a 400, never clamped. It also sets how widely a unit of
|
|
3222
3293
|
* several stops is searched (such a unit is never searched exhaustively):
|
|
3223
3294
|
* each stop after the unit's first keeps at most
|
|
3224
|
-
* `max(8, 4 × max_insertions)` partial placements. A
|
|
3225
|
-
*
|
|
3295
|
+
* `max(8, 4 × max_insertions)` partial placements. A `synchronized` or
|
|
3296
|
+
* `time_lag` group is the exception: every start slot of one member is
|
|
3297
|
+
* tried, each other member at its cheapest slot, whatever this value. A
|
|
3298
|
+
* single-stop task has every feasible position considered unless
|
|
3299
|
+
* `time_limit_s` runs out first.
|
|
3226
3300
|
* @default 5
|
|
3227
3301
|
* @example 5
|
|
3228
3302
|
*/
|
|
@@ -3381,6 +3455,7 @@ export interface components {
|
|
|
3381
3455
|
* "arrival": "2026-07-01T09:30:00+02:00",
|
|
3382
3456
|
* "id": "job-2",
|
|
3383
3457
|
* "latest_arrival": "2026-07-01T10:15:00+02:00",
|
|
3458
|
+
* "service_start": "2026-07-01T09:30:00+02:00",
|
|
3384
3459
|
* "shift": "mon",
|
|
3385
3460
|
* "type": "job",
|
|
3386
3461
|
* "vehicle": "v1"
|
|
@@ -3646,6 +3721,7 @@ export interface components {
|
|
|
3646
3721
|
* "arrival": "2026-07-01T09:30:00+02:00",
|
|
3647
3722
|
* "id": "job-2",
|
|
3648
3723
|
* "latest_arrival": "2026-07-01T10:15:00+02:00",
|
|
3724
|
+
* "service_start": "2026-07-01T09:30:00+02:00",
|
|
3649
3725
|
* "shift": "mon",
|
|
3650
3726
|
* "type": "job",
|
|
3651
3727
|
* "vehicle": "v1"
|
|
@@ -3682,10 +3758,9 @@ export interface components {
|
|
|
3682
3758
|
/** @description Why `insertions` is empty; absent otherwise. */
|
|
3683
3759
|
reason?: null | components["schemas"]["SuggestReason"];
|
|
3684
3760
|
/**
|
|
3685
|
-
* @description The unit's lead:
|
|
3686
|
-
*
|
|
3687
|
-
*
|
|
3688
|
-
* then `shipments`).
|
|
3761
|
+
* @description The unit's lead: the visit, the shipment, the first stop of a
|
|
3762
|
+
* `sequence` chain in the unit, or else, a crew included, the member
|
|
3763
|
+
* that comes first in problem order (`jobs`, then `shipments`).
|
|
3689
3764
|
* @example job-2
|
|
3690
3765
|
*/
|
|
3691
3766
|
task: string;
|
|
@@ -4295,15 +4370,16 @@ export interface components {
|
|
|
4295
4370
|
*/
|
|
4296
4371
|
code: components["schemas"]["ConstraintCode"];
|
|
4297
4372
|
/**
|
|
4298
|
-
* @description The capacity dimension over its limit. Only on `capacity
|
|
4373
|
+
* @description The capacity dimension over its limit. Only on `capacity`,
|
|
4374
|
+
* `unload_before_end` and `max_intake`.
|
|
4299
4375
|
* @example weight
|
|
4300
4376
|
*/
|
|
4301
4377
|
dimension?: string | null;
|
|
4302
4378
|
/**
|
|
4303
4379
|
* Format: int64
|
|
4304
4380
|
* @description How far over the limit, in `unit`. On `capacity`, `time_window` (the
|
|
4305
|
-
* seconds late), `shift_end`, `max_distance`, `max_route_duration
|
|
4306
|
-
* `quota`.
|
|
4381
|
+
* seconds late), `shift_end`, `max_distance`, `max_route_duration`,
|
|
4382
|
+
* `quota`, `unload_before_end` and `max_intake`.
|
|
4307
4383
|
* @example 15
|
|
4308
4384
|
*/
|
|
4309
4385
|
excess?: number | null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solvice/routing",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.2-beta.0",
|
|
4
4
|
"description": "TypeScript client for the Solvice V3 routing API, generated from its OpenAPI spec.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://docs.solvice.io/guides/platform/sdks/typescript",
|