@aeolus-fleet/core 0.27.1 → 0.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/dist/adapters/crypto/account-token-signatures.d.ts +12 -0
  2. package/dist/adapters/crypto/account-token-signatures.js +104 -0
  3. package/dist/adapters/crypto/account-token-signatures.js.map +1 -0
  4. package/dist/adapters/http/request-credentials.d.ts +7 -1
  5. package/dist/adapters/http/request-credentials.js +18 -5
  6. package/dist/adapters/http/request-credentials.js.map +1 -1
  7. package/dist/adapters/http/server.js +4 -2
  8. package/dist/adapters/http/server.js.map +1 -1
  9. package/dist/adapters/prisma/event-log.js +13 -1
  10. package/dist/adapters/prisma/event-log.js.map +1 -1
  11. package/dist/adapters/prisma/generated/browser.d.ts +30 -0
  12. package/dist/adapters/prisma/generated/client.d.ts +30 -0
  13. package/dist/adapters/prisma/generated/commonInputTypes.d.ts +120 -0
  14. package/dist/adapters/prisma/generated/enums.d.ts +25 -0
  15. package/dist/adapters/prisma/generated/enums.js +22 -1
  16. package/dist/adapters/prisma/generated/enums.js.map +1 -1
  17. package/dist/adapters/prisma/generated/internal/class.d.ts +44 -0
  18. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  19. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  20. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +372 -9
  21. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +38 -11
  22. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  23. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +39 -8
  24. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +38 -11
  25. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  26. package/dist/adapters/prisma/generated/models/AccountCutOff.d.ts +944 -0
  27. package/dist/adapters/prisma/generated/models/AccountCutOff.js +2 -0
  28. package/dist/adapters/prisma/generated/models/AccountCutOff.js.map +1 -0
  29. package/dist/adapters/prisma/generated/models/ConsoleSession.d.ts +59 -1
  30. package/dist/adapters/prisma/generated/models/Event.d.ts +426 -1
  31. package/dist/adapters/prisma/generated/models/Fleet.d.ts +871 -0
  32. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.d.ts +1031 -0
  33. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js +2 -0
  34. package/dist/adapters/prisma/generated/models/InstallationDeclaredNetworkRules.js.map +1 -0
  35. package/dist/adapters/prisma/generated/models/Label.d.ts +113 -39
  36. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.d.ts +1133 -0
  37. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js +2 -0
  38. package/dist/adapters/prisma/generated/models/NetworkRulesDraft.js.map +1 -0
  39. package/dist/adapters/prisma/generated/models/NetworkSettings.d.ts +24 -255
  40. package/dist/adapters/prisma/generated/models/ReachRefusal.d.ts +1 -40
  41. package/dist/adapters/prisma/generated/models/Ship.d.ts +782 -6
  42. package/dist/adapters/prisma/generated/models/SignInTicket.d.ts +39 -1
  43. package/dist/adapters/prisma/generated/models/VerifiedFacts.d.ts +1325 -0
  44. package/dist/adapters/prisma/generated/models/VerifiedFacts.js +2 -0
  45. package/dist/adapters/prisma/generated/models/VerifiedFacts.js.map +1 -0
  46. package/dist/adapters/prisma/generated/models.d.ts +4 -0
  47. package/dist/adapters/prisma/history.js +1 -0
  48. package/dist/adapters/prisma/history.js.map +1 -1
  49. package/dist/adapters/prisma/identity.d.ts +3 -1
  50. package/dist/adapters/prisma/identity.js +41 -8
  51. package/dist/adapters/prisma/identity.js.map +1 -1
  52. package/dist/adapters/prisma/network.d.ts +7 -2
  53. package/dist/adapters/prisma/network.js +92 -65
  54. package/dist/adapters/prisma/network.js.map +1 -1
  55. package/dist/adapters/prisma/registry.js +19 -14
  56. package/dist/adapters/prisma/registry.js.map +1 -1
  57. package/dist/adapters/prisma/rows.d.ts +9 -4
  58. package/dist/adapters/prisma/rows.js +75 -19
  59. package/dist/adapters/prisma/rows.js.map +1 -1
  60. package/dist/adapters/prisma/unit-of-work.d.ts +4 -2
  61. package/dist/adapters/prisma/unit-of-work.js +5 -2
  62. package/dist/adapters/prisma/unit-of-work.js.map +1 -1
  63. package/dist/adapters/prisma/verified-facts.d.ts +4 -0
  64. package/dist/adapters/prisma/verified-facts.js +65 -0
  65. package/dist/adapters/prisma/verified-facts.js.map +1 -0
  66. package/dist/adapters/rest/rest-api.js +2 -2
  67. package/dist/adapters/rest/rest-api.js.map +1 -1
  68. package/dist/adapters/trpc/console.d.ts +3 -1
  69. package/dist/adapters/trpc/context.d.ts +22 -8
  70. package/dist/adapters/trpc/fleet.d.ts +259 -52
  71. package/dist/adapters/trpc/fleet.js +121 -84
  72. package/dist/adapters/trpc/fleet.js.map +1 -1
  73. package/dist/adapters/trpc/installation-token.d.ts +7 -0
  74. package/dist/adapters/trpc/installation-token.js +10 -0
  75. package/dist/adapters/trpc/installation-token.js.map +1 -0
  76. package/dist/adapters/trpc/installation.d.ts +32 -2
  77. package/dist/adapters/trpc/installation.js +14 -10
  78. package/dist/adapters/trpc/installation.js.map +1 -1
  79. package/dist/adapters/trpc/router.d.ts +307 -43
  80. package/dist/adapters/trpc/ship-contract.js +6 -4
  81. package/dist/adapters/trpc/ship-contract.js.map +1 -1
  82. package/dist/adapters/trpc/ship.d.ts +32 -1
  83. package/dist/adapters/trpc/ship.js +4 -2
  84. package/dist/adapters/trpc/ship.js.map +1 -1
  85. package/dist/adapters/trpc/trpc.d.ts +36 -13
  86. package/dist/adapters/trpc/trpc.js +117 -26
  87. package/dist/adapters/trpc/trpc.js.map +1 -1
  88. package/dist/app.d.ts +2 -0
  89. package/dist/app.js +22 -0
  90. package/dist/app.js.map +1 -1
  91. package/dist/config.d.ts +5 -0
  92. package/dist/config.js +3 -1
  93. package/dist/config.js.map +1 -1
  94. package/dist/domain/identity/authenticate-account.d.ts +35 -0
  95. package/dist/domain/identity/authenticate-account.js +54 -0
  96. package/dist/domain/identity/authenticate-account.js.map +1 -0
  97. package/dist/domain/identity/authenticate-installation.d.ts +23 -0
  98. package/dist/domain/identity/authenticate-installation.js +20 -0
  99. package/dist/domain/identity/authenticate-installation.js.map +1 -0
  100. package/dist/domain/identity/authenticate.d.ts +2 -2
  101. package/dist/domain/identity/console-session.d.ts +6 -3
  102. package/dist/domain/identity/console-session.js.map +1 -1
  103. package/dist/domain/identity/cut-off-account.d.ts +29 -0
  104. package/dist/domain/identity/cut-off-account.js +37 -0
  105. package/dist/domain/identity/cut-off-account.js.map +1 -0
  106. package/dist/domain/identity/dismiss-notice.d.ts +2 -2
  107. package/dist/domain/identity/issue-sign-in-ticket.d.ts +9 -3
  108. package/dist/domain/identity/issue-sign-in-ticket.js +8 -2
  109. package/dist/domain/identity/issue-sign-in-ticket.js.map +1 -1
  110. package/dist/domain/identity/ports.d.ts +52 -5
  111. package/dist/domain/identity/read-account.d.ts +8 -4
  112. package/dist/domain/identity/read-account.js +1 -1
  113. package/dist/domain/identity/read-account.js.map +1 -1
  114. package/dist/domain/identity/read-guide.d.ts +2 -2
  115. package/dist/domain/identity/read-notices.d.ts +2 -2
  116. package/dist/domain/identity/record-guide-progress.d.ts +2 -2
  117. package/dist/domain/identity/redeem-sign-in-ticket.d.ts +2 -1
  118. package/dist/domain/identity/redeem-sign-in-ticket.js +3 -2
  119. package/dist/domain/identity/redeem-sign-in-ticket.js.map +1 -1
  120. package/dist/domain/identity/set-theme.d.ts +2 -2
  121. package/dist/domain/identity/sign-in-ticket.d.ts +3 -1
  122. package/dist/domain/identity/sign-in.d.ts +2 -2
  123. package/dist/domain/identity/sign-in.js +2 -0
  124. package/dist/domain/identity/sign-in.js.map +1 -1
  125. package/dist/domain/identity/sign-out.d.ts +2 -2
  126. package/dist/domain/identity/sign-out.js +1 -1
  127. package/dist/domain/identity/sign-out.js.map +1 -1
  128. package/dist/domain/identity/start-console-session.d.ts +4 -2
  129. package/dist/domain/identity/start-console-session.js +6 -4
  130. package/dist/domain/identity/start-console-session.js.map +1 -1
  131. package/dist/domain/identity/start-viewer-session.js +1 -0
  132. package/dist/domain/identity/start-viewer-session.js.map +1 -1
  133. package/dist/domain/messaging/delivery.d.ts +3 -1
  134. package/dist/domain/messaging/delivery.js +9 -6
  135. package/dist/domain/messaging/delivery.js.map +1 -1
  136. package/dist/domain/messaging/dismiss-delivery.d.ts +2 -2
  137. package/dist/domain/messaging/message.d.ts +3 -1
  138. package/dist/domain/messaging/message.js +1 -1
  139. package/dist/domain/messaging/message.js.map +1 -1
  140. package/dist/domain/messaging/ping-ship.d.ts +2 -2
  141. package/dist/domain/messaging/ping-ship.js +1 -1
  142. package/dist/domain/messaging/ping-ship.js.map +1 -1
  143. package/dist/domain/messaging/resend-delivery.d.ts +2 -2
  144. package/dist/domain/messaging/resend-delivery.js +1 -0
  145. package/dist/domain/messaging/resend-delivery.js.map +1 -1
  146. package/dist/domain/messaging/send-message.d.ts +3 -3
  147. package/dist/domain/messaging/send-message.js +1 -0
  148. package/dist/domain/messaging/send-message.js.map +1 -1
  149. package/dist/domain/registry/apply-network-rules.d.ts +32 -0
  150. package/dist/domain/registry/apply-network-rules.js +33 -0
  151. package/dist/domain/registry/apply-network-rules.js.map +1 -0
  152. package/dist/domain/registry/assign-crew.d.ts +2 -2
  153. package/dist/domain/registry/assign-crew.js +3 -2
  154. package/dist/domain/registry/assign-crew.js.map +1 -1
  155. package/dist/domain/registry/assign-label.d.ts +7 -5
  156. package/dist/domain/registry/assign-label.js +16 -6
  157. package/dist/domain/registry/assign-label.js.map +1 -1
  158. package/dist/domain/registry/change-label-values.d.ts +1 -1
  159. package/dist/domain/registry/change-label-values.js +4 -3
  160. package/dist/domain/registry/change-label-values.js.map +1 -1
  161. package/dist/domain/registry/check-reach.d.ts +45 -24
  162. package/dist/domain/registry/check-reach.js +76 -42
  163. package/dist/domain/registry/check-reach.js.map +1 -1
  164. package/dist/domain/registry/clear-request.d.ts +1 -1
  165. package/dist/domain/registry/clear-request.js +1 -1
  166. package/dist/domain/registry/clear-request.js.map +1 -1
  167. package/dist/domain/registry/commission-ship.d.ts +23 -14
  168. package/dist/domain/registry/commission-ship.js +167 -21
  169. package/dist/domain/registry/commission-ship.js.map +1 -1
  170. package/dist/domain/registry/confirm-crew-release.d.ts +2 -2
  171. package/dist/domain/registry/confirm-crew-release.js +3 -2
  172. package/dist/domain/registry/confirm-crew-release.js.map +1 -1
  173. package/dist/domain/registry/confirm-worktree-cleared.d.ts +2 -2
  174. package/dist/domain/registry/confirm-worktree-cleared.js +3 -2
  175. package/dist/domain/registry/confirm-worktree-cleared.js.map +1 -1
  176. package/dist/domain/registry/connect-plugin.d.ts +5 -4
  177. package/dist/domain/registry/connect-plugin.js +6 -7
  178. package/dist/domain/registry/connect-plugin.js.map +1 -1
  179. package/dist/domain/registry/crew-request.d.ts +2 -2
  180. package/dist/domain/registry/crew-request.js.map +1 -1
  181. package/dist/domain/registry/declare-network-rules.d.ts +9 -6
  182. package/dist/domain/registry/declare-network-rules.js +13 -8
  183. package/dist/domain/registry/declare-network-rules.js.map +1 -1
  184. package/dist/domain/registry/declare-scopes.d.ts +2 -2
  185. package/dist/domain/registry/declared-network-rules.d.ts +30 -21
  186. package/dist/domain/registry/declared-network-rules.js +46 -22
  187. package/dist/domain/registry/declared-network-rules.js.map +1 -1
  188. package/dist/domain/registry/define-label.d.ts +1 -1
  189. package/dist/domain/registry/define-label.js +5 -5
  190. package/dist/domain/registry/define-label.js.map +1 -1
  191. package/dist/domain/registry/delete-label.d.ts +1 -1
  192. package/dist/domain/registry/delete-label.js +4 -3
  193. package/dist/domain/registry/delete-label.js.map +1 -1
  194. package/dist/domain/registry/discard-network-rules-draft.d.ts +23 -0
  195. package/dist/domain/registry/discard-network-rules-draft.js +24 -0
  196. package/dist/domain/registry/discard-network-rules-draft.js.map +1 -0
  197. package/dist/domain/registry/discover.d.ts +11 -10
  198. package/dist/domain/registry/discover.js +11 -5
  199. package/dist/domain/registry/discover.js.map +1 -1
  200. package/dist/domain/registry/explain-crew-request.d.ts +2 -2
  201. package/dist/domain/registry/explain-crew-request.js +3 -2
  202. package/dist/domain/registry/explain-crew-request.js.map +1 -1
  203. package/dist/domain/registry/explain-reach.d.ts +21 -14
  204. package/dist/domain/registry/explain-reach.js +53 -53
  205. package/dist/domain/registry/explain-reach.js.map +1 -1
  206. package/dist/domain/registry/get-ship.d.ts +2 -2
  207. package/dist/domain/registry/get-starting-prompt.d.ts +4 -2
  208. package/dist/domain/registry/get-starting-prompt.js +7 -5
  209. package/dist/domain/registry/get-starting-prompt.js.map +1 -1
  210. package/dist/domain/registry/give-back-crew-request.d.ts +2 -2
  211. package/dist/domain/registry/give-back-crew-request.js +3 -2
  212. package/dist/domain/registry/give-back-crew-request.js.map +1 -1
  213. package/dist/domain/registry/grant-scopes.d.ts +8 -5
  214. package/dist/domain/registry/grant-scopes.js +14 -5
  215. package/dist/domain/registry/grant-scopes.js.map +1 -1
  216. package/dist/domain/registry/label.d.ts +69 -18
  217. package/dist/domain/registry/label.js +79 -28
  218. package/dist/domain/registry/label.js.map +1 -1
  219. package/dist/domain/registry/lease.d.ts +1 -1
  220. package/dist/domain/registry/list-fleet.d.ts +2 -0
  221. package/dist/domain/registry/list-fleet.js +1 -0
  222. package/dist/domain/registry/list-fleet.js.map +1 -1
  223. package/dist/domain/registry/list-scopes.d.ts +2 -1
  224. package/dist/domain/registry/list-scopes.js +2 -1
  225. package/dist/domain/registry/list-scopes.js.map +1 -1
  226. package/dist/domain/registry/managed-or-assigned.d.ts +12 -4
  227. package/dist/domain/registry/managed-or-assigned.js +25 -7
  228. package/dist/domain/registry/managed-or-assigned.js.map +1 -1
  229. package/dist/domain/registry/network-rules-draft.d.ts +45 -0
  230. package/dist/domain/registry/network-rules-draft.js +41 -0
  231. package/dist/domain/registry/network-rules-draft.js.map +1 -0
  232. package/dist/domain/registry/network-settings.d.ts +92 -122
  233. package/dist/domain/registry/network-settings.js +99 -159
  234. package/dist/domain/registry/network-settings.js.map +1 -1
  235. package/dist/domain/registry/ports.d.ts +47 -11
  236. package/dist/domain/registry/reach-refusal.d.ts +18 -4
  237. package/dist/domain/registry/read-assigned-crew-requests.d.ts +2 -2
  238. package/dist/domain/registry/read-built-in-rules.d.ts +4 -3
  239. package/dist/domain/registry/read-built-in-rules.js +7 -6
  240. package/dist/domain/registry/read-built-in-rules.js.map +1 -1
  241. package/dist/domain/registry/read-clear-requests.d.ts +2 -2
  242. package/dist/domain/registry/read-clear-requests.js.map +1 -1
  243. package/dist/domain/registry/read-declared-network-rules.d.ts +5 -5
  244. package/dist/domain/registry/read-declared-network-rules.js +4 -4
  245. package/dist/domain/registry/read-declared-network-rules.js.map +1 -1
  246. package/dist/domain/registry/read-network-rules-draft-changes.d.ts +22 -0
  247. package/dist/domain/registry/read-network-rules-draft-changes.js +53 -0
  248. package/dist/domain/registry/read-network-rules-draft-changes.js.map +1 -0
  249. package/dist/domain/registry/read-network-rules.d.ts +30 -0
  250. package/dist/domain/registry/read-network-rules.js +18 -0
  251. package/dist/domain/registry/read-network-rules.js.map +1 -0
  252. package/dist/domain/registry/read-on-behalf.d.ts +3 -3
  253. package/dist/domain/registry/read-on-behalf.js.map +1 -1
  254. package/dist/domain/registry/read-reach-refusals.d.ts +6 -5
  255. package/dist/domain/registry/read-reach-refusals.js +13 -8
  256. package/dist/domain/registry/read-reach-refusals.js.map +1 -1
  257. package/dist/domain/registry/read-reach.d.ts +6 -8
  258. package/dist/domain/registry/read-reach.js +21 -16
  259. package/dist/domain/registry/read-reach.js.map +1 -1
  260. package/dist/domain/registry/recrew-ship.d.ts +2 -2
  261. package/dist/domain/registry/recrew-ship.js +3 -3
  262. package/dist/domain/registry/recrew-ship.js.map +1 -1
  263. package/dist/domain/registry/release-ship.d.ts +3 -2
  264. package/dist/domain/registry/release-ship.js +4 -3
  265. package/dist/domain/registry/release-ship.js.map +1 -1
  266. package/dist/domain/registry/remove-crew-request.d.ts +2 -2
  267. package/dist/domain/registry/remove-crew-request.js +4 -3
  268. package/dist/domain/registry/remove-crew-request.js.map +1 -1
  269. package/dist/domain/registry/rename-ship.d.ts +1 -1
  270. package/dist/domain/registry/rename-ship.js +4 -3
  271. package/dist/domain/registry/rename-ship.js.map +1 -1
  272. package/dist/domain/registry/report-crew-status.d.ts +2 -2
  273. package/dist/domain/registry/report-crew-status.js +3 -2
  274. package/dist/domain/registry/report-crew-status.js.map +1 -1
  275. package/dist/domain/registry/request-crew.d.ts +3 -3
  276. package/dist/domain/registry/request-crew.js +4 -3
  277. package/dist/domain/registry/request-crew.js.map +1 -1
  278. package/dist/domain/registry/request-worktree-clear.d.ts +2 -2
  279. package/dist/domain/registry/request-worktree-clear.js +4 -3
  280. package/dist/domain/registry/request-worktree-clear.js.map +1 -1
  281. package/dist/domain/registry/retire-ship.d.ts +16 -12
  282. package/dist/domain/registry/retire-ship.js +28 -21
  283. package/dist/domain/registry/retire-ship.js.map +1 -1
  284. package/dist/domain/registry/save-network-rules-draft.d.ts +31 -0
  285. package/dist/domain/registry/save-network-rules-draft.js +27 -0
  286. package/dist/domain/registry/save-network-rules-draft.js.map +1 -0
  287. package/dist/domain/registry/scope-grant.d.ts +19 -19
  288. package/dist/domain/registry/scope-grant.js +8 -9
  289. package/dist/domain/registry/scope-grant.js.map +1 -1
  290. package/dist/domain/registry/set-built-in-rule.d.ts +3 -3
  291. package/dist/domain/registry/set-built-in-rule.js +5 -9
  292. package/dist/domain/registry/set-built-in-rule.js.map +1 -1
  293. package/dist/domain/registry/set-owner.d.ts +9 -6
  294. package/dist/domain/registry/set-owner.js +14 -8
  295. package/dist/domain/registry/set-owner.js.map +1 -1
  296. package/dist/domain/registry/set-verified-facts.d.ts +36 -0
  297. package/dist/domain/registry/set-verified-facts.js +58 -0
  298. package/dist/domain/registry/set-verified-facts.js.map +1 -0
  299. package/dist/domain/registry/ship.d.ts +52 -18
  300. package/dist/domain/registry/ship.js +76 -18
  301. package/dist/domain/registry/ship.js.map +1 -1
  302. package/dist/domain/registry/statement.d.ts +2 -2
  303. package/dist/domain/registry/statement.js +2 -2
  304. package/dist/domain/registry/statement.js.map +1 -1
  305. package/dist/domain/registry/turn.d.ts +2 -2
  306. package/dist/domain/registry/turn.js +2 -2
  307. package/dist/domain/registry/turn.js.map +1 -1
  308. package/dist/domain/registry/unassign-label.d.ts +8 -5
  309. package/dist/domain/registry/unassign-label.js +17 -6
  310. package/dist/domain/registry/unassign-label.js.map +1 -1
  311. package/dist/domain/registry/verified-facts.d.ts +75 -0
  312. package/dist/domain/registry/verified-facts.js +107 -0
  313. package/dist/domain/registry/verified-facts.js.map +1 -0
  314. package/dist/domain/registry/whoami.d.ts +2 -2
  315. package/dist/domain/shared/caller.d.ts +40 -6
  316. package/dist/domain/shared/caller.js +20 -0
  317. package/dist/domain/shared/caller.js.map +1 -1
  318. package/dist/domain/shared/errors.d.ts +1 -1
  319. package/dist/domain/shared/errors.js.map +1 -1
  320. package/dist/domain/shared/events.d.ts +13 -2
  321. package/dist/domain/shared/events.js.map +1 -1
  322. package/dist/domain/shared/history.d.ts +3 -1
  323. package/dist/domain/shared/history.js.map +1 -1
  324. package/dist/domain/shared/read-fleet-limits.d.ts +2 -2
  325. package/dist/domain/shared/read-health.d.ts +2 -2
  326. package/dist/domain/shared/read-inbox.d.ts +2 -2
  327. package/dist/domain/shared/read-message.d.ts +2 -2
  328. package/dist/domain/shared/read-needs-attention.d.ts +2 -2
  329. package/dist/domain/shared/read-sent-message.d.ts +2 -2
  330. package/dist/domain/shared/read-ship-messages.d.ts +2 -2
  331. package/dist/domain/shared/read-ship-timeline.d.ts +2 -2
  332. package/dist/domain/shared/read-ship-way.d.ts +2 -2
  333. package/dist/domain/shared/read-ship-way.js +1 -1
  334. package/dist/domain/shared/read-ship-way.js.map +1 -1
  335. package/dist/start.js +1 -0
  336. package/dist/start.js.map +1 -1
  337. package/dist/testing/account-token-issuer.d.ts +30 -0
  338. package/dist/testing/account-token-issuer.js +48 -0
  339. package/dist/testing/account-token-issuer.js.map +1 -0
  340. package/dist/testing/fleet.d.ts +2 -2
  341. package/dist/testing/index.d.ts +1 -1
  342. package/dist/wiring.d.ts +21 -8
  343. package/dist/wiring.js +32 -13
  344. package/dist/wiring.js.map +1 -1
  345. package/package.json +2 -5
  346. package/src/adapters/prisma/migrations/20261019200000_account_cut_offs/migration.sql +10 -0
  347. package/src/adapters/prisma/migrations/20261019210000_event_actors/migration.sql +32 -0
  348. package/src/adapters/prisma/migrations/20261020090000_argos_jobs_as_scopes/migration.sql +65 -0
  349. package/src/adapters/prisma/migrations/20261020100000_installation_labels/migration.sql +7 -0
  350. package/src/adapters/prisma/migrations/20261020110000_installation_declared_network_rules/migration.sql +10 -0
  351. package/src/adapters/prisma/migrations/20261020120000_commissioning_actors/migration.sql +14 -0
  352. package/src/adapters/prisma/migrations/20261020130000_console_sign_in_accounts/migration.sql +4 -0
  353. package/src/adapters/prisma/migrations/20261020140000_event_signed_in_accounts/migration.sql +4 -0
  354. package/src/adapters/prisma/migrations/20261020150000_account_cut_off_ends_console_sessions/migration.sql +2 -0
  355. package/src/adapters/prisma/migrations/20261020160000_network_in_core/migration.sql +30 -0
  356. package/src/adapters/prisma/migrations/20261020170000_verify_scope/migration.sql +64 -0
  357. package/src/adapters/prisma/migrations/20261020180000_verified_facts/migration.sql +21 -0
  358. package/src/adapters/prisma/migrations/20261020190000_verified_facts_by_writer/migration.sql +3 -0
  359. package/src/adapters/prisma/schema.prisma +132 -23
  360. package/dist/domain/registry/read-network-plugin.d.ts +0 -23
  361. package/dist/domain/registry/read-network-plugin.js +0 -15
  362. package/dist/domain/registry/read-network-plugin.js.map +0 -1
  363. package/dist/domain/registry/register-network-plugin.d.ts +0 -28
  364. package/dist/domain/registry/register-network-plugin.js +0 -26
  365. package/dist/domain/registry/register-network-plugin.js.map +0 -1
  366. package/dist/domain/registry/set-network-rules.d.ts +0 -31
  367. package/dist/domain/registry/set-network-rules.js +0 -27
  368. package/dist/domain/registry/set-network-rules.js.map +0 -1
  369. package/dist/domain/registry/unregister-network-plugin.d.ts +0 -27
  370. package/dist/domain/registry/unregister-network-plugin.js +0 -25
  371. package/dist/domain/registry/unregister-network-plugin.js.map +0 -1
