@aeolus-fleet/gateway 0.33.0 → 0.35.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 (647) hide show
  1. package/README.md +12 -2
  2. package/dist/adapters/crypto/party-sign-in-seals.d.ts +3 -0
  3. package/dist/adapters/crypto/party-sign-in-seals.js +15 -0
  4. package/dist/adapters/crypto/party-sign-in-seals.js.map +1 -0
  5. package/dist/adapters/fleet/rest-fleet-door.js +2 -2
  6. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  7. package/dist/adapters/fleet/ship-names.d.ts +7 -0
  8. package/dist/adapters/fleet/ship-names.js +25 -0
  9. package/dist/adapters/fleet/ship-names.js.map +1 -0
  10. package/dist/adapters/http/party-sign-in-routes.d.ts +25 -0
  11. package/dist/adapters/http/party-sign-in-routes.js +45 -0
  12. package/dist/adapters/http/party-sign-in-routes.js.map +1 -0
  13. package/dist/adapters/http/person-tools.js +5 -3
  14. package/dist/adapters/http/person-tools.js.map +1 -1
  15. package/dist/adapters/http/slack-routes.d.ts +0 -13
  16. package/dist/adapters/http/slack-routes.js +19 -4
  17. package/dist/adapters/http/slack-routes.js.map +1 -1
  18. package/dist/adapters/mcp/mcp-servers.js +22 -4
  19. package/dist/adapters/mcp/mcp-servers.js.map +1 -1
  20. package/dist/adapters/oauth/authorization-servers.d.ts +2 -0
  21. package/dist/adapters/oauth/authorization-servers.js +127 -0
  22. package/dist/adapters/oauth/authorization-servers.js.map +1 -0
  23. package/dist/adapters/oauth/party-sign-ins.d.ts +2 -0
  24. package/dist/adapters/oauth/party-sign-ins.js +152 -0
  25. package/dist/adapters/oauth/party-sign-ins.js.map +1 -0
  26. package/dist/adapters/pagasae/email-channel.js +4 -3
  27. package/dist/adapters/pagasae/email-channel.js.map +1 -1
  28. package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
  29. package/dist/adapters/prisma/fleet-forgetter.js +2 -2
  30. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  31. package/dist/adapters/prisma/generated/browser.d.ts +10 -0
  32. package/dist/adapters/prisma/generated/client.d.ts +10 -0
  33. package/dist/adapters/prisma/generated/internal/class.d.ts +22 -0
  34. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  35. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  36. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +178 -1
  37. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +26 -1
  38. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  39. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +27 -0
  40. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +26 -1
  41. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  42. package/dist/adapters/prisma/generated/models/PartyGrant.d.ts +1276 -0
  43. package/dist/adapters/prisma/generated/models/PartyGrant.js +2 -0
  44. package/dist/adapters/prisma/generated/models/PartyGrant.js.map +1 -0
  45. package/dist/adapters/prisma/generated/models/PartySignInNotice.d.ts +1003 -0
  46. package/dist/adapters/prisma/generated/models/PartySignInNotice.js +2 -0
  47. package/dist/adapters/prisma/generated/models/PartySignInNotice.js.map +1 -0
  48. package/dist/adapters/prisma/generated/models/SlackEvent.d.ts +17 -14
  49. package/dist/adapters/prisma/generated/models.d.ts +2 -0
  50. package/dist/adapters/prisma/party-grants.d.ts +10 -0
  51. package/dist/adapters/prisma/party-grants.js +118 -0
  52. package/dist/adapters/prisma/party-grants.js.map +1 -0
  53. package/dist/adapters/prisma/party-store.js +23 -3
  54. package/dist/adapters/prisma/party-store.js.map +1 -1
  55. package/dist/adapters/prisma/sign-in-notices.d.ts +8 -0
  56. package/dist/adapters/prisma/sign-in-notices.js +22 -0
  57. package/dist/adapters/prisma/sign-in-notices.js.map +1 -0
  58. package/dist/adapters/prisma/slack-events.js +1 -1
  59. package/dist/adapters/prisma/slack-events.js.map +1 -1
  60. package/dist/adapters/prisma/slack-posts.js +0 -4
  61. package/dist/adapters/prisma/slack-posts.js.map +1 -1
  62. package/dist/adapters/slack/slack-messages.js +2 -2
  63. package/dist/adapters/slack/slack-messages.js.map +1 -1
  64. package/dist/adapters/trpc/router.d.ts +138 -10
  65. package/dist/adapters/trpc/router.js +150 -11
  66. package/dist/adapters/trpc/router.js.map +1 -1
  67. package/dist/app.d.ts +2 -0
  68. package/dist/app.js +82 -6
  69. package/dist/app.js.map +1 -1
  70. package/dist/core/a2a-in/send-a2a-message.d.ts +0 -2
  71. package/dist/core/a2a-in/send-a2a-message.js +17 -4
  72. package/dist/core/a2a-in/send-a2a-message.js.map +1 -1
  73. package/dist/core/connection/ports.d.ts +5 -0
  74. package/dist/core/mcp-out/grant-calls.d.ts +69 -0
  75. package/dist/core/mcp-out/grant-calls.js +98 -0
  76. package/dist/core/mcp-out/grant-calls.js.map +1 -0
  77. package/dist/core/mcp-out/hand-call.d.ts +6 -1
  78. package/dist/core/mcp-out/hand-call.js +23 -2
  79. package/dist/core/mcp-out/hand-call.js.map +1 -1
  80. package/dist/core/mcp-out/ports.d.ts +6 -2
  81. package/dist/core/mcp-out/state-party.d.ts +5 -2
  82. package/dist/core/mcp-out/state-party.js +7 -2
  83. package/dist/core/mcp-out/state-party.js.map +1 -1
  84. package/dist/core/parties/add-sign-in-server.d.ts +25 -0
  85. package/dist/core/parties/add-sign-in-server.js +70 -0
  86. package/dist/core/parties/add-sign-in-server.js.map +1 -0
  87. package/dist/core/parties/approve-party.d.ts +2 -2
  88. package/dist/core/parties/check-approving.d.ts +3 -3
  89. package/dist/core/parties/check-approving.js +2 -2
  90. package/dist/core/parties/check-approving.js.map +1 -1
  91. package/dist/core/parties/party.d.ts +3 -2
  92. package/dist/core/parties/party.js +4 -1
  93. package/dist/core/parties/party.js.map +1 -1
  94. package/dist/core/parties/ports.d.ts +49 -0
  95. package/dist/core/parties/read-party-tools.d.ts +5 -2
  96. package/dist/core/parties/read-party-tools.js +7 -2
  97. package/dist/core/parties/read-party-tools.js.map +1 -1
  98. package/dist/core/parties/retire-party.d.ts +5 -1
  99. package/dist/core/parties/retire-party.js +6 -1
  100. package/dist/core/parties/retire-party.js.map +1 -1
  101. package/dist/core/parties/shown-party.d.ts +2 -2
  102. package/dist/core/parties/sign-in-servers.d.ts +4 -0
  103. package/dist/core/parties/sign-in-servers.js +13 -0
  104. package/dist/core/parties/sign-in-servers.js.map +1 -0
  105. package/dist/core/parties/switch-tools.d.ts +3 -1
  106. package/dist/core/parties/switch-tools.js +5 -1
  107. package/dist/core/parties/switch-tools.js.map +1 -1
  108. package/dist/core/party-grants/approved-sign-in-party.d.ts +17 -0
  109. package/dist/core/party-grants/approved-sign-in-party.js +21 -0
  110. package/dist/core/party-grants/approved-sign-in-party.js.map +1 -0
  111. package/dist/core/party-grants/call-grant.d.ts +46 -0
  112. package/dist/core/party-grants/call-grant.js +30 -0
  113. package/dist/core/party-grants/call-grant.js.map +1 -0
  114. package/dist/core/party-grants/complete-party-sign-in.d.ts +52 -0
  115. package/dist/core/party-grants/complete-party-sign-in.js +95 -0
  116. package/dist/core/party-grants/complete-party-sign-in.js.map +1 -0
  117. package/dist/core/party-grants/end-account-grants.d.ts +18 -0
  118. package/dist/core/party-grants/end-account-grants.js +16 -0
  119. package/dist/core/party-grants/end-account-grants.js.map +1 -0
  120. package/dist/core/party-grants/end-grant.d.ts +23 -0
  121. package/dist/core/party-grants/end-grant.js +33 -0
  122. package/dist/core/party-grants/end-grant.js.map +1 -0
  123. package/dist/core/party-grants/end-party-grants.d.ts +19 -0
  124. package/dist/core/party-grants/end-party-grants.js +31 -0
  125. package/dist/core/party-grants/end-party-grants.js.map +1 -0
  126. package/dist/core/party-grants/end-retired-persons-grants.d.ts +19 -0
  127. package/dist/core/party-grants/end-retired-persons-grants.js +30 -0
  128. package/dist/core/party-grants/end-retired-persons-grants.js.map +1 -0
  129. package/dist/core/party-grants/keep-grants-alive.d.ts +18 -0
  130. package/dist/core/party-grants/keep-grants-alive.js +19 -0
  131. package/dist/core/party-grants/keep-grants-alive.js.map +1 -0
  132. package/dist/core/party-grants/list-grants.d.ts +30 -0
  133. package/dist/core/party-grants/list-grants.js +34 -0
  134. package/dist/core/party-grants/list-grants.js.map +1 -0
  135. package/dist/core/party-grants/listing-connection.d.ts +29 -0
  136. package/dist/core/party-grants/listing-connection.js +17 -0
  137. package/dist/core/party-grants/listing-connection.js.map +1 -0
  138. package/dist/core/party-grants/party-grant.d.ts +50 -0
  139. package/dist/core/party-grants/party-grant.js +26 -0
  140. package/dist/core/party-grants/party-grant.js.map +1 -0
  141. package/dist/core/party-grants/ports.d.ts +180 -0
  142. package/dist/core/party-grants/ports.js +2 -0
  143. package/dist/core/party-grants/ports.js.map +1 -0
  144. package/dist/core/party-grants/read-own-grant.d.ts +33 -0
  145. package/dist/core/party-grants/read-own-grant.js +23 -0
  146. package/dist/core/party-grants/read-own-grant.js.map +1 -0
  147. package/dist/core/party-grants/refresh-grant.d.ts +41 -0
  148. package/dist/core/party-grants/refresh-grant.js +58 -0
  149. package/dist/core/party-grants/refresh-grant.js.map +1 -0
  150. package/dist/core/party-grants/remove-grant.d.ts +21 -0
  151. package/dist/core/party-grants/remove-grant.js +25 -0
  152. package/dist/core/party-grants/remove-grant.js.map +1 -0
  153. package/dist/core/party-grants/remove-own-grant.d.ts +17 -0
  154. package/dist/core/party-grants/remove-own-grant.js +21 -0
  155. package/dist/core/party-grants/remove-own-grant.js.map +1 -0
  156. package/dist/core/party-grants/sign-in-party.d.ts +23 -0
  157. package/dist/core/party-grants/sign-in-party.js +22 -0
  158. package/dist/core/party-grants/sign-in-party.js.map +1 -0
  159. package/dist/core/party-grants/start-party-sign-in.d.ts +31 -0
  160. package/dist/core/party-grants/start-party-sign-in.js +31 -0
  161. package/dist/core/party-grants/start-party-sign-in.js.map +1 -0
  162. package/dist/core/party-grants/tell-sign-in-needed.d.ts +29 -0
  163. package/dist/core/party-grants/tell-sign-in-needed.js +27 -0
  164. package/dist/core/party-grants/tell-sign-in-needed.js.map +1 -0
  165. package/dist/core/people/ports.d.ts +9 -2
  166. package/dist/core/people/wake-person.js +3 -1
  167. package/dist/core/people/wake-person.js.map +1 -1
  168. package/dist/core/shared/errors.d.ts +1 -1
  169. package/dist/core/shared/errors.js.map +1 -1
  170. package/dist/core/slack/answer-in-slack.d.ts +8 -3
  171. package/dist/core/slack/answer-in-slack.js +11 -3
  172. package/dist/core/slack/answer-in-slack.js.map +1 -1
  173. package/dist/core/slack/kept-slack-event.d.ts +5 -3
  174. package/dist/core/slack/kept-slack-event.js.map +1 -1
  175. package/dist/core/slack/ports.d.ts +7 -8
  176. package/dist/core/slack/send-slack-events.d.ts +6 -3
  177. package/dist/core/slack/send-slack-events.js +32 -4
  178. package/dist/core/slack/send-slack-events.js.map +1 -1
  179. package/dist/core/slack/show-in-slack.js +2 -2
  180. package/dist/core/slack/show-in-slack.js.map +1 -1
  181. package/dist/core/slack/slack-post.d.ts +9 -0
  182. package/dist/core/slack/slack-post.js +8 -0
  183. package/dist/core/slack/slack-post.js.map +1 -1
  184. package/dist/core/slack/take-slack-event.d.ts +4 -2
  185. package/dist/core/slack/take-slack-event.js +8 -2
  186. package/dist/core/slack/take-slack-event.js.map +1 -1
  187. package/dist/core/vault/credential.d.ts +34 -0
  188. package/dist/grant-worker.d.ts +20 -0
  189. package/dist/grant-worker.js +24 -0
  190. package/dist/grant-worker.js.map +1 -0
  191. package/package.json +1 -1
  192. package/src/adapters/prisma/migrations/20261028230000_party_grants/migration.sql +18 -0
  193. package/src/adapters/prisma/migrations/20261029080000_party_sign_in_notices/migration.sql +10 -0
  194. package/src/adapters/prisma/migrations/20261029120000_party_grants_lost/migration.sql +3 -0
  195. package/src/adapters/prisma/migrations/20261029130000_party_grants_refreshed/migration.sql +6 -0
  196. package/src/adapters/prisma/migrations/20261030090000_party_grants_of_account/migration.sql +2 -0
  197. package/src/adapters/prisma/migrations/20261030100000_slack_events_unmatched_answers/migration.sql +2 -0
  198. package/src/adapters/prisma/schema.prisma +46 -1
  199. package/web/.next/BUILD_ID +1 -1
  200. package/web/.next/app-path-routes-manifest.json +3 -1
  201. package/web/.next/build-manifest.json +3 -3
  202. package/web/.next/diagnostics/route-bundle-stats.json +55 -55
  203. package/web/.next/fallback-build-manifest.json +3 -3
  204. package/web/.next/prerender-manifest.json +67 -3
  205. package/web/.next/routes-manifest.json +12 -0
  206. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  207. package/web/.next/server/app/(console)/gateway-off/page.js +6 -6
  208. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  209. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  210. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  211. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +6 -6
  212. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  213. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  214. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +48 -8
  215. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +6 -6
  216. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  217. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  218. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +44 -4
  219. package/web/.next/server/app/(console)/outside-parties/[name]/page.js +7 -7
  220. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  221. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  222. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +48 -8
  223. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +6 -6
  224. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  225. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  226. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +46 -6
  227. package/web/.next/server/app/(console)/outside-parties/add/page.js +8 -7
  228. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  229. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  230. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
  231. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js +7 -7
  232. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  233. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  234. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
  235. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +6 -6
  236. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  237. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  238. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  239. package/web/.next/server/app/(console)/outside-parties/page.js +6 -6
  240. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  241. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  242. package/web/.next/server/app/(console)/overview/changes/route.js +2 -1
  243. package/web/.next/server/app/(console)/overview/changes/route.js.nft.json +1 -1
  244. package/web/.next/server/app/(console)/overview/focus/route.js +2 -1
  245. package/web/.next/server/app/(console)/overview/focus/route.js.nft.json +1 -1
  246. package/web/.next/server/app/(console)/overview/page/server-reference-manifest.json +9 -9
  247. package/web/.next/server/app/(console)/overview/page.js +6 -6
  248. package/web/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  249. package/web/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  250. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/server-reference-manifest.json +2 -2
  251. package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js +5 -5
  252. package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js.nft.json +1 -1
  253. package/web/.next/server/app/(console)/overview/requests/[requestId]/page_client-reference-manifest.js +1 -1
  254. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +8 -8
  255. package/web/.next/server/app/(console)/parties/page.js +6 -6
  256. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  257. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  258. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  259. package/web/.next/server/app/(console)/sign-in/failed/page.js +6 -6
  260. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  261. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  262. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +10 -10
  263. package/web/.next/server/app/(console)/slack/disconnect/page.js +5 -5
  264. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  265. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  266. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +10 -10
  267. package/web/.next/server/app/(console)/slack/expose/page.js +5 -5
  268. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  269. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  270. package/web/.next/server/app/(console)/slack/link/route.js +2 -1
  271. package/web/.next/server/app/(console)/slack/link/route.js.nft.json +1 -1
  272. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +10 -10
  273. package/web/.next/server/app/(console)/slack/page.js +5 -5
  274. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  275. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  276. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +10 -10
  277. package/web/.next/server/app/(console)/slack/remove/page.js +5 -5
  278. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  279. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  280. package/web/.next/server/app/_global-error.html +1 -1
  281. package/web/.next/server/app/_global-error.rsc +1 -1
  282. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  283. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  284. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  285. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  286. package/web/.next/server/app/_not-found/page.js +6 -6
  287. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  288. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  289. package/web/.next/server/app/apple-icon.png/route/app-paths-manifest.json +3 -0
  290. package/web/.next/server/app/apple-icon.png/route/build-manifest.json +12 -0
  291. package/web/.next/server/app/apple-icon.png/route.js +8 -0
  292. package/web/.next/server/app/apple-icon.png/route.js.map +5 -0
  293. package/web/.next/server/app/apple-icon.png/route.js.nft.json +1 -0
  294. package/web/.next/server/app/apple-icon.png.body +0 -0
  295. package/web/.next/server/app/apple-icon.png.meta +1 -0
  296. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  297. package/web/.next/server/app/authorize/failed/page.js +5 -5
  298. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  299. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  300. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  301. package/web/.next/server/app/authorize/pick/page.js +4 -4
  302. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  303. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  304. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  305. package/web/.next/server/app/authorize/waiting/approval/page.js +6 -6
  306. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  307. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  308. package/web/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
  309. package/web/.next/server/app/icon.svg/route/build-manifest.json +12 -0
  310. package/web/.next/server/app/icon.svg/route.js +8 -0
  311. package/web/.next/server/app/icon.svg/route.js.map +5 -0
  312. package/web/.next/server/app/icon.svg/route.js.nft.json +1 -0
  313. package/web/.next/server/app/icon.svg.body +19 -0
  314. package/web/.next/server/app/icon.svg.meta +1 -0
  315. package/web/.next/server/app-paths-manifest.json +3 -1
  316. package/web/.next/server/chunks/[root-of-the-server]__1j0sdz18lzulo._.js +315 -0
  317. package/web/.next/server/chunks/[root-of-the-server]__1j0sdz18lzulo._.js.map +1 -0
  318. package/web/.next/server/chunks/[root-of-the-server]__1o2xxi_001xql._.js +315 -0
  319. package/web/.next/server/chunks/[root-of-the-server]__1o2xxi_001xql._.js.map +1 -0
  320. package/web/.next/server/chunks/_0_um96p6psnqx._.js +57 -0
  321. package/web/.next/server/chunks/_0_um96p6psnqx._.js.map +1 -0
  322. package/web/.next/server/chunks/_0xw0b7avhvg75._.js +3 -0
  323. package/web/.next/server/chunks/_0xw0b7avhvg75._.js.map +1 -0
  324. package/web/.next/server/chunks/_1w2t6c0hpdsrn._.js +3 -0
  325. package/web/.next/server/chunks/_1w2t6c0hpdsrn._.js.map +1 -0
  326. package/web/.next/server/chunks/_1xf83h9norhws._.js +57 -0
  327. package/web/.next/server/chunks/_1xf83h9norhws._.js.map +1 -0
  328. package/web/.next/server/chunks/node_modules_next_1zdbrneapig6o._.js +10 -0
  329. package/web/.next/server/chunks/node_modules_next_1zdbrneapig6o._.js.map +1 -0
  330. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
  331. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
  332. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
  333. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
  334. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
  335. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
  336. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
  337. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
  338. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
  339. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
  340. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js +1 -1
  341. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js.map +1 -1
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +1 -1
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -1
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__03w-pkh4_8jv_._.js +3 -0
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__03w-pkh4_8jv_._.js.map +1 -0
  346. package/web/.next/server/chunks/ssr/[root-of-the-server]__048-rfvdrnoze._.js +3 -0
  347. package/web/.next/server/chunks/ssr/[root-of-the-server]__048-rfvdrnoze._.js.map +1 -0
  348. package/web/.next/server/chunks/ssr/{[root-of-the-server]__14w0fxvc_of17._.js → [root-of-the-server]__07ba2bfe20c_p._.js} +2 -2
  349. package/web/.next/server/chunks/ssr/[root-of-the-server]__07ba2bfe20c_p._.js.map +1 -0
  350. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js +4 -0
  351. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js +1 -1
  353. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js.map +1 -1
  354. package/web/.next/server/chunks/ssr/[root-of-the-server]__0f732g7ojc5-a._.js +3 -0
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__0f732g7ojc5-a._.js.map +1 -0
  356. package/web/.next/server/chunks/ssr/[root-of-the-server]__0fz0817_b9ljl._.js +3 -0
  357. package/web/.next/server/chunks/ssr/[root-of-the-server]__0fz0817_b9ljl._.js.map +1 -0
  358. package/web/.next/server/chunks/ssr/[root-of-the-server]__0i_m5r9lyffk8._.js +3 -0
  359. package/web/.next/server/chunks/ssr/[root-of-the-server]__0i_m5r9lyffk8._.js.map +1 -0
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__0icm7kndx480o._.js +1 -1
  361. package/web/.next/server/chunks/ssr/[root-of-the-server]__0icm7kndx480o._.js.map +1 -1
  362. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
  363. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
  364. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k6a9o0872_0x._.js +3 -0
  365. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k6a9o0872_0x._.js.map +1 -0
  366. package/web/.next/server/chunks/ssr/[root-of-the-server]__0pj38h6qumggc._.js +3 -0
  367. package/web/.next/server/chunks/ssr/[root-of-the-server]__0pj38h6qumggc._.js.map +1 -0
  368. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +1 -1
  369. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -1
  370. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +1 -1
  371. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -1
  372. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  373. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  374. package/web/.next/server/chunks/ssr/[root-of-the-server]__1aojrh3-9jh9r._.js +3 -0
  375. package/web/.next/server/chunks/ssr/[root-of-the-server]__1aojrh3-9jh9r._.js.map +1 -0
  376. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1w5swo8gmjyx6._.js → [root-of-the-server]__1kynqd8xcwg2b._.js} +2 -2
  377. package/web/.next/server/chunks/ssr/[root-of-the-server]__1kynqd8xcwg2b._.js.map +1 -0
  378. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js +3 -0
  379. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js.map +1 -0
  380. package/web/.next/server/chunks/ssr/{[root-of-the-server]__160zc0ja_jjnu._.js → [root-of-the-server]__1q14l5_4hp9h3._.js} +2 -2
  381. package/web/.next/server/chunks/ssr/[root-of-the-server]__1q14l5_4hp9h3._.js.map +1 -0
  382. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qnls-4cj-7oh._.js +3 -0
  383. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qnls-4cj-7oh._.js.map +1 -0
  384. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +1 -1
  385. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -1
  386. package/web/.next/server/chunks/ssr/[root-of-the-server]__1r1t1q3fzoqey._.js +3 -0
  387. package/web/.next/server/chunks/ssr/[root-of-the-server]__1r1t1q3fzoqey._.js.map +1 -0
  388. package/web/.next/server/chunks/ssr/[root-of-the-server]__1xmvo3lr1_qyo._.js +3 -0
  389. package/web/.next/server/chunks/ssr/[root-of-the-server]__1xmvo3lr1_qyo._.js.map +1 -0
  390. package/web/.next/server/chunks/ssr/[root-of-the-server]__1zlq3zji9v53h._.js +3 -0
  391. package/web/.next/server/chunks/ssr/[root-of-the-server]__1zlq3zji9v53h._.js.map +1 -0
  392. package/web/.next/server/chunks/ssr/_0-boiqan2j4tr._.js +3 -0
  393. package/web/.next/server/chunks/ssr/{_0wukvn3-ht3ps._.js.map → _0-boiqan2j4tr._.js.map} +1 -1
  394. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  395. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  396. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +1 -1
  397. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
  398. package/web/.next/server/chunks/ssr/_0bizyb21i2sl8._.js +3 -0
  399. package/web/.next/server/chunks/ssr/{_00dg5cvqofspn._.js.map → _0bizyb21i2sl8._.js.map} +1 -1
  400. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  401. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  402. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  403. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  404. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  405. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  406. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
  407. package/web/.next/server/chunks/ssr/_1e2o809f0ekry._.js +1 -1
  408. package/web/.next/server/chunks/ssr/_1oy13966tft2_._.js +3 -0
  409. package/web/.next/server/chunks/ssr/_1oy13966tft2_._.js.map +1 -0
  410. package/web/.next/server/chunks/ssr/_1pf8x2exvfl1z._.js +3 -0
  411. package/web/.next/server/chunks/ssr/_1pf8x2exvfl1z._.js.map +1 -0
  412. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  413. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  414. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  415. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  416. package/web/.next/server/chunks/ssr/_1yqu7dcxs2-so._.js +3 -0
  417. package/web/.next/server/chunks/ssr/_1yqu7dcxs2-so._.js.map +1 -0
  418. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00i8qu9x65r6w.js +3 -0
  419. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00i8qu9x65r6w.js.map +1 -0
  420. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_045k03anc7fhh.js +3 -0
  421. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_045k03anc7fhh.js.map +1 -0
  422. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a3qpq0qt_bi4.js +3 -0
  423. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a3qpq0qt_bi4.js.map +1 -0
  424. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tpm7qi6un9x2.js +3 -0
  425. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tpm7qi6un9x2.js.map +1 -0
  426. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0uyk6p-2ofqw3.js +3 -0
  427. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0uyk6p-2ofqw3.js.map +1 -0
  428. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0w8e__21f7qvg.js +3 -0
  429. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0w8e__21f7qvg.js.map +1 -0
  430. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ynno0usi0bwx.js +3 -0
  431. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ynno0usi0bwx.js.map +1 -0
  432. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0za9__u5ytp2s.js +3 -0
  433. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0za9__u5ytp2s.js.map +1 -0
  434. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zyzdu1detzlm.js +3 -0
  435. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zyzdu1detzlm.js.map +1 -0
  436. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11t1sej48_ec4.js +3 -0
  437. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11t1sej48_ec4.js.map +1 -0
  438. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128zox167vtjm.js +3 -0
  439. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128zox167vtjm.js.map +1 -0
  440. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18uz1icr303zj.js +3 -0
  441. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18uz1icr303zj.js.map +1 -0
  442. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19_qkbe8796m6.js +3 -0
  443. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19_qkbe8796m6.js.map +1 -0
  444. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19uoij8es9z19.js +3 -0
  445. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19uoij8es9z19.js.map +1 -0
  446. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1auju5fur8z6x.js +3 -0
  447. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1auju5fur8z6x.js.map +1 -0
  448. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c7_m2ii9lash.js +3 -0
  449. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c7_m2ii9lash.js.map +1 -0
  450. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1chb4qpzj_l1t.js +3 -0
  451. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1chb4qpzj_l1t.js.map +1 -0
  452. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qa52eylhjmki.js +3 -0
  453. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qa52eylhjmki.js.map +1 -0
  454. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qw59-auzd_zx.js +3 -0
  455. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qw59-auzd_zx.js.map +1 -0
  456. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1xzq9xckazj3u.js +3 -0
  457. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1xzq9xckazj3u.js.map +1 -0
  458. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1yis85alzg6hk.js +3 -0
  459. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1yis85alzg6hk.js.map +1 -0
  460. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
  461. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
  462. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js +1 -1
  463. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js.map +1 -1
  464. package/web/.next/server/chunks/ssr/web_features_077oo3gzcibvf._.js +3 -0
  465. package/web/.next/server/chunks/ssr/web_features_077oo3gzcibvf._.js.map +1 -0
  466. package/web/.next/server/chunks/ssr/web_features_08yw0utky5j17._.js +3 -0
  467. package/web/.next/server/chunks/ssr/{web_features_19v3mlx8c_h1-._.js.map → web_features_08yw0utky5j17._.js.map} +1 -1
  468. package/web/.next/server/chunks/ssr/web_features_0d48z2epb6oie._.js +3 -0
  469. package/web/.next/server/chunks/ssr/web_features_0d48z2epb6oie._.js.map +1 -0
  470. package/web/.next/server/chunks/ssr/web_features_0f6r-m-dq36vf._.js +3 -0
  471. package/web/.next/server/chunks/ssr/web_features_0f6r-m-dq36vf._.js.map +1 -0
  472. package/web/.next/server/chunks/ssr/web_features_0mi9a9pdzkdji._.js +3 -0
  473. package/web/.next/server/chunks/ssr/{web_features_1rwkgka1xffb1._.js.map → web_features_0mi9a9pdzkdji._.js.map} +1 -1
  474. package/web/.next/server/chunks/ssr/web_features_0rd6357w-eo50._.js +1 -1
  475. package/web/.next/server/chunks/ssr/web_features_0rd6357w-eo50._.js.map +1 -1
  476. package/web/.next/server/chunks/ssr/web_features_19r68thirqv1n._.js +3 -0
  477. package/web/.next/server/chunks/ssr/web_features_19r68thirqv1n._.js.map +1 -0
  478. package/web/.next/server/chunks/ssr/web_features_1utnezwv0xr-l._.js +3 -0
  479. package/web/.next/server/chunks/ssr/web_features_1utnezwv0xr-l._.js.map +1 -0
  480. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  481. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  482. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  483. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  484. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  485. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  486. package/web/.next/server/chunks/ssr/{web_features_forms_1d1jyea2jni9o._.js → web_features_forms_1muc8tmsxjj_k._.js} +2 -2
  487. package/web/.next/server/chunks/ssr/{web_features_forms_1d1jyea2jni9o._.js.map → web_features_forms_1muc8tmsxjj_k._.js.map} +1 -1
  488. package/web/.next/server/chunks/ssr/web_features_forms_ui_credential-fields_tsx_0l-w19zg-7x4b._.js +1 -1
  489. package/web/.next/server/chunks/ssr/web_features_forms_ui_credential-fields_tsx_0l-w19zg-7x4b._.js.map +1 -1
  490. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  491. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  492. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  493. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  494. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  495. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  496. package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js +3 -0
  497. package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js.map +1 -0
  498. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  499. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js.map +1 -1
  500. package/web/.next/server/chunks/ssr/web_features_overview_144fx4a-r9_wn._.js +3 -0
  501. package/web/.next/server/chunks/ssr/web_features_overview_144fx4a-r9_wn._.js.map +1 -0
  502. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +1 -1
  503. package/web/.next/server/chunks/ssr/web_features_overview_state_00l0wkgvv9y6j._.js +1 -1
  504. package/web/.next/server/chunks/ssr/web_features_overview_state_00l0wkgvv9y6j._.js.map +1 -1
  505. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +1 -1
  506. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +1 -1
  507. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  508. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  509. package/web/.next/server/chunks/web__next-internal_server_app_apple-icon_png_route_actions_1yyo-ix0n2rsy.js +3 -0
  510. package/web/.next/server/chunks/web__next-internal_server_app_apple-icon_png_route_actions_1yyo-ix0n2rsy.js.map +1 -0
  511. package/web/.next/server/chunks/web__next-internal_server_app_icon_svg_route_actions_0xhoz0ftyz5p3.js +3 -0
  512. package/web/.next/server/chunks/web__next-internal_server_app_icon_svg_route_actions_0xhoz0ftyz5p3.js.map +1 -0
  513. package/web/.next/server/middleware-build-manifest.js +3 -3
  514. package/web/.next/server/pages/500.html +1 -1
  515. package/web/.next/server/preview-props.json +3 -3
  516. package/web/.next/server/server-reference-manifest.js +1 -1
  517. package/web/.next/server/server-reference-manifest.json +127 -39
  518. package/web/.next/static/chunks/{3efghx8whwnok.js → 03239gtej3tj0.js} +1 -1
  519. package/web/.next/static/chunks/{3d_sjtxh_vkr6.js → 07j7jnfe13wx6.js} +1 -1
  520. package/web/.next/static/chunks/{3dhy3jady0w6a.js → 0p_kl57bddsiy.js} +1 -1
  521. package/web/.next/static/chunks/0tmvd_zw45u96.js +1 -0
  522. package/web/.next/static/chunks/0vlawcs6_kjs1.js +1 -0
  523. package/web/.next/static/chunks/1se0j0htjyep6.js +1 -0
  524. package/web/.next/static/chunks/26vlpatu47xtw.css +3 -0
  525. package/web/.next/static/chunks/{1msggkwsn7vyq.js → 287ofedoj_6xl.js} +1 -1
  526. package/web/.next/static/chunks/2_e-puldye2do.js +1 -0
  527. package/web/.next/static/chunks/2gghdkr64z9f9.js +1 -0
  528. package/web/.next/static/chunks/{1jvae6c-4jwji.js → 2x86i673xcv4t.js} +1 -1
  529. package/web/.next/static/chunks/34kulpk3a-cka.js +1 -0
  530. package/web/.next/static/chunks/3ceatffqhpgpu.js +1 -0
  531. package/web/.next/static/chunks/{3rbzp0tdc1te-.js → 3fd167c0-ot3u.js} +1 -1
  532. package/web/.next/static/chunks/3l5jtag3-fukc.js +1 -0
  533. package/web/.next/static/chunks/3rxg2mdhxd6yt.js +1 -0
  534. package/web/.next/static/media/apple-icon.3jccaq3p5-lh-.png +0 -0
  535. package/web/.next/static/media/icon.1o2ogor9e8-fc.svg +19 -0
  536. package/web/.next/trace +1 -1
  537. package/web/.next/trace-build +1 -1
  538. package/web/.next/server/chunks/[root-of-the-server]__01ghdzznyfucm._.js +0 -369
  539. package/web/.next/server/chunks/[root-of-the-server]__01ghdzznyfucm._.js.map +0 -1
  540. package/web/.next/server/chunks/[root-of-the-server]__0mbwomk4pjrl7._.js +0 -369
  541. package/web/.next/server/chunks/[root-of-the-server]__0mbwomk4pjrl7._.js.map +0 -1
  542. package/web/.next/server/chunks/ssr/[root-of-the-server]__00erqdm9cmhh7._.js +0 -3
  543. package/web/.next/server/chunks/ssr/[root-of-the-server]__00erqdm9cmhh7._.js.map +0 -1
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__00q22dte1g2ww._.js +0 -3
  545. package/web/.next/server/chunks/ssr/[root-of-the-server]__00q22dte1g2ww._.js.map +0 -1
  546. package/web/.next/server/chunks/ssr/[root-of-the-server]__04e53giy2-2tm._.js +0 -3
  547. package/web/.next/server/chunks/ssr/[root-of-the-server]__04e53giy2-2tm._.js.map +0 -1
  548. package/web/.next/server/chunks/ssr/[root-of-the-server]__07udzu2zwg_74._.js +0 -3
  549. package/web/.next/server/chunks/ssr/[root-of-the-server]__07udzu2zwg_74._.js.map +0 -1
  550. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a68v9ynev4q6._.js +0 -3
  551. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a68v9ynev4q6._.js.map +0 -1
  552. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e59elwbtqr-6._.js +0 -3
  553. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e59elwbtqr-6._.js.map +0 -1
  554. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kb1gl5t8kz4l._.js +0 -4
  555. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kb1gl5t8kz4l._.js.map +0 -1
  556. package/web/.next/server/chunks/ssr/[root-of-the-server]__0l2_dk9d4o01n._.js +0 -3
  557. package/web/.next/server/chunks/ssr/[root-of-the-server]__0l2_dk9d4o01n._.js.map +0 -1
  558. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n2us07jk-78w._.js +0 -4
  559. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n2us07jk-78w._.js.map +0 -1
  560. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rr5u24i9tjyc._.js +0 -3
  561. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rr5u24i9tjyc._.js.map +0 -1
  562. package/web/.next/server/chunks/ssr/[root-of-the-server]__14w0fxvc_of17._.js.map +0 -1
  563. package/web/.next/server/chunks/ssr/[root-of-the-server]__160zc0ja_jjnu._.js.map +0 -1
  564. package/web/.next/server/chunks/ssr/[root-of-the-server]__1dc6okf5os70a._.js +0 -3
  565. package/web/.next/server/chunks/ssr/[root-of-the-server]__1dc6okf5os70a._.js.map +0 -1
  566. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hfashtn1ee82._.js +0 -3
  567. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hfashtn1ee82._.js.map +0 -1
  568. package/web/.next/server/chunks/ssr/[root-of-the-server]__1n_sq_58wdluh._.js +0 -3
  569. package/web/.next/server/chunks/ssr/[root-of-the-server]__1n_sq_58wdluh._.js.map +0 -1
  570. package/web/.next/server/chunks/ssr/[root-of-the-server]__1w5swo8gmjyx6._.js.map +0 -1
  571. package/web/.next/server/chunks/ssr/_00dg5cvqofspn._.js +0 -3
  572. package/web/.next/server/chunks/ssr/_0_kakdt7lb6z-._.js +0 -3
  573. package/web/.next/server/chunks/ssr/_0_kakdt7lb6z-._.js.map +0 -1
  574. package/web/.next/server/chunks/ssr/_0wukvn3-ht3ps._.js +0 -3
  575. package/web/.next/server/chunks/ssr/_1uuy6gkkhq6bx._.js +0 -3
  576. package/web/.next/server/chunks/ssr/_1uuy6gkkhq6bx._.js.map +0 -1
  577. package/web/.next/server/chunks/ssr/_1y1ovmdhl9_ml._.js +0 -3
  578. package/web/.next/server/chunks/ssr/_1y1ovmdhl9_ml._.js.map +0 -1
  579. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06etuymo2azrg.js +0 -3
  580. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06etuymo2azrg.js.map +0 -1
  581. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcy-jnk5o43.js +0 -3
  582. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcy-jnk5o43.js.map +0 -1
  583. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0bnypafopxsfl.js +0 -3
  584. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0bnypafopxsfl.js.map +0 -1
  585. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e8cobt3o_8ur.js +0 -3
  586. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e8cobt3o_8ur.js.map +0 -1
  587. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0gzed-epom5si.js +0 -3
  588. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0gzed-epom5si.js.map +0 -1
  589. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0k0-b63ptvbl5.js +0 -3
  590. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0k0-b63ptvbl5.js.map +0 -1
  591. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pik0g65vv-wi.js +0 -3
  592. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pik0g65vv-wi.js.map +0 -1
  593. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0t6vd5zwkqjs1.js +0 -3
  594. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0t6vd5zwkqjs1.js.map +0 -1
  595. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xccr6d8xcb1p.js +0 -3
  596. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xccr6d8xcb1p.js.map +0 -1
  597. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13agc620bnznv.js +0 -3
  598. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13agc620bnznv.js.map +0 -1
  599. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_184-gj4lz41i-.js +0 -3
  600. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_184-gj4lz41i-.js.map +0 -1
  601. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18gq8l27vkevg.js +0 -3
  602. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18gq8l27vkevg.js.map +0 -1
  603. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bt2ioufqh6fl.js +0 -3
  604. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bt2ioufqh6fl.js.map +0 -1
  605. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1cwvrsosahx6q.js +0 -3
  606. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1cwvrsosahx6q.js.map +0 -1
  607. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1d613l6zsee_e.js +0 -3
  608. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1d613l6zsee_e.js.map +0 -1
  609. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1jbr52uzx5cc7.js +0 -3
  610. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1jbr52uzx5cc7.js.map +0 -1
  611. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0-ipfysjmro.js +0 -3
  612. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0-ipfysjmro.js.map +0 -1
  613. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1s46s8vlfx01v.js +0 -3
  614. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1s46s8vlfx01v.js.map +0 -1
  615. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1x-0vplt44lez.js +0 -3
  616. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1x-0vplt44lez.js.map +0 -1
  617. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1xhjyaxgorqkx.js +0 -3
  618. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1xhjyaxgorqkx.js.map +0 -1
  619. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20d8hq6wsqwh_.js +0 -3
  620. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20d8hq6wsqwh_.js.map +0 -1
  621. package/web/.next/server/chunks/ssr/web_15vnjj3s0z3fa._.js +0 -3
  622. package/web/.next/server/chunks/ssr/web_15vnjj3s0z3fa._.js.map +0 -1
  623. package/web/.next/server/chunks/ssr/web_features_0xbnkk4hfgr9v._.js +0 -3
  624. package/web/.next/server/chunks/ssr/web_features_0xbnkk4hfgr9v._.js.map +0 -1
  625. package/web/.next/server/chunks/ssr/web_features_0xnlgtw8bfqaa._.js +0 -3
  626. package/web/.next/server/chunks/ssr/web_features_0xnlgtw8bfqaa._.js.map +0 -1
  627. package/web/.next/server/chunks/ssr/web_features_19v3mlx8c_h1-._.js +0 -3
  628. package/web/.next/server/chunks/ssr/web_features_1_2m6l73qk7qw._.js +0 -3
  629. package/web/.next/server/chunks/ssr/web_features_1_2m6l73qk7qw._.js.map +0 -1
  630. package/web/.next/server/chunks/ssr/web_features_1rwkgka1xffb1._.js +0 -3
  631. package/web/.next/server/chunks/ssr/web_features_forms_1u0akr22eh_x_._.js +0 -3
  632. package/web/.next/server/chunks/ssr/web_features_forms_1u0akr22eh_x_._.js.map +0 -1
  633. package/web/.next/server/chunks/ssr/web_features_outside-party_0_9c27knfvw7u._.js +0 -3
  634. package/web/.next/server/chunks/ssr/web_features_outside-party_0_9c27knfvw7u._.js.map +0 -1
  635. package/web/.next/static/chunks/1-suv9wttlxqo.js +0 -1
  636. package/web/.next/static/chunks/19kfx4qlur25a.js +0 -1
  637. package/web/.next/static/chunks/1a2-hkn-7471k.js +0 -1
  638. package/web/.next/static/chunks/1yj875esaesyh.css +0 -3
  639. package/web/.next/static/chunks/2-kh9nbonee6w.js +0 -1
  640. package/web/.next/static/chunks/2l92bozm8dcmo.js +0 -1
  641. package/web/.next/static/chunks/2riya89_i0je8.js +0 -1
  642. package/web/.next/static/chunks/310mio1zd_mw7.js +0 -1
  643. package/web/.next/static/chunks/3_pwm8b3mf4mf.js +0 -1
  644. package/web/.next/static/chunks/455eobei0t6t9.js +0 -1
  645. /package/web/.next/static/{87vMFs_KGRcFD40WWRkFR → R_nPUtDcDp1BPV3QHhaMZ}/_buildManifest.js +0 -0
  646. /package/web/.next/static/{87vMFs_KGRcFD40WWRkFR → R_nPUtDcDp1BPV3QHhaMZ}/_clientMiddlewareManifest.js +0 -0
  647. /package/web/.next/static/{87vMFs_KGRcFD40WWRkFR → R_nPUtDcDp1BPV3QHhaMZ}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-in-party.js","sourceRoot":"","sources":["../../../src/core/party-grants/sign-in-party.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AActD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAsB,EAAE,KAAqC;IAC/F,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,cAAc,EAAE,gGAAgG,CAAC,CAAC;IAClI,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,eAAe,EAAE,kCAAkC,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,YAAY,EAAE,sBAAsB,IAAI,+DAA+D,CAAC,CAAC;IACzH,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;AAC7G,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { Actor } from '../actors/authenticate-actor.js';
