@aeolus-fleet/core 0.26.1 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/http/request-credentials.d.ts +2 -9
  3. package/dist/adapters/http/request-credentials.js +8 -1
  4. package/dist/adapters/http/request-credentials.js.map +1 -1
  5. package/dist/adapters/http/server.js +2 -1
  6. package/dist/adapters/http/server.js.map +1 -1
  7. package/dist/adapters/mcp/mcp-endpoint.js +11 -1
  8. package/dist/adapters/mcp/mcp-endpoint.js.map +1 -1
  9. package/dist/adapters/prisma/generated/browser.d.ts +8 -0
  10. package/dist/adapters/prisma/generated/client.d.ts +8 -0
  11. package/dist/adapters/prisma/generated/enums.d.ts +2 -0
  12. package/dist/adapters/prisma/generated/enums.js +3 -1
  13. package/dist/adapters/prisma/generated/enums.js.map +1 -1
  14. package/dist/adapters/prisma/generated/internal/class.d.ts +11 -0
  15. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  16. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  17. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +94 -1
  18. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +18 -1
  19. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  20. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +18 -0
  21. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +18 -1
  22. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  23. package/dist/adapters/prisma/generated/models/Delivery.d.ts +71 -1
  24. package/dist/adapters/prisma/generated/models/Fleet.d.ts +275 -0
  25. package/dist/adapters/prisma/generated/models/Lease.d.ts +113 -1
  26. package/dist/adapters/prisma/generated/models/NetworkSettings.d.ts +151 -19
  27. package/dist/adapters/prisma/generated/models/ReachRefusal.d.ts +71 -1
  28. package/dist/adapters/prisma/generated/models/ScopeNamespace.d.ts +1220 -0
  29. package/dist/adapters/prisma/generated/models/ScopeNamespace.js +2 -0
  30. package/dist/adapters/prisma/generated/models/ScopeNamespace.js.map +1 -0
  31. package/dist/adapters/prisma/generated/models/Ship.d.ts +983 -55
  32. package/dist/adapters/prisma/generated/models.d.ts +1 -0
  33. package/dist/adapters/prisma/health.js +27 -7
  34. package/dist/adapters/prisma/health.js.map +1 -1
  35. package/dist/adapters/prisma/history.js +14 -70
  36. package/dist/adapters/prisma/history.js.map +1 -1
  37. package/dist/adapters/prisma/messaging.js +27 -34
  38. package/dist/adapters/prisma/messaging.js.map +1 -1
  39. package/dist/adapters/prisma/network.js +39 -12
  40. package/dist/adapters/prisma/network.js.map +1 -1
  41. package/dist/adapters/prisma/registry.js +65 -11
  42. package/dist/adapters/prisma/registry.js.map +1 -1
  43. package/dist/adapters/prisma/rows.d.ts +3 -0
  44. package/dist/adapters/prisma/rows.js +20 -7
  45. package/dist/adapters/prisma/rows.js.map +1 -1
  46. package/dist/adapters/prisma/scope-namespaces.d.ts +4 -0
  47. package/dist/adapters/prisma/scope-namespaces.js +39 -0
  48. package/dist/adapters/prisma/scope-namespaces.js.map +1 -0
  49. package/dist/adapters/prisma/unit-of-work.d.ts +2 -1
  50. package/dist/adapters/prisma/unit-of-work.js +2 -0
  51. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  52. package/dist/adapters/rest/rest-api.js +2 -2
  53. package/dist/adapters/rest/rest-api.js.map +1 -1
  54. package/dist/adapters/trpc/console.d.ts +1 -1
  55. package/dist/adapters/trpc/console.js +6 -4
  56. package/dist/adapters/trpc/console.js.map +1 -1
  57. package/dist/adapters/trpc/context.d.ts +20 -4
  58. package/dist/adapters/trpc/fleet.d.ts +179 -82
  59. package/dist/adapters/trpc/fleet.js +117 -53
  60. package/dist/adapters/trpc/fleet.js.map +1 -1
  61. package/dist/adapters/trpc/router.d.ts +231 -80
  62. package/dist/adapters/trpc/ship-contract.js +4 -0
  63. package/dist/adapters/trpc/ship-contract.js.map +1 -1
  64. package/dist/adapters/trpc/ship-protocol.js +7 -5
  65. package/dist/adapters/trpc/ship-protocol.js.map +1 -1
  66. package/dist/adapters/trpc/ship.d.ts +71 -3
  67. package/dist/adapters/trpc/ship.js +42 -5
  68. package/dist/adapters/trpc/ship.js.map +1 -1
  69. package/dist/adapters/trpc/trpc.d.ts +6 -5
  70. package/dist/adapters/trpc/trpc.js +76 -21
  71. package/dist/adapters/trpc/trpc.js.map +1 -1
  72. package/dist/domain/messaging/check-inbox.d.ts +5 -5
  73. package/dist/domain/messaging/check-inbox.js +9 -7
  74. package/dist/domain/messaging/check-inbox.js.map +1 -1
  75. package/dist/domain/messaging/dismiss-delivery.d.ts +9 -4
  76. package/dist/domain/messaging/dismiss-delivery.js +26 -19
  77. package/dist/domain/messaging/dismiss-delivery.js.map +1 -1
  78. package/dist/domain/messaging/message.d.ts +11 -5
  79. package/dist/domain/messaging/message.js +11 -4
  80. package/dist/domain/messaging/message.js.map +1 -1
  81. package/dist/domain/messaging/ping-ship.d.ts +3 -3
  82. package/dist/domain/messaging/ping-ship.js +6 -2
  83. package/dist/domain/messaging/ping-ship.js.map +1 -1
  84. package/dist/domain/messaging/ports.d.ts +9 -3
  85. package/dist/domain/messaging/receive-deliveries.d.ts +2 -0
  86. package/dist/domain/messaging/receive-deliveries.js +1 -0
  87. package/dist/domain/messaging/receive-deliveries.js.map +1 -1
  88. package/dist/domain/messaging/resend-delivery.d.ts +5 -2
  89. package/dist/domain/messaging/resend-delivery.js +8 -4
  90. package/dist/domain/messaging/resend-delivery.js.map +1 -1
  91. package/dist/domain/messaging/send-message.d.ts +9 -2
  92. package/dist/domain/messaging/send-message.js +12 -2
  93. package/dist/domain/messaging/send-message.js.map +1 -1
  94. package/dist/domain/messaging/send-request.d.ts +3 -1
  95. package/dist/domain/messaging/send-request.js +4 -2
  96. package/dist/domain/messaging/send-request.js.map +1 -1
  97. package/dist/domain/registry/assign-label.d.ts +2 -1
  98. package/dist/domain/registry/assign-label.js +3 -2
  99. package/dist/domain/registry/assign-label.js.map +1 -1
  100. package/dist/domain/registry/check-reach.d.ts +63 -4
  101. package/dist/domain/registry/check-reach.js +107 -11
  102. package/dist/domain/registry/check-reach.js.map +1 -1
  103. package/dist/domain/registry/commission-ship.d.ts +17 -8
  104. package/dist/domain/registry/commission-ship.js +24 -10
  105. package/dist/domain/registry/commission-ship.js.map +1 -1
  106. package/dist/domain/registry/crew-request.d.ts +1 -1
  107. package/dist/domain/registry/declare-scopes.d.ts +38 -0
  108. package/dist/domain/registry/declare-scopes.js +34 -0
  109. package/dist/domain/registry/declare-scopes.js.map +1 -0
  110. package/dist/domain/registry/declared-network-rules.d.ts +2 -1
  111. package/dist/domain/registry/declared-network-rules.js +11 -5
  112. package/dist/domain/registry/declared-network-rules.js.map +1 -1
  113. package/dist/domain/registry/discover.d.ts +28 -0
  114. package/dist/domain/registry/discover.js +54 -0
  115. package/dist/domain/registry/discover.js.map +1 -0
  116. package/dist/domain/registry/explain-reach.d.ts +12 -12
  117. package/dist/domain/registry/explain-reach.js +35 -12
  118. package/dist/domain/registry/explain-reach.js.map +1 -1
  119. package/dist/domain/registry/get-ship.d.ts +11 -3
  120. package/dist/domain/registry/get-ship.js +8 -2
  121. package/dist/domain/registry/get-ship.js.map +1 -1
  122. package/dist/domain/registry/get-starting-prompt.d.ts +18 -2
  123. package/dist/domain/registry/get-starting-prompt.js +7 -7
  124. package/dist/domain/registry/get-starting-prompt.js.map +1 -1
  125. package/dist/domain/registry/grant-scopes.d.ts +34 -0
  126. package/dist/domain/registry/grant-scopes.js +35 -0
  127. package/dist/domain/registry/grant-scopes.js.map +1 -0
  128. package/dist/domain/registry/label.d.ts +12 -7
  129. package/dist/domain/registry/label.js +21 -4
  130. package/dist/domain/registry/label.js.map +1 -1
  131. package/dist/domain/registry/list-fleet.d.ts +19 -6
  132. package/dist/domain/registry/list-fleet.js +18 -3
  133. package/dist/domain/registry/list-fleet.js.map +1 -1
  134. package/dist/domain/registry/list-scopes.d.ts +24 -0
  135. package/dist/domain/registry/list-scopes.js +22 -0
  136. package/dist/domain/registry/list-scopes.js.map +1 -0
  137. package/dist/domain/registry/managed-or-assigned.d.ts +25 -0
  138. package/dist/domain/registry/managed-or-assigned.js +23 -0
  139. package/dist/domain/registry/managed-or-assigned.js.map +1 -0
  140. package/dist/domain/registry/named-namespaces.d.ts +19 -0
  141. package/dist/domain/registry/named-namespaces.js +19 -0
  142. package/dist/domain/registry/named-namespaces.js.map +1 -0
  143. package/dist/domain/registry/network-settings.d.ts +84 -24
  144. package/dist/domain/registry/network-settings.js +134 -45
  145. package/dist/domain/registry/network-settings.js.map +1 -1
  146. package/dist/domain/registry/ports.d.ts +63 -1
  147. package/dist/domain/registry/public.d.ts +3 -2
  148. package/dist/domain/registry/public.js +3 -2
  149. package/dist/domain/registry/public.js.map +1 -1
  150. package/dist/domain/registry/reach-refusal.d.ts +12 -4
  151. package/dist/domain/registry/read-assigned-crew-requests.d.ts +12 -3
  152. package/dist/domain/registry/read-assigned-crew-requests.js +8 -8
  153. package/dist/domain/registry/read-assigned-crew-requests.js.map +1 -1
  154. package/dist/domain/registry/read-built-in-rules.d.ts +20 -0
  155. package/dist/domain/registry/read-built-in-rules.js +23 -0
  156. package/dist/domain/registry/read-built-in-rules.js.map +1 -0
  157. package/dist/domain/registry/read-clear-requests.d.ts +5 -3
  158. package/dist/domain/registry/read-clear-requests.js +7 -5
  159. package/dist/domain/registry/read-clear-requests.js.map +1 -1
  160. package/dist/domain/registry/read-on-behalf.d.ts +20 -0
  161. package/dist/domain/registry/read-on-behalf.js +31 -0
  162. package/dist/domain/registry/read-on-behalf.js.map +1 -0
  163. package/dist/domain/registry/read-reach.d.ts +62 -0
  164. package/dist/domain/registry/read-reach.js +78 -0
  165. package/dist/domain/registry/read-reach.js.map +1 -0
  166. package/dist/domain/registry/recrew-ship.d.ts +3 -2
  167. package/dist/domain/registry/recrew-ship.js +6 -1
  168. package/dist/domain/registry/recrew-ship.js.map +1 -1
  169. package/dist/domain/registry/release-ship.d.ts +6 -3
  170. package/dist/domain/registry/release-ship.js +7 -7
  171. package/dist/domain/registry/release-ship.js.map +1 -1
  172. package/dist/domain/registry/remove-crew-request.d.ts +4 -3
  173. package/dist/domain/registry/remove-crew-request.js +6 -1
  174. package/dist/domain/registry/remove-crew-request.js.map +1 -1
  175. package/dist/domain/registry/rename-ship.d.ts +7 -5
  176. package/dist/domain/registry/rename-ship.js +9 -3
  177. package/dist/domain/registry/rename-ship.js.map +1 -1
  178. package/dist/domain/registry/request-crew.d.ts +5 -4
  179. package/dist/domain/registry/request-crew.js +6 -1
  180. package/dist/domain/registry/request-crew.js.map +1 -1
  181. package/dist/domain/registry/request-worktree-clear.d.ts +3 -2
  182. package/dist/domain/registry/request-worktree-clear.js +6 -1
  183. package/dist/domain/registry/request-worktree-clear.js.map +1 -1
  184. package/dist/domain/registry/retire-ship.d.ts +16 -7
  185. package/dist/domain/registry/retire-ship.js +46 -5
  186. package/dist/domain/registry/retire-ship.js.map +1 -1
  187. package/dist/domain/registry/scope-grant.d.ts +53 -0
  188. package/dist/domain/registry/scope-grant.js +74 -0
  189. package/dist/domain/registry/scope-grant.js.map +1 -0
  190. package/dist/domain/registry/scope-namespace.d.ts +68 -0
  191. package/dist/domain/registry/scope-namespace.js +82 -0
  192. package/dist/domain/registry/scope-namespace.js.map +1 -0
  193. package/dist/domain/registry/set-built-in-rule.d.ts +28 -0
  194. package/dist/domain/registry/set-built-in-rule.js +33 -0
  195. package/dist/domain/registry/set-built-in-rule.js.map +1 -0
  196. package/dist/domain/registry/set-network-rules.d.ts +3 -3
  197. package/dist/domain/registry/set-network-rules.js +2 -2
  198. package/dist/domain/registry/set-owner.d.ts +30 -0
  199. package/dist/domain/registry/set-owner.js +37 -0
  200. package/dist/domain/registry/set-owner.js.map +1 -0
  201. package/dist/domain/registry/set-statement.d.ts +27 -0
  202. package/dist/domain/registry/set-statement.js +28 -0
  203. package/dist/domain/registry/set-statement.js.map +1 -0
  204. package/dist/domain/registry/ship.d.ts +70 -10
  205. package/dist/domain/registry/ship.js +95 -10
  206. package/dist/domain/registry/ship.js.map +1 -1
  207. package/dist/domain/registry/statement.d.ts +32 -0
  208. package/dist/domain/registry/statement.js +39 -0
  209. package/dist/domain/registry/statement.js.map +1 -0
  210. package/dist/domain/registry/unassign-label.js +1 -1
  211. package/dist/domain/registry/unassign-label.js.map +1 -1
  212. package/dist/domain/registry/whoami.d.ts +5 -1
  213. package/dist/domain/registry/whoami.js +7 -4
  214. package/dist/domain/registry/whoami.js.map +1 -1
  215. package/dist/domain/shared/caller.d.ts +5 -2
  216. package/dist/domain/shared/caller.js.map +1 -1
  217. package/dist/domain/shared/errors.d.ts +1 -1
  218. package/dist/domain/shared/errors.js.map +1 -1
  219. package/dist/domain/shared/events-read.d.ts +16 -0
  220. package/dist/domain/shared/events-read.js +15 -0
  221. package/dist/domain/shared/events-read.js.map +1 -0
  222. package/dist/domain/shared/follow-fleet.d.ts +8 -2
  223. package/dist/domain/shared/follow-fleet.js +14 -4
  224. package/dist/domain/shared/follow-fleet.js.map +1 -1
  225. package/dist/domain/shared/health.d.ts +9 -2
  226. package/dist/domain/shared/health.js +9 -3
  227. package/dist/domain/shared/health.js.map +1 -1
  228. package/dist/domain/shared/history.d.ts +9 -42
  229. package/dist/domain/shared/history.js +9 -0
  230. package/dist/domain/shared/history.js.map +1 -1
  231. package/dist/domain/shared/read-fleet-events.d.ts +8 -2
  232. package/dist/domain/shared/read-fleet-events.js +10 -4
  233. package/dist/domain/shared/read-fleet-events.js.map +1 -1
  234. package/dist/domain/shared/read-health.d.ts +4 -1
  235. package/dist/domain/shared/read-health.js +7 -2
  236. package/dist/domain/shared/read-health.js.map +1 -1
  237. package/dist/domain/shared/read-inbox.d.ts +6 -3
  238. package/dist/domain/shared/read-inbox.js +14 -4
  239. package/dist/domain/shared/read-inbox.js.map +1 -1
  240. package/dist/domain/shared/read-message.d.ts +6 -2
  241. package/dist/domain/shared/read-message.js +6 -2
  242. package/dist/domain/shared/read-message.js.map +1 -1
  243. package/dist/domain/shared/read-needs-attention.d.ts +4 -1
  244. package/dist/domain/shared/read-needs-attention.js +8 -3
  245. package/dist/domain/shared/read-needs-attention.js.map +1 -1
  246. package/dist/domain/shared/read-ship-messages.d.ts +6 -2
  247. package/dist/domain/shared/read-ship-messages.js +7 -2
  248. package/dist/domain/shared/read-ship-messages.js.map +1 -1
  249. package/dist/domain/shared/read-ship-timeline.d.ts +5 -2
  250. package/dist/domain/shared/read-ship-timeline.js +11 -6
  251. package/dist/domain/shared/read-ship-timeline.js.map +1 -1
  252. package/dist/domain/shared/read-ship-way.d.ts +11 -4
  253. package/dist/domain/shared/read-ship-way.js +9 -2
  254. package/dist/domain/shared/read-ship-way.js.map +1 -1
  255. package/dist/domain/shared/stuck.d.ts +10 -1
  256. package/dist/domain/shared/stuck.js +1 -1
  257. package/dist/domain/shared/stuck.js.map +1 -1
  258. package/dist/wiring.d.ts +18 -4
  259. package/dist/wiring.js +37 -18
  260. package/dist/wiring.js.map +1 -1
  261. package/package.json +2 -2
  262. package/src/adapters/prisma/migrations/20261018100000_force_scope/migration.sql +8 -0
  263. package/src/adapters/prisma/migrations/20261018110000_forced_delivery/migration.sql +4 -0
  264. package/src/adapters/prisma/migrations/20261018120000_person_and_app_ships/migration.sql +3 -0
  265. package/src/adapters/prisma/migrations/20261018130000_owners/migration.sql +14 -0
  266. package/src/adapters/prisma/migrations/20261018140000_owners_on_reach_refusals/migration.sql +14 -0
  267. package/src/adapters/prisma/migrations/20261018150000_network_verbs/migration.sql +9 -0
  268. package/src/adapters/prisma/migrations/20261018160000_built_in_rules/migration.sql +13 -0
  269. package/src/adapters/prisma/migrations/20261018170000_network_rules_a_list/migration.sql +5 -0
  270. package/src/adapters/prisma/migrations/20261018180000_verb_on_reach_refusals/migration.sql +4 -0
  271. package/src/adapters/prisma/migrations/20261018200000_lease_statements/migration.sql +3 -0
  272. package/src/adapters/prisma/migrations/20261018210000_declare_and_grant_scopes/migration.sql +8 -0
  273. package/src/adapters/prisma/migrations/20261018220000_plugin_scopes/migration.sql +14 -0
  274. package/src/adapters/prisma/migrations/20261018230000_scope_namespaces/migration.sql +20 -0
  275. package/src/adapters/prisma/migrations/20261018240000_trierarch_plugin_crew_run/migration.sql +44 -0
  276. package/src/adapters/prisma/migrations/20261018250000_scope_catalogue/migration.sql +66 -0
  277. package/src/adapters/prisma/migrations/20261019090000_reach_refusal_asked_by/migration.sql +2 -0
  278. package/src/adapters/prisma/migrations/20261019100000_on_behalf_scope/migration.sql +59 -0
  279. package/src/adapters/prisma/migrations/20261019110000_events_fleet_id_occurred_at/migration.sql +2 -0
  280. package/src/adapters/prisma/schema.prisma +47 -2
  281. package/dist/domain/shared/read-no-ship-can-take.d.ts +0 -13
  282. package/dist/domain/shared/read-no-ship-can-take.js +0 -12
  283. package/dist/domain/shared/read-no-ship-can-take.js.map +0 -1
  284. package/dist/domain/shared/read-overdue.d.ts +0 -13
  285. package/dist/domain/shared/read-overdue.js +0 -12
  286. package/dist/domain/shared/read-overdue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../src/wiring.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeolus-fleet/core",