@@ -0,0 +1,41 @@
1
+ import { refuse } from '../shared/errors.js';
2
+ import { ok } from '../shared/result.js';
3
+ import { copyOfRule, invalidRules } from './network-settings.js';
4
+ /** The one refusal of a fleet without a draft. */
5
+ export function refuseNoDraft() {
6
+ return refuse('NO_NETWORK_RULES_DRAFT', 'The fleet has no draft of its network rules');
7
+ }
8
+ /**
9
+ * The fleet's draft from now on, in place of the one before, against the
10
+ * settings as they are, with NetworkRulesDraftSaved naming how many rules,
11
+ * none for all-to-all. The rules keep the limits an apply would hold them to.
12
+ * Nothing in force changes, so the version stays.
13
+ */
14
+ export function saveNetworkRulesDraft(settings, change) {
15
+ const { rules } = change;
16
+ const invalid = invalidRules(rules);
17
+ if (invalid !== undefined) {
18
+ return refuse('INVALID_NETWORK_RULES', invalid);
19
+ }
20
+ const draft = { fleetId: settings.fleetId, rules: rules === null ? null : rules.map(copyOfRule), savedAt: change.at, savedAgainstVersion: settings.version };
21
+ return ok({
22
+ draft,
23
+ events: [
24
+ {
25
+ type: 'NetworkRulesDraftSaved',
26
+ fleetId: settings.fleetId,
27
+ occurredAt: change.at,
28
+ actor: change.actor,
29
+ details: { rules: rules === null ? null : rules.length, savedAgainstVersion: settings.version },
30
+ },
31
+ ],
32
+ });
33
+ }
34
+ /** The draft goes, with NetworkRulesDraftDiscarded; the applied rules stay as they are. */
35
+ export function discardNetworkRulesDraft(draft, change) {
36
+ if (draft === undefined) {
37
+ return refuseNoDraft();
38
+ }
39
+ return ok({ events: [{ type: 'NetworkRulesDraftDiscarded', fleetId: change.fleetId, occurredAt: change.at, actor: change.actor, details: {} }] });
40
+ }
41
+ //# sourceMappingURL=network-rules-draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-rules-draft.js","sourceRoot":"","sources":["../../../src/domain/registry/network-rules-draft.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAoE,MAAM,uBAAuB,CAAC;AAanI,kDAAkD;AAClD,MAAM,UAAU,aAAa;IAC3B,OAAO,MAAM,CAAC,wBAAwB,EAAE,6CAA6C,CAAC,CAAC;AACzF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAyB,EACzB,MAAwE;IAExE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,KAAK,GAAsB,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IAChL,OAAO,EAAE,CAAC;QACR,KAAK;QACL,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,UAAU,EAAE,MAAM,CAAC,EAAE;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,CAAC,OAAO,EAAE;aAChG;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,wBAAwB,CACtC,KAAoC,EACpC,MAAoD;IAEpD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AACpJ,CAAC"}
@@ -2,121 +2,74 @@
2
2
  * The fleet's network settings (decision 0034): which ships may send to,
