@aeolus-fleet/gateway 0.28.1 → 0.29.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 (584) hide show
  1. package/README.md +13 -6
  2. package/dist/adapters/crypto/account-sign-in-seals.d.ts +7 -0
  3. package/dist/adapters/crypto/account-sign-in-seals.js +21 -0
  4. package/dist/adapters/crypto/account-sign-in-seals.js.map +1 -0
  5. package/dist/adapters/crypto/sign-in-seals.d.ts +1 -1
  6. package/dist/adapters/crypto/sign-in-seals.js +3 -6
  7. package/dist/adapters/crypto/sign-in-seals.js.map +1 -1
  8. package/dist/adapters/fleet/core-version.d.ts +1 -1
  9. package/dist/adapters/fleet/core-version.js +1 -1
  10. package/dist/adapters/fleet/fleet-ships.d.ts +6 -0
  11. package/dist/adapters/fleet/fleet-ships.js +23 -0
  12. package/dist/adapters/fleet/fleet-ships.js.map +1 -0
  13. package/dist/adapters/fleet/proxy-ship-reads.d.ts +2 -2
  14. package/dist/adapters/fleet/proxy-ship-reads.js +6 -3
  15. package/dist/adapters/fleet/proxy-ship-reads.js.map +1 -1
  16. package/dist/adapters/fleet/rest-fleet-door.d.ts +2 -1
  17. package/dist/adapters/fleet/rest-fleet-door.js +34 -14
  18. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  19. package/dist/adapters/http/account-sign-in-routes.d.ts +19 -0
  20. package/dist/adapters/http/account-sign-in-routes.js +61 -0
  21. package/dist/adapters/http/account-sign-in-routes.js.map +1 -0
  22. package/dist/adapters/http/forms.d.ts +9 -0
  23. package/dist/adapters/http/forms.js +23 -0
  24. package/dist/adapters/http/forms.js.map +1 -0
  25. package/dist/adapters/http/front-door.d.ts +11 -4
  26. package/dist/adapters/http/front-door.js +48 -8
  27. package/dist/adapters/http/front-door.js.map +1 -1
  28. package/dist/adapters/http/live.d.ts +2 -12
  29. package/dist/adapters/http/live.js +4 -65
  30. package/dist/adapters/http/live.js.map +1 -1
  31. package/dist/adapters/http/oauth-routes.d.ts +14 -16
  32. package/dist/adapters/http/oauth-routes.js +23 -139
  33. package/dist/adapters/http/oauth-routes.js.map +1 -1
  34. package/dist/adapters/http/person-tools.d.ts +9 -4
  35. package/dist/adapters/http/person-tools.js +49 -5
  36. package/dist/adapters/http/person-tools.js.map +1 -1
  37. package/dist/adapters/pagasae/shared-sign-in.d.ts +11 -0
  38. package/dist/adapters/pagasae/shared-sign-in.js +123 -0
  39. package/dist/adapters/pagasae/shared-sign-in.js.map +1 -0
  40. package/dist/adapters/prisma/generated/browser.d.ts +1 -1
  41. package/dist/adapters/prisma/generated/client.d.ts +1 -1
  42. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  43. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  44. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +1 -0
  45. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +1 -0
  46. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  47. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +1 -0
  48. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +1 -0
  49. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  50. package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +30 -2
  51. package/dist/adapters/prisma/opened-deliveries.js +18 -12
  52. package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
  53. package/dist/adapters/trpc/router.d.ts +143 -4
  54. package/dist/adapters/trpc/router.js +151 -5
  55. package/dist/adapters/trpc/router.js.map +1 -1
  56. package/dist/adapters/web/next-web-app.d.ts +10 -0
  57. package/dist/adapters/web/next-web-app.js +27 -0
  58. package/dist/adapters/web/next-web-app.js.map +1 -0
  59. package/dist/app.d.ts +9 -1
  60. package/dist/app.js +53 -29
  61. package/dist/app.js.map +1 -1
  62. package/dist/bin/aeolus-gateway.js +12 -1
  63. package/dist/bin/aeolus-gateway.js.map +1 -1
  64. package/dist/config.d.ts +18 -0
  65. package/dist/config.js +16 -1
  66. package/dist/config.js.map +1 -1
  67. package/dist/core/account-sign-in/account-in-view.d.ts +43 -0
  68. package/dist/core/account-sign-in/account-in-view.js +52 -0
  69. package/dist/core/account-sign-in/account-in-view.js.map +1 -0
  70. package/dist/core/account-sign-in/account-of-sign-in.d.ts +23 -0
  71. package/dist/core/account-sign-in/account-of-sign-in.js +41 -0
  72. package/dist/core/account-sign-in/account-of-sign-in.js.map +1 -0
  73. package/dist/core/account-sign-in/complete-account-sign-in.d.ts +37 -0
  74. package/dist/core/account-sign-in/complete-account-sign-in.js +25 -0
  75. package/dist/core/account-sign-in/complete-account-sign-in.js.map +1 -0
  76. package/dist/core/account-sign-in/ports.d.ts +92 -0
  77. package/dist/core/account-sign-in/ports.js +3 -0
  78. package/dist/core/account-sign-in/ports.js.map +1 -0
  79. package/dist/core/account-sign-in/sign-out-account.d.ts +15 -0
  80. package/dist/core/account-sign-in/sign-out-account.js +12 -0
  81. package/dist/core/account-sign-in/sign-out-account.js.map +1 -0
  82. package/dist/core/account-sign-in/start-account-sign-in.d.ts +25 -0
  83. package/dist/core/account-sign-in/start-account-sign-in.js +26 -0
  84. package/dist/core/account-sign-in/start-account-sign-in.js.map +1 -0
  85. package/dist/core/actors/authenticate-actor.d.ts +14 -15
  86. package/dist/core/actors/authenticate-actor.js +10 -12
  87. package/dist/core/actors/authenticate-actor.js.map +1 -1
  88. package/dist/core/actors/credential-of.d.ts +4 -6
  89. package/dist/core/actors/credential-of.js +4 -8
  90. package/dist/core/actors/credential-of.js.map +1 -1
  91. package/dist/core/connection/answer-pings.d.ts +19 -0
  92. package/dist/core/connection/answer-pings.js +34 -0
  93. package/dist/core/connection/answer-pings.js.map +1 -0
  94. package/dist/core/connection/ports.d.ts +18 -1
  95. package/dist/core/operator/authenticate-operator.d.ts +4 -3
  96. package/dist/core/operator/authenticate-operator.js +4 -2
  97. package/dist/core/operator/authenticate-operator.js.map +1 -1
  98. package/dist/core/parties/list-owner-choices.d.ts +24 -0
  99. package/dist/core/parties/list-owner-choices.js +25 -0
  100. package/dist/core/parties/list-owner-choices.js.map +1 -0
  101. package/dist/core/parties/list-parties.js +1 -1
  102. package/dist/core/parties/list-parties.js.map +1 -1
  103. package/dist/core/parties/ports.d.ts +14 -5
  104. package/dist/core/parties/shown-party.d.ts +8 -2
  105. package/dist/core/parties/shown-party.js.map +1 -1
  106. package/dist/core/people/crew-person-ship.d.ts +3 -5
  107. package/dist/core/people/crew-person-ship.js +6 -5
  108. package/dist/core/people/crew-person-ship.js.map +1 -1
  109. package/dist/core/people/inbox-entry.d.ts +2 -1
  110. package/dist/core/people/inbox-entry.js +3 -0
  111. package/dist/core/people/inbox-entry.js.map +1 -1
  112. package/dist/core/people/list-ships.d.ts +17 -0
  113. package/dist/core/people/list-ships.js +20 -0
  114. package/dist/core/people/list-ships.js.map +1 -0
  115. package/dist/core/people/open-delivery.d.ts +14 -9
  116. package/dist/core/people/open-delivery.js +24 -4
  117. package/dist/core/people/open-delivery.js.map +1 -1
  118. package/dist/core/people/person-crew.d.ts +13 -1
  119. package/dist/core/people/person-crew.js.map +1 -1
  120. package/dist/core/people/ports.d.ts +42 -3
  121. package/dist/core/people/read-inbox.d.ts +15 -9
  122. package/dist/core/people/read-inbox.js +17 -6
  123. package/dist/core/people/read-inbox.js.map +1 -1
  124. package/dist/core/people/send-message.d.ts +32 -0
  125. package/dist/core/people/send-message.js +22 -0
  126. package/dist/core/people/send-message.js.map +1 -0
  127. package/dist/core/requests/ask-for-server.d.ts +2 -2
  128. package/dist/core/requests/watch-waiting.d.ts +2 -1
  129. package/dist/core/requests/watch-waiting.js +2 -2
  130. package/dist/core/requests/watch-waiting.js.map +1 -1
  131. package/dist/core/sign-in/complete-sign-in.d.ts +4 -11
  132. package/dist/core/sign-in/complete-sign-in.js +1 -23
  133. package/dist/core/sign-in/complete-sign-in.js.map +1 -1
  134. package/dist/core/sign-in/own-page.d.ts +10 -0
  135. package/dist/core/sign-in/own-page.js +35 -0
  136. package/dist/core/sign-in/own-page.js.map +1 -0
  137. package/dist/core/sign-in/ports.d.ts +3 -24
  138. package/dist/ping-worker.d.ts +20 -0
  139. package/dist/ping-worker.js +33 -0
  140. package/dist/ping-worker.js.map +1 -0
  141. package/package.json +23 -5
  142. package/src/adapters/prisma/migrations/20261021120000_opened_deliveries_sent_at/migration.sql +4 -0
  143. package/src/adapters/prisma/schema.prisma +2 -1
  144. package/web/.next/BUILD_ID +1 -0
  145. package/web/.next/app-path-routes-manifest.json +17 -0
  146. package/web/.next/build/chunks/[root-of-the-server]__17pn3jjqv9c44._.js +192 -0
  147. package/web/.next/build/chunks/[root-of-the-server]__17pn3jjqv9c44._.js.map +8 -0
  148. package/web/.next/build/chunks/[root-of-the-server]__1ehkf7gbe4e6q._.js +502 -0
  149. package/web/.next/build/chunks/[root-of-the-server]__1ehkf7gbe4e6q._.js.map +11 -0
  150. package/web/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1t6pazwwggn3s._.js +13 -0
  151. package/web/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1t6pazwwggn3s._.js.map +5 -0
  152. package/web/.next/build/chunks/[turbopack]_runtime.js +1056 -0
  153. package/web/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
  154. package/web/.next/build/chunks/node_modules_0ds4fgws35qq2._.js +7337 -0
  155. package/web/.next/build/chunks/node_modules_0ds4fgws35qq2._.js.map +47 -0
  156. package/web/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_1inl-dyesk97a._.js +6 -0
  157. package/web/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_1inl-dyesk97a._.js.map +5 -0
  158. package/web/.next/build/package.json +1 -0
  159. package/web/.next/build-manifest.json +194 -0
  160. package/web/.next/diagnostics/build-diagnostics.json +6 -0
  161. package/web/.next/diagnostics/framework.json +1 -0
  162. package/web/.next/diagnostics/route-bundle-stats.json +195 -0
  163. package/web/.next/export-marker.json +6 -0
  164. package/web/.next/fallback-build-manifest.json +15 -0
  165. package/web/.next/images-manifest.json +68 -0
  166. package/web/.next/next-minimal-server.js.nft.json +1 -0
  167. package/web/.next/next-server.js.nft.json +1 -0
  168. package/web/.next/package.json +1 -0
  169. package/web/.next/prerender-manifest.json +40 -0
  170. package/web/.next/required-server-files.js +367 -0
  171. package/web/.next/required-server-files.json +367 -0
  172. package/web/.next/routes-manifest.json +144 -0
  173. package/web/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  174. package/web/.next/server/app/_global-error/page/build-manifest.json +23 -0
  175. package/web/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  176. package/web/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  177. package/web/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  178. package/web/.next/server/app/_global-error/page.js +12 -0
  179. package/web/.next/server/app/_global-error/page.js.map +5 -0
  180. package/web/.next/server/app/_global-error/page.js.nft.json +1 -0
  181. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
  182. package/web/.next/server/app/_global-error.html +1 -0
  183. package/web/.next/server/app/_global-error.meta +30 -0
  184. package/web/.next/server/app/_global-error.rsc +18 -0
  185. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +23 -0
  186. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +18 -0
  187. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -0
  188. package/web/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  189. package/web/.next/server/app/_not-found/page/build-manifest.json +23 -0
  190. package/web/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
  191. package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  192. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +15 -0
  193. package/web/.next/server/app/_not-found/page.js +17 -0
  194. package/web/.next/server/app/_not-found/page.js.map +5 -0
  195. package/web/.next/server/app/_not-found/page.js.nft.json +1 -0
  196. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  197. package/web/.next/server/app/authorize/failed/page/app-paths-manifest.json +3 -0
  198. package/web/.next/server/app/authorize/failed/page/build-manifest.json +23 -0
  199. package/web/.next/server/app/authorize/failed/page/next-font-manifest.json +11 -0
  200. package/web/.next/server/app/authorize/failed/page/react-loadable-manifest.json +1 -0
  201. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +15 -0
  202. package/web/.next/server/app/authorize/failed/page.js +18 -0
  203. package/web/.next/server/app/authorize/failed/page.js.map +5 -0
  204. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -0
  205. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +3 -0
  206. package/web/.next/server/app/authorize/pick/page/app-paths-manifest.json +3 -0
  207. package/web/.next/server/app/authorize/pick/page/build-manifest.json +23 -0
  208. package/web/.next/server/app/authorize/pick/page/next-font-manifest.json +11 -0
  209. package/web/.next/server/app/authorize/pick/page/react-loadable-manifest.json +1 -0
  210. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +15 -0
  211. package/web/.next/server/app/authorize/pick/page.js +19 -0
  212. package/web/.next/server/app/authorize/pick/page.js.map +5 -0
  213. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -0
  214. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +3 -0
  215. package/web/.next/server/app/authorize/waiting/approval/page/app-paths-manifest.json +3 -0
  216. package/web/.next/server/app/authorize/waiting/approval/page/build-manifest.json +23 -0
  217. package/web/.next/server/app/authorize/waiting/approval/page/next-font-manifest.json +11 -0
  218. package/web/.next/server/app/authorize/waiting/approval/page/react-loadable-manifest.json +1 -0
  219. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +15 -0
  220. package/web/.next/server/app/authorize/waiting/approval/page.js +19 -0
  221. package/web/.next/server/app/authorize/waiting/approval/page.js.map +5 -0
  222. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -0
  223. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +3 -0
  224. package/web/.next/server/app/outside-parties/[name]/change/page/app-paths-manifest.json +3 -0
  225. package/web/.next/server/app/outside-parties/[name]/change/page/build-manifest.json +23 -0
  226. package/web/.next/server/app/outside-parties/[name]/change/page/next-font-manifest.json +11 -0
  227. package/web/.next/server/app/outside-parties/[name]/change/page/react-loadable-manifest.json +1 -0
  228. package/web/.next/server/app/outside-parties/[name]/change/page/server-reference-manifest.json +35 -0
  229. package/web/.next/server/app/outside-parties/[name]/change/page.js +22 -0
  230. package/web/.next/server/app/outside-parties/[name]/change/page.js.map +5 -0
  231. package/web/.next/server/app/outside-parties/[name]/change/page.js.nft.json +1 -0
  232. package/web/.next/server/app/outside-parties/[name]/change/page_client-reference-manifest.js +3 -0
  233. package/web/.next/server/app/outside-parties/[name]/page/app-paths-manifest.json +3 -0
  234. package/web/.next/server/app/outside-parties/[name]/page/build-manifest.json +23 -0
  235. package/web/.next/server/app/outside-parties/[name]/page/next-font-manifest.json +11 -0
  236. package/web/.next/server/app/outside-parties/[name]/page/react-loadable-manifest.json +1 -0
  237. package/web/.next/server/app/outside-parties/[name]/page/server-reference-manifest.json +15 -0
  238. package/web/.next/server/app/outside-parties/[name]/page.js +20 -0
  239. package/web/.next/server/app/outside-parties/[name]/page.js.map +5 -0
  240. package/web/.next/server/app/outside-parties/[name]/page.js.nft.json +1 -0
  241. package/web/.next/server/app/outside-parties/[name]/page_client-reference-manifest.js +3 -0
  242. package/web/.next/server/app/outside-parties/[name]/retire/page/app-paths-manifest.json +3 -0
  243. package/web/.next/server/app/outside-parties/[name]/retire/page/build-manifest.json +23 -0
  244. package/web/.next/server/app/outside-parties/[name]/retire/page/next-font-manifest.json +11 -0
  245. package/web/.next/server/app/outside-parties/[name]/retire/page/react-loadable-manifest.json +1 -0
  246. package/web/.next/server/app/outside-parties/[name]/retire/page/server-reference-manifest.json +35 -0
  247. package/web/.next/server/app/outside-parties/[name]/retire/page.js +21 -0
  248. package/web/.next/server/app/outside-parties/[name]/retire/page.js.map +5 -0
  249. package/web/.next/server/app/outside-parties/[name]/retire/page.js.nft.json +1 -0
  250. package/web/.next/server/app/outside-parties/[name]/retire/page_client-reference-manifest.js +3 -0
  251. package/web/.next/server/app/outside-parties/add/page/app-paths-manifest.json +3 -0
  252. package/web/.next/server/app/outside-parties/add/page/build-manifest.json +23 -0
  253. package/web/.next/server/app/outside-parties/add/page/next-font-manifest.json +11 -0
  254. package/web/.next/server/app/outside-parties/add/page/react-loadable-manifest.json +1 -0
  255. package/web/.next/server/app/outside-parties/add/page/server-reference-manifest.json +35 -0
  256. package/web/.next/server/app/outside-parties/add/page.js +19 -0
  257. package/web/.next/server/app/outside-parties/add/page.js.map +5 -0
  258. package/web/.next/server/app/outside-parties/add/page.js.nft.json +1 -0
  259. package/web/.next/server/app/outside-parties/add/page_client-reference-manifest.js +3 -0
  260. package/web/.next/server/app/outside-parties/page/app-paths-manifest.json +3 -0
  261. package/web/.next/server/app/outside-parties/page/build-manifest.json +23 -0
  262. package/web/.next/server/app/outside-parties/page/next-font-manifest.json +11 -0
  263. package/web/.next/server/app/outside-parties/page/react-loadable-manifest.json +1 -0
  264. package/web/.next/server/app/outside-parties/page/server-reference-manifest.json +25 -0
  265. package/web/.next/server/app/outside-parties/page.js +20 -0
  266. package/web/.next/server/app/outside-parties/page.js.map +5 -0
  267. package/web/.next/server/app/outside-parties/page.js.nft.json +1 -0
  268. package/web/.next/server/app/outside-parties/page_client-reference-manifest.js +3 -0
  269. package/web/.next/server/app/overview/changes/route/app-paths-manifest.json +3 -0
  270. package/web/.next/server/app/overview/changes/route/build-manifest.json +12 -0
  271. package/web/.next/server/app/overview/changes/route/server-reference-manifest.json +4 -0
  272. package/web/.next/server/app/overview/changes/route.js +6 -0
  273. package/web/.next/server/app/overview/changes/route.js.map +5 -0
  274. package/web/.next/server/app/overview/changes/route.js.nft.json +1 -0
  275. package/web/.next/server/app/overview/changes/route_client-reference-manifest.js +3 -0
  276. package/web/.next/server/app/overview/page/app-paths-manifest.json +3 -0
  277. package/web/.next/server/app/overview/page/build-manifest.json +23 -0
  278. package/web/.next/server/app/overview/page/next-font-manifest.json +11 -0
  279. package/web/.next/server/app/overview/page/react-loadable-manifest.json +1 -0
  280. package/web/.next/server/app/overview/page/server-reference-manifest.json +45 -0
  281. package/web/.next/server/app/overview/page.js +24 -0
  282. package/web/.next/server/app/overview/page.js.map +5 -0
  283. package/web/.next/server/app/overview/page.js.nft.json +1 -0
  284. package/web/.next/server/app/overview/page_client-reference-manifest.js +3 -0
  285. package/web/.next/server/app/overview/requests/[requestId]/page/app-paths-manifest.json +3 -0
  286. package/web/.next/server/app/overview/requests/[requestId]/page/build-manifest.json +23 -0
  287. package/web/.next/server/app/overview/requests/[requestId]/page/next-font-manifest.json +11 -0
  288. package/web/.next/server/app/overview/requests/[requestId]/page/react-loadable-manifest.json +1 -0
  289. package/web/.next/server/app/overview/requests/[requestId]/page/server-reference-manifest.json +25 -0
  290. package/web/.next/server/app/overview/requests/[requestId]/page.js +24 -0
  291. package/web/.next/server/app/overview/requests/[requestId]/page.js.map +5 -0
  292. package/web/.next/server/app/overview/requests/[requestId]/page.js.nft.json +1 -0
  293. package/web/.next/server/app/overview/requests/[requestId]/page_client-reference-manifest.js +3 -0
  294. package/web/.next/server/app/parties/page/app-paths-manifest.json +3 -0
  295. package/web/.next/server/app/parties/page/build-manifest.json +23 -0
  296. package/web/.next/server/app/parties/page/next-font-manifest.json +11 -0
  297. package/web/.next/server/app/parties/page/react-loadable-manifest.json +1 -0
  298. package/web/.next/server/app/parties/page/server-reference-manifest.json +55 -0
  299. package/web/.next/server/app/parties/page.js +22 -0
  300. package/web/.next/server/app/parties/page.js.map +5 -0
  301. package/web/.next/server/app/parties/page.js.nft.json +1 -0
  302. package/web/.next/server/app/parties/page_client-reference-manifest.js +3 -0
  303. package/web/.next/server/app/sign-in/failed/page/app-paths-manifest.json +3 -0
  304. package/web/.next/server/app/sign-in/failed/page/build-manifest.json +23 -0
  305. package/web/.next/server/app/sign-in/failed/page/next-font-manifest.json +11 -0
  306. package/web/.next/server/app/sign-in/failed/page/react-loadable-manifest.json +1 -0
  307. package/web/.next/server/app/sign-in/failed/page/server-reference-manifest.json +15 -0
  308. package/web/.next/server/app/sign-in/failed/page.js +18 -0
  309. package/web/.next/server/app/sign-in/failed/page.js.map +5 -0
  310. package/web/.next/server/app/sign-in/failed/page.js.nft.json +1 -0
  311. package/web/.next/server/app/sign-in/failed/page_client-reference-manifest.js +3 -0
  312. package/web/.next/server/app-paths-manifest.json +17 -0
  313. package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js +3 -0
  314. package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js.map +1 -0
  315. package/web/.next/server/chunks/[root-of-the-server]__00bbah0fbuex2._.js +369 -0
  316. package/web/.next/server/chunks/[root-of-the-server]__00bbah0fbuex2._.js.map +1 -0
  317. package/web/.next/server/chunks/[turbopack]_runtime.js +937 -0
  318. package/web/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
  319. package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js +3 -0
  320. package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js.map +1 -0
  321. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js +4 -0
  322. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js.map +1 -0
  323. package/web/.next/server/chunks/ssr/[root-of-the-server]__04_bc8g0oe4jt._.js +3 -0
  324. package/web/.next/server/chunks/ssr/[root-of-the-server]__04_bc8g0oe4jt._.js.map +1 -0
  325. package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js +3 -0
  326. package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js.map +1 -0
  327. package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js +3 -0
  328. package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js.map +1 -0
  329. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ntyo9p3x-w6a._.js +3 -0
  330. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ntyo9p3x-w6a._.js.map +1 -0
  331. package/web/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js +3 -0
  332. package/web/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js.map +1 -0
  333. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js +3 -0
  334. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js.map +1 -0
  335. package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js +3 -0
  336. package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js.map +1 -0
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js +3 -0
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js.map +1 -0
  339. package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js +4 -0
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js.map +1 -0
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__14w0fxvc_of17._.js +3 -0
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__14w0fxvc_of17._.js.map +1 -0
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__160zc0ja_jjnu._.js +3 -0
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__160zc0ja_jjnu._.js.map +1 -0
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__197il4swfpq1a._.js +3 -0
  346. package/web/.next/server/chunks/ssr/[root-of-the-server]__197il4swfpq1a._.js.map +1 -0
  347. package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js +3 -0
  348. package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js.map +1 -0
  349. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpk1uw97id0a._.js +4 -0
  350. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpk1uw97id0a._.js.map +1 -0
  351. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js +3 -0
  352. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js.map +1 -0
  353. package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js +14 -0
  354. package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js.map +1 -0
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js +4 -0
  356. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js.map +1 -0
  357. package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js +3 -0
  358. package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js.map +1 -0
  359. package/web/.next/server/chunks/ssr/[turbopack]_runtime.js +937 -0
  360. package/web/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
  361. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +4 -0
  362. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -0
  363. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +57 -0
  364. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -0
  365. package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js +4 -0
  366. package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js.map +1 -0
  367. package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js +4 -0
  368. package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js.map +1 -0
  369. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +4 -0
  370. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -0
  371. package/web/.next/server/chunks/ssr/_13qzwpag13tvy._.js +4 -0
  372. package/web/.next/server/chunks/ssr/_13qzwpag13tvy._.js.map +1 -0
  373. package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js +4 -0
  374. package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js.map +1 -0
  375. package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js +3 -0
  376. package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js.map +1 -0
  377. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +4 -0
  378. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -0
  379. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +4 -0
  380. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -0
  381. package/web/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js +33 -0
  382. package/web/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js.map +1 -0
  383. package/web/.next/server/chunks/ssr/node_modules_0h91jdk0pr40d._.js +33 -0
  384. package/web/.next/server/chunks/ssr/node_modules_0h91jdk0pr40d._.js.map +1 -0
  385. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +3 -0
  386. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +17 -0
  388. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js.map +1 -0
  389. package/web/.next/server/chunks/ssr/node_modules_next_164yuq6c86vw2._.js +291 -0
  390. package/web/.next/server/chunks/ssr/node_modules_next_164yuq6c86vw2._.js.map +1 -0
  391. package/web/.next/server/chunks/ssr/node_modules_next_17rgm9-6qzdn5._.js +313 -0
  392. package/web/.next/server/chunks/ssr/node_modules_next_17rgm9-6qzdn5._.js.map +1 -0
  393. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +6 -0
  394. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js.map +1 -0
  395. package/web/.next/server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js +3 -0
  396. package/web/.next/server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js.map +1 -0
  397. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js +3 -0
  398. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js.map +1 -0
  399. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js +3 -0
  400. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js.map +1 -0
  401. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js +3 -0
  402. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js.map +1 -0
  403. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@edge-runtime_cookies_index_1kiz_an963mbg.js +3 -0
  404. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@edge-runtime_cookies_index_1kiz_an963mbg.js.map +1 -0
  405. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js +3 -0
  406. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js.map +1 -0
  407. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js +3 -0
  408. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js.map +1 -0
  409. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js +3 -0
  410. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js.map +1 -0
  411. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js +3 -0
  412. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js.map +1 -0
  413. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js +3 -0
  414. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js.map +1 -0
  415. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js +3 -0
  416. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js.map +1 -0
  417. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js +3 -0
  418. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js.map +1 -0
  419. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18gq8l27vkevg.js +3 -0
  420. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18gq8l27vkevg.js.map +1 -0
  421. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js +3 -0
  422. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js.map +1 -0
  423. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js +3 -0
  424. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js.map +1 -0
  425. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js +3 -0
  426. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js.map +1 -0
  427. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js +3 -0
  428. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js.map +1 -0
  429. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js +3 -0
  430. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js.map +1 -0
  431. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js +3 -0
  432. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js.map +1 -0
  433. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js +3 -0
  434. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js.map +1 -0
  435. package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js +3 -0
  436. package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js.map +1 -0
  437. package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js +3 -0
  438. package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js.map +1 -0
  439. package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js +3 -0
  440. package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js.map +1 -0
  441. package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js +3 -0
  442. package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js.map +1 -0
  443. package/web/.next/server/chunks/ssr/web_1nqu01kfi0u66._.js +3 -0
  444. package/web/.next/server/chunks/ssr/web_1nqu01kfi0u66._.js.map +1 -0
  445. package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js +3 -0
  446. package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js.map +1 -0
  447. package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js +10 -0
  448. package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js.map +1 -0
  449. package/web/.next/server/chunks/ssr/web__next-internal_server_app__global-error_page_actions_0crg1npwvbfn5.js +3 -0
  450. package/web/.next/server/chunks/ssr/web__next-internal_server_app__global-error_page_actions_0crg1npwvbfn5.js.map +1 -0
  451. package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js +3 -0
  452. package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js.map +1 -0
  453. package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js +3 -0
  454. package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js.map +1 -0
  455. package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js +3 -0
  456. package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js.map +1 -0
  457. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js +3 -0
  458. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js.map +1 -0
  459. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js +3 -0
  460. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js.map +1 -0
  461. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js +3 -0
  462. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js.map +1 -0
  463. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_17_cklg40kzxe._.js +3 -0
  464. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_17_cklg40kzxe._.js.map +1 -0
  465. package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js +3 -0
  466. package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js.map +1 -0
  467. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js +3 -0
  468. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js.map +1 -0
  469. package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js +3 -0
  470. package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js.map +1 -0
  471. package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js +3 -0
  472. package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js.map +1 -0
  473. package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js +3 -0
  474. package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js.map +1 -0
  475. package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.js +3 -0
  476. package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.js.map +1 -0
  477. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +3 -0
  478. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -0
  479. package/web/.next/server/chunks/ssr/web_features_authorize_ui_waiting-for-approval_tsx_00iwjvj4orq9g._.js +3 -0
  480. package/web/.next/server/chunks/ssr/web_features_authorize_ui_waiting-for-approval_tsx_00iwjvj4orq9g._.js.map +1 -0
  481. package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js +3 -0
  482. package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js.map +1 -0
  483. package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js +3 -0
  484. package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js.map +1 -0
  485. package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js +3 -0
  486. package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js.map +1 -0
  487. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +3 -0
  488. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -0
  489. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +3 -0
  490. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js.map +1 -0
  491. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js +3 -0
  492. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js.map +1 -0
  493. package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js +3 -0
  494. package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js.map +1 -0
  495. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +3 -0
  496. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +1 -0
  497. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +3 -0
  498. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +1 -0
  499. package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js +3 -0
  500. package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js.map +1 -0
  501. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +3 -0
  502. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js.map +1 -0
  503. package/web/.next/server/chunks/web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js +3 -0
  504. package/web/.next/server/chunks/web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js.map +1 -0
  505. package/web/.next/server/functions-config-manifest.json +4 -0
  506. package/web/.next/server/interception-route-rewrite-manifest.js +1 -0
  507. package/web/.next/server/middleware-build-manifest.js +194 -0
  508. package/web/.next/server/middleware-manifest.json +6 -0
  509. package/web/.next/server/next-font-manifest.js +1 -0
  510. package/web/.next/server/next-font-manifest.json +59 -0
  511. package/web/.next/server/pages/500.html +1 -0
  512. package/web/.next/server/pages-manifest.json +3 -0
  513. package/web/.next/server/prefetch-hints.json +11 -0
  514. package/web/.next/server/preview-props.json +5 -0
  515. package/web/.next/server/server-reference-manifest.js +1 -0
  516. package/web/.next/server/server-reference-manifest.json +202 -0
  517. package/web/.next/static/6OjpPl7qD1uqwr6E41aT5/_buildManifest.js +11 -0
  518. package/web/.next/static/6OjpPl7qD1uqwr6E41aT5/_clientMiddlewareManifest.js +1 -0
  519. package/web/.next/static/6OjpPl7qD1uqwr6E41aT5/_ssgManifest.js +1 -0
  520. package/web/.next/static/chunks/0a1vw3r93lh06.js +1 -0
  521. package/web/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
  522. package/web/.next/static/chunks/0lzisjsmhlhjf.js +1 -0
  523. package/web/.next/static/chunks/0umf92h1sb77c.js +1 -0
  524. package/web/.next/static/chunks/131oz96e71xwn.js +1 -0
  525. package/web/.next/static/chunks/1cduebcshlfd5.js +1 -0
  526. package/web/.next/static/chunks/1ma7v1viiz247.js +1 -0
  527. package/web/.next/static/chunks/1w-xaw2grqv_2.js +1 -0
  528. package/web/.next/static/chunks/22u81hd6kxqsx.js +1 -0
  529. package/web/.next/static/chunks/2ewacyhp73due.js +1 -0
  530. package/web/.next/static/chunks/2hz8yws_wswjz.js +31 -0
  531. package/web/.next/static/chunks/2qpupho1jn-iy.js +1 -0
  532. package/web/.next/static/chunks/2ta7dqldhv69y.js +1 -0
  533. package/web/.next/static/chunks/30n1j9zag1f0q.css +3 -0
  534. package/web/.next/static/chunks/3knqujtrdi225.js +1 -0
  535. package/web/.next/static/chunks/3sv0_hjr9t4cp.js +1 -0
  536. package/web/.next/static/chunks/3yltnnufhaitm.js +1 -0
  537. package/web/.next/static/chunks/41rcj9-d-7p_4.js +22 -0
  538. package/web/.next/static/chunks/turbopack-3-ry682tkyiqk.js +1 -0
  539. package/web/.next/static/media/geist_mono_variable-s.p.3ms9vq719j3f8.woff2 +0 -0
  540. package/web/.next/static/media/geist_variable-s.p.0mrjj4bg00-he.woff2 +0 -0
  541. package/web/.next/trace +1 -0
  542. package/web/.next/trace-build +1 -0
  543. package/web/.next/turbopack +0 -0
  544. package/web/.next/types/cache-life.d.ts +114 -0
  545. package/web/.next/types/root-params.d.ts +3 -0
  546. package/web/.next/types/routes.d.ts +85 -0
  547. package/web/.next/types/validator.ts +288 -0
  548. package/web/next.config.ts +9 -0
  549. package/dist/adapters/crypto/page-sessions.d.ts +0 -15
  550. package/dist/adapters/crypto/page-sessions.js +0 -40
  551. package/dist/adapters/crypto/page-sessions.js.map +0 -1
  552. package/dist/adapters/http/add-server-page.d.ts +0 -7
  553. package/dist/adapters/http/add-server-page.js +0 -175
  554. package/dist/adapters/http/add-server-page.js.map +0 -1
  555. package/dist/adapters/http/delivery-page.d.ts +0 -24
  556. package/dist/adapters/http/delivery-page.js +0 -115
  557. package/dist/adapters/http/delivery-page.js.map +0 -1
  558. package/dist/adapters/http/html.d.ts +0 -15
  559. package/dist/adapters/http/html.js +0 -53
  560. package/dist/adapters/http/html.js.map +0 -1
  561. package/dist/adapters/http/outside-parties-page.d.ts +0 -33
  562. package/dist/adapters/http/outside-parties-page.js +0 -153
  563. package/dist/adapters/http/outside-parties-page.js.map +0 -1
  564. package/dist/adapters/http/outside-party-page.d.ts +0 -7
  565. package/dist/adapters/http/outside-party-page.js +0 -212
  566. package/dist/adapters/http/outside-party-page.js.map +0 -1
  567. package/dist/adapters/http/overview-page.d.ts +0 -17
  568. package/dist/adapters/http/overview-page.js +0 -298
  569. package/dist/adapters/http/overview-page.js.map +0 -1
  570. package/dist/adapters/http/parties-page.d.ts +0 -7
  571. package/dist/adapters/http/parties-page.js +0 -139
  572. package/dist/adapters/http/parties-page.js.map +0 -1
  573. package/dist/adapters/http/scope-rows.d.ts +0 -10
  574. package/dist/adapters/http/scope-rows.js +0 -30
  575. package/dist/adapters/http/scope-rows.js.map +0 -1
  576. package/dist/adapters/http/signal.d.ts +0 -61
  577. package/dist/adapters/http/signal.js +0 -263
  578. package/dist/adapters/http/signal.js.map +0 -1
  579. package/dist/core/sign-in/sign-out.d.ts +0 -10
  580. package/dist/core/sign-in/sign-out.js +0 -9
  581. package/dist/core/sign-in/sign-out.js.map +0 -1
  582. package/dist/core/sign-in/start-page-sign-in.d.ts +0 -25
  583. package/dist/core/sign-in/start-page-sign-in.js +0 -30
  584. package/dist/core/sign-in/start-page-sign-in.js.map +0 -1
