@aeolus-fleet/core 0.26.0 → 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
@@ -0,0 +1,39 @@
1
+ import { declaredScopeSchema, idSchema } from '@aeolus-fleet/common';
2
+ import { z } from 'zod';
3
+ /** A namespace row as the domain trusts it: its scopes parsed from their JSON. */
4
+ function namespaceOf(row) {
5
+ return {
6
+ fleetId: idSchema('fleet').parse(row.fleetId),
7
+ namespace: row.namespace,
8
+ declaredBy: idSchema('ship').parse(row.declaredBy),
9
+ scopes: z.array(declaredScopeSchema).parse(row.scopes),
10
+ };
11
+ }
12
+ /** The plugin namespaces on Postgres (decision 0046). */
13
+ export function createPrismaScopeNamespaceRepository(db) {
14
+ return {
15
+ lockNamespace: async (fleetId, namespace) => {
16
+ // As for a label key: a transaction-level advisory lock on the fleet and
17
+ // the namespace, so a second declaration, or a grant of its scopes,
18
+ // waits and then finds it as the first one left it.
19
+ await db.$executeRaw `SELECT pg_advisory_xact_lock(hashtext(${fleetId}), hashtext(${`scope-namespace:${namespace}`}))`;
20
+ },
21
+ find: async (fleetId, namespace) => {
22
+ const row = await db.scopeNamespace.findUnique({ where: { fleetId_namespace: { fleetId, namespace } } });
23
+ return row === null ? undefined : namespaceOf(row);
24
+ },
25
+ findByDeclarer: async (fleetId, shipId) => {
26
+ const row = await db.scopeNamespace.findUnique({ where: { fleetId_declaredBy: { fleetId, declaredBy: shipId } } });
27
+ return row === null ? undefined : namespaceOf(row);
28
+ },
29
+ list: async (fleetId) => (await db.scopeNamespace.findMany({ where: { fleetId }, orderBy: { namespace: 'asc' } })).map(namespaceOf),
30
+ save: async ({ fleetId, namespace, declaredBy, scopes }) => {
31
+ const kept = { scopes: scopes.map(({ scope, description }) => ({ scope, description })) };
32
+ await db.scopeNamespace.upsert({ where: { fleetId_namespace: { fleetId, namespace } }, create: { fleetId, namespace, declaredBy, ...kept }, update: kept });
33
+ },
34
+ remove: async (fleetId, namespace) => {
35
+ await db.scopeNamespace.deleteMany({ where: { fleetId, namespace } });
36
+ },
37
+ };
38
+ }
39
+ //# sourceMappingURL=scope-namespaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-namespaces.js","sourceRoot":"","sources":["../../../src/adapters/prisma/scope-namespaces.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CallerLookup, ConsoleSessionRepository, CredentialRepository, OperatorAccountRepository, SignInTicketRepository } from '../../domain/identity/ports.js';
2
2
  import type { DeliveryRepository, MessageRepository, OverdueDeliveryRepository } from '../../domain/messaging/ports.js';
3
- import type { ClearRequestRepository, CrewRequestRepository, FleetRepository, InFlightDeliveries, InstallationRequestRepository, InstallationSettingsRepository, LabelRepository, LeaseRepository, DeclaredNetworkRulesRepository, NetworkSettingsRepository, ReachRefusalRepository, ShipRepository } from '../../domain/registry/ports.js';
3
+ import type { ClearRequestRepository, CrewRequestRepository, FleetRepository, InFlightDeliveries, InstallationRequestRepository, InstallationSettingsRepository, LabelRepository, LeaseRepository, DeclaredNetworkRulesRepository, ScopeNamespaceRepository, NetworkSettingsRepository, ReachRefusalRepository, ShipRepository } from '../../domain/registry/ports.js';
4
4
  import type { Notifier } from '../../domain/shared/notifier.js';
5
5
  import type { UnitOfWork } from '../../domain/shared/unit-of-work.js';
