@aeolus-fleet/gateway 0.29.2 → 0.31.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 (738) hide show
  1. package/README.md +11 -3
  2. package/dist/adapters/a2a/a2a-agents.d.ts +6 -0
  3. package/dist/adapters/a2a/a2a-agents.js +238 -0
  4. package/dist/adapters/a2a/a2a-agents.js.map +1 -0
  5. package/dist/adapters/a2a/agent-cards.d.ts +4 -0
  6. package/dist/adapters/a2a/agent-cards.js +90 -0
  7. package/dist/adapters/a2a/agent-cards.js.map +1 -0
  8. package/dist/adapters/crypto/agent-keys.d.ts +3 -0
  9. package/dist/adapters/crypto/agent-keys.js +13 -0
  10. package/dist/adapters/crypto/agent-keys.js.map +1 -0
  11. package/dist/adapters/crypto/call-keys.js +2 -0
  12. package/dist/adapters/crypto/call-keys.js.map +1 -1
  13. package/dist/adapters/fleet/core-version.d.ts +1 -1
  14. package/dist/adapters/fleet/core-version.js +1 -1
  15. package/dist/adapters/fleet/fleet-ships.d.ts +3 -1
  16. package/dist/adapters/fleet/fleet-ships.js +19 -10
  17. package/dist/adapters/fleet/fleet-ships.js.map +1 -1
  18. package/dist/adapters/fleet/rest-fleet-door.d.ts +4 -2
  19. package/dist/adapters/fleet/rest-fleet-door.js +65 -6
  20. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  21. package/dist/adapters/http/a2a-cards.d.ts +24 -0
  22. package/dist/adapters/http/a2a-cards.js +62 -0
  23. package/dist/adapters/http/a2a-cards.js.map +1 -0
  24. package/dist/adapters/http/a2a-endpoint.d.ts +28 -0
  25. package/dist/adapters/http/a2a-endpoint.js +424 -0
  26. package/dist/adapters/http/a2a-endpoint.js.map +1 -0
  27. package/dist/adapters/http/a2a-streams.d.ts +28 -0
  28. package/dist/adapters/http/a2a-streams.js +74 -0
  29. package/dist/adapters/http/a2a-streams.js.map +1 -0
  30. package/dist/adapters/http/a2a-tasks.d.ts +18 -0
  31. package/dist/adapters/http/a2a-tasks.js +117 -0
  32. package/dist/adapters/http/a2a-tasks.js.map +1 -0
  33. package/dist/adapters/http/front-door.js +8 -4
  34. package/dist/adapters/http/front-door.js.map +1 -1
  35. package/dist/adapters/http/live.d.ts +3 -1
  36. package/dist/adapters/http/live.js +6 -2
  37. package/dist/adapters/http/live.js.map +1 -1
  38. package/dist/adapters/http/oauth-routes.d.ts +1 -1
  39. package/dist/adapters/http/oauth-routes.js +16 -3
  40. package/dist/adapters/http/oauth-routes.js.map +1 -1
  41. package/dist/adapters/http/person-tools.d.ts +4 -7
  42. package/dist/adapters/http/person-tools.js +75 -10
  43. package/dist/adapters/http/person-tools.js.map +1 -1
  44. package/dist/adapters/mcp/mcp-servers.js +2 -0
  45. package/dist/adapters/mcp/mcp-servers.js.map +1 -1
  46. package/dist/adapters/pagasae/email-channel.d.ts +8 -0
  47. package/dist/adapters/pagasae/email-channel.js +37 -0
  48. package/dist/adapters/pagasae/email-channel.js.map +1 -0
  49. package/dist/adapters/pagasae/pagasae-client.js +6 -2
  50. package/dist/adapters/pagasae/pagasae-client.js.map +1 -1
  51. package/dist/adapters/prisma/agent-calls.d.ts +3 -0
  52. package/dist/adapters/prisma/agent-calls.js +49 -0
  53. package/dist/adapters/prisma/agent-calls.js.map +1 -0
  54. package/dist/adapters/prisma/changes.d.ts +17 -8
  55. package/dist/adapters/prisma/changes.js +18 -5
  56. package/dist/adapters/prisma/changes.js.map +1 -1
  57. package/dist/adapters/prisma/client-calls.d.ts +1 -1
  58. package/dist/adapters/prisma/client-calls.js +83 -21
  59. package/dist/adapters/prisma/client-calls.js.map +1 -1
  60. package/dist/adapters/prisma/email-channels.d.ts +4 -0
  61. package/dist/adapters/prisma/email-channels.js +14 -0
  62. package/dist/adapters/prisma/email-channels.js.map +1 -0
  63. package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
  64. package/dist/adapters/prisma/fleet-forgetter.js +2 -2
  65. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  66. package/dist/adapters/prisma/focused-pages.d.ts +4 -0
  67. package/dist/adapters/prisma/focused-pages.js +13 -0
  68. package/dist/adapters/prisma/focused-pages.js.map +1 -0
  69. package/dist/adapters/prisma/generated/browser.d.ts +45 -0
  70. package/dist/adapters/prisma/generated/client.d.ts +45 -0
  71. package/dist/adapters/prisma/generated/commonInputTypes.d.ts +54 -54
  72. package/dist/adapters/prisma/generated/internal/class.d.ts +99 -0
  73. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  74. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  75. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +783 -1
  76. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +101 -3
  77. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  78. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +107 -0
  79. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +101 -3
  80. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  81. package/dist/adapters/prisma/generated/models/A2aAgentCall.d.ts +1203 -0
  82. package/dist/adapters/prisma/generated/models/A2aAgentCall.js +2 -0
  83. package/dist/adapters/prisma/generated/models/A2aAgentCall.js.map +1 -0
  84. package/dist/adapters/prisma/generated/models/A2aAgentReply.d.ts +1003 -0
  85. package/dist/adapters/prisma/generated/models/A2aAgentReply.js +2 -0
  86. package/dist/adapters/prisma/generated/models/A2aAgentReply.js.map +1 -0
  87. package/dist/adapters/prisma/generated/models/A2aPush.d.ts +1413 -0
  88. package/dist/adapters/prisma/generated/models/A2aPush.js +2 -0
  89. package/dist/adapters/prisma/generated/models/A2aPush.js.map +1 -0
  90. package/dist/adapters/prisma/generated/models/A2aPushConfig.d.ts +1322 -0
  91. package/dist/adapters/prisma/generated/models/A2aPushConfig.js +2 -0
  92. package/dist/adapters/prisma/generated/models/A2aPushConfig.js.map +1 -0
  93. package/dist/adapters/prisma/generated/models/A2aTask.d.ts +1002 -0
  94. package/dist/adapters/prisma/generated/models/A2aTask.js +2 -0
  95. package/dist/adapters/prisma/generated/models/A2aTask.js.map +1 -0
  96. package/dist/adapters/prisma/generated/models/ClientCall.d.ts +136 -15
  97. package/dist/adapters/prisma/generated/models/ClientCallReply.d.ts +0 -7
  98. package/dist/adapters/prisma/generated/models/EmailChannel.d.ts +946 -0
  99. package/dist/adapters/prisma/generated/models/EmailChannel.js +2 -0
  100. package/dist/adapters/prisma/generated/models/EmailChannel.js.map +1 -0
  101. package/dist/adapters/prisma/generated/models/FocusedPage.d.ts +974 -0
  102. package/dist/adapters/prisma/generated/models/FocusedPage.js +2 -0
  103. package/dist/adapters/prisma/generated/models/FocusedPage.js.map +1 -0
  104. package/dist/adapters/prisma/generated/models/IssuedToken.d.ts +47 -41
  105. package/dist/adapters/prisma/generated/models/OAuthClient.d.ts +32 -8
  106. package/dist/adapters/prisma/generated/models/Party.d.ts +90 -3
  107. package/dist/adapters/prisma/generated/models/WakeSent.d.ts +975 -0
  108. package/dist/adapters/prisma/generated/models/WakeSent.js +2 -0
  109. package/dist/adapters/prisma/generated/models/WakeSent.js.map +1 -0
  110. package/dist/adapters/prisma/generated/models/WebPushSubscription.d.ts +1115 -0
  111. package/dist/adapters/prisma/generated/models/WebPushSubscription.js +2 -0
  112. package/dist/adapters/prisma/generated/models/WebPushSubscription.js.map +1 -0
  113. package/dist/adapters/prisma/generated/models.d.ts +9 -0
  114. package/dist/adapters/prisma/oauth-stores.js +3 -2
  115. package/dist/adapters/prisma/oauth-stores.js.map +1 -1
  116. package/dist/adapters/prisma/party-store.js +35 -6
  117. package/dist/adapters/prisma/party-store.js.map +1 -1
  118. package/dist/adapters/prisma/person-crews.js +9 -0
  119. package/dist/adapters/prisma/person-crews.js.map +1 -1
  120. package/dist/adapters/prisma/push-store.d.ts +3 -0
  121. package/dist/adapters/prisma/push-store.js +102 -0
  122. package/dist/adapters/prisma/push-store.js.map +1 -0
  123. package/dist/adapters/prisma/waiter-locks.d.ts +4 -0
  124. package/dist/adapters/prisma/waiter-locks.js +72 -0
  125. package/dist/adapters/prisma/waiter-locks.js.map +1 -0
  126. package/dist/adapters/prisma/wakes-sent.d.ts +4 -0
  127. package/dist/adapters/prisma/wakes-sent.js +10 -0
  128. package/dist/adapters/prisma/wakes-sent.js.map +1 -0
  129. package/dist/adapters/prisma/web-push-subscriptions.d.ts +3 -0
  130. package/dist/adapters/prisma/web-push-subscriptions.js +33 -0
  131. package/dist/adapters/prisma/web-push-subscriptions.js.map +1 -0
  132. package/dist/adapters/trpc/router.d.ts +460 -9
  133. package/dist/adapters/trpc/router.js +269 -13
  134. package/dist/adapters/trpc/router.js.map +1 -1
  135. package/dist/adapters/web-push/web-push.d.ts +9 -0
  136. package/dist/adapters/web-push/web-push.js +70 -0
  137. package/dist/adapters/web-push/web-push.js.map +1 -0
  138. package/dist/adapters/webhooks/allowed-lookup.d.ts +14 -0
  139. package/dist/adapters/webhooks/allowed-lookup.js +28 -0
  140. package/dist/adapters/webhooks/allowed-lookup.js.map +1 -0
  141. package/dist/adapters/webhooks/host-resolver.d.ts +3 -0
  142. package/dist/adapters/webhooks/host-resolver.js +13 -0
  143. package/dist/adapters/webhooks/host-resolver.js.map +1 -0
  144. package/dist/adapters/webhooks/webhook-poster.d.ts +6 -0
  145. package/dist/adapters/webhooks/webhook-poster.js +67 -0
  146. package/dist/adapters/webhooks/webhook-poster.js.map +1 -0
  147. package/dist/app.d.ts +12 -0
  148. package/dist/app.js +277 -14
  149. package/dist/app.js.map +1 -1
  150. package/dist/bin/aeolus-gateway.js +3 -0
  151. package/dist/bin/aeolus-gateway.js.map +1 -1
  152. package/dist/config.d.ts +14 -0
  153. package/dist/config.js +24 -0
  154. package/dist/config.js.map +1 -1
  155. package/dist/core/a2a-in/authenticate-a2a-client.d.ts +23 -0
  156. package/dist/core/a2a-in/authenticate-a2a-client.js +21 -0
  157. package/dist/core/a2a-in/authenticate-a2a-client.js.map +1 -0
  158. package/dist/core/a2a-in/deliver-pushes.d.ts +24 -0
  159. package/dist/core/a2a-in/deliver-pushes.js +48 -0
  160. package/dist/core/a2a-in/deliver-pushes.js.map +1 -0
  161. package/dist/core/a2a-in/find-reached-ship.d.ts +18 -0
  162. package/dist/core/a2a-in/find-reached-ship.js +20 -0
  163. package/dist/core/a2a-in/find-reached-ship.js.map +1 -0
  164. package/dist/core/a2a-in/follow-a2a-task.d.ts +25 -0
  165. package/dist/core/a2a-in/follow-a2a-task.js +23 -0
  166. package/dist/core/a2a-in/follow-a2a-task.js.map +1 -0
  167. package/dist/core/a2a-in/inbound-message.d.ts +30 -0
  168. package/dist/core/a2a-in/inbound-message.js +33 -0
  169. package/dist/core/a2a-in/inbound-message.js.map +1 -0
  170. package/dist/core/a2a-in/list-a2a-tasks.d.ts +18 -0
  171. package/dist/core/a2a-in/list-a2a-tasks.js +14 -0
  172. package/dist/core/a2a-in/list-a2a-tasks.js.map +1 -0
  173. package/dist/core/a2a-in/list-push-configs.d.ts +20 -0
  174. package/dist/core/a2a-in/list-push-configs.js +18 -0
  175. package/dist/core/a2a-in/list-push-configs.js.map +1 -0
  176. package/dist/core/a2a-in/list-reached-ships.d.ts +25 -0
  177. package/dist/core/a2a-in/list-reached-ships.js +22 -0
  178. package/dist/core/a2a-in/list-reached-ships.js.map +1 -0
  179. package/dist/core/a2a-in/notice-task-changes.d.ts +19 -0
  180. package/dist/core/a2a-in/notice-task-changes.js +17 -0
  181. package/dist/core/a2a-in/notice-task-changes.js.map +1 -0
  182. package/dist/core/a2a-in/ports.d.ts +124 -0
  183. package/dist/core/a2a-in/ports.js +2 -0
  184. package/dist/core/a2a-in/ports.js.map +1 -0
  185. package/dist/core/a2a-in/push-config-view.d.ts +8 -0
  186. package/dist/core/a2a-in/push-config-view.js +2 -0
  187. package/dist/core/a2a-in/push-config-view.js.map +1 -0
  188. package/dist/core/a2a-in/push-to-webhooks.d.ts +19 -0
  189. package/dist/core/a2a-in/push-to-webhooks.js +19 -0
  190. package/dist/core/a2a-in/push-to-webhooks.js.map +1 -0
  191. package/dist/core/a2a-in/read-a2a-task.d.ts +12 -0
  192. package/dist/core/a2a-in/read-a2a-task.js +11 -0
  193. package/dist/core/a2a-in/read-a2a-task.js.map +1 -0
  194. package/dist/core/a2a-in/read-push-config.d.ts +16 -0
  195. package/dist/core/a2a-in/read-push-config.js +14 -0
  196. package/dist/core/a2a-in/read-push-config.js.map +1 -0
  197. package/dist/core/a2a-in/remove-push-config.d.ts +15 -0
  198. package/dist/core/a2a-in/remove-push-config.js +13 -0
  199. package/dist/core/a2a-in/remove-push-config.js.map +1 -0
  200. package/dist/core/a2a-in/send-a2a-message.d.ts +34 -0
  201. package/dist/core/a2a-in/send-a2a-message.js +106 -0
  202. package/dist/core/a2a-in/send-a2a-message.js.map +1 -0
  203. package/dist/core/a2a-in/set-push-config.d.ts +30 -0
  204. package/dist/core/a2a-in/set-push-config.js +27 -0
  205. package/dist/core/a2a-in/set-push-config.js.map +1 -0
  206. package/dist/core/a2a-in/subscribe-to-a2a-task.d.ts +18 -0
  207. package/dist/core/a2a-in/subscribe-to-a2a-task.js +17 -0
  208. package/dist/core/a2a-in/subscribe-to-a2a-task.js.map +1 -0
  209. package/dist/core/a2a-in/task-view.d.ts +51 -0
  210. package/dist/core/a2a-in/task-view.js +49 -0
  211. package/dist/core/a2a-in/task-view.js.map +1 -0
  212. package/dist/core/a2a-in/webhook-address.d.ts +7 -0
  213. package/dist/core/a2a-in/webhook-address.js +17 -0
  214. package/dist/core/a2a-in/webhook-address.js.map +1 -0
  215. package/dist/core/a2a-in/webhook.d.ts +6 -0
  216. package/dist/core/a2a-in/webhook.js +80 -0
  217. package/dist/core/a2a-in/webhook.js.map +1 -0
  218. package/dist/core/a2a-out/agent-endpoint.d.ts +10 -0
  219. package/dist/core/a2a-out/agent-endpoint.js +10 -0
  220. package/dist/core/a2a-out/agent-endpoint.js.map +1 -0
  221. package/dist/core/a2a-out/agent-event.d.ts +41 -0
  222. package/dist/core/a2a-out/agent-event.js +64 -0
  223. package/dist/core/a2a-out/agent-event.js.map +1 -0
  224. package/dist/core/a2a-out/agent-message.d.ts +36 -0
  225. package/dist/core/a2a-out/agent-message.js +36 -0
  226. package/dist/core/a2a-out/agent-message.js.map +1 -0
  227. package/dist/core/a2a-out/agent-statement.d.ts +10 -0
  228. package/dist/core/a2a-out/agent-statement.js +45 -0
  229. package/dist/core/a2a-out/agent-statement.js.map +1 -0
  230. package/dist/core/a2a-out/follow-agent-task.d.ts +40 -0
  231. package/dist/core/a2a-out/follow-agent-task.js +125 -0
  232. package/dist/core/a2a-out/follow-agent-task.js.map +1 -0
  233. package/dist/core/a2a-out/hand-a2a-message.d.ts +36 -0
  234. package/dist/core/a2a-out/hand-a2a-message.js +132 -0
  235. package/dist/core/a2a-out/hand-a2a-message.js.map +1 -0
  236. package/dist/core/a2a-out/mark-a2a-agent.d.ts +24 -0
  237. package/dist/core/a2a-out/mark-a2a-agent.js +24 -0
  238. package/dist/core/a2a-out/mark-a2a-agent.js.map +1 -0
  239. package/dist/core/a2a-out/ports.d.ts +200 -0
  240. package/dist/core/a2a-out/ports.js +2 -0
  241. package/dist/core/a2a-out/ports.js.map +1 -0
  242. package/dist/core/a2a-out/read-agent-statement.d.ts +13 -0
  243. package/dist/core/a2a-out/read-agent-statement.js +13 -0
  244. package/dist/core/a2a-out/read-agent-statement.js.map +1 -0
  245. package/dist/core/a2a-out/run-a2a-agent.d.ts +26 -0
  246. package/dist/core/a2a-out/run-a2a-agent.js +46 -0
  247. package/dist/core/a2a-out/run-a2a-agent.js.map +1 -0
  248. package/dist/core/a2a-out/state-a2a-agent.d.ts +26 -0
  249. package/dist/core/a2a-out/state-a2a-agent.js +31 -0
  250. package/dist/core/a2a-out/state-a2a-agent.js.map +1 -0
  251. package/dist/core/mcp-in/call-tool.js +2 -0
  252. package/dist/core/mcp-in/call-tool.js.map +1 -1
  253. package/dist/core/mcp-in/client-call.d.ts +35 -4
  254. package/dist/core/mcp-in/client-call.js +57 -10
  255. package/dist/core/mcp-in/client-call.js.map +1 -1
  256. package/dist/core/mcp-in/collect-replies.d.ts +4 -3
  257. package/dist/core/mcp-in/collect-replies.js +4 -0
  258. package/dist/core/mcp-in/collect-replies.js.map +1 -1
  259. package/dist/core/mcp-in/ports.d.ts +52 -3
  260. package/dist/core/mcp-out/hand-call.d.ts +5 -1
  261. package/dist/core/mcp-out/hand-call.js +9 -1
  262. package/dist/core/mcp-out/hand-call.js.map +1 -1
  263. package/dist/core/mcp-out/run-party.d.ts +29 -7
  264. package/dist/core/mcp-out/run-party.js +14 -6
  265. package/dist/core/mcp-out/run-party.js.map +1 -1
  266. package/dist/core/mcp-out/state-party.d.ts +4 -2
  267. package/dist/core/mcp-out/state-party.js +10 -3
  268. package/dist/core/mcp-out/state-party.js.map +1 -1
  269. package/dist/core/mcp-out/statement.d.ts +2 -1
  270. package/dist/core/mcp-out/statement.js.map +1 -1
  271. package/dist/core/meetings/change-own-mic.d.ts +24 -0
  272. package/dist/core/meetings/change-own-mic.js +21 -0
  273. package/dist/core/meetings/change-own-mic.js.map +1 -0
  274. package/dist/core/meetings/mic-standing.d.ts +18 -0
  275. package/dist/core/meetings/mic-standing.js +11 -0
  276. package/dist/core/meetings/mic-standing.js.map +1 -0
  277. package/dist/core/meetings/ports.d.ts +70 -0
  278. package/dist/core/meetings/ports.js +2 -0
  279. package/dist/core/meetings/ports.js.map +1 -0
  280. package/dist/core/meetings/read-meeting.d.ts +30 -0
  281. package/dist/core/meetings/read-meeting.js +26 -0
  282. package/dist/core/meetings/read-meeting.js.map +1 -0
  283. package/dist/core/oauth/exchange-id-jag.d.ts +28 -0
  284. package/dist/core/oauth/exchange-id-jag.js +66 -0
  285. package/dist/core/oauth/exchange-id-jag.js.map +1 -0
  286. package/dist/core/oauth/exchange-token.d.ts +25 -11
  287. package/dist/core/oauth/exchange-token.js +50 -3
  288. package/dist/core/oauth/exchange-token.js.map +1 -1
  289. package/dist/core/oauth/ports.d.ts +17 -6
  290. package/dist/core/oauth/register-client.js +1 -1
  291. package/dist/core/oauth/register-client.js.map +1 -1
  292. package/dist/core/parties/add-a2a-agent.d.ts +34 -0
  293. package/dist/core/parties/add-a2a-agent.js +45 -0
  294. package/dist/core/parties/add-a2a-agent.js.map +1 -0
  295. package/dist/core/parties/add-a2a-client.d.ts +30 -0
  296. package/dist/core/parties/add-a2a-client.js +47 -0
  297. package/dist/core/parties/add-a2a-client.js.map +1 -0
  298. package/dist/core/parties/add-client-party.d.ts +38 -0
  299. package/dist/core/parties/add-client-party.js +40 -0
  300. package/dist/core/parties/add-client-party.js.map +1 -0
  301. package/dist/core/parties/approve-party.d.ts +43 -2
  302. package/dist/core/parties/approve-party.js +9 -5
  303. package/dist/core/parties/approve-party.js.map +1 -1
  304. package/dist/core/parties/approver.d.ts +7 -0
  305. package/dist/core/parties/approver.js +9 -0
  306. package/dist/core/parties/approver.js.map +1 -0
  307. package/dist/core/parties/check-server.d.ts +2 -1
  308. package/dist/core/parties/check-server.js +1 -1
  309. package/dist/core/parties/check-server.js.map +1 -1
  310. package/dist/core/parties/crew-party.d.ts +18 -4
  311. package/dist/core/parties/crew-party.js +36 -4
  312. package/dist/core/parties/crew-party.js.map +1 -1
  313. package/dist/core/parties/party.d.ts +23 -1
  314. package/dist/core/parties/party.js +17 -4
  315. package/dist/core/parties/party.js.map +1 -1
  316. package/dist/core/parties/ports.d.ts +16 -0
  317. package/dist/core/parties/read-party-tools.d.ts +4 -3
  318. package/dist/core/parties/read-party-tools.js +4 -2
  319. package/dist/core/parties/read-party-tools.js.map +1 -1
  320. package/dist/core/parties/shown-party.d.ts +8 -0
  321. package/dist/core/parties/shown-party.js +4 -0
  322. package/dist/core/parties/shown-party.js.map +1 -1
  323. package/dist/core/parties/switch-tool.d.ts +29 -0
  324. package/dist/core/parties/switch-tool.js +33 -0
  325. package/dist/core/parties/switch-tool.js.map +1 -0
  326. package/dist/core/parties/tool-switches.d.ts +27 -0
  327. package/dist/core/parties/tool-switches.js +17 -0
  328. package/dist/core/parties/tool-switches.js.map +1 -0
  329. package/dist/core/people/answer-delivery.d.ts +2 -1
  330. package/dist/core/people/answer-delivery.js.map +1 -1
  331. package/dist/core/people/done-delivery.d.ts +2 -1
  332. package/dist/core/people/done-delivery.js.map +1 -1
  333. package/dist/core/people/focus-page.d.ts +18 -0
  334. package/dist/core/people/focus-page.js +20 -0
  335. package/dist/core/people/focus-page.js.map +1 -0
  336. package/dist/core/people/inbox-entry.d.ts +2 -2
  337. package/dist/core/people/inbox-entry.js +9 -2
  338. package/dist/core/people/inbox-entry.js.map +1 -1
  339. package/dist/core/people/open-delivery.d.ts +6 -2
  340. package/dist/core/people/open-delivery.js +3 -1
  341. package/dist/core/people/open-delivery.js.map +1 -1
  342. package/dist/core/people/opened-of.d.ts +7 -2
  343. package/dist/core/people/opened-of.js +6 -1
  344. package/dist/core/people/opened-of.js.map +1 -1
  345. package/dist/core/people/person-crew.d.ts +2 -0
  346. package/dist/core/people/person-crew.js +6 -2
  347. package/dist/core/people/person-crew.js.map +1 -1
  348. package/dist/core/people/ports.d.ts +158 -5
  349. package/dist/core/people/read-wake-channels.d.ts +42 -0
  350. package/dist/core/people/read-wake-channels.js +21 -0
  351. package/dist/core/people/read-wake-channels.js.map +1 -0
  352. package/dist/core/people/turn-email-channel.d.ts +21 -0
  353. package/dist/core/people/turn-email-channel.js +22 -0
  354. package/dist/core/people/turn-email-channel.js.map +1 -0
  355. package/dist/core/people/turn-off-web-push.d.ts +13 -0
  356. package/dist/core/people/turn-off-web-push.js +14 -0
  357. package/dist/core/people/turn-off-web-push.js.map +1 -0
  358. package/dist/core/people/turn-on-web-push.d.ts +35 -0
  359. package/dist/core/people/turn-on-web-push.js +49 -0
  360. package/dist/core/people/turn-on-web-push.js.map +1 -0
  361. package/dist/core/people/wait-on-person-ship.d.ts +44 -0
  362. package/dist/core/people/wait-on-person-ship.js +92 -0
  363. package/dist/core/people/wait-on-person-ship.js.map +1 -0
  364. package/dist/core/people/wake-person.d.ts +40 -0
  365. package/dist/core/people/wake-person.js +74 -0
  366. package/dist/core/people/wake-person.js.map +1 -0
  367. package/dist/core/people/web-push-channel.d.ts +17 -0
  368. package/dist/core/people/web-push-channel.js +35 -0
  369. package/dist/core/people/web-push-channel.js.map +1 -0
  370. package/dist/core/requests/decide-request.d.ts +0 -2
  371. package/dist/core/requests/decide-request.js +3 -6
  372. package/dist/core/requests/decide-request.js.map +1 -1
  373. package/dist/core/requests/list-to-decide.js +1 -1
  374. package/dist/core/requests/list-to-decide.js.map +1 -1
  375. package/dist/core/shared/errors.d.ts +1 -1
  376. package/dist/core/shared/errors.js.map +1 -1
  377. package/dist/core/sign-in/ports.d.ts +13 -0
  378. package/dist/core/vault/credential.d.ts +6 -2
  379. package/dist/party-workers.d.ts +9 -1
  380. package/dist/party-workers.js +37 -5
  381. package/dist/party-workers.js.map +1 -1
  382. package/dist/person-waiters.d.ts +30 -0
  383. package/dist/person-waiters.js +89 -0
  384. package/dist/person-waiters.js.map +1 -0
  385. package/package.json +7 -3
  386. package/src/adapters/prisma/migrations/20261023120000_party_bearer_hash/migration.sql +4 -0
  387. package/src/adapters/prisma/migrations/20261023130000_client_credentials/migration.sql +5 -0
  388. package/src/adapters/prisma/migrations/20261023200000_a2a_tasks/migration.sql +20 -0
  389. package/src/adapters/prisma/migrations/20261023210000_tool_switches/migration.sql +2 -0
  390. package/src/adapters/prisma/migrations/20261024090000_a2a_pushes/migration.sql +37 -0
  391. package/src/adapters/prisma/migrations/20261024100000_party_is_repeatable/migration.sql +2 -0
  392. package/src/adapters/prisma/migrations/20261024110000_a2a_agent_calls/migration.sql +29 -0
  393. package/src/adapters/prisma/migrations/20261024115000_wakes/migration.sql +17 -0
  394. package/src/adapters/prisma/migrations/20261024120000_focused_pages/migration.sql +11 -0
  395. package/src/adapters/prisma/migrations/20261024130000_web_push_subscriptions/migration.sql +14 -0
  396. package/src/adapters/prisma/schema.prisma +159 -5
  397. package/web/.next/BUILD_ID +1 -1
  398. package/web/.next/app-path-routes-manifest.json +4 -0
  399. package/web/.next/build-manifest.json +39 -3
  400. package/web/.next/diagnostics/route-bundle-stats.json +91 -42
  401. package/web/.next/fallback-build-manifest.json +3 -3
  402. package/web/.next/next-minimal-server.js.nft.json +1 -1
  403. package/web/.next/next-server.js.nft.json +1 -1
  404. package/web/.next/prerender-manifest.json +3 -3
  405. package/web/.next/routes-manifest.json +26 -0
  406. package/web/.next/server/app/(console)/meetings/[meetingId]/page/app-paths-manifest.json +3 -0
  407. package/web/.next/server/app/(console)/meetings/[meetingId]/page/build-manifest.json +23 -0
  408. package/web/.next/server/app/(console)/meetings/[meetingId]/page/next-font-manifest.json +11 -0
  409. package/web/.next/server/app/(console)/meetings/[meetingId]/page/react-loadable-manifest.json +1 -0
  410. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +35 -0
  411. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +21 -0
  412. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.map +5 -0
  413. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -0
  414. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +3 -0
  415. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +24 -4
  416. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +10 -8
  417. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  418. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  419. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +22 -2
  420. package/web/.next/server/app/(console)/outside-parties/[name]/page.js +8 -5
  421. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  422. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  423. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +24 -4
  424. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +9 -6
  425. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  426. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  427. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +26 -6
  428. package/web/.next/server/app/(console)/outside-parties/add/page.js +10 -5
  429. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  430. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  431. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/app-paths-manifest.json +3 -0
  432. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/build-manifest.json +23 -0
  433. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/next-font-manifest.json +11 -0
  434. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/react-loadable-manifest.json +1 -0
  435. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +25 -0
  436. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js +20 -0
  437. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.map +5 -0
  438. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -0
  439. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +3 -0
  440. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/app-paths-manifest.json +3 -0
  441. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/build-manifest.json +23 -0
  442. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/next-font-manifest.json +11 -0
  443. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/react-loadable-manifest.json +1 -0
  444. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +25 -0
  445. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +21 -0
  446. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.map +5 -0
  447. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -0
  448. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +3 -0
  449. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  450. package/web/.next/server/app/(console)/outside-parties/page.js +3 -3
  451. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  452. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  453. package/web/.next/server/app/(console)/overview/changes/route.js +3 -2
  454. package/web/.next/server/app/(console)/overview/changes/route.js.nft.json +1 -1
  455. package/web/.next/server/app/(console)/overview/focus/route/app-paths-manifest.json +3 -0
  456. package/web/.next/server/app/(console)/overview/focus/route/build-manifest.json +12 -0
  457. package/web/.next/server/app/(console)/overview/focus/route/server-reference-manifest.json +4 -0
  458. package/web/.next/server/app/(console)/overview/focus/route.js +7 -0
  459. package/web/.next/server/app/(console)/overview/focus/route.js.map +5 -0
  460. package/web/.next/server/app/(console)/overview/focus/route.js.nft.json +1 -0
  461. package/web/.next/server/app/(console)/overview/focus/route_client-reference-manifest.js +3 -0
  462. package/web/.next/server/app/(console)/overview/page/server-reference-manifest.json +34 -4
  463. package/web/.next/server/app/(console)/overview/page.js +5 -5
  464. package/web/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  465. package/web/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  466. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/server-reference-manifest.json +2 -2
  467. package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js +2 -2
  468. package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js.nft.json +1 -1
  469. package/web/.next/server/app/(console)/overview/requests/[requestId]/page_client-reference-manifest.js +1 -1
  470. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +9 -9
  471. package/web/.next/server/app/(console)/parties/page.js +2 -2
  472. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  473. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  474. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  475. package/web/.next/server/app/(console)/sign-in/failed/page.js +3 -3
  476. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  477. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  478. package/web/.next/server/app/_global-error/page.js +3 -3
  479. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  480. package/web/.next/server/app/_global-error.html +1 -1
  481. package/web/.next/server/app/_global-error.rsc +1 -1
  482. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  483. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  484. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  485. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  486. package/web/.next/server/app/_not-found/page.js +3 -3
  487. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  488. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  489. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  490. package/web/.next/server/app/authorize/failed/page.js +2 -2
  491. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  492. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  493. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  494. package/web/.next/server/app/authorize/pick/page.js +2 -2
  495. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  496. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  497. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  498. package/web/.next/server/app/authorize/waiting/approval/page.js +2 -2
  499. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  500. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  501. package/web/.next/server/app-paths-manifest.json +4 -0
  502. package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_overview_focus_route_actions_10hgyjvv-6fus.js +3 -0
  503. package/web/.next/server/chunks/[externals]__0fgpzedhhntg9._.js +3 -0
  504. package/web/.next/server/chunks/[externals]__0fgpzedhhntg9._.js.map +1 -0
  505. package/web/.next/server/chunks/{[root-of-the-server]__0k8jiujb_0xtx._.js → [root-of-the-server]__0ykc8bq_c06a1._.js} +22 -22
  506. package/web/.next/server/chunks/[root-of-the-server]__0ykc8bq_c06a1._.js.map +1 -0
  507. package/web/.next/server/chunks/_04is-uopj3op9._.js +3 -0
  508. package/web/.next/server/chunks/_04is-uopj3op9._.js.map +1 -0
  509. package/web/.next/server/chunks/_1-fw4-pwzazl4._.js +3 -0
  510. package/web/.next/server/chunks/_1-fw4-pwzazl4._.js.map +1 -0
  511. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +3 -0
  512. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -0
  513. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +3 -0
  514. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -0
  515. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +3 -0
  516. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -0
  517. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +3 -0
  518. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -0
  519. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +3 -0
  520. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -0
  521. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js +1 -1
  522. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js.map +1 -1
  523. package/web/.next/server/chunks/ssr/{[root-of-the-server]__12_to1hq55n1y._.js → [root-of-the-server]__0-og0bl8lr2xq._.js} +2 -2
  524. package/web/.next/server/chunks/ssr/{[root-of-the-server]__12_to1hq55n1y._.js.map → [root-of-the-server]__0-og0bl8lr2xq._.js.map} +1 -1
  525. package/web/.next/server/chunks/ssr/[root-of-the-server]__00erqdm9cmhh7._.js +3 -0
  526. package/web/.next/server/chunks/ssr/[root-of-the-server]__00erqdm9cmhh7._.js.map +1 -0
  527. package/web/.next/server/chunks/ssr/[root-of-the-server]__07udzu2zwg_74._.js +3 -0
  528. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1yydhn6iokbm4._.js.map → [root-of-the-server]__07udzu2zwg_74._.js.map} +1 -1
  529. package/web/.next/server/chunks/ssr/{[root-of-the-server]__197il4swfpq1a._.js → [root-of-the-server]__0a68v9ynev4q6._.js} +2 -2
  530. package/web/.next/server/chunks/ssr/{[root-of-the-server]__197il4swfpq1a._.js.map → [root-of-the-server]__0a68v9ynev4q6._.js.map} +1 -1
  531. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +4 -0
  532. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -0
  533. package/web/.next/server/chunks/ssr/[root-of-the-server]__0l2_dk9d4o01n._.js +3 -0
  534. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1vkw2kvzx6fpw._.js.map → [root-of-the-server]__0l2_dk9d4o01n._.js.map} +1 -1
  535. package/web/.next/server/chunks/ssr/[root-of-the-server]__0m57jyae0dn_7._.js +3 -0
  536. package/web/.next/server/chunks/ssr/[root-of-the-server]__0m57jyae0dn_7._.js.map +1 -0
  537. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n2us07jk-78w._.js +4 -0
  538. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n2us07jk-78w._.js.map +1 -0
  539. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rr5u24i9tjyc._.js +3 -0
  540. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1imel8atfb770._.js.map → [root-of-the-server]__0rr5u24i9tjyc._.js.map} +1 -1
  541. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js +1 -1
  542. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js.map +1 -1
  543. package/web/.next/server/chunks/ssr/[root-of-the-server]__11w36a4le04vy._.js +3 -0
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__11w36a4le04vy._.js.map +1 -0
  545. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +4 -0
  546. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -0
  547. package/web/.next/server/chunks/ssr/[root-of-the-server]__1dtyycvqa6uht._.js +4 -0
  548. package/web/.next/server/chunks/ssr/[root-of-the-server]__1dtyycvqa6uht._.js.map +1 -0
  549. package/web/.next/server/chunks/ssr/[root-of-the-server]__1gb-3dttuacyz._.js +3 -0
  550. package/web/.next/server/chunks/ssr/[root-of-the-server]__1gb-3dttuacyz._.js.map +1 -0
  551. package/web/.next/server/chunks/ssr/[root-of-the-server]__1k25lo5ka4mgd._.js +3 -0
  552. package/web/.next/server/chunks/ssr/[root-of-the-server]__1k25lo5ka4mgd._.js.map +1 -0
  553. package/web/.next/server/chunks/ssr/[root-of-the-server]__1m9atpy0vkbmj._.js +3 -0
  554. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0dywrno7zb0r_._.js.map → [root-of-the-server]__1m9atpy0vkbmj._.js.map} +1 -1
  555. package/web/.next/server/chunks/ssr/[root-of-the-server]__1n_sq_58wdluh._.js +3 -0
  556. package/web/.next/server/chunks/ssr/[root-of-the-server]__1n_sq_58wdluh._.js.map +1 -0
  557. package/web/.next/server/chunks/ssr/[root-of-the-server]__1w5swo8gmjyx6._.js +3 -0
  558. package/web/.next/server/chunks/ssr/{[root-of-the-server]__216xd8otb96uo._.js.map → [root-of-the-server]__1w5swo8gmjyx6._.js.map} +1 -1
  559. package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js +1 -1
  560. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yjb00o7x58xv._.js +3 -0
  561. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yjb00o7x58xv._.js.map +1 -0
  562. package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js +3 -0
  563. package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js.map +1 -0
  564. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  565. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  566. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +2 -2
  567. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
  568. package/web/.next/server/chunks/ssr/_0bhvvyz0q_0ja._.js +4 -0
  569. package/web/.next/server/chunks/ssr/_0bhvvyz0q_0ja._.js.map +1 -0
  570. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  571. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  572. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  573. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  574. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +4 -0
  575. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js.map +1 -0
  576. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  577. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  578. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  579. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  580. package/web/.next/server/chunks/ssr/node_modules_1wdusod3fyk3s._.js +3 -0
  581. package/web/.next/server/chunks/ssr/node_modules_1wdusod3fyk3s._.js.map +1 -0
  582. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +1 -1
  583. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcy-jnk5o43.js +1 -1
  584. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcy-jnk5o43.js.map +1 -1
  585. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e8cobt3o_8ur.js +3 -0
  586. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e8cobt3o_8ur.js.map +1 -0
  587. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0gzed-epom5si.js +3 -0
  588. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0gzed-epom5si.js.map +1 -0
  589. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bt2ioufqh6fl.js +1 -1
  590. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bt2ioufqh6fl.js.map +1 -1
  591. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0-ipfysjmro.js +1 -1
  592. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0-ipfysjmro.js.map +1 -1
  593. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20d8hq6wsqwh_.js +3 -0
  594. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20d8hq6wsqwh_.js.map +1 -0
  595. package/web/.next/server/chunks/ssr/web_0-ufi2al5ubig._.js +3 -0
  596. package/web/.next/server/chunks/ssr/web_0-ufi2al5ubig._.js.map +1 -0
  597. package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js +3 -0
  598. package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js.map +1 -0
  599. package/web/.next/server/chunks/ssr/web_0_jk9eione6lx._.js +3 -0
  600. package/web/.next/server/chunks/ssr/web_0_jk9eione6lx._.js.map +1 -0
  601. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +3 -0
  602. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -0
  603. package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js +1 -1
  604. package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js.map +1 -1
  605. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js +1 -1
  606. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js.map +1 -1
  607. package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +1 -1
  608. package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js.map +1 -1
  609. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js +1 -1
  610. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js.map +1 -1
  611. package/web/.next/server/chunks/ssr/web_features_0ahlkugj7fu3n._.js +3 -0
  612. package/web/.next/server/chunks/ssr/web_features_0ahlkugj7fu3n._.js.map +1 -0
  613. package/web/.next/server/chunks/ssr/web_features_0i_kwiszuiqcp._.js +3 -0
  614. package/web/.next/server/chunks/ssr/web_features_0i_kwiszuiqcp._.js.map +1 -0
  615. package/web/.next/server/chunks/ssr/web_features_0xnlgtw8bfqaa._.js +3 -0
  616. package/web/.next/server/chunks/ssr/web_features_0xnlgtw8bfqaa._.js.map +1 -0
  617. package/web/.next/server/chunks/ssr/web_features_1--8ungjj--ht._.js +3 -0
  618. package/web/.next/server/chunks/ssr/web_features_1--8ungjj--ht._.js.map +1 -0
  619. package/web/.next/server/chunks/ssr/web_features_19v3mlx8c_h1-._.js +3 -0
  620. package/web/.next/server/chunks/ssr/web_features_19v3mlx8c_h1-._.js.map +1 -0
  621. package/web/.next/server/chunks/ssr/web_features_1_2m6l73qk7qw._.js +3 -0
  622. package/web/.next/server/chunks/ssr/web_features_1_2m6l73qk7qw._.js.map +1 -0
  623. package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js +3 -0
  624. package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js.map +1 -0
  625. package/web/.next/server/chunks/ssr/web_features_1qq_ruz59ldc9._.js +3 -0
  626. package/web/.next/server/chunks/ssr/web_features_1qq_ruz59ldc9._.js.map +1 -0
  627. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +3 -0
  628. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -0
  629. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +3 -0
  630. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -0
  631. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  632. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  633. package/web/.next/server/chunks/ssr/web_features_forms_1d1jyea2jni9o._.js +3 -0
  634. package/web/.next/server/chunks/ssr/web_features_forms_1d1jyea2jni9o._.js.map +1 -0
  635. package/web/.next/server/chunks/ssr/web_features_forms_form-state_ts_2142hiopykfk1._.js +3 -0
  636. package/web/.next/server/chunks/ssr/web_features_forms_form-state_ts_2142hiopykfk1._.js.map +1 -0
  637. package/web/.next/server/chunks/ssr/web_features_forms_ui_credential-fields_tsx_0l-w19zg-7x4b._.js +3 -0
  638. package/web/.next/server/chunks/ssr/web_features_forms_ui_credential-fields_tsx_0l-w19zg-7x4b._.js.map +1 -0
  639. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  640. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  641. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +3 -0
  642. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -0
  643. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  644. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  645. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  646. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js.map +1 -1
  647. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_20x5u9bhxeehi._.js +3 -0
  648. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_20x5u9bhxeehi._.js.map +1 -0
  649. package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js +1 -1
  650. package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js.map +1 -1
  651. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +1 -1
  652. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +1 -1
  653. package/web/.next/server/chunks/ssr/web_features_overview_state_1wuk95dw2_whp._.js +3 -0
  654. package/web/.next/server/chunks/ssr/web_features_overview_state_1wuk95dw2_whp._.js.map +1 -0
  655. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +1 -1
  656. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +1 -1
  657. package/web/.next/server/chunks/ssr/web_features_overview_ui_action-button_tsx_14-5f45xbzbi6._.js +3 -0
  658. package/web/.next/server/chunks/ssr/web_features_overview_ui_action-button_tsx_14-5f45xbzbi6._.js.map +1 -0
  659. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  660. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js.map +1 -1
  661. package/web/.next/server/middleware-build-manifest.js +39 -3
  662. package/web/.next/server/next-font-manifest.js +1 -1
  663. package/web/.next/server/next-font-manifest.json +12 -0
  664. package/web/.next/server/pages/500.html +1 -1
  665. package/web/.next/server/preview-props.json +3 -3
  666. package/web/.next/server/server-reference-manifest.js +1 -1
  667. package/web/.next/server/server-reference-manifest.json +150 -24
  668. package/web/.next/static/chunks/183mifyxtyab5.css +3 -0
  669. package/web/.next/static/chunks/1bnlc-p1_cm01.js +1 -0
  670. package/web/.next/static/chunks/1juj2_tl8d16x.js +1 -0
  671. package/web/.next/static/chunks/1jvae6c-4jwji.js +1 -0
  672. package/web/.next/static/chunks/1pafc2gfswboo.js +1 -0
  673. package/web/.next/static/chunks/2-t4g6oq6tjkg.js +1 -0
  674. package/web/.next/static/chunks/21s2_ccrw90ok.js +1 -0
  675. package/web/.next/static/chunks/2hsi-sahla2aj.js +1 -0
  676. package/web/.next/static/chunks/2l27ty2dy2pb4.js +1 -0
  677. package/web/.next/static/chunks/2n2qsek2y94y5.js +1 -0
  678. package/web/.next/static/chunks/3o8h4o3utbvgc.js +1 -0
  679. package/web/.next/static/chunks/3tss77vu57zju.js +1 -0
  680. package/web/.next/trace +1 -1
  681. package/web/.next/trace-build +1 -1
  682. package/web/.next/types/routes.d.ts +6 -2
  683. package/web/.next/types/validator.ts +61 -0
  684. package/web/public/wake-worker.js +17 -0
  685. package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js +0 -3
  686. package/web/.next/server/chunks/[root-of-the-server]__0k8jiujb_0xtx._.js.map +0 -1
  687. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_10eg3jn_qq_u_.js +0 -3
  688. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_10eg3jn_qq_u_.js.map +0 -1
  689. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js +0 -4
  690. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js.map +0 -1
  691. package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js +0 -3
  692. package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js +0 -3
  693. package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js.map +0 -1
  694. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-sy-ven9f2f._.js +0 -3
  695. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-sy-ven9f2f._.js.map +0 -1
  696. package/web/.next/server/chunks/ssr/[root-of-the-server]__1imel8atfb770._.js +0 -3
  697. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rmy72sai5-kh._.js +0 -4
  698. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rmy72sai5-kh._.js.map +0 -1
  699. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js +0 -3
  700. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yydhn6iokbm4._.js +0 -3
  701. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js +0 -4
  702. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js.map +0 -1
  703. package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js +0 -3
  704. package/web/.next/server/chunks/ssr/_080ao10j8x4km._.js +0 -4
  705. package/web/.next/server/chunks/ssr/_080ao10j8x4km._.js.map +0 -1
  706. package/web/.next/server/chunks/ssr/_1gb_kwx9jg1et._.js +0 -4
  707. package/web/.next/server/chunks/ssr/_1gb_kwx9jg1et._.js.map +0 -1
  708. package/web/.next/server/chunks/ssr/_1ulh8nd8_yv_3._.js +0 -4
  709. package/web/.next/server/chunks/ssr/_1ulh8nd8_yv_3._.js.map +0 -1
  710. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js +0 -3
  711. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js.map +0 -1
  712. package/web/.next/server/chunks/ssr/web_06ue1l1ujajps._.js +0 -3
  713. package/web/.next/server/chunks/ssr/web_06ue1l1ujajps._.js.map +0 -1
  714. package/web/.next/server/chunks/ssr/web_1_rm1ivvp726s._.js +0 -3
  715. package/web/.next/server/chunks/ssr/web_1_rm1ivvp726s._.js.map +0 -1
  716. package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js +0 -3
  717. package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js.map +0 -1
  718. package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js +0 -3
  719. package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js.map +0 -1
  720. package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js +0 -3
  721. package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js.map +0 -1
  722. package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js +0 -3
  723. package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js.map +0 -1
  724. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js +0 -3
  725. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js.map +0 -1
  726. package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js +0 -3
  727. package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js.map +0 -1
  728. package/web/.next/static/chunks/1l1gmjf-hz7u_.css +0 -3
  729. package/web/.next/static/chunks/1ma7v1viiz247.js +0 -1
  730. package/web/.next/static/chunks/1tfvu44eel7g5.js +0 -1
  731. package/web/.next/static/chunks/2bg4wnfhuftsq.js +0 -1
  732. package/web/.next/static/chunks/2yplpvvjibfqw.js +0 -1
  733. package/web/.next/static/chunks/34syicr_5c5u1.js +0 -1
  734. package/web/.next/static/chunks/43zbq11isnos4.js +0 -1
  735. /package/web/.next/server/chunks/{[externals]__12s2uxrv8n30f._.js.map → 0b9d__next-internal_server_app_(console)_overview_focus_route_actions_10hgyjvv-6fus.js.map} +0 -0
  736. /package/web/.next/static/{ESz77-eaR5ViaU4LRqo0i → 3whgLnRJ9iJe_25h6KGzQ}/_buildManifest.js +0 -0
  737. /package/web/.next/static/{ESz77-eaR5ViaU4LRqo0i → 3whgLnRJ9iJe_25h6KGzQ}/_clientMiddlewareManifest.js +0 -0
  738. /package/web/.next/static/{ESz77-eaR5ViaU4LRqo0i → 3whgLnRJ9iJe_25h6KGzQ}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-agent-task.js","sourceRoot":"","sources":["../../../src/core/a2a-out/follow-agent-task.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type HandOutcome, type PushedDelivery } from '../mcp-out/hand-call.js';