@@ -1,10 +1,10 @@
1
- import type { ConsoleSessionOutput, FleetId, Scope } from '@aeolus-fleet/common';
1
+ import type { FleetId, Scope } from '@aeolus-fleet/common';
2
2
  import { type DomainError } from '../shared/errors.js';
3
3
  import { type Result } from '../shared/result.js';
4
4
  import type { ConsoleSessions } from './ports.js';
5
5
  export type AuthenticateOperator = (cookie: string | undefined) => Promise<Result<{
6
6
  fleetId: FleetId;
7
- kind: ConsoleSessionOutput['kind'];
7
+ kind: 'operator' | 'viewer';
8
8
  scopes: readonly Scope[];
9
9
  }, DomainError<'NOT_THE_OPERATOR'>>>;
10
10
  /**
@@ -15,7 +15,8 @@ export type AuthenticateOperator = (cookie: string | undefined) => Promise<Resul
15
15
  * signed-in operator there is let through as the operator of their own
16
16
  * fleet. A viewer session is let through as a viewer, with the viewer ship's
17
17
  * scopes, which the fleet answers; what each may call is the API's to check
18
- * (decision 0022).
18
+ * (decision 0022). An account's console session is no operator's: an
19
+ * account reaches the gateway by its shared sign-in.
19
20
  */
