@aeolus-fleet/gateway 0.32.1 → 0.33.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 (539) hide show
  1. package/README.md +22 -3
  2. package/dist/adapters/crypto/slack-install-seals.d.ts +3 -0
  3. package/dist/adapters/crypto/slack-install-seals.js +15 -0
  4. package/dist/adapters/crypto/slack-install-seals.js.map +1 -0
  5. package/dist/adapters/crypto/slack-link-seals.d.ts +3 -0
  6. package/dist/adapters/crypto/slack-link-seals.js +15 -0
  7. package/dist/adapters/crypto/slack-link-seals.js.map +1 -0
  8. package/dist/adapters/crypto/slack-signatures.d.ts +3 -0
  9. package/dist/adapters/crypto/slack-signatures.js +14 -0
  10. package/dist/adapters/crypto/slack-signatures.js.map +1 -0
  11. package/dist/adapters/fleet/slack-ships.d.ts +15 -0
  12. package/dist/adapters/fleet/slack-ships.js +32 -0
  13. package/dist/adapters/fleet/slack-ships.js.map +1 -0
  14. package/dist/adapters/http/mcp-endpoint.js +1 -1
  15. package/dist/adapters/http/mcp-endpoint.js.map +1 -1
  16. package/dist/adapters/http/oauth-routes.d.ts +4 -1
  17. package/dist/adapters/http/oauth-routes.js +21 -9
  18. package/dist/adapters/http/oauth-routes.js.map +1 -1
  19. package/dist/adapters/http/openai-apps-challenge.d.ts +10 -0
  20. package/dist/adapters/http/openai-apps-challenge.js +9 -0
  21. package/dist/adapters/http/openai-apps-challenge.js.map +1 -0
  22. package/dist/adapters/http/person-tools.d.ts +24 -1
  23. package/dist/adapters/http/person-tools.js +43 -11
  24. package/dist/adapters/http/person-tools.js.map +1 -1
  25. package/dist/adapters/http/slack-routes.d.ts +28 -0
  26. package/dist/adapters/http/slack-routes.js +173 -0
  27. package/dist/adapters/http/slack-routes.js.map +1 -0
  28. package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
  29. package/dist/adapters/prisma/fleet-forgetter.js +2 -2
  30. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  31. package/dist/adapters/prisma/generated/browser.d.ts +25 -0
  32. package/dist/adapters/prisma/generated/client.d.ts +25 -0
  33. package/dist/adapters/prisma/generated/internal/class.d.ts +55 -0
  34. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  35. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  36. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +452 -1
  37. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +72 -1
  38. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  39. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +76 -0
  40. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +72 -1
  41. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  42. package/dist/adapters/prisma/generated/models/SlackApp.d.ts +1229 -0
  43. package/dist/adapters/prisma/generated/models/SlackApp.js +2 -0
  44. package/dist/adapters/prisma/generated/models/SlackApp.js.map +1 -0
  45. package/dist/adapters/prisma/generated/models/SlackEvent.d.ts +1229 -0
  46. package/dist/adapters/prisma/generated/models/SlackEvent.js +2 -0
  47. package/dist/adapters/prisma/generated/models/SlackEvent.js.map +1 -0
  48. package/dist/adapters/prisma/generated/models/SlackLink.d.ts +1126 -0
  49. package/dist/adapters/prisma/generated/models/SlackLink.js +2 -0
  50. package/dist/adapters/prisma/generated/models/SlackLink.js.map +1 -0
  51. package/dist/adapters/prisma/generated/models/SlackPost.d.ts +1174 -0
  52. package/dist/adapters/prisma/generated/models/SlackPost.js +2 -0
  53. package/dist/adapters/prisma/generated/models/SlackPost.js.map +1 -0
  54. package/dist/adapters/prisma/generated/models/SlackWorkspace.d.ts +1143 -0
  55. package/dist/adapters/prisma/generated/models/SlackWorkspace.js +2 -0
  56. package/dist/adapters/prisma/generated/models/SlackWorkspace.js.map +1 -0
  57. package/dist/adapters/prisma/generated/models.d.ts +5 -0
  58. package/dist/adapters/prisma/slack-events.d.ts +8 -0
  59. package/dist/adapters/prisma/slack-events.js +55 -0
  60. package/dist/adapters/prisma/slack-events.js.map +1 -0
  61. package/dist/adapters/prisma/slack-links.d.ts +8 -0
  62. package/dist/adapters/prisma/slack-links.js +49 -0
  63. package/dist/adapters/prisma/slack-links.js.map +1 -0
  64. package/dist/adapters/prisma/slack-posts.d.ts +4 -0
  65. package/dist/adapters/prisma/slack-posts.js +42 -0
  66. package/dist/adapters/prisma/slack-posts.js.map +1 -0
  67. package/dist/adapters/prisma/slack-stores.d.ts +6 -0
  68. package/dist/adapters/prisma/slack-stores.js +115 -0
  69. package/dist/adapters/prisma/slack-stores.js.map +1 -0
  70. package/dist/adapters/slack/slack-call.d.ts +15 -0
  71. package/dist/adapters/slack/slack-call.js +41 -0
  72. package/dist/adapters/slack/slack-call.js.map +1 -0
  73. package/dist/adapters/slack/slack-messages.d.ts +4 -0
  74. package/dist/adapters/slack/slack-messages.js +53 -0
  75. package/dist/adapters/slack/slack-messages.js.map +1 -0
  76. package/dist/adapters/slack/slack-sign-in.d.ts +4 -0
  77. package/dist/adapters/slack/slack-sign-in.js +33 -0
  78. package/dist/adapters/slack/slack-sign-in.js.map +1 -0
  79. package/dist/adapters/slack/slack-tooling.d.ts +6 -0
  80. package/dist/adapters/slack/slack-tooling.js +68 -0
  81. package/dist/adapters/slack/slack-tooling.js.map +1 -0
  82. package/dist/adapters/trpc/router.d.ts +149 -1
  83. package/dist/adapters/trpc/router.js +117 -6
  84. package/dist/adapters/trpc/router.js.map +1 -1
  85. package/dist/app.d.ts +4 -0
  86. package/dist/app.js +143 -15
  87. package/dist/app.js.map +1 -1
  88. package/dist/bin/aeolus-gateway.js +2 -0
  89. package/dist/bin/aeolus-gateway.js.map +1 -1
  90. package/dist/config.d.ts +8 -0
  91. package/dist/config.js +4 -0
  92. package/dist/config.js.map +1 -1
  93. package/dist/core/connection/connect.d.ts +12 -0
  94. package/dist/core/connection/connect.js +11 -4
  95. package/dist/core/connection/connect.js.map +1 -1
  96. package/dist/core/connection/declare-gateway-scopes.d.ts +15 -0
  97. package/dist/core/connection/declare-gateway-scopes.js +23 -0
  98. package/dist/core/connection/declare-gateway-scopes.js.map +1 -0
  99. package/dist/core/oauth/exchange-token.d.ts +1 -0
  100. package/dist/core/oauth/exchange-token.js +4 -3
  101. package/dist/core/oauth/exchange-token.js.map +1 -1
  102. package/dist/core/oauth/read-authorization.d.ts +3 -3
  103. package/dist/core/oauth/read-authorization.js +6 -5
  104. package/dist/core/oauth/read-authorization.js.map +1 -1
  105. package/dist/core/people/ports.d.ts +23 -2
  106. package/dist/core/people/wake-person.d.ts +9 -2
  107. package/dist/core/people/wake-person.js +33 -9
  108. package/dist/core/people/wake-person.js.map +1 -1
  109. package/dist/core/shared/errors.d.ts +1 -1
  110. package/dist/core/shared/errors.js.map +1 -1
  111. package/dist/core/sign-in/start-sign-in.d.ts +4 -1
  112. package/dist/core/sign-in/start-sign-in.js +8 -2
  113. package/dist/core/sign-in/start-sign-in.js.map +1 -1
  114. package/dist/core/slack/answer-in-slack.d.ts +36 -0
  115. package/dist/core/slack/answer-in-slack.js +51 -0
  116. package/dist/core/slack/answer-in-slack.js.map +1 -0
  117. package/dist/core/slack/complete-install.d.ts +27 -0
  118. package/dist/core/slack/complete-install.js +36 -0
  119. package/dist/core/slack/complete-install.js.map +1 -0
  120. package/dist/core/slack/complete-link.d.ts +41 -0
  121. package/dist/core/slack/complete-link.js +64 -0
  122. package/dist/core/slack/complete-link.js.map +1 -0
  123. package/dist/core/slack/connect-slack.d.ts +34 -0
  124. package/dist/core/slack/connect-slack.js +54 -0
  125. package/dist/core/slack/connect-slack.js.map +1 -0
  126. package/dist/core/slack/disconnect-slack.d.ts +21 -0
  127. package/dist/core/slack/disconnect-slack.js +31 -0
  128. package/dist/core/slack/disconnect-slack.js.map +1 -0
  129. package/dist/core/slack/expose-ship.d.ts +35 -0
  130. package/dist/core/slack/expose-ship.js +59 -0
  131. package/dist/core/slack/expose-ship.js.map +1 -0
  132. package/dist/core/slack/follow-exposed-ships.d.ts +20 -0
  133. package/dist/core/slack/follow-exposed-ships.js +43 -0
  134. package/dist/core/slack/follow-exposed-ships.js.map +1 -0
  135. package/dist/core/slack/gateway-bot.d.ts +20 -0
  136. package/dist/core/slack/gateway-bot.js +22 -0
  137. package/dist/core/slack/gateway-bot.js.map +1 -0
  138. package/dist/core/slack/kept-slack-event.d.ts +30 -0
  139. package/dist/core/slack/kept-slack-event.js +5 -0
  140. package/dist/core/slack/kept-slack-event.js.map +1 -0
  141. package/dist/core/slack/list-exposable.d.ts +25 -0
  142. package/dist/core/slack/list-exposable.js +32 -0
  143. package/dist/core/slack/list-exposable.js.map +1 -0
  144. package/dist/core/slack/ports.d.ts +288 -0
  145. package/dist/core/slack/ports.js +2 -0
  146. package/dist/core/slack/ports.js.map +1 -0
  147. package/dist/core/slack/read-slack-link.d.ts +23 -0
  148. package/dist/core/slack/read-slack-link.js +20 -0
  149. package/dist/core/slack/read-slack-link.js.map +1 -0
  150. package/dist/core/slack/read-slack.d.ts +42 -0
  151. package/dist/core/slack/read-slack.js +35 -0
  152. package/dist/core/slack/read-slack.js.map +1 -0
  153. package/dist/core/slack/remove-bot.d.ts +24 -0
  154. package/dist/core/slack/remove-bot.js +33 -0
  155. package/dist/core/slack/remove-bot.js.map +1 -0
  156. package/dist/core/slack/rotate-configuration-tokens.d.ts +13 -0
  157. package/dist/core/slack/rotate-configuration-tokens.js +14 -0
  158. package/dist/core/slack/rotate-configuration-tokens.js.map +1 -0
  159. package/dist/core/slack/send-slack-events.d.ts +29 -0
  160. package/dist/core/slack/send-slack-events.js +78 -0
  161. package/dist/core/slack/send-slack-events.js.map +1 -0
  162. package/dist/core/slack/ship-bot.d.ts +23 -0
  163. package/dist/core/slack/ship-bot.js +25 -0
  164. package/dist/core/slack/ship-bot.js.map +1 -0
  165. package/dist/core/slack/show-all-in-slack.d.ts +16 -0
  166. package/dist/core/slack/show-all-in-slack.js +18 -0
  167. package/dist/core/slack/show-all-in-slack.js.map +1 -0
  168. package/dist/core/slack/show-in-slack.d.ts +38 -0
  169. package/dist/core/slack/show-in-slack.js +154 -0
  170. package/dist/core/slack/show-in-slack.js.map +1 -0
  171. package/dist/core/slack/slack-app.d.ts +77 -0
  172. package/dist/core/slack/slack-app.js +53 -0
  173. package/dist/core/slack/slack-app.js.map +1 -0
  174. package/dist/core/slack/slack-event.d.ts +51 -0
  175. package/dist/core/slack/slack-event.js +18 -0
  176. package/dist/core/slack/slack-event.js.map +1 -0
  177. package/dist/core/slack/slack-link.d.ts +20 -0
  178. package/dist/core/slack/slack-link.js +2 -0
  179. package/dist/core/slack/slack-link.js.map +1 -0
  180. package/dist/core/slack/slack-markdown.d.ts +13 -0
  181. package/dist/core/slack/slack-markdown.js +27 -0
  182. package/dist/core/slack/slack-markdown.js.map +1 -0
  183. package/dist/core/slack/slack-post-of.d.ts +27 -0
  184. package/dist/core/slack/slack-post-of.js +71 -0
  185. package/dist/core/slack/slack-post-of.js.map +1 -0
  186. package/dist/core/slack/slack-post.d.ts +31 -0
  187. package/dist/core/slack/slack-post.js +5 -0
  188. package/dist/core/slack/slack-post.js.map +1 -0
  189. package/dist/core/slack/slack-request.d.ts +17 -0
  190. package/dist/core/slack/slack-request.js +10 -0
  191. package/dist/core/slack/slack-request.js.map +1 -0
  192. package/dist/core/slack/slack-workspace.d.ts +36 -0
  193. package/dist/core/slack/slack-workspace.js +7 -0
  194. package/dist/core/slack/slack-workspace.js.map +1 -0
  195. package/dist/core/slack/start-install.d.ts +43 -0
  196. package/dist/core/slack/start-install.js +57 -0
  197. package/dist/core/slack/start-install.js.map +1 -0
  198. package/dist/core/slack/start-link.d.ts +32 -0
  199. package/dist/core/slack/start-link.js +46 -0
  200. package/dist/core/slack/start-link.js.map +1 -0
  201. package/dist/core/slack/stop-slack-link.d.ts +16 -0
  202. package/dist/core/slack/stop-slack-link.js +9 -0
  203. package/dist/core/slack/stop-slack-link.js.map +1 -0
  204. package/dist/core/slack/take-access-token.d.ts +25 -0
  205. package/dist/core/slack/take-access-token.js +45 -0
  206. package/dist/core/slack/take-access-token.js.map +1 -0
  207. package/dist/core/slack/take-slack-event.d.ts +47 -0
  208. package/dist/core/slack/take-slack-event.js +75 -0
  209. package/dist/core/slack/take-slack-event.js.map +1 -0
  210. package/dist/core/slack/unlink-slack.d.ts +9 -0
  211. package/dist/core/slack/unlink-slack.js +9 -0
  212. package/dist/core/slack/unlink-slack.js.map +1 -0
  213. package/dist/slack-event-worker.d.ts +21 -0
  214. package/dist/slack-event-worker.js +38 -0
  215. package/dist/slack-event-worker.js.map +1 -0
  216. package/dist/slack-token-worker.d.ts +19 -0
  217. package/dist/slack-token-worker.js +24 -0
  218. package/dist/slack-token-worker.js.map +1 -0
  219. package/package.json +3 -2
  220. package/src/adapters/prisma/migrations/20261027090000_slack_workspaces/migration.sql +30 -0
  221. package/src/adapters/prisma/migrations/20261027150000_slack_bots/migration.sql +6 -0
  222. package/src/adapters/prisma/migrations/20261027200000_slack_links/migration.sql +15 -0
  223. package/src/adapters/prisma/migrations/20261028090000_slack_events/migration.sql +18 -0
  224. package/src/adapters/prisma/migrations/20261028150000_slack_posts/migration.sql +25 -0
  225. package/src/adapters/prisma/schema.prisma +103 -0
  226. package/web/.next/BUILD_ID +1 -1
  227. package/web/.next/app-path-routes-manifest.json +5 -0
  228. package/web/.next/build-manifest.json +51 -3
  229. package/web/.next/diagnostics/route-bundle-stats.json +143 -70
  230. package/web/.next/fallback-build-manifest.json +3 -3
  231. package/web/.next/prerender-manifest.json +3 -3
  232. package/web/.next/routes-manifest.json +30 -0
  233. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  234. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  235. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  236. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  237. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  238. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  239. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +10 -10
  240. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +2 -2
  241. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  242. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  243. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +4 -4
  244. package/web/.next/server/app/(console)/outside-parties/[name]/page.js +2 -2
  245. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  246. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  247. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +10 -10
  248. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +3 -3
  249. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  250. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  251. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +6 -6
  252. package/web/.next/server/app/(console)/outside-parties/add/page.js +2 -2
  253. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  254. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  255. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
  256. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js +1 -1
  257. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  258. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  259. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
  260. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +1 -1
  261. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  262. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  263. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  264. package/web/.next/server/app/(console)/outside-parties/page.js +3 -3
  265. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  266. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  267. package/web/.next/server/app/(console)/overview/changes/route.js +2 -2
  268. package/web/.next/server/app/(console)/overview/changes/route.js.nft.json +1 -1
  269. package/web/.next/server/app/(console)/overview/focus/route.js +2 -2
  270. package/web/.next/server/app/(console)/overview/focus/route.js.nft.json +1 -1
  271. package/web/.next/server/app/(console)/overview/page/server-reference-manifest.json +27 -7
  272. package/web/.next/server/app/(console)/overview/page.js +2 -2
  273. package/web/.next/server/app/(console)/overview/page.js.nft.json +1 -1
  274. package/web/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
  275. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/server-reference-manifest.json +2 -2
  276. package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js +1 -1
  277. package/web/.next/server/app/(console)/overview/requests/[requestId]/page.js.nft.json +1 -1
  278. package/web/.next/server/app/(console)/overview/requests/[requestId]/page_client-reference-manifest.js +1 -1
  279. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +7 -7
  280. package/web/.next/server/app/(console)/parties/page.js +3 -3
  281. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  282. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  283. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  284. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  285. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  286. package/web/.next/server/app/(console)/slack/disconnect/page/app-paths-manifest.json +3 -0
  287. package/web/.next/server/app/(console)/slack/disconnect/page/build-manifest.json +23 -0
  288. package/web/.next/server/app/(console)/slack/disconnect/page/next-font-manifest.json +11 -0
  289. package/web/.next/server/app/(console)/slack/disconnect/page/react-loadable-manifest.json +1 -0
  290. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +65 -0
  291. package/web/.next/server/app/(console)/slack/disconnect/page.js +22 -0
  292. package/web/.next/server/app/(console)/slack/disconnect/page.js.map +5 -0
  293. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -0
  294. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +3 -0
  295. package/web/.next/server/app/(console)/slack/expose/page/app-paths-manifest.json +3 -0
  296. package/web/.next/server/app/(console)/slack/expose/page/build-manifest.json +23 -0
  297. package/web/.next/server/app/(console)/slack/expose/page/next-font-manifest.json +11 -0
  298. package/web/.next/server/app/(console)/slack/expose/page/react-loadable-manifest.json +1 -0
  299. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +65 -0
  300. package/web/.next/server/app/(console)/slack/expose/page.js +22 -0
  301. package/web/.next/server/app/(console)/slack/expose/page.js.map +5 -0
  302. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -0
  303. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +3 -0
  304. package/web/.next/server/app/(console)/slack/link/route/app-paths-manifest.json +3 -0
  305. package/web/.next/server/app/(console)/slack/link/route/build-manifest.json +12 -0
  306. package/web/.next/server/app/(console)/slack/link/route/server-reference-manifest.json +4 -0
  307. package/web/.next/server/app/(console)/slack/link/route.js +7 -0
  308. package/web/.next/server/app/(console)/slack/link/route.js.map +5 -0
  309. package/web/.next/server/app/(console)/slack/link/route.js.nft.json +1 -0
  310. package/web/.next/server/app/(console)/slack/link/route_client-reference-manifest.js +3 -0
  311. package/web/.next/server/app/(console)/slack/page/app-paths-manifest.json +3 -0
  312. package/web/.next/server/app/(console)/slack/page/build-manifest.json +23 -0
  313. package/web/.next/server/app/(console)/slack/page/next-font-manifest.json +11 -0
  314. package/web/.next/server/app/(console)/slack/page/react-loadable-manifest.json +1 -0
  315. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +65 -0
  316. package/web/.next/server/app/(console)/slack/page.js +22 -0
  317. package/web/.next/server/app/(console)/slack/page.js.map +5 -0
  318. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -0
  319. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +3 -0
  320. package/web/.next/server/app/(console)/slack/remove/page/app-paths-manifest.json +3 -0
  321. package/web/.next/server/app/(console)/slack/remove/page/build-manifest.json +23 -0
  322. package/web/.next/server/app/(console)/slack/remove/page/next-font-manifest.json +11 -0
  323. package/web/.next/server/app/(console)/slack/remove/page/react-loadable-manifest.json +1 -0
  324. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +65 -0
  325. package/web/.next/server/app/(console)/slack/remove/page.js +22 -0
  326. package/web/.next/server/app/(console)/slack/remove/page.js.map +5 -0
  327. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -0
  328. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +3 -0
  329. package/web/.next/server/app/_global-error/page.js +1 -1
  330. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  331. package/web/.next/server/app/_global-error.html +1 -1
  332. package/web/.next/server/app/_global-error.rsc +1 -1
  333. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  334. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  335. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  336. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  337. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  338. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  339. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  340. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  341. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  342. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  343. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  344. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  345. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  346. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  347. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  348. package/web/.next/server/app-paths-manifest.json +5 -0
  349. package/web/.next/server/chunks/[root-of-the-server]__01ghdzznyfucm._.js +369 -0
  350. package/web/.next/server/chunks/[root-of-the-server]__01ghdzznyfucm._.js.map +1 -0
  351. package/web/.next/server/chunks/[root-of-the-server]__0mbwomk4pjrl7._.js +369 -0
  352. package/web/.next/server/chunks/[root-of-the-server]__0mbwomk4pjrl7._.js.map +1 -0
  353. package/web/.next/server/chunks/[root-of-the-server]__1tfyrijwfgqlk._.js +3 -0
  354. package/web/.next/server/chunks/[root-of-the-server]__1tfyrijwfgqlk._.js.map +1 -0
  355. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js +3 -0
  356. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js.map +1 -0
  357. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
  358. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
  359. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
  360. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
  361. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
  362. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
  363. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
  364. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
  365. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
  366. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
  367. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js +1 -1
  368. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js.map +1 -1
  369. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +4 -0
  370. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -0
  371. package/web/.next/server/chunks/ssr/[root-of-the-server]__04e53giy2-2tm._.js +3 -0
  372. package/web/.next/server/chunks/ssr/[root-of-the-server]__04e53giy2-2tm._.js.map +1 -0
  373. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0-og0bl8lr2xq._.js → [root-of-the-server]__0a8db18tyk__5._.js} +2 -2
  374. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0-og0bl8lr2xq._.js.map → [root-of-the-server]__0a8db18tyk__5._.js.map} +1 -1
  375. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e59elwbtqr-6._.js +3 -0
  376. package/web/.next/server/chunks/ssr/{[root-of-the-server]__10y66e1xx8xiq._.js.map → [root-of-the-server]__0e59elwbtqr-6._.js.map} +1 -1
  377. package/web/.next/server/chunks/ssr/[root-of-the-server]__0icm7kndx480o._.js +4 -0
  378. package/web/.next/server/chunks/ssr/[root-of-the-server]__0icm7kndx480o._.js.map +1 -0
  379. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
  380. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
  381. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1-c9wugbbwsp3._.js → [root-of-the-server]__0kb1gl5t8kz4l._.js} +2 -2
  382. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n2us07jk-78w._.js +1 -1
  383. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1gb-3dttuacyz._.js → [root-of-the-server]__0y0jwufd7xjsv._.js} +1 -1
  384. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +4 -0
  385. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -0
  386. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +4 -0
  387. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -0
  388. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  389. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  390. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1m9atpy0vkbmj._.js → [root-of-the-server]__19ecatcacd6t9._.js} +1 -1
  391. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hfashtn1ee82._.js +3 -0
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hfashtn1ee82._.js.map +1 -0
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +4 -0
  394. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -0
  395. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  396. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  397. package/web/.next/server/chunks/ssr/_0_kakdt7lb6z-._.js +1 -1
  398. package/web/.next/server/chunks/ssr/_0_kakdt7lb6z-._.js.map +1 -1
  399. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  400. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  401. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  402. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  403. package/web/.next/server/chunks/ssr/{_0w2ptjht34s6t._.js → _0wukvn3-ht3ps._.js} +1 -1
  404. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  405. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  406. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js +1 -1
  407. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
  408. package/web/.next/server/chunks/ssr/{_0bhvvyz0q_0ja._.js → _1e2o809f0ekry._.js} +2 -2
  409. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  410. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  411. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  412. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  413. package/web/.next/server/chunks/ssr/_1y1ovmdhl9_ml._.js +1 -1
  414. package/web/.next/server/chunks/ssr/_1y1ovmdhl9_ml._.js.map +1 -1
  415. package/web/.next/server/chunks/ssr/node_modules_0ettht2so2tkh._.js +3 -0
  416. package/web/.next/server/chunks/ssr/node_modules_0ettht2so2tkh._.js.map +1 -0
  417. package/web/.next/server/chunks/ssr/node_modules_0keape0zsobyj._.js +3 -0
  418. package/web/.next/server/chunks/ssr/node_modules_0keape0zsobyj._.js.map +1 -0
  419. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js +3 -0
  420. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js.map +1 -0
  421. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js +3 -0
  422. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js.map +1 -0
  423. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_1lbvjrzg8s2ox._.js +3 -0
  424. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_1lbvjrzg8s2ox._.js.map +1 -0
  425. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0t6vd5zwkqjs1.js +3 -0
  426. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0t6vd5zwkqjs1.js.map +1 -0
  427. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1cwvrsosahx6q.js +3 -0
  428. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1cwvrsosahx6q.js.map +1 -0
  429. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1jbr52uzx5cc7.js +3 -0
  430. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1jbr52uzx5cc7.js.map +1 -0
  431. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1xhjyaxgorqkx.js +3 -0
  432. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1xhjyaxgorqkx.js.map +1 -0
  433. package/web/.next/server/chunks/ssr/web_00e7-_y92losl._.js +3 -0
  434. package/web/.next/server/chunks/ssr/web_00e7-_y92losl._.js.map +1 -0
  435. package/web/.next/server/chunks/ssr/web_09rcfto3dw4wd._.js +3 -0
  436. package/web/.next/server/chunks/ssr/web_09rcfto3dw4wd._.js.map +1 -0
  437. package/web/.next/server/chunks/ssr/web_0plvx3c_1cozb._.js +3 -0
  438. package/web/.next/server/chunks/ssr/web_0plvx3c_1cozb._.js.map +1 -0
  439. package/web/.next/server/chunks/ssr/web_0qgev3ti257yj._.js +3 -0
  440. package/web/.next/server/chunks/ssr/{web_0_jk9eione6lx._.js.map → web_0qgev3ti257yj._.js.map} +1 -1
  441. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
  442. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
  443. package/web/.next/server/chunks/ssr/web_15vnjj3s0z3fa._.js +3 -0
  444. package/web/.next/server/chunks/ssr/{web_1wcpaty_bz55q._.js.map → web_15vnjj3s0z3fa._.js.map} +1 -1
  445. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js +1 -1
  446. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js.map +1 -1
  447. package/web/.next/server/chunks/ssr/web_app_(console)_slack_page_tsx_0ts7fo7pqicq6._.js +3 -0
  448. package/web/.next/server/chunks/ssr/web_app_(console)_slack_page_tsx_0ts7fo7pqicq6._.js.map +1 -0
  449. package/web/.next/server/chunks/ssr/web_app_(console)_slack_remove_page_tsx_15q4ril_on0ed._.js +3 -0
  450. package/web/.next/server/chunks/ssr/web_app_(console)_slack_remove_page_tsx_15q4ril_on0ed._.js.map +1 -0
  451. package/web/.next/server/chunks/ssr/web_features_0rd6357w-eo50._.js +3 -0
  452. package/web/.next/server/chunks/ssr/{web_features_10xz3ojtvfi7h._.js.map → web_features_0rd6357w-eo50._.js.map} +1 -1
  453. package/web/.next/server/chunks/ssr/web_features_1m5g9a6mwrsd-._.js +3 -0
  454. package/web/.next/server/chunks/ssr/{web_features_085cv0gogrxxf._.js.map → web_features_1m5g9a6mwrsd-._.js.map} +1 -1
  455. package/web/.next/server/chunks/ssr/web_features_1rwkgka1xffb1._.js +3 -0
  456. package/web/.next/server/chunks/ssr/web_features_1rwkgka1xffb1._.js.map +1 -0
  457. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  458. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  459. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  460. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  461. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  462. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  463. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  464. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  465. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  466. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  467. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  468. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  469. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  470. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +1 -1
  471. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +1 -1
  472. package/web/.next/server/chunks/ssr/web_features_overview_state_00l0wkgvv9y6j._.js +3 -0
  473. package/web/.next/server/chunks/ssr/web_features_overview_state_00l0wkgvv9y6j._.js.map +1 -0
  474. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +1 -1
  475. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +1 -1
  476. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  477. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +3 -0
  478. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js.map +1 -0
  479. package/web/.next/server/chunks/web__next-internal_server_app_(console)_slack_link_route_actions_16zgisics858w.js +3 -0
  480. package/web/.next/server/chunks/web__next-internal_server_app_(console)_slack_link_route_actions_16zgisics858w.js.map +1 -0
  481. package/web/.next/server/middleware-build-manifest.js +51 -3
  482. package/web/.next/server/next-font-manifest.js +1 -1
  483. package/web/.next/server/next-font-manifest.json +16 -0
  484. package/web/.next/server/pages/500.html +1 -1
  485. package/web/.next/server/preview-props.json +3 -3
  486. package/web/.next/server/server-reference-manifest.js +1 -1
  487. package/web/.next/server/server-reference-manifest.json +173 -27
  488. package/web/.next/static/chunks/0nhopjmnw_dqt.js +1 -0
  489. package/web/.next/static/chunks/0zbcy0_3jemrv.js +1 -0
  490. package/web/.next/static/chunks/{0coxy5zad812a.js → 1-suv9wttlxqo.js} +1 -1
  491. package/web/.next/static/chunks/19kfx4qlur25a.js +1 -0
  492. package/web/.next/static/chunks/1a2-hkn-7471k.js +1 -0
  493. package/web/.next/static/chunks/{0u_4xjk1j74g3.js → 1msggkwsn7vyq.js} +1 -1
  494. package/web/.next/static/chunks/1yj875esaesyh.css +3 -0
  495. package/web/.next/static/chunks/{2ew9kpu2kohk4.js → 2-kh9nbonee6w.js} +1 -1
  496. package/web/.next/static/chunks/2l92bozm8dcmo.js +1 -0
  497. package/web/.next/static/chunks/{20n2z_lok8v0f.js → 310mio1zd_mw7.js} +1 -1
  498. package/web/.next/static/chunks/{07j7jnfe13wx6.js → 3d_sjtxh_vkr6.js} +1 -1
  499. package/web/.next/static/chunks/{0p_kl57bddsiy.js → 3dhy3jady0w6a.js} +1 -1
  500. package/web/.next/static/chunks/3efghx8whwnok.js +1 -0
  501. package/web/.next/static/chunks/3hvo3apdq-ckk.js +1 -0
  502. package/web/.next/static/chunks/3rbzp0tdc1te-.js +1 -0
  503. package/web/.next/static/chunks/{1xrn7oqwd48vi.js → 455eobei0t6t9.js} +1 -1
  504. package/web/.next/trace +1 -1
  505. package/web/.next/trace-build +1 -1
  506. package/web/.next/types/routes.d.ts +7 -2
  507. package/web/.next/types/validator.ts +78 -0
  508. package/web/.next/server/chunks/[root-of-the-server]__0ykc8bq_c06a1._.js +0 -369
  509. package/web/.next/server/chunks/[root-of-the-server]__0ykc8bq_c06a1._.js.map +0 -1
  510. package/web/.next/server/chunks/ssr/[root-of-the-server]__10y66e1xx8xiq._.js +0 -3
  511. package/web/.next/server/chunks/ssr/[root-of-the-server]__1dtyycvqa6uht._.js +0 -4
  512. package/web/.next/server/chunks/ssr/[root-of-the-server]__1dtyycvqa6uht._.js.map +0 -1
  513. package/web/.next/server/chunks/ssr/node_modules_07sxnbglqc5q9._.js +0 -3
  514. package/web/.next/server/chunks/ssr/node_modules_07sxnbglqc5q9._.js.map +0 -1
  515. package/web/.next/server/chunks/ssr/node_modules_0qlo87g8tugr4._.js +0 -3
  516. package/web/.next/server/chunks/ssr/node_modules_0qlo87g8tugr4._.js.map +0 -1
  517. package/web/.next/server/chunks/ssr/web_0-ufi2al5ubig._.js +0 -3
  518. package/web/.next/server/chunks/ssr/web_0-ufi2al5ubig._.js.map +0 -1
  519. package/web/.next/server/chunks/ssr/web_0_jk9eione6lx._.js +0 -3
  520. package/web/.next/server/chunks/ssr/web_1wcpaty_bz55q._.js +0 -3
  521. package/web/.next/server/chunks/ssr/web_features_085cv0gogrxxf._.js +0 -3
  522. package/web/.next/server/chunks/ssr/web_features_10xz3ojtvfi7h._.js +0 -3
  523. package/web/.next/server/chunks/ssr/web_features_overview_state_1wuk95dw2_whp._.js +0 -3
  524. package/web/.next/server/chunks/ssr/web_features_overview_state_1wuk95dw2_whp._.js.map +0 -1
  525. package/web/.next/static/chunks/0v9r_hyyubykq.js +0 -1
  526. package/web/.next/static/chunks/0zesq1ng-v3s6.js +0 -1
  527. package/web/.next/static/chunks/10wzmy096av_5.css +0 -3
  528. package/web/.next/static/chunks/12c3qjvto3m0f.js +0 -1
  529. package/web/.next/static/chunks/1ahn4kx4ld-rc.js +0 -1
  530. package/web/.next/static/chunks/2i3ydqqupow_x.js +0 -1
  531. package/web/.next/static/chunks/3x_8doukmdfpu.js +0 -1
  532. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1-c9wugbbwsp3._.js.map → [root-of-the-server]__0kb1gl5t8kz4l._.js.map} +0 -0
  533. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1gb-3dttuacyz._.js.map → [root-of-the-server]__0y0jwufd7xjsv._.js.map} +0 -0
  534. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1m9atpy0vkbmj._.js.map → [root-of-the-server]__19ecatcacd6t9._.js.map} +0 -0
  535. /package/web/.next/server/chunks/ssr/{_0w2ptjht34s6t._.js.map → _0wukvn3-ht3ps._.js.map} +0 -0
  536. /package/web/.next/server/chunks/ssr/{_0bhvvyz0q_0ja._.js.map → _1e2o809f0ekry._.js.map} +0 -0
  537. /package/web/.next/static/{wnr2MrrQvcto8MOm16D8r → 87vMFs_KGRcFD40WWRkFR}/_buildManifest.js +0 -0
  538. /package/web/.next/static/{wnr2MrrQvcto8MOm16D8r → 87vMFs_KGRcFD40WWRkFR}/_clientMiddlewareManifest.js +0 -0
  539. /package/web/.next/static/{wnr2MrrQvcto8MOm16D8r → 87vMFs_KGRcFD40WWRkFR}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[54799,(e,r,t)=>{r.exports=e.x("crypto",()=>require("crypto"))},18622,(e,r,t)=>{r.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,r,t)=>{r.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,r,t)=>{r.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,r,t)=>{r.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},81111,(e,r,t)=>{r.exports=e.x("node:stream",()=>require("node:stream"))},14747,(e,r,t)=>{r.exports=e.x("path",()=>require("path"))},64898,e=>{"use strict";var r=e.i(50743),t=e.i(861),s=e.i(45714),n=e.i(64412);async function a(e,a){let o,x,i=await fetch(`${(0,n.o)()}/trpc/${a}`,{headers:(o=new URL(e.url).searchParams.get(s.f),{accept:"text/event-stream",...void 0===(x=(0,t.G)(e.headers.get("cookie")??void 0))?{}:{cookie:x},...null===o?{}:{[r.f]:o}}),signal:e.signal});return new Response(i.body,{status:i.status,headers:{"content-type":i.headers.get("content-type")??"text/event-stream","cache-control":"no-store"}})}e.s(["Q",0,function(e){return a(e,"requests.changes")},"u",0,function(e){return a(e,"people.focus")}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1tfyrijwfgqlk._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../web/features/overview/hooks/follow-changes.ts"],"sourcesContent":["/**\n * The Overview's live streams for the browser: the web app's server follows\n * the API's stream as the browser that asked, by its shared sign-in alone,\n * and passes each event on. The changes stream tells the page to read\n * itself again, carrying nothing of what changed; the focus stream is held\n * open while the page is in focus (wake a person, W6), and ends with the\n * browser's request.\n */\nimport { FLEET_HEADER } from '@aeolus-fleet/common';\n\nimport { forwardedCookieOf } from '../../../lib/gateway-api/gateway-api';\nimport { FLEET_PARAMETER } from '../../../lib/gateway-api/page-account';\nimport { apiUrl } from '../../../lib/gateway-api/page-api';\n\n/** What the call to the API's stream carries: the shared sign-in alone, as every call of the web app's server, and the fleet the page names. */\nexport function upstreamHeadersOf(request: Request): Record<string, string> {\n const fleet = new URL(request.url).searchParams.get(FLEET_PARAMETER);\n const cookie = forwardedCookieOf(request.headers.get('cookie') ?? undefined);\n return { accept: 'text/event-stream', ...(cookie === undefined ? {} : { cookie }), ...(fleet === null ? {} : { [FLEET_HEADER]: fleet }) };\n}\n\nasync function follow(request: Request, procedure: string): Promise<Response> {\n const upstream = await fetch(`${apiUrl()}/trpc/${procedure}`, { headers: upstreamHeadersOf(request), signal: request.signal });\n return new Response(upstream.body, { status: upstream.status, headers: { 'content-type': upstream.headers.get('content-type') ?? 'text/event-stream', 'cache-control': 'no-store' } });\n}\n\nexport function followChanges(request: Request): Promise<Response> {\n return follow(request, 'requests.changes');\n}\n\n/** Holds the page in focus at the gateway for as long as the browser holds this stream open. */\nexport function followFocus(request: Request): Promise<Response> {\n return follow(request, 'people.focus');\n}\n"],"names":["upstreamHeadersOf","request","fleet","URL","url","searchParams","get","cookie","headers","undefined","accept","follow","procedure","upstream","fetch","signal","Response","body","status","followChanges","followFocus"],"mappings":"62CAQA,IAAA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,KACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OASA,eAAeW,EAAOV,CAAgB,CAAEW,CAAiB,MALjDV,IAMAW,EAAW,MAAMC,MAAM,CAAA,EAAG,CAAA,EAAA,EAAA,CAAA,AAAM,IAAG,MAAM,EAAEF,EAAAA,CAAW,CAAE,CAAEJ,OAAAA,EAASR,EAN3D,IAAIG,IAAIF,EAAQG,GAAG,EAAEC,YAAY,CAACC,GAAG,CAAC,EAAA,CAAe,EAE5D,CAAEI,OAAQ,oBAAqB,GAAIH,KAAWE,KAD/CF,EAAS,CAAA,EAAA,EAAA,CAAA,AAAiB,EAACN,AAK0DA,EALlDO,OAAO,CAACF,GAAG,CAAC,gBAAaG,IACD,CAAC,EAAI,QAAEF,CAAO,CAAC,CAAG,GAAc,OAAVL,EAAiB,CAAC,EAAI,CAAE,CAAC,EAAA,CAAY,CAAC,CAAEA,CAAM,CAAC,AAAE,GAInCa,OAAQd,EAAQc,MAAM,AAAC,GAC5H,OAAO,IAAIC,SAASH,EAASI,IAAI,CAAE,CAAEC,OAAQL,EAASK,MAAM,CAAEV,QAAS,CAAE,eAAgBK,EAASL,OAAO,CAACF,GAAG,CAAC,iBAAmB,oBAAqB,gBAAiB,UAAW,CAAE,EACtL,YAEO,SAASa,AAAclB,CAAgB,EAC5C,OAAOU,EAAOV,EAAS,mBACzB,QAGO,SAASmB,AAAYnB,CAAgB,EAC1C,OAAOU,EAAOV,EAAS,eACzB"}
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[97369,e=>{var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),d=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(26937),v=e.i(10372),w=e.i(93695),m=e.i(9580);e.i(52474);var R=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.f.APP_ROUTE,page:"/(console)/slack/link/route",pathname:"/slack/link",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"web",resolvedPagePath:"[project]/web/app/(console)/slack/link/route.ts",nextConfigOutput:"",userland:()=>e.r(28013),...{}}),{workAsyncStorage:x,workUnitAsyncStorage:E,serverHooks:y}=g;async function C(e,t,a){a.requestMeta&&(0,n.R)(e,a.requestMeta),g.isDev&&(0,n.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let x="/(console)/slack/link/route";x=x.replace(/\/index$/,"")||"/";let E=await g.prepare(e,t,{srcPage:x,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:y,deploymentId:C,params:k,nextConfig:b,parsedUrl:P,isDraftMode:T,prerenderManifest:S,routerServerContext:A,isOnDemandRevalidate:U,revalidateOnlyGenerated:O,resolvedPathname:D,clientReferenceManifest:N,serverActionsManifest:q,previewProps:I}=E,M=(0,s.f)(x),_=!!S.routes[D]&&(g.isDev||(0,m.f)(D,g.cacheOwner,S.routes[D])),L=!!(S.dynamicRoutes[M]||_),$=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,P,!1):t.end("This page could not be found"),null);if(L&&!T){let e=S.dynamicRoutes[M];if(e&&!1===e.fallback&&!_){if(b.adapterPath)return await $();throw new w.NoFallbackError}}let H=null;!L||g.isDev||T||(H="/index"===(H=D)?"/":H),q&&N&&(0,o.f)({page:x,clientReferenceManifest:N,serverActionsManifest:q});let G=e.method||"GET",j=(0,i.v)(),F=j.getActiveScopeSpan(),B=!!(null==A?void 0:A.isWrappedByNextServer),K=!!(0,n.w)(e,"minimalMode"),V=(0,n.w)(e,"incrementalCache")||await g.getIncrementalCache(e,b,I,S,K);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let J={params:k,previewProps:I,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts,useCacheTimeout:b.experimental.useCacheTimeout,durableUseCacheEntries:!!b.experimental.durableUseCacheEntries},cacheComponents:!!b.cacheComponents,validationLevel:b.experimental.instantInsights.validationLevel,isDraftMode:T,incrementalCache:V,hmrRefreshHash:(0,n.w)(e,"hmrRefreshHash"),cacheLifeProfiles:b.cacheLife,staticPageGenerationTimeout:b.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:y,deploymentId:C}},Q=new l.x(e),W=new l.e(t),Z=u.k.fromNodeNextRequest(Q,(0,u.t)(t)),z=async({previousCacheEntry:r})=>{try{if(!K&&U&&O&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=null===H?await g.handle(Z,J):await g.prerender(Z,J);e.fetchMetrics=J.renderOpts.fetchMetrics;let i=J.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let o=J.renderOpts.collectedTags;if(!L)return await (0,p.f)(Q,W,n,i),null;{let e=await n.blob(),t=(0,h.S)(n.headers);o&&(t[v.M]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==J.renderOpts.collectedRevalidate&&!(J.renderOpts.collectedRevalidate>=v.Q)&&J.renderOpts.collectedRevalidate,a=void 0===J.renderOpts.collectedExpire||J.renderOpts.collectedExpire>=v.Q?!1!==r&&r>0?b.expireTime:void 0:J.renderOpts.collectedExpire;return{value:{kind:R.x.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:x,routeType:"route",revalidateReason:(0,d.f)({isStaticGeneration:null!==H,isOnDemandRevalidate:U})},!1,A),t}},X=async(n,o)=>{try{var s,l;let n=await g.handleResponse({req:e,nextConfig:b,cacheKey:H,routeKind:r.f.APP_ROUTE,isFallback:!1,previewProps:I,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:U,revalidateOnlyGenerated:O,responseGenerator:z,waitUntil:a.waitUntil,isMinimalMode:K});if(null!==n&&"error"in n)throw n.error;if(!L)return;if((null==n||null==(s=n.value)?void 0:s.kind)!==R.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`);K||t.setHeader("x-nextjs-cache",U?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let i=(0,h.G)(n.value.headers);K&&L||i.delete(v.M),!n.cacheControl||t.getHeader("Cache-Control")||i.get("Cache-Control")||i.set("Cache-Control",(0,f.f)(n.cacheControl)),await (0,p.f)(Q,W,new Response(n.value.body,{headers:i,status:n.value.status||200}));return}catch(r){if(r instanceof w.NoFallbackError||await g.onRequestError(e,r,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,d.f)({isStaticGeneration:null!==H,isOnDemandRevalidate:U})},!1,A),L)throw r;if(t.headersSent){if(n){let e=r instanceof Error?r:Error("Unknown app route error");n.recordException(e),n.setStatus({code:i.J.ERROR,message:e.message}),n.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(Q,W,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:i.J.ERROR}),n.setAttribute("error.type",e.toString()));let r=j.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.q.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||M,s=`${G} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":s}),n.updateName(s),o&&o!==n&&(o.setAttribute("http.route",a),o.updateName(s))})()}};if(B&&F)await X(F,void 0);else{let t=j.getActiveScopeSpan();await j.withPropagatedContext(e.headers,()=>j.trace(c.q.handleRequest,{spanName:`${G} ${x}`,kind:i.C.SERVER,attributes:{"http.method":G,"http.target":e.url}},e=>X(e,t)),void 0,!B)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,a.f)({workAsyncStorage:x,workUnitAsyncStorage:E})},"routeModule",0,g,"serverHooks",0,y,"workAsyncStorage",0,x,"workUnitAsyncStorage",0,E])},28013,e=>{e.i(51783);var t=e.i(79509),r=e.i(45714),a=e.i(64412);let n={FORBIDDEN:"no-person-ship",NOT_FOUND:"not-connected"};async function i(e){let i,o=new URL(e.url).searchParams.get(r.f)??void 0,s=e=>new URLSearchParams({...void 0===o?{}:{[r.f]:o},...e}).toString();try{({url:i}=await (await (0,a.z)(o)).slack.startLink.mutate())}catch(r){let e=(0,a.T)(r);if("UNAUTHORIZED"===e)return(0,t.redirect)(`/sign-in/start?${new URLSearchParams({return_to:`/slack/link?${s({})}`}).toString()}`);return(0,t.redirect)(`/overview?${s({slack:(void 0===e?void 0:n[e])??"not-started"})}`)}return(0,t.redirect)(i)}e.s(["GET",0,function(e){return i(e)},"dynamic",0,"force-dynamic"],28013)}]})();
2
+
3
+ //# sourceMappingURL=_20ne4s-e_jzxp._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../node_modules/next/src/build/templates/app-route.ts","../../../../web/features/overview/hooks/start-slack-link.ts","../../../../web/features/overview/hooks/read-overview.ts","../../../../web/features/overview/hooks/slack-link-path.ts","../../../../web/app/%28console%29/slack/link/route.ts"],"sourcesContent":["import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport {\n getTracer,\n type Span,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport { isRouteCacheOwner } from '../../server/lib/route-cache-key'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The lazy require factory ensures that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled.\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n previewProps,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n // Only this route's prerenders can establish ISR or admit generated params.\n const isPrerendered =\n Boolean(prerenderManifest.routes[resolvedPathname]) &&\n (routeModule.isDev ||\n isRouteCacheOwner(\n resolvedPathname,\n routeModule.cacheOwner,\n prerenderManifest.routes[resolvedPathname]\n ))\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] || isPrerendered\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n previewProps,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n durableUseCacheEntries: Boolean(\n nextConfig.experimental.durableUseCacheEntries\n ),\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n isDraftMode,\n incrementalCache,\n hmrRefreshHash: getRequestMeta(req, 'hmrRefreshHash'),\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response =\n cacheKey === null\n ? await routeModule.handle(nextReq, context)\n : await routeModule.prerender(nextReq, context)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, pendingWaitUntil)\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: cacheKey !== null,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const handleResponse = async (\n currentSpan: Span | undefined,\n parentSpan: Span | undefined\n ) => {\n try {\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n previewProps,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n if (cacheEntry !== null && 'error' in cacheEntry) {\n throw cacheEntry.error\n }\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration: cacheKey !== null,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response unless the original response has\n // already committed. In that case, preserve its status code for\n // telemetry while still recording the failure and terminating a response\n // that the failed pipeline left open.\n if (res.headersSent) {\n if (currentSpan) {\n const error =\n err instanceof Error ? err : new Error('Unknown app route error')\n currentSpan.recordException(error)\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n })\n currentSpan.setAttribute('error.type', error.name)\n }\n if (!res.writableEnded && !res.destroyed) {\n res.end()\n }\n } else {\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n }\n return\n } finally {\n ;(() => {\n if (!currentSpan) {\n return\n }\n\n let statusCode = res.statusCode\n\n currentSpan.setAttributes({\n 'http.status_code': statusCode,\n 'next.rsc': false,\n })\n\n if (statusCode && statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n currentSpan.setAttribute('error.type', statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n currentSpan.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n currentSpan.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== currentSpan) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan, undefined)\n } else {\n let parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n (span) => handleResponse(span, parentSpan)\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n}\n","/**\n * Link Slack (gateway scopes 9.3), from the Overview or the button in the\n * answer a bot gave an unlinked person in Slack: as the account signed in,\n * the gateway opens Sign in with Slack and the browser goes there. Signed\n * out, it goes to pagasae's sign-in first and comes back here; a refusal\n * goes to the Overview, which says why by its outcome.\n */\nimport { redirect } from 'next/navigation';\n\nimport { FLEET_PARAMETER } from '../../../lib/gateway-api/page-account';\nimport { refusalCodeOf, requestApi } from '../../../lib/gateway-api/page-api';\nimport { OVERVIEW_PATH } from './read-overview';\nimport { SLACK_LINK_PATH } from './slack-link-path';\n\n/** What the Overview says of a link that did not start, by the API's refusal. */\nconst NOT_STARTED: Record<string, string> = { FORBIDDEN: 'no-person-ship', NOT_FOUND: 'not-connected' };\n\nexport async function startSlackLink(request: Request): Promise<never> {\n const fleet = new URL(request.url).searchParams.get(FLEET_PARAMETER) ?? undefined;\n const inFleet = (said: Record<string, string>) => new URLSearchParams({ ...(fleet === undefined ? {} : { [FLEET_PARAMETER]: fleet }), ...said }).toString();\n let url: string;\n try {\n ({ url } = await (await requestApi(fleet)).slack.startLink.mutate());\n } catch (error) {\n const code = refusalCodeOf(error);\n if (code === 'UNAUTHORIZED') {\n return redirect(`/sign-in/start?${new URLSearchParams({ return_to: `${SLACK_LINK_PATH}?${inFleet({})}` }).toString()}`);\n }\n return redirect(`${OVERVIEW_PATH}?${inFleet({ slack: (code === undefined ? undefined : NOT_STARTED[code]) ?? 'not-started' })}`);\n }\n return redirect(url);\n}\n","/**\n * What the Overview shows, read through the gateway's API as the signed-in\n * account (design B, Signal; decision 0056): what waits on their person\n * ship and the channels that wake them, the requests to decide for an\n * approver, the requests they asked, and their Slack link.\n * A part the API refuses the account (FORBIDDEN) is not theirs to see, so it\n * is left out; any other refusal fails the page.\n */\nimport type { GatewayApi } from '../../../lib/gateway-api/gateway-api';\nimport { refusalCodeOf } from '../../../lib/gateway-api/page-api';\nimport type { Inbox, WakeChannels } from '../services/deliveries';\nimport type { ShownRequest } from '../services/requests';\n\nexport const OVERVIEW_PATH = '/overview';\n\nexport interface OverviewParts {\n readonly inbox: Inbox | undefined;\n /** The channels that wake the person when something waits for their person ship (wake a person, W8). */\n readonly wakeChannels: WakeChannels | undefined;\n readonly toDecide: readonly ShownRequest[] | undefined;\n readonly mine: readonly ShownRequest[] | undefined;\n /** The person's Slack link (gateway scopes 9.6); none while the fleet's own bot is not in Slack. */\n readonly slackLink: SlackLink | null | undefined;\n}\n\n/** A person's Slack link as the gateway answers it: the workspace, and the Slack name linked, none while unlinked. */\nexport type SlackLink = NonNullable<Awaited<ReturnType<GatewayApi['slack']['link']['query']>>>;\n\nasync function unlessForbidden<T>(call: Promise<T>): Promise<T | undefined> {\n try {\n return await call;\n } catch (error) {\n if (refusalCodeOf(error) === 'FORBIDDEN') {\n return undefined;\n }\n throw error;\n }\n}\n\nexport async function readOverview(api: GatewayApi): Promise<OverviewParts> {\n const [inbox, wakeChannels, toDecide, mine, slackLink] = await Promise.all([\n unlessForbidden(api.people.inbox.query()),\n unlessForbidden(api.people.wakeChannels.query()),\n unlessForbidden(api.requests.toDecide.query()),\n unlessForbidden(api.requests.mine.query()),\n unlessForbidden(api.slack.link.query()),\n ]);\n return { inbox, wakeChannels, toDecide, mine, slackLink };\n}\n\n/** One request to decide, undefined once it no longer waits, and the queue beside it. */\nexport async function readRequestToDecide(api: GatewayApi, requestId: string): Promise<{ request: ShownRequest | undefined; toDecide: readonly ShownRequest[] }> {\n const toDecide = (await unlessForbidden(api.requests.toDecide.query())) ?? [];\n return { request: toDecide.find((open) => open.requestId === requestId), toDecide };\n}\n","/** Where Link Slack starts (gateway scopes 9.3): the Overview's button and the button in a bot's answer in Slack (src/core/slack/take-slack-event.ts). */\nexport const SLACK_LINK_PATH = '/slack/link';\n","import { startSlackLink } from '../../../../features/overview/hooks/start-slack-link';\n\nexport const dynamic = 'force-dynamic';\n\nexport function GET(request: Request): Promise<never> {\n return startSlackLink(request);\n}\n"],"names":["AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","SpanStatusCode","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","isRouteCacheOwner","CachedRouteKind","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","req","res","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","previewProps","normalizedSrcPage","isPrerendered","Boolean","routes","cacheOwner","isIsr","dynamicRoutes","render404","prerenderInfo","fallback","adapterPath","cacheKey","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","renderOpts","experimental","authInterrupts","useCacheTimeout","durableUseCacheEntries","cacheComponents","validationLevel","instantInsights","hmrRefreshHash","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","undefined","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","responseGenerator","previousCacheEntry","setHeader","response","handle","prerender","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","type","revalidate","collectedRevalidate","expire","collectedExpire","expireTime","cacheEntry","value","status","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","silenceLog","onRequestError","routerKind","routePath","routeType","revalidateReason","isStaticGeneration","handleResponse","currentSpan","parentSpan","routeKind","isFallback","isRoutePPREnabled","error","Error","isMiss","delete","getHeader","get","set","Response","headersSent","recordException","setStatus","code","ERROR","message","setAttribute","name","writableEnded","destroyed","setAttributes","toString","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","updateName","withPropagatedContext","trace","spanName","SERVER","attributes","url","span","OVERVIEW_PATH","unlessForbidden","call","refusalCodeOf","readOverview","api","inbox","wakeChannels","toDecide","mine","slackLink","all","people","query","requests","slack","link","readRequestToDecide","requestId","request","find","open"],"mappings":"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","ignoreList":[0]}
@@ -1,3 +1,3 @@
1
- module.exports=[8796,a=>{"use strict";var b=a.i(70043),c=a.i(94705);a.S([b,"4014cabd1a393a5ea041c3f3ba58bfec7066ad4931,f",0,c,"40dad6e23692304530c149129641a4a94433905443,L,40e82407011c6d236a4a2c8db8e53c307a6e8aa98f,M,600cf1a8901e0ac6d6426275868f04bcdac025ede0,v,60566e54974f37ea23543482d9cf63a66aa5f76a47,o,60fba1793c7b1fc178b8dc82db711bb4ed74328d86,t"],8796)}];
1
+ module.exports=[8796,a=>{"use strict";var b=a.i(70043),c=a.i(94705);a.S([b,"4045fb4e4dd7a243ae58c6075af5457b975a7e6156,f",0,c,"4045a804dd18b9264f1bb2a561a2595b205f282b11,M,40fed1a57eee8b6fab07017280a5434916a77a1b4f,L,60ab10d6459bc53ffe191e1289449dad84c429ac0e,v,60e660af2d9cb45ea9ff5748874b12e34b36adb663,t,60f15ca6f1b9d907148834760b626c097cb38de61c,o"],8796)}];
2
2
 
3
3
  //# sourceMappingURL=0vkm_server_app_%28console%29_outside-parties_%5Bname%5D_change_page_actions_04td11fxohsfm.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/outside-parties/%5Bname%5D/change/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4014cabd1a393a5ea041c3f3ba58bfec7066ad4931'} from 'ACTIONS_MODULE0'\nexport {setPartyScopes as '40dad6e23692304530c149129641a4a94433905443'} from 'ACTIONS_MODULE1'\nexport {switchPartyTools as '40e82407011c6d236a4a2c8db8e53c307a6e8aa98f'} from 'ACTIONS_MODULE1'\nexport {changeParty as '600cf1a8901e0ac6d6426275868f04bcdac025ede0'} from 'ACTIONS_MODULE1'\nexport {markA2aAgent as '60566e54974f37ea23543482d9cf63a66aa5f76a47'} from 'ACTIONS_MODULE1'\nexport {retireParty as '60fba1793c7b1fc178b8dc82db711bb4ed74328d86'} from 'ACTIONS_MODULE1'\nexport {setPartyScopes as '40dad6e23692304530c149129641a4a94433905443'} from 'ACTIONS_MODULE1'\nexport {switchPartyTools as '40e82407011c6d236a4a2c8db8e53c307a6e8aa98f'} from 'ACTIONS_MODULE1'\nexport {markA2aAgent as '60566e54974f37ea23543482d9cf63a66aa5f76a47'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"sCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/outside-parties/%5Bname%5D/change/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4045fb4e4dd7a243ae58c6075af5457b975a7e6156'} from 'ACTIONS_MODULE0'\nexport {switchPartyTools as '4045a804dd18b9264f1bb2a561a2595b205f282b11'} from 'ACTIONS_MODULE1'\nexport {setPartyScopes as '40fed1a57eee8b6fab07017280a5434916a77a1b4f'} from 'ACTIONS_MODULE1'\nexport {changeParty as '60ab10d6459bc53ffe191e1289449dad84c429ac0e'} from 'ACTIONS_MODULE1'\nexport {retireParty as '60e660af2d9cb45ea9ff5748874b12e34b36adb663'} from 'ACTIONS_MODULE1'\nexport {markA2aAgent as '60f15ca6f1b9d907148834760b626c097cb38de61c'} from 'ACTIONS_MODULE1'\nexport {setPartyScopes as '40fed1a57eee8b6fab07017280a5434916a77a1b4f'} from 'ACTIONS_MODULE1'\nexport {switchPartyTools as '4045a804dd18b9264f1bb2a561a2595b205f282b11'} from 'ACTIONS_MODULE1'\nexport {markA2aAgent as '60f15ca6f1b9d907148834760b626c097cb38de61c'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"sCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[27032,a=>{"use strict";var b=a.i(70043),c=a.i(94705);a.S([b,"4014cabd1a393a5ea041c3f3ba58bfec7066ad4931,f",0,c,"40dad6e23692304530c149129641a4a94433905443,L,40e82407011c6d236a4a2c8db8e53c307a6e8aa98f,M,60566e54974f37ea23543482d9cf63a66aa5f76a47,o"],27032)}];
1
+ module.exports=[27032,a=>{"use strict";var b=a.i(70043),c=a.i(94705);a.S([b,"4045fb4e4dd7a243ae58c6075af5457b975a7e6156,f",0,c,"4045a804dd18b9264f1bb2a561a2595b205f282b11,M,40fed1a57eee8b6fab07017280a5434916a77a1b4f,L,60f15ca6f1b9d907148834760b626c097cb38de61c,o"],27032)}];
2
2
 
3
3
  //# sourceMappingURL=0vkm_server_app_%28console%29_outside-parties_%5Bname%5D_page_actions_0u-45itza1ls7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/outside-parties/%5Bname%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4014cabd1a393a5ea041c3f3ba58bfec7066ad4931'} from 'ACTIONS_MODULE0'\nexport {setPartyScopes as '40dad6e23692304530c149129641a4a94433905443'} from 'ACTIONS_MODULE1'\nexport {switchPartyTools as '40e82407011c6d236a4a2c8db8e53c307a6e8aa98f'} from 'ACTIONS_MODULE1'\nexport {markA2aAgent as '60566e54974f37ea23543482d9cf63a66aa5f76a47'} 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/outside-parties/%5Bname%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4045fb4e4dd7a243ae58c6075af5457b975a7e6156'} from 'ACTIONS_MODULE0'\nexport {setPartyScopes as '40fed1a57eee8b6fab07017280a5434916a77a1b4f'} from 'ACTIONS_MODULE1'\nexport {switchPartyTools as '4045a804dd18b9264f1bb2a561a2595b205f282b11'} from 'ACTIONS_MODULE1'\nexport {markA2aAgent as '60f15ca6f1b9d907148834760b626c097cb38de61c'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[85744,a=>{"use strict";var b=a.i(70043),c=a.i(94705);a.S([b,"4014cabd1a393a5ea041c3f3ba58bfec7066ad4931,f",0,c,"40dad6e23692304530c149129641a4a94433905443,L,40e82407011c6d236a4a2c8db8e53c307a6e8aa98f,M,600cf1a8901e0ac6d6426275868f04bcdac025ede0,v,60566e54974f37ea23543482d9cf63a66aa5f76a47,o,60fba1793c7b1fc178b8dc82db711bb4ed74328d86,t"],85744)}];
1
+ module.exports=[85744,a=>{"use strict";var b=a.i(70043),c=a.i(94705);a.S([b,"4045fb4e4dd7a243ae58c6075af5457b975a7e6156,f",0,c,"4045a804dd18b9264f1bb2a561a2595b205f282b11,M,40fed1a57eee8b6fab07017280a5434916a77a1b4f,L,60ab10d6459bc53ffe191e1289449dad84c429ac0e,v,60e660af2d9cb45ea9ff5748874b12e34b36adb663,t,60f15ca6f1b9d907148834760b626c097cb38de61c,o"],85744)}];
2
2
 
3
3
  //# sourceMappingURL=0vkm_server_app_%28console%29_outside-parties_%5Bname%5D_retire_page_actions_0s7ps6i0ts7v5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/outside-parties/%5Bname%5D/retire/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4014cabd1a393a5ea041c3f3ba58bfec7066ad4931'} from 'ACTIONS_MODULE0'\nexport {setPartyScopes as '40dad6e23692304530c149129641a4a94433905443'} from 'ACTIONS_MODULE1'\nexport {switchPartyTools as '40e82407011c6d236a4a2c8db8e53c307a6e8aa98f'} from 'ACTIONS_MODULE1'\nexport {changeParty as '600cf1a8901e0ac6d6426275868f04bcdac025ede0'} from 'ACTIONS_MODULE1'\nexport {markA2aAgent as '60566e54974f37ea23543482d9cf63a66aa5f76a47'} from 'ACTIONS_MODULE1'\nexport {retireParty as '60fba1793c7b1fc178b8dc82db711bb4ed74328d86'} from 'ACTIONS_MODULE1'\nexport {setPartyScopes as '40dad6e23692304530c149129641a4a94433905443'} from 'ACTIONS_MODULE1'\nexport {switchPartyTools as '40e82407011c6d236a4a2c8db8e53c307a6e8aa98f'} from 'ACTIONS_MODULE1'\nexport {markA2aAgent as '60566e54974f37ea23543482d9cf63a66aa5f76a47'} 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/outside-parties/%5Bname%5D/retire/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4045fb4e4dd7a243ae58c6075af5457b975a7e6156'} from 'ACTIONS_MODULE0'\nexport {switchPartyTools as '4045a804dd18b9264f1bb2a561a2595b205f282b11'} from 'ACTIONS_MODULE1'\nexport {setPartyScopes as '40fed1a57eee8b6fab07017280a5434916a77a1b4f'} from 'ACTIONS_MODULE1'\nexport {changeParty as '60ab10d6459bc53ffe191e1289449dad84c429ac0e'} from 'ACTIONS_MODULE1'\nexport {retireParty as '60e660af2d9cb45ea9ff5748874b12e34b36adb663'} from 'ACTIONS_MODULE1'\nexport {markA2aAgent as '60f15ca6f1b9d907148834760b626c097cb38de61c'} from 'ACTIONS_MODULE1'\nexport {setPartyScopes as '40fed1a57eee8b6fab07017280a5434916a77a1b4f'} from 'ACTIONS_MODULE1'\nexport {switchPartyTools as '4045a804dd18b9264f1bb2a561a2595b205f282b11'} from 'ACTIONS_MODULE1'\nexport {markA2aAgent as '60f15ca6f1b9d907148834760b626c097cb38de61c'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[36558,a=>{"use strict";var b=a.i(70043),c=a.i(37936),d=a.i(29517),e=a.i(66283),f=a.i(1324),g=a.i(81140);async function h(a,b){let c=(0,d.f)("ship").safeParse((0,f.v)(b,"ownerShipId"));if(!c.success)return{kind:"refused",message:"Pick its owner"};let h=await (0,e.z)((0,f.v)(b,f.H));try{let a=await h.parties.addA2aClient.mutate({requestId:(0,f.v)(b,"requestId"),name:(0,f.v)(b,"name"),ownerShipId:c.data,scopes:(0,g.f)((0,f.O)(b))});return{kind:"added",name:a.party.name,bearer:a.bearer}}catch(a){return{kind:"refused",message:(0,e.s)(a)}}}(0,a.i(13095).ensureServerEntryExports)([h]),(0,c.registerServerReference)(h,"60b57eca1e0f69eb80ba9513020f68bc56ce52970c",null),a.s(["4014cabd1a393a5ea041c3f3ba58bfec7066ad4931",()=>b.f,"60b57eca1e0f69eb80ba9513020f68bc56ce52970c",0,h],36558)}];
1
+ module.exports=[36558,a=>{"use strict";var b=a.i(70043),c=a.i(37936),d=a.i(29517),e=a.i(66283),f=a.i(1324),g=a.i(81140);async function h(a,b){let c=(0,d.f)("ship").safeParse((0,f.v)(b,"ownerShipId"));if(!c.success)return{kind:"refused",message:"Pick its owner"};let h=await (0,e.z)((0,f.v)(b,f.H));try{let a=await h.parties.addA2aClient.mutate({requestId:(0,f.v)(b,"requestId"),name:(0,f.v)(b,"name"),ownerShipId:c.data,scopes:(0,g.f)((0,f.O)(b))});return{kind:"added",name:a.party.name,bearer:a.bearer}}catch(a){return{kind:"refused",message:(0,e.s)(a)}}}(0,a.i(13095).ensureServerEntryExports)([h]),(0,c.registerServerReference)(h,"60350dceff9f847b9f3aa216242f998eef71e1a8ac",null),a.s(["4045fb4e4dd7a243ae58c6075af5457b975a7e6156",()=>b.f,"60350dceff9f847b9f3aa216242f998eef71e1a8ac",0,h],36558)}];
2
2
 
3
3
  //# sourceMappingURL=0vkm_server_app_%28console%29_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/outside-parties/add-a2a-client/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/add-a2a-client/actions.ts"],"sourcesContent":["export {setTheme as '4014cabd1a393a5ea041c3f3ba58bfec7066ad4931'} from 'ACTIONS_MODULE0'\nexport {addA2aClient as '60b57eca1e0f69eb80ba9513020f68bc56ce52970c'} from 'ACTIONS_MODULE1'\n","'use server';\n\n/**\n * Adding an outside A2A client (decision 0060), as the account signed in:\n * the API checks it holds gateway:approve and grants only scopes it holds,\n * then answers the client's bearer, which the page shows once.\n */\nimport { idSchema } from '@aeolus-fleet/common';\n\nimport { refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { FLEET_FIELD, fieldOf, fieldsOf } from '../forms/form-state';\nimport { tickedScopes } from './ticked-scopes';\n\n/** Where adding stands: not sent, refused with why, or added with the bearer to hand the client. */\nexport type AddA2aClientState = { kind: 'idle' } | { kind: 'refused'; message: string } | { kind: 'added'; name: string; bearer: string };\n\nexport async function addA2aClient(_previous: AddA2aClientState, form: FormData): Promise<AddA2aClientState> {\n const ownerShipId = idSchema('ship').safeParse(fieldOf(form, 'ownerShipId'));\n if (!ownerShipId.success) {\n return { kind: 'refused', message: 'Pick its owner' };\n }\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n try {\n const added = await api.parties.addA2aClient.mutate({ requestId: fieldOf(form, 'requestId'), name: fieldOf(form, 'name'), ownerShipId: ownerShipId.data, scopes: tickedScopes(fieldsOf(form)) });\n return { kind: 'added', name: added.party.name, bearer: added.bearer };\n } catch (error) {\n return { kind: 'refused', message: refusalMessageOf(error) };\n }\n}\n"],"names":["addA2aClient","_previous","form","ownerShipId","safeParse","success","kind","message","api","added","parties","mutate","requestId","name","data","scopes","party","bearer","error"],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,oBCOA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAKO,eAAeA,EAAaC,CAA4B,CAAEC,CAAc,EAC7E,IAAMC,EAAc,CAAA,EAAA,EAAA,CAAA,AAAQ,EAAC,QAAQC,SAAS,CAAC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACF,EAAM,gBAC7D,GAAI,CAACC,EAAYE,OAAO,CACtB,CADwB,KACjB,CAAEC,KAAM,UAAWC,QAAS,gBAAiB,EAEtD,IAAMC,EAAM,MAAM,CAAA,EAAA,EAAA,CAAU,AAAV,EAAW,CAAA,EAAA,EAAA,CAAA,AAAO,EAACN,EAAM,EAAA,CAAW,GACtD,GAAI,CACF,IAAMO,EAAQ,MAAMD,EAAIE,OAAO,CAACV,YAAY,CAACW,MAAM,CAAC,CAAEC,UAAW,CAAA,EAAA,EAAA,CAAA,AAAO,EAACV,EAAM,aAAcW,KAAM,CAAA,EAAA,EAAA,CAAA,AAAO,EAACX,EAAM,QAASC,YAAaA,EAAYW,IAAI,CAAEC,OAAQ,CAAA,EAAA,EAAA,CAAA,AAAY,EAAC,CAAA,EAAA,EAAA,CAAA,AAAQ,EAACb,GAAO,GAC9L,MAAO,CAAEI,KAAM,QAASO,KAAMJ,EAAMO,KAAK,CAACH,IAAI,CAAEI,OAAQR,EAAMQ,MAAM,AAAC,CACvE,CAAE,MAAOC,EAAO,CACd,MAAO,CAAEZ,KAAM,UAAWC,QAAS,CAAA,EAAA,EAAA,CAAA,AAAgB,EAACW,EAAO,CAC7D,CACF,0CAZsBlB,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/outside-parties/add-a2a-client/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/add-a2a-client/actions.ts"],"sourcesContent":["export {setTheme as '4045fb4e4dd7a243ae58c6075af5457b975a7e6156'} from 'ACTIONS_MODULE0'\nexport {addA2aClient as '60350dceff9f847b9f3aa216242f998eef71e1a8ac'} from 'ACTIONS_MODULE1'\n","'use server';\n\n/**\n * Adding an outside A2A client (decision 0060), as the account signed in:\n * the API checks it holds gateway:approve and grants only scopes it holds,\n * then answers the client's bearer, which the page shows once.\n */\nimport { idSchema } from '@aeolus-fleet/common';\n\nimport { refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { FLEET_FIELD, fieldOf, fieldsOf } from '../forms/form-state';\nimport { tickedScopes } from './ticked-scopes';\n\n/** Where adding stands: not sent, refused with why, or added with the bearer to hand the client. */\nexport type AddA2aClientState = { kind: 'idle' } | { kind: 'refused'; message: string } | { kind: 'added'; name: string; bearer: string };\n\nexport async function addA2aClient(_previous: AddA2aClientState, form: FormData): Promise<AddA2aClientState> {\n const ownerShipId = idSchema('ship').safeParse(fieldOf(form, 'ownerShipId'));\n if (!ownerShipId.success) {\n return { kind: 'refused', message: 'Pick its owner' };\n }\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n try {\n const added = await api.parties.addA2aClient.mutate({ requestId: fieldOf(form, 'requestId'), name: fieldOf(form, 'name'), ownerShipId: ownerShipId.data, scopes: tickedScopes(fieldsOf(form)) });\n return { kind: 'added', name: added.party.name, bearer: added.bearer };\n } catch (error) {\n return { kind: 'refused', message: refusalMessageOf(error) };\n }\n}\n"],"names":["addA2aClient","_previous","form","ownerShipId","safeParse","success","kind","message","api","added","parties","mutate","requestId","name","data","scopes","party","bearer","error"],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,oBCOA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAKO,eAAeA,EAAaC,CAA4B,CAAEC,CAAc,EAC7E,IAAMC,EAAc,CAAA,EAAA,EAAA,CAAA,AAAQ,EAAC,QAAQC,SAAS,CAAC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACF,EAAM,gBAC7D,GAAI,CAACC,EAAYE,OAAO,CACtB,CADwB,KACjB,CAAEC,KAAM,UAAWC,QAAS,gBAAiB,EAEtD,IAAMC,EAAM,MAAM,CAAA,EAAA,EAAA,CAAU,AAAV,EAAW,CAAA,EAAA,EAAA,CAAA,AAAO,EAACN,EAAM,EAAA,CAAW,GACtD,GAAI,CACF,IAAMO,EAAQ,MAAMD,EAAIE,OAAO,CAACV,YAAY,CAACW,MAAM,CAAC,CAAEC,UAAW,CAAA,EAAA,EAAA,CAAA,AAAO,EAACV,EAAM,aAAcW,KAAM,CAAA,EAAA,EAAA,CAAA,AAAO,EAACX,EAAM,QAASC,YAAaA,EAAYW,IAAI,CAAEC,OAAQ,CAAA,EAAA,EAAA,CAAA,AAAY,EAAC,CAAA,EAAA,EAAA,CAAA,AAAQ,EAACb,GAAO,GAC9L,MAAO,CAAEI,KAAM,QAASO,KAAMJ,EAAMO,KAAK,CAACH,IAAI,CAAEI,OAAQR,EAAMQ,MAAM,AAAC,CACvE,CAAE,MAAOC,EAAO,CACd,MAAO,CAAEZ,KAAM,UAAWC,QAAS,CAAA,EAAA,EAAA,CAAA,AAAgB,EAACW,EAAO,CAC7D,CACF,0CAZsBlB,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[16602,a=>{"use strict";var b=a.i(70043),c=a.i(37936),d=a.i(66680),e=a.i(29517);a.i(70396);var f=a.i(73727),g=a.i(55476),h=a.i(66283),i=a.i(1324),j=a.i(29493),k=a.i(72913);function l(a,b){return a.getAll(b).filter(a=>"string"==typeof a)}function m(a){return(0,j.y)({credentialKind:(0,i.v)(a,"credentialKind"),token:(0,i.v)(a,"token"),clientId:(0,i.v)(a,"clientId"),clientSecret:(0,i.v)(a,"clientSecret"),issuer:(0,i.v)(a,"issuer"),scope:(0,i.v)(a,"scope")})}async function n(a,b){let c=(0,i.O)(b),e=await (0,h.z)((0,i.v)(b,i.H));try{let{tools:a}=await e.parties.check.mutate({url:(0,i.v)(b,"url"),credential:m(b)}),f=await e.parties.ownerChoices.query();return{step:"owner",fields:c,tools:a,owners:f,requestId:(0,d.randomUUID)()}}catch(a){return{step:"address",fields:c,refusal:(0,h.s)(a)}}}async function o(a,b){let c,d=(0,i.v)(b,i.H),j=(0,i.O)(b),n=(0,i.v)(b,"requestId"),o=(0,e.f)("ship").safeParse((0,i.v)(b,"ownerShipId").trim());if(!o.success)return{kind:"refused",requestId:n,fields:j,message:"The owner's ship id is not a ship id (shp_...)"};let p=await (0,h.z)(d);try{c=(await p.parties.approve.mutate({requestId:n,name:(0,i.v)(b,"name"),url:(0,i.v)(b,"url"),credential:m(b),ownerShipId:o.data,concurrencyLimit:Number((0,i.v)(b,"concurrencyLimit")),tools:function(a){let b=l(a,"toolShown");if(0===b.length)return;let c=new Set(l(a,"toolOn"));return b.map(a=>({name:a,isOn:c.has(a)}))}(b)})).name}catch(a){return{kind:"refused",requestId:n,fields:j,message:(0,h.s)(a)}}(0,f.redirect)((0,g.i)((0,k.N)(c),d))}(0,a.i(13095).ensureServerEntryExports)([n,o]),(0,c.registerServerReference)(n,"60ba25b8b8f5760a68cbec88a1caa4003a6807ad97",null),(0,c.registerServerReference)(o,"6022028d1a3d86ce48701f3606d2372e8023556089",null);var p=a.i(94705);a.s(["4014cabd1a393a5ea041c3f3ba58bfec7066ad4931",()=>b.f,"40dad6e23692304530c149129641a4a94433905443",()=>p.L,"40e82407011c6d236a4a2c8db8e53c307a6e8aa98f",()=>p.M,"6022028d1a3d86ce48701f3606d2372e8023556089",0,o,"60566e54974f37ea23543482d9cf63a66aa5f76a47",()=>p.o,"60ba25b8b8f5760a68cbec88a1caa4003a6807ad97",0,n],16602)}];
1
+ module.exports=[16602,a=>{"use strict";var b=a.i(70043),c=a.i(37936),d=a.i(66680),e=a.i(29517);a.i(70396);var f=a.i(73727),g=a.i(55476),h=a.i(66283),i=a.i(1324),j=a.i(29493),k=a.i(72913);function l(a,b){return a.getAll(b).filter(a=>"string"==typeof a)}function m(a){return(0,j.y)({credentialKind:(0,i.v)(a,"credentialKind"),token:(0,i.v)(a,"token"),clientId:(0,i.v)(a,"clientId"),clientSecret:(0,i.v)(a,"clientSecret"),issuer:(0,i.v)(a,"issuer"),scope:(0,i.v)(a,"scope")})}async function n(a,b){let c=(0,i.O)(b),e=await (0,h.z)((0,i.v)(b,i.H));try{let{tools:a}=await e.parties.check.mutate({url:(0,i.v)(b,"url"),credential:m(b)}),f=await e.parties.ownerChoices.query();return{step:"owner",fields:c,tools:a,owners:f,requestId:(0,d.randomUUID)()}}catch(a){return{step:"address",fields:c,refusal:(0,h.s)(a)}}}async function o(a,b){let c,d=(0,i.v)(b,i.H),j=(0,i.O)(b),n=(0,i.v)(b,"requestId"),o=(0,e.f)("ship").safeParse((0,i.v)(b,"ownerShipId").trim());if(!o.success)return{kind:"refused",requestId:n,fields:j,message:"The owner's ship id is not a ship id (shp_...)"};let p=await (0,h.z)(d);try{c=(await p.parties.approve.mutate({requestId:n,name:(0,i.v)(b,"name"),url:(0,i.v)(b,"url"),credential:m(b),ownerShipId:o.data,concurrencyLimit:Number((0,i.v)(b,"concurrencyLimit")),tools:function(a){let b=l(a,"toolShown");if(0===b.length)return;let c=new Set(l(a,"toolOn"));return b.map(a=>({name:a,isOn:c.has(a)}))}(b)})).name}catch(a){return{kind:"refused",requestId:n,fields:j,message:(0,h.s)(a)}}(0,f.redirect)((0,g.i)((0,k.N)(c),d))}(0,a.i(13095).ensureServerEntryExports)([n,o]),(0,c.registerServerReference)(n,"6056c3e976cb0a511aec12ef3298fa78f6187f933c",null),(0,c.registerServerReference)(o,"60804c310955bcef699dbbb746b8d001468d4716dd",null);var p=a.i(94705);a.s(["4045a804dd18b9264f1bb2a561a2595b205f282b11",()=>p.M,"4045fb4e4dd7a243ae58c6075af5457b975a7e6156",()=>b.f,"40fed1a57eee8b6fab07017280a5434916a77a1b4f",()=>p.L,"6056c3e976cb0a511aec12ef3298fa78f6187f933c",0,n,"60804c310955bcef699dbbb746b8d001468d4716dd",0,o,"60f15ca6f1b9d907148834760b626c097cb38de61c",()=>p.o],16602)}];
2
2
 
3
3
  //# sourceMappingURL=0vkm_server_app_%28console%29_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/outside-parties/add/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/add-server/actions.ts","../../../../../web/features/add-server/tool-choice.ts"],"sourcesContent":["export {setTheme as '4014cabd1a393a5ea041c3f3ba58bfec7066ad4931'} from 'ACTIONS_MODULE0'\nexport {approveServer as '6022028d1a3d86ce48701f3606d2372e8023556089'} from 'ACTIONS_MODULE1'\nexport {checkServer as '60ba25b8b8f5760a68cbec88a1caa4003a6807ad97'} from 'ACTIONS_MODULE1'\nexport {setPartyScopes as '40dad6e23692304530c149129641a4a94433905443'} from 'ACTIONS_MODULE2'\nexport {switchPartyTools as '40e82407011c6d236a4a2c8db8e53c307a6e8aa98f'} from 'ACTIONS_MODULE2'\nexport {markA2aAgent as '60566e54974f37ea23543482d9cf63a66aa5f76a47'} from 'ACTIONS_MODULE2'\n","'use server';\n\n/**\n * Adding an outside MCP server (design B, screen 7; flow F10), as the\n * account signed in: the gateway's check of the tools it answers with,\n * which keeps nothing, then approving it with its owner. Each step asks the\n * API, which checks the account holds fleet:manage.\n */\nimport { randomUUID } from 'node:crypto';\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 { FLEET_FIELD, fieldOf, fieldsOf } from '../forms/form-state';\nimport { serverCredentialOf } from '../forms/server-credential';\nimport type { OwnerChoice } from '../forms/ui/owner-field';\nimport { partyPath } from '../outside-parties/paths';\nimport { toolChoiceOf } from './tool-choice';\n\n/** The tools a server answered the check with. */\nexport interface CheckedTool {\n name: string;\n description?: string | undefined;\n isReadOnly: boolean;\n}\n\n/**\n * Where adding a server stands: the address step, or the owner step after\n * the check answered its tools, with the ships its owner may be picked\n * from. The address and credential travel on in the fields, as the browser\n * sent them.\n */\nexport type AddServerState =\n | { step: 'address'; fields: Record<string, string>; refusal?: string }\n | { step: 'owner'; fields: Record<string, string>; tools: CheckedTool[]; owners: OwnerChoice[]; requestId: string };\n\nfunction credentialOf(form: FormData) {\n return 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}\n\nexport async function checkServer(_previous: AddServerState, form: FormData): Promise<AddServerState> {\n const fields = fieldsOf(form);\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n try {\n const { tools } = await api.parties.check.mutate({ url: fieldOf(form, 'url'), credential: credentialOf(form) });\n const owners = await api.parties.ownerChoices.query();\n return { step: 'owner', fields, tools, owners, requestId: randomUUID() };\n } catch (error) {\n return { step: 'address', fields, refusal: refusalMessageOf(error) };\n }\n}\n\n/** An approval refused, for the owner step of the check it came from, with what the browser sent. */\nexport type ApproveState = { kind: 'idle' } | { kind: 'refused'; requestId: string; fields: Record<string, string>; message: string };\n\nexport async function approveServer(_previous: ApproveState, form: FormData): Promise<ApproveState> {\n const fleetId = fieldOf(form, FLEET_FIELD);\n const fields = fieldsOf(form);\n const requestId = fieldOf(form, 'requestId');\n const ownerShipId = idSchema('ship').safeParse(fieldOf(form, 'ownerShipId').trim());\n if (!ownerShipId.success) {\n return { kind: 'refused', requestId, fields, message: \"The owner's ship id is not a ship id (shp_...)\" };\n }\n const api = await requestApi(fleetId);\n let name: string;\n try {\n const approved = await api.parties.approve.mutate({\n requestId,\n name: fieldOf(form, 'name'),\n url: fieldOf(form, 'url'),\n credential: credentialOf(form),\n ownerShipId: ownerShipId.data,\n concurrencyLimit: Number(fieldOf(form, 'concurrencyLimit')),\n tools: toolChoiceOf(form),\n });\n name = approved.name;\n } catch (error) {\n return { kind: 'refused', requestId, fields, message: refusalMessageOf(error) };\n }\n redirect(inFleet(partyPath(name), fleetId));\n}\n","/**\n * The tools an approver switched when adding a server (aeolus-fleet#1151):\n * each tool the check answered is sent as shown, and the ticked ones as on.\n */\n\n/** The field naming each tool whose switch the form showed. */\nexport const TOOL_SHOWN_FIELD = 'toolShown';\n\n/** The field naming each tool ticked on. */\nexport const TOOL_ON_FIELD = 'toolOn';\n\nfunction namesIn(form: FormData, field: string): string[] {\n return form.getAll(field).filter((value) => typeof value === 'string');\n}\n\n/** Each tool shown, on or off; none when the form showed no switch, so the server keeps every tool on. */\nexport function toolChoiceOf(form: FormData): { name: string; isOn: boolean }[] | undefined {\n const shown = namesIn(form, TOOL_SHOWN_FIELD);\n if (shown.length === 0) {\n return undefined;\n }\n const on = new Set(namesIn(form, TOOL_ON_FIELD));\n return shown.map((name) => ({ name, isOn: on.has(name) }));\n}\n\n/** A description's first line with words, as a tool's row shows it before it is opened. */\nexport function firstLineOf(description: string): string {\n return description.split('\\n').map((line) => line.trim()).find((line) => line !== '') ?? '';\n}\n"],"names":["TOOL_SHOWN_FIELD","TOOL_ON_FIELD","namesIn","form","field","getAll","filter","value","toolChoiceOf","shown","length","undefined","on","Set","map","name","isOn","has","firstLineOf","description","split","line","trim","find"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/outside-parties/add/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/add-server/actions.ts","../../../../../web/features/add-server/tool-choice.ts"],"sourcesContent":["export {setTheme as '4045fb4e4dd7a243ae58c6075af5457b975a7e6156'} from 'ACTIONS_MODULE0'\nexport {approveServer as '60804c310955bcef699dbbb746b8d001468d4716dd'} from 'ACTIONS_MODULE1'\nexport {checkServer as '6056c3e976cb0a511aec12ef3298fa78f6187f933c'} from 'ACTIONS_MODULE1'\nexport {setPartyScopes as '40fed1a57eee8b6fab07017280a5434916a77a1b4f'} from 'ACTIONS_MODULE2'\nexport {switchPartyTools as '4045a804dd18b9264f1bb2a561a2595b205f282b11'} from 'ACTIONS_MODULE2'\nexport {markA2aAgent as '60f15ca6f1b9d907148834760b626c097cb38de61c'} from 'ACTIONS_MODULE2'\n","'use server';\n\n/**\n * Adding an outside MCP server (design B, screen 7; flow F10), as the\n * account signed in: the gateway's check of the tools it answers with,\n * which keeps nothing, then approving it with its owner. Each step asks the\n * API, which checks the account holds fleet:manage.\n */\nimport { randomUUID } from 'node:crypto';\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 { FLEET_FIELD, fieldOf, fieldsOf } from '../forms/form-state';\nimport { serverCredentialOf } from '../forms/server-credential';\nimport type { OwnerChoice } from '../forms/ui/owner-field';\nimport { partyPath } from '../outside-parties/paths';\nimport { toolChoiceOf } from './tool-choice';\n\n/** The tools a server answered the check with. */\nexport interface CheckedTool {\n name: string;\n description?: string | undefined;\n isReadOnly: boolean;\n}\n\n/**\n * Where adding a server stands: the address step, or the owner step after\n * the check answered its tools, with the ships its owner may be picked\n * from. The address and credential travel on in the fields, as the browser\n * sent them.\n */\nexport type AddServerState =\n | { step: 'address'; fields: Record<string, string>; refusal?: string }\n | { step: 'owner'; fields: Record<string, string>; tools: CheckedTool[]; owners: OwnerChoice[]; requestId: string };\n\nfunction credentialOf(form: FormData) {\n return 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}\n\nexport async function checkServer(_previous: AddServerState, form: FormData): Promise<AddServerState> {\n const fields = fieldsOf(form);\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n try {\n const { tools } = await api.parties.check.mutate({ url: fieldOf(form, 'url'), credential: credentialOf(form) });\n const owners = await api.parties.ownerChoices.query();\n return { step: 'owner', fields, tools, owners, requestId: randomUUID() };\n } catch (error) {\n return { step: 'address', fields, refusal: refusalMessageOf(error) };\n }\n}\n\n/** An approval refused, for the owner step of the check it came from, with what the browser sent. */\nexport type ApproveState = { kind: 'idle' } | { kind: 'refused'; requestId: string; fields: Record<string, string>; message: string };\n\nexport async function approveServer(_previous: ApproveState, form: FormData): Promise<ApproveState> {\n const fleetId = fieldOf(form, FLEET_FIELD);\n const fields = fieldsOf(form);\n const requestId = fieldOf(form, 'requestId');\n const ownerShipId = idSchema('ship').safeParse(fieldOf(form, 'ownerShipId').trim());\n if (!ownerShipId.success) {\n return { kind: 'refused', requestId, fields, message: \"The owner's ship id is not a ship id (shp_...)\" };\n }\n const api = await requestApi(fleetId);\n let name: string;\n try {\n const approved = await api.parties.approve.mutate({\n requestId,\n name: fieldOf(form, 'name'),\n url: fieldOf(form, 'url'),\n credential: credentialOf(form),\n ownerShipId: ownerShipId.data,\n concurrencyLimit: Number(fieldOf(form, 'concurrencyLimit')),\n tools: toolChoiceOf(form),\n });\n name = approved.name;\n } catch (error) {\n return { kind: 'refused', requestId, fields, message: refusalMessageOf(error) };\n }\n redirect(inFleet(partyPath(name), fleetId));\n}\n","/**\n * The tools an approver switched when adding a server (aeolus-fleet#1151):\n * each tool the check answered is sent as shown, and the ticked ones as on.\n */\n\n/** The field naming each tool whose switch the form showed. */\nexport const TOOL_SHOWN_FIELD = 'toolShown';\n\n/** The field naming each tool ticked on. */\nexport const TOOL_ON_FIELD = 'toolOn';\n\nfunction namesIn(form: FormData, field: string): string[] {\n return form.getAll(field).filter((value) => typeof value === 'string');\n}\n\n/** Each tool shown, on or off; none when the form showed no switch, so the server keeps every tool on. */\nexport function toolChoiceOf(form: FormData): { name: string; isOn: boolean }[] | undefined {\n const shown = namesIn(form, TOOL_SHOWN_FIELD);\n if (shown.length === 0) {\n return undefined;\n }\n const on = new Set(namesIn(form, TOOL_ON_FIELD));\n return shown.map((name) => ({ name, isOn: on.has(name) }));\n}\n\n/** A description's first line with words, as a tool's row shows it before it is opened. */\nexport function firstLineOf(description: string): string {\n return description.split('\\n').map((line) => line.trim()).find((line) => line !== '') ?? '';\n}\n"],"names":["TOOL_SHOWN_FIELD","TOOL_ON_FIELD","namesIn","form","field","getAll","filter","value","toolChoiceOf","shown","length","undefined","on","Set","map","name","isOn","has","firstLineOf","description","split","line","trim","find"],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,oBCQA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OCPA,SAASE,EAAQC,CAAc,CAAEC,CAAa,EAC5C,OAAOD,EAAKE,MAAM,CAACD,GAAOE,MAAM,CAAC,AAACC,GAA2B,UAAjB,OAAOA,EACrD,CDyBA,SAAS,EAAa,CAAc,EAClC,MAAO,CAAA,EAAA,EAAA,CAAkB,AAAlB,EAAmB,CACxB,eAAgB,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,kBAC9B,MAAO,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,SACrB,SAAU,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,YACxB,aAAc,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,gBAC5B,OAAQ,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,UACtB,MAAO,CAAA,EAAA,EAAA,CAAO,AAAP,EAAQ,EAAM,QACvB,EACF,CAEO,eAAe,EAAY,CAAyB,CAAE,CAAc,EACzE,IAAM,EAAS,CAAA,EAAA,EAAA,CAAA,AAAQ,EAAC,GAClB,EAAM,MAAM,CAAA,EAAA,EAAA,CAAA,AAAU,EAAC,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,EAAA,CAAW,GACtD,GAAI,CACF,GAAM,OAAE,CAAK,CAAE,CAAG,MAAM,EAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAE,IAAK,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,OAAQ,WAAY,EAAa,EAAM,GACvG,EAAS,MAAM,EAAI,OAAO,CAAC,YAAY,CAAC,KAAK,GACnD,MAAO,CAAE,KAAM,QAAS,eAAQ,SAAO,EAAQ,UAAW,CAAA,EAAA,EAAA,UAAA,AAAU,GAAG,CACzE,CAAE,MAAO,EAAO,CACd,MAAO,CAAE,KAAM,iBAAW,EAAQ,QAAS,CAAA,EAAA,EAAA,CAAgB,AAAhB,EAAiB,EAAO,CACrE,CACF,CAKO,eAAe,EAAc,CAAuB,CAAE,CAAc,EACzE,IAQI,EARE,EAAU,CAAA,EAAA,EAAA,CAAO,AAAP,EAAQ,EAAM,EAAA,CAAW,EACnC,EAAS,CAAA,EAAA,EAAA,CAAA,AAAQ,EAAC,GAClB,EAAY,CAAA,EAAA,EAAA,CAAO,AAAP,EAAQ,EAAM,aAC1B,EAAc,CAAA,EAAA,EAAA,CAAA,AAAQ,EAAC,QAAQ,SAAS,CAAC,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,eAAe,IAAI,IAChF,GAAI,CAAC,EAAY,OAAO,CACtB,CADwB,KACjB,CAAE,KAAM,oBAAW,SAAW,EAAQ,QAAS,gDAAiD,EAEzG,IAAM,EAAM,MAAM,CAAA,EAAA,EAAA,CAAA,AAAU,EAAC,GAE7B,GAAI,CAUF,EAAO,CATU,MAAM,EAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAChD,EACA,KAAM,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,QACpB,IAAK,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,OACnB,WAAY,EAAa,GACzB,YAAa,EAAY,IAAI,CAC7B,iBAAkB,OAAO,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,EAAM,qBACvC,MAAO,AClEN,SAASC,AAAaL,CAAc,EACzC,IAAMM,EAAQP,EAAQC,EAXQ,IAWFH,SAC5B,GAAqB,GAAG,CAApBS,EAAMC,MAAM,CACd,OAEF,AAFSC,IAEHC,EAAK,IAAIC,IAAIX,EAAQC,EAZA,IAYMF,OACjC,OAAOQ,EAAMK,GAAG,CAAC,AAACC,IAAU,GAAD,GAAGA,EAAMC,KAAMJ,EAAGK,GAAG,CAACF,GAAM,CAAC,CAC1D,ED2D0B,EACtB,EAAA,EACgB,IAAI,AACtB,CAAE,MAAO,EAAO,CACd,MAAO,CAAE,KAAM,oBAAW,SAAW,EAAQ,QAAS,CAAA,EAAA,EAAA,CAAA,AAAgB,EAAC,EAAO,CAChF,CACA,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,CAAA,EAAA,EAAA,CAAA,AAAO,EAAC,CAAA,EAAA,EAAA,CAAA,AAAS,EAAC,GAAO,GACpC,0CAxCsB,EAeA,IAfA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,MAeA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,MD7DtB,IAAA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[5376,a=>{"use strict";var b=a.i(70043),c=a.i(4757);a.S([b,"4014cabd1a393a5ea041c3f3ba58bfec7066ad4931,f",0,c,"402b3765d265462ba53377de2f004c76f87c5e586e,Q"],5376)}];
1
+ module.exports=[5376,a=>{"use strict";var b=a.i(70043),c=a.i(4757);a.S([b,"4045fb4e4dd7a243ae58c6075af5457b975a7e6156,f",0,c,"4053327e6f06e4be75e433f59031981625d8630636,Q"],5376)}];
2
2
 
3
3
  //# sourceMappingURL=0vkm_server_app_%28console%29_overview_requests_%5BrequestId%5D_page_actions_0uki9j3mtuz9e.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/overview/requests/%5BrequestId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4014cabd1a393a5ea041c3f3ba58bfec7066ad4931'} from 'ACTIONS_MODULE0'\nexport {decideRequest as '402b3765d265462ba53377de2f004c76f87c5e586e'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"sCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28console%29/overview/requests/%5BrequestId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4045fb4e4dd7a243ae58c6075af5457b975a7e6156'} from 'ACTIONS_MODULE0'\nexport {decideRequest as '4053327e6f06e4be75e433f59031981625d8630636'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"sCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -0,0 +1,4 @@
1
+ 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)},97295,a=>{var b=a.i(70043),c=a.i(434);a.S([b,"4045fb4e4dd7a243ae58c6075af5457b975a7e6156,f",0,c,"6010454c60705f82e2f069e73e713a1a39e5bd6f1f,c,602c83de0ba7f5a17c1f9a07b0827ec4dfd5acf846,K,6036e5fb74ee00950c7341111e65a15b32bd4814d4,N,6071c2ffff015d3e5851cdc047d105056a45770d94,d,60f5744425fb077e6e9e9df7ec55c162d75049573a,M"],97295)},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,"4045fb4e4dd7a243ae58c6075af5457b975a7e6156",null),a.s(["f",0,e])}],81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))}];
3
+
4
+ //# sourceMappingURL=%5Broot-of-the-server%5D__001xx3sm5ur-e._.js.map
@@ -0,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/slack/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/forms/form-state.ts","../../../../../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 '4045fb4e4dd7a243ae58c6075af5457b975a7e6156'} from 'ACTIONS_MODULE0'\nexport {disconnectSlack as '6010454c60705f82e2f069e73e713a1a39e5bd6f1f'} from 'ACTIONS_MODULE1'\nexport {exposeShip as '602c83de0ba7f5a17c1f9a07b0827ec4dfd5acf846'} from 'ACTIONS_MODULE1'\nexport {connectSlack as '6036e5fb74ee00950c7341111e65a15b32bd4814d4'} from 'ACTIONS_MODULE1'\nexport {removeBot as '6071c2ffff015d3e5851cdc047d105056a45770d94'} from 'ACTIONS_MODULE1'\nexport {installBot as '60f5744425fb077e6e9e9df7ec55c162d75049573a'} from 'ACTIONS_MODULE1'\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","'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","IDLE","kind","fieldOf","form","name","value","get","fieldsOf","Object","fromEntries","entries","flatMap","FLEET_FIELD","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge"],"mappings":"iCAGO,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,MAAM,AAAIC,MACR,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,OACA,EAAA,EAAA,CAAA,CAAA,+TCwB2B,cAXpB,SAASG,AAAQC,CAAc,CAAEC,CAAY,EAClD,IAAMC,EAAQF,EAAKG,GAAG,CAACF,GACvB,MAAwB,UAAjB,OAAOC,EAAqBA,EAAQ,EAC7C,QAGO,SAASE,AAASJ,CAAc,EACrC,OAAOK,OAAOC,WAAW,CAAC,IAAIN,EAAKO,OAAO,GAAG,CAACC,OAAO,CAAC,CAAC,CAACP,EAAMC,EAAM,GAAuB,UAAjB,OAAOA,EAAqB,CAAC,CAACD,EAAMC,EAAM,CAAC,CAAG,EAAE,EAC5H,gCCnBA,EAAA,EAAA,CAAA,CAAA,MAEA,EAAA,EAAA,CAAA,CAAA,OAIO,eAAeS,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=[[13930,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call ActionForm() from the server but ActionForm 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/forms/ui/action-form.tsx","ActionForm");a.s(["ActionForm",0,b])},69372,a=>{var b=a.i(13930);a.n(b)},49144,a=>{let b="inline-flex h-9 items-center justify-center gap-2 rounded-md px-4 font-medium disabled:opacity-60",c={primary:`${b} bg-primary text-primary-foreground hover:bg-primary-hover`,secondary:`${b} border border-border bg-card hover:bg-accent`,destructive:`${b} bg-destructive text-destructive-foreground`};a.s(["x",0,c,"r",0,"rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm","w",0,"h-9 w-full rounded-md border border-input bg-background px-3 font-mono text-code","z",0,"grid gap-1"])},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."})]})}])}],54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},14465,(a,b,c)=>{(()=>{"use strict";var a={86:a=>{a.exports=function(a,b){return"string"==typeof a?g(a):"number"==typeof a?f(a,b):null},a.exports.format=f,a.exports.parse=g;var b=/\B(?=(\d{3})+(?!\d))/g,c=/(?:\.0*|(\.[^0]+)0+)$/,d={b:1,kb:1024,mb:1048576,gb:0x40000000,tb:0x10000000000,pb:0x4000000000000},e=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function f(a,e){if(!Number.isFinite(a))return null;var f=Math.abs(a),g=e&&e.thousandsSeparator||"",h=e&&e.unitSeparator||"",i=e&&void 0!==e.decimalPlaces?e.decimalPlaces:2,j=!!(e&&e.fixedDecimals),k=e&&e.unit||"";k&&d[k.toLowerCase()]||(k=f>=d.pb?"PB":f>=d.tb?"TB":f>=d.gb?"GB":f>=d.mb?"MB":f>=d.kb?"KB":"B");var l=(a/d[k.toLowerCase()]).toFixed(i);return j||(l=l.replace(c,"$1")),g&&(l=l.split(".").map(function(a,c){return 0===c?a.replace(b,g):a}).join(".")),l+h+k}function g(a){if("number"==typeof a&&!isNaN(a))return a;if("string"!=typeof a)return null;var b,c=e.exec(a),f="b";return c?(b=parseFloat(c[1]),f=c[4].toLowerCase()):(b=parseInt(a,10),f="b"),Math.floor(d[f]*b)}}},c={};function d(b){var e=c[b];if(void 0!==e)return e.exports;var f=c[b]={exports:{}},g=!0;try{a[b](f,f.exports,d),g=!1}finally{g&&delete c[b]}return f.exports}d.ab="/ROOT/node_modules/next/dist/compiled/bytes/",b.exports=d(86)})()}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__04e53giy2-2tm._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../web/features/forms/ui/action-form.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/forms/ui/action-form.tsx%22%20%7D","../../../../../web/features/forms/ui/look.ts","../../../../../web/features/sign-in/ui/no-sign-in.tsx","../../../../../node_modules/next/dist/compiled/bytes/index.js"],"sourcesContent":["// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const ActionForm = registerClientReference(\n function() { throw new Error(\"Attempted to call ActionForm() from the server but ActionForm 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/forms/ui/action-form.tsx\",\n \"ActionForm\",\n);\n","/** The classes the pages share, on the design tokens: a card and the button kinds. */\nexport const CARD = 'rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm';\n\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","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","(()=>{\"use strict\";var e={86:e=>{\n/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\ne.exports=bytes;e.exports.format=format;e.exports.parse=parse;var r=/\\B(?=(\\d{3})+(?!\\d))/g;var a=/(?:\\.0*|(\\.[^0]+)0+)$/;var t={b:1,kb:1<<10,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)};var i=/^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;function bytes(e,r){if(typeof e===\"string\"){return parse(e)}if(typeof e===\"number\"){return format(e,r)}return null}function format(e,i){if(!Number.isFinite(e)){return null}var n=Math.abs(e);var o=i&&i.thousandsSeparator||\"\";var s=i&&i.unitSeparator||\"\";var f=i&&i.decimalPlaces!==undefined?i.decimalPlaces:2;var u=Boolean(i&&i.fixedDecimals);var p=i&&i.unit||\"\";if(!p||!t[p.toLowerCase()]){if(n>=t.pb){p=\"PB\"}else if(n>=t.tb){p=\"TB\"}else if(n>=t.gb){p=\"GB\"}else if(n>=t.mb){p=\"MB\"}else if(n>=t.kb){p=\"KB\"}else{p=\"B\"}}var b=e/t[p.toLowerCase()];var l=b.toFixed(f);if(!u){l=l.replace(a,\"$1\")}if(o){l=l.split(\".\").map((function(e,a){return a===0?e.replace(r,o):e})).join(\".\")}return l+s+p}function parse(e){if(typeof e===\"number\"&&!isNaN(e)){return e}if(typeof e!==\"string\"){return null}var r=i.exec(e);var a;var n=\"b\";if(!r){a=parseInt(e,10);n=\"b\"}else{a=parseFloat(r[1]);n=r[4].toLowerCase()}return Math.floor(t[n]*a)}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var i=r[a]={exports:{}};var n=true;try{e[a](i,i.exports,__nccwpck_require__);n=false}finally{if(n)delete r[a]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(86);module.exports=a})();"],"names":["ActionForm","Error","CARD","BUTTON","BUTTONS","primary","secondary","destructive","INPUT","LABEL","NoSignIn","className","e","exports","bytes","format","parse","r","a","t","b","kb","mb","gb","tb","Math","pow","pb","i","Number","isFinite","n","abs","o","thousandsSeparator","s","unitSeparator","f","decimalPlaces","undefined","u","Boolean","fixedDecimals","p","unit","toLowerCase","l","toFixed","replace","split","map","join","isNaN","exec","parseInt","parseFloat","floor","__nccwpck_require__","ab","module"],"mappings":"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","ignoreList":[0,3]}
@@ -1,4 +1,4 @@
1
1
  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)},63638,a=>{var b=a.i(70043),c=a.i(37936),d=a.i(18558),e=a.i(66283),f=a.i(1324),g=a.i(72913);async function h(a,b){let c=await (0,e.z)((0,f.v)(b,f.H)),h="true"===(0,f.v)(b,"isOn");try{await c.outsideParties.set.mutate({isOn:h,isOpenNetworkConfirmed:"true"===(0,f.v)(b,"isOpenNetworkConfirmed")})}catch(b){let a=(0,e.s)(b);return"PRECONDITION_FAILED"===(0,e.U)(b)?{kind:"openNetwork",message:a}:{kind:"refused",message:a}}return(0,d.revalidatePath)(g.$),{kind:"done",message:h?"Outside parties are on":"Outside parties are off"}}(0,a.i(13095).ensureServerEntryExports)([h]),(0,c.registerServerReference)(h,"60524375d4d6c00fa1586ec7e0298fe0edb3f68ddd",null),a.s(["4014cabd1a393a5ea041c3f3ba58bfec7066ad4931",()=>b.f,"60524375d4d6c00fa1586ec7e0298fe0edb3f68ddd",0,h],63638)},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,"4014cabd1a393a5ea041c3f3ba58bfec7066ad4931",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}`}`}])}],81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))}];
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)},63638,a=>{var b=a.i(70043),c=a.i(37936),d=a.i(18558),e=a.i(66283),f=a.i(1324),g=a.i(72913);async function h(a,b){let c=await (0,e.z)((0,f.v)(b,f.H)),h="true"===(0,f.v)(b,"isOn");try{await c.outsideParties.set.mutate({isOn:h,isOpenNetworkConfirmed:"true"===(0,f.v)(b,"isOpenNetworkConfirmed")})}catch(b){let a=(0,e.s)(b);return"PRECONDITION_FAILED"===(0,e.U)(b)?{kind:"openNetwork",message:a}:{kind:"refused",message:a}}return(0,d.revalidatePath)(g.$),{kind:"done",message:h?"Outside parties are on":"Outside parties are off"}}(0,a.i(13095).ensureServerEntryExports)([h]),(0,c.registerServerReference)(h,"6053ed42458f5e96f3dc130f042f0d2266cc5ce8f2",null),a.s(["4045fb4e4dd7a243ae58c6075af5457b975a7e6156",()=>b.f,"6053ed42458f5e96f3dc130f042f0d2266cc5ce8f2",0,h],63638)},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,"4045fb4e4dd7a243ae58c6075af5457b975a7e6156",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}`}`}])}],81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))}];
3
3
 
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__0-og0bl8lr2xq._.js.map
4
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0a8db18tyk__5._.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/outside-parties/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/outside-parties/actions.ts","../../../../../web/features/forms/form-state.ts","../../../../../web/features/frame/actions.ts","../../../../../web/features/outside-parties/paths.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 '4014cabd1a393a5ea041c3f3ba58bfec7066ad4931'} from 'ACTIONS_MODULE0'\nexport {switchOutsideParties as '60524375d4d6c00fa1586ec7e0298fe0edb3f68ddd'} from 'ACTIONS_MODULE1'\n","'use server';\n\n/**\n * The Outside parties page's form: turning the fleet's outside parties on\n * or off (interop I-3, decision 0056), as the account signed in. On in a\n * fleet with no network rules is refused with the API's warning until the\n * account confirms it.\n */\nimport { revalidatePath } from 'next/cache';\n\nimport { refusalCodeOf, refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { FLEET_FIELD, fieldOf, type FormState } from '../forms/form-state';\nimport { OUTSIDE_PARTIES_PATH } from './paths';\n\nexport async function switchOutsideParties(_previous: FormState, form: FormData): Promise<FormState> {\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n const isOn = fieldOf(form, 'isOn') === 'true';\n try {\n await api.outsideParties.set.mutate({ isOn, isOpenNetworkConfirmed: fieldOf(form, 'isOpenNetworkConfirmed') === 'true' });\n } catch (error) {\n const message = refusalMessageOf(error);\n return refusalCodeOf(error) === 'PRECONDITION_FAILED' ? { kind: 'openNetwork', message } : { kind: 'refused', message };\n }\n revalidatePath(OUTSIDE_PARTIES_PATH);\n return { kind: 'done', message: isOn ? 'Outside parties are on' : 'Outside parties are off' };\n}\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","'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","/** The outside parties' pages. */\nexport const OUTSIDE_PARTIES_PATH = '/outside-parties';\n\nexport const ADD_SERVER_PATH = `${OUTSIDE_PARTIES_PATH}/add`;\n\nexport const ADD_A2A_CLIENT_PATH = `${OUTSIDE_PARTIES_PATH}/add-a2a-client`;\n\nexport const ADD_A2A_AGENT_PATH = `${OUTSIDE_PARTIES_PATH}/add-a2a-agent`;\n\n/** One outside party's page, or one of its own: changing it, retiring it. */\nexport function partyPath(name: string, action?: 'change' | 'retire'): string {\n return `${OUTSIDE_PARTIES_PATH}/${encodeURIComponent(name)}${action === undefined ? '' : `/${action}`}`;\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","switchOutsideParties","_previous","form","api","isOn","outsideParties","set","mutate","isOpenNetworkConfirmed","error","message","kind","IDLE","fieldOf","name","value","get","fieldsOf","Object","fromEntries","entries","flatMap","FLEET_FIELD","YEAR_SECONDS","setTheme","theme","path","sameSite","maxAge","OUTSIDE_PARTIES_PATH","ADD_SERVER_PATH","ADD_A2A_CLIENT_PATH","ADD_A2A_AGENT_PATH","partyPath","encodeURIComponent","undefined"],"mappings":"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","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/outside-parties/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/outside-parties/actions.ts","../../../../../web/features/forms/form-state.ts","../../../../../web/features/frame/actions.ts","../../../../../web/features/outside-parties/paths.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 '4045fb4e4dd7a243ae58c6075af5457b975a7e6156'} from 'ACTIONS_MODULE0'\nexport {switchOutsideParties as '6053ed42458f5e96f3dc130f042f0d2266cc5ce8f2'} from 'ACTIONS_MODULE1'\n","'use server';\n\n/**\n * The Outside parties page's form: turning the fleet's outside parties on\n * or off (interop I-3, decision 0056), as the account signed in. On in a\n * fleet with no network rules is refused with the API's warning until the\n * account confirms it.\n */\nimport { revalidatePath } from 'next/cache';\n\nimport { refusalCodeOf, refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { FLEET_FIELD, fieldOf, type FormState } from '../forms/form-state';\nimport { OUTSIDE_PARTIES_PATH } from './paths';\n\nexport async function switchOutsideParties(_previous: FormState, form: FormData): Promise<FormState> {\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n const isOn = fieldOf(form, 'isOn') === 'true';\n try {\n await api.outsideParties.set.mutate({ isOn, isOpenNetworkConfirmed: fieldOf(form, 'isOpenNetworkConfirmed') === 'true' });\n } catch (error) {\n const message = refusalMessageOf(error);\n return refusalCodeOf(error) === 'PRECONDITION_FAILED' ? { kind: 'openNetwork', message } : { kind: 'refused', message };\n }\n revalidatePath(OUTSIDE_PARTIES_PATH);\n return { kind: 'done', message: isOn ? 'Outside parties are on' : 'Outside parties are off' };\n}\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","'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","/** The outside parties' pages. */\nexport const OUTSIDE_PARTIES_PATH = '/outside-parties';\n\nexport const ADD_SERVER_PATH = `${OUTSIDE_PARTIES_PATH}/add`;\n\nexport const ADD_A2A_CLIENT_PATH = `${OUTSIDE_PARTIES_PATH}/add-a2a-client`;\n\nexport const ADD_A2A_AGENT_PATH = `${OUTSIDE_PARTIES_PATH}/add-a2a-agent`;\n\n/** One outside party's page, or one of its own: changing it, retiring it. */\nexport function partyPath(name: string, action?: 'change' | 'retire'): string {\n return `${OUTSIDE_PARTIES_PATH}/${encodeURIComponent(name)}${action === undefined ? '' : `/${action}`}`;\n}\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","switchOutsideParties","_previous","form","api","isOn","outsideParties","set","mutate","isOpenNetworkConfirmed","error","message","kind","IDLE","fieldOf","name","value","get","fieldsOf","Object","fromEntries","entries","flatMap","FLEET_FIELD","YEAR_SECONDS","setTheme","theme","path","sameSite","maxAge","OUTSIDE_PARTIES_PATH","ADD_SERVER_PATH","ADD_A2A_CLIENT_PATH","ADD_A2A_AGENT_PATH","partyPath","encodeURIComponent","undefined"],"mappings":"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","ignoreList":[0,1]}
@@ -0,0 +1,3 @@
1
+ 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"])},65253,a=>{let b={mcpServer:{protocol:"MCP",side:"server"},mcpClient:{protocol:"MCP",side:"client"},a2aClient:{protocol:"A2A",side:"client"},a2aAgent:{protocol:"A2A",side:"server"}};a.s(["G",0,b,"Y",0,{commissioning:{tone:"active",label:"Commissioning"},awaitingCrew:{tone:"waiting",label:"Awaiting crew"},crewed:{tone:"ok",label:"Crewed"}},"N",0,{server:{one:"server",many:"servers"},client:{one:"client",many:"clients"}},"R",0,function(a){let c=a.map(a=>b[a.kind]),d=[...new Set(c.map(a=>a.protocol))];return{total:a.length,sides:{server:c.filter(a=>"server"===a.side).length,client:c.filter(a=>"client"===a.side).length},protocols:d.map(a=>({protocol:a,count:c.filter(b=>b.protocol===a).length}))}},"M",0,function(a){switch(a.kind){case"mcpServer":return a.url;case"mcpClient":return a.clientId;case"a2aClient":return null;case"a2aAgent":return a.cardUrl}}])},98323,a=>{var b=a.i(7997);let c={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"};a.s(["T",0,function({tone:a,label:d}){return(0,b.jsx)("span",{className:`inline-flex items-center rounded-full border px-2 text-caption ${c[a]}`,children:d})},"E",0,function({children:a,isMono:c=!1}){return(0,b.jsx)("span",{className:`inline-flex items-center rounded-md border border-border px-2 text-caption ${c?"font-mono":""}`,children:a})}])},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."})]})}])}],54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},14465,(a,b,c)=>{(()=>{"use strict";var a={86:a=>{a.exports=function(a,b){return"string"==typeof a?g(a):"number"==typeof a?f(a,b):null},a.exports.format=f,a.exports.parse=g;var b=/\B(?=(\d{3})+(?!\d))/g,c=/(?:\.0*|(\.[^0]+)0+)$/,d={b:1,kb:1024,mb:1048576,gb:0x40000000,tb:0x10000000000,pb:0x4000000000000},e=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function f(a,e){if(!Number.isFinite(a))return null;var f=Math.abs(a),g=e&&e.thousandsSeparator||"",h=e&&e.unitSeparator||"",i=e&&void 0!==e.decimalPlaces?e.decimalPlaces:2,j=!!(e&&e.fixedDecimals),k=e&&e.unit||"";k&&d[k.toLowerCase()]||(k=f>=d.pb?"PB":f>=d.tb?"TB":f>=d.gb?"GB":f>=d.mb?"MB":f>=d.kb?"KB":"B");var l=(a/d[k.toLowerCase()]).toFixed(i);return j||(l=l.replace(c,"$1")),g&&(l=l.split(".").map(function(a,c){return 0===c?a.replace(b,g):a}).join(".")),l+h+k}function g(a){if("number"==typeof a&&!isNaN(a))return a;if("string"!=typeof a)return null;var b,c=e.exec(a),f="b";return c?(b=parseFloat(c[1]),f=c[4].toLowerCase()):(b=parseInt(a,10),f="b"),Math.floor(d[f]*b)}}},c={};function d(b){var e=c[b];if(void 0!==e)return e.exports;var f=c[b]={exports:{}},g=!0;try{a[b](f,f.exports,d),g=!1}finally{g&&delete c[b]}return f.exports}d.ab="/ROOT/node_modules/next/dist/compiled/bytes/",b.exports=d(86)})()}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0e59elwbtqr-6._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/features/forms/ui/look.ts","../../../../../web/features/outside-parties/party-kinds.ts","../../../../../web/features/outside-parties/ui/status-badge.tsx","../../../../../web/features/sign-in/ui/no-sign-in.tsx","../../../../../node_modules/next/dist/compiled/bytes/index.js"],"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","/**\n * An outside party is a party and its protocol (design B, How A2A slots\n * in): the protocol is a tag on every card and the list counts per\n * protocol, so an A2A agent joins as one more kind here.\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../src/adapters/trpc/router.js';\n\n/** An outside party as the API lists it. */\nexport type ListedParty = inferRouterOutputs<GatewayRouter>['parties']['list'][number];\n\n/** Which side an outside party is on: a server the fleet's ships call, or a client that calls them. */\nexport type Side = 'server' | 'client';\n\nexport const PARTY_KINDS: Record<ListedParty['kind'], { protocol: string; side: Side }> = {\n mcpServer: { protocol: 'MCP', side: 'server' },\n mcpClient: { protocol: 'MCP', side: 'client' },\n a2aClient: { protocol: 'A2A', side: 'client' },\n a2aAgent: { protocol: 'A2A', side: 'server' },\n};\n\n/** Where a party is reached or named outside: an MCP server's URL, an MCP client's id, an A2A agent's card address; an A2A client has none. */\nexport function outsideAddressOf(party: ListedParty): string | null {\n switch (party.kind) {\n case 'mcpServer':\n return party.url;\n case 'mcpClient':\n return party.clientId;\n case 'a2aClient':\n return null;\n case 'a2aAgent':\n return party.cardUrl;\n }\n}\n\nexport const SIDES: Record<Side, { one: string; many: string }> = {\n server: { one: 'server', many: 'servers' },\n client: { one: 'client', many: 'clients' },\n};\n\n/** The tones the design tokens colour a status by. */\nexport type Tone = 'waiting' | 'active' | 'ok' | 'attention' | 'ended';\n\n/** A proxy ship's state as the console shows a status. */\nexport const PARTY_STATES: Record<ListedParty['state'], { tone: Tone; label: string }> = {\n commissioning: { tone: 'active', label: 'Commissioning' },\n awaitingCrew: { tone: 'waiting', label: 'Awaiting crew' },\n crewed: { tone: 'ok', label: 'Crewed' },\n};\n\nexport interface Counts {\n total: number;\n sides: Record<Side, number>;\n protocols: { protocol: string; count: number }[];\n}\n\n/** How many outside parties the fleet has, per side and per protocol. */\nexport function countsOf(parties: readonly Pick<ListedParty, 'kind'>[]): Counts {\n const kinds = parties.map((party) => PARTY_KINDS[party.kind]);\n const protocols = [...new Set(kinds.map((kind) => kind.protocol))];\n return {\n total: parties.length,\n sides: { server: kinds.filter((kind) => kind.side === 'server').length, client: kinds.filter((kind) => kind.side === 'client').length },\n protocols: protocols.map((protocol) => ({ protocol, count: kinds.filter((kind) => kind.protocol === protocol).length })),\n };\n}\n","import type { Tone } from '../party-kinds';\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, as the console shows one. */\nexport function StatusBadge({ tone, label }: { tone: Tone; label: string }) {\n return <span className={`inline-flex items-center rounded-full border px-2 text-caption ${TONES[tone]}`}>{label}</span>;\n}\n\n/** A plain tag: a protocol, a side, an id. */\nexport function Tag({ children, isMono = false }: { children: React.ReactNode; isMono?: boolean }) {\n return <span className={`inline-flex items-center rounded-md border border-border px-2 text-caption ${isMono ? 'font-mono' : ''}`}>{children}</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","(()=>{\"use strict\";var e={86:e=>{\n/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\ne.exports=bytes;e.exports.format=format;e.exports.parse=parse;var r=/\\B(?=(\\d{3})+(?!\\d))/g;var a=/(?:\\.0*|(\\.[^0]+)0+)$/;var t={b:1,kb:1<<10,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)};var i=/^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;function bytes(e,r){if(typeof e===\"string\"){return parse(e)}if(typeof e===\"number\"){return format(e,r)}return null}function format(e,i){if(!Number.isFinite(e)){return null}var n=Math.abs(e);var o=i&&i.thousandsSeparator||\"\";var s=i&&i.unitSeparator||\"\";var f=i&&i.decimalPlaces!==undefined?i.decimalPlaces:2;var u=Boolean(i&&i.fixedDecimals);var p=i&&i.unit||\"\";if(!p||!t[p.toLowerCase()]){if(n>=t.pb){p=\"PB\"}else if(n>=t.tb){p=\"TB\"}else if(n>=t.gb){p=\"GB\"}else if(n>=t.mb){p=\"MB\"}else if(n>=t.kb){p=\"KB\"}else{p=\"B\"}}var b=e/t[p.toLowerCase()];var l=b.toFixed(f);if(!u){l=l.replace(a,\"$1\")}if(o){l=l.split(\".\").map((function(e,a){return a===0?e.replace(r,o):e})).join(\".\")}return l+s+p}function parse(e){if(typeof e===\"number\"&&!isNaN(e)){return e}if(typeof e!==\"string\"){return null}var r=i.exec(e);var a;var n=\"b\";if(!r){a=parseInt(e,10);n=\"b\"}else{a=parseFloat(r[1]);n=r[4].toLowerCase()}return Math.floor(t[n]*a)}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var i=r[a]={exports:{}};var n=true;try{e[a](i,i.exports,__nccwpck_require__);n=false}finally{if(n)delete r[a]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(86);module.exports=a})();"],"names":["CARD","BUTTON","BUTTONS","primary","secondary","destructive","INPUT","LABEL","PARTY_KINDS","mcpServer","protocol","side","mcpClient","a2aClient","a2aAgent","outsideAddressOf","party","kind","url","clientId","cardUrl","SIDES","server","one","many","client","PARTY_STATES","commissioning","tone","label","awaitingCrew","crewed","countsOf","parties","kinds","map","protocols","Set","total","length","sides","filter","count","NoSignIn","className","e","exports","bytes","format","parse","r","a","t","b","kb","mb","gb","tb","Math","pow","pb","i","Number","isFinite","n","abs","o","thousandsSeparator","s","unitSeparator","f","decimalPlaces","undefined","u","Boolean","fixedDecimals","p","unit","toLowerCase","l","toFixed","replace","split","join","isNaN","exec","parseInt","parseFloat","floor","__nccwpck_require__","ab","module"],"mappings":"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","ignoreList":[4]}
1
+ {"version":3,"sources":["../../../../../web/features/forms/ui/look.ts","../../../../../web/features/outside-parties/party-kinds.ts","../../../../../web/features/outside-parties/ui/status-badge.tsx","../../../../../web/features/sign-in/ui/no-sign-in.tsx","../../../../../node_modules/next/dist/compiled/bytes/index.js"],"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","/**\n * An outside party is a party and its protocol (design B, How A2A slots\n * in): the protocol is a tag on every card and the list counts per\n * protocol, so an A2A agent joins as one more kind here.\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../src/adapters/trpc/router.js';\n\n/** An outside party as the API lists it. */\nexport type ListedParty = inferRouterOutputs<GatewayRouter>['parties']['list'][number];\n\n/** Which side an outside party is on: a server the fleet's ships call, or a client that calls them. */\nexport type Side = 'server' | 'client';\n\nexport const PARTY_KINDS: Record<ListedParty['kind'], { protocol: string; side: Side }> = {\n mcpServer: { protocol: 'MCP', side: 'server' },\n mcpClient: { protocol: 'MCP', side: 'client' },\n a2aClient: { protocol: 'A2A', side: 'client' },\n a2aAgent: { protocol: 'A2A', side: 'server' },\n};\n\n/** Where a party is reached or named outside: an MCP server's URL, an MCP client's id, an A2A agent's card address; an A2A client has none. */\nexport function outsideAddressOf(party: ListedParty): string | null {\n switch (party.kind) {\n case 'mcpServer':\n return party.url;\n case 'mcpClient':\n return party.clientId;\n case 'a2aClient':\n return null;\n case 'a2aAgent':\n return party.cardUrl;\n }\n}\n\nexport const SIDES: Record<Side, { one: string; many: string }> = {\n server: { one: 'server', many: 'servers' },\n client: { one: 'client', many: 'clients' },\n};\n\n/** The tones the design tokens colour a status by. */\nexport type Tone = 'waiting' | 'active' | 'ok' | 'attention' | 'ended';\n\n/** A proxy ship's state as the console shows a status. */\nexport const PARTY_STATES: Record<ListedParty['state'], { tone: Tone; label: string }> = {\n commissioning: { tone: 'active', label: 'Commissioning' },\n awaitingCrew: { tone: 'waiting', label: 'Awaiting crew' },\n crewed: { tone: 'ok', label: 'Crewed' },\n};\n\nexport interface Counts {\n total: number;\n sides: Record<Side, number>;\n protocols: { protocol: string; count: number }[];\n}\n\n/** How many outside parties the fleet has, per side and per protocol. */\nexport function countsOf(parties: readonly Pick<ListedParty, 'kind'>[]): Counts {\n const kinds = parties.map((party) => PARTY_KINDS[party.kind]);\n const protocols = [...new Set(kinds.map((kind) => kind.protocol))];\n return {\n total: parties.length,\n sides: { server: kinds.filter((kind) => kind.side === 'server').length, client: kinds.filter((kind) => kind.side === 'client').length },\n protocols: protocols.map((protocol) => ({ protocol, count: kinds.filter((kind) => kind.protocol === protocol).length })),\n };\n}\n","import type { Tone } from '../party-kinds';\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, as the console shows one. */\nexport function StatusBadge({ tone, label }: { tone: Tone; label: string }) {\n return <span className={`inline-flex items-center rounded-full border px-2 text-caption ${TONES[tone]}`}>{label}</span>;\n}\n\n/** A plain tag: a protocol, a side, an id. */\nexport function Tag({ children, isMono = false }: { children: React.ReactNode; isMono?: boolean }) {\n return <span className={`inline-flex items-center rounded-md border border-border px-2 text-caption ${isMono ? 'font-mono' : ''}`}>{children}</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","(()=>{\"use strict\";var e={86:e=>{\n/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\ne.exports=bytes;e.exports.format=format;e.exports.parse=parse;var r=/\\B(?=(\\d{3})+(?!\\d))/g;var a=/(?:\\.0*|(\\.[^0]+)0+)$/;var t={b:1,kb:1<<10,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)};var i=/^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;function bytes(e,r){if(typeof e===\"string\"){return parse(e)}if(typeof e===\"number\"){return format(e,r)}return null}function format(e,i){if(!Number.isFinite(e)){return null}var n=Math.abs(e);var o=i&&i.thousandsSeparator||\"\";var s=i&&i.unitSeparator||\"\";var f=i&&i.decimalPlaces!==undefined?i.decimalPlaces:2;var u=Boolean(i&&i.fixedDecimals);var p=i&&i.unit||\"\";if(!p||!t[p.toLowerCase()]){if(n>=t.pb){p=\"PB\"}else if(n>=t.tb){p=\"TB\"}else if(n>=t.gb){p=\"GB\"}else if(n>=t.mb){p=\"MB\"}else if(n>=t.kb){p=\"KB\"}else{p=\"B\"}}var b=e/t[p.toLowerCase()];var l=b.toFixed(f);if(!u){l=l.replace(a,\"$1\")}if(o){l=l.split(\".\").map((function(e,a){return a===0?e.replace(r,o):e})).join(\".\")}return l+s+p}function parse(e){if(typeof e===\"number\"&&!isNaN(e)){return e}if(typeof e!==\"string\"){return null}var r=i.exec(e);var a;var n=\"b\";if(!r){a=parseInt(e,10);n=\"b\"}else{a=parseFloat(r[1]);n=r[4].toLowerCase()}return Math.floor(t[n]*a)}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var i=r[a]={exports:{}};var n=true;try{e[a](i,i.exports,__nccwpck_require__);n=false}finally{if(n)delete r[a]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(86);module.exports=a})();"],"names":["CARD","BUTTON","BUTTONS","primary","secondary","destructive","INPUT","LABEL","PARTY_KINDS","mcpServer","protocol","side","mcpClient","a2aClient","a2aAgent","outsideAddressOf","party","kind","url","clientId","cardUrl","SIDES","server","one","many","client","PARTY_STATES","commissioning","tone","label","awaitingCrew","crewed","countsOf","parties","kinds","map","protocols","Set","total","length","sides","filter","count","TONES","waiting","active","ok","attention","ended","StatusBadge","className","Tag","children","isMono","NoSignIn","e","exports","bytes","format","parse","r","a","t","b","kb","mb","gb","tb","Math","pow","pb","i","Number","isFinite","n","abs","o","thousandsSeparator","s","unitSeparator","f","decimalPlaces","undefined","u","Boolean","fixedDecimals","p","unit","toLowerCase","l","toFixed","replace","split","join","isNaN","exec","parseInt","parseFloat","floor","__nccwpck_require__","ab","module"],"mappings":"2BAGA,IAAMC,EAAS,oGAEFC,EAAU,CACrBC,QAAS,CAAA,EAAGF,EAAO,0DAA0D,CAAC,CAC9EG,UAAW,CAAA,EAAGH,EAAO,6CAA6C,CAAC,CACnEI,YAAa,CAAA,EAAGJ,EAAO,2CAA2C,CAAC,AACrE,qBARoB,mFAYC,yFAEA,0BCAd,IAAMO,EAA6E,CACxFC,UAAW,CAAEC,SAAU,MAAOC,KAAM,QAAS,EAC7CC,UAAW,CAAEF,SAAU,MAAOC,KAAM,QAAS,EAC7CE,UAAW,CAAEH,SAAU,MAAOC,KAAM,QAAS,EAC7CG,SAAU,CAAEJ,SAAU,MAAOC,KAAM,QAAS,CAC9C,qBAyByF,CACvFgB,cAAe,CAAEC,KAAM,SAAUC,MAAO,eAAgB,EACxDC,aAAc,CAAEF,KAAM,UAAWC,MAAO,eAAgB,EACxDE,OAAQ,CAAEH,KAAM,KAAMC,MAAO,QAAS,CACxC,QAbkE,CAChEP,OAAQ,CAAEC,IAAK,SAAUC,KAAM,SAAU,EACzCC,OAAQ,CAAEF,IAAK,SAAUC,KAAM,SAAU,CAC3C,QAmBO,SAASQ,AAASC,CAA6C,EACpE,IAAMC,EAAQD,EAAQE,GAAG,CAAC,AAACnB,GAAUR,CAAW,CAACQ,EAAMC,IAAI,CAAC,EACtDmB,EAAY,IAAI,IAAIC,IAAIH,EAAMC,GAAG,CAAC,AAAClB,GAASA,EAAKP,QAAQ,GAAG,CAClE,MAAO,CACL4B,MAAOL,EAAQM,MAAM,CACrBC,MAAO,CAAElB,OAAQY,EAAMO,MAAM,CAAC,AAACxB,GAASA,AAAc,aAATN,IAAI,EAAe4B,MAAM,CAAEd,OAAQS,EAAMO,MAAM,CAAExB,AAAD,GAAwB,WAAdA,EAAKN,IAAI,EAAe4B,MAAM,AAAC,EACtIH,UAAWA,EAAUD,GAAG,CAAC,AAACzB,IAAc,OAAD,GAAGA,EAAUgC,MAAOR,EAAMO,MAAM,CAAC,AAACxB,GAASA,EAAKP,QAAQ,GAAKA,GAAU6B,MAAM,AAAC,CAAC,EACxH,CACF,QA3CO,SAASxB,AAAiBC,CAAkB,EACjD,OAAQA,EAAMC,IAAI,EAChB,IAAK,YACH,OAAOD,EAAME,GAAG,AAClB,KAAK,YACH,OAAOF,EAAMG,QAAQ,AACvB,KAAK,YACH,OAAO,IACT,KAAK,WACH,OAAOH,EAAMI,OAAO,AACxB,CACF,+BChCA,IAAMuB,EAA8B,CAClCC,QAAS,qEACTC,OAAQ,kEACRC,GAAI,sDACJC,UAAW,2EACXC,MAAO,8DACT,aAGO,SAASC,AAAY,MAAErB,CAAI,OAAEC,CAAK,CAAiC,EACxE,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKqB,UAAW,CAAC,+DAA+D,EAAEP,CAAK,CAACf,EAAK,CAAA,CAAE,UAAGC,GAC5G,QAGO,SAAa,AAAJsB,UAAMC,CAAQ,QAAEC,GAAS,CAAK,CAAmD,EAC/F,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKH,UAAW,CAAC,2EAA2E,EAAEG,EAAS,YAAc,GAAA,CAAI,UAAGD,GACtI,+BClBA,EAAA,EAAA,CAAA,CAAA,kBAGO,SAASE,EACd,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,UAAA,CAAQJ,UAAW,EAAA,CAAI,CAAE,cAAY,uBACpC,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAGA,UAAU,sCAA6B,yBAC3C,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEA,UAAU,sCAA6B,0EAGhD,keCVA,CAAC,KAAK,aAAa,IAAIK,EAAE,CAAC,GAAGA,IAO7BA,EAAEC,OAAO,CAAsP,EAArPC,OAAoQF,AAANE,CAAO,CAACG,CAAC,QAAE,AAAc,UAAX,AAAoB,OAAbL,EAAqBI,EAAMJ,GAAM,AAAW,UAAS,OAAbA,EAAqBG,EAAOH,EAAEK,GAAU,IAAI,EAAjWL,EAAEC,OAAO,CAACE,MAAM,CAACA,EAAOH,EAAEC,OAAO,CAACG,KAAK,CAACA,EAAM,IAAIC,EAAE,wBAA4BC,EAAE,wBAA4BC,EAAE,CAACC,EAAE,EAAEC,GAAG,KAAG,AAAGC,GAAG,KAAG,GAAGC,GAAG,KAAG,MAAGC,GAAGC,KAAKC,GAAG,CAAC,KAAQC,CAAH,EAAMF,KAAKC,GAAG,CAAC,MAAK,AAAE,EAAME,EAAE,gDAAmK,SAASb,EAAOH,CAAC,CAACgB,CAAC,EAAE,GAAG,CAACC,OAAOC,QAAQ,CAAClB,GAAI,CAAD,MAAQ,KAAK,IAAImB,EAAEN,KAAKO,GAAG,CAACpB,GAAOqB,EAAEL,GAAGA,EAAEM,kBAAkB,EAAE,GAAOC,EAAEP,GAAGA,EAAEQ,aAAa,EAAE,GAAOC,EAAET,QAAqBW,IAAlBX,EAAEU,aAAa,CAAaV,EAAEU,aAAa,CAAC,EAAME,GAAEC,EAAQb,GAAGA,EAAEc,aAAAA,AAAa,EAAMC,EAAEf,GAAGA,EAAEgB,IAAI,EAAE,GAAOD,GAAIxB,CAAC,CAAF,AAAGwB,EAAEE,WAAW,GAAG,EAAC,CAAaF,EAATZ,GAAGZ,EAAEQ,EAAE,CAAI,CAAH,IAAgBI,GAAGZ,EAAEK,EAAE,CAAI,CAAH,IAAgBO,GAAGZ,EAAEI,EAAE,CAAI,CAAH,IAAgBQ,GAAGZ,EAAEG,EAAE,CAAI,CAAH,IAAgBS,GAAGZ,EAAEE,EAAE,CAAI,CAAH,IAAe,KAAgC,IAAIyB,EAAE1B,CAA3BR,EAAEO,CAAC,CAACwB,EAAEE,WAAW,GAAA,AAAG,EAASE,OAAO,CAACV,GAAiH,OAA3G,AAACG,GAAE,CAACM,EAAEA,EAAEE,OAAO,CAAC9B,EAAE,KAAA,EAASe,GAAE,CAACa,EAAEA,EAAEG,KAAK,CAAC,KAAKzD,GAAG,CAAE,SAASoB,CAAC,CAACM,CAAC,EAAE,OAAW,IAAJA,EAAMN,EAAEoC,OAAO,CAAC/B,EAAEgB,GAAGrB,CAAC,GAAIsC,IAAI,CAAC,IAAA,EAAYJ,EAAEX,EAAEQ,CAAC,CAAC,SAAS3B,EAAMJ,CAAC,EAAE,GAAc,UAAX,OAAOA,GAAc,CAACuC,MAAMvC,GAAI,CAAD,MAAQA,EAAE,GAAc,UAAS,AAApB,OAAOA,EAAc,OAAO,KAAK,IAAoBM,EAAhBD,EAAEW,EAAEwB,IAAI,CAACxC,GAAamB,EAAE,IAA+E,OAAvEd,GAAE,AAA6BC,EAAEoC,WAAWrC,CAAC,CAAC,EAAE,EAAEc,EAAEd,CAAC,CAAC,EAAE,CAAC4B,WAAW,KAAjE3B,EAAEmC,SAASzC,EAAE,IAAImB,EAAE,KAAwDN,KAAK8B,KAAK,CAACpC,CAAC,CAACY,EAAE,CAACb,EAAE,CAAC,CAAC,EAAMD,EAAE,CAAC,EAAE,SAASuC,EAAoBtC,CAAC,EAAE,IAAIC,EAAEF,CAAC,CAACC,EAAE,CAAC,QAAOqB,IAAJpB,EAAe,KAAD,EAAQA,EAAEN,OAAO,CAAC,IAAIe,EAAEX,CAAC,CAACC,EAAE,CAAC,CAACL,QAAQ,CAAC,CAAC,EAAMkB,GAAE,EAAK,GAAG,CAACnB,CAAC,CAACM,EAAE,CAACU,EAAEA,EAAEf,OAAO,CAAC2C,GAAqBzB,GAAE,CAAK,QAAQ,CAAIA,GAAE,OAAOd,CAAC,CAACC,EAAE,CAAC,OAAOU,EAAEf,OAAO,CAA6C2C,EAAoBC,EAAE,CAAC,+CAA4CC,EAAO7C,OAAO,CAAtC2C,EAAoB,AAAmBtC,IAAC,CAAC,kBAAnD","ignoreList":[4]}
@@ -0,0 +1,4 @@
1
+ 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)},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}}}}])},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,"4045fb4e4dd7a243ae58c6075af5457b975a7e6156",null),a.s(["f",0,e])},10351,a=>{var b=a.i(66283);async function c(a){try{return await a}catch(a){if("FORBIDDEN"===(0,b.U)(a))return;throw a}}async function d(a){let[b,d,e,f,g]=await Promise.all([c(a.people.inbox.query()),c(a.people.wakeChannels.query()),c(a.requests.toDecide.query()),c(a.requests.mine.query()),c(a.slack.link.query())]);return{inbox:b,wakeChannels:d,toDecide:e,mine:f,slackLink:g}}async function e(a,b){let d=await c(a.requests.toDecide.query())??[];return{request:d.find(a=>a.requestId===b),toDecide:d}}a.s(["K",0,"/overview","m",0,d,"F",0,e])},11393,a=>{a.s(["_",0,["messages:send","messages:receive"],"T",0,function(a,b){switch(a.state){case"pending":let c;return(c=Math.ceil((Date.parse(a.expiresAt)-b.getTime())/864e5))<=1?{tone:"attention",label:"Last day"}:{tone:"waiting",label:`${String(c)} d left`};case"approving":return{tone:"active",label:"Approving"};case"approved":return{tone:"ok",label:"Approved"};case"denied":return{tone:"ended",label:"Denied"};case"expired":return{tone:"ended",label:"Expired"}}},"E",0,function(a){switch(a.subject.kind){case"client":return"MCP client";case"server":return"MCP server"}},"M",0,function(a){switch(a.subject.kind){case"client":return a.subject.clientName;case"server":return URL.canParse(a.subject.url)?new URL(a.subject.url).host:a.subject.url}}])}],81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))}];
3
+
4
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0icm7kndx480o._.js.map
@@ -0,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/features/forms/server-credential.ts","../../../../../web/features/frame/actions.ts","../../../../../web/features/overview/hooks/read-overview.ts","../../../../../web/features/overview/services/requests.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","/**\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","'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","/**\n * What the Overview shows, read through the gateway's API as the signed-in\n * account (design B, Signal; decision 0056): what waits on their person\n * ship and the channels that wake them, the requests to decide for an\n * approver, the requests they asked, and their Slack link.\n * A part the API refuses the account (FORBIDDEN) is not theirs to see, so it\n * is left out; any other refusal fails the page.\n */\nimport type { GatewayApi } from '../../../lib/gateway-api/gateway-api';\nimport { refusalCodeOf } from '../../../lib/gateway-api/page-api';\nimport type { Inbox, WakeChannels } from '../services/deliveries';\nimport type { ShownRequest } from '../services/requests';\n\nexport const OVERVIEW_PATH = '/overview';\n\nexport interface OverviewParts {\n readonly inbox: Inbox | undefined;\n /** The channels that wake the person when something waits for their person ship (wake a person, W8). */\n readonly wakeChannels: WakeChannels | undefined;\n readonly toDecide: readonly ShownRequest[] | undefined;\n readonly mine: readonly ShownRequest[] | undefined;\n /** The person's Slack link (gateway scopes 9.6); none while the fleet's own bot is not in Slack. */\n readonly slackLink: SlackLink | null | undefined;\n}\n\n/** A person's Slack link as the gateway answers it: the workspace, and the Slack name linked, none while unlinked. */\nexport type SlackLink = NonNullable<Awaited<ReturnType<GatewayApi['slack']['link']['query']>>>;\n\nasync function unlessForbidden<T>(call: Promise<T>): Promise<T | undefined> {\n try {\n return await call;\n } catch (error) {\n if (refusalCodeOf(error) === 'FORBIDDEN') {\n return undefined;\n }\n throw error;\n }\n}\n\nexport async function readOverview(api: GatewayApi): Promise<OverviewParts> {\n const [inbox, wakeChannels, toDecide, mine, slackLink] = await Promise.all([\n unlessForbidden(api.people.inbox.query()),\n unlessForbidden(api.people.wakeChannels.query()),\n unlessForbidden(api.requests.toDecide.query()),\n unlessForbidden(api.requests.mine.query()),\n unlessForbidden(api.slack.link.query()),\n ]);\n return { inbox, wakeChannels, toDecide, mine, slackLink };\n}\n\n/** One request to decide, undefined once it no longer waits, and the queue beside it. */\nexport async function readRequestToDecide(api: GatewayApi, requestId: string): Promise<{ request: ShownRequest | undefined; toDecide: readonly ShownRequest[] }> {\n const toDecide = (await unlessForbidden(api.requests.toDecide.query())) ?? [];\n return { request: toDecide.find((open) => open.requestId === requestId), toDecide };\n}\n","/**\n * How the Overview names and states a request for an outside party (design\n * B, Signal): pure view logic, no React and no API client.\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\nimport type { CredentialKind } from '../../forms/server-credential';\n\n/** A request as the API shows it. */\nexport type ShownRequest = inferRouterOutputs<GatewayRouter>['requests']['toDecide'][number];\n\n/** The tones a status shows, from the design tokens; a status always has its words too. */\nexport type Tone = 'waiting' | 'active' | 'ok' | 'attention' | 'ended';\n\nexport interface Status {\n readonly tone: Tone;\n readonly label: string;\n}\n\nconst DAY_MS = 86_400_000;\n\n/** How an outside party is named before it has a proxy ship: a client by its name, a server by its host. */\nexport function subjectName(request: ShownRequest): string {\n switch (request.subject.kind) {\n case 'client':\n return request.subject.clientName;\n case 'server':\n return URL.canParse(request.subject.url) ? new URL(request.subject.url).host : request.subject.url;\n }\n}\n\nexport function subjectKind(request: ShownRequest): string {\n switch (request.subject.kind) {\n case 'client':\n return 'MCP client';\n case 'server':\n return 'MCP server';\n }\n}\n\n/** Days left of the 7 a request is kept, counted up, so its last day reads as such, in the attention tone. */\nexport function daysLeft(request: ShownRequest, now: Date): Status {\n const days = Math.ceil((Date.parse(request.expiresAt) - now.getTime()) / DAY_MS);\n return days <= 1 ? { tone: 'attention', label: 'Last day' } : { tone: 'waiting', label: `${String(days)} d left` };\n}\n\n/** A request's state as the console shows a status; one still pending shows its days left. */\nexport function requestStatus(request: ShownRequest, now: Date): Status {\n switch (request.state) {\n case 'pending':\n return daysLeft(request, now);\n case 'approving':\n return { tone: 'active', label: 'Approving' };\n case 'approved':\n return { tone: 'ok', label: 'Approved' };\n case 'denied':\n return { tone: 'ended', label: 'Denied' };\n case 'expired':\n return { tone: 'ended', label: 'Expired' };\n }\n}\n\n/** A proxy ship's name offered from the party's own: lower case letters, digits and dashes. */\nexport function suggestedName(name: string): string {\n return name\n .toLowerCase()\n .replaceAll(/[^a-z0-9]+/g, '-')\n .replaceAll(/^-+|-+$/g, '');\n}\n\n/** The scopes every app ship gets (0046): shown locked on, and always sent. */\nexport const EVERY_APP_SHIP_SCOPES: readonly string[] = ['messages:send', 'messages:receive'];\n\nconst SCOPE_LABELS: Record<string, string> = {\n 'messages:send': 'Send',\n 'messages:receive': 'Receive',\n 'fleet:read': 'Read the fleet',\n};\n\n/** A scope's plain label, shown beside the scope itself. */\nexport function scopeLabel(scope: string): string {\n return SCOPE_LABELS[scope] ?? scope;\n}\n\n/** The server's credential as the decision form takes it. */\nexport interface ServerCredentialInput {\n readonly credentialKind: CredentialKind;\n readonly token: string;\n readonly clientId: string;\n readonly clientSecret: string;\n readonly issuer: string;\n readonly scope: string;\n readonly concurrencyLimit: number;\n}\n\nexport type DecisionInput = { readonly kind: 'deny' } | { readonly kind: 'approve'; readonly name: string; readonly ownerShipId: string; readonly scopes: readonly string[]; readonly server: ServerCredentialInput | undefined };\n"],"names":["ensureServerEntryExports","actions","i","length","action","Error","registerServerReference","CREDENTIAL_KINDS","kind","label","credentialKindOf","sent","find","serverCredentialOf","fields","credentialKind","token","clientId","clientSecret","issuer","scope","YEAR_SECONDS","setTheme","theme","set","path","sameSite","maxAge","OVERVIEW_PATH","unlessForbidden","call","error","undefined","readOverview","api","inbox","wakeChannels","toDecide","mine","slackLink","Promise","all","people","query","requests","slack","link","readRequestToDecide","requestId","request","open","DAY_MS","subjectName","subject","clientName","URL","canParse","url","host","subjectKind","daysLeft","now","days","Math","ceil","Date","parse","expiresAt","getTime","tone","String","requestStatus","state","suggestedName","name","toLowerCase","replaceAll","EVERY_APP_SHIP_SCOPES","SCOPE_LABELS","scopeLabel"],"mappings":"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","ignoreList":[0,1]}