3
3
  * read or manage which. A rule names its verb and says that the ships
4
4
  * matching one selector may do it to the ships matching another; allow-only,
5
- * no deny rules, no precedence. Beside its rules a fleet holds the switches
6
- * of the built-in rules that can be off, with a version that moves on every
7
- * change, so a refusal names the settings that refused it.
5
+ * no deny rules, no precedence. The fleet holds its own rules, set whole by
6
+ * applying a draft, or none for all-to-all, beside the switch of the viewer
7
+ * reading, with a version that moves on every change of what is in force, so
8
+ * a refusal names the settings that refused it.
8
9
  */
9
- import { type FleetId, type LabelId, type LabelValueId, type BuiltInRule, type NetworkPluginDeclaration, type NetworkVerb, type SelectorTerm, type SetBuiltInRuleInput, type ShipId, type ShipKind, type WhileUnavailable } from '@aeolus-fleet/common';
10
+ import { type FleetId, type LabelId, type LabelValueId, type BuiltInRule, type NetworkVerb, type SelectorTerm, type SetBuiltInRuleInput, type ShipId, type ShipKind } from '@aeolus-fleet/common';
10
11
  import { type DomainError } from '../shared/errors.js';
11
12
  import type { Actor, NewEvent } from '../shared/events.js';
