@aeolus-fleet/gateway 0.30.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/dist/adapters/fleet/core-version.d.ts +1 -1
  2. package/dist/adapters/fleet/core-version.js +1 -1
  3. package/dist/adapters/fleet/rest-fleet-door.d.ts +2 -0
  4. package/dist/adapters/fleet/rest-fleet-door.js +37 -2
  5. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  6. package/dist/adapters/http/person-tools.d.ts +4 -7
  7. package/dist/adapters/http/person-tools.js +75 -10
  8. package/dist/adapters/http/person-tools.js.map +1 -1
  9. package/dist/adapters/trpc/router.d.ts +63 -0
  10. package/dist/adapters/trpc/router.js +32 -0
  11. package/dist/adapters/trpc/router.js.map +1 -1
  12. package/dist/app.js +4 -0
  13. package/dist/app.js.map +1 -1
  14. package/dist/core/meetings/change-own-mic.d.ts +24 -0
  15. package/dist/core/meetings/change-own-mic.js +21 -0
  16. package/dist/core/meetings/change-own-mic.js.map +1 -0
  17. package/dist/core/meetings/mic-standing.d.ts +18 -0
  18. package/dist/core/meetings/mic-standing.js +11 -0
  19. package/dist/core/meetings/mic-standing.js.map +1 -0
  20. package/dist/core/meetings/ports.d.ts +70 -0
  21. package/dist/core/meetings/ports.js +2 -0
  22. package/dist/core/meetings/ports.js.map +1 -0
  23. package/dist/core/meetings/read-meeting.d.ts +30 -0
  24. package/dist/core/meetings/read-meeting.js +26 -0
  25. package/dist/core/meetings/read-meeting.js.map +1 -0
  26. package/dist/core/people/inbox-entry.d.ts +2 -2
  27. package/dist/core/people/inbox-entry.js +9 -2
  28. package/dist/core/people/inbox-entry.js.map +1 -1
  29. package/dist/core/people/open-delivery.d.ts +3 -1
  30. package/dist/core/people/open-delivery.js +1 -1
  31. package/dist/core/people/open-delivery.js.map +1 -1
  32. package/dist/core/people/ports.d.ts +7 -2
  33. package/dist/core/shared/errors.d.ts +1 -1
  34. package/dist/core/shared/errors.js.map +1 -1
  35. package/package.json +3 -3
  36. package/web/.next/BUILD_ID +1 -1
  37. package/web/.next/app-path-routes-manifest.json +1 -0
  38. package/web/.next/build-manifest.json +15 -3
  39. package/web/.next/diagnostics/route-bundle-stats.json +41 -25
  40. package/web/.next/fallback-build-manifest.json +3 -3
  41. package/web/.next/prerender-manifest.json +3 -3
  42. package/web/.next/routes-manifest.json +8 -0
  43. package/web/.next/server/app/(console)/meetings/[meetingId]/page/app-paths-manifest.json +3 -0
  44. package/web/.next/server/app/(console)/meetings/[meetingId]/page/build-manifest.json +23 -0
  45. package/web/.next/server/app/(console)/meetings/[meetingId]/page/next-font-manifest.json +11 -0
  46. package/web/.next/server/app/(console)/meetings/[meetingId]/page/react-loadable-manifest.json +1 -0
  47. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +35 -0
  48. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +21 -0
  49. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.map +5 -0
  50. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -0
  51. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +3 -0
  52. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +9 -9
  53. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  54. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +3 -3
  56. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +9 -9
  59. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  60. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +5 -5
  62. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  63. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
  65. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  66. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
  68. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  69. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  71. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  72. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/(console)/overview/changes/route.js.nft.json +1 -1
  74. package/web/.next/server/app/(console)/overview/focus/route.js.nft.json +1 -1
  75. package/web/.next/server/app/(console)/overview/page/server-reference-manifest.json +7 -7
  76. package/web/.next/server/app/(console)/overview/page.js +3 -3
  77. package/web/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  78. package/web/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  79. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/server-reference-manifest.json +2 -2
  80. package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js.nft.json +1 -1
  81. package/web/.next/server/app/(console)/overview/requests/[requestId]/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +8 -8
  83. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  84. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  85. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  86. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  87. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  88. package/web/.next/server/app/_global-error.html +1 -1
  89. package/web/.next/server/app/_global-error.rsc +1 -1
  90. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  91. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  92. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  93. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  94. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  95. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  97. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  98. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  99. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  100. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  101. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  103. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  104. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  105. package/web/.next/server/app-paths-manifest.json +1 -0
  106. package/web/.next/server/chunks/[root-of-the-server]__0ykc8bq_c06a1._.js +10 -10
  107. package/web/.next/server/chunks/[root-of-the-server]__0ykc8bq_c06a1._.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
  109. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
  111. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
  113. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
  115. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
  117. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js +1 -1
  119. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-og0bl8lr2xq._.js +1 -1
  121. package/web/.next/server/chunks/ssr/[root-of-the-server]__0-og0bl8lr2xq._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__00erqdm9cmhh7._.js +3 -0
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__00erqdm9cmhh7._.js.map +1 -0
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n2us07jk-78w._.js +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +4 -0
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -0
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__1dtyycvqa6uht._.js +1 -1
  130. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  131. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +2 -2
  133. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/_0bhvvyz0q_0ja._.js +1 -1
  135. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  136. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  138. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  139. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
  140. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  141. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  142. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  143. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  144. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20d8hq6wsqwh_.js +3 -0
  145. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_20d8hq6wsqwh_.js.map +1 -0
  146. package/web/.next/server/chunks/ssr/web_0-ufi2al5ubig._.js +1 -1
  147. package/web/.next/server/chunks/ssr/web_0-ufi2al5ubig._.js.map +1 -1
  148. package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js +3 -0
  149. package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js.map +1 -0
  150. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
  151. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
  152. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js +1 -1
  153. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/web_features_0i_kwiszuiqcp._.js +1 -1
  155. package/web/.next/server/chunks/ssr/web_features_0i_kwiszuiqcp._.js.map +1 -1
  156. package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js +3 -0
  157. package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js.map +1 -0
  158. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  159. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  160. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  161. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  162. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  163. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  164. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  165. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  166. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +3 -0
  167. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -0
  168. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  169. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  170. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  171. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +1 -1
  172. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +1 -1
  173. package/web/.next/server/chunks/ssr/web_features_overview_state_1wuk95dw2_whp._.js +1 -1
  174. package/web/.next/server/chunks/ssr/web_features_overview_state_1wuk95dw2_whp._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +1 -1
  176. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +1 -1
  177. package/web/.next/server/chunks/ssr/web_features_overview_ui_action-button_tsx_14-5f45xbzbi6._.js +3 -0
  178. package/web/.next/server/chunks/ssr/web_features_overview_ui_action-button_tsx_14-5f45xbzbi6._.js.map +1 -0
  179. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  180. package/web/.next/server/middleware-build-manifest.js +15 -3
  181. package/web/.next/server/next-font-manifest.js +1 -1
  182. package/web/.next/server/next-font-manifest.json +4 -0
  183. package/web/.next/server/pages/500.html +1 -1
  184. package/web/.next/server/preview-props.json +3 -3
  185. package/web/.next/server/server-reference-manifest.js +1 -1
  186. package/web/.next/server/server-reference-manifest.json +51 -27
  187. package/web/.next/static/chunks/183mifyxtyab5.css +3 -0
  188. package/web/.next/static/chunks/{0j84uiid6fsim.js → 1bnlc-p1_cm01.js} +1 -1
  189. package/web/.next/static/chunks/{00njqo86bx2kb.js → 1juj2_tl8d16x.js} +1 -1
  190. package/web/.next/static/chunks/{3apnqdh48__yw.js → 1pafc2gfswboo.js} +1 -1
  191. package/web/.next/static/chunks/{3okm5g88ig1l3.js → 2-t4g6oq6tjkg.js} +1 -1
  192. package/web/.next/static/chunks/{2_41h3v090ur9.js → 21s2_ccrw90ok.js} +1 -1
  193. package/web/.next/static/chunks/2hsi-sahla2aj.js +1 -0
  194. package/web/.next/static/chunks/{23ud2e13dn8f4.js → 2l27ty2dy2pb4.js} +1 -1
  195. package/web/.next/static/chunks/{1aa1d23q1vokr.js → 2n2qsek2y94y5.js} +1 -1
  196. package/web/.next/static/chunks/{31vy122d9fvme.js → 3o8h4o3utbvgc.js} +1 -1
  197. package/web/.next/static/chunks/3tss77vu57zju.js +1 -0
  198. package/web/.next/trace +1 -1
  199. package/web/.next/trace-build +1 -1
  200. package/web/.next/types/routes.d.ts +2 -1
  201. package/web/.next/types/validator.ts +17 -0
  202. package/web/.next/static/chunks/047i2x2j--shk.css +0 -3
  203. package/web/.next/static/chunks/0g4cpamshfwmn.js +0 -1
  204. /package/web/.next/static/{Az1CqrzgGHMZVR4nw9717 → 3whgLnRJ9iJe_25h6KGzQ}/_buildManifest.js +0 -0
  205. /package/web/.next/static/{Az1CqrzgGHMZVR4nw9717 → 3whgLnRJ9iJe_25h6KGzQ}/_clientMiddlewareManifest.js +0 -0
  206. /package/web/.next/static/{Az1CqrzgGHMZVR4nw9717 → 3whgLnRJ9iJe_25h6KGzQ}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
1
  (()=>{"use strict";module.exports=[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},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]]:[]))}])},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae",null),a.s(["f",0,e])},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}`}`}])},18379,a=>{var b=a.i(29517);let c=["messages:send","messages:receive"],d="scope:",e="scopesShown";a.s(["_",0,c,"e",0,e,"u",0,d,"t",0,function(a,f){let g,{form:h,scopes:i}=f,j=h.ownerShipId?.trim();if(void 0!==j&&j!==a.ownerShipId){let a=(0,b.f)("ship").safeParse(j);if(!a.success)return{kind:"refused",message:"The owner's ship id is not a ship id (shp_...)"};g=a.data}let k=void 0===g?{}:{ownerShipId:g},l=a.scopes;if("true"!==h[e]||null===l)return{kind:"changes",...k,grant:[],revoke:[]};let m=i.filter(a=>!c.includes(a)),n=a=>void 0!==h[`${d}${a}`];return{kind:"changes",...k,grant:m.filter(a=>n(a)&&!l.includes(a)),revoke:m.filter(a=>!n(a)&&l.includes(a))}}])}]})();
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},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]]:[]))}])},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40902cb84b7eb130b75de3b2f47a2b153040b66213",null),a.s(["f",0,e])},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}`}`}])},18379,a=>{var b=a.i(29517);let c=["messages:send","messages:receive"],d="scope:",e="scopesShown";a.s(["_",0,c,"e",0,e,"u",0,d,"t",0,function(a,f){let g,{form:h,scopes:i}=f,j=h.ownerShipId?.trim();if(void 0!==j&&j!==a.ownerShipId){let a=(0,b.f)("ship").safeParse(j);if(!a.success)return{kind:"refused",message:"The owner's ship id is not a ship id (shp_...)"};g=a.data}let k=void 0===g?{}:{ownerShipId:g},l=a.scopes;if("true"!==h[e]||null===l)return{kind:"changes",...k,grant:[],revoke:[]};let m=i.filter(a=>!c.includes(a)),n=a=>void 0!==h[`${d}${a}`];return{kind:"changes",...k,grant:m.filter(a=>n(a)&&!l.includes(a)),revoke:m.filter(a=>!n(a)&&l.includes(a))}}])}]})();
3
3
 
4
4
  //# sourceMappingURL=_0bhvvyz0q_0ja._.js.map
@@ -1,4 +1,4 @@
1
1
  (()=>{"use strict";module.exports=[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},38575,a=>{var b=a.i(70043);a.S([b,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae,f"],38575)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae",null),a.s(["f",0,e])}]})();
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},38575,a=>{var b=a.i(70043);a.S([b,"40902cb84b7eb130b75de3b2f47a2b153040b66213,f"],38575)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40902cb84b7eb130b75de3b2f47a2b153040b66213",null),a.s(["f",0,e])}]})();
3
3
 
4
4
  //# sourceMappingURL=_0pyd1_y7w8ngp._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/%28console%29/sign-in/failed/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/%28console%29/sign-in/failed/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40902cb84b7eb130b75de3b2f47a2b153040b66213'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
@@ -1,4 +1,4 @@
1
1
  (()=>{"use strict";module.exports=[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},82110,a=>{var b=a.i(70043);a.S([b,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae,f"],82110)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae",null),a.s(["f",0,e])}]})();
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},82110,a=>{var b=a.i(70043);a.S([b,"40902cb84b7eb130b75de3b2f47a2b153040b66213,f"],82110)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40902cb84b7eb130b75de3b2f47a2b153040b66213",null),a.s(["f",0,e])}]})();
3
3
 
4
4
  //# sourceMappingURL=_0xickgbbju_9-._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/authorize/waiting/approval/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/authorize/waiting/approval/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40902cb84b7eb130b75de3b2f47a2b153040b66213'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
@@ -1,4 +1,4 @@
1
1
  (()=>{"use strict";module.exports=[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},81140,a=>{var b=a.i(18379);a.s(["f",0,function(a){return Object.keys(a).flatMap(a=>a.startsWith(b.u)?[a.slice(b.u.length)]:[])}])},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]]:[]))}])},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae",null),a.s(["f",0,e])},18379,a=>{var b=a.i(29517);let c=["messages:send","messages:receive"],d="scope:",e="scopesShown";a.s(["_",0,c,"e",0,e,"u",0,d,"t",0,function(a,f){let g,{form:h,scopes:i}=f,j=h.ownerShipId?.trim();if(void 0!==j&&j!==a.ownerShipId){let a=(0,b.f)("ship").safeParse(j);if(!a.success)return{kind:"refused",message:"The owner's ship id is not a ship id (shp_...)"};g=a.data}let k=void 0===g?{}:{ownerShipId:g},l=a.scopes;if("true"!==h[e]||null===l)return{kind:"changes",...k,grant:[],revoke:[]};let m=i.filter(a=>!c.includes(a)),n=a=>void 0!==h[`${d}${a}`];return{kind:"changes",...k,grant:m.filter(a=>n(a)&&!l.includes(a)),revoke:m.filter(a=>!n(a)&&l.includes(a))}}])}]})();
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},81140,a=>{var b=a.i(18379);a.s(["f",0,function(a){return Object.keys(a).flatMap(a=>a.startsWith(b.u)?[a.slice(b.u.length)]:[])}])},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]]:[]))}])},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40902cb84b7eb130b75de3b2f47a2b153040b66213",null),a.s(["f",0,e])},18379,a=>{var b=a.i(29517);let c=["messages:send","messages:receive"],d="scope:",e="scopesShown";a.s(["_",0,c,"e",0,e,"u",0,d,"t",0,function(a,f){let g,{form:h,scopes:i}=f,j=h.ownerShipId?.trim();if(void 0!==j&&j!==a.ownerShipId){let a=(0,b.f)("ship").safeParse(j);if(!a.success)return{kind:"refused",message:"The owner's ship id is not a ship id (shp_...)"};g=a.data}let k=void 0===g?{}:{ownerShipId:g},l=a.scopes;if("true"!==h[e]||null===l)return{kind:"changes",...k,grant:[],revoke:[]};let m=i.filter(a=>!c.includes(a)),n=a=>void 0!==h[`${d}${a}`];return{kind:"changes",...k,grant:m.filter(a=>n(a)&&!l.includes(a)),revoke:m.filter(a=>!n(a)&&l.includes(a))}}])}]})();
3
3
 
