@aeolus-fleet/gateway 0.38.0 → 0.38.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/package.json +7 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +3 -3
- package/web/.next/diagnostics/route-bundle-stats.json +73 -73
- package/web/.next/fallback-build-manifest.json +3 -3
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(bridge)/bridge/basket/page.js +5 -4
- package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +4 -4
- package/web/.next/server/app/(bridge)/bridge/done/page.js +6 -5
- package/web/.next/server/app/(bridge)/bridge/done/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/fleet/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/(bridge)/bridge/fleet/page.js +5 -4
- package/web/.next/server/app/(bridge)/bridge/fleet/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/messages/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/(bridge)/bridge/messages/page.js +5 -4
- package/web/.next/server/app/(bridge)/bridge/messages/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/messages/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(bridge)/bridge/page.js +5 -4
- package/web/.next/server/app/(bridge)/bridge/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/(bridge)/bridge/settings/page.js +5 -4
- package/web/.next/server/app/(bridge)/bridge/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +4 -4
- package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js +5 -4
- package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/routing/page/server-reference-manifest.json +7 -7
- package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js +5 -4
- package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js +5 -4
- package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page/server-reference-manifest.json +19 -19
- package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page.js +5 -4
- package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/[name]/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(bridge)/outside-parties/[name]/page.js +5 -4
- package/web/.next/server/app/(bridge)/outside-parties/[name]/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page/server-reference-manifest.json +19 -19
- package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page.js +5 -4
- package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/add/page/server-reference-manifest.json +12 -12
- package/web/.next/server/app/(bridge)/outside-parties/add/page.js +5 -4
- package/web/.next/server/app/(bridge)/outside-parties/add/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/add/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +4 -4
- package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page.js +5 -4
- package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page/server-reference-manifest.json +4 -4
- package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page.js +5 -4
- package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/page/server-reference-manifest.json +4 -4
- package/web/.next/server/app/(bridge)/outside-parties/page.js +5 -4
- package/web/.next/server/app/(bridge)/outside-parties/page.js.nft.json +1 -1
- package/web/.next/server/app/(bridge)/outside-parties/page_client-reference-manifest.js +1 -1
- 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 +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/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)/parties/page/server-reference-manifest.json +9 -9
- package/web/.next/server/app/(console)/parties/page.js +1 -1
- package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
- package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/(console)/sign-in/failed/page.js +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/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(console)/slack/disconnect/page.js +1 -1
- 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/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(console)/slack/expose/page.js +3 -3
- 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/page/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(console)/slack/page.js +1 -1
- 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/server-reference-manifest.json +10 -10
- package/web/.next/server/app/(console)/slack/remove/page.js +1 -1
- 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.html +1 -1
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page.js +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/apple-icon.png/route.js.nft.json +1 -1
- package/web/.next/server/app/apple-icon.png.body +0 -0
- 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/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/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/icon.svg/route.js.nft.json +1 -1
- package/web/.next/server/app/icon.svg.body +1 -19
- package/web/.next/server/chunks/_0xw0b7avhvg75._.js +1 -1
- package/web/.next/server/chunks/_0xw0b7avhvg75._.js.map +1 -1
- package/web/.next/server/chunks/_1w2t6c0hpdsrn._.js +1 -1
- package/web/.next/server/chunks/_1w2t6c0hpdsrn._.js.map +1 -1
- package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +1 -1
- package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -1
- package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_messages_page_actions_1tg2-lw0i6g9l.js +1 -1
- package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_messages_page_actions_1tg2-lw0i6g9l.js.map +1 -1
- package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_settings_page_actions_0_te6h-2xxp7l.js +1 -1
- package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_settings_page_actions_0_te6h-2xxp7l.js.map +1 -1
- package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +1 -1
- package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_change_page_actions_1is-kjq5bubl4.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_change_page_actions_1is-kjq5bubl4.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_page_actions_1mctxtlzsa7xi.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_page_actions_1mctxtlzsa7xi.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_retire_page_actions_0xh6ok1un7s9k.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_retire_page_actions_0xh6ok1un7s9k.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add-a2a-agent_page_actions_1w1q5eavo_loo.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add-a2a-agent_page_actions_1w1q5eavo_loo.js.map +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add_page_actions_0urcbg_r0lo7j.js +1 -1
- package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add_page_actions_0urcbg_r0lo7j.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0-h3ug3wdr27n._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0-h3ug3wdr27n._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__03xkymn2kbk1v._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__03xkymn2kbk1v._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__048-rfvdrnoze._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__048-rfvdrnoze._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__04g-10_lwy-l2._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__06nuuvz8l91mm._.js +10 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__06nuuvz8l91mm._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__07ba2bfe20c_p._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__07ba2bfe20c_p._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0f732g7ojc5-a._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0f732g7ojc5-a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0fujyqtfujrz5._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0fujyqtfujrz5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0geojgpilsx6e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0gy9anoap9qnn._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0gy9anoap9qnn._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0i_m5r9lyffk8._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0i_m5r9lyffk8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ibcjk97mwv4x._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ibcjk97mwv4x._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k6a9o0872_0x._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0k6a9o0872_0x._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0khxo9vhpo7sr._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0khxo9vhpo7sr._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ktja-0332icp._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0lz_zcfd17a39._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0lz_zcfd17a39._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0m_acooerfxfb._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0n-egt7194u1g._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0n-egt7194u1g._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ovcg5tg3nh49._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ovcg5tg3nh49._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ro-majrw7piv._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ro-majrw7piv._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0zz6fx0keti4r._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0zz6fx0keti4r._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__14hg5j_bmrdxt._.js +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]__19p4g16n2nh0b._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__19p4g16n2nh0b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a-kyppd8dwmc._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a-kyppd8dwmc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1iqxg48po42ig._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1iqxg48po42ig._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1k8mb42yj44l0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1k8mb42yj44l0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1kynqd8xcwg2b._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1kynqd8xcwg2b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1l_ua7k9ape55._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1l_ua7k9ape55._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1ncn4wx-1i09m._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1ncn4wx-1i09m._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1odtiyyqa5vlq._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1r1t1q3fzoqey._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1r1t1q3fzoqey._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1vrtfw4dxnfxt._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1xmvo3lr1_qyo._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1xmvo3lr1_qyo._.js.map +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/_0239h2ocqyibp._.js +3 -0
- package/web/.next/server/chunks/ssr/{_1h28qsfbdt-ph._.js.map → _0239h2ocqyibp._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_087cuueeby0hw._.js +3 -0
- package/web/.next/server/chunks/ssr/{_1o4xyxozurta7._.js.map → _087cuueeby0hw._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_0no4kkaie8a0y._.js → _08jq3ga73wgy1._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0no4kkaie8a0y._.js.map → _08jq3ga73wgy1._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_0u-5l6op7xjh0._.js → _090owdv-b-luu._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0u-5l6op7xjh0._.js.map → _090owdv-b-luu._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0_nfv33ug5g31._.js +1 -1
- package/web/.next/server/chunks/ssr/_0_nfv33ug5g31._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0dnp_nxhcy1tk._.js → _0cbvl92sxxpsf._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_14unkhmeoxqym._.js.map → _0cbvl92sxxpsf._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js +1 -1
- package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js.map +1 -1
- 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/{_14unkhmeoxqym._.js → _0t-yyzc3pbo8m._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0dnp_nxhcy1tk._.js.map → _0t-yyzc3pbo8m._.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/_1cs_0d0h7mhw0._.js +1 -1
- package/web/.next/server/chunks/ssr/_1cs_0d0h7mhw0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1e7srghw1_x9p._.js +57 -0
- package/web/.next/server/chunks/ssr/_1e7srghw1_x9p._.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/_1q0rhps0nvrq5._.js +57 -0
- package/web/.next/server/chunks/ssr/_1q0rhps0nvrq5._.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/node_modules_next_dist_esm_build_templates_app-page_01dhlues8c7ml.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01dhlues8c7ml.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_07y8ae2h21f9p.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_07y8ae2h21f9p.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08d89iicdayuk.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08d89iicdayuk.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08sinhjbj9agz.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08sinhjbj9agz.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0b2haj8_y8lu_.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0b2haj8_y8lu_.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0me2jx2fwv_8c.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0me2jx2fwv_8c.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xxc4eq32ewk5.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xxc4eq32ewk5.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1klryi6-w9ur5.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1klryi6-w9ur5.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1lo_i86tv4z-6.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1lo_i86tv4z-6.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qmlbi4q1-6b7.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qmlbi4q1-6b7.js.map +1 -0
- package/web/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js → node_modules_next_dist_esm_build_templates_app-page_1rw6ik0j23aki.js} +2 -2
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rw6ik0j23aki.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1t0a0nkq0woc8.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1t0a0nkq0woc8.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1unw2j3tp34id.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1unw2j3tp34id.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uzkkryl0w9c4.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uzkkryl0w9c4.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wl_71f8j6j_8.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wl_71f8j6j_8.js.map +1 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z7pcoxf6w70s.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1z7pcoxf6w70s.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_00e7-_y92losl._.js +1 -1
- package/web/.next/server/chunks/ssr/web_00e7-_y92losl._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_00r-wf_2cxh1v._.js +1 -1
- package/web/.next/server/chunks/ssr/web_00r-wf_2cxh1v._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_03d5ej1xq-7uh._.js +3 -0
- package/web/.next/server/chunks/ssr/web_03d5ej1xq-7uh._.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_0a9n7acgjrk5c._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0a9n7acgjrk5c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0v-7sowo0hupw._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_0zxufwo8cd7v3._.js +1 -1
- package/web/.next/server/chunks/ssr/web_0zxufwo8cd7v3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_1rmcjkj1pjylk._.js +1 -1
- package/web/.next/server/chunks/ssr/web_1rmcjkj1pjylk._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_1vvrekkq5mirt._.js +1 -1
- package/web/.next/server/chunks/ssr/web_1vvrekkq5mirt._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_fleet_page_actions_19wmo6phgvqfk.js +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_fleet_page_actions_19wmo6phgvqfk.js.map +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +1 -1
- package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_app_(bridge)_layout_tsx_0io-giu9m2p0z._.js +3 -0
- package/web/.next/server/chunks/ssr/web_app_(bridge)_layout_tsx_0io-giu9m2p0z._.js.map +1 -0
- package/web/.next/server/chunks/ssr/web_app_(bridge)_outside-parties_[name]_change_page_tsx_15monuoxw-kse._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_(bridge)_outside-parties_[name]_change_page_tsx_15monuoxw-kse._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_app_(bridge)_outside-parties_[name]_retire_page_tsx_0pljqvw60fh7t._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_(bridge)_outside-parties_[name]_retire_page_tsx_0pljqvw60fh7t._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_slack_page_tsx_0ts7fo7pqicq6._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_slack_page_tsx_0ts7fo7pqicq6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_slack_remove_page_tsx_15q4ril_on0ed._.js +1 -1
- package/web/.next/server/chunks/ssr/web_app_(console)_slack_remove_page_tsx_15q4ril_on0ed._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{web_features_16hw9h4_xwpao._.js → web_features_0fji0qhw-fk8x._.js} +2 -2
- package/web/.next/server/chunks/ssr/{web_features_16hw9h4_xwpao._.js.map → web_features_0fji0qhw-fk8x._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{web_features_1hnchp2y9ily-._.js → web_features_1tbi4ma6mufmp._.js} +2 -2
- package/web/.next/server/chunks/ssr/{web_features_1hnchp2y9ily-._.js.map → web_features_1tbi4ma6mufmp._.js.map} +1 -1
- 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_03kikxozygua1._.js → web_features_bridge_0zkl4uc3a1wa6._.js} +2 -2
- package/web/.next/server/chunks/ssr/{web_features_bridge_03kikxozygua1._.js.map → web_features_bridge_0zkl4uc3a1wa6._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_message-rows_tsx_1ky4-xa4az_yu._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_message-rows_tsx_1ky4-xa4az_yu._.js.map +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_messages-panel_tsx_1yvr_ww639d25._.js +1 -1
- package/web/.next/server/chunks/ssr/web_features_bridge_state_messages-panel_tsx_1yvr_ww639d25._.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/middleware-build-manifest.js +3 -3
- 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 +52 -52
- package/web/.next/static/chunks/{3jczm4mvyshsf.js → 0-mbc7l-ce37z.js} +1 -1
- package/web/.next/static/chunks/06tpbp-er8dog.js +1 -0
- package/web/.next/static/chunks/{1n5114efmpzm8.js → 0pypj0_ydhccr.js} +1 -1
- package/web/.next/static/chunks/{0j8ndrgty645i.js → 0t63w7558fw1a.js} +1 -1
- package/web/.next/static/chunks/{3_5r6ivx93es-.js → 1js-1nyhxr0b3.js} +1 -1
- package/web/.next/static/chunks/1ovt2ef2naqgj.js +1 -0
- package/web/.next/static/chunks/{1x87y_kcnt2cq.js → 1zv4cn94bmk2x.js} +1 -1
- package/web/.next/static/chunks/24qt7-p52g31c.js +1 -0
- package/web/.next/static/chunks/{0l4t9n_wkfvga.js → 2h3yztsbjw8sd.js} +4 -4
- package/web/.next/static/chunks/2ukdl2v0q677n.js +1 -0
- package/web/.next/static/chunks/{0tfn6_lm7dz7s.js → 2vaqwkb5z2wz8.js} +1 -1
- package/web/.next/static/chunks/{1qm1btwpwf1ih.js → 2w5o8qcjwdoqm.js} +1 -1
- package/web/.next/static/chunks/33kxvt_kxg5yb.js +1 -0
- package/web/.next/static/chunks/{3azyb0n45b1y9.js → 36ccnz8nhzbm0.js} +1 -1
- package/web/.next/static/chunks/38m6y148vwux3.js +1 -0
- package/web/.next/static/chunks/{31bq1uh9ulaeu.js → 3a347eh56u6w0.js} +1 -1
- package/web/.next/static/chunks/{0qynje165r8pk.js → 3nifwjh6pf2oa.js} +1 -1
- package/web/.next/static/chunks/{0ft62462m_rg0.js → 3qmppgfbfoif6.js} +1 -1
- package/web/.next/static/chunks/{0n99u0tboun9p.js → 3tmji77wyx7q4.js} +1 -1
- package/web/.next/static/media/apple-icon.3r3-hvwfcl7n_.png +0 -0
- package/web/.next/static/media/icon.1btn_u3uez_sn.svg +1 -0
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/types/validator.ts +17 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0grpi5wnl9ppf._.js +0 -10
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0grpi5wnl9ppf._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_16v-4haxv-0-o._.js +0 -57
- package/web/.next/server/chunks/ssr/_16v-4haxv-0-o._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_1h28qsfbdt-ph._.js +0 -3
- package/web/.next/server/chunks/ssr/_1o4xyxozurta7._.js +0 -3
- package/web/.next/server/chunks/ssr/_1yl6jrimy685b._.js +0 -57
- package/web/.next/server/chunks/ssr/_1yl6jrimy685b._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02s6inh4usc9k.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02s6inh4usc9k.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ad4b2lkk31jj.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ad4b2lkk31jj.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ergh-a6r7yu_.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ergh-a6r7yu_.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vfjfe4aq6spg.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vfjfe4aq6spg.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0yv3l9ohiylc6.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0yv3l9ohiylc6.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-wfs2n5p56lo.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-wfs2n5p56lo.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c7q9sxgla_vx.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c7q9sxgla_vx.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dcjexx9b9waj.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dcjexx9b9waj.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js.map +0 -1
- package/web/.next/server/chunks/ssr/web_09rcfto3dw4wd._.js +0 -3
- package/web/.next/server/chunks/ssr/web_09rcfto3dw4wd._.js.map +0 -1
- package/web/.next/static/chunks/09y_kqg5jr2to.js +0 -1
- package/web/.next/static/chunks/0_wc_d56c40gm.js +0 -1
- package/web/.next/static/chunks/0g07rkq-36dl0.js +0 -1
- package/web/.next/static/chunks/0scfm0b6ozb25.js +0 -1
- package/web/.next/static/chunks/1vuekfthkmjng.js +0 -1
- package/web/.next/static/chunks/1y32oubd_6md2.js +0 -1
- package/web/.next/static/media/apple-icon.3jccaq3p5-lh-.png +0 -0
- package/web/.next/static/media/icon.1o2ogor9e8-fc.svg +0 -19
- /package/web/.next/static/{6etIIH3qFw-_kdbaUFERx → 9KCcVgnuuZ1fElZoEqTjx}/_buildManifest.js +0 -0
- /package/web/.next/static/{6etIIH3qFw-_kdbaUFERx → 9KCcVgnuuZ1fElZoEqTjx}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{6etIIH3qFw-_kdbaUFERx → 9KCcVgnuuZ1fElZoEqTjx}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/outside-parties/add-a2a-client/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/add-a2a-client/actions.ts","../../../../../web/features/add-a2a-client/ticked-scopes.ts","../../../../../web/features/forms/form-state.ts","../../../../../web/features/outside-party/scope-changes.ts"],"sourcesContent":["export {setTheme as '
|
|
1
|
+
{"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/outside-parties/add-a2a-client/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/add-a2a-client/actions.ts","../../../../../web/features/add-a2a-client/ticked-scopes.ts","../../../../../web/features/forms/form-state.ts","../../../../../web/features/outside-party/scope-changes.ts"],"sourcesContent":["export {setTheme as '4028a841e3a56738319e16ecad460936d256385103'} from 'ACTIONS_MODULE0'\nexport {addA2aClient as '6048d5c95c34ac6f0e6d8abcc9a395c89f09feb70b'} from 'ACTIONS_MODULE1'\nexport {readSendTo as '40dfb3b0fea5008368e03e2b6748a198be97757025'} from 'ACTIONS_MODULE2'\nexport {sendShipMessage as '4068e943f9f900961504f9d945c882ab621f07a915'} from 'ACTIONS_MODULE2'\n","'use server';\n\n/**\n * Adding an outside A2A client (decision 0060), as the account signed in:\n * the API checks it holds gateway:approve and grants only scopes it holds,\n * then answers the client's bearer, which the page shows once.\n */\nimport { idSchema } from '@aeolus-fleet/common';\n\nimport { refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { FLEET_FIELD, fieldOf, fieldsOf } from '../forms/form-state';\nimport { tickedScopes } from './ticked-scopes';\n\n/** Where adding stands: not sent, refused with why, or added with the bearer to hand the client. */\nexport type AddA2aClientState = { kind: 'idle' } | { kind: 'refused'; message: string } | { kind: 'added'; name: string; bearer: string };\n\nexport async function addA2aClient(_previous: AddA2aClientState, form: FormData): Promise<AddA2aClientState> {\n const ownerShipId = idSchema('ship').safeParse(fieldOf(form, 'ownerShipId'));\n if (!ownerShipId.success) {\n return { kind: 'refused', message: 'Pick its owner' };\n }\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n try {\n const added = await api.parties.addA2aClient.mutate({ requestId: fieldOf(form, 'requestId'), name: fieldOf(form, 'name'), ownerShipId: ownerShipId.data, scopes: tickedScopes(fieldsOf(form)) });\n return { kind: 'added', name: added.party.name, bearer: added.bearer };\n } catch (error) {\n return { kind: 'refused', message: refusalMessageOf(error) };\n }\n}\n","import { SCOPE_FIELD_PREFIX } from '../outside-party/scope-changes';\n\n/** The scopes a form ticks, one `scope:<scope>` field each. */\nexport function tickedScopes(fields: Readonly<Record<string, string>>): string[] {\n return Object.keys(fields).flatMap((field) => (field.startsWith(SCOPE_FIELD_PREFIX) ? [field.slice(SCOPE_FIELD_PREFIX.length)] : []));\n}\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","/**\n * What a party's change form asks of the API (decision 0056): only what\n * differs from the party as the fleet holds it. Scope rows it did not show\n * revoke nothing; the scopes every app ship gets, and those the actor does\n * not hold, are never changed.\n */\nimport { idSchema } from '@aeolus-fleet/common';\n\n/** The scopes every app ship gets (0046): shown locked on, and never changed. */\nexport const EVERY_APP_SHIP_SCOPES: readonly string[] = ['messages:send', 'messages:receive'];\n\n/** A form field that ticks a scope: `scope:<scope>`, one field per scope. */\nexport const SCOPE_FIELD_PREFIX = 'scope:';\n\n/** The field a change form sends when it shows the scope rows. */\nexport const SCOPES_SHOWN_FIELD = 'scopesShown';\n\nexport type Changes = { kind: 'changes'; ownerShipId?: string; grant: string[]; revoke: string[] } | { kind: 'refused'; message: string };\n\nexport function changesOf(party: { ownerShipId: string | null; scopes: readonly string[] | null }, sent: { form: Readonly<Record<string, string>>; scopes: readonly string[] }): Changes {\n const { form, scopes } = sent;\n const sentOwner = form.ownerShipId?.trim();\n let ownerShipId: string | undefined;\n if (sentOwner !== undefined && sentOwner !== party.ownerShipId) {\n const parsed = idSchema('ship').safeParse(sentOwner);\n if (!parsed.success) {\n return { kind: 'refused', message: \"The owner's ship id is not a ship id (shp_...)\" };\n }\n ownerShipId = parsed.data;\n }\n const owner = ownerShipId === undefined ? {} : { ownerShipId };\n const held = party.scopes;\n if (form[SCOPES_SHOWN_FIELD] !== 'true' || held === null) {\n return { kind: 'changes', ...owner, grant: [], revoke: [] };\n }\n const own = scopes.filter((scope) => !EVERY_APP_SHIP_SCOPES.includes(scope));\n const isTicked = (scope: string) => form[`${SCOPE_FIELD_PREFIX}${scope}`] !== undefined;\n return {\n kind: 'changes',\n ...owner,\n grant: own.filter((scope) => isTicked(scope) && !held.includes(scope)),\n revoke: own.filter((scope) => !isTicked(scope) && held.includes(scope)),\n };\n}\n"],"names":["addA2aClient","_previous","form","ownerShipId","safeParse","success","kind","message","api","added","parties","mutate","requestId","name","data","scopes","party","bearer","error","tickedScopes","fields","Object","keys","flatMap","field","startsWith","slice","length","IDLE","fieldOf","value","get","fieldsOf","fromEntries","entries","FLEET_FIELD","EVERY_APP_SHIP_SCOPES","SCOPE_FIELD_PREFIX","SCOPES_SHOWN_FIELD","changesOf","sent","sentOwner","trim","undefined","parsed","owner","held","grant","revoke","own","filter","scope","includes","isTicked"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[[41393,a=>{var b=a.i(7997),c=a.i(717),d=a.i(66283),e=a.i(88276),f=a.i(29660);let g={linked:{isFailure:!1,message:"Your Slack account is linked: message the fleet's bots in Slack"},refused:{isFailure:!0,message:"The link did not start here, took longer than ten minutes, or Slack refused it: press Link Slack again"},"not-connected":{isFailure:!0,message:"The fleet is connected to no Slack workspace now"},"other-workspace":{isFailure:!0,message:"You signed in to another Slack workspace than the fleet's: sign in to the connected workspace"},unavailable:{isFailure:!0,message:"Slack did not answer: press Link Slack again"},cancelled:{isFailure:!0,message:"The link was cancelled in Slack: nothing changed"},"no-person-ship":{isFailure:!0,message:"Your account has no person ship in this fleet"},"not-started":{isFailure:!0,message:"The link did not start: try again in a moment"}},h={"slack-user-linked":a=>`This Slack account is linked to ${a} in this fleet already`,"account-linked":a=>`Your account is linked to Slack as @${a} already: unlink it first`};var i=a.i(36554),j=a.i(38936),k=a.i(50919),l=a.i(88585),m=a.i(13597);async function n({api:a,fleetId:c}){let{routing:d,wakeChannels:f,slackLink:g,chats:h,waitingByJob:i}=await (0,e.W)(a);return void 0===d?(0,b.jsx)("p",{className:"text-muted-foreground",children:"Only a person routes what reaches them: this account has no person ship in this fleet."}):(0,b.jsxs)("div",{className:"flex flex-col gap-3 max-sm:flex-col-reverse",children:[(0,b.jsx)(l.PlacesPanel,{fleetId:c,routing:d,slackLink:g??null,chats:h,webPush:f?.webPush}),(0,b.jsx)(m.RoutingPanel,{fleetId:c,routing:d,isSlackLinked:null!=g&&null!==g.link,waitingByJob:i})]})}async function o({searchParams:a}){let e=await (0,d._)({path:f.j,searchParams:a});if("noSignIn"===e.kind)return(0,b.jsx)(i.L,{});let l=function({slack:a,name:b}){if("string"==typeof a)return Object.hasOwn(h,a)?"string"==typeof b?{isFailure:!0,message:h[a](b)}:void 0:Object.hasOwn(g,a)?g[a]:void 0}(a);return(0,b.jsx)(i.n,{api:e.api,fleetId:e.fleetId,screen:"routing",children:(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-heading font-semibold max-sm:hidden",children:"Where things show"}),(0,b.jsx)("p",{className:"text-muted-foreground max-sm:hidden",children:"Per job, the places that show it besides Bridge. Bridge always keeps every item; a change applies at once and loses nothing."}),(0,b.jsx)("p",{className:"text-caption text-muted-foreground sm:hidden",children:"Bridge always keeps every item."})]}),void 0===l?null:(0,b.jsx)(k.f,{message:l.message,isFailure:l.isFailure}),(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)(j.f,{}),children:(0,b.jsx)(n,{api:e.api,fleetId:e.fleetId})})]})})}async function p({searchParams:a}){return(0,b.jsx)(o,{searchParams:await a})}a.s(["default",0,p
|
|
1
|
+
module.exports=[[41393,a=>{var b=a.i(7997),c=a.i(717),d=a.i(66283),e=a.i(88276),f=a.i(29660);let g={linked:{isFailure:!1,message:"Your Slack account is linked: message the fleet's bots in Slack"},refused:{isFailure:!0,message:"The link did not start here, took longer than ten minutes, or Slack refused it: press Link Slack again"},"not-connected":{isFailure:!0,message:"The fleet is connected to no Slack workspace now"},"other-workspace":{isFailure:!0,message:"You signed in to another Slack workspace than the fleet's: sign in to the connected workspace"},unavailable:{isFailure:!0,message:"Slack did not answer: press Link Slack again"},cancelled:{isFailure:!0,message:"The link was cancelled in Slack: nothing changed"},"no-person-ship":{isFailure:!0,message:"Your account has no person ship in this fleet"},"not-started":{isFailure:!0,message:"The link did not start: try again in a moment"}},h={"slack-user-linked":a=>`This Slack account is linked to ${a} in this fleet already`,"account-linked":a=>`Your account is linked to Slack as @${a} already: unlink it first`};var i=a.i(36554),j=a.i(38936),k=a.i(50919),l=a.i(88585),m=a.i(13597);async function n({api:a,fleetId:c}){let{routing:d,wakeChannels:f,slackLink:g,chats:h,waitingByJob:i}=await (0,e.W)(a);return void 0===d?(0,b.jsx)("p",{className:"text-muted-foreground",children:"Only a person routes what reaches them: this account has no person ship in this fleet."}):(0,b.jsxs)("div",{className:"flex flex-col gap-3 max-sm:flex-col-reverse",children:[(0,b.jsx)(l.PlacesPanel,{fleetId:c,routing:d,slackLink:g??null,chats:h,webPush:f?.webPush}),(0,b.jsx)(m.RoutingPanel,{fleetId:c,routing:d,isSlackLinked:null!=g&&null!==g.link,waitingByJob:i})]})}async function o({searchParams:a}){let e=await (0,d._)({path:f.j,searchParams:a});if("noSignIn"===e.kind)return(0,b.jsx)(i.L,{});let l=function({slack:a,name:b}){if("string"==typeof a)return Object.hasOwn(h,a)?"string"==typeof b?{isFailure:!0,message:h[a](b)}:void 0:Object.hasOwn(g,a)?g[a]:void 0}(a);return(0,b.jsx)(i.n,{api:e.api,fleetId:e.fleetId,screen:"routing",children:(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-heading font-semibold max-sm:hidden",children:"Where things show"}),(0,b.jsx)("p",{className:"text-muted-foreground max-sm:hidden",children:"Per job, the places that show it besides Bridge. Bridge always keeps every item; a change applies at once and loses nothing."}),(0,b.jsx)("p",{className:"text-caption text-muted-foreground sm:hidden",children:"Bridge always keeps every item."})]}),void 0===l?null:(0,b.jsx)(k.f,{message:l.message,isFailure:l.isFailure}),(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)(j.f,{}),children:(0,b.jsx)(n,{api:e.api,fleetId:e.fleetId})})]})})}async function p({searchParams:a}){return(0,b.jsx)(o,{searchParams:await a})}a.s(["default",0,p],41393)},23524,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call PlacesPanel() from the server but PlacesPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/web/features/bridge/state/places-panel.tsx","PlacesPanel");a.s(["PlacesPanel",0,b])},88585,a=>{var b=a.i(23524);a.n(b)},90748,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call RoutingPanel() from the server but RoutingPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/web/features/bridge/state/routing-panel.tsx","RoutingPanel");a.s(["RoutingPanel",0,b])},13597,a=>{var b=a.i(90748);a.n(b)}],2021,function(a){a.n(a.i(41393))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=web_0cxcy088wnfmw._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../web/features/bridge/state/bridge-routing.tsx","../../../../../web/features/bridge/services/slack-link-outcomes.ts","../../../../../web/app/%28bridge%29/bridge/settings/routing/page.tsx","../../../../../web/features/bridge/state/places-panel.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/bridge/state/places-panel.tsx%22%20%7D","../../../../../web/features/bridge/state/routing-panel.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/bridge/state/routing-panel.tsx%22%20%7D"],"sourcesContent":["import { Suspense } from 'react';\n\nimport type { GatewayApi } from '../../../lib/gateway-api/gateway-api';\nimport { signedInPage, type SearchParams } from '../../../lib/gateway-api/page-api';\nimport { readBridgeRouting } from '../hooks/read-bridge';\nimport { BRIDGE_ROUTING_PATH } from '../paths';\nimport { slackLinkOutcomeOf } from '../services/slack-link-outcomes';\nimport { BridgeNoSignIn, BridgeShell } from './bridge-shell';\nimport { BridgeSkeleton } from '../ui/bridge-skeleton';\nimport { Notice } from '../ui/notice';\nimport { PlacesPanel } from './places-panel';\nimport { RoutingPanel } from './routing-panel';\n\nasync function RoutingParts({ api, fleetId }: { api: GatewayApi; fleetId: string }) {\n const { routing, wakeChannels, slackLink, chats, waitingByJob } = await readBridgeRouting(api);\n if (routing === undefined) {\n return <p className=\"text-muted-foreground\">Only a person routes what reaches them: this account has no person ship in this fleet.</p>;\n }\n return (\n <div className=\"flex flex-col gap-3 max-sm:flex-col-reverse\">\n <PlacesPanel fleetId={fleetId} routing={routing} slackLink={slackLink ?? null} chats={chats} webPush={wakeChannels?.webPush} />\n <RoutingPanel fleetId={fleetId} routing={routing} isSlackLinked={slackLink !== undefined && slackLink !== null && slackLink.link !== null} waitingByJob={waitingByJob} />\n </div>\n );\n}\n\n/**\n * Where things show (Bridge, section 8; the routing mockup): the places on\n * top, each with its state and its one action, then per job the places that\n * show it besides Bridge, which always keeps every item. It replaces the\n * Overview's Slack switch, its wake section and P-B5 (CC17). Signed out, the\n * browser goes to sign in before anything shows.\n */\nexport async function BridgeRoutingPage({ searchParams }: { searchParams: SearchParams }) {\n const page = await signedInPage({ path: BRIDGE_ROUTING_PATH, searchParams });\n if (page.kind === 'noSignIn') {\n return <BridgeNoSignIn />;\n }\n const linked = slackLinkOutcomeOf(searchParams);\n return (\n <BridgeShell api={page.api} fleetId={page.fleetId} screen=\"routing\">\n <div className=\"flex flex-col gap-3\">\n <div>\n <h1 className=\"text-heading font-semibold max-sm:hidden\">Where things show</h1>\n <p className=\"text-muted-foreground max-sm:hidden\">Per job, the places that show it besides Bridge. Bridge always keeps every item; a change applies at once and loses nothing.</p>\n <p className=\"text-caption text-muted-foreground sm:hidden\">Bridge always keeps every item.</p>\n </div>\n {linked === undefined ? null : <Notice message={linked.message} isFailure={linked.isFailure} />}\n <Suspense fallback={<BridgeSkeleton />}>\n <RoutingParts api={page.api} fleetId={page.fleetId} />\n </Suspense>\n </div>\n </BridgeShell>\n );\n}\n","/**\n * What Bridge's settings say of a Slack link (gateway scopes 9.3), by the\n * outcome the gateway's link door or the link page put in the address\n * (src/adapters/http/slack-routes.ts, web/app/(console)/slack/link): never\n * a text the address carries, but for the first link's name when a second\n * is refused.\n */\nimport type { SearchParams } from '../../../lib/gateway-api/page-api';\n\nconst OUTCOMES = {\n linked: { isFailure: false, message: \"Your Slack account is linked: message the fleet's bots in Slack\" },\n refused: { isFailure: true, message: 'The link did not start here, took longer than ten minutes, or Slack refused it: press Link Slack again' },\n 'not-connected': { isFailure: true, message: 'The fleet is connected to no Slack workspace now' },\n 'other-workspace': { isFailure: true, message: \"You signed in to another Slack workspace than the fleet's: sign in to the connected workspace\" },\n unavailable: { isFailure: true, message: 'Slack did not answer: press Link Slack again' },\n cancelled: { isFailure: true, message: 'The link was cancelled in Slack: nothing changed' },\n 'no-person-ship': { isFailure: true, message: 'Your account has no person ship in this fleet' },\n 'not-started': { isFailure: true, message: 'The link did not start: try again in a moment' },\n} as const;\n\nconst NAMED = {\n 'slack-user-linked': (name: string) => `This Slack account is linked to ${name} in this fleet already`,\n 'account-linked': (name: string) => `Your account is linked to Slack as @${name} already: unlink it first`,\n} as const;\n\nexport interface SlackLinkOutcome {\n readonly isFailure: boolean;\n readonly message: string;\n}\n\nfunction isOutcome(outcome: string): outcome is keyof typeof OUTCOMES {\n return Object.hasOwn(OUTCOMES, outcome);\n}\n\nfunction isNamed(outcome: string): outcome is keyof typeof NAMED {\n return Object.hasOwn(NAMED, outcome);\n}\n\nexport function slackLinkOutcomeOf({ slack, name }: SearchParams): SlackLinkOutcome | undefined {\n if (typeof slack !== 'string') {\n return undefined;\n }\n if (isNamed(slack)) {\n return typeof name === 'string' ? { isFailure: true, message: NAMED[slack](name) } : undefined;\n }\n return isOutcome(slack) ? OUTCOMES[slack] : undefined;\n}\n","import type { Metadata } from 'next';\n\nimport { BridgeRoutingPage } from '../../../../../features/bridge/state/bridge-routing';\nimport type { SearchParams } from '../../../../../lib/gateway-api/page-api';\n\nexport const metadata: Metadata = { title: 'Where things show' };\n\nexport default async function RoutingPage({ searchParams }: { searchParams: Promise<SearchParams> }) {\n return <BridgeRoutingPage searchParams={await searchParams} />;\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const PlacesPanel = registerClientReference(\n function() { throw new Error(\"Attempted to call PlacesPanel() from the server but PlacesPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/bridge/state/places-panel.tsx\",\n \"PlacesPanel\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const RoutingPanel = registerClientReference(\n function() { throw new Error(\"Attempted to call RoutingPanel() from the server but RoutingPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/bridge/state/routing-panel.tsx\",\n \"RoutingPanel\",\n);\n"],"names":["OUTCOMES","linked","isFailure","message","refused","unavailable","cancelled","NAMED","name","isOutcome","outcome","Object","hasOwn","isNamed","slackLinkOutcomeOf","slack","undefined","PlacesPanel","Error","RoutingPanel"],"mappings":"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","ignoreList":[3,4]}
|
|
1
|
+
{"version":3,"sources":["../../../../../web/features/bridge/state/bridge-routing.tsx","../../../../../web/features/bridge/services/slack-link-outcomes.ts","../../../../../web/app/%28bridge%29/bridge/settings/routing/page.tsx","../../../../../web/features/bridge/state/places-panel.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/bridge/state/places-panel.tsx%22%20%7D","../../../../../web/features/bridge/state/routing-panel.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/bridge/state/routing-panel.tsx%22%20%7D"],"sourcesContent":["import { Suspense } from 'react';\n\nimport type { GatewayApi } from '../../../lib/gateway-api/gateway-api';\nimport { signedInPage, type SearchParams } from '../../../lib/gateway-api/page-api';\nimport { readBridgeRouting } from '../hooks/read-bridge';\nimport { BRIDGE_ROUTING_PATH } from '../paths';\nimport { slackLinkOutcomeOf } from '../services/slack-link-outcomes';\nimport { BridgeNoSignIn, BridgeShell } from './bridge-shell';\nimport { BridgeSkeleton } from '../ui/bridge-skeleton';\nimport { Notice } from '../ui/notice';\nimport { PlacesPanel } from './places-panel';\nimport { RoutingPanel } from './routing-panel';\n\nasync function RoutingParts({ api, fleetId }: { api: GatewayApi; fleetId: string }) {\n const { routing, wakeChannels, slackLink, chats, waitingByJob } = await readBridgeRouting(api);\n if (routing === undefined) {\n return <p className=\"text-muted-foreground\">Only a person routes what reaches them: this account has no person ship in this fleet.</p>;\n }\n return (\n <div className=\"flex flex-col gap-3 max-sm:flex-col-reverse\">\n <PlacesPanel fleetId={fleetId} routing={routing} slackLink={slackLink ?? null} chats={chats} webPush={wakeChannels?.webPush} />\n <RoutingPanel fleetId={fleetId} routing={routing} isSlackLinked={slackLink !== undefined && slackLink !== null && slackLink.link !== null} waitingByJob={waitingByJob} />\n </div>\n );\n}\n\n/**\n * Where things show (Bridge, section 8; the routing mockup): the places on\n * top, each with its state and its one action, then per job the places that\n * show it besides Bridge, which always keeps every item. It replaces the\n * Overview's Slack switch, its wake section and P-B5 (CC17). Signed out, the\n * browser goes to sign in before anything shows.\n */\nexport async function BridgeRoutingPage({ searchParams }: { searchParams: SearchParams }) {\n const page = await signedInPage({ path: BRIDGE_ROUTING_PATH, searchParams });\n if (page.kind === 'noSignIn') {\n return <BridgeNoSignIn />;\n }\n const linked = slackLinkOutcomeOf(searchParams);\n return (\n <BridgeShell api={page.api} fleetId={page.fleetId} screen=\"routing\">\n <div className=\"flex flex-col gap-3\">\n <div>\n <h1 className=\"text-heading font-semibold max-sm:hidden\">Where things show</h1>\n <p className=\"text-muted-foreground max-sm:hidden\">Per job, the places that show it besides Bridge. Bridge always keeps every item; a change applies at once and loses nothing.</p>\n <p className=\"text-caption text-muted-foreground sm:hidden\">Bridge always keeps every item.</p>\n </div>\n {linked === undefined ? null : <Notice message={linked.message} isFailure={linked.isFailure} />}\n <Suspense fallback={<BridgeSkeleton />}>\n <RoutingParts api={page.api} fleetId={page.fleetId} />\n </Suspense>\n </div>\n </BridgeShell>\n );\n}\n","/**\n * What Bridge's settings say of a Slack link (gateway scopes 9.3), by the\n * outcome the gateway's link door or the link page put in the address\n * (src/adapters/http/slack-routes.ts, web/app/(console)/slack/link): never\n * a text the address carries, but for the first link's name when a second\n * is refused.\n */\nimport type { SearchParams } from '../../../lib/gateway-api/page-api';\n\nconst OUTCOMES = {\n linked: { isFailure: false, message: \"Your Slack account is linked: message the fleet's bots in Slack\" },\n refused: { isFailure: true, message: 'The link did not start here, took longer than ten minutes, or Slack refused it: press Link Slack again' },\n 'not-connected': { isFailure: true, message: 'The fleet is connected to no Slack workspace now' },\n 'other-workspace': { isFailure: true, message: \"You signed in to another Slack workspace than the fleet's: sign in to the connected workspace\" },\n unavailable: { isFailure: true, message: 'Slack did not answer: press Link Slack again' },\n cancelled: { isFailure: true, message: 'The link was cancelled in Slack: nothing changed' },\n 'no-person-ship': { isFailure: true, message: 'Your account has no person ship in this fleet' },\n 'not-started': { isFailure: true, message: 'The link did not start: try again in a moment' },\n} as const;\n\nconst NAMED = {\n 'slack-user-linked': (name: string) => `This Slack account is linked to ${name} in this fleet already`,\n 'account-linked': (name: string) => `Your account is linked to Slack as @${name} already: unlink it first`,\n} as const;\n\nexport interface SlackLinkOutcome {\n readonly isFailure: boolean;\n readonly message: string;\n}\n\nfunction isOutcome(outcome: string): outcome is keyof typeof OUTCOMES {\n return Object.hasOwn(OUTCOMES, outcome);\n}\n\nfunction isNamed(outcome: string): outcome is keyof typeof NAMED {\n return Object.hasOwn(NAMED, outcome);\n}\n\nexport function slackLinkOutcomeOf({ slack, name }: SearchParams): SlackLinkOutcome | undefined {\n if (typeof slack !== 'string') {\n return undefined;\n }\n if (isNamed(slack)) {\n return typeof name === 'string' ? { isFailure: true, message: NAMED[slack](name) } : undefined;\n }\n return isOutcome(slack) ? OUTCOMES[slack] : undefined;\n}\n","import { BridgeRoutingPage } from '../../../../../features/bridge/state/bridge-routing';\nimport type { SearchParams } from '../../../../../lib/gateway-api/page-api';\n\nexport default async function RoutingPage({ searchParams }: { searchParams: Promise<SearchParams> }) {\n return <BridgeRoutingPage searchParams={await searchParams} />;\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const PlacesPanel = registerClientReference(\n function() { throw new Error(\"Attempted to call PlacesPanel() from the server but PlacesPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/bridge/state/places-panel.tsx\",\n \"PlacesPanel\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const RoutingPanel = registerClientReference(\n function() { throw new Error(\"Attempted to call RoutingPanel() from the server but RoutingPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/bridge/state/routing-panel.tsx\",\n \"RoutingPanel\",\n);\n"],"names":["OUTCOMES","linked","isFailure","message","refused","unavailable","cancelled","NAMED","name","isOutcome","outcome","Object","hasOwn","isNamed","slackLinkOutcomeOf","slack","undefined","PlacesPanel","Error","RoutingPanel"],"mappings":"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","ignoreList":[3,4]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[[58685,a=>{var b=a.i(7997);a.i(70396);var c=a.i(73727),d=a.i(14725),e=a.i(24571),f=a.i(62938),g=a.i(92277);let h={name:"arrow-left-right",size:24,node:[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]};h.node;let i=(0,g.f)(h);function j({partyName:a}){return(0,b.jsxs)("div",{"data-testid":"authorize-handshake",className:"flex items-center justify-center gap-3 text-caption",children:[(0,b.jsxs)("figure",{className:"grid justify-items-center gap-1",children:[(0,b.jsx)(f.Avatar,{kind:"ship",size:36,name:a,className:"size-10 border border-border"}),(0,b.jsx)("figcaption",{children:a})]}),(0,b.jsx)(i,{"aria-hidden":!0,className:"size-4 text-muted-foreground"}),(0,b.jsxs)("figure",{className:"grid justify-items-center gap-1",children:[(0,b.jsx)(f.Avatar,{kind:"app",size:36,className:"size-10 rounded-md [&_svg]:size-6"}),(0,b.jsx)("figcaption",{children:"Aeolus"})]})]})}var k=a.i(69953);function l({client:a,fields:c}){return(0,b.jsxs)("section",{className:"grid gap-4","data-testid":"authorize-pick",children:[(0,b.jsx)(j,{partyName:a.clientName}),(0,b.jsx)("h1",{className:"text-title font-semibold",children:"Connect an MCP client"}),(0,b.jsxs)("p",{children:[(0,b.jsx)("strong",{children:a.clientName})," asks to call your fleet's ships through the gateway."]}),(0,b.jsx)(k.PickHolder,{fields:c}),(0,b.jsxs)("p",{className:"text-muted-foreground [overflow-wrap:anywhere]",children:["Client ",a.clientId,", sent back to ",a.redirectUri,"."]})]})}async function m({searchParams:a}){let f=(0,e.Q)(await a),g=await (0,d.W)(f);return"failed"===g.kind&&(0,c.redirect)((0,d.P)(g.reason)),(0,b.jsx)(l,{client:g.client,fields:f})}a.s(["default",0,m
|
|
1
|
+
module.exports=[[58685,a=>{var b=a.i(7997);a.i(70396);var c=a.i(73727),d=a.i(14725),e=a.i(24571),f=a.i(62938),g=a.i(92277);let h={name:"arrow-left-right",size:24,node:[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]]};h.node;let i=(0,g.f)(h);function j({partyName:a}){return(0,b.jsxs)("div",{"data-testid":"authorize-handshake",className:"flex items-center justify-center gap-3 text-caption",children:[(0,b.jsxs)("figure",{className:"grid justify-items-center gap-1",children:[(0,b.jsx)(f.Avatar,{kind:"ship",size:36,name:a,className:"size-10 border border-border"}),(0,b.jsx)("figcaption",{children:a})]}),(0,b.jsx)(i,{"aria-hidden":!0,className:"size-4 text-muted-foreground"}),(0,b.jsxs)("figure",{className:"grid justify-items-center gap-1",children:[(0,b.jsx)(f.Avatar,{kind:"app",size:36,className:"size-10 rounded-md [&_svg]:size-6"}),(0,b.jsx)("figcaption",{children:"Aeolus"})]})]})}var k=a.i(69953);function l({client:a,fields:c}){return(0,b.jsxs)("section",{className:"grid gap-4","data-testid":"authorize-pick",children:[(0,b.jsx)(j,{partyName:a.clientName}),(0,b.jsx)("h1",{className:"text-title font-semibold",children:"Connect an MCP client"}),(0,b.jsxs)("p",{children:[(0,b.jsx)("strong",{children:a.clientName})," asks to call your fleet's ships through the gateway."]}),(0,b.jsx)(k.PickHolder,{fields:c}),(0,b.jsxs)("p",{className:"text-muted-foreground [overflow-wrap:anywhere]",children:["Client ",a.clientId,", sent back to ",a.redirectUri,"."]})]})}async function m({searchParams:a}){let f=(0,e.Q)(await a),g=await (0,d.W)(f);return"failed"===g.kind&&(0,c.redirect)((0,d.P)(g.reason)),(0,b.jsx)(l,{client:g.client,fields:f})}a.s(["default",0,m],58685)},61418,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call PickHolder() from the server but PickHolder is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/web/features/authorize/ui/pick-holder.tsx","PickHolder");a.s(["PickHolder",0,b])},69953,a=>{var b=a.i(61418);a.n(b)}],95691,function(a){a.n(a.i(58685))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=web_0oz8bypfxh82g._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../web/features/authorize/ui/handshake.tsx","../../../../../web/app/authorize/pick/page.tsx","../../../../../web/features/authorize/ui/connect-client.tsx","../../../../../node_modules/lucide-react/src/icons/arrow-left-right.ts","../../../../../web/features/authorize/ui/pick-holder.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/authorize/ui/pick-holder.tsx%22%20%7D"],"sourcesContent":["import { Avatar } from '@aeolus-fleet/ui';\nimport { ArrowLeftRight } from 'lucide-react';\n\n/** Who meets whom: the outside party's mark and name, and the fleet's mark, side by side. */\nexport function Handshake({ partyName }: { partyName: string }) {\n return (\n <div data-testid=\"authorize-handshake\" className=\"flex items-center justify-center gap-3 text-caption\">\n <figure className=\"grid justify-items-center gap-1\">\n <Avatar kind=\"ship\" size={36} name={partyName} className=\"size-10 border border-border\" />\n <figcaption>{partyName}</figcaption>\n </figure>\n <ArrowLeftRight aria-hidden className=\"size-4 text-muted-foreground\" />\n <figure className=\"grid justify-items-center gap-1\">\n <Avatar kind=\"app\" size={36} className=\"size-10 rounded-md [&_svg]:size-6\" />\n <figcaption>Aeolus</figcaption>\n </figure>\n </div>\n );\n}\n","import
|
|
1
|
+
{"version":3,"sources":["../../../../../web/features/authorize/ui/handshake.tsx","../../../../../web/app/authorize/pick/page.tsx","../../../../../web/features/authorize/ui/connect-client.tsx","../../../../../node_modules/lucide-react/src/icons/arrow-left-right.ts","../../../../../web/features/authorize/ui/pick-holder.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/authorize/ui/pick-holder.tsx%22%20%7D"],"sourcesContent":["import { Avatar } from '@aeolus-fleet/ui';\nimport { ArrowLeftRight } from 'lucide-react';\n\n/** Who meets whom: the outside party's mark and name, and the fleet's mark, side by side. */\nexport function Handshake({ partyName }: { partyName: string }) {\n return (\n <div data-testid=\"authorize-handshake\" className=\"flex items-center justify-center gap-3 text-caption\">\n <figure className=\"grid justify-items-center gap-1\">\n <Avatar kind=\"ship\" size={36} name={partyName} className=\"size-10 border border-border\" />\n <figcaption>{partyName}</figcaption>\n </figure>\n <ArrowLeftRight aria-hidden className=\"size-4 text-muted-foreground\" />\n <figure className=\"grid justify-items-center gap-1\">\n <Avatar kind=\"app\" size={36} className=\"size-10 rounded-md [&_svg]:size-6\" />\n <figcaption>Aeolus</figcaption>\n </figure>\n </div>\n );\n}\n","import { redirect } from 'next/navigation';\n\nimport { failedPage, readClient } from '../../../features/authorize/hooks/read-authorize';\nimport { pickFieldsOf } from '../../../features/authorize/services/authorize';\nimport { ConnectClient } from '../../../features/authorize/ui/connect-client';\nimport type { SearchParams } from '../../../lib/gateway-api/page-api';\n\nexport default async function PickPage({ searchParams }: { searchParams: Promise<SearchParams> }) {\n const fields = pickFieldsOf(await searchParams);\n const read = await readClient(fields);\n if (read.kind === 'failed') {\n redirect(failedPage(read.reason));\n }\n return <ConnectClient client={read.client} fields={fields} />;\n}\n","import { Handshake } from './handshake';\nimport { PickHolder } from './pick-holder';\n\n/** The page at /authorize: the client asking, the two picks, and the client it is. */\nexport function ConnectClient({ client, fields }: { client: { clientId: string; clientName: string; redirectUri: string }; fields: readonly [string, string][] }) {\n return (\n <section className=\"grid gap-4\" data-testid=\"authorize-pick\">\n <Handshake partyName={client.clientName} />\n <h1 className=\"text-title font-semibold\">Connect an MCP client</h1>\n <p>\n <strong>{client.clientName}</strong> asks to call your fleet's ships through the gateway.\n </p>\n <PickHolder fields={fields} />\n <p className=\"text-muted-foreground [overflow-wrap:anywhere]\">\n Client {client.clientId}, sent back to {client.redirectUri}.\n </p>\n </section>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'arrow-left-right',\n size: 24,\n node: [\n ['path', { d: 'M8 3 4 7l4 4', key: '9rb6wj' }],\n ['path', { d: 'M4 7h16', key: '6tx8e3' }],\n ['path', { d: 'm16 21 4-4-4-4', key: 'siv7j2' }],\n ['path', { d: 'M20 17H4', key: 'h6l3hr' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name ArrowLeftRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeftRight = createLucideIcon(__iconData);\n\nexport default ArrowLeftRight;\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const PickHolder = registerClientReference(\n function() { throw new Error(\"Attempted to call PickHolder() from the server but PickHolder is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/authorize/ui/pick-holder.tsx\",\n \"PickHolder\",\n);\n"],"names":["name","key","node","__iconData","PickHolder","Error"],"mappings":"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","ignoreList":[3,4]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[[55255,a=>{var b=a.i(7997),c=a.i(66283),d=a.i(88276),e=a.i(29660),f=a.i(94705),g=a.i(18734),h=a.i(68851),i=a.i(36554);async function j({requestId:a,searchParams:k}){let l=await (0,c._)({path:`${e.T}/requests/${encodeURIComponent(a)}`,searchParams:k});if("noSignIn"===l.kind)return(0,b.jsx)(i.L,{});let{fleetId:m,scopes:n}=l,{request:o,toDecide:p}=await (0,d.F)(l.api,a),q=`${e.T}?fleet=${encodeURIComponent(m)}`,r=(0,b.jsx)(g.f,{title:"Queue",requests:p,now:new Date,currentId:a,hrefOf:a=>`${e.T}/requests/${encodeURIComponent(a.requestId)}?fleet=${encodeURIComponent(m)}`});if(void 0===o)return(0,b.jsx)(i.n,{api:l.api,fleetId:m,screen:"settings",children:(0,b.jsxs)("section",{"data-testid":"bridge-no-longer-waits",className:"rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm",children:[(0,b.jsx)("h2",{className:"text-heading font-semibold",children:"This request no longer waits for a decision"}),(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)("a",{href:q,className:"inline-flex h-9 items-center rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover",children:"Back to Bridge's settings"})})]})});let s=await (0,c.F)(l.api.parties.ownerChoices.query()),t=o.requesters.length;return(0,b.jsx)(i.n,{api:l.api,fleetId:m,screen:"settings",children:(0,b.jsxs)("div",{className:"grid gap-6",children:[(0,b.jsx)("h1",{className:"text-heading font-semibold",children:"To decide"}),(0,b.jsxs)("div",{className:"grid gap-6 md:grid-cols-[1fr_18rem]",children:[(0,b.jsxs)("div",{className:"grid content-start gap-4",children:[(0,b.jsxs)("section",{className:"grid justify-items-center gap-1 rounded-lg border border-border bg-card p-6 text-center",children:[(0,b.jsx)("span",{className:"text-section font-semibold",children:(0,f.M)(o)}),(0,b.jsxs)("span",{className:"text-caption text-muted-foreground",children:[(0,f.E)(o)," · ",t," ",1===t?"requester":"requesters"]})]}),(0,b.jsx)(h.DecisionPanel,{fleetId:m,request:o,heldScopes:n,owners:s})]}),(0,b.jsx)("aside",{children:r})]})]})})}async function k({params:a,searchParams:c}){let[{requestId:d},e]=await Promise.all([a,c]);return(0,b.jsx)(j,{requestId:d,searchParams:e})}a.s(["default",0,k
|
|
1
|
+
module.exports=[[55255,a=>{var b=a.i(7997),c=a.i(66283),d=a.i(88276),e=a.i(29660),f=a.i(94705),g=a.i(18734),h=a.i(68851),i=a.i(36554);async function j({requestId:a,searchParams:k}){let l=await (0,c._)({path:`${e.T}/requests/${encodeURIComponent(a)}`,searchParams:k});if("noSignIn"===l.kind)return(0,b.jsx)(i.L,{});let{fleetId:m,scopes:n}=l,{request:o,toDecide:p}=await (0,d.F)(l.api,a),q=`${e.T}?fleet=${encodeURIComponent(m)}`,r=(0,b.jsx)(g.f,{title:"Queue",requests:p,now:new Date,currentId:a,hrefOf:a=>`${e.T}/requests/${encodeURIComponent(a.requestId)}?fleet=${encodeURIComponent(m)}`});if(void 0===o)return(0,b.jsx)(i.n,{api:l.api,fleetId:m,screen:"settings",children:(0,b.jsxs)("section",{"data-testid":"bridge-no-longer-waits",className:"rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm",children:[(0,b.jsx)("h2",{className:"text-heading font-semibold",children:"This request no longer waits for a decision"}),(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)("a",{href:q,className:"inline-flex h-9 items-center rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover",children:"Back to Bridge's settings"})})]})});let s=await (0,c.F)(l.api.parties.ownerChoices.query()),t=o.requesters.length;return(0,b.jsx)(i.n,{api:l.api,fleetId:m,screen:"settings",children:(0,b.jsxs)("div",{className:"grid gap-6",children:[(0,b.jsx)("h1",{className:"text-heading font-semibold",children:"To decide"}),(0,b.jsxs)("div",{className:"grid gap-6 md:grid-cols-[1fr_18rem]",children:[(0,b.jsxs)("div",{className:"grid content-start gap-4",children:[(0,b.jsxs)("section",{className:"grid justify-items-center gap-1 rounded-lg border border-border bg-card p-6 text-center",children:[(0,b.jsx)("span",{className:"text-section font-semibold",children:(0,f.M)(o)}),(0,b.jsxs)("span",{className:"text-caption text-muted-foreground",children:[(0,f.E)(o)," · ",t," ",1===t?"requester":"requesters"]})]}),(0,b.jsx)(h.DecisionPanel,{fleetId:m,request:o,heldScopes:n,owners:s})]}),(0,b.jsx)("aside",{children:r})]})]})})}async function k({params:a,searchParams:c}){let[{requestId:d},e]=await Promise.all([a,c]);return(0,b.jsx)(j,{requestId:d,searchParams:e})}a.s(["default",0,k],55255)},5586,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call DecisionPanel() from the server but DecisionPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/web/features/bridge/state/decision-panel.tsx","DecisionPanel");a.s(["DecisionPanel",0,b])},68851,a=>{var b=a.i(5586);a.n(b)}],66819,function(a){a.n(a.i(55255))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=web_0pk41f5m34jvi._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../web/features/bridge/state/request-to-decide.tsx","../../../../../web/app/%28bridge%29/bridge/settings/requests/%5BrequestId%5D/page.tsx","../../../../../web/features/bridge/state/decision-panel.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/bridge/state/decision-panel.tsx%22%20%7D"],"sourcesContent":["import { readOf, signedInPage, type SearchParams } from '../../../lib/gateway-api/page-api';\nimport { readRequestToDecide } from '../hooks/read-bridge';\nimport { BRIDGE_SETTINGS_PATH } from '../paths';\nimport { subjectKind, subjectName } from '../services/requests';\nimport { RequestsList } from '../ui/requests-list';\nimport { DecisionPanel } from './decision-panel';\nimport { BridgeNoSignIn, BridgeShell } from './bridge-shell';\n\n/**\n * One request to decide, with its decision beside the queue (decision\n * 0056). The queue stays live; a request decided elsewhere meanwhile no\n * longer waits here.\n */\nexport async function RequestToDecide({ requestId, searchParams }: { requestId: string; searchParams: SearchParams }) {\n const page = await signedInPage({ path: `${BRIDGE_SETTINGS_PATH}/requests/${encodeURIComponent(requestId)}`, searchParams });\n if (page.kind === 'noSignIn') {\n return <BridgeNoSignIn />;\n }\n const { fleetId, scopes } = page;\n const { request, toDecide } = await readRequestToDecide(page.api, requestId);\n const settings = `${BRIDGE_SETTINGS_PATH}?fleet=${encodeURIComponent(fleetId)}`;\n const queue = (\n <RequestsList title=\"Queue\" requests={toDecide} now={new Date()} currentId={requestId} hrefOf={(other) => `${BRIDGE_SETTINGS_PATH}/requests/${encodeURIComponent(other.requestId)}?fleet=${encodeURIComponent(fleetId)}`} />\n );\n if (request === undefined) {\n return (\n <BridgeShell api={page.api} fleetId={fleetId} screen=\"settings\">\n <section data-testid=\"bridge-no-longer-waits\" className=\"rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm\">\n <h2 className=\"text-heading font-semibold\">This request no longer waits for a decision</h2>\n <div className=\"mt-4\">\n <a href={settings} className=\"inline-flex h-9 items-center rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover\">\n Back to Bridge's settings\n </a>\n </div>\n </section>\n </BridgeShell>\n );\n }\n const owners = await readOf(page.api.parties.ownerChoices.query());\n const requesters = request.requesters.length;\n return (\n <BridgeShell api={page.api} fleetId={fleetId} screen=\"settings\">\n <div className=\"grid gap-6\">\n <h1 className=\"text-heading font-semibold\">To decide</h1>\n <div className=\"grid gap-6 md:grid-cols-[1fr_18rem]\">\n <div className=\"grid content-start gap-4\">\n <section className=\"grid justify-items-center gap-1 rounded-lg border border-border bg-card p-6 text-center\">\n <span className=\"text-section font-semibold\">{subjectName(request)}</span>\n <span className=\"text-caption text-muted-foreground\">\n {subjectKind(request)} · {requesters} {requesters === 1 ? 'requester' : 'requesters'}\n </span>\n </section>\n <DecisionPanel fleetId={fleetId} request={request} heldScopes={scopes} owners={owners} />\n </div>\n <aside>{queue}</aside>\n </div>\n </div>\n </BridgeShell>\n );\n}\n","import
|
|
1
|
+
{"version":3,"sources":["../../../../../web/features/bridge/state/request-to-decide.tsx","../../../../../web/app/%28bridge%29/bridge/settings/requests/%5BrequestId%5D/page.tsx","../../../../../web/features/bridge/state/decision-panel.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/bridge/state/decision-panel.tsx%22%20%7D"],"sourcesContent":["import { readOf, signedInPage, type SearchParams } from '../../../lib/gateway-api/page-api';\nimport { readRequestToDecide } from '../hooks/read-bridge';\nimport { BRIDGE_SETTINGS_PATH } from '../paths';\nimport { subjectKind, subjectName } from '../services/requests';\nimport { RequestsList } from '../ui/requests-list';\nimport { DecisionPanel } from './decision-panel';\nimport { BridgeNoSignIn, BridgeShell } from './bridge-shell';\n\n/**\n * One request to decide, with its decision beside the queue (decision\n * 0056). The queue stays live; a request decided elsewhere meanwhile no\n * longer waits here.\n */\nexport async function RequestToDecide({ requestId, searchParams }: { requestId: string; searchParams: SearchParams }) {\n const page = await signedInPage({ path: `${BRIDGE_SETTINGS_PATH}/requests/${encodeURIComponent(requestId)}`, searchParams });\n if (page.kind === 'noSignIn') {\n return <BridgeNoSignIn />;\n }\n const { fleetId, scopes } = page;\n const { request, toDecide } = await readRequestToDecide(page.api, requestId);\n const settings = `${BRIDGE_SETTINGS_PATH}?fleet=${encodeURIComponent(fleetId)}`;\n const queue = (\n <RequestsList title=\"Queue\" requests={toDecide} now={new Date()} currentId={requestId} hrefOf={(other) => `${BRIDGE_SETTINGS_PATH}/requests/${encodeURIComponent(other.requestId)}?fleet=${encodeURIComponent(fleetId)}`} />\n );\n if (request === undefined) {\n return (\n <BridgeShell api={page.api} fleetId={fleetId} screen=\"settings\">\n <section data-testid=\"bridge-no-longer-waits\" className=\"rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm\">\n <h2 className=\"text-heading font-semibold\">This request no longer waits for a decision</h2>\n <div className=\"mt-4\">\n <a href={settings} className=\"inline-flex h-9 items-center rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover\">\n Back to Bridge's settings\n </a>\n </div>\n </section>\n </BridgeShell>\n );\n }\n const owners = await readOf(page.api.parties.ownerChoices.query());\n const requesters = request.requesters.length;\n return (\n <BridgeShell api={page.api} fleetId={fleetId} screen=\"settings\">\n <div className=\"grid gap-6\">\n <h1 className=\"text-heading font-semibold\">To decide</h1>\n <div className=\"grid gap-6 md:grid-cols-[1fr_18rem]\">\n <div className=\"grid content-start gap-4\">\n <section className=\"grid justify-items-center gap-1 rounded-lg border border-border bg-card p-6 text-center\">\n <span className=\"text-section font-semibold\">{subjectName(request)}</span>\n <span className=\"text-caption text-muted-foreground\">\n {subjectKind(request)} · {requesters} {requesters === 1 ? 'requester' : 'requesters'}\n </span>\n </section>\n <DecisionPanel fleetId={fleetId} request={request} heldScopes={scopes} owners={owners} />\n </div>\n <aside>{queue}</aside>\n </div>\n </div>\n </BridgeShell>\n );\n}\n","import { RequestToDecide } from '../../../../../../features/bridge/state/request-to-decide';\nimport type { SearchParams } from '../../../../../../lib/gateway-api/page-api';\n\nexport default async function RequestToDecidePage({ params, searchParams }: { params: Promise<{ requestId: string }>; searchParams: Promise<SearchParams> }) {\n const [{ requestId }, query] = await Promise.all([params, searchParams]);\n return <RequestToDecide requestId={requestId} searchParams={query} />;\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const DecisionPanel = registerClientReference(\n function() { throw new Error(\"Attempted to call DecisionPanel() from the server but DecisionPanel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/bridge/state/decision-panel.tsx\",\n \"DecisionPanel\",\n);\n"],"names":["RequestToDecide","requestId","searchParams","page","path","encodeURIComponent","kind","fleetId","scopes","request","toDecide","api","settings","queue","title","requests","now","Date","currentId","hrefOf","other","undefined","screen","className","href","owners","parties","ownerChoices","query","requesters","length","heldScopes","DecisionPanel","Error"],"mappings":"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","ignoreList":[2]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[[68598,a=>{var b=a.i(7997);a.i(70396);var c=a.i(73727),d=a.i(14725),e=a.i(24571),f=a.i(6336);async function g({searchParams:a}){let{waiting:h}=await a,i="string"==typeof h?h:"",j=await (0,d.b)(i);return"goOn"===j.kind&&(0,c.redirect)(`${e.e}?${new URLSearchParams({waiting:i}).toString()}`),(0,b.jsx)(f.WaitingForApproval,{waiting:i,clientName:j.clientName,expiresAt:j.expiresAt,shownAt:new Date().toISOString()})}a.s(["default",0,g
|
|
1
|
+
module.exports=[[68598,a=>{var b=a.i(7997);a.i(70396);var c=a.i(73727),d=a.i(14725),e=a.i(24571),f=a.i(6336);async function g({searchParams:a}){let{waiting:h}=await a,i="string"==typeof h?h:"",j=await (0,d.b)(i);return"goOn"===j.kind&&(0,c.redirect)(`${e.e}?${new URLSearchParams({waiting:i}).toString()}`),(0,b.jsx)(f.WaitingForApproval,{waiting:i,clientName:j.clientName,expiresAt:j.expiresAt,shownAt:new Date().toISOString()})}a.s(["default",0,g])},14725,a=>{var b=a.i(5246),c=a.i(59847),d=a.i(66283);async function e(a){let b=await (0,d.z)(void 0);try{return{kind:"client",client:await b.oauth.authorization.query(Object.fromEntries(a))}}catch(b){let a=(0,d.U)(b);if("BAD_REQUEST"===a)return{kind:"failed",reason:"invalidClient"};if("NOT_FOUND"===a)return{kind:"failed",reason:"noSignIn"};throw b}}async function f(a){let e=(await (0,b.cookies)()).get("aeolus_waiting")?.value;return(0,c.f)({url:(0,d.o)(),cookie:(await (0,b.headers)()).get("cookie")??void 0,fleetId:void 0,...void 0===e?{}:{waitingSecret:e}}).oauth.waiting.query({waiting:a})}a.s(["P",0,function(a){return`/authorize/failed?${new URLSearchParams({reason:a}).toString()}`},"W",0,e,"b",0,f])},24571,a=>{let b="Start again from your MCP client.",c=new Map([["invalidClient",`The gateway does not know this MCP client, or the address it asks to be sent back to. ${b}`],["noPick","Pick on the page whether to sign in as yourself or to ask for access for the client."],["unknownSignIn",`This sign-in is unknown, or took over 10 minutes. ${b}`],["otherBrowser",`This sign-in was started in another browser, so it is not yours to finish. ${b}`],["fleetNotServed","This gateway does not serve the fleet you signed in to."],["outsidePartiesOff","Your fleet's outside parties are off, so no MCP client can ask for access. Sign in as yourself instead, or ask whoever runs your fleet."],["pagasaeRefused",`The sign-in service did not sign you in. ${b}`],["unknownWaiting",`This request is unknown, or ended long ago. ${b}`],["otherBrowserWaiting",`This request was made in another browser, so it is not yours to follow. ${b}`],["noSignIn","This gateway signs no one in, so no MCP client can connect to it: its operator sets pagasae first."]]),d=`The connection did not go through. ${b}`;a.s(["e",0,"/authorize/waiting","U",0,function(a){return(void 0===a?void 0:c.get(a))??d},"Q",0,function(a){return Object.entries(a).flatMap(([a,b])=>"string"==typeof b&&"holder"!==a?[[a,b]]:[])}])},17487,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call WaitingForApproval() from the server but WaitingForApproval is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/web/features/authorize/ui/waiting-for-approval.tsx","WaitingForApproval");a.s(["WaitingForApproval",0,b])},6336,a=>{var b=a.i(17487);a.n(b)}],36362,function(a){a.n(a.i(68598))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=web_0v-7sowo0hupw._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../web/app/authorize/waiting/approval/page.tsx","../../../../../web/features/authorize/hooks/read-authorize.ts","../../../../../web/features/authorize/services/authorize.ts","../../../../../web/features/authorize/ui/waiting-for-approval.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/authorize/ui/waiting-for-approval.tsx%22%20%7D"],"sourcesContent":["import type { Metadata } from 'next';\nimport { redirect } from 'next/navigation';\n\nimport { readWaiting } from '../../../../features/authorize/hooks/read-authorize';\nimport { WAITING_DOOR } from '../../../../features/authorize/services/authorize';\nimport { WaitingForApproval } from '../../../../features/authorize/ui/waiting-for-approval';\nimport type { SearchParams } from '../../../../lib/gateway-api/page-api';\n\nexport const metadata: Metadata = { title: 'Waiting for approval' };\n\nexport default async function WaitingPage({ searchParams }: { searchParams: Promise<SearchParams> }) {\n const { waiting } = await searchParams;\n const asked = typeof waiting === 'string' ? waiting : '';\n const read = await readWaiting(asked);\n if (read.kind === 'goOn') {\n // Whatever no longer waits, refused or decided, the gateway's waiting address says.\n redirect(`${WAITING_DOOR}?${new URLSearchParams({ waiting: asked }).toString()}`);\n }\n return <WaitingForApproval waiting={asked} clientName={read.clientName} expiresAt={read.expiresAt} shownAt={new Date().toISOString()} />;\n}\n","/**\n * What the authorize pages read through the gateway's API, as the browser\n * that asked: the client an authorization request is for, and a client\n * waiting for approval, by the waiting cookie the browser sent.\n */\nimport { cookies, headers } from 'next/headers';\n\nimport { gatewayApi } from '../../../lib/gateway-api/gateway-api';\nimport { apiUrl, refusalCodeOf, requestApi } from '../../../lib/gateway-api/page-api';\n\n/** The cookie the gateway's waiting address set: the browser's secret for its request. */\nconst WAITING_COOKIE = 'aeolus_waiting';\n\nconst FAILED_PAGE = '/authorize/failed';\n\nexport function failedPage(reason: string): string {\n return `${FAILED_PAGE}?${new URLSearchParams({ reason }).toString()}`;\n}\n\n/** The client a request is for; a request the gateway would not serve, or a gateway that signs no one in, fails. */\nexport async function readClient(fields: readonly [string, string][]): Promise<{ kind: 'client'; client: { clientId: string; clientName: string; redirectUri: string } } | { kind: 'failed'; reason: 'invalidClient' | 'noSignIn' }> {\n const api = await requestApi(undefined);\n try {\n return { kind: 'client', client: await api.oauth.authorization.query(Object.fromEntries(fields)) };\n } catch (error) {\n const code = refusalCodeOf(error);\n if (code === 'BAD_REQUEST') {\n return { kind: 'failed', reason: 'invalidClient' };\n }\n if (code === 'NOT_FOUND') {\n return { kind: 'failed', reason: 'noSignIn' };\n }\n throw error;\n }\n}\n\n/** A client waiting for approval, or goOn once its request no longer waits. */\nexport async function readWaiting(waiting: string): Promise<{ kind: 'waiting'; clientName: string; expiresAt: string } | { kind: 'goOn' }> {\n const browserSecret = (await cookies()).get(WAITING_COOKIE)?.value;\n // The secret goes beside the call, never in its input, which travels in the address the gateway logs.\n const api = gatewayApi({ url: apiUrl(), cookie: (await headers()).get('cookie') ?? undefined, fleetId: undefined, ...(browserSecret === undefined ? {} : { waitingSecret: browserSecret }) });\n return api.oauth.waiting.query({ waiting });\n}\n","/**\n * What the authorize pages work out: the time a request waiting for\n * approval has left, why a browser got nowhere connecting an MCP client,\n * and the authorization request the pick page carries on to the sign-in.\n */\nimport type { SearchParams } from '../../../lib/gateway-api/page-api';\n\nconst MS_PER_HOUR = 3_600_000;\nconst HOURS_PER_DAY = 24;\n\n/** The time a request has left, in days and hours, as the waiting page's ring shows it. */\nexport function timeLeft(expiresAt: Date, now: Date): string {\n const hours = Math.max(0, Math.floor((expiresAt.getTime() - now.getTime()) / MS_PER_HOUR));\n return `${String(Math.floor(hours / HOURS_PER_DAY))} d ${String(hours % HOURS_PER_DAY)} h`;\n}\n\nconst START_AGAIN = 'Start again from your MCP client.';\n\n/** Why a browser got nowhere, as the gateway's authorize doors name it (src/adapters/http/oauth-routes.ts). */\nconst REASONS = new Map([\n ['invalidClient', `The gateway does not know this MCP client, or the address it asks to be sent back to. ${START_AGAIN}`],\n ['noPick', 'Pick on the page whether to sign in as yourself or to ask for access for the client.'],\n ['unknownSignIn', `This sign-in is unknown, or took over 10 minutes. ${START_AGAIN}`],\n ['otherBrowser', `This sign-in was started in another browser, so it is not yours to finish. ${START_AGAIN}`],\n ['fleetNotServed', 'This gateway does not serve the fleet you signed in to.'],\n ['outsidePartiesOff', \"Your fleet's outside parties are off, so no MCP client can ask for access. Sign in as yourself instead, or ask whoever runs your fleet.\"],\n ['pagasaeRefused', `The sign-in service did not sign you in. ${START_AGAIN}`],\n ['unknownWaiting', `This request is unknown, or ended long ago. ${START_AGAIN}`],\n ['otherBrowserWaiting', `This request was made in another browser, so it is not yours to follow. ${START_AGAIN}`],\n ['noSignIn', 'This gateway signs no one in, so no MCP client can connect to it: its operator sets pagasae first.'],\n]);\n\nconst UNKNOWN_REASON = `The connection did not go through. ${START_AGAIN}`;\n\nexport function failedReasonText(reason: string | undefined): string {\n return (reason === undefined ? undefined : REASONS.get(reason)) ?? UNKNOWN_REASON;\n}\n\n/** The gateway's waiting address, which sends the browser on once its request no longer waits. */\nexport const WAITING_DOOR = '/authorize/waiting';\n\n/** The pick the page adds to the request, as the sign-in door reads it. */\nexport const HOLDER_FIELD = 'holder';\n\n/** The door that starts the sign-in through pagasae for the pick. */\nexport const SIGN_IN_DOOR = '/authorize/sign-in';\n\n/** Where a pressed pick sends the browser: the sign-in door, with the request as it came and the pick. */\nexport function signInAddressOf(fields: readonly [string, string][], holder: string): string {\n return `${SIGN_IN_DOOR}?${new URLSearchParams([...fields, [HOLDER_FIELD, holder]]).toString()}`;\n}\n\n/** The request's parameters the browser sent once each, without a pick: the page adds its own. */\nexport function pickFieldsOf(searchParams: SearchParams): [string, string][] {\n return Object.entries(searchParams).flatMap(([name, value]) => (typeof value === 'string' && name !== HOLDER_FIELD ? [[name, value]] : []));\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const WaitingForApproval = registerClientReference(\n function() { throw new Error(\"Attempted to call WaitingForApproval() from the server but WaitingForApproval is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/authorize/ui/waiting-for-approval.tsx\",\n \"WaitingForApproval\",\n);\n"],"names":["metadata","title","WaitingPage","searchParams","waiting","asked","read","kind","URLSearchParams","toString","clientName","expiresAt","shownAt","Date","toISOString","WAITING_COOKIE","FAILED_PAGE","failedPage","reason","readClient","fields","api","undefined","client","oauth","authorization","query","Object","fromEntries","error","code","readWaiting","browserSecret","get","value","url","cookie","fleetId","waitingSecret","MS_PER_HOUR","HOURS_PER_DAY","timeLeft","now","hours","Math","max","floor","getTime","String","START_AGAIN","REASONS","Map","UNKNOWN_REASON","failedReasonText","WAITING_DOOR","HOLDER_FIELD","SIGN_IN_DOOR","signInAddressOf","holder","pickFieldsOf","entries","flatMap","name","WaitingForApproval","Error"],"mappings":"2CACA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MAKe,eAAeE,EAAY,cAAEC,CAAY,CAA2C,EACjG,GAAM,SAAEC,CAAO,CAAE,CAAG,MAAMD,EACpBE,EAA2B,UAAnB,OAAOD,EAAuBA,EAAU,GAChDE,EAAO,MAAM,CAAA,EAAA,EAAA,CAAA,AAAW,EAACD,GAK/B,MAJIC,AAAc,QAAQ,GAAjBC,IAAI,EAEX,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,CAAA,EAAG,EAAA,CAAY,CAAC,CAAC,EAAE,IAAIC,gBAAgB,CAAEJ,QAASC,CAAM,GAAGI,QAAQ,GAAA,CAAI,EAE3E,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,kBAAkB,CAAA,CAACL,QAASC,EAAOK,WAAYJ,EAAKI,UAAU,CAAEC,UAAWL,EAAKK,SAAS,CAAEC,QAAS,IAAIC,OAAOC,WAAW,IACpI,iCAXkC,CAAEb,MAAO,sBAAuB,eCHlE,IAAA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAYO,eAAekB,EAAWC,CAAmC,EAClE,IAAMC,EAAM,MAAM,CAAA,EAAA,EAAA,CAAA,AAAU,OAACC,GAC7B,GAAI,CACF,MAAO,CAAEf,KAAM,SAAUgB,OAAQ,MAAMF,EAAIG,KAAK,CAACC,aAAa,CAACC,KAAK,CAACC,OAAOC,WAAW,CAACR,GAAS,CACnG,CAAE,MAAOS,EAAO,CACd,IAAMC,EAAO,CAAA,EAAA,EAAA,CAAA,AAAa,EAACD,GAC3B,GAAa,eAAe,CAAxBC,EACF,MAAO,CAAEvB,KAAM,SAAUW,OAAQ,eAAgB,EAEnD,GAAIY,AAAS,aAAa,GACxB,MAAO,CAAEvB,KAAM,SAAUW,OAAQ,UAAW,CAE9C,OAAMW,CACR,CACF,CAGO,eAAeE,EAAY3B,CAAe,EAC/C,IAAM4B,EAAgB,CAAC,MAAM,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAClB,AA3BvB,mBA2BwCmB,MAG7D,MADY,AACLb,CADK,EAAA,EAAA,CAAA,AAAU,EAAC,CAAEc,IAAK,CAAA,EAAA,EAAA,CAAA,AAAM,IAAIC,OAAQ,CAAC,MAAM,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEH,GAAG,CAAC,gBAAaX,EAAWe,QAASf,OAAW,GAAIU,KAAkBV,MAAY,CAAC,EAAI,CAAEgB,cAAeN,CAAc,CAAG,AAAF,GAC9KR,KAAK,CAACpB,OAAO,CAACsB,KAAK,CAAC,CAAEtB,SAAQ,EAC3C,YA3BO,SAAoBc,AAAXD,CAAyB,EACvC,MAAO,GAAGD,YAAY,CAAC,KAAE,IAAIR,gBAAgB,QAAEU,CAAO,GAAGT,QAAQ,IAAI,AACvE,+BCDA,IAAMwC,EAAc,oCAGdC,EAAU,IAAIC,IAAI,CACtB,CAAC,gBAAiB,CAAC,sFAAsF,EAAEF,EAAAA,CAAa,CAAC,CACzH,CAAC,SAAU,uFAAuF,CAClG,CAAC,gBAAiB,CAAC,kDAAkD,EAAEA,EAAAA,CAAa,CAAC,CACrF,CAAC,eAAgB,CAAC,2EAA2E,EAAEA,EAAAA,CAAa,CAAC,CAC7G,CAAC,iBAAkB,0DAA0D,CAC7E,CAAC,oBAAqB,0IAA0I,CAChK,CAAC,iBAAkB,CAAC,yCAAyC,EAAEA,EAAAA,CAAa,CAAC,CAC7E,CAAC,iBAAkB,CAAC,4CAA4C,EAAEA,EAAAA,CAAa,CAAC,CAChF,CAAC,sBAAuB,CAAC,wEAAwE,EAAEA,EAAAA,CAAa,CAAC,CACjH,CAAC,WAAY,qGAAqG,CACnH,EAEKG,EAAiB,CAAC,mCAAmC,EAAEH,EAAAA,CAAa,YAO9C,2BALrB,SAASI,AAAiBnC,CAA0B,EACzD,MAAO,CAACA,KAAWI,WAAYA,EAAY4B,EAAQjB,GAAG,CAACf,EAAAA,CAAO,EAAKkC,CACrE,QAiBO,SAASO,AAAaxD,CAA0B,EACrD,OAAOwB,OAAOiC,OAAO,CAACzD,GAAc0D,OAAO,CAAC,CAAC,CAACC,EAAM5B,EAAM,GAAuB,UAAjB,OAAOA,GAZ7C,WAYmE4B,EAAwB,CAAC,CAACA,EAAM5B,EAAM,CAAC,AAA9BqB,CAAiC,EAAE,CAC3I,eCrDO,IAAMQ,EAAqB,CAAA,EADlC,AACkC,EADlC,CAAA,CAAA,OACkC,uBAAA,AAAuB,EACrD,WAAa,MAAM,AAAIC,MAAM,kPAAoP,EACjR,+DACA","ignoreList":[3]}
|
|
1
|
+
{"version":3,"sources":["../../../../../web/app/authorize/waiting/approval/page.tsx","../../../../../web/features/authorize/hooks/read-authorize.ts","../../../../../web/features/authorize/services/authorize.ts","../../../../../web/features/authorize/ui/waiting-for-approval.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/authorize/ui/waiting-for-approval.tsx%22%20%7D"],"sourcesContent":["import { redirect } from 'next/navigation';\n\nimport { readWaiting } from '../../../../features/authorize/hooks/read-authorize';\nimport { WAITING_DOOR } from '../../../../features/authorize/services/authorize';\nimport { WaitingForApproval } from '../../../../features/authorize/ui/waiting-for-approval';\nimport type { SearchParams } from '../../../../lib/gateway-api/page-api';\n\nexport default async function WaitingPage({ searchParams }: { searchParams: Promise<SearchParams> }) {\n const { waiting } = await searchParams;\n const asked = typeof waiting === 'string' ? waiting : '';\n const read = await readWaiting(asked);\n if (read.kind === 'goOn') {\n // Whatever no longer waits, refused or decided, the gateway's waiting address says.\n redirect(`${WAITING_DOOR}?${new URLSearchParams({ waiting: asked }).toString()}`);\n }\n return <WaitingForApproval waiting={asked} clientName={read.clientName} expiresAt={read.expiresAt} shownAt={new Date().toISOString()} />;\n}\n","/**\n * What the authorize pages read through the gateway's API, as the browser\n * that asked: the client an authorization request is for, and a client\n * waiting for approval, by the waiting cookie the browser sent.\n */\nimport { cookies, headers } from 'next/headers';\n\nimport { gatewayApi } from '../../../lib/gateway-api/gateway-api';\nimport { apiUrl, refusalCodeOf, requestApi } from '../../../lib/gateway-api/page-api';\n\n/** The cookie the gateway's waiting address set: the browser's secret for its request. */\nconst WAITING_COOKIE = 'aeolus_waiting';\n\nconst FAILED_PAGE = '/authorize/failed';\n\nexport function failedPage(reason: string): string {\n return `${FAILED_PAGE}?${new URLSearchParams({ reason }).toString()}`;\n}\n\n/** The client a request is for; a request the gateway would not serve, or a gateway that signs no one in, fails. */\nexport async function readClient(fields: readonly [string, string][]): Promise<{ kind: 'client'; client: { clientId: string; clientName: string; redirectUri: string } } | { kind: 'failed'; reason: 'invalidClient' | 'noSignIn' }> {\n const api = await requestApi(undefined);\n try {\n return { kind: 'client', client: await api.oauth.authorization.query(Object.fromEntries(fields)) };\n } catch (error) {\n const code = refusalCodeOf(error);\n if (code === 'BAD_REQUEST') {\n return { kind: 'failed', reason: 'invalidClient' };\n }\n if (code === 'NOT_FOUND') {\n return { kind: 'failed', reason: 'noSignIn' };\n }\n throw error;\n }\n}\n\n/** A client waiting for approval, or goOn once its request no longer waits. */\nexport async function readWaiting(waiting: string): Promise<{ kind: 'waiting'; clientName: string; expiresAt: string } | { kind: 'goOn' }> {\n const browserSecret = (await cookies()).get(WAITING_COOKIE)?.value;\n // The secret goes beside the call, never in its input, which travels in the address the gateway logs.\n const api = gatewayApi({ url: apiUrl(), cookie: (await headers()).get('cookie') ?? undefined, fleetId: undefined, ...(browserSecret === undefined ? {} : { waitingSecret: browserSecret }) });\n return api.oauth.waiting.query({ waiting });\n}\n","/**\n * What the authorize pages work out: the time a request waiting for\n * approval has left, why a browser got nowhere connecting an MCP client,\n * and the authorization request the pick page carries on to the sign-in.\n */\nimport type { SearchParams } from '../../../lib/gateway-api/page-api';\n\nconst MS_PER_HOUR = 3_600_000;\nconst HOURS_PER_DAY = 24;\n\n/** The time a request has left, in days and hours, as the waiting page's ring shows it. */\nexport function timeLeft(expiresAt: Date, now: Date): string {\n const hours = Math.max(0, Math.floor((expiresAt.getTime() - now.getTime()) / MS_PER_HOUR));\n return `${String(Math.floor(hours / HOURS_PER_DAY))} d ${String(hours % HOURS_PER_DAY)} h`;\n}\n\nconst START_AGAIN = 'Start again from your MCP client.';\n\n/** Why a browser got nowhere, as the gateway's authorize doors name it (src/adapters/http/oauth-routes.ts). */\nconst REASONS = new Map([\n ['invalidClient', `The gateway does not know this MCP client, or the address it asks to be sent back to. ${START_AGAIN}`],\n ['noPick', 'Pick on the page whether to sign in as yourself or to ask for access for the client.'],\n ['unknownSignIn', `This sign-in is unknown, or took over 10 minutes. ${START_AGAIN}`],\n ['otherBrowser', `This sign-in was started in another browser, so it is not yours to finish. ${START_AGAIN}`],\n ['fleetNotServed', 'This gateway does not serve the fleet you signed in to.'],\n ['outsidePartiesOff', \"Your fleet's outside parties are off, so no MCP client can ask for access. Sign in as yourself instead, or ask whoever runs your fleet.\"],\n ['pagasaeRefused', `The sign-in service did not sign you in. ${START_AGAIN}`],\n ['unknownWaiting', `This request is unknown, or ended long ago. ${START_AGAIN}`],\n ['otherBrowserWaiting', `This request was made in another browser, so it is not yours to follow. ${START_AGAIN}`],\n ['noSignIn', 'This gateway signs no one in, so no MCP client can connect to it: its operator sets pagasae first.'],\n]);\n\nconst UNKNOWN_REASON = `The connection did not go through. ${START_AGAIN}`;\n\nexport function failedReasonText(reason: string | undefined): string {\n return (reason === undefined ? undefined : REASONS.get(reason)) ?? UNKNOWN_REASON;\n}\n\n/** The gateway's waiting address, which sends the browser on once its request no longer waits. */\nexport const WAITING_DOOR = '/authorize/waiting';\n\n/** The pick the page adds to the request, as the sign-in door reads it. */\nexport const HOLDER_FIELD = 'holder';\n\n/** The door that starts the sign-in through pagasae for the pick. */\nexport const SIGN_IN_DOOR = '/authorize/sign-in';\n\n/** Where a pressed pick sends the browser: the sign-in door, with the request as it came and the pick. */\nexport function signInAddressOf(fields: readonly [string, string][], holder: string): string {\n return `${SIGN_IN_DOOR}?${new URLSearchParams([...fields, [HOLDER_FIELD, holder]]).toString()}`;\n}\n\n/** The request's parameters the browser sent once each, without a pick: the page adds its own. */\nexport function pickFieldsOf(searchParams: SearchParams): [string, string][] {\n return Object.entries(searchParams).flatMap(([name, value]) => (typeof value === 'string' && name !== HOLDER_FIELD ? [[name, value]] : []));\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const WaitingForApproval = registerClientReference(\n function() { throw new Error(\"Attempted to call WaitingForApproval() from the server but WaitingForApproval is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/authorize/ui/waiting-for-approval.tsx\",\n \"WaitingForApproval\",\n);\n"],"names":["WaitingPage","searchParams","waiting","asked","read","kind","URLSearchParams","toString","clientName","expiresAt","shownAt","Date","toISOString","WAITING_COOKIE","FAILED_PAGE","failedPage","reason","readClient","fields","api","undefined","client","oauth","authorization","query","Object","fromEntries","error","code","readWaiting","browserSecret","get","value","url","cookie","fleetId","waitingSecret","MS_PER_HOUR","HOURS_PER_DAY","timeLeft","now","hours","Math","max","floor","getTime","String","START_AGAIN","REASONS","Map","UNKNOWN_REASON","failedReasonText","WAITING_DOOR","HOLDER_FIELD","SIGN_IN_DOOR","signInAddressOf","holder","pickFieldsOf","entries","flatMap","name","WaitingForApproval","Error"],"mappings":"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","ignoreList":[3]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[[66190,a=>{var b=a.i(7997),c=a.i(55476),d=a.i(66283),e=a.i(49144),f=a.i(65253),g=a.i(72913),h=a.i(98323),i=a.i(53925);let j="gateway:approve";function k({party:a,fleetId:d}){let{protocol:i,side:j}=f.G[a.kind],l=(0,f.M)(a),m=f.Y[a.state];return(0,b.jsxs)("a",{href:(0,c.i)((0,g.N)(a.name),d),className:`${e.E} grid min-w-0 justify-items-start gap-2 hover:bg-accent`,"data-testid":"outside-parties-party",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("strong",{children:a.name}),(0,b.jsxs)("span",{className:"contents max-sm:hidden",children:[(0,b.jsx)(h.E,{children:i})," ",(0,b.jsx)(h.E,{children:`${i} ${f.N[j].one}`})]})]}),null===l?null:(0,b.jsx)("span",{className:"max-w-full truncate font-mono text-code text-muted-foreground",title:l,children:l}),(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(h.T,{tone:m.tone,label:m.label,look:"flat"}),null===a.ownerName?null:(0,b.jsx)(h.E,{children:a.ownerName})]})]})}async function l({page:a,side:h}){let{api:m,fleetId:n,scopes:o}=a,[p,q]=await Promise.all([(0,d.F)(m.outsideParties.status.query()),(0,d.F)(m.parties.list.query())]),r=q.isOk?q.value:[],s=(0,f.R)(r),t=(0,f.n)(void 0===h?r:r.filter(a=>f.G[a.kind].side===h)),u=[{label:"All",href:g.$,isCurrent:void 0===h},{label:"Servers",href:`${g.$}?kind=server`,isCurrent:"server"===h},{label:"Clients",href:`${g.$}?kind=client`,isCurrent:"client"===h}];return(0,b.jsxs)("div",{className:"grid gap-4",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-heading-touch font-semibold max-sm:sr-only",children:"Outside parties"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"outside-parties-counts",children:[`${String(s.sides.server)} ${1===s.sides.server?f.N.server.one:f.N.server.many}`,`${String(s.sides.client)} ${1===s.sides.client?f.N.client.one:f.N.client.many}`,...s.protocols.map(({protocol:a,count:b})=>`${a} ${String(b)}`)].join(" · ")})]}),(0,b.jsxs)("div",{className:"flex gap-2 max-sm:hidden",children:[o.includes(j)?(0,b.jsx)("a",{className:`${e.x.secondary} ${e.d}`,href:(0,c.i)(g.Z,n),"data-testid":"outside-parties-add-a2a-client",children:"Add A2A client"}):null,o.includes(j)?(0,b.jsx)("a",{className:`${e.x.secondary} ${e.d}`,href:(0,c.i)(g.u,n),"data-testid":"outside-parties-add-a2a-agent",children:"Add A2A agent"}):null,o.includes("fleet:manage")?(0,b.jsx)("a",{className:`${e.x.primary} ${e.d}`,href:(0,c.i)(g.y,n),"data-testid":"outside-parties-add",children:"Add server"}):null]})]}),p.isOk?(0,b.jsx)(i.SwitchCard,{isOn:p.value.isOn,canSwitch:o.includes("fleet:network"),fleetId:n}):(0,b.jsx)("p",{role:"alert",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:p.refusal}),(0,b.jsx)("nav",{"aria-label":"Show",className:"flex w-fit gap-0.5 rounded-md border border-border bg-muted p-0.75 max-sm:w-full max-sm:rounded-lg max-sm:p-1",children:u.map(a=>(0,b.jsx)("a",{href:(0,c.i)(a.href,n),"aria-current":a.isCurrent?"page":void 0,className:`inline-flex h-7 items-center justify-center rounded-sm px-2.5 text-meta font-medium max-sm:h-9 max-sm:flex-1 max-sm:text-body-touch ${a.isCurrent?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:a.label},a.label))}),q.isOk?0===t.length?(0,b.jsx)("p",{className:"text-muted-foreground",children:"No outside party yet."}):(0,b.jsx)("div",{className:"grid gap-2.5 sm:grid-cols-[repeat(auto-fill,minmax(22rem,1fr))] sm:gap-3",children:t.map(a=>(0,b.jsx)(k,{party:a,fleetId:n},a.name))}):(0,b.jsx)("p",{role:"alert",className:"text-tone-attention-fg",children:q.refusal})]})}var m=a.i(36554);async function n({searchParams:a}){let c=await a,e=await (0,d._)({path:g.$,searchParams:c});if("noSignIn"===e.kind)return(0,b.jsx)(m.L,{});let f="server"===c.kind||"client"===c.kind?c.kind:void 0;return(0,b.jsx)(m.n,{api:e.api,fleetId:e.fleetId,screen:"outside-parties",children:(0,b.jsx)(l,{page:e,side:f})})}a.s(["default",0,n
|
|
1
|
+
module.exports=[[66190,a=>{var b=a.i(7997),c=a.i(55476),d=a.i(66283),e=a.i(49144),f=a.i(65253),g=a.i(72913),h=a.i(98323),i=a.i(53925);let j="gateway:approve";function k({party:a,fleetId:d}){let{protocol:i,side:j}=f.G[a.kind],l=(0,f.M)(a),m=f.Y[a.state];return(0,b.jsxs)("a",{href:(0,c.i)((0,g.N)(a.name),d),className:`${e.E} grid min-w-0 justify-items-start gap-2 hover:bg-accent`,"data-testid":"outside-parties-party",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("strong",{children:a.name}),(0,b.jsxs)("span",{className:"contents max-sm:hidden",children:[(0,b.jsx)(h.E,{children:i})," ",(0,b.jsx)(h.E,{children:`${i} ${f.N[j].one}`})]})]}),null===l?null:(0,b.jsx)("span",{className:"max-w-full truncate font-mono text-code text-muted-foreground",title:l,children:l}),(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(h.T,{tone:m.tone,label:m.label,look:"flat"}),null===a.ownerName?null:(0,b.jsx)(h.E,{children:a.ownerName})]})]})}async function l({page:a,side:h}){let{api:m,fleetId:n,scopes:o}=a,[p,q]=await Promise.all([(0,d.F)(m.outsideParties.status.query()),(0,d.F)(m.parties.list.query())]),r=q.isOk?q.value:[],s=(0,f.R)(r),t=(0,f.n)(void 0===h?r:r.filter(a=>f.G[a.kind].side===h)),u=[{label:"All",href:g.$,isCurrent:void 0===h},{label:"Servers",href:`${g.$}?kind=server`,isCurrent:"server"===h},{label:"Clients",href:`${g.$}?kind=client`,isCurrent:"client"===h}];return(0,b.jsxs)("div",{className:"grid gap-4",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-heading-touch font-semibold max-sm:sr-only",children:"Outside parties"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"outside-parties-counts",children:[`${String(s.sides.server)} ${1===s.sides.server?f.N.server.one:f.N.server.many}`,`${String(s.sides.client)} ${1===s.sides.client?f.N.client.one:f.N.client.many}`,...s.protocols.map(({protocol:a,count:b})=>`${a} ${String(b)}`)].join(" · ")})]}),(0,b.jsxs)("div",{className:"flex gap-2 max-sm:hidden",children:[o.includes(j)?(0,b.jsx)("a",{className:`${e.x.secondary} ${e.d}`,href:(0,c.i)(g.Z,n),"data-testid":"outside-parties-add-a2a-client",children:"Add A2A client"}):null,o.includes(j)?(0,b.jsx)("a",{className:`${e.x.secondary} ${e.d}`,href:(0,c.i)(g.u,n),"data-testid":"outside-parties-add-a2a-agent",children:"Add A2A agent"}):null,o.includes("fleet:manage")?(0,b.jsx)("a",{className:`${e.x.primary} ${e.d}`,href:(0,c.i)(g.y,n),"data-testid":"outside-parties-add",children:"Add server"}):null]})]}),p.isOk?(0,b.jsx)(i.SwitchCard,{isOn:p.value.isOn,canSwitch:o.includes("fleet:network"),fleetId:n}):(0,b.jsx)("p",{role:"alert",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:p.refusal}),(0,b.jsx)("nav",{"aria-label":"Show",className:"flex w-fit gap-0.5 rounded-md border border-border bg-muted p-0.75 max-sm:w-full max-sm:rounded-lg max-sm:p-1",children:u.map(a=>(0,b.jsx)("a",{href:(0,c.i)(a.href,n),"aria-current":a.isCurrent?"page":void 0,className:`inline-flex h-7 items-center justify-center rounded-sm px-2.5 text-meta font-medium max-sm:h-9 max-sm:flex-1 max-sm:text-body-touch ${a.isCurrent?"bg-card text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:a.label},a.label))}),q.isOk?0===t.length?(0,b.jsx)("p",{className:"text-muted-foreground",children:"No outside party yet."}):(0,b.jsx)("div",{className:"grid gap-2.5 sm:grid-cols-[repeat(auto-fill,minmax(22rem,1fr))] sm:gap-3",children:t.map(a=>(0,b.jsx)(k,{party:a,fleetId:n},a.name))}):(0,b.jsx)("p",{role:"alert",className:"text-tone-attention-fg",children:q.refusal})]})}var m=a.i(36554);async function n({searchParams:a}){let c=await a,e=await (0,d._)({path:g.$,searchParams:c});if("noSignIn"===e.kind)return(0,b.jsx)(m.L,{});let f="server"===c.kind||"client"===c.kind?c.kind:void 0;return(0,b.jsx)(m.n,{api:e.api,fleetId:e.fleetId,screen:"outside-parties",children:(0,b.jsx)(l,{page:e,side:f})})}a.s(["default",0,n],66190)},1236,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call SwitchCard() from the server but SwitchCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/web/features/outside-parties/ui/switch-card.tsx","SwitchCard");a.s(["SwitchCard",0,b])},53925,a=>{var b=a.i(1236);a.n(b)}],23481,function(a){a.n(a.i(66190))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=web_0zxufwo8cd7v3._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../web/features/outside-parties/ui/outside-parties.tsx","../../../../../web/app/%28bridge%29/outside-parties/page.tsx","../../../../../web/features/outside-parties/ui/switch-card.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/outside-parties/ui/switch-card.tsx%22%20%7D"],"sourcesContent":["import { inFleet } from '../../../lib/gateway-api/page-account';\nimport { readOf, type SignedInPage } from '../../../lib/gateway-api/page-api';\nimport { BUTTONS, COMPACT_CARD, SMALL_BUTTON } from '../../forms/ui/look';\nimport { countsOf, inListOrder, outsideAddressOf, PARTY_KINDS, PARTY_STATES, SIDES, type ListedParty, type Side } from '../party-kinds';\nimport { ADD_A2A_AGENT_PATH, ADD_A2A_CLIENT_PATH, ADD_SERVER_PATH, OUTSIDE_PARTIES_PATH, partyPath } from '../paths';\nimport { StatusBadge, Tag } from './status-badge';\nimport { SwitchCard } from './switch-card';\n\n/** The scopes that turn outside parties on or off, that add an outside MCP server (0056), and that add an outside A2A client (0060). */\nconst SWITCHING_SCOPE = 'fleet:network';\nconst ADDING_SCOPE = 'fleet:manage';\nconst APPROVING_SCOPE = 'gateway:approve';\n\nfunction PartyCard({ party, fleetId }: { party: ListedParty; fleetId: string }) {\n const { protocol, side } = PARTY_KINDS[party.kind];\n const where = outsideAddressOf(party);\n const state = PARTY_STATES[party.state];\n return (\n <a href={inFleet(partyPath(party.name), fleetId)} className={`${COMPACT_CARD} grid min-w-0 justify-items-start gap-2 hover:bg-accent`} data-testid=\"outside-parties-party\">\n <span className=\"flex flex-wrap items-center gap-2\">\n <strong>{party.name}</strong>\n <span className=\"contents max-sm:hidden\">\n <Tag>{protocol}</Tag> <Tag>{`${protocol} ${SIDES[side].one}`}</Tag>\n </span>\n </span>\n {where === null ? null : (\n <span className=\"max-w-full truncate font-mono text-code text-muted-foreground\" title={where}>\n {where}\n </span>\n )}\n <span className=\"flex flex-wrap items-center gap-2\">\n <StatusBadge tone={state.tone} label={state.label} look=\"flat\" />\n {party.ownerName === null ? null : <Tag>{party.ownerName}</Tag>}\n </span>\n </a>\n );\n}\n\n/**\n * The Outside parties page: how many the fleet has, whether they are on,\n * and each party, for every side or one. What the API refuses is said in\n * place of what it would show.\n */\nexport async function OutsideParties({ page, side }: { page: SignedInPage; side: Side | undefined }) {\n const { api, fleetId, scopes } = page;\n const [status, parties] = await Promise.all([readOf(api.outsideParties.status.query()), readOf(api.parties.list.query())]);\n const listed = parties.isOk ? parties.value : [];\n const counts = countsOf(listed);\n const shown = inListOrder(side === undefined ? listed : listed.filter((party) => PARTY_KINDS[party.kind].side === side));\n const filters = [\n { label: 'All', href: OUTSIDE_PARTIES_PATH, isCurrent: side === undefined },\n { label: 'Servers', href: `${OUTSIDE_PARTIES_PATH}?kind=server`, isCurrent: side === 'server' },\n { label: 'Clients', href: `${OUTSIDE_PARTIES_PATH}?kind=client`, isCurrent: side === 'client' },\n ];\n return (\n <div className=\"grid gap-4\">\n <div className=\"flex items-start justify-between gap-4\">\n <div>\n <h1 className=\"text-heading-touch font-semibold max-sm:sr-only\">Outside parties</h1>\n <p className=\"text-meta text-muted-foreground\" data-testid=\"outside-parties-counts\">\n {[\n `${String(counts.sides.server)} ${counts.sides.server === 1 ? SIDES.server.one : SIDES.server.many}`,\n `${String(counts.sides.client)} ${counts.sides.client === 1 ? SIDES.client.one : SIDES.client.many}`,\n ...counts.protocols.map(({ protocol, count }) => `${protocol} ${String(count)}`),\n ].join(' · ')}\n </p>\n </div>\n <div className=\"flex gap-2 max-sm:hidden\">\n {scopes.includes(APPROVING_SCOPE) ? (\n <a className={`${BUTTONS.secondary} ${SMALL_BUTTON}`} href={inFleet(ADD_A2A_CLIENT_PATH, fleetId)} data-testid=\"outside-parties-add-a2a-client\">\n Add A2A client\n </a>\n ) : null}\n {scopes.includes(APPROVING_SCOPE) ? (\n <a className={`${BUTTONS.secondary} ${SMALL_BUTTON}`} href={inFleet(ADD_A2A_AGENT_PATH, fleetId)} data-testid=\"outside-parties-add-a2a-agent\">\n Add A2A agent\n </a>\n ) : null}\n {scopes.includes(ADDING_SCOPE) ? (\n <a className={`${BUTTONS.primary} ${SMALL_BUTTON}`} href={inFleet(ADD_SERVER_PATH, fleetId)} data-testid=\"outside-parties-add\">\n Add server\n </a>\n ) : null}\n </div>\n </div>\n {status.isOk ? (\n <SwitchCard isOn={status.value.isOn} canSwitch={scopes.includes(SWITCHING_SCOPE)} fleetId={fleetId} />\n ) : (\n <p role=\"alert\" className=\"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg\">\n {status.refusal}\n </p>\n )}\n <nav aria-label=\"Show\" className=\"flex w-fit gap-0.5 rounded-md border border-border bg-muted p-0.75 max-sm:w-full max-sm:rounded-lg max-sm:p-1\">\n {filters.map((filter) => (\n <a\n key={filter.label}\n href={inFleet(filter.href, fleetId)}\n aria-current={filter.isCurrent ? 'page' : undefined}\n className={`inline-flex h-7 items-center justify-center rounded-sm px-2.5 text-meta font-medium max-sm:h-9 max-sm:flex-1 max-sm:text-body-touch ${filter.isCurrent ? 'bg-card text-foreground shadow-sm' : 'text-muted-foreground hover:text-foreground'}`}\n >\n {filter.label}\n </a>\n ))}\n </nav>\n {!parties.isOk ? (\n <p role=\"alert\" className=\"text-tone-attention-fg\">\n {parties.refusal}\n </p>\n ) : shown.length === 0 ? (\n <p className=\"text-muted-foreground\">No outside party yet.</p>\n ) : (\n <div className=\"grid gap-2.5 sm:grid-cols-[repeat(auto-fill,minmax(22rem,1fr))] sm:gap-3\">\n {shown.map((party) => (\n <PartyCard key={party.name} party={party} fleetId={fleetId} />\n ))}\n </div>\n )}\n </div>\n );\n}\n","import type { Metadata } from 'next';\n\nimport { OutsideParties } from '../../../features/outside-parties/ui/outside-parties';\nimport { OUTSIDE_PARTIES_PATH } from '../../../features/outside-parties/paths';\nimport { BridgeNoSignIn, BridgeShell } from '../../../features/bridge/state/bridge-shell';\nimport { signedInPage, type SearchParams } from '../../../lib/gateway-api/page-api';\n\nexport const metadata: Metadata = { title: 'Outside parties' };\n\nexport default async function OutsidePartiesPage({ searchParams }: { searchParams: Promise<SearchParams> }) {\n const parameters = await searchParams;\n const page = await signedInPage({ path: OUTSIDE_PARTIES_PATH, searchParams: parameters });\n if (page.kind === 'noSignIn') {\n return <BridgeNoSignIn />;\n }\n const side = parameters.kind === 'server' || parameters.kind === 'client' ? parameters.kind : undefined;\n return (\n <BridgeShell api={page.api} fleetId={page.fleetId} screen=\"outside-parties\">\n <OutsideParties page={page} side={side} />\n </BridgeShell>\n );\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const SwitchCard = registerClientReference(\n function() { throw new Error(\"Attempted to call SwitchCard() from the server but SwitchCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/outside-parties/ui/switch-card.tsx\",\n \"SwitchCard\",\n);\n"],"names":["SWITCHING_SCOPE","ADDING_SCOPE","APPROVING_SCOPE","PartyCard","party","fleetId","protocol","side","kind","where","state","href","name","className","one","title","tone","label","look","ownerName","OutsideParties","page","api","scopes","status","parties","Promise","all","outsideParties","query","list","listed","isOk","value","counts","shown","undefined","filter","filters","isCurrent","String","sides","server","many","client","protocols","map","count","join","includes","secondary","primary","isOn","canSwitch","role","refusal","length","SwitchCard","Error"],"mappings":"2CAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAKA,IAAME,EAAkB,kBAExB,SAASC,EAAU,OAAEC,CAAK,SAAEC,CAAO,CAA2C,EAC5E,GAAM,UAAEC,CAAQ,MAAEC,CAAI,CAAE,CAAG,EAAA,CAAW,CAACH,EAAMI,IAAI,CAAC,CAC5CC,EAAQ,CAAA,EAAA,EAAA,CAAA,AAAgB,EAACL,GACzBM,EAAQ,EAAA,CAAY,CAACN,EAAMM,KAAK,CAAC,CACvC,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAEC,KAAM,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,CAAA,EAAA,EAAA,CAAS,AAAT,EAAUP,EAAMQ,IAAI,EAAGP,GAAUQ,UAAW,CAAA,EAAG,EAAA,CAAY,CAAC,uDAAuD,CAAC,CAAE,cAAY,kCACjJ,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAKA,UAAU,8CACd,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,UAAQT,EAAMQ,IAAI,GACnB,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAKC,UAAU,mCACd,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAG,CAAA,UAAEP,IAAe,IAAC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAG,CAAA,UAAE,CAAA,EAAGA,EAAS,CAAC,EAAE,EAAA,CAAK,CAACC,EAAK,CAACO,GAAG,CAAA,CAAE,SAGrD,OAAVL,EAAiB,KAChB,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKI,UAAU,gEAAgEE,MAAON,WACpFA,IAGL,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAKI,UAAU,8CACd,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAW,CAAA,CAACG,KAAMN,EAAMM,IAAI,CAAEC,MAAOP,EAAMO,KAAK,CAAEC,KAAK,SACnC,OAApBd,EAAMe,SAAS,CAAY,KAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAG,CAAA,UAAEf,EAAMe,SAAS,QAIhE,CAOO,eAAeC,EAAe,MAAEC,CAAI,MAAEd,CAAI,CAAkD,EACjG,GAAM,KAAEe,CAAG,SAAEjB,CAAO,QAAEkB,CAAM,CAAE,CAAGF,EAC3B,CAACG,EAAQC,EAAQ,CAAG,MAAMC,QAAQC,GAAG,CAAC,CAAC,CAAA,EAAA,EAAA,CAAA,AAAM,EAACL,EAAIM,cAAc,CAACJ,MAAM,CAACK,KAAK,IAAK,CAAA,EAAA,EAAA,CAAA,AAAM,EAACP,EAAIG,OAAO,CAACK,IAAI,CAACD,KAAK,IAAI,EACnHE,EAASN,EAAQO,IAAI,CAAGP,EAAQQ,KAAK,CAAG,EAAE,CAC1CC,EAAS,CAAA,EAAA,EAAA,CAAA,AAAQ,EAACH,GAClBI,EAAQ,CAAA,EAAA,EAAA,CAAA,AAAW,OAAUC,IAAT7B,EAAqBwB,EAASA,EAAOM,MAAM,CAAC,AAACjC,GAAU,EAAA,CAAW,CAACA,EAAMI,IAAI,CAAC,CAACD,IAAI,GAAKA,IAC5G+B,EAAU,CACd,CAAErB,MAAO,MAAON,KAAM,EAAA,CAAoB,CAAE4B,eAAoBH,IAAT7B,CAAmB,EAC1E,CAAEU,MAAO,UAAWN,KAAM,CAAA,EAAG,EAAA,CAAoB,CAAC,YAAY,CAAC,CAAE4B,UAAWhC,AAAS,YAAS,EAC9F,CAAEU,MAAO,UAAWN,KAAM,CAAA,EAAG,EAAA,CAAoB,CAAC,YAAY,CAAC,CAAE4B,UAAoB,WAAThC,CAAkB,EAC/F,CACD,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIM,UAAU,uBACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,mDACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,WACC,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAGA,UAAU,2DAAkD,oBAChE,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEA,UAAU,kCAAkC,cAAY,kCACxD,CACC,CAAA,EAAG2B,OAAON,EAAOO,KAAK,CAACC,MAAM,EAAE,CAAC,EAA0B,IAAxBR,EAAOO,KAAK,CAACC,MAAM,CAAS,EAAA,CAAK,CAACA,MAAM,CAAC5B,GAAG,CAAG,EAAA,CAAK,CAAC4B,MAAM,CAACC,IAAI,CAAA,CAAE,CACpG,CAAA,EAAGH,OAAON,EAAOO,KAAK,CAACG,MAAM,EAAE,CAAC,EAA0B,IAAxBV,EAAOO,KAAK,CAACG,MAAM,CAAS,EAAA,CAAK,CAACA,MAAM,CAAC9B,GAAG,CAAG,EAAA,CAAK,CAAC8B,MAAM,CAACD,IAAI,CAAA,CAAE,IACjGT,EAAOW,SAAS,CAACC,GAAG,CAAC,CAAC,UAAExC,CAAQ,OAAEyC,CAAK,CAAE,GAAK,CAAA,EAAGzC,EAAS,CAAC,EAAEkC,OAAOO,GAAAA,CAAQ,EAChF,CAACC,IAAI,CAAC,YAGX,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAInC,UAAU,qCACZU,EAAO0B,QAAQ,CAAC/C,GACf,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEW,UAAW,CAAA,EAAG,EAAA,CAAO,CAACqC,SAAS,CAAC,CAAC,EAAE,EAAA,CAAY,CAAA,CAAE,CAAEvC,KAAM,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAA,CAAmB,CAAEN,GAAU,cAAY,0CAAiC,mBAG9I,KACHkB,EAAO0B,QAAQ,CAAC/C,GACf,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEW,UAAW,CAAA,EAAG,EAAA,CAAO,CAACqC,SAAS,CAAC,CAAC,EAAE,EAAA,CAAY,CAAA,CAAE,CAAEvC,KAAM,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAA,CAAkB,CAAEN,GAAU,cAAY,yCAAgC,kBAG5I,KACHkB,EAAO0B,QAAQ,CAAChD,AApEN,gBAqET,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEY,UAAW,CAAA,EAAG,EAAA,CAAO,CAACsC,OAAO,CAAC,CAAC,EAAE,EAAA,CAAY,CAAA,CAAE,CAAExC,KAAM,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAA,CAAe,CAAEN,GAAU,cAAY,+BAAsB,eAG7H,WAGPmB,EAAOQ,IAAI,CACV,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAACoB,KAAM5B,EAAOS,KAAK,CAACmB,IAAI,CAAEC,UAAW9B,EAAO0B,QAAQ,CAACjD,AA7EhD,iBA6EkEK,QAASA,IAE3F,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEiD,KAAK,QAAQzC,UAAU,gHACvBW,EAAO+B,OAAO,GAGnB,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,aAAW,OAAO1C,UAAU,yHAC9ByB,EAAQQ,GAAG,CAAC,AAACT,GACZ,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAEC1B,KAAM,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC0B,EAAO1B,IAAI,CAAEN,GAC3B,eAAcgC,EAAOE,SAAS,CAAG,YAASH,EAC1CvB,UAAW,CAAC,oIAAoI,EAAEwB,EAAOE,SAAS,CAAG,oCAAsC,8CAAA,CAA+C,UAEzPF,EAAOpB,KAAK,EALRoB,EAAOpB,KAAK,KAStB,AAACQ,EAAQO,IAAI,CAIVG,AAAiB,MAAXqB,MAAM,CACd,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE3C,UAAU,iCAAwB,0BAErC,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAIA,UAAU,oFACZsB,EAAMW,GAAG,CAAC,AAAC1C,GACV,CAAA,EAAA,EAAA,GAAA,EAACD,EAAAA,CAA2BC,MAAOA,EAAOC,QAASA,GAAnCD,EAAMQ,IAAI,KAR9B,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE0C,KAAK,QAAQzC,UAAU,kCACvBY,EAAQ8B,OAAO,KAa1B,CCnHA,IAAA,EAAA,EAAA,CAAA,CAAA,OAKe,eAAe,EAAmB,cAAE,CAAY,CAA2C,EACxG,IAAM,EAAa,MAAM,EACnB,EAAO,MAAM,CAAA,EAAA,EAAA,CAAA,AAAY,EAAC,CAAE,KAAM,EAAA,CAAoB,CAAE,aAAc,CAAW,GACvF,GAAkB,YAAY,CAA1B,EAAK,IAAI,CACX,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAc,CAAA,CAAA,GAExB,IAAM,EAA2B,WAApB,EAAW,IAAIrD,EAAqC,WAApB,EAAW,IAAI,CAAgB,EAAWE,IAAI,MAAGC,EAC9F,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAW,CAAA,CAAC,IAAK,EAAK,GAAG,CAAE,QAAS,EAAK,OAAO,CAAE,OAAO,2BACxD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAe,KAAM,EAAM,KAAM,KAGxC,iCAdkC,CAAE,MAAO,iBAAkB,oBCLtD,IAAMoD,EAAa,CAAA,EAD1B,AAC0B,EAD1B,CAAA,CAAA,OAC0B,uBAAA,AAAuB,EAC7C,WAAa,MAAM,AAAIC,MAAM,kOAAoO,EACjQ,4DACA","ignoreList":[2]}
|
|
1
|
+
{"version":3,"sources":["../../../../../web/features/outside-parties/ui/outside-parties.tsx","../../../../../web/app/%28bridge%29/outside-parties/page.tsx","../../../../../web/features/outside-parties/ui/switch-card.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/outside-parties/ui/switch-card.tsx%22%20%7D"],"sourcesContent":["import { inFleet } from '../../../lib/gateway-api/page-account';\nimport { readOf, type SignedInPage } from '../../../lib/gateway-api/page-api';\nimport { BUTTONS, COMPACT_CARD, SMALL_BUTTON } from '../../forms/ui/look';\nimport { countsOf, inListOrder, outsideAddressOf, PARTY_KINDS, PARTY_STATES, SIDES, type ListedParty, type Side } from '../party-kinds';\nimport { ADD_A2A_AGENT_PATH, ADD_A2A_CLIENT_PATH, ADD_SERVER_PATH, OUTSIDE_PARTIES_PATH, partyPath } from '../paths';\nimport { StatusBadge, Tag } from './status-badge';\nimport { SwitchCard } from './switch-card';\n\n/** The scopes that turn outside parties on or off, that add an outside MCP server (0056), and that add an outside A2A client (0060). */\nconst SWITCHING_SCOPE = 'fleet:network';\nconst ADDING_SCOPE = 'fleet:manage';\nconst APPROVING_SCOPE = 'gateway:approve';\n\nfunction PartyCard({ party, fleetId }: { party: ListedParty; fleetId: string }) {\n const { protocol, side } = PARTY_KINDS[party.kind];\n const where = outsideAddressOf(party);\n const state = PARTY_STATES[party.state];\n return (\n <a href={inFleet(partyPath(party.name), fleetId)} className={`${COMPACT_CARD} grid min-w-0 justify-items-start gap-2 hover:bg-accent`} data-testid=\"outside-parties-party\">\n <span className=\"flex flex-wrap items-center gap-2\">\n <strong>{party.name}</strong>\n <span className=\"contents max-sm:hidden\">\n <Tag>{protocol}</Tag> <Tag>{`${protocol} ${SIDES[side].one}`}</Tag>\n </span>\n </span>\n {where === null ? null : (\n <span className=\"max-w-full truncate font-mono text-code text-muted-foreground\" title={where}>\n {where}\n </span>\n )}\n <span className=\"flex flex-wrap items-center gap-2\">\n <StatusBadge tone={state.tone} label={state.label} look=\"flat\" />\n {party.ownerName === null ? null : <Tag>{party.ownerName}</Tag>}\n </span>\n </a>\n );\n}\n\n/**\n * The Outside parties page: how many the fleet has, whether they are on,\n * and each party, for every side or one. What the API refuses is said in\n * place of what it would show.\n */\nexport async function OutsideParties({ page, side }: { page: SignedInPage; side: Side | undefined }) {\n const { api, fleetId, scopes } = page;\n const [status, parties] = await Promise.all([readOf(api.outsideParties.status.query()), readOf(api.parties.list.query())]);\n const listed = parties.isOk ? parties.value : [];\n const counts = countsOf(listed);\n const shown = inListOrder(side === undefined ? listed : listed.filter((party) => PARTY_KINDS[party.kind].side === side));\n const filters = [\n { label: 'All', href: OUTSIDE_PARTIES_PATH, isCurrent: side === undefined },\n { label: 'Servers', href: `${OUTSIDE_PARTIES_PATH}?kind=server`, isCurrent: side === 'server' },\n { label: 'Clients', href: `${OUTSIDE_PARTIES_PATH}?kind=client`, isCurrent: side === 'client' },\n ];\n return (\n <div className=\"grid gap-4\">\n <div className=\"flex items-start justify-between gap-4\">\n <div>\n <h1 className=\"text-heading-touch font-semibold max-sm:sr-only\">Outside parties</h1>\n <p className=\"text-meta text-muted-foreground\" data-testid=\"outside-parties-counts\">\n {[\n `${String(counts.sides.server)} ${counts.sides.server === 1 ? SIDES.server.one : SIDES.server.many}`,\n `${String(counts.sides.client)} ${counts.sides.client === 1 ? SIDES.client.one : SIDES.client.many}`,\n ...counts.protocols.map(({ protocol, count }) => `${protocol} ${String(count)}`),\n ].join(' · ')}\n </p>\n </div>\n <div className=\"flex gap-2 max-sm:hidden\">\n {scopes.includes(APPROVING_SCOPE) ? (\n <a className={`${BUTTONS.secondary} ${SMALL_BUTTON}`} href={inFleet(ADD_A2A_CLIENT_PATH, fleetId)} data-testid=\"outside-parties-add-a2a-client\">\n Add A2A client\n </a>\n ) : null}\n {scopes.includes(APPROVING_SCOPE) ? (\n <a className={`${BUTTONS.secondary} ${SMALL_BUTTON}`} href={inFleet(ADD_A2A_AGENT_PATH, fleetId)} data-testid=\"outside-parties-add-a2a-agent\">\n Add A2A agent\n </a>\n ) : null}\n {scopes.includes(ADDING_SCOPE) ? (\n <a className={`${BUTTONS.primary} ${SMALL_BUTTON}`} href={inFleet(ADD_SERVER_PATH, fleetId)} data-testid=\"outside-parties-add\">\n Add server\n </a>\n ) : null}\n </div>\n </div>\n {status.isOk ? (\n <SwitchCard isOn={status.value.isOn} canSwitch={scopes.includes(SWITCHING_SCOPE)} fleetId={fleetId} />\n ) : (\n <p role=\"alert\" className=\"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg\">\n {status.refusal}\n </p>\n )}\n <nav aria-label=\"Show\" className=\"flex w-fit gap-0.5 rounded-md border border-border bg-muted p-0.75 max-sm:w-full max-sm:rounded-lg max-sm:p-1\">\n {filters.map((filter) => (\n <a\n key={filter.label}\n href={inFleet(filter.href, fleetId)}\n aria-current={filter.isCurrent ? 'page' : undefined}\n className={`inline-flex h-7 items-center justify-center rounded-sm px-2.5 text-meta font-medium max-sm:h-9 max-sm:flex-1 max-sm:text-body-touch ${filter.isCurrent ? 'bg-card text-foreground shadow-sm' : 'text-muted-foreground hover:text-foreground'}`}\n >\n {filter.label}\n </a>\n ))}\n </nav>\n {!parties.isOk ? (\n <p role=\"alert\" className=\"text-tone-attention-fg\">\n {parties.refusal}\n </p>\n ) : shown.length === 0 ? (\n <p className=\"text-muted-foreground\">No outside party yet.</p>\n ) : (\n <div className=\"grid gap-2.5 sm:grid-cols-[repeat(auto-fill,minmax(22rem,1fr))] sm:gap-3\">\n {shown.map((party) => (\n <PartyCard key={party.name} party={party} fleetId={fleetId} />\n ))}\n </div>\n )}\n </div>\n );\n}\n","import { OutsideParties } from '../../../features/outside-parties/ui/outside-parties';\nimport { OUTSIDE_PARTIES_PATH } from '../../../features/outside-parties/paths';\nimport { BridgeNoSignIn, BridgeShell } from '../../../features/bridge/state/bridge-shell';\nimport { signedInPage, type SearchParams } from '../../../lib/gateway-api/page-api';\n\nexport default async function OutsidePartiesPage({ searchParams }: { searchParams: Promise<SearchParams> }) {\n const parameters = await searchParams;\n const page = await signedInPage({ path: OUTSIDE_PARTIES_PATH, searchParams: parameters });\n if (page.kind === 'noSignIn') {\n return <BridgeNoSignIn />;\n }\n const side = parameters.kind === 'server' || parameters.kind === 'client' ? parameters.kind : undefined;\n return (\n <BridgeShell api={page.api} fleetId={page.fleetId} screen=\"outside-parties\">\n <OutsideParties page={page} side={side} />\n </BridgeShell>\n );\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const SwitchCard = registerClientReference(\n function() { throw new Error(\"Attempted to call SwitchCard() from the server but SwitchCard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/outside-parties/ui/switch-card.tsx\",\n \"SwitchCard\",\n);\n"],"names":["SWITCHING_SCOPE","ADDING_SCOPE","APPROVING_SCOPE","PartyCard","party","fleetId","protocol","side","kind","where","state","href","name","className","one","title","tone","label","look","ownerName","OutsideParties","page","api","scopes","status","parties","Promise","all","outsideParties","query","list","listed","isOk","value","counts","shown","undefined","filter","filters","isCurrent","String","sides","server","many","client","protocols","map","count","join","includes","secondary","primary","isOn","canSwitch","role","refusal","length","SwitchCard","Error"],"mappings":"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","ignoreList":[2]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[[51785,a=>{var b=a.i(7997),c=a.i(49144),d=a.i(24571);function e({reason:a}){return(0,b.jsxs)("section",{className:c.r,"data-testid":"authorize-failed",children:[(0,b.jsx)("h1",{className:"text-heading font-semibold",children:"Connect an MCP client"}),(0,b.jsx)("p",{role:"alert","data-testid":"authorize-failed-reason",className:"mt-2 text-muted-foreground",children:(0,d.U)(a)})]})}async function f({searchParams:a}){let{reason:c}=await a;return(0,b.jsx)(e,{reason:"string"==typeof c?c:void 0})}a.s(["default",0,f
|
|
1
|
+
module.exports=[[51785,a=>{var b=a.i(7997),c=a.i(49144),d=a.i(24571);function e({reason:a}){return(0,b.jsxs)("section",{className:c.r,"data-testid":"authorize-failed",children:[(0,b.jsx)("h1",{className:"text-heading font-semibold",children:"Connect an MCP client"}),(0,b.jsx)("p",{role:"alert","data-testid":"authorize-failed-reason",className:"mt-2 text-muted-foreground",children:(0,d.U)(a)})]})}async function f({searchParams:a}){let{reason:c}=await a;return(0,b.jsx)(e,{reason:"string"==typeof c?c:void 0})}a.s(["default",0,f],51785)},24571,a=>{let b="Start again from your MCP client.",c=new Map([["invalidClient",`The gateway does not know this MCP client, or the address it asks to be sent back to. ${b}`],["noPick","Pick on the page whether to sign in as yourself or to ask for access for the client."],["unknownSignIn",`This sign-in is unknown, or took over 10 minutes. ${b}`],["otherBrowser",`This sign-in was started in another browser, so it is not yours to finish. ${b}`],["fleetNotServed","This gateway does not serve the fleet you signed in to."],["outsidePartiesOff","Your fleet's outside parties are off, so no MCP client can ask for access. Sign in as yourself instead, or ask whoever runs your fleet."],["pagasaeRefused",`The sign-in service did not sign you in. ${b}`],["unknownWaiting",`This request is unknown, or ended long ago. ${b}`],["otherBrowserWaiting",`This request was made in another browser, so it is not yours to follow. ${b}`],["noSignIn","This gateway signs no one in, so no MCP client can connect to it: its operator sets pagasae first."]]),d=`The connection did not go through. ${b}`;a.s(["e",0,"/authorize/waiting","U",0,function(a){return(void 0===a?void 0:c.get(a))??d},"Q",0,function(a){return Object.entries(a).flatMap(([a,b])=>"string"==typeof b&&"holder"!==a?[[a,b]]:[])}])},49144,a=>{let b="inline-flex h-9 items-center justify-center gap-2 rounded-md px-4 font-medium disabled:opacity-60",c={primary:`${b} bg-primary text-primary-foreground hover:bg-primary-hover`,secondary:`${b} border border-border bg-card hover:bg-accent`,destructive:`${b} bg-destructive text-destructive-foreground`};a.s(["x",0,c,"r",0,"rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm","E",0,"rounded-lg border border-border bg-card p-3 text-card-foreground","w",0,"h-9 w-full rounded-md border border-input bg-background px-3 font-mono text-code","z",0,"grid gap-1","d",0,"h-7 px-3 text-meta"])}],27794,function(a){a.n(a.i(51785))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=web_1rmcjkj1pjylk._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../web/features/authorize/ui/authorize-failed.tsx","../../../../../web/app/authorize/failed/page.tsx","../../../../../web/features/authorize/services/authorize.ts","../../../../../web/features/forms/ui/look.ts"],"sourcesContent":["import { CARD } from '../../forms/ui/look';\nimport { failedReasonText } from '../services/authorize';\n\n/** A browser that got nowhere connecting an MCP client: why, as the gateway named it. */\nexport function AuthorizeFailed({ reason }: { reason: string | undefined }) {\n return (\n <section className={CARD} data-testid=\"authorize-failed\">\n <h1 className=\"text-heading font-semibold\">Connect an MCP client</h1>\n <p role=\"alert\" data-testid=\"authorize-failed-reason\" className=\"mt-2 text-muted-foreground\">\n {failedReasonText(reason)}\n </p>\n </section>\n );\n}\n","import
|
|
1
|
+
{"version":3,"sources":["../../../../../web/features/authorize/ui/authorize-failed.tsx","../../../../../web/app/authorize/failed/page.tsx","../../../../../web/features/authorize/services/authorize.ts","../../../../../web/features/forms/ui/look.ts"],"sourcesContent":["import { CARD } from '../../forms/ui/look';\nimport { failedReasonText } from '../services/authorize';\n\n/** A browser that got nowhere connecting an MCP client: why, as the gateway named it. */\nexport function AuthorizeFailed({ reason }: { reason: string | undefined }) {\n return (\n <section className={CARD} data-testid=\"authorize-failed\">\n <h1 className=\"text-heading font-semibold\">Connect an MCP client</h1>\n <p role=\"alert\" data-testid=\"authorize-failed-reason\" className=\"mt-2 text-muted-foreground\">\n {failedReasonText(reason)}\n </p>\n </section>\n );\n}\n","import { AuthorizeFailed } from '../../../features/authorize/ui/authorize-failed';\n\nexport default async function AuthorizeFailedPage({ searchParams }: { searchParams: Promise<Record<string, string | string[] | undefined>> }) {\n const { reason } = await searchParams;\n return <AuthorizeFailed reason={typeof reason === 'string' ? reason : undefined} />;\n}\n","/**\n * What the authorize pages work out: the time a request waiting for\n * approval has left, why a browser got nowhere connecting an MCP client,\n * and the authorization request the pick page carries on to the sign-in.\n */\nimport type { SearchParams } from '../../../lib/gateway-api/page-api';\n\nconst MS_PER_HOUR = 3_600_000;\nconst HOURS_PER_DAY = 24;\n\n/** The time a request has left, in days and hours, as the waiting page's ring shows it. */\nexport function timeLeft(expiresAt: Date, now: Date): string {\n const hours = Math.max(0, Math.floor((expiresAt.getTime() - now.getTime()) / MS_PER_HOUR));\n return `${String(Math.floor(hours / HOURS_PER_DAY))} d ${String(hours % HOURS_PER_DAY)} h`;\n}\n\nconst START_AGAIN = 'Start again from your MCP client.';\n\n/** Why a browser got nowhere, as the gateway's authorize doors name it (src/adapters/http/oauth-routes.ts). */\nconst REASONS = new Map([\n ['invalidClient', `The gateway does not know this MCP client, or the address it asks to be sent back to. ${START_AGAIN}`],\n ['noPick', 'Pick on the page whether to sign in as yourself or to ask for access for the client.'],\n ['unknownSignIn', `This sign-in is unknown, or took over 10 minutes. ${START_AGAIN}`],\n ['otherBrowser', `This sign-in was started in another browser, so it is not yours to finish. ${START_AGAIN}`],\n ['fleetNotServed', 'This gateway does not serve the fleet you signed in to.'],\n ['outsidePartiesOff', \"Your fleet's outside parties are off, so no MCP client can ask for access. Sign in as yourself instead, or ask whoever runs your fleet.\"],\n ['pagasaeRefused', `The sign-in service did not sign you in. ${START_AGAIN}`],\n ['unknownWaiting', `This request is unknown, or ended long ago. ${START_AGAIN}`],\n ['otherBrowserWaiting', `This request was made in another browser, so it is not yours to follow. ${START_AGAIN}`],\n ['noSignIn', 'This gateway signs no one in, so no MCP client can connect to it: its operator sets pagasae first.'],\n]);\n\nconst UNKNOWN_REASON = `The connection did not go through. ${START_AGAIN}`;\n\nexport function failedReasonText(reason: string | undefined): string {\n return (reason === undefined ? undefined : REASONS.get(reason)) ?? UNKNOWN_REASON;\n}\n\n/** The gateway's waiting address, which sends the browser on once its request no longer waits. */\nexport const WAITING_DOOR = '/authorize/waiting';\n\n/** The pick the page adds to the request, as the sign-in door reads it. */\nexport const HOLDER_FIELD = 'holder';\n\n/** The door that starts the sign-in through pagasae for the pick. */\nexport const SIGN_IN_DOOR = '/authorize/sign-in';\n\n/** Where a pressed pick sends the browser: the sign-in door, with the request as it came and the pick. */\nexport function signInAddressOf(fields: readonly [string, string][], holder: string): string {\n return `${SIGN_IN_DOOR}?${new URLSearchParams([...fields, [HOLDER_FIELD, holder]]).toString()}`;\n}\n\n/** The request's parameters the browser sent once each, without a pick: the page adds its own. */\nexport function pickFieldsOf(searchParams: SearchParams): [string, string][] {\n return Object.entries(searchParams).flatMap(([name, value]) => (typeof value === 'string' && name !== HOLDER_FIELD ? [[name, value]] : []));\n}\n","/** The classes the pages share, on the design tokens: a card and the button kinds. */\nexport const CARD = 'rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm';\n\n/** A card in the Compact look, as Bridge's pages draw it (design/bridge-navigation): tighter, flat. */\nexport const COMPACT_CARD = 'rounded-lg border border-border bg-card p-3 text-card-foreground';\n\nconst BUTTON = 'inline-flex h-9 items-center justify-center gap-2 rounded-md px-4 font-medium disabled:opacity-60';\n\nexport const BUTTONS = {\n primary: `${BUTTON} bg-primary text-primary-foreground hover:bg-primary-hover`,\n secondary: `${BUTTON} border border-border bg-card hover:bg-accent`,\n destructive: `${BUTTON} bg-destructive text-destructive-foreground`,\n} as const;\n\n/** A small button in the Compact look, beside a page's title. */\nexport const SMALL_BUTTON = 'h-7 px-3 text-meta';\n\nexport type ButtonKind = keyof typeof BUTTONS;\n\nexport const INPUT = 'h-9 w-full rounded-md border border-input bg-background px-3 font-mono text-code';\n\nexport const LABEL = 'grid gap-1';\n\n/** A select in the body font, its browser chevron replaced by the design system's (design/bridge-navigation). */\nexport const SELECT = 'h-9 w-full appearance-none rounded-md border border-input bg-background pr-8 pl-3';\n"],"names":["AuthorizeFailed","reason","className","role","MS_PER_HOUR","HOURS_PER_DAY","timeLeft","expiresAt","now","hours","Math","max","floor","getTime","String","START_AGAIN","REASONS","Map","UNKNOWN_REASON","failedReasonText","undefined","get","WAITING_DOOR","HOLDER_FIELD","SIGN_IN_DOOR","signInAddressOf","fields","holder","URLSearchParams","toString","pickFieldsOf","searchParams","Object","entries","flatMap","name","value","CARD","COMPACT_CARD","BUTTON","BUTTONS","primary","secondary","destructive","SMALL_BUTTON","INPUT","LABEL","SELECT"],"mappings":"2CAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAGO,SAASA,EAAgB,QAAEC,CAAM,CAAkC,EACxE,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,UAAA,CAAQC,UAAW,EAAA,CAAI,CAAE,cAAY,6BACpC,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAGA,UAAU,sCAA6B,0BAC3C,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEC,KAAK,QAAQ,cAAY,0BAA0BD,UAAU,sCAC7D,CAAA,EAAA,EAAA,CAAgB,AAAhB,EAAiBD,OAI1B,CCXe,eAAe,EAAoB,cAAE,CAAY,CAA4E,EAC1I,GAAM,QAAE,CAAM,CAAE,CAAG,MAAM,EACzB,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAgBC,OAA0B,UAAlB,OAAO,EAAsB,OAAS,GACxE,uCCWA,IAAMa,EAAc,oCAGdC,EAAU,IAAIC,IAAI,CACtB,CAAC,gBAAiB,CAAC,sFAAsF,EAAEF,EAAAA,CAAa,CAAC,CACzH,CAAC,SAAU,uFAAuF,CAClG,CAAC,gBAAiB,CAAC,kDAAkD,EAAEA,EAAAA,CAAa,CAAC,CACrF,CAAC,eAAgB,CAAC,2EAA2E,EAAEA,EAAAA,CAAa,CAAC,CAC7G,CAAC,iBAAkB,0DAA0D,CAC7E,CAAC,oBAAqB,0IAA0I,CAChK,CAAC,iBAAkB,CAAC,yCAAyC,EAAEA,EAAAA,CAAa,CAAC,CAC7E,CAAC,iBAAkB,CAAC,4CAA4C,EAAEA,EAAAA,CAAa,CAAC,CAChF,CAAC,sBAAuB,CAAC,wEAAwE,EAAEA,EAAAA,CAAa,CAAC,CACjH,CAAC,WAAY,qGAAqG,CACnH,EAEKG,EAAiB,CAAC,mCAAmC,EAAEH,EAAAA,CAAa,YAO9C,2BALrB,SAASI,AAAiBlB,CAA0B,EACzD,MAAO,MAAYmB,IAAXnB,OAAuBmB,EAAYJ,EAAQK,GAAG,CAACpB,EAAAA,CAAO,EAAKiB,CACrE,QAiBO,SAASY,AAAaC,CAA0B,EACrD,OAAOC,OAAOC,OAAO,CAACF,GAAcG,OAAO,CAAC,CAAC,CAACC,EAAMC,EAAM,GAAuB,UAAjB,OAAOA,GAZ7C,WAYmED,EAAwB,CAAC,CAACA,EAAMC,EAAM,CAA7Bb,AAA8B,CAAG,EAAE,CAC3I,eCjDA,IAAMgB,EAAS,oGAEFC,EAAU,CACrBC,QAAS,CAAA,EAAGF,EAAO,0DAA0D,CAAC,CAC9EG,UAAW,CAAA,EAAGH,EAAO,6CAA6C,CAAC,CACnEI,YAAa,CAAA,EAAGJ,EAAO,2CAA2C,CAAC,AACrE,qBAXoB,mFAGQ,yEAeP,yFAEA,mBANO"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[4350,a=>{var b=a.i(70043),c=a.i(37936),d=a.i(18558),e=a.i(66283),f=a.i(1324),g=a.i(72913);async function h(a,b){let c=await (0,e.z)((0,f.v)(b,f.H)),h="true"===(0,f.v)(b,"isOn");try{await c.outsideParties.set.mutate({isOn:h,isOpenNetworkConfirmed:"true"===(0,f.v)(b,"isOpenNetworkConfirmed")})}catch(b){let a=(0,e.s)(b);return"PRECONDITION_FAILED"===(0,e.U)(b)?{kind:"openNetwork",message:a}:{kind:"refused",message:a}}return(0,d.revalidatePath)(g.$),{kind:"done",message:h?"Outside parties are on":"Outside parties are off"}}(0,a.i(13095).ensureServerEntryExports)([h]),(0,c.registerServerReference)(h,"
|
|
1
|
+
(()=>{"use strict";module.exports=[4350,a=>{var b=a.i(70043),c=a.i(37936),d=a.i(18558),e=a.i(66283),f=a.i(1324),g=a.i(72913);async function h(a,b){let c=await (0,e.z)((0,f.v)(b,f.H)),h="true"===(0,f.v)(b,"isOn");try{await c.outsideParties.set.mutate({isOn:h,isOpenNetworkConfirmed:"true"===(0,f.v)(b,"isOpenNetworkConfirmed")})}catch(b){let a=(0,e.s)(b);return"PRECONDITION_FAILED"===(0,e.U)(b)?{kind:"openNetwork",message:a}:{kind:"refused",message:a}}return(0,d.revalidatePath)(g.$),{kind:"done",message:h?"Outside parties are on":"Outside parties are off"}}(0,a.i(13095).ensureServerEntryExports)([h]),(0,c.registerServerReference)(h,"6099487a2eba4cc2281faa754b3bf368c4450a7919",null);var i=a.i(43889);a.s(["4028a841e3a56738319e16ecad460936d256385103",()=>b.f,"4068e943f9f900961504f9d945c882ab621f07a915",()=>i.u,"40dfb3b0fea5008368e03e2b6748a198be97757025",()=>i.e,"6099487a2eba4cc2281faa754b3bf368c4450a7919",0,h],4350)},29660,a=>{a.s(["H",0,"/bridge/basket","a",0,"/bridge/done","i",0,"/bridge/messages","P",0,"/bridge","j",0,"/bridge/settings/routing","T",0,"/bridge/settings","C",0,"/bridge/stay-aware"])},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},72913,a=>{let b="/outside-parties",c=`${b}/add`,d=`${b}/add-a2a-client`,e=`${b}/add-a2a-agent`;a.s(["u",0,e,"Z",0,d,"y",0,c,"$",0,b,"N",0,function(a,c){return`${b}/${encodeURIComponent(a)}${void 0===c?"":`/${c}`}`}])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=web_1vvrekkq5mirt._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/outside-parties/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/outside-parties/actions.ts","../../../../../web/features/bridge/paths.ts","../../../../../web/features/forms/form-state.ts","../../../../../web/features/outside-parties/paths.ts"],"sourcesContent":["export {setTheme as '
|
|
1
|
+
{"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/outside-parties/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/outside-parties/actions.ts","../../../../../web/features/bridge/paths.ts","../../../../../web/features/forms/form-state.ts","../../../../../web/features/outside-parties/paths.ts"],"sourcesContent":["export {setTheme as '4028a841e3a56738319e16ecad460936d256385103'} from 'ACTIONS_MODULE0'\nexport {switchOutsideParties as '6099487a2eba4cc2281faa754b3bf368c4450a7919'} from 'ACTIONS_MODULE1'\nexport {readSendTo as '40dfb3b0fea5008368e03e2b6748a198be97757025'} from 'ACTIONS_MODULE2'\nexport {sendShipMessage as '4068e943f9f900961504f9d945c882ab621f07a915'} from 'ACTIONS_MODULE2'\n","'use server';\n\n/**\n * The Outside parties page's form: turning the fleet's outside parties on\n * or off (interop I-3, decision 0056), as the account signed in. On in a\n * fleet with no network rules is refused with the API's warning until the\n * account confirms it.\n */\nimport { revalidatePath } from 'next/cache';\n\nimport { refusalCodeOf, refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { FLEET_FIELD, fieldOf, type FormState } from '../forms/form-state';\nimport { OUTSIDE_PARTIES_PATH } from './paths';\n\nexport async function switchOutsideParties(_previous: FormState, form: FormData): Promise<FormState> {\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n const isOn = fieldOf(form, 'isOn') === 'true';\n try {\n await api.outsideParties.set.mutate({ isOn, isOpenNetworkConfirmed: fieldOf(form, 'isOpenNetworkConfirmed') === 'true' });\n } catch (error) {\n const message = refusalMessageOf(error);\n return refusalCodeOf(error) === 'PRECONDITION_FAILED' ? { kind: 'openNetwork', message } : { kind: 'refused', message };\n }\n revalidatePath(OUTSIDE_PARTIES_PATH);\n return { kind: 'done', message: isOn ? 'Outside parties are on' : 'Outside parties are off' };\n}\n","/** Bridge's pages (docs/design/bridge): home, the basket, Stay aware, Messages, Done, Your fleet, Bridge's settings and where things show; a module of their own, so a page in the browser names them too. */\nexport const BRIDGE_PATH = '/bridge';\nexport const BRIDGE_BASKET_PATH = '/bridge/basket';\nexport const BRIDGE_STAY_AWARE_PATH = '/bridge/stay-aware';\nexport const BRIDGE_MESSAGES_PATH = '/bridge/messages';\nexport const BRIDGE_DONE_PATH = '/bridge/done';\nexport const BRIDGE_SETTINGS_PATH = '/bridge/settings';\nexport const BRIDGE_ROUTING_PATH = '/bridge/settings/routing';\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","/** The outside parties' pages. */\nexport const OUTSIDE_PARTIES_PATH = '/outside-parties';\n\nexport const ADD_SERVER_PATH = `${OUTSIDE_PARTIES_PATH}/add`;\n\nexport const ADD_A2A_CLIENT_PATH = `${OUTSIDE_PARTIES_PATH}/add-a2a-client`;\n\nexport const ADD_A2A_AGENT_PATH = `${OUTSIDE_PARTIES_PATH}/add-a2a-agent`;\n\n/** One outside party's page, or one of its own: changing it, retiring it. */\nexport function partyPath(name: string, action?: 'change' | 'retire'): string {\n return `${OUTSIDE_PARTIES_PATH}/${encodeURIComponent(name)}${action === undefined ? '' : `/${action}`}`;\n}\n"],"names":["switchOutsideParties","_previous","form","api","isOn","outsideParties","set","mutate","isOpenNetworkConfirmed","error","message","kind","BRIDGE_PATH","BRIDGE_BASKET_PATH","BRIDGE_STAY_AWARE_PATH","BRIDGE_MESSAGES_PATH","BRIDGE_DONE_PATH","BRIDGE_SETTINGS_PATH","BRIDGE_ROUTING_PATH","IDLE","fieldOf","name","value","get","fieldsOf","Object","fromEntries","entries","flatMap","FLEET_FIELD","OUTSIDE_PARTIES_PATH","ADD_SERVER_PATH","ADD_A2A_CLIENT_PATH","ADD_A2A_AGENT_PATH","partyPath","action","encodeURIComponent","undefined"],"mappings":"4CAAA,IAAA,EAAA,EAAA,CAAA,CAAA,oBCQA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAEO,eAAeA,EAAqBC,CAAoB,CAAEC,CAAc,EAC7E,IAAMC,EAAM,MAAM,CAAA,EAAA,EAAA,CAAA,AAAU,EAAC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACD,EAAM,EAAA,CAAW,GAChDE,EAAiC,SAA1B,CAAA,EAAA,EAAA,CAAA,AAAO,EAACF,EAAM,QAC3B,GAAI,CACF,MAAMC,EAAIE,cAAc,CAACC,GAAG,CAACC,MAAM,CAAC,MAAEH,EAAMI,uBAAwB,AAA4C,SAA5C,CAAA,EAAA,EAAA,CAAA,AAAO,EAACN,EAAM,yBAAqC,EACzH,CAAE,MAAOO,EAAO,CACd,IAAMC,EAAU,CAAA,EAAA,EAAA,CAAA,AAAgB,EAACD,GACjC,MAAgC,wBAAzB,CAAA,EAAA,EAAA,CAAA,AAAa,EAACA,GAAmC,CAAEE,KAAM,sBAAeD,CAAQ,EAAI,CAAEC,KAAM,kBAAWD,CAAQ,CACxH,CAEA,MADA,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAA,CAAoB,EAC5B,CAAEC,KAAM,OAAQD,QAASN,EAAO,yBAA2B,yBAA0B,CAC9F,0CAXsBJ,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA,MDZtB,IAAA,EAAA,EAAA,CAAA,CAAA,yPEAkC,uBAGF,qBADI,yBAHT,gBAMQ,iCADC,yBAHE,4CCsBX,cAXpB,SAASoB,AAAQlB,CAAc,CAAEmB,CAAY,EAClD,IAAMC,EAAQpB,EAAKqB,GAAG,CAACF,GACvB,MAAO,AAAiB,iBAAVC,EAAqBA,EAAQ,EAC7C,QAGO,SAASE,AAAStB,CAAc,EACrC,OAAOuB,OAAOC,WAAW,CAAC,IAAIxB,EAAKyB,OAAO,GAAG,CAACC,OAAO,CAAC,CAAC,CAACP,EAAMC,EAAM,GAAuB,UAAjB,OAAOA,EAAqB,CAAC,CAACD,EAAMC,EAAM,CAAC,CAAG,EAAE,EAC5H,eCrBO,IAAMQ,EAAuB,mBAEvBC,EAAkB,CAAA,EAAGD,EAAqB,IAAI,CAAC,CAE/CE,EAAsB,CAAA,EAAGF,EAAqB,eAAe,CAAC,CAE9DG,EAAqB,CAAA,EAAGH,EAAqB,cAAc,CAAC,4CAGlE,SAASI,AAAUb,CAAY,CAAEc,CAA4B,EAClE,MAAO,CAAA,EAAGL,EAAqB,CAAC,EAAEM,mBAAmBf,GAAAA,OAAmBgB,IAAXF,EAAuB,GAAK,CAAC,CAAC,EAAEA,EAAAA,CAAQ,CAAA,CAAE,AACzG"}
|