12
13
  import { type Result } from '../shared/result.js';
14
+ import type { DeclaredNetworkRules } from './declared-network-rules.js';
15
+ import type { LabelOwner } from './label.js';
13
16
  /** The ships for which every term of `from` holds may do its verb to the ships for which every term of `to` holds. */
14
17
  export interface NetworkRule {
15
18
  verb: NetworkVerb;
16
19
  from: readonly SelectorTerm[];
17
20
  to: readonly SelectorTerm[];
18
21
  }
19
- /**
20
- * The fleet's networking plugin (decision 0035): the ship that alone sets the
21
- * rules while registered, with what it declared for while it is unavailable.
22
- */
23
- export interface NetworkPlugin extends NetworkPluginDeclaration {
24
- shipId: ShipId;
25
- /** When the ship first registered; registering again replaces what it declared, not this. */
26
- registeredAt: Date;
27
- }
28
- /**
29
- * The built-in rules that can be off (decision 0034): the viewer reading
30
- * every ship, argo's to switch, and open, every ship to every ship, one per
31
- * verb, the networking plugin's to switch. A fleet starts with all on.
32
- */
33
- export interface BuiltInSwitches {
34
- isViewerReadOn: boolean;
35
- open: Readonly<Record<NetworkVerb, boolean>>;
36
- }
37
22
  export interface NetworkSettings {
38
23
  fleetId: FleetId;
39
- /** The rules beside the built-in ones, the networking plugin's (decision 0035); none allows only the built-in rules. */
40
- rules: readonly NetworkRule[];
41
- builtIns: BuiltInSwitches;
42
- /** 0 until the fleet first changes its settings; one more on every change. */
24
+ /** The fleet's own rules beside the built-in and the declared ones, as last applied; none while none are, all-to-all with open on. */
25
+ rules: readonly NetworkRule[] | null;
26
+ /** The viewer reading every ship, the one built-in rule an actor turns (decision 0034); on at fleet create. */
27
+ isViewerReadOn: boolean;
28
+ /** 0 until the fleet first changes its settings; one more on every change of what is in force. */
43
29
  version: number;
44
- /** The fleet's networking plugin, or none: then the fleet has no rules, and nobody sets them. */
45
- plugin: NetworkPlugin | null;
46
30
  }