3
- "version": "0.26.1",
3
+ "version": "0.27.0",
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.26.1",
54
+ "@aeolus-fleet/common": "0.27.0",
55
55
  "@fastify/websocket": "^11.3.1",
56
56
  "@modelcontextprotocol/server": "^2.3.0",
57
57
  "@prisma/adapter-pg": "^7.10.0",
@@ -0,0 +1,8 @@
1
+ -- messages:force (decision 0040): a forced send, whose delivery comes first.
2
+ -- argo holds every scope, so each fleet's argo gets it too.
3
+ ALTER TABLE "ships" DROP CONSTRAINT "ships_scopes_known";
4
+ ALTER TABLE "ships" ADD CONSTRAINT "ships_scopes_known" CHECK (
5
+ "scopes" IS NOT NULL AND "scopes" <@ ARRAY['messages:send', 'messages:receive', 'messages:force', 'fleet:read', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network']::TEXT[]
6
+ );
7
+
8
+ UPDATE "ships" SET "scopes" = array_append("scopes", 'messages:force') WHERE "kind" = 'operator' AND NOT ('messages:force' = ANY("scopes"));
@@ -0,0 +1,4 @@
1
+ -- A delivery keeps whether its message was forced (decision 0040): forced
2
+ -- deliveries come first in receive and push receive. Every delivery so far
3
+ -- was a plain one.
4
+ ALTER TABLE "deliveries" ADD COLUMN "is_forced" BOOLEAN NOT NULL DEFAULT false;
@@ -0,0 +1,3 @@
1
+ -- A ship is also a person's or an app's (decision 0044).
2
+ ALTER TYPE "ship_kind" ADD VALUE 'person';
3
+ ALTER TYPE "ship_kind" ADD VALUE 'app';
@@ -0,0 +1,14 @@
1
+ -- Every ship but argo and the viewer has an owner: a person's ship or argo (decision 0045).
2
+ ALTER TABLE "ships" ADD COLUMN "owner_ship_id" TEXT;
3
+
4
+ CREATE INDEX "ships_fleet_id_owner_ship_id_idx" ON "ships"("fleet_id", "owner_ship_id");
5
+
6
+ ALTER TABLE "ships" ADD CONSTRAINT "ships_fleet_id_owner_ship_id_fkey" FOREIGN KEY ("fleet_id", "owner_ship_id") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
7
+
8
+ -- The ships from before owners are argo's, retired ones included.
9
+ UPDATE "ships" AS ship
10
+ SET "owner_ship_id" = argo."id"
11
+ FROM "ships" AS argo
12
+ WHERE argo."fleet_id" = ship."fleet_id"
13
+ AND argo."kind" = 'operator'
14
+ AND ship."kind" NOT IN ('operator', 'viewer');
@@ -0,0 +1,14 @@
1
+ -- A refusal keeps each ship's owner then (decision 0034). Refusals from
2
+ -- before owners knew none, so each of their ships gets none.
3
+ UPDATE "reach_refusals"
4
+ SET
5
+ "sender" = "sender" || '{"owner": null}'::jsonb,
6
+ "recipient" = CASE "recipient"->>'kind'
7
+ WHEN 'ship' THEN jsonb_set("recipient", '{ship}', ("recipient"->'ship') || '{"owner": null}'::jsonb)
8
+ ELSE jsonb_set(
9
+ "recipient",
10
+ '{ships}',
11
+ COALESCE((SELECT jsonb_agg(ship || '{"owner": null}'::jsonb ORDER BY position) FROM jsonb_array_elements("recipient"->'ships') WITH ORDINALITY AS refused(ship, position)), '[]'::jsonb)
12
+ )
13
+ END
14
+ WHERE NOT "sender" ? 'owner';
@@ -0,0 +1,9 @@
1
+ -- Every rule names its verb (decision 0034). Rules allowed only sends before,
2
+ -- so every rule a fleet holds and every rule a ship declared becomes a send rule.
3
+ UPDATE "network_settings"
4
+ SET "rules" = (SELECT jsonb_agg(jsonb_build_object('verb', 'send') || rule ORDER BY position) FROM jsonb_array_elements("rules") WITH ORDINALITY AS kept(rule, position))
5
+ WHERE jsonb_typeof("rules") = 'array' AND jsonb_array_length("rules") > 0;
6
+
7
+ UPDATE "declared_network_rules"
8
+ SET "rules" = (SELECT jsonb_agg(jsonb_build_object('verb', 'send') || rule ORDER BY position) FROM jsonb_array_elements("rules") WITH ORDINALITY AS kept(rule, position))
9
+ WHERE jsonb_array_length("rules") > 0;
@@ -0,0 +1,13 @@
1
+ -- The built-in rules that can be off (decision 0034): the viewer reading and
2
+ -- open per verb, on at fleet create.
3
+ ALTER TABLE "network_settings"
4
+ ADD COLUMN IF NOT EXISTS "built_in_viewer_read" BOOLEAN NOT NULL DEFAULT true,
5
+ ADD COLUMN IF NOT EXISTS "built_in_open_send" BOOLEAN NOT NULL DEFAULT true,
6
+ ADD COLUMN IF NOT EXISTS "built_in_open_read" BOOLEAN NOT NULL DEFAULT true,
7
+ ADD COLUMN IF NOT EXISTS "built_in_open_manage" BOOLEAN NOT NULL DEFAULT true;
8
+
9
+ -- A fleet whose networking plugin set rules was checked against them alone, so
10
+ -- open is off for it; every other fleet reached every ship, so open stays on.
11
+ UPDATE "network_settings"
12
+ SET "built_in_open_send" = false, "built_in_open_read" = false, "built_in_open_manage" = false
13
+ WHERE "plugin_ship_id" IS NOT NULL AND "rules" IS NOT NULL;
@@ -0,0 +1,5 @@
1
+ -- A fleet's rules are a list beside the built-in rules (decision 0034): no
2
+ -- rules was all-to-all, which open, on for every such fleet, now says.
3
+ UPDATE "network_settings" SET "rules" = '[]'::jsonb WHERE "rules" IS NULL;
4
+
5
+ ALTER TABLE "network_settings" ALTER COLUMN "rules" SET DEFAULT '[]'::jsonb, ALTER COLUMN "rules" SET NOT NULL;
@@ -0,0 +1,4 @@
1
+ -- A refusal records the verb the sender tried (decision 0034). Only sends were
2
+ -- checked before, so every refusal so far is a refused send.
3
+ ALTER TABLE "reach_refusals" ADD COLUMN IF NOT EXISTS "verb" TEXT NOT NULL DEFAULT 'send';
4
+ ALTER TABLE "reach_refusals" ALTER COLUMN "verb" DROP DEFAULT;
@@ -0,0 +1,3 @@
1
+ -- A crew's statement, kept with its lease and versioned (decision 0047).
2
+ ALTER TABLE "leases" ADD COLUMN "statement" JSONB;
3
+ ALTER TABLE "leases" ADD COLUMN "statement_version" INTEGER NOT NULL DEFAULT 0;
@@ -0,0 +1,8 @@
1
+ -- scopes:declare and scopes:grant (decision 0046): taking up a plugin namespace, and granting on a live ship.
2
+ -- argo holds every scope, so each fleet's argo gets both too.
3
+ ALTER TABLE "ships" DROP CONSTRAINT "ships_scopes_known";
4
+ ALTER TABLE "ships" ADD CONSTRAINT "ships_scopes_known" CHECK (
5
+ "scopes" IS NOT NULL AND "scopes" <@ ARRAY['messages:send', 'messages:receive', 'messages:force', 'fleet:read', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network', 'scopes:declare', 'scopes:grant']::TEXT[]
6
+ );
7
+
8
+ UPDATE "ships" SET "scopes" = array_cat("scopes", ARRAY['scopes:declare', 'scopes:grant']::TEXT[]) WHERE "kind" = 'operator' AND NOT ('scopes:declare' = ANY("scopes"));
@@ -0,0 +1,14 @@
1
+ -- A ship holds core scopes and plugin scopes, each <namespace>:<action> (decision 0046):
2
+ -- a scope of a core namespace is one of the known core scopes; any other namespace is a plugin's.
3
+ CREATE FUNCTION "ships_scopes_are_known"("scopes" TEXT[]) RETURNS BOOLEAN IMMUTABLE LANGUAGE SQL AS $$
4
+ SELECT "scopes" IS NOT NULL AND NOT EXISTS (
5
+ SELECT 1 FROM unnest("scopes") AS "scope"
6
+ WHERE NOT (
7
+ "scope" = ANY(ARRAY['messages:send', 'messages:receive', 'messages:force', 'fleet:read', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network', 'scopes:declare', 'scopes:grant']::TEXT[])
8
+ OR ("scope" ~ '^[a-z][a-z0-9-]{0,31}:[a-z][a-z0-9-]{0,31}$' AND split_part("scope", ':', 1) <> ALL(ARRAY['messages', 'fleet', 'crew', 'labels', 'scopes']::TEXT[]))
9
+ )
10
+ )
11
+ $$;
12
+
13
+ ALTER TABLE "ships" DROP CONSTRAINT "ships_scopes_known";
14
+ ALTER TABLE "ships" ADD CONSTRAINT "ships_scopes_known" CHECK ("ships_scopes_are_known"("scopes"));
@@ -0,0 +1,20 @@
1
+ -- A plugin's namespace (decision 0046): one per declaring ship, unique in the fleet,
2
+ -- with its whole list of scopes and their descriptions.
3
+ -- CreateTable
4
+ CREATE TABLE "scope_namespaces" (
5
+ "fleet_id" TEXT NOT NULL,
6
+ "namespace" TEXT NOT NULL,
7
+ "declared_by" TEXT NOT NULL,
8
+ "scopes" JSONB NOT NULL,
9
+
10
+ CONSTRAINT "scope_namespaces_pkey" PRIMARY KEY ("fleet_id","namespace")
11
+ );
12
+
13
+ -- CreateIndex
14
+ CREATE UNIQUE INDEX "scope_namespaces_fleet_id_declared_by_key" ON "scope_namespaces"("fleet_id", "declared_by");
15
+
16
+ -- AddForeignKey
17
+ ALTER TABLE "scope_namespaces" ADD CONSTRAINT "scope_namespaces_fleet_id_fkey" FOREIGN KEY ("fleet_id") REFERENCES "fleets"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
18
+
19
+ -- AddForeignKey
20
+ ALTER TABLE "scope_namespaces" ADD CONSTRAINT "scope_namespaces_fleet_id_declared_by_fkey" FOREIGN KEY ("fleet_id", "declared_by") REFERENCES "ships"("fleet_id", "id") ON DELETE RESTRICT ON UPDATE CASCADE;
@@ -0,0 +1,44 @@
1
+ -- The trierarch plugin gives each machine's trierarch ship crew:run at commission, and a commission grants
2
+ -- only what its commissioner holds (decision 0046): every active trierarch-plugin ship gets crew:run.
3
+ -- Every state change writes its event: each ship it changes gets ScopesChanged, by the system, taking the
4
+ -- next number of its fleet's stream. Its id is an evt_ id as common/src/ids makes them: the time in
5
+ -- milliseconds, then 80 random bits, in lowercase Crockford base32.
6
+ DO $$
7
+ DECLARE
8
+ alphabet CONSTANT text := '0123456789abcdefghjkmnpqrstvwxyz';
9
+ changed record;
10
+ at timestamptz;
11
+ millis bigint;
12
+ body text;
13
+ next_seq bigint;
14
+ BEGIN
15
+ FOR changed IN
16
+ UPDATE "ships" SET "scopes" = array_append("scopes", 'crew:run')
17
+ WHERE "type" = 'trierarch-plugin' AND "retired_at" IS NULL AND NOT ('crew:run' = ANY("scopes"))
18
+ RETURNING "fleet_id", "id"
19
+ LOOP
20
+ at := clock_timestamp();
21
+ millis := floor(extract(epoch FROM at) * 1000)::bigint;
22
+ body := '';
23
+ FOR position IN REVERSE 9..0 LOOP
24
+ body := body || substr(alphabet, ((millis >> (position * 5)) & 31)::integer + 1, 1);
25
+ END LOOP;
26
+ FOR position IN 1..16 LOOP
27
+ body := body || substr(alphabet, floor(random() * 32)::integer + 1, 1);
28
+ END LOOP;
29
+
30
+ UPDATE "fleets" SET "last_event_seq" = "last_event_seq" + 1 WHERE "id" = changed."fleet_id"
31
+ RETURNING "last_event_seq" INTO next_seq;
32
+ INSERT INTO "events" ("id", "fleet_id", "type", "occurred_at", "ship_id", "details", "seq")
33
+ VALUES (
34
+ 'evt_' || body,
35
+ changed."fleet_id",
36
+ 'ScopesChanged',
37
+ at,
38
+ changed."id",
39
+ jsonb_build_object('added', 'crew:run', 'removed', ''),
40
+ next_seq
41
+ );
42
+ END LOOP;
43
+ END;
44
+ $$;
@@ -0,0 +1,66 @@
1
+ -- The scope catalogue (decision 0046): fleet:commission and messages:resend are core scopes.
2
+ CREATE OR REPLACE FUNCTION "ships_scopes_are_known"("scopes" TEXT[]) RETURNS BOOLEAN IMMUTABLE LANGUAGE SQL AS $$
3
+ SELECT "scopes" IS NOT NULL AND NOT EXISTS (
4
+ SELECT 1 FROM unnest("scopes") AS "scope"
5
+ WHERE NOT (
6
+ "scope" = ANY(ARRAY['messages:send', 'messages:receive', 'messages:force', 'messages:resend', 'fleet:read', 'fleet:commission', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network', 'scopes:declare', 'scopes:grant']::TEXT[])
7
+ OR ("scope" ~ '^[a-z][a-z0-9-]{0,31}:[a-z][a-z0-9-]{0,31}$' AND split_part("scope", ':', 1) <> ALL(ARRAY['messages', 'fleet', 'crew', 'labels', 'scopes']::TEXT[]))
8
+ )
9
+ )
10
+ $$;
11
+
12
+ -- Each holder keeps what it did within the new bounds: every active ship holding fleet:manage also gets
13
+ -- fleet:commission and messages:resend, and each active plugin ship, by its type, holds exactly its set,
14
+ -- losing what the set leaves out. Scopes stay in catalogue order, a plugin's own after them. Every ship it
15
+ -- changes gets one ScopesChanged, by the system, naming what it added and took away, at the next number of
16
+ -- its fleet's stream, with an evt_ id as common/src/ids makes them (the time in milliseconds, then 80 random
17
+ -- bits, in lowercase Crockford base32).
18
+ DO $$
19
+ DECLARE
20
+ alphabet CONSTANT text := '0123456789abcdefghjkmnpqrstvwxyz';
21
+ catalogue CONSTANT text[] := ARRAY['messages:send', 'messages:receive', 'messages:force', 'messages:resend', 'fleet:read', 'fleet:commission', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network', 'scopes:declare', 'scopes:grant'];
22
+ ship record;
23
+ wanted text[];
24
+ added text;
25
+ removed text;
26
+ at timestamptz;
27
+ millis bigint;
28
+ body text;
29
+ next_seq bigint;
30
+ BEGIN
31
+ FOR ship IN
32
+ SELECT "id", "fleet_id", "type", "scopes" FROM "ships"
33
+ WHERE "retired_at" IS NULL AND ("type" IN ('squadrons', 'trierarch-plugin') OR 'fleet:manage' = ANY("scopes"))
34
+ ORDER BY "fleet_id", "id"
35
+ FOR UPDATE
36
+ LOOP
37
+ wanted := CASE ship."type"
38
+ WHEN 'squadrons' THEN ARRAY['messages:send', 'messages:receive', 'fleet:read', 'fleet:commission', 'fleet:manage', 'labels:define', 'labels:assign', 'scopes:declare']
39
+ WHEN 'trierarch-plugin' THEN ARRAY['messages:send', 'messages:receive', 'fleet:read', 'fleet:commission', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign']
40
+ ELSE ship."scopes" || ARRAY['fleet:commission', 'messages:resend']
41
+ END;
42
+ SELECT array_agg("scope" ORDER BY coalesce(array_position(catalogue, "scope"), cardinality(catalogue) + 1), "first_at") INTO wanted
43
+ FROM (SELECT "scope", min("place") AS "first_at" FROM unnest(wanted) WITH ORDINALITY AS u("scope", "place") GROUP BY "scope") AS once;
44
+ added := coalesce((SELECT string_agg("scope", ' ' ORDER BY "place") FROM unnest(wanted) WITH ORDINALITY AS u("scope", "place") WHERE "scope" <> ALL(ship."scopes")), '');
45
+ removed := coalesce((SELECT string_agg("scope", ' ' ORDER BY "place") FROM unnest(ship."scopes") WITH ORDINALITY AS u("scope", "place") WHERE "scope" <> ALL(wanted)), '');
46
+ CONTINUE WHEN added = '' AND removed = '';
47
+
48
+ UPDATE "ships" SET "scopes" = wanted WHERE "id" = ship."id";
49
+
50
+ at := clock_timestamp();
51
+ millis := floor(extract(epoch FROM at) * 1000)::bigint;
52
+ body := '';
53
+ FOR position IN REVERSE 9..0 LOOP
54
+ body := body || substr(alphabet, ((millis >> (position * 5)) & 31)::integer + 1, 1);
55
+ END LOOP;
56
+ FOR position IN 1..16 LOOP
57
+ body := body || substr(alphabet, floor(random() * 32)::integer + 1, 1);
58
+ END LOOP;
59
+
60
+ UPDATE "fleets" SET "last_event_seq" = "last_event_seq" + 1 WHERE "id" = ship."fleet_id"
61
+ RETURNING "last_event_seq" INTO next_seq;
62
+ INSERT INTO "events" ("id", "fleet_id", "type", "occurred_at", "ship_id", "details", "seq")
63
+ VALUES ('evt_' || body, ship."fleet_id", 'ScopesChanged', at, ship."id", jsonb_build_object('added', added, 'removed', removed), next_seq);
64
+ END LOOP;
65
+ END;
66
+ $$;
@@ -0,0 +1,2 @@
1
+ -- The plugin ship that read on behalf of the sender (decision 0034); null for the sender's own call.
2
+ ALTER TABLE "reach_refusals" ADD COLUMN "asked_by" JSONB;
@@ -0,0 +1,59 @@
1
+ -- fleet:on-behalf joins the core scopes (decision 0046): a ship reads on behalf of a named ship with it (decision 0034).
2
+ CREATE OR REPLACE FUNCTION "ships_scopes_are_known"("scopes" TEXT[]) RETURNS BOOLEAN IMMUTABLE LANGUAGE SQL AS $$
3
+ SELECT "scopes" IS NOT NULL AND NOT EXISTS (
4
+ SELECT 1 FROM unnest("scopes") AS "scope"
5
+ WHERE NOT (
6
+ "scope" = ANY(ARRAY['messages:send', 'messages:receive', 'messages:force', 'messages:resend', 'fleet:read', 'fleet:commission', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network', 'fleet:on-behalf', 'scopes:declare', 'scopes:grant']::TEXT[])
7
+ OR ("scope" ~ '^[a-z][a-z0-9-]{0,31}:[a-z][a-z0-9-]{0,31}$' AND split_part("scope", ':', 1) <> ALL(ARRAY['messages', 'fleet', 'crew', 'labels', 'scopes']::TEXT[]))
8
+ )
9
+ )
10
+ $$;
11
+
12
+ -- argo holds every scope, and squadrons reads on behalf of a person's ship (decision 0017): every argo and every
13
+ -- active squadrons ship gets fleet:on-behalf, its scopes kept in catalogue order, a plugin's own after them.
14
+ -- Every state change writes its event: each ship it changes gets
15
+ -- ScopesChanged, by the system, taking the next number of its fleet's stream. Its id is an evt_ id as
16
+ -- common/src/ids makes them: the time in milliseconds, then 80 random bits, in lowercase Crockford base32.
17
+ DO $$
18
+ DECLARE
19
+ alphabet CONSTANT text := '0123456789abcdefghjkmnpqrstvwxyz';
20
+ catalogue CONSTANT text[] := ARRAY['messages:send', 'messages:receive', 'messages:force', 'messages:resend', 'fleet:read', 'fleet:commission', 'fleet:manage', 'crew:assign', 'crew:run', 'labels:define', 'labels:assign', 'fleet:network', 'fleet:on-behalf', 'scopes:declare', 'scopes:grant'];
21
+ changed record;
22
+ at timestamptz;
23
+ millis bigint;
24
+ body text;
25
+ next_seq bigint;
26
+ BEGIN
27
+ FOR changed IN
28
+ UPDATE "ships" SET "scopes" = (
29
+ SELECT array_agg("scope" ORDER BY coalesce(array_position(catalogue, "scope"), cardinality(catalogue) + 1), "place")
30
+ FROM unnest(array_append("ships"."scopes", 'fleet:on-behalf')) WITH ORDINALITY AS u("scope", "place")
31
+ )
32
+ WHERE ("kind" = 'operator' OR "type" = 'squadrons') AND "retired_at" IS NULL AND NOT ('fleet:on-behalf' = ANY("scopes"))
33
+ RETURNING "fleet_id", "id"
34
+ LOOP
35
+ at := clock_timestamp();
36
+ millis := floor(extract(epoch FROM at) * 1000)::bigint;
37
+ body := '';
38
+ FOR position IN REVERSE 9..0 LOOP
39
+ body := body || substr(alphabet, ((millis >> (position * 5)) & 31)::integer + 1, 1);
40
+ END LOOP;
41
+ FOR position IN 1..16 LOOP
42
+ body := body || substr(alphabet, floor(random() * 32)::integer + 1, 1);
43
+ END LOOP;
44
+
45
+ UPDATE "fleets" SET "last_event_seq" = "last_event_seq" + 1 WHERE "id" = changed."fleet_id"
46
+ RETURNING "last_event_seq" INTO next_seq;
47
+ INSERT INTO "events" ("id", "fleet_id", "type", "occurred_at", "ship_id", "details", "seq")
48
+ VALUES (
49
+ 'evt_' || body,
50
+ changed."fleet_id",
51
+ 'ScopesChanged',
52
+ at,
53
+ changed."id",
54
+ jsonb_build_object('added', 'fleet:on-behalf', 'removed', ''),
55
+ next_seq
56
+ );
57
+ END LOOP;
58
+ END;
59
+ $$;
@@ -0,0 +1,2 @@
1
+ -- The health trend replay reads a fleet's events since a time (decision 0042), not its whole history (#865).
2
+ CREATE INDEX "events_fleet_id_occurred_at_idx" ON "events"("fleet_id", "occurred_at");
@@ -53,6 +53,7 @@ model Fleet {
53
53
  shipLabels ShipLabel[]
54
54
  networkSettings NetworkSettings?
55
55
  declaredNetworkRules DeclaredNetworkRules[]
56
+ scopeNamespaces ScopeNamespace[]
56
57
  reachRefusals ReachRefusal[]
57
58
  credentials Credential[]
58
59
  messages Message[]
@@ -68,11 +69,13 @@ model Fleet {
68
69
  @@map("fleets")
69
70
  }
70
71
 
71
- /// `argo` is the one operator ship of a fleet; every other ship is an agent.
72
+ /// What a ship is (decision 0044): argo the one operator, the viewer, an agent session, a person's ship or an app's.
72
73
  enum ShipKind {
73
74
  operator
74
75
  agent
75
76
  viewer
77
+ person
78
+ app
76
79
 
77
80
  @@map("ship_kind")
78
81
  }
@@ -93,8 +96,12 @@ model Ship {
93
96
  commissionedBy String? @map("commissioned_by")
94
97
  commissionKey String? @map("commission_key")
95
98
  commissionRequestHash String? @map("commission_request_hash")
99
+ /// The ship that answers for it, a person's ship or argo (decision 0045); null for argo and the viewer.
100
+ ownerShipId String? @map("owner_ship_id")
96
101
 
97
102
  fleet Fleet @relation(fields: [fleetId], references: [id])
103
+ owner Ship? @relation("ShipOwner", fields: [fleetId, ownerShipId], references: [fleetId, id], onDelete: Restrict)
104
+ ownedShips Ship[] @relation("ShipOwner")
98
105
  leases Lease[]
99
106
  credentials Credential[]
100
107
  sentMessages Message[] @relation("MessageSender")
@@ -114,6 +121,7 @@ model Ship {
114
121
  ownedLabels Label[] @relation("LabelOwner")
115
122
  labels ShipLabel[] @relation("ShipLabelShip")
116
123
  declaredNetworkRules DeclaredNetworkRules[]
124
+ declaredNamespace ScopeNamespace?
117
125
 
118
126
  @@unique([fleetId, id])
119
127
  /// An idempotency key is used once per commissioning ship.
@@ -124,6 +132,7 @@ model Ship {
124
132
  @@unique([fleetId], map: "ships_fleet_id_operator_key", where: raw("kind = 'operator'::ship_kind"))
125
133
  /// At most one viewer ship per fleet (decision 0022).
126
134
  @@unique([fleetId], map: "ships_fleet_id_viewer_key", where: raw("kind = 'viewer'::ship_kind"))
135
+ @@index([fleetId, ownerShipId])
127
136
  @@map("ships")
128
137
  }
129
138
 
@@ -178,6 +187,10 @@ model Lease {
178
187
  reportDetails Json? @map("report_details")
179
188
  /// Moves by one each time the details change; 0 before any.
180
189
  reportDetailsVersion Int @default(0) @map("report_details_version")
190
+ /// The crew's statement: what its ship is and offers, at most 64 KB, its shape common's; null until it states one (decision 0047).
191
+ statement Json?
192
+ /// Moves by one each time the statement changes; 0 before any.
193
+ statementVersion Int @default(0) @map("statement_version")
181
194
  /// From the lease's first push receive: the computer side takes its deliveries, and the agent's plain receive answers nothing (decision 0040).
182
195
  pushedAt DateTime? @map("pushed_at") @db.Timestamptz(3)
183
196
  /// The session's turn as its hooks last reported it, and when they saw it change; null until they report (decision 0040).
@@ -350,7 +363,13 @@ model ShipLabel {
350
363
  /// set take turns on an advisory lock on them (network.ts).
351
364
  model NetworkSettings {
352
365
  fleetId String @id @map("fleet_id")
353
- rules Json?
366
+ rules Json @default("[]")
367
+ /// The built-in rules that can be off (decision 0034): the viewer reading,
368
+ /// argo's, and open per verb, the networking plugin's. On at fleet create.
369
+ builtInViewerRead Boolean @default(true) @map("built_in_viewer_read")
370
+ builtInOpenSend Boolean @default(true) @map("built_in_open_send")
371
+ builtInOpenRead Boolean @default(true) @map("built_in_open_read")
372
+ builtInOpenManage Boolean @default(true) @map("built_in_open_manage")
354
373
  version Int
355
374
  /// The fleet's networking plugin (decision 0035): its ship and what it
356
375
  /// declared, all three set or none.
@@ -378,6 +397,24 @@ model DeclaredNetworkRules {
378
397
  @@map("declared_network_rules")
379
398
  }
380
399
 
400
+ /// A plugin's namespace (decision 0046): taken up for good by the ship that
401
+ /// declared it, one per ship and unique in the fleet, with its whole list of
402
+ /// scopes and their descriptions as JSON, in order. It goes when its declarer
403
+ /// retires.
404
+ model ScopeNamespace {
405
+ fleetId String @map("fleet_id")
406
+ namespace String
407
+ declaredBy String @map("declared_by")
408
+ scopes Json
409
+
410
+ fleet Fleet @relation(fields: [fleetId], references: [id])
411
+ declarer Ship @relation(fields: [fleetId, declaredBy], references: [fleetId, id])
412
+
413
+ @@id([fleetId, namespace])
414
+ @@unique([fleetId, declaredBy])
415
+ @@map("scope_namespaces")
416
+ }
417
+
381
418
  /// A send the network rules refused (decision 0034), recorded in the
382
419
  /// transaction that refused it. Ids start with rfs_. Sender and recipient are
383
420
  /// as they were then: ids, names and the label values they carried, as JSON,
@@ -387,7 +424,11 @@ model ReachRefusal {
387
424
  fleetId String @map("fleet_id")
388
425
  at DateTime @db.Timestamptz(3)
389
426
  sender Json
427
+ /// The plugin ship that read on behalf of the sender (decision 0034); null for the sender's own call.
428
+ askedBy Json? @map("asked_by")
390
429
  recipient Json
430
+ /// What the sender tried to do: send, read or manage (decision 0034).
431
+ verb String
391
432
  settingsVersion Int @map("settings_version")
392
433
  /// What the networking plugin declared, when it refused while the plugin
393
434
  /// was not responding (decision 0035): block-all or keep-latest.
@@ -513,6 +554,8 @@ model Delivery {
513
554
  handOverNumber Int? @map("hand_over_number")
514
555
  /// When its crew handed it once more after the turn that took it died; only once (decision 0040).
515
556
  handedOnceMoreAt DateTime? @map("handed_once_more_at") @db.Timestamptz(3)
557
+ /// Whether its message was forced: it comes first in receive and push receive (decision 0040).
558
+ isForced Boolean @default(false) @map("is_forced")
516
559
  reachableShipIds String[] @default([]) @map("reachable_ship_ids")
517
560
  readAt DateTime? @map("read_at") @db.Timestamptz(3)
518
561
  createdAt DateTime @map("created_at") @db.Timestamptz(3)
@@ -609,6 +652,8 @@ model Event {
609
652
  @@index([fleetId, shipId])
610
653
  @@index([fleetId, messageId])
611
654
  @@index([fleetId, deliveryId])
655
+ /// The health reads take a fleet's events since a time (decision 0042).
656
+ @@index([fleetId, occurredAt])
612
657
  @@map("events")
613
658
  }
614
659
 
@@ -1,13 +0,0 @@
1
- import type { Caller } from './caller.js';
2
- import { type ShipHistory, type ShownNoShipCanTakeEntry } from './history.js';
3
- export type ReadNoShipCanTake = (caller: Caller) => Promise<ShownNoShipCanTakeEntry[]>;
4
- /**
5
- * Use case: the pending deliveries of the caller's fleet to a type no active
6
- * ship can take (decision 0041), oldest sent first, for Needs attention. Each
7
- * clears by itself once a ship of the type can take it; there is nothing to
8
- * resend or dismiss. The caller's scope (fleet:read) is checked before this
9
- * runs.
10
- */
11
- export declare function createReadNoShipCanTake(deps: {
12
- history: ShipHistory;
13
- }): ReadNoShipCanTake;
@@ -1,12 +0,0 @@
1
- import { withPing } from './history.js';
2
- /**
3
- * Use case: the pending deliveries of the caller's fleet to a type no active
4
- * ship can take (decision 0041), oldest sent first, for Needs attention. Each
5
- * clears by itself once a ship of the type can take it; there is nothing to
6
- * resend or dismiss. The caller's scope (fleet:read) is checked before this
7
- * runs.
8
- */
9
- export function createReadNoShipCanTake(deps) {
10
- return async (caller) => (await deps.history.noShipCanTake(caller.fleetId)).map((entry) => ({ ...entry, message: withPing(entry.message) }));
11
- }
12
- //# sourceMappingURL=read-no-ship-can-take.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-no-ship-can-take.js","sourceRoot":"","sources":["../../../src/domain/shared/read-no-ship-can-take.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAkD,MAAM,cAAc,CAAC;AAIxF;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAA8B;IACpE,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/I,CAAC"}
@@ -1,13 +0,0 @@
1
- import type { Caller } from './caller.js';
2
- import { type ShipHistory, type ShownOverdueEntry } from './history.js';
3
- export type ReadOverdue = (caller: Caller) => Promise<ShownOverdueEntry[]>;
4
- /**
5
- * Use case: the deliveries of the caller's fleet argo was told are overdue by
6
- * the 10 and 60 minute clocks (decision 0040), oldest told first, for Needs
7
- * attention. Each clears by itself once its delivery leaves the state it was
8
- * told in or its lease ends; there is nothing to resend or dismiss. The
9
- * caller's scope (fleet:read) is checked before this runs.
10
- */
11
- export declare function createReadOverdue(deps: {
12
- history: ShipHistory;
13
- }): ReadOverdue;
@@ -1,12 +0,0 @@
1
- import { withPing } from './history.js';
2
- /**
3
- * Use case: the deliveries of the caller's fleet argo was told are overdue by
4
- * the 10 and 60 minute clocks (decision 0040), oldest told first, for Needs
5
- * attention. Each clears by itself once its delivery leaves the state it was
6
- * told in or its lease ends; there is nothing to resend or dismiss. The
7
- * caller's scope (fleet:read) is checked before this runs.
8
- */
9
- export function createReadOverdue(deps) {
10
- return async (caller) => (await deps.history.overdue(caller.fleetId)).map((entry) => ({ ...entry, message: withPing(entry.message) }));
11
- }
12
- //# sourceMappingURL=read-overdue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-overdue.js","sourceRoot":"","sources":["../../../src/domain/shared/read-overdue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAA4C,MAAM,cAAc,CAAC;AAIlF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA8B;IAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACzI,CAAC"}