@aeolus-fleet/gateway 0.29.1 → 0.30.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 (923) 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/console-sessions.js +10 -6
  14. package/dist/adapters/fleet/console-sessions.js.map +1 -1
  15. package/dist/adapters/fleet/core-version.d.ts +1 -1
  16. package/dist/adapters/fleet/core-version.js +1 -1
  17. package/dist/adapters/fleet/fleet-ships.d.ts +3 -1
  18. package/dist/adapters/fleet/fleet-ships.js +19 -10
  19. package/dist/adapters/fleet/fleet-ships.js.map +1 -1
  20. package/dist/adapters/fleet/rest-fleet-door.d.ts +2 -2
  21. package/dist/adapters/fleet/rest-fleet-door.js +29 -5
  22. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  23. package/dist/adapters/http/a2a-cards.d.ts +24 -0
  24. package/dist/adapters/http/a2a-cards.js +62 -0
  25. package/dist/adapters/http/a2a-cards.js.map +1 -0
  26. package/dist/adapters/http/a2a-endpoint.d.ts +28 -0
  27. package/dist/adapters/http/a2a-endpoint.js +424 -0
  28. package/dist/adapters/http/a2a-endpoint.js.map +1 -0
  29. package/dist/adapters/http/a2a-streams.d.ts +28 -0
  30. package/dist/adapters/http/a2a-streams.js +74 -0
  31. package/dist/adapters/http/a2a-streams.js.map +1 -0
  32. package/dist/adapters/http/a2a-tasks.d.ts +18 -0
  33. package/dist/adapters/http/a2a-tasks.js +117 -0
  34. package/dist/adapters/http/a2a-tasks.js.map +1 -0
  35. package/dist/adapters/http/front-door.js +8 -4
  36. package/dist/adapters/http/front-door.js.map +1 -1
  37. package/dist/adapters/http/live.d.ts +3 -1
  38. package/dist/adapters/http/live.js +6 -2
  39. package/dist/adapters/http/live.js.map +1 -1
  40. package/dist/adapters/http/oauth-routes.d.ts +1 -1
  41. package/dist/adapters/http/oauth-routes.js +16 -3
  42. package/dist/adapters/http/oauth-routes.js.map +1 -1
  43. package/dist/adapters/mcp/mcp-servers.js +2 -0
  44. package/dist/adapters/mcp/mcp-servers.js.map +1 -1
  45. package/dist/adapters/pagasae/email-channel.d.ts +8 -0
  46. package/dist/adapters/pagasae/email-channel.js +37 -0
  47. package/dist/adapters/pagasae/email-channel.js.map +1 -0
  48. package/dist/adapters/pagasae/pagasae-client.js +6 -2
  49. package/dist/adapters/pagasae/pagasae-client.js.map +1 -1
  50. package/dist/adapters/prisma/agent-calls.d.ts +3 -0
  51. package/dist/adapters/prisma/agent-calls.js +49 -0
  52. package/dist/adapters/prisma/agent-calls.js.map +1 -0
  53. package/dist/adapters/prisma/changes.d.ts +17 -8
  54. package/dist/adapters/prisma/changes.js +18 -5
  55. package/dist/adapters/prisma/changes.js.map +1 -1
  56. package/dist/adapters/prisma/client-calls.d.ts +1 -1
  57. package/dist/adapters/prisma/client-calls.js +83 -21
  58. package/dist/adapters/prisma/client-calls.js.map +1 -1
  59. package/dist/adapters/prisma/email-channels.d.ts +4 -0
  60. package/dist/adapters/prisma/email-channels.js +14 -0
  61. package/dist/adapters/prisma/email-channels.js.map +1 -0
  62. package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
  63. package/dist/adapters/prisma/fleet-forgetter.js +2 -2
  64. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  65. package/dist/adapters/prisma/focused-pages.d.ts +4 -0
  66. package/dist/adapters/prisma/focused-pages.js +13 -0
  67. package/dist/adapters/prisma/focused-pages.js.map +1 -0
  68. package/dist/adapters/prisma/generated/browser.d.ts +45 -0
  69. package/dist/adapters/prisma/generated/client.d.ts +45 -0
  70. package/dist/adapters/prisma/generated/commonInputTypes.d.ts +54 -54
  71. package/dist/adapters/prisma/generated/internal/class.d.ts +99 -0
  72. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  73. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  74. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +783 -1
  75. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +101 -3
  76. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  77. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +107 -0
  78. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +101 -3
  79. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  80. package/dist/adapters/prisma/generated/models/A2aAgentCall.d.ts +1203 -0
  81. package/dist/adapters/prisma/generated/models/A2aAgentCall.js +2 -0
  82. package/dist/adapters/prisma/generated/models/A2aAgentCall.js.map +1 -0
  83. package/dist/adapters/prisma/generated/models/A2aAgentReply.d.ts +1003 -0
  84. package/dist/adapters/prisma/generated/models/A2aAgentReply.js +2 -0
  85. package/dist/adapters/prisma/generated/models/A2aAgentReply.js.map +1 -0
  86. package/dist/adapters/prisma/generated/models/A2aPush.d.ts +1413 -0
  87. package/dist/adapters/prisma/generated/models/A2aPush.js +2 -0
  88. package/dist/adapters/prisma/generated/models/A2aPush.js.map +1 -0
  89. package/dist/adapters/prisma/generated/models/A2aPushConfig.d.ts +1322 -0
  90. package/dist/adapters/prisma/generated/models/A2aPushConfig.js +2 -0
  91. package/dist/adapters/prisma/generated/models/A2aPushConfig.js.map +1 -0
  92. package/dist/adapters/prisma/generated/models/A2aTask.d.ts +1002 -0
  93. package/dist/adapters/prisma/generated/models/A2aTask.js +2 -0
  94. package/dist/adapters/prisma/generated/models/A2aTask.js.map +1 -0
  95. package/dist/adapters/prisma/generated/models/ClientCall.d.ts +136 -15
  96. package/dist/adapters/prisma/generated/models/ClientCallReply.d.ts +0 -7
  97. package/dist/adapters/prisma/generated/models/EmailChannel.d.ts +946 -0
  98. package/dist/adapters/prisma/generated/models/EmailChannel.js +2 -0
  99. package/dist/adapters/prisma/generated/models/EmailChannel.js.map +1 -0
  100. package/dist/adapters/prisma/generated/models/FocusedPage.d.ts +974 -0
  101. package/dist/adapters/prisma/generated/models/FocusedPage.js +2 -0
  102. package/dist/adapters/prisma/generated/models/FocusedPage.js.map +1 -0
  103. package/dist/adapters/prisma/generated/models/IssuedToken.d.ts +47 -41
  104. package/dist/adapters/prisma/generated/models/OAuthClient.d.ts +32 -8
  105. package/dist/adapters/prisma/generated/models/Party.d.ts +90 -3
  106. package/dist/adapters/prisma/generated/models/WakeSent.d.ts +975 -0
  107. package/dist/adapters/prisma/generated/models/WakeSent.js +2 -0
  108. package/dist/adapters/prisma/generated/models/WakeSent.js.map +1 -0
  109. package/dist/adapters/prisma/generated/models/WebPushSubscription.d.ts +1115 -0
  110. package/dist/adapters/prisma/generated/models/WebPushSubscription.js +2 -0
  111. package/dist/adapters/prisma/generated/models/WebPushSubscription.js.map +1 -0
  112. package/dist/adapters/prisma/generated/models.d.ts +9 -0
  113. package/dist/adapters/prisma/oauth-stores.js +3 -2
  114. package/dist/adapters/prisma/oauth-stores.js.map +1 -1
  115. package/dist/adapters/prisma/party-store.js +35 -6
  116. package/dist/adapters/prisma/party-store.js.map +1 -1
  117. package/dist/adapters/prisma/person-crews.js +9 -0
  118. package/dist/adapters/prisma/person-crews.js.map +1 -1
  119. package/dist/adapters/prisma/push-store.d.ts +3 -0
  120. package/dist/adapters/prisma/push-store.js +102 -0
  121. package/dist/adapters/prisma/push-store.js.map +1 -0
  122. package/dist/adapters/prisma/waiter-locks.d.ts +4 -0
  123. package/dist/adapters/prisma/waiter-locks.js +72 -0
  124. package/dist/adapters/prisma/waiter-locks.js.map +1 -0
  125. package/dist/adapters/prisma/wakes-sent.d.ts +4 -0
  126. package/dist/adapters/prisma/wakes-sent.js +10 -0
  127. package/dist/adapters/prisma/wakes-sent.js.map +1 -0
  128. package/dist/adapters/prisma/web-push-subscriptions.d.ts +3 -0
  129. package/dist/adapters/prisma/web-push-subscriptions.js +33 -0
  130. package/dist/adapters/prisma/web-push-subscriptions.js.map +1 -0
  131. package/dist/adapters/trpc/router.d.ts +397 -9
  132. package/dist/adapters/trpc/router.js +247 -16
  133. package/dist/adapters/trpc/router.js.map +1 -1
  134. package/dist/adapters/web-push/web-push.d.ts +9 -0
  135. package/dist/adapters/web-push/web-push.js +70 -0
  136. package/dist/adapters/web-push/web-push.js.map +1 -0
  137. package/dist/adapters/webhooks/allowed-lookup.d.ts +14 -0
  138. package/dist/adapters/webhooks/allowed-lookup.js +28 -0
  139. package/dist/adapters/webhooks/allowed-lookup.js.map +1 -0
  140. package/dist/adapters/webhooks/host-resolver.d.ts +3 -0
  141. package/dist/adapters/webhooks/host-resolver.js +13 -0
  142. package/dist/adapters/webhooks/host-resolver.js.map +1 -0
  143. package/dist/adapters/webhooks/webhook-poster.d.ts +6 -0
  144. package/dist/adapters/webhooks/webhook-poster.js +67 -0
  145. package/dist/adapters/webhooks/webhook-poster.js.map +1 -0
  146. package/dist/app.d.ts +12 -0
  147. package/dist/app.js +273 -14
  148. package/dist/app.js.map +1 -1
  149. package/dist/bin/aeolus-gateway.js +3 -0
  150. package/dist/bin/aeolus-gateway.js.map +1 -1
  151. package/dist/config.d.ts +14 -0
  152. package/dist/config.js +24 -0
  153. package/dist/config.js.map +1 -1
  154. package/dist/core/a2a-in/authenticate-a2a-client.d.ts +23 -0
  155. package/dist/core/a2a-in/authenticate-a2a-client.js +21 -0
  156. package/dist/core/a2a-in/authenticate-a2a-client.js.map +1 -0
  157. package/dist/core/a2a-in/deliver-pushes.d.ts +24 -0
  158. package/dist/core/a2a-in/deliver-pushes.js +48 -0
  159. package/dist/core/a2a-in/deliver-pushes.js.map +1 -0
  160. package/dist/core/a2a-in/find-reached-ship.d.ts +18 -0
  161. package/dist/core/a2a-in/find-reached-ship.js +20 -0
  162. package/dist/core/a2a-in/find-reached-ship.js.map +1 -0
  163. package/dist/core/a2a-in/follow-a2a-task.d.ts +25 -0
  164. package/dist/core/a2a-in/follow-a2a-task.js +23 -0
  165. package/dist/core/a2a-in/follow-a2a-task.js.map +1 -0
  166. package/dist/core/a2a-in/inbound-message.d.ts +30 -0
  167. package/dist/core/a2a-in/inbound-message.js +33 -0
  168. package/dist/core/a2a-in/inbound-message.js.map +1 -0
  169. package/dist/core/a2a-in/list-a2a-tasks.d.ts +18 -0
  170. package/dist/core/a2a-in/list-a2a-tasks.js +14 -0
  171. package/dist/core/a2a-in/list-a2a-tasks.js.map +1 -0
  172. package/dist/core/a2a-in/list-push-configs.d.ts +20 -0
  173. package/dist/core/a2a-in/list-push-configs.js +18 -0
  174. package/dist/core/a2a-in/list-push-configs.js.map +1 -0
  175. package/dist/core/a2a-in/list-reached-ships.d.ts +25 -0
  176. package/dist/core/a2a-in/list-reached-ships.js +22 -0
  177. package/dist/core/a2a-in/list-reached-ships.js.map +1 -0
  178. package/dist/core/a2a-in/notice-task-changes.d.ts +19 -0
  179. package/dist/core/a2a-in/notice-task-changes.js +17 -0
  180. package/dist/core/a2a-in/notice-task-changes.js.map +1 -0
  181. package/dist/core/a2a-in/ports.d.ts +124 -0
  182. package/dist/core/a2a-in/ports.js +2 -0
  183. package/dist/core/a2a-in/ports.js.map +1 -0
  184. package/dist/core/a2a-in/push-config-view.d.ts +8 -0
  185. package/dist/core/a2a-in/push-config-view.js +2 -0
  186. package/dist/core/a2a-in/push-config-view.js.map +1 -0
  187. package/dist/core/a2a-in/push-to-webhooks.d.ts +19 -0
  188. package/dist/core/a2a-in/push-to-webhooks.js +19 -0
  189. package/dist/core/a2a-in/push-to-webhooks.js.map +1 -0
  190. package/dist/core/a2a-in/read-a2a-task.d.ts +12 -0
  191. package/dist/core/a2a-in/read-a2a-task.js +11 -0
  192. package/dist/core/a2a-in/read-a2a-task.js.map +1 -0
  193. package/dist/core/a2a-in/read-push-config.d.ts +16 -0
  194. package/dist/core/a2a-in/read-push-config.js +14 -0
  195. package/dist/core/a2a-in/read-push-config.js.map +1 -0
  196. package/dist/core/a2a-in/remove-push-config.d.ts +15 -0
  197. package/dist/core/a2a-in/remove-push-config.js +13 -0
  198. package/dist/core/a2a-in/remove-push-config.js.map +1 -0
  199. package/dist/core/a2a-in/send-a2a-message.d.ts +34 -0
  200. package/dist/core/a2a-in/send-a2a-message.js +106 -0
  201. package/dist/core/a2a-in/send-a2a-message.js.map +1 -0
  202. package/dist/core/a2a-in/set-push-config.d.ts +30 -0
  203. package/dist/core/a2a-in/set-push-config.js +27 -0
  204. package/dist/core/a2a-in/set-push-config.js.map +1 -0
  205. package/dist/core/a2a-in/subscribe-to-a2a-task.d.ts +18 -0
  206. package/dist/core/a2a-in/subscribe-to-a2a-task.js +17 -0
  207. package/dist/core/a2a-in/subscribe-to-a2a-task.js.map +1 -0
  208. package/dist/core/a2a-in/task-view.d.ts +51 -0
  209. package/dist/core/a2a-in/task-view.js +49 -0
  210. package/dist/core/a2a-in/task-view.js.map +1 -0
  211. package/dist/core/a2a-in/webhook-address.d.ts +7 -0
  212. package/dist/core/a2a-in/webhook-address.js +17 -0
  213. package/dist/core/a2a-in/webhook-address.js.map +1 -0
  214. package/dist/core/a2a-in/webhook.d.ts +6 -0
  215. package/dist/core/a2a-in/webhook.js +80 -0
  216. package/dist/core/a2a-in/webhook.js.map +1 -0
  217. package/dist/core/a2a-out/agent-endpoint.d.ts +10 -0
  218. package/dist/core/a2a-out/agent-endpoint.js +10 -0
  219. package/dist/core/a2a-out/agent-endpoint.js.map +1 -0
  220. package/dist/core/a2a-out/agent-event.d.ts +41 -0
  221. package/dist/core/a2a-out/agent-event.js +64 -0
  222. package/dist/core/a2a-out/agent-event.js.map +1 -0
  223. package/dist/core/a2a-out/agent-message.d.ts +36 -0
  224. package/dist/core/a2a-out/agent-message.js +36 -0
  225. package/dist/core/a2a-out/agent-message.js.map +1 -0
  226. package/dist/core/a2a-out/agent-statement.d.ts +10 -0
  227. package/dist/core/a2a-out/agent-statement.js +45 -0
  228. package/dist/core/a2a-out/agent-statement.js.map +1 -0
  229. package/dist/core/a2a-out/follow-agent-task.d.ts +40 -0
  230. package/dist/core/a2a-out/follow-agent-task.js +125 -0
  231. package/dist/core/a2a-out/follow-agent-task.js.map +1 -0
  232. package/dist/core/a2a-out/hand-a2a-message.d.ts +36 -0
  233. package/dist/core/a2a-out/hand-a2a-message.js +132 -0
  234. package/dist/core/a2a-out/hand-a2a-message.js.map +1 -0
  235. package/dist/core/a2a-out/mark-a2a-agent.d.ts +24 -0
  236. package/dist/core/a2a-out/mark-a2a-agent.js +24 -0
  237. package/dist/core/a2a-out/mark-a2a-agent.js.map +1 -0
  238. package/dist/core/a2a-out/ports.d.ts +200 -0
  239. package/dist/core/a2a-out/ports.js +2 -0
  240. package/dist/core/a2a-out/ports.js.map +1 -0
  241. package/dist/core/a2a-out/read-agent-statement.d.ts +13 -0
  242. package/dist/core/a2a-out/read-agent-statement.js +13 -0
  243. package/dist/core/a2a-out/read-agent-statement.js.map +1 -0
  244. package/dist/core/a2a-out/run-a2a-agent.d.ts +26 -0
  245. package/dist/core/a2a-out/run-a2a-agent.js +46 -0
  246. package/dist/core/a2a-out/run-a2a-agent.js.map +1 -0
  247. package/dist/core/a2a-out/state-a2a-agent.d.ts +26 -0
  248. package/dist/core/a2a-out/state-a2a-agent.js +31 -0
  249. package/dist/core/a2a-out/state-a2a-agent.js.map +1 -0
  250. package/dist/core/actors/authenticate-actor.d.ts +11 -5
  251. package/dist/core/actors/authenticate-actor.js +7 -3
  252. package/dist/core/actors/authenticate-actor.js.map +1 -1
  253. package/dist/core/actors/credential-of.d.ts +3 -2
  254. package/dist/core/actors/credential-of.js +4 -3
  255. package/dist/core/actors/credential-of.js.map +1 -1
  256. package/dist/core/mcp-in/call-tool.js +2 -0
  257. package/dist/core/mcp-in/call-tool.js.map +1 -1
  258. package/dist/core/mcp-in/client-call.d.ts +35 -4
  259. package/dist/core/mcp-in/client-call.js +57 -10
  260. package/dist/core/mcp-in/client-call.js.map +1 -1
  261. package/dist/core/mcp-in/collect-replies.d.ts +4 -3
  262. package/dist/core/mcp-in/collect-replies.js +4 -0
  263. package/dist/core/mcp-in/collect-replies.js.map +1 -1
  264. package/dist/core/mcp-in/ports.d.ts +52 -3
  265. package/dist/core/mcp-out/hand-call.d.ts +5 -1
  266. package/dist/core/mcp-out/hand-call.js +9 -1
  267. package/dist/core/mcp-out/hand-call.js.map +1 -1
  268. package/dist/core/mcp-out/run-party.d.ts +29 -7
  269. package/dist/core/mcp-out/run-party.js +14 -6
  270. package/dist/core/mcp-out/run-party.js.map +1 -1
  271. package/dist/core/mcp-out/state-party.d.ts +4 -2
  272. package/dist/core/mcp-out/state-party.js +10 -3
  273. package/dist/core/mcp-out/state-party.js.map +1 -1
  274. package/dist/core/mcp-out/statement.d.ts +2 -1
  275. package/dist/core/mcp-out/statement.js.map +1 -1
  276. package/dist/core/oauth/exchange-id-jag.d.ts +28 -0
  277. package/dist/core/oauth/exchange-id-jag.js +66 -0
  278. package/dist/core/oauth/exchange-id-jag.js.map +1 -0
  279. package/dist/core/oauth/exchange-token.d.ts +25 -11
  280. package/dist/core/oauth/exchange-token.js +50 -3
  281. package/dist/core/oauth/exchange-token.js.map +1 -1
  282. package/dist/core/oauth/ports.d.ts +17 -6
  283. package/dist/core/oauth/register-client.js +1 -1
  284. package/dist/core/oauth/register-client.js.map +1 -1
  285. package/dist/core/operator/authenticate-operator.d.ts +5 -9
  286. package/dist/core/operator/authenticate-operator.js +4 -4
  287. package/dist/core/operator/authenticate-operator.js.map +1 -1
  288. package/dist/core/operator/ports.d.ts +15 -9
  289. package/dist/core/parties/add-a2a-agent.d.ts +34 -0
  290. package/dist/core/parties/add-a2a-agent.js +45 -0
  291. package/dist/core/parties/add-a2a-agent.js.map +1 -0
  292. package/dist/core/parties/add-a2a-client.d.ts +30 -0
  293. package/dist/core/parties/add-a2a-client.js +47 -0
  294. package/dist/core/parties/add-a2a-client.js.map +1 -0
  295. package/dist/core/parties/add-client-party.d.ts +38 -0
  296. package/dist/core/parties/add-client-party.js +40 -0
  297. package/dist/core/parties/add-client-party.js.map +1 -0
  298. package/dist/core/parties/approve-party.d.ts +43 -2
  299. package/dist/core/parties/approve-party.js +9 -5
  300. package/dist/core/parties/approve-party.js.map +1 -1
  301. package/dist/core/parties/approver.d.ts +7 -0
  302. package/dist/core/parties/approver.js +9 -0
  303. package/dist/core/parties/approver.js.map +1 -0
  304. package/dist/core/parties/check-server.d.ts +2 -1
  305. package/dist/core/parties/check-server.js +1 -1
  306. package/dist/core/parties/check-server.js.map +1 -1
  307. package/dist/core/parties/crew-party.d.ts +18 -4
  308. package/dist/core/parties/crew-party.js +36 -4
  309. package/dist/core/parties/crew-party.js.map +1 -1
  310. package/dist/core/parties/party.d.ts +23 -1
  311. package/dist/core/parties/party.js +17 -4
  312. package/dist/core/parties/party.js.map +1 -1
  313. package/dist/core/parties/ports.d.ts +16 -0
  314. package/dist/core/parties/read-party-tools.d.ts +4 -3
  315. package/dist/core/parties/read-party-tools.js +4 -2
  316. package/dist/core/parties/read-party-tools.js.map +1 -1
  317. package/dist/core/parties/shown-party.d.ts +8 -0
  318. package/dist/core/parties/shown-party.js +4 -0
  319. package/dist/core/parties/shown-party.js.map +1 -1
  320. package/dist/core/parties/switch-tool.d.ts +29 -0
  321. package/dist/core/parties/switch-tool.js +33 -0
  322. package/dist/core/parties/switch-tool.js.map +1 -0
  323. package/dist/core/parties/tool-switches.d.ts +27 -0
  324. package/dist/core/parties/tool-switches.js +17 -0
  325. package/dist/core/parties/tool-switches.js.map +1 -0
  326. package/dist/core/people/answer-delivery.d.ts +2 -1
  327. package/dist/core/people/answer-delivery.js.map +1 -1
  328. package/dist/core/people/done-delivery.d.ts +2 -1
  329. package/dist/core/people/done-delivery.js.map +1 -1
  330. package/dist/core/people/focus-page.d.ts +18 -0
  331. package/dist/core/people/focus-page.js +20 -0
  332. package/dist/core/people/focus-page.js.map +1 -0
  333. package/dist/core/people/open-delivery.d.ts +3 -1
  334. package/dist/core/people/open-delivery.js +2 -0
  335. package/dist/core/people/open-delivery.js.map +1 -1
  336. package/dist/core/people/opened-of.d.ts +7 -2
  337. package/dist/core/people/opened-of.js +6 -1
  338. package/dist/core/people/opened-of.js.map +1 -1
  339. package/dist/core/people/person-crew.d.ts +2 -0
  340. package/dist/core/people/person-crew.js +6 -2
  341. package/dist/core/people/person-crew.js.map +1 -1
  342. package/dist/core/people/ports.d.ts +151 -3
  343. package/dist/core/people/read-wake-channels.d.ts +42 -0
  344. package/dist/core/people/read-wake-channels.js +21 -0
  345. package/dist/core/people/read-wake-channels.js.map +1 -0
  346. package/dist/core/people/turn-email-channel.d.ts +21 -0
  347. package/dist/core/people/turn-email-channel.js +22 -0
  348. package/dist/core/people/turn-email-channel.js.map +1 -0
  349. package/dist/core/people/turn-off-web-push.d.ts +13 -0
  350. package/dist/core/people/turn-off-web-push.js +14 -0
  351. package/dist/core/people/turn-off-web-push.js.map +1 -0
  352. package/dist/core/people/turn-on-web-push.d.ts +35 -0
  353. package/dist/core/people/turn-on-web-push.js +49 -0
  354. package/dist/core/people/turn-on-web-push.js.map +1 -0
  355. package/dist/core/people/wait-on-person-ship.d.ts +44 -0
  356. package/dist/core/people/wait-on-person-ship.js +92 -0
  357. package/dist/core/people/wait-on-person-ship.js.map +1 -0
  358. package/dist/core/people/wake-person.d.ts +40 -0
  359. package/dist/core/people/wake-person.js +74 -0
  360. package/dist/core/people/wake-person.js.map +1 -0
  361. package/dist/core/people/web-push-channel.d.ts +17 -0
  362. package/dist/core/people/web-push-channel.js +35 -0
  363. package/dist/core/people/web-push-channel.js.map +1 -0
  364. package/dist/core/requests/decide-request.d.ts +0 -2
  365. package/dist/core/requests/decide-request.js +3 -6
  366. package/dist/core/requests/decide-request.js.map +1 -1
  367. package/dist/core/requests/list-to-decide.js +1 -1
  368. package/dist/core/requests/list-to-decide.js.map +1 -1
  369. package/dist/core/shared/errors.d.ts +1 -1
  370. package/dist/core/shared/errors.js.map +1 -1
  371. package/dist/core/sign-in/ports.d.ts +13 -0
  372. package/dist/core/vault/credential.d.ts +6 -2
  373. package/dist/party-workers.d.ts +9 -1
  374. package/dist/party-workers.js +37 -5
  375. package/dist/party-workers.js.map +1 -1
  376. package/dist/person-waiters.d.ts +30 -0
  377. package/dist/person-waiters.js +89 -0
  378. package/dist/person-waiters.js.map +1 -0
  379. package/package.json +7 -3
  380. package/src/adapters/prisma/migrations/20261023120000_party_bearer_hash/migration.sql +4 -0
  381. package/src/adapters/prisma/migrations/20261023130000_client_credentials/migration.sql +5 -0
  382. package/src/adapters/prisma/migrations/20261023200000_a2a_tasks/migration.sql +20 -0
  383. package/src/adapters/prisma/migrations/20261023210000_tool_switches/migration.sql +2 -0
  384. package/src/adapters/prisma/migrations/20261024090000_a2a_pushes/migration.sql +37 -0
  385. package/src/adapters/prisma/migrations/20261024100000_party_is_repeatable/migration.sql +2 -0
  386. package/src/adapters/prisma/migrations/20261024110000_a2a_agent_calls/migration.sql +29 -0
  387. package/src/adapters/prisma/migrations/20261024115000_wakes/migration.sql +17 -0
  388. package/src/adapters/prisma/migrations/20261024120000_focused_pages/migration.sql +11 -0
  389. package/src/adapters/prisma/migrations/20261024130000_web_push_subscriptions/migration.sql +14 -0
  390. package/src/adapters/prisma/schema.prisma +159 -5
  391. package/web/.next/BUILD_ID +1 -1
  392. package/web/.next/app-path-routes-manifest.json +14 -11
  393. package/web/.next/build-manifest.json +39 -15
  394. package/web/.next/diagnostics/route-bundle-stats.json +107 -58
  395. package/web/.next/fallback-build-manifest.json +3 -3
  396. package/web/.next/next-minimal-server.js.nft.json +1 -1
  397. package/web/.next/next-server.js.nft.json +1 -1
  398. package/web/.next/prerender-manifest.json +3 -3
  399. package/web/.next/routes-manifest.json +18 -0
  400. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/app-paths-manifest.json +3 -0
  401. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/build-manifest.json +23 -0
  402. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/next-font-manifest.json +11 -0
  403. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +55 -0
  404. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +25 -0
  405. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -0
  406. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +3 -0
  407. package/web/.next/server/app/(console)/outside-parties/[name]/page/app-paths-manifest.json +3 -0
  408. package/web/.next/server/app/{outside-parties/[name]/retire → (console)/outside-parties/[name]}/page/build-manifest.json +1 -1
  409. package/web/.next/server/app/{outside-parties/[name]/retire → (console)/outside-parties/[name]}/page/next-font-manifest.json +1 -1
  410. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +35 -0
  411. package/web/.next/server/app/(console)/outside-parties/[name]/page.js +24 -0
  412. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -0
  413. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +3 -0
  414. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/app-paths-manifest.json +3 -0
  415. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/build-manifest.json +23 -0
  416. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/next-font-manifest.json +11 -0
  417. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +55 -0
  418. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +25 -0
  419. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -0
  420. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +3 -0
  421. package/web/.next/server/app/(console)/outside-parties/add/page/app-paths-manifest.json +3 -0
  422. package/web/.next/server/app/{outside-parties/[name]/change → (console)/outside-parties/add}/page/build-manifest.json +1 -1
  423. package/web/.next/server/app/{outside-parties/[name]/change → (console)/outside-parties/add}/page/next-font-manifest.json +1 -1
  424. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +55 -0
  425. package/web/.next/server/app/(console)/outside-parties/add/page.js +25 -0
  426. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -0
  427. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +3 -0
  428. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/app-paths-manifest.json +3 -0
  429. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/build-manifest.json +23 -0
  430. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/next-font-manifest.json +11 -0
  431. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +25 -0
  432. package/web/.next/server/app/{outside-parties/add → (console)/outside-parties/add-a2a-agent}/page.js +14 -13
  433. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -0
  434. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +3 -0
  435. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/app-paths-manifest.json +3 -0
  436. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/build-manifest.json +23 -0
  437. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/next-font-manifest.json +11 -0
  438. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +25 -0
  439. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +21 -0
  440. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -0
  441. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +3 -0
  442. package/web/.next/server/app/(console)/outside-parties/page/app-paths-manifest.json +3 -0
  443. package/web/.next/server/app/{outside-parties/[name] → (console)/outside-parties}/page/build-manifest.json +1 -1
  444. package/web/.next/server/app/{outside-parties/add → (console)/outside-parties}/page/next-font-manifest.json +1 -1
  445. package/web/.next/server/app/{outside-parties → (console)/outside-parties}/page/server-reference-manifest.json +6 -6
  446. package/web/.next/server/app/{outside-parties → (console)/outside-parties}/page.js +13 -12
  447. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -0
  448. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +3 -0
  449. package/web/.next/server/app/(console)/overview/changes/route/app-paths-manifest.json +3 -0
  450. package/web/.next/server/app/(console)/overview/changes/route.js +7 -0
  451. package/web/.next/server/app/(console)/overview/changes/route.js.nft.json +1 -0
  452. package/web/.next/server/app/(console)/overview/changes/route_client-reference-manifest.js +3 -0
  453. package/web/.next/server/app/(console)/overview/focus/route/app-paths-manifest.json +3 -0
  454. package/web/.next/server/app/(console)/overview/focus/route/build-manifest.json +12 -0
  455. package/web/.next/server/app/(console)/overview/focus/route/server-reference-manifest.json +4 -0
  456. package/web/.next/server/app/(console)/overview/focus/route.js +7 -0
  457. package/web/.next/server/app/(console)/overview/focus/route.js.nft.json +1 -0
  458. package/web/.next/server/app/(console)/overview/focus/route_client-reference-manifest.js +3 -0
  459. package/web/.next/server/app/(console)/overview/page/app-paths-manifest.json +3 -0
  460. package/web/.next/server/app/{sign-in/failed → (console)/overview}/page/build-manifest.json +1 -1
  461. package/web/.next/server/app/{parties → (console)/overview}/page/next-font-manifest.json +1 -1
  462. package/web/.next/server/app/(console)/overview/page/server-reference-manifest.json +75 -0
  463. package/web/.next/server/app/{overview/requests/[requestId] → (console)/overview}/page.js +15 -14
  464. package/web/.next/server/app/(console)/overview/page.js.nft.json +1 -0
  465. package/web/.next/server/app/(console)/overview/page_client-reference-manifest.js +3 -0
  466. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/app-paths-manifest.json +3 -0
  467. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/build-manifest.json +23 -0
  468. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/next-font-manifest.json +11 -0
  469. package/web/.next/server/app/{overview → (console)/overview}/requests/[requestId]/page/server-reference-manifest.json +6 -6
  470. package/web/.next/server/app/{overview → (console)/overview/requests/[requestId]}/page.js +15 -14
  471. package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js.map +5 -0
  472. package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js.nft.json +1 -0
  473. package/web/.next/server/app/(console)/overview/requests/[requestId]/page_client-reference-manifest.js +3 -0
  474. package/web/.next/server/app/(console)/parties/page/app-paths-manifest.json +3 -0
  475. package/web/.next/server/app/{outside-parties → (console)/parties}/page/build-manifest.json +1 -1
  476. package/web/.next/server/app/{outside-parties → (console)/parties}/page/next-font-manifest.json +1 -1
  477. package/web/.next/server/app/(console)/parties/page/react-loadable-manifest.json +1 -0
  478. package/web/.next/server/app/{parties → (console)/parties}/page/server-reference-manifest.json +18 -18
  479. package/web/.next/server/app/{parties → (console)/parties}/page.js +12 -11
  480. package/web/.next/server/app/(console)/parties/page.js.map +5 -0
  481. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -0
  482. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +3 -0
  483. package/web/.next/server/app/(console)/sign-in/failed/page/app-paths-manifest.json +3 -0
  484. package/web/.next/server/app/{outside-parties/add → (console)/sign-in/failed}/page/build-manifest.json +1 -1
  485. package/web/.next/server/app/{outside-parties/[name] → (console)/sign-in/failed}/page/next-font-manifest.json +1 -1
  486. package/web/.next/server/app/(console)/sign-in/failed/page/react-loadable-manifest.json +1 -0
  487. package/web/.next/server/app/{sign-in → (console)/sign-in}/failed/page/server-reference-manifest.json +3 -3
  488. package/web/.next/server/app/{sign-in → (console)/sign-in}/failed/page.js +13 -12
  489. package/web/.next/server/app/(console)/sign-in/failed/page.js.map +5 -0
  490. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -0
  491. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +3 -0
  492. package/web/.next/server/app/_global-error/page.js +3 -3
  493. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  494. package/web/.next/server/app/_global-error.html +1 -1
  495. package/web/.next/server/app/_global-error.rsc +1 -1
  496. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  497. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  498. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  499. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  500. package/web/.next/server/app/_not-found/page.js +7 -7
  501. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  502. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  503. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  504. package/web/.next/server/app/authorize/failed/page.js +11 -9
  505. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  506. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  507. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  508. package/web/.next/server/app/authorize/pick/page.js +12 -10
  509. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  510. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  511. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  512. package/web/.next/server/app/authorize/waiting/approval/page.js +11 -9
  513. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  514. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  515. package/web/.next/server/app-paths-manifest.json +14 -11
  516. package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_overview_focus_route_actions_10hgyjvv-6fus.js +3 -0
  517. package/web/.next/server/chunks/1mb5_next-internal_server_app_(console)_overview_changes_route_actions_0zbq7lqsf5nng.js +3 -0
  518. package/web/.next/server/chunks/[externals]__0fgpzedhhntg9._.js +3 -0
  519. package/web/.next/server/chunks/[externals]__0fgpzedhhntg9._.js.map +1 -0
  520. package/web/.next/server/chunks/{[root-of-the-server]__00bbah0fbuex2._.js → [root-of-the-server]__0ykc8bq_c06a1._.js} +22 -22
  521. package/web/.next/server/chunks/[root-of-the-server]__0ykc8bq_c06a1._.js.map +1 -0
  522. package/web/.next/server/chunks/_04is-uopj3op9._.js +3 -0
  523. package/web/.next/server/chunks/_04is-uopj3op9._.js.map +1 -0
  524. package/web/.next/server/chunks/_1-fw4-pwzazl4._.js +3 -0
  525. package/web/.next/server/chunks/_1-fw4-pwzazl4._.js.map +1 -0
  526. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +3 -0
  527. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -0
  528. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +3 -0
  529. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -0
  530. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +3 -0
  531. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -0
  532. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +3 -0
  533. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -0
  534. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +3 -0
  535. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -0
  536. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js +3 -0
  537. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js.map +1 -0
  538. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1qpk1uw97id0a._.js → [root-of-the-server]__0-og0bl8lr2xq._.js} +2 -2
  539. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-og0bl8lr2xq._.js.map +1 -0
  540. package/web/.next/server/chunks/ssr/[root-of-the-server]__07udzu2zwg_74._.js +3 -0
  541. package/web/.next/server/chunks/ssr/[root-of-the-server]__07udzu2zwg_74._.js.map +1 -0
  542. package/web/.next/server/chunks/ssr/{[root-of-the-server]__197il4swfpq1a._.js → [root-of-the-server]__0a68v9ynev4q6._.js} +2 -2
  543. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a68v9ynev4q6._.js.map +1 -0
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__0grpi5wnl9ppf._.js +10 -0
  545. package/web/.next/server/chunks/ssr/[root-of-the-server]__0grpi5wnl9ppf._.js.map +1 -0
  546. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +4 -0
  547. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -0
  548. package/web/.next/server/chunks/ssr/[root-of-the-server]__0l2_dk9d4o01n._.js +3 -0
  549. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1vkw2kvzx6fpw._.js.map → [root-of-the-server]__0l2_dk9d4o01n._.js.map} +1 -1
  550. package/web/.next/server/chunks/ssr/[root-of-the-server]__0m57jyae0dn_7._.js +3 -0
  551. package/web/.next/server/chunks/ssr/[root-of-the-server]__0m57jyae0dn_7._.js.map +1 -0
  552. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n2us07jk-78w._.js +4 -0
  553. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n2us07jk-78w._.js.map +1 -0
  554. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rr5u24i9tjyc._.js +3 -0
  555. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rr5u24i9tjyc._.js.map +1 -0
  556. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js +1 -1
  557. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js.map +1 -1
  558. package/web/.next/server/chunks/ssr/[root-of-the-server]__11w36a4le04vy._.js +3 -0
  559. package/web/.next/server/chunks/ssr/[root-of-the-server]__11w36a4le04vy._.js.map +1 -0
  560. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0ntyo9p3x-w6a._.js → [root-of-the-server]__179upda-y7uap._.js} +2 -2
  561. package/web/.next/server/chunks/ssr/[root-of-the-server]__179upda-y7uap._.js.map +1 -0
  562. package/web/.next/server/chunks/ssr/[root-of-the-server]__1dtyycvqa6uht._.js +4 -0
  563. package/web/.next/server/chunks/ssr/[root-of-the-server]__1dtyycvqa6uht._.js.map +1 -0
  564. package/web/.next/server/chunks/ssr/[root-of-the-server]__1gb-3dttuacyz._.js +3 -0
  565. package/web/.next/server/chunks/ssr/[root-of-the-server]__1gb-3dttuacyz._.js.map +1 -0
  566. package/web/.next/server/chunks/ssr/[root-of-the-server]__1k25lo5ka4mgd._.js +3 -0
  567. package/web/.next/server/chunks/ssr/[root-of-the-server]__1k25lo5ka4mgd._.js.map +1 -0
  568. package/web/.next/server/chunks/ssr/[root-of-the-server]__1m9atpy0vkbmj._.js +3 -0
  569. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0dywrno7zb0r_._.js.map → [root-of-the-server]__1m9atpy0vkbmj._.js.map} +1 -1
  570. package/web/.next/server/chunks/ssr/[root-of-the-server]__1n_sq_58wdluh._.js +3 -0
  571. package/web/.next/server/chunks/ssr/[root-of-the-server]__1n_sq_58wdluh._.js.map +1 -0
  572. package/web/.next/server/chunks/ssr/[root-of-the-server]__1w5swo8gmjyx6._.js +3 -0
  573. package/web/.next/server/chunks/ssr/{[root-of-the-server]__216xd8otb96uo._.js.map → [root-of-the-server]__1w5swo8gmjyx6._.js.map} +1 -1
  574. package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js +1 -1
  575. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yjb00o7x58xv._.js +3 -0
  576. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yjb00o7x58xv._.js.map +1 -0
  577. package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js +3 -0
  578. package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js.map +1 -0
  579. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  580. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  581. package/web/.next/server/chunks/ssr/_0bhvvyz0q_0ja._.js +4 -0
  582. package/web/.next/server/chunks/ssr/_0bhvvyz0q_0ja._.js.map +1 -0
  583. package/web/.next/server/chunks/ssr/{_13qzwpag13tvy._.js → _0pyd1_y7w8ngp._.js} +2 -2
  584. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -0
  585. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  586. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  587. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js +3 -0
  588. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js.map +1 -0
  589. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +4 -0
  590. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js.map +1 -0
  591. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js +3 -0
  592. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js.map +1 -0
  593. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  594. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  595. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  596. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  597. package/web/.next/server/chunks/ssr/node_modules_0cyjln1rocvt5._.js +3 -0
  598. package/web/.next/server/chunks/ssr/node_modules_0cyjln1rocvt5._.js.map +1 -0
  599. package/web/.next/server/chunks/ssr/node_modules_1ins1z8o_qrka._.js +3 -0
  600. package/web/.next/server/chunks/ssr/node_modules_1ins1z8o_qrka._.js.map +1 -0
  601. package/web/.next/server/chunks/ssr/node_modules_1wdusod3fyk3s._.js +3 -0
  602. package/web/.next/server/chunks/ssr/node_modules_1wdusod3fyk3s._.js.map +1 -0
  603. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1id6g-6m2hh0l._.js +3 -0
  604. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1id6g-6m2hh0l._.js.map +1 -0
  605. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1jvz31plyg2f-._.js +3 -0
  606. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1jvz31plyg2f-._.js.map +1 -0
  607. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +1 -1
  608. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1datokkgym0.js +3 -0
  609. package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1datokkgym0.js.map +1 -0
  610. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06etuymo2azrg.js +3 -0
  611. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06etuymo2azrg.js.map +1 -0
  612. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcy-jnk5o43.js +3 -0
  613. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcy-jnk5o43.js.map +1 -0
  614. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0bnypafopxsfl.js +3 -0
  615. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0bnypafopxsfl.js.map +1 -0
  616. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e8cobt3o_8ur.js +3 -0
  617. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e8cobt3o_8ur.js.map +1 -0
  618. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0gzed-epom5si.js +3 -0
  619. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0gzed-epom5si.js.map +1 -0
  620. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0k0-b63ptvbl5.js +3 -0
  621. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0k0-b63ptvbl5.js.map +1 -0
  622. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pik0g65vv-wi.js +3 -0
  623. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pik0g65vv-wi.js.map +1 -0
  624. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xccr6d8xcb1p.js +3 -0
  625. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xccr6d8xcb1p.js.map +1 -0
  626. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13agc620bnznv.js +3 -0
  627. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13agc620bnznv.js.map +1 -0
  628. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_184-gj4lz41i-.js +3 -0
  629. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_184-gj4lz41i-.js.map +1 -0
  630. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bt2ioufqh6fl.js +3 -0
  631. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bt2ioufqh6fl.js.map +1 -0
  632. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1d613l6zsee_e.js +3 -0
  633. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1d613l6zsee_e.js.map +1 -0
  634. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0-ipfysjmro.js +3 -0
  635. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0-ipfysjmro.js.map +1 -0
  636. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1x-0vplt44lez.js +3 -0
  637. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1x-0vplt44lez.js.map +1 -0
  638. package/web/.next/server/chunks/ssr/web_0-ufi2al5ubig._.js +3 -0
  639. package/web/.next/server/chunks/ssr/web_0-ufi2al5ubig._.js.map +1 -0
  640. package/web/.next/server/chunks/ssr/web_0_jk9eione6lx._.js +3 -0
  641. package/web/.next/server/chunks/ssr/web_0_jk9eione6lx._.js.map +1 -0
  642. package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js.map +1 -1
  643. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +3 -0
  644. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -0
  645. package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js +3 -0
  646. package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js.map +1 -0
  647. package/web/.next/server/chunks/ssr/{web_1nqu01kfi0u66._.js → web_1loiet18xbddu._.js} +2 -2
  648. package/web/.next/server/chunks/ssr/web_1loiet18xbddu._.js.map +1 -0
  649. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js +3 -0
  650. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js.map +1 -0
  651. package/web/.next/server/chunks/ssr/web_app_(console)_layout_tsx_1t-5g79yb9xtl._.js +3 -0
  652. package/web/.next/server/chunks/ssr/web_app_(console)_layout_tsx_1t-5g79yb9xtl._.js.map +1 -0
  653. package/web/.next/server/chunks/ssr/{web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js → web_app_(console)_outside-parties_[name]_change_page_tsx_00bpg0s2eypj9._.js} +2 -2
  654. package/web/.next/server/chunks/ssr/web_app_(console)_outside-parties_[name]_change_page_tsx_00bpg0s2eypj9._.js.map +1 -0
  655. package/web/.next/server/chunks/ssr/{web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js → web_app_(console)_outside-parties_[name]_retire_page_tsx_1zxy74pr5_2kn._.js} +2 -2
  656. package/web/.next/server/chunks/ssr/web_app_(console)_outside-parties_[name]_retire_page_tsx_1zxy74pr5_2kn._.js.map +1 -0
  657. package/web/.next/server/chunks/ssr/{web_app_overview_error_tsx_17_cklg40kzxe._.js → web_app_(console)_overview_error_tsx_087e7ba8loavc._.js} +2 -2
  658. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_087e7ba8loavc._.js.map +1 -0
  659. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_1nn1jz5nh77af._.js +3 -0
  660. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_1nn1jz5nh77af._.js.map +1 -0
  661. package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +3 -0
  662. package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js.map +1 -0
  663. package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js +3 -0
  664. package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js.map +1 -0
  665. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js +1 -1
  666. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js.map +1 -1
  667. package/web/.next/server/chunks/ssr/web_features_0ahlkugj7fu3n._.js +3 -0
  668. package/web/.next/server/chunks/ssr/web_features_0ahlkugj7fu3n._.js.map +1 -0
  669. package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js +1 -1
  670. package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js.map +1 -1
  671. package/web/.next/server/chunks/ssr/web_features_0i_kwiszuiqcp._.js +3 -0
  672. package/web/.next/server/chunks/ssr/web_features_0i_kwiszuiqcp._.js.map +1 -0
  673. package/web/.next/server/chunks/ssr/web_features_0xnlgtw8bfqaa._.js +3 -0
  674. package/web/.next/server/chunks/ssr/web_features_0xnlgtw8bfqaa._.js.map +1 -0
  675. package/web/.next/server/chunks/ssr/web_features_1--8ungjj--ht._.js +3 -0
  676. package/web/.next/server/chunks/ssr/web_features_1--8ungjj--ht._.js.map +1 -0
  677. package/web/.next/server/chunks/ssr/web_features_19v3mlx8c_h1-._.js +3 -0
  678. package/web/.next/server/chunks/ssr/web_features_19v3mlx8c_h1-._.js.map +1 -0
  679. package/web/.next/server/chunks/ssr/web_features_1_2m6l73qk7qw._.js +3 -0
  680. package/web/.next/server/chunks/ssr/web_features_1_2m6l73qk7qw._.js.map +1 -0
  681. package/web/.next/server/chunks/ssr/web_features_1qq_ruz59ldc9._.js +3 -0
  682. package/web/.next/server/chunks/ssr/web_features_1qq_ruz59ldc9._.js.map +1 -0
  683. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +3 -0
  684. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -0
  685. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +3 -0
  686. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -0
  687. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  688. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  689. package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js +3 -0
  690. package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js.map +1 -0
  691. package/web/.next/server/chunks/ssr/web_features_forms_1d1jyea2jni9o._.js +3 -0
  692. package/web/.next/server/chunks/ssr/web_features_forms_1d1jyea2jni9o._.js.map +1 -0
  693. package/web/.next/server/chunks/ssr/web_features_forms_form-state_ts_2142hiopykfk1._.js +3 -0
  694. package/web/.next/server/chunks/ssr/web_features_forms_form-state_ts_2142hiopykfk1._.js.map +1 -0
  695. package/web/.next/server/chunks/ssr/web_features_forms_ui_credential-fields_tsx_0l-w19zg-7x4b._.js +3 -0
  696. package/web/.next/server/chunks/ssr/web_features_forms_ui_credential-fields_tsx_0l-w19zg-7x4b._.js.map +1 -0
  697. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js +3 -0
  698. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +1 -0
  699. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +3 -0
  700. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -0
  701. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  702. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  703. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  704. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js.map +1 -1
  705. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_20x5u9bhxeehi._.js +3 -0
  706. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_20x5u9bhxeehi._.js.map +1 -0
  707. package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js +1 -1
  708. package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js.map +1 -1
  709. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +1 -1
  710. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +1 -1
  711. package/web/.next/server/chunks/ssr/web_features_overview_state_1wuk95dw2_whp._.js +3 -0
  712. package/web/.next/server/chunks/ssr/web_features_overview_state_1wuk95dw2_whp._.js.map +1 -0
  713. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +1 -1
  714. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +1 -1
  715. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  716. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js.map +1 -1
  717. package/web/.next/server/middleware-build-manifest.js +39 -15
  718. package/web/.next/server/next-font-manifest.js +1 -1
  719. package/web/.next/server/next-font-manifest.json +21 -13
  720. package/web/.next/server/pages/500.html +1 -1
  721. package/web/.next/server/preview-props.json +3 -3
  722. package/web/.next/server/server-reference-manifest.js +1 -1
  723. package/web/.next/server/server-reference-manifest.json +176 -74
  724. package/web/.next/static/chunks/00njqo86bx2kb.js +1 -0
  725. package/web/.next/static/chunks/047i2x2j--shk.css +3 -0
  726. package/web/.next/static/chunks/07j7jnfe13wx6.js +1 -0
  727. package/web/.next/static/chunks/0g4cpamshfwmn.js +1 -0
  728. package/web/.next/static/chunks/0j84uiid6fsim.js +1 -0
  729. package/web/.next/static/chunks/0p_kl57bddsiy.js +1 -0
  730. package/web/.next/static/chunks/1aa1d23q1vokr.js +1 -0
  731. package/web/.next/static/chunks/1ca21kggixrjz.js +1 -0
  732. package/web/.next/static/chunks/1jvae6c-4jwji.js +1 -0
  733. package/web/.next/static/chunks/23ud2e13dn8f4.js +1 -0
  734. package/web/.next/static/chunks/2_41h3v090ur9.js +1 -0
  735. package/web/.next/static/chunks/2x00o45pdbkok.js +1 -0
  736. package/web/.next/static/chunks/31vy122d9fvme.js +1 -0
  737. package/web/.next/static/chunks/3apnqdh48__yw.js +1 -0
  738. package/web/.next/static/chunks/3okm5g88ig1l3.js +1 -0
  739. package/web/.next/static/chunks/{0a1vw3r93lh06.js → 3v6tr952p9dba.js} +1 -1
  740. package/web/.next/trace +1 -1
  741. package/web/.next/trace-build +1 -1
  742. package/web/.next/types/routes.d.ts +8 -3
  743. package/web/.next/types/validator.ts +128 -50
  744. package/web/public/wake-worker.js +17 -0
  745. package/web/.next/server/app/outside-parties/[name]/change/page/app-paths-manifest.json +0 -3
  746. package/web/.next/server/app/outside-parties/[name]/change/page/server-reference-manifest.json +0 -35
  747. package/web/.next/server/app/outside-parties/[name]/change/page.js +0 -22
  748. package/web/.next/server/app/outside-parties/[name]/change/page.js.nft.json +0 -1
  749. package/web/.next/server/app/outside-parties/[name]/change/page_client-reference-manifest.js +0 -3
  750. package/web/.next/server/app/outside-parties/[name]/page/app-paths-manifest.json +0 -3
  751. package/web/.next/server/app/outside-parties/[name]/page/server-reference-manifest.json +0 -15
  752. package/web/.next/server/app/outside-parties/[name]/page.js +0 -20
  753. package/web/.next/server/app/outside-parties/[name]/page.js.nft.json +0 -1
  754. package/web/.next/server/app/outside-parties/[name]/page_client-reference-manifest.js +0 -3
  755. package/web/.next/server/app/outside-parties/[name]/retire/page/app-paths-manifest.json +0 -3
  756. package/web/.next/server/app/outside-parties/[name]/retire/page/server-reference-manifest.json +0 -35
  757. package/web/.next/server/app/outside-parties/[name]/retire/page.js +0 -21
  758. package/web/.next/server/app/outside-parties/[name]/retire/page.js.nft.json +0 -1
  759. package/web/.next/server/app/outside-parties/[name]/retire/page_client-reference-manifest.js +0 -3
  760. package/web/.next/server/app/outside-parties/add/page/app-paths-manifest.json +0 -3
  761. package/web/.next/server/app/outside-parties/add/page/server-reference-manifest.json +0 -35
  762. package/web/.next/server/app/outside-parties/add/page.js.nft.json +0 -1
  763. package/web/.next/server/app/outside-parties/add/page_client-reference-manifest.js +0 -3
  764. package/web/.next/server/app/outside-parties/page/app-paths-manifest.json +0 -3
  765. package/web/.next/server/app/outside-parties/page.js.nft.json +0 -1
  766. package/web/.next/server/app/outside-parties/page_client-reference-manifest.js +0 -3
  767. package/web/.next/server/app/overview/changes/route/app-paths-manifest.json +0 -3
  768. package/web/.next/server/app/overview/changes/route.js +0 -6
  769. package/web/.next/server/app/overview/changes/route.js.nft.json +0 -1
  770. package/web/.next/server/app/overview/changes/route_client-reference-manifest.js +0 -3
  771. package/web/.next/server/app/overview/page/app-paths-manifest.json +0 -3
  772. package/web/.next/server/app/overview/page/build-manifest.json +0 -23
  773. package/web/.next/server/app/overview/page/next-font-manifest.json +0 -11
  774. package/web/.next/server/app/overview/page/server-reference-manifest.json +0 -45
  775. package/web/.next/server/app/overview/page.js.nft.json +0 -1
  776. package/web/.next/server/app/overview/page_client-reference-manifest.js +0 -3
  777. package/web/.next/server/app/overview/requests/[requestId]/page/app-paths-manifest.json +0 -3
  778. package/web/.next/server/app/overview/requests/[requestId]/page/build-manifest.json +0 -23
  779. package/web/.next/server/app/overview/requests/[requestId]/page/next-font-manifest.json +0 -11
  780. package/web/.next/server/app/overview/requests/[requestId]/page.js.nft.json +0 -1
  781. package/web/.next/server/app/overview/requests/[requestId]/page_client-reference-manifest.js +0 -3
  782. package/web/.next/server/app/parties/page/app-paths-manifest.json +0 -3
  783. package/web/.next/server/app/parties/page/build-manifest.json +0 -23
  784. package/web/.next/server/app/parties/page.js.nft.json +0 -1
  785. package/web/.next/server/app/parties/page_client-reference-manifest.js +0 -3
  786. package/web/.next/server/app/sign-in/failed/page/app-paths-manifest.json +0 -3
  787. package/web/.next/server/app/sign-in/failed/page/next-font-manifest.json +0 -11
  788. package/web/.next/server/app/sign-in/failed/page.js.nft.json +0 -1
  789. package/web/.next/server/app/sign-in/failed/page_client-reference-manifest.js +0 -3
  790. package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js +0 -3
  791. package/web/.next/server/chunks/[root-of-the-server]__00bbah0fbuex2._.js.map +0 -1
  792. package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js +0 -3
  793. package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js.map +0 -1
  794. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js +0 -4
  795. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js.map +0 -1
  796. package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js +0 -3
  797. package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js +0 -3
  798. package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js.map +0 -1
  799. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ntyo9p3x-w6a._.js.map +0 -1
  800. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js +0 -3
  801. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js.map +0 -1
  802. package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js +0 -3
  803. package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js.map +0 -1
  804. package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js +0 -4
  805. package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js.map +0 -1
  806. package/web/.next/server/chunks/ssr/[root-of-the-server]__197il4swfpq1a._.js.map +0 -1
  807. package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js +0 -3
  808. package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js.map +0 -1
  809. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpk1uw97id0a._.js.map +0 -1
  810. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js +0 -3
  811. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js +0 -4
  812. package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js.map +0 -1
  813. package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js +0 -3
  814. package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js +0 -4
  815. package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js.map +0 -1
  816. package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js +0 -4
  817. package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js.map +0 -1
  818. package/web/.next/server/chunks/ssr/_13qzwpag13tvy._.js.map +0 -1
  819. package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js +0 -4
  820. package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js.map +0 -1
  821. package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js +0 -3
  822. package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js.map +0 -1
  823. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js +0 -3
  824. package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js.map +0 -1
  825. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js +0 -3
  826. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js.map +0 -1
  827. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js +0 -3
  828. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js.map +0 -1
  829. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js +0 -3
  830. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js.map +0 -1
  831. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js +0 -3
  832. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js.map +0 -1
  833. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js +0 -3
  834. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js.map +0 -1
  835. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js +0 -3
  836. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js.map +0 -1
  837. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js +0 -3
  838. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js.map +0 -1
  839. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js +0 -3
  840. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js.map +0 -1
  841. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js +0 -3
  842. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js.map +0 -1
  843. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js +0 -3
  844. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js.map +0 -1
  845. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js +0 -3
  846. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js.map +0 -1
  847. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js +0 -3
  848. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js.map +0 -1
  849. package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js +0 -3
  850. package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js.map +0 -1
  851. package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js +0 -3
  852. package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js.map +0 -1
  853. package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js +0 -3
  854. package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js.map +0 -1
  855. package/web/.next/server/chunks/ssr/web_1nqu01kfi0u66._.js.map +0 -1
  856. package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js +0 -3
  857. package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js.map +0 -1
  858. package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js +0 -10
  859. package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js.map +0 -1
  860. package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js +0 -3
  861. package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js.map +0 -1
  862. package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js +0 -3
  863. package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js.map +0 -1
  864. package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js +0 -3
  865. package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js.map +0 -1
  866. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js.map +0 -1
  867. package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js.map +0 -1
  868. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js +0 -3
  869. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js.map +0 -1
  870. package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_17_cklg40kzxe._.js.map +0 -1
  871. package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js +0 -3
  872. package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js.map +0 -1
  873. package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js +0 -3
  874. package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js.map +0 -1
  875. package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.js +0 -3
  876. package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.js.map +0 -1
  877. package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js +0 -3
  878. package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js.map +0 -1
  879. package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js +0 -3
  880. package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js.map +0 -1
  881. package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js +0 -3
  882. package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js.map +0 -1
  883. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js +0 -3
  884. package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js.map +0 -1
  885. package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js +0 -3
  886. package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js.map +0 -1
  887. package/web/.next/server/chunks/web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js +0 -3
  888. package/web/.next/static/chunks/0214opd1iq3ld.js +0 -1
  889. package/web/.next/static/chunks/0hobzrlhklo3e.js +0 -1
  890. package/web/.next/static/chunks/1ma7v1viiz247.js +0 -1
  891. package/web/.next/static/chunks/1sgi4p93eayf4.js +0 -1
  892. package/web/.next/static/chunks/22u81hd6kxqsx.js +0 -1
  893. package/web/.next/static/chunks/2qpupho1jn-iy.js +0 -1
  894. package/web/.next/static/chunks/2rap-vrom5-zw.css +0 -3
  895. package/web/.next/static/chunks/3jr0srcv_-pfa.js +0 -1
  896. package/web/.next/static/chunks/3l_1gcuoe8bfn.js +0 -1
  897. package/web/.next/static/chunks/3sv0_hjr9t4cp.js +0 -1
  898. /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/change/page/react-loadable-manifest.json +0 -0
  899. /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/change/page.js.map +0 -0
  900. /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/page/react-loadable-manifest.json +0 -0
  901. /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/page.js.map +0 -0
  902. /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/retire/page/react-loadable-manifest.json +0 -0
  903. /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/retire/page.js.map +0 -0
  904. /package/web/.next/server/app/{overview → (console)/outside-parties/add}/page/react-loadable-manifest.json +0 -0
  905. /package/web/.next/server/app/{overview → (console)/outside-parties/add}/page.js.map +0 -0
  906. /package/web/.next/server/app/{outside-parties/add → (console)/outside-parties/add-a2a-agent}/page/react-loadable-manifest.json +0 -0
  907. /package/web/.next/server/app/{outside-parties/add → (console)/outside-parties/add-a2a-agent}/page.js.map +0 -0
  908. /package/web/.next/server/app/{outside-parties → (console)/outside-parties/add-a2a-client}/page/react-loadable-manifest.json +0 -0
  909. /package/web/.next/server/app/{outside-parties → (console)/outside-parties/add-a2a-client}/page.js.map +0 -0
  910. /package/web/.next/server/app/{overview/requests/[requestId] → (console)/outside-parties}/page/react-loadable-manifest.json +0 -0
  911. /package/web/.next/server/app/{overview/requests/[requestId] → (console)/outside-parties}/page.js.map +0 -0
  912. /package/web/.next/server/app/{overview → (console)/overview}/changes/route/build-manifest.json +0 -0
  913. /package/web/.next/server/app/{overview → (console)/overview}/changes/route/server-reference-manifest.json +0 -0
  914. /package/web/.next/server/app/{overview → (console)/overview}/changes/route.js.map +0 -0
  915. /package/web/.next/server/app/{parties/page.js.map → (console)/overview/focus/route.js.map} +0 -0
  916. /package/web/.next/server/app/{parties → (console)/overview}/page/react-loadable-manifest.json +0 -0
  917. /package/web/.next/server/app/{sign-in/failed → (console)/overview}/page.js.map +0 -0
  918. /package/web/.next/server/app/{sign-in/failed → (console)/overview/requests/[requestId]}/page/react-loadable-manifest.json +0 -0
  919. /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
  920. /package/web/.next/server/chunks/{web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js.map → 1mb5_next-internal_server_app_(console)_overview_changes_route_actions_0zbq7lqsf5nng.js.map} +0 -0
  921. /package/web/.next/static/{MLIzjhz2u5r5gyyuciHvf → Az1CqrzgGHMZVR4nw9717}/_buildManifest.js +0 -0
  922. /package/web/.next/static/{MLIzjhz2u5r5gyyuciHvf → Az1CqrzgGHMZVR4nw9717}/_clientMiddlewareManifest.js +0 -0
  923. /package/web/.next/static/{MLIzjhz2u5r5gyyuciHvf → Az1CqrzgGHMZVR4nw9717}/_ssgManifest.js +0 -0
