@aeolus-fleet/core 0.20.3 → 0.20.4
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/README.md +1 -1
- package/dist/adapters/http/server.d.ts +0 -2
- package/dist/adapters/http/server.js +4 -12
- package/dist/adapters/http/server.js.map +1 -1
- package/dist/adapters/prisma/client.d.ts +0 -2
- package/dist/adapters/prisma/client.js +0 -9
- package/dist/adapters/prisma/client.js.map +1 -1
- package/dist/adapters/prisma/generated/browser.d.ts +18 -0
- package/dist/adapters/prisma/generated/client.d.ts +18 -0
- package/dist/adapters/prisma/generated/internal/class.d.ts +22 -0
- package/dist/adapters/prisma/generated/internal/class.js +4 -4
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +169 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +16 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +18 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +16 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/adapters/prisma/generated/models/Delivery.d.ts +68 -1
- package/dist/adapters/prisma/generated/models/Fleet.d.ts +481 -0
- package/dist/adapters/prisma/generated/models/NetworkSettings.d.ts +1101 -0
- package/dist/adapters/prisma/generated/models/NetworkSettings.js +2 -0
- package/dist/adapters/prisma/generated/models/NetworkSettings.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ReachRefusal.d.ts +1239 -0
- package/dist/adapters/prisma/generated/models/ReachRefusal.js +2 -0
- package/dist/adapters/prisma/generated/models/ReachRefusal.js.map +1 -0
- package/dist/adapters/prisma/generated/models.d.ts +2 -0
- package/dist/adapters/prisma/messaging.js +16 -2
- package/dist/adapters/prisma/messaging.js.map +1 -1
- package/dist/adapters/prisma/network.d.ts +4 -0
- package/dist/adapters/prisma/network.js +69 -0
- package/dist/adapters/prisma/network.js.map +1 -0
- package/dist/adapters/prisma/registry.js +3 -0
- package/dist/adapters/prisma/registry.js.map +1 -1
- package/dist/adapters/prisma/unit-of-work.d.ts +3 -1
- package/dist/adapters/prisma/unit-of-work.js +3 -0
- package/dist/adapters/prisma/unit-of-work.js.map +1 -1
- package/dist/adapters/trpc/console.d.ts +1 -1
- package/dist/adapters/trpc/context.d.ts +4 -0
- package/dist/adapters/trpc/fleet.d.ts +68 -6
- package/dist/adapters/trpc/fleet.js +25 -1
- package/dist/adapters/trpc/fleet.js.map +1 -1
- package/dist/adapters/trpc/router.d.ts +67 -7
- package/dist/adapters/trpc/ship-contract.js +1 -0
- package/dist/adapters/trpc/ship-contract.js.map +1 -1
- package/dist/adapters/trpc/ship-protocol.js +9 -8
- package/dist/adapters/trpc/ship-protocol.js.map +1 -1
- package/dist/adapters/trpc/trpc.js +2 -0
- package/dist/adapters/trpc/trpc.js.map +1 -1
- package/dist/app.js +1 -2
- package/dist/app.js.map +1 -1
- package/dist/domain/messaging/answer.d.ts +17 -0
- package/dist/domain/messaging/answer.js +16 -0
- package/dist/domain/messaging/answer.js.map +1 -0
- package/dist/domain/messaging/message.d.ts +10 -1
- package/dist/domain/messaging/message.js +4 -2
- package/dist/domain/messaging/message.js.map +1 -1
- package/dist/domain/messaging/ports.d.ts +2 -0
- package/dist/domain/messaging/resend-delivery.d.ts +11 -4
- package/dist/domain/messaging/resend-delivery.js +87 -62
- package/dist/domain/messaging/resend-delivery.js.map +1 -1
- package/dist/domain/messaging/send-message.d.ts +11 -4
- package/dist/domain/messaging/send-message.js +32 -6
- package/dist/domain/messaging/send-message.js.map +1 -1
- package/dist/domain/registry/check-reach.d.ts +44 -0
- package/dist/domain/registry/check-reach.js +75 -0
- package/dist/domain/registry/check-reach.js.map +1 -0
- package/dist/domain/registry/get-ship.d.ts +3 -3
- package/dist/domain/registry/get-ship.js +2 -1
- package/dist/domain/registry/get-ship.js.map +1 -1
- package/dist/domain/registry/network-settings.d.ts +58 -0
- package/dist/domain/registry/network-settings.js +81 -0
- package/dist/domain/registry/network-settings.js.map +1 -0
- package/dist/domain/registry/ports.d.ts +22 -0
- package/dist/domain/registry/public.d.ts +1 -0
- package/dist/domain/registry/public.js +1 -0
- package/dist/domain/registry/public.js.map +1 -1
- package/dist/domain/registry/reach-refusal.d.ts +30 -0
- package/dist/domain/registry/reach-refusal.js +2 -0
- package/dist/domain/registry/reach-refusal.js.map +1 -0
- package/dist/domain/registry/read-reach-refusals.d.ts +14 -0
- package/dist/domain/registry/read-reach-refusals.js +17 -0
- package/dist/domain/registry/read-reach-refusals.js.map +1 -0
- package/dist/domain/registry/set-network-rules.d.ts +29 -0
- package/dist/domain/registry/set-network-rules.js +25 -0
- package/dist/domain/registry/set-network-rules.js.map +1 -0
- package/dist/domain/registry/ship-report.d.ts +5 -0
- package/dist/domain/registry/ship-report.js +3 -0
- package/dist/domain/registry/ship-report.js.map +1 -1
- package/dist/domain/shared/errors.d.ts +1 -1
- package/dist/domain/shared/errors.js.map +1 -1
- package/dist/domain/shared/history.d.ts +17 -0
- package/dist/domain/shared/history.js +4 -1
- package/dist/domain/shared/history.js.map +1 -1
- package/dist/domain/shared/read-needs-attention.d.ts +4 -4
- package/dist/domain/shared/read-needs-attention.js +4 -3
- package/dist/domain/shared/read-needs-attention.js.map +1 -1
- package/dist/domain/shared/read-ship-timeline.d.ts +5 -4
- package/dist/domain/shared/read-ship-timeline.js +7 -3
- package/dist/domain/shared/read-ship-timeline.js.map +1 -1
- package/dist/wiring.d.ts +4 -0
- package/dist/wiring.js +5 -0
- package/dist/wiring.js.map +1 -1
- package/package.json +2 -2
- package/src/adapters/prisma/migrations/20261009200000_network_scope/migration.sql +8 -0
- package/src/adapters/prisma/migrations/20261009210000_network_rules/migration.sql +31 -0
- package/src/adapters/prisma/migrations/20261009220000_type_delivery_reachable_ships/migration.sql +5 -0
- package/src/adapters/prisma/schema.prisma +38 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aeolus-fleet/core",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.4",
|
|
4
4
|
"description": "Aeolus server: the tRPC API and the fleet domain on Postgres.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"postpack": "rm LICENSE"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@aeolus-fleet/common": "0.20.
|
|
45
|
+
"@aeolus-fleet/common": "0.20.4",
|
|
46
46
|
"@fastify/websocket": "^11.3.1",
|
|
47
47
|
"@modelcontextprotocol/server": "^2.3.0",
|
|
48
48
|
"@prisma/adapter-pg": "^7.10.0",
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
-- fleet:network (decision 0034): setting the fleet's network rules. argo
|
|
2
|
+
-- holds every scope, so each fleet's argo gets it too.
|
|
3
|
+
ALTER TABLE "ships" DROP CONSTRAINT "ships_scopes_known";
|
|
4
|
+
ALTER TABLE "ships" ADD CONSTRAINT "ships_scopes_known" CHECK (
|
|
5
|
+
"scopes" IS NOT NULL AND "scopes" <@ ARRAY['messages:send', 'messages:receive', 'fleet:read', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network']::TEXT[]
|
|
6
|
+
);
|
|
7
|
+
|
|
8
|
+
UPDATE "ships" SET "scopes" = array_append("scopes", 'fleet:network') WHERE "kind" = 'operator' AND NOT ('fleet:network' = ANY("scopes"));
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
-- The fleet's network settings and the records of the sends they refused
|
|
2
|
+
-- (decision 0034).
|
|
3
|
+
-- CreateTable
|
|
4
|
+
CREATE TABLE "network_settings" (
|
|
5
|
+
"fleet_id" TEXT NOT NULL,
|
|
6
|
+
"rules" JSONB,
|
|
7
|
+
"version" INTEGER NOT NULL,
|
|
8
|
+
|
|
9
|
+
CONSTRAINT "network_settings_pkey" PRIMARY KEY ("fleet_id")
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
-- CreateTable
|
|
13
|
+
CREATE TABLE "reach_refusals" (
|
|
14
|
+
"id" TEXT NOT NULL,
|
|
15
|
+
"fleet_id" TEXT NOT NULL,
|
|
16
|
+
"at" TIMESTAMPTZ(3) NOT NULL,
|
|
17
|
+
"sender" JSONB NOT NULL,
|
|
18
|
+
"recipient" JSONB NOT NULL,
|
|
19
|
+
"settings_version" INTEGER NOT NULL,
|
|
20
|
+
|
|
21
|
+
CONSTRAINT "reach_refusals_pkey" PRIMARY KEY ("id")
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
-- CreateIndex
|
|
25
|
+
CREATE INDEX "reach_refusals_fleet_id_at_idx" ON "reach_refusals"("fleet_id", "at");
|
|
26
|
+
|
|
27
|
+
-- AddForeignKey
|
|
28
|
+
ALTER TABLE "network_settings" ADD CONSTRAINT "network_settings_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
29
|
+
|
|
30
|
+
-- AddForeignKey
|
|
31
|
+
ALTER TABLE "reach_refusals" ADD CONSTRAINT "reach_refusals_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
package/src/adapters/prisma/migrations/20261009220000_type_delivery_reachable_ships/migration.sql
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
-- A type delivery under network rules keeps the ships of the type its sender
|
|
2
|
+
-- may reach, fixed at send time (decision 0034); empty for any ship of the type,
|
|
3
|
+
-- as every delivery stored before had.
|
|
4
|
+
-- AlterTable
|
|
5
|
+
ALTER TABLE "deliveries" ADD COLUMN "reachable_ship_ids" TEXT[] DEFAULT ARRAY[]::TEXT[];
|
|
@@ -51,6 +51,8 @@ model Fleet {
|
|
|
51
51
|
labels Label[]
|
|
52
52
|
labelValues LabelValue[]
|
|
53
53
|
shipLabels ShipLabel[]
|
|
54
|
+
networkSettings NetworkSettings?
|
|
55
|
+
reachRefusals ReachRefusal[]
|
|
54
56
|
credentials Credential[]
|
|
55
57
|
messages Message[]
|
|
56
58
|
deliveries Delivery[]
|
|
@@ -322,6 +324,38 @@ model ShipLabel {
|
|
|
322
324
|
@@map("ship_labels")
|
|
323
325
|
}
|
|
324
326
|
|
|
327
|
+
/// A fleet's network settings (decision 0034), once it first set rules: its
|
|
328
|
+
/// rules as JSON, none (null) for all-to-all, and their version. A send and a
|
|
329
|
+
/// set take turns on an advisory lock on them (network.ts).
|
|
330
|
+
model NetworkSettings {
|
|
331
|
+
fleetId String @id @map("fleet_id")
|
|
332
|
+
rules Json?
|
|
333
|
+
version Int
|
|
334
|
+
|
|
335
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
336
|
+
|
|
337
|
+
@@map("network_settings")
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/// A send the network rules refused (decision 0034), recorded in the
|
|
341
|
+
/// transaction that refused it. Ids start with rfs_. Sender and recipient are
|
|
342
|
+
/// as they were then: ids, names and the label values they carried, as JSON,
|
|
343
|
+
/// so a later rename or relabelling keeps the record true. Only argo reads it.
|
|
344
|
+
model ReachRefusal {
|
|
345
|
+
id String @id
|
|
346
|
+
fleetId String @map("fleet_id")
|
|
347
|
+
at DateTime @db.Timestamptz(3)
|
|
348
|
+
sender Json
|
|
349
|
+
recipient Json
|
|
350
|
+
settingsVersion Int @map("settings_version")
|
|
351
|
+
|
|
352
|
+
fleet Fleet @relation(fields: [fleetId], references: [id])
|
|
353
|
+
|
|
354
|
+
/// argo reads the latest first.
|
|
355
|
+
@@index([fleetId, at])
|
|
356
|
+
@@map("reach_refusals")
|
|
357
|
+
}
|
|
358
|
+
|
|
325
359
|
/// A ship secret, stored only as its hash. Ids start with crd_.
|
|
326
360
|
/// The hash is unique across all fleets: finding a ship by its secret is one of the
|
|
327
361
|
/// lookups not scoped by fleet (ADR 0007).
|
|
@@ -414,6 +448,9 @@ enum DeliveryState {
|
|
|
414
448
|
/// is in flight, kept once acknowledged, none while it is pending. Attempts count the
|
|
415
449
|
/// claims; the fifth makes it undeliverable.
|
|
416
450
|
/// The read date is set when the operator opens a message to argo.
|
|
451
|
+
/// For a type under network rules, the ships of the type its sender may reach,
|
|
452
|
+
/// fixed at send time: only they claim it (decision 0034). Empty: any ship of
|
|
453
|
+
/// the type, as a send no ship of the type may take is refused.
|
|
417
454
|
model Delivery {
|
|
418
455
|
id String @id
|
|
419
456
|
fleetId String @map("fleet_id")
|
|
@@ -424,6 +461,7 @@ model Delivery {
|
|
|
424
461
|
claimedByShipId String? @map("claimed_by_ship_id")
|
|
425
462
|
claimedByLeaseId String? @map("claimed_by_lease_id")
|
|
426
463
|
attempts Int @default(0)
|
|
464
|
+
reachableShipIds String[] @default([]) @map("reachable_ship_ids")
|
|
427
465
|
readAt DateTime? @map("read_at") @db.Timestamptz(3)
|
|
428
466
|
createdAt DateTime @map("created_at") @db.Timestamptz(3)
|
|
429
467
|
|