@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.
- 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/console-sessions.js +10 -6
- package/dist/adapters/fleet/console-sessions.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 +2 -2
- package/dist/adapters/fleet/rest-fleet-door.js +29 -5
- 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/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 +397 -9
- package/dist/adapters/trpc/router.js +247 -16
- 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 +273 -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/actors/authenticate-actor.d.ts +11 -5
- package/dist/core/actors/authenticate-actor.js +7 -3
- package/dist/core/actors/authenticate-actor.js.map +1 -1
- package/dist/core/actors/credential-of.d.ts +3 -2
- package/dist/core/actors/credential-of.js +4 -3
- package/dist/core/actors/credential-of.js.map +1 -1
- 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/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/operator/authenticate-operator.d.ts +5 -9
- package/dist/core/operator/authenticate-operator.js +4 -4
- package/dist/core/operator/authenticate-operator.js.map +1 -1
- package/dist/core/operator/ports.d.ts +15 -9
- 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/open-delivery.d.ts +3 -1
- package/dist/core/people/open-delivery.js +2 -0
- 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 +151 -3
- 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 +14 -11
- package/web/.next/build-manifest.json +39 -15
- package/web/.next/diagnostics/route-bundle-stats.json +107 -58
- 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 +18 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page/build-manifest.json +23 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +55 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +25 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/{outside-parties/[name]/retire → (console)/outside-parties/[name]}/page/build-manifest.json +1 -1
- package/web/.next/server/app/{outside-parties/[name]/retire → (console)/outside-parties/[name]}/page/next-font-manifest.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +35 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/page.js +24 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/build-manifest.json +23 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +55 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +25 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/outside-parties/add/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/{outside-parties/[name]/change → (console)/outside-parties/add}/page/build-manifest.json +1 -1
- package/web/.next/server/app/{outside-parties/[name]/change → (console)/outside-parties/add}/page/next-font-manifest.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +55 -0
- package/web/.next/server/app/(console)/outside-parties/add/page.js +25 -0
- package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +3 -0
- 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/server-reference-manifest.json +25 -0
- package/web/.next/server/app/{outside-parties/add → (console)/outside-parties/add-a2a-agent}/page.js +14 -13
- 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/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.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/app-paths-manifest.json +3 -0
- package/web/.next/server/app/{outside-parties/[name] → (console)/outside-parties}/page/build-manifest.json +1 -1
- package/web/.next/server/app/{outside-parties/add → (console)/outside-parties}/page/next-font-manifest.json +1 -1
- package/web/.next/server/app/{outside-parties → (console)/outside-parties}/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/{outside-parties → (console)/outside-parties}/page.js +13 -12
- package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/overview/changes/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/overview/changes/route.js +7 -0
- package/web/.next/server/app/(console)/overview/changes/route.js.nft.json +1 -0
- package/web/.next/server/app/(console)/overview/changes/route_client-reference-manifest.js +3 -0
- 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.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/app-paths-manifest.json +3 -0
- package/web/.next/server/app/{sign-in/failed → (console)/overview}/page/build-manifest.json +1 -1
- package/web/.next/server/app/{parties → (console)/overview}/page/next-font-manifest.json +1 -1
- package/web/.next/server/app/(console)/overview/page/server-reference-manifest.json +75 -0
- package/web/.next/server/app/{overview/requests/[requestId] → (console)/overview}/page.js +15 -14
- package/web/.next/server/app/(console)/overview/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/overview/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page/build-manifest.json +23 -0
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/{overview → (console)/overview}/requests/[requestId]/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/{overview → (console)/overview/requests/[requestId]}/page.js +15 -14
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js.map +5 -0
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/parties/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/{outside-parties → (console)/parties}/page/build-manifest.json +1 -1
- package/web/.next/server/app/{outside-parties → (console)/parties}/page/next-font-manifest.json +1 -1
- package/web/.next/server/app/(console)/parties/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/{parties → (console)/parties}/page/server-reference-manifest.json +18 -18
- package/web/.next/server/app/{parties → (console)/parties}/page.js +12 -11
- package/web/.next/server/app/(console)/parties/page.js.map +5 -0
- package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/sign-in/failed/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/{outside-parties/add → (console)/sign-in/failed}/page/build-manifest.json +1 -1
- package/web/.next/server/app/{outside-parties/[name] → (console)/sign-in/failed}/page/next-font-manifest.json +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/{sign-in → (console)/sign-in}/failed/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/{sign-in → (console)/sign-in}/failed/page.js +13 -12
- package/web/.next/server/app/(console)/sign-in/failed/page.js.map +5 -0
- package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +3 -0
- 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 +7 -7
- 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 +11 -9
- 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 +12 -10
- 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 +11 -9
- 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 +14 -11
- 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/1mb5_next-internal_server_app_(console)_overview_changes_route_actions_0zbq7lqsf5nng.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]__00bbah0fbuex2._.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 +3 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__1qpk1uw97id0a._.js → [root-of-the-server]__0-og0bl8lr2xq._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0-og0bl8lr2xq._.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]__07udzu2zwg_74._.js.map +1 -0
- 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]__0a68v9ynev4q6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0grpi5wnl9ppf._.js +10 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0grpi5wnl9ppf._.js.map +1 -0
- 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]__0rr5u24i9tjyc._.js.map +1 -0
- 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]__0ntyo9p3x-w6a._.js → [root-of-the-server]__179upda-y7uap._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__179upda-y7uap._.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/_0bhvvyz0q_0ja._.js +4 -0
- package/web/.next/server/chunks/ssr/_0bhvvyz0q_0ja._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_13qzwpag13tvy._.js → _0pyd1_y7w8ngp._.js} +2 -2
- package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -0
- 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/_12fsn_33ga-n0._.js +3 -0
- package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js.map +1 -0
- 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/_1hmjvjuxx92vo._.js +3 -0
- package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.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_0cyjln1rocvt5._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_0cyjln1rocvt5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_1ins1z8o_qrka._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_1ins1z8o_qrka._.js.map +1 -0
- 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_@aeolus-fleet_common_dist_header_1id6g-6m2hh0l._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1id6g-6m2hh0l._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1jvz31plyg2f-._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1jvz31plyg2f-._.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_client_components_server-async-storage_0t1datokkgym0.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1datokkgym0.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06etuymo2azrg.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06etuymo2azrg.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcy-jnk5o43.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcy-jnk5o43.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0bnypafopxsfl.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0bnypafopxsfl.js.map +1 -0
- 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_0k0-b63ptvbl5.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0k0-b63ptvbl5.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pik0g65vv-wi.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pik0g65vv-wi.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xccr6d8xcb1p.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xccr6d8xcb1p.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13agc620bnznv.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13agc620bnznv.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_184-gj4lz41i-.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_184-gj4lz41i-.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bt2ioufqh6fl.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1bt2ioufqh6fl.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1d613l6zsee_e.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1d613l6zsee_e.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0-ipfysjmro.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o0-ipfysjmro.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1x-0vplt44lez.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1x-0vplt44lez.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_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_0v-7sowo0hupw._.js.map +1 -1
- 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 +3 -0
- package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{web_1nqu01kfi0u66._.js → web_1loiet18xbddu._.js} +2 -2
- package/web/.next/server/chunks/ssr/web_1loiet18xbddu._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js +3 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_layout_tsx_1t-5g79yb9xtl._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_layout_tsx_1t-5g79yb9xtl._.js.map +1 -0
- 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
- package/web/.next/server/chunks/ssr/web_app_(console)_outside-parties_[name]_change_page_tsx_00bpg0s2eypj9._.js.map +1 -0
- 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
- package/web/.next/server/chunks/ssr/web_app_(console)_outside-parties_[name]_retire_page_tsx_1zxy74pr5_2kn._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{web_app_overview_error_tsx_17_cklg40kzxe._.js → web_app_(console)_overview_error_tsx_087e7ba8loavc._.js} +2 -2
- package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_087e7ba8loavc._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_1nn1jz5nh77af._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_1nn1jz5nh77af._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js.map +1 -0
- 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_0h0ueu8_-_z5k._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_0h0ueu8_-_z5k._.js.map +1 -1
- 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_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_authorize_137wk0n1nu3cn._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js.map +1 -0
- 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_0pe8cwpxe1egb._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.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_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 -15
- package/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/server/next-font-manifest.json +21 -13
- 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 +176 -74
- package/web/.next/static/chunks/00njqo86bx2kb.js +1 -0
- package/web/.next/static/chunks/047i2x2j--shk.css +3 -0
- package/web/.next/static/chunks/07j7jnfe13wx6.js +1 -0
- package/web/.next/static/chunks/0g4cpamshfwmn.js +1 -0
- package/web/.next/static/chunks/0j84uiid6fsim.js +1 -0
- package/web/.next/static/chunks/0p_kl57bddsiy.js +1 -0
- package/web/.next/static/chunks/1aa1d23q1vokr.js +1 -0
- package/web/.next/static/chunks/1ca21kggixrjz.js +1 -0
- package/web/.next/static/chunks/1jvae6c-4jwji.js +1 -0
- package/web/.next/static/chunks/23ud2e13dn8f4.js +1 -0
- package/web/.next/static/chunks/2_41h3v090ur9.js +1 -0
- package/web/.next/static/chunks/2x00o45pdbkok.js +1 -0
- package/web/.next/static/chunks/31vy122d9fvme.js +1 -0
- package/web/.next/static/chunks/3apnqdh48__yw.js +1 -0
- package/web/.next/static/chunks/3okm5g88ig1l3.js +1 -0
- package/web/.next/static/chunks/{0a1vw3r93lh06.js → 3v6tr952p9dba.js} +1 -1
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/types/routes.d.ts +8 -3
- package/web/.next/types/validator.ts +128 -50
- package/web/public/wake-worker.js +17 -0
- package/web/.next/server/app/outside-parties/[name]/change/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/outside-parties/[name]/change/page/server-reference-manifest.json +0 -35
- package/web/.next/server/app/outside-parties/[name]/change/page.js +0 -22
- package/web/.next/server/app/outside-parties/[name]/change/page.js.nft.json +0 -1
- package/web/.next/server/app/outside-parties/[name]/change/page_client-reference-manifest.js +0 -3
- package/web/.next/server/app/outside-parties/[name]/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/outside-parties/[name]/page/server-reference-manifest.json +0 -15
- package/web/.next/server/app/outside-parties/[name]/page.js +0 -20
- package/web/.next/server/app/outside-parties/[name]/page.js.nft.json +0 -1
- package/web/.next/server/app/outside-parties/[name]/page_client-reference-manifest.js +0 -3
- package/web/.next/server/app/outside-parties/[name]/retire/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/outside-parties/[name]/retire/page/server-reference-manifest.json +0 -35
- package/web/.next/server/app/outside-parties/[name]/retire/page.js +0 -21
- package/web/.next/server/app/outside-parties/[name]/retire/page.js.nft.json +0 -1
- package/web/.next/server/app/outside-parties/[name]/retire/page_client-reference-manifest.js +0 -3
- package/web/.next/server/app/outside-parties/add/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/outside-parties/add/page/server-reference-manifest.json +0 -35
- package/web/.next/server/app/outside-parties/add/page.js.nft.json +0 -1
- package/web/.next/server/app/outside-parties/add/page_client-reference-manifest.js +0 -3
- package/web/.next/server/app/outside-parties/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/outside-parties/page.js.nft.json +0 -1
- package/web/.next/server/app/outside-parties/page_client-reference-manifest.js +0 -3
- package/web/.next/server/app/overview/changes/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/overview/changes/route.js +0 -6
- package/web/.next/server/app/overview/changes/route.js.nft.json +0 -1
- package/web/.next/server/app/overview/changes/route_client-reference-manifest.js +0 -3
- package/web/.next/server/app/overview/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/overview/page/build-manifest.json +0 -23
- package/web/.next/server/app/overview/page/next-font-manifest.json +0 -11
- package/web/.next/server/app/overview/page/server-reference-manifest.json +0 -45
- package/web/.next/server/app/overview/page.js.nft.json +0 -1
- package/web/.next/server/app/overview/page_client-reference-manifest.js +0 -3
- package/web/.next/server/app/overview/requests/[requestId]/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/overview/requests/[requestId]/page/build-manifest.json +0 -23
- package/web/.next/server/app/overview/requests/[requestId]/page/next-font-manifest.json +0 -11
- package/web/.next/server/app/overview/requests/[requestId]/page.js.nft.json +0 -1
- package/web/.next/server/app/overview/requests/[requestId]/page_client-reference-manifest.js +0 -3
- package/web/.next/server/app/parties/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/parties/page/build-manifest.json +0 -23
- package/web/.next/server/app/parties/page.js.nft.json +0 -1
- package/web/.next/server/app/parties/page_client-reference-manifest.js +0 -3
- package/web/.next/server/app/sign-in/failed/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/sign-in/failed/page/next-font-manifest.json +0 -11
- package/web/.next/server/app/sign-in/failed/page.js.nft.json +0 -1
- package/web/.next/server/app/sign-in/failed/page_client-reference-manifest.js +0 -3
- package/web/.next/server/chunks/[externals]__12s2uxrv8n30f._.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__00bbah0fbuex2._.js.map +0 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.js +0 -3
- package/web/.next/server/chunks/ssr/0vkm_server_app_overview_requests_[requestId]_page_actions_08cpboirhdm8t.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]__0ntyo9p3x-w6a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rzvf7wb60m05._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10rfwy-punm8_._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11e7zi5yg_f_4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__197il4swfpq1a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1afrhvkbp010p._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpk1uw97id0a._.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]__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/_03xm-6l-r6ko0._.js +0 -4
- package/web/.next/server/chunks/ssr/_03xm-6l-r6ko0._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js +0 -4
- package/web/.next/server/chunks/ssr/_04iwj3w0divwb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_13qzwpag13tvy._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js +0 -4
- package/web/.next/server/chunks/ssr/_1bfq0g9c1iw__._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.js +0 -3
- package/web/.next/server/chunks/ssr/_1jfy4064jcghi._.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/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03zgfhccdkaiy.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0fj-1791_p39n.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pq59x3iko2ai.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0svltk31-r84e.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ytc4y16h581t.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_15hcath_cy93j.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ej-pov8ir4hb.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1emdm3ck_2g9k.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mvwdrj8rcdc5.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uc-ufaepnlh_.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ymh04086158y.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z9khw-ht54ev.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js +0 -3
- package/web/.next/server/chunks/ssr/web_0vot73dagfg_x._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js +0 -3
- package/web/.next/server/chunks/ssr/web_17c7_dhsf-sjp._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js +0 -3
- package/web/.next/server/chunks/ssr/web_1j5yjwqkgyeve._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_1nqu01kfi0u66._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js +0 -3
- package/web/.next/server/chunks/ssr/web_1zd285_dq60z5._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js +0 -10
- package/web/.next/server/chunks/ssr/web_207u8paamz3z-._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js +0 -3
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_outside-parties_add_page_actions_0wclx47vjdhe6.js.map +0 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js +0 -3
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_overview_page_actions_0hxu14a57nlf2.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js +0 -3
- package/web/.next/server/chunks/ssr/web_app_not-found_tsx_1miwllm8xrp2a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_change_page_tsx_0kfjh3f55us56._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_app_outside-parties_[name]_retire_page_tsx_0qhcnjpjipu_2._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js +0 -3
- package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_0qlcwxupzw726._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_app_overview_error_tsx_17_cklg40kzxe._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.js +0 -3
- package/web/.next/server/chunks/ssr/web_app_parties_page_tsx_1lilxm339jj89._.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_0vq1wjkuh6dmr._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_0vq1wjkuh6dmr._.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/server/chunks/web__next-internal_server_app_overview_changes_route_actions_16jqwsctr1pzg.js +0 -3
- package/web/.next/static/chunks/0214opd1iq3ld.js +0 -1
- package/web/.next/static/chunks/0hobzrlhklo3e.js +0 -1
- package/web/.next/static/chunks/1ma7v1viiz247.js +0 -1
- package/web/.next/static/chunks/1sgi4p93eayf4.js +0 -1
- package/web/.next/static/chunks/22u81hd6kxqsx.js +0 -1
- package/web/.next/static/chunks/2qpupho1jn-iy.js +0 -1
- package/web/.next/static/chunks/2rap-vrom5-zw.css +0 -3
- package/web/.next/static/chunks/3jr0srcv_-pfa.js +0 -1
- package/web/.next/static/chunks/3l_1gcuoe8bfn.js +0 -1
- package/web/.next/static/chunks/3sv0_hjr9t4cp.js +0 -1
- /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/change/page/react-loadable-manifest.json +0 -0
- /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/change/page.js.map +0 -0
- /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/page/react-loadable-manifest.json +0 -0
- /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/page.js.map +0 -0
- /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/retire/page/react-loadable-manifest.json +0 -0
- /package/web/.next/server/app/{outside-parties → (console)/outside-parties}/[name]/retire/page.js.map +0 -0
- /package/web/.next/server/app/{overview → (console)/outside-parties/add}/page/react-loadable-manifest.json +0 -0
- /package/web/.next/server/app/{overview → (console)/outside-parties/add}/page.js.map +0 -0
- /package/web/.next/server/app/{outside-parties/add → (console)/outside-parties/add-a2a-agent}/page/react-loadable-manifest.json +0 -0
- /package/web/.next/server/app/{outside-parties/add → (console)/outside-parties/add-a2a-agent}/page.js.map +0 -0
- /package/web/.next/server/app/{outside-parties → (console)/outside-parties/add-a2a-client}/page/react-loadable-manifest.json +0 -0
- /package/web/.next/server/app/{outside-parties → (console)/outside-parties/add-a2a-client}/page.js.map +0 -0
- /package/web/.next/server/app/{overview/requests/[requestId] → (console)/outside-parties}/page/react-loadable-manifest.json +0 -0
- /package/web/.next/server/app/{overview/requests/[requestId] → (console)/outside-parties}/page.js.map +0 -0
- /package/web/.next/server/app/{overview → (console)/overview}/changes/route/build-manifest.json +0 -0
- /package/web/.next/server/app/{overview → (console)/overview}/changes/route/server-reference-manifest.json +0 -0
- /package/web/.next/server/app/{overview → (console)/overview}/changes/route.js.map +0 -0
- /package/web/.next/server/app/{parties/page.js.map → (console)/overview/focus/route.js.map} +0 -0
- /package/web/.next/server/app/{parties → (console)/overview}/page/react-loadable-manifest.json +0 -0
- /package/web/.next/server/app/{sign-in/failed → (console)/overview}/page.js.map +0 -0
- /package/web/.next/server/app/{sign-in/failed → (console)/overview/requests/[requestId]}/page/react-loadable-manifest.json +0 -0
- /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/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
- /package/web/.next/static/{MLIzjhz2u5r5gyyuciHvf → Az1CqrzgGHMZVR4nw9717}/_buildManifest.js +0 -0
- /package/web/.next/static/{MLIzjhz2u5r5gyyuciHvf → Az1CqrzgGHMZVR4nw9717}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{MLIzjhz2u5r5gyyuciHvf → Az1CqrzgGHMZVR4nw9717}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { RECEIVE_MAX_UPPER_BOUND } from '@aeolus-fleet/common';
|
|
2
|
+
import { err, ok } from '../shared/result.js';
|
|
3
|
+
/**
|
|
4
|
+
* Use case: wakes a person for what waits on their person ship (wake a
|
|
5
|
+
* person, W3, W8). It takes the ship's deliveries with the gateway as their
|
|
6
|
+
* waker; those never handed are fresh. Each channel the person turned on
|
|
7
|
+
* whose window has passed sends one wake for all of them; each fresh
|
|
8
|
+
* delivery is then handed no. 1, naming the first channel that went out, so
|
|
9
|
+
* a delivery is woken once. A wake held back by a window, or that no
|
|
10
|
+
* channel sent, hands nothing. Each channel's window is kept after the
|
|
11
|
+
* hand-overs, so a gateway that stopped in between wakes again: one wake
|
|
12
|
+
* more, nothing lost. While a page of the person is in focus, the page
|
|
13
|
+
* shows what arrives (W6): each fresh delivery is handed through it and no
|
|
14
|
+
* wake goes out.
|
|
15
|
+
*/
|
|
16
|
+
export function createWakePerson(deps) {
|
|
17
|
+
return async (ship, crewToken) => {
|
|
18
|
+
/** Hands each fresh delivery no. 1 through the channel, up to the first refusal: that refusal, or none. */
|
|
19
|
+
const handEach = async (fresh, channel) => {
|
|
20
|
+
for (const { deliveryId } of fresh) {
|
|
21
|
+
const handed = await deps.door.handed(crewToken, { deliveryId, handOverNumber: 1, channel });
|
|
22
|
+
if (!handed.isOk) {
|
|
23
|
+
return handed.error;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
};
|
|
28
|
+
const taken = await deps.door.pushReceive(crewToken, { max: RECEIVE_MAX_UPPER_BOUND });
|
|
29
|
+
if (!taken.isOk) {
|
|
30
|
+
return taken;
|
|
31
|
+
}
|
|
32
|
+
const fresh = taken.value.filter(({ handOverNumber }) => handOverNumber === null);
|
|
33
|
+
if (fresh.length === 0) {
|
|
34
|
+
return ok({ kind: 'settled' });
|
|
35
|
+
}
|
|
36
|
+
if (await deps.focused.isAnyInFocus(ship, new Date(deps.clock.now().getTime() - deps.focusFreshMs))) {
|
|
37
|
+
const refused = await handEach(fresh, 'page');
|
|
38
|
+
return refused === undefined ? ok({ kind: 'settled' }) : err(refused);
|
|
39
|
+
}
|
|
40
|
+
const turnedOn = (await Promise.all(deps.channels.map(async (channel) => ((await channel.isOn(ship)) ? [channel] : [])))).flat();
|
|
41
|
+
if (turnedOn.length === 0) {
|
|
42
|
+
return ok({ kind: 'settled' });
|
|
43
|
+
}
|
|
44
|
+
const now = deps.clock.now();
|
|
45
|
+
const windows = await Promise.all(turnedOn.map(async (channel) => {
|
|
46
|
+
const lastSentAt = await deps.wakesSent.lastSentAt(ship, channel.name);
|
|
47
|
+
return { channel, endsAt: lastSentAt === undefined ? now : new Date(lastSentAt.getTime() + channel.windowMs) };
|
|
48
|
+
}));
|
|
49
|
+
const due = windows.filter(({ endsAt }) => endsAt.getTime() <= now.getTime()).map(({ channel }) => channel);
|
|
50
|
+
if (due.length === 0) {
|
|
51
|
+
return ok({ kind: 'inWindow', until: new Date(Math.min(...windows.map(({ endsAt }) => endsAt.getTime()))) });
|
|
52
|
+
}
|
|
53
|
+
const wentOut = [];
|
|
54
|
+
for (const channel of due) {
|
|
55
|
+
if ((await channel.wake(ship)).isOk) {
|
|
56
|
+
wentOut.push(channel.name);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const [firstOut] = wentOut;
|
|
60
|
+
if (firstOut === undefined) {
|
|
61
|
+
return ok({ kind: 'failed' });
|
|
62
|
+
}
|
|
63
|
+
const refused = await handEach(fresh, firstOut);
|
|
64
|
+
// The window is kept only after the hand-overs: a gateway that stopped in between wakes again, as the design says. A refusal keeps it, so no second email follows at once.
|
|
65
|
+
for (const channel of wentOut) {
|
|
66
|
+
await deps.wakesSent.record({ ship, channel, sentAt: now });
|
|
67
|
+
}
|
|
68
|
+
if (refused !== undefined) {
|
|
69
|
+
return err(refused);
|
|
70
|
+
}
|
|
71
|
+
return ok({ kind: 'settled' });
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=wake-person.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-person.js","sourceRoot":"","sources":["../../../src/core/people/wake-person.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FleetId } from '@aeolus-fleet/common';
|
|
2
|
+
import type { Clock } from '../shared/clock.js';
|
|
3
|
+
import type { WakeChannel, WebPush, WebPushSubscriptions } from './ports.js';
|
|
4
|
+
/**
|
|
5
|
+
* Web push, a channel that wakes a person (wake a person, W1, W4, W8). It is
|
|
6
|
+
* on while a browser they turned it on in still takes wakes. A wake goes to
|
|
7
|
+
* each such browser, saying only the fleet by its name and the overview
|
|
8
|
+
* link; it went out once one push service took it. A subscription its push
|
|
9
|
+
* service says is gone takes no wake again.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createWebPushChannel(deps: {
|
|
12
|
+
subscriptions: WebPushSubscriptions;
|
|
13
|
+
webPush: WebPush;
|
|
14
|
+
clock: Clock;
|
|
15
|
+
windowMs: number;
|
|
16
|
+
overviewUrlOf: (fleetId: FleetId) => string;
|
|
17
|
+
}): WakeChannel;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { err, ok } from '../shared/result.js';
|
|
2
|
+
/**
|
|
3
|
+
* Web push, a channel that wakes a person (wake a person, W1, W4, W8). It is
|
|
4
|
+
* on while a browser they turned it on in still takes wakes. A wake goes to
|
|
5
|
+
* each such browser, saying only the fleet by its name and the overview
|
|
6
|
+
* link; it went out once one push service took it. A subscription its push
|
|
7
|
+
* service says is gone takes no wake again.
|
|
8
|
+
*/
|
|
9
|
+
export function createWebPushChannel(deps) {
|
|
10
|
+
const takingWakes = async ({ fleetId, shipId }) => (await deps.subscriptions.list(fleetId, shipId)).filter(({ goneAt }) => goneAt === null);
|
|
11
|
+
return {
|
|
12
|
+
name: 'web-push',
|
|
13
|
+
windowMs: deps.windowMs,
|
|
14
|
+
isOn: async (ship) => (await takingWakes(ship)).length > 0,
|
|
15
|
+
wake: async (ship) => {
|
|
16
|
+
const overviewUrl = deps.overviewUrlOf(ship.fleetId);
|
|
17
|
+
let isTaken = false;
|
|
18
|
+
for (const subscription of await takingWakes(ship)) {
|
|
19
|
+
const sent = await deps.webPush.send(subscription, { fleetName: subscription.fleetName, overviewUrl });
|
|
20
|
+
switch (sent) {
|
|
21
|
+
case 'sent':
|
|
22
|
+
isTaken = true;
|
|
23
|
+
break;
|
|
24
|
+
case 'gone':
|
|
25
|
+
await deps.subscriptions.markGone(ship.fleetId, { shipId: ship.shipId, endpoint: subscription.endpoint, goneAt: deps.clock.now() });
|
|
26
|
+
break;
|
|
27
|
+
case 'failed':
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return isTaken ? ok(undefined) : err({ reason: 'no push service took the wake' });
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=web-push-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-push-channel.js","sourceRoot":"","sources":["../../../src/core/people/web-push-channel.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAG9C;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAA4I;IAC/K,MAAM,WAAW,GAAG,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAc,EAAkC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IACxL,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;QAC1D,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACnB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,YAAY,IAAI,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;gBACvG,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,MAAM;wBACT,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM;oBACR,KAAK,MAAM;wBACT,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBACpI,MAAM;oBACR,KAAK,QAAQ;wBACX,MAAM;gBACV,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACpF,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -7,8 +7,6 @@ import { type DomainError } from '../shared/errors.js';
|
|
|
7
7
|
import { type Result } from '../shared/result.js';
|
|
8
8
|
import type { McpServerCredential } from '../vault/credential.js';
|
|
9
9
|
import type { PendingRequests } from './ports.js';
|
|
10
|
-
/** The scope the gateway declares for approving outside parties (decision 0056). */
|
|
11
|
-
export declare const APPROVING_SCOPE = "gateway:approve";
|
|
12
10
|
/** An approval: the proxy ship's name, its owner (a person ship) and its scopes; for a server, its credential and how many calls it takes at once. */
|
|
13
11
|
export interface Approval {
|
|
14
12
|
readonly kind: 'approve';
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
+
import { APPROVING_SCOPE, EVERY_APP_SHIP_SCOPES, scopeNotHeld } from '../parties/approver.js';
|
|
1
2
|
import { refuse } from '../shared/errors.js';
|
|
2
3
|
import { ok } from '../shared/result.js';
|
|
3
4
|
import { noticesOf } from './outcome-notice.js';
|
|
4
|
-
/** The scope the gateway declares for approving outside parties (decision 0056). */
|
|
5
|
-
export const APPROVING_SCOPE = 'gateway:approve';
|
|
6
|
-
/** The scopes every app ship gets (decision 0046), so an approver need not hold them to grant them. */
|
|
7
|
-
const EVERY_APP_SHIP_SCOPES = new Set(['messages:send', 'messages:receive']);
|
|
8
5
|
function decidedByOf(actor) {
|
|
9
6
|
switch (actor.kind) {
|
|
10
7
|
case 'ship':
|
|
@@ -37,7 +34,7 @@ export function createDecideRequest(deps) {
|
|
|
37
34
|
}
|
|
38
35
|
return approval.server === undefined
|
|
39
36
|
? Promise.resolve(refuse('SERVER_DETAILS_MISSING', 'Adding an outside MCP server needs its credential and how many calls it takes at once'))
|
|
40
|
-
: deps.approveParty({ ...party, url: request.subject.url, ...approval.server });
|
|
37
|
+
: deps.approveParty({ ...party, url: request.subject.url, ...approval.server, toolSwitches: null });
|
|
41
38
|
};
|
|
42
39
|
return async ({ actor, requestId, decision }) => {
|
|
43
40
|
if (!actor.scopes.includes(APPROVING_SCOPE)) {
|
|
@@ -59,7 +56,7 @@ export function createDecideRequest(deps) {
|
|
|
59
56
|
const isDenied = await deps.requests.decide(actor.fleetId, { requestId, from: ['pending'], decision: decided, notices: noticesOf(request, { outcome: 'denied', partyName: null }) });
|
|
60
57
|
return isDenied ? ok({ state: 'denied', party: null }) : refuse('ALREADY_DECIDED', 'This request is decided already');
|
|
61
58
|
}
|
|
62
|
-
const notHeld = decision.party.scopes
|
|
59
|
+
const notHeld = scopeNotHeld(actor, decision.party.scopes);
|
|
63
60
|
if (notHeld !== undefined) {
|
|
64
61
|
return refuse('SCOPE_NOT_HELD', `You may grant only scopes you hold: not ${notHeld}`);
|
|
65
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decide-request.js","sourceRoot":"","sources":["../../../src/core/requests/decide-request.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decide-request.js","sourceRoot":"","sources":["../../../src/core/requests/decide-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { refuse } from '../shared/errors.js';
|
|
2
2
|
import { ok } from '../shared/result.js';
|
|
3
|
-
import { APPROVING_SCOPE } from '
|
|
3
|
+
import { APPROVING_SCOPE } from '../parties/approver.js';
|
|
4
4
|
/** Use case: every open request of the fleet, for an actor holding gateway:approve (decision 0056: To decide on the overview). */
|
|
5
5
|
export function createListToDecide(deps) {
|
|
6
6
|
return async (actor) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-to-decide.js","sourceRoot":"","sources":["../../../src/core/requests/list-to-decide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"list-to-decide.js","sourceRoot":"","sources":["../../../src/core/requests/list-to-decide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAKzD,kIAAkI;AAClI,MAAM,UAAU,kBAAkB,CAAC,IAAiD;IAClF,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,eAAe,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Err } from './result.js';
|
|
2
2
|
/** Every reason the gateway's core refuses a request. */
|
|
3
|
-
export type DomainErrorKind = 'ALREADY_CONNECTED' | 'SECRET_REFUSED' | 'OTHER_FLEET' | 'MISSING_SCOPES' | 'SCOPE_REFUSED' | 'NOT_THE_OPERATOR' | 'NOT_AN_ACTOR' | 'NOT_AN_APPROVER' | 'NO_SUCH_REQUEST' | 'ALREADY_DECIDED' | 'EXPIRED' | 'SCOPE_NOT_HELD' | 'SERVER_DETAILS_MISSING' | 'REQUEST_ID_USED' | 'FLEET_UNAVAILABLE' | 'NOT_CONNECTED' | 'PARTY_EXISTS' | 'COMMISSION_REFUSED' | 'NO_SUCH_PARTY' | 'NOT_AWAITING_CREW' | 'NOT_CREWED' | 'SERVER_UNREACHABLE' | 'STATEMENT_REFUSED' | 'INVALID_REDIRECT_URIS' | 'CLIENT_HAS_PARTY' | 'PARTY_NOT_CREWED' | 'NO_SUCH_TOOL' | 'INVALID_ARGUMENTS' | 'NOT_REACHABLE' | 'SEND_REFUSED' | 'NO_SUCH_CALL' | 'NOT_A_PERSON' | 'SIGNED_OUT' | 'NO_SUCH_DELIVERY' | 'NOT_A_NETWORKER' | 'OPEN_NETWORK' | 'OUTSIDE_PARTIES_OFF' | 'INVALID_SERVER_URL' | 'NOT_A_MANAGER' | 'RETIRE_REFUSED' | 'NOT_AN_ACCOUNT' | 'PARTY_NOT_COMMISSIONED' | 'CHANGE_REFUSED';
|
|
3
|
+
export type DomainErrorKind = 'ALREADY_CONNECTED' | 'SECRET_REFUSED' | 'OTHER_FLEET' | 'MISSING_SCOPES' | 'SCOPE_REFUSED' | 'NOT_THE_OPERATOR' | 'NOT_AN_ACTOR' | 'NOT_AN_APPROVER' | 'NO_SUCH_REQUEST' | 'ALREADY_DECIDED' | 'EXPIRED' | 'SCOPE_NOT_HELD' | 'SERVER_DETAILS_MISSING' | 'REQUEST_ID_USED' | 'FLEET_UNAVAILABLE' | 'NOT_CONNECTED' | 'PARTY_EXISTS' | 'COMMISSION_REFUSED' | 'NO_SUCH_PARTY' | 'NOT_AWAITING_CREW' | 'NOT_CREWED' | 'SERVER_UNREACHABLE' | 'STATEMENT_REFUSED' | 'INVALID_REDIRECT_URIS' | 'CLIENT_HAS_PARTY' | 'PARTY_NOT_CREWED' | 'NO_SUCH_TOOL' | 'INVALID_ARGUMENTS' | 'NOT_REACHABLE' | 'SEND_REFUSED' | 'NO_SUCH_CALL' | 'NOT_A_PERSON' | 'SIGNED_OUT' | 'NO_SUCH_DELIVERY' | 'NOT_A_NETWORKER' | 'OPEN_NETWORK' | 'OUTSIDE_PARTIES_OFF' | 'INVALID_SERVER_URL' | 'NOT_A_MANAGER' | 'RETIRE_REFUSED' | 'NOT_AN_ACCOUNT' | 'PARTY_NOT_COMMISSIONED' | 'CHANGE_REFUSED' | 'UNKNOWN_ALIAS' | 'PAYLOAD_TOO_LARGE' | 'TASK_NOT_FOUND' | 'TASK_TERMINAL' | 'WEBHOOK_REFUSED' | 'PUSH_CONFIG_NOT_FOUND' | 'CONTEXT_MISMATCH' | 'CARD_UNREACHABLE' | 'CARD_INVALID' | 'NOT_A_MESSAGE' | 'CHANNEL_NOT_OFFERED' | 'INVALID_SUBSCRIPTION';
|
|
4
4
|
/** Why the core refused a request. Adapters map the kind to their own error shape; the message is safe to show. */
|
|
5
5
|
export interface DomainError<K extends DomainErrorKind = DomainErrorKind> {
|
|
6
6
|
readonly kind: K;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;AAkE5C,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAA4B,IAAO,EAAE,OAAe;IACxE,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -66,6 +66,19 @@ export interface Pagasae {
|
|
|
66
66
|
kind: 'refused' | 'unavailable';
|
|
67
67
|
reason: string;
|
|
68
68
|
}>>;
|
|
69
|
+
/**
|
|
70
|
+
* The account's grant for an ID-JAG a client of the gateway brought
|
|
71
|
+
* (aeolus-fleet company sign-in design, slice 6): pagasae checks it against
|
|
72
|
+
* the organisation's identity provider, for the gateway and that client,
|
|
73
|
+
* once; refused as for any refusal there, unavailable when it did not answer.
|
|
74
|
+
*/
|
|
75
|
+
exchangeIdJag(handed: {
|
|
76
|
+
idJag: string;
|
|
77
|
+
clientId: string;
|
|
78
|
+
}): Promise<Result<PagasaeTokens, {
|
|
79
|
+
kind: 'refused' | 'unavailable';
|
|
80
|
+
reason: string;
|
|
81
|
+
}>>;
|
|
69
82
|
}
|
|
70
83
|
/** A person's sign-in kept for their MCP client or the gateway's pages: the account in the fleet, and pagasae's tokens to act as it. */
|
|
71
84
|
export interface AccountGrant {
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The credential the gateway calls an outside MCP server with, kept in the
|
|
2
|
+
* The credential the gateway calls an outside MCP server or A2A agent with, kept in the
|
|
3
3
|
* vault, the gateway's own database (as squadrons keeps crew tokens). The
|
|
4
4
|
* server sees the gateway's credential, never the asker's: no rights travel
|
|
5
5
|
* with a message.
|
|
6
6
|
*/
|
|
7
|
-
export type McpServerCredential =
|
|
7
|
+
export type McpServerCredential =
|
|
8
|
+
/** A server that asks for none, as one reached only on a private network: the gateway sends no Authorization header. */
|
|
9
|
+
{
|
|
10
|
+
readonly kind: 'none';
|
|
11
|
+
} | {
|
|
8
12
|
readonly kind: 'bearer';
|
|
9
13
|
readonly token: string;
|
|
10
14
|
} | {
|
package/dist/party-workers.d.ts
CHANGED
|
@@ -2,11 +2,16 @@
|
|
|
2
2
|
* The gateway's workers, one per crewed party, each until the gateway stops
|
|
3
3
|
* or the fleet refuses its crew token: an outside server's states its proxy
|
|
4
4
|
* ship, then takes its calls (interop 5.2); an outside client's takes the
|
|
5
|
-
* replies to its calls (Q9 a)
|
|
5
|
+
* replies to its calls (Q9 a), and an A2A client's pushes its tasks' changes
|
|
6
|
+
* to its webhooks meanwhile (slice 4); an outside A2A agent's states its
|
|
7
|
+
* proxy ship from its card (slice 5), then takes its messages (slice 6). A fleet's workers work only while its outside
|
|
6
8
|
* parties are on (interop I-3).
|
|
7
9
|
*/
|
|
8
10
|
import type { FleetId } from '@aeolus-fleet/common';
|
|
9
11
|
import type { FastifyBaseLogger } from 'fastify';
|
|
12
|
+
import type { PushToWebhooks } from './core/a2a-in/push-to-webhooks.js';
|
|
13
|
+
import type { RunA2aAgent } from './core/a2a-out/run-a2a-agent.js';
|
|
14
|
+
import type { StateA2aAgent } from './core/a2a-out/state-a2a-agent.js';
|
|
10
15
|
import type { CollectReplies } from './core/mcp-in/collect-replies.js';
|
|
11
16
|
import type { RunParty } from './core/mcp-out/run-party.js';
|
|
12
17
|
import type { StateParty } from './core/mcp-out/state-party.js';
|
|
@@ -25,8 +30,11 @@ export interface PartyWorkers {
|
|
|
25
30
|
export declare function createPartyWorkers(deps: {
|
|
26
31
|
parties: PartyStore;
|
|
27
32
|
stateParty: StateParty;
|
|
33
|
+
stateA2aAgent: StateA2aAgent;
|
|
28
34
|
runParty: RunParty;
|
|
35
|
+
runA2aAgent: RunA2aAgent;
|
|
29
36
|
collectReplies: CollectReplies;
|
|
37
|
+
pushToWebhooks: PushToWebhooks;
|
|
30
38
|
servesOutsideParties: (fleetId: FleetId) => Promise<boolean>;
|
|
31
39
|
log: FastifyBaseLogger;
|
|
32
40
|
}): PartyWorkers;
|
package/dist/party-workers.js
CHANGED
|
@@ -2,20 +2,37 @@ export function createPartyWorkers(deps) {
|
|
|
2
2
|
const stop = new AbortController();
|
|
3
3
|
/** Each running worker, by fleet and party, with what stops it. */
|
|
4
4
|
const running = new Map();
|
|
5
|
-
|
|
5
|
+
/** One run of the party's worker, as its crew token stands now: whether the fleet refused its crew token, and which. */
|
|
6
|
+
const workOnce = async ({ fleetId, name }, signal) => {
|
|
6
7
|
if (!(await deps.servesOutsideParties(fleetId))) {
|
|
7
|
-
return;
|
|
8
|
+
return { refused: null };
|
|
8
9
|
}
|
|
9
10
|
const party = await deps.parties.find(fleetId, name);
|
|
10
11
|
if (party?.state !== 'crewed' || signal.aborted) {
|
|
11
|
-
return;
|
|
12
|
+
return { refused: null };
|
|
12
13
|
}
|
|
13
|
-
if (party.kind === 'mcpClient') {
|
|
14
|
+
if (party.kind === 'mcpClient' || party.kind === 'a2aClient') {
|
|
15
|
+
// Pushing needs no crew token: it ends with the replies, whatever ended them.
|
|
16
|
+
const isCollected = new AbortController();
|
|
17
|
+
const pushing = party.kind === 'a2aClient' ? deps.pushToWebhooks({ caller: { fleetId, party: name }, signal: AbortSignal.any([signal, isCollected.signal]) }) : Promise.resolve();
|
|
14
18
|
const { ended } = await deps.collectReplies({ party, signal });
|
|
19
|
+
isCollected.abort();
|
|
20
|
+
await pushing;
|
|
15
21
|
if (ended === 'crewRefused') {
|
|
16
22
|
deps.log.warn({ fleetId, party: name }, "the fleet refused the proxy ship's crew token: its calls get no replies");
|
|
17
23
|
}
|
|
18
|
-
return;
|
|
24
|
+
return { refused: ended === 'crewRefused' ? party.crewToken : null };
|
|
25
|
+
}
|
|
26
|
+
if (party.kind === 'a2aAgent') {
|
|
27
|
+
const statedAgent = await deps.stateA2aAgent({ fleetId, name });
|
|
28
|
+
if (!statedAgent.isOk) {
|
|
29
|
+
deps.log.warn({ fleetId, party: name, reason: statedAgent.error.message }, 'proxy ship not stated: its last statement stays');
|
|
30
|
+
}
|
|
31
|
+
const { ended } = await deps.runA2aAgent({ party, signal });
|
|
32
|
+
if (ended === 'crewRefused') {
|
|
33
|
+
deps.log.warn({ fleetId, party: name }, "the fleet refused the proxy ship's crew token: its messages are not taken");
|
|
34
|
+
}
|
|
35
|
+
return { refused: ended === 'crewRefused' ? party.crewToken : null };
|
|
19
36
|
}
|
|
20
37
|
const stated = await deps.stateParty({ fleetId, name });
|
|
21
38
|
if (!stated.isOk) {
|
|
@@ -26,6 +43,21 @@ export function createPartyWorkers(deps) {
|
|
|
26
43
|
if (ended === 'crewRefused') {
|
|
27
44
|
deps.log.warn({ fleetId, party: name }, 'the fleet refused the proxy ship\'s crew token: its calls are not taken');
|
|
28
45
|
}
|
|
46
|
+
return { refused: ended === 'crewRefused' ? party.crewToken : null };
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* The party's worker until it is stopped. A crew token the fleet refused
|
|
50
|
+
* ends it, unless the party was crewed again meanwhile with another, as
|
|
51
|
+
* when its crew was released and a new secret crewed the same proxy ship
|
|
52
|
+
* (vendor platforms V8): then it works on with the new one.
|
|
53
|
+
*/
|
|
54
|
+
const work = async (party, signal) => {
|
|
55
|
+
for (let run = await workOnce(party, signal); run.refused !== null && !signal.aborted; run = await workOnce(party, signal)) {
|
|
56
|
+
const kept = await deps.parties.find(party.fleetId, party.name);
|
|
57
|
+
if (kept?.state !== 'crewed' || kept.crewToken === run.refused) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
29
61
|
};
|
|
30
62
|
return {
|
|
31
63
|
start: (party) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"party-workers.js","sourceRoot":"","sources":["../src/party-workers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"party-workers.js","sourceRoot":"","sources":["../src/party-workers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The gateway's waiters, one per person ship it crews, across its instances
|
|
3
|
+
* (wake a person, W7, W9): an instance runs a ship's waiter only while it
|
|
4
|
+
* holds the ship's lock. Each round it looks for crews whose waiter no
|
|
5
|
+
* instance runs, so the waiters of an instance that stopped, or lost its
|
|
6
|
+
* locks, are taken over; a ship crewed meanwhile is woken at once. A waiter
|
|
7
|
+
* that ends gives its lock back.
|
|
8
|
+
*/
|
|
9
|
+
import type { FastifyBaseLogger } from 'fastify';
|
|
10
|
+
import type { Sleep } from './core/mcp-out/run-party.js';
|
|
11
|
+
import type { PersonCrews, PersonShip, WaiterLocks } from './core/people/ports.js';
|
|
12
|
+
import type { WaitOnPersonShip } from './core/people/wait-on-person-ship.js';
|
|
13
|
+
export interface PersonWaiters {
|
|
14
|
+
/** Runs a round every interval until it stops. */
|
|
15
|
+
start(): void;
|
|
16
|
+
/** Starts the ship's waiter now, unless one runs: the gateway just crewed it. */
|
|
17
|
+
wake(ship: PersonShip): void;
|
|
18
|
+
/** The ships this instance waits on now. */
|
|
19
|
+
waitingOn(): PersonShip[];
|
|
20
|
+
/** Stops every waiter and gives its lock back. */
|
|
21
|
+
stop(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
export declare function createPersonWaiters(deps: {
|
|
24
|
+
crews: PersonCrews;
|
|
25
|
+
locks: WaiterLocks;
|
|
26
|
+
waitOnPersonShip: WaitOnPersonShip;
|
|
27
|
+
sleep: Sleep;
|
|
28
|
+
roundMs: number;
|
|
29
|
+
log: FastifyBaseLogger;
|
|
30
|
+
}): PersonWaiters;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/** How many crews a round reads at once. */
|
|
2
|
+
const ROUND_PAGE = 100;
|
|
3
|
+
export function createPersonWaiters(deps) {
|
|
4
|
+
const stopping = new AbortController();
|
|
5
|
+
/** Each ship this instance waits on, or takes the lock of, with what stops its waiter. */
|
|
6
|
+
const running = new Map();
|
|
7
|
+
let rounds = Promise.resolve();
|
|
8
|
+
const keyOf = ({ fleetId, shipId }) => `${fleetId}/${shipId}`;
|
|
9
|
+
const run = async (ship, stop) => {
|
|
10
|
+
if (!(await deps.locks.take(ship))) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const held = running.get(keyOf(ship));
|
|
14
|
+
if (held === undefined || stop.signal.aborted) {
|
|
15
|
+
await deps.locks.give(ship);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
held.isWaiting = true;
|
|
19
|
+
try {
|
|
20
|
+
const ended = await deps.waitOnPersonShip(ship, stop.signal);
|
|
21
|
+
if (ended.reason === 'crewEnded') {
|
|
22
|
+
deps.log.info(ship, "the person ship's crew no longer works: its waiter stopped and the crew was dropped");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
finally {
|
|
26
|
+
await deps.locks.give(ship);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const wake = (ship) => {
|
|
30
|
+
const key = keyOf(ship);
|
|
31
|
+
if (running.has(key) || stopping.signal.aborted) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const stop = new AbortController();
|
|
35
|
+
const entry = { ship, isWaiting: false, stop, done: Promise.resolve() };
|
|
36
|
+
running.set(key, entry);
|
|
37
|
+
entry.done = run(ship, stop)
|
|
38
|
+
.catch((error) => {
|
|
39
|
+
deps.log.error({ err: error, ...ship }, 'person ship waiter failed');
|
|
40
|
+
})
|
|
41
|
+
.finally(() => running.delete(key));
|
|
42
|
+
};
|
|
43
|
+
const round = async () => {
|
|
44
|
+
try {
|
|
45
|
+
let after = null;
|
|
46
|
+
for (;;) {
|
|
47
|
+
const page = await deps.crews.crewed({ after, limit: ROUND_PAGE });
|
|
48
|
+
for (const ship of page) {
|
|
49
|
+
wake(ship);
|
|
50
|
+
}
|
|
51
|
+
const last = page.at(-1);
|
|
52
|
+
if (page.length < ROUND_PAGE || last === undefined) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
after = last;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
deps.log.error({ err: error }, 'person ship waiters round failed');
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
// Every lock is lost at once: their waiters stop, and the next round takes the locks again where no instance holds them.
|
|
63
|
+
deps.locks.onLost(() => {
|
|
64
|
+
for (const entry of running.values()) {
|
|
65
|
+
entry.stop.abort();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
return {
|
|
69
|
+
start: () => {
|
|
70
|
+
rounds = (async () => {
|
|
71
|
+
while (!stopping.signal.aborted) {
|
|
72
|
+
await round();
|
|
73
|
+
await deps.sleep(deps.roundMs, stopping.signal);
|
|
74
|
+
}
|
|
75
|
+
})();
|
|
76
|
+
},
|
|
77
|
+
wake,
|
|
78
|
+
waitingOn: () => [...running.values()].filter(({ isWaiting }) => isWaiting).map(({ ship }) => ship),
|
|
79
|
+
stop: async () => {
|
|
80
|
+
stopping.abort();
|
|
81
|
+
for (const entry of running.values()) {
|
|
82
|
+
entry.stop.abort();
|
|
83
|
+
}
|
|
84
|
+
await rounds;
|
|
85
|
+
await Promise.all([...running.values()].map(({ done }) => done));
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=person-waiters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"person-waiters.js","sourceRoot":"","sources":["../src/person-waiters.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aeolus-fleet/gateway",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "Aeolus gateway: outside MCP servers and clients join a fleet as ships, through one gateway beside core.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai-agents",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"!web/.next/cache",
|
|
28
28
|
"!web/.next/dev",
|
|
29
29
|
"web/next.config.ts",
|
|
30
|
+
"web/public",
|
|
30
31
|
"prisma.config.ts",
|
|
31
32
|
"src/adapters/prisma/schema.prisma",
|
|
32
33
|
"src/adapters/prisma/migrations"
|
|
@@ -44,7 +45,8 @@
|
|
|
44
45
|
"db:migrate": "tsx --env-file-if-exists=.env src/bin/aeolus-gateway.ts migrate"
|
|
45
46
|
},
|
|
46
47
|
"dependencies": {
|
|
47
|
-
"@
|
|
48
|
+
"@a2a-js/sdk": "1.3.0",
|
|
49
|
+
"@aeolus-fleet/common": "^0.30.0",
|
|
48
50
|
"@base-ui/react": "^1.9.0",
|
|
49
51
|
"@fastify/websocket": "^11.3.4",
|
|
50
52
|
"@modelcontextprotocol/client": "^2.3.1",
|
|
@@ -63,10 +65,11 @@
|
|
|
63
65
|
"react": "^19.3.1",
|
|
64
66
|
"react-dom": "^19.3.1",
|
|
65
67
|
"tailwind-merge": "^3.7.0",
|
|
68
|
+
"web-push": "^3.6.7",
|
|
66
69
|
"zod": "^4.6.5"
|
|
67
70
|
},
|
|
68
71
|
"devDependencies": {
|
|
69
|
-
"@aeolus-fleet/core": "^0.
|
|
72
|
+
"@aeolus-fleet/core": "^0.30.0",
|
|
70
73
|
"@eslint/js": "^10.0.1",
|
|
71
74
|
"@modelcontextprotocol/ext-tasks": "0.2.2",
|
|
72
75
|
"@tailwindcss/postcss": "^4.3.3",
|
|
@@ -75,6 +78,7 @@
|
|
|
75
78
|
"@types/pg": "^8.23.1",
|
|
76
79
|
"@types/react": "^19.3.0",
|
|
77
80
|
"@types/react-dom": "^19.3.0",
|
|
81
|
+
"@types/web-push": "^3.6.4",
|
|
78
82
|
"@types/ws": "^8.18.2",
|
|
79
83
|
"eslint": "^10.11.0",
|
|
80
84
|
"eslint-plugin-check-file": "^3.3.2",
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
-- A client party with no human at the authorize step signs in by client credentials (vendor platforms V4): an access token from no code, with no refresh token.
|
|
2
|
+
ALTER TABLE "oauth_clients" ADD COLUMN "grant" TEXT NOT NULL DEFAULT 'authorizationCode';
|
|
3
|
+
ALTER TABLE "issued_tokens" ALTER COLUMN "refresh_hash" DROP NOT NULL;
|
|
4
|
+
ALTER TABLE "issued_tokens" ALTER COLUMN "refresh_expires_at" DROP NOT NULL;
|
|
5
|
+
ALTER TABLE "issued_tokens" ALTER COLUMN "code_hash" DROP NOT NULL;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
-- A2A in (decision 0060): a call may match no capability, its delivery is read from the fleet, and an A2A call belongs to a task.
|
|
2
|
+
ALTER TABLE "client_calls" ALTER COLUMN "capability" DROP NOT NULL;
|
|
3
|
+
ALTER TABLE "client_calls" ADD COLUMN "delivery_state" TEXT;
|
|
4
|
+
ALTER TABLE "client_calls" ADD COLUMN "delivery_since" TIMESTAMP(3);
|
|
5
|
+
ALTER TABLE "client_calls" ADD COLUMN "task_id" TEXT;
|
|
6
|
+
ALTER TABLE "client_calls" ADD COLUMN "task_message" TEXT;
|
|
7
|
+
|
|
8
|
+
CREATE INDEX "client_calls_fleet_id_task_id_idx" ON "client_calls"("fleet_id", "task_id");
|
|
9
|
+
|
|
10
|
+
CREATE TABLE "a2a_tasks" (
|
|
11
|
+
"fleet_id" TEXT NOT NULL,
|
|
12
|
+
"task_id" TEXT NOT NULL,
|
|
13
|
+
"party" TEXT NOT NULL,
|
|
14
|
+
"context_id" TEXT NOT NULL,
|
|
15
|
+
"created_at" TIMESTAMP(3) NOT NULL,
|
|
16
|
+
|
|
17
|
+
CONSTRAINT "a2a_tasks_pkey" PRIMARY KEY ("fleet_id","task_id")
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE INDEX "a2a_tasks_fleet_id_party_created_at_task_id_idx" ON "a2a_tasks"("fleet_id", "party", "created_at" DESC, "task_id" DESC);
|