6
6
  import { type Db, type PrismaClient } from './client.js';
@@ -15,6 +15,7 @@ export interface PrismaTx {
15
15
  labels: LabelRepository;
16
16
  networkSettings: NetworkSettingsRepository;
17
17
  declaredNetworkRules: DeclaredNetworkRulesRepository;
18
+ scopeNamespaces: ScopeNamespaceRepository;
18
19
  reachRefusals: ReachRefusalRepository;
19
20
  inFlightDeliveries: InFlightDeliveries;
20
21
  credentials: CredentialRepository;
@@ -6,6 +6,7 @@ import { createPrismaInstallationRequestRepository, createPrismaInstallationSett
6
6
  import { createPrismaDeliveryRepository, createPrismaMessageRepository } from './messaging.js';
7
7
  import { createPrismaOverdueDeliveryRepository } from './overdue.js';
8
8
  import { createPrismaDeclaredNetworkRulesRepository, createPrismaNetworkSettingsRepository, createPrismaReachRefusalRepository } from './network.js';
9
+ import { createPrismaScopeNamespaceRepository } from './scope-namespaces.js';
9
10
  import { createPrismaClearRequestRepository, createPrismaCrewRequestRepository, createPrismaFleetRepository, createPrismaInFlightDeliveries, createPrismaLabelRepository, createPrismaLeaseRepository, createPrismaShipRepository, } from './registry.js';
10
11
  export function createPrismaTx(db) {
11
12
  return {
@@ -17,6 +18,7 @@ export function createPrismaTx(db) {
17
18
  labels: createPrismaLabelRepository(db),
18
19
  networkSettings: createPrismaNetworkSettingsRepository(db),
19
20
  declaredNetworkRules: createPrismaDeclaredNetworkRulesRepository(db),
21
+ scopeNamespaces: createPrismaScopeNamespaceRepository(db),
20
22
  reachRefusals: createPrismaReachRefusalRepository(db),
21
23
  inFlightDeliveries: createPrismaInFlightDeliveries(db),
22
24
  credentials: createPrismaCredentialRepository(db),
@@ -1 +1 @@
1
- {"version":3,"file":"unit-of-work.js","sourceRoot":"","sources":["../../../src/adapters/prisma/unit-of-work.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unit-of-work.js","sourceRoot":"","sources":["../../../src/adapters/prisma/unit-of-work.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  * console session cookie is never read here: REST is a door for ships.
11
11
  */
12
12
  import fastifyApiReference from '@scalar/fastify-api-reference';
13
- import { readBearer } from '../http/request-credentials.js';
13
+ import { readBearer, readOnBehalfOf } from '../http/request-credentials.js';
14
14
  import { callShip, refusalBody, SHIP_CALLS, unexpectedFailure } from '../trpc/ship-contract.js';
15
15
  import { API_TITLE, openApiDocument } from './openapi.js';
16
16
  const PREFIX = '/api/v1';
@@ -41,7 +41,7 @@ export function registerRestApi(server, options) {
41
41
  handler: async (request, reply) => {
42
42
  try {
43
43
  const result = await callShip(call, {
44
- ctx: options.contextFor(request, { bearer: readBearer(request.headers.authorization) }),
44
+ ctx: options.contextFor(request, { bearer: readBearer(request.headers.authorization), onBehalfOf: readOnBehalfOf(request.headers) }),
45
45
  input: request.body,
46
46
  log: request.log,
47
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"rest-api.js","sourceRoot":"","sources":["../../../src/adapters/rest/rest-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,GAAG,SAAS,CAAC;AAEzB,MAAM,YAAY,GAAG,GAAG,MAAM,eAAe,CAAC;AAE9C,MAAM,gBAAgB,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;AAOrD,8GAA8G;AAC9G,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,OAAuB;IAC9E,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAEjD,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,gDAAgD;IAChD,KAAK,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE;QACxC,WAAW,EAAE,GAAG,MAAM,OAAO;QAC7B,aAAa,EAAE;YACb,GAAG,EAAE,YAAY;YACjB,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,KAAK;YACvB,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzB,kBAAkB,EAAE,OAAO;YAC3B,SAAS,EAAE,KAAK;SACjB;KACF,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;YAC7B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;gBAChC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;wBAClC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;wBACvF,KAAK,EAAE,OAAO,CAAC,IAAI;wBACnB,GAAG,EAAE,OAAO,CAAC,GAAG;qBACjB,CAAC,CAAC;oBACH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBAChB,OAAO,MAAM,CAAC,MAAM,CAAC;oBACvB,CAAC;oBACD,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvF,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvF,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"rest-api.js","sourceRoot":"","sources":["../../../src/adapters/rest/rest-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,mBAAmB,MAAM,+BAA+B,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,GAAG,SAAS,CAAC;AAEzB,MAAM,YAAY,GAAG,GAAG,MAAM,eAAe,CAAC;AAE9C,MAAM,gBAAgB,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;AAOrD,8GAA8G;AAC9G,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,OAAuB;IAC9E,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAEjD,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,gDAAgD;IAChD,KAAK,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE;QACxC,WAAW,EAAE,GAAG,MAAM,OAAO;QAC7B,aAAa,EAAE;YACb,GAAG,EAAE,YAAY;YACjB,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,KAAK;YACvB,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YACzB,kBAAkB,EAAE,OAAO;YAC3B,SAAS,EAAE,KAAK;SACjB;KACF,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE;YAC7B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;gBAChC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;wBAClC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBACpI,KAAK,EAAE,OAAO,CAAC,IAAI;wBACnB,GAAG,EAAE,OAAO,CAAC,GAAG;qBACjB,CAAC,CAAC;oBACH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBAChB,OAAO,MAAM,CAAC,MAAM,CAAC;oBACvB,CAAC;oBACD,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvF,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvF,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -80,7 +80,7 @@ export declare const consoleRouter: import("@trpc/server").TRPCBuiltRouter<{
80
80
  fleetId: `flt_${string}`;
81
81
  expiresAt: string;
82
82
  kind: "operator" | "viewer";
83
- scopes: ("messages:send" | "messages:receive" | "fleet:read" | "fleet:manage" | "crew:assign" | "crew:run" | "labels:define" | "labels:assign" | "fleet:network")[];
83
+ scopes: ("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")[];
84
84
  };
85
85
  meta: import("./trpc.js").ProcedureMeta;
86
86
  }>;
@@ -1,4 +1,4 @@
1
- import { accountOutputSchema, consoleGuideOutputSchema, consoleNoticesOutputSchema, consoleSessionOutputSchema, dismissNoticeInputSchema, setGuideProgressInputSchema, setThemeInputSchema, setThemeOutputSchema, redeemSignInTicketInputSchema, signInInputSchema, } from '@aeolus-fleet/common';
1
+ import { accountOutputSchema, consoleGuideOutputSchema, consoleNoticesOutputSchema, consoleSessionOutputSchema, dismissNoticeInputSchema, setGuideProgressInputSchema, setThemeInputSchema, setThemeOutputSchema, redeemSignInTicketInputSchema, scopeSchema, signInInputSchema, } from '@aeolus-fleet/common';
2
2
  import { TRPCError } from '@trpc/server';
3
3
  import { deviceLabelOf } from '../http/device-label.js';
4
4
  import { guideStepsOutputOf, noticeOutputOf } from './installation.js';
@@ -64,11 +64,13 @@ export const consoleRouter = router({
64
64
  throw new TRPCError({ code: 'UNAUTHORIZED', message: 'No signed-in console session' });
65
65
  }
66
66
  const { fleetId, kind, scopes } = use.caller;
67
- if (kind === 'agent') {
68
- // A console session is the operator's or a viewer's; no agent ever signs in to the console.
67
+ if (kind !== 'operator' && kind !== 'viewer') {
68
+ // A console session is the operator's or a viewer's; no other ship ever signs in to the console.
69
69
  throw new TRPCError({ code: 'UNAUTHORIZED', message: 'No signed-in console session' });
70
70
  }
71
- return { fleetId, expiresAt: use.expiresAt.toISOString(), kind, scopes: [...scopes] };
71
+ // argo and the viewer hold core scopes only: a plugin's scopes are never theirs to hold (decision 0046).
72
+ const coreScopes = scopes.filter((scope) => scopeSchema.safeParse(scope).success);
73
+ return { fleetId, expiresAt: use.expiresAt.toISOString(), kind, scopes: coreScopes };
72
74
  }),
73
75
  /** Stores the operator's theme on their account, so it follows them to any browser. */
74
76
  setTheme: authenticatedProcedure
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/adapters/trpc/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/adapters/trpc/console.ts"],"names":[],"mappings":"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"}
@@ -42,13 +42,17 @@ import type { GetInstallationFleet } from '../../domain/registry/get-installatio
42
42
  import type { ListInstallationFleets } from '../../domain/registry/list-installation-fleets.js';
43
43
  import type { Deregister } from '../../domain/registry/deregister.js';
44
44
  import type { GetShip } from '../../domain/registry/get-ship.js';
45
+ import type { ReadOnBehalf } from '../../domain/registry/read-on-behalf.js';
45
46
  import type { GetStartingPrompt } from '../../domain/registry/get-starting-prompt.js';
46
47
  import type { ListFleet } from '../../domain/registry/list-fleet.js';
47
48
  import type { RecrewShip } from '../../domain/registry/recrew-ship.js';
48
49
  import type { ReleaseShip } from '../../domain/registry/release-ship.js';
50
+ import type { SetOwner } from '../../domain/registry/set-owner.js';
49
51
  import type { RenameShip } from '../../domain/registry/rename-ship.js';
50
52
  import type { RetireShip } from '../../domain/registry/retire-ship.js';
51
53
  import type { Report } from '../../domain/registry/report.js';
54
+ import type { SetStatement } from '../../domain/registry/set-statement.js';
55
+ import type { Discover } from '../../domain/registry/discover.js';
52
56
  import type { ReportTurn } from '../../domain/registry/report-turn.js';
53
57
  import type { Whoami } from '../../domain/registry/whoami.js';
54
58
  import type { ReadReportLog } from '../../domain/registry/report-log.js';
@@ -68,24 +72,27 @@ import type { ReadFleetEvents } from '../../domain/shared/read-fleet-events.js';
68
72
  import type { AssignLabel } from '../../domain/registry/assign-label.js';
69
73
  import type { DeclareNetworkRules } from '../../domain/registry/declare-network-rules.js';
70
74
  import type { ChangeLabelValues } from '../../domain/registry/change-label-values.js';
75
+ import type { DeclareScopes } from '../../domain/registry/declare-scopes.js';
76
+ import type { GrantScopes } from '../../domain/registry/grant-scopes.js';
71
77
  import type { DefineLabel } from '../../domain/registry/define-label.js';
72
78
  import type { ExplainReach } from '../../domain/registry/explain-reach.js';
73
79
  import type { ReadDeclaredNetworkRules } from '../../domain/registry/read-declared-network-rules.js';
74
80
  import type { ReadReachRefusals } from '../../domain/registry/read-reach-refusals.js';
75
81
  import type { RegisterNetworkPlugin } from '../../domain/registry/register-network-plugin.js';
76
82
  import type { SetNetworkRules } from '../../domain/registry/set-network-rules.js';
83
+ import type { ReadBuiltInRules } from '../../domain/registry/read-built-in-rules.js';
84
+ import type { SetBuiltInRule } from '../../domain/registry/set-built-in-rule.js';
77
85
  import type { UnregisterNetworkPlugin } from '../../domain/registry/unregister-network-plugin.js';
78
86
  import type { DeleteLabel } from '../../domain/registry/delete-label.js';
79
87
  import type { FindLabelValue } from '../../domain/registry/find-label-value.js';
80
88
  import type { ListLabels } from '../../domain/registry/list-labels.js';
89
+ import type { ListScopes } from '../../domain/registry/list-scopes.js';
81
90
  import type { UnassignLabel } from '../../domain/registry/unassign-label.js';
82
91
  import type { FollowFleet } from '../../domain/shared/follow-fleet.js';
83
92
  import type { ReadInbox } from '../../domain/shared/read-inbox.js';
84
93
  import type { ReadMessage } from '../../domain/shared/read-message.js';
85
94
  import type { ReadNeedsAttention } from '../../domain/shared/read-needs-attention.js';
86
- import type { ReadNoShipCanTake } from '../../domain/shared/read-no-ship-can-take.js';
87
95
  import type { ReadHealth } from '../../domain/shared/read-health.js';
88
- import type { ReadOverdue } from '../../domain/shared/read-overdue.js';
89
96
  import type { ReadShipWay } from '../../domain/shared/read-ship-way.js';
90
97
  import type { ReadShipMessages } from '../../domain/shared/read-ship-messages.js';
91
98
  import type { ReadShipTimeline } from '../../domain/shared/read-ship-timeline.js';
@@ -110,12 +117,16 @@ export interface UseCases {
110
117
  releaseShip: ReleaseShip;
111
118
  retireShip: RetireShip;
112
119
  renameShip: RenameShip;
120
+ setOwner: SetOwner;
113
121
  recrewShip: RecrewShip;
114
122
  listFleet: ListFleet;
115
123
  getShip: GetShip;
124
+ readOnBehalf: ReadOnBehalf;
116
125
  claimShip: ClaimShip;
117
126
  whoami: Whoami;
118
127
  report: Report;
128
+ setStatement: SetStatement;
129
+ discover: Discover;
119
130
  reportTurn: ReportTurn;
120
131
  reportLog: ReadReportLog;
121
132
  requestCrew: RequestCrew;
@@ -130,9 +141,14 @@ export interface UseCases {
130
141
  confirmWorktreeCleared: ConfirmWorktreeCleared;
131
142
  explainCrewRequest: ExplainCrewRequest;
132
143
  defineLabel: DefineLabel;
144
+ declareScopes: DeclareScopes;
145
+ grantScopes: GrantScopes;
146
+ listScopes: ListScopes;
133
147
  setNetworkRules: SetNetworkRules;
134
148
  registerNetworkPlugin: RegisterNetworkPlugin;
135
149
  unregisterNetworkPlugin: UnregisterNetworkPlugin;
150
+ setBuiltInRule: SetBuiltInRule;
151
+ readBuiltInRules: ReadBuiltInRules;
136
152
  readReachRefusals: ReadReachRefusals;
137
153
  declareNetworkRules: DeclareNetworkRules;
138
154
  readDeclaredNetworkRules: ReadDeclaredNetworkRules;
@@ -166,8 +182,6 @@ export interface UseCases {
166
182
  readMessage: ReadMessage;
167
183
  readShipWay: ReadShipWay;
168
184
  readNeedsAttention: ReadNeedsAttention;
169
- readOverdue: ReadOverdue;
170
- readNoShipCanTake: ReadNoShipCanTake;
171
185
  readHealth: ReadHealth;
172
186
  readInbox: ReadInbox;
173
187
  createFleet: CreateFleet;
@@ -188,6 +202,8 @@ export interface RequestCredentials {
188
202
  bearer?: string;
189
203
  /** A console session token from the session cookie. */
190
204
  sessionToken?: string;
205
+ /** The ship a plugin reads on behalf of, as the `Aeolus-On-Behalf-Of` header named it (decision 0034). */
206
+ onBehalfOf?: string;
191
207
  }
192
208
  /** Writes the console session cookie on the response. */
193
209
  export interface SessionCookie {