4
4
  //# sourceMappingURL=_1_wav28san6dm._.js.map
@@ -1,4 +1,4 @@
1
1
  (()=>{"use strict";module.exports=[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},73290,a=>{var b=a.i(70043);a.S([b,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae,f"],73290)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae",null),a.s(["f",0,e])}]})();
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},73290,a=>{var b=a.i(70043);a.S([b,"40902cb84b7eb130b75de3b2f47a2b153040b66213,f"],73290)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40902cb84b7eb130b75de3b2f47a2b153040b66213",null),a.s(["f",0,e])}]})();
3
3
 
4
4
  //# sourceMappingURL=_1pjtire7rqla0._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/_not-found/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/_not-found/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40902cb84b7eb130b75de3b2f47a2b153040b66213'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
@@ -1,4 +1,4 @@
1
1
  (()=>{"use strict";module.exports=[13095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},33170,a=>{var b=a.i(70043);a.S([b,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae,f"],33170)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae",null),a.s(["f",0,e])}]})();
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},33170,a=>{var b=a.i(70043);a.S([b,"40902cb84b7eb130b75de3b2f47a2b153040b66213,f"],33170)},70043,a=>{var b=a.i(37936),c=a.i(5246),d=a.i(67591);async function e(a){(0,d.x)(a)&&(await (0,c.cookies)()).set(d.g,a,{path:"/",sameSite:"lax",maxAge:31536e3})}(0,a.i(13095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"40902cb84b7eb130b75de3b2f47a2b153040b66213",null),a.s(["f",0,e])}]})();
3
3
 
4
4
  //# sourceMappingURL=_1qbsmlji34yph._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/authorize/pick/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