47
- /** Every built-in rule on: what a fleet starts with, and what no networking plugin leaves. */
48
- export declare const BUILT_INS_ON: BuiltInSwitches;
49
- /** A fleet that never set rules: none, every built-in rule on, at version 0, without a plugin. */
31
+ /** A fleet that never set rules: none applied, the viewer reading on, at version 0. */
50
32
  export declare function noNetworkSettings(fleetId: FleetId): NetworkSettings;
51
- export type NotTheNetworkPlugin = DomainError<'NOT_THE_NETWORK_PLUGIN'>;
52
- export type SetNetworkRulesRefusal = DomainError<'INVALID_NETWORK_RULES'> | NotTheNetworkPlugin;
53
- export type RegisterNetworkPluginRefusal = DomainError<'NETWORK_PLUGIN_REGISTERED'>;
33
+ export type InvalidNetworkRules = DomainError<'INVALID_NETWORK_RULES'>;
54
34
  /**
55
- * The ship becomes the fleet's networking plugin, with what it declared, at
56
- * the next version, with NetworkPluginRegistered. A fleet without a plugin
57
- * has no rules, so the plugin starts from none until it supplies its own. The plugin may register again, replacing what it
58
- * declared; another ship is refused until it unregisters: one owner of the
59
- * rules, as a label has one.
35
+ * What breaks the decisions' limits on the fleet's own rules, said for the
36
+ * caller with its decision, or undefined when they keep them: at most 200,
37
+ * counted alone, beside the declared ones (decision 0037); each selector at
38
+ * most 20 terms, as a ship carries no more label values, each term once, and
39
+ * a term of the same value on a label on both sides of its rule, as it binds
40
+ * that label there. An id need not exist: an unknown one matches no ship, as
41
+ * in label selection. None, all-to-all, keeps them.
60
42
  */