2
+ import type { OAuthSecrets } from '../oauth/ports.js';
3
+ import type { Clock } from '../shared/clock.js';
4
+ import { type Result } from '../shared/result.js';
5
+ import type { PartySignIns, PartySignInSeals, SignInServers } from './ports.js';
6
+ import { type SignInPartyRefusal } from './sign-in-party.js';
7
+ /** How long a sign-in the gateway started may take to come back from the outside authorization server. */
8
+ export declare const PARTY_SIGN_IN_MS: number;
9
+ export type StartPartySignInRefusal = SignInPartyRefusal;
10
+ export type StartPartySignIn = (input: {
11
+ actor: Actor;
12
+ name: string;
13
+ }) => Promise<Result<{
14
+ url: string;
15
+ }, StartPartySignInRefusal>>;
16
+ /**
17
+ * Use case: a person presses Sign in on an outside MCP server's page, for
18
+ * themselves (decision 0067, Q16): every account of the fleet with a person
19
+ * ship may. The gateway seals whose sign-in it is and its PKCE verifier into
20
+ * the state, for ten minutes, and sends the person to the party's
21
+ * authorization server under the party's client.
22
+ */
23
+ export declare function createStartPartySignIn(deps: {
24
+ servers: SignInServers;
25
+ seals: PartySignInSeals;
26
+ signIns: Pick<PartySignIns, 'authorizeUrl'>;
27
+ secrets: Pick<OAuthSecrets, 'newSecret' | 'challengeOf'>;
28
+ clock: Clock;
29
+ /** Where the authorization server sends the person back: the redirect URI the party's client was registered with. */
30
+ redirectUri: string;
31
+ }): StartPartySignIn;
@@ -0,0 +1,31 @@
1
+ import { ok } from '../shared/result.js';
2
+ import { signInPartyOf } from './sign-in-party.js';
3
+ /** How long a sign-in the gateway started may take to come back from the outside authorization server. */
4
+ export const PARTY_SIGN_IN_MS = 10 * 60 * 1000;
5
+ /**
6
+ * Use case: a person presses Sign in on an outside MCP server's page, for
7
+ * themselves (decision 0067, Q16): every account of the fleet with a person
8
+ * ship may. The gateway seals whose sign-in it is and its PKCE verifier into
9
+ * the state, for ten minutes, and sends the person to the party's
10
+ * authorization server under the party's client.
11
+ */
12
+ export function createStartPartySignIn(deps) {
13
+ return async ({ actor, name }) => {
14
+ const signingIn = await signInPartyOf(deps.servers, { actor, name });
15
+ if (!signingIn.isOk) {
16
+ return signingIn;
17
+ }
18
+ const { client, accountId, personShipId } = signingIn.value;
19
+ const verifier = deps.secrets.newSecret();
20
+ const state = deps.seals.seal({
21
+ fleetId: actor.fleetId,
22
+ party: name,
23
+ accountId,
24
+ personShipId,
25
+ verifier,
26
+ expiresAt: new Date(deps.clock.now().getTime() + PARTY_SIGN_IN_MS),
27
+ });
28
+ return ok({ url: deps.signIns.authorizeUrl(client, { state, codeChallenge: deps.secrets.challengeOf(verifier), redirectUri: deps.redirectUri }) });
29
+ };
30
+ }
31
+ //# sourceMappingURL=start-party-sign-in.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-party-sign-in.js","sourceRoot":"","sources":["../../../src/core/party-grants/start-party-sign-in.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAE5E,0GAA0G;AAC1G,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAM/C;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAQtC;IACC,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/B,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,IAAI;YACX,SAAS;YACT,YAAY;YACZ,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC;SACnE,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;IACrJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { FleetId, ShipId } from '@aeolus-fleet/common';
2
+ import type { ConnectionStore } from '../connection/ports.js';
3
+ import type { CallSender } from '../mcp-in/ports.js';
4
+ import type { GrantLost } from './party-grant.js';
5
+ import type { SignInNotices } from './ports.js';
6
+ /** Tells a person a call needs their sign-in to a party, or that their grant of it was lost, unless they were told since their last sign-in. */
7
+ export type TellSignInNeeded = (input: {
8
+ fleetId: FleetId;
9
+ party: string;
10
+ personShipId: ShipId;
11
+ lost: GrantLost | null;
12
+ }) => Promise<void>;
13
+ /** The page a person signs in to a party on, in a fleet. */
14
+ export type PageUrlOf = (fleetId: FleetId, party: string) => string;
15
+ /**
16
+ * Use case: the gateway's ship tells a person, by a text message to their
17
+ * person ship, that a call needs their sign-in to a party, or that their
18
+ * grant of it was lost, with the page to sign in on (decision 0067, Q6, Q9): once per party, and again only after a
19
+ * sign-in in between closes the notice. The notice's id keys the message, so
20
+ * one the fleet did not answer is sent again at the next call and stored
21
+ * once; one it refused is not tried again.
22
+ */
23
+ export declare function createTellSignInNeeded(deps: {
24
+ notices: SignInNotices;
25
+ connections: Pick<ConnectionStore, 'find'>;
26
+ sender: CallSender;
27
+ newNoticeId: () => string;
28
+ pageUrlOf: PageUrlOf;
29
+ }): TellSignInNeeded;
@@ -0,0 +1,27 @@
1
+ function textOf({ party, lost }, pageUrl) {
2
+ return lost === null
3
+ ? `A ship of yours called ${party}, which calls under each person's own sign-in, and you are not signed in to it. Sign in on ${pageUrl}; until then your ships' calls to ${party} are refused.`
4
+ : `Your sign-in to ${party} ended: ${party} refused to refresh it (${lost.why}). Sign in again on ${pageUrl}; until then your ships' calls to ${party} are refused.`;
5
+ }
6
+ /**
7
+ * Use case: the gateway's ship tells a person, by a text message to their
8
+ * person ship, that a call needs their sign-in to a party, or that their
9
+ * grant of it was lost, with the page to sign in on (decision 0067, Q6, Q9): once per party, and again only after a
10
+ * sign-in in between closes the notice. The notice's id keys the message, so
11
+ * one the fleet did not answer is sent again at the next call and stored
12
+ * once; one it refused is not tried again.
13
+ */
14
+ export function createTellSignInNeeded(deps) {
15
+ return async ({ fleetId, party, personShipId, lost }) => {
16
+ const notice = await deps.notices.open(fleetId, { party, personShipId, noticeId: deps.newNoticeId() });
17
+ const gateway = await deps.connections.find(fleetId);
18
+ if (notice.isTold || gateway === undefined) {
19
+ return;
20
+ }
21
+ const sent = await deps.sender.send(gateway.crewToken, { to: personShipId, contentType: 'text/plain', payload: textOf({ party, lost }, deps.pageUrlOf(fleetId, party)), idempotencyKey: `party-sign-in:${notice.noticeId}` });
22
+ if (sent.isOk || sent.error.code !== 'UNAVAILABLE') {
23
+ await deps.notices.markTold(fleetId, { party, personShipId });
24
+ }
25
+ };
26
+ }
27
+ //# sourceMappingURL=tell-sign-in-needed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tell-sign-in-needed.js","sourceRoot":"","sources":["../../../src/core/party-grants/tell-sign-in-needed.ts"],"names":[],"mappings":"AAaA,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAA6C,EAAE,OAAe;IACzF,OAAO,IAAI,KAAK,IAAI;QAClB,CAAC,CAAC,0BAA0B,KAAK,8FAA8F,OAAO,qCAAqC,KAAK,eAAe;QAC/L,CAAC,CAAC,mBAAmB,KAAK,WAAW,KAAK,2BAA2B,IAAI,CAAC,GAAG,uBAAuB,OAAO,qCAAqC,KAAK,eAAe,CAAC;AACzK,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAiJ;IACtL,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACvG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,cAAc,EAAE,iBAAiB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9N,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACnD,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -219,6 +219,10 @@ export interface ShownThere {
219
219
  }