1
+ {"version":3,"sources":["../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../web/.next-internal/server/app/authorize/pick/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/frame/actions.ts"],"sourcesContent":["// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","export {setTheme as '40902cb84b7eb130b75de3b2f47a2b153040b66213'} from 'ACTIONS_MODULE0'\n","'use server';\n\n/** The header's theme choice, kept for this browser for a year. */\nimport { cookies } from 'next/headers';\n\nimport { isTheme, THEME_COOKIE } from './theme';\n\nconst YEAR_SECONDS = 365 * 24 * 60 * 60;\n\nexport async function setTheme(theme: unknown): Promise<void> {\n if (!isTheme(theme)) {\n return;\n }\n (await cookies()).set(THEME_COOKIE, theme, { path: '/', sameSite: 'lax', maxAge: YEAR_SECONDS });\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"mDAGO,SAASA,EAAyBC,CAAc,EACrD,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAQE,MAAM,CAAED,IAAK,CACvC,IAAME,EAASH,CAAO,CAACC,EAAE,CACzB,GAAsB,YAAlB,AAA8B,OAAvBE,EACT,MAAUC,AAAJ,MACJ,CAAC,2DAA2D,EAAE,OAAOD,EAAO;AAAA,oEAAuE,CAAC,CAG1J,CACF,0EATgBJ,2BAAAA,qCAAAA,sBCHoC,OAAA,cAAA,CAAA,EAAA,aAAA,oCAC3CM,0BAAAA,qCAAAA,EAAAA,uBAAuB,YAAQ,CAAA,CAAA,IAAA,cCDxC,IAAA,EAAA,EAAA,CAAA,CAAA,iGCGA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeE,EAASC,CAAc,EACtC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACA,IAGb,CAAC,GAHoB,GAGd,CAAA,EAAA,EAAA,OAAA,AAAO,GAAA,CAAE,CAAEC,GAAG,CAAC,EAAA,CAAY,CAAED,EAAO,CAAEE,KAAM,IAAKC,SAAU,MAAOC,OANtD,CAM8DN,KANxD,CAMqE,EAChG,EAPgC,KAAK,mCAEfC,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA","ignoreList":[0,1]}
@@ -0,0 +1,3 @@
1
+ module.exports=[5530,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(98556)),f=(0,b.instrumentModuleGetter)(()=>a.r(92528)),g=(0,b.instrumentModuleGetter)(()=>a.r(13718)),h=(0,b.instrumentModuleGetter)(()=>a.r(18198)),i=(0,b.instrumentModuleGetter)(()=>a.r(62212)),j=(0,b.instrumentModuleGetter)(()=>a.r(36884)),k=(0,b.instrumentModuleGetter)(()=>a.r(92528)),l=(0,b.instrumentModuleGetter)(()=>a.r(13718)),m=(0,b.instrumentModuleGetter)(()=>a.r(18198)),n=["",{children:["(console)",{children:["meetings",{children:["[meetingId]",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(13628)),"[project]/web/app/(console)/meetings/[meetingId]/page.tsx"]},[]]},{metadata:{}},[]]},{metadata:{}},[]]},{metadata:{},layout:[j,"[project]/web/app/(console)/layout.tsx"],"not-found":[k,"[project]/web/app/not-found.tsx"],forbidden:[l,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"]},[]]},{layout:[e,"[project]/web/app/layout.tsx"],"not-found":[f,"[project]/web/app/not-found.tsx"],forbidden:[g,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[h,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[i,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],o=a.r.bind(a),p=a.l.bind(a),q=(0,c.f)({tree:n,page:"/(console)/meetings/[meetingId]/page",pathname:"/meetings/[meetingId]",require:o,loadChunk:p,interopDefault:d.interopDefault}),r=q.__next_app__,s=q.routeModule,t=q.handler;var u=a.i(22922);a.s(["ClientPageRoot",()=>u.ClientPageRoot,"ClientSegmentRoot",()=>u.ClientSegmentRoot,"Fragment",()=>u.Fragment,"HTTPAccessFallbackBoundary",()=>u.HTTPAccessFallbackBoundary,"InstantValidation",()=>u.InstantValidation,"LayoutRouter",()=>u.LayoutRouter,"LoadingBoundaryProvider",()=>u.LoadingBoundaryProvider,"RenderFromTemplateContext",()=>u.RenderFromTemplateContext,"RootLayoutBoundary",()=>u.RootLayoutBoundary,"SegmentViewNode",()=>u.SegmentViewNode,"SegmentViewStateNode",()=>u.SegmentViewStateNode,"__next_app__",0,r,"captureOwnerStack",()=>u.captureOwnerStack,"collectPrefetchHints",()=>u.collectPrefetchHints,"collectSegmentData",()=>u.collectSegmentData,"createElement",()=>u.createElement,"createMetadataComponents",()=>u.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>u.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>u.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>u.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>u.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>u.createTemporaryReferenceSet,"decodeAction",()=>u.decodeAction,"decodeFormState",()=>u.decodeFormState,"decodeReply",()=>u.decodeReply,"handler",0,t,"isEmptyHTMLPrelude",()=>u.isEmptyHTMLPrelude,"patchFetch",()=>u.patchFetch,"preconnect",()=>u.preconnect,"preloadFont",()=>u.preloadFont,"preloadStyle",()=>u.preloadStyle,"prerender",()=>u.prerender,"prerenderToNodeStream",()=>u.prerenderToNodeStream,"renderToPipeableStream",()=>u.renderToPipeableStream,"renderToReadableStream",()=>u.renderToReadableStream,"routeModule",0,s,"serverHooks",()=>u.serverHooks,"taintObjectReference",()=>u.taintObjectReference],5530)}];
2
+
3
+ //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-page_20d8hq6wsqwh_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../node_modules/next/dist/esm/build/templates/app-page.js%3Fpage%3D/%28console%29/meetings/%5BmeetingId%5D/page"],"sourcesContent":["import { instrumentModuleGetter } from \"next/dist/server/app-render/module-loading/instrument-module-getter\";\nconst __TURBOPACK__layout__$23$0__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_0\"));\nconst __TURBOPACK__not$2d$found__$23$1__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_1\"));\nconst __TURBOPACK__forbidden__$23$2__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_2\"));\nconst __TURBOPACK__unauthorized__$23$3__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_3\"));\nconst __TURBOPACK__global$2d$error__$23$4__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_4\"));\nconst __TURBOPACK__layout__$23$5__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_5\"));\nconst __TURBOPACK__not$2d$found__$23$6__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_6\"));\nconst __TURBOPACK__forbidden__$23$7__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_7\"));\nconst __TURBOPACK__unauthorized__$23$8__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_8\"));\nconst __TURBOPACK__page__$23$9__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_9\"));\nimport { createAppPageEntrypoint } from \"next/dist/esm/build/templates/app-page-runtime\";\nimport { interopDefault } from \"next/dist/esm/server/app-render/interop-default\" with {\n 'turbopack-transition': 'next-server-utility'\n};\nconst tree = [\"\", {\n\"children\": [\"(console)\", {\n\"children\": [\"meetings\", {\n\"children\": [\"[meetingId]\", {\n\"children\": [\"__PAGE__\", {\n}, {\n metadata: { }, \"page\": [__TURBOPACK__page__$23$9__, \"[project]/web/app/(console)/meetings/[meetingId]/page.tsx\"],\n}, []],\n}, {\n metadata: { },}, []],\n}, {\n metadata: { },}, []],\n}, {\n metadata: { }, \"layout\": [__TURBOPACK__layout__$23$5__, \"[project]/web/app/(console)/layout.tsx\"],\n \"not-found\": [__TURBOPACK__not$2d$found__$23$6__, \"[project]/web/app/not-found.tsx\"],\n \"forbidden\": [__TURBOPACK__forbidden__$23$7__, \"[project]/node_modules/next/dist/client/components/builtin/forbidden.js\"],\n \"unauthorized\": [__TURBOPACK__unauthorized__$23$8__, \"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js\"],\n}, []],\n}, {\n \"layout\": [__TURBOPACK__layout__$23$0__, \"[project]/web/app/layout.tsx\"],\n \"not-found\": [__TURBOPACK__not$2d$found__$23$1__, \"[project]/web/app/not-found.tsx\"],\n \"forbidden\": [__TURBOPACK__forbidden__$23$2__, \"[project]/node_modules/next/dist/client/components/builtin/forbidden.js\"],\n \"unauthorized\": [__TURBOPACK__unauthorized__$23$3__, \"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js\"],\n \"global-error\": [__TURBOPACK__global$2d$error__$23$4__, \"[project]/node_modules/next/dist/client/components/builtin/global-error.js\"],\n}, []]\nconst __next_app_require__ = __turbopack_context__.r.bind(__turbopack_context__)\nconst __next_app_load_chunk__ = __turbopack_context__.l.bind(__turbopack_context__)\nconst entrypoint = createAppPageEntrypoint({\n tree,\n page: \"/(console)/meetings/[meetingId]/page\",\n pathname: \"/meetings/[meetingId]\",\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__,\n interopDefault\n});\nexport const __next_app__ = entrypoint.__next_app__;\nexport const routeModule = entrypoint.routeModule;\nexport const handler = entrypoint.handler;\nexport * from \"next/dist/esm/server/app-render/entry-base\" with {\n 'turbopack-transition': 'next-server-utility'\n};\n\n//# sourceMappingURL=app-page.js.map\n"],"names":["layout #0","not-found #1","forbidden #2","unauthorized #3","global-error #4","layout #5","not-found #6","forbidden #7","unauthorized #8","page #9","tree","metadata","__next_app_require__","__turbopack_context__","r","bind","__next_app_load_chunk__","l","entrypoint","page","pathname","require","loadChunk","interopDefault","__next_app__","routeModule","handler"],"mappings":"sCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OAWA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAyCA,EAAA,CAAA,CAAA,OApDA,IAAMA,EAA+B,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACtDC,EAAqC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAC5DC,EAAkC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACzDC,EAAqC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAC5DC,EAAwC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAC/DC,EAA+B,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACtDC,EAAqC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAC5DC,EAAkC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACzDC,EAAqC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAM5DE,EAAO,CAAC,GAAI,CAClB,SAAY,CAAC,YAAa,CAC1B,SAAY,CAAC,WAAY,CACzB,SAAY,CAAC,cAAe,CAC5B,SAAY,CAAC,WAAY,CACzB,EAAG,CACDC,SAAU,CAAG,EAAI,KAAQ,CAXQ,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAWF,4DACxD,AADoH,EACjH,EAAE,CAAC,AACN,EAAG,CACDA,SAAU,CAAG,CAAE,EAAG,EAAE,CAAC,AACvB,EAAG,CACDA,SAAU,CAAG,CAAE,EAAG,EAAE,CAAC,AACvB,EAAG,CACDA,SAAU,CAAG,EAAI,OAAU,CAACN,EAA8B,yCAAyC,CACnG,YAAa,CAACC,EAAoC,kCAAkC,CACpF,UAAa,CAACC,EAAiC,0EAA0E,CACzH,aAAgB,CAACC,EAAoC,6EAA6E,AACpI,EAAG,EAAE,CAAC,AACN,EAAG,CACD,OAAU,CAACR,EAA8B,+BAA+B,CACxE,YAAa,CAACC,EAAoC,kCAAkC,CACpF,UAAa,CAACC,EAAiC,0EAA0E,CACzH,aAAgB,CAACC,EAAoC,6EAA6E,CAClI,eAAgB,CAACC,EAAuC,6EAA6E,AACvI,EAAG,EAAE,CAAC,CACAQ,EAAuBC,EAAsBC,CAAC,CAACC,IAAI,CAACF,GACpDG,EAA0BH,EAAsBI,CAAC,CAACF,IAAI,CAACF,GACvDK,EAAa,CAAA,EAAA,EAAA,CAAA,AAAuB,EAAC,MACvCR,EACAS,KAAM,uCACNC,SAAU,wBACVC,QAAST,EACTU,UAAWN,EACXO,eAAAA,EAAAA,cAAc,AAClB,GACaC,EAAeN,EAAWM,YAAY,CACtCC,EAAcP,EAAWO,WAAW,CACpCC,EAAUR,EAAWQ,OAAO","ignoreList":[0]}
@@ -1,3 +1,3 @@
1
- module.exports=[[4825,a=>{var b=a.i(7997),c=a.i(717),d=a.i(66283),e=a.i(10351),f=a.i(22126);function g({message:a,isFailure:c}){return c?(0,b.jsx)("p",{role:"alert","data-testid":"overview-failure",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:a}):(0,b.jsx)("p",{role:"status","data-testid":"overview-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:a})}function h({waiting:a,toDecide:c}){if(void 0===a&&void 0===c)return(0,b.jsx)("h1",{className:"text-heading font-semibold",children:"Nothing waits on you"});let d=(a??0)+(c??0),e=[void 0===a?void 0:`${String(a)} for you`,void 0===c?void 0:`${String(c)} to decide`].filter(a=>void 0!==a);return(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("span",{"data-testid":"overview-total",className:"inline-flex size-12 items-center justify-center rounded-full border-4 border-tone-waiting-border text-section font-semibold",children:d}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-heading font-semibold",children:0===d?"Nothing waits on you":"Waits on you"}),(0,b.jsx)("p",{className:"text-muted-foreground",children:e.join(" · ")})]})]})}function i({width:a}){return(0,b.jsx)("span",{className:`block h-4 animate-pulse rounded bg-muted ${a}`})}function j(){return(0,b.jsxs)("div",{"aria-busy":"true","aria-label":"Loading the Overview",className:"grid gap-6",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("span",{className:"size-12 animate-pulse rounded-full bg-muted"}),(0,b.jsxs)("div",{className:"grid flex-1 gap-2",children:[(0,b.jsx)(i,{width:"w-48"}),(0,b.jsx)(i,{width:"w-32"})]})]}),(0,b.jsx)("div",{className:"grid gap-2",children:["a","b","c"].map(a=>(0,b.jsx)("span",{className:"block h-14 animate-pulse rounded-md bg-muted"},a))})]})}var k=a.i(65044),l=a.i(78942),m=a.i(20285),n=a.i(40623);let o={approve:"You approved the request.",deny:"You denied the request."};async function p({api:a,fleetId:c}){let{inbox:d,wakeChannels:f,toDecide:g,mine:i}=await (0,e.m)(a),j=new Date;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h,{waiting:d?.waiting,toDecide:g?.length}),void 0===d?null:(0,b.jsx)(l.InboxPanel,{fleetId:c,inbox:d}),void 0===f?null:(0,b.jsx)(n.WakePanel,{fleetId:c,channels:f}),void 0===g?null:0===g.length?(0,b.jsx)("p",{className:"text-muted-foreground",children:"No request waits for a decision."}):(0,b.jsx)(k.f,{title:"To decide",requests:g,now:j,hrefOf:a=>`/overview/requests/${encodeURIComponent(a.requestId)}?fleet=${encodeURIComponent(c)}`}),void 0===i||0===i.length?null:(0,b.jsx)(k.f,{title:"Your requests",requests:i,now:j})]})}async function q({searchParams:a}){let h=await (0,d._)({path:e.K,searchParams:a});if("noSignIn"===h.kind)return(0,b.jsx)(f.f,{});let{decided:i}=a,k="string"==typeof i?o[i]:void 0;return(0,b.jsxs)("div",{className:"grid gap-6",children:[(0,b.jsx)(m.LiveRefresh,{fleetId:h.fleetId}),void 0===k?null:(0,b.jsx)(g,{message:k,isFailure:!1}),(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)(j,{}),children:(0,b.jsx)(p,{api:h.api,fleetId:h.fleetId})})]})}async function r({searchParams:a}){return(0,b.jsx)(q,{searchParams:await a})}a.s(["default",0,r,"metadata",0,{title:"Overview"}],4825)},73315,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call InboxPanel() from the server but InboxPanel 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/overview/state/inbox-panel.tsx","InboxPanel");a.s(["InboxPanel",0,b])},78942,a=>{var b=a.i(73315);a.n(b)},8077,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call WakePanel() from the server but WakePanel 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/overview/state/wake-panel.tsx","WakePanel");a.s(["WakePanel",0,b])},40623,a=>{var b=a.i(8077);a.n(b)}],15360,function(a){a.n(a.i(4825))}];
1
+ module.exports=[[4825,a=>{var b=a.i(7997),c=a.i(717),d=a.i(66283),e=a.i(10351),f=a.i(22126),g=a.i(67395);function h({waiting:a,toDecide:c}){if(void 0===a&&void 0===c)return(0,b.jsx)("h1",{className:"text-heading font-semibold",children:"Nothing waits on you"});let d=(a??0)+(c??0),e=[void 0===a?void 0:`${String(a)} for you`,void 0===c?void 0:`${String(c)} to decide`].filter(a=>void 0!==a);return(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("span",{"data-testid":"overview-total",className:"inline-flex size-12 items-center justify-center rounded-full border-4 border-tone-waiting-border text-section font-semibold",children:d}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-heading font-semibold",children:0===d?"Nothing waits on you":"Waits on you"}),(0,b.jsx)("p",{className:"text-muted-foreground",children:e.join(" · ")})]})]})}function i({width:a}){return(0,b.jsx)("span",{className:`block h-4 animate-pulse rounded bg-muted ${a}`})}function j(){return(0,b.jsxs)("div",{"aria-busy":"true","aria-label":"Loading the Overview",className:"grid gap-6",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("span",{className:"size-12 animate-pulse rounded-full bg-muted"}),(0,b.jsxs)("div",{className:"grid flex-1 gap-2",children:[(0,b.jsx)(i,{width:"w-48"}),(0,b.jsx)(i,{width:"w-32"})]})]}),(0,b.jsx)("div",{className:"grid gap-2",children:["a","b","c"].map(a=>(0,b.jsx)("span",{className:"block h-14 animate-pulse rounded-md bg-muted"},a))})]})}var k=a.i(65044),l=a.i(78942),m=a.i(20285),n=a.i(40623);let o={approve:"You approved the request.",deny:"You denied the request."};async function p({api:a,fleetId:c}){let{inbox:d,wakeChannels:f,toDecide:g,mine:i}=await (0,e.m)(a),j=new Date;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h,{waiting:d?.waiting,toDecide:g?.length}),void 0===d?null:(0,b.jsx)(l.InboxPanel,{fleetId:c,inbox:d}),void 0===f?null:(0,b.jsx)(n.WakePanel,{fleetId:c,channels:f}),void 0===g?null:0===g.length?(0,b.jsx)("p",{className:"text-muted-foreground",children:"No request waits for a decision."}):(0,b.jsx)(k.f,{title:"To decide",requests:g,now:j,hrefOf:a=>`/overview/requests/${encodeURIComponent(a.requestId)}?fleet=${encodeURIComponent(c)}`}),void 0===i||0===i.length?null:(0,b.jsx)(k.f,{title:"Your requests",requests:i,now:j})]})}async function q({searchParams:a}){let h=await (0,d._)({path:e.K,searchParams:a});if("noSignIn"===h.kind)return(0,b.jsx)(f.f,{});let{decided:i}=a,k="string"==typeof i?o[i]:void 0;return(0,b.jsxs)("div",{className:"grid gap-6",children:[(0,b.jsx)(m.LiveRefresh,{fleetId:h.fleetId}),void 0===k?null:(0,b.jsx)(g.f,{message:k,isFailure:!1}),(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)(j,{}),children:(0,b.jsx)(p,{api:h.api,fleetId:h.fleetId})})]})}async function r({searchParams:a}){return(0,b.jsx)(q,{searchParams:await a})}a.s(["default",0,r,"metadata",0,{title:"Overview"}],4825)},73315,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call InboxPanel() from the server but InboxPanel 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/overview/state/inbox-panel.tsx","InboxPanel");a.s(["InboxPanel",0,b])},78942,a=>{var b=a.i(73315);a.n(b)},8077,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call WakePanel() from the server but WakePanel 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/overview/state/wake-panel.tsx","WakePanel");a.s(["WakePanel",0,b])},40623,a=>{var b=a.i(8077);a.n(b)}],15360,function(a){a.n(a.i(4825))}];
2
2
 
3
3
  //# sourceMappingURL=web_0-ufi2al5ubig._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/features/overview/state/overview.tsx","../../../../../web/features/overview/ui/notice.tsx","../../../../../web/features/overview/ui/overview-lead.tsx","../../../../../web/features/overview/ui/overview-skeleton.tsx","../../../../../web/app/%28console%29/overview/page.tsx","../../../../../web/features/overview/state/inbox-panel.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/overview/state/inbox-panel.tsx%22%20%7D","../../../../../web/features/overview/state/wake-panel.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/overview/state/wake-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 { OVERVIEW_PATH, readOverview } from '../hooks/read-overview';\nimport { NoSignIn } from '../../sign-in/ui/no-sign-in';\nimport { Notice } from '../ui/notice';\nimport { OverviewLead } from '../ui/overview-lead';\nimport { OverviewSkeleton } from '../ui/overview-skeleton';\nimport { RequestsList } from '../ui/requests-list';\nimport { InboxPanel } from './inbox-panel';\nimport { LiveRefresh } from './live-refresh';\nimport { WakePanel } from './wake-panel';\n\n/** What a decision the person just made came to, said once they are back. */\nconst DECIDED: Record<string, string> = {\n approve: 'You approved the request.',\n deny: 'You denied the request.',\n};\n\nasync function OverviewParts({ api, fleetId }: { api: GatewayApi; fleetId: string }) {\n const { inbox, wakeChannels, toDecide, mine } = await readOverview(api);\n const now = new Date();\n return (\n <>\n <OverviewLead waiting={inbox?.waiting} toDecide={toDecide?.length} />\n {inbox === undefined ? null : <InboxPanel fleetId={fleetId} inbox={inbox} />}\n {wakeChannels === undefined ? null : <WakePanel fleetId={fleetId} channels={wakeChannels} />}\n {toDecide === undefined ? null : toDecide.length === 0 ? (\n <p className=\"text-muted-foreground\">No request waits for a decision.</p>\n ) : (\n <RequestsList title=\"To decide\" requests={toDecide} now={now} hrefOf={(request) => `/overview/requests/${encodeURIComponent(request.requestId)}?fleet=${encodeURIComponent(fleetId)}`} />\n )}\n {mine === undefined || mine.length === 0 ? null : <RequestsList title=\"Your requests\" requests={mine} now={now} />}\n </>\n );\n}\n\n/**\n * The Overview (design B, Signal): what waits on the person, their inbox\n * and the channels that wake them, the requests to decide for an approver,\n * oldest first, and the requests they asked. Signed out, the browser goes to sign in before anything shows;\n * signed in, the shape shows while the parts load. It reads itself again\n * whenever the fleet's requests change.\n */\nexport async function Overview({ searchParams }: { searchParams: SearchParams }) {\n const page = await signedInPage({ path: OVERVIEW_PATH, searchParams });\n if (page.kind === 'noSignIn') {\n return <NoSignIn />;\n }\n const { decided } = searchParams;\n const said = typeof decided === 'string' ? DECIDED[decided] : undefined;\n return (\n <div className=\"grid gap-6\">\n <LiveRefresh fleetId={page.fleetId} />\n {said === undefined ? null : <Notice message={said} isFailure={false} />}\n <Suspense fallback={<OverviewSkeleton />}>\n <OverviewParts api={page.api} fleetId={page.fleetId} />\n </Suspense>\n </div>\n );\n}\n","/** What an action came to, said in place: a success as a status, a failure as an alert by the control. */\nexport function Notice({ message, isFailure }: { message: string; isFailure: boolean }) {\n return isFailure ? (\n <p role=\"alert\" data-testid=\"overview-failure\" className=\"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg\">\n {message}\n </p>\n ) : (\n <p role=\"status\" data-testid=\"overview-success\" className=\"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg\">\n {message}\n </p>\n );\n}\n","/**\n * What waits on the person, counted: deliveries for them and requests to\n * decide. A count they have no part in is left out; with neither, nothing\n * waits on them.\n */\nexport function OverviewLead({ waiting, toDecide }: { waiting: number | undefined; toDecide: number | undefined }) {\n if (waiting === undefined && toDecide === undefined) {\n return <h1 className=\"text-heading font-semibold\">Nothing waits on you</h1>;\n }\n const total = (waiting ?? 0) + (toDecide ?? 0);\n const counts = [waiting === undefined ? undefined : `${String(waiting)} for you`, toDecide === undefined ? undefined : `${String(toDecide)} to decide`].filter((count) => count !== undefined);\n return (\n <div className=\"flex items-center gap-4\">\n <span data-testid=\"overview-total\" className=\"inline-flex size-12 items-center justify-center rounded-full border-4 border-tone-waiting-border text-section font-semibold\">\n {total}\n </span>\n <div>\n <h1 className=\"text-heading font-semibold\">{total === 0 ? 'Nothing waits on you' : 'Waits on you'}</h1>\n <p className=\"text-muted-foreground\">{counts.join(' · ')}</p>\n </div>\n </div>\n );\n}\n","function Bar({ width }: { width: string }) {\n return <span className={`block h-4 animate-pulse rounded bg-muted ${width}`} />;\n}\n\n/** The Overview's shape while it loads: the lead, then a list. */\nexport function OverviewSkeleton() {\n return (\n <div aria-busy=\"true\" aria-label=\"Loading the Overview\" className=\"grid gap-6\">\n <div className=\"flex items-center gap-4\">\n <span className=\"size-12 animate-pulse rounded-full bg-muted\" />\n <div className=\"grid flex-1 gap-2\">\n <Bar width=\"w-48\" />\n <Bar width=\"w-32\" />\n </div>\n </div>\n <div className=\"grid gap-2\">\n {['a', 'b', 'c'].map((row) => (\n <span key={row} className=\"block h-14 animate-pulse rounded-md bg-muted\" />\n ))}\n </div>\n </div>\n );\n}\n","import type { Metadata } from 'next';\n\nimport { Overview } from '../../../features/overview/state/overview';\nimport type { SearchParams } from '../../../lib/gateway-api/page-api';\n\nexport const metadata: Metadata = { title: 'Overview' };\n\nexport default async function OverviewPage({ searchParams }: { searchParams: Promise<SearchParams> }) {\n return <Overview searchParams={await searchParams} />;\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const InboxPanel = registerClientReference(\n function() { throw new Error(\"Attempted to call InboxPanel() from the server but InboxPanel 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/overview/state/inbox-panel.tsx\",\n \"InboxPanel\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const WakePanel = registerClientReference(\n function() { throw new Error(\"Attempted to call WakePanel() from the server but WakePanel 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/overview/state/wake-panel.tsx\",\n \"WakePanel\",\n);\n"],"names":["Notice","message","isFailure","role","className","InboxPanel","Error","WakePanel"],"mappings":"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","ignoreList":[5,6]}
1
+ {"version":3,"sources":["../../../../../web/features/overview/state/overview.tsx","../../../../../web/features/overview/ui/overview-lead.tsx","../../../../../web/features/overview/ui/overview-skeleton.tsx","../../../../../web/app/%28console%29/overview/page.tsx","../../../../../web/features/overview/state/inbox-panel.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/overview/state/inbox-panel.tsx%22%20%7D","../../../../../web/features/overview/state/wake-panel.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/overview/state/wake-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 { OVERVIEW_PATH, readOverview } from '../hooks/read-overview';\nimport { NoSignIn } from '../../sign-in/ui/no-sign-in';\nimport { Notice } from '../ui/notice';\nimport { OverviewLead } from '../ui/overview-lead';\nimport { OverviewSkeleton } from '../ui/overview-skeleton';\nimport { RequestsList } from '../ui/requests-list';\nimport { InboxPanel } from './inbox-panel';\nimport { LiveRefresh } from './live-refresh';\nimport { WakePanel } from './wake-panel';\n\n/** What a decision the person just made came to, said once they are back. */\nconst DECIDED: Record<string, string> = {\n approve: 'You approved the request.',\n deny: 'You denied the request.',\n};\n\nasync function OverviewParts({ api, fleetId }: { api: GatewayApi; fleetId: string }) {\n const { inbox, wakeChannels, toDecide, mine } = await readOverview(api);\n const now = new Date();\n return (\n <>\n <OverviewLead waiting={inbox?.waiting} toDecide={toDecide?.length} />\n {inbox === undefined ? null : <InboxPanel fleetId={fleetId} inbox={inbox} />}\n {wakeChannels === undefined ? null : <WakePanel fleetId={fleetId} channels={wakeChannels} />}\n {toDecide === undefined ? null : toDecide.length === 0 ? (\n <p className=\"text-muted-foreground\">No request waits for a decision.</p>\n ) : (\n <RequestsList title=\"To decide\" requests={toDecide} now={now} hrefOf={(request) => `/overview/requests/${encodeURIComponent(request.requestId)}?fleet=${encodeURIComponent(fleetId)}`} />\n )}\n {mine === undefined || mine.length === 0 ? null : <RequestsList title=\"Your requests\" requests={mine} now={now} />}\n </>\n );\n}\n\n/**\n * The Overview (design B, Signal): what waits on the person, their inbox\n * and the channels that wake them, the requests to decide for an approver,\n * oldest first, and the requests they asked. Signed out, the browser goes to sign in before anything shows;\n * signed in, the shape shows while the parts load. It reads itself again\n * whenever the fleet's requests change.\n */\nexport async function Overview({ searchParams }: { searchParams: SearchParams }) {\n const page = await signedInPage({ path: OVERVIEW_PATH, searchParams });\n if (page.kind === 'noSignIn') {\n return <NoSignIn />;\n }\n const { decided } = searchParams;\n const said = typeof decided === 'string' ? DECIDED[decided] : undefined;\n return (\n <div className=\"grid gap-6\">\n <LiveRefresh fleetId={page.fleetId} />\n {said === undefined ? null : <Notice message={said} isFailure={false} />}\n <Suspense fallback={<OverviewSkeleton />}>\n <OverviewParts api={page.api} fleetId={page.fleetId} />\n </Suspense>\n </div>\n );\n}\n","/**\n * What waits on the person, counted: deliveries for them and requests to\n * decide. A count they have no part in is left out; with neither, nothing\n * waits on them.\n */\nexport function OverviewLead({ waiting, toDecide }: { waiting: number | undefined; toDecide: number | undefined }) {\n if (waiting === undefined && toDecide === undefined) {\n return <h1 className=\"text-heading font-semibold\">Nothing waits on you</h1>;\n }\n const total = (waiting ?? 0) + (toDecide ?? 0);\n const counts = [waiting === undefined ? undefined : `${String(waiting)} for you`, toDecide === undefined ? undefined : `${String(toDecide)} to decide`].filter((count) => count !== undefined);\n return (\n <div className=\"flex items-center gap-4\">\n <span data-testid=\"overview-total\" className=\"inline-flex size-12 items-center justify-center rounded-full border-4 border-tone-waiting-border text-section font-semibold\">\n {total}\n </span>\n <div>\n <h1 className=\"text-heading font-semibold\">{total === 0 ? 'Nothing waits on you' : 'Waits on you'}</h1>\n <p className=\"text-muted-foreground\">{counts.join(' · ')}</p>\n </div>\n </div>\n );\n}\n","function Bar({ width }: { width: string }) {\n return <span className={`block h-4 animate-pulse rounded bg-muted ${width}`} />;\n}\n\n/** The Overview's shape while it loads: the lead, then a list. */\nexport function OverviewSkeleton() {\n return (\n <div aria-busy=\"true\" aria-label=\"Loading the Overview\" className=\"grid gap-6\">\n <div className=\"flex items-center gap-4\">\n <span className=\"size-12 animate-pulse rounded-full bg-muted\" />\n <div className=\"grid flex-1 gap-2\">\n <Bar width=\"w-48\" />\n <Bar width=\"w-32\" />\n </div>\n </div>\n <div className=\"grid gap-2\">\n {['a', 'b', 'c'].map((row) => (\n <span key={row} className=\"block h-14 animate-pulse rounded-md bg-muted\" />\n ))}\n </div>\n </div>\n );\n}\n","import type { Metadata } from 'next';\n\nimport { Overview } from '../../../features/overview/state/overview';\nimport type { SearchParams } from '../../../lib/gateway-api/page-api';\n\nexport const metadata: Metadata = { title: 'Overview' };\n\nexport default async function OverviewPage({ searchParams }: { searchParams: Promise<SearchParams> }) {\n return <Overview searchParams={await searchParams} />;\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const InboxPanel = registerClientReference(\n function() { throw new Error(\"Attempted to call InboxPanel() from the server but InboxPanel 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/overview/state/inbox-panel.tsx\",\n \"InboxPanel\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const WakePanel = registerClientReference(\n function() { throw new Error(\"Attempted to call WakePanel() from the server but WakePanel 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/overview/state/wake-panel.tsx\",\n \"WakePanel\",\n);\n"],"names":["OverviewLead","waiting","toDecide","undefined","className","total","counts","String","filter","count","join","InboxPanel","Error","WakePanel"],"mappings":"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","ignoreList":[4,5]}
@@ -0,0 +1,3 @@
1
+ module.exports=[[17423,a=>{var b=a.i(7997),c=a.i(66283),d=a.i(67395),e=a.i(22126),f=a.i(58725),g=a.i(47547);function h({items:a}){return 0===a.length?(0,b.jsx)("p",{className:"text-muted-foreground",children:"No one has contributed yet."}):(0,b.jsx)("ol",{"data-testid":"meeting-contributions",className:"grid gap-3",children:a.map(a=>(0,b.jsxs)("li",{className:"grid gap-1 rounded-md border border-border bg-card p-3 text-card-foreground",children:[(0,b.jsxs)("span",{className:"text-caption text-muted-foreground",children:[a.sender.name," · ",new Date(a.sentAt).toUTCString()]}),(0,b.jsx)("p",{className:"whitespace-pre-wrap break-words",children:a.payload})]},a.messageId))})}let i={crewed:"crewed",awaitingCrew:"awaiting crew",retired:"retired"},j={present:"in the meeting",left:"left",revoked:"revoked"};function k({participants:a}){return(0,b.jsxs)("section",{className:"grid gap-2",children:[(0,b.jsxs)("h2",{className:"text-section font-semibold",children:["Participants · ",a.length]}),(0,b.jsx)("ul",{"data-testid":"meeting-participants",className:"grid gap-1",children:a.map(a=>(0,b.jsxs)("li",{className:"flex flex-wrap justify-between gap-2",children:[(0,b.jsx)("span",{children:a.name}),(0,b.jsxs)("span",{className:"text-caption text-muted-foreground",children:[i[a.status]," · ",j[a.state]]})]},a.shipId))})]})}var l=a.i(53853);async function m({meetingId:a,searchParams:i}){var j,n;let o=await (0,c._)({path:`${f.f}/${encodeURIComponent(a)}`,searchParams:i});if("noSignIn"===o.kind)return(0,b.jsx)(e.f,{});let{cursor:p}=i,q=await (j=o.api,n={meetingId:a,cursor:"string"==typeof p?p:void 0},(0,c.F)(j.people.meeting.query({meetingId:n.meetingId,...void 0===n.cursor?{}:{cursor:n.cursor}}))),r=`/overview?fleet=${encodeURIComponent(o.fleetId)}`;if(!q.isOk)return(0,b.jsxs)("div",{className:"grid gap-4",children:[(0,b.jsx)(d.f,{message:q.refusal,isFailure:!0}),(0,b.jsx)("a",{href:r,className:"text-muted-foreground hover:underline",children:"← Overview"})]});let s=q.value,t=(0,g.v)(s),u=(0,f.H)({fleetId:o.fleetId,meetingId:a});return(0,b.jsxs)("div",{"data-testid":"meeting",className:"grid gap-6",children:[(0,b.jsx)("a",{href:r,className:"text-muted-foreground hover:underline",children:"← Overview"}),(0,b.jsxs)("header",{className:"grid gap-1",children:[(0,b.jsx)("h1",{className:"text-heading font-semibold",children:s.title??"Meeting"}),(0,b.jsxs)("span",{className:"text-caption text-muted-foreground",children:["Moderated by ",s.moderator.name," · owned by ",s.owner.name]})]}),(0,b.jsxs)("section",{className:"grid gap-3 rounded-lg border border-border bg-card p-4 text-card-foreground shadow-sm",children:[(0,b.jsx)("p",{"data-testid":"meeting-standing",children:t.said}),(0,b.jsxs)("p",{"data-testid":"meeting-mic",className:"text-caption text-muted-foreground",children:[(0,g.s)(s),0===s.mic.requests.length?null:` In line: ${s.mic.requests.map(({ship:a})=>a.name).join(", ")}.`]}),(0,b.jsx)(l.MeetingControls,{fleetId:o.fleetId,meetingId:s.meetingId,controls:t.controls})]}),(0,b.jsx)(h,{items:s.contributions.items}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-4",children:[(0,b.jsx)("a",{href:u,className:"text-muted-foreground hover:underline",children:"Read again"}),null===s.contributions.nextCursor?null:(0,b.jsx)("a",{"data-testid":"meeting-older",href:(0,f.H)({fleetId:o.fleetId,meetingId:a,cursor:s.contributions.nextCursor}),className:"text-muted-foreground hover:underline",children:"Older contributions"})]}),(0,b.jsx)(k,{participants:s.participants})]})}async function n({params:a,searchParams:c}){let[{meetingId:d},e]=await Promise.all([a,c]);return(0,b.jsx)(m,{meetingId:d,searchParams:e})}a.s(["default",0,n,"metadata",0,{title:"Meeting"}],17423)},75298,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call MeetingControls() from the server but MeetingControls 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/meeting/state/meeting-controls.tsx","MeetingControls");a.s(["MeetingControls",0,b])},53853,a=>{var b=a.i(75298);a.n(b)}],13628,function(a){a.n(a.i(17423))}];
2
+
3
+ //# sourceMappingURL=web_09zipglxee7tv._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../web/features/meeting/state/meeting.tsx","../../../../../web/features/meeting/hooks/read-meeting.ts","../../../../../web/features/meeting/ui/contributions.tsx","../../../../../web/features/meeting/ui/participants.tsx","../../../../../web/app/%28console%29/meetings/%5BmeetingId%5D/page.tsx","../../../../../web/features/meeting/state/meeting-controls.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/meeting/state/meeting-controls.tsx%22%20%7D"],"sourcesContent":["import { signedInPage, type SearchParams } from '../../../lib/gateway-api/page-api';\nimport { Notice } from '../../overview/ui/notice';\nimport { NoSignIn } from '../../sign-in/ui/no-sign-in';\nimport { readMeeting } from '../hooks/read-meeting';\nimport { MEETINGS_PATH, meetingPathOf } from '../paths';\nimport { micLineOf, standingOf } from '../services/meeting';\nimport { Contributions } from '../ui/contributions';\nimport { Participants } from '../ui/participants';\nimport { MeetingControls } from './meeting-controls';\n\n/**\n * A meeting the person takes part in (decision 0061, M19), phone first:\n * where they stand on the mic and what they may do now at the top, then the\n * contributions, newest first, and who takes part. Reading it confirms no\n * delivery: each contribution still waits in their inbox.\n */\nexport async function Meeting({ meetingId, searchParams }: { meetingId: string; searchParams: SearchParams }) {\n const page = await signedInPage({ path: `${MEETINGS_PATH}/${encodeURIComponent(meetingId)}`, searchParams });\n if (page.kind === 'noSignIn') {\n return <NoSignIn />;\n }\n const { cursor } = searchParams;\n const read = await readMeeting(page.api, { meetingId, cursor: typeof cursor === 'string' ? cursor : undefined });\n const overview = `/overview?fleet=${encodeURIComponent(page.fleetId)}`;\n if (!read.isOk) {\n return (\n <div className=\"grid gap-4\">\n <Notice message={read.refusal} isFailure />\n <a href={overview} className=\"text-muted-foreground hover:underline\">\n ← Overview\n </a>\n </div>\n );\n }\n const meeting = read.value;\n const standing = standingOf(meeting);\n const here = meetingPathOf({ fleetId: page.fleetId, meetingId });\n return (\n <div data-testid=\"meeting\" className=\"grid gap-6\">\n <a href={overview} className=\"text-muted-foreground hover:underline\">\n ← Overview\n </a>\n <header className=\"grid gap-1\">\n <h1 className=\"text-heading font-semibold\">{meeting.title ?? 'Meeting'}</h1>\n <span className=\"text-caption text-muted-foreground\">\n Moderated by {meeting.moderator.name} · owned by {meeting.owner.name}\n </span>\n </header>\n <section className=\"grid gap-3 rounded-lg border border-border bg-card p-4 text-card-foreground shadow-sm\">\n <p data-testid=\"meeting-standing\">{standing.said}</p>\n <p data-testid=\"meeting-mic\" className=\"text-caption text-muted-foreground\">\n {micLineOf(meeting)}\n {meeting.mic.requests.length === 0 ? null : ` In line: ${meeting.mic.requests.map(({ ship }) => ship.name).join(', ')}.`}\n </p>\n <MeetingControls fleetId={page.fleetId} meetingId={meeting.meetingId} controls={standing.controls} />\n </section>\n <Contributions items={meeting.contributions.items} />\n <div className=\"flex flex-wrap gap-4\">\n <a href={here} className=\"text-muted-foreground hover:underline\">\n Read again\n </a>\n {meeting.contributions.nextCursor === null ? null : (\n <a data-testid=\"meeting-older\" href={meetingPathOf({ fleetId: page.fleetId, meetingId, cursor: meeting.contributions.nextCursor })} className=\"text-muted-foreground hover:underline\">\n Older contributions\n </a>\n )}\n </div>\n <Participants participants={meeting.participants} />\n </div>\n );\n}\n","/**\n * The meeting a page shows, read through the gateway's API as the signed-in\n * account (decision 0061, M12): the meeting with a page of its contributions,\n * newest first, after the cursor the address names.\n */\nimport type { GatewayApi } from '../../../lib/gateway-api/gateway-api';\nimport { readOf, type Read } from '../../../lib/gateway-api/page-api';\nimport type { MeetingView } from '../services/meeting';\n\nexport function readMeeting(api: GatewayApi, asked: { meetingId: string; cursor: string | undefined }): Promise<Read<MeetingView>> {\n return readOf(api.people.meeting.query({ meetingId: asked.meetingId, ...(asked.cursor === undefined ? {} : { cursor: asked.cursor }) }));\n}\n","import type { MeetingView } from '../services/meeting';\n\n/** A meeting's contributions, newest first: who said it, when, and what. */\nexport function Contributions({ items }: { items: MeetingView['contributions']['items'] }) {\n if (items.length === 0) {\n return <p className=\"text-muted-foreground\">No one has contributed yet.</p>;\n }\n return (\n <ol data-testid=\"meeting-contributions\" className=\"grid gap-3\">\n {items.map((contribution) => (\n <li key={contribution.messageId} className=\"grid gap-1 rounded-md border border-border bg-card p-3 text-card-foreground\">\n <span className=\"text-caption text-muted-foreground\">\n {contribution.sender.name} · {new Date(contribution.sentAt).toUTCString()}\n </span>\n <p className=\"whitespace-pre-wrap break-words\">{contribution.payload}</p>\n </li>\n ))}\n </ol>\n );\n}\n","import type { MeetingView } from '../services/meeting';\n\n/** How a participant's crew and place in the meeting read (M13, M14): presence is shown, never checked. */\nconst STATUS_WORDS = { crewed: 'crewed', awaitingCrew: 'awaiting crew', retired: 'retired' } as const;\nconst STATE_WORDS = { present: 'in the meeting', left: 'left', revoked: 'revoked' } as const;\n\n/** Who takes part, each with whether it is crewed now and whether it is in the meeting. */\nexport function Participants({ participants }: { participants: MeetingView['participants'] }) {\n return (\n <section className=\"grid gap-2\">\n <h2 className=\"text-section font-semibold\">Participants · {participants.length}</h2>\n <ul data-testid=\"meeting-participants\" className=\"grid gap-1\">\n {participants.map((participant) => (\n <li key={participant.shipId} className=\"flex flex-wrap justify-between gap-2\">\n <span>{participant.name}</span>\n <span className=\"text-caption text-muted-foreground\">\n {STATUS_WORDS[participant.status]} · {STATE_WORDS[participant.state]}\n </span>\n </li>\n ))}\n </ul>\n </section>\n );\n}\n","import type { Metadata } from 'next';\n\nimport { Meeting } from '../../../../features/meeting/state/meeting';\nimport type { SearchParams } from '../../../../lib/gateway-api/page-api';\n\nexport const metadata: Metadata = { title: 'Meeting' };\n\nexport default async function MeetingPage({ params, searchParams }: { params: Promise<{ meetingId: string }>; searchParams: Promise<SearchParams> }) {\n const [{ meetingId }, query] = await Promise.all([params, searchParams]);\n return <Meeting meetingId={meetingId} searchParams={query} />;\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const MeetingControls = registerClientReference(\n function() { throw new Error(\"Attempted to call MeetingControls() from the server but MeetingControls 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/meeting/state/meeting-controls.tsx\",\n \"MeetingControls\",\n);\n"],"names":["readMeeting","api","asked","people","meeting","query","meetingId","cursor","undefined","MeetingControls","Error"],"mappings":"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","ignoreList":[5]}
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[50088,a=>{var b=a.i(70043),c=a.i(37936),d=a.i(29517);a.i(70396);var e=a.i(73727),f=a.i(55476),g=a.i(66283),h=a.i(81140),i=a.i(1324),j=a.i(29493),k=a.i(72913),l=a.i(13095);let m=new Set(["token","clientSecret"]);async function n(a,b){let c,l=(0,i.v)(b,i.H),n=Object.fromEntries(Object.entries((0,i.O)(b)).filter(([a])=>!m.has(a))),o=(0,d.f)("ship").safeParse((0,i.v)(b,"ownerShipId"));if(!o.success)return{kind:"refused",message:"Pick its owner",fields:n};let p=await (0,g.z)(l);try{c=(await p.parties.addA2aAgent.mutate({requestId:(0,i.v)(b,"requestId"),name:(0,i.v)(b,"name"),cardUrl:(0,i.v)(b,"cardUrl"),credential:(0,j.y)({credentialKind:(0,i.v)(b,"credentialKind"),token:(0,i.v)(b,"token"),clientId:(0,i.v)(b,"clientId"),clientSecret:(0,i.v)(b,"clientSecret"),issuer:(0,i.v)(b,"issuer"),scope:(0,i.v)(b,"scope")}),concurrencyLimit:Number((0,i.v)(b,"concurrencyLimit")),ownerShipId:o.data,scopes:(0,h.f)((0,i.O)(b))})).name}catch(a){return{kind:"refused",message:(0,g.s)(a),fields:n}}(0,e.redirect)((0,f.i)((0,k.N)(c),l))}(0,l.ensureServerEntryExports)([n]),(0,c.registerServerReference)(n,"603c02af05f2520217716b567bda68040ecbf48391",null),a.s(["40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae",()=>b.f,"603c02af05f2520217716b567bda68040ecbf48391",0,n],50088)},81140,a=>{var b=a.i(18379);a.s(["f",0,function(a){return Object.keys(a).flatMap(a=>a.startsWith(b.u)?[a.slice(b.u.length)]:[])}])},29493,a=>{let b=[{kind:"none",label:"No credential"},{kind:"bearer",label:"Bearer token"},{kind:"clientCredentials",label:"OAuth client credentials"}];a.s(["x",0,b,"y",0,function(a){var c;let d=(c=a.credentialKind,b.find(({kind:a})=>a===c)?.kind??"bearer");switch(d){case"none":return{kind:d};case"bearer":return{kind:d,token:a.token};case"clientCredentials":return{kind:d,clientId:a.clientId,clientSecret:a.clientSecret,issuer:a.issuer,...""===a.scope?{}:{scope:a.scope}}}}])}]})();
1
+ (()=>{"use strict";module.exports=[50088,a=>{var b=a.i(70043),c=a.i(37936),d=a.i(29517);a.i(70396);var e=a.i(73727),f=a.i(55476),g=a.i(66283),h=a.i(81140),i=a.i(1324),j=a.i(29493),k=a.i(72913),l=a.i(13095);let m=new Set(["token","clientSecret"]);async function n(a,b){let c,l=(0,i.v)(b,i.H),n=Object.fromEntries(Object.entries((0,i.O)(b)).filter(([a])=>!m.has(a))),o=(0,d.f)("ship").safeParse((0,i.v)(b,"ownerShipId"));if(!o.success)return{kind:"refused",message:"Pick its owner",fields:n};let p=await (0,g.z)(l);try{c=(await p.parties.addA2aAgent.mutate({requestId:(0,i.v)(b,"requestId"),name:(0,i.v)(b,"name"),cardUrl:(0,i.v)(b,"cardUrl"),credential:(0,j.y)({credentialKind:(0,i.v)(b,"credentialKind"),token:(0,i.v)(b,"token"),clientId:(0,i.v)(b,"clientId"),clientSecret:(0,i.v)(b,"clientSecret"),issuer:(0,i.v)(b,"issuer"),scope:(0,i.v)(b,"scope")}),concurrencyLimit:Number((0,i.v)(b,"concurrencyLimit")),ownerShipId:o.data,scopes:(0,h.f)((0,i.O)(b))})).name}catch(a){return{kind:"refused",message:(0,g.s)(a),fields:n}}(0,e.redirect)((0,f.i)((0,k.N)(c),l))}(0,l.ensureServerEntryExports)([n]),(0,c.registerServerReference)(n,"603a66de7defd7e5cc694c0d8e6c1bbafee5c3ccf9",null),a.s(["40902cb84b7eb130b75de3b2f47a2b153040b66213",()=>b.f,"603a66de7defd7e5cc694c0d8e6c1bbafee5c3ccf9",0,n],50088)},81140,a=>{var b=a.i(18379);a.s(["f",0,function(a){return Object.keys(a).flatMap(a=>a.startsWith(b.u)?[a.slice(b.u.length)]:[])}])},29493,a=>{let b=[{kind:"none",label:"No credential"},{kind:"bearer",label:"Bearer token"},{kind:"clientCredentials",label:"OAuth client credentials"}];a.s(["x",0,b,"y",0,function(a){var c;let d=(c=a.credentialKind,b.find(({kind:a})=>a===c)?.kind??"bearer");switch(d){case"none":return{kind:d};case"bearer":return{kind:d,token:a.token};case"clientCredentials":return{kind:d,clientId:a.clientId,clientSecret:a.clientSecret,issuer:a.issuer,...""===a.scope?{}:{scope:a.scope}}}}])}]})();
2
2
 
3
3
  //# sourceMappingURL=web_0wys4l6za8umr._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/outside-parties/add-a2a-agent/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/add-a2a-agent/actions.ts","../../../../../web/features/add-a2a-client/ticked-scopes.ts","../../../../../web/features/forms/server-credential.ts"],"sourcesContent":["export {setTheme as '40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae'} from 'ACTIONS_MODULE0'\nexport {addA2aAgent as '603c02af05f2520217716b567bda68040ecbf48391'} from 'ACTIONS_MODULE1'\n","'use server';\n\n/**\n * Adding an outside A2A agent by its card address (slice 5), as the account\n * signed in: the API checks it holds gateway:approve and grants only scopes\n * it holds, and the gateway reads the card before it commissions anything.\n * Added, the page goes to the agent's own page.\n */\nimport { idSchema } from '@aeolus-fleet/common';\nimport { redirect } from 'next/navigation';\n\nimport { inFleet } from '../../lib/gateway-api/page-account';\nimport { refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { tickedScopes } from '../add-a2a-client/ticked-scopes';\nimport { FLEET_FIELD, fieldOf, fieldsOf } from '../forms/form-state';\nimport { serverCredentialOf } from '../forms/server-credential';\nimport { partyPath } from '../outside-parties/paths';\n\n/** The fields that never travel back to the browser: the credential's secrets. */\nconst SECRET_FIELDS: ReadonlySet<string> = new Set(['token', 'clientSecret']);\n\n/** Where adding stands: not sent, or refused with why and what the browser sent, its secrets aside. */\nexport type AddA2aAgentState = { kind: 'idle' } | { kind: 'refused'; message: string; fields: Record<string, string> };\n\nexport async function addA2aAgent(_previous: AddA2aAgentState, form: FormData): Promise<AddA2aAgentState> {\n const fleetId = fieldOf(form, FLEET_FIELD);\n const fields = Object.fromEntries(Object.entries(fieldsOf(form)).filter(([field]) => !SECRET_FIELDS.has(field)));\n const ownerShipId = idSchema('ship').safeParse(fieldOf(form, 'ownerShipId'));\n if (!ownerShipId.success) {\n return { kind: 'refused', message: 'Pick its owner', fields };\n }\n const api = await requestApi(fleetId);\n let name: string;\n try {\n const added = await api.parties.addA2aAgent.mutate({\n requestId: fieldOf(form, 'requestId'),\n name: fieldOf(form, 'name'),\n cardUrl: fieldOf(form, 'cardUrl'),\n credential: serverCredentialOf({\n credentialKind: fieldOf(form, 'credentialKind'),\n token: fieldOf(form, 'token'),\n clientId: fieldOf(form, 'clientId'),\n clientSecret: fieldOf(form, 'clientSecret'),\n issuer: fieldOf(form, 'issuer'),\n scope: fieldOf(form, 'scope'),\n }),\n concurrencyLimit: Number(fieldOf(form, 'concurrencyLimit')),\n ownerShipId: ownerShipId.data,\n scopes: tickedScopes(fieldsOf(form)),\n });\n name = added.name;\n } catch (error) {\n return { kind: 'refused', message: refusalMessageOf(error), fields };\n }\n redirect(inFleet(partyPath(name), fleetId));\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 * An outside MCP server's credential, as the add, Parties and decision forms\n * take it: none for a server reached only on a private network, a static\n * bearer, or OAuth client credentials.\n */\n\n/** The credential kinds a form offers, with the words it shows. */\nexport const CREDENTIAL_KINDS = [\n { kind: 'none', label: 'No credential' },\n { kind: 'bearer', label: 'Bearer token' },\n { kind: 'clientCredentials', label: 'OAuth client credentials' },\n] as const;\n\nexport type CredentialKind = (typeof CREDENTIAL_KINDS)[number]['kind'];\n\nexport type ServerCredential =\n | { kind: 'none' }\n | { kind: 'bearer'; token: string }\n | { kind: 'clientCredentials'; clientId: string; clientSecret: string; issuer: string; scope?: string };\n\n/** The kind a form sent, a bearer when it sent none it knows. */\nexport function credentialKindOf(sent: string): CredentialKind {\n return CREDENTIAL_KINDS.find(({ kind }) => kind === sent)?.kind ?? 'bearer';\n}\n\n/** The credential the fields name: only the fields of its kind are read. */\nexport function serverCredentialOf(fields: { credentialKind: string; token: string; clientId: string; clientSecret: string; issuer: string; scope: string }): ServerCredential {\n const kind = credentialKindOf(fields.credentialKind);\n switch (kind) {\n case 'none':\n return { kind };\n case 'bearer':\n return { kind, token: fields.token };\n case 'clientCredentials':\n return { kind, clientId: fields.clientId, clientSecret: fields.clientSecret, issuer: fields.issuer, ...(fields.scope === '' ? {} : { scope: fields.scope }) };\n }\n}\n"],"names":["SECRET_FIELDS","Set","addA2aAgent","_previous","form","fleetId","fields","Object","fromEntries","entries","filter","field","has","ownerShipId","safeParse","success","kind","message","api","name","added","parties","mutate","requestId","cardUrl","credential","credentialKind","token","clientId","clientSecret","issuer","scope","concurrencyLimit","Number","data","scopes","error","tickedScopes","keys","flatMap","startsWith","slice","length","CREDENTIAL_KINDS","label","credentialKindOf","sent","find","serverCredentialOf"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/outside-parties/add-a2a-agent/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/add-a2a-agent/actions.ts","../../../../../web/features/add-a2a-client/ticked-scopes.ts","../../../../../web/features/forms/server-credential.ts"],"sourcesContent":["export {setTheme as '40902cb84b7eb130b75de3b2f47a2b153040b66213'} from 'ACTIONS_MODULE0'\nexport {addA2aAgent as '603a66de7defd7e5cc694c0d8e6c1bbafee5c3ccf9'} from 'ACTIONS_MODULE1'\n","'use server';\n\n/**\n * Adding an outside A2A agent by its card address (slice 5), as the account\n * signed in: the API checks it holds gateway:approve and grants only scopes\n * it holds, and the gateway reads the card before it commissions anything.\n * Added, the page goes to the agent's own page.\n */\nimport { idSchema } from '@aeolus-fleet/common';\nimport { redirect } from 'next/navigation';\n\nimport { inFleet } from '../../lib/gateway-api/page-account';\nimport { refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { tickedScopes } from '../add-a2a-client/ticked-scopes';\nimport { FLEET_FIELD, fieldOf, fieldsOf } from '../forms/form-state';\nimport { serverCredentialOf } from '../forms/server-credential';\nimport { partyPath } from '../outside-parties/paths';\n\n/** The fields that never travel back to the browser: the credential's secrets. */\nconst SECRET_FIELDS: ReadonlySet<string> = new Set(['token', 'clientSecret']);\n\n/** Where adding stands: not sent, or refused with why and what the browser sent, its secrets aside. */\nexport type AddA2aAgentState = { kind: 'idle' } | { kind: 'refused'; message: string; fields: Record<string, string> };\n\nexport async function addA2aAgent(_previous: AddA2aAgentState, form: FormData): Promise<AddA2aAgentState> {\n const fleetId = fieldOf(form, FLEET_FIELD);\n const fields = Object.fromEntries(Object.entries(fieldsOf(form)).filter(([field]) => !SECRET_FIELDS.has(field)));\n const ownerShipId = idSchema('ship').safeParse(fieldOf(form, 'ownerShipId'));\n if (!ownerShipId.success) {\n return { kind: 'refused', message: 'Pick its owner', fields };\n }\n const api = await requestApi(fleetId);\n let name: string;\n try {\n const added = await api.parties.addA2aAgent.mutate({\n requestId: fieldOf(form, 'requestId'),\n name: fieldOf(form, 'name'),\n cardUrl: fieldOf(form, 'cardUrl'),\n credential: serverCredentialOf({\n credentialKind: fieldOf(form, 'credentialKind'),\n token: fieldOf(form, 'token'),\n clientId: fieldOf(form, 'clientId'),\n clientSecret: fieldOf(form, 'clientSecret'),\n issuer: fieldOf(form, 'issuer'),\n scope: fieldOf(form, 'scope'),\n }),\n concurrencyLimit: Number(fieldOf(form, 'concurrencyLimit')),\n ownerShipId: ownerShipId.data,\n scopes: tickedScopes(fieldsOf(form)),\n });\n name = added.name;\n } catch (error) {\n return { kind: 'refused', message: refusalMessageOf(error), fields };\n }\n redirect(inFleet(partyPath(name), fleetId));\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 * An outside MCP server's credential, as the add, Parties and decision forms\n * take it: none for a server reached only on a private network, a static\n * bearer, or OAuth client credentials.\n */\n\n/** The credential kinds a form offers, with the words it shows. */\nexport const CREDENTIAL_KINDS = [\n { kind: 'none', label: 'No credential' },\n { kind: 'bearer', label: 'Bearer token' },\n { kind: 'clientCredentials', label: 'OAuth client credentials' },\n] as const;\n\nexport type CredentialKind = (typeof CREDENTIAL_KINDS)[number]['kind'];\n\nexport type ServerCredential =\n | { kind: 'none' }\n | { kind: 'bearer'; token: string }\n | { kind: 'clientCredentials'; clientId: string; clientSecret: string; issuer: string; scope?: string };\n\n/** The kind a form sent, a bearer when it sent none it knows. */\nexport function credentialKindOf(sent: string): CredentialKind {\n return CREDENTIAL_KINDS.find(({ kind }) => kind === sent)?.kind ?? 'bearer';\n}\n\n/** The credential the fields name: only the fields of its kind are read. */\nexport function serverCredentialOf(fields: { credentialKind: string; token: string; clientId: string; clientSecret: string; issuer: string; scope: string }): ServerCredential {\n const kind = credentialKindOf(fields.credentialKind);\n switch (kind) {\n case 'none':\n return { kind };\n case 'bearer':\n return { kind, token: fields.token };\n case 'clientCredentials':\n return { kind, clientId: fields.clientId, clientSecret: fields.clientSecret, issuer: fields.issuer, ...(fields.scope === '' ? {} : { scope: fields.scope }) };\n }\n}\n"],"names":["SECRET_FIELDS","Set","addA2aAgent","_previous","form","fleetId","fields","Object","fromEntries","entries","filter","field","has","ownerShipId","safeParse","success","kind","message","api","name","added","parties","mutate","requestId","cardUrl","credential","credentialKind","token","clientId","clientSecret","issuer","scope","concurrencyLimit","Number","data","scopes","error","tickedScopes","keys","flatMap","startsWith","slice","length","CREDENTIAL_KINDS","label","credentialKindOf","sent","find","serverCredentialOf"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- module.exports=[43928,a=>{"use strict";var b=a.i(70043),c=a.i(4757);a.S([b,"40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae,f",0,c,"4094bd2603f6cb4c692f8c5bbc35b6dfa0e2cd78a8,q,6014a23e56a6300e1adee24bc60d3989cf9a3ffcaa,G,60813b25998f3aa5040c7138940db92bf5b1bba1ae,v,60aac98a56e7babd7b75c679560c72a3ef6741a3b7,W,60b48f9537cbc087081a7c9cb59da4be205bfeabdd,_,60da3873bc1544318b9ef24fd1e90ef1716e80cdd3,y"],43928)}];
1
+ module.exports=[43928,a=>{"use strict";var b=a.i(70043),c=a.i(4757);a.S([b,"40902cb84b7eb130b75de3b2f47a2b153040b66213,f",0,c,"407fdc71225279b1910d205bebdac4e340715563d2,q,60044f517f385c5cea4390b7fef22814a4be1fe011,_,6066cfab8d8daf935202beccf9cb766d7c8ee16ce6,y,607aaf9ebfa222296e1881b5bd5e6486bb57c04254,W,60825ab6dd0d39e2a51185640737b7d2c96099f55a,G,60a1d4db2f5e19c856961568d7818645538e3ec885,v"],43928)}];
2
2
 
3
3
  //# sourceMappingURL=web__next-internal_server_app_%28console%29_overview_page_actions_18on1ziyg1nzy.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/overview/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '40e9a42ba8cfd90f0dd74f6fcb1ee9c16c64e374ae'} from 'ACTIONS_MODULE0'\nexport {answerDelivery as '4094bd2603f6cb4c692f8c5bbc35b6dfa0e2cd78a8'} from 'ACTIONS_MODULE1'\nexport {doneDelivery as '6014a23e56a6300e1adee24bc60d3989cf9a3ffcaa'} from 'ACTIONS_MODULE1'\nexport {openDelivery as '60813b25998f3aa5040c7138940db92bf5b1bba1ae'} from 'ACTIONS_MODULE1'\nexport {turnEmail as '60b48f9537cbc087081a7c9cb59da4be205bfeabdd'} from 'ACTIONS_MODULE1'\nexport {turnOffWebPush as '60aac98a56e7babd7b75c679560c72a3ef6741a3b7'} from 'ACTIONS_MODULE1'\nexport {turnOnWebPush as '60da3873bc1544318b9ef24fd1e90ef1716e80cdd3'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/overview/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '40902cb84b7eb130b75de3b2f47a2b153040b66213'} from 'ACTIONS_MODULE0'\nexport {answerDelivery as '407fdc71225279b1910d205bebdac4e340715563d2'} from 'ACTIONS_MODULE1'\nexport {doneDelivery as '60825ab6dd0d39e2a51185640737b7d2c96099f55a'} from 'ACTIONS_MODULE1'\nexport {openDelivery as '60a1d4db2f5e19c856961568d7818645538e3ec885'} from 'ACTIONS_MODULE1'\nexport {turnEmail as '60044f517f385c5cea4390b7fef22814a4be1fe011'} from 'ACTIONS_MODULE1'\nexport {turnOffWebPush as '607aaf9ebfa222296e1881b5bd5e6486bb57c04254'} from 'ACTIONS_MODULE1'\nexport {turnOnWebPush as '6066cfab8d8daf935202beccf9cb766d7c8ee16ce6'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[10020,a=>{var b=a.i(87924);a.s(["f",0,function({isOn:a,label:c,isPending:d=!1,type:e="button",onClick:f,testId:g}){return(0,b.jsx)("button",{type:e,role:"switch","aria-checked":a,"aria-label":c,"aria-busy":d,disabled:d,onClick:f,"data-testid":g,className:`inline-flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 transition-colors disabled:opacity-60 ${a?"border-primary bg-primary":"border-input bg-muted"}`,children:(0,b.jsx)("span",{className:`size-3.5 rounded-full bg-background shadow-sm transition-transform ${a?"translate-x-4":"translate-x-0"} ${d?"animate-pulse":""}`})})}])},73877,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(35112),e=a.i(30587),f=a.i(10020),g=a.i(5050);let h=(0,g.createServerReference)("6006cd6ed5454b8c34c176236313db65f23f52094d",g.callServer,void 0,g.findSourceMapURL,"markA2aAgent"),i={kind:"idle"};function j({isRepeatable:a}){let c=(0,d.useFormStatus)();return(0,b.jsx)(f.f,{type:"submit",isOn:a,label:"Repeatable",isPending:c.pending,testId:"outside-party-repeatable-switch"})}a.s(["RepeatableSwitch",0,function({fleetId:a,party:d,isRepeatable:f}){let[g,k]=(0,c.useActionState)(h,i),l="marked"===g.kind?g.isRepeatable:f;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("form",{action:k,className:"contents",children:[(0,b.jsx)("input",{type:"hidden",name:e.H,value:a}),(0,b.jsx)("input",{type:"hidden",name:"name",value:d}),(0,b.jsx)("input",{type:"hidden",name:"isRepeatable",value:String(!l)}),(0,b.jsx)(j,{isRepeatable:l})]}),"idle"===g.kind?null:(0,b.jsx)("span",{role:"refused"===g.kind?"alert":"status",className:`basis-full text-caption ${"refused"===g.kind?"text-tone-attention-fg":"text-tone-ok-fg"}`,"data-testid":"outside-party-repeatable-outcome",children:g.message})]})}],73877)},43673,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(35112),e=a.i(30587),f=a.i(10020),g=a.i(5050);let h=(0,g.createServerReference)("60a68d36449bc53cbd6e751425ac86bfa7a302a8bf",g.callServer,void 0,g.findSourceMapURL,"switchPartyTool"),i={kind:"idle"};function j({isOn:a,tool:c}){let e=(0,d.useFormStatus)();return(0,b.jsx)(f.f,{type:"submit",isOn:a,label:c,isPending:e.pending,testId:"outside-party-tool-switch"})}a.s(["ToolSwitch",0,function({fleetId:a,party:d,tool:f,isOn:g}){let[k,l]=(0,c.useActionState)(h,i),m="switched"===k.kind?k.isOn:g;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("form",{action:l,className:"contents",children:[(0,b.jsx)("input",{type:"hidden",name:e.H,value:a}),(0,b.jsx)("input",{type:"hidden",name:"name",value:d}),(0,b.jsx)("input",{type:"hidden",name:"tool",value:f}),(0,b.jsx)("input",{type:"hidden",name:"isOn",value:String(!m)}),(0,b.jsx)(j,{isOn:m,tool:f})]}),"idle"===k.kind?null:(0,b.jsx)("span",{role:"refused"===k.kind?"alert":"status",className:`order-last basis-full text-caption ${"refused"===k.kind?"text-tone-attention-fg":"text-tone-ok-fg"}`,"data-testid":"outside-party-tool-outcome",children:k.message})]})}],43673)}]})();
1
+ (()=>{"use strict";module.exports=[10020,a=>{var b=a.i(87924);a.s(["f",0,function({isOn:a,label:c,isPending:d=!1,type:e="button",onClick:f,testId:g}){return(0,b.jsx)("button",{type:e,role:"switch","aria-checked":a,"aria-label":c,"aria-busy":d,disabled:d,onClick:f,"data-testid":g,className:`inline-flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 transition-colors disabled:opacity-60 ${a?"border-primary bg-primary":"border-input bg-muted"}`,children:(0,b.jsx)("span",{className:`size-3.5 rounded-full bg-background shadow-sm transition-transform ${a?"translate-x-4":"translate-x-0"} ${d?"animate-pulse":""}`})})}])},73877,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(35112),e=a.i(30587),f=a.i(10020),g=a.i(5050);let h=(0,g.createServerReference)("609a0ac1fb8cf591f09ebeb0982ac9feae9848f7f9",g.callServer,void 0,g.findSourceMapURL,"markA2aAgent"),i={kind:"idle"};function j({isRepeatable:a}){let c=(0,d.useFormStatus)();return(0,b.jsx)(f.f,{type:"submit",isOn:a,label:"Repeatable",isPending:c.pending,testId:"outside-party-repeatable-switch"})}a.s(["RepeatableSwitch",0,function({fleetId:a,party:d,isRepeatable:f}){let[g,k]=(0,c.useActionState)(h,i),l="marked"===g.kind?g.isRepeatable:f;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("form",{action:k,className:"contents",children:[(0,b.jsx)("input",{type:"hidden",name:e.H,value:a}),(0,b.jsx)("input",{type:"hidden",name:"name",value:d}),(0,b.jsx)("input",{type:"hidden",name:"isRepeatable",value:String(!l)}),(0,b.jsx)(j,{isRepeatable:l})]}),"idle"===g.kind?null:(0,b.jsx)("span",{role:"refused"===g.kind?"alert":"status",className:`basis-full text-caption ${"refused"===g.kind?"text-tone-attention-fg":"text-tone-ok-fg"}`,"data-testid":"outside-party-repeatable-outcome",children:g.message})]})}],73877)},43673,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(35112),e=a.i(30587),f=a.i(10020),g=a.i(5050);let h=(0,g.createServerReference)("60843dc8cdfba379c08634bd86c9ae1e6e20250457",g.callServer,void 0,g.findSourceMapURL,"switchPartyTool"),i={kind:"idle"};function j({isOn:a,tool:c}){let e=(0,d.useFormStatus)();return(0,b.jsx)(f.f,{type:"submit",isOn:a,label:c,isPending:e.pending,testId:"outside-party-tool-switch"})}a.s(["ToolSwitch",0,function({fleetId:a,party:d,tool:f,isOn:g}){let[k,l]=(0,c.useActionState)(h,i),m="switched"===k.kind?k.isOn:g;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("form",{action:l,className:"contents",children:[(0,b.jsx)("input",{type:"hidden",name:e.H,value:a}),(0,b.jsx)("input",{type:"hidden",name:"name",value:d}),(0,b.jsx)("input",{type:"hidden",name:"tool",value:f}),(0,b.jsx)("input",{type:"hidden",name:"isOn",value:String(!m)}),(0,b.jsx)(j,{isOn:m,tool:f})]}),"idle"===k.kind?null:(0,b.jsx)("span",{role:"refused"===k.kind?"alert":"status",className:`order-last basis-full text-caption ${"refused"===k.kind?"text-tone-attention-fg":"text-tone-ok-fg"}`,"data-testid":"outside-party-tool-outcome",children:k.message})]})}],43673)}]})();
2
2
 