@@ -0,0 +1,49 @@
1
+ /**
2
+ * An A2A task as its client reads it (interop 3.4, decision 0060): the
3
+ * calls its client made in it, in the order sent, read by the one rule of
4
+ * the call store. Its state is its latest call's: completed by the answer,
5
+ * input required by a question, the state an `application/a2a+json` reply
6
+ * carries, failed at the deadline or when the fleet gave the delivery up,
7
+ * working once the ship took it, submitted before. Its history is the
8
+ * client's messages and the ship's replies in the order they came.
9
+ */
10
+ import { A2A_CONTENT_TYPE, QUESTION_CONTENT_TYPE, answerOf, isOfEssence, repliesBeforeFailure, stateOf, stateSince } from '../mcp-in/client-call.js';
11
+ const isA2a = (reply) => isOfEssence(reply.contentType, A2A_CONTENT_TYPE);
12
+ const isQuestion = (reply) => isOfEssence(reply.contentType, QUESTION_CONTENT_TYPE);
13
+ /**
14
+ * The status of one call. Failed wins once the call failed; else its answer
15
+ * completes it; else the latest A2A reply or question drives it; else it is
16
+ * working or submitted, as the call's own state says.
17
+ */
18
+ function statusOf(call, now) {
19
+ const own = stateOf(call, now);
20
+ const since = stateSince(call, now);
21
+ if (own.state === 'failed') {
22
+ return { state: 'failed', since };
23
+ }
24
+ const answer = answerOf(call, now);
25
+ if (answer !== undefined && !isA2a(answer)) {
26
+ return { state: 'completed', answer, since: answer.receivedAt };
27
+ }
28
+ const latest = repliesBeforeFailure(call, now)
29
+ .filter((reply) => isA2a(reply) || isQuestion(reply))
30
+ .at(-1);
31
+ if (latest !== undefined) {
32
+ return isA2a(latest) ? { state: 'carried', reply: latest, since: latest.receivedAt } : { state: 'inputRequired', question: latest, since: latest.receivedAt };
33
+ }
34
+ return own.state === 'submitted' ? { state: 'submitted', since } : { state: 'working', since };
35
+ }
36
+ /** Whether the task ended: completed or failed, so it takes no follow-up and a follow of it ends. */
37
+ export const isTerminal = (view) => view.status.state === 'completed' || view.status.state === 'failed';
38
+ /** What tells one view of a task from the next: its state, since when, and how much history it holds. */
39
+ export const markOf = (view) => `${view.status.state}:${String(view.status.since.getTime())}:${String(view.history.length)}`;
40
+ /** The task as its client reads it now; a task with no call kept yet is submitted since now. */
41
+ export function taskViewOf(task, now) {
42
+ const latest = task.calls.at(-1);
43
+ const history = task.calls
44
+ .flatMap((call) => [{ by: 'client', message: call.task?.message ?? '', at: call.sentAt }, ...call.replies.map((reply) => ({ by: 'ship', reply, at: reply.receivedAt }))])
45
+ .sort((left, right) => left.at.getTime() - right.at.getTime())
46
+ .map((entry) => (entry.by === 'client' ? entry : { by: 'ship', reply: entry.reply }));
47
+ return { taskId: task.taskId, contextId: task.contextId, status: latest === undefined ? { state: 'submitted', since: now } : statusOf(latest, now), history };
48
+ }
49
+ //# sourceMappingURL=task-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-view.js","sourceRoot":"","sources":["../../../src/core/a2a-in/task-view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { HostResolver } from './ports.js';
2
+ /**
3
+ * Where the webhook's host is reached now: an address as the host is itself,
4
+ * a name at every address it resolves to. It is public only when every one
5
+ * is; inside when any is not; unresolved when a name resolves to nothing.
6
+ */
7
+ export declare function reachOf(resolver: HostResolver, url: URL): Promise<'public' | 'inside' | 'unresolved'>;
@@ -0,0 +1,17 @@
1
+ import { isIP } from 'node:net';
2
+ import { isPublicAddress } from './webhook.js';
3
+ /**
4
+ * Where the webhook's host is reached now: an address as the host is itself,
5
+ * a name at every address it resolves to. It is public only when every one
6
+ * is; inside when any is not; unresolved when a name resolves to nothing.
7
+ */
8
+ export async function reachOf(resolver, url) {
9
+ // An IPv6 host is written in brackets in a URL.
10
+ const host = url.hostname.replace(/^\[(.*)\]$/, '$1');
11
+ const addresses = isIP(host) === 0 ? await resolver.addressesOf(host) : [host];
12
+ if (addresses.length === 0) {
13
+ return 'unresolved';
14
+ }
15
+ return addresses.every(isPublicAddress) ? 'public' : 'inside';
16
+ }
17
+ //# sourceMappingURL=webhook-address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-address.js","sourceRoot":"","sources":["../../../src/core/a2a-in/webhook-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAsB,EAAE,GAAQ;IAC5D,gDAAgD;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type DomainError } from '../shared/errors.js';
2
+ import { type Result } from '../shared/result.js';
3
+ /** Whether a webhook may be reached at this address: a public unicast one. */
4
+ export declare function isPublicAddress(address: string): boolean;
5
+ /** A webhook's URL: https, with a host and no credentials in it. */
6
+ export declare function webhookUrlOf(raw: string): Result<URL, DomainError<'WEBHOOK_REFUSED'>>;
@@ -0,0 +1,80 @@
1
+ /**
2
+ * An outside A2A client's webhook (slice 4): where the gateway POSTs each
3
+ * change of its task. The gateway calls it from inside the fleet's network
4
+ * at a URL the outside chose, so it is an https URL that carries no
5
+ * credentials, reached only at a public address: never loopback, private,
6
+ * shared, link-local (cloud metadata), unique-local, site-local,
7
+ * documentation, multicast or reserved, nor an IPv6 address that carries an
8
+ * IPv4 one inside (IPv4-mapped, IPv4-compatible, NAT64, 6to4, Teredo).
9
+ * The address is checked once the host resolves, when the config is set and
10
+ * again at each push, so a name that resolves to an inside address is
11
+ * refused like the address itself.
12
+ */
13
+ import { BlockList, isIP } from 'node:net';
14
+ import { refuse } from '../shared/errors.js';
15
+ import { ok } from '../shared/result.js';
16
+ /** The addresses no webhook is reached at. */
17
+ const INSIDE = new BlockList();
18
+ for (const [network, prefix] of [
19
+ ['0.0.0.0', 8],
20
+ ['10.0.0.0', 8],
21
+ ['100.64.0.0', 10],
22
+ ['127.0.0.0', 8],
23
+ ['169.254.0.0', 16],
24
+ ['172.16.0.0', 12],
25
+ ['192.0.0.0', 24],
26
+ ['192.0.2.0', 24],
27
+ ['192.168.0.0', 16],
28
+ ['198.18.0.0', 15],
29
+ ['198.51.100.0', 24],
30
+ ['203.0.113.0', 24],
31
+ ['224.0.0.0', 4],
32
+ ['240.0.0.0', 4],
33
+ ]) {
34
+ INSIDE.addSubnet(network, prefix, 'ipv4');
35
+ }
36
+ for (const [network, prefix] of [
37
+ // IPv4-compatible (::a.b.c.d), unspecified and loopback.
38
+ ['::', 96],
39
+ // NAT64, Teredo and 6to4 carry an IPv4 address inside, which could be any inside one: refused whole, as ::ffff: is.
40
+ ['64:ff9b::', 96],
41
+ ['64:ff9b:1::', 48],
42
+ ['2001::', 32],
43
+ ['2002::', 16],
44
+ ['100::', 64],
45
+ ['2001:db8::', 32],
46
+ ['fc00::', 7],
47
+ ['fe80::', 10],
48
+ ['fec0::', 10],
49
+ ['ff00::', 8],
50
+ ]) {
51
+ INSIDE.addSubnet(network, prefix, 'ipv6');
52
+ }
53
+ const IPV4 = 4;
54
+ /** Whether a webhook may be reached at this address: a public unicast one. */
55
+ export function isPublicAddress(address) {
56
+ const version = isIP(address);
57
+ if (version === 0) {
58
+ return false;
59
+ }
60
+ // An IPv4 address written as IPv6 (::ffff:a.b.c.d) is refused whole: a webhook never needs one, and it could name any inside address.
61
+ if (version !== IPV4 && /^::ffff:/i.test(address)) {
62
+ return false;
63
+ }
64
+ return !INSIDE.check(address, version === IPV4 ? 'ipv4' : 'ipv6');
65
+ }
66
+ /** A webhook's URL: https, with a host and no credentials in it. */
67
+ export function webhookUrlOf(raw) {
68
+ if (!URL.canParse(raw)) {
69
+ return refuse('WEBHOOK_REFUSED', 'The webhook is no URL: name an https URL');
70
+ }
71
+ const url = new URL(raw);
72
+ if (url.protocol !== 'https:' || url.hostname === '') {
73
+ return refuse('WEBHOOK_REFUSED', 'The webhook must be an https URL');
74
+ }
75
+ if (url.username !== '' || url.password !== '') {
76
+ return refuse('WEBHOOK_REFUSED', 'The webhook URL carries credentials: send them as the config\'s authentication');
77
+ }
78
+ return ok(url);
79
+ }
80
+ //# sourceMappingURL=webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/core/a2a-in/webhook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { AgentCard, AgentInterface } from './ports.js';
2
+ /** Where the gateway calls an outside A2A agent (slice 6): one of its card's interfaces, and whether the card states streaming. */
3
+ export interface AgentEndpoint {
4
+ readonly url: string;
5
+ readonly protocolBinding: string;
6
+ readonly isStreaming: boolean;
7
+ }
8
+ export declare const isCalledInterface: (each: AgentInterface) => boolean;
9
+ /** The first interface in the card's order that the gateway calls, as the card prefers it; none when it has none. */
10
+ export declare function agentEndpointOf(card: AgentCard): AgentEndpoint | undefined;
@@ -0,0 +1,10 @@
1
+ /** The bindings the gateway calls an agent over, at A2A 1.0 (A11). */
2
+ const CALLED_BINDINGS = new Set(['JSONRPC', 'HTTP+JSON']);
3
+ const CALLED_VERSION = /^1\.0(\.\d+)?$/;
4
+ export const isCalledInterface = (each) => CALLED_BINDINGS.has(each.protocolBinding) && CALLED_VERSION.test(each.protocolVersion);
5
+ /** The first interface in the card's order that the gateway calls, as the card prefers it; none when it has none. */
6
+ export function agentEndpointOf(card) {
7
+ const called = card.supportedInterfaces.find(isCalledInterface);
8
+ return called === undefined ? undefined : { url: called.url, protocolBinding: called.protocolBinding, isStreaming: card.isStreaming };
9
+ }
10
+ //# sourceMappingURL=agent-endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-endpoint.js","sourceRoot":"","sources":["../../../src/core/a2a-out/agent-endpoint.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAC/E,MAAM,cAAc,GAAG,gBAAgB,CAAC;AASxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAoB,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAElJ,qHAAqH;AACrH,MAAM,UAAU,eAAe,CAAC,IAAe;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChE,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AACxI,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { AgentPart } from './agent-message.js';
2
+ export type AgentState = 'submitted' | 'working' | 'inputRequired' | 'authRequired' | 'completed' | 'failed' | 'canceled' | 'rejected' | 'unspecified';
3
+ /** A status with the time the agent recorded it, if it said; an artifact, whole or a chunk appended to it; a message. */
4
+ export type AgentEvent = {
5
+ readonly kind: 'status';
6
+ readonly state: AgentState;
7
+ readonly timestamp: string | null;
8
+ readonly json: string;
9
+ } | {
10
+ readonly kind: 'artifact';
11
+ readonly artifactId: string;
12
+ readonly isAppended: boolean;
13
+ readonly parts: readonly AgentPart[];
14
+ readonly json: string;
15
+ } | {
16
+ readonly kind: 'message';
17
+ readonly messageId: string;
18
+ readonly parts: readonly AgentPart[];
19
+ readonly json: string;
20
+ };
21
+ export declare function endsFollowing(event: AgentEvent): boolean;
22
+ /** Per artifact, the place its next appended chunk takes, as the replies so far leave it. */
23
+ export type ChunkPlaces = Readonly<Record<string, number>>;
24
+ /**
25
+ * What makes an event of a task one reply, as a follow of one fleet message sees them in turn, and the chunk places after it:
26
+ * - a status: the message it answers, its state and its time, so a status told again is one reply and the same state on a follow-up is another;
27
+ * - an artifact: its id and the place of its chunk, so the whole artifact a task read or a new stream starts with is its first chunk again, never its chunks once more;
28
+ * - a message: its id.
29
+ */
30
+ export declare function eventIdentityOf(event: AgentEvent, seen: {
31
+ answering: string;
32
+ chunkPlaces: ChunkPlaces;
33
+ }): {
34
+ identity: string;
35
+ chunkPlaces: ChunkPlaces;
36
+ };
37
+ /** The reply's content type and payload; one too large for a message says so instead. */
38
+ export declare function replyContentOf(event: AgentEvent): {
39
+ contentType: string;
40
+ payload: string;
41
+ };
@@ -0,0 +1,64 @@
1
+ /**
2
+ * What an outside A2A agent tells of a task (slice 6): its status, an
3
+ * artifact, or a message answering with no task, each with the A2A JSON it
4
+ * came as. Each goes back to the sender as one reply (2a): an artifact or
5
+ * message of one text part as that text, of one data part as JSON, so a ship
6
+ * that knows nothing of A2A reads its result; anything else, and every
7
+ * status, as `application/a2a+json`. Following stops at a terminal or
8
+ * interrupted state, and at a message answer.
9
+ */
10
+ import { PAYLOAD_MAX_BYTES, payloadBytes } from '@aeolus-fleet/common';
11
+ import { A2A_CONTENT_TYPE } from '../mcp-in/client-call.js';
12
+ /** The states after which the agent does nothing more without a new message: ended, or waiting for input or authentication. */
13
+ const ENDING_STATES = new Set(['completed', 'failed', 'canceled', 'rejected', 'inputRequired', 'authRequired']);
14
+ export function endsFollowing(event) {
15
+ switch (event.kind) {
16
+ case 'status':
17
+ return ENDING_STATES.has(event.state);
18
+ case 'message':
19
+ return true;
20
+ case 'artifact':
21
+ return false;
22
+ }
23
+ }
24
+ /**
25
+ * What makes an event of a task one reply, as a follow of one fleet message sees them in turn, and the chunk places after it:
26
+ * - a status: the message it answers, its state and its time, so a status told again is one reply and the same state on a follow-up is another;
27
+ * - an artifact: its id and the place of its chunk, so the whole artifact a task read or a new stream starts with is its first chunk again, never its chunks once more;
28
+ * - a message: its id.
29
+ */
30
+ export function eventIdentityOf(event, seen) {
31
+ const { answering, chunkPlaces } = seen;
32
+ switch (event.kind) {
33
+ case 'status':
34
+ return { identity: JSON.stringify(['status', answering, event.state, event.timestamp]), chunkPlaces };
35
+ case 'artifact': {
36
+ const next = chunkPlaces[event.artifactId] ?? 1;
37
+ const chunk = event.isAppended ? next : 0;
38
+ return { identity: JSON.stringify(['artifact', event.artifactId, chunk]), chunkPlaces: { ...chunkPlaces, [event.artifactId]: Math.max(next, chunk + 1) } };
39
+ }
40
+ case 'message':
41
+ return { identity: JSON.stringify(['message', event.messageId]), chunkPlaces };
42
+ }
43
+ }
44
+ const PLAIN_TEXT = 'text/plain';
45
+ const JSON_TYPE = 'application/json';
46
+ function plainContentOf(event) {
47
+ const [only, ...more] = event.kind === 'status' ? [] : event.parts;
48
+ if (only !== undefined && more.length === 0) {
49
+ if (only.kind === 'text') {
50
+ return { contentType: only.mediaType, payload: only.text };
51
+ }
52
+ if (only.kind === 'data') {
53
+ return { contentType: JSON_TYPE, payload: JSON.stringify(only.data) };
54
+ }
55
+ }
56
+ return { contentType: A2A_CONTENT_TYPE, payload: event.json };
57
+ }
58
+ /** The reply's content type and payload; one too large for a message says so instead. */
59
+ export function replyContentOf(event) {
60
+ const content = plainContentOf(event);
61
+ const bytes = payloadBytes(content.payload);
62
+ return bytes > PAYLOAD_MAX_BYTES ? { contentType: PLAIN_TEXT, payload: `The agent's ${event.kind} is ${String(bytes)} bytes, over the ${String(PAYLOAD_MAX_BYTES)} a message holds.` } : content;
63
+ }
64
+ //# sourceMappingURL=agent-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-event.js","sourceRoot":"","sources":["../../../src/core/a2a-out/agent-event.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type DomainError } from '../shared/errors.js';
2
+ import { type Result } from '../shared/result.js';
3
+ /** One part of an A2A message or artifact the gateway reads: text, data, or another kind it carries but does not read. */
4
+ export type AgentPart = {
5
+ readonly kind: 'text';
6
+ readonly text: string;
7
+ readonly mediaType: string;
8
+ } | {
9
+ readonly kind: 'data';
10
+ readonly data: unknown;
11
+ readonly mediaType: string;
12
+ } | {
13
+ readonly kind: 'other';
14
+ };
15
+ /** The message the gateway sends an outside agent: its parts, or the A2A Message the sender wrote, as JSON. */
16
+ export interface OutboundMessage {
17
+ readonly messageId: string;
18
+ /** The task a follow-up continues, none for a new one. */
19
+ readonly taskId: string | null;
20
+ readonly contextId: string | null;
21
+ readonly content: {
22
+ readonly kind: 'parts';
23
+ readonly parts: readonly AgentPart[];
24
+ } | {
25
+ readonly kind: 'whole';
26
+ readonly message: Readonly<Record<string, unknown>>;
27
+ };
28
+ }
29
+ export declare function outboundMessageOf(delivery: {
30
+ contentType: string;
31
+ payload: string;
32
+ }, ids: {
33
+ messageId: string;
34
+ taskId: string | null;
35
+ contextId: string | null;
36
+ }): Result<OutboundMessage, DomainError<'NOT_A_MESSAGE'>>;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * A delivery to an outside A2A agent's proxy ship, as the A2A message the
3
+ * gateway sends the agent (slice 6): A7 the other way, so an A2A client
4
+ * reading it back gets what the sender wrote. Text travels as one text part
5
+ * and JSON as one data part, each with the delivery's media type; an
6
+ * `application/a2a+json` delivery is the A2A Message itself, sent whole with
7
+ * the gateway's ids put in; any other type travels as one text part.
8
+ */
9
+ import { A2A_CONTENT_TYPE, essenceOf } from '../mcp-in/client-call.js';
10
+ import { refuse } from '../shared/errors.js';
11
+ import { ok } from '../shared/result.js';
12
+ const isJson = (essence) => essence === 'application/json' || essence.endsWith('+json');
13
+ function parsed(payload) {
14
+ try {
15
+ return { isParsed: true, value: JSON.parse(payload) };
16
+ }
17
+ catch {
18
+ return { isParsed: false };
19
+ }
20
+ }
21
+ const isObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
22
+ export function outboundMessageOf(delivery, ids) {
23
+ const essence = essenceOf(delivery.contentType);
24
+ if (essence === A2A_CONTENT_TYPE) {
25
+ const message = parsed(delivery.payload);
26
+ return message.isParsed && isObject(message.value)
27
+ ? ok({ ...ids, content: { kind: 'whole', message: message.value } })
28
+ : refuse('NOT_A_MESSAGE', `An ${A2A_CONTENT_TYPE} payload is an A2A Message as a JSON object`);
29
+ }
30
+ if (isJson(essence)) {
31
+ const data = parsed(delivery.payload);
32
+ return data.isParsed ? ok({ ...ids, content: { kind: 'parts', parts: [{ kind: 'data', data: data.value, mediaType: delivery.contentType }] } }) : refuse('NOT_A_MESSAGE', `A ${delivery.contentType} payload is JSON`);
33
+ }
34
+ return ok({ ...ids, content: { kind: 'parts', parts: [{ kind: 'text', text: delivery.payload, mediaType: delivery.contentType }] } });
35
+ }
36
+ //# sourceMappingURL=agent-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-message.js","sourceRoot":"","sources":["../../../src/core/a2a-out/agent-message.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AActD,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,KAAK,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAEhG,SAAS,MAAM,CAAC,OAAe;IAC7B,IAAI,CAAC;QACH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE5I,MAAM,UAAU,iBAAiB,CAC/B,QAAkD,EAClD,GAA2E;IAE3E,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;YAChD,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACpE,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,gBAAgB,6CAA6C,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,QAAQ,CAAC,WAAW,kBAAkB,CAAC,CAAC;IACzN,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACxI,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { CallTiming, Statement } from '../mcp-out/statement.js';
2
+ import { type DomainError } from '../shared/errors.js';
3
+ import { type Result } from '../shared/result.js';
4
+ import type { AgentCard } from './ports.js';
5
+ export declare function agentStatementOf(input: {
6
+ partyName: string;
7
+ card: AgentCard;
8
+ isRepeatable: boolean;
9
+ timing: CallTiming;
10
+ }): Result<Statement, DomainError<'CARD_INVALID'>>;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * An outside A2A agent's proxy ship's statement (slice 5), written from its
3
+ * public card: each skill is one capability, by its id, with its name,
4
+ * description and media types, the card's defaults where it names none.
5
+ * The card's interfaces, schemes and signatures stay in the gateway (NAT
6
+ * both ways), and a skill has no schema. Every capability is repeatable,
7
+ * A2A's default, unless the agent is marked not repeatable (A9). A card the
8
+ * gateway cannot call, or that makes no valid statement, is refused with the
9
+ * reason.
10
+ */
11
+ import { STATEMENT_SUMMARY_MAX_LENGTH, statementSchema } from '@aeolus-fleet/common';
12
+ import { refuse } from '../shared/errors.js';
13
+ import { ok } from '../shared/result.js';
14
+ import { agentEndpointOf } from './agent-endpoint.js';
15
+ function capabilityOf(skill, of) {
16
+ return {
17
+ name: skill.id,
18
+ title: skill.name,
19
+ description: skill.description,
20
+ inputModes: skill.inputModes.length > 0 ? skill.inputModes : of.card.defaultInputModes,
21
+ outputModes: skill.outputModes.length > 0 ? skill.outputModes : of.card.defaultOutputModes,
22
+ waitMs: of.timing.waitMs,
23
+ deadlineMs: of.timing.deadlineMs,
24
+ ...(of.isRepeatable ? { repeatable: true } : {}),
25
+ };
26
+ }
27
+ export function agentStatementOf(input) {
28
+ const { card } = input;
29
+ if (agentEndpointOf(card) === undefined) {
30
+ return refuse('CARD_INVALID', 'The card has no interface the gateway calls: JSONRPC or HTTP+JSON at A2A 1.0');
31
+ }
32
+ if (card.skills.length === 0) {
33
+ return refuse('CARD_INVALID', 'The card has no skill to state');
34
+ }
35
+ const statement = {
36
+ summary: `${input.partyName}, an outside A2A agent reached through the Aeolus gateway: ${card.description}`.slice(0, STATEMENT_SUMMARY_MAX_LENGTH),
37
+ capabilities: card.skills.map((skill) => capabilityOf(skill, { card, isRepeatable: input.isRepeatable, timing: input.timing })),
38
+ };
39
+ const checked = statementSchema.safeParse(statement);
40
+ if (!checked.success) {
41
+ return refuse('CARD_INVALID', `The card makes no valid statement: ${checked.error.issues.map((issue) => issue.message).join('; ')}`);
42
+ }
43
+ return ok(statement);
44
+ }
45
+ //# sourceMappingURL=agent-statement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-statement.js","sourceRoot":"","sources":["../../../src/core/a2a-out/agent-statement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGrF,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,SAAS,YAAY,CAAC,KAAiB,EAAE,EAAkE;IACzG,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,EAAE;QACd,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB;QACtF,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB;QAC1F,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM;QACxB,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU;QAChC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAwF;IACvH,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,cAAc,EAAE,8EAA8E,CAAC,CAAC;IAChH,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,SAAS,GAAc;QAC3B,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,8DAA8D,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,4BAA4B,CAAC;QAClJ,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;KAChI,CAAC;IACF,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,cAAc,EAAE,sCAAsC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvI,CAAC;IACD,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { HandOutcome } from '../mcp-out/hand-call.js';
2
+ import type { Sleep } from '../mcp-out/run-party.js';
3
+ import type { A2aAgentParty } from '../parties/party.js';
4
+ import type { Clock } from '../shared/clock.js';
5
+ import type { AgentEndpoint } from './agent-endpoint.js';
6
+ import { type AgentEvent } from './agent-event.js';
7
+ import type { A2aAgents, AgentCall, AgentCalls, AgentKeys, AgentShipCrew, GatewayStatuses } from './ports.js';
8
+ export type FollowAgentTask = (input: {
9
+ party: A2aAgentParty;
10
+ endpoint: AgentEndpoint;
11
+ call: AgentCall;
12
+ signal: AbortSignal;
13
+ events?: readonly AgentEvent[];
14
+ }) => Promise<HandOutcome>;
15
+ /** The reason a delivery whose task the agent no longer knows is not handled, as Needs attention shows it. */
16
+ export declare const TASK_GONE = "The agent's task is gone";
17
+ /**
18
+ * Use case: the gateway follows an outside A2A agent's task, after the agent
19
+ * took a delivery and the gateway acknowledged it (slice 6, flow 4.2): by
20
+ * SubscribeToTask when the card states streaming, subscribing again when a
21
+ * stream ends early, else by GetTask every poll. Each event goes back to the
22
+ * sender as one reply, under a key derived from the task and the event, so
23
+ * an event seen again (a poll, a new stream, a restart) is one reply; each
24
+ * reply is kept as telling of the task, so an answer to it continues the
25
+ * task. At a terminal or interrupted state the delivery is handled; at the
26
+ * deadline the gateway replies failed, then handles it; a task the agent no
27
+ * longer knows is not handled. A reply the fleet does not take is sent again
28
+ * after a poll. Stopped, it leaves the call followed, for the next start.
29
+ */
30
+ export declare function createFollowAgentTask(deps: {
31
+ crew: AgentShipCrew;
32
+ agents: A2aAgents;
33
+ calls: AgentCalls;
34
+ keys: AgentKeys;
35
+ statuses: GatewayStatuses;
36
+ clock: Clock;
37
+ sleep: Sleep;
38
+ pollMs: number;
39
+ deadlineMs: number;
40
+ }): FollowAgentTask;
@@ -0,0 +1,125 @@
1
+ import { endsFollowing, eventIdentityOf, replyContentOf } from './agent-event.js';
2
+ /** The reason a delivery whose task the agent no longer knows is not handled, as Needs attention shows it. */
3
+ export const TASK_GONE = "The agent's task is gone";
4
+ /** The fleet's code for a key already used for another message: under a key this follow derived, that reply went before. */
5
+ const KEY_REUSED = 'IDEMPOTENCY_KEY_REUSED';
6
+ /** What the failed reply says when the agent refuses reading or streaming its task, before the agent's reason. */
7
+ const FOLLOW_REFUSED = 'The agent refused following its task';
8
+ const AGAIN = { kind: 'again' };
9
+ /**
10
+ * Use case: the gateway follows an outside A2A agent's task, after the agent
11
+ * took a delivery and the gateway acknowledged it (slice 6, flow 4.2): by
12
+ * SubscribeToTask when the card states streaming, subscribing again when a
13
+ * stream ends early, else by GetTask every poll. Each event goes back to the
14
+ * sender as one reply, under a key derived from the task and the event, so
15
+ * an event seen again (a poll, a new stream, a restart) is one reply; each
16
+ * reply is kept as telling of the task, so an answer to it continues the
17
+ * task. At a terminal or interrupted state the delivery is handled; at the
18
+ * deadline the gateway replies failed, then handles it; a task the agent no
19
+ * longer knows is not handled. A reply the fleet does not take is sent again
20
+ * after a poll. Stopped, it leaves the call followed, for the next start.
21
+ */
22
+ export function createFollowAgentTask(deps) {
23
+ return async ({ party, endpoint, call, signal, events = [] }) => {
24
+ const { crewToken } = party;
25
+ if (crewToken === null || call.taskId === null || call.contextId === null) {
26
+ return AGAIN;
27
+ }
28
+ const { taskId, contextId } = call;
29
+ const caller = { fleetId: party.fleetId, party: party.name };
30
+ const connection = { endpoint, credential: party.credential };
31
+ /** The call as kept now: each reply's identity and the chunk places after it are kept with it, so a restart sends none again. */
32
+ let kept = call;
33
+ let endedAt;
34
+ /** Whether an event ended following: set as each event comes, so read through a call. */
35
+ const hasEnded = () => endedAt !== undefined;
36
+ /** Whether the gateway stops: read through a call, as a stream ends when it does. */
37
+ const isStopped = () => signal.aborted;
38
+ /**
39
+ * Sends the event as a reply once, tried again after a poll until the fleet takes it, the gateway stops or
40
+ * the deadline passes: whether it went. A key this follow derived that the fleet holds for another message
41
+ * went before, as the same event told otherwise (a whole artifact after its chunks): it counts as replied.
42
+ */
43
+ const reply = async (event) => {
44
+ const { identity, chunkPlaces } = eventIdentityOf(event, { answering: call.messageId, chunkPlaces: kept.chunkPlaces });
45
+ if (kept.replied.includes(identity)) {
46
+ return true;
47
+ }
48
+ const idempotencyKey = deps.keys.replyKeyOf(party.fleetId, { taskId, event: identity });
49
+ for (;;) {
50
+ const sent = await deps.crew.send(crewToken, { to: call.senderShipId, inReplyTo: call.messageId, ...replyContentOf(event), idempotencyKey });
51
+ if (sent.isOk || sent.error.code === KEY_REUSED) {
52
+ if (sent.isOk) {
53
+ await deps.calls.saveReply(caller, { messageId: sent.value.messageId, taskId, contextId });
54
+ }
55
+ kept = { ...kept, replied: [...kept.replied, identity], chunkPlaces };
56
+ await deps.calls.save(kept);
57
+ return true;
58
+ }
59
+ if (isStopped() || deps.clock.now().getTime() >= call.deadlineAt.getTime()) {
60
+ return false;
61
+ }
62
+ await deps.sleep(deps.pollMs, signal);
63
+ }
64
+ };
65
+ const onEvent = async (event) => {
66
+ if ((await reply(event)) && endsFollowing(event)) {
67
+ endedAt = event;
68
+ }
69
+ };
70
+ const handled = async () => {
71
+ if (!(await deps.crew.handled(crewToken, call.deliveryId)).isOk) {
72
+ return AGAIN;
73
+ }
74
+ await deps.calls.save({ ...kept, state: 'done' });
75
+ return { kind: 'handled' };
76
+ };
77
+ const gone = async (reason) => {
78
+ await deps.calls.save({ ...kept, state: 'done' });
79
+ await deps.crew.notHandled(crewToken, { deliveryId: call.deliveryId, reason: `${TASK_GONE}: ${reason}` });
80
+ return { kind: 'notHandled' };
81
+ };
82
+ /** Replies the gateway's failed status with why, then handles the delivery. */
83
+ const failed = async (reason) => {
84
+ const status = deps.statuses.statusOf({ taskId, contextId, state: 'failed', reason, messageId: deps.keys.replyKeyOf(party.fleetId, { taskId, event: reason }) });
85
+ return (await reply(status)) ? handled() : AGAIN;
86
+ };
87
+ /** GetTask once: each event of the task as it stands replied; how the read ended. */
88
+ const readTask = async () => {
89
+ const read = await deps.agents.getTask(connection, taskId);
90
+ for (const event of read.kind === 'read' ? read.events : []) {
91
+ await onEvent(event);
92
+ }
93
+ return read;
94
+ };
95
+ for (const event of events) {
96
+ await onEvent(event);
97
+ }
98
+ while (!hasEnded() && !signal.aborted) {
99
+ const leftMs = call.deadlineAt.getTime() - deps.clock.now().getTime();
100
+ if (leftMs <= 0) {
101
+ return failed(`The agent did not end its task within ${String(deps.deadlineMs)} ms`);
102
+ }
103
+ const end = endpoint.isStreaming ? await deps.agents.subscribe(connection, { taskId, timeoutMs: leftMs, signal, onEvent }) : undefined;
104
+ if (end?.kind === 'gone') {
105
+ return gone(end.reason);
106
+ }
107
+ // A stream that ended with no end of the task may have missed it, and a task that ended refuses a stream: the task is read once.
108
+ const read = hasEnded() || isStopped() ? undefined : await readTask();
109
+ if (read?.kind === 'gone') {
110
+ return gone(read.reason);
111
+ }
112
+ if (read?.kind === 'refused') {
113
+ return failed(`${FOLLOW_REFUSED}: ${read.reason}`);
114
+ }
115
+ if (read?.kind === 'read' && !hasEnded() && end?.kind === 'refused') {
116
+ return failed(`${FOLLOW_REFUSED}: ${end.reason}`);
117
+ }
118
+ if (!hasEnded()) {
119
+ await deps.sleep(deps.pollMs, signal);
120
+ }
121
+ }
122
+ return hasEnded() ? handled() : AGAIN;
123
+ };
124
+ }
125
+ //# sourceMappingURL=follow-agent-task.js.map