@aeolus-fleet/core 0.25.3 → 0.26.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/adapters/prisma/health.d.ts +3 -0
- package/dist/adapters/prisma/health.js +122 -0
- package/dist/adapters/prisma/health.js.map +1 -0
- package/dist/adapters/prisma/history.js +7 -5
- package/dist/adapters/prisma/history.js.map +1 -1
- package/dist/adapters/prisma/installation.js +2 -1
- package/dist/adapters/prisma/installation.js.map +1 -1
- package/dist/adapters/trpc/context.d.ts +2 -0
- package/dist/adapters/trpc/fleet.d.ts +50 -0
- package/dist/adapters/trpc/fleet.js +6 -1
- package/dist/adapters/trpc/fleet.js.map +1 -1
- package/dist/adapters/trpc/health.d.ts +39 -0
- package/dist/adapters/trpc/health.js +14 -0
- package/dist/adapters/trpc/health.js.map +1 -0
- package/dist/adapters/trpc/installation.d.ts +76 -0
- package/dist/adapters/trpc/installation.js +8 -2
- package/dist/adapters/trpc/installation.js.map +1 -1
- package/dist/adapters/trpc/router.d.ts +126 -0
- package/dist/adapters/trpc/ship-protocol.js +10 -9
- package/dist/adapters/trpc/ship-protocol.js.map +1 -1
- package/dist/adapters/trpc/ship.d.ts +1 -0
- package/dist/domain/messaging/delivery.d.ts +3 -1
- package/dist/domain/messaging/delivery.js +4 -3
- package/dist/domain/messaging/delivery.js.map +1 -1
- package/dist/domain/messaging/overdue.d.ts +7 -0
- package/dist/domain/messaging/overdue.js +9 -4
- package/dist/domain/messaging/overdue.js.map +1 -1
- package/dist/domain/messaging/public.d.ts +1 -1
- package/dist/domain/messaging/public.js +3 -1
- package/dist/domain/messaging/public.js.map +1 -1
- package/dist/domain/messaging/report-not-handled.d.ts +3 -1
- package/dist/domain/messaging/report-not-handled.js +2 -1
- package/dist/domain/messaging/report-not-handled.js.map +1 -1
- package/dist/domain/messaging/report-turn-end.d.ts +1 -0
- package/dist/domain/messaging/report-turn-end.js +2 -2
- package/dist/domain/messaging/report-turn-end.js.map +1 -1
- package/dist/domain/registry/get-installation-fleet.d.ts +2 -0
- package/dist/domain/registry/get-installation-fleet.js +5 -1
- package/dist/domain/registry/get-installation-fleet.js.map +1 -1
- package/dist/domain/registry/installation-fleet.d.ts +4 -1
- package/dist/domain/registry/installation-fleet.js +2 -2
- package/dist/domain/registry/installation-fleet.js.map +1 -1
- package/dist/domain/registry/list-installation-fleets.d.ts +4 -2
- package/dist/domain/registry/list-installation-fleets.js +5 -3
- package/dist/domain/registry/list-installation-fleets.js.map +1 -1
- package/dist/domain/shared/health.d.ts +84 -0
- package/dist/domain/shared/health.js +59 -0
- package/dist/domain/shared/health.js.map +1 -0
- package/dist/domain/shared/history.d.ts +4 -0
- package/dist/domain/shared/history.js.map +1 -1
- package/dist/domain/shared/read-health.d.ts +14 -0
- package/dist/domain/shared/read-health.js +11 -0
- package/dist/domain/shared/read-health.js.map +1 -0
- package/dist/domain/shared/stuck.d.ts +104 -0
- package/dist/domain/shared/stuck.js +187 -0
- package/dist/domain/shared/stuck.js.map +1 -0
- package/dist/wiring.d.ts +2 -0
- package/dist/wiring.js +15 -2
- package/dist/wiring.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** The fleet's health with its times as ISO strings, as `healthOutputSchema` describes it. */
|
|
2
|
+
export function describedHealth(health) {
|
|
3
|
+
return {
|
|
4
|
+
stuck: health.stuck.map(({ place, oldestSince, deliveries, ...counted }) => ({
|
|
5
|
+
...counted,
|
|
6
|
+
oldestSince: oldestSince.toISOString(),
|
|
7
|
+
deliveries: deliveries.map(({ since, ...delivery }) => ({ ...delivery, since: since.toISOString() })),
|
|
8
|
+
place: place.kind === 'type' ? place : { ...place, machine: place.machine === null ? null : { ...place.machine, lastSeenAt: place.machine.lastSeenAt?.toISOString() ?? null } },
|
|
9
|
+
})),
|
|
10
|
+
stuckPerHour: health.stuckPerHour.map(({ at, count }) => ({ at: at.toISOString(), count })),
|
|
11
|
+
acknowledged: { ...health.acknowledged, perHour: health.acknowledged.perHour.map(({ at, count }) => ({ at: at.toISOString(), count })) },
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/adapters/trpc/health.ts"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3E,GAAG,OAAO;YACV,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;YACtC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACrG,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,EAAE;SAChL,CAAC,CAAC;QACH,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3F,YAAY,EAAE,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE;KACzI,CAAC;AACJ,CAAC"}
|
|
@@ -326,6 +326,44 @@ export declare const installationRouter: import("@trpc/server").TRPCBuiltRouter<
|
|
|
326
326
|
};
|
|
327
327
|
};
|
|
328
328
|
health: {
|
|
329
|
+
stuck: {
|
|
330
|
+
cause: "undeliverable" | "noShipCanTake" | "waitingForCrew" | "stalledInFlight";
|
|
331
|
+
place: {
|
|
332
|
+
kind: "ship";
|
|
333
|
+
ship: {
|
|
334
|
+
id: `shp_${string}`;
|
|
335
|
+
name: string;
|
|
336
|
+
};
|
|
337
|
+
machine: {
|
|
338
|
+
id: `shp_${string}`;
|
|
339
|
+
name: string;
|
|
340
|
+
lastSeenAt: string | null;
|
|
341
|
+
} | null;
|
|
342
|
+
} | {
|
|
343
|
+
kind: "type";
|
|
344
|
+
type: string;
|
|
345
|
+
};
|
|
346
|
+
count: number;
|
|
347
|
+
oldestSince: string;
|
|
348
|
+
deliveries: {
|
|
349
|
+
deliveryId: `dlv_${string}`;
|
|
350
|
+
messageId: `msg_${string}`;
|
|
351
|
+
state: "pending" | "received" | "handed" | "undeliverable";
|
|
352
|
+
since: string;
|
|
353
|
+
}[];
|
|
354
|
+
}[];
|
|
355
|
+
stuckPerHour: {
|
|
356
|
+
at: string;
|
|
357
|
+
count: number;
|
|
358
|
+
}[];
|
|
359
|
+
acknowledged: {
|
|
360
|
+
count: number;
|
|
361
|
+
medianMs: number | null;
|
|
362
|
+
perHour: {
|
|
363
|
+
at: string;
|
|
364
|
+
count: number;
|
|
365
|
+
}[];
|
|
366
|
+
};
|
|
329
367
|
oldestPendingAt: string | null;
|
|
330
368
|
oldestInFlightAt: string | null;
|
|
331
369
|
noShipCanTake: number;
|
|
@@ -375,6 +413,44 @@ export declare const installationRouter: import("@trpc/server").TRPCBuiltRouter<
|
|
|
375
413
|
};
|
|
376
414
|
};
|
|
377
415
|
health: {
|
|
416
|
+
stuck: {
|
|
417
|
+
cause: "undeliverable" | "noShipCanTake" | "waitingForCrew" | "stalledInFlight";
|
|
418
|
+
place: {
|
|
419
|
+
kind: "ship";
|
|
420
|
+
ship: {
|
|
421
|
+
id: `shp_${string}`;
|
|
422
|
+
name: string;
|
|
423
|
+
};
|
|
424
|
+
machine: {
|
|
425
|
+
id: `shp_${string}`;
|
|
426
|
+
name: string;
|
|
427
|
+
lastSeenAt: string | null;
|
|
428
|
+
} | null;
|
|
429
|
+
} | {
|
|
430
|
+
kind: "type";
|
|
431
|
+
type: string;
|
|
432
|
+
};
|
|
433
|
+
count: number;
|
|
434
|
+
oldestSince: string;
|
|
435
|
+
deliveries: {
|
|
436
|
+
deliveryId: `dlv_${string}`;
|
|
437
|
+
messageId: `msg_${string}`;
|
|
438
|
+
state: "pending" | "received" | "handed" | "undeliverable";
|
|
439
|
+
since: string;
|
|
440
|
+
}[];
|
|
441
|
+
}[];
|
|
442
|
+
stuckPerHour: {
|
|
443
|
+
at: string;
|
|
444
|
+
count: number;
|
|
445
|
+
}[];
|
|
446
|
+
acknowledged: {
|
|
447
|
+
count: number;
|
|
448
|
+
medianMs: number | null;
|
|
449
|
+
perHour: {
|
|
450
|
+
at: string;
|
|
451
|
+
count: number;
|
|
452
|
+
}[];
|
|
453
|
+
};
|
|
378
454
|
oldestPendingAt: string | null;
|
|
379
455
|
oldestInFlightAt: string | null;
|
|
380
456
|
noShipCanTake: number;
|
|
@@ -2,6 +2,7 @@ import { timingSafeEqual } from 'node:crypto';
|
|
|
2
2
|
import { installationFleetSchema, installationFleetsCreateInputSchema, installationFleetsCreateOutputSchema, installationFleetsDeleteInputSchema, installationFleetsDeleteOutputSchema, installationFleetsGetInputSchema, installationFleetsListOutputSchema, installationFleetLimitsSchema, installationFleetsSetLimitsInputSchema, installationOperatorsIssueSignInTicketInputSchema, installationOperatorsIssueSignInTicketOutputSchema, installationSettingsSchema, guideOutputSchema, noticesOutputSchema, setGuideInputSchema, setNoticesInputSchema, } from '@aeolus-fleet/common';
|
|
3
3
|
import { TRPCError } from '@trpc/server';
|
|
4
4
|
import { okOrThrow, publicProcedure, router } from './trpc.js';
|
|
5
|
+
import { describedHealth } from './health.js';
|
|
5
6
|
/** The header a hosting service presents the installation token in: apart from a crew token and a console session. */
|
|
6
7
|
export const INSTALLATION_TOKEN_HEADER = 'x-aeolus-installation-token';
|
|
7
8
|
/** Whether the presented token is the configured one, compared in constant time. */
|
|
@@ -28,12 +29,17 @@ const installationProcedure = publicProcedure.use(({ ctx, next }) => {
|
|
|
28
29
|
return next();
|
|
29
30
|
});
|
|
30
31
|
function described(fleet) {
|
|
31
|
-
const { oldestPendingAt, oldestInFlightAt } = fleet.health;
|
|
32
|
+
const { oldestPendingAt, oldestInFlightAt, stuck, stuckPerHour, acknowledged, ...figures } = fleet.health;
|
|
32
33
|
return {
|
|
33
34
|
...fleet,
|
|
34
35
|
createdAt: fleet.createdAt.toISOString(),
|
|
35
36
|
lastActivityAt: fleet.lastActivityAt?.toISOString() ?? null,
|
|
36
|
-
health: {
|
|
37
|
+
health: {
|
|
38
|
+
...figures,
|
|
39
|
+
oldestPendingAt: oldestPendingAt?.toISOString() ?? null,
|
|
40
|
+
oldestInFlightAt: oldestInFlightAt?.toISOString() ?? null,
|
|
41
|
+
...describedHealth({ stuck, stuckPerHour, acknowledged }),
|
|
42
|
+
},
|
|
37
43
|
};
|
|
38
44
|
}
|
|
39
45
|
/** A guide's steps as the API answers them. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installation.js","sourceRoot":"","sources":["../../../src/adapters/trpc/installation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EACL,uBAAuB,EACvB,mCAAmC,EACnC,oCAAoC,EACpC,mCAAmC,EACnC,oCAAoC,EACpC,gCAAgC,EAChC,kCAAkC,EAClC,6BAA6B,EAC7B,sCAAsC,EACtC,iDAAiD,EACjD,kDAAkD,EAClD,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"installation.js","sourceRoot":"","sources":["../../../src/adapters/trpc/installation.ts"],"names":[],"mappings":"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"}
|
|
@@ -978,6 +978,11 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
978
978
|
attempts: number;
|
|
979
979
|
isPushed: boolean;
|
|
980
980
|
since: string;
|
|
981
|
+
reason: string | null;
|
|
982
|
+
ship: {
|
|
983
|
+
id: `shp_${string}`;
|
|
984
|
+
name: string;
|
|
985
|
+
};
|
|
981
986
|
message: {
|
|
982
987
|
id: `msg_${string}`;
|
|
983
988
|
sender: {
|
|
@@ -1070,6 +1075,50 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1070
1075
|
}[];
|
|
1071
1076
|
meta: import("./trpc.js").ProcedureMeta;
|
|
1072
1077
|
}>;
|
|
1078
|
+
health: import("@trpc/server").TRPCQueryProcedure<{
|
|
1079
|
+
input: void;
|
|
1080
|
+
output: {
|
|
1081
|
+
stuck: {
|
|
1082
|
+
cause: "undeliverable" | "noShipCanTake" | "waitingForCrew" | "stalledInFlight";
|
|
1083
|
+
place: {
|
|
1084
|
+
kind: "ship";
|
|
1085
|
+
ship: {
|
|
1086
|
+
id: `shp_${string}`;
|
|
1087
|
+
name: string;
|
|
1088
|
+
};
|
|
1089
|
+
machine: {
|
|
1090
|
+
id: `shp_${string}`;
|
|
1091
|
+
name: string;
|
|
1092
|
+
lastSeenAt: string | null;
|
|
1093
|
+
} | null;
|
|
1094
|
+
} | {
|
|
1095
|
+
kind: "type";
|
|
1096
|
+
type: string;
|
|
1097
|
+
};
|
|
1098
|
+
count: number;
|
|
1099
|
+
oldestSince: string;
|
|
1100
|
+
deliveries: {
|
|
1101
|
+
deliveryId: `dlv_${string}`;
|
|
1102
|
+
messageId: `msg_${string}`;
|
|
1103
|
+
state: "pending" | "received" | "handed" | "undeliverable";
|
|
1104
|
+
since: string;
|
|
1105
|
+
}[];
|
|
1106
|
+
}[];
|
|
1107
|
+
stuckPerHour: {
|
|
1108
|
+
at: string;
|
|
1109
|
+
count: number;
|
|
1110
|
+
}[];
|
|
1111
|
+
acknowledged: {
|
|
1112
|
+
count: number;
|
|
1113
|
+
medianMs: number | null;
|
|
1114
|
+
perHour: {
|
|
1115
|
+
at: string;
|
|
1116
|
+
count: number;
|
|
1117
|
+
}[];
|
|
1118
|
+
};
|
|
1119
|
+
};
|
|
1120
|
+
meta: import("./trpc.js").ProcedureMeta;
|
|
1121
|
+
}>;
|
|
1073
1122
|
dismiss: import("@trpc/server").TRPCMutationProcedure<{
|
|
1074
1123
|
input: {
|
|
1075
1124
|
deliveryId: unknown;
|
|
@@ -1494,6 +1543,44 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1494
1543
|
};
|
|
1495
1544
|
};
|
|
1496
1545
|
health: {
|
|
1546
|
+
stuck: {
|
|
1547
|
+
cause: "undeliverable" | "noShipCanTake" | "waitingForCrew" | "stalledInFlight";
|
|
1548
|
+
place: {
|
|
1549
|
+
kind: "ship";
|
|
1550
|
+
ship: {
|
|
1551
|
+
id: `shp_${string}`;
|
|
1552
|
+
name: string;
|
|
1553
|
+
};
|
|
1554
|
+
machine: {
|
|
1555
|
+
id: `shp_${string}`;
|
|
1556
|
+
name: string;
|
|
1557
|
+
lastSeenAt: string | null;
|
|
1558
|
+
} | null;
|
|
1559
|
+
} | {
|
|
1560
|
+
kind: "type";
|
|
1561
|
+
type: string;
|
|
1562
|
+
};
|
|
1563
|
+
count: number;
|
|
1564
|
+
oldestSince: string;
|
|
1565
|
+
deliveries: {
|
|
1566
|
+
deliveryId: `dlv_${string}`;
|
|
1567
|
+
messageId: `msg_${string}`;
|
|
1568
|
+
state: "pending" | "received" | "handed" | "undeliverable";
|
|
1569
|
+
since: string;
|
|
1570
|
+
}[];
|
|
1571
|
+
}[];
|
|
1572
|
+
stuckPerHour: {
|
|
1573
|
+
at: string;
|
|
1574
|
+
count: number;
|
|
1575
|
+
}[];
|
|
1576
|
+
acknowledged: {
|
|
1577
|
+
count: number;
|
|
1578
|
+
medianMs: number | null;
|
|
1579
|
+
perHour: {
|
|
1580
|
+
at: string;
|
|
1581
|
+
count: number;
|
|
1582
|
+
}[];
|
|
1583
|
+
};
|
|
1497
1584
|
oldestPendingAt: string | null;
|
|
1498
1585
|
oldestInFlightAt: string | null;
|
|
1499
1586
|
noShipCanTake: number;
|
|
@@ -1542,6 +1629,44 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1542
1629
|
};
|
|
1543
1630
|
};
|
|
1544
1631
|
health: {
|
|
1632
|
+
stuck: {
|
|
1633
|
+
cause: "undeliverable" | "noShipCanTake" | "waitingForCrew" | "stalledInFlight";
|
|
1634
|
+
place: {
|
|
1635
|
+
kind: "ship";
|
|
1636
|
+
ship: {
|
|
1637
|
+
id: `shp_${string}`;
|
|
1638
|
+
name: string;
|
|
1639
|
+
};
|
|
1640
|
+
machine: {
|
|
1641
|
+
id: `shp_${string}`;
|
|
1642
|
+
name: string;
|
|
1643
|
+
lastSeenAt: string | null;
|
|
1644
|
+
} | null;
|
|
1645
|
+
} | {
|
|
1646
|
+
kind: "type";
|
|
1647
|
+
type: string;
|
|
1648
|
+
};
|
|
1649
|
+
count: number;
|
|
1650
|
+
oldestSince: string;
|
|
1651
|
+
deliveries: {
|
|
1652
|
+
deliveryId: `dlv_${string}`;
|
|
1653
|
+
messageId: `msg_${string}`;
|
|
1654
|
+
state: "pending" | "received" | "handed" | "undeliverable";
|
|
1655
|
+
since: string;
|
|
1656
|
+
}[];
|
|
1657
|
+
}[];
|
|
1658
|
+
stuckPerHour: {
|
|
1659
|
+
at: string;
|
|
1660
|
+
count: number;
|
|
1661
|
+
}[];
|
|
1662
|
+
acknowledged: {
|
|
1663
|
+
count: number;
|
|
1664
|
+
medianMs: number | null;
|
|
1665
|
+
perHour: {
|
|
1666
|
+
at: string;
|
|
1667
|
+
count: number;
|
|
1668
|
+
}[];
|
|
1669
|
+
};
|
|
1545
1670
|
oldestPendingAt: string | null;
|
|
1546
1671
|
oldestInFlightAt: string | null;
|
|
1547
1672
|
noShipCanTake: number;
|
|
@@ -1733,6 +1858,7 @@ export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1733
1858
|
notHandled: import("@trpc/server").TRPCMutationProcedure<{
|
|
1734
1859
|
input: {
|
|
1735
1860
|
deliveryId: unknown;
|
|
1861
|
+
reason?: string | undefined;
|
|
1736
1862
|
};
|
|
1737
1863
|
output: Record<string, never>;
|
|
1738
1864
|
meta: import("./trpc.js").ProcedureMeta;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ANSWER_CONTENT_TYPE, NO_TERMINAL_QUESTIONS, PING_CONTENT_TYPE, QUESTION_CONTENT_TYPE, REPLACEMENT_CONTENT_TYPE, WITHDRAWAL_CONTENT_TYPE, } from '@aeolus-fleet/common';
|
|
1
|
+
import { ANSWER_CONTENT_TYPE, ARGO_HEADLINE_MAX_LENGTH, MARKDOWN_CONTENT_TYPE, NO_TERMINAL_QUESTIONS, PING_CONTENT_TYPE, QUESTION_CONTENT_TYPE, REPLACEMENT_CONTENT_TYPE, WITHDRAWAL_CONTENT_TYPE, } from '@aeolus-fleet/common';
|
|
2
2
|
/**
|
|
3
3
|
* The ship protocol: how a session crewing a ship uses the ship calls, and
|
|
4
4
|
* when. The MCP server sends it as its instructions when a client connects,
|
|
@@ -15,13 +15,14 @@ export const SHIP_PROTOCOL = [
|
|
|
15
15
|
'3. To answer, send to its senderName with inReplyTo set to its messageId.',
|
|
16
16
|
`4. ${NO_TERMINAL_QUESTIONS} Every other question goes to the sender of your task, never through your harness's interactive question tools: a question waiting there blocks your session.`,
|
|
17
17
|
`5. A question for argo is a message of content type ${QUESTION_CONTENT_TYPE}. Its payload is JSON: {"id":"<a new uuid>","title":"...","context":"...","options":[{"key":1,"label":"...","detail":"..."}],"pick":{"option":1,"why":"..."}}, with the options numbered from 1 and pick the option you would choose. argo answers with a reply to it (inReplyTo) of content type ${ANSWER_CONTENT_TYPE}, payload {"questionId":"<its uuid>","option":<a key>,"note":"..."} or a note alone. Until then you can withdraw it: send argo ${WITHDRAWAL_CONTENT_TYPE}, payload {"questionId":"<its uuid>"}. Or replace it: send argo ${REPLACEMENT_CONTENT_TYPE}, payload {"questionId":"<its uuid>","question":<the new question, with a new uuid>}.`,
|
|
18
|
-
|
|
19
|
-
'7.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
'10.
|
|
23
|
-
'11.
|
|
24
|
-
'12.
|
|
25
|
-
'13.
|
|
18
|
+
`6. A message to argo opens with its headline: one line of at most ${String(ARGO_HEADLINE_MAX_LENGTH)} characters that names ships, never their ids. Then a blank line and the body. Send it as ${MARKDOWN_CONTENT_TYPE} when it holds lists or links.`,
|
|
19
|
+
'7. Every send states the model you are running now.',
|
|
20
|
+
'8. If the content is over 64 KB, send where it lives (a path, a URL, a PR link), not the content itself.',
|
|
21
|
+
`9. A ping (${PING_CONTENT_TYPE}): call pong with its deliveryId instead of ack. Don't act on it and don't reply.`,
|
|
22
|
+
'10. Report your status when it changes.',
|
|
23
|
+
'11. While you wait for an answer, keep receiving. An empty receive only means nothing has arrived yet.',
|
|
24
|
+
'12. When your work is done and you expect no answer, end your turn. Anything that arrives later waits for you.',
|
|
25
|
+
'13. Deregister only when this session ends for good, never between tasks.',
|
|
26
|
+
'14. LEASE_ENDED while passing your crew token: your ship was released. Stop calling the fleet and say so.',
|
|
26
27
|
].join('\n');
|
|
27
28
|
//# sourceMappingURL=ship-protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ship-protocol.js","sourceRoot":"","sources":["../../../src/adapters/trpc/ship-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,8DAA8D;IAC9D,EAAE;IACF,sVAAsV;IACtV,oNAAoN;IACpN,2EAA2E;IAC3E,MAAM,qBAAqB,+JAA+J;IAC1L,uDAAuD,qBAAqB,qSAAqS,mBAAmB,kIAAkI,uBAAuB,mEAAmE,wBAAwB,uFAAuF;IAC/sB,qDAAqD;IACrD,0GAA0G;IAC1G,cAAc,iBAAiB,mFAAmF;IAClH,
|
|
1
|
+
{"version":3,"file":"ship-protocol.js","sourceRoot":"","sources":["../../../src/adapters/trpc/ship-protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,8DAA8D;IAC9D,EAAE;IACF,sVAAsV;IACtV,oNAAoN;IACpN,2EAA2E;IAC3E,MAAM,qBAAqB,+JAA+J;IAC1L,uDAAuD,qBAAqB,qSAAqS,mBAAmB,kIAAkI,uBAAuB,mEAAmE,wBAAwB,uFAAuF;IAC/sB,qEAAqE,MAAM,CAAC,wBAAwB,CAAC,6FAA6F,qBAAqB,gCAAgC;IACvP,qDAAqD;IACrD,0GAA0G;IAC1G,cAAc,iBAAiB,mFAAmF;IAClH,yCAAyC;IACzC,wGAAwG;IACxG,gHAAgH;IAChH,2EAA2E;IAC3E,2GAA2G;CAC5G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -195,6 +195,7 @@ export declare const shipRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
195
195
|
notHandled: import("@trpc/server").TRPCMutationProcedure<{
|
|
196
196
|
input: {
|
|
197
197
|
deliveryId: unknown;
|
|
198
|
+
reason?: string | undefined;
|
|
198
199
|
};
|
|
199
200
|
output: Record<string, never>;
|
|
200
201
|
meta: import("./trpc.js").ProcedureMeta;
|
|
@@ -82,7 +82,8 @@ export type TurnEnd = 'handled' | 'notHandled';
|
|
|
82
82
|
* A pushed crew reports how the turn that took an acknowledged delivery
|
|
83
83
|
* ended (decision 0040): handled when it ended by itself, not handled when
|
|
84
84
|
* the turn it was handed once more to died too. Either writes its event,
|
|
85
|
-
* DeliveryHandled or DeliveryNotHandled, and keeps who it was handed to
|
|
85
|
+
* DeliveryHandled or DeliveryNotHandled, and keeps who it was handed to;
|
|
86
|
+
* the reason the crew gave goes with the event (#847).
|
|
86
87
|
* The same report again is harmless: OK, and nothing changes. A delivery not
|
|
87
88
|
* acknowledged yet, or that ended the other way, is refused, so a ping not
|
|
88
89
|
* answered with pong stays handed. Not handled needs the once more first.
|
|
@@ -92,6 +93,7 @@ export declare function endTurn(delivery: Delivery, report: {
|
|
|
92
93
|
crew: CrewOfShip;
|
|
93
94
|
end: TurnEnd;
|
|
94
95
|
at: Date;
|
|
96
|
+
reason?: string;
|
|
95
97
|
}): Result<{
|
|
96
98
|
delivery: Delivery;
|
|
97
99
|
events: NewEvent[];
|
|
@@ -161,14 +161,15 @@ function handOnceMore(delivery, handOver) {
|
|
|
161
161
|
* A pushed crew reports how the turn that took an acknowledged delivery
|
|
162
162
|
* ended (decision 0040): handled when it ended by itself, not handled when
|
|
163
163
|
* the turn it was handed once more to died too. Either writes its event,
|
|
164
|
-
* DeliveryHandled or DeliveryNotHandled, and keeps who it was handed to
|
|
164
|
+
* DeliveryHandled or DeliveryNotHandled, and keeps who it was handed to;
|
|
165
|
+
* the reason the crew gave goes with the event (#847).
|
|
165
166
|
* The same report again is harmless: OK, and nothing changes. A delivery not
|
|
166
167
|
* acknowledged yet, or that ended the other way, is refused, so a ping not
|
|
167
168
|
* answered with pong stays handed. Not handled needs the once more first.
|
|
168
169
|
* Only the crew holding the delivery reports it.
|
|
169
170
|
*/
|
|
170
171
|
export function endTurn(delivery, report) {
|
|
171
|
-
const { crew, end, at } = report;
|
|
172
|
+
const { crew, end, at, reason } = report;
|
|
172
173
|
switch (delivery.state) {
|
|
173
174
|
case 'received':
|
|
174
175
|
case 'handed':
|
|
@@ -198,7 +199,7 @@ export function endTurn(delivery, report) {
|
|
|
198
199
|
shipId: crew.shipId,
|
|
199
200
|
messageId: delivery.messageId,
|
|
200
201
|
deliveryId: delivery.id,
|
|
201
|
-
details: { leaseId: crew.leaseId },
|
|
202
|
+
details: { leaseId: crew.leaseId, ...(reason === undefined ? {} : { reason }) },
|
|
202
203
|
},
|
|
203
204
|
],
|
|
204
205
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/domain/messaging/delivery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delivery.js","sourceRoot":"","sources":["../../../src/domain/messaging/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA6C,MAAM,sBAAsB,CAAC;AAEpG,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAGtD;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAe1C;;;;;GAKG;AACH,SAAS,YAAY,CAAC,QAAkB,EAAE,OAAsE;IAC9G,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,cAAc,KAAK,IAAI,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE;KACjG,CAAC;IAEF,IAAI,QAAQ,IAAI,wBAAwB,EAAE,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE;YAC1H,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;SACzD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE;QAClI,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB,EAAE,QAAwC;IACvF,OAAO,YAAY,CAAC,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAkB,EAClB,OAAuC;IAEvC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC;IAC7C,MAAM,KAAK,GAAa;QACtB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;KACpE,CAAC;IACF,OAAO,OAAO;QACZ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;QAC/B,CAAC,CAAC;YACE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE;YAChI,MAAM,EAAE,CAAC,KAAK,CAAC;SAChB,CAAC;AACR,CAAC;AAiBD;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAkB,EAClB,QAAkB;IAElB,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC;IAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC;IAC/F,QAAQ,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IAAI,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/C,OAAO,MAAM,CACX,+BAA+B,EAC/B,YAAY,QAAQ,CAAC,EAAE,wEAAwE,CAChG,CAAC;YACJ,CAAC;YACD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,OAAO,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;gBAC9C,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;gBACtC,OAAO,MAAM,CACX,wBAAwB,EACxB,YAAY,QAAQ,CAAC,EAAE,yGAAyG,CACjI,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;YACpG,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,YAAY,CAAC;QAClB,KAAK,eAAe,CAAC;QACrB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,MAAM,CACX,wBAAwB,EACxB,YAAY,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,KAAK,mEAAmE,CAChH,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CACnB,QAAkB,EAClB,QAAkB;IAElB,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAC;IAC9C,IAAI,QAAQ,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;QACtC,OAAO,MAAM,CACX,2BAA2B,EAC3B,YAAY,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,KAAK,kEAAkE,CAC/G,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,cAAc,KAAK,IAAI,IAAI,cAAc,IAAI,QAAQ,CAAC,cAAc;YAClF,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACrD,CAAC,CAAC,MAAM,CACJ,2BAA2B,EAC3B,YAAY,QAAQ,CAAC,EAAE,6EAA6E,CACrG,CAAC;IACR,CAAC;IACD,OAAO,EAAE,CAAC;QACR,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,EAAE;QAC/D,MAAM,EAAE;YACN;gBACE,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,EAAE;gBACd,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;aAChG;SACF;KACF,CAAC,CAAC;AACL,CAAC;AASD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,OAAO,CACrB,QAAkB,EAClB,MAAqE;IAErE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACzC,QAAQ,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC;QACpB,KAAK,SAAS,CAAC;QACf,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/C,OAAO,MAAM,CACX,+BAA+B,EAC/B,YAAY,QAAQ,CAAC,EAAE,2EAA2E,CACnG,CAAC;YACJ,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC;gBAC3B,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;gBACtC,OAAO,MAAM,CACX,2BAA2B,EAC3B,YAAY,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,KAAK,2EAA2E,CACxH,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,KAAK,YAAY,IAAI,QAAQ,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBAC/D,OAAO,MAAM,CACX,+BAA+B,EAC/B,YAAY,QAAQ,CAAC,EAAE,0HAA0H,CAClJ,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,CAAC;gBACR,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;gBACrC,MAAM,EAAE;oBACN;wBACE,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,oBAAoB;wBAClE,UAAU,EAAE,EAAE;wBACd,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;qBAChF;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QACD,KAAK,SAAS,CAAC;QACf,KAAK,eAAe,CAAC;QACrB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,MAAM,CACX,wBAAwB,EACxB,YAAY,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,KAAK,wEAAwE,CACrH,CAAC;IACN,CAAC;AACH,CAAC;AAID;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAkB,EAClB,GAAmC;IAEnC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;IACzB,QAAQ,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC;QACpB,KAAK,SAAS,CAAC;QACf,KAAK,YAAY;YACf,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7C,OAAO,MAAM,CACX,+BAA+B,EAC/B,YAAY,QAAQ,CAAC,EAAE,0EAA0E,CAClG,CAAC;YACJ,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACjE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,EAAE,CAAC;gBACR,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;gBAChD,MAAM,EAAE;oBACN;wBACE,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,IAAI,EAAE,sBAAsB;wBAC5B,UAAU,EAAE,EAAE;wBACd,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;qBACnC;iBACF;aACF,CAAC,CAAC;QACL,KAAK,SAAS,CAAC;QACf,KAAK,eAAe,CAAC;QACrB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,MAAM,CACX,wBAAwB,EACxB,YAAY,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,KAAK,sEAAsE,CACnH,CAAC;IACN,CAAC;AACH,CAAC;AAID;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CACxB,QAAkB,EAClB,IAAsD;IAEtD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC,qBAAqB,EAAE,YAAY,QAAQ,CAAC,EAAE,0DAA0D,CAAC,CAAC;IAC1H,CAAC;IACD,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACvB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IACvH,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/D,CAAC;AAID;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAkB,EAClB,OAAiC;IAEjC,QAAQ,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,KAAK,eAAe,CAAC;QACrB,KAAK,YAAY;YACf,OAAO,EAAE,CAAC;gBACR,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;gBAC7C,MAAM,EAAE;oBACN;wBACE,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,IAAI,EAAE,mBAAmB;wBACzB,UAAU,EAAE,OAAO,CAAC,EAAE;wBACtB,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC5B,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;wBAClF,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,UAAU,EAAE,QAAQ,CAAC,EAAE;qBACxB;iBACF;aACF,CAAC,CAAC;QACL,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC;QACpB,KAAK,SAAS,CAAC;QACf,KAAK,WAAW;YACd,OAAO,MAAM,CACX,4BAA4B,EAC5B,YAAY,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,KAAK,8DAA8D,CAC3G,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAkB,EAClB,OAAiC;IAEjC,OAAO,QAAQ,CAAC,KAAK,KAAK,eAAe,IAAI,QAAQ,CAAC,KAAK,KAAK,YAAY;QAC1E,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC;QACpC,CAAC,CAAC,MAAM,CACJ,4BAA4B,EAC5B,YAAY,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,KAAK,2DAA2D,CACxG,CAAC;AACR,CAAC;AAID;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CACtB,QAAkB,EAClB,IAAuD;IAEvD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;IAC/B,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAClE,OAAO,MAAM,CAAC,oBAAoB,EAAE,YAAY,QAAQ,CAAC,EAAE,uBAAuB,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,EAAE;KACxB,CAAC;IACF,MAAM,YAAY,GAAa;QAC7B,GAAG,QAAQ;QACX,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;KAC5D,CAAC;IAEF,QAAQ,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,cAAc,CAAC;QACpB,KAAK,SAAS,CAAC;QACf,KAAK,YAAY;YACf,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvC,OAAO,EAAE,CAAC;gBACR,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE;gBACxH,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,CAAC;aAC9G,CAAC,CAAC;QACL,CAAC;QACD,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,OAAO;gBAC/C,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;gBAClF,CAAC,CAAC,MAAM,CAAC,+BAA+B,EAAE,YAAY,QAAQ,CAAC,EAAE,6BAA6B,CAAC,CAAC;QACpG,KAAK,eAAe,CAAC;QACrB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,mBAAmB,EAAE,YAAY,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,KAAK,uCAAuC,CAAC,CAAC;IAC5H,CAAC;AACH,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,WAAW,CAAC,QAA8B,EAAE,MAAc;IACxE,OAAO,QAAQ,EAAE,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC;AACrF,CAAC"}
|
|
@@ -56,5 +56,12 @@ export interface Overdue {
|
|
|
56
56
|
* lease with no turn reported is idle since it was pushed.
|
|
57
57
|
*/
|
|
58
58
|
export declare function overdueDelivery(crew: PushedCrew, now: Date): Overdue | undefined;
|
|
59
|
+
/** A pushed crew as its clocks read it: the turn its hooks last reported, and since when its lease is pushed. */
|
|
60
|
+
export type ClockedCrew = Pick<PushedCrew, 'turn' | 'pushedAt'>;
|
|
61
|
+
/** Whether the clock of a delivery waiting for a pushed crew ran out at `now`, by the rule `overdueDelivery` tells by. */
|
|
62
|
+
export declare function hasClockRunOut(delivery: Pick<WaitingDelivery, 'state' | 'since'>, read: {
|
|
63
|
+
crew: ClockedCrew;
|
|
64
|
+
now: Date;
|
|
65
|
+
}): boolean;
|
|
59
66
|
/** DeliveryOverdue: the fleet told argo, as the system, that the delivery's clock ran out. */
|
|
60
67
|
export declare function overdueEvent(overdue: Overdue, at: Date): NewEvent;
|
|
@@ -14,22 +14,27 @@ export const BUSY_MINUTES = 60;
|
|
|
14
14
|
* lease with no turn reported is idle since it was pushed.
|
|
15
15
|
*/
|
|
16
16
|
export function overdueDelivery(crew, now) {
|
|
17
|
-
const turn = crew.turn ?? { state: 'idle', at: crew.pushedAt };
|
|
18
17
|
const oldestFirst = crew.waiting.toSorted((first, second) => first.sentAt.getTime() - second.sentAt.getTime() || first.deliveryId.localeCompare(second.deliveryId));
|
|
19
18
|
for (const delivery of oldestFirst) {
|
|
20
|
-
const { clock, minutes, from } = clockOf(delivery,
|
|
19
|
+
const { clock, minutes, from } = clockOf(delivery, crew);
|
|
21
20
|
if (now.getTime() - from.getTime() >= minutes * MINUTE_MS) {
|
|
22
21
|
return { fleetId: crew.fleetId, shipId: crew.shipId, leaseId: crew.leaseId, delivery, clock, minutes };
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
24
|
return undefined;
|
|
26
25
|
}
|
|
26
|
+
/** Whether the clock of a delivery waiting for a pushed crew ran out at `now`, by the rule `overdueDelivery` tells by. */
|
|
27
|
+
export function hasClockRunOut(delivery, read) {
|
|
28
|
+
const { minutes, from } = clockOf(delivery, read.crew);
|
|
29
|
+
return read.now.getTime() - from.getTime() >= minutes * MINUTE_MS;
|
|
30
|
+
}
|
|
27
31
|
function clockOf(delivery, crew) {
|
|
32
|
+
const turn = crew.turn ?? { state: 'idle', at: crew.pushedAt };
|
|
28
33
|
if (delivery.state === 'handed') {
|
|
29
34
|
return { clock: 'notConfirmed', minutes: NOT_CONFIRMED_MINUTES, from: delivery.since };
|
|
30
35
|
}
|
|
31
|
-
const from = new Date(Math.max(delivery.since.getTime(),
|
|
32
|
-
switch (
|
|
36
|
+
const from = new Date(Math.max(delivery.since.getTime(), turn.at.getTime(), crew.pushedAt.getTime()));
|
|
37
|
+
switch (turn.state) {
|
|
33
38
|
case 'idle':
|
|
34
39
|
return { clock: 'idle', minutes: IDLE_MINUTES, from };
|
|
35
40
|
case 'busy':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overdue.js","sourceRoot":"","sources":["../../../src/domain/messaging/overdue.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAiB,MAAM,qBAAqB,CAAC;AAE5D,MAAM,SAAS,GAAG,MAAM,CAAC;AAEzB,mFAAmF;AACnF,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAE/B,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAwC/B;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAgB,EAAE,GAAS;IACzD,MAAM,
|
|
1
|
+
{"version":3,"file":"overdue.js","sourceRoot":"","sources":["../../../src/domain/messaging/overdue.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAiB,MAAM,qBAAqB,CAAC;AAE5D,MAAM,SAAS,GAAG,MAAM,CAAC;AAEzB,mFAAmF;AACnF,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAE/B,yEAAyE;AACzE,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAwC/B;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAgB,EAAE,GAAS;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IACpK,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;YAC1D,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACzG,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAKD,0HAA0H;AAC1H,MAAM,UAAU,cAAc,CAAC,QAAkD,EAAE,IAAsC;IACvH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO,GAAG,SAAS,CAAC;AACpE,CAAC;AAED,SAAS,OAAO,CAAC,QAAkD,EAAE,IAAiB;IACpF,MAAM,IAAI,GAAmC,IAAI,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/F,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IACzF,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACtG,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACxD,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,EAAQ;IACrD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,iBAAiB;QACvB,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;QACrC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,UAAU;QACvC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;KACtF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export { hasClockRunOut, NOT_CONFIRMED_MINUTES, type ClockedCrew, type OverdueClock, type WaitingState } from './overdue.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/domain/messaging/public.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/domain/messaging/public.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAA0D,MAAM,cAAc,CAAC"}
|
|
@@ -6,13 +6,15 @@ import type { UnitOfWork } from '../shared/unit-of-work.js';
|
|
|
6
6
|
import { type ReportTurnEndRefusal, type ReportTurnEndTx } from './report-turn-end.js';
|
|
7
7
|
export type ReportNotHandled = (crew: Crew, input: {
|
|
8
8
|
deliveryId: DeliveryId;
|
|
9
|
+
reason?: string;
|
|
9
10
|
}) => Promise<Result<undefined, ReportTurnEndRefusal>>;
|
|
10
11
|
/**
|
|
11
12
|
* Use case: a pushed crew reports the turn a confirmed message was handed
|
|
12
13
|
* once more to died too (`notHandled`, decision 0040). Its scope
|
|
13
14
|
* (messages:receive) is checked before this runs. In one unit of work it
|
|
14
15
|
* holds the crew's lease, locks the delivery and moves it to not handled
|
|
15
|
-
* with DeliveryNotHandled, which
|
|
16
|
+
* with DeliveryNotHandled, which keeps the reason the crew gave and puts it
|
|
17
|
+
* in Needs attention. Reporting it
|
|
16
18
|
* again is OK and changes nothing.
|
|
17
19
|
*/
|
|
18
20
|
export declare function createReportNotHandled(deps: {
|
|
@@ -4,7 +4,8 @@ import { reportTurnEnd } from './report-turn-end.js';
|
|
|
4
4
|
* once more to died too (`notHandled`, decision 0040). Its scope
|
|
5
5
|
* (messages:receive) is checked before this runs. In one unit of work it
|
|
6
6
|
* holds the crew's lease, locks the delivery and moves it to not handled
|
|
7
|
-
* with DeliveryNotHandled, which
|
|
7
|
+
* with DeliveryNotHandled, which keeps the reason the crew gave and puts it
|
|
8
|
+
* in Needs attention. Reporting it
|
|
8
9
|
* again is OK and changes nothing.
|
|
9
10
|
*/
|
|
10
11
|
export function createReportNotHandled(deps) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-not-handled.js","sourceRoot":"","sources":["../../../src/domain/messaging/report-not-handled.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAmD,MAAM,sBAAsB,CAAC;AAItG
|
|
1
|
+
{"version":3,"file":"report-not-handled.js","sourceRoot":"","sources":["../../../src/domain/messaging/report-not-handled.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAmD,MAAM,sBAAsB,CAAC;AAItG;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA0E;IAC/G,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AAC/I,CAAC"}
|
|
@@ -11,7 +11,7 @@ import { endTurn } from './delivery.js';
|
|
|
11
11
|
*/
|
|
12
12
|
export async function reportTurnEnd(deps, report) {
|
|
13
13
|
const { tx } = deps;
|
|
14
|
-
const { crew, deliveryId,
|
|
14
|
+
const { crew, deliveryId, ...ending } = report;
|
|
15
15
|
const held = await holdLease(tx, crew);
|
|
16
16
|
if (!held.isOk) {
|
|
17
17
|
return held;
|
|
@@ -20,7 +20,7 @@ export async function reportTurnEnd(deps, report) {
|
|
|
20
20
|
if (!delivery) {
|
|
21
21
|
return refuse('DELIVERY_NOT_FOUND', `Delivery ${deliveryId} does not exist`);
|
|
22
22
|
}
|
|
23
|
-
const ended = endTurn(delivery, { crew,
|
|
23
|
+
const ended = endTurn(delivery, { crew, ...ending, at: deps.clock.now() });
|
|
24
24
|
if (!ended.isOk) {
|
|
25
25
|
return ended;
|
|
26
26
|
}
|