@aeolus-fleet/core 0.25.0 → 0.25.1
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/prisma/generated/browser.d.ts +3 -2
- package/dist/adapters/prisma/generated/client.d.ts +3 -2
- package/dist/adapters/prisma/generated/internal/class.js +1 -1
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
- package/dist/adapters/prisma/generated/models/CrewRequest.d.ts +3 -2
- package/dist/adapters/trpc/fleet.d.ts +1 -1
- package/dist/adapters/trpc/fleet.js +3 -2
- package/dist/adapters/trpc/fleet.js.map +1 -1
- package/dist/adapters/trpc/trpc.js +2 -0
- package/dist/adapters/trpc/trpc.js.map +1 -1
- package/dist/domain/registry/crew-request.d.ts +12 -6
- package/dist/domain/registry/crew-request.js +21 -3
- package/dist/domain/registry/crew-request.js.map +1 -1
- package/dist/domain/registry/request-crew.d.ts +6 -2
- package/dist/domain/registry/request-crew.js +14 -3
- package/dist/domain/registry/request-crew.js.map +1 -1
- package/dist/domain/shared/errors.d.ts +1 -1
- package/dist/domain/shared/errors.js.map +1 -1
- package/package.json +2 -2
- package/src/adapters/prisma/schema.prisma +3 -2
package/README.md
CHANGED
|
@@ -64,7 +64,7 @@ A session crews an agent ship with `ship.register`: the ship id and secret from
|
|
|
64
64
|
|
|
65
65
|
`ship.send` sends a message from the calling ship (a crew token, or the console session as `argo`); it needs the `messages:send` scope. It takes a selector (`{ "kind": "ship", "shipId": "shp_..." }`, `{ "kind": "ship", "name": "scout" }` or `{ "kind": "type", "type": "reviewer" }`), a payload (text of at most 64 KB in UTF-8, never parsed), optionally its content type (any well-formed media type, such as `text/plain` or `application/json; charset=utf-8`, passed on untouched; `text/plain` when left out), the sender's own idempotency key (1 to 256 characters) and, for a reply, `inReplyTo` (a message id of the fleet). A name is resolved to the ship's id when the message is sent; a retired or unknown ship, or a type without an active ship, is refused. It answers `{ "messageId": "msg_..." }` only once the message and its delivery are stored. A repeat of the key with the same request (selector as sent, payload, content type, `inReplyTo`; no content type is the same as `text/plain`) answers with the original id; the same key with another request is refused (`CONFLICT`). When the send commits, Postgres `NOTIFY` announces the delivery on the channel `aeolus_delivery_pending`.
|
|
66
66
|
|
|
67
|
-
`ship.receive` and `ship.ack` take the crew token only (the console session is refused) and need the `messages:receive` scope. `ship.receive` takes `{ "max": 1 to 10 }`, one when left out, and answers `{ "deliveries": [...] }`: the crew's own unacknowledged deliveries in flight first, then the oldest pending ones for its ship or its type. Each comes with its message and its sender (`deliveryId`, `messageId`, `senderShipId`, `senderName`, `senderType`, `recipient`, `payload`, `contentType`, `inReplyTo`, `sentAt`, `attempts`; the sender's name and type as they are at the receive, so a renamed sender goes by its new name) and is handed at once: in flight with the crew until acknowledged or the lease ends. The crew's next receive hands it again, counted as another attempt, so a lost reply loses nothing. The fifth attempt of a delivery never acknowledged is refused: it becomes undeliverable instead and is handed to no one. With nothing there, a receive waits about 25 seconds and answers with no deliveries; a delivery for its ship or type wakes it at once.
|
|
67
|
+
`ship.receive` and `ship.ack` take the crew token only (the console session is refused) and need the `messages:receive` scope. `ship.receive` takes `{ "max": 1 to 10 }`, one when left out, and answers `{ "deliveries": [...] }`: the crew's own unacknowledged deliveries in flight first, then the oldest pending ones for its ship or its type. Each comes with its message and its sender (`deliveryId`, `messageId`, `senderShipId`, `senderName`, `senderType`, `recipient`, `payload`, `contentType`, `inReplyTo`, `sentAt`, `attempts`; the sender's name and type as they are at the receive, so a renamed sender goes by its new name) and is handed at once: in flight with the crew until acknowledged or the lease ends. The crew's next receive hands it again, counted as another attempt, so a lost reply loses nothing. The fifth attempt of a delivery never acknowledged is refused: it becomes undeliverable instead and is handed to no one. With nothing there, a receive waits about 25 seconds and answers with no deliveries; a delivery for its ship or type wakes it at once. `ship.pushReceive` (decision 0040), for a pushed ship's trierarch or plugin watcher, takes the same input as `ship.receive` and answers the same deliveries, each with `state` (`received` or `handed`) and `handOverNumber`: a pending one becomes received, in flight with the crew, with no attempt counted; the crew's own received and handed ones come first again, unchanged. From the lease's first push receive until it ends, `ship.receive` answers no deliveries. `ship.handed` takes `{ "deliveryId": "dlv_...", "handOverNumber": n }` and answers `{ "state": "handed" | "acknowledged" | "undeliverable" }`: a number higher than the last counts one attempt, the same or a lower one changes nothing, and the fifth attempt is undeliverable; with `"isOnceMore": true` it hands an acknowledged delivery once more after its turn died, counting no attempt, only once. `ship.handled` and `ship.notHandled` take `{ "deliveryId": "dlv_..." }` and answer `{}`: the turn that took an acknowledged delivery ended by itself, or the turn it was handed once more to died too; again is OK, and a delivery not acknowledged, or not handed once more for `notHandled`, is refused (`CONFLICT`). `ship.ack` takes `{ "deliveryId": "dlv_..." }` and answers `{}`: only the ship holding the delivery in flight, received or handed, acknowledges it, and acknowledging it again is OK. `ship.pong` takes the crew token and the same scope, takes `{ "deliveryId": "dlv_..." }` of a ping the ship holds in flight and answers `{}`: it acknowledges the ping, with `answer: pong` in `DeliveryAcknowledged`, and marks the lease last seen, in one transaction; again is OK and changes nothing, and a delivery that is not a ping is refused (`CONFLICT`). `ship.report` takes the crew token and no scope: `{ "state": "working" | "blocked" | "idle", "note"?: "..." }` (one line, at most 200 characters, trimmed), answers `{}`. The report is kept with the crew's lease, so the ship's next crew starts with none, and `fleet.list` and `fleet.ship` show it (`report: { state, note, reportedAt }` or null); `ShipReported` is written only when the state or the note changes, so reporting the same again is a check-in. `ship.turn` takes the crew token and no scope: `{ "turn": "idle" | "busy", "at": "<ISO 8601>" }`, answers `{}`; the lease keeps the turn at that time with `TurnReported`, and the same turn again or a report older than the one held changes nothing. `ship.inbox` takes the crew token and the same scope, takes `{ "waitSeconds": 0 to 25 }`, none when left out, and answers `{ "waiting": n }`: how many deliveries the crew's next receive would hand it, its own in flight included. It claims nothing. While none waits it waits up to `waitSeconds`, woken like a receive. A mutation only so REST takes its body; it changes nothing.
|
|
68
68
|
|
|
69
69
|
A lease ends cleanly in two ways. The operator releases a crewed ship with `fleet.release` (`{ "shipId": "shp_..." }`, scope `fleet:manage`); `argo` is never released, and a ship awaiting crew gets a new starting prompt instead (`CONFLICT`). A crew ends its own lease with `ship.deregister`, which takes the crew token only and no scope. Both work in one transaction: the secret is invalidated, the lease and its crew token end, and the deliveries the lease held in flight return to pending, to the ship's inbox or its type's queue, their attempts kept, each announced on `aeolus_delivery_pending` as a send is, so a waiting receive of another ship of the type takes a returned type delivery at once. Both answer `{}`. The old crew token then fails on every call, refused as `LEASE_ENDED` with `This ship was released; this session no longer crews it.` (the `UNAUTHORIZED` code at `/trpc`, which knows only tRPC's codes), and the old secret fails on `register`; the next crew needs a new starting prompt. A receive of that crew still waiting hands out nothing: it answers empty at the end of its wait, or `LEASE_ENDED` if a delivery wakes it first.
|
|
70
70
|
|
|
@@ -25,8 +25,9 @@ export type Lease = Prisma.LeaseModel;
|
|
|
25
25
|
/**
|
|
26
26
|
* Model CrewRequest
|
|
27
27
|
* A standing request that a ship be kept crewed (decision 0029): at most one per
|
|
28
|
-
* ship, so the ship's id is its key. Its settings are
|
|
29
|
-
*
|
|
28
|
+
* ship, so the ship's id is its key. Its settings are crew settings of at most
|
|
29
|
+
* 16 KB, checked but never acted on; each request replaces them and moves their
|
|
30
|
+
* version by one.
|
|
30
31
|
*/
|
|
31
32
|
export type CrewRequest = Prisma.CrewRequestModel;
|
|
32
33
|
/**
|
|
@@ -44,8 +44,9 @@ export type Lease = Prisma.LeaseModel;
|
|
|
44
44
|
/**
|
|
45
45
|
* Model CrewRequest
|
|
46
46
|
* A standing request that a ship be kept crewed (decision 0029): at most one per
|
|
47
|
-
* ship, so the ship's id is its key. Its settings are
|
|
48
|
-
*
|
|
47
|
+
* ship, so the ship's id is its key. Its settings are crew settings of at most
|
|
48
|
+
* 16 KB, checked but never acted on; each request replaces them and moves their
|
|
49
|
+
* version by one.
|
|
49
50
|
*/
|
|
50
51
|
export type CrewRequest = Prisma.CrewRequestModel;
|
|
51
52
|
/**
|
|
@@ -17,7 +17,7 @@ const config = {
|
|
|
17
17
|
"clientVersion": "7.10.0",
|
|
18
18
|
"engineVersion": "0edf323efd1d98336f3f0a68684b56f689b900d3",
|
|
19
19
|
"activeProvider": "postgresql",
|
|
20
|
-
"inlineSchema": "// Aeolus core tables (docs/architecture.md, \"Core tables\").\n//\n// Prefixed ids, fleet_id on every table except fleets, and the columns and key\n// constraints named in the architecture. Columns a later slice owns (a message's\n// sender and selector, for one) arrive with that slice.\n//\n// References to rows of the same fleet carry fleet_id in the foreign key, so a\n// row can never point at another fleet's ship, lease, message or delivery.\n//\n// Timestamps have no database default: the application's Clock port sets every\n// one of them, so tests control time.\n//\n// Check constraints and the append-only rule for events live in the migration\n// SQL, because Prisma does not model them.\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"./generated\"\n moduleFormat = \"esm\"\n importFileExtension = \"js\"\n runtime = \"nodejs\"\n previewFeatures = [\"partialIndexes\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\n/// The tenant: one operator's ships, messages and history. Ids start with flt_.\nmodel Fleet {\n id String @id\n name String\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n /// The sequence number of the fleet's last committed event. A unit of work\n /// takes its numbers from it as its last statements, so the row lock orders\n /// the numbers as the transactions commit.\n lastEventSeq BigInt @default(0) @map(\"last_event_seq\")\n /// Whether the fleet sets its own ship limit (else it follows the installation\n /// default), and that limit: null for no limit.\n shipLimitSet Boolean @default(false) @map(\"ship_limit_set\")\n shipLimit Int? @map(\"ship_limit\")\n /// The same for its daily message limit.\n dailyMessageLimitSet Boolean @default(false) @map(\"daily_message_limit_set\")\n dailyMessageLimit Int? @map(\"daily_message_limit\")\n\n ships Ship[]\n leases Lease[]\n crewRequests CrewRequest[]\n crewRequestGiveBacks CrewRequestGiveBack[]\n clearRequests WorktreeClearRequest[]\n labels Label[]\n labelValues LabelValue[]\n shipLabels ShipLabel[]\n networkSettings NetworkSettings?\n declaredNetworkRules DeclaredNetworkRules[]\n reachRefusals ReachRefusal[]\n credentials Credential[]\n messages Message[]\n deliveries Delivery[]\n overdueDeliveries OverdueDelivery[]\n events Event[]\n consoleSessions ConsoleSession[]\n signInTickets SignInTicket[]\n noticeDismissals NoticeDismissal[]\n guideProgress GuideProgress[]\n operator Operator?\n\n @@map(\"fleets\")\n}\n\n/// `argo` is the one operator ship of a fleet; every other ship is an agent.\nenum ShipKind {\n operator\n agent\n viewer\n\n @@map(\"ship_kind\")\n}\n\n/// A durable, addressable identity with an inbox. Ids start with shp_.\n/// Scopes are set when the ship is created and checked before every call.\nmodel Ship {\n id String @id\n fleetId String @map(\"fleet_id\")\n name String\n type String\n kind ShipKind\n scopes String[]\n note String?\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n retiredAt DateTime? @map(\"retired_at\") @db.Timestamptz(3)\n /// The ship that commissioned it, its idempotency key and the request's hash; null for argo.\n commissionedBy String? @map(\"commissioned_by\")\n commissionKey String? @map(\"commission_key\")\n commissionRequestHash String? @map(\"commission_request_hash\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n leases Lease[]\n credentials Credential[]\n sentMessages Message[] @relation(\"MessageSender\")\n addressedMessages Message[] @relation(\"MessageSelectorShip\")\n deliveries Delivery[] @relation(\"DeliveryRecipientShip\")\n claimedDeliveries Delivery[] @relation(\"DeliveryClaimedByShip\")\n overdueDeliveries OverdueDelivery[]\n consoleSessions ConsoleSession[]\n actorOfEvents Event[] @relation(\"EventActorShip\")\n events Event[] @relation(\"EventShip\")\n crewRequest CrewRequest? @relation(\"CrewRequestShip\")\n assignedCrews CrewRequest[] @relation(\"CrewRequestAssignee\")\n givenBackCrews CrewRequestGiveBack[] @relation(\"CrewRequestGiveBackTrierarch\")\n clearRequests WorktreeClearRequest[] @relation(\"WorktreeClearRequestTrierarch\")\n clearedWorktrees WorktreeClearRequest[] @relation(\"WorktreeClearRequestShip\")\n requestedClears WorktreeClearRequest[] @relation(\"WorktreeClearRequestRequester\")\n ownedLabels Label[] @relation(\"LabelOwner\")\n labels ShipLabel[] @relation(\"ShipLabelShip\")\n declaredNetworkRules DeclaredNetworkRules[]\n\n @@unique([fleetId, id])\n /// An idempotency key is used once per commissioning ship.\n @@unique([fleetId, commissionedBy, commissionKey])\n /// A name is unique among ships that are not retired, and reusable after retirement.\n @@unique([fleetId, name], map: \"ships_fleet_id_name_active_key\", where: { retiredAt: null })\n /// Exactly one operator ship per fleet.\n @@unique([fleetId], map: \"ships_fleet_id_operator_key\", where: raw(\"kind = 'operator'::ship_kind\"))\n /// At most one viewer ship per fleet (decision 0022).\n @@unique([fleetId], map: \"ships_fleet_id_viewer_key\", where: raw(\"kind = 'viewer'::ship_kind\"))\n @@map(\"ships\")\n}\n\n/// Where the session crewing a ship runs. OTHER carries a description; the other kinds none.\nenum ReportState {\n working\n blocked\n idle\n\n @@map(\"report_state\")\n}\n\n/// A pushed session's turn, as its hooks report it (decision 0040).\nenum TurnState {\n idle\n busy\n\n @@map(\"turn_state\")\n}\n\nenum LocationKind {\n DEVICE\n CLOUD\n SERVER\n OTHER\n\n @@map(\"location_kind\")\n}\n\n/// The exclusive right of one session to crew a ship, and where that session runs.\n/// Ids start with lse_.\n/// The hash of the crew token register gave the session, unique across all fleets:\n/// finding a ship by its crew token is a lookup not scoped by fleet (ADR 0007). A\n/// console session's lease on argo has none; the console session holds its token.\nmodel Lease {\n id String @id\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n location LocationKind\n locationDescription String? @map(\"location_description\")\n /// The harness the session stated when it claimed the ship; none for argo's console lease and for leases from before harnesses were stated.\n harness String?\n crewTokenHash String? @unique @map(\"crew_token_hash\")\n startedAt DateTime @map(\"started_at\") @db.Timestamptz(3)\n /// The last call by its crew: observation only, nothing acts on it (ADR 0016).\n lastSeenAt DateTime? @map(\"last_seen_at\") @db.Timestamptz(3)\n /// The crew's last report: plain data, nothing acts on it. Null until it reports.\n reportState ReportState? @map(\"report_state\")\n reportNote String? @map(\"report_note\")\n reportedAt DateTime? @map(\"reported_at\") @db.Timestamptz(3)\n /// The report's details: one JSON object stored without meaning, at most 16 KB (decision 0028). Null when there are none.\n reportDetails Json? @map(\"report_details\")\n /// Moves by one each time the details change; 0 before any.\n reportDetailsVersion Int @default(0) @map(\"report_details_version\")\n /// From the lease's first push receive: the computer side takes its deliveries, and the agent's plain receive answers nothing (decision 0040).\n pushedAt DateTime? @map(\"pushed_at\") @db.Timestamptz(3)\n /// The session's turn as its hooks last reported it, and when they saw it change; null until they report (decision 0040).\n turn TurnState?\n turnAt DateTime? @map(\"turn_at\") @db.Timestamptz(3)\n endedAt DateTime? @map(\"ended_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])\n consoleSessions ConsoleSession[]\n claimedDeliveries Delivery[]\n overdueDeliveries OverdueDelivery[]\n\n @@unique([fleetId, id])\n /// At most one open lease per ship.\n @@unique([shipId], map: \"leases_ship_id_open_key\", where: { endedAt: null })\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, shipId])\n @@map(\"leases\")\n}\n\n/// How the assigned trierarch says its crew of a ship stands (decision 0029).\nenum CrewStatus {\n crewing\n running\n restarting\n crashed\n releasing\n\n @@map(\"crew_status\")\n}\n\n/// A standing request that a ship be kept crewed (decision 0029): at most one per\n/// ship, so the ship's id is its key. Its settings are stored without meaning, at\n/// most 16 KB; each request replaces them and moves their version by one.\nmodel CrewRequest {\n shipId String @id @map(\"ship_id\")\n fleetId String @map(\"fleet_id\")\n settings Json\n settingsVersion Int @map(\"settings_version\")\n requestedAt DateTime @map(\"requested_at\") @db.Timestamptz(3)\n /// The trierarch ship it is assigned to; null while unassigned.\n assignedTo String? @map(\"assigned_to_ship_id\")\n /// How its trierarch says the crew stands; null until it says.\n status CrewStatus?\n /// Why no trierarch can take it, written by the assigner while unassigned; null when none.\n reason String?\n /// How many times its trierarch restarted the session within its restart window, with the status: 0 on its first start.\n attempt Int @default(0)\n /// When the session its trierarch runs now started, with the status; null while none runs.\n sessionStartedAt DateTime? @map(\"session_started_at\") @db.Timestamptz(3)\n /// Whether its crew is final: set by its trierarch's first running, restarting or crashed, kept whatever status follows, cleared on every new settings version.\n isFinal Boolean @default(false) @map(\"is_final\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(\"CrewRequestShip\", fields: [fleetId, shipId], references: [fleetId, id])\n assignee Ship? @relation(\"CrewRequestAssignee\", fields: [fleetId, assignedTo], references: [fleetId, id])\n givenBack CrewRequestGiveBack[]\n\n @@unique([fleetId, shipId])\n /// A trierarch reads the requests assigned to it.\n @@index([fleetId, assignedTo])\n @@map(\"crew_requests\")\n}\n\n/// A trierarch that gave a crew request back before its crew was final (#382): one per trierarch, until the next settings version.\nmodel CrewRequestGiveBack {\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n trierarchShipId String @map(\"trierarch_ship_id\")\n settingsVersion Int @map(\"settings_version\")\n reason String\n givenBackAt DateTime @map(\"given_back_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n crewRequest CrewRequest @relation(fields: [fleetId, shipId], references: [fleetId, shipId])\n trierarch Ship @relation(\"CrewRequestGiveBackTrierarch\", fields: [fleetId, trierarchShipId], references: [fleetId, id])\n\n @@id([fleetId, shipId, trierarchShipId])\n @@index([fleetId, trierarchShipId])\n @@map(\"crew_request_give_backs\")\n}\n\n/// A pending request that a trierarch clear a worktree it kept (decision 0032),\n/// named by the ship it belonged to and its repository: never a path.\nmodel WorktreeClearRequest {\n fleetId String @map(\"fleet_id\")\n trierarchShipId String @map(\"trierarch_ship_id\")\n shipId String @map(\"ship_id\")\n repository String\n requestedBy String @map(\"requested_by_ship_id\")\n requestedAt DateTime @map(\"requested_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n trierarch Ship @relation(\"WorktreeClearRequestTrierarch\", fields: [fleetId, trierarchShipId], references: [fleetId, id])\n ship Ship @relation(\"WorktreeClearRequestShip\", fields: [fleetId, shipId], references: [fleetId, id])\n requester Ship @relation(\"WorktreeClearRequestRequester\", fields: [fleetId, requestedBy], references: [fleetId, id])\n\n @@id([fleetId, trierarchShipId, shipId, repository])\n @@index([fleetId, shipId])\n @@index([fleetId, requestedBy])\n @@map(\"worktree_clear_requests\")\n}\n\n/// A label (decision 0031): a key unique in its fleet with its defined values,\n/// owned by the ship that defined it. Ids start with lbl_. A retired or deleted\n/// label is deleted with its values; its events stay.\nmodel Label {\n id String @id\n fleetId String @map(\"fleet_id\")\n key String\n ownerShipId String @map(\"owner_ship_id\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n owner Ship @relation(\"LabelOwner\", fields: [fleetId, ownerShipId], references: [fleetId, id])\n values LabelValue[]\n carriers ShipLabel[]\n\n @@unique([fleetId, id])\n @@unique([fleetId, key])\n /// A retire finds the labels its ship owns.\n @@index([fleetId, ownerShipId])\n @@map(\"labels\")\n}\n\n/// One value of a label, each once, at most 50 a label. Ids start with lbv_; a\n/// value keeps its id while its label has it.\nmodel LabelValue {\n id String @id\n fleetId String @map(\"fleet_id\")\n labelId String @map(\"label_id\")\n value String\n /// Its place in the order the owner gave the values.\n position Int\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n label Label @relation(fields: [fleetId, labelId], references: [fleetId, id])\n carriers ShipLabel[]\n\n @@unique([fleetId, id])\n @@unique([fleetId, labelId, value])\n @@map(\"label_values\")\n}\n\n/// A label value a ship carries: a ship holds a set of values, so the ship and\n/// the value are its key.\nmodel ShipLabel {\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n labelId String @map(\"label_id\")\n valueId String @map(\"value_id\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(\"ShipLabelShip\", fields: [fleetId, shipId], references: [fleetId, id])\n label Label @relation(fields: [fleetId, labelId], references: [fleetId, id])\n value LabelValue @relation(fields: [fleetId, valueId], references: [fleetId, id])\n\n @@id([fleetId, shipId, valueId])\n /// A change of values, a delete and a retire find every ship that carries a label.\n @@index([fleetId, labelId])\n /// Removing a value checks that no ship carries it.\n @@index([fleetId, valueId])\n @@map(\"ship_labels\")\n}\n\n/// A fleet's network settings (decision 0034), once it first set rules: its\n/// rules as JSON, none (null) for all-to-all, and their version. A send and a\n/// set take turns on an advisory lock on them (network.ts).\nmodel NetworkSettings {\n fleetId String @id @map(\"fleet_id\")\n rules Json?\n version Int\n /// The fleet's networking plugin (decision 0035): its ship and what it\n /// declared, all three set or none.\n pluginShipId String? @map(\"plugin_ship_id\")\n pluginWhileUnavailable String? @map(\"plugin_while_unavailable\")\n pluginNotRespondingAfterSeconds Int? @map(\"plugin_not_responding_after_seconds\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n\n @@map(\"network_settings\")\n}\n\n/// The network rules a ship declared on the labels it owns (decision 0037),\n/// its whole list as JSON, at most 20. No row while it declares none; a retire\n/// removes its row.\nmodel DeclaredNetworkRules {\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n rules Json\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])\n\n @@id([fleetId, shipId])\n @@map(\"declared_network_rules\")\n}\n\n/// A send the network rules refused (decision 0034), recorded in the\n/// transaction that refused it. Ids start with rfs_. Sender and recipient are\n/// as they were then: ids, names and the label values they carried, as JSON,\n/// so a later rename or relabelling keeps the record true. Only argo reads it.\nmodel ReachRefusal {\n id String @id\n fleetId String @map(\"fleet_id\")\n at DateTime @db.Timestamptz(3)\n sender Json\n recipient Json\n settingsVersion Int @map(\"settings_version\")\n /// What the networking plugin declared, when it refused while the plugin\n /// was not responding (decision 0035): block-all or keep-latest.\n whilePluginUnavailable String? @map(\"while_plugin_unavailable\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n\n /// argo reads the latest first.\n @@index([fleetId, at])\n @@map(\"reach_refusals\")\n}\n\n/// A ship secret, stored only as its hash. Ids start with crd_.\n/// The hash is unique across all fleets: finding a ship by its secret is one of the\n/// lookups not scoped by fleet (ADR 0007).\nmodel Credential {\n id String @id\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n secretHash String @unique @map(\"secret_hash\")\n issuedAt DateTime @map(\"issued_at\") @db.Timestamptz(3)\n claimedAt DateTime? @map(\"claimed_at\") @db.Timestamptz(3)\n invalidatedAt DateTime? @map(\"invalidated_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])\n\n /// At most one valid secret per ship.\n @@unique([shipId], map: \"credentials_ship_id_valid_key\", where: { invalidatedAt: null })\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, shipId])\n @@map(\"credentials\")\n}\n\n/// Who a message is for: one ship or any ship of a type. Group and fleet come later.\nenum SelectorKind {\n ship\n type\n\n @@map(\"selector_kind\")\n}\n\n/// An immutable envelope plus an opaque payload of at most 64 KB, sent by one ship.\n/// Ids start with msg_. The selector is stored as resolved at send time: a ship's\n/// id, never its name, or a type. It can name the message it replies to, and a\n/// resend names the message it resends (nothing sets that yet).\nmodel Message {\n id String @id\n fleetId String @map(\"fleet_id\")\n senderShipId String @map(\"sender_ship_id\")\n selectorKind SelectorKind @map(\"selector_kind\")\n selectorShipId String? @map(\"selector_ship_id\")\n selectorType String? @map(\"selector_type\")\n payload String\n contentType String @map(\"content_type\")\n /// The model the sender's session stated; none from argo and on messages from before models were stated.\n model String?\n idempotencyKey String @map(\"idempotency_key\")\n requestHash String @map(\"request_hash\")\n inReplyToMessageId String? @map(\"in_reply_to_message_id\")\n resendOfMessageId String? @map(\"resend_of_message_id\")\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n senderShip Ship @relation(\"MessageSender\", fields: [fleetId, senderShipId], references: [fleetId, id], onDelete: Restrict)\n selectorShip Ship? @relation(\"MessageSelectorShip\", fields: [fleetId, selectorShipId], references: [fleetId, id], onDelete: Restrict)\n inReplyTo Message? @relation(\"MessageInReplyTo\", fields: [fleetId, inReplyToMessageId], references: [fleetId, id], onDelete: Restrict)\n replies Message[] @relation(\"MessageInReplyTo\")\n resendOf Message? @relation(\"MessageResendOf\", fields: [fleetId, resendOfMessageId], references: [fleetId, id], onDelete: Restrict)\n resends Message[] @relation(\"MessageResendOf\")\n deliveries Delivery[]\n events Event[]\n\n @@unique([fleetId, id])\n /// A sender uses an idempotency key once: a repeat of the same request, told by its\n /// request hash, returns the original message; another request with the key is refused.\n @@unique([fleetId, senderShipId, idempotencyKey])\n /// A ship's current model is its newest message with a model.\n @@index([fleetId, senderShipId, createdAt])\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, selectorShipId])\n @@index([fleetId, inReplyToMessageId])\n @@index([fleetId, resendOfMessageId])\n @@map(\"messages\")\n}\n\nenum DeliveryState {\n pending\n received\n handed\n acknowledged\n handled\n notHandled\n undeliverable\n dismissed\n abandoned\n\n @@map(\"delivery_state\")\n}\n\n/// One message to one resolved recipient: a ship or a type. Ids start with dlv_.\n/// A receive hands it to the ship and the lease of the crew receiving, or a push\n/// receive takes it for them: set while it is received or handed, kept once\n/// acknowledged, none while it is pending. Attempts count the hand-overs; the fifth\n/// makes it undeliverable. The hand-over number is the last one the crew reported\n/// with handed (decision 0040), none while pending.\n/// The read date is set when the operator opens a message to argo.\n/// For a type under network rules, the ships of the type its sender may reach,\n/// fixed at send time: only they claim it (decision 0034). Empty: any ship of\n/// the type, as a send no ship of the type may take is refused.\nmodel Delivery {\n id String @id\n fleetId String @map(\"fleet_id\")\n messageId String @map(\"message_id\")\n recipientShipId String? @map(\"recipient_ship_id\")\n recipientType String? @map(\"recipient_type\")\n state DeliveryState @default(pending)\n claimedByShipId String? @map(\"claimed_by_ship_id\")\n claimedByLeaseId String? @map(\"claimed_by_lease_id\")\n attempts Int @default(0)\n handOverNumber Int? @map(\"hand_over_number\")\n /// When its crew handed it once more after the turn that took it died; only once (decision 0040).\n handedOnceMoreAt DateTime? @map(\"handed_once_more_at\") @db.Timestamptz(3)\n reachableShipIds String[] @default([]) @map(\"reachable_ship_ids\")\n readAt DateTime? @map(\"read_at\") @db.Timestamptz(3)\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n message Message @relation(fields: [fleetId, messageId], references: [fleetId, id])\n recipientShip Ship? @relation(\"DeliveryRecipientShip\", fields: [fleetId, recipientShipId], references: [fleetId, id], onDelete: Restrict)\n claimedByShip Ship? @relation(\"DeliveryClaimedByShip\", fields: [fleetId, claimedByShipId], references: [fleetId, id], onDelete: Restrict)\n claimedByLease Lease? @relation(fields: [fleetId, claimedByLeaseId], references: [fleetId, id], onDelete: Restrict)\n events Event[]\n overdue OverdueDelivery[]\n\n @@unique([fleetId, id])\n /// One row per recipient.\n @@unique([messageId, recipientShipId])\n @@unique([messageId, recipientType])\n @@index([fleetId, recipientShipId, state])\n @@index([fleetId, recipientType, state])\n /// The installation's health figures scan a fleet's open deliveries by state (decision 0041). Partial, so a foreign key check never picks it.\n @@index([fleetId, state, createdAt], map: \"deliveries_open_fleet_id_state_created_at_idx\", where: raw(\"(state = ANY (ARRAY['pending'::delivery_state, 'received'::delivery_state, 'handed'::delivery_state, 'undeliverable'::delivery_state, 'notHandled'::delivery_state]))\"))\n /// A crew's own deliveries in flight, which its next receive returns first.\n @@index([fleetId, claimedByLeaseId, state])\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, messageId])\n @@index([fleetId, claimedByShipId])\n @@map(\"deliveries\")\n}\n\n/// Which of the 10 and 60 minute clocks ran out (decision 0040).\nenum OverdueClock {\n notConfirmed\n idle\n busy\n\n @@map(\"overdue_clock\")\n}\n\n/// A delivery argo was told is overdue on a pushed lease: its clock ran out\n/// while it waited in the state kept here. Once per lease and delivery, so a\n/// pass after a restart, or a second pass at once, tells nothing again.\nmodel OverdueDelivery {\n fleetId String @map(\"fleet_id\")\n leaseId String @map(\"lease_id\")\n deliveryId String @map(\"delivery_id\")\n shipId String @map(\"ship_id\")\n state DeliveryState\n clock OverdueClock\n minutes Int\n toldAt DateTime @map(\"told_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n lease Lease @relation(fields: [fleetId, leaseId], references: [fleetId, id], onDelete: Restrict)\n delivery Delivery @relation(fields: [fleetId, deliveryId], references: [fleetId, id], onDelete: Restrict)\n ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id], onDelete: Restrict)\n\n @@id([fleetId, leaseId, deliveryId])\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, deliveryId])\n @@index([fleetId, shipId])\n @@map(\"overdue_deliveries\")\n}\n\n/// Append-only log of every state change: never updated or deleted. Ids start with evt_.\n/// Records its type and time, who caused it (a ship, or the system when\n/// actor_ship_id is null), the ship, message and delivery it concerns, and a few\n/// details as a flat JSON object.\nmodel Event {\n id String @id\n fleetId String @map(\"fleet_id\")\n type String\n occurredAt DateTime @map(\"occurred_at\") @db.Timestamptz(3)\n actorShipId String? @map(\"actor_ship_id\")\n shipId String? @map(\"ship_id\")\n messageId String? @map(\"message_id\")\n deliveryId String? @map(\"delivery_id\")\n details Json\n /// The event's place in its fleet's stream, in commit order and without\n /// gaps: where a live subscription resumes. The id is not, since ids are\n /// taken before their transaction commits.\n seq BigInt\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n actorShip Ship? @relation(\"EventActorShip\", fields: [fleetId, actorShipId], references: [fleetId, id], onDelete: Restrict)\n ship Ship? @relation(\"EventShip\", fields: [fleetId, shipId], references: [fleetId, id], onDelete: Restrict)\n message Message? @relation(fields: [fleetId, messageId], references: [fleetId, id], onDelete: Restrict)\n delivery Delivery? @relation(fields: [fleetId, deliveryId], references: [fleetId, id], onDelete: Restrict)\n\n @@unique([fleetId, seq])\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, actorShipId])\n @@index([fleetId, shipId])\n @@index([fleetId, messageId])\n @@index([fleetId, deliveryId])\n @@map(\"events\")\n}\n\n/// Why a console session ended: a sign-in elsewhere took argo over, the\n/// operator signed out, or the password was reset.\nenum ConsoleSessionEndReason {\n takenOver\n signedOut\n passwordReset\n\n @@map(\"console_session_end_reason\")\n}\n\n/// The operator's login: email and Argon2id password hash, none for an operator a\n/// hosting installation created. Ids start with opr_.\n/// The email is unique across all fleets: finding the account by email is the one\n/// lookup not scoped by fleet (ADR 0007). One account per fleet in v1.\nmodel Operator {\n id String @id\n fleetId String @unique @map(\"fleet_id\")\n email String @unique\n passwordHash String? @map(\"password_hash\")\n /// How the console looks for this operator; system until they choose.\n theme Theme @default(system)\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n\n @@map(\"operators\")\n}\n\nenum Theme {\n light\n dark\n system\n\n @@map(\"theme\")\n}\n\n/// The operator crewing argo through the web console. Ids start with ses_.\n/// Only the hash of the session token is stored, unique across all fleets: finding\n/// a session by its token is the one lookup not scoped by fleet (ADR 0007).\n/// Valid until expires_at, which moves to idle_limit_seconds after each use\n/// (30 days for the operator, 2 hours for a viewer), never past ends_by.\nmodel ConsoleSession {\n id String @id\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n /// The lease on argo it holds; null for a viewer session (decision 0022).\n leaseId String? @map(\"lease_id\")\n idleLimitSeconds Int @map(\"idle_limit_seconds\")\n /// No use renews it past this; null when only idleness ends it.\n endsBy DateTime? @map(\"ends_by\") @db.Timestamptz(3)\n /// The device it signed in from, as the browser told: \"Mac · Chrome\".\n device String @default(\"Unknown device\")\n tokenHash String @unique @map(\"token_hash\")\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n lastUsedAt DateTime @map(\"last_used_at\") @db.Timestamptz(3)\n expiresAt DateTime @map(\"expires_at\") @db.Timestamptz(3)\n endedAt DateTime? @map(\"ended_at\") @db.Timestamptz(3)\n /// Why the session ended; null while it has not.\n endReason ConsoleSessionEndReason? @map(\"end_reason\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])\n lease Lease? @relation(fields: [fleetId, leaseId], references: [fleetId, id])\n\n noticeDismissals NoticeDismissal[]\n guideProgress GuideProgress[]\n\n /// At most one live session holding argo's lease per fleet: signing in ends the previous one. Viewer sessions run beside it.\n @@unique([fleetId], map: \"console_sessions_fleet_id_open_key\", where: raw(\"ended_at IS NULL AND lease_id IS NOT NULL\"))\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, shipId])\n @@index([fleetId, leaseId])\n @@map(\"console_sessions\")\n}\n\n/// A one-time sign-in ticket for the fleet's operator, issued by a hosting\n/// installation and redeemed in the console (decision 0020). Only its hash is\n/// stored, unique across all fleets: redeeming finds it before the fleet is known.\nmodel SignInTicket {\n tokenHash String @id @map(\"token_hash\")\n fleetId String @map(\"fleet_id\")\n /// Whom it signs in as: the operator or a viewer (decision 0022).\n signInAs SignInAs @map(\"sign_in_as\")\n issuedAt DateTime @map(\"issued_at\") @db.Timestamptz(3)\n expiresAt DateTime @map(\"expires_at\") @db.Timestamptz(3)\n /// When it signed in; null while unused.\n usedAt DateTime? @map(\"used_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n\n @@index([fleetId])\n @@map(\"sign_in_tickets\")\n}\n\nenum SignInAs {\n operator\n viewer\n\n @@map(\"sign_in_as\")\n}\n\n/// The installation's settings (decision 0020): the default ship and daily message\n/// limits for fleets and the cap on fleets, each null for no limit. One row at most,\n/// and none until the installation sets them. Belongs to no fleet.\nmodel InstallationSettings {\n id Int @id @default(1)\n defaultShipLimit Int? @map(\"default_ship_limit\")\n defaultDailyMessageLimit Int? @map(\"default_daily_message_limit\")\n fleetCap Int? @map(\"fleet_cap\")\n\n @@map(\"installation_settings\")\n}\n\nenum InstallationRequestKind {\n createFleet @map(\"create_fleet\")\n deleteFleet @map(\"delete_fleet\")\n\n @@map(\"installation_request_kind\")\n}\n\n/// A create or delete of a fleet the installation carried out, under its caller's\n/// request id, so a replay answers the same (decision 0020). It belongs to the\n/// installation, not to a fleet, and keeps the request as a hash only. A create's\n/// row names the fleet and argo it answers with and is deleted with that fleet; a\n/// delete's row names nothing of the fleet.\nmodel InstallationRequest {\n requestId String @id @map(\"request_id\")\n kind InstallationRequestKind\n requestHash String @map(\"request_hash\")\n /// The created fleet and its argo; null for a delete.\n fleetId String? @map(\"fleet_id\")\n operatorShipId String? @map(\"operator_ship_id\")\n at DateTime @db.Timestamptz(3)\n\n @@index([fleetId])\n @@map(\"installation_requests\")\n}\n\n/// A console notice the installation sets (decision 0023), shown above every\n/// page to the sessions of its audience. It belongs to no fleet.\nmodel Notice {\n id String @id\n /// Its place in the installation's order.\n position Int\n audience NoticeAudience\n text String\n /// Its links: label, and url, isSignOut or both.\n links Json @default(\"[]\")\n isDismissible Boolean @default(false) @map(\"is_dismissible\")\n\n @@map(\"notices\")\n}\n\nenum NoticeAudience {\n everyone\n operators\n viewers\n\n @@map(\"notice_audience\")\n}\n\n/// A notice a console session dismissed, for itself (decision 0023). It goes\n/// with its session and its fleet.\nmodel NoticeDismissal {\n fleetId String @map(\"fleet_id\")\n consoleSessionId String @map(\"console_session_id\")\n noticeId String @map(\"notice_id\")\n dismissedAt DateTime @map(\"dismissed_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n consoleSession ConsoleSession @relation(fields: [consoleSessionId], references: [id])\n\n @@id([consoleSessionId, noticeId])\n @@index([fleetId])\n @@map(\"notice_dismissals\")\n}\n\n/// The installation's guide (decision 0024): steps for the console sessions of\n/// one audience. At most one row; it belongs to no fleet.\nmodel Guide {\n /// Always \"guide\": the installation has one guide or none.\n id String @id\n audience NoticeAudience\n /// Its steps, in order: path, anchor (optional), title and text.\n steps Json\n\n @@map(\"guides\")\n}\n\nenum GuideProgressState {\n open\n skipped\n finished\n\n @@map(\"guide_progress_state\")\n}\n\n/// Where a console session is in the guide, for itself (decision 0024). It\n/// goes with its session and its fleet.\nmodel GuideProgress {\n fleetId String @map(\"fleet_id\")\n consoleSessionId String @id @map(\"console_session_id\")\n step Int\n state GuideProgressState\n recordedAt DateTime @map(\"recorded_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n consoleSession ConsoleSession @relation(fields: [consoleSessionId], references: [id])\n\n @@index([fleetId])\n @@map(\"guide_progress\")\n}\n",
|
|
20
|
+
"inlineSchema": "// Aeolus core tables (docs/architecture.md, \"Core tables\").\n//\n// Prefixed ids, fleet_id on every table except fleets, and the columns and key\n// constraints named in the architecture. Columns a later slice owns (a message's\n// sender and selector, for one) arrive with that slice.\n//\n// References to rows of the same fleet carry fleet_id in the foreign key, so a\n// row can never point at another fleet's ship, lease, message or delivery.\n//\n// Timestamps have no database default: the application's Clock port sets every\n// one of them, so tests control time.\n//\n// Check constraints and the append-only rule for events live in the migration\n// SQL, because Prisma does not model them.\n\ngenerator client {\n provider = \"prisma-client\"\n output = \"./generated\"\n moduleFormat = \"esm\"\n importFileExtension = \"js\"\n runtime = \"nodejs\"\n previewFeatures = [\"partialIndexes\"]\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\n/// The tenant: one operator's ships, messages and history. Ids start with flt_.\nmodel Fleet {\n id String @id\n name String\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n /// The sequence number of the fleet's last committed event. A unit of work\n /// takes its numbers from it as its last statements, so the row lock orders\n /// the numbers as the transactions commit.\n lastEventSeq BigInt @default(0) @map(\"last_event_seq\")\n /// Whether the fleet sets its own ship limit (else it follows the installation\n /// default), and that limit: null for no limit.\n shipLimitSet Boolean @default(false) @map(\"ship_limit_set\")\n shipLimit Int? @map(\"ship_limit\")\n /// The same for its daily message limit.\n dailyMessageLimitSet Boolean @default(false) @map(\"daily_message_limit_set\")\n dailyMessageLimit Int? @map(\"daily_message_limit\")\n\n ships Ship[]\n leases Lease[]\n crewRequests CrewRequest[]\n crewRequestGiveBacks CrewRequestGiveBack[]\n clearRequests WorktreeClearRequest[]\n labels Label[]\n labelValues LabelValue[]\n shipLabels ShipLabel[]\n networkSettings NetworkSettings?\n declaredNetworkRules DeclaredNetworkRules[]\n reachRefusals ReachRefusal[]\n credentials Credential[]\n messages Message[]\n deliveries Delivery[]\n overdueDeliveries OverdueDelivery[]\n events Event[]\n consoleSessions ConsoleSession[]\n signInTickets SignInTicket[]\n noticeDismissals NoticeDismissal[]\n guideProgress GuideProgress[]\n operator Operator?\n\n @@map(\"fleets\")\n}\n\n/// `argo` is the one operator ship of a fleet; every other ship is an agent.\nenum ShipKind {\n operator\n agent\n viewer\n\n @@map(\"ship_kind\")\n}\n\n/// A durable, addressable identity with an inbox. Ids start with shp_.\n/// Scopes are set when the ship is created and checked before every call.\nmodel Ship {\n id String @id\n fleetId String @map(\"fleet_id\")\n name String\n type String\n kind ShipKind\n scopes String[]\n note String?\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n retiredAt DateTime? @map(\"retired_at\") @db.Timestamptz(3)\n /// The ship that commissioned it, its idempotency key and the request's hash; null for argo.\n commissionedBy String? @map(\"commissioned_by\")\n commissionKey String? @map(\"commission_key\")\n commissionRequestHash String? @map(\"commission_request_hash\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n leases Lease[]\n credentials Credential[]\n sentMessages Message[] @relation(\"MessageSender\")\n addressedMessages Message[] @relation(\"MessageSelectorShip\")\n deliveries Delivery[] @relation(\"DeliveryRecipientShip\")\n claimedDeliveries Delivery[] @relation(\"DeliveryClaimedByShip\")\n overdueDeliveries OverdueDelivery[]\n consoleSessions ConsoleSession[]\n actorOfEvents Event[] @relation(\"EventActorShip\")\n events Event[] @relation(\"EventShip\")\n crewRequest CrewRequest? @relation(\"CrewRequestShip\")\n assignedCrews CrewRequest[] @relation(\"CrewRequestAssignee\")\n givenBackCrews CrewRequestGiveBack[] @relation(\"CrewRequestGiveBackTrierarch\")\n clearRequests WorktreeClearRequest[] @relation(\"WorktreeClearRequestTrierarch\")\n clearedWorktrees WorktreeClearRequest[] @relation(\"WorktreeClearRequestShip\")\n requestedClears WorktreeClearRequest[] @relation(\"WorktreeClearRequestRequester\")\n ownedLabels Label[] @relation(\"LabelOwner\")\n labels ShipLabel[] @relation(\"ShipLabelShip\")\n declaredNetworkRules DeclaredNetworkRules[]\n\n @@unique([fleetId, id])\n /// An idempotency key is used once per commissioning ship.\n @@unique([fleetId, commissionedBy, commissionKey])\n /// A name is unique among ships that are not retired, and reusable after retirement.\n @@unique([fleetId, name], map: \"ships_fleet_id_name_active_key\", where: { retiredAt: null })\n /// Exactly one operator ship per fleet.\n @@unique([fleetId], map: \"ships_fleet_id_operator_key\", where: raw(\"kind = 'operator'::ship_kind\"))\n /// At most one viewer ship per fleet (decision 0022).\n @@unique([fleetId], map: \"ships_fleet_id_viewer_key\", where: raw(\"kind = 'viewer'::ship_kind\"))\n @@map(\"ships\")\n}\n\n/// Where the session crewing a ship runs. OTHER carries a description; the other kinds none.\nenum ReportState {\n working\n blocked\n idle\n\n @@map(\"report_state\")\n}\n\n/// A pushed session's turn, as its hooks report it (decision 0040).\nenum TurnState {\n idle\n busy\n\n @@map(\"turn_state\")\n}\n\nenum LocationKind {\n DEVICE\n CLOUD\n SERVER\n OTHER\n\n @@map(\"location_kind\")\n}\n\n/// The exclusive right of one session to crew a ship, and where that session runs.\n/// Ids start with lse_.\n/// The hash of the crew token register gave the session, unique across all fleets:\n/// finding a ship by its crew token is a lookup not scoped by fleet (ADR 0007). A\n/// console session's lease on argo has none; the console session holds its token.\nmodel Lease {\n id String @id\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n location LocationKind\n locationDescription String? @map(\"location_description\")\n /// The harness the session stated when it claimed the ship; none for argo's console lease and for leases from before harnesses were stated.\n harness String?\n crewTokenHash String? @unique @map(\"crew_token_hash\")\n startedAt DateTime @map(\"started_at\") @db.Timestamptz(3)\n /// The last call by its crew: observation only, nothing acts on it (ADR 0016).\n lastSeenAt DateTime? @map(\"last_seen_at\") @db.Timestamptz(3)\n /// The crew's last report: plain data, nothing acts on it. Null until it reports.\n reportState ReportState? @map(\"report_state\")\n reportNote String? @map(\"report_note\")\n reportedAt DateTime? @map(\"reported_at\") @db.Timestamptz(3)\n /// The report's details: one JSON object stored without meaning, at most 16 KB (decision 0028). Null when there are none.\n reportDetails Json? @map(\"report_details\")\n /// Moves by one each time the details change; 0 before any.\n reportDetailsVersion Int @default(0) @map(\"report_details_version\")\n /// From the lease's first push receive: the computer side takes its deliveries, and the agent's plain receive answers nothing (decision 0040).\n pushedAt DateTime? @map(\"pushed_at\") @db.Timestamptz(3)\n /// The session's turn as its hooks last reported it, and when they saw it change; null until they report (decision 0040).\n turn TurnState?\n turnAt DateTime? @map(\"turn_at\") @db.Timestamptz(3)\n endedAt DateTime? @map(\"ended_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])\n consoleSessions ConsoleSession[]\n claimedDeliveries Delivery[]\n overdueDeliveries OverdueDelivery[]\n\n @@unique([fleetId, id])\n /// At most one open lease per ship.\n @@unique([shipId], map: \"leases_ship_id_open_key\", where: { endedAt: null })\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, shipId])\n @@map(\"leases\")\n}\n\n/// How the assigned trierarch says its crew of a ship stands (decision 0029).\nenum CrewStatus {\n crewing\n running\n restarting\n crashed\n releasing\n\n @@map(\"crew_status\")\n}\n\n/// A standing request that a ship be kept crewed (decision 0029): at most one per\n/// ship, so the ship's id is its key. Its settings are crew settings of at most\n/// 16 KB, checked but never acted on; each request replaces them and moves their\n/// version by one.\nmodel CrewRequest {\n shipId String @id @map(\"ship_id\")\n fleetId String @map(\"fleet_id\")\n settings Json\n settingsVersion Int @map(\"settings_version\")\n requestedAt DateTime @map(\"requested_at\") @db.Timestamptz(3)\n /// The trierarch ship it is assigned to; null while unassigned.\n assignedTo String? @map(\"assigned_to_ship_id\")\n /// How its trierarch says the crew stands; null until it says.\n status CrewStatus?\n /// Why no trierarch can take it, written by the assigner while unassigned; null when none.\n reason String?\n /// How many times its trierarch restarted the session within its restart window, with the status: 0 on its first start.\n attempt Int @default(0)\n /// When the session its trierarch runs now started, with the status; null while none runs.\n sessionStartedAt DateTime? @map(\"session_started_at\") @db.Timestamptz(3)\n /// Whether its crew is final: set by its trierarch's first running, restarting or crashed, kept whatever status follows, cleared on every new settings version.\n isFinal Boolean @default(false) @map(\"is_final\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(\"CrewRequestShip\", fields: [fleetId, shipId], references: [fleetId, id])\n assignee Ship? @relation(\"CrewRequestAssignee\", fields: [fleetId, assignedTo], references: [fleetId, id])\n givenBack CrewRequestGiveBack[]\n\n @@unique([fleetId, shipId])\n /// A trierarch reads the requests assigned to it.\n @@index([fleetId, assignedTo])\n @@map(\"crew_requests\")\n}\n\n/// A trierarch that gave a crew request back before its crew was final (#382): one per trierarch, until the next settings version.\nmodel CrewRequestGiveBack {\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n trierarchShipId String @map(\"trierarch_ship_id\")\n settingsVersion Int @map(\"settings_version\")\n reason String\n givenBackAt DateTime @map(\"given_back_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n crewRequest CrewRequest @relation(fields: [fleetId, shipId], references: [fleetId, shipId])\n trierarch Ship @relation(\"CrewRequestGiveBackTrierarch\", fields: [fleetId, trierarchShipId], references: [fleetId, id])\n\n @@id([fleetId, shipId, trierarchShipId])\n @@index([fleetId, trierarchShipId])\n @@map(\"crew_request_give_backs\")\n}\n\n/// A pending request that a trierarch clear a worktree it kept (decision 0032),\n/// named by the ship it belonged to and its repository: never a path.\nmodel WorktreeClearRequest {\n fleetId String @map(\"fleet_id\")\n trierarchShipId String @map(\"trierarch_ship_id\")\n shipId String @map(\"ship_id\")\n repository String\n requestedBy String @map(\"requested_by_ship_id\")\n requestedAt DateTime @map(\"requested_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n trierarch Ship @relation(\"WorktreeClearRequestTrierarch\", fields: [fleetId, trierarchShipId], references: [fleetId, id])\n ship Ship @relation(\"WorktreeClearRequestShip\", fields: [fleetId, shipId], references: [fleetId, id])\n requester Ship @relation(\"WorktreeClearRequestRequester\", fields: [fleetId, requestedBy], references: [fleetId, id])\n\n @@id([fleetId, trierarchShipId, shipId, repository])\n @@index([fleetId, shipId])\n @@index([fleetId, requestedBy])\n @@map(\"worktree_clear_requests\")\n}\n\n/// A label (decision 0031): a key unique in its fleet with its defined values,\n/// owned by the ship that defined it. Ids start with lbl_. A retired or deleted\n/// label is deleted with its values; its events stay.\nmodel Label {\n id String @id\n fleetId String @map(\"fleet_id\")\n key String\n ownerShipId String @map(\"owner_ship_id\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n owner Ship @relation(\"LabelOwner\", fields: [fleetId, ownerShipId], references: [fleetId, id])\n values LabelValue[]\n carriers ShipLabel[]\n\n @@unique([fleetId, id])\n @@unique([fleetId, key])\n /// A retire finds the labels its ship owns.\n @@index([fleetId, ownerShipId])\n @@map(\"labels\")\n}\n\n/// One value of a label, each once, at most 50 a label. Ids start with lbv_; a\n/// value keeps its id while its label has it.\nmodel LabelValue {\n id String @id\n fleetId String @map(\"fleet_id\")\n labelId String @map(\"label_id\")\n value String\n /// Its place in the order the owner gave the values.\n position Int\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n label Label @relation(fields: [fleetId, labelId], references: [fleetId, id])\n carriers ShipLabel[]\n\n @@unique([fleetId, id])\n @@unique([fleetId, labelId, value])\n @@map(\"label_values\")\n}\n\n/// A label value a ship carries: a ship holds a set of values, so the ship and\n/// the value are its key.\nmodel ShipLabel {\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n labelId String @map(\"label_id\")\n valueId String @map(\"value_id\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(\"ShipLabelShip\", fields: [fleetId, shipId], references: [fleetId, id])\n label Label @relation(fields: [fleetId, labelId], references: [fleetId, id])\n value LabelValue @relation(fields: [fleetId, valueId], references: [fleetId, id])\n\n @@id([fleetId, shipId, valueId])\n /// A change of values, a delete and a retire find every ship that carries a label.\n @@index([fleetId, labelId])\n /// Removing a value checks that no ship carries it.\n @@index([fleetId, valueId])\n @@map(\"ship_labels\")\n}\n\n/// A fleet's network settings (decision 0034), once it first set rules: its\n/// rules as JSON, none (null) for all-to-all, and their version. A send and a\n/// set take turns on an advisory lock on them (network.ts).\nmodel NetworkSettings {\n fleetId String @id @map(\"fleet_id\")\n rules Json?\n version Int\n /// The fleet's networking plugin (decision 0035): its ship and what it\n /// declared, all three set or none.\n pluginShipId String? @map(\"plugin_ship_id\")\n pluginWhileUnavailable String? @map(\"plugin_while_unavailable\")\n pluginNotRespondingAfterSeconds Int? @map(\"plugin_not_responding_after_seconds\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n\n @@map(\"network_settings\")\n}\n\n/// The network rules a ship declared on the labels it owns (decision 0037),\n/// its whole list as JSON, at most 20. No row while it declares none; a retire\n/// removes its row.\nmodel DeclaredNetworkRules {\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n rules Json\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])\n\n @@id([fleetId, shipId])\n @@map(\"declared_network_rules\")\n}\n\n/// A send the network rules refused (decision 0034), recorded in the\n/// transaction that refused it. Ids start with rfs_. Sender and recipient are\n/// as they were then: ids, names and the label values they carried, as JSON,\n/// so a later rename or relabelling keeps the record true. Only argo reads it.\nmodel ReachRefusal {\n id String @id\n fleetId String @map(\"fleet_id\")\n at DateTime @db.Timestamptz(3)\n sender Json\n recipient Json\n settingsVersion Int @map(\"settings_version\")\n /// What the networking plugin declared, when it refused while the plugin\n /// was not responding (decision 0035): block-all or keep-latest.\n whilePluginUnavailable String? @map(\"while_plugin_unavailable\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n\n /// argo reads the latest first.\n @@index([fleetId, at])\n @@map(\"reach_refusals\")\n}\n\n/// A ship secret, stored only as its hash. Ids start with crd_.\n/// The hash is unique across all fleets: finding a ship by its secret is one of the\n/// lookups not scoped by fleet (ADR 0007).\nmodel Credential {\n id String @id\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n secretHash String @unique @map(\"secret_hash\")\n issuedAt DateTime @map(\"issued_at\") @db.Timestamptz(3)\n claimedAt DateTime? @map(\"claimed_at\") @db.Timestamptz(3)\n invalidatedAt DateTime? @map(\"invalidated_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])\n\n /// At most one valid secret per ship.\n @@unique([shipId], map: \"credentials_ship_id_valid_key\", where: { invalidatedAt: null })\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, shipId])\n @@map(\"credentials\")\n}\n\n/// Who a message is for: one ship or any ship of a type. Group and fleet come later.\nenum SelectorKind {\n ship\n type\n\n @@map(\"selector_kind\")\n}\n\n/// An immutable envelope plus an opaque payload of at most 64 KB, sent by one ship.\n/// Ids start with msg_. The selector is stored as resolved at send time: a ship's\n/// id, never its name, or a type. It can name the message it replies to, and a\n/// resend names the message it resends (nothing sets that yet).\nmodel Message {\n id String @id\n fleetId String @map(\"fleet_id\")\n senderShipId String @map(\"sender_ship_id\")\n selectorKind SelectorKind @map(\"selector_kind\")\n selectorShipId String? @map(\"selector_ship_id\")\n selectorType String? @map(\"selector_type\")\n payload String\n contentType String @map(\"content_type\")\n /// The model the sender's session stated; none from argo and on messages from before models were stated.\n model String?\n idempotencyKey String @map(\"idempotency_key\")\n requestHash String @map(\"request_hash\")\n inReplyToMessageId String? @map(\"in_reply_to_message_id\")\n resendOfMessageId String? @map(\"resend_of_message_id\")\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n senderShip Ship @relation(\"MessageSender\", fields: [fleetId, senderShipId], references: [fleetId, id], onDelete: Restrict)\n selectorShip Ship? @relation(\"MessageSelectorShip\", fields: [fleetId, selectorShipId], references: [fleetId, id], onDelete: Restrict)\n inReplyTo Message? @relation(\"MessageInReplyTo\", fields: [fleetId, inReplyToMessageId], references: [fleetId, id], onDelete: Restrict)\n replies Message[] @relation(\"MessageInReplyTo\")\n resendOf Message? @relation(\"MessageResendOf\", fields: [fleetId, resendOfMessageId], references: [fleetId, id], onDelete: Restrict)\n resends Message[] @relation(\"MessageResendOf\")\n deliveries Delivery[]\n events Event[]\n\n @@unique([fleetId, id])\n /// A sender uses an idempotency key once: a repeat of the same request, told by its\n /// request hash, returns the original message; another request with the key is refused.\n @@unique([fleetId, senderShipId, idempotencyKey])\n /// A ship's current model is its newest message with a model.\n @@index([fleetId, senderShipId, createdAt])\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, selectorShipId])\n @@index([fleetId, inReplyToMessageId])\n @@index([fleetId, resendOfMessageId])\n @@map(\"messages\")\n}\n\nenum DeliveryState {\n pending\n received\n handed\n acknowledged\n handled\n notHandled\n undeliverable\n dismissed\n abandoned\n\n @@map(\"delivery_state\")\n}\n\n/// One message to one resolved recipient: a ship or a type. Ids start with dlv_.\n/// A receive hands it to the ship and the lease of the crew receiving, or a push\n/// receive takes it for them: set while it is received or handed, kept once\n/// acknowledged, none while it is pending. Attempts count the hand-overs; the fifth\n/// makes it undeliverable. The hand-over number is the last one the crew reported\n/// with handed (decision 0040), none while pending.\n/// The read date is set when the operator opens a message to argo.\n/// For a type under network rules, the ships of the type its sender may reach,\n/// fixed at send time: only they claim it (decision 0034). Empty: any ship of\n/// the type, as a send no ship of the type may take is refused.\nmodel Delivery {\n id String @id\n fleetId String @map(\"fleet_id\")\n messageId String @map(\"message_id\")\n recipientShipId String? @map(\"recipient_ship_id\")\n recipientType String? @map(\"recipient_type\")\n state DeliveryState @default(pending)\n claimedByShipId String? @map(\"claimed_by_ship_id\")\n claimedByLeaseId String? @map(\"claimed_by_lease_id\")\n attempts Int @default(0)\n handOverNumber Int? @map(\"hand_over_number\")\n /// When its crew handed it once more after the turn that took it died; only once (decision 0040).\n handedOnceMoreAt DateTime? @map(\"handed_once_more_at\") @db.Timestamptz(3)\n reachableShipIds String[] @default([]) @map(\"reachable_ship_ids\")\n readAt DateTime? @map(\"read_at\") @db.Timestamptz(3)\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n message Message @relation(fields: [fleetId, messageId], references: [fleetId, id])\n recipientShip Ship? @relation(\"DeliveryRecipientShip\", fields: [fleetId, recipientShipId], references: [fleetId, id], onDelete: Restrict)\n claimedByShip Ship? @relation(\"DeliveryClaimedByShip\", fields: [fleetId, claimedByShipId], references: [fleetId, id], onDelete: Restrict)\n claimedByLease Lease? @relation(fields: [fleetId, claimedByLeaseId], references: [fleetId, id], onDelete: Restrict)\n events Event[]\n overdue OverdueDelivery[]\n\n @@unique([fleetId, id])\n /// One row per recipient.\n @@unique([messageId, recipientShipId])\n @@unique([messageId, recipientType])\n @@index([fleetId, recipientShipId, state])\n @@index([fleetId, recipientType, state])\n /// The installation's health figures scan a fleet's open deliveries by state (decision 0041). Partial, so a foreign key check never picks it.\n @@index([fleetId, state, createdAt], map: \"deliveries_open_fleet_id_state_created_at_idx\", where: raw(\"(state = ANY (ARRAY['pending'::delivery_state, 'received'::delivery_state, 'handed'::delivery_state, 'undeliverable'::delivery_state, 'notHandled'::delivery_state]))\"))\n /// A crew's own deliveries in flight, which its next receive returns first.\n @@index([fleetId, claimedByLeaseId, state])\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, messageId])\n @@index([fleetId, claimedByShipId])\n @@map(\"deliveries\")\n}\n\n/// Which of the 10 and 60 minute clocks ran out (decision 0040).\nenum OverdueClock {\n notConfirmed\n idle\n busy\n\n @@map(\"overdue_clock\")\n}\n\n/// A delivery argo was told is overdue on a pushed lease: its clock ran out\n/// while it waited in the state kept here. Once per lease and delivery, so a\n/// pass after a restart, or a second pass at once, tells nothing again.\nmodel OverdueDelivery {\n fleetId String @map(\"fleet_id\")\n leaseId String @map(\"lease_id\")\n deliveryId String @map(\"delivery_id\")\n shipId String @map(\"ship_id\")\n state DeliveryState\n clock OverdueClock\n minutes Int\n toldAt DateTime @map(\"told_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n lease Lease @relation(fields: [fleetId, leaseId], references: [fleetId, id], onDelete: Restrict)\n delivery Delivery @relation(fields: [fleetId, deliveryId], references: [fleetId, id], onDelete: Restrict)\n ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id], onDelete: Restrict)\n\n @@id([fleetId, leaseId, deliveryId])\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, deliveryId])\n @@index([fleetId, shipId])\n @@map(\"overdue_deliveries\")\n}\n\n/// Append-only log of every state change: never updated or deleted. Ids start with evt_.\n/// Records its type and time, who caused it (a ship, or the system when\n/// actor_ship_id is null), the ship, message and delivery it concerns, and a few\n/// details as a flat JSON object.\nmodel Event {\n id String @id\n fleetId String @map(\"fleet_id\")\n type String\n occurredAt DateTime @map(\"occurred_at\") @db.Timestamptz(3)\n actorShipId String? @map(\"actor_ship_id\")\n shipId String? @map(\"ship_id\")\n messageId String? @map(\"message_id\")\n deliveryId String? @map(\"delivery_id\")\n details Json\n /// The event's place in its fleet's stream, in commit order and without\n /// gaps: where a live subscription resumes. The id is not, since ids are\n /// taken before their transaction commits.\n seq BigInt\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n actorShip Ship? @relation(\"EventActorShip\", fields: [fleetId, actorShipId], references: [fleetId, id], onDelete: Restrict)\n ship Ship? @relation(\"EventShip\", fields: [fleetId, shipId], references: [fleetId, id], onDelete: Restrict)\n message Message? @relation(fields: [fleetId, messageId], references: [fleetId, id], onDelete: Restrict)\n delivery Delivery? @relation(fields: [fleetId, deliveryId], references: [fleetId, id], onDelete: Restrict)\n\n @@unique([fleetId, seq])\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, actorShipId])\n @@index([fleetId, shipId])\n @@index([fleetId, messageId])\n @@index([fleetId, deliveryId])\n @@map(\"events\")\n}\n\n/// Why a console session ended: a sign-in elsewhere took argo over, the\n/// operator signed out, or the password was reset.\nenum ConsoleSessionEndReason {\n takenOver\n signedOut\n passwordReset\n\n @@map(\"console_session_end_reason\")\n}\n\n/// The operator's login: email and Argon2id password hash, none for an operator a\n/// hosting installation created. Ids start with opr_.\n/// The email is unique across all fleets: finding the account by email is the one\n/// lookup not scoped by fleet (ADR 0007). One account per fleet in v1.\nmodel Operator {\n id String @id\n fleetId String @unique @map(\"fleet_id\")\n email String @unique\n passwordHash String? @map(\"password_hash\")\n /// How the console looks for this operator; system until they choose.\n theme Theme @default(system)\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n\n @@map(\"operators\")\n}\n\nenum Theme {\n light\n dark\n system\n\n @@map(\"theme\")\n}\n\n/// The operator crewing argo through the web console. Ids start with ses_.\n/// Only the hash of the session token is stored, unique across all fleets: finding\n/// a session by its token is the one lookup not scoped by fleet (ADR 0007).\n/// Valid until expires_at, which moves to idle_limit_seconds after each use\n/// (30 days for the operator, 2 hours for a viewer), never past ends_by.\nmodel ConsoleSession {\n id String @id\n fleetId String @map(\"fleet_id\")\n shipId String @map(\"ship_id\")\n /// The lease on argo it holds; null for a viewer session (decision 0022).\n leaseId String? @map(\"lease_id\")\n idleLimitSeconds Int @map(\"idle_limit_seconds\")\n /// No use renews it past this; null when only idleness ends it.\n endsBy DateTime? @map(\"ends_by\") @db.Timestamptz(3)\n /// The device it signed in from, as the browser told: \"Mac · Chrome\".\n device String @default(\"Unknown device\")\n tokenHash String @unique @map(\"token_hash\")\n createdAt DateTime @map(\"created_at\") @db.Timestamptz(3)\n lastUsedAt DateTime @map(\"last_used_at\") @db.Timestamptz(3)\n expiresAt DateTime @map(\"expires_at\") @db.Timestamptz(3)\n endedAt DateTime? @map(\"ended_at\") @db.Timestamptz(3)\n /// Why the session ended; null while it has not.\n endReason ConsoleSessionEndReason? @map(\"end_reason\")\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n ship Ship @relation(fields: [fleetId, shipId], references: [fleetId, id])\n lease Lease? @relation(fields: [fleetId, leaseId], references: [fleetId, id])\n\n noticeDismissals NoticeDismissal[]\n guideProgress GuideProgress[]\n\n /// At most one live session holding argo's lease per fleet: signing in ends the previous one. Viewer sessions run beside it.\n @@unique([fleetId], map: \"console_sessions_fleet_id_open_key\", where: raw(\"ended_at IS NULL AND lease_id IS NOT NULL\"))\n /// Every foreign key has an index leading with its columns, so deleting a\n /// referenced row checks it with an index, not a scan (#331).\n @@index([fleetId, shipId])\n @@index([fleetId, leaseId])\n @@map(\"console_sessions\")\n}\n\n/// A one-time sign-in ticket for the fleet's operator, issued by a hosting\n/// installation and redeemed in the console (decision 0020). Only its hash is\n/// stored, unique across all fleets: redeeming finds it before the fleet is known.\nmodel SignInTicket {\n tokenHash String @id @map(\"token_hash\")\n fleetId String @map(\"fleet_id\")\n /// Whom it signs in as: the operator or a viewer (decision 0022).\n signInAs SignInAs @map(\"sign_in_as\")\n issuedAt DateTime @map(\"issued_at\") @db.Timestamptz(3)\n expiresAt DateTime @map(\"expires_at\") @db.Timestamptz(3)\n /// When it signed in; null while unused.\n usedAt DateTime? @map(\"used_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n\n @@index([fleetId])\n @@map(\"sign_in_tickets\")\n}\n\nenum SignInAs {\n operator\n viewer\n\n @@map(\"sign_in_as\")\n}\n\n/// The installation's settings (decision 0020): the default ship and daily message\n/// limits for fleets and the cap on fleets, each null for no limit. One row at most,\n/// and none until the installation sets them. Belongs to no fleet.\nmodel InstallationSettings {\n id Int @id @default(1)\n defaultShipLimit Int? @map(\"default_ship_limit\")\n defaultDailyMessageLimit Int? @map(\"default_daily_message_limit\")\n fleetCap Int? @map(\"fleet_cap\")\n\n @@map(\"installation_settings\")\n}\n\nenum InstallationRequestKind {\n createFleet @map(\"create_fleet\")\n deleteFleet @map(\"delete_fleet\")\n\n @@map(\"installation_request_kind\")\n}\n\n/// A create or delete of a fleet the installation carried out, under its caller's\n/// request id, so a replay answers the same (decision 0020). It belongs to the\n/// installation, not to a fleet, and keeps the request as a hash only. A create's\n/// row names the fleet and argo it answers with and is deleted with that fleet; a\n/// delete's row names nothing of the fleet.\nmodel InstallationRequest {\n requestId String @id @map(\"request_id\")\n kind InstallationRequestKind\n requestHash String @map(\"request_hash\")\n /// The created fleet and its argo; null for a delete.\n fleetId String? @map(\"fleet_id\")\n operatorShipId String? @map(\"operator_ship_id\")\n at DateTime @db.Timestamptz(3)\n\n @@index([fleetId])\n @@map(\"installation_requests\")\n}\n\n/// A console notice the installation sets (decision 0023), shown above every\n/// page to the sessions of its audience. It belongs to no fleet.\nmodel Notice {\n id String @id\n /// Its place in the installation's order.\n position Int\n audience NoticeAudience\n text String\n /// Its links: label, and url, isSignOut or both.\n links Json @default(\"[]\")\n isDismissible Boolean @default(false) @map(\"is_dismissible\")\n\n @@map(\"notices\")\n}\n\nenum NoticeAudience {\n everyone\n operators\n viewers\n\n @@map(\"notice_audience\")\n}\n\n/// A notice a console session dismissed, for itself (decision 0023). It goes\n/// with its session and its fleet.\nmodel NoticeDismissal {\n fleetId String @map(\"fleet_id\")\n consoleSessionId String @map(\"console_session_id\")\n noticeId String @map(\"notice_id\")\n dismissedAt DateTime @map(\"dismissed_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n consoleSession ConsoleSession @relation(fields: [consoleSessionId], references: [id])\n\n @@id([consoleSessionId, noticeId])\n @@index([fleetId])\n @@map(\"notice_dismissals\")\n}\n\n/// The installation's guide (decision 0024): steps for the console sessions of\n/// one audience. At most one row; it belongs to no fleet.\nmodel Guide {\n /// Always \"guide\": the installation has one guide or none.\n id String @id\n audience NoticeAudience\n /// Its steps, in order: path, anchor (optional), title and text.\n steps Json\n\n @@map(\"guides\")\n}\n\nenum GuideProgressState {\n open\n skipped\n finished\n\n @@map(\"guide_progress_state\")\n}\n\n/// Where a console session is in the guide, for itself (decision 0024). It\n/// goes with its session and its fleet.\nmodel GuideProgress {\n fleetId String @map(\"fleet_id\")\n consoleSessionId String @id @map(\"console_session_id\")\n step Int\n state GuideProgressState\n recordedAt DateTime @map(\"recorded_at\") @db.Timestamptz(3)\n\n fleet Fleet @relation(fields: [fleetId], references: [id])\n consoleSession ConsoleSession @relation(fields: [consoleSessionId], references: [id])\n\n @@index([fleetId])\n @@map(\"guide_progress\")\n}\n",
|
|
21
21
|
"runtimeDataModel": {
|
|
22
22
|
"models": {},
|
|
23
23
|
"enums": {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../../src/adapters/prisma/generated/internal/class.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAIxD,MAAM,MAAM,GAAkC;IAC5C,iBAAiB,EAAE;QACjB,gBAAgB;KACjB;IACD,eAAe,EAAE,QAAQ;IACzB,eAAe,EAAE,0CAA0C;IAC3D,gBAAgB,EAAE,YAAY;IAC9B,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../../src/adapters/prisma/generated/internal/class.ts"],"names":[],"mappings":"AACA,qEAAqE;AACrE,oBAAoB;AACpB,wCAAwC;AACxC,eAAe;AACf;;;;;;GAMG;AAEH,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAIxD,MAAM,MAAM,GAAkC;IAC5C,iBAAiB,EAAE;QACjB,gBAAgB;KACjB;IACD,eAAe,EAAE,QAAQ;IACzB,eAAe,EAAE,0CAA0C;IAC3D,gBAAgB,EAAE,YAAY;IAC9B,cAAc,EAAE,i3oCAAi3oC;IACj4oC,kBAAkB,EAAE;QAClB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;KACZ;CACF,CAAA;AAED,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,8x7BAA8x7B,CAAC,CAAA;AACp07B,MAAM,CAAC,sBAAsB,GAAG;IAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,qhfAAqhf,CAAC;IAC1if,KAAK,EAAE,080JAA080J;CACl90J,CAAA;AAED,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACnD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,YAAY,GAAG;IACpB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,8DAA8D,CAAC;IAEpG,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,0EAA0E,CAAC,CAAA;QACzG,OAAO,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,UAAU,EAAE,6BAA6B;CAC1C,CAAA;AA4YD,MAAM,UAAU,oBAAoB;IAClC,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,CAAuC,CAAA;AAC9E,CAAC"}
|
|
@@ -4,8 +4,9 @@ import type * as Prisma from "../internal/prismaNamespace.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Model CrewRequest
|
|
6
6
|
* A standing request that a ship be kept crewed (decision 0029): at most one per
|
|
7
|
-
* ship, so the ship's id is its key. Its settings are
|
|
8
|
-
*
|
|
7
|
+
* ship, so the ship's id is its key. Its settings are crew settings of at most
|
|
8
|
+
* 16 KB, checked but never acted on; each request replaces them and moves their
|
|
9
|
+
* version by one.
|
|
9
10
|
*/
|
|
10
11
|
export type CrewRequestModel = runtime.Types.Result.DefaultSelection<Prisma.$CrewRequestPayload>;
|
|
11
12
|
export type AggregateCrewRequest = {
|
|
@@ -105,7 +105,7 @@ export declare const fleetRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
105
105
|
meta: import("./trpc.js").ProcedureMeta;
|
|
106
106
|
}>;
|
|
107
107
|
/**
|
|
108
|
-
* Asks that a ship be kept crewed, with settings
|
|
108
|
+
* Asks that a ship be kept crewed, with crew settings it checks but never acts on,
|
|
109
109
|
* replacing any request it holds (decision 0029).
|
|
110
110
|
*/
|
|
111
111
|
crewRequest: import("@trpc/server").TRPCMutationProcedure<{
|
|
@@ -121,14 +121,15 @@ export const fleetRouter = router({
|
|
|
121
121
|
.output(retireShipOutputSchema)
|
|
122
122
|
.mutation(async ({ ctx, input }) => okOrThrow(await ctx.useCases.retireShip(ctx.caller, input))),
|
|
123
123
|
/**
|
|
124
|
-
* Asks that a ship be kept crewed, with settings
|
|
124
|
+
* Asks that a ship be kept crewed, with crew settings it checks but never acts on,
|
|
125
125
|
* replacing any request it holds (decision 0029).
|
|
126
126
|
*/
|
|
127
127
|
crewRequest: scopedProcedure('fleet:manage')
|
|
128
128
|
.meta({
|
|
129
129
|
description: [
|
|
130
130
|
'Needs fleet:manage. Asks that a ship be kept crewed, with settings: one JSON object of at most 16 KB (harness, workspace, options,',
|
|
131
|
-
'an optional first prompt and
|
|
131
|
+
'an optional first prompt, squadron and machine labels), refused with the reason unless they are crew settings whose machine labels are label',
|
|
132
|
+
'value ids of the fleet. Replaces the settings of a request the ship holds.',
|
|
132
133
|
'Never argo, the viewer or a retired ship. Answers the settings version, one more on every request.',
|
|
133
134
|
].join(' '),
|
|
134
135
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../../src/adapters/trpc/fleet.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../../src/adapters/trpc/fleet.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,8 @@ const ERROR_CODES = {
|
|
|
49
49
|
CREW_REQUEST_RELEASING: 'CONFLICT',
|
|
50
50
|
CREW_REQUEST_FINAL: 'CONFLICT',
|
|
51
51
|
CREW_REQUEST_SETTINGS_CHANGED: 'CONFLICT',
|
|
52
|
+
// Settings that are not crew settings would never be placed (#809): a bad request, as the input itself.
|
|
53
|
+
CREW_REQUEST_SETTINGS_INVALID: 'BAD_REQUEST',
|
|
52
54
|
// BAD_REQUEST, as for a payload or report details over their limit.
|
|
53
55
|
CREW_REQUEST_SETTINGS_TOO_LARGE: 'BAD_REQUEST',
|
|
54
56
|
DELIVERY_NOT_IN_FLIGHT: 'CONFLICT',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/adapters/trpc/trpc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/adapters/trpc/trpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CrewStatus, type FleetId, type Scope, type ShipId } from '@aeolus-fleet/common';
|
|
1
|
+
import { type CrewStatus, type FleetId, type LabelValueId, type Scope, type ShipId } from '@aeolus-fleet/common';
|
|
2
2
|
import { type Caller } from '../shared/caller.js';
|
|
3
3
|
import { type DomainError } from '../shared/errors.js';
|
|
4
4
|
import type { Actor, NewEvent } from '../shared/events.js';
|
|
@@ -8,8 +8,8 @@ import { type CrewRequestShipRefusal, type Ship } from './ship.js';
|
|
|
8
8
|
/**
|
|
9
9
|
* A standing request that a ship be kept crewed (docs/blueprint.md, "Crew
|
|
10
10
|
* request"; decision 0029): at most one per ship, in three parts with one
|
|
11
|
-
* writer each. The settings,
|
|
12
|
-
* requester with fleet:manage; the assignment, the trierarch ship that crews
|
|
11
|
+
* writer each. The settings, crew settings (decision 0027) the server checks but
|
|
12
|
+
* never acts on, by a requester with fleet:manage; the assignment, the trierarch ship that crews
|
|
13
13
|
* it, by a ship with crew:assign; the status, by the assigned trierarch.
|
|
14
14
|
* Removing an assigned request marks it releasing; it goes once its
|
|
15
15
|
* trierarch confirms.
|
|
@@ -47,18 +47,22 @@ export interface GiveBack {
|
|
|
47
47
|
type NotFound = DomainError<'CREW_REQUEST_NOT_FOUND'>;
|
|
48
48
|
type Releasing = DomainError<'CREW_REQUEST_RELEASING'>;
|
|
49
49
|
type NotTheCallers = DomainError<'CREW_REQUEST_NOT_ASSIGNED_TO_CALLER'>;
|
|
50
|
-
export type RequestCrewRefusal = CrewRequestShipRefusal | Releasing | DomainError<'CREW_REQUEST_SETTINGS_TOO_LARGE'>;
|
|
50
|
+
export type RequestCrewRefusal = CrewRequestShipRefusal | Releasing | DomainError<'CREW_REQUEST_SETTINGS_TOO_LARGE'> | DomainError<'CREW_REQUEST_SETTINGS_INVALID'>;
|
|
51
51
|
/**
|
|
52
52
|
* A requester asks that the ship be kept crewed, with these settings: the
|
|
53
53
|
* request it holds now, replacing the settings of any it held and keeping its
|
|
54
54
|
* assignment and status, its crew not final until the new settings run, and
|
|
55
55
|
* CrewRequested with the settings version, never
|
|
56
56
|
* the settings. Never argo, the viewer ship or a retired ship; settings of at
|
|
57
|
-
* most 16 KB
|
|
57
|
+
* most 16 KB that are crew settings (decision 0027), as placement reads
|
|
58
|
+
* them, each machine label one of the fleet's label values (#811), so a
|
|
59
|
+
* request never waits for a machine no label lets match; never while the
|
|
60
|
+
* request is releasing.
|
|
58
61
|
*/
|
|
59
|
-
export declare function requestCrew({ ship, current }: {
|
|
62
|
+
export declare function requestCrew({ ship, current, labelValues }: {
|
|
60
63
|
ship: Ship;
|
|
61
64
|
current: CrewRequest | undefined;
|
|
65
|
+
labelValues: ReadonlySet<LabelValueId>;
|
|
62
66
|
}, input: {
|
|
63
67
|
settings: JsonObject;
|
|
64
68
|
at: Date;
|
|
@@ -67,6 +71,8 @@ export declare function requestCrew({ ship, current }: {
|
|
|
67
71
|
request: CrewRequest;
|
|
68
72
|
events: NewEvent[];
|
|
69
73
|
}, RequestCrewRefusal>;
|
|
74
|
+
/** The machine labels the settings name, to look up among the fleet's label values; none when they are not crew settings. */
|
|
75
|
+
export declare function machineLabelsOf(settings: JsonObject): readonly LabelValueId[];
|
|
70
76
|
/**
|
|
71
77
|
* A requester removes the ship's crew request. Unassigned, it goes at once,
|
|
72
78
|
* with CrewRequestRemoved. Assigned, it is marked releasing, with
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CREW_REQUEST_REASON_MAX_LENGTH, CREW_REQUEST_SETTINGS_MAX_BYTES, isOneLine, crewRequestSettingsBytes, } from '@aeolus-fleet/common';
|
|
1
|
+
import { CREW_REQUEST_REASON_MAX_LENGTH, CREW_REQUEST_SETTINGS_MAX_BYTES, isOneLine, readCrewSettings, crewRequestSettingsBytes, } from '@aeolus-fleet/common';
|
|
2
2
|
import { hasScope } from '../shared/caller.js';
|
|
3
3
|
import { refuse } from '../shared/errors.js';
|
|
4
4
|
import { ok } from '../shared/result.js';
|
|
@@ -18,9 +18,12 @@ function event(ship, change) {
|
|
|
18
18
|
* assignment and status, its crew not final until the new settings run, and
|
|
19
19
|
* CrewRequested with the settings version, never
|
|
20
20
|
* the settings. Never argo, the viewer ship or a retired ship; settings of at
|
|
21
|
-
* most 16 KB
|
|
21
|
+
* most 16 KB that are crew settings (decision 0027), as placement reads
|
|
22
|
+
* them, each machine label one of the fleet's label values (#811), so a
|
|
23
|
+
* request never waits for a machine no label lets match; never while the
|
|
24
|
+
* request is releasing.
|
|
22
25
|
*/
|
|
23
|
-
export function requestCrew({ ship, current }, input) {
|
|
26
|
+
export function requestCrew({ ship, current, labelValues }, input) {
|
|
24
27
|
const requestable = checkCanBeRequestedCrew(ship);
|
|
25
28
|
if (!requestable.isOk) {
|
|
26
29
|
return requestable;
|
|
@@ -32,6 +35,16 @@ export function requestCrew({ ship, current }, input) {
|
|
|
32
35
|
if (bytes > CREW_REQUEST_SETTINGS_MAX_BYTES) {
|
|
33
36
|
return refuse('CREW_REQUEST_SETTINGS_TOO_LARGE', `settings is ${String(bytes)} bytes, the limit is ${String(CREW_REQUEST_SETTINGS_MAX_BYTES)} (decision 0029)`);
|
|
34
37
|
}
|
|
38
|
+
// Read as placement reads them, so a request is never stored that no trierarch could take (#809).
|
|
39
|
+
const read = readCrewSettings(input.settings);
|
|
40
|
+
if ('refusal' in read) {
|
|
41
|
+
return refuse('CREW_REQUEST_SETTINGS_INVALID', read.refusal.reason);
|
|
42
|
+
}
|
|
43
|
+
for (const [index, valueId] of (read.settings.machineLabels ?? []).entries()) {
|
|
44
|
+
if (!labelValues.has(valueId)) {
|
|
45
|
+
return refuse('CREW_REQUEST_SETTINGS_INVALID', `settings are not valid crew settings: machineLabels.${String(index)}: The fleet has no label value ${valueId}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
35
48
|
const request = {
|
|
36
49
|
fleetId: ship.fleetId,
|
|
37
50
|
shipId: ship.id,
|
|
@@ -50,6 +63,11 @@ export function requestCrew({ ship, current }, input) {
|
|
|
50
63
|
};
|
|
51
64
|
return ok({ request, events: [event(ship, { at: input.at, actor: input.actor, type: 'CrewRequested', details: { settingsVersion: request.settingsVersion } })] });
|
|
52
65
|
}
|
|
66
|
+
/** The machine labels the settings name, to look up among the fleet's label values; none when they are not crew settings. */
|
|
67
|
+
export function machineLabelsOf(settings) {
|
|
68
|
+
const read = readCrewSettings(settings);
|
|
69
|
+
return 'settings' in read ? (read.settings.machineLabels ?? []) : [];
|
|
70
|
+
}
|
|
53
71
|
/**
|
|
54
72
|
* A requester removes the ship's crew request. Unassigned, it goes at once,
|
|
55
73
|
* with CrewRequestRemoved. Assigned, it is marked releasing, with
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crew-request.js","sourceRoot":"","sources":["../../../src/domain/registry/crew-request.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,SAAS,EACT,wBAAwB,
|
|
1
|
+
{"version":3,"file":"crew-request.js","sourceRoot":"","sources":["../../../src/domain/registry/crew-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,12 @@ import { type EventLog } from '../shared/events.js';
|
|
|
6
6
|
import { type Result } from '../shared/result.js';
|
|
7
7
|
import type { UnitOfWork } from '../shared/unit-of-work.js';
|
|
8
8
|
import { type RequestCrewRefusal } from './crew-request.js';
|
|
9
|
-
import type { CrewRequestRepository, ShipRepository } from './ports.js';
|
|
9
|
+
import type { CrewRequestRepository, LabelRepository, ShipRepository } from './ports.js';
|
|
10
10
|
import type { JsonObject } from './report-details.js';
|
|
11
11
|
export interface RequestCrewTx {
|
|
12
12
|
ships: Pick<ShipRepository, 'findForUpdate'>;
|
|
13
13
|
crewRequests: CrewRequestRepository;
|
|
14
|
+
labels: Pick<LabelRepository, 'findByValueForShare'>;
|
|
14
15
|
events: EventLog;
|
|
15
16
|
}
|
|
16
17
|
export type RequestCrew = (caller: Caller, input: {
|
|
@@ -23,7 +24,10 @@ export type RequestCrew = (caller: Caller, input: {
|
|
|
23
24
|
* Use case: a requester asks that a ship be kept crewed, with these settings,
|
|
24
25
|
* replacing any request the ship holds. Its scope (fleet:manage) is checked
|
|
25
26
|
* before this runs. In one unit of work, locking the ship first, as a retire
|
|
26
|
-
* does, so a retire and a request never cross
|
|
27
|
+
* does, so a retire and a request never cross; then holding the label of
|
|
28
|
+
* each machine label, as an assignment does, so a change of its values waits
|
|
29
|
+
* and the request never names a value it removed: the request and
|
|
30
|
+
* CrewRequested.
|
|
27
31
|
*/
|
|
28
32
|
export declare function createRequestCrew(deps: {
|
|
29
33
|
uow: UnitOfWork<RequestCrewTx>;
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { refuse } from '../shared/errors.js';
|
|
2
2
|
import { recordEvent, shipActor } from '../shared/events.js';
|
|
3
3
|
import { ok } from '../shared/result.js';
|
|
4
|
-
import { requestCrew } from './crew-request.js';
|
|
4
|
+
import { machineLabelsOf, requestCrew } from './crew-request.js';
|
|
5
5
|
/**
|
|
6
6
|
* Use case: a requester asks that a ship be kept crewed, with these settings,
|
|
7
7
|
* replacing any request the ship holds. Its scope (fleet:manage) is checked
|
|
8
8
|
* before this runs. In one unit of work, locking the ship first, as a retire
|
|
9
|
-
* does, so a retire and a request never cross
|
|
9
|
+
* does, so a retire and a request never cross; then holding the label of
|
|
10
|
+
* each machine label, as an assignment does, so a change of its values waits
|
|
11
|
+
* and the request never names a value it removed: the request and
|
|
12
|
+
* CrewRequested.
|
|
10
13
|
*/
|
|
11
14
|
export function createRequestCrew(deps) {
|
|
12
15
|
return (caller, input) => deps.uow.run(async (tx) => {
|
|
@@ -15,7 +18,15 @@ export function createRequestCrew(deps) {
|
|
|
15
18
|
return refuse('SHIP_NOT_FOUND', `Ship ${input.shipId} does not exist`);
|
|
16
19
|
}
|
|
17
20
|
const current = await tx.crewRequests.find(caller.fleetId, ship.id);
|
|
18
|
-
const
|
|
21
|
+
const labelValues = new Set();
|
|
22
|
+
for (const valueId of machineLabelsOf(input.settings)) {
|
|
23
|
+
const label = await tx.labels.findByValueForShare(caller.fleetId, valueId);
|
|
24
|
+
// Read after the lock: a change of values that came first may have removed the value.
|
|
25
|
+
if (label?.values.some((value) => value.id === valueId)) {
|
|
26
|
+
labelValues.add(valueId);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const requested = requestCrew({ ship, current, labelValues }, { settings: input.settings, at: deps.clock.now(), actor: shipActor(caller.shipId) });
|
|
19
30
|
if (!requested.isOk) {
|
|
20
31
|
return requested;
|
|
21
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-crew.js","sourceRoot":"","sources":["../../../src/domain/registry/request-crew.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"request-crew.js","sourceRoot":"","sources":["../../../src/domain/registry/request-crew.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAgB1F;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAwE;IACxG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAoG,EAAE;QAC1H,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,gBAAgB,EAAE,QAAQ,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAgB,CAAC;QAC5C,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3E,sFAAsF;YACtF,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;gBACxD,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACnJ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Err } from './result.js';
|
|
2
2
|
/** Every reason the domain refuses a request. */
|
|
3
|
-
export type DomainErrorKind = 'ASSIGNEE_NOT_ACTIVE' | 'CLEAR_REQUEST_LIMIT_REACHED' | 'CLEAR_REQUEST_NOT_FOUND' | 'CREW_REQUEST_ALREADY_ASSIGNED' | 'CREW_REQUEST_NOT_ASSIGNED_TO_CALLER' | 'CREW_REQUEST_NOT_FOUND' | 'CREW_REQUEST_NOT_RELEASING' | 'CREW_REQUEST_RELEASING' | 'CREW_REQUEST_FINAL' | 'CREW_REQUEST_SETTINGS_CHANGED' | 'CREW_REQUEST_SETTINGS_TOO_LARGE' | 'DELIVERY_HANDED_ONCE_MORE' | 'DELIVERY_HELD_BY_ANOTHER_SHIP' | 'DELIVERY_NOT_FOUND' | 'DELIVERY_NOT_A_PING' | 'DELIVERY_NOT_ACKNOWLEDGED' | 'DELIVERY_NOT_HANDED_ONCE_MORE' | 'DELIVERY_NOT_IN_FLIGHT' | 'DELIVERY_NOT_OPEN' | 'DELIVERY_NOT_UNDELIVERABLE' | 'FLEET_ALREADY_EXISTS' | 'FLEET_LIMIT_REACHED' | 'FLEET_NOT_FOUND' | 'FLEET_HAS_NO_VIEWER' | 'NOTICE_NOT_FOUND' | 'NOTICE_NOT_DISMISSIBLE' | 'GUIDE_NOT_FOUND' | 'GUIDE_STEP_NOT_FOUND' | 'IDEMPOTENCY_KEY_REUSED' | 'IN_REPLY_TO_NOT_FOUND' | 'MESSAGE_LIMIT_REACHED' | 'MODEL_REQUIRED' | 'INVALID_HARNESS' | 'MODEL_FROM_ARGO' | 'INVALID_CONTENT_TYPE' | 'INVALID_EMAIL' | 'INVALID_FLEET_NAME' | 'INVALID_FOLLOW_MAX' | 'INVALID_FOLLOW_WAIT' | 'INVALID_IDEMPOTENCY_KEY' | 'INVALID_INBOX_WAIT' | 'INVALID_LABEL_KEY' | 'INVALID_LABEL_VALUE' | 'INVALID_LABEL_VALUES' | 'INVALID_LIMIT' | 'INVALID_LOCATION' | 'INVALID_NETWORK_RULES' | 'INVALID_PASSWORD' | 'INVALID_RECEIVE_MAX' | 'INVALID_CREW_REQUEST_REASON' | 'INVALID_REPORT_DETAILS' | 'INVALID_REPORT_NOTE' | 'INVALID_REPORT_STATE' | 'INVALID_SHIP_NAME' | 'INVALID_SHIP_NOTE' | 'INVALID_SHIP_TYPE' | 'LABEL_CARRIED' | 'LABEL_KEY_TAKEN' | 'LABEL_NOT_FOUND' | 'LABEL_VALUE_CARRIED' | 'LABEL_VALUE_NOT_FOUND' | 'LEASE_ENDED' | 'MESSAGE_NOT_FOUND' | 'NETWORK_PLUGIN_REGISTERED' | 'NOT_A_TRIERARCH' | 'NOT_THE_LABEL_OWNER' | 'NOT_REACHABLE' | 'NOT_THE_NETWORK_PLUGIN' | 'NOT_THE_OPERATOR_SHIP' | 'OPERATOR_EMAIL_TAKEN' | 'OPERATOR_HAS_NO_PASSWORD' | 'OPERATOR_SHIP_GETS_NO_STARTING_PROMPT' | 'OPERATOR_SHIP_HAS_NO_SECRET' | 'OPERATOR_SHIP_IS_NOT_PINGED' | 'OPERATOR_SHIP_IS_PERMANENT' | 'PAYLOAD_TOO_LARGE' | 'PING_NOT_RESENT' | 'REPORT_DETAILS_TOO_LARGE' | 'RESERVED_CONTENT_TYPE' | 'SHIP_ALREADY_RETIRED' | 'SHIP_NAME_RESERVED' | 'SHIP_NAME_TAKEN' | 'SHIP_NOT_AWAITING_CREW' | 'SHIP_NOT_CREWED' | 'SHIP_LABEL_LIMIT_REACHED' | 'SHIP_LIMIT_REACHED' | 'SHIP_NOT_FOUND' | 'SIGN_IN_TICKET_INVALID' | 'UNKNOWN_CREW_TOKEN' | 'UNRESOLVABLE_SELECTOR' | 'WRONG_EMAIL_OR_PASSWORD' | 'WRONG_SHIP_ID_OR_SECRET';
|
|
3
|
+
export type DomainErrorKind = 'ASSIGNEE_NOT_ACTIVE' | 'CLEAR_REQUEST_LIMIT_REACHED' | 'CLEAR_REQUEST_NOT_FOUND' | 'CREW_REQUEST_ALREADY_ASSIGNED' | 'CREW_REQUEST_NOT_ASSIGNED_TO_CALLER' | 'CREW_REQUEST_NOT_FOUND' | 'CREW_REQUEST_NOT_RELEASING' | 'CREW_REQUEST_RELEASING' | 'CREW_REQUEST_FINAL' | 'CREW_REQUEST_SETTINGS_CHANGED' | 'CREW_REQUEST_SETTINGS_INVALID' | 'CREW_REQUEST_SETTINGS_TOO_LARGE' | 'DELIVERY_HANDED_ONCE_MORE' | 'DELIVERY_HELD_BY_ANOTHER_SHIP' | 'DELIVERY_NOT_FOUND' | 'DELIVERY_NOT_A_PING' | 'DELIVERY_NOT_ACKNOWLEDGED' | 'DELIVERY_NOT_HANDED_ONCE_MORE' | 'DELIVERY_NOT_IN_FLIGHT' | 'DELIVERY_NOT_OPEN' | 'DELIVERY_NOT_UNDELIVERABLE' | 'FLEET_ALREADY_EXISTS' | 'FLEET_LIMIT_REACHED' | 'FLEET_NOT_FOUND' | 'FLEET_HAS_NO_VIEWER' | 'NOTICE_NOT_FOUND' | 'NOTICE_NOT_DISMISSIBLE' | 'GUIDE_NOT_FOUND' | 'GUIDE_STEP_NOT_FOUND' | 'IDEMPOTENCY_KEY_REUSED' | 'IN_REPLY_TO_NOT_FOUND' | 'MESSAGE_LIMIT_REACHED' | 'MODEL_REQUIRED' | 'INVALID_HARNESS' | 'MODEL_FROM_ARGO' | 'INVALID_CONTENT_TYPE' | 'INVALID_EMAIL' | 'INVALID_FLEET_NAME' | 'INVALID_FOLLOW_MAX' | 'INVALID_FOLLOW_WAIT' | 'INVALID_IDEMPOTENCY_KEY' | 'INVALID_INBOX_WAIT' | 'INVALID_LABEL_KEY' | 'INVALID_LABEL_VALUE' | 'INVALID_LABEL_VALUES' | 'INVALID_LIMIT' | 'INVALID_LOCATION' | 'INVALID_NETWORK_RULES' | 'INVALID_PASSWORD' | 'INVALID_RECEIVE_MAX' | 'INVALID_CREW_REQUEST_REASON' | 'INVALID_REPORT_DETAILS' | 'INVALID_REPORT_NOTE' | 'INVALID_REPORT_STATE' | 'INVALID_SHIP_NAME' | 'INVALID_SHIP_NOTE' | 'INVALID_SHIP_TYPE' | 'LABEL_CARRIED' | 'LABEL_KEY_TAKEN' | 'LABEL_NOT_FOUND' | 'LABEL_VALUE_CARRIED' | 'LABEL_VALUE_NOT_FOUND' | 'LEASE_ENDED' | 'MESSAGE_NOT_FOUND' | 'NETWORK_PLUGIN_REGISTERED' | 'NOT_A_TRIERARCH' | 'NOT_THE_LABEL_OWNER' | 'NOT_REACHABLE' | 'NOT_THE_NETWORK_PLUGIN' | 'NOT_THE_OPERATOR_SHIP' | 'OPERATOR_EMAIL_TAKEN' | 'OPERATOR_HAS_NO_PASSWORD' | 'OPERATOR_SHIP_GETS_NO_STARTING_PROMPT' | 'OPERATOR_SHIP_HAS_NO_SECRET' | 'OPERATOR_SHIP_IS_NOT_PINGED' | 'OPERATOR_SHIP_IS_PERMANENT' | 'PAYLOAD_TOO_LARGE' | 'PING_NOT_RESENT' | 'REPORT_DETAILS_TOO_LARGE' | 'RESERVED_CONTENT_TYPE' | 'SHIP_ALREADY_RETIRED' | 'SHIP_NAME_RESERVED' | 'SHIP_NAME_TAKEN' | 'SHIP_NOT_AWAITING_CREW' | 'SHIP_NOT_CREWED' | 'SHIP_LABEL_LIMIT_REACHED' | 'SHIP_LIMIT_REACHED' | 'SHIP_NOT_FOUND' | 'SIGN_IN_TICKET_INVALID' | 'UNKNOWN_CREW_TOKEN' | 'UNRESOLVABLE_SELECTOR' | 'WRONG_EMAIL_OR_PASSWORD' | 'WRONG_SHIP_ID_OR_SECRET';
|
|
4
4
|
/**
|
|
5
5
|
* Why the domain refused a request. Adapters map the kind to their own error
|
|
6
6
|
* shape (a tRPC code, an exit code); the message is safe to show a caller.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/domain/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/domain/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;AA2G5C,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAA4B,IAAO,EAAE,OAAe;IACxE,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAChC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aeolus-fleet/core",
|
|
3
|
-
"version": "0.25.
|
|
3
|
+
"version": "0.25.1",
|
|
4
4
|
"description": "The Aeolus fleet server: ships, guaranteed delivery and the API for Claude Code, Codex and any agent.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-agents",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"postpack": "rm LICENSE"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@aeolus-fleet/common": "0.25.
|
|
54
|
+
"@aeolus-fleet/common": "0.25.1",
|
|
55
55
|
"@fastify/websocket": "^11.3.1",
|
|
56
56
|
"@modelcontextprotocol/server": "^2.3.0",
|
|
57
57
|
"@prisma/adapter-pg": "^7.10.0",
|
|
@@ -212,8 +212,9 @@ enum CrewStatus {
|
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
/// A standing request that a ship be kept crewed (decision 0029): at most one per
|
|
215
|
-
/// ship, so the ship's id is its key. Its settings are
|
|
216
|
-
///
|
|
215
|
+
/// ship, so the ship's id is its key. Its settings are crew settings of at most
|
|
216
|
+
/// 16 KB, checked but never acted on; each request replaces them and moves their
|
|
217
|
+
/// version by one.
|
|
217
218
|
model CrewRequest {
|
|
218
219
|
shipId String @id @map("ship_id")
|
|
219
220
|
fleetId String @map("fleet_id")
|