20
21
  export declare function createAuthenticateOperator(deps: {
21
22
  sessions: ConsoleSessions;
@@ -8,7 +8,8 @@ import { ok } from '../shared/result.js';
8
8
  * signed-in operator there is let through as the operator of their own
9
9
  * fleet. A viewer session is let through as a viewer, with the viewer ship's
10
10
  * scopes, which the fleet answers; what each may call is the API's to check
11
- * (decision 0022).
11
+ * (decision 0022). An account's console session is no operator's: an
12
+ * account reaches the gateway by its shared sign-in.
12
13
  */
13
14
  export function createAuthenticateOperator(deps) {
14
15
  const refusal = refuse('NOT_THE_OPERATOR', 'Sign in to the console of your fleet');
@@ -20,7 +21,8 @@ export function createAuthenticateOperator(deps) {
20
21
  if (!session.isOk) {
21
22
  return refusal;
22
23
  }
23
- return ok(session.value);
24
+ const { fleetId, kind, scopes } = session.value;
25
+ return kind === 'account' ? refusal : ok({ fleetId, kind, scopes });
24
26
  };
25
27
  }
26
28
  //# sourceMappingURL=authenticate-operator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate-operator.js","sourceRoot":"","sources":["../../../src/core/operator/authenticate-operator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAOtD;;;;;;;;;GASG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAmC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,CAAC,CAAC;IACnF,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"authenticate-operator.js","sourceRoot":"","sources":["../../../src/core/operator/authenticate-operator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAOtD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAmC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,CAAC,CAAC;IACnF,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAChD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { ShipId } from '@aeolus-fleet/common';
2
+ import type { Actor } from '../actors/authenticate-actor.js';
3
+ import type { ActorCredential, CredentialOf } from '../actors/credential-of.js';
4
+ import { type DomainError } from '../shared/errors.js';
5
+ import { type Result } from '../shared/result.js';
6
+ import type { FleetShips } from './ports.js';
7
+ /** A ship a party's proxy ship may be owned by, by its name. */
8
+ export interface OwnerChoice {
9
+ shipId: ShipId;
10
+ name: string;
11
+ }
12
+ export type ListOwnerChoices = (call: {
13
+ actor: Actor;
14
+ as: ActorCredential;
15
+ }) => Promise<Result<OwnerChoice[], DomainError<'FLEET_UNAVAILABLE'>>>;
16
+ /**
17
+ * Use case: the ships the actor may pick as a party's owner, by name, from
18
+ * the fleet's ships read as the actor, so only ships within its read reach.
19
+ * The fleet still decides each owner it is asked to set.
20
+ */
21
+ export declare function createListOwnerChoices(deps: {
22
+ ships: FleetShips;
23
+ credentialOf: CredentialOf;
24
+ }): ListOwnerChoices;
@@ -0,0 +1,25 @@
1
+ import { refuse } from '../shared/errors.js';
2
+ import { ok } from '../shared/result.js';
3
+ /** Whether the fleet takes the ship as an owner: an active person's ship or argo (decision 0045). */
4
+ function isOwnerChoice(ship) {
5
+ return (ship.kind === 'operator' || ship.kind === 'person') && ship.status !== 'retired';
6
+ }
7
+ /**
8
+ * Use case: the ships the actor may pick as a party's owner, by name, from
9
+ * the fleet's ships read as the actor, so only ships within its read reach.
10
+ * The fleet still decides each owner it is asked to set.
11
+ */
12
+ export function createListOwnerChoices(deps) {
13
+ return async ({ actor, as }) => {
14
+ const credential = await deps.credentialOf(actor, as);
15
+ if (!credential.isOk) {
16
+ return credential;
17
+ }
18
+ const listed = await deps.ships.list(credential.value);
19
+ if (!listed.isOk) {
20
+ return refuse('FLEET_UNAVAILABLE', `The fleet did not list its ships: ${listed.error.message}`);
21
+ }
22
+ return ok(listed.value.filter(isOwnerChoice).map(({ shipId, name }) => ({ shipId, name })));
23
+ };
24
+ }
25
+ //# sourceMappingURL=list-owner-choices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-owner-choices.js","sourceRoot":"","sources":["../../../src/core/parties/list-owner-choices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAWtD,qGAAqG;AACrG,SAAS,aAAa,CAAC,IAAe;IACpC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;AAC3F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAuD;IAC5F,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { refuse } from '../shared/errors.js';
2
2
  import { ok } from '../shared/result.js';
3
3
  import { shownPartyOf } from './shown-party.js';
4
- const UNKNOWN = { ownerShipId: null, scopes: null };
4
+ const UNKNOWN = { proxyShipName: null, ownerShipId: null, ownerName: null, scopes: null };
5
5
  /** The parties with what the fleet holds for each proxy ship, read as the actor; unknown outside its read reach, or while it cannot be read. */
6
6
  async function listed(deps, call) {
7
7
  const credential = await deps.credentialOf(call.actor, call.as);
@@ -1 +1 @@
1
- {"version":3,"file":"list-parties.js","sourceRoot":"","sources":["../../../src/core/parties/list-parties.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAoC,MAAM,kBAAkB,CAAC;AAkBlF,MAAM,OAAO,GAAc,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAE/D,gJAAgJ;AAChJ,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,IAAqC;IACzE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACnD,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;QAChD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACpF,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3E,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAc;IAC9C,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACpH,OAAO,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,eAAe,EAAE,6BAA6B,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,6BAA6B,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxG,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list-parties.js","sourceRoot":"","sources":["../../../src/core/parties/list-parties.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAoC,MAAM,kBAAkB,CAAC;AAkBlF,MAAM,OAAO,GAAc,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAErG,gJAAgJ;AAChJ,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,IAAqC;IACzE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACnD,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC;QAChD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACpF,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3E,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAc;IAC9C,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACpH,OAAO,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,eAAe,EAAE,6BAA6B,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,6BAA6B,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACxG,CAAC,CAAC;AACJ,CAAC"}
@@ -3,6 +3,7 @@ import type { ActorCredential } from '../actors/credential-of.js';
3
3
  import type { FleetRefusal } from '../connection/ports.js';
4
4
  import type { Result } from '../shared/result.js';
5
5
  import type { Party } from './party.js';
6
+ import type { FromFleet } from './shown-party.js';
6
7
  /** Outbound port: the parties argo approved, one per proxy ship name in a fleet. */
7
8
  export interface PartyStore {
8
9
  find(fleetId: FleetId, name: string): Promise<Party | undefined>;
@@ -63,12 +64,20 @@ export interface ProxyShipsAsActor {
63
64
  scopes: string[];
64
65
  }, FleetRefusal>>;
65
66
  }
66
- /** Outbound port: what the fleet holds for a proxy ship, read as the actor (fleet:read): its owner and scopes, neither outside the actor's read reach. */
67
+ /** Outbound port: what the fleet holds for a proxy ship, read as the actor (fleet:read): its name, owner and scopes, only its name outside the actor's read reach. */
67
68
  export interface ProxyShipReads {
68
69
  read(as: ActorCredential, ship: {
69
70
  shipId: ShipId;
70
- }): Promise<Result<{
71
- ownerShipId: ShipId | null;
72
- scopes: string[] | null;
73
- }, FleetRefusal>>;
71
+ }): Promise<Result<FromFleet, FleetRefusal>>;
72
+ }
73
+ /** A ship of the fleet as fleet.list answers it within the actor's read reach. */
74
+ export interface FleetShip {
75
+ shipId: ShipId;
76
+ name: string;
77
+ kind: 'operator' | 'agent' | 'viewer' | 'person' | 'app' | 'plugin';
78
+ status: 'awaitingCrew' | 'crewed' | 'retired';
79
+ }
80
+ /** Outbound port: the fleet's ships, read as the actor (fleet.list), within its read reach. */
81
+ export interface FleetShips {
82
+ list(as: ActorCredential): Promise<Result<FleetShip[], FleetRefusal>>;
74
83
  }
@@ -16,12 +16,18 @@ export type ShownParty = (ShownPartyBase & {
16
16
  kind: 'mcpClient';
17
17
  clientId: string;
18
18
  });
19
- /** What the fleet holds for a party's proxy ship (decision 0056): none while it has no proxy ship, or the fleet does not answer. */
19
+ /**
20
+ * What the fleet holds for a party's proxy ship (decision 0056): its name,
21
+ * owner and scopes; none while it has no proxy ship, or the fleet does not
22
+ * answer, and only its name outside the actor's read reach.
23
+ */
20
24
  export interface FromFleet {
25
+ proxyShipName: string | null;
21
26
  ownerShipId: ShipId | null;
27
+ ownerName: string | null;
22
28
  scopes: string[] | null;
23
29
  }
24
- /** A party with its proxy ship's owner and scopes, read from the fleet. */
30
+ /** A party with its proxy ship's name, owner and scopes, read from the fleet. */
25
31
  export type ListedParty = ShownParty & FromFleet;
26
32
  export declare function shownPartyOf(party: Party): ShownParty;
27
33
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"shown-party.js","sourceRoot":"","sources":["../../../src/core/parties/shown-party.ts"],"names":[],"mappings":"AAyBA,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC3C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACzJ,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"shown-party.js","sourceRoot":"","sources":["../../../src/core/parties/shown-party.ts"],"names":[],"mappings":"AA+BA,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC3C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACzJ,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACpF,CAAC;AACH,CAAC"}
@@ -1,8 +1,9 @@
1
- import type { FleetId, ShipId } from '@aeolus-fleet/common';
1
+ import type { ShipId } from '@aeolus-fleet/common';
2
2
  import type { ConnectionStore, FleetDoor } from '../connection/ports.js';
3
3
  import type { Clock } from '../shared/clock.js';
4
4
  import { type Result } from '../shared/result.js';
5
5
  import type { AccountTokenOf, AccountTokenRefusal } from '../sign-in/account-token.js';
6
+ import type { PersonCaller } from './person-crew.js';
6
7
  import type { AccountDoor, PersonCrews } from './ports.js';
7
8
  /**
8
9
  * Why the gateway has no crew for the person's ship, beside why it has no account token:
@@ -18,10 +19,7 @@ export type CrewPersonShipRefusal = AccountTokenRefusal | {
18
19
  readonly kind: 'fleetRefused';
19
20
  readonly message: string;
20
21
  };
21
- export type CrewPersonShip = (grant: {
22
- fleetId: FleetId;
23
- grantId: string;
24
- }) => Promise<Result<{
22
+ export type CrewPersonShip = (caller: PersonCaller) => Promise<Result<{
25
23
  shipId: ShipId;
26
24
  crewToken: string;
27
25
  }, CrewPersonShipRefusal>>;
@@ -36,8 +36,8 @@ export function createCrewPersonShip(deps) {
36
36
  await deps.crews.save({ fleetId, shipId, crewToken: registered.value.crewToken, crewedAt: deps.clock.now() });
37
37
  return ok({ crewToken: registered.value.crewToken });
38
38
  };
39
- return async (grant) => {
40
- const token = await deps.accountTokenOf(grant);
39
+ return async (caller) => {
40
+ const token = 'signedIn' in caller ? ok(caller.signedIn) : await deps.accountTokenOf(caller);
41
41
  if (!token.isOk) {
42
42
  return token;
43
43
  }
@@ -45,12 +45,13 @@ export function createCrewPersonShip(deps) {
45
45
  if (shipId === null) {
46
46
  return err({ kind: 'noPersonShip' });
47
47
  }
48
- const held = await deps.crews.find(grant.fleetId, shipId);
48
+ const { fleetId } = caller;
49
+ const held = await deps.crews.find(fleetId, shipId);
49
50
  if (held !== undefined) {
50
51
  return ok({ shipId, crewToken: held.crewToken });
51
52
  }
52
- const key = `${grant.fleetId}/${shipId}`;
53
- const answer = crewing.get(key) ?? crew({ fleetId: grant.fleetId, shipId, accountToken }).finally(() => crewing.delete(key));
53
+ const key = `${fleetId}/${shipId}`;
54
+ const answer = crewing.get(key) ?? crew({ fleetId, shipId, accountToken }).finally(() => crewing.delete(key));
54
55
  crewing.set(key, answer);
55
56
  const crewed = await answer;
56
57
  return crewed.isOk ? ok({ shipId, crewToken: crewed.value.crewToken }) : crewed;
@@ -1 +1 @@
1
- {"version":3,"file":"crew-person-ship.js","sourceRoot":"","sources":["../../../src/core/people/crew-person-ship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crew-person-ship.js","sourceRoot":"","sources":["../../../src/core/people/crew-person-ship.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { DeliveryId } from '@aeolus-fleet/common';
2
- import type { PersonDelivery } from './ports.js';
2
+ import type { OpenedDelivery, PersonDelivery } from './ports.js';
3
3
  /** The longest title an inbox shows, as a message's headline is at most 80 characters. */
4
4
  export declare const TITLE_MAX_LENGTH = 80;
5
5
  /** A delivery as a person's inbox lists it: by titles only, so no payload leaves the fleet unopened (Q20). */
@@ -12,3 +12,4 @@ export interface InboxEntry {
12
12
  /** A question's own title; any other message's first line, cut to the longest title. */
13
13
  export declare function titleOf(delivery: PersonDelivery): string;
14
14
  export declare function inboxEntryOf(delivery: PersonDelivery): InboxEntry;
15
+ export declare function openedEntryOf(opened: OpenedDelivery): InboxEntry;
@@ -8,4 +8,7 @@ export function titleOf(delivery) {
8
8
  export function inboxEntryOf(delivery) {
9
9
  return { deliveryId: delivery.deliveryId, from: delivery.senderName, title: titleOf(delivery), sentAt: delivery.sentAt.toISOString() };
10
10
  }
11
+ export function openedEntryOf(opened) {
12
+ return { deliveryId: opened.deliveryId, from: opened.from, title: opened.title, sentAt: opened.sentAt.toISOString() };
13
+ }
11
14
  //# sourceMappingURL=inbox-entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-entry.js","sourceRoot":"","sources":["../../../src/core/people/inbox-entry.ts"],"names":[],"mappings":"AAIA,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAUnC,wFAAwF;AACxF,MAAM,UAAU,OAAO,CAAC,QAAwB;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjF,OAAO,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAwB;IACnD,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;AACzI,CAAC"}
1
+ {"version":3,"file":"inbox-entry.js","sourceRoot":"","sources":["../../../src/core/people/inbox-entry.ts"],"names":[],"mappings":"AAIA,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAUnC,wFAAwF;AACxF,MAAM,UAAU,OAAO,CAAC,QAAwB;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjF,OAAO,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAwB;IACnD,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;AACzI,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAsB;IAClD,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;AACxH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type DomainError } from '../shared/errors.js';
2
+ import { type Result } from '../shared/result.js';
3
+ import type { CrewPersonShip } from './crew-person-ship.js';
4
+ import { type PersonCaller, type PersonCrewError } from './person-crew.js';
5
+ import type { PersonCrews, PersonDiscovery, PersonShipDoor } from './ports.js';
6
+ export type ListShips = (caller: PersonCaller) => Promise<Result<PersonDiscovery, PersonCrewError | DomainError<'SEND_REFUSED'>>>;
7
+ /**
8
+ * Use case: a person reads the ships and types their person ship may send to
9
+ * now, with what each offers (aeolus-fleet #1046). It is the fleet's
10
+ * discover, as the person ship, so the ship's scopes and the network rules
11
+ * decide it; the gateway adds no rule of its own.
12
+ */
13
+ export declare function createListShips(deps: {
14
+ crewPersonShip: CrewPersonShip;
15
+ crews: PersonCrews;
16
+ door: PersonShipDoor;
17
+ }): ListShips;
@@ -0,0 +1,20 @@
1
+ import { refuse } from '../shared/errors.js';
2
+ import { ok } from '../shared/result.js';
3
+ import { asPersonCrew, withOwnRefusal } from './person-crew.js';
4
+ /**
5
+ * Use case: a person reads the ships and types their person ship may send to
6
+ * now, with what each offers (aeolus-fleet #1046). It is the fleet's
7
+ * discover, as the person ship, so the ship's scopes and the network rules
8
+ * decide it; the gateway adds no rule of its own.
9
+ */
10
+ export function createListShips(deps) {
11
+ return async (caller) => {
12
+ const found = await asPersonCrew(deps, { caller, run: (crew) => withOwnRefusal(deps.door.discover(crew.crewToken)) });
13
+ if (!found.isOk) {
14
+ return found;
15
+ }
16
+ const discovery = found.value.value;
17
+ return discovery.isOk ? ok(discovery.value) : refuse('SEND_REFUSED', `The fleet did not say what you may send to: ${discovery.error.message}`);
18
+ };
19
+ }
20
+ //# sourceMappingURL=list-ships.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-ships.js","sourceRoot":"","sources":["../../../src/core/people/list-ships.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,cAAc,EAA2C,MAAM,kBAAkB,CAAC;AAKzG;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAkF;IAChH,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;QACtH,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;QACpC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,+CAA+C,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACjJ,CAAC,CAAC;AACJ,CAAC"}
@@ -10,21 +10,26 @@ export interface OpenedView extends InboxEntry {
10
10
  readonly contentType: string;
11
11
  readonly payload: string;
12
12
  }
13
+ type OpenError = PersonCrewError | DomainError<'NO_SUCH_DELIVERY'>;
13
14
  export type OpenDelivery = (input: {
14
15
  caller: PersonCaller;
15
16
  deliveryId: string;
16
- }) => Promise<Result<OpenedView, PersonCrewError | DomainError<'NO_SUCH_DELIVERY'>>>;
17
+ }) => Promise<Result<OpenedView, OpenError>>;
18
+ interface OpenDeps {
19
+ crewPersonShip: CrewPersonShip;
20
+ crews: PersonCrews;
21
+ door: PersonShipDoor;
22
+ opened: OpenedDeliveries;
23
+ clock: Clock;
24
+ }
17
25
  /**
18
26
  * Use case: a person opens one delivery that waits for their person ship
19
27
  * (Q20). Opening is their own act, so the gateway, as the ship's crew,
20
28
  * acknowledges it for them (interop 5.1). What their answer needs is kept
21
29
  * before the acknowledgement, so a crash between the two loses nothing: the
22
- * delivery then still waits, and opening it again keeps it once.
30
+ * delivery then still waits, and opening it again keeps it once. One they
31
+ * opened, from any client, opens again whole as the fleet reads it again,
32
+ * never from a copy, until they answer it or are done (aeolus-fleet #1046).
23
33
  */
24
- export declare function createOpenDelivery(deps: {
25
- crewPersonShip: CrewPersonShip;
26
- crews: PersonCrews;
27
- door: PersonShipDoor;
28
- opened: OpenedDeliveries;
29
- clock: Clock;
30
- }): OpenDelivery;
34
+ export declare function createOpenDelivery(deps: OpenDeps): OpenDelivery;
35
+ export {};
@@ -1,14 +1,16 @@
1
1
  import { refuse } from '../shared/errors.js';
2
2
  import { ok } from '../shared/result.js';
3
3
  import { inboxEntryOf, titleOf } from './inbox-entry.js';
4
- import { asPersonCrew } from './person-crew.js';
4
+ import { asPersonCrew, withOwnRefusal } from './person-crew.js';
5
5
  import { waitingFor } from './read-inbox.js';
6
6
  /**
7
7
  * Use case: a person opens one delivery that waits for their person ship
8
8
  * (Q20). Opening is their own act, so the gateway, as the ship's crew,
9
9
  * acknowledges it for them (interop 5.1). What their answer needs is kept
10
10
  * before the acknowledgement, so a crash between the two loses nothing: the
11
- * delivery then still waits, and opening it again keeps it once.
11
+ * delivery then still waits, and opening it again keeps it once. One they
12
+ * opened, from any client, opens again whole as the fleet reads it again,
13
+ * never from a copy, until they answer it or are done (aeolus-fleet #1046).
12
14
  */
13
15
  export function createOpenDelivery(deps) {
14
16
  return async ({ caller, deliveryId }) => {
@@ -18,7 +20,7 @@ export function createOpenDelivery(deps) {
18
20
  }
19
21
  const delivery = waiting.value.deliveries.find((each) => each.deliveryId === deliveryId);
20
22
  if (!delivery) {
21
- return refuse('NO_SUCH_DELIVERY', `No delivery ${deliveryId} waits for you: read your inbox again`);
23
+ return openedAgain(deps, { caller, crew: waiting.value.crew, deliveryId });
22
24
  }
23
25
  await deps.opened.save({
24
26
  fleetId: caller.fleetId,
@@ -28,13 +30,31 @@ export function createOpenDelivery(deps) {
28
30
  senderShipId: delivery.senderShipId,
29
31
  from: delivery.senderName,
30
32
  title: titleOf(delivery),
33
+ sentAt: delivery.sentAt,
31
34
  openedAt: deps.clock.now(),
32
35
  });
33
36
  const acknowledged = await asPersonCrew(deps, { caller, run: (crew) => deps.door.ack(crew.crewToken, delivery.deliveryId) });
34
37
  if (!acknowledged.isOk) {
35
38
  return acknowledged;
36
39
  }
37
- return ok({ ...inboxEntryOf(delivery), contentType: delivery.contentType, payload: delivery.payload });
40
+ return ok(viewOf(delivery));
38
41
  };
39
42
  }
43
+ /** A delivery the person opened before, as the fleet reads it again, acknowledging nothing. */
44
+ async function openedAgain(deps, asked) {
45
+ const { caller, crew, deliveryId } = asked;
46
+ const opened = await deps.opened.find(caller.fleetId, { shipId: crew.shipId, deliveryId });
47
+ if (!opened) {
48
+ return refuse('NO_SUCH_DELIVERY', `No delivery ${deliveryId} waits for you or is opened: read your inbox again`);
49
+ }
50
+ const reread = await asPersonCrew(deps, { caller, run: (held) => withOwnRefusal(deps.door.delivery(held.crewToken, opened.deliveryId)) });
51
+ if (!reread.isOk) {
52
+ return reread;
53
+ }
54
+ const delivery = reread.value.value;
55
+ return delivery.isOk ? ok(viewOf(delivery.value)) : refuse('NO_SUCH_DELIVERY', `The fleet no longer holds it opened: ${delivery.error.message}`);
56
+ }
57
+ function viewOf(delivery) {
58
+ return { ...inboxEntryOf(delivery), contentType: delivery.contentType, payload: delivery.payload };
59
+ }
40
60
  //# sourceMappingURL=open-delivery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"open-delivery.js","sourceRoot":"","sources":["../../../src/core/people/open-delivery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAmB,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAA2C,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAU7C;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA0H;IAC3J,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QACzF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,kBAAkB,EAAE,eAAe,UAAU,uCAAuC,CAAC,CAAC;QACtG,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM;YACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,IAAI,EAAE,QAAQ,CAAC,UAAU;YACzB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;SAC3B,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC7H,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACzG,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"open-delivery.js","sourceRoot":"","sources":["../../../src/core/people/open-delivery.ts"],"names":[],"mappings":"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"}
@@ -5,10 +5,22 @@ import { type Result } from '../shared/result.js';
5
5
  import type { CrewPersonShip } from './crew-person-ship.js';
6
6
  import type { PersonCrews } from './ports.js';
7
7
  /** Who calls from a signed-in person's MCP client: the account grant its token stands for. */
8
- export interface PersonCaller {
8
+ export interface GrantCaller {
9
9
  readonly fleetId: FleetId;
10
10
  readonly grantId: string;
11
11
  }
12
+ /**
13
+ * Who calls as a signed-in person: from their MCP client, the account grant
14
+ * its token stands for; from the web app's pages, with the shared sign-in
15
+ * (header design H5), the account token pagasae exchanged it for.
16
+ */
17
+ export type PersonCaller = GrantCaller | {
18
+ readonly fleetId: FleetId;
19
+ readonly signedIn: {
20
+ readonly accountToken: string;
21
+ readonly personShipId: ShipId | null;
22
+ };
23
+ };
12
24
  /** The person ship the gateway crews for the caller, and its crew token. */
13
25
  export interface PersonCrewToken {
14
26
  readonly shipId: ShipId;
@@ -1 +1 @@
1
- {"version":3,"file":"person-crew.js","sourceRoot":"","sources":["../../../src/core/people/person-crew.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAkBtD,kGAAkG;AAClG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;AAE5D,4GAA4G;AAC5G,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,cAA8B,EAAE,MAAoB;IACrF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC,cAAc,EAAE,iFAAiF,CAAC,CAAC;QACnH,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,YAAY,EAAE,wDAAwD,CAAC,CAAC;QACxF,KAAK,oBAAoB;YACvB,OAAO,MAAM,CAAC,mBAAmB,EAAE,+CAA+C,CAAC,CAAC;QACtF,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC,mBAAmB,EAAE,iEAAiE,CAAC,CAAC;QACxG,KAAK,cAAc;YACjB,OAAO,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAA4D,EAC5D,IAAgG;IAEhG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3G,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAqB;IAC9C,OAAO,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACrF,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAI,MAAwC;IAC9E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACzF,CAAC"}
1
+ {"version":3,"file":"person-crew.js","sourceRoot":"","sources":["../../../src/core/people/person-crew.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@
3
3
  * messaging (decisions 0054, 0057): the fleet's calls it makes as their
4
4
  * account, and the one crew every client of the person shares.
5
5
  */
6
- import type { DeliveryId, FleetId, MessageId, ShipId } from '@aeolus-fleet/common';
6
+ import type { DeliveryId, FleetId, MessageId, ShipId, ShipKind } from '@aeolus-fleet/common';
7
7
  import type { FleetRefusal } from '../connection/ports.js';
8
+ import type { DiscoveredStatement } from '../mcp-in/ports.js';
8
9
  import type { Result } from '../shared/result.js';
9
10
  /** A call the gateway makes for an account: the account's token beside the gateway's own crew token, so the account acts through the gateway's ship. */
10
11
  export interface AccountCall {
@@ -47,6 +48,27 @@ export interface PersonDelivery {
47
48
  readonly sentAt: Date;
48
49
  readonly inReplyTo: MessageId | null;
49
50
  }
51
+ /** What a person ship may send to now, as the fleet's discover answers it: each ship by name, with what it offers, and each type. */
52
+ export interface PersonDiscovery {
53
+ readonly ships: readonly {
54
+ readonly name: string;
55
+ readonly type: string;
56
+ readonly kind: ShipKind;
57
+ readonly statement: DiscoveredStatement;
58
+ }[];
59
+ readonly types: readonly {
60
+ readonly type: string;
61
+ readonly reachable: number;
62
+ }[];
63
+ }
64
+ /** Who a person's message is for: one ship by its name, or any ship of a type. */
65
+ export type PersonSelector = {
66
+ readonly kind: 'ship';
67
+ readonly name: string;
68
+ } | {
69
+ readonly kind: 'type';
70
+ readonly type: string;
71
+ };
50
72
  /** Outbound port: the fleet's calls the gateway makes as the crew of a person ship. */
51
73
  export interface PersonShipDoor {
52
74
  /** How many deliveries wait for the ship, without waiting. */
@@ -59,6 +81,8 @@ export interface PersonShipDoor {
59
81
  }): Promise<Result<PersonDelivery[], FleetRefusal>>;
60
82
  /** Acknowledges a delivery the person opened: their own act confirms it (interop 5.1). */
61
83
  ack(crewToken: string, deliveryId: DeliveryId): Promise<Result<undefined, FleetRefusal>>;
84
+ /** Reads a delivery the ship acknowledged again, whole, while it is not handled, recording nothing (decision 0040). */
85
+ delivery(crewToken: string, deliveryId: DeliveryId): Promise<Result<PersonDelivery, FleetRefusal>>;
62
86
  /** Sends the person's answer to the sender, in reply to its message, once under its key. */
63
87
  reply(crewToken: string, reply: {
64
88
  to: ShipId;
@@ -69,12 +93,24 @@ export interface PersonShipDoor {
69
93
  }): Promise<Result<undefined, FleetRefusal>>;
70
94
  /** Reports the person dealt with the delivery. */
71
95
  handled(crewToken: string, deliveryId: DeliveryId): Promise<Result<undefined, FleetRefusal>>;
96
+ /** The ships and types the ship may send to now: the fleet checks its scopes and the network rules. */
97
+ discover(crewToken: string): Promise<Result<PersonDiscovery, FleetRefusal>>;
98
+ /** Sends the person's own message, once under its key. */
99
+ send(crewToken: string, message: {
100
+ to: PersonSelector;
101
+ contentType: string;
102
+ payload: string;
103
+ idempotencyKey: string;
104
+ }): Promise<Result<{
105
+ messageId: MessageId;
106
+ }, FleetRefusal>>;
72
107
  }
73
108
  /**
74
109
  * A delivery a person opened, as the gateway keeps it until they deal with
75
110
  * it (Q28 (a)): what their answer needs once the delivery is acknowledged,
76
- * its message and sender, and its title, never its payload. It is the person
77
- * ship's, so every client of the person finds it.
111
+ * its message and sender, and what their inbox lists, its title and when it
112
+ * was sent, never its payload. It is the person ship's, so every client of
113
+ * the person finds it.
78
114
  */
79
115
  export interface OpenedDelivery {
80
116
  readonly fleetId: FleetId;
@@ -84,6 +120,7 @@ export interface OpenedDelivery {
84
120
  readonly senderShipId: ShipId;
85
121
  readonly from: string;
86
122
  readonly title: string;
123
+ readonly sentAt: Date;
87
124
  readonly openedAt: Date;
88
125
  }
89
126
  /** Outbound port: the deliveries people opened, by fleet, person ship and delivery. */
@@ -94,6 +131,8 @@ export interface OpenedDeliveries {
94
131
  shipId: ShipId;
95
132
  deliveryId: string;
96
133
  }): Promise<OpenedDelivery | undefined>;
134
+ /** The person ship's, oldest opened first. */
135
+ list(fleetId: FleetId, shipId: ShipId): Promise<OpenedDelivery[]>;
97
136
  /** Forgets it once the person dealt with it. */
98
137
  remove(fleetId: FleetId, opened: {
99
138
  shipId: ShipId;
@@ -2,13 +2,16 @@ import { type Result } from '../shared/result.js';
2
2
  import type { CrewPersonShip } from './crew-person-ship.js';
3
3
  import { type InboxEntry } from './inbox-entry.js';
4
4
  import { type PersonCaller, type PersonCrewError, type PersonCrewToken } from './person-crew.js';
5
- import type { PersonCrews, PersonDelivery, PersonShipDoor } from './ports.js';
5
+ import type { OpenedDeliveries, PersonCrews, PersonDelivery, PersonShipDoor } from './ports.js';
6
6
  /** The most deliveries an inbox lists at once: as many as one receive takes. */
7
7
  export declare const INBOX_LIST_MAX = 10;
8
- export type ReadInbox = (caller: PersonCaller) => Promise<Result<{
9
- waiting: number;
10
- deliveries: InboxEntry[];
11
- }, PersonCrewError>>;
8
+ /** A person's inbox: how many deliveries wait and the first of them, and the ones they opened and have not answered or done yet. */
9
+ export interface Inbox {
10
+ readonly waiting: number;
11
+ readonly deliveries: InboxEntry[];
12
+ readonly opened: InboxEntry[];
13
+ }
14
+ export type ReadInbox = (caller: PersonCaller) => Promise<Result<Inbox, PersonCrewError>>;
12
15
  /**
13
16
  * What waits for the caller's person ship: how many, and up to the most an
14
17
  * inbox lists, taken as received, the crew's own held ones again first. It
@@ -25,13 +28,16 @@ export declare function waitingFor(deps: {
25
28
  deliveries: PersonDelivery[];
26
29
  }, PersonCrewError>>;
27
30
  /**
28
- * Use case: a person reads their own person ship's inbox (Q20): what waits,
29
- * by titles only. The gateway takes the waiting deliveries as the ship's
30
- * crew, so nothing is stored in the gateway, and a delivery listed is listed
31
- * again until the person deals with it.
31
+ * Use case: a person reads their own person ship's inbox (Q20), by titles
32
+ * only, in two groups (aeolus-fleet #1046): what waits, which the gateway
33
+ * takes as the ship's crew, and what any client of the person opened and
34
+ * they have not answered or done yet. A delivery the fleet still holds as
35
+ * waiting, as when it did not take its acknowledgement, is listed waiting
36
+ * only.
32
37
  */
33
38
  export declare function createReadInbox(deps: {
34
39
  crewPersonShip: CrewPersonShip;
35
40
  crews: PersonCrews;
36
41
  door: PersonShipDoor;
42
+ opened: OpenedDeliveries;
37
43
  }): ReadInbox;