61
- export declare function registerNetworkPlugin(current: NetworkSettings, change: {
62
- shipId: ShipId;
63
- declaration: NetworkPluginDeclaration;
64
- at: Date;
65
- actor: Actor;
66
- }): Result<{
67
- settings: NetworkSettings;
68
- events: NewEvent[];
69
- }, RegisterNetworkPluginRefusal>;
70
- /**
71
- * The fleet's plugin goes, and its rules with it, and the open rules are on
72
- * again: no plugin is all-to-all (decision 0035), at the next version, with
73
- * NetworkPluginUnregistered. The viewer reading stays as argo set it. Only
74
- * the plugin's own ship unregisters it; its retirement does too.
75
- */
76
- export declare function unregisterNetworkPlugin(current: NetworkSettings, change: {
77
- shipId: ShipId;
78
- at: Date;
79
- actor: Actor;
80
- }): Result<{
81
- settings: NetworkSettings;
82
- events: NewEvent[];
83
- }, NotTheNetworkPlugin>;
43
+ export declare function invalidRules(rules: readonly NetworkRule[] | null): string | undefined;
84
44
  /**
85
- * The fleet's rules from now on, replacing the ones it had, at the next
86
- * version, with NetworkRulesSet. The rules are within the decisions' limits:
87
- * at most 200 of argo's plus every rule the fleet's ships declared, which the
88
- * plugin adds to argo's when it supplies them (decision 0037); each selector
89
- * at most 20 terms, as a ship carries no more label values, each term once, and a term of the same value on a label on
90
- * both sides of its rule, as it binds that label there. An id need not
91
- * exist: an unknown one matches no ship, as in label selection. Only the
92
- * fleet's registered networking plugin sets them, argo included: rules exist
93
- * only through a plugin (decision 0035).
45
+ * The fleet's rules from now on, the draft's, replacing the ones it had, at
46
+ * the next version, with NetworkRulesSet naming how many, none for
47
+ * all-to-all. The caller saw the settings at `version`: once they moved, the
48
+ * draft's reach may differ from what the caller looked at, so the apply is
49
+ * refused and the draft kept.
94
50
  */