3
3
  //# sourceMappingURL=web_features_0i_kwiszuiqcp._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/features/forms/ui/switch.tsx","../../../../../web/features/outside-party/ui/repeatable-switch.tsx","../../../../../web/features/outside-party/data%3A2e68f8%20%3Ctext/javascript%3E","../../../../../web/features/outside-party/ui/tool-switch.tsx","../../../../../web/features/outside-party/data%3A2ea68c%20%3Ctext/javascript%3E"],"sourcesContent":["/** A switch: on or off, said by its look and to a screen reader, busy while its change is on its way. */\nexport function Switch({ isOn, label, isPending = false, type = 'button', onClick, testId }: { isOn: boolean; label: string; isPending?: boolean; type?: 'button' | 'submit'; onClick?: () => void; testId?: string }) {\n return (\n <button\n type={type}\n role=\"switch\"\n aria-checked={isOn}\n aria-label={label}\n aria-busy={isPending}\n disabled={isPending}\n onClick={onClick}\n data-testid={testId}\n className={`inline-flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 transition-colors disabled:opacity-60 ${isOn ? 'border-primary bg-primary' : 'border-input bg-muted'}`}\n >\n <span className={`size-3.5 rounded-full bg-background shadow-sm transition-transform ${isOn ? 'translate-x-4' : 'translate-x-0'} ${isPending ? 'animate-pulse' : ''}`} />\n </button>\n );\n}\n","'use client';\n\nimport { useActionState } from 'react';\nimport { useFormStatus } from 'react-dom';\n\nimport { FLEET_FIELD } from '../../forms/form-state';\nimport { Switch } from '../../forms/ui/switch';\nimport { markA2aAgent, type MarkState } from '../actions';\n\nconst IDLE: MarkState = { kind: 'idle' };\n\nfunction SubmitSwitch({ isRepeatable }: { isRepeatable: boolean }) {\n const status = useFormStatus();\n return <Switch type=\"submit\" isOn={isRepeatable} label=\"Repeatable\" isPending={status.pending} testId=\"outside-party-repeatable-switch\" />;\n}\n\n/**\n * An A2A agent's repeatable mark on its page, for an approver (A9): a press\n * sends the change at once, the switch says it is on its way, then the row\n * says what it means now, or why the API refused it.\n */\nexport function RepeatableSwitch({ fleetId, party, isRepeatable }: { fleetId: string; party: string; isRepeatable: boolean }) {\n const [state, action] = useActionState(markA2aAgent, IDLE);\n const shown = state.kind === 'marked' ? state.isRepeatable : isRepeatable;\n return (\n <>\n <form action={action} className=\"contents\">\n <input type=\"hidden\" name={FLEET_FIELD} value={fleetId} />\n <input type=\"hidden\" name=\"name\" value={party} />\n <input type=\"hidden\" name=\"isRepeatable\" value={String(!shown)} />\n <SubmitSwitch isRepeatable={shown} />\n </form>\n {state.kind === 'idle' ? null : (\n <span role={state.kind === 'refused' ? 'alert' : 'status'} className={`basis-full text-caption ${state.kind === 'refused' ? 'text-tone-attention-fg' : 'text-tone-ok-fg'}`} data-testid=\"outside-party-repeatable-outcome\">\n {state.message}\n </span>\n )}\n </>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"6006cd6ed5454b8c34c176236313db65f23f52094d\":{\"name\":\"markA2aAgent\"}},\"web/features/outside-party/actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_2=/*#__PURE__*/createServerReference(\"6006cd6ed5454b8c34c176236313db65f23f52094d\",callServer,void 0,findSourceMapURL,\"markA2aAgent\");export{$$RSC_SERVER_ACTION_2 as markA2aAgent};","'use client';\n\nimport { useActionState } from 'react';\nimport { useFormStatus } from 'react-dom';\n\nimport { FLEET_FIELD } from '../../forms/form-state';\nimport { Switch } from '../../forms/ui/switch';\nimport { switchPartyTool, type ToolSwitchState } from '../actions';\n\nconst IDLE: ToolSwitchState = { kind: 'idle' };\n\nfunction SubmitSwitch({ isOn, tool }: { isOn: boolean; tool: string }) {\n const status = useFormStatus();\n return <Switch type=\"submit\" isOn={isOn} label={tool} isPending={status.pending} testId=\"outside-party-tool-switch\" />;\n}\n\n/**\n * One tool's switch on a server's page, for an approver (aeolus-fleet#1151):\n * a press sends the change at once, the switch says it is on its way, then\n * the row says what the fleet sees now, or why the API refused it.\n */\nexport function ToolSwitch({ fleetId, party, tool, isOn }: { fleetId: string; party: string; tool: string; isOn: boolean }) {\n const [state, action] = useActionState(switchPartyTool, IDLE);\n const shownOn = state.kind === 'switched' ? state.isOn : isOn;\n return (\n <>\n <form action={action} className=\"contents\">\n <input type=\"hidden\" name={FLEET_FIELD} value={fleetId} />\n <input type=\"hidden\" name=\"name\" value={party} />\n <input type=\"hidden\" name=\"tool\" value={tool} />\n <input type=\"hidden\" name=\"isOn\" value={String(!shownOn)} />\n <SubmitSwitch isOn={shownOn} tool={tool} />\n </form>\n {state.kind === 'idle' ? null : (\n <span role={state.kind === 'refused' ? 'alert' : 'status'} className={`order-last basis-full text-caption ${state.kind === 'refused' ? 'text-tone-attention-fg' : 'text-tone-ok-fg'}`} data-testid=\"outside-party-tool-outcome\">\n {state.message}\n </span>\n )}\n </>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"60a68d36449bc53cbd6e751425ac86bfa7a302a8bf\":{\"name\":\"switchPartyTool\"}},\"web/features/outside-party/actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_1=/*#__PURE__*/createServerReference(\"60a68d36449bc53cbd6e751425ac86bfa7a302a8bf\",callServer,void 0,findSourceMapURL,\"switchPartyTool\");export{$$RSC_SERVER_ACTION_1 as switchPartyTool};"],"names":["Switch","isOn","label","isPending","type","onClick","testId","role","disabled","className","$$RSC_SERVER_ACTION_2","$$RSC_SERVER_ACTION_1"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../web/features/forms/ui/switch.tsx","../../../../../web/features/outside-party/ui/repeatable-switch.tsx","../../../../../web/features/outside-party/data%3A111ba8%20%3Ctext/javascript%3E","../../../../../web/features/outside-party/ui/tool-switch.tsx","../../../../../web/features/outside-party/data%3A48dc16%20%3Ctext/javascript%3E"],"sourcesContent":["/** A switch: on or off, said by its look and to a screen reader, busy while its change is on its way. */\nexport function Switch({ isOn, label, isPending = false, type = 'button', onClick, testId }: { isOn: boolean; label: string; isPending?: boolean; type?: 'button' | 'submit'; onClick?: () => void; testId?: string }) {\n return (\n <button\n type={type}\n role=\"switch\"\n aria-checked={isOn}\n aria-label={label}\n aria-busy={isPending}\n disabled={isPending}\n onClick={onClick}\n data-testid={testId}\n className={`inline-flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 transition-colors disabled:opacity-60 ${isOn ? 'border-primary bg-primary' : 'border-input bg-muted'}`}\n >\n <span className={`size-3.5 rounded-full bg-background shadow-sm transition-transform ${isOn ? 'translate-x-4' : 'translate-x-0'} ${isPending ? 'animate-pulse' : ''}`} />\n </button>\n );\n}\n","'use client';\n\nimport { useActionState } from 'react';\nimport { useFormStatus } from 'react-dom';\n\nimport { FLEET_FIELD } from '../../forms/form-state';\nimport { Switch } from '../../forms/ui/switch';\nimport { markA2aAgent, type MarkState } from '../actions';\n\nconst IDLE: MarkState = { kind: 'idle' };\n\nfunction SubmitSwitch({ isRepeatable }: { isRepeatable: boolean }) {\n const status = useFormStatus();\n return <Switch type=\"submit\" isOn={isRepeatable} label=\"Repeatable\" isPending={status.pending} testId=\"outside-party-repeatable-switch\" />;\n}\n\n/**\n * An A2A agent's repeatable mark on its page, for an approver (A9): a press\n * sends the change at once, the switch says it is on its way, then the row\n * says what it means now, or why the API refused it.\n */\nexport function RepeatableSwitch({ fleetId, party, isRepeatable }: { fleetId: string; party: string; isRepeatable: boolean }) {\n const [state, action] = useActionState(markA2aAgent, IDLE);\n const shown = state.kind === 'marked' ? state.isRepeatable : isRepeatable;\n return (\n <>\n <form action={action} className=\"contents\">\n <input type=\"hidden\" name={FLEET_FIELD} value={fleetId} />\n <input type=\"hidden\" name=\"name\" value={party} />\n <input type=\"hidden\" name=\"isRepeatable\" value={String(!shown)} />\n <SubmitSwitch isRepeatable={shown} />\n </form>\n {state.kind === 'idle' ? null : (\n <span role={state.kind === 'refused' ? 'alert' : 'status'} className={`basis-full text-caption ${state.kind === 'refused' ? 'text-tone-attention-fg' : 'text-tone-ok-fg'}`} data-testid=\"outside-party-repeatable-outcome\">\n {state.message}\n </span>\n )}\n </>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"609a0ac1fb8cf591f09ebeb0982ac9feae9848f7f9\":{\"name\":\"markA2aAgent\"}},\"web/features/outside-party/actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_2=/*#__PURE__*/createServerReference(\"609a0ac1fb8cf591f09ebeb0982ac9feae9848f7f9\",callServer,void 0,findSourceMapURL,\"markA2aAgent\");export{$$RSC_SERVER_ACTION_2 as markA2aAgent};","'use client';\n\nimport { useActionState } from 'react';\nimport { useFormStatus } from 'react-dom';\n\nimport { FLEET_FIELD } from '../../forms/form-state';\nimport { Switch } from '../../forms/ui/switch';\nimport { switchPartyTool, type ToolSwitchState } from '../actions';\n\nconst IDLE: ToolSwitchState = { kind: 'idle' };\n\nfunction SubmitSwitch({ isOn, tool }: { isOn: boolean; tool: string }) {\n const status = useFormStatus();\n return <Switch type=\"submit\" isOn={isOn} label={tool} isPending={status.pending} testId=\"outside-party-tool-switch\" />;\n}\n\n/**\n * One tool's switch on a server's page, for an approver (aeolus-fleet#1151):\n * a press sends the change at once, the switch says it is on its way, then\n * the row says what the fleet sees now, or why the API refused it.\n */\nexport function ToolSwitch({ fleetId, party, tool, isOn }: { fleetId: string; party: string; tool: string; isOn: boolean }) {\n const [state, action] = useActionState(switchPartyTool, IDLE);\n const shownOn = state.kind === 'switched' ? state.isOn : isOn;\n return (\n <>\n <form action={action} className=\"contents\">\n <input type=\"hidden\" name={FLEET_FIELD} value={fleetId} />\n <input type=\"hidden\" name=\"name\" value={party} />\n <input type=\"hidden\" name=\"tool\" value={tool} />\n <input type=\"hidden\" name=\"isOn\" value={String(!shownOn)} />\n <SubmitSwitch isOn={shownOn} tool={tool} />\n </form>\n {state.kind === 'idle' ? null : (\n <span role={state.kind === 'refused' ? 'alert' : 'status'} className={`order-last basis-full text-caption ${state.kind === 'refused' ? 'text-tone-attention-fg' : 'text-tone-ok-fg'}`} data-testid=\"outside-party-tool-outcome\">\n {state.message}\n </span>\n )}\n </>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"60843dc8cdfba379c08634bd86c9ae1e6e20250457\":{\"name\":\"switchPartyTool\"}},\"web/features/outside-party/actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_1=/*#__PURE__*/createServerReference(\"60843dc8cdfba379c08634bd86c9ae1e6e20250457\",callServer,void 0,findSourceMapURL,\"switchPartyTool\");export{$$RSC_SERVER_ACTION_1 as switchPartyTool};"],"names":["Switch","isOn","label","isPending","type","onClick","testId","role","disabled","className","$$RSC_SERVER_ACTION_2","$$RSC_SERVER_ACTION_1"],"mappings":"6CAAuG,IAAA,EAAA,EAAA,CAAA,CAAA,kBAChG,SAASA,AAAO,MAAEC,CAAI,OAAEC,CAAK,WAAEC,GAAY,CAAK,MAAEC,EAAO,QAAQ,SAAEC,CAAO,QAAEC,CAAM,CAA4H,EACnN,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CACCF,KAAMA,EACNG,KAAK,SACL,eAAcN,EACd,aAAYC,EACZ,YAAWC,EACXK,SAAUL,EACVE,QAASA,EACT,cAAaC,EACbG,UAAW,CAAC,0GAA0G,EAAER,EAAO,4BAA8B,wBAAA,CAAyB,UAEtL,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKQ,UAAW,CAAC,mEAAmE,EAAER,EAAO,gBAAkB,gBAAgB,CAAC,EAAEE,EAAY,gBAAkB,GAAA,CAAI,IAG3K,gCCfA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OCNoM,EAAA,EAAA,CAAA,CAAA,MAAsG,IAAMO,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,gBDSnb,EAAkB,CAAE,KAAM,MAAO,EAEvCA,SAAS,EAAa,cAAE,CAAY,CAA6B,EAC/D,IAAM,EAAS,CAAA,EAAA,EAAA,aAAa,AAAb,IACf,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAM,CAAA,CAAC,KAAK,SAAS,KAAM,EAAc,MAAM,aAAa,UAAW,EAAO,OAAO,CAAE,OAAO,mCACxG,2BAOO,SAAS,AAAiB,SAAE,CAAO,OAAE,CAAK,cAAE,CAAY,CAA6D,EAC1H,GAAM,CAAC,EAAO,EAAO,CAAG,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAc,GAC/C,EAAQ,AAAe,aAAT,IAAI,CAAgB,EAAM,YAAY,CAAG,EAC7D,MACE,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,OAAQ,EAAQ,UAAU,qBAC9B,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CAAM,KAAK,SAAS,KAAM,EAAA,CAAW,CAAE,MAAO,IAC/C,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CAAM,KAAK,SAAS,KAAK,OAAO,MAAO,IACxC,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CAAM,KAAK,SAAS,KAAK,eAAe,MAAO,OAAO,CAAC,KACxD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAa,aAAc,OAEd,SAAf,EAAM,IAAI,CAAc,KACvB,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,KAAqB,YAAf,EAAM,IAAI,CAAiB,QAAU,SAAU,UAAW,CAAC,wBAAwB,EAAiB,YAAf,EAAM,IAAI,CAAiB,yBAA2B,kBAAA,CAAmB,CAAE,cAAY,4CACrL,EAAM,OAAO,KAKxB,sCErCA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OCNuM,EAAA,EAAA,CAAA,CAAA,MAAsG,IAAMC,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,mBDStb,EAAwB,CAAE,KAAM,MAAO,EAE7C,SAAS,EAAa,MAAE,CAAI,MAAE,CAAI,CAAmC,EACnE,IAAM,EAAS,CAAA,EAAA,EAAA,aAAA,AAAa,IAC5B,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAM,CAAA,CAAC,KAAK,SAAS,KAAM,EAAM,MAAO,EAAM,UAAW,EAAO,OAAO,CAAE,OAAO,6BAC1F,qBAOO,SAAS,AAAW,SAAE,CAAO,OAAE,CAAK,CAAE,MAAI,MAAE,CAAI,CAAmE,EACxH,GAAM,CAAC,EAAO,EAAO,CAAG,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAiB,GAClD,EAAU,AAAe,eAAT,IAAI,CAAkB,EAAM,IAAI,CAAG,EACzD,MACE,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,OAAQ,EAAQ,UAAU,qBAC9B,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CAAM,KAAK,SAAS,KAAM,EAAA,CAAW,CAAE,MAAO,IAC/C,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CAAM,KAAK,SAAS,KAAK,OAAO,MAAO,IACxC,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CAAM,KAAK,SAAS,KAAK,OAAO,MAAO,IACxC,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CAAM,KAAK,SAAS,KAAK,OAAO,MAAO,OAAO,CAAC,KAChD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAa,KAAM,EAAS,KAAM,OAErB,SAAf,EAAM,IAAI,CAAc,KACvB,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,KAAqB,YAAf,EAAM,IAAI,CAAiB,QAAU,SAAU,UAAW,CAAC,mCAAmC,EAAiB,YAAf,EAAM,IAAI,CAAiB,yBAA2B,kBAAA,CAAmB,CAAE,cAAY,sCAChM,EAAM,OAAO,KAKxB"}
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[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","w",0,"h-9 w-full rounded-md border border-input bg-background px-3 font-mono text-code","z",0,"grid gap-1"])},51496,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresh() from the server but LiveRefresh 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/overview/state/live-refresh.tsx","LiveRefresh");a.s(["LiveRefresh",0,b])},20285,a=>{var b=a.i(51496);a.n(b)},67395,a=>{var b=a.i(7997);a.s(["f",0,function({message:a,isFailure:c}){return c?(0,b.jsx)("p",{role:"alert","data-testid":"overview-failure",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:a}):(0,b.jsx)("p",{role:"status","data-testid":"overview-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:a})}])},65044,a=>{var b=a.i(7997),c=a.i(11393);let d={waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",active:"border-tone-active-border bg-tone-active-bg text-tone-active-fg",ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg",ended:"border-tone-ended-border bg-tone-ended-bg text-tone-ended-fg"};function e({status:a}){return(0,b.jsx)("span",{className:`inline-flex shrink-0 items-center rounded-full border px-2 py-0.5 text-caption ${d[a.tone]}`,children:a.label})}function f({name:a}){return(0,b.jsx)("span",{"aria-hidden":"true",className:"inline-flex size-8 shrink-0 items-center justify-center rounded-md bg-secondary font-semibold text-secondary-foreground",children:a.slice(0,1).toUpperCase()})}function g({request:a,now:d}){let h=(0,c.M)(a);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f,{name:h}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"truncate",children:h}),(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:(0,c.E)(a)})]}),(0,b.jsx)(e,{status:(0,c.T)(a,d)})]})}a.s(["f",0,function({title:a,requests:c,now:d,hrefOf:e,currentId:f}){return(0,b.jsxs)("section",{className:"grid gap-2",children:[(0,b.jsxs)("h2",{className:"text-section font-semibold",children:[a," · ",c.length]}),c.map(a=>void 0===e?(0,b.jsx)("div",{className:"flex items-center gap-3 rounded-md border border-border bg-card p-3",children:(0,b.jsx)(g,{request:a,now:d})},a.requestId):(0,b.jsx)("a",{href:e(a),"aria-current":a.requestId===f?"true":void 0,"data-testid":"overview-request",className:"flex items-center gap-3 rounded-md border border-border bg-card p-3 hover:bg-accent aria-[current=true]:border-ring",children:(0,b.jsx)(g,{request:a,now:d})},a.requestId))]})}],65044)},22126,a=>{var b=a.i(7997),c=a.i(49144);a.s(["f",0,function(){return(0,b.jsxs)("section",{className:c.r,"data-testid":"no-sign-in",children:[(0,b.jsx)("h2",{className:"text-heading font-semibold",children:"Nobody signs in here"}),(0,b.jsx)("p",{className:"mt-2 text-muted-foreground",children:"This gateway signs no one in to its pages: it is no app at pagasae."})]})}])}]})();
2
+
3
+ //# sourceMappingURL=web_features_1k6q2m0sl54-8._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../web/features/forms/ui/look.ts","../../../../../web/features/overview/state/live-refresh.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/overview/state/live-refresh.tsx%22%20%7D","../../../../../web/features/overview/ui/notice.tsx","../../../../../web/features/overview/ui/requests-list.tsx","../../../../../web/features/overview/ui/status-badge.tsx","../../../../../web/features/sign-in/ui/no-sign-in.tsx"],"sourcesContent":["/** 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\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\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","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const LiveRefresh = registerClientReference(\n function() { throw new Error(\"Attempted to call LiveRefresh() from the server but LiveRefresh 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/overview/state/live-refresh.tsx\",\n \"LiveRefresh\",\n);\n","/** What an action came to, said in place: a success as a status, a failure as an alert by the control. */\nexport function Notice({ message, isFailure }: { message: string; isFailure: boolean }) {\n return isFailure ? (\n <p role=\"alert\" data-testid=\"overview-failure\" className=\"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg\">\n {message}\n </p>\n ) : (\n <p role=\"status\" data-testid=\"overview-success\" className=\"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg\">\n {message}\n </p>\n );\n}\n","import { requestStatus, subjectKind, subjectName, type ShownRequest } from '../services/requests';\nimport { StatusBadge } from './status-badge';\n\nfunction PartyMark({ name }: { name: string }) {\n return (\n <span aria-hidden=\"true\" className=\"inline-flex size-8 shrink-0 items-center justify-center rounded-md bg-secondary font-semibold text-secondary-foreground\">\n {name.slice(0, 1).toUpperCase()}\n </span>\n );\n}\n\nfunction RequestRow({ request, now }: { request: ShownRequest; now: Date }) {\n const name = subjectName(request);\n return (\n <>\n <PartyMark name={name} />\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate\">{name}</span>\n <span className=\"text-caption text-muted-foreground\">{subjectKind(request)}</span>\n </span>\n <StatusBadge status={requestStatus(request, now)} />\n </>\n );\n}\n\n/** Requests in a list: each a link to decide it, or, for the person's own, its state alone. */\nexport function RequestsList({ title, requests, now, hrefOf, currentId }: { title: string; requests: readonly ShownRequest[]; now: Date; hrefOf?: (request: ShownRequest) => string; currentId?: string }) {\n return (\n <section className=\"grid gap-2\">\n <h2 className=\"text-section font-semibold\">\n {title} · {requests.length}\n </h2>\n {requests.map((request) =>\n hrefOf === undefined ? (\n <div key={request.requestId} className=\"flex items-center gap-3 rounded-md border border-border bg-card p-3\">\n <RequestRow request={request} now={now} />\n </div>\n ) : (\n <a\n key={request.requestId}\n href={hrefOf(request)}\n aria-current={request.requestId === currentId ? 'true' : undefined}\n data-testid=\"overview-request\"\n className=\"flex items-center gap-3 rounded-md border border-border bg-card p-3 hover:bg-accent aria-[current=true]:border-ring\"\n >\n <RequestRow request={request} now={now} />\n </a>\n ),\n )}\n </section>\n );\n}\n","import type { Status, Tone } from '../services/requests';\n\nconst TONES: Record<Tone, string> = {\n waiting: 'border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg',\n active: 'border-tone-active-border bg-tone-active-bg text-tone-active-fg',\n ok: 'border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg',\n attention: 'border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg',\n ended: 'border-tone-ended-border bg-tone-ended-bg text-tone-ended-fg',\n};\n\n/** A status in its tone, always with its words, so it never rests on colour alone. */\nexport function StatusBadge({ status }: { status: Status }) {\n return <span className={`inline-flex shrink-0 items-center rounded-full border px-2 py-0.5 text-caption ${TONES[status.tone]}`}>{status.label}</span>;\n}\n","import { CARD } from '../../forms/ui/look';\n\n/** A gateway that is no app at pagasae signs no one in to its pages (header design H5). */\nexport function NoSignIn() {\n return (\n <section className={CARD} data-testid=\"no-sign-in\">\n <h2 className=\"text-heading font-semibold\">Nobody signs in here</h2>\n <p className=\"mt-2 text-muted-foreground\">This gateway signs no one in to its pages: it is no app at pagasae.</p>\n </section>\n );\n}\n"],"names":["CARD","BUTTON","BUTTONS","primary","secondary","destructive","INPUT","LABEL","LiveRefresh","Error","Notice","message","isFailure","role","className","TONES","waiting","active","ok","attention","ended","StatusBadge","status","tone","label","NoSignIn"],"mappings":"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","ignoreList":[1]}
@@ -1,3 +1,3 @@
1
- module.exports=[96001,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(30587),e=a.i(60224),f=a.i(88412),g=a.i(36855),h=a.i(35149),i=a.i(77237),j=a.i(64943),k=a.i(5050);let l=(0,k.createServerReference)("603c02af05f2520217716b567bda68040ecbf48391",k.callServer,void 0,k.findSourceMapURL,"addA2aAgent"),m={kind:"idle"};a.s(["A2aAgentForm",0,function({fleetId:a,requestId:k,owners:n,scopes:o}){let[p,q]=(0,c.useActionState)(l,m),r="refused"===p.kind?p.fields:{};return(0,b.jsxs)("form",{action:q,className:`${f.r} grid gap-3`,"data-testid":"add-a2a-agent-form",children:[(0,b.jsx)("input",{type:"hidden",name:d.H,value:a}),(0,b.jsx)("input",{type:"hidden",name:"requestId",value:k}),(0,b.jsx)("h1",{className:"text-title font-semibold",children:"Add an A2A agent"}),(0,b.jsx)(g.f,{state:"refused"===p.kind?p:{kind:"idle"}}),(0,b.jsxs)("label",{className:f.z,children:[(0,b.jsx)("span",{children:"Name, the proxy ship's"}),(0,b.jsx)("input",{className:f.w,name:"name",defaultValue:r.name??"",required:!0})]}),(0,b.jsxs)("label",{className:f.z,children:[(0,b.jsx)("span",{children:"Card address"}),(0,b.jsx)("input",{className:f.w,type:"url",name:"cardUrl",defaultValue:r.cardUrl??"",placeholder:"https://agent.example.com/.well-known/agent-card.json",required:!0}),(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:"The gateway reads the card first: an agent whose card it cannot state is not added."})]}),(0,b.jsx)(e.f,{legend:"The agent's credential",fields:r,noneHelp:"The gateway sends no credential: for an agent that asks for none."}),(0,b.jsxs)("label",{className:f.z,children:[(0,b.jsx)("span",{children:"Messages in flight at once"}),(0,b.jsx)("input",{className:f.w,type:"number",name:"concurrencyLimit",min:1,max:10,defaultValue:r.concurrencyLimit??"4"})]}),(0,b.jsx)(h.f,{choices:n.isOk?n.value:[],current:null,help:"A person ship or argo. It answers for this agent.",refusal:n.isOk?void 0:n.refusal}),0===o.length?null:(0,b.jsxs)("fieldset",{className:"grid gap-2",children:[(0,b.jsx)("legend",{className:"font-medium",children:"Scopes, beside sending and receiving"}),o.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",name:`${j.f}${a}`,defaultChecked:void 0!==r[`${j.f}${a}`]}),(0,b.jsx)("span",{className:"font-mono text-code",children:a})]},a))]}),(0,b.jsx)("div",{children:(0,b.jsx)(i.f,{pending:"Reading the card…",children:"Add"})})]})}],96001)}];
1
+ module.exports=[96001,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(30587),e=a.i(60224),f=a.i(88412),g=a.i(36855),h=a.i(35149),i=a.i(77237),j=a.i(64943),k=a.i(5050);let l=(0,k.createServerReference)("603a66de7defd7e5cc694c0d8e6c1bbafee5c3ccf9",k.callServer,void 0,k.findSourceMapURL,"addA2aAgent"),m={kind:"idle"};a.s(["A2aAgentForm",0,function({fleetId:a,requestId:k,owners:n,scopes:o}){let[p,q]=(0,c.useActionState)(l,m),r="refused"===p.kind?p.fields:{};return(0,b.jsxs)("form",{action:q,className:`${f.r} grid gap-3`,"data-testid":"add-a2a-agent-form",children:[(0,b.jsx)("input",{type:"hidden",name:d.H,value:a}),(0,b.jsx)("input",{type:"hidden",name:"requestId",value:k}),(0,b.jsx)("h1",{className:"text-title font-semibold",children:"Add an A2A agent"}),(0,b.jsx)(g.f,{state:"refused"===p.kind?p:{kind:"idle"}}),(0,b.jsxs)("label",{className:f.z,children:[(0,b.jsx)("span",{children:"Name, the proxy ship's"}),(0,b.jsx)("input",{className:f.w,name:"name",defaultValue:r.name??"",required:!0})]}),(0,b.jsxs)("label",{className:f.z,children:[(0,b.jsx)("span",{children:"Card address"}),(0,b.jsx)("input",{className:f.w,type:"url",name:"cardUrl",defaultValue:r.cardUrl??"",placeholder:"https://agent.example.com/.well-known/agent-card.json",required:!0}),(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:"The gateway reads the card first: an agent whose card it cannot state is not added."})]}),(0,b.jsx)(e.f,{legend:"The agent's credential",fields:r,noneHelp:"The gateway sends no credential: for an agent that asks for none."}),(0,b.jsxs)("label",{className:f.z,children:[(0,b.jsx)("span",{children:"Messages in flight at once"}),(0,b.jsx)("input",{className:f.w,type:"number",name:"concurrencyLimit",min:1,max:10,defaultValue:r.concurrencyLimit??"4"})]}),(0,b.jsx)(h.f,{choices:n.isOk?n.value:[],current:null,help:"A person ship or argo. It answers for this agent.",refusal:n.isOk?void 0:n.refusal}),0===o.length?null:(0,b.jsxs)("fieldset",{className:"grid gap-2",children:[(0,b.jsx)("legend",{className:"font-medium",children:"Scopes, beside sending and receiving"}),o.map(a=>(0,b.jsxs)("label",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",name:`${j.f}${a}`,defaultChecked:void 0!==r[`${j.f}${a}`]}),(0,b.jsx)("span",{className:"font-mono text-code",children:a})]},a))]}),(0,b.jsx)("div",{children:(0,b.jsx)(i.f,{pending:"Reading the card…",children:"Add"})})]})}],96001)}];
2
2
 
3
3
  //# sourceMappingURL=web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map