@aeolus-fleet/gateway 0.35.0 → 0.36.1
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 +12 -9
- package/dist/adapters/fleet/core-version.d.ts +1 -1
- package/dist/adapters/fleet/core-version.js +1 -1
- package/dist/adapters/fleet/rest-fleet-door.js +51 -7
- package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
- package/dist/adapters/http/front-door.d.ts +1 -1
- package/dist/adapters/http/front-door.js +5 -3
- package/dist/adapters/http/front-door.js.map +1 -1
- package/dist/adapters/http/person-tools.js +27 -9
- package/dist/adapters/http/person-tools.js.map +1 -1
- package/dist/adapters/http/slack-routes.d.ts +2 -0
- package/dist/adapters/http/slack-routes.js +11 -10
- package/dist/adapters/http/slack-routes.js.map +1 -1
- package/dist/adapters/pagasae/email-channel.d.ts +1 -2
- package/dist/adapters/pagasae/email-channel.js +3 -3
- package/dist/adapters/pagasae/email-channel.js.map +1 -1
- package/dist/adapters/prisma/basket-entries.d.ts +4 -0
- package/dist/adapters/prisma/basket-entries.js +53 -0
- package/dist/adapters/prisma/basket-entries.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/generated/browser.d.ts +15 -4
- package/dist/adapters/prisma/generated/client.d.ts +15 -4
- package/dist/adapters/prisma/generated/internal/class.d.ts +26 -4
- 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 +228 -43
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +42 -9
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +42 -7
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +42 -9
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/adapters/prisma/generated/models/BasketEntry.d.ts +1303 -0
- package/dist/adapters/prisma/generated/models/BasketEntry.js +2 -0
- package/dist/adapters/prisma/generated/models/BasketEntry.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ItemOutcome.d.ts +1106 -0
- package/dist/adapters/prisma/generated/models/ItemOutcome.js +2 -0
- package/dist/adapters/prisma/generated/models/ItemOutcome.js.map +1 -0
- package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +125 -1
- package/dist/adapters/prisma/generated/models/PartySignInNotice.d.ts +32 -1
- package/dist/adapters/prisma/generated/models/Route.d.ts +1038 -0
- package/dist/adapters/prisma/generated/models/Route.js +2 -0
- package/dist/adapters/prisma/generated/models/Route.js.map +1 -0
- package/dist/adapters/prisma/generated/models/SlackLink.d.ts +1 -32
- package/dist/adapters/prisma/generated/models/SlackPost.d.ts +33 -58
- package/dist/adapters/prisma/generated/models.d.ts +3 -1
- package/dist/adapters/prisma/item-outcomes.d.ts +4 -0
- package/dist/adapters/prisma/item-outcomes.js +28 -0
- package/dist/adapters/prisma/item-outcomes.js.map +1 -0
- package/dist/adapters/prisma/opened-deliveries.js +4 -0
- package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
- package/dist/adapters/prisma/routes.d.ts +4 -0
- package/dist/adapters/prisma/routes.js +19 -0
- package/dist/adapters/prisma/routes.js.map +1 -0
- package/dist/adapters/prisma/sign-in-notices.js +11 -5
- package/dist/adapters/prisma/sign-in-notices.js.map +1 -1
- package/dist/adapters/prisma/slack-links.js +0 -4
- package/dist/adapters/prisma/slack-links.js.map +1 -1
- package/dist/adapters/prisma/slack-posts.js +37 -3
- package/dist/adapters/prisma/slack-posts.js.map +1 -1
- package/dist/adapters/slack/slack-messages.d.ts +2 -0
- package/dist/adapters/slack/slack-messages.js +29 -3
- package/dist/adapters/slack/slack-messages.js.map +1 -1
- package/dist/adapters/trpc/router.d.ts +88 -20
- package/dist/adapters/trpc/router.js +47 -18
- package/dist/adapters/trpc/router.js.map +1 -1
- package/dist/adapters/web-push/web-push.js +1 -1
- package/dist/adapters/web-push/web-push.js.map +1 -1
- package/dist/app.d.ts +7 -0
- package/dist/app.js +88 -22
- package/dist/app.js.map +1 -1
- package/dist/bin/aeolus-gateway.js +1 -0
- package/dist/bin/aeolus-gateway.js.map +1 -1
- package/dist/config.d.ts +8 -1
- package/dist/config.js +21 -0
- package/dist/config.js.map +1 -1
- package/dist/core/account-sign-in/start-account-sign-in.d.ts +1 -1
- package/dist/core/account-sign-in/start-account-sign-in.js +1 -1
- package/dist/core/account-sign-in/start-account-sign-in.js.map +1 -1
- package/dist/core/mcp-in/collect-replies.d.ts +2 -0
- package/dist/core/mcp-in/collect-replies.js +11 -3
- package/dist/core/mcp-in/collect-replies.js.map +1 -1
- package/dist/core/mcp-in/ports.d.ts +2 -1
- package/dist/core/mcp-out/run-party.d.ts +3 -1
- package/dist/core/mcp-out/run-party.js +9 -2
- package/dist/core/mcp-out/run-party.js.map +1 -1
- package/dist/core/party-grants/complete-party-sign-in.d.ts +5 -3
- package/dist/core/party-grants/complete-party-sign-in.js +7 -3
- package/dist/core/party-grants/complete-party-sign-in.js.map +1 -1
- package/dist/core/party-grants/ports.d.ts +17 -3
- package/dist/core/party-grants/tell-sign-in-needed.d.ts +9 -6
- package/dist/core/party-grants/tell-sign-in-needed.js +28 -12
- package/dist/core/party-grants/tell-sign-in-needed.js.map +1 -1
- package/dist/core/people/answer-delivery.d.ts +9 -13
- package/dist/core/people/answer-delivery.js +23 -6
- package/dist/core/people/answer-delivery.js.map +1 -1
- package/dist/core/people/basket.d.ts +104 -0
- package/dist/core/people/basket.js +42 -0
- package/dist/core/people/basket.js.map +1 -0
- package/dist/core/people/count-basket.d.ts +16 -0
- package/dist/core/people/count-basket.js +14 -0
- package/dist/core/people/count-basket.js.map +1 -0
- package/dist/core/people/done-delivery.d.ts +21 -13
- package/dist/core/people/done-delivery.js +34 -4
- package/dist/core/people/done-delivery.js.map +1 -1
- package/dist/core/people/finish-own-step.d.ts +27 -0
- package/dist/core/people/finish-own-step.js +67 -0
- package/dist/core/people/finish-own-step.js.map +1 -0
- package/dist/core/people/inbox-entry.js +1 -1
- package/dist/core/people/inbox-entry.js.map +1 -1
- package/dist/core/people/item-job.d.ts +9 -0
- package/dist/core/people/item-job.js +38 -0
- package/dist/core/people/item-job.js.map +1 -0
- package/dist/core/people/item-outcome.d.ts +37 -0
- package/dist/core/people/item-outcome.js +21 -0
- package/dist/core/people/item-outcome.js.map +1 -0
- package/dist/core/people/item-state.d.ts +10 -0
- package/dist/core/people/item-state.js +17 -0
- package/dist/core/people/item-state.js.map +1 -0
- package/dist/core/people/open-delivery.d.ts +29 -14
- package/dist/core/people/open-delivery.js +108 -19
- package/dist/core/people/open-delivery.js.map +1 -1
- package/dist/core/people/opened-of.d.ts +30 -9
- package/dist/core/people/opened-of.js +25 -4
- package/dist/core/people/opened-of.js.map +1 -1
- package/dist/core/people/person-crew.d.ts +5 -1
- package/dist/core/people/person-crew.js +7 -0
- package/dist/core/people/person-crew.js.map +1 -1
- package/dist/core/people/ports.d.ts +42 -19
- package/dist/core/people/put-in-basket.d.ts +39 -0
- package/dist/core/people/put-in-basket.js +57 -0
- package/dist/core/people/put-in-basket.js.map +1 -0
- package/dist/core/people/read-basket.d.ts +54 -0
- package/dist/core/people/read-basket.js +57 -0
- package/dist/core/people/read-basket.js.map +1 -0
- package/dist/core/people/read-bridge-home.d.ts +47 -0
- package/dist/core/people/read-bridge-home.js +53 -0
- package/dist/core/people/read-bridge-home.js.map +1 -0
- package/dist/core/people/read-inbox.d.ts +11 -6
- package/dist/core/people/read-inbox.js +17 -10
- package/dist/core/people/read-inbox.js.map +1 -1
- package/dist/core/people/read-record.d.ts +48 -0
- package/dist/core/people/read-record.js +44 -0
- package/dist/core/people/read-record.js.map +1 -0
- package/dist/core/people/read-routing.d.ts +26 -0
- package/dist/core/people/read-routing.js +22 -0
- package/dist/core/people/read-routing.js.map +1 -0
- package/dist/core/people/read-wake-channels.d.ts +7 -8
- package/dist/core/people/read-wake-channels.js +4 -4
- package/dist/core/people/read-wake-channels.js.map +1 -1
- package/dist/core/people/remove-from-basket.d.ts +20 -0
- package/dist/core/people/remove-from-basket.js +52 -0
- package/dist/core/people/remove-from-basket.js.map +1 -0
- package/dist/core/people/routing.d.ts +50 -0
- package/dist/core/people/routing.js +35 -0
- package/dist/core/people/routing.js.map +1 -0
- package/dist/core/people/send-basket.d.ts +40 -0
- package/dist/core/people/send-basket.js +60 -0
- package/dist/core/people/send-basket.js.map +1 -0
- package/dist/core/people/send-stored-answers.d.ts +33 -0
- package/dist/core/people/send-stored-answers.js +96 -0
- package/dist/core/people/send-stored-answers.js.map +1 -0
- package/dist/core/people/stale-question.d.ts +28 -0
- package/dist/core/people/stale-question.js +26 -0
- package/dist/core/people/stale-question.js.map +1 -0
- package/dist/core/people/step-outcome.d.ts +18 -0
- package/dist/core/people/step-outcome.js +18 -0
- package/dist/core/people/step-outcome.js.map +1 -0
- package/dist/core/people/turn-route.d.ts +34 -0
- package/dist/core/people/turn-route.js +42 -0
- package/dist/core/people/turn-route.js.map +1 -0
- package/dist/core/people/wake-person.d.ts +15 -7
- package/dist/core/people/wake-person.js +54 -28
- package/dist/core/people/wake-person.js.map +1 -1
- package/dist/core/people/web-push-channel.d.ts +2 -2
- package/dist/core/people/web-push-channel.js +3 -3
- package/dist/core/people/web-push-channel.js.map +1 -1
- package/dist/core/requests/ask-owners.d.ts +1 -1
- package/dist/core/requests/ask-owners.js +4 -4
- package/dist/core/requests/ask-owners.js.map +1 -1
- package/dist/core/requests/list-mine.d.ts +1 -1
- package/dist/core/requests/list-mine.js +1 -1
- package/dist/core/requests/list-to-decide.d.ts +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/slack/answer-in-slack.d.ts +18 -15
- package/dist/core/slack/answer-in-slack.js +39 -20
- package/dist/core/slack/answer-in-slack.js.map +1 -1
- package/dist/core/slack/complete-link.js +3 -3
- package/dist/core/slack/complete-link.js.map +1 -1
- package/dist/core/slack/edit-slack-posts.d.ts +23 -0
- package/dist/core/slack/edit-slack-posts.js +49 -0
- package/dist/core/slack/edit-slack-posts.js.map +1 -0
- package/dist/core/slack/ports.d.ts +28 -9
- package/dist/core/slack/read-slack-link.d.ts +2 -3
- package/dist/core/slack/read-slack-link.js +2 -2
- package/dist/core/slack/read-slack-link.js.map +1 -1
- package/dist/core/slack/see-in-slack.d.ts +34 -0
- package/dist/core/slack/see-in-slack.js +48 -0
- package/dist/core/slack/see-in-slack.js.map +1 -0
- package/dist/core/slack/send-slack-events.js +1 -1
- package/dist/core/slack/send-slack-events.js.map +1 -1
- package/dist/core/slack/show-in-slack.d.ts +20 -15
- package/dist/core/slack/show-in-slack.js +36 -45
- package/dist/core/slack/show-in-slack.js.map +1 -1
- package/dist/core/slack/slack-link.d.ts +0 -2
- package/dist/core/slack/slack-post-of.d.ts +9 -9
- package/dist/core/slack/slack-post-of.js +12 -3
- package/dist/core/slack/slack-post-of.js.map +1 -1
- package/dist/core/slack/slack-post.d.ts +13 -7
- package/dist/core/slack/slack-post.js +2 -2
- package/dist/core/slack/slack-post.js.map +1 -1
- package/dist/core/slack/slack-press.d.ts +45 -0
- package/dist/core/slack/slack-press.js +26 -0
- package/dist/core/slack/slack-press.js.map +1 -0
- package/dist/core/slack/start-link.d.ts +1 -1
- package/dist/core/slack/start-link.js +1 -1
- package/dist/core/slack/unlink-slack.d.ts +1 -1
- package/dist/core/slack/unlink-slack.js +1 -1
- package/dist/core/slack/unlink-slack.js.map +1 -1
- package/dist/person-waiters.js +3 -1
- package/dist/person-waiters.js.map +1 -1
- package/dist/round-worker.d.ts +23 -0
- package/dist/round-worker.js +38 -0
- package/dist/round-worker.js.map +1 -0
- package/package.json +3 -3
- package/src/adapters/prisma/migrations/20261101090000_item_outcomes/migration.sql +12 -0
- package/src/adapters/prisma/migrations/20261101091000_opened_deliveries_content_type/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261101120000_opened_deliveries_questions/migration.sql +3 -0
- package/src/adapters/prisma/migrations/20261101150000_basket_entries/migration.sql +25 -0
- package/src/adapters/prisma/migrations/20261101180000_opened_deliveries_steps/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261101181000_party_sign_in_notices_steps/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261102090000_routes/migration.sql +11 -0
- package/src/adapters/prisma/migrations/20261102091000_slack_posts_unacknowledged/migration.sql +3 -0
- package/src/adapters/prisma/migrations/20261102092000_slack_links_routed/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261102093000_email_channels_routed/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261103090000_slack_posts_edited/migration.sql +5 -0
- package/src/adapters/prisma/schema.prisma +71 -15
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/app-path-routes-manifest.json +8 -4
- package/web/.next/build-manifest.json +127 -79
- package/web/.next/diagnostics/route-bundle-stats.json +215 -143
- package/web/.next/fallback-build-manifest.json +3 -3
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/routes-manifest.json +50 -26
- package/web/.next/server/app/(console)/bridge/basket/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/basket}/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/basket}/page/next-font-manifest.json +1 -1
- package/web/.next/server/app/(console)/bridge/basket/page/server-reference-manifest.json +75 -0
- package/web/.next/server/app/(console)/bridge/basket/page.js +25 -0
- package/web/.next/server/app/(console)/bridge/basket/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/bridge/basket/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/bridge/changes/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/bridge/changes/route.js +8 -0
- package/web/.next/server/app/(console)/{overview/focus → bridge/changes}/route.js.nft.json +1 -1
- package/web/.next/server/app/(console)/{overview/focus → bridge/changes}/route_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/bridge/done/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/bridge/done/page/build-manifest.json +23 -0
- package/web/.next/server/app/(console)/bridge/done/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/(console)/bridge/done/page/server-reference-manifest.json +75 -0
- package/web/.next/server/app/(console)/bridge/done/page.js +25 -0
- package/web/.next/server/app/(console)/bridge/done/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/bridge/done/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/bridge/focus/route/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/bridge/focus/route.js +8 -0
- package/web/.next/server/app/(console)/{overview/changes → bridge/focus}/route.js.nft.json +1 -1
- package/web/.next/server/app/(console)/bridge/focus/route_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/bridge/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/{overview → bridge}/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/{overview → bridge}/page/next-font-manifest.json +1 -1
- package/web/.next/server/app/(console)/bridge/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/(console)/bridge/page/server-reference-manifest.json +65 -0
- package/web/.next/server/app/(console)/{overview → bridge}/page.js +11 -11
- package/web/.next/server/app/(console)/bridge/page.js.map +5 -0
- package/web/.next/server/app/(console)/{overview → bridge}/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/bridge/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/bridge/settings/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/bridge/settings/page/build-manifest.json +23 -0
- package/web/.next/server/app/(console)/bridge/settings/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/(console)/bridge/settings/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/(console)/bridge/settings/page/server-reference-manifest.json +15 -0
- package/web/.next/server/app/(console)/bridge/settings/page.js +23 -0
- package/web/.next/server/app/(console)/bridge/settings/page.js.map +5 -0
- package/web/.next/server/app/(console)/bridge/settings/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/bridge/settings/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/build-manifest.json +23 -0
- package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +25 -0
- package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page.js +25 -0
- package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page.js.map +5 -0
- package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page.js.nft.json +1 -0
- package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/bridge/settings/routing/page/app-paths-manifest.json +3 -0
- package/web/.next/server/app/(console)/bridge/settings/routing/page/build-manifest.json +23 -0
- package/web/.next/server/app/(console)/bridge/settings/routing/page/next-font-manifest.json +11 -0
- package/web/.next/server/app/(console)/bridge/settings/routing/page/react-loadable-manifest.json +1 -0
- package/web/.next/server/app/(console)/bridge/settings/routing/page/server-reference-manifest.json +55 -0
- package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/settings/routing}/page.js +12 -12
- package/web/.next/server/app/(console)/bridge/settings/routing/page.js.map +5 -0
- package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/settings/routing}/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/bridge/settings/routing/page_client-reference-manifest.js +3 -0
- package/web/.next/server/app/(console)/gateway-off/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/meetings/[meetingId]/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +1 -1
- package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +16 -16
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +16 -16
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/add/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/outside-parties/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
- package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/parties/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/slack/disconnect/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/slack/expose/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/slack/link/route.js.nft.json +1 -1
- package/web/.next/server/app/(console)/slack/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/slack/remove/page/build-manifest.json +4 -4
- package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/server/app/_global-error/page_client-reference-manifest.js +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/build-manifest.json +4 -4
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/authorize/failed/page.js +1 -1
- 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/build-manifest.json +4 -4
- package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/authorize/pick/page.js +1 -1
- 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/build-manifest.json +4 -4
- 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 +1 -1
- 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 +8 -4
- package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js +3 -0
- package/web/.next/server/chunks/{[root-of-the-server]__1tfyrijwfgqlk._.js → [root-of-the-server]__13mh3krxil59c._.js} +2 -2
- package/web/.next/server/chunks/[root-of-the-server]__13mh3krxil59c._.js.map +1 -0
- package/web/.next/server/chunks/_05qgg3__4kdbm._.js +3 -0
- package/web/.next/server/chunks/_05qgg3__4kdbm._.js.map +1 -0
- package/web/.next/server/chunks/_0_um96p6psnqx._.js +4 -4
- package/web/.next/server/chunks/_0_um96p6psnqx._.js.map +1 -1
- package/web/.next/server/chunks/_1uap5tql2vvsb._.js +3 -0
- package/web/.next/server/chunks/{_04is-uopj3op9._.js.map → _1uap5tql2vvsb._.js.map} +1 -1
- package/web/.next/server/chunks/_1xf83h9norhws._.js +4 -4
- package/web/.next/server/chunks/_1xf83h9norhws._.js.map +1 -1
- package/web/.next/server/chunks/_20ne4s-e_jzxp._.js +1 -1
- package/web/.next/server/chunks/_20ne4s-e_jzxp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js +3 -0
- package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js.map +1 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js +3 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js.map +1 -0
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__179upda-y7uap._.js → [root-of-the-server]__0gnfxe62edx95._.js} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1iqxg48po42ig._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1iqxg48po42ig._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__04_bc8g0oe4jt._.js → [root-of-the-server]__1yyaeeylnezpi._.js} +1 -1
- package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
- package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +4 -4
- package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0a_nsm-ye2r6v._.js +4 -0
- package/web/.next/server/chunks/ssr/_0a_nsm-ye2r6v._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js +3 -0
- package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
- package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
- package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
- package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_1oy13966tft2_._.js → _10-gn6g9yc63s._.js} +2 -2
- package/web/.next/server/chunks/ssr/_10-gn6g9yc63s._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_1pf8x2exvfl1z._.js → _177fdczus39s7._.js} +2 -2
- package/web/.next/server/chunks/ssr/_177fdczus39s7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
- package/web/.next/server/chunks/ssr/_1e2o809f0ekry._.js +1 -1
- package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js +1 -1
- package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js +3 -0
- package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.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/_1q2s-hb67yjfb._.js +3 -0
- package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js.map +1 -0
- 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/_1yi3j4a16uet-._.js +3 -0
- package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{node_modules_@aeolus-fleet_common_dist_header_1id6g-6m2hh0l._.js → node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js} +2 -2
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{node_modules_@aeolus-fleet_common_dist_header_1jvz31plyg2f-._.js → node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js} +2 -2
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js +1 -1
- package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js +3 -0
- package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js +3 -0
- package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js +3 -0
- package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js +3 -0
- package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js +3 -0
- package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js +3 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js.map +1 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js +3 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js.map +1 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js +3 -0
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_(console)_outside-parties_[name]_change_page_tsx_00bpg0s2eypj9._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_outside-parties_[name]_retire_page_tsx_1zxy74pr5_2kn._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
- 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_bridge_0-mhu0jaig2u3._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js +3 -0
- package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
- 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_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
- package/web/.next/server/chunks/web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js +3 -0
- package/web/.next/server/middleware-build-manifest.js +127 -79
- package/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/server/next-font-manifest.json +24 -8
- 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 +218 -132
- package/web/.next/static/chunks/0az9upwm-8_q9.js +1 -0
- package/web/.next/static/chunks/0c1tqlbsvq1dj.js +1 -0
- package/web/.next/static/chunks/0fh11dkddwf_2.js +1 -0
- package/web/.next/static/chunks/0gbozvd_yh421.js +1 -0
- package/web/.next/static/chunks/0l9_oie6xi0kd.js +1 -0
- package/web/.next/static/chunks/0m512dxdcrv-b.js +1 -0
- package/web/.next/static/chunks/1166rxt6h6ilq.js +1 -0
- package/web/.next/static/chunks/1485slb5zus5p.js +1 -0
- package/web/.next/static/chunks/180aowme095ds.js +1 -0
- package/web/.next/static/chunks/{03239gtej3tj0.js → 24olc0btcvn7q.js} +1 -1
- package/web/.next/static/chunks/296w-74ry5lzk.js +1 -0
- package/web/.next/static/chunks/2hoi73vy1wqpo.js +1 -0
- package/web/.next/static/chunks/2mtfca4qk_s34.js +1 -0
- package/web/.next/static/chunks/{3ceatffqhpgpu.js → 2z2auwx1s2mgl.js} +1 -1
- package/web/.next/static/chunks/397zvdr6xr5pq.js +1 -0
- package/web/.next/static/chunks/{2_e-puldye2do.js → 3db90zxmny2y-.js} +1 -1
- package/web/.next/static/chunks/3ow9h8hreko-p.css +3 -0
- package/web/.next/static/chunks/3pd8pele5x1o9.js +1 -0
- package/web/.next/static/chunks/3srfjz42u14tx.js +1 -0
- package/web/.next/static/chunks/{0tmvd_zw45u96.js → 3x0p-z3zdrk_b.js} +1 -1
- package/web/.next/static/chunks/3yq9jt4p_0uid.js +1 -0
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/types/routes.d.ts +10 -6
- package/web/.next/types/validator.ts +108 -40
- package/web/public/wake-worker.js +4 -4
- package/dist/adapters/prisma/email-channels.d.ts +0 -4
- package/dist/adapters/prisma/email-channels.js +0 -14
- package/dist/adapters/prisma/email-channels.js.map +0 -1
- package/dist/adapters/prisma/generated/models/EmailChannel.d.ts +0 -946
- package/dist/adapters/prisma/generated/models/EmailChannel.js +0 -2
- package/dist/adapters/prisma/generated/models/EmailChannel.js.map +0 -1
- package/dist/core/people/turn-email-channel.d.ts +0 -21
- package/dist/core/people/turn-email-channel.js +0 -22
- package/dist/core/people/turn-email-channel.js.map +0 -1
- package/dist/core/slack/show-all-in-slack.d.ts +0 -16
- package/dist/core/slack/show-all-in-slack.js +0 -18
- package/dist/core/slack/show-all-in-slack.js.map +0 -1
- package/web/.next/server/app/(console)/overview/changes/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/(console)/overview/changes/route.js +0 -8
- package/web/.next/server/app/(console)/overview/changes/route_client-reference-manifest.js +0 -3
- package/web/.next/server/app/(console)/overview/focus/route/app-paths-manifest.json +0 -3
- package/web/.next/server/app/(console)/overview/focus/route.js +0 -8
- package/web/.next/server/app/(console)/overview/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/(console)/overview/page/server-reference-manifest.json +0 -95
- package/web/.next/server/app/(console)/overview/page_client-reference-manifest.js +0 -3
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page/app-paths-manifest.json +0 -3
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page/server-reference-manifest.json +0 -25
- package/web/.next/server/app/(console)/overview/requests/[requestId]/page_client-reference-manifest.js +0 -3
- package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_overview_focus_route_actions_10hgyjvv-6fus.js +0 -3
- package/web/.next/server/chunks/1mb5_next-internal_server_app_(console)_overview_changes_route_actions_0zbq7lqsf5nng.js +0 -3
- package/web/.next/server/chunks/[root-of-the-server]__1tfyrijwfgqlk._.js.map +0 -1
- package/web/.next/server/chunks/_04is-uopj3op9._.js +0 -3
- package/web/.next/server/chunks/_1-fw4-pwzazl4._.js +0 -3
- package/web/.next/server/chunks/_1-fw4-pwzazl4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js +0 -3
- package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0icm7kndx480o._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0icm7kndx480o._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1zlq3zji9v53h._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1zlq3zji9v53h._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0-boiqan2j4tr._.js +0 -3
- package/web/.next/server/chunks/ssr/_0-boiqan2j4tr._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js +0 -3
- package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0bizyb21i2sl8._.js +0 -3
- package/web/.next/server/chunks/ssr/_0bizyb21i2sl8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1oy13966tft2_._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1pf8x2exvfl1z._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1yqu7dcxs2-so._.js +0 -3
- package/web/.next/server/chunks/ssr/_1yqu7dcxs2-so._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_0_cxkn6vujxay._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_0_cxkn6vujxay._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_15ceu3jhtifcw._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_15ceu3jhtifcw._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1id6g-6m2hh0l._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1jvz31plyg2f-._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00i8qu9x65r6w.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00i8qu9x65r6w.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a3qpq0qt_bi4.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a3qpq0qt_bi4.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_0plvx3c_1cozb._.js +0 -3
- package/web/.next/server/chunks/ssr/web_0plvx3c_1cozb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_1loiet18xbddu._.js +0 -3
- package/web/.next/server/chunks/ssr/web_1loiet18xbddu._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js +0 -3
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_087e7ba8loavc._.js +0 -3
- package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_087e7ba8loavc._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_1nn1jz5nh77af._.js +0 -3
- package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_1nn1jz5nh77af._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_1utnezwv0xr-l._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_1utnezwv0xr-l._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_overview_0udx5lm8igils._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_overview_0udx5lm8igils._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_overview_144fx4a-r9_wn._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_overview_144fx4a-r9_wn._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_overview_state_00l0wkgvv9y6j._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_overview_state_00l0wkgvv9y6j._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_features_overview_ui_10mb24kjiffea._.js +0 -3
- package/web/.next/server/chunks/ssr/web_features_overview_ui_10mb24kjiffea._.js.map +0 -1
- package/web/.next/static/chunks/0nhopjmnw_dqt.js +0 -1
- package/web/.next/static/chunks/0vlawcs6_kjs1.js +0 -1
- package/web/.next/static/chunks/1se0j0htjyep6.js +0 -1
- package/web/.next/static/chunks/26vlpatu47xtw.css +0 -3
- package/web/.next/static/chunks/287ofedoj_6xl.js +0 -1
- package/web/.next/static/chunks/2cd4e71s711ad.js +0 -1
- package/web/.next/static/chunks/2ewacyhp73due.js +0 -1
- package/web/.next/static/chunks/34kulpk3a-cka.js +0 -1
- package/web/.next/static/chunks/3fd167c0-ot3u.js +0 -1
- package/web/.next/static/chunks/3knqujtrdi225.js +0 -1
- package/web/.next/static/chunks/3l5jtag3-fukc.js +0 -1
- package/web/.next/static/chunks/3rxg2mdhxd6yt.js +0 -1
- package/web/.next/static/chunks/3v6tr952p9dba.js +0 -1
- /package/web/.next/server/app/(console)/{overview → bridge/basket}/page/react-loadable-manifest.json +0 -0
- /package/web/.next/server/app/(console)/{overview → bridge/basket}/page.js.map +0 -0
- /package/web/.next/server/app/(console)/{overview → bridge}/changes/route/build-manifest.json +0 -0
- /package/web/.next/server/app/(console)/{overview → bridge}/changes/route/server-reference-manifest.json +0 -0
- /package/web/.next/server/app/(console)/{overview → bridge}/changes/route.js.map +0 -0
- /package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/done}/page/react-loadable-manifest.json +0 -0
- /package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/done}/page.js.map +0 -0
- /package/web/.next/server/app/(console)/{overview → bridge}/focus/route/build-manifest.json +0 -0
- /package/web/.next/server/app/(console)/{overview → bridge}/focus/route/server-reference-manifest.json +0 -0
- /package/web/.next/server/app/(console)/{overview → bridge}/focus/route.js.map +0 -0
- /package/web/.next/server/chunks/{0b9d__next-internal_server_app_(console)_overview_focus_route_actions_10hgyjvv-6fus.js.map → 0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{[root-of-the-server]__179upda-y7uap._.js.map → [root-of-the-server]__0gnfxe62edx95._.js.map} +0 -0
- /package/web/.next/server/chunks/ssr/{[root-of-the-server]__04_bc8g0oe4jt._.js.map → [root-of-the-server]__1yyaeeylnezpi._.js.map} +0 -0
- /package/web/.next/server/chunks/{1mb5_next-internal_server_app_(console)_overview_changes_route_actions_0zbq7lqsf5nng.js.map → web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js.map} +0 -0
- /package/web/.next/static/{R_nPUtDcDp1BPV3QHhaMZ → CMppMkysNciqc8k4TWwia}/_buildManifest.js +0 -0
- /package/web/.next/static/{R_nPUtDcDp1BPV3QHhaMZ → CMppMkysNciqc8k4TWwia}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{R_nPUtDcDp1BPV3QHhaMZ → CMppMkysNciqc8k4TWwia}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { FleetRefusal } from "../connection/ports.js";
|
|
2
2
|
import type { Clock } from "../shared/clock.js";
|
|
3
3
|
import { type Result } from "../shared/result.js";
|
|
4
|
+
import type { RoutingDefaults, Routes } from "./routing.js";
|
|
4
5
|
import type { FocusedPages, PersonShip, PersonShipDoor, ShownElsewhere, WakeChannel, WakeChannelName, WakesSent } from "./ports.js";
|
|
5
6
|
/**
|
|
6
7
|
* What a wake came to: nothing left to wake (settled), a wake held back
|
|
@@ -20,11 +21,15 @@ export type WakePerson = (ship: PersonShip, crewToken: string) => Promise<Result
|
|
|
20
21
|
* Use case: wakes a person for what waits on their person ship (wake a
|
|
21
22
|
* person, W3, W8). It takes the ship's deliveries with the gateway as their
|
|
22
23
|
* waker, leaving the handed ones out so ten held deliveries never shut a new
|
|
23
|
-
* one out; those never handed are fresh.
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
24
|
+
* one out; those never handed are fresh. Where each job shows is read anew
|
|
25
|
+
* at every wake (Bridge, section 8), so a change applies at once. Each
|
|
26
|
+
* channel whose window has passed sends one wake for the fresh deliveries
|
|
27
|
+
* of the jobs on for it that arrived since it was turned on (CC20); each is
|
|
28
|
+
* then handed no. 1, naming the first of its channels that went out, so a
|
|
29
|
+
* delivery is woken once (CC13). One no channel shows waits in Bridge,
|
|
30
|
+
* unhanded. A wake held back by a window, or that no channel sent, hands
|
|
31
|
+
* nothing, and while a delivery only a failing channel shows is left, the
|
|
32
|
+
* wake counts as failed. Each channel's window is kept after the
|
|
28
33
|
* hand-overs, so a gateway that stopped in between wakes again: one wake
|
|
29
34
|
* more, nothing lost. A fresh delivery sent before a channel's last wake
|
|
30
35
|
* that is still inside its window is one that wake covers: a hand-over the
|
|
@@ -34,8 +39,8 @@ export type WakePerson = (ship: PersonShip, crewToken: string) => Promise<Result
|
|
|
34
39
|
* tried again, that channel is not asked again. While a page of the person is in focus, the page
|
|
35
40
|
* shows what arrives (W6): each fresh delivery is handed through it and no
|
|
36
41
|
* wake goes out. Before all that, a place beyond the pages that shows
|
|
37
|
-
* deliveries itself, as Slack does for a linked person, shows what
|
|
38
|
-
*
|
|
42
|
+
* deliveries itself, as Slack does for a linked person, shows what the
|
|
43
|
+
* person routed there, even while a page is in focus; nothing wakes for those
|
|
39
44
|
* (gateway scopes 9.5 step 5). It is asked at every wake, fresh deliveries
|
|
40
45
|
* or none, so what it left unfinished is finished, and while anything is
|
|
41
46
|
* left the wake counts as failed, so it is tried again.
|
|
@@ -45,6 +50,9 @@ export declare function createWakePerson(deps: {
|
|
|
45
50
|
/** Slack, where the person linked it; none where nothing beyond the pages shows deliveries. */
|
|
46
51
|
shownElsewhere?: ShownElsewhere;
|
|
47
52
|
channels: readonly WakeChannel[];
|
|
53
|
+
/** Where each person routed each job (Bridge, section 8), and the defaults where they chose nothing. */
|
|
54
|
+
routes: Routes;
|
|
55
|
+
defaults: RoutingDefaults;
|
|
48
56
|
wakesSent: WakesSent;
|
|
49
57
|
focused: FocusedPages;
|
|
50
58
|
/** How long a page counts in focus since it was last seen so. */
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { RECEIVE_MAX_UPPER_BOUND } from "@aeolus-fleet/common";
|
|
2
2
|
import { err, ok } from "../shared/result.js";
|
|
3
|
+
import { routingOf } from "./routing.js";
|
|
3
4
|
/**
|
|
4
5
|
* Use case: wakes a person for what waits on their person ship (wake a
|
|
5
6
|
* person, W3, W8). It takes the ship's deliveries with the gateway as their
|
|
6
7
|
* waker, leaving the handed ones out so ten held deliveries never shut a new
|
|
7
|
-
* one out; those never handed are fresh.
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* one out; those never handed are fresh. Where each job shows is read anew
|
|
9
|
+
* at every wake (Bridge, section 8), so a change applies at once. Each
|
|
10
|
+
* channel whose window has passed sends one wake for the fresh deliveries
|
|
11
|
+
* of the jobs on for it that arrived since it was turned on (CC20); each is
|
|
12
|
+
* then handed no. 1, naming the first of its channels that went out, so a
|
|
13
|
+
* delivery is woken once (CC13). One no channel shows waits in Bridge,
|
|
14
|
+
* unhanded. A wake held back by a window, or that no channel sent, hands
|
|
15
|
+
* nothing, and while a delivery only a failing channel shows is left, the
|
|
16
|
+
* wake counts as failed. Each channel's window is kept after the
|
|
12
17
|
* hand-overs, so a gateway that stopped in between wakes again: one wake
|
|
13
18
|
* more, nothing lost. A fresh delivery sent before a channel's last wake
|
|
14
19
|
* that is still inside its window is one that wake covers: a hand-over the
|
|
@@ -18,8 +23,8 @@ import { err, ok } from "../shared/result.js";
|
|
|
18
23
|
* tried again, that channel is not asked again. While a page of the person is in focus, the page
|
|
19
24
|
* shows what arrives (W6): each fresh delivery is handed through it and no
|
|
20
25
|
* wake goes out. Before all that, a place beyond the pages that shows
|
|
21
|
-
* deliveries itself, as Slack does for a linked person, shows what
|
|
22
|
-
*
|
|
26
|
+
* deliveries itself, as Slack does for a linked person, shows what the
|
|
27
|
+
* person routed there, even while a page is in focus; nothing wakes for those
|
|
23
28
|
* (gateway scopes 9.5 step 5). It is asked at every wake, fresh deliveries
|
|
24
29
|
* or none, so what it left unfinished is finished, and while anything is
|
|
25
30
|
* left the wake counts as failed, so it is tried again.
|
|
@@ -37,10 +42,12 @@ export function createWakePerson(deps) {
|
|
|
37
42
|
return taken;
|
|
38
43
|
}
|
|
39
44
|
const everyFresh = taken.value.filter(({ handOverNumber }) => handOverNumber === null);
|
|
45
|
+
// Read anew at every wake, so a change of where a job shows applies at once.
|
|
46
|
+
const routing = routingOf(await deps.routes.list(ship), deps.defaults);
|
|
40
47
|
// Asked even with nothing fresh: it finishes what an earlier wake left unfinished, as after a restart.
|
|
41
48
|
const shownElsewhere = deps.shownElsewhere === undefined
|
|
42
49
|
? ok({ shown: new Set(), isAnyUnfinished: false })
|
|
43
|
-
: await deps.shownElsewhere.show(ship, { crewToken, fresh: everyFresh });
|
|
50
|
+
: await deps.shownElsewhere.show(ship, { crewToken, fresh: everyFresh, routing });
|
|
44
51
|
if (!shownElsewhere.isOk) {
|
|
45
52
|
return shownElsewhere;
|
|
46
53
|
}
|
|
@@ -48,14 +55,15 @@ export function createWakePerson(deps) {
|
|
|
48
55
|
const woken = await wakeFor(ship, {
|
|
49
56
|
crewToken,
|
|
50
57
|
allFresh: everyFresh.filter(({ deliveryId }) => !shown.has(deliveryId)),
|
|
58
|
+
routing,
|
|
51
59
|
});
|
|
52
60
|
// What it left unfinished is finished at a wake tried again.
|
|
53
61
|
return isAnyUnfinished && woken.isOk && woken.value.kind === "settled"
|
|
54
62
|
? ok({ kind: "failed" })
|
|
55
63
|
: woken;
|
|
56
64
|
};
|
|
57
|
-
/** Wakes the person for the fresh deliveries nothing beyond the pages showed. */
|
|
58
|
-
const wakeFor = async (ship, { crewToken, allFresh }) => {
|
|
65
|
+
/** Wakes the person for the fresh deliveries nothing beyond the pages showed, each through the channels on for its job. */
|
|
66
|
+
const wakeFor = async (ship, { crewToken, allFresh, routing }) => {
|
|
59
67
|
/** Hands each fresh delivery no. 1 through the channel, up to the first refusal: that refusal, or none. */
|
|
60
68
|
const handEach = async (fresh, channel) => {
|
|
61
69
|
for (const { deliveryId } of fresh) {
|
|
@@ -77,7 +85,8 @@ export function createWakePerson(deps) {
|
|
|
77
85
|
const refused = await handEach(allFresh, "page");
|
|
78
86
|
return refused === undefined ? ok({ kind: "settled" }) : err(refused);
|
|
79
87
|
}
|
|
80
|
-
const
|
|
88
|
+
const showsOf = (channel) => (delivery) => routing.isShowing(channel.name, delivery);
|
|
89
|
+
const turnedOn = (await Promise.all(deps.channels.map(async (channel) => allFresh.some(showsOf(channel)) && (await channel.isOn(ship)) ? [channel] : []))).flat();
|
|
81
90
|
if (turnedOn.length === 0) {
|
|
82
91
|
return ok({ kind: "settled" });
|
|
83
92
|
}
|
|
@@ -92,13 +101,14 @@ export function createWakePerson(deps) {
|
|
|
92
101
|
: new Date(lastSentAt.getTime() + channel.windowMs),
|
|
93
102
|
};
|
|
94
103
|
}));
|
|
104
|
+
// Only what a channel turned on shows is woken for; the rest waits in Bridge.
|
|
105
|
+
let fresh = allFresh.filter((delivery) => turnedOn.some((channel) => showsOf(channel)(delivery)));
|
|
95
106
|
// What a wake still inside its window covers was left unhanded by a refusal: hand it through that channel.
|
|
96
|
-
let fresh = allFresh;
|
|
97
107
|
for (const { channel, lastSentAt, endsAt } of windows) {
|
|
98
108
|
if (lastSentAt === undefined || endsAt.getTime() <= now.getTime()) {
|
|
99
109
|
continue;
|
|
100
110
|
}
|
|
101
|
-
const covered = fresh.filter((
|
|
111
|
+
const covered = fresh.filter((delivery) => showsOf(channel)(delivery) && delivery.sentAt.getTime() <= lastSentAt.getTime());
|
|
102
112
|
const refused = await handEach(covered, channel.name);
|
|
103
113
|
if (refused !== undefined) {
|
|
104
114
|
return err(refused);
|
|
@@ -109,17 +119,23 @@ export function createWakePerson(deps) {
|
|
|
109
119
|
return ok({ kind: "settled" });
|
|
110
120
|
}
|
|
111
121
|
const refusedBefore = refusedInAttempt.get(attemptKey(ship)) ?? new Set();
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const waiting =
|
|
117
|
-
return
|
|
122
|
+
/** The channels still asked that show any of these deliveries, with their windows. */
|
|
123
|
+
const askedFor = (deliveries) => windows.filter(({ channel }) => !refusedBefore.has(channel.name) && deliveries.some(showsOf(channel)));
|
|
124
|
+
/** Held back by the earliest window of a channel still asked that shows any of these deliveries, or settled when none is left. */
|
|
125
|
+
const heldBackFor = (deliveries) => {
|
|
126
|
+
const waiting = askedFor(deliveries);
|
|
127
|
+
return waiting.length === 0
|
|
118
128
|
? { kind: "settled" }
|
|
119
129
|
: {
|
|
120
130
|
kind: "inWindow",
|
|
121
131
|
until: new Date(Math.min(...waiting.map(({ endsAt }) => endsAt.getTime()))),
|
|
122
|
-
}
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
const due = askedFor(fresh)
|
|
135
|
+
.filter(({ endsAt }) => endsAt.getTime() <= now.getTime())
|
|
136
|
+
.map(({ channel }) => channel);
|
|
137
|
+
if (due.length === 0) {
|
|
138
|
+
return ok(heldBackFor(fresh));
|
|
123
139
|
}
|
|
124
140
|
const wentOut = [];
|
|
125
141
|
let isRetryable = false;
|
|
@@ -128,7 +144,7 @@ export function createWakePerson(deps) {
|
|
|
128
144
|
const lastSentAt = windows.find((window) => window.channel === channel)?.lastSentAt;
|
|
129
145
|
const woken = await channel.wake(ship, { key: `${channel.name}:${lastSentAt === undefined ? 'first' : lastSentAt.toISOString()}` });
|
|
130
146
|
if (woken.isOk) {
|
|
131
|
-
wentOut.push(channel
|
|
147
|
+
wentOut.push(channel);
|
|
132
148
|
}
|
|
133
149
|
else if (woken.error.kind === "refused") {
|
|
134
150
|
refusedBefore.add(channel.name);
|
|
@@ -143,19 +159,29 @@ export function createWakePerson(deps) {
|
|
|
143
159
|
isRetryable = true;
|
|
144
160
|
}
|
|
145
161
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
162
|
+
// Each delivery is handed once, naming the first channel on for its job that went out.
|
|
163
|
+
let refused;
|
|
164
|
+
const left = [];
|
|
165
|
+
for (const delivery of fresh) {
|
|
166
|
+
const through = wentOut.find((channel) => showsOf(channel)(delivery));
|
|
167
|
+
if (through === undefined) {
|
|
168
|
+
left.push(delivery);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
refused ??= await handEach([delivery], through.name);
|
|
172
|
+
}
|
|
149
173
|
}
|
|
150
|
-
const refused = await handEach(fresh, firstOut);
|
|
151
174
|
// 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.
|
|
152
|
-
for (const
|
|
153
|
-
await deps.wakesSent.record({ ship, channel, sentAt: now });
|
|
175
|
+
for (const { name } of wentOut) {
|
|
176
|
+
await deps.wakesSent.record({ ship, channel: name, sentAt: now });
|
|
154
177
|
}
|
|
155
178
|
if (refused !== undefined) {
|
|
156
179
|
return err(refused);
|
|
157
180
|
}
|
|
158
|
-
|
|
181
|
+
if (left.length === 0) {
|
|
182
|
+
return ok({ kind: "settled" });
|
|
183
|
+
}
|
|
184
|
+
return ok(isRetryable ? { kind: "failed" } : heldBackFor(left.filter((delivery) => !wentOut.some((channel) => showsOf(channel)(delivery)))));
|
|
159
185
|
};
|
|
160
186
|
return async (ship, crewToken) => {
|
|
161
187
|
const woken = await wakePerson(ship, crewToken);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wake-person.js","sourceRoot":"","sources":["../../../src/core/people/wake-person.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAmB,MAAM,sBAAsB,CAAC;AAIhF,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"wake-person.js","sourceRoot":"","sources":["../../../src/core/people/wake-person.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { WakeChannel, WebPush, WebPushSubscriptions } from './ports.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Web push, a channel that wakes a person (wake a person, W1, W4, W8). It is
|
|
6
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
|
|
7
|
+
* each such browser, saying only the fleet by its name and the Bridge
|
|
8
8
|
* link; it went out once one push service took it. A subscription its push
|
|
9
9
|
* service says is gone takes no wake again.
|
|
10
10
|
*/
|
|
@@ -13,5 +13,5 @@ export declare function createWebPushChannel(deps: {
|
|
|
13
13
|
webPush: WebPush;
|
|
14
14
|
clock: Clock;
|
|
15
15
|
windowMs: number;
|
|
16
|
-
|
|
16
|
+
bridgeUrlOf: (fleetId: FleetId) => string;
|
|
17
17
|
}): WakeChannel;
|
|
@@ -2,7 +2,7 @@ import { err, ok } from '../shared/result.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Web push, a channel that wakes a person (wake a person, W1, W4, W8). It is
|
|
4
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
|
|
5
|
+
* each such browser, saying only the fleet by its name and the Bridge
|
|
6
6
|
* link; it went out once one push service took it. A subscription its push
|
|
7
7
|
* service says is gone takes no wake again.
|
|
8
8
|
*/
|
|
@@ -13,10 +13,10 @@ export function createWebPushChannel(deps) {
|
|
|
13
13
|
windowMs: deps.windowMs,
|
|
14
14
|
isOn: async (ship) => (await takingWakes(ship)).length > 0,
|
|
15
15
|
wake: async (ship) => {
|
|
16
|
-
const
|
|
16
|
+
const bridgeUrl = deps.bridgeUrlOf(ship.fleetId);
|
|
17
17
|
let isTaken = false;
|
|
18
18
|
for (const subscription of await takingWakes(ship)) {
|
|
19
|
-
const sent = await deps.webPush.send(subscription, { fleetName: subscription.fleetName,
|
|
19
|
+
const sent = await deps.webPush.send(subscription, { fleetName: subscription.fleetName, bridgeUrl });
|
|
20
20
|
switch (sent) {
|
|
21
21
|
case 'sent':
|
|
22
22
|
isTaken = true;
|
|
@@ -1 +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,
|
|
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,IAA0I;IAC7K,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,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,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,SAAS,EAAE,CAAC,CAAC;gBACrG,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,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACzG,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { QUESTION_CONTENT_TYPE, WITHDRAWAL_CONTENT_TYPE } from '@aeolus-fleet/co
|
|
|
2
2
|
/** How many requests one round asks about, and how many questions it withdraws, at most. */
|
|
3
3
|
const QUESTIONS_PER_ROUND = 50;
|
|
4
4
|
const dayOf = (at) => at.toISOString().slice(0, 'yyyy-mm-dd'.length);
|
|
5
|
-
/** The question about one request: it points to
|
|
5
|
+
/** The question about one request: it points to Bridge's settings, where any approver decides (Q5 b, P6-2 b). */
|
|
6
6
|
function questionOf(request, ids) {
|
|
7
7
|
const { subject } = request;
|
|
8
8
|
const people = request.requesters.length === 1 ? '1 person' : `${String(request.requesters.length)} people`;
|
|
@@ -12,8 +12,8 @@ function questionOf(request, ids) {
|
|
|
12
12
|
return {
|
|
13
13
|
id: ids.questionId,
|
|
14
14
|
title: about.title,
|
|
15
|
-
context: `${about.what} Asked by ${people} on ${dayOf(request.askedAt)}; it waits until ${dayOf(request.expiresAt)}, then expires. Any holder of gateway:approve decides on ${ids.
|
|
16
|
-
options: [{ key: 1, label: "Decide on the gateway's page", detail: ids.
|
|
15
|
+
context: `${about.what} Asked by ${people} on ${dayOf(request.askedAt)}; it waits until ${dayOf(request.expiresAt)}, then expires. Any holder of gateway:approve decides on ${ids.settingsUrl}.`,
|
|
16
|
+
options: [{ key: 1, label: "Decide on the gateway's page", detail: ids.settingsUrl }],
|
|
17
17
|
pick: { option: 1, why: 'Approving names the outside party, its owner and its scopes, which the page asks for.' },
|
|
18
18
|
};
|
|
19
19
|
}
|
|
@@ -43,7 +43,7 @@ export function createAskOwners(deps) {
|
|
|
43
43
|
: await deps.sender.send(gateway.crewToken, {
|
|
44
44
|
to: asked,
|
|
45
45
|
contentType: QUESTION_CONTENT_TYPE,
|
|
46
|
-
payload: JSON.stringify(questionOf(request, { questionId,
|
|
46
|
+
payload: JSON.stringify(questionOf(request, { questionId, settingsUrl: deps.settingsUrl })),
|
|
47
47
|
idempotencyKey: `${request.requestId}:question`,
|
|
48
48
|
});
|
|
49
49
|
if (sent !== undefined && !sent.isOk && sent.error.code === 'UNAVAILABLE') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-owners.js","sourceRoot":"","sources":["../../../src/core/requests/ask-owners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAOtF,4FAA4F;AAC5F,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAK/B,MAAM,KAAK,GAAG,CAAC,EAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;AAE3E,
|
|
1
|
+
{"version":3,"file":"ask-owners.js","sourceRoot":"","sources":["../../../src/core/requests/ask-owners.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import type { PendingRequest, PendingRequests } from './ports.js';
|
|
|
6
6
|
export type ListMine = (actor: Actor) => Promise<Result<PendingRequest[], DomainError<'NOT_AN_ACCOUNT'>>>;
|
|
7
7
|
/**
|
|
8
8
|
* Use case: the requests an account asked, in any state, the newest first
|
|
9
|
-
* (decision 0056: Your requests
|
|
9
|
+
* (decision 0056: Your requests, in Bridge's settings). One still pending past its
|
|
10
10
|
* 7 days reads as expired, as the store marks it only when it is next
|
|
11
11
|
* opened. Only an account asks, so any other actor has none.
|
|
12
12
|
*/
|
|
@@ -3,7 +3,7 @@ import { ok } from '../shared/result.js';
|
|
|
3
3
|
import { stateAt } from './request-state.js';
|
|
4
4
|
/**
|
|
5
5
|
* Use case: the requests an account asked, in any state, the newest first
|
|
6
|
-
* (decision 0056: Your requests
|
|
6
|
+
* (decision 0056: Your requests, in Bridge's settings). One still pending past its
|
|
7
7
|
* 7 days reads as expired, as the store marks it only when it is next
|
|
8
8
|
* opened. Only an account asks, so any other actor has none.
|
|
9
9
|
*/
|
|
@@ -4,7 +4,7 @@ import { type DomainError } from '../shared/errors.js';
|
|
|
4
4
|
import { type Result } from '../shared/result.js';
|
|
5
5
|
import type { PendingRequest, PendingRequests } from './ports.js';
|
|
6
6
|
export type ListToDecide = (actor: Actor) => Promise<Result<PendingRequest[], DomainError<'NOT_AN_APPROVER'>>>;
|
|
7
|
-
/** Use case: every open request of the fleet, for an actor holding gateway:approve (decision 0056: To decide
|
|
7
|
+
/** Use case: every open request of the fleet, for an actor holding gateway:approve (decision 0056: To decide, in Bridge's settings). */
|
|
8
8
|
export declare function createListToDecide(deps: {
|
|
9
9
|
requests: PendingRequests;
|
|
10
10
|
clock: Clock;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { refuse } from '../shared/errors.js';
|
|
2
2
|
import { ok } from '../shared/result.js';
|
|
3
3
|
import { APPROVING_SCOPE } from '../parties/approver.js';
|
|
4
|
-
/** Use case: every open request of the fleet, for an actor holding gateway:approve (decision 0056: To decide
|
|
4
|
+
/** Use case: every open request of the fleet, for an actor holding gateway:approve (decision 0056: To decide, in Bridge's settings). */
|
|
5
5
|
export function createListToDecide(deps) {
|
|
6
6
|
return async (actor) => {
|
|
7
7
|
if (!actor.scopes.includes(APPROVING_SCOPE)) {
|
|
@@ -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,wBAAwB,CAAC;AAKzD,
|
|
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,wIAAwI;AACxI,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' | 'NO_AUTHORIZATION_SERVER' | 'SIGN_IN_CHECK_FAILED' | 'NOT_SIGNED_IN' | 'NO_SIGN_IN' | 'SIGN_IN_FAILED' | 'TURNED_AWAY' | 'AUTHORIZATION_SERVER_UNREACHABLE' | 'NO_DYNAMIC_REGISTRATION' | 'REGISTRATION_REFUSED' | 'STATEMENT_REFUSED' | 'INVALID_REDIRECT_URIS' | 'CLIENT_HAS_PARTY' | 'PARTY_NOT_CREWED' | 'NO_SUCH_TOOL' | 'INVALID_ARGUMENTS' | 'NOT_REACHABLE' | 'SEND_REFUSED' | 'NO_SUCH_CALL' | 'NOT_A_PERSON' | 'SIGNED_OUT' | 'NO_SUCH_DELIVERY' | 'NOT_A_NETWORKER' | 'OPEN_NETWORK' | 'OUTSIDE_PARTIES_OFF' | 'INVALID_SERVER_URL' | 'NOT_A_MANAGER' | 'RETIRE_REFUSED' | 'NOT_AN_ACCOUNT' | 'PARTY_NOT_COMMISSIONED' | 'CHANGE_REFUSED' | 'UNKNOWN_ALIAS' | 'PAYLOAD_TOO_LARGE' | 'TASK_NOT_FOUND' | 'TASK_TERMINAL' | 'WEBHOOK_REFUSED' | 'PUSH_CONFIG_NOT_FOUND' | 'CONTEXT_MISMATCH' | 'CARD_UNREACHABLE' | 'CARD_INVALID' | 'NOT_A_MESSAGE' | 'CHANNEL_NOT_OFFERED' | 'INVALID_SUBSCRIPTION' | 'NO_SUCH_MEETING' | 'MIC_REFUSED' | 'SCOPE_NOT_LISTED' | 'SLACK_SCOPE_NOT_HELD' | 'SLACK_NOT_CONNECTED' | 'SLACK_TOKEN_REFUSED' | 'SLACK_UNAVAILABLE' | 'OTHER_WORKSPACE' | 'INSTALL_REFUSED' | 'NOT_EXPOSABLE' | 'NO_SUCH_BOT' | 'LINK_REFUSED' | 'SLACK_USER_LINKED' | 'ACCOUNT_LINKED' | 'NOT_LINKED' | 'CONFLICT';
|
|
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_A_STEP' | 'KEY_UNAVAILABLE' | 'NOT_CONNECTED' | 'PARTY_EXISTS' | 'COMMISSION_REFUSED' | 'NO_SUCH_PARTY' | 'NOT_AWAITING_CREW' | 'NOT_CREWED' | 'SERVER_UNREACHABLE' | 'NO_AUTHORIZATION_SERVER' | 'SIGN_IN_CHECK_FAILED' | 'NOT_SIGNED_IN' | 'NO_SIGN_IN' | 'SIGN_IN_FAILED' | 'TURNED_AWAY' | 'AUTHORIZATION_SERVER_UNREACHABLE' | 'NO_DYNAMIC_REGISTRATION' | 'REGISTRATION_REFUSED' | 'STATEMENT_REFUSED' | 'INVALID_REDIRECT_URIS' | 'CLIENT_HAS_PARTY' | 'PARTY_NOT_CREWED' | 'NO_SUCH_TOOL' | 'INVALID_ARGUMENTS' | 'NOT_REACHABLE' | 'SEND_REFUSED' | 'NO_SUCH_CALL' | 'NOT_A_PERSON' | 'SIGNED_OUT' | 'NO_SUCH_DELIVERY' | 'NOT_A_QUESTION' | 'NOT_IN_BASKET' | 'NOT_A_NETWORKER' | 'OPEN_NETWORK' | 'OUTSIDE_PARTIES_OFF' | 'INVALID_SERVER_URL' | 'NOT_A_MANAGER' | 'RETIRE_REFUSED' | 'NOT_AN_ACCOUNT' | 'PARTY_NOT_COMMISSIONED' | 'CHANGE_REFUSED' | 'UNKNOWN_ALIAS' | 'PAYLOAD_TOO_LARGE' | 'TASK_NOT_FOUND' | 'TASK_TERMINAL' | 'WEBHOOK_REFUSED' | 'PUSH_CONFIG_NOT_FOUND' | 'CONTEXT_MISMATCH' | 'CARD_UNREACHABLE' | 'CARD_INVALID' | 'NOT_A_MESSAGE' | 'CHANNEL_NOT_OFFERED' | 'INVALID_SUBSCRIPTION' | 'NO_SUCH_MEETING' | 'MIC_REFUSED' | 'SCOPE_NOT_LISTED' | 'SLACK_SCOPE_NOT_HELD' | 'SLACK_NOT_CONNECTED' | 'SLACK_TOKEN_REFUSED' | 'SLACK_UNAVAILABLE' | 'OTHER_WORKSPACE' | 'INSTALL_REFUSED' | 'NOT_EXPOSABLE' | 'NO_SUCH_BOT' | 'LINK_REFUSED' | 'SLACK_USER_LINKED' | 'ACCOUNT_LINKED' | 'NOT_LINKED' | 'CONFLICT';
|
|
4
4
|
/** Why the core refused a request. Adapters map the kind to their own error shape; the message is safe to show. */
|
|
5
5
|
export interface DomainError<K extends DomainErrorKind = DomainErrorKind> {
|
|
6
6
|
readonly kind: K;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/core/shared/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAY,MAAM,aAAa,CAAC;AA+F5C,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAA4B,IAAO,EAAE,OAAe;IACxE,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { PersonCrews, PersonShipDoor } from '../people/ports.js';
|
|
1
|
+
import type { ItemOutcomes } from '../people/item-outcome.js';
|
|
2
|
+
import type { InboxChanges, OpenedDeliveries, PersonCrews, PersonShipDoor } from '../people/ports.js';
|
|
3
3
|
import type { Clock } from '../shared/clock.js';
|
|
4
4
|
import { type Result } from '../shared/result.js';
|
|
5
5
|
import type { SlackApps, SlackLinks, SlackMessages, SlackPosts, SlackSignatures } from './ports.js';
|
|
6
|
-
import { type
|
|
7
|
-
export type AnswerInSlack = (press:
|
|
8
|
-
appId: string;
|
|
9
|
-
teamId: string;
|
|
10
|
-
userId: string;
|
|
11
|
-
channel: string;
|
|
12
|
-
messageTs: string;
|
|
13
|
-
messageId: MessageId;
|
|
6
|
+
import { type SlackPress } from './slack-press.js';
|
|
7
|
+
export type AnswerInSlack = (press: SlackPress & {
|
|
14
8
|
option: number;
|
|
15
9
|
}) => Promise<Result<{
|
|
16
|
-
kind: 'answered' | 'refused' | 'ignored';
|
|
10
|
+
kind: 'answered' | 'answeredElsewhere' | 'refused' | 'ignored';
|
|
17
11
|
}, {
|
|
18
12
|
kind: 'notSigned';
|
|
19
13
|
}>>;
|
|
@@ -22,12 +16,18 @@ export type AnswerInSlack = (press: SignedRequest & {
|
|
|
22
16
|
* gateway posted to them in Slack (gateway scopes 9.5 step 2). Signed as an
|
|
23
17
|
* event is, by the person the question was posted to, the press sends the
|
|
24
18
|
* answer as their person ship, to the question's sender in reply to it,
|
|
25
|
-
* keyed as an answer on the gateway's page is; then the delivery is handled
|
|
26
|
-
* and the question reacted to, as a message core stored is. Core's refusal
|
|
19
|
+
* keyed as an answer on the gateway's page is; then the delivery is handled,
|
|
20
|
+
* kept answered in Slack (Bridge, CC4), and the question reacted to, as a message core stored is. Core's refusal
|
|
27
21
|
* is said in the question's thread. The press names the question's fleet
|
|
28
22
|
* message, as its button carries it, so a press that comes before the
|
|
29
|
-
* gateway kept the post's Slack message is answered too
|
|
30
|
-
*
|
|
23
|
+
* gateway kept the post's Slack message is answered too. The press, the
|
|
24
|
+
* person's own act, acknowledges the delivery: Slack posts it without.
|
|
25
|
+
* One answer per question (Bridge, section 9): a question answered in
|
|
26
|
+
* another place first is sent nothing, and the thread says where it was
|
|
27
|
+
* answered; the answer is keyed by the question's uuid, as the basket's is,
|
|
28
|
+
* so two presses at once in two places are stored once. Once handled, the
|
|
29
|
+
* question is no longer opened anywhere, and every page of the person is
|
|
30
|
+
* told, so Bridge and a chat show it answered in Slack (view sync).
|
|
31
31
|
*/
|
|
32
32
|
export declare function createAnswerInSlack(deps: {
|
|
33
33
|
apps: Pick<SlackApps, 'findByAppId'>;
|
|
@@ -35,6 +35,9 @@ export declare function createAnswerInSlack(deps: {
|
|
|
35
35
|
posts: Pick<SlackPosts, 'ofMessage'>;
|
|
36
36
|
crews: Pick<PersonCrews, 'find'>;
|
|
37
37
|
door: Pick<PersonShipDoor, 'ack' | 'delivery' | 'reply' | 'handled'>;
|
|
38
|
+
outcomes: ItemOutcomes;
|
|
39
|
+
opened: Pick<OpenedDeliveries, 'remove'>;
|
|
40
|
+
changes: InboxChanges;
|
|
38
41
|
slack: Pick<SlackMessages, 'react' | 'postInThread'>;
|
|
39
42
|
signatures: SlackSignatures;
|
|
40
43
|
clock: Clock;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { ANSWER_CONTENT_TYPE, questionSchema } from '@aeolus-fleet/common';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { alreadyTextOf } from '../people/opened-of.js';
|
|
3
|
+
import { answerKeyOf } from '../people/basket.js';
|
|
4
|
+
import { KEY_UNAVAILABLE, SEALED_MESSAGE } from '../people/person-crew.js';
|
|
5
|
+
import { ok } from '../shared/result.js';
|
|
4
6
|
import { STORED_REACTION } from './send-slack-events.js';
|
|
7
|
+
import { pressedOf } from './slack-press.js';
|
|
5
8
|
/** The question's id in a delivery's payload; none when it is no question. */
|
|
6
9
|
function questionIdOf(payload) {
|
|
7
10
|
try {
|
|
@@ -17,41 +20,57 @@ function questionIdOf(payload) {
|
|
|
17
20
|
* gateway posted to them in Slack (gateway scopes 9.5 step 2). Signed as an
|
|
18
21
|
* event is, by the person the question was posted to, the press sends the
|
|
19
22
|
* answer as their person ship, to the question's sender in reply to it,
|
|
20
|
-
* keyed as an answer on the gateway's page is; then the delivery is handled
|
|
21
|
-
* and the question reacted to, as a message core stored is. Core's refusal
|
|
23
|
+
* keyed as an answer on the gateway's page is; then the delivery is handled,
|
|
24
|
+
* kept answered in Slack (Bridge, CC4), and the question reacted to, as a message core stored is. Core's refusal
|
|
22
25
|
* is said in the question's thread. The press names the question's fleet
|
|
23
26
|
* message, as its button carries it, so a press that comes before the
|
|
24
|
-
* gateway kept the post's Slack message is answered too
|
|
25
|
-
*
|
|
27
|
+
* gateway kept the post's Slack message is answered too. The press, the
|
|
28
|
+
* person's own act, acknowledges the delivery: Slack posts it without.
|
|
29
|
+
* One answer per question (Bridge, section 9): a question answered in
|
|
30
|
+
* another place first is sent nothing, and the thread says where it was
|
|
31
|
+
* answered; the answer is keyed by the question's uuid, as the basket's is,
|
|
32
|
+
* so two presses at once in two places are stored once. Once handled, the
|
|
33
|
+
* question is no longer opened anywhere, and every page of the person is
|
|
34
|
+
* told, so Bridge and a chat show it answered in Slack (view sync).
|
|
26
35
|
*/
|
|
27
36
|
export function createAnswerInSlack(deps) {
|
|
28
|
-
return async (
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
37
|
+
return async (press) => {
|
|
38
|
+
const { channel, messageTs, option } = press;
|
|
39
|
+
const pressed = await pressedOf(deps, press);
|
|
40
|
+
if (!pressed.isOk) {
|
|
41
|
+
return pressed;
|
|
32
42
|
}
|
|
33
|
-
|
|
34
|
-
const kept = link?.stoppedAt === null ? await deps.posts.ofMessage(app.fleetId, { personShipId: link.personShipId, messageId }) : undefined;
|
|
35
|
-
const post = kept?.appId === appId && kept.channel === channel ? kept : undefined;
|
|
36
|
-
const crew = post === undefined ? undefined : await deps.crews.find(app.fleetId, post.personShipId);
|
|
37
|
-
if (post === undefined || post.deliveryId === null || post.senderShipId === null || crew === undefined || app.bot === null) {
|
|
43
|
+
if (pressed.value === undefined) {
|
|
38
44
|
return ok({ kind: 'ignored' });
|
|
39
45
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
const { app, post, crew } = pressed.value;
|
|
47
|
+
const [earlier] = await deps.outcomes.findMany(app.fleetId, { shipId: post.personShipId, deliveryIds: [post.deliveryId] });
|
|
48
|
+
if (earlier !== undefined) {
|
|
49
|
+
await deps.slack.postInThread(app.bot.token, { channel, threadTs: messageTs, text: alreadyTextOf(earlier) });
|
|
50
|
+
return ok({ kind: 'answeredElsewhere' });
|
|
43
51
|
}
|
|
52
|
+
// The press, the person's own act, acknowledges it (Bridge, CC6); core reads a delivery again only once acknowledged, so a refusal leaves it unread, and the press ignored.
|
|
53
|
+
await deps.door.ack(crew.crewToken, post.deliveryId);
|
|
44
54
|
const delivery = await deps.door.delivery(crew.crewToken, post.deliveryId);
|
|
55
|
+
if (!delivery.isOk && delivery.error.code === KEY_UNAVAILABLE) {
|
|
56
|
+
await deps.slack.postInThread(app.bot.token, { channel, threadTs: messageTs, text: SEALED_MESSAGE });
|
|
57
|
+
return ok({ kind: 'refused' });
|
|
58
|
+
}
|
|
45
59
|
const questionId = delivery.isOk ? questionIdOf(delivery.value.payload) : undefined;
|
|
46
60
|
if (!delivery.isOk || questionId === undefined) {
|
|
47
61
|
return ok({ kind: 'ignored' });
|
|
48
62
|
}
|
|
49
|
-
const replied = await deps.door.reply(crew.crewToken, { to: post.senderShipId, inReplyTo: post.messageId, contentType: ANSWER_CONTENT_TYPE, payload: JSON.stringify({ questionId, option }), idempotencyKey:
|
|
63
|
+
const replied = await deps.door.reply(crew.crewToken, { to: post.senderShipId, inReplyTo: post.messageId, contentType: ANSWER_CONTENT_TYPE, payload: JSON.stringify({ questionId, option }), idempotencyKey: answerKeyOf({ questionId }) });
|
|
50
64
|
if (!replied.isOk) {
|
|
51
65
|
await deps.slack.postInThread(app.bot.token, { channel, threadTs: messageTs, text: `${delivery.value.senderName} did not take your answer: ${replied.error.message}` });
|
|
52
66
|
return ok({ kind: 'refused' });
|
|
53
67
|
}
|
|
54
|
-
await deps.door.handled(crew.crewToken, post.deliveryId);
|
|
68
|
+
const handled = await deps.door.handled(crew.crewToken, post.deliveryId);
|
|
69
|
+
if (handled.isOk) {
|
|
70
|
+
await deps.outcomes.save({ fleetId: app.fleetId, shipId: post.personShipId, deliveryId: post.deliveryId, place: 'slack', kind: 'answered', option, at: deps.clock.now() });
|
|
71
|
+
await deps.opened.remove(app.fleetId, { shipId: post.personShipId, deliveryId: post.deliveryId });
|
|
72
|
+
await deps.changes.tell({ fleetId: app.fleetId, shipId: post.personShipId });
|
|
73
|
+
}
|
|
55
74
|
await deps.slack.react(app.bot.token, { channel, ts: messageTs, name: STORED_REACTION });
|
|
56
75
|
return ok({ kind: 'answered' });
|
|
57
76
|
};
|