2
+ import type { A2aAgentParty } from '../parties/party.js';
3
+ import type { PartyStore } from '../parties/ports.js';
4
+ import type { Clock } from '../shared/clock.js';
5
+ import type { AgentEndpoint } from './agent-endpoint.js';
6
+ import type { FollowAgentTask } from './follow-agent-task.js';
7
+ import type { A2aAgents, AgentCalls, AgentKeys, AgentShipCrew, GatewayStatuses } from './ports.js';
8
+ export type HandA2aMessage = (input: {
9
+ party: A2aAgentParty;
10
+ endpoint: AgentEndpoint;
11
+ delivery: PushedDelivery;
12
+ signal: AbortSignal;
13
+ }) => Promise<HandOutcome>;
14
+ /**
15
+ * Use case: the gateway hands one delivery of an outside A2A agent's proxy
16
+ * ship to the agent (slice 6, flow 4.2): handed with the next number on
17
+ * channel a2a, then SendMessage under a messageId derived from the
18
+ * message, so the agent sees a message handed again as the same one. An
19
+ * answer that takes it is acknowledged, then its task followed until it
20
+ * ends; a message answer is replied and handled; a refusal is acknowledged,
21
+ * replied rejected and handled. With no answer, it is handed again when the
22
+ * agent is repeatable (A9), else reported not handled. An answer to a reply
23
+ * the gateway sent continues that reply's task. Each step is kept before
24
+ * the next, so a delivery that comes again picks up where it stopped.
25
+ */
26
+ export declare function createHandA2aMessage(deps: {
27
+ crew: AgentShipCrew;
28
+ agents: A2aAgents;
29
+ calls: AgentCalls;
30
+ keys: AgentKeys;
31
+ statuses: GatewayStatuses;
32
+ parties: PartyStore;
33
+ follow: FollowAgentTask;
34
+ clock: Clock;
35
+ deadlineMs: number;
36
+ }): HandA2aMessage;
@@ -0,0 +1,132 @@
1
+ import { MAY_HAVE_RUN } from '../mcp-out/hand-call.js';
2
+ import { replyContentOf } from './agent-event.js';
3
+ import { outboundMessageOf } from './agent-message.js';
4
+ /** The channel the gateway hands an outside agent's delivery through (interop 5.1). */
5
+ const A2A_CHANNEL = 'a2a';
6
+ const AGAIN = { kind: 'again' };
7
+ /**
8
+ * Use case: the gateway hands one delivery of an outside A2A agent's proxy
9
+ * ship to the agent (slice 6, flow 4.2): handed with the next number on
10
+ * channel a2a, then SendMessage under a messageId derived from the
11
+ * message, so the agent sees a message handed again as the same one. An
12
+ * answer that takes it is acknowledged, then its task followed until it
13
+ * ends; a message answer is replied and handled; a refusal is acknowledged,
14
+ * replied rejected and handled. With no answer, it is handed again when the
15
+ * agent is repeatable (A9), else reported not handled. An answer to a reply
16
+ * the gateway sent continues that reply's task. Each step is kept before
17
+ * the next, so a delivery that comes again picks up where it stopped.
18
+ */
19
+ export function createHandA2aMessage(deps) {
20
+ return async ({ party, endpoint, delivery, signal }) => {
21
+ const { crewToken, fleetId } = party;
22
+ if (crewToken === null) {
23
+ return AGAIN;
24
+ }
25
+ const caller = { fleetId, party: party.name };
26
+ /**
27
+ * Replies once, under a key of the delivery and what it says, then acknowledges and handles it. The agent's
28
+ * answer is kept first, so a delivery that comes again after a lost acknowledgement sends the same reply and
29
+ * is handled, never judged as one that may have run.
30
+ */
31
+ const answered = async (call, event) => {
32
+ if (call !== undefined && call.state !== 'answered') {
33
+ await deps.calls.save({ ...call, state: 'answered', answer: event });
34
+ }
35
+ const steps = [
36
+ () => deps.crew.send(crewToken, { to: delivery.senderShipId, inReplyTo: delivery.messageId, contentType: event.contentType, payload: event.payload, idempotencyKey: deps.keys.replyKeyOf(fleetId, { taskId: delivery.messageId, event: event.key }) }),
37
+ () => deps.crew.ack(crewToken, delivery.deliveryId),
38
+ () => deps.crew.handled(crewToken, delivery.deliveryId),
39
+ ];
40
+ for (const step of steps) {
41
+ if (!(await step()).isOk) {
42
+ return AGAIN;
43
+ }
44
+ }
45
+ if (call !== undefined) {
46
+ await deps.calls.save({ ...call, state: 'done' });
47
+ }
48
+ return { kind: 'handled' };
49
+ };
50
+ const repliedEvent = (call, event) => answered(call, { ...replyContentOf(event), key: event.json });
51
+ const mayHaveRun = async (call) => {
52
+ await deps.calls.save({ ...call, state: 'mayHaveRun' });
53
+ // A refused report leaves the call judged: it is reported again each time it comes, and never sent again.
54
+ await deps.crew.notHandled(crewToken, { deliveryId: delivery.deliveryId, reason: MAY_HAVE_RUN });
55
+ return { kind: 'notHandled' };
56
+ };
57
+ const followed = async (call, events) => {
58
+ if (!(await deps.crew.ack(crewToken, delivery.deliveryId)).isOk) {
59
+ return AGAIN;
60
+ }
61
+ return deps.follow({ party, endpoint, call, signal, events });
62
+ };
63
+ const kept = await deps.calls.find(caller, delivery.deliveryId);
64
+ if (kept?.state === 'mayHaveRun') {
65
+ return mayHaveRun(kept);
66
+ }
67
+ if (kept?.state === 'answered' && kept.answer !== null) {
68
+ return answered(kept, kept.answer);
69
+ }
70
+ if (kept?.state === 'following') {
71
+ return followed(kept, []);
72
+ }
73
+ if (kept?.state === 'done') {
74
+ return (await deps.crew.handled(crewToken, delivery.deliveryId)).isOk ? { kind: 'handled' } : AGAIN;
75
+ }
76
+ const continued = delivery.inReplyTo === null ? undefined : await deps.calls.taskOfReply(caller, delivery.inReplyTo);
77
+ const call = kept ?? {
78
+ deliveryId: delivery.deliveryId,
79
+ fleetId,
80
+ party: party.name,
81
+ messageId: delivery.messageId,
82
+ senderShipId: delivery.senderShipId,
83
+ state: 'sending',
84
+ taskId: continued?.taskId ?? null,
85
+ contextId: continued?.contextId ?? null,
86
+ deadlineAt: new Date(deps.clock.now().getTime() + deps.deadlineMs),
87
+ answer: null,
88
+ replied: [],
89
+ chunkPlaces: {},
90
+ };
91
+ const message = outboundMessageOf(delivery, { messageId: deps.keys.messageIdOf(fleetId, delivery.messageId), taskId: call.taskId, contextId: call.contextId });
92
+ if (!message.isOk) {
93
+ return answered(undefined, { contentType: 'text/plain', payload: message.error.message, key: message.error.message });
94
+ }
95
+ // The mark as it is now, not as the worker found the party: an approver may mark the agent while it runs.
96
+ const now = await deps.parties.find(fleetId, party.name);
97
+ const isRepeatable = now?.kind === 'a2aAgent' ? now.isRepeatable : party.isRepeatable;
98
+ // Handed before with no answer kept and not judged unsent: the gateway stopped mid send, so it may have run.
99
+ if (delivery.state === 'handed' && kept?.state !== 'notSent' && !isRepeatable) {
100
+ return mayHaveRun(call);
101
+ }
102
+ const handed = await deps.crew.handed(crewToken, { deliveryId: delivery.deliveryId, handOverNumber: (delivery.handOverNumber ?? 0) + 1, channel: A2A_CHANNEL });
103
+ if (!handed.isOk) {
104
+ return AGAIN;
105
+ }
106
+ if (handed.value === 'undeliverable') {
107
+ return { kind: 'undeliverable' };
108
+ }
109
+ const sending = { ...call, state: 'sending' };
110
+ await deps.calls.save(sending);
111
+ const outcome = await deps.agents.send({ endpoint, credential: party.credential }, message.value);
112
+ switch (outcome.kind) {
113
+ case 'task': {
114
+ const following = { ...sending, state: 'following', taskId: outcome.taskId, contextId: outcome.contextId };
115
+ await deps.calls.save(following);
116
+ return followed(following, outcome.events);
117
+ }
118
+ case 'message':
119
+ return repliedEvent(sending, outcome.event);
120
+ case 'refused': {
121
+ const rejected = deps.statuses.statusOf({ taskId: call.taskId ?? '', contextId: call.contextId ?? '', state: 'rejected', reason: outcome.reason, messageId: deps.keys.replyKeyOf(fleetId, { taskId: delivery.messageId, event: outcome.reason }) });
122
+ return repliedEvent(sending, rejected);
123
+ }
124
+ case 'notSent':
125
+ await deps.calls.save({ ...sending, state: 'notSent' });
126
+ return AGAIN;
127
+ case 'unanswered':
128
+ return isRepeatable ? AGAIN : mayHaveRun(sending);
129
+ }
130
+ };
131
+ }
132
+ //# sourceMappingURL=hand-a2a-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hand-a2a-message.js","sourceRoot":"","sources":["../../../src/core/a2a-out/hand-a2a-message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Actor } from '../actors/authenticate-actor.js';
2
+ import type { PartyStore } from '../parties/ports.js';
3
+ import { type DomainError } from '../shared/errors.js';
4
+ import { type Result } from '../shared/result.js';
5
+ import type { StateA2aAgent } from './state-a2a-agent.js';
6
+ export type MarkA2aAgentRefusal = DomainError<'NOT_AN_APPROVER' | 'NO_SUCH_PARTY'>;
7
+ export type MarkA2aAgent = (input: {
8
+ actor: Actor;
9
+ name: string;
10
+ isRepeatable: boolean;
11
+ }) => Promise<Result<{
12
+ isRepeatable: boolean; /** Why the proxy ship's statement waits for its next one; none when the fleet sees the mark now. */
13
+ statementRefusal: string | null;
14
+ }, MarkA2aAgentRefusal>>;
15
+ /**
16
+ * Use case: an actor holding gateway:approve marks an outside A2A agent not
17
+ * repeatable, or repeatable again (A9): the whole agent, as A2A names no
18
+ * call apart from its message. The mark is kept first, then the proxy ship
19
+ * is stated anew; while it cannot be, the mark waits for its next statement.
20
+ */
21
+ export declare function createMarkA2aAgent(deps: {
22
+ parties: PartyStore;
23
+ stateA2aAgent: StateA2aAgent;
24
+ }): MarkA2aAgent;
@@ -0,0 +1,24 @@
1
+ import { APPROVING_SCOPE } from '../parties/approver.js';
2
+ import { refuse } from '../shared/errors.js';
3
+ import { ok } from '../shared/result.js';
4
+ /**
5
+ * Use case: an actor holding gateway:approve marks an outside A2A agent not
6
+ * repeatable, or repeatable again (A9): the whole agent, as A2A names no
7
+ * call apart from its message. The mark is kept first, then the proxy ship
8
+ * is stated anew; while it cannot be, the mark waits for its next statement.
9
+ */
10
+ export function createMarkA2aAgent(deps) {
11
+ return async ({ actor, name, isRepeatable }) => {
12
+ if (!actor.scopes.includes(APPROVING_SCOPE)) {
13
+ return refuse('NOT_AN_APPROVER', `Marking an outside A2A agent needs ${APPROVING_SCOPE}`);
14
+ }
15
+ const party = await deps.parties.find(actor.fleetId, name);
16
+ if (party?.kind !== 'a2aAgent') {
17
+ return refuse('NO_SUCH_PARTY', `There is no outside A2A agent ${name}`);
18
+ }
19
+ await deps.parties.save({ ...party, isRepeatable });
20
+ const stated = await deps.stateA2aAgent({ fleetId: actor.fleetId, name });
21
+ return ok({ isRepeatable, statementRefusal: stated.isOk ? null : stated.error.message });
22
+ };
23
+ }
24
+ //# sourceMappingURL=mark-a2a-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-a2a-agent.js","sourceRoot":"","sources":["../../../src/core/a2a-out/mark-a2a-agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAStD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA2D;IAC5F,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE;QAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,eAAe,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,eAAe,EAAE,iCAAiC,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * The ports of A2A out: how the gateway reads an outside A2A agent's card,
3
+ * as the proto's AgentCard states it, keeping only what it uses (slice 5);
4
+ * and how it hands the agent a message and follows its task, keeping each
5
+ * call so a restart follows on and sends nothing twice (slice 6).
6
+ */
7
+ import type { DeliveryId, FleetId, MessageId, ShipId } from '@aeolus-fleet/common';
8
+ import type { CallSender } from '../mcp-in/ports.js';
9
+ import type { ProxyShipCrew } from '../mcp-out/hand-call.js';
10
+ import type { Result } from '../shared/result.js';
11
+ import type { McpServerCredential } from '../vault/credential.js';
12
+ import type { AgentEndpoint } from './agent-endpoint.js';
13
+ import type { AgentEvent, ChunkPlaces } from './agent-event.js';
14
+ import type { OutboundMessage } from './agent-message.js';
15
+ /** An address the agent answers at, in one binding and one version of A2A. */
16
+ export interface AgentInterface {
17
+ readonly url: string;
18
+ readonly protocolBinding: string;
19
+ readonly protocolVersion: string;
20
+ }
21
+ /** One thing the agent can do (A2A's AgentSkill): its media types, when it names its own. */
22
+ export interface AgentSkill {
23
+ readonly id: string;
24
+ readonly name: string;
25
+ readonly description: string;
26
+ readonly inputModes: readonly string[];
27
+ readonly outputModes: readonly string[];
28
+ }
29
+ /** An outside A2A agent's public card. */
30
+ export interface AgentCard {
31
+ readonly name: string;
32
+ readonly description: string;
33
+ readonly supportedInterfaces: readonly AgentInterface[];
34
+ readonly defaultInputModes: readonly string[];
35
+ readonly defaultOutputModes: readonly string[];
36
+ /** Whether the card states streaming, so the gateway follows a task by SubscribeToTask. */
37
+ readonly isStreaming: boolean;
38
+ readonly skills: readonly AgentSkill[];
39
+ }
40
+ /** Why a card could not be read: nothing answered with one, or what answered is no AgentCard. */
41
+ export type CardFailure = {
42
+ kind: 'UNREACHABLE';
43
+ reason: string;
44
+ } | {
45
+ kind: 'NOT_A_CARD';
46
+ reason: string;
47
+ };
48
+ export interface AgentCards {
49
+ /** The card at its address, read with no credential, as a public card is. */
50
+ read(cardUrl: string): Promise<Result<AgentCard, CardFailure>>;
51
+ }
52
+ /** Where and how the gateway calls an agent: its endpoint, and the credential from the vault. */
53
+ export interface AgentConnection {
54
+ readonly endpoint: AgentEndpoint;
55
+ readonly credential: McpServerCredential;
56
+ }
57
+ /**
58
+ * How SendMessage ended (6):
59
+ * - task: the agent took it as a task, with what it tells of it so far;
60
+ * - message: the agent answered with a message and no task;
61
+ * - refused: an A2A error or an HTTP 4xx, so it did not run;
62
+ * - notSent: the gateway never reached the agent (its credential could not be had), so it did not run;
63
+ * - unanswered: a 5xx, a timeout or a broken connection: whether it ran is unknown.
64
+ */
65
+ export type SendOutcome = {
66
+ readonly kind: 'task';
67
+ readonly taskId: string;
68
+ readonly contextId: string;
69
+ readonly events: readonly AgentEvent[];
70
+ } | {
71
+ readonly kind: 'message';
72
+ readonly event: AgentEvent;
73
+ } | {
74
+ readonly kind: 'refused';
75
+ readonly reason: string;
76
+ } | {
77
+ readonly kind: 'notSent';
78
+ readonly reason: string;
79
+ } | {
80
+ readonly kind: 'unanswered';
81
+ readonly reason: string;
82
+ };
83
+ /** GetTask: the task as it stands, its status and each artifact; gone when the agent knows it no more; refused (an A2A error or an HTTP 4xx); or no answer. */
84
+ export type TaskRead = {
85
+ readonly kind: 'read';
86
+ readonly events: readonly AgentEvent[];
87
+ } | {
88
+ readonly kind: 'gone';
89
+ readonly reason: string;
90
+ } | {
91
+ readonly kind: 'refused';
92
+ readonly reason: string;
93
+ } | {
94
+ readonly kind: 'unanswered';
95
+ readonly reason: string;
96
+ };
97
+ /** How a SubscribeToTask stream ended: the agent closed it, the task is gone, the agent refused it (as it does for a task that ended), or it broke. */
98
+ export type SubscriptionEnd = {
99
+ readonly kind: 'closed';
100
+ } | {
101
+ readonly kind: 'gone';
102
+ readonly reason: string;
103
+ } | {
104
+ readonly kind: 'refused';
105
+ readonly reason: string;
106
+ } | {
107
+ readonly kind: 'broken';
108
+ readonly reason: string;
109
+ };
110
+ /** Outbound port: the outside A2A agents the gateway calls, through @a2a-js/sdk's client (A11). */
111
+ export interface A2aAgents {
112
+ /** SendMessage, returning at once (return_immediately). */
113
+ send(connection: AgentConnection, message: OutboundMessage): Promise<SendOutcome>;
114
+ getTask(connection: AgentConnection, taskId: string): Promise<TaskRead>;
115
+ /** SubscribeToTask: each event the stream sends, in turn, until it ends, the timeout passes (broken) or the signal aborts. */
116
+ subscribe(connection: AgentConnection, follow: {
117
+ taskId: string;
118
+ timeoutMs: number;
119
+ signal: AbortSignal;
120
+ onEvent: (event: AgentEvent) => Promise<void>;
121
+ }): Promise<SubscriptionEnd>;
122
+ }
123
+ /** Outbound port: the A2A statuses the gateway itself tells of a task: failed at its deadline, rejected when the agent refused the message. */
124
+ export interface GatewayStatuses {
125
+ statusOf(status: {
126
+ taskId: string;
127
+ contextId: string;
128
+ state: 'failed' | 'rejected';
129
+ reason: string;
130
+ messageId: string;
131
+ }): AgentEvent;
132
+ }
133
+ /** Outbound port: the ids the gateway derives, so the same message and event always get the same ones. */
134
+ export interface AgentKeys {
135
+ /** The A2A messageId the agent gets for a fleet message: stable, so a message handed again is the same to the agent. */
136
+ messageIdOf(fleetId: FleetId, messageId: MessageId): string;
137
+ /** The idempotency key of a reply: the same event of the same task is one reply. */
138
+ replyKeyOf(fleetId: FleetId, of: {
139
+ taskId: string;
140
+ event: string;
141
+ }): string;
142
+ }
143
+ /**
144
+ * What the gateway keeps of a message to an outside agent, so a restart never sends again what may have run, and follows on:
145
+ * - sending: handed, and SendMessage sent or about to be;
146
+ * - notSent: the agent was not reached, so nothing ran;
147
+ * - answered: the agent answered with a message or refused it; the reply kept, then sent, acknowledged and handled;
148
+ * - following: the agent took it as its task; acknowledged, and followed until it ends;
149
+ * - mayHaveRun: sent with no answer, and the agent is not repeatable;
150
+ * - done: handled.
151
+ */
152
+ export interface AgentCall {
153
+ readonly deliveryId: DeliveryId;
154
+ readonly fleetId: FleetId;
155
+ readonly party: string;
156
+ readonly messageId: MessageId;
157
+ readonly senderShipId: ShipId;
158
+ readonly state: 'sending' | 'notSent' | 'answered' | 'following' | 'mayHaveRun' | 'done';
159
+ /** The agent's task: the one a follow-up continues while sending, its own once it took it. */
160
+ readonly taskId: string | null;
161
+ readonly contextId: string | null;
162
+ /** When the gateway gives up following and replies failed (the gateway's timing). */
163
+ readonly deadlineAt: Date;
164
+ /** The reply to the agent's answer, once it answered with a message or refused: sent again as the same reply when the delivery comes again. */
165
+ readonly answer: AgentAnswer | null;
166
+ /** What each reply of the follow was, by the event's identity: kept, so a restart sends none again. */
167
+ readonly replied: readonly string[];
168
+ /** Where the next chunk of each artifact goes, as the replies so far leave it. */
169
+ readonly chunkPlaces: ChunkPlaces;
170
+ }
171
+ /** A reply as the gateway sends it: its content, and what its idempotency key derives from. */
172
+ export interface AgentAnswer {
173
+ readonly contentType: string;
174
+ readonly payload: string;
175
+ readonly key: string;
176
+ }
177
+ interface Caller {
178
+ fleetId: FleetId;
179
+ party: string;
180
+ }
181
+ /** Outbound port: the gateway's messages to outside agents, by delivery, and which task each reply it sent tells of. */
182
+ export interface AgentCalls {
183
+ find(caller: Caller, deliveryId: DeliveryId): Promise<AgentCall | undefined>;
184
+ save(call: AgentCall): Promise<void>;
185
+ /** The party's calls whose task is still followed. */
186
+ following(caller: Caller): Promise<AgentCall[]>;
187
+ /** Keeps that this reply tells of this task, so an answer to it continues the task. */
188
+ saveReply(caller: Caller, reply: {
189
+ messageId: MessageId;
190
+ taskId: string;
191
+ contextId: string;
192
+ }): Promise<void>;
193
+ taskOfReply(caller: Caller, messageId: MessageId): Promise<{
194
+ taskId: string;
195
+ contextId: string;
196
+ } | undefined>;
197
+ }
198
+ /** Outbound port: the fleet's calls an outside agent's proxy ship's crew makes; a reply is a send that answers its message id. */
199
+ export type AgentShipCrew = Pick<ProxyShipCrew, 'pushReceive' | 'handed' | 'ack' | 'handled' | 'notHandled'> & CallSender;
200
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../../src/core/a2a-out/ports.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { Statement, CallTiming } from '../mcp-out/statement.js';
2
+ import { type DomainError } from '../shared/errors.js';
3
+ import type { Result } from '../shared/result.js';
4
+ import type { AgentCards } from './ports.js';
5
+ /** The statement of an outside A2A agent's proxy ship from its card as read now: refused when the card does not answer, is no AgentCard or makes no valid statement. */
6
+ export declare function readAgentStatement(deps: {
7
+ cards: AgentCards;
8
+ timing: CallTiming;
9
+ }, agent: {
10
+ name: string;
11
+ cardUrl: string;
12
+ isRepeatable: boolean;
13
+ }): Promise<Result<Statement, DomainError<'CARD_UNREACHABLE' | 'CARD_INVALID'>>>;
@@ -0,0 +1,13 @@
1
+ import { refuse } from '../shared/errors.js';
2
+ import { agentStatementOf } from './agent-statement.js';
3
+ /** The statement of an outside A2A agent's proxy ship from its card as read now: refused when the card does not answer, is no AgentCard or makes no valid statement. */
4
+ export async function readAgentStatement(deps, agent) {
5
+ const card = await deps.cards.read(agent.cardUrl);
6
+ if (!card.isOk) {
7
+ return card.error.kind === 'UNREACHABLE'
8
+ ? refuse('CARD_UNREACHABLE', `The card of ${agent.name} could not be read: ${card.error.reason}`)
9
+ : refuse('CARD_INVALID', `The card address of ${agent.name} answers no agent card: ${card.error.reason}`);
10
+ }
11
+ return agentStatementOf({ partyName: agent.name, card: card.value, isRepeatable: agent.isRepeatable, timing: deps.timing });
12
+ }
13
+ //# sourceMappingURL=read-agent-statement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-agent-statement.js","sourceRoot":"","sources":["../../../src/core/a2a-out/read-agent-statement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,wKAAwK;AACxK,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAA+C,EAC/C,KAA+D;IAE/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa;YACtC,CAAC,CAAC,MAAM,CAAC,kBAAkB,EAAE,eAAe,KAAK,CAAC,IAAI,uBAAuB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACjG,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,uBAAuB,KAAK,CAAC,IAAI,2BAA2B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9G,CAAC;IACD,OAAO,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9H,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type RunPartyOf, type Sleep } from '../mcp-out/run-party.js';
2
+ import type { A2aAgentParty } from '../parties/party.js';
3
+ import type { FollowAgentTask } from './follow-agent-task.js';
4
+ import type { HandA2aMessage } from './hand-a2a-message.js';
5
+ import type { AgentCalls, AgentCards, AgentShipCrew } from './ports.js';
6
+ export type RunA2aAgent = RunPartyOf<A2aAgentParty>;
7
+ /**
8
+ * Use case: the gateway takes the messages of an outside A2A agent's proxy
9
+ * ship, as its crew, until it is stopped (slice 6, flow 4.2). The card is
10
+ * read at the start for where the agent is called: the first interface the
11
+ * gateway calls, followed by SubscribeToTask when it states streaming.
12
+ * While the card cannot be read or names no such interface, no message is
13
+ * taken and the card is read again after a wait. The tasks followed when
14
+ * the gateway stopped are followed first, each in flight as its delivery.
15
+ */
16
+ export declare function createRunA2aAgent(deps: {
17
+ cards: AgentCards;
18
+ crew: Pick<AgentShipCrew, 'pushReceive'>;
19
+ hand: HandA2aMessage;
20
+ follow: FollowAgentTask;
21
+ calls: AgentCalls;
22
+ sleep: Sleep;
23
+ pollMs: number;
24
+ againWaitsMs: readonly number[];
25
+ cardWaitMs: number;
26
+ }): RunA2aAgent;
@@ -0,0 +1,46 @@
1
+ import { createRunParty } from '../mcp-out/run-party.js';
2
+ import { agentEndpointOf } from './agent-endpoint.js';
3
+ /**
4
+ * Use case: the gateway takes the messages of an outside A2A agent's proxy
5
+ * ship, as its crew, until it is stopped (slice 6, flow 4.2). The card is
6
+ * read at the start for where the agent is called: the first interface the
7
+ * gateway calls, followed by SubscribeToTask when it states streaming.
8
+ * While the card cannot be read or names no such interface, no message is
9
+ * taken and the card is read again after a wait. The tasks followed when
10
+ * the gateway stopped are followed first, each in flight as its delivery.
11
+ */
12
+ export function createRunA2aAgent(deps) {
13
+ const endpointOf = async (party, signal) => {
14
+ while (!signal.aborted) {
15
+ const card = await deps.cards.read(party.cardUrl);
16
+ const endpoint = card.isOk ? agentEndpointOf(card.value) : undefined;
17
+ if (endpoint !== undefined) {
18
+ return endpoint;
19
+ }
20
+ await deps.sleep(deps.cardWaitMs, signal);
21
+ }
22
+ return undefined;
23
+ };
24
+ return async ({ party, signal }) => {
25
+ if (party.crewToken === null) {
26
+ return { ended: 'crewRefused' };
27
+ }
28
+ const endpoint = await endpointOf(party, signal);
29
+ if (endpoint === undefined) {
30
+ return { ended: 'stopped' };
31
+ }
32
+ const run = createRunParty({
33
+ crew: deps.crew,
34
+ handCall: ({ delivery }) => deps.hand({ party, endpoint, delivery, signal }),
35
+ resume: async () => (await deps.calls.following({ fleetId: party.fleetId, party: party.name })).map((call) => ({
36
+ deliveryId: call.deliveryId,
37
+ hand: () => deps.follow({ party, endpoint, call, signal }),
38
+ })),
39
+ sleep: deps.sleep,
40
+ pollMs: deps.pollMs,
41
+ againWaitsMs: deps.againWaitsMs,
42
+ });
43
+ return run({ party, signal });
44
+ };
45
+ }
46
+ //# sourceMappingURL=run-a2a-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-a2a-agent.js","sourceRoot":"","sources":["../../../src/core/a2a-out/run-a2a-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA+B,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAsB,MAAM,qBAAqB,CAAC;AAO1E;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAUjC;IACC,MAAM,UAAU,GAAG,KAAK,EAAE,KAAoB,EAAE,MAAmB,EAAsC,EAAE;QACzG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACjC,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;QAClC,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,GAAG,GAAG,cAAc,CAAgB;YACxC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC5E,MAAM,EAAE,KAAK,IAAI,EAAE,CACjB,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACzF,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAC3D,CAAC,CAAC;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { FleetId } from '@aeolus-fleet/common';
2
+ import type { StatementDoor } from '../mcp-out/state-party.js';
3
+ import type { CallTiming } from '../mcp-out/statement.js';
4
+ import type { PartyStore } from '../parties/ports.js';
5
+ import { type DomainError } from '../shared/errors.js';
6
+ import { type Result } from '../shared/result.js';
7
+ import type { AgentCards } from './ports.js';
8
+ export type StateA2aAgent = (input: {
9
+ fleetId: FleetId;
10
+ name: string;
11
+ }) => Promise<Result<{
12
+ capabilities: string[];
13
+ }, DomainError<'NO_SUCH_PARTY' | 'NOT_CREWED' | 'CARD_UNREACHABLE' | 'CARD_INVALID' | 'STATEMENT_REFUSED'>>>;
14
+ /**
15
+ * Use case: the gateway states what an outside A2A agent's proxy ship
16
+ * offers, as its crew (slice 5): the skills of its card as read now, with
17
+ * the agent's repeatable mark (A9). The whole statement replaces the one
18
+ * before. A card that does not answer or is no longer valid states nothing,
19
+ * so the last statement stays.
20
+ */
21
+ export declare function createStateA2aAgent(deps: {
22
+ parties: PartyStore;
23
+ cards: AgentCards;
24
+ door: StatementDoor;
25
+ timing: CallTiming;
26
+ }): StateA2aAgent;
@@ -0,0 +1,31 @@
1
+ import { refuse } from '../shared/errors.js';
2
+ import { ok } from '../shared/result.js';
3
+ import { readAgentStatement } from './read-agent-statement.js';
4
+ /**
5
+ * Use case: the gateway states what an outside A2A agent's proxy ship
6
+ * offers, as its crew (slice 5): the skills of its card as read now, with
7
+ * the agent's repeatable mark (A9). The whole statement replaces the one
8
+ * before. A card that does not answer or is no longer valid states nothing,
9
+ * so the last statement stays.
10
+ */
11
+ export function createStateA2aAgent(deps) {
12
+ return async ({ fleetId, name }) => {
13
+ const party = await deps.parties.find(fleetId, name);
14
+ if (party?.kind !== 'a2aAgent') {
15
+ return refuse('NO_SUCH_PARTY', `No A2A agent named ${name}`);
16
+ }
17
+ if (party.state !== 'crewed' || party.crewToken === null) {
18
+ return refuse('NOT_CREWED', `The gateway does not crew the proxy ship of ${name} yet`);
19
+ }
20
+ const statement = await readAgentStatement(deps, party);
21
+ if (!statement.isOk) {
22
+ return statement;
23
+ }
24
+ const stated = await deps.door.setStatement(party.crewToken, statement.value);
25
+ if (!stated.isOk) {
26
+ return refuse('STATEMENT_REFUSED', `The fleet refused the statement: ${stated.error.message}`);
27
+ }
28
+ return ok({ capabilities: statement.value.capabilities.map((capability) => capability.name) });
29
+ };
30
+ }
31
+ //# sourceMappingURL=state-a2a-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-a2a-agent.js","sourceRoot":"","sources":["../../../src/core/a2a-out/state-a2a-agent.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAM/D;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAyF;IAC3H,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,eAAe,EAAE,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACzD,OAAO,MAAM,CAAC,YAAY,EAAE,+CAA+C,IAAI,MAAM,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC,CAAC;AACJ,CAAC"}