220
220
  /** What a delivery is handed to the person through: a wake's channel, a page of theirs in focus, which shows it (W6), or Slack, which shows it (gateway scopes 9.5). */
221
221
  export type HandOverChannel = WakeChannelName | 'page' | 'slack';
222
+ /** The window a wake belongs to: its key holds until a wake of the channel is recorded, so a retry asks again with it. */
223
+ export interface WakeWindow {
224
+ readonly key: string;
225
+ }
222
226
  /**
223
227
  * Outbound port: one way to wake a person (wake a person, W1, W4): it says
224
228
  * only that something waits in the fleet, with the overview's link, and
@@ -230,8 +234,11 @@ export interface WakeChannel {
230
234
  readonly windowMs: number;
231
235
  /** Whether the person turned it on (W8): nothing is on by default. */
232
236
  isOn(ship: PersonShip): Promise<boolean>;
233
- /** Sends the wake: whether it went out. A refusal for good (refused) cannot be fixed by trying again; unavailable can succeed later. */
234
- wake(ship: PersonShip): Promise<Result<undefined, {
237
+ /**
238
+ * Sends the wake: whether it went out. A refusal for good (refused) cannot be fixed by trying again; unavailable can succeed later.
239
+ * The window's key is the same for every try of one window, so a channel can send it once however often it is asked.
240
+ */
241
+ wake(ship: PersonShip, window: WakeWindow): Promise<Result<undefined, {
235
242
  kind: 'refused' | 'unavailable';
236
243
  reason: string;
237
244
  }>>;
@@ -124,7 +124,9 @@ export function createWakePerson(deps) {
124
124
  const wentOut = [];
125
125
  let isRetryable = false;
126
126
  for (const channel of due) {
127
- const woken = await channel.wake(ship);
127
+ // The channel's last recorded wake names the window: every try before the next one is recorded asks with the same key.
128
+ const lastSentAt = windows.find((window) => window.channel === channel)?.lastSentAt;
129
+ const woken = await channel.wake(ship, { key: `${channel.name}:${lastSentAt === undefined ? 'first' : lastSentAt.toISOString()}` });
128
130
  if (woken.isOk) {
129
131
  wentOut.push(channel.name);
130
132
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wake-person.js","sourceRoot":"","sources":["../../../src/core/people/wake-person.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wake-person.js","sourceRoot":"","sources":["../../../src/core/people/wake-person.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type Err } from './result.js';
2
2
  /** Every reason the gateway's core refuses a request. */
3
- export type DomainErrorKind = 'ALREADY_CONNECTED' | 'SECRET_REFUSED' | 'OTHER_FLEET' | 'MISSING_SCOPES' | 'SCOPE_REFUSED' | 'NOT_THE_OPERATOR' | 'NOT_AN_ACTOR' | 'NOT_AN_APPROVER' | 'NO_SUCH_REQUEST' | 'ALREADY_DECIDED' | 'EXPIRED' | 'SCOPE_NOT_HELD' | 'SERVER_DETAILS_MISSING' | 'REQUEST_ID_USED' | 'FLEET_UNAVAILABLE' | 'NOT_CONNECTED' | 'PARTY_EXISTS' | 'COMMISSION_REFUSED' | 'NO_SUCH_PARTY' | 'NOT_AWAITING_CREW' | 'NOT_CREWED' | 'SERVER_UNREACHABLE' | 'STATEMENT_REFUSED' | 'INVALID_REDIRECT_URIS' | 'CLIENT_HAS_PARTY' | 'PARTY_NOT_CREWED' | 'NO_SUCH_TOOL' | 'INVALID_ARGUMENTS' | 'NOT_REACHABLE' | 'SEND_REFUSED' | 'NO_SUCH_CALL' | 'NOT_A_PERSON' | 'SIGNED_OUT' | 'NO_SUCH_DELIVERY' | 'NOT_A_NETWORKER' | 'OPEN_NETWORK' | 'OUTSIDE_PARTIES_OFF' | 'INVALID_SERVER_URL' | 'NOT_A_MANAGER' | 'RETIRE_REFUSED' | 'NOT_AN_ACCOUNT' | 'PARTY_NOT_COMMISSIONED' | 'CHANGE_REFUSED' | 'UNKNOWN_ALIAS' | 'PAYLOAD_TOO_LARGE' | 'TASK_NOT_FOUND' | 'TASK_TERMINAL' | 'WEBHOOK_REFUSED' | 'PUSH_CONFIG_NOT_FOUND' | 'CONTEXT_MISMATCH' | 'CARD_UNREACHABLE' | 'CARD_INVALID' | 'NOT_A_MESSAGE' | 'CHANNEL_NOT_OFFERED' | 'INVALID_SUBSCRIPTION' | 'NO_SUCH_MEETING' | 'MIC_REFUSED' | 'SCOPE_NOT_LISTED' | 'SLACK_SCOPE_NOT_HELD' | 'SLACK_NOT_CONNECTED' | 'SLACK_TOKEN_REFUSED' | 'SLACK_UNAVAILABLE' | 'OTHER_WORKSPACE' | 'INSTALL_REFUSED' | 'NOT_EXPOSABLE' | 'NO_SUCH_BOT' | 'LINK_REFUSED' | 'SLACK_USER_LINKED' | 'ACCOUNT_LINKED' | 'NOT_LINKED' | 'CONFLICT';
3
+ export type DomainErrorKind = 'ALREADY_CONNECTED' | 'SECRET_REFUSED' | 'OTHER_FLEET' | 'MISSING_SCOPES' | 'SCOPE_REFUSED' | 'NOT_THE_OPERATOR' | 'NOT_AN_ACTOR' | 'NOT_AN_APPROVER' | 'NO_SUCH_REQUEST' | 'ALREADY_DECIDED' | 'EXPIRED' | 'SCOPE_NOT_HELD' | 'SERVER_DETAILS_MISSING' | 'REQUEST_ID_USED' | 'FLEET_UNAVAILABLE' | 'NOT_CONNECTED' | 'PARTY_EXISTS' | 'COMMISSION_REFUSED' | 'NO_SUCH_PARTY' | 'NOT_AWAITING_CREW' | 'NOT_CREWED' | 'SERVER_UNREACHABLE' | 'NO_AUTHORIZATION_SERVER' | 'SIGN_IN_CHECK_FAILED' | 'NOT_SIGNED_IN' | 'NO_SIGN_IN' | 'SIGN_IN_FAILED' | 'TURNED_AWAY' | 'AUTHORIZATION_SERVER_UNREACHABLE' | 'NO_DYNAMIC_REGISTRATION' | 'REGISTRATION_REFUSED' | 'STATEMENT_REFUSED' | 'INVALID_REDIRECT_URIS' | 'CLIENT_HAS_PARTY' | 'PARTY_NOT_CREWED' | 'NO_SUCH_TOOL' | 'INVALID_ARGUMENTS' | 'NOT_REACHABLE' | 'SEND_REFUSED' | 'NO_SUCH_CALL' | 'NOT_A_PERSON' | 'SIGNED_OUT' | 'NO_SUCH_DELIVERY' | 'NOT_A_NETWORKER' | 'OPEN_NETWORK' | 'OUTSIDE_PARTIES_OFF' | 'INVALID_SERVER_URL' | 'NOT_A_MANAGER' | 'RETIRE_REFUSED' | 'NOT_AN_ACCOUNT' | 'PARTY_NOT_COMMISSIONED' | 'CHANGE_REFUSED' | 'UNKNOWN_ALIAS' | 'PAYLOAD_TOO_LARGE' | 'TASK_NOT_FOUND' | 'TASK_TERMINAL' | 'WEBHOOK_REFUSED' | 'PUSH_CONFIG_NOT_FOUND' | 'CONTEXT_MISMATCH' | 'CARD_UNREACHABLE' | 'CARD_INVALID' | 'NOT_A_MESSAGE' | 'CHANNEL_NOT_OFFERED' | 'INVALID_SUBSCRIPTION' | 'NO_SUCH_MEETING' | 'MIC_REFUSED' | 'SCOPE_NOT_LISTED' | 'SLACK_SCOPE_NOT_HELD' | 'SLACK_NOT_CONNECTED' | 'SLACK_TOKEN_REFUSED' | 'SLACK_UNAVAILABLE' | 'OTHER_WORKSPACE' | 'INSTALL_REFUSED' | 'NOT_EXPOSABLE' | 'NO_SUCH_BOT' | 'LINK_REFUSED' | 'SLACK_USER_LINKED' | 'ACCOUNT_LINKED' | 'NOT_LINKED' | 'CONFLICT';
4
4
  /** Why the core refused a request. Adapters map the kind to their own error shape; the message is safe to show. */
5
5
  export interface DomainError<K extends DomainErrorKind = DomainErrorKind> {
6
6
  readonly kind: K;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;AAkF5C,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAA4B,IAAO,EAAE,OAAe;IACxE,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;AA2F5C,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAA4B,IAAO,EAAE,OAAe;IACxE,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAChC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type MessageId } from '@aeolus-fleet/common';
1
2
  import type { PersonCrews, PersonShipDoor } from '../people/ports.js';
2
3
  import type { Clock } from '../shared/clock.js';
3
4
  import { type Result } from '../shared/result.js';
@@ -9,6 +10,7 @@ export type AnswerInSlack = (press: SignedRequest & {
9
10
  userId: string;
10
11
  channel: string;
11
12
  messageTs: string;
13
+ messageId: MessageId;
12
14
  option: number;
13
15
  }) => Promise<Result<{
14
16
  kind: 'answered' | 'refused' | 'ignored';
@@ -22,14 +24,17 @@ export type AnswerInSlack = (press: SignedRequest & {
22
24
  * answer as their person ship, to the question's sender in reply to it,
23
25
  * keyed as an answer on the gateway's page is; then the delivery is handled
24
26
  * and the question reacted to, as a message core stored is. Core's refusal
25
- * is said in the question's thread.
27
+ * is said in the question's thread. The press names the question's fleet
28
+ * message, as its button carries it, so a press that comes before the
29
+ * gateway kept the post's Slack message is answered too; the delivery not
30
+ * acknowledged yet, the press, the person's own act, acknowledges it.
26
31
  */
27
32
  export declare function createAnswerInSlack(deps: {
28
33
  apps: Pick<SlackApps, 'findByAppId'>;
29
34
  links: Pick<SlackLinks, 'find'>;
30
- posts: Pick<SlackPosts, 'atSlackMessage'>;
35
+ posts: Pick<SlackPosts, 'ofMessage'>;
31
36
  crews: Pick<PersonCrews, 'find'>;
32
- door: Pick<PersonShipDoor, 'delivery' | 'reply' | 'handled'>;
37
+ door: Pick<PersonShipDoor, 'ack' | 'delivery' | 'reply' | 'handled'>;
33
38
  slack: Pick<SlackMessages, 'react' | 'postInThread'>;
34
39
  signatures: SlackSignatures;
35
40
  clock: Clock;
@@ -19,20 +19,28 @@ function questionIdOf(payload) {
19
19
  * answer as their person ship, to the question's sender in reply to it,
20
20
  * keyed as an answer on the gateway's page is; then the delivery is handled
21
21
  * and the question reacted to, as a message core stored is. Core's refusal
22
- * is said in the question's thread.
22
+ * is said in the question's thread. The press names the question's fleet
23
+ * message, as its button carries it, so a press that comes before the
24
+ * gateway kept the post's Slack message is answered too; the delivery not
25
+ * acknowledged yet, the press, the person's own act, acknowledges it.
23
26
  */
24
27
  export function createAnswerInSlack(deps) {
25
- return async ({ appId, teamId, userId, channel, messageTs, option, body, timestamp, signature }) => {
28
+ return async ({ appId, teamId, userId, channel, messageTs, messageId, option, body, timestamp, signature }) => {
26
29
  const app = await deps.apps.findByAppId(appId);
27
30
  if (!isSignedBy(app, { request: { body, timestamp, signature }, signatures: deps.signatures, clock: deps.clock })) {
28
31
  return err({ kind: 'notSigned' });
29
32
  }
30
33
  const link = await deps.links.find(app.fleetId, { teamId, userId });
31
- const post = link?.stoppedAt === null ? await deps.posts.atSlackMessage(app.fleetId, { personShipId: link.personShipId, appId, channel, ts: messageTs }) : undefined;
34
+ const kept = link?.stoppedAt === null ? await deps.posts.ofMessage(app.fleetId, { personShipId: link.personShipId, messageId }) : undefined;
35
+ const post = kept?.appId === appId && kept.channel === channel ? kept : undefined;
32
36
  const crew = post === undefined ? undefined : await deps.crews.find(app.fleetId, post.personShipId);
33
37
  if (post === undefined || post.deliveryId === null || post.senderShipId === null || crew === undefined || app.bot === null) {
34
38
  return ok({ kind: 'ignored' });
35
39
  }
40
+ if (post.ackedAt === null) {
41
+ // Core reads a delivery again only once acknowledged; a refusal leaves it unread, and the press ignored.
42
+ await deps.door.ack(crew.crewToken, post.deliveryId);
43
+ }
36
44
  const delivery = await deps.door.delivery(crew.crewToken, post.deliveryId);
37
45
  const questionId = delivery.isOk ? questionIdOf(delivery.value.payload) : undefined;
38
46
  if (!delivery.isOk || questionId === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"answer-in-slack.js","sourceRoot":"","sources":["../../../src/core/slack/answer-in-slack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"answer-in-slack.js","sourceRoot":"","sources":["../../../src/core/slack/answer-in-slack.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,16 @@ import type { DeliveryId, FleetId, MessageId, ShipId } from '@aeolus-fleet/commo
5
5
  * the ship it goes to, the person ship it is sent as, where it was written
6
6
  * in Slack, and the Markdown it is sent as. An answer in the thread under a
7
7
  * posted delivery goes to its sender in reply to its message, and hands the
8
- * delivery (9.5 step 4). Once core took it, only its event id stays,
9
- * for an hour, to answer Slack's retries.
8
+ * delivery (9.5 step 4); one written before the gateway kept that
9
+ * delivery's Slack message is matched to it as it is sent. Once core took
10
+ * it, only its event id stays, for an hour, to answer Slack's retries.
10
11
  */
11
12
  export interface KeptSlackEvent {
12
13
  readonly fleetId: FleetId;
13
14
  readonly eventId: string;
14
15
  readonly appId: string;
15
- readonly shipId: ShipId;
16
+ /** None through the gateway's own bot for an answer in a thread not matched yet: it goes only as an answer. */
17
+ readonly shipId: ShipId | null;
16
18
  readonly personShipId: ShipId;
17
19
  readonly channel: string;
18
20
  readonly ts: string;
@@ -1 +1 @@
1
- {"version":3,"file":"kept-slack-event.js","sourceRoot":"","sources":["../../../src/core/slack/kept-slack-event.ts"],"names":[],"mappings":"AA4BA,wGAAwG;AACxG,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE5C,2FAA2F;AAC3F,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"kept-slack-event.js","sourceRoot":"","sources":["../../../src/core/slack/kept-slack-event.ts"],"names":[],"mappings":"AA8BA,wGAAwG;AACxG,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE5C,2FAA2F;AAC3F,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -207,8 +207,14 @@ export interface SlackMessages {
207
207
  url: string;
208
208
  };
209
209
  }): Promise<Result<undefined, SlackRefusal>>;
210
- /** A message in a conversation, or a thread of it, with a button per option to answer (chat.postMessage): the Slack message it is. */
210
+ /**
211
+ * A message in a conversation, or a thread of it, with a button per option
212
+ * to answer (chat.postMessage): the Slack message it is. A press of a
213
+ * button names the fleet message it shows, so a press is matched before
214
+ * the gateway keeps the Slack message.
215
+ */
211
216
  post(botToken: string, message: {
217
+ messageId: MessageId;
212
218
  channel: string;
213
219
  threadTs: string | null;
214
220
  text: string;
@@ -265,13 +271,6 @@ export interface SlackPosts {
265
271
  personShipId: ShipId;
266
272
  messageId: MessageId;
267
273
  }): Promise<SlackPost | undefined>;
268
- /** The delivery posted to the person ship as this Slack message. */
269
- atSlackMessage(fleetId: FleetId, message: {
270
- personShipId: ShipId;
271
- appId: string;
272
- channel: string;
273
- ts: string;
274
- }): Promise<SlackPost | undefined>;
275
274
  /** The latest delivery posted to the person ship in the thread, the thread's first message included. */
276
275
  lastInThread(fleetId: FleetId, thread: {
277
276
  personShipId: ShipId;
@@ -11,7 +11,10 @@ export type SendSlackEvents = () => Promise<void>;
11
11
  * (gateway scopes 9.4 steps 5 to 7, P-B2). Each kept event goes as the
12
12
  * person ship, which the gateway crews, to the bot's ship by its id, as
13
13
  * Markdown, keyed by Slack's event id so a send tried again is the same
14
- * send. Core stored it: the gateway reacts to the person's Slack message.
14
+ * send. One in a thread kept unmatched is matched to the delivery the
15
+ * thread is under now: it waits while a delivery in that conversation is
16
+ * not yet in Slack, and through the gateway's own bot, answering none, it
17
+ * is not sent. Core stored it: the gateway reacts to the person's Slack message.
15
18
  * Core refused it: the reason goes in its thread. Core did not answer: it
16
19
  * goes again next round. Nothing builds up: a taken event's id goes an
17
20
  * hour after core took it, and an event core has not taken in 24 hours
@@ -22,8 +25,8 @@ export declare function createSendSlackEvents(deps: {
22
25
  apps: Pick<SlackApps, 'findByAppId'>;
23
26
  crews: Pick<PersonCrews, 'find'>;
24
27
  sender: Pick<CallSender, 'send'>;
25
- door: Pick<PersonShipDoor, 'handled'>;
26
- posts: Pick<SlackPosts, 'save'>;
28
+ door: Pick<PersonShipDoor, 'ack' | 'handled'>;
29
+ posts: Pick<SlackPosts, 'save' | 'lastInThread' | 'unfinished'>;
27
30
  slack: Pick<SlackMessages, 'postInThread' | 'react'>;
28
31
  clock: Clock;
29
32
  }): SendSlackEvents;
@@ -1,4 +1,5 @@
1
1
  import { TAKEN_KEPT_MS, UNTAKEN_KEPT_MS } from './kept-slack-event.js';
2
+ import { isAwaitingSlackIn } from './slack-post.js';
2
3
  /** How many kept events a round sends at most. */
3
4
  const ROUND_LIMIT = 50;
4
5
  /** The reaction that tells the person their message reached the fleet. */
@@ -24,20 +25,45 @@ function refusalText(ship, refusal) {
24
25
  * (gateway scopes 9.4 steps 5 to 7, P-B2). Each kept event goes as the
25
26
  * person ship, which the gateway crews, to the bot's ship by its id, as
26
27
  * Markdown, keyed by Slack's event id so a send tried again is the same
27
- * send. Core stored it: the gateway reacts to the person's Slack message.
28
+ * send. One in a thread kept unmatched is matched to the delivery the
29
+ * thread is under now: it waits while a delivery in that conversation is
30
+ * not yet in Slack, and through the gateway's own bot, answering none, it
31
+ * is not sent. Core stored it: the gateway reacts to the person's Slack message.
28
32
  * Core refused it: the reason goes in its thread. Core did not answer: it
29
33
  * goes again next round. Nothing builds up: a taken event's id goes an
30
34
  * hour after core took it, and an event core has not taken in 24 hours
31
35
  * goes, the person told in its thread.
32
36
  */
33
37
  export function createSendSlackEvents(deps) {
34
- const send = async (event) => {
35
- const app = await deps.apps.findByAppId(event.appId);
36
- const crew = await deps.crews.find(event.fleetId, event.personShipId);
38
+ /** The event as it goes now: one in a thread kept unmatched answers the delivery the thread is under, if any; none while it may still be under one not yet in Slack. */
39
+ const matched = async (event) => {
40
+ const { fleetId, personShipId, appId, channel, threadTs } = event;
41
+ if (threadTs === null || event.inReplyTo !== null) {
42
+ return event;
43
+ }
44
+ // Awaiting is read before the thread: a post Slack answers between the two reads is then found in the thread, never missed by both.
45
+ const isAwaiting = (await deps.posts.unfinished(fleetId, personShipId)).some((post) => isAwaitingSlackIn(post, { appId, channel }));
46
+ const answered = await deps.posts.lastInThread(fleetId, { personShipId, appId, channel, threadTs });
47
+ if (answered !== undefined) {
48
+ return { ...event, shipId: answered.senderShipId ?? event.shipId, inReplyTo: answered.messageId, deliveryId: answered.deliveryId };
49
+ }
50
+ return isAwaiting ? undefined : event;
51
+ };
52
+ const send = async (kept) => {
53
+ const app = await deps.apps.findByAppId(kept.appId);
54
+ const crew = await deps.crews.find(kept.fleetId, kept.personShipId);
37
55
  if (app === undefined || app.bot === null || crew === undefined) {
38
56
  // No bot to answer with, or no crew to send as: the event waits, and goes after 24 hours told as not reached.
39
57
  return 'later';
40
58
  }
59
+ const event = await matched(kept);
60
+ if (event === undefined) {
61
+ return 'later';
62
+ }
63
+ if (event.shipId === null) {
64
+ // Through the gateway's own bot only an answer goes, as a message there that answers none is not kept.
65
+ return 'taken';
66
+ }
41
67
  const where = { channel: event.channel, threadTs: event.threadTs ?? event.ts };
42
68
  const message = { to: event.shipId, contentType: 'text/markdown', payload: event.markdown, idempotencyKey: `slack:${event.eventId}` };
43
69
  const sent = await deps.sender.send(crew.crewToken, event.inReplyTo === null ? message : { ...message, inReplyTo: event.inReplyTo });
@@ -45,7 +71,9 @@ export function createSendSlackEvents(deps) {
45
71
  const { fleetId, personShipId, appId, channel, ts, threadTs } = event;
46
72
  await deps.posts.save({ fleetId, personShipId, messageId: sent.value.messageId, deliveryId: null, senderShipId: null, appId, channel, ts, threadTs, isLinkOnly: false, ackedAt: null });
47
73
  if (event.deliveryId !== null) {
74
+ // Answered before the gateway acknowledged it, the person's answer acknowledges it, as core takes handled only then.
48
75
  // A refusal leaves the delivery acknowledged, as an answer on the gateway's page does when handled is refused.
76
+ await deps.door.ack(crew.crewToken, event.deliveryId);
49
77
  await deps.door.handled(crew.crewToken, event.deliveryId);
50
78
  }
51
79
  // Without the reaction the person sees no sign and sends again: the event goes again, the same send by its key.
@@ -1 +1 @@
1
- {"version":3,"file":"send-slack-events.js","sourceRoot":"","sources":["../../../src/core/slack/send-slack-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send-slack-events.js","sourceRoot":"","sources":["../../../src/core/slack/send-slack-events.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ export function createShowInSlack(deps) {
45
45
  /** Posts it, waiting out Slack's rate limits: the Slack message, or none when Slack refused it. */
46
46
  const posted = async (where, shown) => {
47
47
  for (let tried = 1;; tried += 1) {
48
- const answered = await deps.slack.post(where.app.bot.token, { channel: where.channel, threadTs: where.threadTs, text: shown.text, buttons: shown.buttons });
48
+ const answered = await deps.slack.post(where.app.bot.token, { messageId: shown.messageId, channel: where.channel, threadTs: where.threadTs, text: shown.text, buttons: shown.buttons });
49
49
  if (answered.isOk) {
50
50
  return answered.value.ts;
51
51
  }
@@ -76,7 +76,7 @@ export function createShowInSlack(deps) {
76
76
  }
77
77
  const app = await deps.apps.find(post.fleetId, post.appId);
78
78
  const shown = slackPostOf(delivery, { overviewUrl: deps.overviewUrlOf(post.fleetId), isHeadedBySender: app?.shipId === null });
79
- const ts = isInSlack(app) ? await posted({ app, channel: post.channel, threadTs: post.threadTs }, shown.kind === 'shown' ? shown : { text: shown.text, buttons: [] }) : undefined;
79
+ const ts = isInSlack(app) ? await posted({ app, channel: post.channel, threadTs: post.threadTs }, { messageId: post.messageId, text: shown.text, buttons: shown.kind === 'shown' ? shown.buttons : [] }) : undefined;
80
80
  if (ts === undefined) {
81
81
  await deps.posts.remove(post.fleetId, post);
82
82
  return 'notShown';
@@ -1 +1 @@
1
- {"version":3,"file":"show-in-slack.js","sourceRoot":"","sources":["../../../src/core/slack/show-in-slack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"show-in-slack.js","sourceRoot":"","sources":["../../../src/core/slack/show-in-slack.ts"],"names":[],"mappings":"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"}
@@ -27,5 +27,14 @@ export interface SlackPost {
27
27
  readonly isLinkOnly: boolean;
28
28
  readonly ackedAt: Date | null;
29
29
  }
30
+ /**
31
+ * Whether the post is a delivery not yet in Slack that starts a thread in
32
+ * the conversation: a reply in a thread there that matches no post may be
33
+ * under it, before the gateway keeps its Slack message.
34
+ */
35
+ export declare function isAwaitingSlackIn(post: SlackPost, conversation: {
36
+ appId: string;
37
+ channel: string;
38
+ }): boolean;
30
39
  /** Whether the post is a delivery the gateway did not finish: not yet in Slack, or not yet acknowledged. */
31
40
  export declare function isUnfinished(post: SlackPost): boolean;
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Whether the post is a delivery not yet in Slack that starts a thread in
3
+ * the conversation: a reply in a thread there that matches no post may be
4
+ * under it, before the gateway keeps its Slack message.
5
+ */
6
+ export function isAwaitingSlackIn(post, conversation) {
7
+ return post.deliveryId !== null && post.ts === null && post.threadTs === null && post.appId === conversation.appId && post.channel === conversation.channel;
8
+ }
1
9
  /** Whether the post is a delivery the gateway did not finish: not yet in Slack, or not yet acknowledged. */
2
10
  export function isUnfinished(post) {
3
11
  return post.deliveryId !== null && (post.ts === null || (!post.isLinkOnly && post.ackedAt === null));
@@ -1 +1 @@
1
- {"version":3,"file":"slack-post.js","sourceRoot":"","sources":["../../../src/core/slack/slack-post.ts"],"names":[],"mappings":"AA+BA,4GAA4G;AAC5G,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC;AACvG,CAAC"}
1
+ {"version":3,"file":"slack-post.js","sourceRoot":"","sources":["../../../src/core/slack/slack-post.ts"],"names":[],"mappings":"AA+BA;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAe,EAAE,YAAgD;IACjG,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC;AAC9J,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC;AACvG,CAAC"}
@@ -30,13 +30,15 @@ export type TakeSlackEvent = (event: {
30
30
  * as, and sent now (9.4 step 3); a retry of a kept one changes nothing.
31
31
  * One in the thread under a delivery the gateway posted answers it: it goes
32
32
  * to that delivery's sender in reply to its message (9.5 step 4). Through
33
- * the gateway's own bot, only such an answer is sent.
33
+ * the gateway's own bot, only such an answer is sent. One in a thread that
34
+ * matches no post, while a delivery in that conversation is not yet in
35
+ * Slack, may be under it: it is kept, and matched as it is sent.
34
36
  */
35
37
  export declare function createTakeSlackEvent(deps: {
36
38
  apps: Pick<SlackApps, 'findByAppId' | 'save'>;
37
39
  links: Pick<SlackLinks, 'find'>;
38
40
  events: Pick<SlackEvents, 'keep'>;
39
- posts: Pick<SlackPosts, 'lastInThread'>;
41
+ posts: Pick<SlackPosts, 'lastInThread' | 'unfinished'>;
40
42
  /** Sends the kept events now, not at the next round. */
41
43
  sendNow: () => void;
42
44
  slack: Pick<SlackMessages, 'postOnlyTo'>;