95
- export declare function setNetworkRules(current: NetworkSettings, change: {
96
- rules: readonly NetworkRule[];
97
- declaredRules: number;
98
- shipId: ShipId;
51
+ export declare function applyNetworkRules(current: NetworkSettings, change: {
52
+ rules: readonly NetworkRule[] | null;
53
+ version: number;
99
54
  at: Date;
100
55
  actor: Actor;
101
56
  }): Result<{
102
57
  settings: NetworkSettings;
103
58
  events: NewEvent[];
104
- }, SetNetworkRulesRefusal>;
105
- export type SetBuiltInRuleRefusal = DomainError<'BUILT_IN_RULE_FIXED' | 'NOT_THE_OPERATOR_SHIP'> | NotTheNetworkPlugin;
59
+ }, DomainError<'NETWORK_SETTINGS_CHANGED'>>;
60
+ /** The settings at the next version, as the declared rules in force changed with them (decision 0037). */
61
+ export declare function withDeclaredRulesChanged(current: NetworkSettings): NetworkSettings;
62
+ export type SetBuiltInRuleRefusal = DomainError<'BUILT_IN_RULE_FIXED'>;
106
63
  /**
107
64
  * A built-in rule turned on or off, as its own action (decision 0034): the
108
- * viewer reading by argo, open for one verb by the fleet's networking plugin.
109
- * argo, the owner, the answer and a connected plugin's reading are never off,
110
- * so turning them is refused.
111
- * A change moves the version and writes BuiltInRuleChanged; a rule already
112
- * as asked changes nothing.
65
+ * viewer reading, by any actor holding fleet:network (decision 0053). argo,
66
+ * the owner, the answer, a connected plugin's reading and the installation's
67
+ * managing are never off, and open follows the applied rules, so turning them
68
+ * is refused. A change moves the version and writes BuiltInRuleChanged; a
69
+ * rule already as asked changes nothing.
113
70
  */
114
71
  export declare function setBuiltInRule(current: NetworkSettings, change: {
115
72
  input: SetBuiltInRuleInput;
116
- caller: {
117
- shipId: ShipId;
118
- isOperator: boolean;
119
- };
120
73
  at: Date;
121
74
  actor: Actor;
122
75
  }): Result<{
@@ -130,31 +83,22 @@ export declare function termText(term: SelectorTerm): string;
130
83
  /** A copy of the rule, so what is kept never changes with what was given. */
131
84
  export declare function copyOfRule(rule: NetworkRule): NetworkRule;
132
85
  /**
133
- * Whether the plugin responds at `now` (decision 0035): its ship holds a
134
- * lease whose crew called the fleet no longer ago than it declared. Its last
135
- * call is the lease's last seen; nothing else acts on it, and nothing here
136
- * ends the lease.
86
+ * What a check is made against (decisions 0034, 0037): open while the
87
+ * fleet's own rules are none, all-to-all; the viewer reading as it was
88
+ * turned; otherwise the fleet's own rules, then every declarer's, merged at
89
+ * check time, each named by its place in its own list.
137
90
  */
138
- export declare function isNetworkPluginResponding(plugin: NetworkPlugin, crew: {
139
- lastSeenAt: Date | undefined;
140
- now: Date;
141
- }): boolean;
142
- /** The rules and built-in switches a send is checked against, and what the plugin declared when it is the reason. */
143
91
  export interface RulesInForce {
92
+ isOpen: boolean;
93
+ isViewerReadOn: boolean;
144
94
  rules: readonly NetworkRule[];
145
- builtIns: BuiltInSwitches;
146
- /** The fleet's registered networking plugin's ship, responding or not: it reads as a connected plugin does (decision 0034). */
147
- networkPluginShipId: ShipId | null;
148
- whilePluginUnavailable: Exclude<WhileUnavailable, 'open-all'> | null;
95
+ declared: readonly DeclaredNetworkRules[];
149
96
  }
150
- /**
151
- * The rules in force: the settings' own, unless the fleet's networking plugin
152
- * is not responding. Then what it declared applies: block-all leaves only
153
- * the built-in rules that are never off and the viewer reading, open-all
154
- * open on for every verb (all-to-all), keep-latest the rules and switches it
155
- * left last.
156
- */
157
- export declare function rulesInForce(settings: NetworkSettings, isPluginResponding: boolean): RulesInForce;
97
+ /** The rules in force for the fleet's own rules, applied or a draft's, beside the declared ones. */
98
+ export declare function rulesInForce(own: {
99
+ rules: readonly NetworkRule[] | null;
100
+ isViewerReadOn: boolean;
101
+ }, declared: readonly DeclaredNetworkRules[]): RulesInForce;
158
102
  /** A label value a ship carries, with the label it is of, so a term of any or the same value finds it. */
159
103
  export interface ReachingLabel {
160
104
  labelId: LabelId;
@@ -162,45 +106,71 @@ export interface ReachingLabel {
162
106
  }
163
107
  /**
164
108
  * A ship as a send's check sees it: its id and owner, for the owner exception,
165
- * its kind, for the argo exception, whether argo connected it as a plugin, and
166
- * the label values it carries.
109
+ * its kind, for the argo exception, whether argo connected it as a plugin,
110
+ * whether its owner is a person ship, for the installation's rule, and the
111
+ * label values it carries.
167
112
  */
168
113
  export interface ReachingShip {
169
114
  id: ShipId;
170
115
  owner: ShipId | null;
171
116
  kind: ShipKind;
172
117
  isConnectedPlugin: boolean;
118
+ /** Whether it is owned by a person ship, a person ship owning itself (decision 0045). */
119
+ isOwnedByPerson: boolean;
120
+ labels: readonly ReachingLabel[];
121
+ }
122
+ /**
123
+ * An account as a check sees it (decision 0057): the label values of `group`
124
+ * its token carries, and its person ship, which owns itself and through
125
+ * which the account owns: a selector's owner terms see the person ship as
126
+ * the account's owner.
127
+ */
128
+ export interface ReachingAccount {
129
+ kind: 'account';
130
+ personShipId: ShipId | null;
173
131
  labels: readonly ReachingLabel[];
174
132
  }
133
+ /** The installation as a check sees it: no labels, no owner; it manages person ships and what they own by its built-in rule. */
134
+ export interface ReachingInstallation {
135
+ kind: 'installation';
136
+ }
137
+ /** Whoever does the verb: a ship, an account or the installation (decision 0057). */
138
+ export type ReachingActor = ReachingShip | ReachingAccount | ReachingInstallation;
175
139
  /**
176
140
  * The rule that lets the sender do the verb to the recipient, or undefined
177
141
  * when none does. The built-in rules that are never off hold whatever the
178
142
  * rules: argo reaches every ship and every ship reaches argo, but reads argo
179
143
  * only by a rule, so argo's messages are not every ship's to read; an owner's
180
- * ship reaches the ships it owns (decision 0045), a ship answers the sender of
181
- * a message it received, and a plugin argo connected, or the fleet's
182
- * registered networking plugin, reads every ship. The viewer reads every ship while that is on, and
183
- * every ship reaches every ship by a verb while open is on for it. Otherwise
184
- * a rule of the verb must match the sender with its `from` and the recipient
185
- * with its `to`, named by its place in the list. The built-in rules come
186
- * first, in that order, as the rule list shows them.
144
+ * ship reaches the ships it owns (decision 0045), and an account the ships
145
+ * its person ship owns; a ship answers the sender of a message it received;
146
+ * a plugin argo connected reads every ship; and the installation manages
147
+ * person ships and the ships they own (decision 0020). The viewer reads
148
+ * every ship while that is on, and every actor reaches every ship by every
149
+ * verb while open is. Otherwise a rule of the verb must match the sender
150
+ * with its `from` and the recipient with its `to`: one of the fleet's own,
151
+ * named by its place in that list, or a declared one, named by its declarer
152
+ * and its place in the declarer's list. The built-in rules come first, in
153
+ * that order, as the rule list shows them.
187
154
  */
188
- export declare function reachRuleOf(settings: Pick<RulesInForce, 'rules' | 'builtIns' | 'networkPluginShipId'>, send: {
155
+ export declare function reachRuleOf(inForce: RulesInForce, send: {
189
156
  verb: NetworkVerb;
190
- sender: ReachingShip;
157
+ sender: ReachingActor;
191
158
  recipient: ReachingShip;
192
159
  isAnswerToSender: boolean;
193
160
  }): ReachRule | undefined;
194
- /** A built-in rule, or one of the settings' rules by its place in the list. */
161
+ /** A built-in rule, one of the fleet's own rules by its place in that list, or a declared rule by its declarer and its place in the declarer's list. */
195
162
  export type ReachRule = {
196
163
  builtIn: BuiltInRule;
197
164
  } | {
165
+ rule: number;
166
+ } | {
167
+ declared: LabelOwner;
198
168
  index: number;
199
169
  };
200
- /** Whether the settings let the sender do the verb to the recipient: some rule does (see reachRuleOf). */
201
- export declare function allowsReach(settings: Pick<RulesInForce, 'rules' | 'builtIns' | 'networkPluginShipId'>, send: {
170
+ /** Whether the rules in force let the sender do the verb to the recipient: some rule does (see reachRuleOf). */
171
+ export declare function allowsReach(inForce: RulesInForce, send: {
202
172
  verb: NetworkVerb;
203
- sender: ReachingShip;
173
+ sender: ReachingActor;
204
174
  recipient: ReachingShip;
205
175
  isAnswerToSender: boolean;
206
176
  }): boolean;