@aeolus-fleet/gateway 0.29.2 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -3
- package/dist/adapters/a2a/a2a-agents.d.ts +6 -0
- package/dist/adapters/a2a/a2a-agents.js +238 -0
- package/dist/adapters/a2a/a2a-agents.js.map +1 -0
- package/dist/adapters/a2a/agent-cards.d.ts +4 -0
- package/dist/adapters/a2a/agent-cards.js +90 -0
- package/dist/adapters/a2a/agent-cards.js.map +1 -0
- package/dist/adapters/crypto/agent-keys.d.ts +3 -0
- package/dist/adapters/crypto/agent-keys.js +13 -0
- package/dist/adapters/crypto/agent-keys.js.map +1 -0
- package/dist/adapters/crypto/call-keys.js +2 -0
- package/dist/adapters/crypto/call-keys.js.map +1 -1
- package/dist/adapters/fleet/core-version.d.ts +1 -1
- package/dist/adapters/fleet/core-version.js +1 -1
- package/dist/adapters/fleet/fleet-ships.d.ts +3 -1
- package/dist/adapters/fleet/fleet-ships.js +19 -10
- package/dist/adapters/fleet/fleet-ships.js.map +1 -1
- package/dist/adapters/fleet/rest-fleet-door.d.ts +4 -2
- package/dist/adapters/fleet/rest-fleet-door.js +65 -6
- package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
- package/dist/adapters/http/a2a-cards.d.ts +24 -0
- package/dist/adapters/http/a2a-cards.js +62 -0
- package/dist/adapters/http/a2a-cards.js.map +1 -0
- package/dist/adapters/http/a2a-endpoint.d.ts +28 -0
- package/dist/adapters/http/a2a-endpoint.js +424 -0
- package/dist/adapters/http/a2a-endpoint.js.map +1 -0
- package/dist/adapters/http/a2a-streams.d.ts +28 -0
- package/dist/adapters/http/a2a-streams.js +74 -0
- package/dist/adapters/http/a2a-streams.js.map +1 -0
- package/dist/adapters/http/a2a-tasks.d.ts +18 -0
- package/dist/adapters/http/a2a-tasks.js +117 -0
- package/dist/adapters/http/a2a-tasks.js.map +1 -0
- package/dist/adapters/http/front-door.js +8 -4
- package/dist/adapters/http/front-door.js.map +1 -1
- package/dist/adapters/http/live.d.ts +3 -1
- package/dist/adapters/http/live.js +6 -2
- package/dist/adapters/http/live.js.map +1 -1
- package/dist/adapters/http/oauth-routes.d.ts +1 -1
- package/dist/adapters/http/oauth-routes.js +16 -3
- package/dist/adapters/http/oauth-routes.js.map +1 -1
- package/dist/adapters/http/person-tools.d.ts +4 -7
- package/dist/adapters/http/person-tools.js +75 -10
- package/dist/adapters/http/person-tools.js.map +1 -1
- package/dist/adapters/mcp/mcp-servers.js +2 -0
- package/dist/adapters/mcp/mcp-servers.js.map +1 -1
- package/dist/adapters/pagasae/email-channel.d.ts +8 -0
- package/dist/adapters/pagasae/email-channel.js +37 -0
- package/dist/adapters/pagasae/email-channel.js.map +1 -0
- package/dist/adapters/pagasae/pagasae-client.js +6 -2
- package/dist/adapters/pagasae/pagasae-client.js.map +1 -1
- package/dist/adapters/prisma/agent-calls.d.ts +3 -0
- package/dist/adapters/prisma/agent-calls.js +49 -0
- package/dist/adapters/prisma/agent-calls.js.map +1 -0
- package/dist/adapters/prisma/changes.d.ts +17 -8
- package/dist/adapters/prisma/changes.js +18 -5
- package/dist/adapters/prisma/changes.js.map +1 -1
- package/dist/adapters/prisma/client-calls.d.ts +1 -1
- package/dist/adapters/prisma/client-calls.js +83 -21
- package/dist/adapters/prisma/client-calls.js.map +1 -1
- package/dist/adapters/prisma/email-channels.d.ts +4 -0
- package/dist/adapters/prisma/email-channels.js +14 -0
- package/dist/adapters/prisma/email-channels.js.map +1 -0
- package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
- package/dist/adapters/prisma/fleet-forgetter.js +2 -2
- package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
- package/dist/adapters/prisma/focused-pages.d.ts +4 -0
- package/dist/adapters/prisma/focused-pages.js +13 -0
- package/dist/adapters/prisma/focused-pages.js.map +1 -0
- package/dist/adapters/prisma/generated/browser.d.ts +45 -0
- package/dist/adapters/prisma/generated/client.d.ts +45 -0
- package/dist/adapters/prisma/generated/commonInputTypes.d.ts +54 -54
- package/dist/adapters/prisma/generated/internal/class.d.ts +99 -0
- package/dist/adapters/prisma/generated/internal/class.js +4 -4
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +783 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +101 -3
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +107 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +101 -3
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/adapters/prisma/generated/models/A2aAgentCall.d.ts +1203 -0
- package/dist/adapters/prisma/generated/models/A2aAgentCall.js +2 -0
- package/dist/adapters/prisma/generated/models/A2aAgentCall.js.map +1 -0
- package/dist/adapters/prisma/generated/models/A2aAgentReply.d.ts +1003 -0
- package/dist/adapters/prisma/generated/models/A2aAgentReply.js +2 -0
- package/dist/adapters/prisma/generated/models/A2aAgentReply.js.map +1 -0
- package/dist/adapters/prisma/generated/models/A2aPush.d.ts +1413 -0
- package/dist/adapters/prisma/generated/models/A2aPush.js +2 -0
- package/dist/adapters/prisma/generated/models/A2aPush.js.map +1 -0
- package/dist/adapters/prisma/generated/models/A2aPushConfig.d.ts +1322 -0
- package/dist/adapters/prisma/generated/models/A2aPushConfig.js +2 -0
- package/dist/adapters/prisma/generated/models/A2aPushConfig.js.map +1 -0
- package/dist/adapters/prisma/generated/models/A2aTask.d.ts +1002 -0
- package/dist/adapters/prisma/generated/models/A2aTask.js +2 -0
- package/dist/adapters/prisma/generated/models/A2aTask.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ClientCall.d.ts +136 -15
- package/dist/adapters/prisma/generated/models/ClientCallReply.d.ts +0 -7
- package/dist/adapters/prisma/generated/models/EmailChannel.d.ts +946 -0
- package/dist/adapters/prisma/generated/models/EmailChannel.js +2 -0
- package/dist/adapters/prisma/generated/models/EmailChannel.js.map +1 -0
- package/dist/adapters/prisma/generated/models/FocusedPage.d.ts +974 -0
- package/dist/adapters/prisma/generated/models/FocusedPage.js +2 -0
- package/dist/adapters/prisma/generated/models/FocusedPage.js.map +1 -0
- package/dist/adapters/prisma/generated/models/IssuedToken.d.ts +47 -41
- package/dist/adapters/prisma/generated/models/OAuthClient.d.ts +32 -8
- package/dist/adapters/prisma/generated/models/Party.d.ts +90 -3
- package/dist/adapters/prisma/generated/models/WakeSent.d.ts +975 -0
- package/dist/adapters/prisma/generated/models/WakeSent.js +2 -0
- package/dist/adapters/prisma/generated/models/WakeSent.js.map +1 -0
- package/dist/adapters/prisma/generated/models/WebPushSubscription.d.ts +1115 -0
- package/dist/adapters/prisma/generated/models/WebPushSubscription.js +2 -0
- package/dist/adapters/prisma/generated/models/WebPushSubscription.js.map +1 -0
- package/dist/adapters/prisma/generated/models.d.ts +9 -0
- package/dist/adapters/prisma/oauth-stores.js +3 -2
- package/dist/adapters/prisma/oauth-stores.js.map +1 -1
- package/dist/adapters/prisma/party-store.js +35 -6
- package/dist/adapters/prisma/party-store.js.map +1 -1
- package/dist/adapters/prisma/person-crews.js +9 -0
- package/dist/adapters/prisma/person-crews.js.map +1 -1
- package/dist/adapters/prisma/push-store.d.ts +3 -0
- package/dist/adapters/prisma/push-store.js +102 -0
- package/dist/adapters/prisma/push-store.js.map +1 -0
- package/dist/adapters/prisma/waiter-locks.d.ts +4 -0
- package/dist/adapters/prisma/waiter-locks.js +72 -0
- package/dist/adapters/prisma/waiter-locks.js.map +1 -0
- package/dist/adapters/prisma/wakes-sent.d.ts +4 -0
- package/dist/adapters/prisma/wakes-sent.js +10 -0
- package/dist/adapters/prisma/wakes-sent.js.map +1 -0
- package/dist/adapters/prisma/web-push-subscriptions.d.ts +3 -0
- package/dist/adapters/prisma/web-push-subscriptions.js +33 -0
- package/dist/adapters/prisma/web-push-subscriptions.js.map +1 -0
- package/dist/adapters/trpc/router.d.ts +460 -9
- package/dist/adapters/trpc/router.js +269 -13
- package/dist/adapters/trpc/router.js.map +1 -1
- package/dist/adapters/web-push/web-push.d.ts +9 -0
- package/dist/adapters/web-push/web-push.js +70 -0
- package/dist/adapters/web-push/web-push.js.map +1 -0
- package/dist/adapters/webhooks/allowed-lookup.d.ts +14 -0
- package/dist/adapters/webhooks/allowed-lookup.js +28 -0
- package/dist/adapters/webhooks/allowed-lookup.js.map +1 -0
- package/dist/adapters/webhooks/host-resolver.d.ts +3 -0
- package/dist/adapters/webhooks/host-resolver.js +13 -0
- package/dist/adapters/webhooks/host-resolver.js.map +1 -0
- package/dist/adapters/webhooks/webhook-poster.d.ts +6 -0
- package/dist/adapters/webhooks/webhook-poster.js +67 -0
- package/dist/adapters/webhooks/webhook-poster.js.map +1 -0
- package/dist/app.d.ts +12 -0
- package/dist/app.js +277 -14
- package/dist/app.js.map +1 -1
- package/dist/bin/aeolus-gateway.js +3 -0
- package/dist/bin/aeolus-gateway.js.map +1 -1
- package/dist/config.d.ts +14 -0
- package/dist/config.js +24 -0
- package/dist/config.js.map +1 -1
- package/dist/core/a2a-in/authenticate-a2a-client.d.ts +23 -0
- package/dist/core/a2a-in/authenticate-a2a-client.js +21 -0
- package/dist/core/a2a-in/authenticate-a2a-client.js.map +1 -0
- package/dist/core/a2a-in/deliver-pushes.d.ts +24 -0
- package/dist/core/a2a-in/deliver-pushes.js +48 -0
- package/dist/core/a2a-in/deliver-pushes.js.map +1 -0
- package/dist/core/a2a-in/find-reached-ship.d.ts +18 -0
- package/dist/core/a2a-in/find-reached-ship.js +20 -0
- package/dist/core/a2a-in/find-reached-ship.js.map +1 -0
- package/dist/core/a2a-in/follow-a2a-task.d.ts +25 -0
- package/dist/core/a2a-in/follow-a2a-task.js +23 -0
- package/dist/core/a2a-in/follow-a2a-task.js.map +1 -0
- package/dist/core/a2a-in/inbound-message.d.ts +30 -0
- package/dist/core/a2a-in/inbound-message.js +33 -0
- package/dist/core/a2a-in/inbound-message.js.map +1 -0
- package/dist/core/a2a-in/list-a2a-tasks.d.ts +18 -0
- package/dist/core/a2a-in/list-a2a-tasks.js +14 -0
- package/dist/core/a2a-in/list-a2a-tasks.js.map +1 -0
- package/dist/core/a2a-in/list-push-configs.d.ts +20 -0
- package/dist/core/a2a-in/list-push-configs.js +18 -0
- package/dist/core/a2a-in/list-push-configs.js.map +1 -0
- package/dist/core/a2a-in/list-reached-ships.d.ts +25 -0
- package/dist/core/a2a-in/list-reached-ships.js +22 -0
- package/dist/core/a2a-in/list-reached-ships.js.map +1 -0
- package/dist/core/a2a-in/notice-task-changes.d.ts +19 -0
- package/dist/core/a2a-in/notice-task-changes.js +17 -0
- package/dist/core/a2a-in/notice-task-changes.js.map +1 -0
- package/dist/core/a2a-in/ports.d.ts +124 -0
- package/dist/core/a2a-in/ports.js +2 -0
- package/dist/core/a2a-in/ports.js.map +1 -0
- package/dist/core/a2a-in/push-config-view.d.ts +8 -0
- package/dist/core/a2a-in/push-config-view.js +2 -0
- package/dist/core/a2a-in/push-config-view.js.map +1 -0
- package/dist/core/a2a-in/push-to-webhooks.d.ts +19 -0
- package/dist/core/a2a-in/push-to-webhooks.js +19 -0
- package/dist/core/a2a-in/push-to-webhooks.js.map +1 -0
- package/dist/core/a2a-in/read-a2a-task.d.ts +12 -0
- package/dist/core/a2a-in/read-a2a-task.js +11 -0
- package/dist/core/a2a-in/read-a2a-task.js.map +1 -0
- package/dist/core/a2a-in/read-push-config.d.ts +16 -0
- package/dist/core/a2a-in/read-push-config.js +14 -0
- package/dist/core/a2a-in/read-push-config.js.map +1 -0
- package/dist/core/a2a-in/remove-push-config.d.ts +15 -0
- package/dist/core/a2a-in/remove-push-config.js +13 -0
- package/dist/core/a2a-in/remove-push-config.js.map +1 -0
- package/dist/core/a2a-in/send-a2a-message.d.ts +34 -0
- package/dist/core/a2a-in/send-a2a-message.js +106 -0
- package/dist/core/a2a-in/send-a2a-message.js.map +1 -0
- package/dist/core/a2a-in/set-push-config.d.ts +30 -0
- package/dist/core/a2a-in/set-push-config.js +27 -0
- package/dist/core/a2a-in/set-push-config.js.map +1 -0
- package/dist/core/a2a-in/subscribe-to-a2a-task.d.ts +18 -0
- package/dist/core/a2a-in/subscribe-to-a2a-task.js +17 -0
- package/dist/core/a2a-in/subscribe-to-a2a-task.js.map +1 -0
- package/dist/core/a2a-in/task-view.d.ts +51 -0
- package/dist/core/a2a-in/task-view.js +49 -0
- package/dist/core/a2a-in/task-view.js.map +1 -0
- package/dist/core/a2a-in/webhook-address.d.ts +7 -0
- package/dist/core/a2a-in/webhook-address.js +17 -0
- package/dist/core/a2a-in/webhook-address.js.map +1 -0
- package/dist/core/a2a-in/webhook.d.ts +6 -0
- package/dist/core/a2a-in/webhook.js +80 -0
- package/dist/core/a2a-in/webhook.js.map +1 -0
- package/dist/core/a2a-out/agent-endpoint.d.ts +10 -0
- package/dist/core/a2a-out/agent-endpoint.js +10 -0
- package/dist/core/a2a-out/agent-endpoint.js.map +1 -0
- package/dist/core/a2a-out/agent-event.d.ts +41 -0
- package/dist/core/a2a-out/agent-event.js +64 -0
- package/dist/core/a2a-out/agent-event.js.map +1 -0
- package/dist/core/a2a-out/agent-message.d.ts +36 -0
- package/dist/core/a2a-out/agent-message.js +36 -0
- package/dist/core/a2a-out/agent-message.js.map +1 -0
- package/dist/core/a2a-out/agent-statement.d.ts +10 -0
- package/dist/core/a2a-out/agent-statement.js +45 -0
- package/dist/core/a2a-out/agent-statement.js.map +1 -0
- package/dist/core/a2a-out/follow-agent-task.d.ts +40 -0
- package/dist/core/a2a-out/follow-agent-task.js +125 -0
- package/dist/core/a2a-out/follow-agent-task.js.map +1 -0
- package/dist/core/a2a-out/hand-a2a-message.d.ts +36 -0
- package/dist/core/a2a-out/hand-a2a-message.js +132 -0
- package/dist/core/a2a-out/hand-a2a-message.js.map +1 -0
- package/dist/core/a2a-out/mark-a2a-agent.d.ts +24 -0
- package/dist/core/a2a-out/mark-a2a-agent.js +24 -0
- package/dist/core/a2a-out/mark-a2a-agent.js.map +1 -0
- package/dist/core/a2a-out/ports.d.ts +200 -0
- package/dist/core/a2a-out/ports.js +2 -0
- package/dist/core/a2a-out/ports.js.map +1 -0
- package/dist/core/a2a-out/read-agent-statement.d.ts +13 -0
- package/dist/core/a2a-out/read-agent-statement.js +13 -0
- package/dist/core/a2a-out/read-agent-statement.js.map +1 -0
- package/dist/core/a2a-out/run-a2a-agent.d.ts +26 -0
- package/dist/core/a2a-out/run-a2a-agent.js +46 -0
- package/dist/core/a2a-out/run-a2a-agent.js.map +1 -0
- package/dist/core/a2a-out/state-a2a-agent.d.ts +26 -0
- package/dist/core/a2a-out/state-a2a-agent.js +31 -0
- package/dist/core/a2a-out/state-a2a-agent.js.map +1 -0
- package/dist/core/mcp-in/call-tool.js +2 -0
- package/dist/core/mcp-in/call-tool.js.map +1 -1
- package/dist/core/mcp-in/client-call.d.ts +35 -4
- package/dist/core/mcp-in/client-call.js +57 -10
- package/dist/core/mcp-in/client-call.js.map +1 -1
- package/dist/core/mcp-in/collect-replies.d.ts +4 -3
- package/dist/core/mcp-in/collect-replies.js +4 -0
- package/dist/core/mcp-in/collect-replies.js.map +1 -1
- package/dist/core/mcp-in/ports.d.ts +52 -3
- package/dist/core/mcp-out/hand-call.d.ts +5 -1
- package/dist/core/mcp-out/hand-call.js +9 -1
- package/dist/core/mcp-out/hand-call.js.map +1 -1
- package/dist/core/mcp-out/run-party.d.ts +29 -7
- package/dist/core/mcp-out/run-party.js +14 -6
- package/dist/core/mcp-out/run-party.js.map +1 -1
- package/dist/core/mcp-out/state-party.d.ts +4 -2
- package/dist/core/mcp-out/state-party.js +10 -3
- package/dist/core/mcp-out/state-party.js.map +1 -1
- package/dist/core/mcp-out/statement.d.ts +2 -1
- package/dist/core/mcp-out/statement.js.map +1 -1
- package/dist/core/meetings/change-own-mic.d.ts +24 -0
- package/dist/core/meetings/change-own-mic.js +21 -0
- package/dist/core/meetings/change-own-mic.js.map +1 -0
- package/dist/core/meetings/mic-standing.d.ts +18 -0
- package/dist/core/meetings/mic-standing.js +11 -0
- package/dist/core/meetings/mic-standing.js.map +1 -0
- package/dist/core/meetings/ports.d.ts +70 -0
- package/dist/core/meetings/ports.js +2 -0
- package/dist/core/meetings/ports.js.map +1 -0
- package/dist/core/meetings/read-meeting.d.ts +30 -0
- package/dist/core/meetings/read-meeting.js +26 -0
- package/dist/core/meetings/read-meeting.js.map +1 -0
- package/dist/core/oauth/exchange-id-jag.d.ts +28 -0
- package/dist/core/oauth/exchange-id-jag.js +66 -0
- package/dist/core/oauth/exchange-id-jag.js.map +1 -0
- package/dist/core/oauth/exchange-token.d.ts +25 -11
- package/dist/core/oauth/exchange-token.js +50 -3
- package/dist/core/oauth/exchange-token.js.map +1 -1
- package/dist/core/oauth/ports.d.ts +17 -6
- package/dist/core/oauth/register-client.js +1 -1
- package/dist/core/oauth/register-client.js.map +1 -1
- package/dist/core/parties/add-a2a-agent.d.ts +34 -0
- package/dist/core/parties/add-a2a-agent.js +45 -0
- package/dist/core/parties/add-a2a-agent.js.map +1 -0
- package/dist/core/parties/add-a2a-client.d.ts +30 -0
- package/dist/core/parties/add-a2a-client.js +47 -0
- package/dist/core/parties/add-a2a-client.js.map +1 -0
- package/dist/core/parties/add-client-party.d.ts +38 -0
- package/dist/core/parties/add-client-party.js +40 -0
- package/dist/core/parties/add-client-party.js.map +1 -0
- package/dist/core/parties/approve-party.d.ts +43 -2
- package/dist/core/parties/approve-party.js +9 -5
- package/dist/core/parties/approve-party.js.map +1 -1
- package/dist/core/parties/approver.d.ts +7 -0
- package/dist/core/parties/approver.js +9 -0
- package/dist/core/parties/approver.js.map +1 -0
- package/dist/core/parties/check-server.d.ts +2 -1
- package/dist/core/parties/check-server.js +1 -1
- package/dist/core/parties/check-server.js.map +1 -1
- package/dist/core/parties/crew-party.d.ts +18 -4
- package/dist/core/parties/crew-party.js +36 -4
- package/dist/core/parties/crew-party.js.map +1 -1
- package/dist/core/parties/party.d.ts +23 -1
- package/dist/core/parties/party.js +17 -4
- package/dist/core/parties/party.js.map +1 -1
- package/dist/core/parties/ports.d.ts +16 -0
- package/dist/core/parties/read-party-tools.d.ts +4 -3
- package/dist/core/parties/read-party-tools.js +4 -2
- package/dist/core/parties/read-party-tools.js.map +1 -1
- package/dist/core/parties/shown-party.d.ts +8 -0
- package/dist/core/parties/shown-party.js +4 -0
- package/dist/core/parties/shown-party.js.map +1 -1
- package/dist/core/parties/switch-tool.d.ts +29 -0
- package/dist/core/parties/switch-tool.js +33 -0
- package/dist/core/parties/switch-tool.js.map +1 -0
- package/dist/core/parties/tool-switches.d.ts +27 -0
- package/dist/core/parties/tool-switches.js +17 -0
- package/dist/core/parties/tool-switches.js.map +1 -0
- package/dist/core/people/answer-delivery.d.ts +2 -1
- package/dist/core/people/answer-delivery.js.map +1 -1
- package/dist/core/people/done-delivery.d.ts +2 -1
- package/dist/core/people/done-delivery.js.map +1 -1
- package/dist/core/people/focus-page.d.ts +18 -0
- package/dist/core/people/focus-page.js +20 -0
- package/dist/core/people/focus-page.js.map +1 -0
- package/dist/core/people/inbox-entry.d.ts +2 -2
- package/dist/core/people/inbox-entry.js +9 -2
- package/dist/core/people/inbox-entry.js.map +1 -1
- package/dist/core/people/open-delivery.d.ts +6 -2
- package/dist/core/people/open-delivery.js +3 -1
- package/dist/core/people/open-delivery.js.map +1 -1
- package/dist/core/people/opened-of.d.ts +7 -2
- package/dist/core/people/opened-of.js +6 -1
- package/dist/core/people/opened-of.js.map +1 -1
- package/dist/core/people/person-crew.d.ts +2 -0
- package/dist/core/people/person-crew.js +6 -2
- package/dist/core/people/person-crew.js.map +1 -1
- package/dist/core/people/ports.d.ts +158 -5
- package/dist/core/people/read-wake-channels.d.ts +42 -0
- package/dist/core/people/read-wake-channels.js +21 -0
- package/dist/core/people/read-wake-channels.js.map +1 -0
- package/dist/core/people/turn-email-channel.d.ts +21 -0
- package/dist/core/people/turn-email-channel.js +22 -0
- package/dist/core/people/turn-email-channel.js.map +1 -0
- package/dist/core/people/turn-off-web-push.d.ts +13 -0
- package/dist/core/people/turn-off-web-push.js +14 -0
- package/dist/core/people/turn-off-web-push.js.map +1 -0
- package/dist/core/people/turn-on-web-push.d.ts +35 -0
- package/dist/core/people/turn-on-web-push.js +49 -0
- package/dist/core/people/turn-on-web-push.js.map +1 -0
- package/dist/core/people/wait-on-person-ship.d.ts +44 -0
- package/dist/core/people/wait-on-person-ship.js +92 -0
- package/dist/core/people/wait-on-person-ship.js.map +1 -0
- package/dist/core/people/wake-person.d.ts +40 -0
- package/dist/core/people/wake-person.js +74 -0
- package/dist/core/people/wake-person.js.map +1 -0
- package/dist/core/people/web-push-channel.d.ts +17 -0
- package/dist/core/people/web-push-channel.js +35 -0
- package/dist/core/people/web-push-channel.js.map +1 -0
- package/dist/core/requests/decide-request.d.ts +0 -2
- package/dist/core/requests/decide-request.js +3 -6
- package/dist/core/requests/decide-request.js.map +1 -1
- package/dist/core/requests/list-to-decide.js +1 -1
- package/dist/core/requests/list-to-decide.js.map +1 -1
- package/dist/core/shared/errors.d.ts +1 -1
- package/dist/core/shared/errors.js.map +1 -1
- package/dist/core/sign-in/ports.d.ts +13 -0
- package/dist/core/vault/credential.d.ts +6 -2
- package/dist/party-workers.d.ts +9 -1
- package/dist/party-workers.js +37 -5
- package/dist/party-workers.js.map +1 -1
- package/dist/person-waiters.d.ts +30 -0
- package/dist/person-waiters.js +89 -0
- package/dist/person-waiters.js.map +1 -0
- package/package.json +7 -3
- package/src/adapters/prisma/migrations/20261023120000_party_bearer_hash/migration.sql +4 -0
- package/src/adapters/prisma/migrations/20261023130000_client_credentials/migration.sql +5 -0
- package/src/adapters/prisma/migrations/20261023200000_a2a_tasks/migration.sql +20 -0
- package/src/adapters/prisma/migrations/20261023210000_tool_switches/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261024090000_a2a_pushes/migration.sql +37 -0
- package/src/adapters/prisma/migrations/20261024100000_party_is_repeatable/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261024110000_a2a_agent_calls/migration.sql +29 -0
- package/src/adapters/prisma/migrations/20261024115000_wakes/migration.sql +17 -0
- package/src/adapters/prisma/migrations/20261024120000_focused_pages/migration.sql +11 -0
- package/src/adapters/prisma/migrations/20261024130000_web_push_subscriptions/migration.sql +14 -0
- package/src/adapters/prisma/schema.prisma +159 -5
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +4 -0
- package/web/.next/build-manifest.json +39 -3
- package/web/.next/diagnostics/route-bundle-stats.json +91 -42
- package/web/.next/fallback-build-manifest.json +3 -3
- package/web/.next/next-minimal-server.js.nft.json +1 -1
- package/web/.next/next-server.js.nft.json +1 -1
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/routes-manifest.json +26 -0
- package/web/.next/server/app/(console)/meetings/[meetingId]/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/meetings/[meetingId]/page/build-manifest.json +23 -0
- package/web/.next/server/app/(console)/meetings/[meetingId]/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/(console)/meetings/[meetingId]/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +35 -0
- package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +21 -0
- package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.map +5 -0
- package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +24 -4
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +10 -8
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +22 -2
- package/web/.next/server/app/(console)/outside-parties/[name]/page.js +8 -5
- package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +24 -4
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +9 -6
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +26 -6
- package/web/.next/server/app/(console)/outside-parties/add/page.js +10 -5
- package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/build-manifest.json +23 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +25 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js +20 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.map +5 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/build-manifest.json +23 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +25 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +21 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.map +5 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
- package/web/.next/server/app/(console)/outside-parties/page.js +3 -3
- package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/overview/changes/route.js +3 -2
- package/web/.next/server/app/(console)/overview/changes/route.js.nft.json +1 -1
- package/web/.next/server/app/(console)/overview/focus/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/overview/focus/route/build-manifest.json +12 -0
- package/web/.next/server/app/(console)/overview/focus/route/server-reference-manifest.json +4 -0
- package/web/.next/server/app/(console)/overview/focus/route.js +7 -0
- package/web/.next/server/app/(console)/overview/focus/route.js.map +5 -0
- package/web/.next/server/app/(console)/overview/focus/route.js.nft.json +1 -0
- package/web/.next/server/app/(console)/overview/focus/route_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/overview/page/server-reference-manifest.json +34 -4
- package/web/.next/server/app/(console)/overview/page.js +5 -5
- package/web/.next/server/app/(console)/overview/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page/server-reference-manifest.json +2 -2
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js +2 -2
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/(console)/parties/page.js +2 -2
- package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page.js +3 -3
- package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error/page.js +3 -3
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page.js +3 -3
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/authorize/failed/page.js +2 -2
- package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
- package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/authorize/pick/page.js +2 -2
- package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
- package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/authorize/waiting/approval/page.js +2 -2
- package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
- package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app-paths-manifest.json +4 -0
- package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_overview_focus_route_actions_10hgyjvv-6fus.js +3 -0
- package/web/.next/server/chunks/[externals]__0fgpzedhhntg9._.js +3 -0
- package/web/.next/server/chunks/[externals]__0fgpzedhhntg9._.js.map +1 -0
- package/web/.next/server/chunks/{[root-of-the-server]__0k8jiujb_0xtx._.js → [root-of-the-server]__0ykc8bq_c06a1._.js} +22 -22
- package/web/.next/server/chunks/[root-of-the-server]__0ykc8bq_c06a1._.js.map +1 -0
- package/web/.next/server/chunks/_04is-uopj3op9._.js +3 -0
- package/web/.next/server/chunks/_04is-uopj3op9._.js.map +1 -0
- package/web/.next/server/chunks/_1-fw4-pwzazl4._.js +3 -0
- package/web/.next/server/chunks/_1-fw4-pwzazl4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +3 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +3 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +3 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +3 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +3 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__12_to1hq55n1y._.js → [root-of-the-server]__0-og0bl8lr2xq._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__12_to1hq55n1y._.js.map → [root-of-the-server]__0-og0bl8lr2xq._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__00erqdm9cmhh7._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__00erqdm9cmhh7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__07udzu2zwg_74._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__1yydhn6iokbm4._.js.map → [root-of-the-server]__07udzu2zwg_74._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__197il4swfpq1a._.js → [root-of-the-server]__0a68v9ynev4q6._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__197il4swfpq1a._.js.map → [root-of-the-server]__0a68v9ynev4q6._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0l2_dk9d4o01n._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__1vkw2kvzx6fpw._.js.map → [root-of-the-server]__0l2_dk9d4o01n._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0m57jyae0dn_7._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0m57jyae0dn_7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0n2us07jk-78w._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0n2us07jk-78w._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rr5u24i9tjyc._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__1imel8atfb770._.js.map → [root-of-the-server]__0rr5u24i9tjyc._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11w36a4le04vy._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11w36a4le04vy._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1dtyycvqa6uht._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1dtyycvqa6uht._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1gb-3dttuacyz._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1gb-3dttuacyz._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1k25lo5ka4mgd._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1k25lo5ka4mgd._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1m9atpy0vkbmj._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0dywrno7zb0r_._.js.map → [root-of-the-server]__1m9atpy0vkbmj._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1n_sq_58wdluh._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1n_sq_58wdluh._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1w5swo8gmjyx6._.js +3 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__216xd8otb96uo._.js.map → [root-of-the-server]__1w5swo8gmjyx6._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1wl0vw-n8lbkn._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1yjb00o7x58xv._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1yjb00o7x58xv._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js +3 -0
- package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
- package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +2 -2
- package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0bhvvyz0q_0ja._.js +4 -0
- package/web/.next/server/chunks/ssr/_0bhvvyz0q_0ja._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
- package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
- package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +4 -0
- package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
- package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
- package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
- package/web/.next/server/chunks/ssr/node_modules_1wdusod3fyk3s._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_1wdusod3fyk3s._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcy-jnk5o43.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcy-jnk5o43.js.map +1 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e8cobt3o_8ur.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0e8cobt3o_8ur.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0gzed-epom5si.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0gzed-epom5si.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bt2ioufqh6fl.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bt2ioufqh6fl.js.map +1 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0-ipfysjmro.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0-ipfysjmro.js.map +1 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20d8hq6wsqwh_.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20d8hq6wsqwh_.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_0-ufi2al5ubig._.js +3 -0
- package/web/.next/server/chunks/ssr/web_0-ufi2al5ubig._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js +3 -0
- package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_0_jk9eione6lx._.js +3 -0
- package/web/.next/server/chunks/ssr/web_0_jk9eione6lx._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +3 -0
- package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js +1 -1
- package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_0ahlkugj7fu3n._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_0ahlkugj7fu3n._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_0i_kwiszuiqcp._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_0i_kwiszuiqcp._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_0xnlgtw8bfqaa._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_0xnlgtw8bfqaa._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_1--8ungjj--ht._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_1--8ungjj--ht._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_19v3mlx8c_h1-._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_19v3mlx8c_h1-._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_1_2m6l73qk7qw._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_1_2m6l73qk7qw._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_1qq_ruz59ldc9._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_1qq_ruz59ldc9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_forms_1d1jyea2jni9o._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_forms_1d1jyea2jni9o._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_forms_form-state_ts_2142hiopykfk1._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_forms_form-state_ts_2142hiopykfk1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_forms_ui_credential-fields_tsx_0l-w19zg-7x4b._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_forms_ui_credential-fields_tsx_0l-w19zg-7x4b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_outside-party_ui_20x5u9bhxeehi._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_outside-party_ui_20x5u9bhxeehi._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_overview_16dyz2ngvs14b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_overview_state_1wuk95dw2_whp._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_overview_state_1wuk95dw2_whp._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_overview_ui_action-button_tsx_14-5f45xbzbi6._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_overview_ui_action-button_tsx_14-5f45xbzbi6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js.map +1 -1
- package/web/.next/server/middleware-build-manifest.js +39 -3
- package/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/server/next-font-manifest.json +12 -0
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/server/preview-props.json +3 -3
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +150 -24
- package/web/.next/static/chunks/183mifyxtyab5.css +3 -0
- package/web/.next/static/chunks/1bnlc-p1_cm01.js +1 -0
- package/web/.next/static/chunks/1juj2_tl8d16x.js +1 -0
- package/web/.next/static/chunks/1jvae6c-4jwji.js +1 -0
- package/web/.next/static/chunks/1pafc2gfswboo.js +1 -0
- package/web/.next/static/chunks/2-t4g6oq6tjkg.js +1 -0
- package/web/.next/static/chunks/21s2_ccrw90ok.js +1 -0
- package/web/.next/static/chunks/2hsi-sahla2aj.js +1 -0
- package/web/.next/static/chunks/2l27ty2dy2pb4.js +1 -0
- package/web/.next/static/chunks/2n2qsek2y94y5.js +1 -0
- package/web/.next/static/chunks/3o8h4o3utbvgc.js +1 -0
- package/web/.next/static/chunks/3tss77vu57zju.js +1 -0
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/types/routes.d.ts +6 -2
- package/web/.next/types/validator.ts +61 -0
- package/web/public/wake-worker.js +17 -0
- package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__0k8jiujb_0xtx._.js.map +0 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_10eg3jn_qq_u_.js +0 -3
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_10eg3jn_qq_u_.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0-liudmjwlqmo._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0dywrno7zb0r_._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0hosi33y5xecr._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-sy-ven9f2f._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-sy-ven9f2f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1imel8atfb770._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1rmy72sai5-kh._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1rmy72sai5-kh._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1vkw2kvzx6fpw._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1yydhn6iokbm4._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1yyfc4xf3xa-s._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__216xd8otb96uo._.js +0 -3
- package/web/.next/server/chunks/ssr/_080ao10j8x4km._.js +0 -4
- package/web/.next/server/chunks/ssr/_080ao10j8x4km._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1gb_kwx9jg1et._.js +0 -4
- package/web/.next/server/chunks/ssr/_1gb_kwx9jg1et._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1ulh8nd8_yv_3._.js +0 -4
- package/web/.next/server/chunks/ssr/_1ulh8nd8_yv_3._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_compiled_@opentelemetry_api_index_1oy1nwhip-98t.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_06ue1l1ujajps._.js +0 -3
- package/web/.next/server/chunks/ssr/web_06ue1l1ujajps._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_1_rm1ivvp726s._.js +0 -3
- package/web/.next/server/chunks/ssr/web_1_rm1ivvp726s._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_0k3zd1eymtkgq._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_forms_03k1kg82ux_ee._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_forms_1-88lvs4ivi73._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_forms_15gausi3cpweg._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_outside-party_ui_outside-party_tsx_06a94oekz1ckq._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_overview_state_inbox-panel_tsx_03hlegjsc27sb._.js.map +0 -1
- package/web/.next/static/chunks/1l1gmjf-hz7u_.css +0 -3
- package/web/.next/static/chunks/1ma7v1viiz247.js +0 -1
- package/web/.next/static/chunks/1tfvu44eel7g5.js +0 -1
- package/web/.next/static/chunks/2bg4wnfhuftsq.js +0 -1
- package/web/.next/static/chunks/2yplpvvjibfqw.js +0 -1
- package/web/.next/static/chunks/34syicr_5c5u1.js +0 -1
- package/web/.next/static/chunks/43zbq11isnos4.js +0 -1
- /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
- /package/web/.next/static/{ESz77-eaR5ViaU4LRqo0i → 3whgLnRJ9iJe_25h6KGzQ}/_buildManifest.js +0 -0
- /package/web/.next/static/{ESz77-eaR5ViaU4LRqo0i → 3whgLnRJ9iJe_25h6KGzQ}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{ESz77-eaR5ViaU4LRqo0i → 3whgLnRJ9iJe_25h6KGzQ}/_ssgManifest.js +0 -0
package/dist/config.d.ts
CHANGED
|
@@ -29,6 +29,20 @@ export interface Config {
|
|
|
29
29
|
gatewaySecret: string;
|
|
30
30
|
/** How long an outside MCP client's call waits for its answer before it is answered its handle. */
|
|
31
31
|
mcpWaitMaxMs: number;
|
|
32
|
+
/** The least time between two wakes the email channel sends one person ship (wake a person, W3, W10). */
|
|
33
|
+
emailWakeWindowMs: number;
|
|
34
|
+
/**
|
|
35
|
+
* The gateway's push keys (VAPID), which sign each web push wake, and the
|
|
36
|
+
* subject a push service may contact about them, a mailto: or https: URL.
|
|
37
|
+
* Unset, the overview offers no web push (wake a person, S3).
|
|
38
|
+
*/
|
|
39
|
+
webPush: {
|
|
40
|
+
publicKey: string;
|
|
41
|
+
privateKey: string;
|
|
42
|
+
subject: string;
|
|
43
|
+
} | undefined;
|
|
44
|
+
/** The least time between two wakes web push sends one person ship (wake a person, W3, W10). */
|
|
45
|
+
webPushWakeWindowMs: number;
|
|
32
46
|
/**
|
|
33
47
|
* pagasae, where people sign in (decision 0054), and the gateway's client
|
|
34
48
|
* there, registered with the redirect URI `<public URL>/pagasae/callback`.
|
package/dist/config.js
CHANGED
|
@@ -5,6 +5,11 @@ const INSTALLATION_TOKEN_MIN_LENGTH = 32;
|
|
|
5
5
|
const GATEWAY_SECRET_MIN_LENGTH = 32;
|
|
6
6
|
/** How long an MCP client's call waits for its answer unless set (Q13). */
|
|
7
7
|
export const MCP_WAIT_MAX_MS_DEFAULT = 10_000;
|
|
8
|
+
/** The email channel's window unless set: at most one wake per hour (wake a person, W10). */
|
|
9
|
+
const EMAIL_WAKE_WINDOW_MINUTES_DEFAULT = 60;
|
|
10
|
+
/** Web push's window unless set: at most one wake per 10 minutes (wake a person, W10). */
|
|
11
|
+
const WEB_PUSH_WAKE_WINDOW_MINUTES_DEFAULT = 10;
|
|
12
|
+
const MINUTE_MS = 60_000;
|
|
8
13
|
const environmentSchema = z.object({
|
|
9
14
|
DATABASE_URL: z.url({ protocol: /^postgres(ql)?$/, error: 'must be a postgres:// or postgresql:// URL' }),
|
|
10
15
|
FLEET_URL: z.url({ protocol: /^https?$/, error: 'must be an http:// or https:// URL' }),
|
|
@@ -14,6 +19,11 @@ const environmentSchema = z.object({
|
|
|
14
19
|
LOG_LEVEL: z.enum(['fatal', 'error', 'warn', 'info', 'debug', 'trace', 'silent']).default('info'),
|
|
15
20
|
GATEWAY_PUBLIC_URL: z.url({ protocol: /^https?$/, error: 'must be an http:// or https:// URL' }).optional(),
|
|
16
21
|
MCP_WAIT_MAX_MS: z.coerce.number().int().min(0).default(MCP_WAIT_MAX_MS_DEFAULT),
|
|
22
|
+
EMAIL_WAKE_WINDOW_MINUTES: z.coerce.number().int().min(1).default(EMAIL_WAKE_WINDOW_MINUTES_DEFAULT),
|
|
23
|
+
WEB_PUSH_WAKE_WINDOW_MINUTES: z.coerce.number().int().min(1).default(WEB_PUSH_WAKE_WINDOW_MINUTES_DEFAULT),
|
|
24
|
+
WEB_PUSH_PUBLIC_KEY: z.string().min(1).optional(),
|
|
25
|
+
WEB_PUSH_PRIVATE_KEY: z.string().min(1).optional(),
|
|
26
|
+
WEB_PUSH_SUBJECT: z.string().min(1).optional(),
|
|
17
27
|
INSTALLATION_TOKEN: z.string().min(INSTALLATION_TOKEN_MIN_LENGTH, { error: `must hold at least ${String(INSTALLATION_TOKEN_MIN_LENGTH)} characters` }).optional(),
|
|
18
28
|
PAGASAE_URL: z.url({ protocol: /^https?$/, error: 'must be an http:// or https:// URL' }).optional(),
|
|
19
29
|
PAGASAE_CLIENT_ID: z.string().min(1).optional(),
|
|
@@ -47,6 +57,9 @@ export function loadConfig(environment) {
|
|
|
47
57
|
apiUrl: `http://127.0.0.1:${String(variables.PORT)}`,
|
|
48
58
|
gatewaySecret: variables.GATEWAY_SECRET,
|
|
49
59
|
mcpWaitMaxMs: variables.MCP_WAIT_MAX_MS,
|
|
60
|
+
emailWakeWindowMs: variables.EMAIL_WAKE_WINDOW_MINUTES * MINUTE_MS,
|
|
61
|
+
webPush: webPushOf(variables),
|
|
62
|
+
webPushWakeWindowMs: variables.WEB_PUSH_WAKE_WINDOW_MINUTES * MINUTE_MS,
|
|
50
63
|
pagasae: pagasaeOf(variables),
|
|
51
64
|
pagasaeApp: pagasaeAppOf(variables),
|
|
52
65
|
};
|
|
@@ -73,6 +86,17 @@ function pagasaeAppOf(variables) {
|
|
|
73
86
|
}
|
|
74
87
|
return { clientId, clientSecret };
|
|
75
88
|
}
|
|
89
|
+
/** Web push's three settings: all of them, or none. */
|
|
90
|
+
function webPushOf(variables) {
|
|
91
|
+
const { WEB_PUSH_PUBLIC_KEY: publicKey, WEB_PUSH_PRIVATE_KEY: privateKey, WEB_PUSH_SUBJECT: subject } = variables;
|
|
92
|
+
if (publicKey === undefined && privateKey === undefined && subject === undefined) {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
if (publicKey === undefined || privateKey === undefined || subject === undefined) {
|
|
96
|
+
throw new ConfigError('WEB_PUSH_PUBLIC_KEY, WEB_PUSH_PRIVATE_KEY and WEB_PUSH_SUBJECT: set all three, or none');
|
|
97
|
+
}
|
|
98
|
+
return { publicKey, privateKey, subject };
|
|
99
|
+
}
|
|
76
100
|
/** The database URL alone, for `aeolus-gateway migrate`. */
|
|
77
101
|
export function loadDatabaseUrl(environment) {
|
|
78
102
|
return parsed(databaseEnvironmentSchema, environment).DATABASE_URL;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,6FAA6F;AAC7F,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEzC,qFAAqF;AACrF,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;IACzG,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC;IACvF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,sBAAsB,MAAM,CAAC,yBAAyB,CAAC,aAAa,EAAE,CAAC;IAC1I,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9D,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjG,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3G,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAChF,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,sBAAsB,MAAM,CAAC,6BAA6B,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjK,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpG,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAEH,+DAA+D;AAC/D,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { FleetId } from '@aeolus-fleet/common';
|
|
2
|
+
import type { OAuthSecrets } from '../oauth/ports.js';
|
|
3
|
+
import type { PartyStore } from '../parties/ports.js';
|
|
4
|
+
import { type DomainError } from '../shared/errors.js';
|
|
5
|
+
import { type Result } from '../shared/result.js';
|
|
6
|
+
/** Who calls: the fleet and the A2A client party its bearer names. */
|
|
7
|
+
export interface A2aCaller {
|
|
8
|
+
fleetId: FleetId;
|
|
9
|
+
party: string;
|
|
10
|
+
}
|
|
11
|
+
export type AuthenticateA2aClientRefusal = DomainError<'NOT_AN_ACTOR' | 'OUTSIDE_PARTIES_OFF'>;
|
|
12
|
+
export type AuthenticateA2aClient = (bearer: string) => Promise<Result<A2aCaller, AuthenticateA2aClientRefusal>>;
|
|
13
|
+
/**
|
|
14
|
+
* Use case: whom an A2A call is for (decision 0060). The bearer an approver
|
|
15
|
+
* was shown names one A2A client party, so one fleet and one proxy ship;
|
|
16
|
+
* the gateway compares only its hash. While the fleet's outside parties are
|
|
17
|
+
* off, every call is refused (decision 0056).
|
|
18
|
+
*/
|
|
19
|
+
export declare function createAuthenticateA2aClient(deps: {
|
|
20
|
+
parties: Pick<PartyStore, 'findByBearer'>;
|
|
21
|
+
secrets: Pick<OAuthSecrets, 'hashOf'>;
|
|
22
|
+
servesOutsideParties: (fleetId: FleetId) => Promise<boolean>;
|
|
23
|
+
}): AuthenticateA2aClient;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { refuse } from '../shared/errors.js';
|
|
2
|
+
import { ok } from '../shared/result.js';
|
|
3
|
+
/**
|
|
4
|
+
* Use case: whom an A2A call is for (decision 0060). The bearer an approver
|
|
5
|
+
* was shown names one A2A client party, so one fleet and one proxy ship;
|
|
6
|
+
* the gateway compares only its hash. While the fleet's outside parties are
|
|
7
|
+
* off, every call is refused (decision 0056).
|
|
8
|
+
*/
|
|
9
|
+
export function createAuthenticateA2aClient(deps) {
|
|
10
|
+
return async (bearer) => {
|
|
11
|
+
const party = await deps.parties.findByBearer(deps.secrets.hashOf(bearer));
|
|
12
|
+
if (party?.kind !== 'a2aClient') {
|
|
13
|
+
return refuse('NOT_AN_ACTOR', 'Call with the bearer the gateway showed when your client was added');
|
|
14
|
+
}
|
|
15
|
+
if (!(await deps.servesOutsideParties(party.fleetId))) {
|
|
16
|
+
return refuse('OUTSIDE_PARTIES_OFF', "This fleet's outside parties are off");
|
|
17
|
+
}
|
|
18
|
+
return ok({ fleetId: party.fleetId, party: party.name });
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=authenticate-a2a-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticate-a2a-client.js","sourceRoot":"","sources":["../../../src/core/a2a-in/authenticate-a2a-client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAYtD;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAI3C;IACC,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3E,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC,cAAc,EAAE,oEAAoE,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACtD,OAAO,MAAM,CAAC,qBAAqB,EAAE,sCAAsC,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Use case: the pushes due now are POSTed to their webhooks (slice 4). Each
|
|
3
|
+
* config's pushes go in the order kept: a later one waits while an earlier
|
|
4
|
+
* one is tried again. A 2xx delivers it. A 408, a 429, a 5xx or no answer
|
|
5
|
+
* tries it again after the gateway's waits, each longer than the last, and
|
|
6
|
+
* gives it up after the last; so does a host that resolves to nothing for now. Any other answer gives it up at once, as does
|
|
7
|
+
* a host that resolves to an inside address now, or an inside address the
|
|
8
|
+
* POST was about to connect to. A push given up leaves the task as it was:
|
|
9
|
+
* GetTask still answers it.
|
|
10
|
+
*/
|
|
11
|
+
import type { Clock } from '../shared/clock.js';
|
|
12
|
+
import type { A2aCaller } from './authenticate-a2a-client.js';
|
|
13
|
+
import type { HostResolver, Pushes, WebhookPoster } from './ports.js';
|
|
14
|
+
export type DeliverPushes = (caller: A2aCaller) => Promise<void>;
|
|
15
|
+
interface DeliverPushesDeps {
|
|
16
|
+
pushes: Pushes;
|
|
17
|
+
resolver: HostResolver;
|
|
18
|
+
poster: WebhookPoster;
|
|
19
|
+
clock: Clock;
|
|
20
|
+
/** The wait before each attempt again; after the last, the push is given up. */
|
|
21
|
+
againWaitsMs: readonly number[];
|
|
22
|
+
}
|
|
23
|
+
export declare function createDeliverPushes(deps: DeliverPushesDeps): DeliverPushes;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { reachOf } from './webhook-address.js';
|
|
2
|
+
/** The most pushes POSTed in one round, for one party. */
|
|
3
|
+
const ROUND_MAX = 20;
|
|
4
|
+
const HTTP_REQUEST_TIMEOUT = 408;
|
|
5
|
+
const HTTP_TOO_MANY_REQUESTS = 429;
|
|
6
|
+
const HTTP_SUCCESS = { from: 200, to: 299 };
|
|
7
|
+
const HTTP_SERVER_ERROR = 500;
|
|
8
|
+
/** Whether an answer of this status is worth another attempt. */
|
|
9
|
+
const isWorthAgain = (status) => status === HTTP_REQUEST_TIMEOUT || status === HTTP_TOO_MANY_REQUESTS || status >= HTTP_SERVER_ERROR;
|
|
10
|
+
export function createDeliverPushes(deps) {
|
|
11
|
+
/** What came of one attempt: delivered, worth another, or given up with why. */
|
|
12
|
+
const attempt = async (push) => {
|
|
13
|
+
const reach = await reachOf(deps.resolver, new URL(push.config.url));
|
|
14
|
+
if (reach === 'inside') {
|
|
15
|
+
return { outcome: 'givenUp', reason: 'The webhook resolves to an inside address' };
|
|
16
|
+
}
|
|
17
|
+
if (reach === 'unresolved') {
|
|
18
|
+
return { outcome: 'again' };
|
|
19
|
+
}
|
|
20
|
+
const posted = await deps.poster.post(push.config.url, { body: push.body, token: push.config.token, authentication: push.config.authentication });
|
|
21
|
+
if (!posted.isOk) {
|
|
22
|
+
return posted.error.kind === 'ADDRESS_REFUSED' ? { outcome: 'givenUp', reason: 'The webhook connected to an inside address' } : { outcome: 'again' };
|
|
23
|
+
}
|
|
24
|
+
const { status } = posted.value;
|
|
25
|
+
if (status >= HTTP_SUCCESS.from && status <= HTTP_SUCCESS.to) {
|
|
26
|
+
return { outcome: 'delivered' };
|
|
27
|
+
}
|
|
28
|
+
return isWorthAgain(status) ? { outcome: 'again' } : { outcome: 'givenUp', reason: `The webhook answered ${String(status)}` };
|
|
29
|
+
};
|
|
30
|
+
return async (caller) => {
|
|
31
|
+
for (const push of await deps.pushes.due(caller, { now: deps.clock.now(), limit: ROUND_MAX })) {
|
|
32
|
+
const came = await attempt(push);
|
|
33
|
+
const attempts = push.attempts + 1;
|
|
34
|
+
const at = deps.clock.now();
|
|
35
|
+
const wait = deps.againWaitsMs[attempts - 1];
|
|
36
|
+
if (came.outcome === 'delivered') {
|
|
37
|
+
await deps.pushes.delivered(caller, { pushId: push.pushId, attempts, at });
|
|
38
|
+
}
|
|
39
|
+
else if (came.outcome === 'again' && wait !== undefined) {
|
|
40
|
+
await deps.pushes.again(caller, { pushId: push.pushId, attempts, at: new Date(at.getTime() + wait) });
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
await deps.pushes.givenUp(caller, { pushId: push.pushId, attempts, reason: came.outcome === 'givenUp' ? came.reason : `No answer after ${String(attempts)} attempts`, at });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=deliver-pushes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliver-pushes.js","sourceRoot":"","sources":["../../../src/core/a2a-in/deliver-pushes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type DomainError } from '../shared/errors.js';
|
|
2
|
+
import { type Result } from '../shared/result.js';
|
|
3
|
+
import type { A2aCaller } from './authenticate-a2a-client.js';
|
|
4
|
+
import type { ListReachedShips, ListReachedShipsRefusal, ReachedShip } from './list-reached-ships.js';
|
|
5
|
+
export type FindReachedShipRefusal = ListReachedShipsRefusal | DomainError<'UNKNOWN_ALIAS'>;
|
|
6
|
+
export type FindReachedShip = (call: A2aCaller & {
|
|
7
|
+
alias: string;
|
|
8
|
+
}) => Promise<Result<ReachedShip, FindReachedShipRefusal>>;
|
|
9
|
+
/**
|
|
10
|
+
* Use case: the ship an A2A call's alias names (decision 0060). The alias
|
|
11
|
+
* is derived, never looked up: the gateway computes the alias of each ship
|
|
12
|
+
* the client reaches now and takes the one that matches. An alias of no
|
|
13
|
+
* ship and one of a ship the client cannot reach get the same refusal, so
|
|
14
|
+
* the client learns nothing about ships it cannot reach.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createFindReachedShip(deps: {
|
|
17
|
+
listReachedShips: ListReachedShips;
|
|
18
|
+
}): FindReachedShip;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { refuse } from '../shared/errors.js';
|
|
2
|
+
import { ok } from '../shared/result.js';
|
|
3
|
+
/**
|
|
4
|
+
* Use case: the ship an A2A call's alias names (decision 0060). The alias
|
|
5
|
+
* is derived, never looked up: the gateway computes the alias of each ship
|
|
6
|
+
* the client reaches now and takes the one that matches. An alias of no
|
|
7
|
+
* ship and one of a ship the client cannot reach get the same refusal, so
|
|
8
|
+
* the client learns nothing about ships it cannot reach.
|
|
9
|
+
*/
|
|
10
|
+
export function createFindReachedShip(deps) {
|
|
11
|
+
return async ({ alias, ...caller }) => {
|
|
12
|
+
const reached = await deps.listReachedShips(caller);
|
|
13
|
+
if (!reached.isOk) {
|
|
14
|
+
return reached;
|
|
15
|
+
}
|
|
16
|
+
const ship = reached.value.find((each) => each.alias === alias);
|
|
17
|
+
return ship === undefined ? refuse('UNKNOWN_ALIAS', 'No such agent') : ok(ship);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=find-reached-ship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-reached-ship.js","sourceRoot":"","sources":["../../../src/core/a2a-in/find-reached-ship.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAQtD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA4C;IAChF,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAChE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Use case: follow an outside A2A client's task as it changes (slice 3,
|
|
3
|
+
* interop 3.4), for a stream. It yields the task as it stands first, then
|
|
4
|
+
* the task each time its state, or the replies it holds, change, read from
|
|
5
|
+
* the call store, where the worker keeps each reply as it comes. It ends
|
|
6
|
+
* when the task ends, when the task can no longer be read, or when its
|
|
7
|
+
* signal is aborted (the client dropped the stream). Nothing is lost while
|
|
8
|
+
* no stream follows: a new follow yields the task as it stands.
|
|
9
|
+
*/
|
|
10
|
+
import type { ClientCalls } from '../mcp-in/ports.js';
|
|
11
|
+
import type { Sleep } from '../mcp-out/run-party.js';
|
|
12
|
+
import type { Clock } from '../shared/clock.js';
|
|
13
|
+
import type { A2aCaller } from './authenticate-a2a-client.js';
|
|
14
|
+
import { type TaskView } from './task-view.js';
|
|
15
|
+
export type FollowA2aTask = (input: {
|
|
16
|
+
caller: A2aCaller;
|
|
17
|
+
taskId: string;
|
|
18
|
+
signal: AbortSignal;
|
|
19
|
+
}) => AsyncGenerator<TaskView, void, undefined>;
|
|
20
|
+
export declare function createFollowA2aTask(deps: {
|
|
21
|
+
calls: Pick<ClientCalls, 'findTask'>;
|
|
22
|
+
clock: Clock;
|
|
23
|
+
sleep: Sleep;
|
|
24
|
+
pollMs: number;
|
|
25
|
+
}): FollowA2aTask;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { isTerminal, markOf, taskViewOf } from './task-view.js';
|
|
2
|
+
export function createFollowA2aTask(deps) {
|
|
3
|
+
return async function* follow({ caller, taskId, signal }) {
|
|
4
|
+
let yielded;
|
|
5
|
+
while (!signal.aborted) {
|
|
6
|
+
const task = await deps.calls.findTask(caller, taskId);
|
|
7
|
+
if (task === undefined) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const view = taskViewOf(task, deps.clock.now());
|
|
11
|
+
const mark = markOf(view);
|
|
12
|
+
if (mark !== yielded) {
|
|
13
|
+
yielded = mark;
|
|
14
|
+
yield view;
|
|
15
|
+
}
|
|
16
|
+
if (isTerminal(view)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
await deps.sleep(deps.pollMs, signal);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=follow-a2a-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"follow-a2a-task.js","sourceRoot":"","sources":["../../../src/core/a2a-in/follow-a2a-task.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAiB,MAAM,gBAAgB,CAAC;AAI/E,MAAM,UAAU,mBAAmB,CAAC,IAA0F;IAC5H,OAAO,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QACtD,IAAI,OAA2B,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACrB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,IAAI,CAAC;YACb,CAAC;YACD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Capability } from '../mcp-in/ports.js';
|
|
2
|
+
/** A part, as the content rule tells them apart: text, data, or another kind (a file, raw bytes). */
|
|
3
|
+
export type InboundPart = {
|
|
4
|
+
kind: 'text';
|
|
5
|
+
text: string;
|
|
6
|
+
mediaType?: string;
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'data';
|
|
9
|
+
data: unknown;
|
|
10
|
+
mediaType?: string;
|
|
11
|
+
} | {
|
|
12
|
+
kind: 'other';
|
|
13
|
+
};
|
|
14
|
+
export interface InboundMessage {
|
|
15
|
+
/** The client's id of the message: the send's idempotency key. */
|
|
16
|
+
messageId: string;
|
|
17
|
+
/** The task it continues, if any. */
|
|
18
|
+
taskId?: string;
|
|
19
|
+
contextId?: string;
|
|
20
|
+
parts: InboundPart[];
|
|
21
|
+
/** The whole message as A2A JSON, as the client sent it. */
|
|
22
|
+
asJson: string;
|
|
23
|
+
}
|
|
24
|
+
/** The content type and payload the message travels as. */
|
|
25
|
+
export declare function contentOf(message: InboundMessage): {
|
|
26
|
+
contentType: string;
|
|
27
|
+
payload: string;
|
|
28
|
+
};
|
|
29
|
+
/** The capability a message of this content type calls: the first whose first input mode equals it; none when no first input mode does. */
|
|
30
|
+
export declare function capabilityFor(capabilities: readonly Capability[], contentType: string): Capability | undefined;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An inbound A2A message as the gateway's core reads it (decision 0060):
|
|
3
|
+
* its ids, its parts as far as the content rule tells them apart, and the
|
|
4
|
+
* whole message as A2A JSON. A ship that knows nothing of A2A still reads
|
|
5
|
+
* plain text or JSON, so one text or one data part travels as itself; any
|
|
6
|
+
* other message travels whole, as `application/a2a+json`.
|
|
7
|
+
*/
|
|
8
|
+
import { A2A_CONTENT_TYPE, isSameMediaType } from '../mcp-in/client-call.js';
|
|
9
|
+
const PLAIN_TEXT = 'text/plain';
|
|
10
|
+
const JSON_CONTENT_TYPE = 'application/json';
|
|
11
|
+
/** The content type and payload the message travels as. */
|
|
12
|
+
export function contentOf(message) {
|
|
13
|
+
const [only, ...more] = message.parts;
|
|
14
|
+
if (only !== undefined && more.length === 0) {
|
|
15
|
+
switch (only.kind) {
|
|
16
|
+
case 'text':
|
|
17
|
+
return { contentType: only.mediaType ?? PLAIN_TEXT, payload: only.text };
|
|
18
|
+
case 'data':
|
|
19
|
+
return { contentType: only.mediaType ?? JSON_CONTENT_TYPE, payload: JSON.stringify(only.data) };
|
|
20
|
+
case 'other':
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return { contentType: A2A_CONTENT_TYPE, payload: message.asJson };
|
|
25
|
+
}
|
|
26
|
+
/** The capability a message of this content type calls: the first whose first input mode equals it; none when no first input mode does. */
|
|
27
|
+
export function capabilityFor(capabilities, contentType) {
|
|
28
|
+
return capabilities.find((capability) => {
|
|
29
|
+
const [first] = capability.inputModes ?? [];
|
|
30
|
+
return first !== undefined && isSameMediaType(first, contentType);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=inbound-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inbound-message.js","sourceRoot":"","sources":["../../../src/core/a2a-in/inbound-message.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAiB7E,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAE7C,2DAA2D;AAC3D,MAAM,UAAU,SAAS,CAAC,OAAuB;IAC/C,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IACtC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3E,KAAK,MAAM;gBACT,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,IAAI,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClG,KAAK,OAAO;gBACV,MAAM;QACV,CAAC;IACH,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACpE,CAAC;AAED,2IAA2I;AAC3I,MAAM,UAAU,aAAa,CAAC,YAAmC,EAAE,WAAmB;IACpF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;QACtC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAK,KAAK,SAAS,IAAI,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ClientCalls } from '../mcp-in/ports.js';
|
|
2
|
+
import type { Clock } from '../shared/clock.js';
|
|
3
|
+
import type { A2aCaller } from './authenticate-a2a-client.js';
|
|
4
|
+
import { type TaskView } from './task-view.js';
|
|
5
|
+
export type ListA2aTasks = (caller: A2aCaller, filter: {
|
|
6
|
+
pageSize?: number;
|
|
7
|
+
pageToken?: string;
|
|
8
|
+
contextId?: string;
|
|
9
|
+
}) => Promise<{
|
|
10
|
+
tasks: TaskView[];
|
|
11
|
+
next: string | null;
|
|
12
|
+
pageSize: number;
|
|
13
|
+
}>;
|
|
14
|
+
/** Use case: an outside A2A client lists its own tasks, newest first, a page at a time, in one context or all (ListTasks); never another party's. */
|
|
15
|
+
export declare function createListA2aTasks(deps: {
|
|
16
|
+
calls: Pick<ClientCalls, 'listTasks'>;
|
|
17
|
+
clock: Clock;
|
|
18
|
+
}): ListA2aTasks;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { taskViewOf } from './task-view.js';
|
|
2
|
+
/** The most tasks a page holds, and how many when the caller names no size. */
|
|
3
|
+
const PAGE_SIZE_MAX = 100;
|
|
4
|
+
const PAGE_SIZE_DEFAULT = 50;
|
|
5
|
+
/** Use case: an outside A2A client lists its own tasks, newest first, a page at a time, in one context or all (ListTasks); never another party's. */
|
|
6
|
+
export function createListA2aTasks(deps) {
|
|
7
|
+
return async (caller, { pageSize, pageToken, contextId }) => {
|
|
8
|
+
const limit = Math.min(Math.max(pageSize ?? PAGE_SIZE_DEFAULT, 1), PAGE_SIZE_MAX);
|
|
9
|
+
const page = await deps.calls.listTasks(caller, { limit, ...(pageToken === undefined || pageToken === '' ? {} : { after: pageToken }), ...(contextId === undefined || contextId === '' ? {} : { contextId }) });
|
|
10
|
+
const now = deps.clock.now();
|
|
11
|
+
return { tasks: page.tasks.map((task) => taskViewOf(task, now)), next: page.next, pageSize: limit };
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=list-a2a-tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-a2a-tasks.js","sourceRoot":"","sources":["../../../src/core/a2a-in/list-a2a-tasks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAiB,MAAM,gBAAgB,CAAC;AAE3D,+EAA+E;AAC/E,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAI7B,qJAAqJ;AACrJ,MAAM,UAAU,kBAAkB,CAAC,IAA6D;IAC9F,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,iBAAiB,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAChN,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACtG,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ClientCalls } from '../mcp-in/ports.js';
|
|
2
|
+
import { type DomainError } from '../shared/errors.js';
|
|
3
|
+
import { type Result } from '../shared/result.js';
|
|
4
|
+
import type { A2aCaller } from './authenticate-a2a-client.js';
|
|
5
|
+
import type { PushConfigs } from './ports.js';
|
|
6
|
+
import { type PushConfigView } from './push-config-view.js';
|
|
7
|
+
export type ListPushConfigs = (input: {
|
|
8
|
+
caller: A2aCaller;
|
|
9
|
+
taskId: string;
|
|
10
|
+
pageSize?: number;
|
|
11
|
+
pageToken?: string;
|
|
12
|
+
}) => Promise<Result<{
|
|
13
|
+
configs: PushConfigView[];
|
|
14
|
+
next: string | null;
|
|
15
|
+
}, DomainError<'TASK_NOT_FOUND'>>>;
|
|
16
|
+
/** Use case: an outside A2A client lists the push configs of one of its own tasks (ListTaskPushNotificationConfigs, slice 4), a page at a time, without their credentials. */
|
|
17
|
+
export declare function createListPushConfigs(deps: {
|
|
18
|
+
calls: Pick<ClientCalls, 'findTask'>;
|
|
19
|
+
configs: Pick<PushConfigs, 'list'>;
|
|
20
|
+
}): ListPushConfigs;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { refuse } from '../shared/errors.js';
|
|
2
|
+
import { ok } from '../shared/result.js';
|
|
3
|
+
import { pushConfigViewOf } from './push-config-view.js';
|
|
4
|
+
/** The most configs a page holds, and how many when the client names no size. */
|
|
5
|
+
const PAGE_MAX = 100;
|
|
6
|
+
const PAGE_DEFAULT = 50;
|
|
7
|
+
/** Use case: an outside A2A client lists the push configs of one of its own tasks (ListTaskPushNotificationConfigs, slice 4), a page at a time, without their credentials. */
|
|
8
|
+
export function createListPushConfigs(deps) {
|
|
9
|
+
return async ({ caller, taskId, pageSize, pageToken }) => {
|
|
10
|
+
if ((await deps.calls.findTask(caller, taskId)) === undefined) {
|
|
11
|
+
return refuse('TASK_NOT_FOUND', `No task ${taskId}`);
|
|
12
|
+
}
|
|
13
|
+
const limit = pageSize === undefined || pageSize <= 0 ? PAGE_DEFAULT : Math.min(pageSize, PAGE_MAX);
|
|
14
|
+
const page = await deps.configs.list(caller, { taskId, limit, ...(pageToken === undefined || pageToken === '' ? {} : { after: pageToken }) });
|
|
15
|
+
return ok({ configs: page.configs.map(pushConfigViewOf), next: page.next });
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=list-push-configs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-push-configs.js","sourceRoot":"","sources":["../../../src/core/a2a-in/list-push-configs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAuB,MAAM,uBAAuB,CAAC;AAE9E,iFAAiF;AACjF,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,YAAY,GAAG,EAAE,CAAC;AAIxB,8KAA8K;AAC9K,MAAM,UAAU,qBAAqB,CAAC,IAAkF;IACtH,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;QACvD,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9D,OAAO,MAAM,CAAC,gBAAgB,EAAE,WAAW,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9I,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ShipId } from '@aeolus-fleet/common';
|
|
2
|
+
import type { DiscoveredStatement, Discovery, ShipAliases } from '../mcp-in/ports.js';
|
|
3
|
+
import type { PartyStore } from '../parties/ports.js';
|
|
4
|
+
import { type DomainError } from '../shared/errors.js';
|
|
5
|
+
import { type Result } from '../shared/result.js';
|
|
6
|
+
import type { A2aCaller } from './authenticate-a2a-client.js';
|
|
7
|
+
/** A ship an A2A client may send to now, as it knows it: by its alias, with its statement; its id stays inside the gateway. */
|
|
8
|
+
export interface ReachedShip {
|
|
9
|
+
shipId: ShipId;
|
|
10
|
+
alias: string;
|
|
11
|
+
statement: DiscoveredStatement;
|
|
12
|
+
}
|
|
13
|
+
export type ListReachedShipsRefusal = DomainError<'PARTY_NOT_CREWED' | 'FLEET_UNAVAILABLE'>;
|
|
14
|
+
export type ListReachedShips = (caller: A2aCaller) => Promise<Result<ReachedShip[], ListReachedShipsRefusal>>;
|
|
15
|
+
/**
|
|
16
|
+
* Use case: the ships an A2A client reaches now (decision 0060), as the
|
|
17
|
+
* fleet's discover answers its proxy ship: the gateway shows exactly what
|
|
18
|
+
* core answers and adds no reach of its own. argo is left out: every ship
|
|
19
|
+
* may send to argo, and argo is no card.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createListReachedShips(deps: {
|
|
22
|
+
parties: Pick<PartyStore, 'find'>;
|
|
23
|
+
discovery: Discovery;
|
|
24
|
+
aliases: ShipAliases;
|
|
25
|
+
}): ListReachedShips;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { refuse } from '../shared/errors.js';
|
|
2
|
+
import { ok } from '../shared/result.js';
|
|
3
|
+
/**
|
|
4
|
+
* Use case: the ships an A2A client reaches now (decision 0060), as the
|
|
5
|
+
* fleet's discover answers its proxy ship: the gateway shows exactly what
|
|
6
|
+
* core answers and adds no reach of its own. argo is left out: every ship
|
|
7
|
+
* may send to argo, and argo is no card.
|
|
8
|
+
*/
|
|
9
|
+
export function createListReachedShips(deps) {
|
|
10
|
+
return async ({ fleetId, party: name }) => {
|
|
11
|
+
const party = await deps.parties.find(fleetId, name);
|
|
12
|
+
if (party?.kind !== 'a2aClient' || party.state !== 'crewed' || party.crewToken === null) {
|
|
13
|
+
return refuse('PARTY_NOT_CREWED', `The party ${name} is not crewed`);
|
|
14
|
+
}
|
|
15
|
+
const discovered = await deps.discovery.discover(party.crewToken);
|
|
16
|
+
if (!discovered.isOk) {
|
|
17
|
+
return refuse('FLEET_UNAVAILABLE', `The fleet did not answer which ships the party reaches: ${discovered.error.message}`);
|
|
18
|
+
}
|
|
19
|
+
return ok(discovered.value.filter((ship) => ship.kind !== 'operator').map((ship) => ({ shipId: ship.shipId, alias: deps.aliases.aliasOf(fleetId, ship.shipId), statement: ship.statement })));
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=list-reached-ships.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-reached-ships.js","sourceRoot":"","sources":["../../../src/core/a2a-in/list-reached-ships.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AActD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAuF;IAC5H,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACxF,OAAO,MAAM,CAAC,kBAAkB,EAAE,aAAa,IAAI,gBAAgB,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,mBAAmB,EAAE,2DAA2D,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5H,CAAC;QACD,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAChM,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Use case: the changes of an outside A2A client's tasks become pushes to
|
|
3
|
+
* their webhooks (slice 4). For each of the party's push configs whose task
|
|
4
|
+
* is still followed, the task is read as it stands; once it changed since
|
|
5
|
+
* last noticed, its events are kept as pushes still to make, due now, with
|
|
6
|
+
* the change noticed in the same unit of work, so no change is pushed twice
|
|
7
|
+
* nor lost on a restart. A task that ended is followed no more.
|
|
8
|
+
*/
|
|
9
|
+
import type { ClientCalls } from '../mcp-in/ports.js';
|
|
10
|
+
import type { Clock } from '../shared/clock.js';
|
|
11
|
+
import type { A2aCaller } from './authenticate-a2a-client.js';
|
|
12
|
+
import type { PushConfigs, PushEvents } from './ports.js';
|
|
13
|
+
export type NoticeTaskChanges = (caller: A2aCaller) => Promise<void>;
|
|
14
|
+
export declare function createNoticeTaskChanges(deps: {
|
|
15
|
+
calls: Pick<ClientCalls, 'findTask'>;
|
|
16
|
+
configs: Pick<PushConfigs, 'following' | 'notice'>;
|
|
17
|
+
events: PushEvents;
|
|
18
|
+
clock: Clock;
|
|
19
|
+
}): NoticeTaskChanges;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { isTerminal, markOf, taskViewOf } from './task-view.js';
|
|
2
|
+
export function createNoticeTaskChanges(deps) {
|
|
3
|
+
return async (caller) => {
|
|
4
|
+
for (const config of await deps.configs.following(caller)) {
|
|
5
|
+
const task = await deps.calls.findTask(caller, config.taskId);
|
|
6
|
+
const now = deps.clock.now();
|
|
7
|
+
const view = task === undefined ? undefined : taskViewOf(task, now);
|
|
8
|
+
if (view === undefined) {
|
|
9
|
+
await deps.configs.notice(caller, { taskId: config.taskId, id: config.id, mark: config.noticedMark, isFollowing: false, events: [], at: now });
|
|
10
|
+
}
|
|
11
|
+
else if (markOf(view) !== config.noticedMark) {
|
|
12
|
+
await deps.configs.notice(caller, { taskId: config.taskId, id: config.id, mark: markOf(view), isFollowing: !isTerminal(view), events: deps.events.eventsOf(view), at: now });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=notice-task-changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notice-task-changes.js","sourceRoot":"","sources":["../../../src/core/a2a-in/notice-task-changes.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIhE,MAAM,UAAU,uBAAuB,CAAC,IAAoI;IAC1K,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,KAAK,MAAM,MAAM,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACpE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACjJ,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/K,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|